今天早上大约 10:00 左右,我走进了家中的办公室,就发现 cvs.gentoo.org 的硬盘驱动器的灯亮着。
打开显示器,我看到屏幕上有许多 IDE 驱动器错误内核消息。我赶快重新引导服务器,就发现硬盘驱动器
(非常新的 IBM 45Gb Ultra/100 驱动器)发出了一种奇怪的噪音却转不起来……,系统认不出驱动器来;它完了。
事情就是这样,现在已经是上午 11:51 了,系统已经被恢复到一个 IBM 30Gb Ultra/100 驱动器上了。
*有一件事对我们大家来说都是非常幸运的*,那就是在大约一天前我把系统完全备份到了磁带上。讽刺的是,
我正好在为 IBM developerworks 写一份关于系统备份的教程。
人总是会受影响的
每个人都会受到机器故障的困扰,这些故障还经常发生在您最不想它们发生的时候。谢天谢地,我只丢失了一小部分数据,恢复过程很快。但是,如果最近我没做过备份的话,我们可能会丢失大量的重要数据,Gentoo Linux 项目也会陷入困境之中。我希望这件事可以说明定期备份系统的重要性,尤其是对于那些不断修改代码的忙碌的开发人员们。
这里有一些很好的问题请您回答:如果您的计算机今天爆炸了,您怎么办呢?重建您丢失的数据需要花多少时间?这对您个人(考虑一下您个人的 Linux 机器)以及您的老板会造成多大的损失呢?如果您必须给可能丢失的数据标上价格,那么它值多少钱呢?回答了这些问题之后,您还愿意接受这样的损失吗?如果不愿意的话,那么您就有了一个需要立即解决的备份危机。
现在的磁带驱动器普遍具有价格低、高性能、大容量以及物有所值的优点。如果您需要买一台磁带驱动器,首先要从自身的经济能力和数据的价值出发,确定您愿意花费在磁带设备上大约的最大开销。然后,开始着手购买 Linux 兼容的驱动器。最好的开端就是去 http://www.linuxtapecert.org 看一下那里的 Linux 磁带驱动器的兼容性表格。选出一种可靠而且容量足够将来发展的型号。
尽管通常 dump 有一些性能优势而且在 UNIX 系统中是比较受欢迎的一种备份方法,但是我建议不要在 Linux 系统中使用。为什么这么说呢?在 UNIX 系统中,一般只有“正式的”硬盘驱动器文件系统格式,这使得 dump 的文件系统相关的问题不是那么严重。然而,现在的 Linux 有许多种新的日志文件系统,dump 至少在其中一种上不被支持,这就是 ReiserFS。考虑到 Linux 文件系统的可选范围非常广阔,最好能确保您的备份与文件系统无关,这样 dump 我们就不予考虑了。
用 star 进行救援
好,因此我们淘汰了 dump。在本教程中,我打算使用一个名为 star 的程序。star 是 tar 的兼容程序,享有世界上最快的 tar 实现工具的美誉。也是一个写的非常好的程序。 与 tar 的其它实现工具相比,比如 GNU tar,star 更好地改进了发现的缺陷;这些缺陷曾让许多人转向用 dump 作为实现工具。GNU tar 也能够用于磁带备份,不过,star 具有更精炼、更快速、易于使用以及其它许多优点。并且它是免费的,这可真是件好事情 :) 虽然它是一个 tar 实现工具,但同时也具有许多 dump 实现工具的优点:快速、使用简单并且坚固。由于 star 独立于文件系统和平台,您可以轻松地在其它的文件系统中恢复它处理的存档文件(甚至是在 UNIX 系统中,比如 AIX 或者 Solaris),如果必要的话。