【IT专家网独家其实,卷影副本(Shadow Copies)并不是Windows Server 2008才有的功能。但是,对于Windows Server 2008这样的Server系统平台,卷影副本的使用更有重要意义。通过卷影副本功能,管理员可以在指定的卷上创建备份的副本,我们可以将这些备份的副本看成时间快照,可以根据需要将文件恢复以前的某个版本。因此,它可以极大地保证服务器数据的安全。不过,基于图形界面的控制台下卷影副本管理过程比较繁琐也不够高效,而命令行下的操作就快捷高效多了。所以,命令行下的卷影副本管理技术是管理员们必须掌握的。希望本文能够帮助大家做到这一点。
1、vssadmin工具简介
vssadmin是Windows Server 2008中用来管理卷影副本的工具。通过vssadmin,我们不仅能够对本地系统中的卷影副本进行管理,而且可以通过远程桌面登录到远程服务器对其上的卷进行配置管理。
2、启用卷影副本
默认情况下,Windows Server 2008系统的各卷是启用卷影副本的。如果因为人为因素或者其他原因关闭了卷影副本功能,我们可以通过命令行快速启动它。启用卷影副本的命令格式是“vssadmin add shadowstorage /for=ForVolumeSpec /on=OnVolumeSpec” 。其中“/for=ForVolumeSpec”指定要启用卷影副本的本地卷,而“/on=OnVolumeSpec”则指定将指定卷的副本保存在那个卷上。当然,要启用卷影副本的卷和保存副本的卷可以是一个卷。不过,笔者建议将其隔离的做法更科学一些。
下面我们举一个例子,如果要启用本地C盘的卷影副本功能,并且将该卷的副本保存到D盘上。我们可以在命令行下执行命令“vssadmin add shadowstorage /for=c: /on=d:”即可。如果执行命令“vssadmin add shadowstorage /for=e: /on=e:”则启动了E盘的卷影副本,并且其副本也保存在E盘。(图1)
启用卷影副本
#p#3、禁用卷影副本
要禁用某个卷上的卷影副本,可以直接使用“vssadmin delete shadowstorage”。不过需要注意的是,在目标卷上所有保存的快照映像被删除之前,是无法在该卷上禁用卷影副本的。因此,我们首先需要删除该卷上保存的所有快照映像,然后在该卷上再执行禁用卷影副本操作。其命令格式是“vssadmin delete shadowstorage /for=forvolumespec”,其中“/for=forvolumespec”指定要禁用卷影副本的本地驱动器。比如我们要对C盘禁用卷影副本,可以执行命令“vssadmin delete shadowstorage /for=c:”即可。(图2)
禁用卷影副本
4、自定义卷影副本最大存储容量
在启用了磁盘的卷影副本后,默认情况下其使用可用的最大容量作为副本的存储空间。毫无疑问,这会造成磁盘空间的极大浪费。而且,对于服务器系统来说无节制的侵占磁盘空间造成磁盘空间告急,会影响其它服务的正常运行。因此,笔者建议大家一定要对卷影副本所占的最大磁盘空间进行限制。在此,我们要用到vssadmin工具的“/maxsize”参数。该参数接收类似KB、MB、GB、TB等存储单位,不过,这个值指定的最小值不能低于100MB。
我们举一个例子,在命令行下执行“vssadmin add shadowstorage /for=d: /on=e: /maxsize=2GB”。命令执行后,在D盘启用卷影副本,在E盘保存其副本数据,并且将可用的副本保存空间上限定制为2GB。有的时候,我们定义的卷影副本存储空间不够或者有太多冗余,此时我们可以通过“Resize Shadow”命令来重新调整空间的大小。这个命令接收与add命令一样的参数,同时必须在同一个关联的存储中进行。也就是说,如果C盘的卷影副本存储使用了D盘,那么就只能用下面的命令“vssadmin add shadowstorage /for=c: /on=d: /maxsize=5GB”来更改卷影副本存储空间的大小。(图3)
自定义卷影副本最大存储容量
#p#5、查看卷影副本信息
对于服务器来说,本地磁盘中保存了很多卷影副本,我们如何快速获取其详细信息呢?同样非常简单,vssadmin工具为我们提供了“list shadows”和“list shadowstorage”两个命令。其中“list shadows”可显示卷上现有的卷影副本,默认情况下,卷上所有的卷影副本都会显示出来。为了缩小范围,我们可以添加“/for=forvolumespec”参数仅列出指定的卷信息,或者使用“/shadow=shadowld”参数仅列出特定卷影副本信息。通常情况下,我们只需执行命令“vssadmin list shadows”即可。“list shadowstorage”命令更加强大,它可以列出关联到该系统上的所有卷影副本的存储信息。同样的,我们可以添加参数“/for=forvolumespec”和“/on=onvolumespec”以指定目标卷或者目标卷影副本以限制输出的信息。(图4)
查看卷影副本信息
6、手工创建快照
在启用卷影副本后,共享文件夹的快照就会根据默认的计划自动创建。不过,有的时候我们需要手工创建快照。此时,我们可以使用“create shadow”命令。命令格式是“vssadmin create shadow /for=forvolumespec”,其中“forvolumespec”是要创建快照的本地卷。例如我们执行命令“vssadmin create shadow /for=D:”,就会为D盘上的共享文件创建快照。有的时候,我们会遇到卷影副本服务非常繁忙,而造成创建快照延迟或者失败。此时,我们可以调用“/autoretry”参数,在其后指定一个时间间隔,这样就能够在这个时间间隔之后重新创建。比如我们将上面的命令变成“vssadmin create shadow /for=d: /autoretry=30”,这样如果创建失败就会在30秒之后重新执行快照创建操作。(图5)
手工创建快照
#p#7、快速恢复卷
如果要将整个卷恢复到较早期的快照状态,我们可以使用“revert shadow”命令。需要说明的时,要指定恢复到的快照,必须使用对应的卷影标识符,这时使用“/shadow=shadowID”即可。其中/shadow=shadowID的目标快照映像的全局唯一标识符,还有包括“{}”。例如,如果希望使用ID为{6c4fe14f-dad4-4cd8-9809-87474dd32842}的快照映像进行恢复C盘,执行命令“vssadmin revert shadow /shadow={6c4fe14f-dad4-4cd8-9809-87474dd32842}”即可。不过,一定要输入正确的标识符,如果ID错误,会提示错误。命令成功执行后,会提升输入“Y”,这样vssadmin就执行恢复操作。需要主要的是,如果目标卷上有打开的文件vssadmin恢复操作将会无法进行。不过,我们可以通过命令“/forceDismount”强制进行恢复卷。在恢复过程中,我们可执行命令“vssadmin query reverts”查看恢复操作的状态。(图6)
快速恢复卷
8、删除快照映像
在卷影副本管理中,我们有时需要删除某个卷上的特定快照,这如果要在控制台中完成简直是太麻烦了。不过,利用vssadmin工具的“delete shadows”命令可轻易实现。其命令格式是“vssadmin delete shadows /for=forvolumespec /oldest”,其中“/for=forvolumespec”指定用于存储快照的本地卷。比如我们在C盘上配置了卷影副本,如果要删除其中最早的快照,执行命令“vssadmin delete shadows /for=C: /oldest”,在输入“Y”确认后就会报告删除成功。(图7)
删除快照映像
当然,我们也可以提供卷影标识来删除快照,其命令参数是“/shadow=shadowID”。这里的shadowID是要删除的快照映像对应的全局唯一标识符,使用时要包含“{}”。比如,我们要删除ID为{3a9bdea8-88f8-488a-b7d6-19c519ea6dfc}的快照,可以执行命令“vssadmin delete shadows /shadow={3a9bdea8-88f8-488a-b7d6-19c519ea6dfc}”即可。这种快照删除方法直指目标非常快捷,不过如果你输入了不存在的ID后,会提升错误信息。除了针对性的快照删除,如果我们要删除所有的快照该如何操作呢?同样非常简单,利用vssadmin工具的“delete shadows /add”就可以了。执行命令“vssadmin delete shadows /add”后本地磁盘中的所有快照都会被删除,因此,这些该命令时一定要慎重。另外,需要说明的是删除所有快照并等于禁止了卷上的卷影副本。 (图8)
删除快照映像
总结:本文基于实例,比较全面地解析了在Windows Server 2008平台上利用vssadmin工具进行卷影副本管理的7个方面。应该说,这7个方面囊括了卷影副本管理的最主要方面。希望本文,对于大家提高卷影副本管理效率有帮助。