块设备安装,创建,映射,挂载,详情,调整,卸载,曲线映射,删除
在使用Ceph的块设备工作前,确保您的Ceph的存储集群是在主动 + 清洁状态。
vim /etc/hosts 172.16.66.144 ceph-client
在admin节点上执行这个快速启动。
1. 在admin节点上,用ceph-deploy在你的ceph-client节点安装Ceph
ceph-deploy install ceph-client
2. 在admin节点上,用ceph-deploy复制Ceph配置文件和ceph.client.admin.keyring到你的ceph-client。
ceph-deploy admin ceph-client
1. 在ceph-client节点上,创建一个100G块设备的镜像,image_name "foo",
rbd create foo --size 102400
2. 在ceph-client节点上, 要映射块设备镜像到内核模块,首先要加载Ceph的RBD模块,让内核从新识别设备
modprobe rbd partprobe
3. 在ceph-client节点上,映射这个镜像到一个块设备。
rbd map foo --pool rbd --name client.admin
【显示映射块设备】
[email protected]:~# rbd showmapped id pool image snap device 0 rbd foo - /dev/rbd0
4. 用这个块设备在一个ceph-client节点上创建一个文件系统
mkfs.ext4 -m0 /dev/rbd/rbd/foo
5. 挂载这个文件系统到你的ceph-client节点上
mkdir /mnt/ceph-block-device mount /dev/rbd/rbd/foo /mnt/ceph-block-device cd /mnt/ceph-block-device [email protected]:/mnt/ceph-block-device# ll 总用量 24 drwxr-xr-x 3 root root 4096 11月 4 09:56 ./ drwxr-xr-x 3 root root 4096 11月 4 09:56 ../ drwx------ 2 root root 16384 11月 4 09:56 lost+found/ [email protected]:/mnt/ceph-block-device# df -hT 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/rbd0 ext4 99G 60M 99G 1% /mnt/ceph-block-device
【测试】
[email protected]:/mnt/ceph-block-device# dd if=/dev/zero bs=100M count=5 of=haha.tar.gz 记录了5+0 的读入 记录了5+0 的写出 524288000字节(524 MB)已复制,47.5169 秒,11.0 MB/秒 [email protected]:/mnt/ceph-block-device# ll -h 总用量 501M -rw-r--r-- 1 root root 500M 11月 4 10:22 haha.tar.gz drwx------ 2 root root 16K 11月 4 09:56 lost+found/
【取消映射块设备】,先卸载挂载点
[email protected]:~# umount /dev/rbd/rbd/foo rbd unmap /dev/rbd/{poolname}/{imagename} rbd unmap /dev/rbd/rbd/foo [email protected]:~# mount /dev/rbd/rbd/foo /mnt/ceph-block-device mount:特殊设备 /dev/rbd/rbd/foo 不存在
在你可以添加一个块设备节点之前,必须先创建一个Ceph的存储集群的镜像。要创建一个块设备的镜像,执行以下命令:
例如,要创建一个1GB名称为 foo的镜像信息存储在默认的rbd池中,执行以下命令:
例如,要创建一个1GB名称为 haha的镜像信息存储在名称为 swimmingpool 池中,执行以下命令:
rbd create foo --size 1024
创建一个swimmingpool 池 10个pg,10个pgp
[email protected]:~# ceph osd pool create swimmingpool 10 10 pool ‘swimmingpool‘ created
【要创建一个1GB名称为 haha的镜像信息存储在名称为 swimmingpool 池中】
[email protected]:~# rbd create haha --size 1024 --pool swimmingpool
【列出块设备在一个特定的池】
[email protected]:~# rbd ls swimmingpool haha
查询显示镜像信息
要从一个特定的镜像查询信息,执行下面命令,请更换大括号内相关的镜像的名字:
rbd --image {image-name} info
[email protected]:~# rbd --image foo info
rbd image ‘foo‘:
size 200 GB in 51200 objects
order 22 (4096 kB objects)
block_name_prefix: rb.0.5b607.238e1f29
format: 1
要查询一个池内的镜像信息,执行下面的,更换{镜像}的镜像名称和池名称替换{池名称}:
rbd --image {image-name} -p {pool-name} info
rbd --image bar -p swimmingpool info
[email protected]:~# rbd --image haha -p swimmingpool info
rbd image ‘haha‘:
size 1024 MB in 256 objects
order 22 (4096 kB objects)
block_name_prefix: rb.0.5b67f.74b0dc51
format: 1
【调整块设备镜像大小】
Ceph的块设备镜像精简置备。他们实际上不使用任何物理存储,直到你开始保存数据。然而,他们有一个最大容量-大小选项设置。如果你想增加(或减少)一个的CEPH座设备镜像的最大尺寸,执行以下命令:
把块调整为400G
[email protected]:~# rbd resize --image foo --size 409600
Resizing image: 100% complete...done.
[email protected]:~# rbd --image foo -p rbd info
rbd image ‘foo‘:
size 400 GB in 102400 objects
order 22 (4096 kB objects)
block_name_prefix: rb.0.5b607.238e1f29
format: 1
[email protected]:~#
删除块设备镜像【前提:取消映射块设备】
要删除一个块设备,执行下面命令,更换大括号内要更换您要删除的镜像的名称:
rbd rm {image-name} [email protected]:~# rbd rm foo Removing image: 100% complete...done.
从池中取出一个块设备,请执行以下命令,请更换大括号内相关的镜像的名字,池的名称替换{池名称}的名称及替换大括号内{镜像}名称:
rbd rm {image-name} -p {pool-name} [email protected]:~# rbd rm haha -p swimmingpool Removing image: 100% complete...done.
================================================
【取消映射块设备】,先卸载挂载点
[email protected]:~# umount /dev/rbd/rbd/foo rbd unmap /dev/rbd/{poolname}/{imagename} rbd unmap /dev/rbd/rbd/foo [email protected]:~# mount /dev/rbd/rbd/foo /mnt/ceph-block-device mount:特殊设备 /dev/rbd/rbd/foo 不存在
===================================================
[email protected]:~# rbd ls [email protected]:~# rbd ls swimmingpool
返回结果都是空
查看存储详情
[email protected]:~# ceph df detail GLOBAL: SIZE AVAIL RAW USED %RAW USED OBJECTS 2940G 2748G 42920M 1.43 46 POOLS: NAME ID CATEGORY USED %USED MAX AVAIL OBJECTS DIRTY READ WRITE rbd 0 - 8 0 1374G 1 1 533 35899 .rgw.root 1 - 848 0 1374G 3 3 6 3 .rgw.control 2 - 0 0 1374G 8 8 0 0 .rgw 3 - 0 0 1374G 0 0 0 0 .rgw.gc 4 - 0 0 1374G 32 32 20034 13376 .users.uid 5 - 0 0 1374G 0 0 0 0 test 6 - 44892k 0 1374G 1 1 0 11 swimmingpool 7 - 8 0 1374G 1 1 13 4
【创建快照】=================================
使用RBD创建一个快照,使用snap create 选项,大括号内用相应的池名称和映像名称。
先创建一个swimmingpool 池 10个pg,10个pgp
[email protected]:~# ceph osd pool create swimmingpool 10 10
创建一个名为my_image的镜像 1G 指定放在swimmingpool
[email protected]:~# rbd create my_image --size 1024 --pool swimmingpool
把swimmingpool中的my_image创建一个名为first_snapde的快照
[email protected]:~# rbd snap create swimmingpool/[email protected]_snap
显示快照信息
[email protected]:~# rbd snap ls swimmingpool/my_image SNAPID NAME SIZE 3 first_snap 1024 MB [email protected]:~# modprobe rbd [email protected]:~# rbd map my_image --pool swimmingpool --name client.admin /dev/rbd0
【显示映射块设备】
[email protected]:~# rbd showmapped id pool image snap device 0 swimmingpool my_image - /dev/rbd0
【创建文件系统】
[email protected]:~# mkfs.ext4 /dev/rbd/swimmingpool/my_image [email protected]:~# mount /dev/rbd/swimmingpool/my_image /mnt/ceph-block-device/ [email protected]:~# df -hT 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/rbd0 ext4 976M 1.3M 908M 1% /mnt/ceph-block-device
【做出改变】
[email protected]:/mnt/ceph-block-device# dd if=/dev/zero bs=10M count=5 of=test.tar.gz [email protected]:/mnt/ceph-block-device# ll -h 总用量 51M -rw-r--r-- 1 root root 50M 11月 4 16:25 test.tar.gz
【回滚快照】=================================
[email protected]:/mnt/ceph-block-device# rbd snap rollback swimmingpool/[email protected]_snap Rolling back to snapshot: 100% complete...done. 卸载挂载点 [email protected]:/mnt/ceph-block-device# cd [email protected]:~# umount /dev/rbd/swimmingpool/my_image [email protected]:~# mount /dev/rbd/swimmingpool/my_image /mnt/ceph-block-device/ 【此时快照】已经恢复到first_snap状态了
【删除快照】=======================================
[email protected]:/mnt/ceph-block-device# cd [email protected]:~# umount /dev/rbd/swimmingpool/my_image [email protected]:~# rbd snap purge swimmingpool/my_image Removing all snapshots: 100% complete...done.
查看块设备
[email protected]:~# rbd -p swimmingpool --image my_image info rbd image ‘my_image‘: size 1024 MB in 256 objects order 22 (4096 kB objects) block_name_prefix: rb.0.5b6fd.74b0dc51 format: 1