数据备份系统只能保证数据被安全地复制了一份,但是一旦生产系统发生故障,比如服务器磁盘损坏致使数据无法读写、主板损坏造成直接无法开机或者机房火灾等意外事件,我们必须将备份的数据尽快地恢复到生产系统中继续生产,这个动作就叫做容灾。
容灾可以分为四个级别:
数据级容灾:也就是只考虑将生产站点的数据如何同步 到远程站点即可。
与应用结合的数据级容灾:也就是可以保证对应应用程序数据一致性的数据同步,以及可感知应用层数据结构的、有选择的同步部分关键重要数据的数据容灾;
应用级容灾:也就是灾难发生时,不仅可以保证原本生产站点的数据在备份站点可用,而且还要保证原生产系统中的应用系统,比如数据库,邮件服务在备份站点也可用。
业务级容灾:除了保证数据、应用系统在备份站点可用之外,还要保障整个企业的业务系统仍对外可用,这里面就包含了IT系统可用,IT管理部门可用、业务逻辑部门可用、对外服务部门可用等,是最终层次的容灾。
1、通过主机软件实现前端专用网络或者前端公用网络同步
我们看一下这种方式下的数据流路径:
本地磁盘阵列(或者本机磁盘)——本地后端网路交换设备——本地服务器内存——本地前端网络——电信交换机组——远端前端网络——远端服务器内存——远端后端网路交换设施——远端磁盘阵列(或者远端本地磁盘)
其中要知道:“本地磁盘阵列(或者本机磁盘)——本地后端网路交换设备——本地服务器内存” 这一段是通过FCP协议(SCSI over FC协议) 进行打包传送的。
“本地前端网络——电信交换机组——远端前端网络” 这一段数据是通过TCP/IP协议传送的。FCP协议运行在后端告诉网络的保障智商,而TCP/IP协议运行在使用前端低速网络的设备上,保障数据传输,而这各得其所,充分发挥着各自的作用。
2、通过主机软件实现后端专用网络同步
使用这种方式来同步数据,数据不会流经前端网络,而全部通过后端网络传输到备份站点对应的存储设备中。这就需要将主站点的后端网络设备和备份站点的后端网络设备连接起来。或者直接通过裸光纤连接两台SAN交换机;再或者租用电信部门的光缆专线。租用光缆的话,在这上面传输的数据必须符合电信部门传输设备所使用的协议。后者需要添加额外的协议转换设别,两个站点各一个。
数据流向:本地磁盘阵列——SAN网络交换设施——本地服务器内存——SAN网络搅浑设施——通过协转流入电信部门网络——远端SAN网络交换设施——远端磁盘阵列。
这种方式数据仍然至少需要经过一台服务器,为何呢?因为涡轮泵(实现数据同步的软件)是运行在如武器上的,没有这个泵,数据就不会流动。这个泵的作用方式是,将数据从本地卷A中提取出来,然后直接通过SAN网络写入位于备份站点的卷B,如果数据是直接在内存中生成的,需要写入保存,则写入本地卷A的同时,写入远端的卷B一份。这种方式显然比第一种方式来的快,但是它对网络要求更高,成本也更高。
这种卷同步软件是工作在卷这一层的,所以它检测的是数据块的变化而不是文件的变化,同步的数据内容是数据块而不是文件。
3、通过数据存储设备软件实现专用网络同步
数据最终还是在存储设备上,而大型的存储设备其实完全是一台磁盘比较多的服务器,它有自己的cpu,内存,主板等等服务器必备的结构,所以它上面完全可以跑各种程序。
数据流如下:本地磁盘阵列——本地SAN网络交换设施——电信部门交换机组——远端SAN网络交换设施——远端磁盘阵列。
此种方式的数据同步,由于地层存储设备不会识别卷上的文件系统,所以同步的是块而不是文件,也就是说存储系统只要发现某卷上的某个块变化了,就会把这个块复制到远程设备上。
容灾中的数据同步复制和异步复制,这个会很好理解,同步的话数据同时写入主节点,远程备节点。然后才返回给服务器说已经写完了;而异步的话,只要写了主节点,就可以返回给服务器说已经完成,等一会再批量写入备份节点。
3、存储、备份、容灾一体机简介
我们先看一下传统的备份架构,传统的备份系统中包含备份服务器、介质服务器(也就是磁盘阵列、或者磁带库)、备份软件,也可以简称4S备份方案(Backup Server、Operating System、Backup Storage、Backup Software)。
我们可以把备份服务器和介质服务器的角色集成到磁盘阵列中,形成一种带有集成存储备份功能的磁盘阵列,备份存储柜作为一台一体化设备被插入了系统中。他可以作为支持NAS FTP FC-SAN IP-SAN访问协议的磁盘阵列设备而存在(相当于系统中多了一台磁盘阵列),同时还是一个备份服务器,用户服务器或者用户桌面电脑上的数据可以直接被备份到这台设备中存放,用户终端的桌面数据通过前端以太网备份,而用户服务器的数据则既可以实现通过前端以太网备份,也可以实现通过后端FC网络来备份。备份之后的数据还可以由这台设备再写到磁带库中离线保存,也就相当于D2D2T(Disk-to-Disk-to-Tape)。
在容灾方面,可以在备份存储柜上安装VMware Server创建虚拟机,这样在存储柜上创建若干虚拟机操作系统来作为环境中原先的生产物理机的后备服务器。物理机上可以安装一个数据实时复制代理,通过前端以太网来将数据实时同步到备份存储柜中运行的虚拟机磁盘汇总存放,当物理机发生故障时候,虚拟机立即接管物理机,继续提供生产服务。
4、带宽、时延对数据传输的影响:
我们脑海里要有基本的概念,光信号或者电信号传输速度是固定的,光信号在真空中的传输速率是30wkm/s,但是在光缆中的实际传输速度是20Wkm/s,而电信号在电缆上的传播近似为21wkm/s,如果两点之间距离为1000KM,那么信号传一个来回(因为传到对端后需要ACK应答)所耗费的时间就是:1000/300000*2=6.6ms .这是什么概念呢?也就是你想把1b的数据传输到1000km以外的地方,那么至少你要耗费6.6ms。那么传输10b、100b、1Kb、100Mb需要多长时间呢?首先想到的是至少比传1b慢。到底要多长时间,我们来看一个公式:
传输来回时间=(数据量/链路速率*2)+(传输距离、光速*2)
带宽:数据在传输的时候,首先会被通过编码电路将数据串行化编码然后放到电路或者光路上传输,这个编码速率就是带宽,100Mb/s的带宽与1000Mb/s的带宽,区别就在于后者在单位时间内可以编码相当于前者10倍量的数据,这也就是我们平时所说的带宽的真实含义。
我们接着算算在相隔1000km的两点之间,每秒到底能够传送多少个来回:1000ms/6.6ms=151个来回。按照TCP典型的滑动窗口大小,即16KB来计算,(每次发送16KB数据然后就等待应答,不考虑延迟应答或者合并应答等特殊情况)那么每秒的吞吐量仅为151*16KB=2416KB也就是2.4MB每秒。很夸张。。(不过我记得我们老师当年说的是可以一直发送,下一条发送不必等到上一条的返回ACK的到来。不知道这里作者是不是给理解错了)
当然上述算式是忽略了编码解码所耗费的时间,以及整个链路上各种中继、转发或者协议转换设备所带来的处理延迟。如果算上的话,那么吞吐量会更低。更加准确的实际数据传输吞吐量计算公式为:
V=TCP Window Size / 2 (TCP Window Size / 链路带宽+距离/光速+链路设备处理延迟)
总之,距离越远,实际传输吞吐量越低。
转载文章:
随着信息系统在企业中的广泛应用,企业的生产、服务、决策等活动越来越依赖于信息系统,但信息系统中数据安全的风险时刻存在,如硬件、软件、机房设施的故障和自然灾害的发生等,都将严重威胁着系统的稳定运行和信息数据的安全。一旦灾害发生,系统可以重建,但系统中数据的丢失或损毁将给企业带来巨大的损失,因此,如何进行数据的有效保护,确保信息系统的安全稳定就成为企业当前面临的重要课题。
数据安全保护通常的方法是数据备份。日常信息数据备份是十分必要的,但它多是静态冷备份,对系统阶段性的、局部的数据备份是有效的,但无法实现系统的实时数据保存,在极端故障或自然灾害发生时其恢复数据的时间也难以满足安全生产及时性的要求。
为了系统数据恢复迅速且实时、完整、有效,建立一套异地容灾系统,对企业运营来说是十分必要,这样才能有效保护信息数据和信息系统,为企业发展做好全面的信息化支撑。
1、异地容灾系统目标
异地容灾系统是指在核心数据机房以外的地点存储(复制)另一份生产运营数据,并且其内容实时与生产数据保持一致。能够在信息系统遭受硬件、软件故障、或其它灾难,生产数据受到损坏的时刻,容灾系统能够及时提供一份完整、准确、有效的数据,使信息系统及时恢复,并能继续运行服务。无论从数据安全还是系统运行连续性方面,容灾系统都将能对生产系统进行有效的保护。
2、异地容灾实现技术
异地容灾的核心是数据的实时复制、存储,其实现技术目前有多种,主要有:
1)远程镜像技术:它是在本地生产中心与远端备份(异地)中心的数据盘产生同一数据视图的存储,实现远端数据备份,主机产生的每个I/O都在两端执行。其优点是数据能同时在两端存储,实现了数据的异地保存,但也额外占用了生产端主机的CPU资源。
2)快照技术:它是对文件、数据库、磁盘子系统或逻辑卷在某一时刻的数据进行保留,形成快照对象,访问此对象即得到某历史时刻的数据。瞬间拷贝是该方法的优势,但它不能保存实时的数据,难以起到实时系统恢复。
3)应用系统技术:它是由应用系统开发程序通过操作系统同时提交本地和远程(异地)的I/O执行来实现数据复制的。但其通用性和扩展性较弱,此外开发成本高、维护量大。
4)硬件存储技术:它是由两端智能存储实现的数据远程复制,不占用主机、网络资源。用于文件系统或数据库容灾。
5)数据库软件技术:它是通过数据库通用软件技术采用两端(指生产库和异地容灾库)数据更新相同来实现远程数据复制的。
更加适用于数据库的容灾,由此可见前三种实现技术在功能性、通用性、易维护性以及投入成本等方面都存在不足。本文着重探讨功能强的、技术成熟的、通用性好的后两种技术,即硬件存储、数据库软件实现异地容灾的技术。
硬件存储技术
复制的是存储底层的数据块,使两端数据保持(准)一致,它是由智能磁盘阵列硬件来完成,不占用服务器及网路资源。由于是块级复制,所以数据不会产生对应用程序、数据库、文件系统、逻辑卷管理系统等的依赖,可实现对任意格式数据的复制保护。它需要两地存储间专用的物理链路和同平台的服务器。当灾难发生时,容灾端可在极短时间内启动,转为生产角色,提供数据与系统服务。
目前,市场上主要存储盘阵厂商如IBM、HP、EMC 等都有同类技术产品,下面以应用范围广的EMC SRDF(Symmetrix Remote Data Facility)为例来对硬件存储容灾技术进行阐述。
当然容灾端初始数据是全量拷贝的。数据复制分为两种工作方式:
1)同步方式,即生产端数据与容灾端保持准确一致,生产服务器的每个I/O均在数据写完生产存储,并等到容灾端确认后才算真正的I/O完成。此方式适合对数据复制及时性要求高的且两端距离短的场合。如图1。
2)异步方式,即生产端数据与容灾端保持准一致,主服务器的每个I/O在数据写完生产存储后即表示I/O完成,接下来生产数据由盘阵复制到容灾存储。此方式适合两端距离远一点的场合。如图2。
图1 同步方式
图2 异步方式
整个数据容灾工作过程分为复制和分离两种状态,这两种状态可相互切换,具体为:
1)复制状态,平时生产端数据实时更新到容灾端,容灾数据盘处于写状态,生产数据处于异地保护之中,此时容灾端主机无法访问容灾数据盘,容灾数据不可读。如图3。
2)分离状态,容灾数据演练、验证时,生产端数据停止复制,与容灾端分离,此时容灾端主机可访问数据盘,即容灾数据可读写。容灾和生产是两个独立的系统,容灾数据的读写均不会影响生产端数据。当然此状态下,生产端数据是无保护的,所以分离状态的时间要尽可能的短。如图4。
在单向复制模式下,容灾端数据如发生更改也不会影响生产端数据,容灾端同样记录下变化的位置,待恢复复制后,容灾端原修改的数据又增量的方式更新成与生产端完整一致了。
数据库软件技术
此项技术指通过数据库软件或第三方软件实现数据库异库(地)容灾,本文以应用范围广的ORACLE DataGuard来介绍。
DataGuard原理是容灾端获取生产端数据变化的日志,再重做(应用)于容灾端库,使两端数据变化相同来达到两库数据一致的目的。当灾难发生时,容灾端可以很短时间内应用完日志,并切换为生产角色,提供数据服务。这种技术有物理和逻辑两种方式:
1)物理方式:容灾库直接应用生产端库的原样日志重做,使两端数据库的数据更新相同。在此过程中容灾库可转换为只读状态,此时获取生产端日志文件不间断。容灾库的物理结构必须和生产库相同。初始容灾库数据通常用Rman工具复制过来。如图5。
2)逻辑方式:生产端库的日志不是直接应用于容灾库,而是先转换为SQL操作日志,再重应用于容灾库,这样两端库数据变更相同来复制数据。当然这一系列过程都是系统自动实现的。两端库的物理结构可以不同。在应用日志过程中容灾库是打开的。如图6。
2.4 两种技术对比
根据以上的分析,对硬件存储和数据库软件两种容灾技术进行了比较,
硬件复制技术在性能上和实时性方面有优势,但在数据逻辑完整性保护方面有欠缺,虽然系统本身有完整性校验,数据能正常访问;软件复制技术在数据完整性、容灾数据读取方面有优势,但在实时性方面显不足。所以建立容灾系统方案的选择需根据具体需求、条件来综合