------------------------------------重要说明------------------------------------

以下部分内容来网络,部分自华为存储官方教材

具体教材内容请移步华为存储官网进行教材下载

    网络引用内容无法找到原创,如有侵权请通知

------------------------------------重要说明------------------------------------

HyperMetro特性为用户提供了灵活且强大的数据容灾功能,可以在存储系统之间实现实时的数据同步复制,实时的业务运行状态监控和故障切换。保证用户能够在线实现跨数据中心的业务切换,以及业务负载分担。

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

① 相关概念

本端 LUN、远端 LUN

在双活中,本端数据中心的存储设备中的LUN( Logical Unit Number)称为本端LUN,远端数据中心的存储设备中的LUN称为远端LUN。

双写

将应用服务器的I/O请求同步写入本端LUN和远端LUN的过程。

DCL( Data Change Log)

记录两个数据中心的存储系统的数据变更日志。

双活域

双活域由本端存储设备、远端存储设备和仲裁服务器组成,通过双活域,应用服务器可以实现跨站点的数据访问。

双活 Pair

双活Pair是指本端LUN和远端LUN之间的双活关系。在配置双活时,本端存储系统的一个本端LUN和远端存储系统的一个远端LUN构成一个Pair。通过查看Pair运行状态,可以及时地根据状态取值对双活进行同步、暂停、优先级切换等操作,并在操作结束后根据双活Pair的状态判断操作是否成功。配置双活Pair前,需要配置双活域,每个双活Pair必须创建在双活域当中。

双活一致性组

双活一致性组是指多个业务相关联的双活Pair的集合。例如,本端存储系统的三个本端LUN分别存放某数据库的数据、日志和修改信息,任何一个LUN的数据失效将导致三个LUN中的数据整体无法使用。这三个LUN所在的Pair构成的集合即是一个一致性组。在实际配置中,需要先创建一个一致性组,再手动将这三个双活Pair依次添加到已创建的一致性组中。

同步

同步是指本端LUN和远端LUN的差异数据的同步过程。既可以对单个双活进行同步,也可以通过一致性组对多个双活同步。

暂停

暂停是指暂时断开本端LUN和远端LUN双活关系的过程。

强制启动

在多重故障情况下,双活为了优先保证本端存储系统和远端存储系统的数据一致性,可能会停止两端主机的访问。此时,为了快速恢复业务,可根据故障情况选择强制启动本端存储系统或远端存储系统为主机继续提供服务。

优先级切换

优先站点具有仲裁获胜的优先权,双活数据中心链路故障时,优先站点将优先获得仲裁胜利,优先为主机提供访问。

在创建双活时,默认设置本端存储系统为优先站点,远端存储系统为非优先站点。

锁分配机制

为了防止不同的主机同时访问存储系统内的某一数据而发生访问冲突,需要设计锁分配机制来避免访问冲突,只有获取锁分配机制允许的存储系统才能写入数据。

② 方案介绍

双活特性实现了两个数据中心的LUN数据实时同步,且都能为主机提供读写访问。当任何一端存储系统故障时,双活将主机业务切换到正常的存储系统继续进行读写访问。当存储系统间链路故障,只有一端存储系统能继续提供主机读写访问时,具体由哪端存储系统提供服务,将取决于仲裁服务器仲裁的结果。


 
 

HyperMetro双活技术原理。 HyperMetro双活与原有的VIS双活相比, 它的特点是不再需要存储虚拟化网关, 在存储端就可以实现虚拟化网关的功能。 组网更加简单灵活。 通常推荐的网络是FC链路组网或者10GE组网。 通常不推荐GE网络组网, 避免在峰值的时候带宽瓶颈影响业务数据传输。

HyperMetro除了可以支持双活容灾以外, 还灵活提供了其他扩展特性, 支持从主备容灾灵活升级到双活容灾;支持从双活数据中心解决方案扩展到两地三中心的解决方案


GSLB( Global Server Load Balance) 和SLB( Server Load Balance) 分别是F5的GTM(Global Tranffic Manager) 和LTM( Local Tranffic Manager) 功能。

GSLB是进行DNS解析, 告诉用户需要访问的域名应该发往哪个数据中心的SLB, 每个数据中心内的SLB是HA集群部署, AP模式集群, 同一时刻只有一台F5 LTM对外提供服务, 用户访问的是SLB的Virtual Server IP, 在SLB内将其映射给不同的Pool, Pool是一个逻辑结构, 将多个Web服务器添加在内。

GSLB和SLB有丰富的健康检查, 可以识别将要转发的目标端的健康状态, 如果发生故障, 将不再发送数据至该服务器, 转而发往其它资源池内的服务器。

Web服务器里面配置了数据转发路径, 至App应用服务器, App应用服务器, 解析域名命令并读取配置好的目标数据库, 读取数据并返回。

任意DB节点均可以直接读写两个数据中心的存储, 写为镜像双写, 保证两边数据强一致性。 



③ 数据仲裁机制

当两个数据中心之间的链路故障时,两个数据中心之间无法实时同步,此时只能由其中一个数据中心继续提供服务。为了保证数据一致性,双活通过仲裁机制决定数据中心的服务优先级。

双活提供了两种仲裁模式:

态优先级模式:应用在无第三站点仲裁服务器的场景。

仲裁服务器模式:应用在有第三站点仲裁服务器的场景。

a.  静态优先级模式下各仲裁策略说明

静态优先级模式主要应用在无第三站点仲裁服务器的场景。用户可以按双活Pair为单位,设置其中一端阵列为优先站点,另一端为非优先站点。

当发生存储系统间链路故障,或者非优先站点故障时,优先站点上的LUN继续为主机提供服务,非优先站点的LUN停止为主机提供服务。

当优先站点故障时,非优先站点不能自动接管双活业务,双活业务停止。此时需要人工强制启动非优先站点为主机提供服务。


 

b.  仲裁服务器模式下各仲裁策略说明

该模式下,先由数据中心的存储系统间的心跳来判断存储系统是否正常工作,一旦出现任一数据中心整体故障或中间链路故障时,仲裁服务器发起仲裁,仲裁获胜的一方继续提供服务,仲裁失败方停止服务,优先站点具有仲裁优先权。

以数据中心A作为优先站点为例进行说明,根据不同的故障场景,仲裁服务器提供不同的仲裁策略





④ 双活 I/O 处理机制

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

a.  写 I/O 流程

实现两台存储设备数据一致的核心就是高效的锁分配机制和高效的数据双写机制。

在业务运行中,数据变更可通过双写和DCL来完成同步。双写可以使得应用服务器的I/O请求同时下发到本端Cache和远端Cache,从而保证本端Cache与远端Cache的变更数据一致性。在一个数据中心故障时, DCL可以记录业务运行中数据中心的数据变更。待故障恢复后,同时跟踪变更数据同步到该数据中心的存储设备中,以防止变更的数据在同步过程中出现遗漏。

具备双活特性的两台存储系统,能够同时处理主机的I/O请求。为了防止不同的主机同时访问同一存储地址,而发生访问冲突,需要设计锁分配机制来避免访问冲突,只有获取锁分配机制允许的存储系统才能写入数据。没有获取锁分配机制允许的存储系统需要等待上一个写I/O完成,待锁分配机制释放之后才能重新获取锁分配机制允许。


1. 主机下发写I/O到双活管理模块。

2. 系统记录LOG。

3. 执行双写:双活管理模块同时将该写I/O写入本端Cache和远端Cache。

4. 本端Cache和远端Cache向双活管理模块返回写I/O结果。

5. 双写结果处理:等待两端Cache的写处理结果都返回,才向主机返回写I/O结果。

6. 判断双写是否成功。

– 如果都写成功:清除LOG。

– 如果有一端失败: LOG转换成DCL,记录本端LUN和远端LUN的差异数据。

如果有一端失败,双活暂停,两个数据中心的存储系统分别向仲裁服务器发起仲裁请求,仲裁获胜的一方继续提供服务,仲裁失败方停止服务。根据存储系统记录的DCL,进行后台数据同步,待本端LUN和远端LUN的数据一致时,双活业务恢复。

b.  读 I/O 流程

两端的LUN数据实时同步,且都能提供主机读写访问。当任何一端存储系统故障的情况下主机将切换访问路径到正常的一端继续业务访问。


1. 应用服务器向双活管理模块申请读权限。

当两个数据中心的存储系统间链路故障时只有一端能提供应用服务器的读写访问时,具体由哪端提供服务将取决于仲裁服务器的仲裁结果。

2. 双活管理模块先从本端存储系统响应应用服务器的请求。

3. 如果本端存储系统正常,则本端存储系统将数据返回给双活管理模块。

4. 如果本端存储系统处于非正常状态,则通过双活管理模块去读远端存储系统的数据。远端存储系统将数据返回给双活管理模块。

5. 应用服务器读I/O成功。

⑤ 应用场景

a.  医疗行业

随着医院业务自身发展,床位数增加、新的门诊楼建设,对业务连续性提出更高的要求。门急诊、住院、电子病历等重要部门,一旦发生停顿,将对营业收入、病人诊疗和医院声誉造成不可估量的影响。同时,同一院区门诊楼与住院部网络信息中心、同城的两个院区等,以上机房距离都比较近,可以使用双活满足以上需求。

b.  金融行业

在金融行业,随着银行业务自身发展, 24小时ATM、 POS刷卡及网银业务发展,要求银行的系统能24小时承载业务。银行从可靠性、稳定性角度出发,兼顾存储利旧及业务RPO=0, RTO≈0的建设需求,保证银行业务的连续性。业务中断,对银行有很大的声誉影响,科技部门的压力很大。 A+类业务和A类业务可以使用双活满足以下需求:

A+类业务:核心业务系统、支付系统、综合柜面、加密平台等。

A类业务: ESB企业服务总线、 ECIF客户信息系统、收单系统、电子渠道、集中运营前端、网上银行等。

c.  社保行业

在社保行业,业务连续性要求高,每月月结,年末结转要求7×24小时在线运行,否则会引起民生问题,如退体金不能按时发放,医保不能按时结算等诸多问题。基础信息管理、社保卡业务、劳动关系、公共服务,公共资源管理、就业、社会保险等应用场景可以使用双活满足以上需求。

⑥ 安装仲裁软件

a.  Ubuntu

步骤1 更改bash

Ubuntu系统在系统安装时默认使用了dash,但仲裁软件在安装时需要在bash下进行,固在Ubuntu系统下安装仲裁软件时,需要修改为bash。其他操作系统不涉及该操作。

在Ubuntu系统OS模式下的任意目录执行

#sudo dpkg-reconfigure dash命令,按键盘“→”,选择“No”,再按“回车”确认,即将dash修改为bash。

The system shell is the default command interpreter for shell scripts.

xUsing dash as the system shell will improve the system's overall performance. It does not alterthe shell presented to interactive users.

Use dash as the default system shell (/bin/sh)?

  

步骤2 安装包解压

1. 在仲裁服务器的OS模式下执行unzip命令解压压缩包。

# unzip OceanStor/QuorumServer/OceanStor_QuorumServer_VXXXRXXXCXX.zip

Archive: OceanStor_QuorumServer_VXXXRXXXCXX.zip

package/

package/quorum_server.sh

package/packages/

package/packages/QuorumServer-VXXXRXXXCXX-linux.x86_64.rpm

package/qs_version.ini

package/tools/

2. 解压完成后,执行cd package命令进入解压后的目录。

XXX@Linux:~# cd package

3. (可选)执行ll命令可列出文件目录。

步骤3 安装仲裁软件

1. 通过root用户登录仲裁服务器,执行./quorum_server.sh -install命令进行安装。

2. 输入y创建新的非root用户。

3. 设置用户名和密码,仲裁软件安装到新创建的非root用户下。

XXX@Linux:~# ./quorum_server.sh -install

Verify the QuorumServer existence.

The QuorumServer is not installed.

The current user is the root user. A quorum server administrator account needs to be

created. Continue to install?

:y #当前用户是root用户,输入y创建新用户,仲裁软件安装到新用户下。

Enter the new user name:[default: quorumsvr]: #设置用户名

usermod: no changes

Changing password for the user quorumsvr.

New password: #设置用户密码

Retype the password: #重复密码

passwd: all authentication tokens updated successfully.

Installing the quorum server.

Preparing... ########################################### [100%]

1:QuorumServer ########################################### [100%]

[Notice] No old configuration need to resume.

QuorumServer install success completed.

当在非root用户下安装仲裁软件时:

– 先输入root用户密码,再输入y创建新的非root用户,仲裁软件安装到新创建的用户下。后

续软件的运行和管理均使用此处创建的非root用户。

– 先输入root用户密码,再输入n不创建新用户,仲裁软件安装到当前用户下。后续软件的运

行和管理均使用此处当前非root用户。

如果用户基于安全性考虑,会限制非root用户的权限。该情况下,为保证仲裁软件能够安装成

功,在安装仲裁该软件前,请保证以非root用户登录后,可以通过执行sudo命令获取如下命令的

权限:cat、ps、sh、useradd、groupadd、userdel、groupdel、usermod、passwd、sed、rm、

rpm、ls、chmod、chown、find、xargs、killall、mv、ln、unzip。例如:可以执行sudo cat xxx

命令,xxx表示系统中的文件名。

步骤4 (可选)安装后检查

1. 仲裁软件安装后,会自动启动。在仲裁服务器的OS模式的任意目录下,执行

qsadmin命令打开仲裁软件,系统成功进入到仲裁软件页面,代表自动启动成功。

XXX@Linux:~# qsadmin

start main!

Waiting for connecting to server...

admin:/>

2. 在仲裁服务器的OS模式的任意目录下,执行ps -elf |grep quo*命令进行查看安装是

否成功。当页面显示有“ ./bin/quorum_serverd”时,表示安装成功。

XXX@Linux:~# ps -elf |grep quo*

0 S testUser 7013 1 0 80 0 - 3700 wait 22:56 ?

0 S testUser 7021 7013 0 80 0 - 22958 - 22:56 ?

0 S testUser 7232 6394 0 80 0 - 2452 pipe_w 22:57 pts/0

00:00:00 /bin/sh /opt/quorum_server/bin/quorum_server_monitor.sh

00:00:00 ./bin/quorum_serverd

00:00:00 grep quo*

----结束

b.  Red Hat 系统/CentOS 系统

步骤1 配置前准备。 




2. 查看仲裁服务器的业务IP地址配置是否生效。

在仲裁服务器OS模式的任意目录下,执行service network restart使IP地址配置生效,再执行ifconfig命令查看“ eth1”和“ eth2”配置是否生效(回显显示刚配置的IP地址,表示配置生效)。


 

3. 配置仲裁服务器的防火墙端口号。

在仲裁服务器OS模式的任意目录下,执行vi /etc/sysconfig/iptables打开防火墙的配置文件,在配置项增加“ -I INPUT -p tcp --dport=30002 -j ACCEPT”,从而增加“ 30002”端口号。

4. 查看仲裁服务器的防火墙配置是否生效。

在仲裁服务器OS模式的任意目录下,执行service iptables restart命令重启防火墙,再执行iptables –L命令查看配置是否生效(回显显示“ ACCEPT tcp --anywhere anywhere tcp dpt:pago-services2”,表示配置生效)。

 

步骤2 打开仲裁软件的CLI页面。

在仲裁服务器的OS模式的任意目录下,执行qsadmin命令打开仲裁软件,此时系统进入到仲裁软件页面。

 

步骤3 配置仲裁服务器的业务IP地址及端口号。

在仲裁软件的CLI页面下执行add server_ip命令,将仲裁服务器用于提供仲裁服务的所有IP地址和软件监听的端口号加入到仲裁软件里面进行管理。


步骤4 (可选)更换证书。

1. 导出仲裁服务器的“证书请求文件”。

在仲裁软件的CLI页面下执行export tls_cert命令导出设备信息,系统将在仲裁服

务器的“ /opt/quorum_server/export_import”目录下生成“ qs_certreq.csr”文件。

2. 使用“证书请求文件”生成证书。

将“ qs_certreq.csr”文件发送给第三方,用于第三方证书签发机构生成证书。

3. 将证书拷贝到仲裁服务器。

证书生成后,在仲裁服务器的OS模式下,将生成的仲裁服务器证书(以qs_cert.crt

为例)、 CA证书(以qs_cacert.crt为例)拷贝到仲裁服务器的“ /opt/quorum_server/

export_import”目录。

4. 将证书导入到仲裁软件。

在仲裁软件的CLI页面下,执行import tls_cert ca=qs_cacert.crt cert=qs_cert.crt命令

将证书导入到仲裁软件。
 

5. 仲裁服务器侧的证书更换完成后,还需要在本端和远端存储阵列侧执行更换证书

的操作。

 

步骤5 (可选)配置白名单。

1. 在存储系统的CLI下执行show system general命令,查询存储系统的SN号。

2. 在仲裁软件的CLI页面下执行add white_list sn=? 命令,将存储系统的SN号添加到

仲裁软件里进行管理。

 

3. (可选)当不需要配置白名单时,可执行change white_list enable_switch=no命令

关闭白名单。

⑦ 卸载仲裁软件

卸载仲裁软件需要在仲裁软件管理用户或root用户下进行。

仲裁服务器软件正确安装。

仲裁服务器软件的安装包存在。

仲裁软件管理用户为仲裁服务器安装时创建的新用户,可以通过执行ls –l /opt/quorum_server/bin/quorum_serverd查看仲裁软件的管理用户。

 

步骤1 安装包解压。

1. 在仲裁服务器的OS模式下执行unzip命令解压压缩包。

XXX@Linux:~# unzip OceanStor/QuorumServer/OceanStor_QuorumServer_VXXXRXXXCXX.zip

Archive: OceanStor_QuorumServer_VXXXRXXXCXX.zip

package/

package/quorum_server.sh

package/packages/

package/packages/QuorumServer-VXXXRXXXCXX-linux.x86_64.rpm

package/qs_version.ini

package/tools/

2. 解压完成后,执行cd package命令进入解压后的目录。

XXX@Linux:~# cd package/

步骤2 卸载仲裁软件

执行./quorum_server.sh –uninstall命令卸载仲裁软件。

XXX@Linux:~/package # ./quorum_server.sh -uninstall

Uninstall quorum server.

The QuorumServer uninstallation starts.

Uninstall... ########################################### [100%]

QuorumServer ########################################### [100%]

Do you want to backup configuration and log?

:y

QuorumServer install success completed.

步骤3 (可选)卸载后检查。

1. 当卸载完成时,可执行ps –elf | grep quorum_serverd命令查看卸载是否成功。

2. 当系统无“ quorum_serverd”进程时,表示卸载成功。

XXX@Linux:~/package # ps -elf | grep quorum_serverd

0 S root 3326 32197 50 80 0 - 2449 pipe_w 17:03 pts/0 00:00:00 grep

quorum_serverd

XXX@Linux:~/package #

----结束