创建存储池
# 创建副本池
ceph osd pool create 名称 pg-num pgp-num replicated
【例如:ceph osd pool create 名称 128 128 replicated】
# 创建纠删码池
ceph osd pool create 名称 pg-num pgp-num erasure
【例如:ceph osd pool create 名称 256 256 erasure】
补充:
- pg_num:
- 创建PG的数量
- 启用pg自动缩放时,允许集群根据预期集群利用率和预期池利用率,对每个池的pg数量(pgp_num)进行建议或自动调整
- pgp_num:
- 用于放置目的的pg总数。应等于pg总数,除非在pg-num增加或减少时短暂增加或减少
查看存储池
# 查看存储池的名称列表
ceph osd pool ls
# 查看存储池的列表详细信息
ceph osd pool ls detail
# 查看存储池的名称列表并显示存储池的编号
ceph osd lspools
# 查看存储池的使用空间
rados df
# 查看指定存储池的I/O拷贝信息
ceph osd pool stats 存储池名称
# 查看OSD的信息同时查看存储池相关信息
ceph osd dump | grep pool
修改存储池信息
# 查看存储池的指定属性
ceph osd pool ls detail
# 查看指定存储池大小和内存
ceph osd pool get 存储池名称 size
ceph osd pool get 存储池名称 pg_num
# 禁止pg数量自动伸缩
ceph osd pool get 存储池名称 pg_autoscale_mode
# 修改pg数量
ceph osd pool set 存储池名称 pg_num 256
# 查看pg数量
ceph osd pool get 存储池名称 pg_num
删除存储池
1、nodelete
# 查看存储池目前状态
ceph osd pool get 存储池名称 nodelete
# 修改存储池的状态
ceph osd pool set 存储池名称 nodelete true
2、mon_allow_pool_delete
# 设置所有的类型为true,即都可被删除
ceph tell mon.* injectargs --mon_allow_pool_delete=true
# 删除存储池
ceph osd pool delete 存储池名称 存储池名称 --yes-i-really-really-mean-it
知识点补充:
一旦一个存储池呗删除,那么该存储池的所有数据都会被删除且无法返回,因此为了安全起见,ceph有两种保护机制:"nodelete"
和"mon_allow_pool_delete"
- nodelete:一旦一个存储池被打上该标记,则意味着存储池不可被删除,默认为false
- mon_allow_pool_delete:告诉所有mon组件,可以删除存储池
为了安全起见,建议大家将存储池设置为nodelete的属性为"ture",mon_allow_pool_delete的值为false。【这里的设置都是不可被删除的情况】