首页 > 编程知识 正文

ceph核心组件,ceph架构

时间:2023-05-03 06:14:26 阅读:105869 作者:4715

文章1、RBD简介2、RBD常规命令3、RBD配置操作3.1在操作系统上挂载3.2快照配置3.3导出导入RBD镜像3.4扩展

一. RBD简介

RBD是rados块设备的简称,RBD块存储是最稳定、最常用的存储类型。 RBD块设备可以像磁盘一样装载。 RBD块设备具有快照、多拷贝、克隆和一致性等特性,数据以条带化方式存储在Ceph群集中的多个OSD上。 以下是对Ceph RBD的理解。

RBD是Ceph中的块设备,一个4T的块设备的功能与一个4T的SATA类似,安装的RBD可以用作磁盘; resizable :该块xqdwd小; data striped :这个块在Ceph中被切成几个小块保存着。 否则,1PB的块怎么保存; 精简配置:在精简配置中,1TB的群集可以创建无数个1PB的块。 实际上,块的大小和在Ceph中实际占有大小没有关系。 刚做好的块不占用空间。 今后使用多少空间,在Ceph上占用多少空间? 例如,如果有一个32G的u盘,里面有2G的电影,RBD的大小和32G很像,但2G相当于Ceph占用的空间。 块存储的本质是将原始磁盘或类似的原始磁盘(lvm )设备映射到主机来使用。 主机可以格式化,保存和读取数据。 块设备读取速度快,不支持共享。

ceph可以通过内核模块和librbd库提供块设备支持。 客户可以通过内核模块跨越rbd使用,客户可以利用rbd块装置,与普通硬盘一样格式化和使用; 客户APP应用程序还可以通过librbd使用ceph块。 典型的是云平台块存储服务,如下图所示。 云平台可以使用rbd作为云的存储后端,以提供镜像存储、卷块或客户系统引导磁盘等。

使用场景:

云平台(OpenStack提供镜像存储作为云的存储后端) K8s容器映射块设备直接使用ISCIS,Ceph客户端2、 RBD公共命令命令功能创建RBD create块设备映像rbd ls列表rbd存储池中的块设备rbd info显示块设备信息RBDdiffRBD使用统计信息rbd map映射块设备rbd showmapped 锁定设备RBD remove删除块设备rbd resize更改块设备大小3、rbd配置操作3.1 RBD配置操作3.1

#32 32: PG数和PGP数(PG内包含的对象); PG随容量的增加而动态扩展; 生产上,ceph osd pool create rbd 32 32# 用于rbd的pool需要提前计划以使rbd (osdpoolapplicationenablerbd )显示rbd的pool ) root@CEPhnode01my-cluster (核心节点01 my-cluster ) n _ size2crush _ rule0object _ hashrjenkinspg _ num 32 PGP _ num 32 autoscacal e 68 flagshashpspoolstripe _ width 02,10g的块解码

rbd create --size 10240 image01 3,视图块设备

rbdlsrbdinfoimage 01 rados-prbd ls-- all 4,禁用当前系统内核不支持的feature

rbdfeaturedisableimage 01将exclusive-lock、对象映射、fast-diff、deep-flatten 5和块设备映射到系统内核

rbd map image01 rbd showmapped 6,格式化设备镜像

mkfs.xfs /dev/rbd0 7,从mount到本地

mount /dev/rbd0 /mnt 8,创建并显示文件

[ root @ CEP hnode 01 my-cluster ] # touch/mnt/{ a . g } lcx.txt [ root @ CEP hnode 01 my-cluster ] #。 rados-prbd ls-- all rbd _ data.28209 e 4598 ff 7.0000000000000000500 rbd _ id.image 01 rbd _ header.28209 e 4598 ff7 rbd _ data BD _ data.28209 e 4598 ff 7.00000000000006 E0 rbd _ inforbd _ data.28209 e 4598 ff700000000000000009 ff rbd _ data

000000000rbd_data.28209e4598ff7.0000000000000780...

9、取消块设备和内核映射

umount /mntrbd unmap image01

10、删除RBD块设备

rbd rm image01

如果想在其他机器上使用ceph块设备需要下载ceph-common客户端

3.2 快照配置

快照会占用集群很大的空间,建议对重要的块定期拍摄快照;或者用其他方法进行备份

1、创建快照

rbd create --size 10240 image02 #前面是rbd的名称,后面是快照的名称rbd snap create image02@image02_snap01

2、列出创建的快照

rbd snap list image02或rbd ls -l

3、查看快照详细信息

rbd info image02@image02_snap01

4、克隆快照(快照必须处于被保护状态才能被克隆;就是不能对快照做任何的操作)

#创建一个克隆的poolceph osd pool create kube 16 16ceph osd pool application enable kube kube#克隆rbd snap protect image02@image02_snap01rbd clone rbd/image02@image02_snap01 kube/image02_clone01#查看kube的pool中的快照rbd ls -p kubeimage02_clone01

5、查看快照的命令children(可以查看哪个是子快照)

rbd children image02

6、去掉快照的parent(去掉克隆的块关系;就是成为了独立的快照)

rbd flatten kube/image02_clone01

7、恢复快照

rbd snap rollback image02@image02_snap01

8、删除快照

#先取消保护rbd snap unprotect image02@image02_snap01rbd snap remove image02@image02_snap01 3.3 导出导入RBD镜像

1、导出RBD镜像

rbd export image02 /tmp/image02ll -h /tmp/image02 -rw-r--r-- 1 root root 10G May 7 11:36 /tmp/image02

2、导入RBD镜像

#可以删除掉原理的镜像 rbd remove image02rbd import /tmp/image02 rbd/image02 --image-format 2

3、查看导入的rbd

rbd lsrbd info image02

更新所有节点的配置文件的命令

ceph-deploy --overwrite-conf config push cephnode01 cephnode02 cephnode03

启动所有守护进程

systemctl start ceph.target 3.4 扩容

扩容对数据没有影响

1、使用命令rbd resize进行扩容

#image02为10G[root@cephnode01 my-cluster]# rbd lsimage02

2、扩容到20G

rbd --image image02 resize --size 20480[root@cephnode01 my-cluster]# rbd info image02rbd image 'image02':size 20 GiB in 5120 objects#现在扩容到20G了order 22 (4 MiB objects)snapshot_count: 0id: 28338cfe50192block_name_prefix: rbd_data.28338cfe50192format: 2features: layering, exclusive-lock, object-map, fast-diff, deep-flattenop_features: flags: create_timestamp: Thu May 7 11:37:51 2020access_timestamp: Thu May 7 11:37:51 2020modify_timestamp: Thu May 7 11:37:51 2020

3、缩容

XFS文件系统不支持缩小

# --allow-shrink参数rbd --image image02 resize --size 10240 --allow-shrink

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。