为什么需要映射拷贝
尽管我确实很喜欢windows 2000,在提到文件恢复时,我总是认为微软是失败的。例如,让我们关注用户删除某个文件这一简单行为。从windows 95就开始使用回收站。然而,没有针对网络卷的回收站。如果某个文件在本地被删除,该文件就被移送到回收站。但是如果同样一个文件被通过网络删除,这个文件就被永远删除了。
用户偶尔意外地删除某个文件是不可避免的。如果这个文件恰巧在某个网络驱动器上,用户会打电话给你,让你帮助他找回这个文件。通常地,你的做法会是建立一个文件备份磁盘并保存这些文件。然而,如果用户在文件备份运行过程中一直打开这个文件,文件备份很有可能略过这个文件而不备份它。所以你可能会浪费时间去寻找这个文件,而它根本不在文件备份上,而且用户也无法找回这个丢失的文件。
在某种程度上,上面的例子说明windows 2000文件管理的另一个问题。假设某个用户在昨天创建一个文件,并且这个文件在昨晚成功备份。今天,用户对该文件做了二十个修改,在每个修改之间都做了保存。现在假定 后五个修改是错误的。用户无法回到这五个修改之前以找回该文件 后的正确版本。用户只有两个版本可用:目前的(错误的)版本以及昨晚备份的版本,而昨晚的备份已经相去甚远。
多年来,管理员要么只是接受这些限制,要么投资购买昂贵的第三方软件以帮助他们克服其中的某些限制。然而,windows server 2003用卷映射拷贝服务(vss)解决了所有这些问题。
vss对网络卷自动进行备份。这些备份和你每晚的备份是不同的。vss备份是在线的,就是说无需你建立一个专门的磁盘,它们总是可用的。与此同时,因为它们存在于正在备份的同一个物理硬盘上,所以它们永远不能替代一个传统的备份。这意味着如果这个硬盘出现故障,你会丢失数据以及vss备份的数据。
不要认为vss备份是一个真实的备份,它只是一个快照。在一天的几个时间里,vss对磁盘上的所有数据进行一个快照。这就是说,如果用户需要恢复某个指定文件的某个早先版本,他们无需从备份磁盘上恢复这个文件。
vss帮助防止由于用户在每晚文件备份期间一直打开文件所引起的问题。如果用户在文件备份运行的时候打开着某个文件,上一个版本的windows文件备份程序将仅仅略过该文件,而不是对它进行备份。然而,在windows server 2003中,文件备份程序将从vss中取得该文件 近的版本并进行备份。当然,从 近一次的映射拷贝文件备份以来所作的所有修改将不包括在文件备份中,但这不是问题的关键。关键在于即使该文件还是被打开着,但你备份了它的一个合理的当前版本,而不是略过该文件。
vss的局限性
在我告诉你如何实施这项服务之前,我想讨论你将遇到的几个限制。正如我早先简要提到的,vss并不是正常文件备份的替代品。相反的,它是一个便捷的工具。如果用户需要一个快速文件存储,vss非常适合这项工作。然而,有几项恢复操作是vss无法简单实现的。
一般单凭经验的规则是如果windows无法正常运行,那么vss不能用来恢复数据。例如,如果一个系统的注册表被破坏,由于windows在缺少有效的注册表时无法运行,所以你就不能用一个映射拷贝进行恢复。同样地,如果某个硬盘出现致命错误,因为在默认情况下,包含原始数据的映射拷贝存放在相同的分区上,你不能指望映射拷贝是你唯一的文件备份。因此,如果一个硬盘出现致命错误,不仅数据会丢失,而且映射拷贝也会丢失。
你需要知道的另一个限制是vss能够保存的数据量。正如我早先解释的那样,保存于相同分区的数据映射拷贝本身也是数据。随着硬盘上存储越来越多的数据,映射拷贝数据能够利用的空间也就越来越少。windows会直接删除映射拷贝以腾出空间来存放更多的数据。
即使你有无限的硬盘空间,vss也不能保存无限多的文件备份。 多的时候,windows将保留一个文件的 后64个版本。当超过这个数字之后,该文件老的版本将被删除以便为新的版本腾出空间。
你还需要注意,因为该服务的主要工作之一是保护文件的老版本,所以映射拷贝是只读的。如果能够修改这些旧版本,那么它们就没有真正地被保护。如果你发现自己需要恢复某个文件的早先版本并对它进行修改,你必须将映射拷贝复制到另外一个地方,然后修改这个复制,而不是直接修改实际的映射拷贝。
尽管文件的映射拷贝总是被标识为只读的,但是映射拷贝保留了文件的原始访问许可。因此,如果你通过一个映射拷贝恢复一个被备份的文件,恢复的文件将和原始文件(除了多一个只读标识属性之外)具有相同的访问许可,如果你想修改这个文件,你必须将它拷贝到另一个地方。一旦你移动这个映射拷贝,它就继承其目的文件夹的ntfs权限并将这些和现有的访问许可结合起来。
你需要了解的 后一个限制是只能在卷的级别启用或禁用vss。而不能单独应用在文件或文件夹上。