Ceph использует алгоритм CRUSH для сопоставления PG->OSD и отлично работает для увеличения/уменьшения узлов OSD.
Но для отображения obj->PG Ceph по-прежнему использует традиционный хеш, который равен pgid = hash(obj_name) % pg_num
. Такой подход может привести к массовой миграции данных, если мы изменим количество PG, даже снизим доступность системы.
Почему Ceph не использует CRUSH algirhtm (скажем, slice2) для сопоставления obj->PG, которое могло бы иметь оптимальный объем миграции данных при изменении количества PG?