pool的好处
1. 弹性:由于pool可以设置副本数,所以可以容忍一定数量的osd失效。
2. pg:可以设置pool的最大pg数量。一般来说,每个osd建议设置100pg,但是pg总数要除以副本数。例如,有10个osd,size设置为4,那么pg应该设置为(100*10)/4=250
3. 自定义crush rules
4. 快照:可以为pool设置快照,获取特定时期的状态
列出pool
ceph osd lspools
创建pool
创建pool之前,要先了解pool的pg数策略。每个osd建议设置100pg,但是pg总数要除以副本数。例如,有10个osd,size设置为4,那么pg应该设置为(100*10)/4=250 。官方建议重写ceph配置文件里默认的pg数量,因为默认值不好。
osd pool default pg num = 100
osd pool default pgp num = 100
创建pool
ceph osd pool create {pool-name} {pg-num} [{pgp-num}] [replicated] \
[crush-rule-name] [expected-num-objects]
ceph osd pool create {pool-name} {pg-num} {pgp-num} erasure \
[erasure-code-profile] [crush-rule-name] [expected_num_objects]
{pool-name}
- 描述:pool的名称,一定要不重复
- 类型:string
- 必需:yes
{pg-num}
- 描述:pool的pg总数,默认为8,基本不能满足要求,所以一般要重写
- 类型:Integer
- 必需:yes
- default 8
{pgp-num}
- 描述:搞不清楚是啥,但是一定要等于pg-num
- 类型:Integer
- 必需:yes,如果ceph配置文件没写就会用默认值
- default 8
{size}
- 描述:副本数
- 类型:Integer
- 必需:yes
- default 3
{min_size}
- 描述:最小副本数
- 类型:Integer
- 必需:yes
- default 3
删除pool
ceph osd pool delete {pool-name} [{pool-name} --yes-i-really-really-mean-it]
想要删除pool,ceph配置文件里的mon_allow_pool_delete必须设置为true,否则无法删除pool
重命名pool
ceph osd pool rename {current-pool-name} {new-pool-name}
如果你想重命名一个pool,但是有个user配置了原pool的权限,你需要先更新这个user的权限设置为新pool。
查看pool状态
rados df
ceph df
做pool快照
ceph osd pool mksnap {pool-name} {snap-name}
删除快照
ceph osd pool rmsnap {pool-name} {snap-name}
查看pool属性
ceph osd pool get {pool-name} {key}
ceph osd pool get rbd size
不知道key怎么办?可以把key换为all,这样就可以看到所有属性
设置pool属性
ceph osd pool set {pool-name} {key} {value}
ceph osd pool set rbd size 2