概述
mimic版本需要结合pool使用,一个ceph集群可以有多个pool,每个pool是逻辑上的隔离单位,不同的pool可以有完全不一样的数据处理方式,比如Replica Size(副本数)、Placement Groups、CRUSH Rules、快照、所属者等。
-
环境部署图
图1
pool命令需在ceph-deploy节点使用
你可以在虚拟机上运行 ceph-client 节点,但是不能在与 Ceph 存储集群(除非它们也用 VM )相同的物理节点上执行。
Pool 管理
打印列表
ceph osd lspools
创建
ceph osd pool create rbd 128
创建一个pg_num 为128 (适用于OSD数量小于5个),名字叫rbd的Pool;格式化rbd格式
ceph osd pool application enable rbd on pool rbd
删除
ceph osd pool delete test-pool test-pool --yes-i-really-really-mean-it
删除一个pool会同时清空pool的所有数据,因此非常危险。(和rm -rf /类似)。因此删除pool时ceph要求必须输入两次pool名称,同时加上--yes-i-really-really-mean-it选项。
此外由于缺省没有配置mon节点的 mon_allow_pool_delete 字段所致,解决办法就是到mon节点进行相应的设置
参考网址查看状态
rados df
块存储命令
相关命令需要在client节点使用。引文
创建镜像
rbd create foo --size 4096 --image-feature layering
PS: 后面的参数要带,具体意义参见 引文快存储模式
sudo rbd map foo --name client.admin
PS: 如果是centos 7.2,7.6没出现这个问题引文 可能会报错如下错误
missing required protocol features missing 400000000000000
,解决方案
ceph osd crush tunables hammer
ceph osd crush reweight-all
- 文件系统格式化
sudo mkfs.ext4 -m0 /dev/rbd/rbd/foo
/dev/rbd/rbd/foo是具体的foo路径
4.挂载使用
sudo mkdir /mnt/ceph-block-device
sudo mount /dev/rbd/rbd/foo /mnt/ceph-block-device
cd /mnt/ceph-block-device
5.删除镜像
rbd rm testpool/myimage
镜像列表
rbd ls
镜像明细
rbd info foo
镜像后的对象数据
rados -p testpool ls
卸载