.. _ceph_recommend: ====================== 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_size`` 或 ``rocksdb_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内核 .. note:: - 从Luminous版本(12.2.Z)开始,建议采用 ``BlueStore`` ;早期版本则建议使用 :ref:`xfs` 作为 ``Filestore`` - ``btrfs`` 可能没有严格测试,建议不要采用 参考 ===== - `Ceph Hardware Recommendations `_ - `Ceph OS Recommendations `_