微软系统中心虚拟机管理器(Microsoft System Center Virtual Machine Manager)对任何一个管理有许多Hyper-V服务器的数据中心的人来说都是基本的工具。这个软件可以用来在整个企业范围内建立、管理、优化和配置虚拟机。这里你能学到如何备份虚拟机管理器,以及如何进行一个手动或者脚本化的备份。
尽管虚拟机处于Hyper-V服务器上,系统中心虚拟机管理器还是用SQL Server数据库存储了所有虚拟机管理器所使用的配置数据。这个SQL Server数据库可以通过使用SQL Server Management Studio,或者使用任何支持SQL Server备份的备份工具来进行备份。不过,也可以使用系统中心虚拟机管理器原生的工具备份服务器。当然你只有在没有其它备份方案的时候或者需要迅速地导出配置数据的时候才会这么做。
在我告诉你怎么备份系统中心虚拟机管理器之前,我需要指出,由于软件的限制,这些备份技巧不能用于向根目录写入一个备份。还有,SQL Server运行所使用的服务帐户必须有备份目录的读写权限。
进行手动备份
进行系统中心虚拟机管理器备份主要有两种方法。***种是通过管理终端进行手动备份。要达到这个目的,切换到管理员视图并点击“Administration view(动作面板)”上的“Back Up Virtual Machine Manager(备份虚拟机管理)器”链接,如下图所示(点击放大)。然后,你会被提示输入一个备份路径,如图2所示。输入一个你的SQL Server有访问权的非根文件夹的路径,服务器就会被备份。
图1:点击“备份虚拟机管理器”链接来备份虚拟机管理器(点击图片查看大图)
图2:输入备份路径
脚本化的备份
可以备份你的虚拟机管理器服务器的另一个方法是使用PowerShell脚本。使用PowerShell脚本的好处是脚本可以被自动化并设定在特定的日期和时间运行。要达到这个目的,你需要输入两个单独的命令。这些命令可以手动输入,你也可以把他们保存到一个扩展名为PS1的文本文件里,就可以作为一个PowerShell脚本使用了。那些你需要使用的命令是虚拟机管理器专用的,所以你需要引导虚拟机管理器PowerShell扩展。
达到这个目的的最简单方法是点击开始按钮并在开始菜单中选择All Programs | Microsoft System Center | Virtual Machine Manager 2008 | Windows PowerShell – Virtual Machine Manager (所有程序|微软系统中心|虚拟机管理器2008|Windows PowerShell - 虚拟机管理器)命令行。
备份服务器使用的命令是:
$VMMServer = Get-VMMServer –ComputerName “<Your server’s FQDN>”
Backup-VMMServer –Path “C:\VMMBackups” –VMMServer $VMMServer
你可以在图3中看到这些命令怎么用。
图3:使用PowerShell命令备份虚拟机管理器(点击图片查看大图)
如果你选择把这些命令变成一个PowerShell脚本,那么重要的是要记住Windows会阻止PowerShell脚本运行。你可以通过设置服务器的执行策略为“不限制”来允许PowerShell运行。你可以输入下列命令来达到目的:
Set-ExecutionPolicy Unrestricted (设置执行策略为“不限制”)
Restoring the Virtual Machine Manager Database (恢复虚拟机管理器数据库)
微软在系统中心虚拟机管理器2008 R2中提供了一个命令行工具,可以用来恢复数据库(这个工具在2008版中不存在)。你通常只在数据库损坏或者硬盘坏掉之后需要重建服务器的时候才会这么做。假设你在向做备份的相同的服务器上恢复数据库,你可能需要在恢复之前做些清理工作。特别是你可能必须把服务器倒回原来的状态,这意味着你必须:
(1)删除所有在备份之后创建的主机。
(2)把备份之后删除的所有主机添加回来。
(3)删除所有在备份生成之后删除的虚拟机。
如果你由于一些逻辑上的原因不能执行这些操作,你仍可以恢复备份,但是你会看到类似“需要注意”,“不存在”,“主机无响应”之类的和那些不匹配相关的消息。
要恢复备份,执行这几步:
打开一个命令行窗口。
转到目录: C:\Program Files\Microsoft System Center Virtual Machine Manager 2008 R2\bin
输入:SCVMRecover –Path <备份地址> -Confirm
如果你已经在备份其他的SQL Server,那么备份系统中心虚拟机管理器的最简单的办法可能是使用你备份其他SQL Server的方法。不过,如果你想要进行一个快速的手动备份,或者你没有支持SQL的备份应用,我所说的方法就可以不费吹灰之力地运行。