5.6 设置存储池配额
存储池配额可设置最大字节数、和/或每个存储池最大对象数。
ceph osd pool set-quota {pool-name} [max_objects {obj-count}] [max_bytes {bytes}]
例如:
ceph osd pool set-quota data max_objects 10000
要取消配额,设置为 0
即可。
5.7 给存储池做快照
要给某存储池做快照,执行命令:
ceph osd pool mksnap {pool-name} {snap-name}
5.8 删除存储池的快照
要删除某存储池的一个快照,执行命令:
ceph osd pool rmsnap {pool-name} {snap-name}
5.9 获取存储池选项值
要获取一个存储池的选项值,执行命令:
ceph osd pool get {pool-name} {key}
5.10 调整存储池选项值
要设置一个存储池的选项值,执行命令:
ceph osd pool set {pool-name} {key} {value}
常用选项介绍:
size
:设置存储池中的对象副本数,详情参见设置对象副本数。仅适用于副本存储池。min_size
:设置 I/O 需要的最小副本数,详情参见设置对象副本数。仅适用于副本存储池。pg_num
:计算数据分布时的有效 PG 数。只能大于当前 PG 数。pgp_num
:计算数据分布时使用的有效 PGP 数量。小于等于存储池的 PG 数。crush_ruleset
:hashpspool
:给指定存储池设置/取消 HASHPSPOOL 标志。target_max_bytes
:达到max_bytes
阀值时会触发 Ceph 冲洗或驱逐对象。target_max_objects
:达到max_objects
阀值时会触发 Ceph 冲洗或驱逐对象。scrub_min_interval
:在负载低时,洗刷存储池的最小间隔秒数。如果是 0 ,就按照配置文件里的 osd_scrub_min_interval 。scrub_max_interval
:不管集群负载如何,都要洗刷存储池的最大间隔秒数。如果是 0 ,就按照配置文件里的 osd_scrub_max_interval 。deep_scrub_interval
:“深度”洗刷存储池的间隔秒数。如果是 0 ,就按照配置文件里的 osd_deep_scrub_interval 。
5.11 设置对象副本数
要设置多副本存储池的对象副本数,执行命令:
ceph osd pool set {poolname} size {num-replicas}
重要: {num-replicas}
包括对象自身,如果你想要对象自身及其两份拷贝共计三份,指定 size 为 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 了。
5.12 获取对象副本数
要获取对象副本数,执行命令:
ceph osd dump | grep 'replicated size'
Ceph 会列出存储池,且高亮 replicated size
属性。默认情况下, Ceph 会创建一对象的两个副本(一共三个副本,或 size 值为 3 )。