iarevip
作者iarevip·2023-04-21 10:12
存储工程师·某银行

农商行本地数据中心基于华为NAS双活实践

字数 7652阅读 6298评论 1赞 13

摘要:

本文分享了金融行业基于华为信创存储的同机房NAS双活实施案例,希望对同行有借鉴和参考价值。由于该存储支持SAN、NAS一体化双活,可在此基础上灵活扩展SAN存储双活或单独构建SAN双活存储架构,亦可扩展为同城双活架构。

1 项目背景

近年来,金融科技已成为银行业金融机构的核心竞争力。各家银行业金融机构持续推进数字化转型,通过信息技术提升金融服务能力和风险防控能力。数据中心是银行科技的信息化基础设施,是银行数字化转型的基础载体,是应用系统安全稳定运行的重要保证。自2018年以来,我行双活数据中心建设先后实现了A类系统的同城业务级双活和B类系统的同城数据级灾备,较好地支撑了业务的发展,提升了业务的连续性水平。

在同城双活数据中心建设中,我行已经完成了所有A/B类系统的NAS双活改造,主要由某厂商双活NAS存储承载。鉴于部分NAS存储设备的使用年限及存储技术的革新,近期已完成影像平台从NAS存储向对象存储的迁移。由于动态的非结构化数据最优选择依然是NAS存储,为提升我行C/D类系统的本地存储资源连续性保护能力及满足存储设备安全可控,我行通过招标比选采用两台华为 OceanStor 5000系列存储阵列构建了本地数据中心NAS存储双活体系。

2 技术选型

基于我行双活数据中心的建设经验,本地NAS双活产品重点需关注如下几点:

免网关设计:无需额外部署虚拟化网关设备,由两套独立的存储阵列同时提供两个实时一致的数据副本供业务主机读写访问,可以有效的隔离单存储系统的故障扩散,任意一副本故障都不影响业务的连续运行。相较于网关双活,免网关双活架构简单,与存储增值特性良好兼容,减少了网关故障点,提高了方案可靠性,I/O响应速度更快,无需经过网关设备转发,减少网关转发时延,显著降低双活组网复杂度,便于维护。

免NAS网关:不需要在SAN设备上再叠加额外NAS网关,并通过阵列本身特性在业务层面同时实现块与文件的双活,降低业务部署复杂度并有效减少I/O路径故障点,提升系统可靠性。

一体化双活:既支持文件数据服务,也支持块数据服务,能够以NFS文件系统和SAN块存储两种方式提供双活功能。SAN与NAS共用一套仲裁,能够确保两个站点间链路故障时,文件存储和块存储由同一站点提供服务,保障仲裁一致性。

AA双活架构:两个数据中心提供强一致性的数据镜像副本,可以同时为上层应用提供相同业务数据,实现业务负载均衡。当一个数据中心故障时,业务自动切换到另一个数据中心,数据零丢失,业务零中断。相较于Active-Passive方案,Active-Active双活方案可充分利用计算资源,有效减少阵列间通信,缩短I/O路径,从而获得更高的访问性能和更快的故障切换速度。

仲裁机制:同时具有静态优先级模式和仲裁服务器模式两种故障仲裁机制,这样才能覆盖所有灾难场景,才是完整的双活仲裁解决方案。支持按照双活Pair或双活一致性组为单位进行仲裁,当多个Pair提供的业务相互依赖时,用户需要把这些双活Pair配置为一个双活一致性组,仲裁完成后,一个双活一致性组只会在其中一套存储阵列继续提供服务。

3 方案设计

3.1 产品介绍

3.1.1 华为OceanStor 5000系列 存储
华为 OceanStor 5000系列 存储系统采用全闪存设计的系统架构,可满足各种高性能应用的需求。

华为OceanStor 5000系列 存储系统采用端到端深度优化的全自研闪存架构设计,包括自研芯片、自研SSD驱动器、自研闪存控制器、内置于系统各部件的自研算法和驱动以及系统内软硬件深度融合等,将全闪存存储性能发挥到极致,在ms级时延下下IOPS高达百万,保证客户关键应用极致的性能体验,帮助业务轻松跨入全闪存时代。

采用新一代的全自研高性能SSD控制器芯片,匹配新一代高效专利算法和驱动,提供更高可靠性、更高性能的SSD驱动器。

华为 OceanStor 5000系列存储系统采用高可靠性设计,保证存储系统长时间无故障运行,确保存储系统承载的业务具有高可用性。同时OceanStor 5000系列存储系统支持多种数据保护技术,保证各种情况下数据的安全,即使在毁灭性的灾难下,也能确保业务正常持续运行。

华为 OceanStor 5000系列存储系统支持多种数据保护方式,满足备份、容灾等不同业务应用的需求,防止因为自然灾害、严重设备故障和错误操作造成业务中断以及数据丢失。

OceanStor 5000系列存储系统支持的数据保护方式包括:

  • 备份:各种业务每时每刻都会产生大量数据。如果业务数据丢失,将带来极大的损失。因此所有企业都会定期备份重要的业务数据,防止严重灾难造成业务数据丢失。常见的备份技术包括:
    1) 快照:迅速在本地生成源LUN在某个时间点上虚拟的数据副本,数据副本生成之后立即可用,并且对副本的读写操作不会影响源LUN的数据。
    2) 克隆:可在本地为源LUN建立一份某时刻的完整拷贝,即把数据从源LUN拷贝到本地的从LUN中。拷贝完成后,可分裂源LUN和从LUN。分裂后,对从LUN的读写操作不会影响源LUN上的数据。
    3) LUN拷贝:能够在块级别上将源LUN的数据复制到目标LUN。LUN拷贝可以在存储系统内运行或者存储系统之间(支持异构存储系统)运行。
    4) 卷镜像:对数据进行实时备份,能够在数据源出现故障时,自动切换到数据副本,保障数据的安全性和业务的连续性。
  • 双活:能够实时地进行存储系统之间数据同步复制,业务运行状态监控和故障切换。保证在线实现跨数据中心的业务切换,以及业务负载分担。
  • 容灾:对于某些即使在毁灭性灾难情况下也必须持续运行的业务,需要采用容灾技术。容灾技术涉及存储系统、应用服务器、应用软件和人员支持等多个方面。在存储系统层面,容灾技术是指实时的数据备份,主要使用远程复制技术。远程复制技术能够在两个或多个站点实时维护多个数据副本,利用长距离来避免灾难发生时的数据丢失,为在其他站点恢复业务做好数据准备。

3.1.2 HyperMetro特性
华为HyperMetro特性又称双活特性(以下统称双活特性),双活特性中的两个数据中心互为备份,且都处于运行状态。当一个数据中心发生设备故障,甚至数据中心整体故障时,业务自动切换到另一个数据中心,解决了传统灾备业务无法自动切换的问题。提供给用户高级别的数据可靠性以及业务连续性的同时,提高存储系统的资源利用率。

3.2 拓扑架构

存储层,采用两台华为 OceanStor 5000系列存储阵列通过HyperMetro构建本地数据中心NAS双活体系,为本地数据中心存储同时提供读写服务,且整个存储系统架构全冗余,任意一台存储故障都不影响NAS业务的连续运行。

双活复制网络,两端存储系统间保持数据同步以及心跳信息同步的网络,双活复制网络同时承载存储系统间的数据同步以及心跳信息同步等多种数据。由于NAS双活存储部署在同一数据中心,双活复制链路接入SAN交换机建立FC高速复制通道,不存在同城双活中裸光纤设备的时延及抖动等问题,满足NAS业务网络时延要求。

仲裁网络,当两端存储系统的设备故障或设备间的链路故障时,需要通过仲裁网络进行业务仲裁。仲裁支持虚拟机模式,由于是在同数据中心部署NAS双活存储,仲裁虚拟机不部署在其他数据中心,但必须将其放置在其他存储上(如果将仲裁虚拟机放置到NAS双活存储的任一存储,当仲裁虚拟机所在的NAS存储故障时,仲裁也会宕机失效,这样就会引起多点故障)。华为官方推荐仲裁虚拟机使用两个独立VLAN的高可用仲裁网络,分别和A控和B控通信。

业务网络,NAS双活存储的A控和B控分别接入独立的NAS网络区,形成故障漂移组(fail group)。NAS双活存储的每个控制器通过2条10GbE光纤接入业务交换机,形成一个20GbE的端口组(LACP)。接入同一网络区域的控制器之间采用A-A(双active)互备的工作模式,当任一个控制器出现硬件故障或业务网络中断时,存储系统会自动将业务地址切换到另一个活动的控制器上,切换时间控制在5秒以内,对前端业务系统可以做到无感知。

管理网络,每台存储通过2个管理网口接入网管网,用于存储设备的日常管理和存储监控管理。

注:本次项目未实施SAN架构,该存储架构仅用于NAS双活。若要实施SAN架构,在此基础双活架构下,新增A/B控制器的FC前端口到SAN交换机即可, 可配置SAN双活租户和SAN单活租户。

3.3 租户设计

每台存储上配置两个租户,一个用于双活租户Pair,一个用于单活租户,两个租户共享相同的存储硬件资源,可动态调整其可用容量。

双活租户用于创建NAS双活Pair,使用两端存储资源。

单活租户用于创建单活NAS,使用本存储资源。

每个租户可单独配置其逻辑端口和漂移组,业务链路物理隔离。

注:租户是指在一套物理存储系统中创建多个虚拟存储系统,让多个租户既能共享相同的存储硬件资源,又不影响相互的数据安全性和隐私。借助租户特性,可以在多协议统一存储架构中实现更加灵活、更易于管理、部署成本更低的共享存储。

逻辑端口的创建基于物理以太网端口、绑定端口或VLAN,主要用于文件业务的运行。

4 技术原理

4.1 本地数据中心部署架构

主机采用集群部署方式,主机与存储间通常通过交换机方式通信,对于NAS文件系统,需要采用IP交换机。同时,存储侧部署存储双写镜像通道,保证双活业务的运行。

4.2 数据读写原理

通过数据双写和DCL机制实现存储层数据的双活,两个数据中心同时对主机提供数据读写能力。

4.2.1 数据双活的实现
实现两台存储设备双活的核心就是基于租户的逻辑端口机制和数据双写机制。在业务运行中,数据变更可通过双写和DCL来完成同步,进而保证两个数据中心的数据一致性。

  • 在两端存储系统创建租户,让多个租户既能共享相同的存储硬件资源,又不影响相互的数据安全性和隐私。
  • 在租户中创建文件系统,在以租户为单位进行共享资源、故障处理等操作时,该操作作用于租户下的所有文件系统,从而实现更灵活、更易于管理、部署成本更低的存储资源共享机制。
  • 创建双活租户Pair,从而建立本端存储系统的租户和远端存储系统的租户之间的双活关系,双活仲裁以双活租户Pair为单位,在该双活租户Pair中的双活发生故障时,确保该Pair中租户下的所有文件系统的仲裁结果均保持一致,以及保证文件系统运行所依赖的环境在两个租户之间保持一致。
  • 创建NAS双活Pair,从而建立本端文件系统和远端文件系统之间的双活关系。通过创建NAS双活Pair关系,可以及时的对双活进行数据同步、双写、暂停等操作。
  • 创建租户的逻辑端口后,本端逻辑端口激活(远端未激活),此时本端承担主机业务。当本端存储系统发生故障时,转换为远端逻辑端口激活(本端去激活),由远端存储系统承担主机业务。提供给用户高级别的数据可靠性以及业务连续性的同时,提高存储系统的资源利用率。

4.2.2 FastWrite
HyperMetro通过FastWrite功能对阵列间数据传输进行了协议级优化,应用SCSI 协议的First Burst Enabled功能,将写数据的链路传输交互次数减少一半。

正常的SCSI流程中,写I/O在传输的双端要经历“写命令”、“写分配完成”、“写数据”和“写执行状态”等多次交互。利用FastWrite功能,优化写I/O交互过程,将“写命令”和“写数据”合并为一次发送,并取消“写分配完成”交互过程,将跨站点写I/O交互次数减少一半。如图所示:

4.2.3 写I/O流程
在业务正常运行中,当主机下发I/O请求并引起数据变更时,双活I/O的写处理流程(以回写为例进行说明)如下图所示:

  1. 主机下发写I/O到双活I/O管理模块。
  2. 本端存储系统记录LOG。
  3. 执行双写:双活I/O管理模块同时将该写I/O写入本端文件系统和远端文件系统。
  4. 本端文件系统将写I/O写入到本端Cache,远端文件系统将写I/O写入到远端Cache。
  5. 本端Cache向本端文件系统返回写I/O结果,远端Cache向远端文件系统返回写I/O结果。
  6. 双写结果处理:本端文件系统和远端文件系统向双活I/O管理模块返回写I/O结果。
  7. 判断双写是否成功。
  8. 如果两端都写成功:清除LOG。
  9. 如果有任意一端写失败:LOG转换成DCL,记录本端文件系统和远端文件系统的差异数据。双活Pair的运行状态变为待同步,I/O变成单写,写成功的一端继续提供主机业务,写失败的一端停止主机业务。

4.2.4 读I/O流程
两端的文件系统数据实时同步,当任何一端存储系统故障的情况下主机将切换访问路径到正常的一端继续业务访问。

  1. 主机向双活I/O管理模块申请读权限。
  2. 双活先从本端存储系统响应主机的请求。
  3. 如果本端存储系统正常,则本端存储系统将数据返回给双活。此时,本端逻辑端口激活(远端逻辑端口未激活),此时本端承担主机业务。
  4. 如果本端存储系统处于非正常状态,转换为远端逻辑端口激活(本端逻辑端口去激活),由远端存储系统承担主机业务,远端存储系统将数据返回给双活I/O管理模块。
  5. 主机读I/O成功。

4.3 数据仲裁原理

当双活的两端存储系统之间的链路故障或一端阵列故障时,主从vStore已经无法实时镜像同步,此时为了保证主从vStore数据一致性,只能由其中一端vStore中的文件系统继续提供服务,另外一端vStore中的所有文件系统需要停止提供服务。HyperMetro通过仲裁机制决定由哪端vStore继续提供服务,仲裁获胜的vStore中文件系统继续提供服务。

4.3.1 静态优先级模式
当没有第三方仲裁时,用户可以设置其中一端vStore为优先站点,另一端为非优先站点。

当发生存储系统间链路故障,或者从存储系统故障时,主vStore继续提供服务,从vStore停止提供服务。

当主存储系统故障时,从vStore不能自动接管业务,业务中断,需要人工强制启动从vStore的服务。

4.3.2 仲裁服务器模式
使用独立的物理服务器或者虚拟机作为仲裁设备,仲裁服务器建议部署在第三方仲裁站点。这样可以避免单数据中心整体发生灾难时,仲裁设备也同时故障。

仲裁服务器模式下,当存储系统间心跳中断时,vStore向仲裁服务器发起仲裁请求,由仲裁服务器综合判断哪端获胜。仲裁获胜的一方继续提供服务,另一方停止服务。仲裁服务器模式下主vStore端会优先获得仲裁胜利。

5 测试用例

针对各测试项提前做好表格,包括预置条件、预期结果、测试步骤和测试结论。预置条件、预期结果、测试步骤可提前输入,测试过程中记录测试结论。

5.1 功能性测试

5.2 可靠性测试

5.2.1 仲裁服务器故障

1、关闭仲裁服务器
验证主备存储是否发生仲裁,双活文件系统是否继续提供服务,使用vdbench监控双活文件系统IO连续性。

2、一台存储系统与仲裁服务器之间的链路故障
验证主备存储是否发生仲裁,是否继续提供存储服务,使用vdbench监控双活文件系统IO连续性。

5.2.2 复制链路故障
验证主备存储是否发生仲裁,是否继续提供存储服务,使用vdbench监控双活文件系统IO连续性,记录IO中断时间。

5.2.3 主存储故障
验证主存储故障发生时,备存储是否继续提供存储服务,是否需要人工干预,记录仲裁结果,使用vdbench监控双活文件系统IO连续性,记录IO中断时间。

验证主存储故障恢复后,手动回切存储服务(记录操作步骤),使用vdbench监控双活文件系统回切期间的IO连续性,记录IO中断时间,验证存储数据一致性。

5.2.4 备存储故障
验证备存储故障发生时,存储服务是否受影响,使用vdbench监控双活文件系统IO连续性,记录IO中断时间。

验证备存储故障恢复后,存储服务是否受影响,使用vdbench监控双活文件系统的IO连续性,记录IO中断时间,是否需要人工干预双活同步。

5.2.5 复制链路故障且仲裁到主存储链路故障

验证发生故障时,主存储自动关机隔离(不会发生脑裂现象),备存储继续提供服务,记录仲裁结果。

复制链路链路及仲裁到主存储链路故障恢复后,如何确保存储数据一致性,记录人工干预操作步骤作为应急预案。

注:该场景需同时具有静态优先级模式和仲裁服务器模式两种故障仲裁机制才能覆盖。

5.2.6 主从切换-双活租户Pair
验收手动切换双活租户Pair的能力,使用vdbench监控双活文件系统的IO连续性,记录IO中断时间。双活正常状态时,由主站点提供主机业务,当主站点需要检修或者站点维护时,需要进行主从切换,从站点变为主站点并提供主机业务。此场景可满足主存储例行维护或每年定期开展的针对各系统的计划性灾备切换演练工作。

注:双活租户Pair是指本端存储系统的租户和远端存储系统的租户之间的双活关系,双活仲裁以双活租户Pair为单位。在双活发生故障时,确保该Pair中租户下的所有文件系统的仲裁结果均保持一致,并保证文件系统运行所依赖的环境在两个租户之间保持一致。

5.2.7 主从切换-NAS双活Pair
验证手动切换单个NAS双活Pair,使用vdbench监控双活文件系统的IO连续性,记录IO中断时间。此场景可满足我行每年定期开展的针对各系统的计划性灾备切换演练工作。

注:NAS双活Pair是指本端文件系统和远端文件系统之间的双活关系。在配置双活时,本端存储系统的一个本端文件系统和远端存储系统的一个远端文件系统构成一个Pair。通过查看Pair运行状态,可以及时地根据状态取值对双活进行同步、暂停等操作,并在操作结束后根据NAS双活Pair的状态判断操作是否成功。

5.2.8 可靠性测试总结
本次项目针对华为NAS双活存储的可靠性测试均通过,满足业务连续性要求。

6 项目成效

华为OceanStor 5000系列存储的实施构建了本地数据中心NAS存储双活体系,是我行落实提升存储基础架构的关键举措。
通过本项目的实施,无论是对我行存储系统架构体系建设,还是业务系统的设计都取得了显著的优化和成效。
首先,实现了我行NAS文件存储资源池的分级建设,填补了中端NAS双活存储资源池的空白;
第二,借助本地数据中心NAS存储双活架构,提高了我行业务系统的本地存储资源连续性保护能力,实现业务系统对于文件存储的高可用、高可靠需求;
第三,全闪存存储性能优异,显著提升了业务处理效率。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

13

添加新评论1 条评论

eaTigereaTiger系统工程师***
2023-05-10 15:46
学习了,很详尽地技术性文章,方案的可靠性方面讲的很全,看到了国产存储的日益强大,我们单位正考虑将GPFS下移到NAS双活,正好可以借鉴
Ctrl+Enter 发表

本文隶属于专栏

最佳实践
不同的领域,都有先行者,实践者,用他们的最佳实践来加速更多企业的建设项目落地。

相关文章

相关问题

相关资料

X社区推广