AERODISK引擎:灾难性的。 第一部分


哈伯的读者您好! 本文的主题将是在AERODISK Engine存储系统中实现容灾。 最初,我们想写一篇关于这两种方法的文章:复制和都市集群,但是不幸的是,这篇文章太大了,因此我们将文章分为两部分。 让我们从简单走向复杂。 在本文中,我们将配置和测试同步复制-删除一个数据中心,并断开数据中心之间的通信通道,看看会发生什么。


我们的客户经常向我们询问有关复制的不同问题,因此,在继续设置和测试副本实现之前,我们将向您介绍一些存储系统中的复制。


一点理论


复制到存储是确保同时跨多个存储系统的数据身份的持续过程。 从技术上讲,复制是通过两种方法执行的。


同步复制是将数据从主存储系统复制到备用存储系统,然后必须确认两个存储系统都已记录并确认数据。 在双方(在两个存储系统上)确认后,才认为数据已记录,您可以使用它们。 这样可确保参与副本的所有存储系统上的数据身份得到保证。


这种方法的优点:


  • 所有存储系统上的数据始终相同。

缺点:


  • 解决方案的高成本(快速通信通道,昂贵的光纤,长波收发器等)
  • 距离限制(几十公里内)
  • 没有防止逻辑数据损坏的保护措施(如果数据在主存储系统上被损坏(有意或无意),那么由于数据始终相同(这是一个矛盾),它将在备份存储上自动立即被损坏。

异步复制还将数据从主存储复制到备份,但是存在一定的延迟,并且无需在另一侧确认记录。 写入主存储器后,您可以立即使用数据,而在备份存储器上,一段时间后数据将可用。 当然,在这种情况下完全不提供数据的身份。 备份存储上的数据总是有点“过去”。


异步复制的优点:


  • 解决方案成本低(任何通信通道,可选光学器件)
  • 没有距离限制
  • 如果备份存储上的数据在主数据库上已损坏(至少一段时间),则该数据不会损坏,如果数据已损坏,则可以随时停止副本以防止备份存储上的数据损坏

缺点:


  • 不同数据中心中的数据始终不相同

因此,复制模式的选择取决于业务任务。 如果对您至关重要的是,备份数据中心与主数据具有完全相同的数据(即RPO = 0的业务要求),则您将不得不承担并忍受同步副本的局限性。 而且,如果数据状态的延迟是允许的,或者根本就没有钱,那么绝对必须使用异步方法。


我们还分别将这种方案(更确切地说,已经是拓扑)区分为城域集群。 Metrocluster模式使用同步复制,但是与常规副本不同,Metrocluster允许两个存储系统都在活动模式下工作。 即 您没有活动备用数据中心的分离。 应用程序与物理上位于不同数据中心的两个存储系统同时工作。 在这种拓扑结构中,事故停机时间非常短(RTO,通常为数分钟)。 在本文中,我们将不考虑都市集群的实现,因为这是一个非常大且庞大的主题,因此,我们将在后续文章中专门针对它进行单独介绍。


通常,当我们谈论使用存储系统进行复制时,许多人都提出了一个合理的问题:>“许多应用程序都有自己的复制工具,为什么要在存储系统上使用复制? 是好是坏?”


没有一个答案,所以这是优点和缺点:


存储复制的参数:


  • 解决方案的简单性。 通过一种方式,您可以复制整个数据数组,而与负载类型或应用程序无关。 如果您使用应用程序的副本,则必须分别配置每个应用程序。 如果其中有两个以上,则将非常耗时且昂贵(通常,应用程序复制需要为每个应用程序提供单独的,并非免费的许可证,但以下内容更多)。
  • 您可以复制任何内容-任何应用程序,任何数据-它们将始终保持一致。 许多(大多数)应用程序没有复制工具,而来自存储端的副本是提供灾难保护的唯一方法。
  • 无需为应用程序复制功能多付钱。 通常,它成本很高,就像副本存储系统的许可证一样。 但是,您只需要支付一次存储复制许可证,并且需要分别购买每个应用程序的应用程序副本的许可证。 如果有很多这样的应用程序,那么这将花费一分钱,并且用于复制存储的许可证的成本也将一落千丈。

关于存储复制的参数:


  • 从应用程序本身的角度来看,使用应用程序工具的副本具有更多功能,应用程序更好地了解了其数据(显而易见),因此有更多的选项可以使用它们。
  • 如果使用第三方工具进行复制,则某些应用程序的制造商不保证其数据的一致性。 *

*-有争议的论文。 例如,一家著名的DBMS制造公司很长时间以来就正式声明,通常只能通过自己的方式来复制他们的DBMS,而其余的复制(包括SHD-shnaya)是“不正确的”。 但是生活表明事实并非如此。 很有可能(但这是不准确的),这并不是向客户出售更多许可证的最诚实的尝试。


结果,在大多数情况下,从存储端进行复制会更好,因为 这是一个更简单且更便宜的选择,但是在某些情况下,当您需要特定的应用程序功能并且需要使用应用程序级复制时。


学完理论,现在就练习


我们将在我们的实验室中建立一个副本。 在实验室中,我们模拟了两个数据中心(实际上,两个相邻的机架似乎位于不同的建筑物中)。 支架由两个Engine N2存储系统组成,它们通过光缆互连。 使用10Gb以太网运行Windows Server 2016的物理服务器已连接到两个存储系统。 立场很简单,但并没有改变本质。


从示意图上看,它看起来像这样:



逻辑复制的组织方式如下:



现在,让我们看看我们现在拥有的复制功能。
支持两种模式:异步和同步。 同步模式受距离和通信通道的限制是合乎逻辑的。 特别是,同步模式要求将光纤用作物理设备,并要求使用10 GB以太网(或更高)。


同步复制的支持距离为40公里;数据中心之间的光学通道延迟最多为2毫秒。 通常,它将在较大的延迟下工作,但是在记录过程中会出现强烈的刹车现象(这也是合乎逻辑的),因此,如果您考虑在数据中心之间进行同步复制,则应检查光学元件和延迟的质量。


异步复制要求不是很严格。 更确切地说,它们根本不存在。 任何有效的以太网连接都适用。


目前,AERODISK ENGINE存储支持使用以太网协议(铜缆或光纤)复制块设备(LUN)。 对于必须通过光纤通道SAN工厂进行复制的项目,我们现在正在完成适当的解决方案,但是到目前为止,它还没有准备好,因此在我们的情况下,只有以太网。


复制可以在任何ENGINE系列存储系统(N1,N2,N4)之间进行,从较低的系统到较旧的系统,反之亦然。


两种复制模式的功能完全相同。 以下是有关什么的更多信息:


  • 复制“一对一”或“一对一”,即具有两个数据中心(主数据库和备份数据库)的经典版本
  • 复制是“一对多”或“一对多”的,即 一个LUN可一次复制到多个存储系统
  • 复制的激活,取消激活和“反转”分别启用,禁用或更改复制方向
  • 复制可用于RDG(Raid分布式组)池和DDP(动态磁盘池)池。 但是,RDG池LUN只能复制到另一个RDG。 C DDP与之类似。

还有更多小功能,但列出它们没有多大意义,我们将在安装过程中提及它们。


复制设置


设置过程非常简单,包括三个阶段。


  1. 网络设置
  2. 存储设置
  3. 设置规则(链接)和映射

配置复制的一个重要点是,应该在远程存储系统上重复前两个阶段,而在第三阶段–仅在主要阶段重复一次。


网络资源配置


第一步是配置将通过其传输复制流量的网络端口。 为此,您需要在前端适配器部分中启用端口并在其上设置IP地址。


之后,我们需要创建一个池(在我们的示例中为RDG)和用于复制的虚拟IP(VIP)。 VIP是一个浮动IP地址,与存储控制器的两个“物理”地址(我们刚刚配置的端口)绑定在一起。 这将是主要的复制接口。 如果需要处理带标记的流量,也可以不使用VIP,而可以使用VLAN。



为副本创建VIP的过程与为I / O(NFS,SMB,iSCSI)创建VIP的过程没有太大不同。 在这种情况下,我们将创建一个VIP(不带VLAN),但是请确保指出它是用于复制的(没有此指针,我们将无法在下一步中将VIP添加到规则中)。



VIP必须与其在其间“浮动”的IP端口位于同一子网中。



我们单独使用另一个IP-shnik在远程存储系统上重复这些设置。
来自不同存储系统的VIP可以位于不同的子网中,主要是它们之间应该存在路由。 在本例中,仅显示了此示例(192.168.3.XX和192.168.2.XX)



至此,网络部分的准备工作完成。


配置存储


为副本配置存储与通常的不同之处仅在于我们通过特殊菜单“复制映射”进行映射。 否则,一切与通常的设置相同。 现在按顺序。


在先前创建的R02池中,您需要创建一个LUN。 创建,将其称为LUN1。



我们还需要在相同卷的远程存储系统上创建相同的LUN。 我们创造。 为避免混淆,将远程LUN称为LUN1R



如果我们需要使用一个已经存在的LUN,则在复制副本设置时,需要从主机上卸载该生产LUN,然后在远程存储系统上简单地创建一个大小相同的空LUN。


存储设置完成后,我们将继续创建复制规则。


配置复制规则或复制链接


在当前将成为主要存储的存储上创建LUN之后,我们在SHD2的LUN1R中的SHD1上配置复制规则LUN1。


在“远程复制”菜单中完成配置。


创建一个规则。 为此,请指定副本收件人。 我们还指定连接的名称和复制的类型(同步或异步)。



在“远程系统”字段中,添加我们的SHD2。 要添加,您需要使用管理IP存储(MGR)和我们将复制到的远程LUN的名称(在本例中为LUN1R)。 仅在添加通信的阶段才需要管理IP;不会传输通过IP的复制流量;为此,将使用先前配置的VIP。


在此阶段,我们已经可以为“一对多”拓扑添加多个远程系统:单击“添加节点”按钮,如下图所示。



在我们的情况下,远程系统是一个,因此我们仅限于此。


规则已准备就绪。 请注意,它会自动添加到所有复制参与者(在我们的示例中,其中有两个)。 您可以为任意数量的LUN和任何方向创建任意数量的规则。 例如,为了平衡负载,我们可以将部分LUN从SHD1复制到SHD2,将另一部分从SHD2复制到SHD1。


SHD1。 创建后,立即开始同步。



SHD2。 我们看到了相同的规则,但是同步已经结束。



SHD1上的LUN1充当主角色,即它是活动的。 SHD2上的LUN1R充当次要角色,即在SHD1发生故障的情况下处于保留状态。
现在,我们可以将LUN连接到主机了。


尽管可以通过FC进行连接,但我们将通过iSCSI进行连接。 实际上,在副本中为iSCSI LUN设置映射与通常情况没有什么不同,因此在此我们将不再详细讨论。 如果有,此过程在“ 快速安装”文章中进行了介绍。


唯一的区别是我们在“复制映射”菜单中创建了映射。



设置映射,将LUN分配给主机。 主机看到一个LUN。



将其格式化为本地文件系统。



就是这样,设置完成。 接下来将进行测试。


测试中


我们将测试三个主要方案。


  1. 员工切换角色次要>主要。 例如,在主要需要数据中心执行一些预防性操作的情况下,有必要进行常规角色切换,在这段时间内,为了使数据可用,我们将负载转移到备用数据中心。
  2. 辅助>主(角色)故障转移(数据中心故障)。 这是复制的主要方案,它可以帮助避免整个数据中心发生故障而长时间不停机。
  3. 数据中心之间的通信通道断开。 在由于某些原因数据中心之间的通信通道不可用的情况下(例如,挖掘机在错误的位置挖出并通过暗光学元件撕裂),检查两个存储系统的正确行为。

首先,我们将开始将数据写入LUN(我们将包含随机数据的文件写入)。 我们立即看到存储系统之间的通信通道正在被利用。 如果您打开负责复制的端口的负载监控,这很容易理解。



现在,两个存储系统上都有“有用的”数据,我们可以开始测试。



为了以防万一,让我们看一下其中一个文件的哈希总和并将其写下来。



员工角色转换


可以从任何存储系统上完成切换角色(更改复制方向)的操作,但是您仍然需要同时执行这两个操作,因为您将需要在主数据库上禁用映射,并在辅助数据库(将成为主数据库)上启用它。


也许现在出现了一个合理的问题:为什么不自动化呢? 我们回答:一切都很简单,复制是仅基于手动操作的简单容灾工具。 为了使这些操作自动化,有一个都市集群模式,它是完全自动化的,但是其配置要复杂得多。 在下一篇文章中,我们将介绍有关设置都市集群的信息。


禁用主存储器上的映射,以确保停止记录。



然后,在“远程复制”菜单中的一个存储系统(无论是主存储还是备份存储)上,选择我们的REPL1连接,然后单击“更改角色”。



几秒钟后,LUN1R(备份存储)变为“主”。



我们使用SHD2映射LUN1R。



在那之后,我们的E:驱动器会自动紧贴主机,只是这次它与LUN1R一起“飞行”。


以防万一,比较哈希值。



完全相同。 测试通过。


故障转移 数据中心故障


目前,常规切换后的主存储分别为SHD2和LUN1R。 为了模拟事故,我们关闭两个控制器SHD2的电源。
不再可以访问它。


我们看一下存储1(当前备份)上发生的情况。



我们看到主LUN(LUN1R)不可用。 错误消息出现在日志,信息面板以及复制规则本身中。 因此,来自主机的数据当前不可用。


将LUN1的角色更改为Primary。



事务映射到主机。



确保驱动器E出现在主机上。



检查哈希。



一切都很好。 存储中心在活动中的数据中心发生故障。 我们在连接复制的“反向”和从备份数据中心连接LUN上花费的时间约为3分钟。 显然,在实际产品中,一切都变得更加复杂,除了对存储系统的操作外,您还需要在网络,主机,应用程序中执行更多操作。 在生活中,这段时间会更长。


在这里我想写的是,一切都已经成功完成了测试,但我们不要着急。 主存储为“谎言”,我们知道当她“摔倒”时,她是主要角色。 如果她突然打开怎么办? 将有两个主要角色,等同于数据损坏? 我们现在进行检查。
我们突然要打开基础存储。


它会加载几分钟,然后在短暂同步后恢复运行,但已充当辅助角色。



一切都很好。 没有发生脑裂。 我们考虑了这一点,并且总是在存储系统崩溃之后扮演辅助角色,而不管它在“生命中”扮演什么角色。 现在我们可以肯定地说数据中心故障测试已经成功。


数据中心之间的通信通道故障


该测试的主要任务是确保如果存储系统暂时失去了两个存储系统之间的通信通道,然后重新出现,则不会导致系统崩溃。
这样啊 我们断开存储系统之间的电线(假设挖掘机挖了它们)。


在主要服务器上,我们看到与次要服务器没有连接。



在次要节点上,我们看到与主要节点没有连接。



一切正常,我们继续将数据写入主存储系统,也就是说,已经保证它们与备份系统不同,即它们具有“剩余”空间。


几分钟后,我们将修复沟通渠道。 一旦存储系统互相看到,数据同步就会自动打开。 管理员无需任何操作。



.



, , .



– , , . .


, - . . , .


active-active, , .


, .


再见。

Source: https://habr.com/ru/post/zh-CN456348/


All Articles