从零开始指南::用于 CEPH 集群规划

转载

它是什么

如果您思考或讨论 Ceph,最常见的问题是“我应该为我的 CEPH 存储集群选择什么硬件?”,是的,如果您真的在脑海中想到了这个问题,恭喜您似乎对 ceph 技术很认真,您应该认真,因为 CEPH 是存储的未来。

Ceph 在商品硬件上运行,哦,是的!!每个人现在都知道了。 它被设计用来构建一个多 PB 存储集群,同时提供企业级功能。没有单点故障,扩展到 EB,自我管理和自我修复(节省运营成本),在商品硬件上运行(没有供应商锁定,节省资本投资)

Ceph 概述:

Ceph 存储集群的核心是 RADOS(可靠自主分布式对象存储)。Ceph 使用强大的 CRUSH(受控的可扩展哈希复制)算法来优化数据放置、自我管理和自我修复。Ceph 对象网关 (RGW) aka Rados Gateway 提供 RESTful 接口,Ceph 块设备 (RBD) 提供虚拟磁盘。

Ceph 概述 - 图片来源:Inktank

Ceph 组件:

# Ceph OSD(对象存储守护程序)以对象的形式存储数据,管理数据复制、恢复、重新平衡并向 Ceph Monitor 提供阶段信息。建议用户每个物理磁盘使用 1 个 OSD。

# Ceph MON(监视器)通过保持集群地图状态(包括监视器地图、OSD 地图、放置组 (PG) 地图和 CRUSH 地图)来维护集群的整体健康状况。监视器从其他组件接收状态信息以维护地图并将这些地图循环到其他监视器和 OSD 节点。

# Ceph RGW(对象网关/Rados 网关)兼容 Amazon S3、OpenStack Swift 的 RESTful API 接口。

# Ceph RBD(原始块设备)为 VM/裸机以及常规客户端提供块存储,支持 OpenStack 和 CloudStack。包括快照、稀疏配置、压缩等企业级功能。

# CephFS(文件系统)分布式 POSIX NAS 存储。

一些经验法则:

  • 在专用存储节点(带有多个磁盘的服务器)上运行 OSD,实际数据以对象的形式存储。
  • 在单独的专用硬件上或与 ceph 客户端节点(例如 RGW、CephFS 节点)共存(但不包括 OSD 节点)上运行监视器。对于生产,建议在专用的低成本服务器上运行监视器,因为监视器不是资源密集型。

监视器硬件配置:

监视器维护整个集群的健康状况,它包含 PG 日志和 OSD 日志。建议集群仲裁至少有三个监视器节点。Ceph 监视器节点不是资源密集型,它们可以使用相当低的 CPU 和内存正常工作。在大多数情况下,具有低成本处理器 E5-2603、16GB RAM 和 1GbE 网络的 1U 服务器就足够了。如果 PG、监视器和 OSD 日志存储在监视器节点上的本地磁盘上,请确保有足够的本地存储空间,以免磁盘填满。

不健康的集群需要更多的存储空间来记录日志,最多可达 GB 甚至数百 GB,如果集群长时间保持不健康状态。如果监视器节点上设置了详细输出,那么它们肯定会生成大量的日志信息。请参阅 ceph 文档了解监视器日志设置。

建议在不同的节点上运行监视器,而不是全部在一个节点上或在物理分离的虚拟机上,以防止单点故障。

规划阶段:

在生产环境中部署 ceph 集群需要一些作业,您应该收集以下信息,以便设计更好、更可靠和可扩展的 ceph 集群,以适应您的 IT 需求。这些非常具体地取决于您的需求和 IT 环境。这些信息将帮助您更好地设计存储需求。

  • 业务需求

  • 预算?

  • 您是否需要 Ceph 集群用于日常运营或特殊用途?

  • 技术要求

  • 您的 ceph 集群上将运行哪些应用程序?

  • 您的 ceph 集群上将存储什么类型的数据?

  • ceph 集群是否应该针对容量和性能进行优化?

  • 应该可以使用多少存储容量?

  • 预计增长率是多少?

  • 集群应该支持多少 IOPS?

  • 集群应该支持多少吞吐量?

  • 您需要多少数据复制(可靠性级别)?

在规划阶段尽可能收集更多信息,这将提供构建更好 ceph 集群所需的所有答案。

物理节点和集群技术:

除了上述收集的信息外,还要考虑机架密度和功耗预算、数据中心空间成本,以确定最佳节点配置。Ceph 在存储集群中的多个节点上复制数据,以提供数据冗余和更高的可用性。重要的是要考虑。

  • 复制的节点是否应该位于同一机架或多个机架上,以避免 SPOF?
  • OSD 流量是否应该保留在机架内或跨越机架,在专用或共享网络中?
  • 可以容忍多少节点故障?
  • 如果节点分布在多个机架上,网络流量会增加,并且延迟的影响以及网络交换机的跳数应该被考虑。

Ceph 会自动通过使用集群中其他节点上的辅助副本来恢复故障节点。因此,节点故障会对集群产生多种影响。

  • 总集群容量减少一定比例。
  • 总集群吞吐量减少一定比例。
  • 集群进入高负载的恢复过程。

在具有每个 OSD 节点 1 个磁盘的 ceph 集群中,计算恢复时间的一般经验法则是

恢复时间(秒)= 磁盘容量(千兆位)/(网络速度 *(节点 - 1))

# POC 环境 - 可以拥有至少 3 个物理节点,每个节点具有 10 个 OSD。这提供了物理节点故障时 66% 的集群可用性,以及 OSD 故障时 97% 的正常运行时间。RGW 和监视器节点可以放在 OSD 节点上,但这可能会影响性能,不建议用于生产。

# 生产环境 - 至少 5 个物理分离的节点和至少 100 个 OSD @ 4TB 每个 OSD,集群容量超过 130TB,物理节点故障时提供 80% 的正常运行时间,OSD 故障时提供 99% 的正常运行时间。RGW 和监视器应该在单独的节点上。

根据规划阶段的结果以及物理节点和集群阶段,您可以根据您的预算查看市场上可用的硬件。

OSD CPU 选择:

< 建设中...敬请期待 >