问题描述
在 ceph 中创建池时,我这边会自动设置最大可用空间,无需任何配置。它是如何确定的?如果需要,有没有办法增加池大小,而无需添加额外的硬件。
解决方法
可用空间由磁盘数量、每个 OSD 存储的数据量、设备类别和副本数量决定。您还可以设置池配额,但我认为这不是您要解决的问题。可用空间最少的 OSD 基本上决定了预测。因此,如果您的最大(或最小)OSD 剩余 1TB 可用空间并且您的副本数为 3(池大小),那么该设备类(例如 hdd
)中的所有池都将具有该限制:
number of OSDs * free space / replica count
当然,该值可能会发生变化,例如,如果 PG 均等地平衡,或者如果您更改了复制大小(或使用了不同的 EC 配置文件)。但是由于您不会在生产集群中这样做(更改副本大小)并且希望仔细规划您的架构,因此唯一真正的选择确实是添加更多磁盘以增加可用空间。但这就是 Ceph 的设计方式,因此横向扩展效果很好,甚至会提高性能。