硬件配置
为了打造生产级CEPH集群,我们对OSD的机型进行了定制,每台OSD服务器挂载12个SATA盘和2个10Gb网卡。OSD服务器硬盘总带宽为9.6Gb,计算公式为 12 * 100MB(SATA硬盘带宽) * 8 。只有使用10Gb网卡才能发挥全部硬盘带宽能力。 使用10Gb网卡的好处主要是更短的OSD间数据的复制时间。 例如在新增OSD物理节点后,在执行这PG的重新平衡操作时需要从其他OSD节点复制1T数据到这个新节点,如果使用1Gb网卡,则需要8000s,而10Gb网卡,只需要800s。
在规划硬件需求时,应该重点分析故障域,故障域的隔离好坏直接影响集群的可用性。一个故障域是指任何阻止访问一个或多个OSD的故障。这有如下情况:
- 一个主机上停止的一个OSD进程
- 一个硬盘故障
- 一个OS 崩溃
- 网卡故障
- 主机电源故障
- 网络不可用
- 其他
应该在把过多的组件放到太少的故障域来降低成本的和增加成本来隔离每个可能故障域之间取得一个平衡。
YY云平台为了防止因TOR故障导致整个集群不可用,使用3台TOR,并通过crush map和ruleset设置使对象副本分布在3个不同的机架,这就从网络架构上保障了一台TOR故障,集群还正常可用的。
YY云平台 Ceph 集群硬件清单:
名称 | 数量 |
---|---|
TOR | 3 |
OSD | 21 |
MON | 3 |
ceph网络配置
Ceph网络架构
- public 网络,是Client、MON、MDS与OSD通信的网络
- cluster网络,是OSD与OSD通信通信的网络
网络设备:
- 万兆接入交换机:10GB网口数量=服务器数量 * 2
- 核心交换机:40GB核心交换机,用于跨机柜级联
服务器配置
MON配置
MON进程建议配置:
CPU
- 64-bit AMD-64 * 1
- 32-bit ARM dual-core * 1
- i386 dual-core * 1
4 GB RAM
- 1 Gb NIC
- 100GB以上的硬盘
YY云平台的MON服务器配置:
组件 | 数量 |
---|---|
CPU | E5-2620v2 * 2 |
RAM | 16G |
NIC | 1Gb * 2 |
OS Disk | 300G SAS * 2 |
OSD配置
OSD 建议配置:
CPU
- 64-bit AMD-64 * 1
- 32-bit ARM dual-core * 1
- i386 dual-core * 1
一个OSD进程配置 RAM大小为 1GB每1TB硬盘
- 一个OSD物理节点配置2个10Gb接口,分别作为public网络和cluster网络的接口
- 一个OSD独占一个硬盘
- 一个物理节点磁盘数量12 (估算公式:最大网卡带宽 / OSD磁盘带宽)
- 建议使用SSD盘做日志盘,SSD和SATA配比为1:3~5 (估算公式:SSD带宽/SATA带宽)
- 若使用纯SATA盘,建议划为2个分区,一个做日志分区,一个做数据分区。
SSD作为日志盘的注意事项 使用SSD作为日志盘是有效提升性能的手段,当评估SSD时,最重要的是考虑顺序读写性能,当一个SSD存储多个OSD的日志时,顺序写吞吐量500MB/s的SSD性能远要好于120MB/s的。 下面是一些重要的性能参考项:
- 写密集:日志是一个写密集型的场景,选择SSD时写性能必须高于普通硬盘,有些便宜的SSD写性能甚至比不上高性能的普通硬盘。
- 顺序写:当使用一个SSD存储多个OSD日志时,因为SSD同时处理多个OSD写日志请求,你必须考虑SSD的顺序写限制。
- 分区对齐:一个普通问题是大家都希望把给SSD分区作为最佳实践,但是他们往往忽视了SSD合理分区对齐,这导致SSD性能下降,所以要确保SSD分区合理对齐。
YY云平台OSD服务器配置:
组件 | 数量 |
---|---|
CPU | E5-2620v3 * 2 |
RAM | 64G |
NIC | 10Gb * 2 |
OS Disk | 300G SAS * 2 |
OSD Disk | 4T SATA * 12 |