100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Ceph块存储

Ceph块存储

时间:2022-09-20 12:08:34

相关推荐

Ceph块存储

目录

一、环境准备

二、什么是块存储

三、创建块共享

1、查看存储池

2、创建镜像、查看镜像

3、镜像扩容、缩容

四、客户端通过KRBD访问共享镜像

1、客户端安装

2、客户端配置

3、客户端获取镜像

4、客户端写入数据

五、快照

1、查看、创建快照

2、还原快照

六、客户端卸载网络磁盘

1、卸载磁盘

2、取消磁盘映射

一、环境准备

Ceph集群搭建参照:Ceph集群部署_桂安俊@kylinOS的博客-CSDN博客

以下Ceph存储实验环境均基于上述Ceph集群环境搭建。

二、什么是块存储

Ceph块设备也叫做RADOS块设备,全称:RADOS Block Device;简称:RBD;RBD提供了企业功能,如快照、COW克隆等等;

三、创建块共享

1、查看存储池

所有的块设备必须在一个存储池中,ceph默认有一个rbd池:

# 在任意一个node节点执行,查看所有存储池ceph osd lspools

2、创建镜像、查看镜像

块设备也叫镜像,每创建一个镜像,对应的就是一个块设备,在服务端创建完镜像,客户端就可以访问这个镜像(块设备):

#在任意node节点操作#创建镜像写法一,不指定存储池,那默认就放到rbd默认存储池下#create为创建,jacob为自定义镜像名称,--image-feature后面跟这个镜像支持哪些功能,layering指支持分层功能(允许快照和写时复制),--size 10G为指定镜像存储大小rbd create jacob --image-feature layering --size 10G#创建镜像写法二,指定存储池,那默认就放到rbd默认存储池下#在rbd存储池下创建名为nb的镜像块设备,大小为10Grbd create rbd/nb --image-feature layering --size 10G

【注】:如上创建镜像的时候,创建的镜像存储大小可以大于实际总存储池大小,存储池不会立刻分配全部大小给镜像,只是当实际写入存储内容超过存储池大小是,会写入失败,等后面存储池扩容时,就可以继续成功写入。

查看镜像:

rbd list #查看所有镜像rbd info jacob #查看jacob镜像详细信息

3、镜像扩容、缩容

(1)扩容

rbd resize jacob --size 15G #从原来的10G扩容至15Grbd info jacob #查看jacob镜像详情

(2)缩容

#因为缩容会有丢数据风险,所以这里比扩容多了一个--allow-shrink参数rbd resize jacob --size 7G --allow-shrink #查看缩容后大小rbd info jacob

四、客户端通过KRBD访问共享镜像

1、客户端安装

客户端需要安装ceph-common软件包:

yum install ceph-common -y

如果安装没找到ceph-common包,可能是因为没有挂载ceph源,ceph源挂载参照Ceph集群部署_桂安俊@kylinOS的博客-CSDN博客,本文所有环境均基于前文Ceph集群部署完成。

2、客户端配置

客户端要想访问到ceph共享存储,需要完成以下2步:

拷贝配置文件:否则不知道集群在哪拷贝连接密钥:否则无连接权限

#随便拷贝一份node节点的ceph配置文件和keying密钥文件,每个节点配置文件和密钥文件都一样scp root@node1:/etc/ceph/ceph.conf /etc/ceph/scp root@node1:/etc/ceph/ceph.client.admin.keyring /etc/ceph/

3、客户端获取镜像

#获取jacob共享rbd map jacoblsblk #查看客户端本地多了一个磁盘

#上面还创建了一个nb镜像,也可以获取rbd map nblsblk

查看磁盘和ceph集群对应关系:

rbd showmapped

4、客户端写入数据

客户端获取到磁盘后,就可以和本地磁盘一样使用,可以格式化、挂载、写入数据等

#格式化为xfs格式mkfs.xfs /dev/rbd0#挂载mount /dev/rbd0 /mnt#写入数据echo "test" > /mnt/test.txt

五、快照

ceph支持存储快照,前文提过ceph是默认是3副本,那为什么还要做快照?副本概念是预防存储设备故障时保障数据安全(数据写入时存3份),解决的是单点故障的问题。但如果不是设备故障,是人为误删,那副本概念就不能实现数据恢复,而定期做快照,可以保证数据误删的时候进行快照恢复。

1、查看、创建快照

#node1操作#查看jacob的快照,默认没有快照rbd snap ls jacob #创建快照,为jacob镜像创建快照,快照名称为jacob-snap1rbd snap create jacob --snap jacob-snap1#查看快照rbd snap ls jacob

2、还原快照

模式数据丢失,在客户端删除数据:

#在客户端操作,将之前创建的txt删除rm -rf /mnt/test.txt#快照恢复之前,必须要将客户端镜像存储先卸载,不支持在线数据恢复umount /mnt

回滚快照,还原数据(在node节点操作):

# 在node节点还原快照rbd snap rollback jacob --snap jacob-snap1

客户端重新挂载分区,检查数据是否恢复(在client端操作):

mount /dev/rbd0 /mntcat /mnt/test.txt

六、客户端卸载网络磁盘

(以下均在client操作)

1、卸载磁盘

#像普通存储一样umount取消挂载umount /mnt

2、取消磁盘映射

#取消前先查看一下rbd showmapped

#取消映射rbd unmap /dev/rbd0#查看是否取消成功rbd shwmapped

可以看到原来的jacob rbd0已经没有了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。