我有一个5节点的Proxmox集群,使用Ceph作为主VM存储后端。size池当前配置为5(每个节点每个OSD有一个数据副本)和一个min_size为1。由于size设置很高,池中的许多可用空间被用于存储不必要的副本(Proxmox 5节点集群只能同时保持两个节点故障),因此我的目标是通过更改池本身的设置将size参数减少到3,从而增加可用池空间。
我已经阅读了Proxmox和Ceph文档,但是找不到减少活动池中的size参数的信息。我确实找到了设置size参数的命令,但不确定可能遇到的任何潜在问题,也不确定是否可能减少活动池上的size。不幸的是,我也不能运行任何测试,因为池在生产中运行。
我已经考虑过简单地创建一个具有适当参数的新池,但如果可以的话,我更愿意节省将数据从一个池迁移到另一个池的时间。
提前谢谢。
编辑:
root@node1:~# ceph osd pool ls detail
pool 4 'ceph-5' replicated size 5 min_size 1 crush_rule 0 object_hash rjenkins pg_num 512 pgp_num 512 autoscale_mode warn last_change 42673 flags hashpspool,selfmanaged_snaps stripe_width 0 application rbd发布于 2021-01-29 08:19:15
在擦除编码池中,不能缩小池的大小,这仅对复制池来说是可能的。由于您提到了一个min_size 1,所以您可能有一个复制池。你能通过在你的问题中加入ceph osd pool ls detail来确认吗?如有必要,掩蔽任何敏感数据。
改变池的大小不应该太具有侵入性,但是当然,这在很大程度上取决于实际的负载和性能,因为它会导致一些数据移动。顺便说一句,不要使用min_size 1,而是使用2,即使大小为3。如果某些磁盘/服务器出现故障,并且只剩下一个副本,但客户端仍然能够写入集群,则可能会导致数据丢失。在min_size为2的情况下,I/O在只有1个副本之前就会停止,直到您恢复为止。但是数据丢失的风险降低了。
https://serverfault.com/questions/1051573
复制相似问题