![Ceph 是否可以将硬件 RAID 阵列(LUN)作为 OSD 驱动器处理?](https://linux22.com/image/716427/Ceph%20%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%B0%86%E7%A1%AC%E4%BB%B6%20RAID%20%E9%98%B5%E5%88%97%EF%BC%88LUN%EF%BC%89%E4%BD%9C%E4%B8%BA%20OSD%20%E9%A9%B1%E5%8A%A8%E5%99%A8%E5%A4%84%E7%90%86%EF%BC%9F.png)
我对 Ceph 还很陌生,想了解 Ceph 是否支持硬件级 raid HBA。
遗憾的是找不到任何信息。我发现,建议使用普通磁盘作为 OSD。但这对 PCIe 提出了更高的要求,磁盘接口需要高带宽,而且对 CPU 的要求也很高。
硬件 RAID 控制器已经解决了这些要求,并且它们根据设置提供高冗余,而不会占用我的 PCIe、CPU 或任何其他资源。
因此,我希望的设置是拥有本地 RAID 控制器,它可以在控制器级别(Raid 5、raid 6)处理我的磁盘冗余,无论我需要什么 RAID 级别。除了 RAID LUN 之外,我还想使用 Ceph 在主机、机箱、机架、行、数据中心或 CRUSH 中可能或可计划的任何内容之间进行更高级别的复制
- 有这种设置的经验吗?
- 这是推荐的设置吗?
- 有关于此硬件 RAID 集成的详细文档吗?
答案1
你能做并不意味着你应该做。将 RAID LUN 映射到 Ceph 是可能的,但你注入了一个额外的抽象层,并且至少会使部分 Ceph 功能变得无用。
他们的邮件列表中也有类似的帖子:
答案2
但这对PCIe、磁盘接口的带宽要求很高,而且对CPU的要求也很高。
事实并非如此,许多存储工作负载可以通过现代通用 CPU 和互连很好地处理。
是的,RAID 控制器通过一个机箱中的少量磁盘来实现冗余。但当您运行已经冗余的多节点分布式存储解决方案(如 Ceph)时,这会增加成本和复杂性。如果 Ceph 已经有多个物理磁盘副本,为什么还要镜像它呢?
这种解决方案的构建块只是一堆磁盘。例如开放计算存储 打开 Vault。机柜中有 30 个主轴,连接到可能有几十个 CPU 核心的计算节点。根据需要添加任意数量的节点以进行扩展。如果要最大化吞吐量,可以将该计算专用于 Ceph。
答案3
建议的设置是使用单个磁盘或最终使用 RAID-1 对中的磁盘。
单个 SAS 控制器(或 JBOD 模式下的 RAID 控制器)可以轻松驱动数百个磁盘。
使用非常大的阵列违背了 CEPH 的初衷,即避免单点故障和“热点”。它实际上还会损害您的冗余。
假设您要使用 8 TB 驱动器构建 1 PB CEPH 集群,使用 36 个磁盘服务器机箱(普通的 Supermicro 类硬件)。让我们在存储容量和可靠性方面比较有和没有 RAID 的设置:
使用 RAID-6 您需要 5 个机箱(和 10 个 OSD)。
- 每个机箱将有 2 个 18 个磁盘 RAID 阵列。
- 您将拥有 1024 TB 的可用存储空间。
- 如果多个磁盘崩溃,您将必须重建 256 TB。
使用 CEPH 和 5 个机箱,您将拥有 180 个 OSD。
- 可用容量略高(使用擦除编码):1152 TB
- 如果发生多个磁盘崩溃,您只需重建故障磁盘的数量(除非是整个服务器,否则它将始终小于 256 TB)。