20.1 备份简介

对文件系统的备份主要可分为对文件系统整体的 完整备份,和对部分目录、文件的 选择备份

20.1.1 为什么要备份

硬件故障

计算机是一个相当不可靠的机器

会造成系统损坏的硬件主要是 硬盘 。解决方案为使用可备份的 RAID1、RAID5、RAID6 等磁盘阵列,但 RAID 控制芯片也有损坏的可能。

软件故障

  • 系统的软件伤害,使用者误操作造成数据丢失
  • 信息安全事件:遭受黑客攻击,钓鱼软件攻击,木马攻击等

20.1.2 备份要考虑的因素

备份对象

对系统或使用者来说最重要的数据,如 /etc//home/

备份介质

光盘、硬盘、同一硬盘的不同分区、网络备份

备份方式

完整备份,增量备份,差异备份

备份的频率

备份工具

20.1.3 备份对象

系统数据

必须备份
  • /etc/
  • /home/
  • /root/
  • /var/spool/mail/
  • /var/spoll/cron/
  • /var/spool/at/
  • /var/lib/
  • 服务软件数据库:如 /var/www//srv/www/
  • 用户的家目录
建议备份
  • /boot/
  • /usr/local/
  • /opt/
无需备份
  • /dev/
  • /proc//sys//run/
  • /mnt//media/
  • /tmp/

20.1.4 备份介质

常见的 3-2-1 备份策略:本地有 2 份不同介质的备份,网络上有 1 份备份。

异地备份

异地物理备份是首先要保证的,避免连备份本身都被偷。

介质

以前多用磁带,Mo,Zip,CD-RW,DVD-RW,外接磁盘,近年来性价比较高的是外接 台式 NAS 储存设备。

NAS 是内嵌 Linux 的小型服务器,包含硬或软 RAID 功能,能够提供个性化服务,包括不同的连接接口和传输协议。

如果经费不足,可以考虑外接 USB 3.0 硬盘,用多块硬盘轮流备份。

最后的选择是磁带,适于较长时间的备份,存在消磁及发霉变质的风险。

20.2 完整备份

对整个 文件系统 做一次完整的备份。

系统、软件、数据整体备份,有利于 快速 复原 整个系统

完整备份常用的工具有 ddcpioxfsdumpxfsrestore 等。这些工具都能够备份设备与特殊文件。

实现完整备份有两种方法:增量备份差异备份

20.2.1 增量备份

Incremental Backup

增量备份原理

只有做过完全备份以后才能做增量备份。

增量备份,是在进行完第一次完整备份后,经过一段时间的运行,比较当前系统与备份文件之间的差异,仅备份有差异的文件。

而第二次增量备份则与第一次增量备份的数据比较,也是仅备份有差异的数据。

如此一来,由于仅备份有差异的数据,因此备份的数据量小且快速。

增量备份在 还原时也要按相反的顺序逐个还原,比较麻烦。

20.2.2 差异备份

Differential backup

差异备份进行之前,需要先进行一次完整备份,之后每次的备份都是与原始的完整备份的差异部分。

所以,系统运行的越久,离完整备份时间越长,差异备份数据越大。

差异备份比增量备份占用的磁盘空间更大,但 差异备份还原速度更快,因为只需要还原完整备份与最近一次的差异备份即可。

20.3 选择备份

仅备份文件系统中的 部分目录和文件

  • tar
  • cpio
  • wodim 刻录光盘。

20.4 备份策略

数据是 Linux 系统中最重要的组成部分,但是数据的备份与同步却是最容易被忽略的任务。通过定期的数据备份与同步,可以在磁盘出现故障时,最大程度的降低数据损失。当用户误操作导致数据损坏或者丢失时,可以快速恢复。

数据的备份不同于整个系统备份,将不同数据按照优先级分类,根据用户需求,备份重要文件。

从而使数据独立于操作系统,降低备份成本与时间。

20.4.1 有效的备份策略应包含哪些内容

成本

应该制定支付得起的数据备份计划。衡量数据丢失会带来的经济损失,然后将之与备份系统的项目成本进行比对,有助于制定务实的备份策略。

备份数据保存位置

可以保存在云端,可以保存到磁带等物理设备,也可同时保存,以增加保险系数。

面对什么样的数据风险

一方面要考虑木马、钓鱼软件的风险,另一方面要考虑水患,有条件尽量做离站备份。

备份频率

多久做一次备份?根据公司具体情况,对数据时效的敏感度来定。

简单的数据备份是指一次性备份所有数据,然后再备份上次备份之后所做的修改。第一次备份是指 “完全备份”,后一次备份是 “增量备份”。通常适用于个人或者小型网站。对于机构或者大型网站来说,需要采用 “多级备份”。将完全备份设定为 0 级,增量备份的级别分别是 1,2,3 等。在每个增量备份级别上,可备份同级或上一级的上次备份以来的变动。

比如,如果我们有 10 盘磁带,如果使用简单备份进行日备份,则可恢复两周内的数据。

如果使用多级备份,例如:

磁带 1-2, 月备份,每月第一个星期五

磁带 3-6, 周备份,每周星期五(排除第一周)

磁带 7-10,日备份,每周星期一到四,则可以将备份历史扩展到两个月。

交给什么人去做

谁对备份计划负责?员工培训很重要,需交给可信任的、经验丰富的人来执行。

20.4.2 评估备份需求

在商业环境中,必须首先确定需要备份哪些文件以及备份所消耗的时间。如果备份过多的文件,会导致备份系统的成本过于庞大,从而带来不必要的开支。如果没有备份足够的数据,那么可能导致重要数据的丢失,反而带来更大的损失。

当然,备份整个系统是简单易行的,但是通常这样的备份是浪费的且缺乏意义的。从减少备份系统的成本出发,只有当某些数据足够重要,需要共享,才具有备份的必要。

有哪些数据需要保护

以短期和长期的眼光思考以下问题:

  • 是否需要快速恢复整个 文件系统 的数据?
  • 是否需要恢复 部分数据
  • 是否需要保持 服务可用
  • 备份哪些类型的文件:数据库、文件、操作系统、程序、配置文件
  • 哪些数据是最重要的?

备份计划制定的越全面,将来数据恢复的越容易。

基本数据一般分为以下几类:

  • 用户数据:所有的用户数据以及用户目录,及私人文件等。
  • 系统信息:系统用户,组,密码,主机列表等。
  • 应用程序:系统上启动的服务,比如 web 应用程序,apache 等。
  • 应用程序的配置文件与数据:针对不同的应用程序,不同的配置选项和重要数据文件。
  • 数据库:事实上数据库可以单独提供针对数据库所有数据的备份与同步功能。

面临的数据风险有哪些

通过以下问题来入手,考虑公司所面临的数据风险:

  • 过去的日子有很多公司被黑过吗?
  • 马虎的员工对数据安全有影响吗?
  • 自己所处的物理位置有无自然灾害的风险?
  • 客户需要登陆到我的系统来访问数据或服务吗?

应采用什么备份设备

选择的备份设备应能满足备份计划的要求。如果要规避硬件损坏及自然灾害所带来的风险,可以考虑离站备份方案。

站内物理备份有利于快速恢复数据,在断网及紧急情况下能节省很多时间。

为了避免 持续业务 被中断,可以选择远程云端灾难恢复站点(remote cloud disaster recovery site),保存于数据中心的数据是以同样的结构化存在的,能够快速恢复到本地。

备份数据要保存多久

存储是累积的,所需要的空间会越来越大。

20.4.3 评估候选方案,找出最佳备份策略

硬件备份

硬盘备份可以保存在本地,用硬盘备份的主要优势在于可以方便地接入工作网络,劣势在于如果硬盘损坏,没有额外的备份。

软件备份

购买备份软件,安装于不同的系统。

购买云服务可以把备份保存到云上,将其做为离站备份。

混合云方案

比较流行的解决方案是使用混合的备份方案。把私有云和公有云结合在一起,可为恢复数据提供多个选择。

混合云的优势在于它同时以两种方式保护数据。

存储的选择

选择备份和存储方案的过程,意味着对预算和需求的平衡。

  • 保存到本地磁盘或 USB 磁盘:适合保存单独的文件,不适合网络备份。如果磁盘被破坏,备份就丢失。
  • NAS、SAN:适于通过网络保存数据,风险是硬件设备的损坏。
  • 保存到磁盘:保存好的磁带应放到安全的地点保存。劣势在于磁带往返运输的时间成本,适于备份整个系统,不适合单个文件。
  • 云备份:需要互联网连接,有网的地方就可访问数据。

要想确定最佳选择,你需要考虑两个因素:

  • RPO:Recovery Point Objective,可接受的系统数据丢失的最长的 时间点,如一年前的数据丢失也许是可以接受的。
  • RTO:Recovery Time Objective,可接受的系统 中断时间,要恢复正常的业务运营可接受的最长时间。

20.4.4 制定预算

  • 预算的上限是多少?
  • 是否打算将预算分配为资本支出,或是运营支出?
  • 如果被黑或受灾导致数据丢失,会造成什么损失?
  • 培训员工要花费多少?

如果选择 Backup As A Service,则可以按月付费,可以避免先期支付大量经费。

20.4.5 选择平台

云备份只需要有互联网的连接,从任何地方都可以访问数据了。唯一有争论的就是数据的保密。

如果要保存敏感数据,则可能不会考虑外部公司提供的服务。

可以考虑离站安全存储。

20.4.6 选择供应商

可以选择全包的供应商,有些公司可以提供硬件、软件,及基于云的解决方案,有的甚至还可以帮助公司培训员工。

任何时候选择供应商,都应该要求提案,这是了解所有可供选择的方案的最好办法。

在对比报价时,应考虑以下因素:

  • 整体实施成本
  • 包括哪些功能
  • 项目部署需要多久
  • 供应商的信誉

建议对供应商的现有客房进行详细的调查,尽可能的了解他们的使用情况,了解供应商的服务与支持。

20.4.7 制定时间表

虽然供应商也会提供一个大概的时间表,但你自己仍有必要制定自己的时间表。可以帮助你做具体的规划。

  • 供应商可以开始工作之前,你需要做哪些?如备份现有数据,指定团队跟进实施进程。
  • 开始之前,是否需要先走完预算的审批流程?大概需要多久?
  • 供应商提出的时间表是多久完成项目?可以在此基础上稍微增加几天。
  • 系统的安装会影响正常运营吗?是否可以夜间或周末进行来避免影响?
  • 项目会如何影响到客户?如何能防止对客户业务的影响、延迟?

应该在时间表上增加一些缓冲时间,以避免意料之外的事件影响项目进度,总是会有你无法控制的事情发生。

20.4.8 制定详细的恢复计划

在项目实施过程中,可以制定详细的系统使用说明,让每个人都很容易上手使用。

记住,最后真正负责进行备份的人很有可能会精简工作流程,因此恢复流程至少要包括:

  • 要使用的恢复类型
  • 要恢复的数据集
  • 会影响数据恢复的其它因素
  • 恢复后需要进行的操作

在从供应商获取技术支持的同时,一定要记得必须让最终负责备份的人参与进来。

20.4.9 测试备份系统

实际上,对备份系统的测试应该经常进行,最好是每次备份之后都做一次测试。如果实际情况不允许,则应该考虑一个可行的测试频率。

测试哪些内容

  • 备份是否成功,数据是否正常复制
  • 恢复的过程很顺利,没有故障发生
  • 员工知道做什么,什么时候做
  • 备份没有故障或问题

数据测试

  • 恢复文件测试:是否可以成功地从备份中恢复单个文件?
  • 虚拟机恢复:是否可以成功恢复虚拟机,注意检查应用程序的授权冲突
  • 物理服务器的恢复可能会因硬件配置而异,有些从 SAN 恢复,有些从本地磁盘恢复,确保了解各自的恢复方法。
  • 数据恢复也可能不同。但是,如果以应用级备份了数据库,应该检查是否能恢复。
  • 程序的恢复更复杂。需要了解程序与其服务器的关系,最好能在隔离的环境中测试。

测试计划

一旦确认备份系统工作正常,就可以制定测试计划了:

  • 制定一个基于时间的计划。例如,一周或一个月进行一次完整测试,周期完全由你自己制定。
  • 制定数据发生修改后的测试计划。如,增加或升级了一个应用程序,有必要进行测试。
  • 如果有大量的数据,应该安排测试以确保其安全。数据可能来自于一个新的程序,或者,也许是两个公司合并产生的。不管怎样,要确保最新的数据被备份下来。

20.5 灾难恢复

硬件损坏,有完整备份

先处理好硬件,然后依据备份状态来复原。

系统文件损坏

系统文件损坏的可能原因,一方面是非正常关机,另一方面是黑客入侵。

  1. 拔掉网线,把当前系统完整备份到其他介质,以备未来检查
  2. 检查日志文件,找出问题所在
  3. 安装新系统
  4. 系统升级,设定防火墙
  5. 修复已发现的问题
  6. 安装各项服务,恢复数据
  7. 重新上线测试