11

推奨値でCephを構成しました(ドキュメントの式を使用)。3 つの OSD があり、構成 (モニター ノードと 3 つの OSD すべてに配置した) には次のものが含まれます。

osd pool default size = 2
osd pool default min size = 1
osd pool default pg num = 150
osd pool default pgp num = 150

実行すると、次のようceph statusになります。

 health HEALTH_WARN
        too many PGs per OSD (1042 > max 300)

これは、2 つの理由で混乱を招きます。まず、推奨される式が Ceph を満たしていなかったためです。2 番目に、最も不可解なのは、私の構成では 150 と表示されているのに、OSD ごとに 1042 の PG があると表示されていることです。

私は何を間違っていますか?

4

2 に答える 2

15

PG カウントを設定する前に、3 つのことを知っておく必要があります。

1.OSDの数

ceph osd ls

Sample Output:
 0
 1
 2
 
 Here Total number of osd is three.

2. プール数

ceph osd pool lsまたrados lspools

Sample Output:
  rbd
  images
  vms
  volumes
  backups
     
Here Total number of pool is five.

3. 複製数

ceph osd dump | grep repli

Sample Output:
 pool 0 'rbd' replicated size 2 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 38 flags hashpspool stripe_width 0
 pool 1 'images' replicated size 2 min_size 2 crush_ruleset 1 object_hash rjenkins pg_num 30 pgp_num 30 last_change 40 flags hashpspool stripe_width 0
 pool 2 'vms' replicated size 2 min_size 2 crush_ruleset 1 object_hash rjenkins pg_num 30 pgp_num 30 last_change 42 flags hashpspool stripe_width 0
 pool 3 'volumes' replicated size 2 min_size 2 crush_ruleset 1 object_hash rjenkins pg_num 30 pgp_num 30 last_change 36 flags hashpspool stripe_width 0
 pool 4 'backups' replicated size 2 min_size 2 crush_ruleset 1 object_hash rjenkins pg_num 30 pgp_num 30 last_change 44 flags hashpspool stripe_width 0

You can see each pool has replication count two.

では、計算に入りましょう

計算:

合計 PG の計算:

Total PGs = (Total_number_of_OSD * 100) / max_replication_count

This result must be rounded up to the nearest power of 2.

例:

OSD の数: 3
レプリケーション数の数: 2

合計 PG = (3 * 100) / 2 = 150. 150 から 2 の最も近い累乗は 256 です。

したがって、推奨される最大 PG は 256 です。

プールごとに PG を設定できます

プールごとの合計 PG の計算:

Total PGs = ((Total_number_of_OSD * 100) / max_replication_count) / pool count

This result must be rounded up to the nearest power of 2.

例:

OSD の数: 3
レプリケーション数の数: 2
プールの数: 5

合計 PG = ((3 * 100) / 2 ) / 5 = 150 / 5 = 30 . 30 の 2 の最も近い累乗は 32 です。

したがって、プールあたりの PG の合計数は 32 です。

2 の累乗表:

2^0     1
2^1     2
2^2     4
2^3     8
2^4     16
2^5     32
2^6     64
2^7     128
2^8     256
2^9     512
2^10    1024

便利なコマンド

ceph osd pool create <pool-name> <pg-number> <pgp-number> - To create a new pool

ceph osd pool get <pool-name> pg_num - To get number of PG in a pool

ceph osd pool get <pool-name> pgp_num - To get number of PGP in a pool

ceph osd pool set <pool-name> pg_num <number> - To increase number of PG in a pool

ceph osd pool set <pool-name> pgp_num <number> - To increase number of PGP in a pool

*usually pg and pgp number is same
于 2017-01-01T19:42:25.853 に答える