分布式存储双活容灾技术之:延展集群

2022-6-4 960 6/4

分布式存储部署架构前情提要

分布式存储双活容灾技术之:延展集群

某分布式存储系统部署架构

如上图所示每台节点上都需要部署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服务可用。
4.块存储网关服务XDC(Data Client)是指给客户端提供数据访问的接口,支持iSCSI、FC、SCSI及RBD(Rados Block Device)等不同类型的访问路径网关,所有提供块存储服务的节点都是块存储网关XDC节点。
5.对象存储网关服务RGW (Rados Gateway)是对象存储网关,提供S3、NFS访问接口,所有提供对象存储服务的节点都是对象存储网关RGW节点。
6.文件存储网关XDC:文件存储网关是基于CTDB组件使用VIP方式实现,需要在块存储上部署分布式文件系统来做,即也是通过块存储网关XDC对外提供文件存储服务接口,所有提供文件存储服务的节点都是块存储/文件存储网关XDC节点。
7.其他高级功能,如在线迁移、资源恢复等通过其他高级模块实现。

延展集群

延展集群即将分布式存储系统跨同城数据中心部署,两数据中心通过裸光纤或者专线连接(保证带宽和时延即可),再单独部署仲裁节点连接到两数据中心,每个数据中心有一个以上的副本;仲裁节点默认带监控角色、管理角色和块存储网关角色,无需OSD和cluster网络。

分布式存储双活容灾技术之:延展集群

软件支持

■■■■■4.1以上所有版本均可通过购买license的方式支持延展集群;推荐使用最新版本。

方案特点

1.RPO=0,RTO≈0

2.低成本实现双活,管理与维护成本低。

3.应用支持双活,则业务双活,即应用侧双活需要应用支持,如Oracle RAC。

方案要求

1.数据中心间建议小于100公里。

2.站点间网络延时或者往返时间小于RTT≤5msec,即单向小于2.5ms,站点与仲裁间不超过200ms,大集群不超过100ms。

3.站点间至少10Gbps,建议20Gbps以上,站点与仲裁间推荐带宽大于2Gbps。

4.站点间MTU设置要保持一致,可设置为MTU=9000(交换机和存储节点网卡均需配置)。

方案优势

1.两个数据中心平分MON节点,第三站点部署MON仲裁。(MON最小为1+1+1,实际部署时管理服务节点一般也会分开如1+1+1)
2.数据中心级故障域,强制分配副本数量。(支持4/5/6副本,推荐四副本即2+2,不支持EC)

3.适用块、文件、对象,无缝切换,业务无感知。

4.仲裁节点支持虚拟机、物理机、公有云主机。

实现原理

当出现数据中心故障(如地域性灾害)时,仍将有超过50%的MON组件可用,ceph的paxos算法才能正常运行。从而保障分布式存储集群的持续可用。

仲裁节点

延展集群模式下需要一个独立的仲裁节点,仲裁节点可以是一个虚拟机,物理机,或者一个公有云主机,部署在独立的第三站点上,安装好后的仲裁节点,默认设置监控角色、管理角色和块存储网关角色。

※:为什么需要块存储网关角色:因为管理服务xmsd需要使用rbd命令,rbd又被打包在块存储网关角色中,所以在当前版本中块存储网关角色是必须要选择安装的。

仲裁节点建议最低要求:4C-32G-400GSSD*2

业务逻辑

前提:本存储系统的读写特性为所有副本均可读,但只有主副本可写;其他系统如果可以定义2个主副本等功能,那下面业务逻辑就会发生变化。

说明用例:两数据中心,采用2+2四副本部署,设置两个存储池,现有三个业务系统APP1/2/3,如下图:

分布式存储双活容灾技术之:延展集群

业务单机房部署容灾双活

此时创建两个存储池,存储池1主副本设置在数据中心A,存储池2主副本设置在数据中心B,存储池1对接数据中心A部署的业务如APP1,存储池1对接数据中心B部署的业务如APP2,从而保证了APP本地读写。

效果

APP1和APP2均实现了双活容灾,以APP1举例:

发生云主机高可用迁移,APP1迁移到数据机房A内其他物理机上,仍可进行本机房副本的读写;APP1迁移到数据机房B内其他物理机上,可进行本机房B的读,跨机房的写;

存储发生损坏,若本机房发生一副本损坏,可使用另一副本本地读写,若本机房发生二副本损坏,需要进行跨站点读写。

数据机房发生损坏, 云主机迁移至数据机房B,读写B机房的副本,本地读写。

业务集群部署容灾双活

一个业务系统APP3,在两个机房使用负载均衡集群部署,使用pool1对接存储系统。

效果

APP3实现了双活容灾,且实现了就近访问:

通过A机房访问,读写A机房主副本,本地读写。云主机迁移/副本损坏/数据中心损坏同上述逻辑。

通过B机房访问,读B机房副本,写A机房主副本。云主机迁移/副本损坏/数据中心损坏同上述逻辑。

实际的双活容灾设计仍需结合实际进行,网络延时尤为重要,推荐使用业务单机房部署,尽量保证更少的跨机房读写。

 

- THE END -

Tenkms

12月01日00:14

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

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

共有 0 条评论