CEPH的学习笔记(四) ceph的三大存储挂载和使用---块存储的挂载和使用

CEPH的学习笔记(四) ceph的三大存储挂载和使用—块存储的挂载和使用

1.1 块存储的挂载

  1. 准备工作:使用docker正确部署的ceph集群
  2. 进入ceph容器:
 docker exec -it yk-ceph-mon bash
  1. 在ceph容器内安装kernel:
yun -y install kernel
  1. 在ceph集群内加载rbd模块:
modprobe rbd
  1. 查看rbd模块信息:
 modinfo rbd
  1. 查看rbd模块所属的软件包:
 rpm -qf  rbd_filename      
//rbd_filename为rbd模块信息中显示的filename
  1. 查看ceph集群中的osd pool:
 ceph osd lspools
  1. 新建rbd pool:
 ceph osd pool create   pool_name PG_number 
 //pool_name为新建的pool名称,PG_number 为指定的PG组
  1. 创建一个指定大小的rbd块设备:
 rbd create rbd_name  --size rbd_size    
 //rbd_name为rbd块设备名称,rbd_size为块设备大小
  1. 查看创建的块设备:
  rbd list
  rbd info rbd_name
  1. 映射rbd块设备到主机:
rbd map rbd_name

注意:这时会报错:

    rbd: sysfs write failed
    RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable yk-rbd object-map fast-diff deep-flatten". In some cases useful info is found in syslog - try "dmesg | tail".
     rbd: map failed: (6) No such device or address

解决方法为:
(参考http://blog.51cto.com/hipzz/1888048和https://www.linuxidc.com/Linux/2017-03/141584.htm):
关闭新建的rbd块设备的features,只保留layering项:

rbd feature disable rbd_name rbd_features
//rbd_name为新建块设备的名称,rbd_features为新建的rbd块设备需要禁掉的features

  1. 重新映射:
 rbd map rbd_name

**注意,这时会没有反应,这是因为需要把块设备从ceph容器内映射到主机,但其实
已经在系统下/dev/目录下可以看到新创建的文件夹 **
13. 查看系统中已经映射的块设备:

 rbd  showmapped
  1. 格式化新建的文件夹/dev/rbd0:
 mkfs.ext4 /dev/rbd0
  1. 在根目录下新建一个挂载的文件夹,如yk-rbd-test:
 mkdir /yk-rbd-test
  1. 挂载:
 mount /dev/rbd0  /yk-rbd-test
  1. 查看挂载信息:
df -h
  1. 进入新建的要挂在的文件夹并写入文件并查看结果:
cd yk-rbd-test
echo "hello world" > hello.txt
 ls
  1. 此时,ceph集群获得了rbd块设备、osd pool的信息,则在ceph容器内映射后可在其他节点挂载rbd块设备(必须先在容器内安装kernel)

你可能感兴趣的:(CEPH的学习笔记(四) ceph的三大存储挂载和使用---块存储的挂载和使用)