9.7 文件的完整性

在计算机运行过程中,可能出现各种意想不到的事故,例如发生电击、火灾,也可能发生电源波动及一些破坏行为。也就是说,对信息的有意和无意的破坏确实存在。所以,操作人系统中文件系统的设计必须考虑这些问题。

对于一些意外事故,可采用物理的防护措施。例如,可使用电源滤波和准备一些消防器材。但还有一些事故,例如一次磁盘头事故仍然可能毁坏一个磁盘组的可用性,因为在这种磁盘头事故中,读写头与磁盘面相碰而划伤磁盘面。为了能在软、硬件失效的意外情况下恢复文件,保护数据的连续可利用性,文件系统应当提供适当的机构,以便复制备份。这就是说,系统必须保存所有文件的双份拷贝,以便在任何不幸的偶然事件后能够重新恢复所有文件。建立必须保存所有文件的双份考贝,以便在任何不幸的偶然事件后能够重新恢复所有文件。建立文件考贝的基本方法有两种。第一种比较简单的方法称为周期性转储(或全量转储、定期后备)。这种方法是按固定的时间周期把存储器中所有文件的内容转存到某种介质上,通常是磁带磁盘。在系统失效时,使用这些转存磁盘或磁带,将所有文件重新建立并恢复到最后一次转存时的状态。周期性转储的缺点是:

①在整个转存期间文件系统可能被迫停止工作。

②转存一般需耗费较长的时间(从 20 分钟到 2 小时),它取决于系统的大小和磁带驱动器的速度。因此,转存不能频繁执行,一般每周进行一次。于是,从转存介质上恢复的文件系统可能与被坏的文件系统有较大的差别。

周期性转储的一个好处是文件系统可以把文件进行重新组合,即把用户文件散布在磁盘各处的所有块连续地放置在一起。这样,当再次启动系统后对用户文件的访问就快得多。

对要求快速复原和恢复到故障当时状态的系统,定期将整个文件系统转储是不够的。一种更为适用的技术称作增量转储。这种技术转储的只是从上次转储以后已经改变过的信息。这就是说,只有那些后来建立的或改变过后文件才会被转储。增量转储的信息量较小,故转储可在更短的时间周期内进行,例如每隔 2 小时进行一次。增量转储是将二次增量转储期间内创建和修改过的但尚未转存的文件送到转存介质上去。为了确定哪些文件要转储,必须对更新文件作标记,在转储后将该标记消除。增量转储使得系统一旦受到破坏后,至少能够恢复到数小时前文件系统的状态,所以造成的损失最多只是最近数小时内对系统中某些文件所作的处理。上述的周期性转储的优点它也具备。

在实际工作中,两种转储方式常配合使用。一旦系统发生故障,文件系统的恢复过程大致如下:

①从最近一次全量转储盘中装入全部系统文件,使系统得以重新启动,并在其控制下进行后续恢复操作。

②由近及远从增量转储盘上恢复文件。可能同一文件曾被转存过若干次,但只恢复最后一次转存的副本,其他则被略去。

③从最近一次全量转储盘中,恢复没有恢复过的文件。

全量转储和增量转储技术在 MULTICS 中得到了比较充分的利用, UNIX 则继承了这一点。这两种技术都存在着这样一个问题:在最后一次转储时间到故障出现之间可能有显著活动。对于那些不允许丢失任何一个细微活动的系统而言,采用“事务登录方法”是适用的。在这种方法中,每一事务处理在它发生的同时立即复制备份。这种紧张的后备工作在交互系统中比较容易实现,因为这种系统的活动受到相对慢速的响应时间限制。此外,这种系统有可能后备到相当适时的状态。

 
 Copyright © 2007 华中师范大学计算机科学系  All Rights Reserved