当集群空间的 70% 至 80% 已满时,便有必要在其中添加更多的 OSD。增加 OSD 的数量时,可以考虑同时增加归置组的数量。
更改归置组 (PG) 的数量会导致在集群中传输大量的数据。
为最近调整大小的集群计算最佳值是一项复杂的任务。
如果 PG 数量较大,将会创建一些较小的数据块。在发生 OSD 故障后,这样可以加速恢复过程,但同时会对监视器节点施加大量的负荷,因为这些节点负责计算数据位置。
另一方面,如果 PG 数量较小,则发生 OSD 故障后,恢复系统所需的时间和数据传输量就会增加,但不会对监视器节点施加如此多的负荷,因为需要由这些节点计算位置的数据块更少(但更大)。
有关集群最佳 PG 数量的详细信息,请参见在线计算器。
一般而言,固态硬盘 (SSD) 的速度比普通硬盘要快。如果对同一写入操作混用这两种磁盘,SSD 磁盘的数据写入速度将会因普通硬盘的性能限制而减慢。因此,对于遵循相同规则的数据写入操作,切勿混用 SSD 和普通硬盘(有关数据存储规则的详细信息,请参见第 6.3 节 “规则组”)。
以下两种情况通常适合在同一集群上使用 SSD 和普通硬盘:
针对遵循不同规则的数据写入操作使用各自的磁盘类型。然后,您需要针对 SSD 磁盘和普通硬盘分别使用不同的规则。
针对特定目的使用各自的磁盘类型。例如,将 SSD 磁盘用于日记,将普通硬盘用于存储数据。
为 OSD 日记使用 SSD 有助于提高性能,因为在仅包含普通硬盘的 OSD 中,日记通常会成为瓶颈。SSD 往往用于共享多个 OSD 的日记。
下面列出了为 OSD 日记使用 SSD 的潜在弊端:
SSD 磁盘比普通硬盘更昂贵。但是,由于一个 OSD 日记最多只需要 6GB 磁盘空间,因此价格因素并不那么重要。
SSD 磁盘会占用存储插槽,而大容量普通硬盘可以利用这些插槽来扩展集群容量。
与普通硬盘相比,SSD 磁盘的写入周期更少,但最新的技术有望解决该问题。
如果在同一块 SSD 磁盘上共享更多的日记,则在 SSD 磁盘发生故障后,将会面临丢失所有相关 OSD 的风险。在这种情况下,将需要移动大量数据来重新平衡集群。
热插拔磁盘变得更复杂,因为有故障的 OSD 与日记磁盘之间不存在一对一的数据映射关系。
当某个存储集群数据的磁盘出现硬件问题而无法正常工作时,会发生以下情况:
相关的 OSD 将会崩溃,并自动从集群中删除。
有故障磁盘的数据会从其他 OSD 中的存储相同数据的其他副本复制到集群中的另一个 OSD。
然后,您应该从集群的 CRUSH 地图中删除该磁盘,并从主机硬件中移除其实体。
可将 Ceph 配置为在独立于 OSD 的设备上存储日记或预写式日志。如果专用于日记的磁盘发生故障,相关的 OSD 也会发生故障(请参见第 19.4 节 “磁盘出现故障时会发生什么情况?”)。
要大幅提升性能,可以使用高速磁盘(例如 SSD)来存储多个 OSD 的日记分区。不建议在一个磁盘上托管 4 个以上的 OSD 的日记,因为一旦日记磁盘发生故障,您就会面临所有相关 OSD 磁盘存储的数据都将丢失的风险。