Ceph部署软硬件推荐

硬件

Ceph设计成使用通用硬件,可以用来构建和维护PE级别数据集群。但是,对于大型数据系统,需要进行设计硬件,保证各个硬件组件的平衡协调以及软件合理部署,这样才能避免故障失效以及潜在的性能问题。

CPU

不同的Ceph角色需要不同的硬件:

  • CephFS meta服务器是CPU敏感的,也就是需要部署较为强大的硬件(多核处理器或更好的CPU),并且高主频可以提高性能。

  • Ceph OSDs运行RADOS服务,用来计算CRUSH数据分发以及数据复制(维护集群地图副本),所以需要大量的处理器能力

    • 刚开始阶段(轻量负载)可以采用每个OSD分配1个CPU core

    • 随着RBD提供给VM使用负载逐渐加大,则分配2个CPU core给OSD

    • 通过监控观察业务发展情况可以逐渐扩展OSD的CPU core

  • Monitor/Manager节点不需要大量的CPU计算资源,所以可以采用低配置处理器

  • 为了避免CPU资源竞争,建议使用分离的的服务器来运行CPU敏感的进程

内存

简单来说,内存越多越好:

  • 对于普通集群,Monitor/Manager节点最好配备 64GB 内存;对于大型的部署数百个OSDs的集群,则最好给Monitor/Manager节点分配128GB内存

    • Monitor/Manager节点需要使用内存和集群规模有关: 当发生拓扑变化或者需要recovery时,会消耗远比稳定状态操作更多的内存,所以需要为尖峰使用规划好内存:

      • 对于非常小的集群,32GB足够;

      • 随着集群扩展,例如300个OSDs则需要配备64GB;

      • 随着集群规模进一步增长,更多的OSDs会要求配置128GB内存

      • 需要考虑tunning设置: mon_osd_cache_sizerocksdb_cache_size

  • 对于典型的BlueStore OSDs,默认内存分配4GB; 对于长期运行的操作系统和管理任务(例如监控和metrics)会在故障恢复时消耗更多内存: 每个BlueStore OSD建议分配8GB以上内存

  • 对于meatadata服务器( ceph-mds ),大多数情况下至少需要1GB内存,实际需要配置的内存和需要考虑缓存的数据有关

BlueStore内存

待完成

数据存储

HDD硬盘

SSD

网络

  • 应该至少使用 10Gbps+ 网络 (我的测试环境远达不到,只能作为方案验证)

具体待完善

Ceph部署的最小硬件要求

操作系统建议

Linux内核

  • 如果使用Ceph内核客户端来映射RBD块设备或者挂载CephFS,建议使用 稳定长期维护 内核系列:

  • RBD建议内核:

    • 4.19.z

    • 4.14.z

    • 5.x

  • CephFS建议内核:至少 4.x ,建议使用最新的稳定Linux内核

备注

  • 从Luminous版本(12.2.Z)开始,建议采用 BlueStore ;早期版本则建议使用 XFS文件系统 作为 Filestore

  • btrfs 可能没有严格测试,建议不要采用

参考