随着信息时代的到来,数据越来越突出地成为社会正常运作的核心。对于一个企业来讲,数据更是影响其生存和发展的关键,各行业的用户和企业对网络应用和数据信息的依赖日益强烈,使得突发性灾难如火灾、洪水、地震或者恐怖事件对整个企业的数据和业务生产会造成重大影响。
因此,如何保证在灾难发生时,企业数据不丢失,保证系统服务尽快恢复运行成为人们关注的话题,所以,容灾技术日益成为各个行业关注的焦点。本文从技术角度对容灾的概念、相关技术以及相关法规做出初步的介绍分析,力图使读者对容灾的内容有个概略性的理解, 后本文对现在的容灾技术趋势做进一步的介绍。
1.概念篇
1.1 容灾的定义
在给出容灾的概念之前,有必要先给出灾难的定义。从一个计算机系统的角度讲,一切引起系统非正常停机的事件都可以称为灾难。大致可以分成以下三个类型: 自然灾害,包括地震、火灾、洪水、雷电等,这种灾难破坏性大,影响面广; 设备故障,包括主机的CPU、硬盘等损坏,电源中断以及网络故障等,这类灾难影响范围比较小,破坏性小。
人为操作破坏,包括误操作、人为蓄意破坏等等。
容灾(Disaster Tolerance),就是在上述的灾难发生时,在保证生产系统的数据尽量少丢失的情况下,保持生存系统的业务不间断地运行。
一个和容灾易混淆的概念是容错(Fault Tolerance),容错指在计算机系统的软件、硬件发生故障时,保证计算机系统中仍能工作的能力。容错和容灾 的区别是,容错可以通过硬件冗余、错误检查和热交换再加上特殊的软件来实现,而容灾必须通过系统冗余、灾难检测和系统迁移等技术来实现。当设备故障不能通过容错机制解决而导致系统宕机时,这种故障的解决就属于容灾的范畴。
另外一个容易和容灾混淆的概念是灾难恢复(Disaster Recovery),灾难恢复指的是在灾难发生后,将系统恢复到正常运作的能力。灾难恢复和容灾的区别是,容灾强调的是在灾难发生时,保证系统业务持续不间断地运行的能力,而灾难恢复强调的灾难之后,系统的恢复能力。现在的容灾系统都包含着灾难恢复的功能,所以本文的讨论除了包括容灾方面的内容,还包括了灾难恢复的部分内容。
1.2 容灾的评价指标
现在工业界都以数据丢失量和系统恢复时间作为标准,对某个容灾系统进行评价,公认的评价标准是RPO和RTO。
RPO(Recovery Point Objective): 恢复点目标,以时间为单位,即在灾难发生时,系统和数据必须恢复到的时间点要求。RPO标志系统能够容忍的 数据丢失量。系统容忍丢失的数据量越小,RPO的值越小。
RTO(Recovery Time Objective): 恢复时间目标,以时间为单位,即在灾难发生后,信息系统或业务功能从停止到必须恢复的时间要求。RTO标志系统能够容忍的服务停止的 长时间。系统服务的紧迫性要求越高,RTO的值越小。
RPO针对的是数据丢失,RTO针对的是服务丢失,两者没有必然的联系,并且两者的确定必须在进行风险分析和业务影响分析之后根据业务的需求来确定。
1.3 容灾的分类
由于容灾包含的内容比较广泛,对容灾的分类也可以从多个方面进行。总的来讲,可以从容灾的范围和容灾的内容来区分。
从容灾的范围讲,容灾可以分成本地容灾、近距离容灾和远距离容灾。这三种容灾能容忍的灾难是不相同的,采用的容灾技术也是不同的。
从容灾的层次讲,容灾又可以分成数据容灾和应用容灾,本质上讲,这两种容灾是密不可分的。数据容灾是应用容灾的基础,没有数据的一致性,就没有应用的连续性,应用容灾也是无法保证的。数据容灾是指建立一个备用的数据系统,该备用系统对生产系统的关键数据进行备份。应用容灾则是在数据容灾之上,建立一套与生产系统相当的备份应用系统。在灾难发生后,将应用迅速切换到备用系统,备份系统承担生产系统的业务运行。
1.4 容灾的等级划分
由于容灾系统需要考虑众多的因素,目前,根据容灾系统中数据的丢失程度、生产系统和备用系统的距离,以及灾难恢复计划的状态等因素,公认的容灾级别划分如下:
1. 本地容灾:即将系统数据或应用在本地备份,无异地后援。这一级别的容灾,仅能应付本地的硬件损坏或人为因素造成的灾难。
2. 异地数据冷备份:即将系统数据备份到物理介质(磁盘、磁带或光盘)上,然后送到异地进行保存。这种方案成本低、易于实现。但是在灾难发生时,数据的丢失量大,并且系统需要很长的恢复时间,无法保持业务的连续性。
3. 异地数据热备份:即在异地建立一个热备份中心,采取同步或者异步方式,通过网络将生产系统的数据备份到备份系统中。备份系统只备份数据,不承担生产系统的业务。当灾难发生时,数据丢失量小,甚至零丢失,但是,系统恢复速度慢,无法保持业务的连续性。
4. 异地应用级容灾:即在异地建立一个与生产系统相同的备用系统,备用系统与生产系统共同工作,承担系统的业务。这种类似于RAID1的容灾系统,能够提供很小的数据丢失量,系统恢复速度是 的。但是,需要配置复杂的系统管理软件和专用的硬件,相对成本也是 高的。
在上述的级别之上,又有人提出业务级别的容灾级别。对于正常的业务而言,仅靠IT系统的保障是不够的,业务级别的容灾包括众多非IT系统的设施,比如电话,办公环境等。
2.技术篇
传统的容灾技术通常指针对生产系统的灾难采用的远程备份系统技术。但是,随着对容灾系统要求的不断提高,现在的容灾技术包括了可能引起生产系统服务停止的所有防范和保护技术。一般来讲,一个容灾系统中实现数据容灾和应用容灾采取不同的实现技术,数据容灾的技术包括数据备份技术、数据复制技术和数据管理技术等,而应用容灾包括灾难检测技术、系统迁移技术和系统恢复技术等等。本章节对数据容灾相关的数据备份技术和复制技术以及应用容灾相关的灾难检测技术和系统迁移技术做初步的介绍和分析,其它的技术请参考相关技术资料。
2.1 数据备份技术
数据备份就是把数据从生产系统备份到备份系统中的介质中的过程。数据备份技术 初是备份到本地磁带,随着网络发展,现在的备份技术有了飞速的发展。
2.1.1 主机备份
这种备份就是传统意义上的基于主机(Host-based)的备份。主机负责将数据备份到和主机直接相连的存储介质上(一般是磁带)。虽然这种备份的速度快,管理简单,但是仅能适应于单台服务器备份,并且在灾难恢复过程中,系统恢复的时间长。
2.1.2 网络备份
随着网络的发展,传统的主机备份渐渐地转向了网络备份,即系统中备份数据的传输以网络为基础。根据备份系统中备份服务器、介质服务器是否在同一个LAN中,可以将网络备份分为基于局域网的备份和远程网络备份。
基于局域网的备份特点是应用服务器、备份服务器和介质服务器共用一个局域网络,备份服务器统一管理备份的过程,多个应用服务器可以将各自的数据备份到介质服务器上。这种备份方式可以共享介质资源,实现集中的备份管理。缺点是对网络带宽和备份时间的压力比较大,并且不具备远程的容灾能力。当然通过将介质(磁盘、磁带或光盘)运输到远程保存,可以具备一定的容灾能力。
远程网络备份,则是介质服务器与应用服务器不属于同一个局域网,备份服务器依然统一管理备份的过程,备份数据则是通过WAN,ATM或者Internet等公共网络传送到远程的介质服务器上。这种备份方式基本上构成了一个异地的备份容灾方案。由于备份数据在公共网络上传输,备份的速度、备份数据的完整性和安全性等方面都需要考虑。
2.1.3 专有存储网络备份
当存储系统成为一个独立于备份系统的系统之后,特别是存储局域网(SAN:Storage Area Storage)的发展,使得备份过程可以在存储局域网中实现,根据备份过程中对应用服务器的影响,专有存储网络备份可以分为LAN-Free备份和Server-Free备份。 LAN-Free备份,是在存储网络(Storage Network)之上建立的一种备份系统。在该备份系统中,生产系统的存储和介质服务器的存储直接通过专用存储网络进行连接,在备份过程中,庞大的备份数据不经过主机系统所在的网络,而是通过专用的存储网络传输到介质上。这种备份方式的优点是共享介质资源,实现集中管理,不会对主机系统网络有影响。缺点是实现比较复杂,成本相对较高。
Server-Free备份,则是建立在存储区域网(SAN:Storage Area Network)的基础上,备份过程无需应用服务器参与数据传输的备份系统。这种备份方式可以保证生产系统及其网络不受影响。目前这种备份技术还不太成熟,对硬件的性能和兼容性的要求都很高。 专用存储网络备份更多关注的是存储系统的扩展性、可用性以及性能等方面的因素,可以讲存储局域网的发展将会在更大程度上提高系统的数据容灾能力。
2.2 数据复制技术
和数据备份相比,数据复制技术则是通过不断将生产系统的数据复制到另外一个不同的备份系统中,以保证在灾难发生时,生产系统的数据丢失量 少。
按照备份系统中数据是否与生产系统同步,数据复制可以分成同步数据复制和异步数据复制。同步数据复制就是将本地生产系统的数据以完全同步的方式复制到备份系统中。由于发生在生产系统的每一次I/O操作都需要等待远程复制完成才能返回,这种复制方式虽然可能做得数据的零丢失,但是对系统的性能有很大的影响。异步数据复制则是将本地生产系统中的数据在后台异步的复制到备份系统中。这种复制方式会有少量的数据丢失,但是对生产系统的性能影响较小。
根据数据复制的层次,数据复制技术的实现可以分成以下四种:
1. 存储系统数据复制:数据的复制过程通过本地的存储系统和远端的存储系统之间的通信完成。这种方式的复制对应用来讲时透明的,可以直接实现数据容灾功能,也可以提供很高的性能,可是,对存储系统的要求比较高。
2. 数据交换层数据复制:这种方式的复制技术是伴随着存储局域网的出现引入的,即在存储局域网的交换层上实现数据复制。实现方式可以通过专有的复制服务器实现,也可以通过存储局域网(SAN)交换机,将数据同步的复制到远端存储系统中。
3. 操作系统层数据复制:主要通过操作系统或者数据卷管理器来实现对数据的远程复制。这种复制技术往往要求本地系统和远端系统是同构的,并且由于数据复制由主机系统完成,其效率和管理上也存在不少问题。
4. 应用程序层数据复制:例如数据库的异地复制技术,通常采用日志复制功能,依靠本地和远程主机间的日志归档与传递来实现两端的数据一致。这种复制技术对系统的依赖性小,有很好的兼容性。缺点是本地应用程序向远端复制的是日志文件,这需要远端应用程序重新执行和应用才能生产可用的备份数据。另外,由于各个应用程序采取的复制技术不同,无法以一种技术实现多种应用的数据复制。
2.3 灾难检测技术
对于一个容灾系统来讲,在灾难发生时,尽早地发现生产系统端的灾难,尽快地恢复生产系统的正常运行或者尽快地将业务迁移到备用系统上,都可以将灾难造成的损失降低到 低。除了依靠人力来对灾难进行确定之外,对于系统意外停机等灾难还需要容灾系统能够自动地检测灾难的发生,目前容灾系统的检测技术一般采用心跳技术。
心跳技术,其中一个实现是:生产系统在空闲时每隔一段时间向外广播一下自身的状态。检测系统在收到这些“心跳信号”之后,便认为生产系统是正常的,否则,在给定的一段时间内没有收到“心跳信号”,检测系统便认为生产系统出现了非正常的灾难。心跳技术的另外一个实现是:每隔一段时间,检测系统就对生产系统进行一次检测,如果在给定的时间内,被检测的系统没有响应,则认为被检测的系统出现了非正常的灾难。心跳技术中的关键点是心跳检测的时间和时间间隔周期。如果间隔周期短,会对系统带来很大的开销。如果间隔周期长,则无法及时地发现故障。
2.4 系统迁移技术
灾难发生后,为了保持生产系统地业务连续性,需要实现系统的透明性迁移,利用备用系统透明地代替生产系统进行运作。一般对实时性要求不高的容灾系统,例如Web服务,邮件服务器等,可以通过修改DNS或者IP来实现,对实时性要求高的容灾系统,则需要将生产系统的应用透明地迁移到备用系统上。目前基于本地机群的进程迁移的算法可以应用在远程容灾系统中,但是需要对迁移算法进行改进,使之适应复杂的网络环境。