我正在部署一个 ceph 集群,该集群将有三台控制器服务器和 27 个 osd 节点。每个 osd 节点有 3x3.8Tb nvme + 1x1.9Tb nvme 磁盘,每个节点总共有 4 个 nvme 磁盘。集群的故障域将由机箱组成。每 4 个节点属于同一个机箱,最后我将有一个包含 8 个机箱的 osd 树,其中 5 个将包含 3 个 osd 节点,3 个将包含 4 个节点。
使用 nvme 磁盘的最佳方法是什么?到目前为止,我从网络和其他论坛获得了三个想法:
- 使用同一个集群中的所有磁盘,大小差异并不那么重要。
- 使用同一群集中的所有磁盘,并将较小磁盘的权重从 1.0 更改为 0.5,因为它们的大小是较大磁盘的一半。
- 将磁盘分成两个压缩规则,以避免在发生故障时填满较小的磁盘。
到目前为止,我更喜欢第三个想法,但是我在 ceph 方面没有那么多经验,而且我想知道我是否没有预见到未来的潜在问题。
如果您能给我更多建议,那就太好了。
问候。
答案1
在问题的当前状态下,可能有 3 种可能的用例:
1.大数据坟墓与单一操作系统(“3+1常态”)
采用 3+1 设置的用例应该具有数据冗余,而操作系统的丢失可以轻松恢复,而数据可能优先于可用性。
1.1 设置:
3 个 3.8TB 硬盘组合或拆分。1 个 1.9TB 硬盘单独出售。
1.2 合作
- 如果安装程序对 3x3.8TB 使用冗余,则可能会发生中断,但不会造成数据故障
- 更大的数据容量
- 如果 OS 磁盘(1.9TB)损坏,就会发生中断。
- 单硬盘在服务器中存在计划风险和/或接受
- 如果像 Raid 0 那样使用这三个设备,您将拥有很多容量,但没有故障转移。
2. 拆分成最小的驱动器大小以实现冗余(“2 + 2,均使用 1.9 TB”)
用例可能是,两者都冗余。对于敏感和重要的数据和服务器来说,这很典型,它们应该在一个磁盘发生故障时运行。
2.1 设置:
2 个 3.8 TB,1 个 3.8 TB,使用了 50%,而在同一个池中使用了 1.9 TB,由于最小的驱动器很重要,这会将所有驱动器的最大大小限制为大约 1.9 TB。
2.2 合作
- 根据使用情况,一个或两个驱动器可能会发生故障,但系统仍可以运行
- 如果使用镜像,则每个池中的一个驱动器可能会发生故障,并且数据仍然可用
- 在镜像中:50% 的空间损失,而整体容量仅限于实际场景中最小的驱动器。但可用性更好
- 在分割(如 raid 0)中没有冗余。如果 2 个池中的一个磁盘
3.1 使用不平等的驱动器
在我看来,如果你不在乎的话,这就是用例。 Ceph 可以处理这个问题,但它会有一些影响。
3.2 设置
一个集群中的所有可用磁盘,无论其大小如何。
- 3 个 3.8TB 和一个 1.9TB
3.2 合作
在 Ceph 擦除编码 (EC) 设置中,磁盘不一定需要具有相同的大小,但存在一些限制和注意事项:
片段大小:在擦除编码期间将数据划分为的片段大小由配置决定。应选择与磁盘大小一致的片段大小,以实现高效利用。
奇偶校验分布:在具有双奇偶校验的 EC 配置中,数据被分成片段并分布在各个 OSD 上,奇偶校验位也是如此。在这样的设置中,只要片段和奇偶校验信息可以均匀分布在 OSD 上,OSD 就可以具有不同的磁盘大小。
效率:为了最大限度地提高存储效率并尽量减少磁盘大小不均的影响,通常建议使用大小相似的磁盘。这有助于计算碎片并确保数据和奇偶校验在 OSD 之间均匀分布。
总的来说,可以在 Ceph EC 配置中使用不同大小的磁盘,但应选择磁盘大小以避免影响系统效率并实现数据均匀分布。
概述
袭击 | 描述 | 最低 HDD 数量 | Ceph 配置 | 最低 HDD 数量 |
---|---|---|---|---|
RAID 0 | 条纹 | 硬盘:2 | 条纹政策 | 硬盘:2 |
RAID 1 | 镜像 | 硬盘:2 | 复制模式 | 硬盘:2 |
RAID 5 | 具有分布式奇偶校验的块级条带化 | 硬盘:3(最少) | 擦除编码(EC) | 硬盘:4 (最少) |
RAID 6 | 具有双分布式奇偶校验的块级条带化 | 硬盘:4 (最少) | 具有双重奇偶校验的擦除编码 (EC) | 硬盘:6 (最少) |
- 我添加了 Raidlevel 来帮助那些大多数不处理 Ceph 的人了解 Ceph;)
另外,恕我直言:请注意,这个问题的答案可能或只能基于意见而不是事实。在典型情况下,建议在与数据存储位于同一集群中时使用最大上限为 3x3.8TB 的冗余。并为操作系统使用单个 NVMe 磁盘。这样做的原因是,使用较小的尺寸可能会导致容量较低和数据丢失的可能性较高,而使用更多磁盘则会提高可靠性。但是,如果不知道您的具体需求,很难给出具体的建议。在大多数情况下,对于 3+1 设置,其中一个数据磁盘将在单个操作系统磁盘之前发生故障,这主要是由于工作负载。
和往常一样,它可能不会直接回答你的问题,但如果你发现它有用,我会很高兴,并为这个答案点赞;-)