ceph块存储

  • Post author:
  • Post category:其他



一.  创建镜像:

1、创建存储池:

[root@node2 ~]# ceph osd pool create cephrbd 128


这里,cephrbd 是存储池的名称。

    通常在创建pool之前,需要覆盖默认的pg_num,官方推荐:
    若少于5个osD,设置 pg_num 为128。
    5~10个oSD,设置 pg_num 为512。
    10~50个osD,设置 pg_num 为4096。
    超过50个osD,可以参考pgcalc计算。

创建默认的rbd池:

[root@node2 ~]# ceph osd pool create rbd 128 

## 启动存储出
[rootenode2 ~]# ceph osd pool application enable rbd(存储池名称) rbd
(存储池关联的应用类型)

存储池关联的应用类型: rbd表示块设备存储类型
                   cephfs表示文件存储类型
                   rgw表示对象存储类型

2、查看存储池:

[root@node2 ~]# ceph osd lspools

[root@node2 ~]# ceph osd pool ls

## 获取池用量统计数据
[root@node2 ~]# ceph df

## 获取osd上磁盘使用量统计数据
[root@node2 ~]# ceph osd df

## 获取池性能统计数据
[root@node2 ~]# ceph osd pool stats

3.  删除存储池:

#ceph osd pool delete {pool-name} [{pool-name} --yes-i-really-really-really-mean-it]

## 删除池,池的名字要写两次
[root@node2 ~]# ceph osd pool delete rbd rbd --yes-i-really-really-mean-it

## 在ceph配置文件中加一个参数在[global]标签下
[root@node2 ~]# vim /etc/ceph/ceph.conf
[global]
mon_allow_pool_delete = true

## 重启ceph-mon.target服务
[root@node2 ~]# systemctl restart ceph-mon.target

4.  重命名存储池:

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

5.  修改池参数:

## 修改池参数
[root@node2 ~]# ceph osd pool set pool-name parameter(参数名) value(参数值)

## 获取池参数
[root@node2 ~]# ceph osd pool get pool-name parameter(参数名)

## 列出所有参数及其值
[root@node2 ~]# ceph osd pool get pool-name all

6.  创建名为image的镜像:

语法格式:
rbd create --size {megabytes} {pool-name}/{image-name}

## RBD创建示例1,如果不指定存储池,默认为rbd
[root@node2 ~]# rbd create -p rbd --image rbd-demo.img --image-feature layering --size 10G

## RBD创建示例2,存储池名/镜像名
[root@node2 ~]# rbd create rbd/rbd-demo2.img --image-feature layerfing --size 10G

7.  查看块设备镜像:

[root@node2 ~]# rbd list 

[root@node2 ~]# rbd ls 

[root@node2 ~]# rbd info rbd/rbd-demo.img

8.  删除块设备镜像:

语法格式:
rbd rm {pool-name}/{image-name}

[root@node2 ~]# rbd rm rbd/rbd-demo2.img


二.  动态调整:

1.  扩充镜像容量:

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

[root@node2 ~]# rbd info rbd-demo.img

2.  缩减镜像容量:

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

[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的删除与回复:

## 删除RBD可以先将其移动到回收站
[root@node2 ~]# rbd trash mv [pool-name]/image-name

## 从回收站删除RBD
[root@node2 ~]# rbd trash rm [pool-name]/image-name

## 从回收站恢复RBD
[root@node2 ~]# rbd trash restore image-id

## 查看当前回收站中的RBD,可以查看到镜像的id
[root@node2 ~]# rbd trash ls [pool-name]


三.  客户端访问:

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

[root@client ~]# yum install ceph-common

[root@client ~]# ls /etc/ceph/
ceph.client.admin.keyring ceph.conf rbdmap tmp_o0jaD

2.  将块设备映射到系统内核,

所有的映射都要在客户端进行

[root@client ~]# rbd device map rbd-demo1.img
/dev/rbd0

[root@client ~]# lsblk

## 取消映射
[root@client ~]# rbd device unmap rbd-demo1.img

3.  查看映射:

[root@client ~]# rbd showmapped 

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

[root@client ~]# mkfs.xfs /dev/rbd0 

[root@client -]# mkdir /mnt/ceph-block

[root@client ~]# mount /dev/rbd0 /mnt/ceph-block 

[root@client ~]# echo "test">/mnt/ceph-block/test.txt


四.  创建镜像快照

1.  查看镜像快照:

[root@node2 ~]# rbd snap ls image

2.  给镜像创建快照:

[root@node2 ~]# rbd snap create rbd/rbd-demo.img --snap snep1(快照名)

## 查看镜像快照
[root@node2 ~]# rbd snap ls rbd/rbd-demo.img

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

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

[root@client ~]# umount /mnt/ceph-block

4.  还原快照:

[root@node2 ~]#rbd snap rollback rbd/rbd-demo.img --snap snap1 

## 客户端重新挂载
[root@client ~]# mount /dev/rbd0 /mnt/ceph-block/

## 检查文件
[root@client ~]# ls /mnt/ceph-block
test.txt


五.  创建快照克隆:

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

[root@node2 ~]# rbd snap protect rbd/rbd-demo.img --snap snap1
一旦将快照保护起来,就不能再删除了

## 克隆镜像
[root@node2 ~]# rbd clone rbd/rbd-demo.img --snap snap1 image-clone(克隆后的镜像名) 
--image-feature layering

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

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

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

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

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

4.  取消快照保护:

[root@node2 ~]# rbd snap unprotect rbd/rbd-demo.img --snap snap1

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



版权声明:本文为NancyLCL原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。