列出存储池
ceph osd lspools
创建存储池
要创建一个存储池,执行:ceph osd pool create {pool-name} {pg-num} [{pgp-num}] [replicated] \[crush-ruleset-name] [expected-num-objects]ceph osd pool create {pool-name} {pg-num} {pgp-num} erasure \[erasure-code-profile] [crush-ruleset-name] [expected_num_objects]参数含义如下:{pool-name}描述: 存储池名称,必须唯一。类型: String是否必需: 必需。{pg-num}描述: 存储池拥有的归置组总数。关于如何计算合适的数值,请参见归置组。默认值 8 对大多数系统都不合适。类型: 整数是否必需: Yes默认值: 8{pgp-num}描述: 用于归置的归置组总数。此值应该等于归置组总数,归置组分割的情况下除外。类型: 整数是否必需: 没指定的话读取默认值、或 Ceph 配置文件里的值。默认值: 8{replicated|erasure}描述: 存储池类型,可以是副本(保存多份对象副本,以便从丢失的 OSD 恢复)或纠删(获得类似 RAID5 的功能)。多副本存储池需更多原始存储空间,但已实现所有 Ceph 操作;纠删存储池所需原始存储空间较少,但目前仅实现了部分 Ceph 操作。类型: String是否必需: No.默认值: replicated[crush-ruleset-name]描述: 此存储池所用的 CRUSH 规则集名字。指定的规则集必须存在。类型: String是否必需: No.默认值: 对于多副本( replicated )存储池来说,其默认规则集由 osd pool default crush replicated ruleset 配置决定,此规则集必须存在。 对于用 erasure-code 编码的纠删码( erasure )存储池来说,不同的 {pool-name} 所使用的默认( default )纠删码配置是不同的,如果它不存在的话,会显式地创建它。[erasure-code-profile=profile]描述: 仅用于纠删存储池。指定纠删码配置框架,此配置必须已由 osd erasure-code-profile set 定义。类型: String是否必需: No.创建存储池时,要设置一个合理的归置组数量(如 100 )。也要考虑到每 OSD 的归置组总数,因为归置组很耗计算资源,所以很多存储池和很多归置组(如 50 个存储池,各包含 100 归置组)会导致性能下降。收益递减点取决于 OSD 主机的强大。如何为存储池计算合适的归置组数量请参见归置组。[expected-num-objects]描述: 为这个存储池预估的对象数。设置此值(要同时把 filestore merge threshold 设置为负数)后,在创建存储池时就会拆分 PG 文件夹,以免运行时拆分文件夹导致延时增大。类型: Integer是否必需: No.默认值: 0 ,创建存储池时不拆分目录。
设置存储池配额
存储池配额可设置最大字节数、和/或每存储池最大对象数。ceph osd pool set-quota {pool-name} [max_objects {obj-count}] [max_bytes {bytes}]例如:ceph osd pool set-quota data max_objects 10000要取消配额,设置为 0 。
删除存储池
要删除一存储池,执行:ceph osd pool delete {pool-name} [{pool-name} --yes-i-really-really-mean-it]如果你给自建的存储池创建了定制的规则集,你不需要存储池时最好删除它。如果你曾严格地创建了用户及其权限给一个存储池,但存储池已不存在,最好也删除那些用户
重命名存储池
要重命名一个存储池,执行:ceph osd pool rename {current-pool-name} {new-pool-name}如果重命名了一个存储池,且认证用户有每存储池能力,那你必须用新存储池名字更新用户的能力(即 caps )。Note 适用 0.48 Argonaut 及以上。
查看存储池统计信息
要查看某存储池的使用统计信息,执行命令:
rados df
拍下存储池快照
要拍下某存储池的快照,执行命令:
ceph osd pool mksnap {pool-name} {snap-name}Note 适用 0.48 Argonaut 及以上。
删除存储池快照
要删除某存储池的一个快照,执行命令:
ceph osd pool rmsnap {pool-name} {snap-name}Note 适用 0.48 Argonaut 及以上。
调整存储池选项值
要设置一个存储池的选项值,执行命令:ceph osd pool set {pool-name} {key} {value}
你可以设置下列键的值:size描述: 设置存储池中的对象副本数,详情参见设置对象副本数。仅适用于副本存储池。类型: 整数min_size描述: 设置 I/O 需要的最小副本数,详情参见设置对象副本数。仅适用于副本存储池。类型: 整数适用版本: 0.54 及以上。crash_replay_interval描述: 允许客户端重放确认而未提交请求的秒数。类型: 整数pgp_num描述: 计算数据归置时使用的有效归置组数量。类型: 整数有效范围: 等于或小于 pg_num 。crush_ruleset描述: 集群内映射对象归置时使用的规则集。类型: 整数hashpspool描述: 给指定存储池设置/取消 HASHPSPOOL 标志。类型: 整数有效范围: 1 开启, 0 取消适用版本: 0.48 及以上。nodelete描述: 给指定存储池设置/取消 NODELETE 标志。类型: 整数有效范围: 1 开启, 0 取消适用版本: Version FIXMEnopgchange描述: 给指定存储池设置/取消 NOPGCHANGE 标志。类型: 整数有效范围: 1 开启, 0 取消适用版本: Version FIXMEnosizechange描述: 给指定存储池设置/取消 NOSIZECHANGE 标志。类型: 整数有效范围: 1 开启, 0 取消适用版本: Version FIXMEwrite_fadvise_dontneed描述: 设置或取消指定存储池的 WRITE_FADVISE_DONTNEED 标志。类型: Integer有效范围: 1 开启, 0 取消noscrub描述: 设置或取消指定存储池的 NOSCRUB 标志。类型: Integer有效范围: 1 设置, 0 取消nodeep-scrub描述: 设置或取消指定存储池的 NODEEP_SCRUB 标志。类型: Integer有效范围: 1 开启, 0 取消hit_set_type描述: 启用缓存存储池的命中集跟踪,详情见 Bloom 过滤器。类型: String有效值: bloom, explicit_hash, explicit_object默认值: bloom ,其它是用于测试的。hit_set_count描述: 为缓存存储池保留的命中集数量。此值越高, ceph-osd 守护进程消耗的内存越多。类型: 整数有效范围: 1. Agent doesn’t handle > 1 yet.hit_set_period描述: 为缓存存储池保留的命中集有效期。此值越高, ceph-osd 消耗的内存越多。类型: 整数实例: 3600 1hrhit_set_fpp描述: bloom 命中集类型的假阳性概率。详情见 Bloom 过滤器。类型: Double有效范围: 0.0 - 1.0默认值: 0.05cache_target_dirty_ratio描述: 缓存存储池包含的脏对象达到多少比例时就把它们回写到后端的存储池。类型: Double默认值: .4cache_target_dirty_high_ratio描述: 缓存存储池内包含的已修改(脏的)对象达到此比例时,缓存层代理就会更快地把脏对象刷回到后端存储池。类型: Double默认值: .6cache_target_full_ratio描述: 缓存存储池包含的干净对象达到多少比例时,缓存代理就把它们赶出缓存存储池。类型: Double默认值: .8target_max_bytes描述: 达到 max_bytes 阀值时 Ceph 就回写或赶出对象。类型: 整数实例: 1000000000000 #1-TBtarget_max_objects描述: 达到 max_objects 阀值时 Ceph 就回写或赶出对象。类型: 整数实例: 1000000 #1M objectshit_set_grade_decay_rate描述: 在两个连续 hit_sets 间的热度衰退速率。类型: Integer有效范围: 0 - 100默认值: 20hit_set_grade_search_last_n描述: 计算热度时,在 hit_sets 里最多计数 N 次。类型: Integer有效范围: 0 - hit_set_count默认值: 1cache_min_flush_age描述: 达到此时间(单位为秒)时,缓存代理就把某些对象从缓存存储池刷回到存储池。类型: 整数实例: 600 10mincache_min_evict_age描述: 达到此时间(单位为秒)时,缓存代理就把某些对象从缓存存储池赶出。类型: 整数实例: 1800 30minfast_read描述: 在纠删码存储池上,如果打开了这个标志,读请求会向所有分片发送子操作读,然后等着,直到收到的分片足以解码给客户端。对 jerasure 和 isa 纠删码插件来说,只要前 K 个请求返回,就能立即解码、并先把这些数据发给客户端。这样有助于资源折衷,以提升性能。当前,这些标志还只能用于纠删码存储池。类型: Boolean默认值: 0scrub_min_interval描述: 在负载低时,洗刷存储池的最大间隔秒数。如果是 0 ,就按照配置文件里的 osd_scrub_min_interval 。类型: Double默认值: 0scrub_max_interval描述: 不管集群负载如何,都要洗刷存储池的最大间隔秒数。如果是 0 ,就按照配置文件里的 osd_scrub_max_interval 。类型: Double默认值: 0deep_scrub_interval描述: “深度”洗刷存储池的间隔秒数。如果是 0 ,就按照配置文件里的 osd_deep_scrub_interval 。类型: Double默认值: 0
获取存储池选项值
要获取一个存储池的选项值,执行命令:ceph osd pool get {pool-name} {key}
你可以获取到下列选项的值:size描述: 见 size类型: 整数min_size描述: 见 min_size类型: 整数适用版本: 0.54 及以上crash_replay_interval描述: 见 crash_replay_interval类型: 整数pgp_num描述: 见 pgp_num类型: 整数有效范围: 小于等于 pg_num 。crush_ruleset描述: 见 crush_ruleset类型: 整数hit_set_type描述: 见 hit_set_type类型: String有效选项: bloom 、 explicit_hash 、 explicit_objecthit_set_count描述: 见 hit_set_count类型: 整数hit_set_period描述: 见 hit_set_period类型: 整数hit_set_fpp描述: 见 hit_set_fpp类型: Doublecache_target_dirty_ratio描述: 见 cache_target_dirty_ratio类型: Doublecache_target_dirty_high_ratio描述: 见 cache_target_dirty_high_ratio类型: Doublecache_target_full_ratio描述: 见 cache_target_full_ratio类型: Doubletarget_max_bytes描述: 见 target_max_bytes类型: 整数target_max_objects描述: 见 target_max_objects类型: 整数cache_min_flush_age描述: 见 cache_min_flush_age类型: 整数cache_min_evict_age描述: 见 cache_min_evict_age类型: 整数fast_read描述: 见 fast_read类型: Booleanscrub_min_interval描述: 见 scrub_min_interval类型: Doublescrub_max_interval描述: 见 scrub_max_interval类型: Doubledeep_scrub_interval描述: 见 deep_scrub_interval类型: Double
设置对象副本数
要设置多副本存储池的对象副本数,执行命令:ceph osd pool set {poolname} size {num-replicas}Important {num-replicas} 包括对象自身,如果你想要对象自身及其两份拷贝共计三份,指定 3 。例如:ceph osd pool set data size 3你可以在每个存储池上执行这个命令。注意,一个处于降级模式的对象其副本数小于规定值 pool size ,但仍可接受 I/O 请求。为保证 I/O 正常,可用 min_size 选项为其设置个最低副本数。例如:ceph osd pool set data min_size 2这确保数据存储池里任何副本数小于 min_size 的对象都不会收到 I/O 了。
获取对象副本数
要获取对象副本数,执行命令:
ceph osd dump | grep 'replicated size'
Ceph 会列出存储池,且高亮 replicated size 属性。默认情况下, Ceph 会创建一对象的两个副本(一共三个副本,或 size 值为 3 )。
[root@c4 ceph-cluster]# ceph osd pool get default.rgw.control allsize: 2min_size: 1pg_num: 8pgp_num: 8crush_rule: replicated_rulehashpspool: truenodelete: falsenopgchange: falsenosizechange: falsewrite_fadvise_dontneed: falsenoscrub: falsenodeep-scrub: falseuse_gmt_hitset: 1auid: 18446744073709551615fast_read: 0
