Skip to content

灾难恢复计划

时间:2023年5月6日 星期六

作者:小王

一、灾难的本质

1.自然灾难:地震、洪水、暴风雨、火灾、流行病、其他自然事件。

2.人为灾难:火灾、恐怖行为、爆炸/煤气泄漏、电力中断、网络&公共设施&基础设施故障、硬件/软件故障、罢工/示威抗议、盗窃/故意破坏。

二、理解系统恢复、高可用性和容错

系统恢复、高可用性和容错的主要目标是消除单点故障(Single Point Of Failure,SPOF),通过可用时间的百分比衡量能力水平,如99.999%。

1.保护硬盘驱动器

• RAID-0:条带(striping),使用两个及以上硬盘,提高性能,没有容错能力。

• RAID-1:镜像(mirroring),使用两个硬盘,每个盘存储相同数据,降低整体空间大小(N/2),具有容错能力。

• RAID-5:奇偶校验条带(sstriping with parity),使用三个及以上硬盘,其中一块盘存储奇偶校验信息(N-1),具有容错能力。

• RAID-6:RAID-5的冗余版本,使用四个及以上硬盘,其中两块盘存储奇偶校验信息(N-2),具有容错能力。

• AID-10:条带镜像(stripe of mirrors),使用四个及以上硬盘,降低整体空间大小(N/2),具有容错能力。

基于硬件的RAID相对昂贵,但高效、可靠、支持热插拔,基于软件的RAID相对便宜,但性能较低、支持冷插拔。

2.保护服务器

通过故障转移集群(failover cluster)来保障关键服务器的容错能力。

img

3.保护电源

• 不间断电源(UPS):通常提供段时间供电(5~30分钟),帮助服务器正常关机,或提高稳定电压。

• 发电机(generator):可提供长时间供电,但需要考虑燃料供给和储备问题。

4.可信恢复

可信恢复(trusted recovery)保障系统在发生故障或崩溃前后,其安全性是一样的。

4.1 故障后的系统状态

• 故障安全(fail-secure):系统故障后阻止所有访问,安全性高。

• 故障开放(fail-open):系统故障后允许所有访问,安全性低。

这两个系统状态还可以应用于防火墙、门禁等。

4.2 可信恢复类型

• 手动恢复(Manual Recovery):系统故障后必须人工执行可信恢复。

• 自动恢复(Automated Recovery):系统故障后,可以针对至少一种故障进行自动恢复。

• 无不当损失的自动恢复(Automated Recovery without Undue Loss):统故障后,可以针对至少一种故障进行自动恢复,且可保障特定对象不丢失。

• 功能恢复(Function Recovery):系统故障后,可以自动恢复特定功能。

5.服务质量

服务质量(QoS)可保护网络数据的可用性。

• 带宽(Bandwidth):传输通信的网络容量。

• 延迟(Latency):数据包从源传输到目的地所需的时间,通常提及延迟大、网速慢。

• 抖动(Jitter):不同数据包之间的延迟变化,通常体现就是网速时快时慢。

• 数据包丢失(Packet Loss):传输过程中数据包丢失,需要重传才能获取完整数据。

• 干扰(Interference):电子噪音等因素造成数据包完整性破坏。

早些时候用交换机或路由器进行控制,现在通常使用应用识别技术控制应用流量。

三、恢复策略

灾难恢复策略不仅应包含有效的自动化响应能力,还应购买保险来降低经济损失(保险应包含ACV条款来确保赔偿金额)。

1.业务单元和功能优先级

灾难恢复也分轻重缓急,因此需要提前确定业务恢复优先级,可参考BCP计划中的业务影响分析(BIA)作为基础数据,再对业务流程的步骤再进行优先级划分,越精细化,灾难恢复时越有条理、恢复速度越快。此过程还需要确定平均修复时间(MTTR)、最大可容忍中断时间(MTD)、恢复时间目标(RTO)、恢复点目标(RPO)。

2.危机管理

通过危机管理(Crisis Management)培训,保障人员在碰到突发灾难时镇定自若,领导团队开展灾难恢复计划。

3.应急通信

当灾难发生后,一方面,对公众发布受灾情况和恢复情况说明至关重要,能增强公众对组织的信任;另一方面,内部消息的互通也非常重要,高级管理层如何通知员工下一步应该做什么,这都需要应急通信来保障。

4.工作组恢复

在灾难恢复时很容易关注对业务系统的恢复,但更需要关注工作组的恢复,毕竟业务正常运作还是要靠人来完成。

5.可替代处理站点(Alternate Processing Sites)

记忆

解决主站点短期内无法正常运行的情况。

• 冷站点(Code Sites):该站点仅有电话线,用于提供紧急通信。优点是非常便宜,但恢复时间非常长(数周)。

• 热站点(Hot Sites):该站点具有完备的基础设施(服务器、工作站、通信线路等),定期或实时从主设施获取数据。非常昂贵,但恢复速度快,恢复速度取决于数据的复制方式。

• 温站点(Warm Sites):该站点与热站点的区别在于没有数据,需要将数据备份在备用服务器上还原才能恢复。恢复时间通常需要12小时以上,但费用较热站少。

• 移动站点(Mobile Sites):该站点如电影中车厢塞满服务器的面包车,可以快速恢复一个小型工作组。

• 云计算(Cloud Computing):云计算已成为首选灾难恢复的选项,虽然经济方便且高效,但仍需要注意使用云计算的安全风险。

• 相互援助协议(MAA):Mutual assistance agreements,也叫互惠协议(reciprocal agreements),两个组织承诺在灾难发生时通过共享计算设施或其他技术资源彼此援助,但非常难以实现,原因在于信任。

6.数据库恢复

灾难恢复计划中数据库恢复技术的选择非常重要,其决定了灾难发生后的恢复速度。

• 电子链接(Electronic Vaulting):通过批量传输将数据库备份转移到远程站点。该方式在恢复时速度很慢,且存在丢失数据的可能性,建议进行突击测试来确定有效性。

• 远程日志处理(Remote Journaling):相较于电子链接,该方式传输频率更高(至少每小时一次)。

• 远程镜像(Remote Mirroring):实时传输数据到远程服务器上,最先进的数据库备份方案,但非常昂贵。

基于云的数据库包含冗余能力,可以考虑纳入DRP。

四、恢复计划的开发

完成业务优先级识别和替代站点的选择,就可以开发灾难恢复计划,通常包含以下内容:

• 执行概要

• 特定部门的计划

• 针对负责实施和维护关键备份系统的IT人员的技术指南

• 灾难恢复团队的人员清单

• 提供给关键灾难恢复团队成员的完整副本

1.应急响应(Emergency Response)

DRP应包含简单而全面的说明(即应急响应计划),以便重要人员在意识到灾难正在发生或即将发生时立即遵循。根据灾难类型的不同,应急响应计划中的执行动作会有很大差异,但最重要的任务要排在第一位。应急响应计划中还定义了启动灾难恢复计划的标准和宣布灾难的角色。

2.人员和通信(Personnel and Communications)

DRP应包含人员清单,以便在发生灾难时进行沟通。人员清单包括姓名、职责、联系方式、备用联系人及联系方式。

3.评估(Assessment)

对灾难的评估是渐进明细的,第一响应人的评估是简单的,随着响应的进行会开展更详细的评估,以便随时调整资源分配。

4.备份和异地存储

备份指的是存储在磁带、磁盘、云或其他介质的数据,是灾难恢复的核心,因此DRP必须完整地说明组织的备份策略。

4.1 备份方式

• 完整备份(Full Backups):复制所有数据。

• 增量备份(Incremental Backups):只复制最近一次完整或增量备份之后有变化的数据。

• 差异备份(Differential Backups):只复制最近一次完整备份之后有变化的数据。

使用完整+增量和完整+差异的不同在于,前者备份时间短、空间占用少、恢复时间长,具体备份方案取决于组织要求的RPO。备份不仅需要本地备份(方便恢复),还需考虑异地备份(以防大灾难发生)。

4.2 磁盘到磁盘(D2D)备份

传统备份技术都是围绕磁带设计的,通过虚拟磁带库(VTL)可以把磁盘虚拟称磁带进行备份操作。

4.3 最佳备份实践

• 业务空闲时间执行备份

• 规划备份存储空间

• 采用RAID、集群或镜像等补偿措施

• 删除冗余备份数据

• 测试恢复流程

4.4 磁带轮换

磁带轮换策略有祖父-父亲-儿子(GFS)、汉诺塔(Tower of Hanoi)、六磁带每周备份(Six Cartridge Weekly Backup)等。

5.软件托管协议

software escrow arrangement,在供应商未能为产品提供足够的支持或供应商破产的情况下,组织可以获取源代码来获得支持。

6.公共设施

灾难恢复计划还需要考虑公共设施,如电力、水、天然气、下水道等服务。

7.后勤保障

灾难发生后可能会涉及调拨人员、设备和物资到备用站点,因此后勤保障也是DRP需要考虑的内容。

8.恢复和还原

灾难发生后,备用站点能够正常运行则完成恢复(Recovery),然后考虑主站点的恢复,一旦主站点恢复运行则完成还原(Restoration)。

五、培训、意识和文档化

与BCP一样,也需要对员工进行DRP培训。全员培训以确保DRP的权威性,灾难恢复团队成员进行详细的技能培训,以保障能够有效开展灾难恢复活动,并定期进行复习。DRP通常是敏感文档,不同职责的员工仅能看到与其相关的内容(知其所需),培训内容亦如此。由于灾难往往会造成电子设备不可用,因此将DRP打印多个副本分别保存是十分有必要的。

六、测试与维护

DRP必须定期进行测试,以确保其内容符合组织需求。

1.通读测试(Read-Through Test)

也叫检查单测试(checklist tests),向灾难恢复团队成员分发DRP副本进行内容审查。

2.结构化演练(Structured Walk-Through)

也叫桌面练习(tabletop exercise),灾难恢复团队成员开会扮演灾难时自己负责的角色职责,讨论可能需要优化的部分,此类型测试可能涉及人员实际活动,如逃离办公楼。(像他妈角色扮演)

3.模拟测试(Simulation Test)

与结构化演练类似,但某些响应措施会进行测试,可能会中断非关键业务活动或占用运营人员。

4.并行测试(Parallel Test)

涉及将人员重新安置到备用恢复站点并实施站点激活程序,但主站点仍负责处理日常业务。

5.完整中断测试(Full-Interruption Test)

涉及直接关闭主站点的运营,并在备用站点启动激活程序,风险非常大,通常不会进行此类型测试。

6.经验教训(Lessons Learned)

任何灾难恢复操作或其他安全事故结束后,组织应该立即组织经验教训会议。团队成员应该反思在活动中的行为和结果,总结经验改进事故响应流程和技术,以便更好地应对未来的安全危机。

最佳实践可参考:NIST SP 800-61。

7.维护

组织需求变化、灾难恢复演练、安全事故响应等情况的发生,都将促使DRP计划的优化。因此需要对DRP进行变更,然后再进行培训、测试、总结,是一个动态的循环活动。