基于Ceph的某分布式存储系统学习

2022-6-1 513 6/1

软件架构

系统逻辑架构

基于Ceph的某分布式存储系统学习

说明:

1.一套系统即可提供ISCSI/FC块存储、对象存储、文件存储。

2.支持的标准协议:块存储LibRBD/SCSI/ISCSI/FC、对象存储S3/NFS、文件存储NFS/SMB/FTP。

3.包含多种数据服务技术、高级存储功能和资源管理技术、系统加速方法、存储核心技术、硬件支持、存储系统的管理技术。

通信协议栈

基于Ceph的某分布式存储系统学习

部署架构

基于Ceph的某分布式存储系统学习

每台节点上都需要部署XMS-a服务,XMS-s服务至少3台,MON服务至少3台,详细服务说明如下:

1.管理服务XMS-a(Management Service-Agent )是指Controller Master Agent,负责给GUI提供后台数据。

2. 管理服务XMS-s(Management Service-Server)是提供GUI、API等管理功能,作为管理服务器来提供分布式存储集群的管理功能。 为保证集群管理功能高可用,建议至少设置并开启3个(即2n+1)XMS-s服务 ,并且保证至少一半(不含)以上(即n+1)的XMS-s服务可用。

3.监控服务MON(Monitor)是指用于提供集群存储数据的监控服务。为保证集群数据监控功能高可用,建议至少设置并开启3个(即2n+1)MON服务,并且保证至少一半(不含)以上(即n+1)的MON服务可用。

补充:

基于Ceph的某分布式存储系统学习

1.块存储网关服务XDC(Data Client)是指给客户端提供数据访问的接口,支持iSCSI、FC、SCSI及RBD(Rados Block Device)等不同类型的访问路径网关,所有提供块存储服务的节点都是块存储网关XDC节点。

2.对象存储网关服务RGW (Rados Gateway)是对象存储网关,提供S3、NFS访问接口,所有提供对象存储服务的节点都是对象存储网关RGW节点。

3.OSD(Object Storage Device)是指负责数据落盘的一个进程,副本和EC也通过OSD服务实现。每一个硬盘有一个OSD进程,所以本系统中统一把添加OSD服务的物理盘称作硬盘。

4.文件存储网关XDC:文件存储网关是基于CTDB组件使用VIP方式实现,需要在块存储上部署分布式文件系统来做,即也是通过块存储网关XDC对外提供文件存储服务接口,所有提供文件存储服务的节点都是块存储/文件存储网关XDC节点,当使用计算存储分离部署时,所有计算节点上也是块存储网关角色,作为存储式存储系统的客户端。

5.块存储网关XDC服务可以对外提供iSCSI、SCSI、FC等标准接口及LibRBD云计算接口,LibRBD接口可以直接对接云计算平台,如OpenStack、ZStack等。XDC服务提供数据QoS、流控、流量统计等功能,并且通过高级功能卷(XBD模块)可以支持卷在线迁移、卷同步复制等高级功能,

6.对象存储核心服务为对象路由服务,对象路由就是RGW(S3网关)的负载均衡器,使用OpenResty实现,动态获取XMS集群中的S3网关列表,将请求转发到集群中所有S3网关,如下图:

基于Ceph的某分布式存储系统学习

7.文件存储系统是基于块存储做的文件系统,一个块存储卷对应一个文件目录,将每个文件目录通过FTP、SMB或NFS协议共享给用户使用。文件系统的网关是通过CTDB的IP漂移形式实现高可用,Active-Standby主备模式,虚拟的IP与实际网关节点IP有着相应的映射关系。用户连接共享时是通过连接虚拟IP, 当某个网关节点宕机之后,对应的虚拟IP会转移到其他的网关节点上去,这一过程对于用户来说是透明的,不会影响共享的使用。

基于Ceph的某分布式存储系统学习

数据冗余

本小节只对涉及较多的数据冗余技术做概括说明,相对涉及较少的如故障自愈、一致性校验等不在本节内容之列,详细的技术研究会写单独的文章。

多副本

支持用户数据按照设定的1-6副本进行冗余存储。如下图所示,以3个节点组成一个资源池,存储数据为两副本的简单模型为例,任意1个节点上的主副本数据,其备副本数据会均匀分布在其他节点上,单点故障系统不会丢失数据,如下图:

基于Ceph的某分布式存储系统学习

如何保证副本数据一致

    存储系统通过强一致性复制协议来保证数据多个副本的一致性,只有当数据的所有副本都写入成功后,才会返回前端数据写入完成。正常情况下存储系统可以保证每个副本上的数据都是完全一致的,从任意副本读到的数据都是相同的。如果系统中的某个硬盘出现短暂故障,存储系统会暂时不写这个硬盘上的数据,通过日志记录的方式,记录此硬盘上数据的变化,等硬盘恢复后通过日志信息恢复该硬盘上的数据,如果硬盘长时间或者永久故障,存储系统会将硬盘从存储系统中移除掉,并统计出此硬盘上所有数据的副本位置,将这些丢失数据恢复到其它服务器的硬盘中。

常见副本总结

1.两副本场景下,在XSKY一个资源池内,出现一个节点或一块磁盘故障,整个系统不会丢失数据,不影响业务正常使用。
2.三副本场景下,在XSKY一个资源池内,出现两个节点或两块磁盘同时故障,整个系统不会丢失数据,不影响业务正常使用。

常见副本配置及利用率

1.2副本,空间利用率为50%,服务器最少3台,3台MON节点复用存储节点。

2.3副本,空间利用率为33%,服务器最少3台,3台MON节点复用存储节点。

3.4副本,空间利用率为25%,服务器最少配置4台,存储节点可复用MON节点,但最好单独配置3台MON节点。

※:服务器最小数量如果不单独规划MON节点,则最小数量= 2n-1,n为副本数量。

EC纠删码

EC如何数据高可用

EC(Erasure Coding)纠删码技术是将一份数据切分成N块原始数据,基于N块原始数据计算获得M块冗余数据,并将N+M块数据分别存放在存储系统中的不同存储节点上,当其中任意M块数据出错时,存储系统可通过数据恢复算法恢复出原来的N块数据,实现冗余和容错的目的。

基于Ceph的某分布式存储系统学习

常见EC副本及利用率

1.4+2,空间利用率为66%,服务器最少6台。

2.4+2:1,空间利用率为66%,服务器最少3台。

3.8+2,空间利用率为80%,服务器最少10台。

4.8+2:1,空间利用率为80%,服务器最少5台。

※:EC使用M+N配置,最少服务器台数就为M+N,使用M+N:1配置,服务器数量减半。

M+N:1纠删码:即亚节点纠删码,为了满足小规模低成本集群的部署要求,默认的纠删码是按照节点来分配数据的,但M+N:1只会按照硬盘来分配数据,以4+2和4+2:1举例,4+2在6节点均匀分配数据,而4+2:1把3个节点当6个节点用,每个节点选择2块硬盘,整个集群选择6块不同的硬盘来存放4+2总计6个分片数据。

故障域

故障域由具有共同单点故障的服务器(或机架)组成,数据副本分布到不同故障域,保障数据安全。可为机架、服务器、硬盘提供故障恢复能力。无论磁盘、服务器发生硬件故障,还是机架、机房出现故障,都不会造成停机或数据丢失。下图每个机架设置成一个故障域,如果创建一个2副本存储池,则不同副本数据一定会自动分放在不同的机架里,这样即使机架A出现故障(如断电),也不会停机或导致数据丢失。

基于Ceph的某分布式存储系统学习

- THE END -

Tenkms

12月01日00:16

最后修改:2023年12月1日
0

非特殊说明,本博所有文章均为博主原创。

共有 1 条评论

  1. 何问

    受教 😋