• ceph块存储


    一.  创建镜像:

    1、创建存储池:

    1. [root@node2 ~]# ceph osd pool create cephrbd 128
    2. 这里,cephrbd 是存储池的名称。
    3. 通常在创建pool之前,需要覆盖默认的pg_num,官方推荐:
    4. 若少于5个osD,设置 pg_num 为128
    5. 5~10个oSD,设置 pg_num 为512
    6. 10~50个osD,设置 pg_num 为4096
    7. 超过50个osD,可以参考pgcalc计算。

    创建默认的rbd池:

    1. [root@node2 ~]# ceph osd pool create rbd 128
    2. ## 启动存储出
    3. [rootenode2 ~]# ceph osd pool application enable rbd(存储池名称) rbd
    4. (存储池关联的应用类型)
    5. 存储池关联的应用类型: rbd表示块设备存储类型
    6. cephfs表示文件存储类型
    7. rgw表示对象存储类型

    2、查看存储池:

    1. [root@node2 ~]# ceph osd lspools
    2. [root@node2 ~]# ceph osd pool ls
    3. ## 获取池用量统计数据
    4. [root@node2 ~]# ceph df
    5. ## 获取osd上磁盘使用量统计数据
    6. [root@node2 ~]# ceph osd df
    7. ## 获取池性能统计数据
    8. [root@node2 ~]# ceph osd pool stats

    3.  删除存储池:

    1. #ceph osd pool delete {pool-name} [{pool-name} --yes-i-really-really-really-mean-it]
    2. ## 删除池,池的名字要写两次
    3. [root@node2 ~]# ceph osd pool delete rbd rbd --yes-i-really-really-mean-it
    4. ## 在ceph配置文件中加一个参数在[global]标签下
    5. [root@node2 ~]# vim /etc/ceph/ceph.conf
    6. [global]
    7. mon_allow_pool_delete = true
    8. ## 重启ceph-mon.target服务
    9. [root@node2 ~]# systemctl restart ceph-mon.target

    4.  重命名存储池:

    [root@node2 ~]# ceph osd pool rename {current-pool-name} {new-poo1-name}

    5.  修改池参数:

    1. ## 修改池参数
    2. [root@node2 ~]# ceph osd pool set pool-name parameter(参数名) value(参数值)
    3. ## 获取池参数
    4. [root@node2 ~]# ceph osd pool get pool-name parameter(参数名)
    5. ## 列出所有参数及其值
    6. [root@node2 ~]# ceph osd pool get pool-name all

    6.  创建名为image的镜像:

    1. 语法格式:
    2. rbd create --size {megabytes} {pool-name}/{image-name}
    3. ## RBD创建示例1,如果不指定存储池,默认为rbd
    4. [root@node2 ~]# rbd create -p rbd --image rbd-demo.img --image-feature layering --size 10G
    5. ## RBD创建示例2,存储池名/镜像名
    6. [root@node2 ~]# rbd create rbd/rbd-demo2.img --image-feature layerfing --size 10G

    7.  查看块设备镜像:

    1. [root@node2 ~]# rbd list
    2. [root@node2 ~]# rbd ls
    3. [root@node2 ~]# rbd info rbd/rbd-demo.img

    8.  删除块设备镜像:

    1. 语法格式:
    2. rbd rm {pool-name}/{image-name}
    3. [root@node2 ~]# rbd rm rbd/rbd-demo2.img

     二.  动态调整:

    1.  扩充镜像容量:

    1. [root@node2 ~]# rbd resize --size 15G rbd-demo.img
    2. [root@node2 ~]# rbd info rbd-demo.img

    2.  缩减镜像容量:

    1. [root@node2 ~]# rbd resize --size 10G rbd-demo.img --allow-shrink
    2. [root@node2 ~]# rbd info rbd-demo.img

    3.  复制镜像:

    [root@node2 ~]# rbd cp src-image-name(源镜像名) des-image-name(目标镜像名)

    4.  移动镜像,类似于重命名:

    [root@node2 ~]# rbd mv src-image-name des-image-name

    5.  RBD的删除与回复:

    1. ## 删除RBD可以先将其移动到回收站
    2. [root@node2 ~]# rbd trash mv [pool-name]/image-name
    3. ## 从回收站删除RBD
    4. [root@node2 ~]# rbd trash rm [pool-name]/image-name
    5. ## 从回收站恢复RBD
    6. [root@node2 ~]# rbd trash restore image-id
    7. ## 查看当前回收站中的RBD,可以查看到镜像的id
    8. [root@node2 ~]# rbd trash ls [pool-name]

    三.  客户端访问:

    1.  客户端需要安装ceph-common软件包:

    1. [root@client ~]# yum install ceph-common
    2. [root@client ~]# ls /etc/ceph/
    3. ceph.client.admin.keyring ceph.conf rbdmap tmp_o0jaD

    2.  将块设备映射到系统内核,所有的映射都要在客户端进行

    1. [root@client ~]# rbd device map rbd-demo1.img
    2. /dev/rbd0
    3. [root@client ~]# lsblk
    4. ## 取消映射
    5. [root@client ~]# rbd device unmap rbd-demo1.img

    3.  查看映射:

    [root@client ~]# rbd showmapped 
    

    4.  客户端格式化,挂载分区:

    1. [root@client ~]# mkfs.xfs /dev/rbd0
    2. [root@client -]# mkdir /mnt/ceph-block
    3. [root@client ~]# mount /dev/rbd0 /mnt/ceph-block
    4. [root@client ~]# echo "test">/mnt/ceph-block/test.txt

    四.  创建镜像快照

    1.  查看镜像快照:

    [root@node2 ~]# rbd snap ls image

    2.  给镜像创建快照:

    1. [root@node2 ~]# rbd snap create rbd/rbd-demo.img --snap snep1(快照名)
    2. ## 查看镜像快照
    3. [root@node2 ~]# rbd snap ls rbd/rbd-demo.img

    3.  删除客户端写入的测试文件:

    1. [root@client ~]# rm -f /mnt/ceph-bock/test.txt
    2. [root@client ~]# umount /mnt/ceph-block

    4.  还原快照:

    1. [root@node2 ~]#rbd snap rollback rbd/rbd-demo.img --snap snap1
    2. ## 客户端重新挂载
    3. [root@client ~]# mount /dev/rbd0 /mnt/ceph-block/
    4. ## 检查文件
    5. [root@client ~]# ls /mnt/ceph-block
    6. test.txt

     五.  创建快照克隆:

    1.  克隆快照,用快照克隆新的镜像,首先保护快照,防止误删:

    1. [root@node2 ~]# rbd snap protect rbd/rbd-demo.img --snap snap1
    2. 一旦将快照保护起来,就不能再删除了
    3. ## 克隆镜像
    4. [root@node2 ~]# rbd clone rbd/rbd-demo.img --snap snap1 image-clone(克隆后的镜像名)
    5. --image-feature layering

    2.  查看克隆镜像与父镜像快照关系:

    [root@node2 ~]# rbd info image-clone

    3.  如果希望克隆镜像可以独立工作,就需要将父快照中的数据,全部拷贝一份,但比较耗时:

    1. [root@node2 ~]# rbd flatten image-clone
    2. ## 再次查看克隆镜像信息
    3. [root@node2 ~]# rbd info image-clone

    4.  取消快照保护:

    1. [root@node2 ~]# rbd snap unprotect rbd/rbd-demo.img --snap snap1
    2. ## 删除快照
    3. [root@node2 ~]# rbd snap rm rbd/rbd-demo.img --snap snap1

  • 相关阅读:
    数据结构-插入排序+希尔排序+选择排序
    MSDC 4.3 接口规范(30)
    代码坏味道与重构之注释
    小样本学习跨域(Cross-Domain)问题总结
    软考信息安全工程师备考
    【历史上的今天】6 月 24 日:网易成立;首届消费电子展召开;世界上第一次网络直播
    Docker-系统环境
    安卓期末作业-仿外卖app-简单app(附下载资源)
    gltf和glb格式模型用什么软件处理
    golang 运行时死锁排查和检测
  • 原文地址:https://blog.csdn.net/NancyLCL/article/details/126917721