docker笔记43-ceph pool管理

     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 的副本数量





请使用浏览器的分享功能分享到微信等