【大话存储】学习笔记(17章),数据容灾

数据容灾

数据备份系统只能保证明际上被安全复制了一份,若是生产系统故障,必须将备份数据尽快的恢复到生产系统中继续生产,就叫容灾前端

容灾能够分为四个级别:数据库

  • 数据级容灾:只是将生产站点的数据同步到远端。后端

  • 与应用结合的数据级容灾:保证对应应用数据一致性。缓存

  • 应用级容灾:须要保证灾难发生之后,须要保证原生成系统中的应用系统在灾备站点可用。安全

  • 业务级容灾:除了保证数据、应用系统在灾备站点可用,还要保证整个企业的业务系统仍对外可用,是最终层次的容灾。服务器

image.png

概述

若是要充分保证数据的安全,只是在本地作备份是不够的,因此须要在远程建另外一个系统,并包含当前生产系统的所有数据,这个系统须网络

  • 要保证主生产系统的数据实时的传输到远程备份系统上。架构

  • 主故障后,必须将应用程序切换到远程备份系统上。并发

那么备份和容灾有什么区别呢?生产系统就比如手机,备份就是把手机上的数据备份到电脑上,可是若是这个手机坏了呢?要恢复数据须要大量的时间。异步

那么容灾就是咱们有两部手机,并且他们的数据是使用云实时同步的,因此能够无缝切换

若是咱们预算充足,可使用一直两台手机,那还须要备份吗?固然须要,好比某个时刻,咱们把手机里面的某个联系人给误删了,由于容灾的手机是实时同步的,很难说能经过另外一部手机找回来。可是若是以前有备份过数据,彻底能够经过以前的备份进行恢复。

下面继续谈容灾。对于一个企业IT生产系统,主要有4个组件:

  • 生产资料:原始数据

  • 生产工具:服务器等基础架构

  • 生产者:业务应用程序

  • 产品:对外提供的服务信息

下面将对这四大组件的容灾进行讲解

生产资料容灾

生产资源容灾指的就是对原始数据进行容灾。这最重要的,由于没有生产资料一切等于从头再来。
要设计这样一套生产资料容灾,须要注意的是

  • 要把变化的实时同步到备用系统,方法是
    • 将某时刻的数据传送到备用系统

    • 将此时候后变化数据同步到备用系统

    • 这样就作了一次同步了,以后只须要在数据变化之后才把变化的数据传送到备用系统。

  • 数据必须至少保留额外一份。在容灾的同时还须要数据备份(避免误删等逻辑错误)

以下为相应的拓扑:

image.png

主备站点都有相同的生产工具,使用网络相连。能够经过两种方式来进行同步:

  • 经过前端网络进行同步

  • 经过后端SAN网络进行同步。

经过前端网络同步

image.png

  • 经过路由器链接到专线或者Internet

  • 变化的数据经过路由器传送到备站点的路由器上。

  • 经过交换机传到备服务器上,写入磁盘阵列

那么到底选择专线仍是Internet呢?专线能够保证数据同步的实时性,可是不适合大数量的传输。若是实时性要求不高,并且数据量大的时候,能够将主备站点接入100Mbps的Internet。

能够看出这种方式通过了前端网络,因此必须在每台须要备份的服务器上安装软件进行同步,这种软件能够监视目录中的数据变化,而后与远端的软件进行通讯,写入相同的文件目录中。

这种方式的同步通常都是文件级的同步,对底层卷的数据块变化不作同步。

案例:DB2数据的HADR组件容灾

DB2数据库利用主备上的数据库软件模块(HADR)来实现两端的数据同步。并且同步的是不卷上的原始数据,而是对数据操做的描述,也就是日志。这样的好处是,不须要传输数据,备份机收到日志之后,在备机的磁盘上重作操做便可。

HADR:High Availability Disaster Recovery,是数据库级别的高可用性数据复制机制。须要两台数据库服务器:primary , standby

  • 主数据库发生事务性操做,将日志经过TCP/IP传送到备数据库,而后备机对日志文件进行重放Replay,从而保持数据的一致性。

  • 主数据库故障,备机能够接管主数据库,而客户端应用程序的数据库链接能够经过自动客户端从新路由(Automatic Client Reroute)转移到新的主服务器。

  • 当原来的主数据库服务器修复了,做为新的备用数据库加入HADR。

须要注意的是处于备用角色的数据库不能被访问。

image.png

经过后端网络实现同步

经过后端网络进行同步,数据不会流经前端网络,而所有经过后端网络传输到备份的存储上。因此须要将主站点和备站点的后端网络设施链接起来。要么直接拉光纤,要么用专线。

若是用专线的话,须要增长额外的协议转换设备,如今电信部门的光纤专线通常为SDH传输方式,接入到用户端的时候,通常将信号调制成E一、OC3等编码方式。

image.png

上图中,FC协议,通过FCIP网关,变成基于以太网的IP协议,(FC over IP over ETH)。通过E1/以太网转换器,承载到了E1协议上,而后多路E1信号汇聚到光端机,经过一条或者多条光纤,传输给电信部门的SDH交换设施进行传输。

这样咱们就将主站点和备站点的后端网络打通了,此时主服务器就能够访问到备份的磁盘阵列,也就是说主站点的服务器能够同时操做本地磁盘和备站点的磁盘阵列了。

image.png

咱们来看一下这种方式的路径:

本地磁盘+SAN交换——本地服务器内存——SAN网络交换——电信部门网络——远端SAN网络交换——远端磁盘阵列

image.png

数据到了远端SAN不须要再通过服务器,由于有了对方存储设备的直接访问权。可是整个过程当中,仍然至少须要一台服务器,服务器上须要安装一个软件,能够将数据从本地卷A提取出来,而后直接经过SAN网络写到位于备份站点的卷B上。

可是试想一下,若是数据直接在内存中生成的,那么同时在A和B上各写一份,速度岂不是更快,这种方式又叫“卷镜像”,由于能够时时刻刻保持两个卷彻底相同,它能保证数据同步的实时性,可是不适合大规模远距离的数据同步

同时还须要注意的是,卷镜像的的同步软件工做在卷这一层,能够感知数据块的变化,而不是文件的变化。缺点在于对网络速度要求更高,因此成本也更高。

经过数据存储设备实现同步

以前讲的经过前端网络和经过后端网络的方式,都使用了一个来提供动力。而若是将数据同步软件安装在存储设备上,岂不是更省事。并且这样完全解放了服务器,全部工做都由磁盘阵列完成。

这种方式的同步,不会识别卷上的文件系统,因此同步的是块。并且要求主和备的存储设备型号一致。由于不一样厂家的产品没法实现直接同步。
image.png

这种方法的缺点是不能保证数据对应用程序的可用性。

由于存储设备与应用程序之间还有操做系统这一层,操做系统也有本身的缓存机制,全部有可能形成数据的不一致性。

总结:

  • 使用前端网络进行同步,路径最长,可是成本也最低。

  • 使用后端网络进行同步,实时性强,可是对后端链路要求也高。不适合于数据量多的时候。

  • 使用存储设备直接进行同步,路径最短,不占用服务器。可是仍然不适合于远距离低速链路环境。并且还不能数据对应用程序的可用性。

image.png

容灾中数据的同步复制和异步复制

同步复制

下图是基于存储设备的自主同步环境。

image.png

  • 主向磁盘发出IO请求,向某LBA写入数据,待写数据入缓存,此时控制器不会给主的HBA驱动程序发送成功

  • 主磁盘阵列将变化的数据从缓存中写入LUN A,此时主的数据同步引擎感知,将变化的数据块从缓存中经过SAN交换机发送到备的缓存中。

  • 备磁盘阵列运行的同步引擎接收到数据后,在FC协议隐式的发一个ACK或者经过上层显试的发给主站点

  • 主收到应答,向服务器发一个FC协议的隐式ACK。服务器上的FC HBA驱动程序探测成功。

    若备站点迟迟未收到数据,则不会返回成功,应用程序会等待。若是此时应用程序使用的是同步IO,则相关进程会挂起,称为IO等待。

    因此同步复制的特色是主站点必须等待备份站点的成功信号,保持严格的同步,一荣俱荣,一损俱损。

异步复制

相对于同步复制,两边的步调不须要一致,要保证重要的事情先作完,因此会存在必定的数据不一致。

  • 主向磁盘发出IO请求,待写数据进入控制器缓存,若是此时
    • 主控制器设置为Write Back模式:则马上返回应答。

    • 主控制器设置为Write Through模式,则先写入LUN A之后,再返回ACK。

  • 主站点将数据经过SAN网络发送到备站点的缓存。

  • 备站点磁盘成功接收,则返回成功。

image.png

image.png

生产者容灾——应用程序容灾

以前讲的都是生产资料的容灾,也就是整个系统最重要的数据的容灾。而对于生产者,无疑就是服务器上的应用程序,若是主发生故障,须要在备站点从新运行这些应用程序。最直观的想法是,在备站点预备应用程序的安装文件,必定主出现故障,在备上配置这些应用程序,可是实际上应用程序安装和配置须要大量的时间。因此能够将备份站点预装应用程序,可是不工做,这样就可保证同一时刻整个IT系统只有一个站点的生产者处理一份数据

既要求处理同一份数据,又要求发生事故的时候,备份站点的生产者当即启动,要作到这点,须要让备份站点的应用程序感知到主站点的应用程序状态,一旦发现故障,当即启动开始生产。

在以前的章节中,咱们说到了高可用群集,在容灾系统领域,群集的范围扩大到了异地,主备可能相隔很远,交换运行状态的数据量很小,最好使用专线,这样能够很好的保证QoS。

传统的HA软件是使用共享存储的方式来做用的,即在HA系统中,共享一份物理存储,无论谁来操做这份数据,最终只有一份,并且是一致,有上下文逻辑关系的。

因此HA软件是基于资源切换的,把组件看做是资源,好比应用、IP地址、存储卷等。
当故障时,

  • 备份机HA软件会检测到对方的故障,

  • 而后强行将资源迁移到本地,好比在备份机上修改网卡的IP地址,并发出ARP广播来刷新全部广播域的客户端以及网关的ARP记录

  • 挂载共享存储设备上的卷,

  • 最后启动备份应用系统。

这样应用系统能够访问共享卷,客户端也可使用原来的IP地址来访问服务器,这样生产就能够继续下去。

可是在异地容灾系统中,主备站点各有一份数据,因此必须保证数据的同步。这也是为何两个站点同时只有一个在工做,这样的话才能以一边数据为准,另外一边与之同步。

本地容灾

本地HA系统中,多个节点若是共同拥有同一个卷,可是同一时刻只有一个节点能挂载它,这种模式叫共享存储模式

与之对应的是Share-Nothing模式,每一个节点都有本身独占的存储卷,怎么进行数据共享呢?能够经过同步复制技术同步到全部节点上。若某节点发生故障,这个节点对应的备份节点启动应用程序。由于以前的数据已经同步过了,因此数据必定是一致的。

在Share-Nothing模式下,不存在任何的接管问题,因此客户端须要感知服务端群集这种切换动做,经过客户端进行配置的切换便可。

能够对共享存储和Share-Nothing两种存储模式进行对比。

共享存储 Share-Nothing
数据自己是否容灾 ×
软硬件成本
前端网络资源消耗
管理难度
维护数据是否须要停机 ×
实现的复杂度
是否须要第三方软件 ×
故障因素数量 3个 2个
  • 数据自己是否容灾
    • 共享存储:数据损坏,必须使用镜像进行还原。并且要停机。

    • Share-Nothing:每一个节点都有本身的数据拷贝,若损坏,可切换到另外的节点,不影响应用,不停机。修复后的节点能够从新加入容灾系统。

  • 软硬成本
    • 共享:须要外接磁盘阵列,为了保证数据访问速度,必须自身实现RAID,主机也须要安装适配器。成本高。须要HA软件

    • Share-Nothing:各个节点各自保存数据,不须要外接存储系统,不须要额外的HA软件

  • 前端网络耗费
    • 共享存储:前端只须要交互控制信息,资源耗费较小。

    • Share-Nothing:数据同步靠前端,对资源消耗很大。
  • 管理难度:
    • 共享:须要管理节点间的交互配置,还须要管理外部存储,增长了管理难度

    • Share-Nothing:只须要管理节点配置。
  • 是否停机
    • 共享:须要将数据从单机转移到共享存储供其余节点使用,须要停机来保证一致性。

    • Share-Nothing:数据同步是动态的,不须要停机。
  • 实现复杂度
    • 共享存储:有三种基本元素:节点、节点间的交互、共享数据。若是使用共享存储模式作容灾,须要将数据移动到共享存储上,增长额外的工做量和不可控因素

    • Share-Nothing:只有两种元素 节点&节点交互
  • 第三方
    • 共享存储:备份节点须要经过HA软件来监控主节点的状态,发生故障的时候自动接管,如MSCS

    • share-Nothing:不须要第三方软件参与
  • 故障因素
    • 共享存储:OS、应用程序、HA软件

    • Share-nothing:OS、应用程序

异地容灾

若是主站点和备站点不在同一个机房中,这样备份应用程序须要跨越很远的距离来与主程序交互状态。只是说这种交互包很小,不须要担忧延时的问题。

IP切换

异地容灾系统,主服务器和备服务器不大可能在同一个广播域,因此须要经过网关来转发IP包,正由于此不能用资源切换的方式来切换IP地址。

若是想故障后,客户端继续使用原来的IP地址链接备份服务器,那么能够在路由上作文章。动态修改路由器上的路由表,将IP包路由到备份站点而不是主站点。若是利用域名来访问服务器,那么能够直接在DNS设备上修改IP指向记录来实现。

卷切换

异地容灾系统在主站点和备站点各有卷,两个卷经过前端或者后端网络进行同步。

若是备的HA软件检测到主站点通讯失败,经过某种方式,断开同步关系(若不断开,卷会被锁定而不可访问)。而后就是从新挂载备站点的卷

此时同步引擎能够是运行在存储设备上,也能够由HA来执行。

  • 若是同步引擎是运行在存储设备上的,必须由管理员手动利用存储设备的配置工具来断开同步关系。断开了之后,本地的卷才能够被访问,而后HA软件能够在备份机上调用操做系统相关功能来挂载这个卷。

  • 若是同步引擎原本就是HA来执行的,那么HA软件能够自动断开同步关系,在备份机上挂载对应的卷。

异地容灾的应用切换

应用,也就是生产者的切换,是全部HA容灾系统在故障发生后所执行的最后一步。与共享存储式的HA容灾同样,异地容灾的应用切换,是有备机的HA软件来执行脚本,或者调用相应的接口来启动备份机的应用的。

image.png

相关文章
相关标签/搜索