带有磁盘阴影的Hyper-V备份 - 何时调用“结束备份”?

时间:2011-08-03 16:26:48

标签: backup hyper-v volume-shadow-service

我正在使用基于Windows VSS(卷影复制服务)的diskhadow实现Hyper V VM的备份。

实现与DiskShadow / Xcopy BACKUP of Hyper-V中描述的完全相同,其中diskshadow脚本如下所示:


set context persistent
set metadata C:\backup.cab
set verbose on
begin backup
     add volume C: alias ConfigVolume
     #The GUID of the Hyper-V Writer
     writer verify {66841cd4-6ded-4f4b-8f17-fd23f8ddc3de}
     create
     EXPOSE %ConfigVolume% Y:
EXEC HyperVBackup.cmd
     UNEXPOSE Y:
end backup    

在HyperVBackup.cmd中,使用xcopy将影子副本实际复制到备份驱动器。这显然是备份过程中最耗时的部分。

begin backupend backup命令将事件发送给vss编写器,以允许它们为影子副本创建做准备并在备份结束时作出反应。

  • end backup之后拨打EXEC HyperVBackup.cmd是不是一个好主意?只要漫长的xcopy部分需要,这种强制vss编写器不会保持中间状态吗?
  • 在行end backup之前调用EXEC HyperVBackup.cmd是不合适的?

实际上我不知道vss作家在收到end backup发送的事件时通常会做什么。

谢谢, 喃

2 个答案:

答案 0 :(得分:2)

作为diskhadow的替代方案,您可能还需要查看以下支持CSV并包含命令行工具的开源Hyper-V备份解决方案:

http://hypervbackup.codeplex.com/

答案 1 :(得分:0)

end backup基本上向所有vss编写者发出成功备份的信号。在将所有数据成功移动到安全位置之后,您可能不希望这样做。在您的情况下,您不希望在HyperVBackup.cmd脚本完成且没有错误之前发出完成备份的信号,同样xcopy已完成且没有错误。

原因是某些编写者(例如Exchange或SQL Server)会在end backup发出信号时刷新事务日志。您不希望事务日志在成功备份并处于安全位置之前刷新。

begin backup不应该处于中间状态。它只是告诉vss编写者“嘿,如果需要在备份窗口附近进行任何维护,请立即执行”。我不知道vss编写器的具体内容,但我也可以看到begin backup用于设置标记,因此当发出end backup信号时,它可以说“到目前为止的数据是好的,你现在可以用它来玩弄。“例如,您不希望将日志刷新到end backup命令的时间,而end backup命令将刷新日志直到begin backup命令的时间。

发生的唯一“中间状态”是在文件系统冻结期间。冻结发生在create命令期间,并在create命令完成时自动解冻。