CEPH的学习笔记(四) ceph的三大存储挂载和使用—块存储的挂载和使用
1.1 块存储的挂载
- 准备工作:使用docker正确部署的ceph集群
- 进入ceph容器:
docker exec -it yk-ceph-mon bash
- 在ceph容器内安装kernel:
yun -y install kernel
- 在ceph集群内加载rbd模块:
modprobe rbd
- 查看rbd模块信息:
modinfo rbd
- 查看rbd模块所属的软件包:
rpm -qf rbd_filename
//rbd_filename为rbd模块信息中显示的filename
- 查看ceph集群中的osd pool:
ceph osd lspools
- 新建rbd pool:
ceph osd pool create pool_name PG_number
//pool_name为新建的pool名称,PG_number 为指定的PG组
- 创建一个指定大小的rbd块设备:
rbd create rbd_name --size rbd_size
//rbd_name为rbd块设备名称,rbd_size为块设备大小
- 查看创建的块设备:
rbd list
rbd info rbd_name
- 映射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
- 重新映射:
rbd map rbd_name
**注意,这时会没有反应,这是因为需要把块设备从ceph容器内映射到主机,但其实
已经在系统下/dev/目录下可以看到新创建的文件夹 **
13. 查看系统中已经映射的块设备:
rbd showmapped
- 格式化新建的文件夹/dev/rbd0:
mkfs.ext4 /dev/rbd0
- 在根目录下新建一个挂载的文件夹,如yk-rbd-test:
mkdir /yk-rbd-test
- 挂载:
mount /dev/rbd0 /yk-rbd-test
- 查看挂载信息:
df -h
- 进入新建的要挂在的文件夹并写入文件并查看结果:
cd yk-rbd-test
echo "hello world" > hello.txt
ls
- 此时,ceph集群获得了rbd块设备、osd pool的信息,则在ceph容器内映射后可在其他节点挂载rbd块设备(必须先在容器内安装kernel)