查看原文
其他

基于GPFS技术的应用跨中心容灾和双活架构设计

邓毓 twt企业IT社区 2022-07-03

在前不久的交流活动中,我们深入探讨了基于IBM SVC的三种主流双活数据中心架构,分别是SVC Stretch Cluster、SVC HyperSwap和SVC Local VDM+SVC PPRC,并围绕这三种架构进行了详细深入的特性挖掘和方案对比。

回顾:最全的SVC双数据中心虚拟化存储架构、对比、建设知识及经验总结

上述三种方案主要从跨中心的存储的双活角度,设计出双活数据中心的基础存储架构,存储对于数据库系统来说通常都是必要的,但对于应用系统来说是可有可无的,尤其是在互联网时代,号召的是横向扩展和弹性伸缩的应用系统架构,所以在整个双活数据中心的角度来看,上述三种方案的适用范围和灵活度都有一定的限度。另外,在OLTP数据库双活方面,基于存储的双活方案仍需要结合并行DB等软件双活方案,才能真正发挥该方案的优势。

基于此,软件架构的跨中心双活方案也是非常值得探讨的,所以我们将围绕“软件架构的双活数据中心”这一双活数据中心建设方案进行深入探讨,围绕以下重点:

1.GPFS并行文件系统介绍与探讨
2.基于GPFS技术的应用跨中心双活架构与容灾
3.并行DB介绍与探讨(DB2 PureScale、ORACLE RAC)
4.深入剖析各种基于软件架构的双活数据中心建设方案
5.采用软件架构的双活数据中心 or 虚拟化存储架构的双活数据中心?
6.多措并举、逐步过渡的双活数据中心建设

欢迎大家参加4月28日的交流活动(点击文章左下角阅读原文即可),在此,先进行一些分享,方便大家带着想法和问题来交流。


双活数据中心建设系列之--- 

基于软件架构的双活数据中心建设方案深入探讨(GPFS部分)


一、GPFS并行文件系统介绍与探讨

说起GPFS,大家已经比较了解了,这里再次不厌其烦地再介绍一遍---GPFS (General Parallel File System)是 IBM 公司第一个共享文件系统,它是一个并行的磁盘文件系统,它保证在资源组内的所有节点可以并行访问整个文件系统。 GPFS 提供的文件系统操作服务可以支持并行应用和串行应用,它允许任何节点上的并行应用同时访问同一个文件或者不同的文件,提供统一命名接口。
既然是并行文件系统,GPFS相对于单一节点和单一文件系统它有以下几个特点:

1.文件系统的并发读写:多个节点的同一文件系统,同时受理I/O读写请求,提升文件系统读写的并发性,多个节点均为ACTIVE。

2.文件系统的高可靠性:文件系统的数据可通过日志或复制的方式存在多个副本,并且由于多个节点和多个磁盘的多活特性,可容忍故障节点数或磁盘数提升。

3.文件系统的高性能:通过将文件分布在多个节点和磁盘上,使得文件系统的读写操作分布到多个磁盘上和多个节点上,GPFS可以超越单一节点和单一文件系统的性能极限。

4.文件系统的可扩展性:文件系统可随节点数的增加和存储磁盘个数的增加,进行在线扩展和文件系统数据块均衡或调整。进一步提升性能、容量和可靠性。

在GPFS并行文件系统的应用中,通常有以下三种主要的应用架构模型:

1.SAN网络模式

这种架构也叫Direct Attached Storage架构,在该架构模式下,所有节点通过SAN网络共享同一存储,这些节点既是GPFS SERVER节点又是GPFS CLIENT节点,整个架构趋于扁平化,I/O深度浅,又由于节点与存储采用了Direct Attached的方式连接,所以这种架构模式下的节点I/O性能较好,GPFS的I/O性能主要取决于存储I/O性能。值得注意的是,这种模式下,为了保证仲裁2N+1的数量,通常选用存储盘作为TiebreakerDisk。

2.NSD服务模式

这种架构也叫Mixed NSD access架构,该架构模式下,两组NSD SERVER分别挂载两组不同的存储,这两组存储通过TCP/IP或者INFINIBAND网络传输数据,通常,两组存储的数据都保持一致,这种模式需要一个专门的仲裁节点来保证2N+1的仲裁数量,其中NSD SERVER既可作为GPFS服务端,又可作为GPFS客户端,应用节点跑在NSD SERVER上时,I/O深度也只有两层,但由于两组NSD盘间数据的实时同步会损耗一定的时间,所以NSD SERVER的I/O读写性能会稍稍降低。如果NSD SERVER上不跑应用,应用节点通过网络共享的方式对GPFS文件系统进行读写,那么整个应用读写I/O深度达到了三层,性能损耗又会提升。另外,为了实现多块NSD均衡由不同的NSD SERVER负载,可以在配置GPFS NSD时,区分不同NSD的NSD SERVER服务顺序。

3.无共享模式

这种架构也叫File Placement Optimizer (FPO)架构,这种架构模式下,每一个节点均挂载不同的存储,所有节点既作为GPFS服务端又作为GPFS客户端,GPFS文件系统横跨所有节点和所有存储,这就是所谓的分布式文件系统,通常利用节点的内置盘作为节点的存储,整个I/O深度也只有2层,这种架构的I/O读写性能最佳,GPFS并发读写最好,扩展性最佳。

以上可见GPFS作为并行文件系统,无论是性能、可靠性,还是可扩展性和灵活性上都有着自身卓越的属性。

二、基于GPFS技术的应用跨中心双活架构与容灾

在上一节中我们简要介绍了GPFS的三种架构模型,那么基于这三种架构模型,GPFS的跨中心容灾和双活架构,又该如何设计和考虑呢?

1.GPFS SAN网络模式架构下的容灾和双活

如下图所示,我们将GPFS SAN网络模式架构在SiteB一模一样的搭建,SAN网络交换机和TCP/IP网络交换机通过SiteA和SiteB间的裸光纤级联,两个站点的节点既可能是GPFS服务端,也可能是GPFS客户端。于是乎我们可以得出两种设计方案:

a.容灾方案:两个站点的所有节点搭建一个GPFS集群,所有节点均作为Quarum Node,SiteA的存储数据盘作为业务数据盘和TiebreakerDisk,SiteA和SiteB的两个存储通过存储自身的实时同步复制功能,保持数据一致性,这样一来,有两种容灾的方式,一种是SiteB的所有节点作为GPFS客户端,通过跨站点的TCP/IP网络,访问SiteA的GPFS服务端;另一种是SiteB的所有节点作为GPFS服务端,通过跨站点的SAN网络,访问SiteA的存储。这两种方式的差别在于第一种方式为:SiteB节点的GPFS文件系统读写I/O路径为跨站点的TCP/IP网络+SiteA的SAN网络;第二种方式为:SiteB节点的GPFS文件系统读写I/O路径为跨站点的SAN网络。所以在SiteB端,第一种方式的I/O路径略长于第二种方式。这两种方式的相同点在于存储的业务数据和TiebreakerDisk信息均通过存储的同步复制技术保持实时同步,为了实现站点级容灾,两种方式均需要编写脚本,判断 SiteA节点是否都活动,否则将自动将切换存储卷至SiteB,SiteB节点自动将GPFS服务拉起,继续对外提供服务。

所以总结GPFS SAN网络模式架构的容灾,可以得出,以上两种方式下的SiteB站点节点读写性能和稳定性需要重点关注;SiteB节点和存储全部故障不会对SiteA的GPFS访问造成影响;SiteA一半节点故障不会影像GPFS访问;SiteA两个节点或者TiebreakerDisk均故障需要触发脚本,使得存储盘切换至灾备端,SiteB全部节点启动GPFS服务,继续提供GPFS访问。

b.双活方案:GPFS SAN网络模式架构的跨站点双活方案,可以考虑两种方式,见下图一和图二。

图一:


图二:

图一为SAN网络模式架构模式容灾方案的延伸版,通过应用负载均衡地把服务请求分发至SiteA和SiteB两个站点,两个站点的所有节点均提供应用服务,SiteA节点的应用在本地对GPFS文件系统读写,SiteB节点的应用跨站点对GPFS文件系统读写。另外,SiteA节点既作为GPFS Servers,同时又担任Application Node,而SiteB节点既可按照容灾方案的第一种方式作为GPFS客户端,又可按照容灾方案的第二种方式作为GPFS的服务端。简单总结这种方式来说,两个站点的节点GPFS I/O读写路径和性能存在些许差异;

而图二将SiteA的NSD Server与Application Node分置于不同节点,SiteA和SiteB节点全部作为GPFS客户端,两个站点的节点GPFS I/O读写路径和性能一致。

当然,上述两种双活方案均是建立在容灾方案的基础之上,SiteA和SiteB的所有节点均加入一个GPFS集群中,利用存储到存储的同步复制功能,SiteA的TiebreakerDisk仲裁,自动探测与自动切换脚本也是必须的。

2.GPFS NSD服务模式架构下的容灾和双活

GPFS NSD服务模式下的容灾、双活和SAN网络模式架构容灾、双活有很大的不同,见下图所示。

a.SAN网络模式的容灾架构是需要存储的跨站点同步复制的,数据同步网络为SAN光纤网络;而NSD服务模式的容灾架构是通过两个站点的GPFS Server间进行数据复制和同步的,是跨站点NSD DISK与NSD DISK间的同步,数据同步网络为TCP/IP网络。基于SAN光纤网络的同步带宽、速率和TCP/IP网络会有差异,所以NSD服务模式的容灾架构的数据同步网络最好是Infiniband或者万兆TCP/IP网络,来提升整个数据同步的速率,避免同步带来的I/O性能损耗。

b.SAN网络模式的容灾架构下,两个站点GPFS读写I/O路径和性能不对称;而NSD服务模式的容灾架构下,两个站点GPFS读写I/O路径和性能非常对称,每个节点均读写各自站点的NSD数据盘。

c.SAN网络模式的容灾架构设立了TiebreakerDisk,来保证2N+1的仲裁数量;而NSD服务模式的容灾架构不需要设立TiebreakerDisk,取而代之的是第三站点仲裁节点。

d.SAN网络模式的容灾架构为了实现站点故障时,GPFS服务的自动切换功能,需要加入自动化监控和切换脚本(可考虑TSA软件);而NSD服务模式的容灾架构无需考虑这点,因为两个站点的所有节点均为Quarum Node,组成一个集群,两个站点节点数量对等,总共2N+1的仲裁数量,SiteA的N个节点故障,不会影响整个集群故障,SiteB仍然可以对外提供GPFS文件系统读写。

3.GPFS无共享模式下的容灾和双活

GPFS无共享模式作为分布式GPFS文件系统模式,在大数据方面,应用越来越广泛。另外它对GPFS性能的提升和扩展能力的提升,起着非常重要的作用。那么这种模式架构下的容灾和双活又是如何的呢?如下图所示:

我们将同一个GPFS集群中所有的GPFS-FPO节点拉开,均匀分布于不同的两个站点,所有节点既是GPFS服务端,又是GPFS客户端,同时还是应用软件的服务节点,两个站点的TCP/IP网络或者Infiniband网络通过裸光纤级联,并通过应用负载来接入服务请求和均衡分发服务请求,最终实现跨中心的双活应用服务。这里主要利用了GPFS-FPO的四大特性:

a.位置感知特性:由于GPFS文件系统的数据是打散在不同节点的不同存储当中,所以每个GPFS节点的读写操作都需要知道究竟文件都在哪个节点存放着,所以GPFS-FPP在缓存中专门划了一片区域,来存储存储块数据的位置信息和副本信息,也叫GPFS-MAP,无论哪个节点想要读取GPFS的哪个存储块,均会通过GPFS-MAP找到所在的节点和具体位置。

b.可配置的写亲和性:GPFS-FPO的写亲和性是指某节点的应用程序需要进行GPFS读操作时,在本节点的本地存储就能读取到的能力。对于这种能力,GPFS-FPO是可以进行设置的,当设置为write striping(写条带化)时,所有GPFS节点均衡分布着数据,某一节点的读操作可能从本地无法获取,需要通过网络(GPFS客户端)的方式从其他节点读取;当设置为write affinity时,可以设置某部分文件集属于某节点专属,或者所有节点均包含相同的存储数据,这样所有节点的读操作均能在本地获得。

c.管道复制:所有GPFS节点通过专属的网络连通,当某一节点应用对GPFS写数据时,写入该节点的存储数据,同时也会通过管道复制至其他多个节点的存储。

d.快速恢复:当某一GPFS节点故障时,该节点的存储也离线,但整个GPFS并不会丢失该存储数据,其他节点的存储依旧有相同的数据副本,继续提供读写访问。当故障节点恢复后,也能通过其他节点的副本数据,快速恢复新增变化数据。

基于以上四点,我们可以看出,GPFS无共享模式架构对某些应用场合来说,也是非常适合搭建跨中心的应用双活架构。

-----------------------

“双活数据中心建设系列之——基于软件架构的双活数据中心建设方案深入探讨”

交流时间:3月28日上午9点半到下午5点半

欢迎参与,现在点击阅读原文即可提前提问


长按下图二维码关注“AIX专家俱乐部”公众号

也可以直接搜索公众号名称“AIX专家俱乐部”或微信号“AIXChina”关注

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存