Расчет количества групп размещения (PG) Ceph
Количество групп размещения влияет на потребление ресурсов в кластере и скорость выполнения служебных операций:
- чем меньше групп размещения, тем дольше выполняются операции перемещения данных (
recover,rebalance,backfill). - чем больше групп размещения, тем выше потребление RAM и CPU.
Количество групп размещения рассчитывается не для всего кластера, а для всех OSD в конкретном правиле CRUSH и типе накопителя. Если в кластере несколько типов накопителей, выполните расчет для каждого типа.
Количество групп размещения (PG, Placement Group) в пуле рассчитывается по формулам:
Здесь:
- — целевое количество групп размещения на OSD. Рекомендации по выбору значения — в разделе Целевое количество групп размещения на OSD.
- — количество OSD в правиле CRUSH.
- — доля потребления данных пулом относительно других пулов. Задается дробным числом от 0 до 1. Сумма долей всех пулов должна быть равна 1.
- — фактор репликации. В стандартных случаях — 3.
- — промежуточное значение для расчета количества групп размещения.
- — итоговое количество групп размещения в пуле. Получается округлением вверх до ближайшей степени двойки и задается параметрами
pg_numиpgp_num. Степени двойки приведены в таблице 3.
Целевое количество групп размещения на OSD — от 100 до 300.
Ориентируйтесь на следующие значения:
- 100 — если кластер статичный и рост не планируется;
- 150 — если планируется рост емкости более чем на 50%;
- 200 — если планируется рост емкости более чем на 100%;
- 300 — если используются OSD объемом более 8 ТБ.
Примеры ниже приведены для накопителей SSD.
Количество OSD | Фактор репликации | Целевое количество групп размещения на OSD | Пул | Доля | Количество групп размещения | Всего групп размещения |
|---|---|---|---|---|---|---|
48 | 3 | 100 | cinder-volumes | 0,8 | 2048 | 2432 |
manila-volumes | 0,15 | 256 | ||||
vms-ephemeral | 0,05 | 128 |
Расчет для пула cinder-volumes:
Расчет для пула manila-volumes:
Расчет для пула vms-ephemeral:
Количество OSD | Фактор репликации | Целевое количество групп размещения на OSD | Пул | Доля | Количество групп размещения | Всего групп размещения |
|---|---|---|---|---|---|---|
144 | 3 | 150 | cinder-volumes | 0,95 | 8192 | 8704 |
vms-ephemeral | 0,05 | 512 |
Расчет для пула cinder-volumes:
Расчет для пула vms-ephemeral:
n | 2^n |
|---|---|
0 | 1 |
1 | 2 |
2 | 4 |
3 | 8 |
4 | 16 |
5 | 32 |
6 | 64 |
7 | 128 |
8 | 256 |
9 | 512 |
10 | 1024 |
11 | 2048 |
12 | 4096 |
13 | 8192 |
14 | 16384 |
15 | 32768 |
16 | 65536 |
17 | 131072 |
18 | 262144 |
19 | 524288 |
20 | 1048576 |