pool 是由逻辑组组成,用来存储数据,池用来管理组的数量,副本的梳理以及池的crush ,如果要使用池来管理数据,需要提供身份信息用于验证是否有权限使用池。
pg是placement group的缩写。
当 ceph 集群接收到数据存储请求时,它被分散到各个 PG 中,根据 ceph 复制级别,每个 pg 的数据会被复制并分发到 ceph 集群的多个 osd , 可以将 PG 看作⼀个逻辑容器,这个容器里包含多个对象, 这个逻辑容器将被映射到多个 osd 上面去。
从上到下:
pool-pg-osd-disk
创建 pool 如何设置 pg?
建议:少于 5 个 osds时,设置128个pg
5-10osds,设置512个pg。
10-50 osds,设置1024个pg。
查看我们有哪些pool:
[root@k8s-node3 ~]# ceph osd pool ls rbd
查看rbd这个pool里面有几个pg:
[root@k8s-node3 ~]# ceph osd pool get rbd pg_num pg_num: 64
修改pg个数 :
[root@k8s-node3 ~]# ceph osd pool set rbd pg_num 128 set pool 0 pg_num to 128
CRUSH maps CRUSH 是允许 Ceph 在没有性能瓶颈的情况下扩展的重要组成部分,不受可扩展性的限制,并且没有单点故障。 CRUSH 映射将群集的物理拓扑结构提供给CRUSH 算法,以确定应存储对象及其副本的数据的位置。
查看pool类型
[root@k8s-node3 ~]# ceph osd crush rule list [ "replicated_ruleset" ]
类型包含两种:
replicated
和erasure,一个是复制,另⼀个是擦除池。
查看某⼀个 pool 配额
[root@k8s-node3 ~]# ceph osd pool get-quota rbd ##rbd是Pool的名字 quotas for pool 'rbd': max objects: N/A max bytes : N/A
设置pool的配额
可以设置每⼀个池最⼤的存储字节, 同时你也可以设置最⼤的 objects
ceph osd pool set-quota (poolname) max_obejcts 200 ceph osd pool set-quota (poolname) max_bytes 1000000
删除⼀个池的操作
ceph osd pool delete vm vm --yes-i-really-really-mean-it #vm是pool的名字
重命名pool
ceph osd pool rename dddd bb
查看⼀个 pool 状态
[root@k8s-node3 ~]# rados df POOL_NAME USED OBJECTS CLONES COPIES MISSING_ON_PRIMARY UNFOUND DEGRAED RD_OPS RD WR_OPS WR rbd 0 0 0 0 0 0 0 0 0 0 0 total_objects 0 total_used 38354M total_avail 19371M total_space 57726M
pool 创建⼀个快照
ceph osd pool mksnap test test-snap
删除⼀个 pool 快照
ceph osd pool rmsnap test -test-snap
获取⼀个 pool 的相关信息
ceph osd pool get (poolname) {key} {key}=pg_num,size min_size
设置⼀个 pool 的副本数量
ceph osd pool set test size 2 #设置为2个副本 ceph osd pool get test size 获取 test pool 的副本数量