1

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

该实现与 Hyper-V 的 DiskShadow / Xcopy BACKUP 中描述的非常相似,其中 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 backupand命令将end backup事件发送到 vss 编写器,以允许它们准备创建卷影副本并在备份结束时做出反应。

  • end backup打电话给AFTER是个好主意EXEC HyperVBackup.cmd吗?只要长 xcopy 部分需要,这不会迫使 vss writers 保持在中间状态吗?
  • end backup在下线之前打电话不是合适的EXEC HyperVBackup.cmd吗?

实际上,我不知道 vss 编写者在收到由 发送的事件时通常会做什么end backup

谢谢,南。

4

2 回答 2

2

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

http://hypervbackup.codeplex.com/

于 2012-03-10T13:13:08.600 回答
0

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

这样做的原因是某些写入程序,例如 Exchange 或 SQL Server,会在收到end backup. 您不希望事务日志在成功备份并位于安全位置之前被刷新。

begin backup不应该在中间状态下持有任何东西。它只是告诉 vss 编写者“嘿,如果需要在备份窗口附近进行任何维护,请立即执行”。我不知道 vss writer 的具体情况,但我也可以看到begin backup被用来设置标记,所以当end backup发出信号时,它可以说“到目前为止的数据很好,你现在可以用它来狂奔”。例如,您不想将日志刷新到end backup命令的时间,而是end backup命令将日志刷新到begin backup命令的时间。

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

于 2012-03-09T18:15:32.650 回答