这篇文章将为大家详细讲解有关ceph常用命令之pool相关命令有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
1.1 查询系统中所有的pool
命令格式:
ceph osd lspools
或rados lspools
1.2 创建pool
(1) 指定pg数目、pgp数目等创建pool
命令格式:
ceph osd pool create <poolname>{pg-num}{pgp-num} {replicated|erasure} {<erasure_code_profile>} {<ruleset>}
命令含义:
Pool分为replicated pool和erasure code pool,replicate pool以多副本的方式提供数据备份,EC pool使用纠删码方式提供数据安全
创建erasure pool还可以指定erasure_code_profile,erasure_code_profile 使用命令osd erasure-code-profile set指定,erasure-code-profile参数含义:
directory=<dir> \ # plugin directory absolute path
plugin=jerasure \ # plugin name (only jerasure)
k=<k> \ # data chunks (default 2)
m=<m> \ # coding chunks (default 2)
technique=<technique> \ # coding technique
Jerasure 是多种Erasure Coding算法的一个开源库,采用C/C++实现,活跃很高,且使用广,technique可选项:reed_sol_van, reed_sol_r6_op, cauchy_orig, cauchy_good, liberation, blaum_roth and liber8tion.
每个pg占用一定内存和CPU、且PG数目的增加会增加peer数目,因此每个pool配置的PG数目有一定的限制,否则会影响整个集群的性能,每个pool大概需要的PG数目为:
(OSDs * 100)
Total PGs = ------------
OSD per object
OSD per object对于replicated pool来说为副本数,对于EC pool来说是k+m
(2) 指定uid创建pool
命令格式:
mkpool <pool-name> [123[ 4]]
命令含义:
创建pool,其拥有者uid为123,crush rule为4
1.3 修改pool参数
命令格式:
ceph osd pool set {pool-name} {key} {value}
命令含义:
Key值含义:
Size:pool副本数
min_size:pool最小副本数,当pool中object副本数小于min_size, object将停止接收I/O
crash_replay_interval: PG修复期间,运行客户端重放请求而不提交时间间隔(单位s,默认45s)
pgp_num:使用pgp_num计算pg id
crush_ruleset:pool使用的crush rule_id,ceph osd crush rule dump可查询所有配置的策略
auid:设置pool归属用户id
hit_set_type: cache命中跟踪类型设置,默认为bloom,其他的类型包括explicit_hash、explicit_object
hit_set_period:
hit_set_count:
hit_set_ fpp:bloom误检率
cache_target_dirty_ratio:默认.4,当cache脏数据到达40%,将脏数据刷到后端pool中
cache_target_full_ratio:默认.8,d当cache中数据量到达80%,将cache中冷数据删除
target_max_bytes:cache pool最大容量
target_max_objects:cache pool最大存储的object数目
cache_min_flush_age: object刷到后端pool的最小年龄,单位为s
cache_min_evict_age:object从cache中删除的最小年龄,单位为s
1.4 查询pool参数
命令格式:
osd pool get <poolname> size|min_size| crash_replay_interval|pg_num|pgp_num| crush_ruleset|
hit_set_type|hit_set_period|hit_set_count|hit_set_fpp|auid|target_max_objects|target_max_bytes|
cache_target_dirty_ratio|cache_target_full_ratio|cache_min_flush_age|cache_min_evict_age|erasure_code_profile
或者使用ceph osd dump |grep pool显示所有pool的参数
1.5 删除pool
命令格式:
ceph osd pool delete {pool-name} [{pool-name} \ [-yes-i-really-really-mean-it]
或
rados rmpool <pool-name> [<pool-name> --yes-i-really-really-mean-it]
命令含义:
删除pool,当pool有数据或者配置了用户等信息,需要将这些信息手动删除掉,否则强制删除后这些信息还会在
1.6 重命名pool
命令格式:
ceph osd pool rename {current-pool-name} {new-pool-name}
1.7 查询pool配额
命令格式:
ceph osd pool get-quota <poolname>
命令含义:
查询pool容量和最大object数目
1.8 设置pool配额
命令格式:
ceph osd pool set-quota <poolname> max_objects|max_bytes <val>
命令含义:
设置pool容量和最大object数目
1.9 查询pool属性
命令格式:
ceph osd pool stats {<poolname>}
1.10 创建pool快照
命令格式:
ceph osd pool mksnap <poolname> <snapname>
该命令等同于:
rados mksnap <snapname> -p <poolname>
命令含义: 对pool中所有的object做快照
1.11 查询pool快照
命令格式:
rados lssnap –p <poolname>
命令含义:
查询pool快照
1.12 pool快照回滚
命令格式:
rados rollback <obj-name> <snap-name> -p < poolname >
命令含义:目前只能针对pool中某个object进行回滚,不能整个pool回滚,我们可以考虑自己实现下?
1.13 cache pool配置和删除
(1) 将一个pool配置为另外一个pool cache命令:
ceph osd tier add <poolname> <cachepoolname>
或
osd tier add-cache <poolname> <cachepoolname> [cachepoolname size
(2) 设置cache pool模式:
ceph osd pool set <cachepoolname> cache-mode <val>
<val>一共有4个:
‘none’, ‘writeback’, ‘forward’, and ‘readonly’
‘writeback’和‘readonly’见2.3节
‘forward’将cache pool关闭之前,需要将cache pool模式改为’ forward’,不接收客户端的IO后,才将cache pool数据刷到后端pool
(3) 如果将cache pool工作模式设置为writeback‘,需要执行下面命令
Cache pool才能工作,目的将I/O映射到cache pool中
ceph osd tier set-overlay <poolname> <cachepoolname>
(4)将cache pool数据刷到后端pool
rados -p {cachepool} cache-flush-evict-all
(5)解除cache pool和后端pool对应关系
ceph osd tier remove-overlay <cachepoolname>
ceph osd tier remove <poolname> <cachepoolname>
关于“ceph常用命令之pool相关命令有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。