ceph rbd(rados block device)配置与挂载
rados块设备
创建rbd设备
rbd create ceph-client1-rbd1 --size 10240
默认情况下,RBD镜像会保存在ceph集群的rbd存储池中。可以使用-p参数指定其他的池。
rbd create ceph-client1-rbd2 --size 10240 -p test
可以使用-p参数指定test池将镜像保存在test池中,注意这里列出块设备和查看这个块设备的详细信息时也需要加-p指定test池。
列出rbd的镜像
[root@ceph01 ~]# rbd ls
ceph-client1-rbd1
[root@ceph01 ~]# rbd ls -p test
ceph-client1-rbd2
查看rbd镜像的详细信息
[root@ceph01 ~]# rbd --image ceph-client1-rbd2 info -p test
rbd image 'ceph-client1-rbd2':size 10240 MB in 2560 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.3b9da6b8b4567format: 2features: layering, exclusive-lock, object-map, fast-diff, deep-flattenflags: [root@ceph01 ~]# rbd --image ceph-client1-rbd1 info
rbd image 'ceph-client1-rbd1':size 10240 MB in 2560 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.2f8ee6b8b4567format: 2features: layering, exclusive-lock, object-map, fast-diff, deep-flattenflags:
客户端挂载rbd设备
客户端的ip地址为192.168.240.200
加载rdb模块
modprobe rbd
安装ceph客户端
配置好ceph的yum源
安装epel源
yum -y install epel-release
安装ceph客户端
yum -y install ceph
如果是ceph-deploy部署的ceph集群也可以在ceph节点上执行如下命令安装客户端
ceph-deploy install 192.168.240.200
从ceph节点复制ceph.conf和ceph.client.admin.keyring到客户端的/etc/ceph/文件夹下
scp /etc/ceph/ceph* 192.168.140.200:/etc/ceph/
客户端映射rbd
rbd map --image ceph-client1-rbd1
输出
/dev/rbd0
或者也可以指定池的名称加镜像名称
rbd map --image rbd/ceph-client1-rbd1
查看映射对应的操作系统设备名
rbd showmapped
输出
id pool image snap device
0 rbd ceph-client1-rbd2 - /dev/rbd0
或者直接lsblk查看
[root@controller ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 200M 0 part /boot
└─sda2 8:2 0 19.8G 0 part └─centos-root 253:0 0 19.8G 0 lvm /
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
sr0 11:0 1 4.3G 0 rom
rbd0 252:0 0 10G 0 disk
格式化该设备
mkfs.xfs /dev/rbd0
挂载该设备
mkdir /rbd
mount /dev/rbd0p1 /rbd
映射RBD报错
错误
[root@controller ~]# rbd map --image ceph-client1-rbd1
rbd: sysfs write failed
RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable".
In some cases useful info is found in syslog - try "dmesg | tail" or so.
rbd: map failed: (6) No such device or address
出现这种错误的原因是OS kernel不支持块设备镜像的一些特性,所以映射失败。查看该镜像支持了哪些特性:
[root@ceph-node1 ~]# rbd info ceph-client1-rbd1
rbd image 'ceph-client1-rbd1':size 10240 MB in 2560 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.121876b8b4567format: 2features: layering, exclusive-lock, object-map, fast-diff, deep-flattenflags:
解决
方法1
直接diable这个rbd镜像的不支持的特性:
rbd feature disable ceph-client1-rbd1 exclusive-lock object-map fast-diff deep-flatten
方法二:
创建rbd镜像时就指明需要的特性,如:
rbd create ceph-client1-rbd1 --size 10240 --image-feature layering
方法三:
如果还想一劳永逸,那么就在执行创建rbd镜像命令的主机中,修改Ceph配置文件/etc/ceph/ceph.conf,在global section下,增加:
rbd_default_features = 1
注意:该方法需要先删除之前创建过的镜像,再创建该镜像。
调整ceph RBD大小
注意:格式化块设备的文件系统也支持调整容量才可以。
扩容rbd
rbd resize rbd/ceph-client1-rbd1 --size 20480
输出
Resizing image: 100% complete...done.
查看镜像容量
rbd info rbd/ceph-client1-rbd1
输出
rbd image 'ceph-client1-rbd1':size 20480 MB in 5120 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.121876b8b4567format: 2features: layeringflags:
查看文件系统容量大小
[root@controller ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 20G 3.8G 17G 19% /
/dev/sda1 197M 167M 31M 85% /boot
tmpfs 378M 0 378M 0% /run/user/0
/dev/rbd0 10G 33M 10G 1% /rbd
扩展文件系统容量
扩展文件系统容量,xfs文件系统支持在线调整扩容。
xfs_growfs /rbd
输出
meta-data=/dev/rbd0 isize=512 agcount=16, agsize=163840 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=2621440, imaxpct=25= sunit=1024 swidth=1024 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 2621440 to 5242880
确认
df -h
输出
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 20G 3.8G 17G 19% /
/dev/sda1 197M 167M 31M 85% /boot
tmpfs 378M 0 378M 0% /run/user/0
/dev/rbd0 20G 34M 20G 1% /rbd
ceph RBD快照
ceph完全支持快照,它是一个基于时间点的、只读的RBD镜像副本。可以通过创建快照并恢复其原始数据,保存ceph RBD镜像的状态。
为了测试ceph RBD的功能,往RBD上复制一些数据
查看rbd上的数据
[root@controller ~]# ll /rbd/
总用量 41912
-rw-r--r-- 1 root root 266 11月 2 12:47 admin-openrc
-rw------- 1 root root 1567 11月 2 12:47 anaconda-ks.cfg
-rw-r--r-- 1 root root 13287936 11月 2 12:47 cirros-0.3.4-x86_64-disk.img
-rw-r--r-- 1 root root 262 11月 2 12:47 demo-openrc
-rw-r--r-- 1 root root 41126400 11月 2 12:47 image.img
-rw-r--r-- 1 root root 2392 11月 2 12:48 init-openstack-pike-controller-manual.sh
-rw-r--r-- 1 root root 36132 11月 2 12:48 set-openstack-pike-controller.sh
-rw-r--r-- 1 root root 35891 11月 2 12:48 set-openstack-pike-controller.sh.bak
创建rbd镜像快照
语法
rbd snap create <pool-name>/<image-name>@<snap-name>
创建命令
rbd snap create ceph-client1-rbd1@snap1
查看rbd镜像快照
[root@controller ~]# rbd snap ls ceph-client1-rbd1
SNAPID NAME SIZE 4 snap1 20480 MB
测试快照
删除rbd中的文件
rm -rf /rbd/*
[root@controller ~]# ll /rbd/
总用量 0
卸载
umount /rbd/
恢复快照
语法
rbd snap rollback <pool-name>/<image-name>@<snap-name>
恢复命令
rbd snap rollback ceph-client1-rbd1@snap1
输出
Rolling back to snapshot: 100% complete...done.
注意:执行快照回滚前一定要先umount,(网上有教程说还需要umap,umap也可以,这里没有umap)否则回滚后再umount,mount会报错
mount: 文件系统类型错误、选项错误、/dev/rbd0p1 上有坏超级块、
缺少代码页或助手程序,或其他错误
有些情况下在 syslog 中可以找到一些有用信息- 请尝试
dmesg | tail 这样的命令看看。
删除镜像快照
删除rbd的某个image的某个快照
语法
rbd snap rm <pool-name>/<image-name>@<snap-name>
命令
rbd snap rm ceph-client1-rbd1@snap1
删除rbd的某个image的所有快照
语法
rbd snap purge <pool-name>/<image-name>
命令
rbd snap purge ceph-client1-rbd1
复制ceph RBD
ceph存储集群可以从RBD的快照中创建写时复制(COW)副本。这就是ceph的快照分层。ceph的这个分层特性允许客户端创建ceph RBD的多个即时副本。这个特性对云平台和虚拟化平台非常有用,例如OpenStack、CloudStack和Qemu/KVM。这些平台通常以快照的形式保护含有OS/VM镜像的ceph RBD镜像,然后通过不断复制这个快照来创建新的虚拟机/实例。快照是只读的,但是COW副本则是完全可写的。COW复制的镜像与RBD是一样的。
他们都非常灵活,类似于RBD,也就是说,它们可写,可调整容量,可以创建新的快照,将来还可以复制。
RBD镜像的类型定义了它所支持的特性。在ceph中,有两种类型的RBD镜像:format-1和format-2。format-1和format-2类型的镜像都支持快照特性,然后COW特性只有format-2类型的RBD镜像支持。高版本的RBD镜像默认为format-2。
创建format-2类型的RBD镜像
rbd create ceph-client1-rbd2 --size 10240 --image-format 2
创建该RBD镜像的快照
rbd snap create rbd/ceph-client1-rbd2@snap_for_clone
将快照置于保护状态
rbd snap protect rbd/ceph-client1-rbd2@snap_for_clone
复制快照
语法
rbd clone <pool-name>/<parent-image>@<snap-name> <pool-name>/<child-image-name>
命令
rbd clone rbd/ceph-client1-rbd2@snap_for_clone test/ceph-client1-rbd3
查看新镜像信息
rbd info test/ceph-client1-rbd3
输出
rbd image 'ceph-client1-rbd3':size 10240 MB in 2560 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.3c9ca6b8b4567format: 2features: layering, exclusive-lock, object-map, fast-diff, deep-flattenflags: parent: rbd/ceph-client1-rbd2@snap_for_cloneoverlap: 10240 MB
扁平化该镜像
要让这个镜像不依赖他的父镜像,需要扁平化该镜像
rbd flatten test/ceph-client1-rbd3
输出
Image flatten: 100% complete...done.
查看扁平化后的镜像
可以看到他的父镜像/快照的名字消失,这就使得这个复制的镜像成了一个独立的镜像,即使删除父镜像也不会造成影响。
[root@controller ~]# rbd info test/ceph-client1-rbd3
rbd image 'ceph-client1-rbd3':size 10240 MB in 2560 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.3c9ca6b8b4567format: 2features: layering, exclusive-lock, object-map, fast-diff, deep-flattenflags:
删除父镜像
如果不需要父镜像的快照,可以删除它,删除之前解除保护状态
rbd snap unprotect rbd/ceph-client1-rbd2@snap_for_clone
删除
rbd snap rm rbd/ceph-client1-rbd2@snap_for_clone
ceph rbd(rados block device)配置与挂载相关推荐
- ceph(2)--Ceph RBD 接口和工具
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...
- 理解 OpenStack + Ceph (3):Ceph RBD 接口和工具 [Ceph RBD API and Tools]
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...
- SPDK简介(其与Ceph rbd的关系)
转载:SPDK简介 SPDK(Storage Performance Development Kit)是Intel发布的存储性能开发工具集. 简介 固态存储设备正在取代数据中心.目前这一代的闪存存储, ...
- k8s1.18 StorageClass 使用rbd-provisioner提供ceph rbd持久化存储
rbd-provisioner为kubernetes 1.5+版本提供了类似于kubernetes.io/rbd的ceph rbd持久化存储动态配置实现. 一些用户会使用kubeadm来部署集群,或者 ...
- Ceph Block Device块设备操作
2019独角兽企业重金招聘Python工程师标准>>> 使用ceph block device需要如下三个步骤: 1. 在ceph 集群的pool中创建一个Block Device ...
- Mount 挂载错误mount:block device /dev/sr0 is write – protected , mounting read-only
Mount 挂载错误mount:block device /dev/sr0 is write – protected , mounting read-only 安装虚拟机出现以下提示: mount:b ...
- mtd block device和block device区别,MTD设备的一般不宜挂载fat,ext2,ext3等文件系统原因
文章系转载:https://dolaameng328.iteye.com/blog/1502547 本文添加自己理解: 1.可以解释为什么MTD设备的一般不宜挂载fat,ext2,ext3等文件系统- ...
- kubernetes挂载ceph rbd和cephfs
微信公众号搜索 DevOps和k8s全栈技术 ,关注之后,在后台回复 k8s视频,就可获取k8s免费视频和文档,也可扫描文章最后的二维码关注公众号. 目录 k8s挂载Ceph RBD 创建secret ...
- CEPH集群操作入门--配置
https://www.cnblogs.com/luxiaodai/p/10006036.ht CEPH集群操作入门--配置l CEPH集群操作入门--配置 阅读目录(Content) 概述 配置 存 ...
最新文章
- 如何设计一个端计算架构?
- 【Python】list和tuple 区别比较
- webStorm关闭自动保存
- fat32硬盘格式能在苹果系统里读写操作吗?
- 重庆计算机一级跟全国计算机一级都考什么,全国计算机等级考试一级都考什么内容?...
- 希捷移动硬盘linux,[转载]强列建议不要买seagate希捷移动硬盘!!!
- 51 Nod 一维战舰
- [原创]网站文章页面添加分享按钮,百度按钮代码复制使用时不显示问题解决!
- 弦截法 解高次方程 C语言/C++
- 一文详解Type C-CC引脚的作用
- 能够正常加入域但无法实施域策略
- 2023第5届中国(济南)国际福祉及残疾人用品展览会开启招商
- java rds 数据库_Java程序如何连接RDS MySQL
- PTA 3+2 转段考试 数据库mysql(3篇)
- wp8手机用得真憋屈
- G7波澜不惊,非美反弹缺乏力度
- el-table 树形表格 自定义展开图标_Icon Slate for mac(图标制作工具) v4.5.0
- 二级mysql选择题要对一半才能拿证书_计算机二级选择题需要达到多少分才能及格...
- 游戏邦成立以来部分游戏设计观点回顾
- 关于字节,半字,字到底有多多少位