测试:
- 测试配置:使用 Intel NVMe SSD 做 Cache,使用 Intel CAS Linux 3.0 with hinting feature (今年年底将发布)
- 测试结果:5% 的 cache,使得吞吐量(ThroughOutput)提交了一倍,延迟(Latency)降低了一半
3.1 更高带宽更低延迟的网卡设备
Mellanox 是一家总部在以色列的公司,全球约 1900 名员工,专注高端网络设备,2014 年revenue 为 ¥463.6M 。(今天正好在水木BBS上看到该公司在中国的分公司待遇也是非常好)。其主要观点和产品:
- Ceph 的 Scale Out 特性要求用于 replicaiton、sharing 和 metadata (文件)的网络吞吐量更高、延迟更低
- 目前 10 GbE(万兆以太网络) 已经不能满足高性能Ceph 集群的要求(基本上 20个 SSD 以上的集群就不能满足了),已经开始全面进入 25, 50, 100 GbE 时代。目前,25GbE 性价比比较高。
- 大部分网络设备公司使用的是高通的芯片,而 Mellanox 使用自研的芯片,其延迟(latency)是业界最低的(220ns)
- Ceph 高速集群需要使用两个网络:public network 用于客户端访问,Cluster network 用于 heartbeat、replication、recovery 和 re-balancing。
- 目前 Ceph 集群广泛采用 SSD, 而快速的存储设备就需要快速的网络设备
实际测试:
(1)测试环境:Cluster network 使用 40GbE 交换机,Public network 分布使用 10 GbE 和 40GbE 设备做对比
(2)测试结果:结果显示,使用 40GbE 设备的集群的吞吐量是使用 10 GbE 集群的 2.5 倍,IOPS 则提高了 15%。
目前,已经有部分公司使用该公司的网络设备来生产全SSD Ceph 服务器,比如,SanDisk 公司的 InfiniFlash 就使用了该公司的 40GbE 网卡、2个 Dell R720 服务器作为 OSD 节点、512 TB SSD,它的总吞吐量达到 71.6 Gb/s,还有富士通和Monash 大学。
3.2 RDMA 技术
传统上,访问硬盘存储需要几十毫秒,而网络和协议栈需要几百微妙。这时期,往往使用 1Gb/s 的网络带宽,使用 SCSI 协议访问本地存储,使用 iSCSI 访问远端存储。而在使用 SSD 后,访问本地存储的耗时大幅下降到几百微秒,因此,如果网络和协议栈不同样提高的话,它们将成为性能瓶颈。这意味着,网络需要更好的带宽,比如40Gb/s 甚至 100Gb/s;依然使用 iSCSI 访问远端存储,但是 TCP 已经不够用了,这时 RDMA 技术应运而生。RDMA 的全称是 Remote Direct Memory Access,就是为了解决网络传输中服务器端数据处理的延迟而产生的。它是通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能.它消除了外部存储器复制和文本交换操作,因而能腾出总线空间和CPU 周期用于改进应用系统性能. 通用的做法需由系统先对传入的信息进行分析与标记,然后再存储到正确的区域。
这种技术上,Mellanox 是业界领先者。它通过 Bypass Kenerl 和 Protocol Offload 的实现,提供高带宽、低CPU占用和低延迟。目前,该公司在 Ceph 中实现了 XioMessager,使得Ceph 消息不走 TCP 而走 RDMA,从而得以提高集群性能,该实现在 Ceph Hammer 版本中提供。
之前不熟悉这个公司,一个原因是其名字实在太长太难记了。今天看到西瓜哥的微信,才发现这个公司的Infiniband 交换机和 HBA 卡在美国数据中心里面的领导地位。唯一能和它竞争的就是Intel。
4.1 Mid-Tier Cache 方案
该方案在客户端应用和 Ceph 集群之间添加一个缓存层,使得客户端的访问性能得以提高。该层的特点:
- 对 Ceph 客户端提供 iSCSI/NVMF/NFS 等协议支持;
- 使用两个或者多个节点提高可靠性;
- 添加了Cache,提高访问速度
- 使用 write log 保证多节点之间数据一致性
- 使用 RBD 连接后端Ceph集群