我使用推荐值配置了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
Run Code Online (Sandbox Code Playgroud)
当我跑步时,ceph status我得到:
health HEALTH_WARN
too many PGs per OSD (1042 > max 300)
Run Code Online (Sandbox Code Playgroud)
由于两个原因,这令人困惑.首先,因为推荐的配方不满足Ceph.其次,最令人费解的是,当我的配置为150时,它表示每个OSD有1042个PG.
我究竟做错了什么?
raj*_*alx 10
在设置PG计数之前,您需要了解3件事.
1. OSD数量
ceph osd ls
Sample Output:
0
1
2
Here Total number of osd is three.
Run Code Online (Sandbox Code Playgroud)
2.池数
ceph osd pool ls 要么 rados lspools
Sample Output:
rbd
images
vms
volumes
backups
Here Total number of pool is five.
Run Code Online (Sandbox Code Playgroud)
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.
Run Code Online (Sandbox Code Playgroud)
现在让我们进入计算
Total PGs = (Total_number_of_OSD * 100) / max_replication_count
This result must be rounded up to the nearest power of 2.
Run Code Online (Sandbox Code Playgroud)
例:
OSD否:3
复制计数:2
总PGs =(3*100)/ 2 = 150.最近的150到2的功率是256.
所以最大推荐PG为256
您可以为每个池设置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.
Run Code Online (Sandbox Code Playgroud)
例:
OSD否:3
复制计数:2
池数:5
总PGs =((3*100)/ 2)/ 5 = 150/5 = 30.最近的30到2的力是32.
所以每个游泳池的总数是32.
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
Run Code Online (Sandbox Code Playgroud)
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 poo
*usually pg and pgp number is same
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7806 次 |
| 最近记录: |