第3章 数据容灾技术
1940年,英伦三岛。在德国军队以秋风扫落叶之势横扫欧洲大陆后,英国成为了欧洲抵抗纳粹的唯一也是最后的堡垒。英国能否抵抗住德国的攻击在很大程度上(有人说是完全程度上)依赖北大西洋上的海上补剂线。美国的援英战争物资就是通过这条海上生命线源源不断地运送到英国的。
而德国的U-Boat则在北大西洋上对英国的运输船队进行了无情的攻击。英国则对运输船队加派了护卫舰艇。由此,德国的潜艇与英国的护卫艇展开了一场猫捉老鼠的游戏。而这场游戏的胜负则取决于信息天平的摆向:是德国潜艇更快地发现英国的护卫舰艇?还是盟军的护卫舰艇更快地发现德国的潜艇?战争的结局众所周知。德国失败了,英国胜利了。
1974年,英国胜利的关键因素被公布了:英国破译了德国海军的密码系统"迷"(Enigma)。
引子
密码就是一种数据编码。编码除了保密之外,还具备容灾的功能。本书将不对编码的保密功能进行讨论,而是针对其应对灾难的能力进行讲述。从某种程度上讲,密码的保密功能也是一种容灾能力。因为,不让对方破译,就能够自如应对敌人攻击。
本书在前面一章阐述了灾难恢复的重要性。没有实施灾难恢复的数据设施在灾难袭来时有可能造成永久数据损毁。本书在前面也提到过灾难恢复的基本层次是数据容灾技术。现在我们就来看一下数据容灾技术到底有哪些。本章涵盖的内容包括容灾机理简介、数据编码技术、RAID技术、数据镜像技术和数据恢复技术。
3.1 容灾机理简介
容灾机理根据不同标准可以分为不同的类别。本书将从容灾介质、容灾模式、容灾范围、容灾程度和冗余方式几个方面加以阐述。
从容灾介质来分,有硬件容灾、软件容灾和信息容灾。硬件容灾指由多个相同的硬件来提供冗余,从而获得容灾效果。如果一个硬件出了故障,另一个硬件将继续提供服务。常见的双机容错、双电源供应等均属于硬件容灾。软件容灾则指通过提供多份相同软件来进行容错。这里的多份软件既可以指同一软件的多份拷贝,也可以指由不同团队开发的同功能软件版本。如果是后者,有时也称为多版本容灾。如果一个软件发生故障,另一个软件可以接替其工作。
信息容灾指的是通过提供冗余信息来为数据进行容错。我们知道在数据传输中,接受方如何确认接受到的数据内容确实是对方发出的内容呢?如果我们收到数值100,如何断定对方发出的就是100,而不是99或者200呢?通过信息容灾就可以作出判断。
从容灾模式来看,主要有主动容灾、被动容灾和复合容灾。主动容灾指多份容灾部件(硬件或软件)同时运转来屏蔽错误。例如,两台机器运转完全相同的软件,进行同样的计算。这样用户使用任何一台机器的输出都是可以的。当一台机器出现故障时,另一台机器直接接替,节省了启动和切换的时间。如同人的双眼同时发挥着视觉功效,当一个眼睛突然受到伤害而不可视时,另一个眼睛的视力将无缝衔接,接替起来。这里需要注意的是,主动容灾不同于负载平衡(本书作者在上课时有学生提到主动容灾就是负载平衡)。负载平衡是多份部件同时工作来分担系统的负载。虽然同时工作,但不同部件承担不一样的工作。在主动容灾时,不同部件承担同样的工作。如人的双眼承担的是一样的工作(图3-2)。
被动容灾则是指提供容灾的部件处于就绪状态(Standby),并不参加系统对外提供的服务。在主部件发生灾难时,经过切换来替换主部件。在这种情况下,系统会有一个切换时间。在这个切换时间里,系统将不能提供服务。例如,人类社会里的正副总统就属于这种机制。平时副总统处于就绪状态,但并不决定国家政策。但当总统因故不能履行职责时,副总统就会替代总统。在总统丧失能力到副总统接替这段时间,将没有人能够作出一些重要决策,例如发射核武器。
复合容灾则是将主动和被动两种容灾模式合并起来,提供更加周全的服务。