备份想要的——灾难之后能否恢复数据呢?

2013 年 8 月 4 日3820

  谈到备份,需要记住两件事情:“如果你的数据没有保存在至少两个地方,那么它就等同于不存在;而没有经过测试的备份数据恢复进程,也不能称之为备份。

  没有什么会像自然灾难一样测试你的进程。

  笔者正好要解决这样一个问题,请看。

  光纤网络

  要想谈论备份,我们首先得了解我们需要备份什么以及为什么要对其进行备份。

  遇到难题的客户有两个数据中心,一个字Edmonton,另一个字Calgary。每个站点都有光纤--理论上,速度可达100M,但是速度被限制了以便符合ISP的协议。

  如果我们两个地方的累积使用保持着XMbps之下,那我们就可以享有所有带宽。不封底,不会出现巨额账单。这是易于管理的可预测的成本。

  更重要的是,为了不出现意外,所以不为网络设置上限需要一个单独的命令。

  每个地方都保留有当地用户的大量使用信息。这些信息可以解决硬件故障,但在公司外部就不能复制了。

  我们把带宽稍微调高了一点,来处理内向数据;我们无法支付云存储的费用,即便我们是把数据发送到自有数据中心之一。

  我们部署这个基础设施是为了满足当地的需求,似乎不托管面向公众的网站,不在自己的基础架构上托管IT服务就是一件很傻的事情。这两个地方都有私有云,。虽然不是Amazon,但是够用了。

  复制

  公共网站的数据库都不是为了实时复制而创建,因为这需要重写代码。出于多方面的考虑,目前还不可行。

  所以,备份成为了每个MySQL服务器上的必须要进行的计划性任务,这样才能创建常规的数据库转储,压缩,加密,然后再发往我们的文件服务器。

  与此同时,每个Web服务器的代码库都执行着同样的备份。这些有问题的文件服务器是运行于分布式文件系统复制(DFSR)上的Windows系统,DFSR可以很好地复制备份。

  每个站点的集群中都有相同的文件服务器,他们都包含文件副本。这些文件会通过WAN发送到其他站点。从这一点说,我觉得我们可以很好地应对硬件故障。

  总部的备份服务器运行的是非常古老的Retrospectt版本,它创建带有版本号的备份,以防止恶意软件或其他可能删除DFSR共享中备份的事故。所以,每一边的备份目录中的数据会自动复制到两个系统中。

  潜在的个人可识别信息被加密了--包括数据库和rar压缩包中的信息,都不会离开公司的控制。

  这其中,肯定存在更好的方案,但是由于没有这方面的预算,所以一般公司都主张到此为止。

  焦灼之夜

  对于我们的很多系统而言,我们不仅仅是测试备份--在常规基础上从这些备份做数据恢复是一项自动进程。和优秀的系统管理人员一样,我们维护的是一个测试实验室,然后每天早上用前一晚的数据做重新填充。

  几乎所有的重要系统都具备这类自动恢复序列装置,所以我们很少去想这方面的事情。

  你会注意到,重要系统都具备自动化的恢复进程。以前这些网站没有被当作是很重要的东西。

  如果我们出现严重的断电或灾难,那么这些系统就会崩溃。我们拥有数据库和网站文件,所以手动恢复应该只是几分钟的事情。

  文件和数据库都在虚拟机上,如果你没有虚拟机复制品,那么就得重新建一个。

  Trevor,忘记把虚拟机模板放到备份目录中。城市发生洪灾了,服务器瘫痪了,而我虽然有大把的rar压缩包,却没法恢复到他那儿去。

  在我们被迫放弃Calgary的数据中心之前,我从虚拟服务器那里启动了虚拟机下载,准备下到备份目录中去,希望电力系统能维持足够长的时间,使虚拟机通过WAN得到复制。

  我取消了光纤链接的上限,全速复制,但无济于事。时间不够。

  无法预料的行为

  搭建一个虚拟机仅需几分钟,注入数据库,上传文件。睡眼惺忪,疲惫不堪的我至少用了一个小时搞清楚网站不能加载的原因--在恢复MySQL数据库后,我广济抹掉MySQL服务器上的优先权。

  解决完这个问题,网站可以加载了……但还是有问题。大约75%的PHP没有被解析。在综合配置文件进行分析后,我意识到是PHP的版本问题,出现问题的版本带有最新的CentOS,它不支持 短标签。这些应用里的所有代码都是用这类短标签写的,所以,我得把php.ini的值改一改。

  问题解决!网站可以正常加载,我们再次上线。故障时间:两小时多一点。

  虽然问题解决,但还不能松口气。网站提交的邮件信息不成功。找了一圈,对Sendmail操作做了修改后,调整了它处理主机名称的方式,才解决这个问题。

  如果主机名称不对,那么当你设置把邮件发到互联网前先转发邮件到内部处理服务器时,就会出现问题。Sendmail可能会转发给某些人,但不是全部。

  更不用说,如果操作上有这种漏洞,我们得到消息的时间就要晚一天。那么我们总的恢复时间就要超过一天了。

  优秀计划

  主要的操作瘫痪两小时已经是一件糟糕的事情,如果要花上一天才能修复所有漏洞,着实是糟糕透顶。我已经丧失了次级服务器上的主服务器和主操作系统,不断查找问题,用手机网络连接系统,终于让系统起死回生。

  我已经花了几年的时间来捣鼓这个刀枪不入的备份系统,但是却不能弄个详细的恢复计划。

  有预算的公司不用担心创建备份基础设施的问题。我们有云备份和恢复软件供应商,如Asigra。

  设备供应商,如Unitrends,甚至是数据生命周期公司,如Iron Mountain,都能提供备份。可以毫不费力地把你的数据保存到一个以上的地方。

  这始终都是指测试你的数据恢复过程。所以应该多加留意。

0 0