VMWare Server:备份映像的最佳方法
时间:2020-03-05 18:55:29 来源:igfitidea点击:
备份VMWare服务器(1.0.x)的最佳方法是什么?
所讨论的虚拟机是我们的开发环境,并且从主网络隔离运行(因此,我们不能仅将数据从虚拟服务器复制到真实服务器)。
映像文件通常在使用中,并且在服务器运行时被锁定,因此很难在运行计算机的情况下对其进行备份。
当前:我离开时手动暂停服务器,并且有一个计划的任务在午夜运行,以将映像自动复制到远程NAS。
有没有更好的方法来执行此操作,理想情况下无需记住暂停虚拟机?
解决方案
回答
如果我没记错的话,VMWare Server有一个脚本接口,可通过Perl或者COM使用。我们可能可以使用它来在运行备份之前自动暂停VM。
如果备份软件支持卷影复制,那也可能会起作用。
回答
VMWare服务器包括命令行工具" vmware-cmd",该工具实际上可用于执行可通过控制台执行的任何操作。
在这种情况下,我们只需在开始备份之前在脚本中添加" vmware-cmd susepend",并在备份完成后添加" vmware-cmd start"。
我们使用vmware-server作为构建系统的一部分,以提供一个已知的环境来运行自动化的数据库升级,因此我们最终将回退状态作为每个构建的一部分(由CruiseControl驱动),并且发现此接口非常可靠。
Usage: /usr/bin/vmware-cmd <options> <vm-cfg-path> <vm-action> <arguments> /usr/bin/vmware-cmd -s <options> <server-action> <arguments> Options: Connection Options: -H <host> specifies an alternative host (if set, -U and -P must also be set) -O <port> specifies an alternative port -U <username> specifies a user -P <password> specifies a password General Options: -h More detailed help. -q Quiet. Minimal output -v Verbose. Server Operations: /usr/bin/vmware-cmd -l /usr/bin/vmware-cmd -s register <config_file_path> /usr/bin/vmware-cmd -s unregister <config_file_path> /usr/bin/vmware-cmd -s getresource <variable> /usr/bin/vmware-cmd -s setresource <variable> <value> VM Operations: /usr/bin/vmware-cmd <cfg> getconnectedusers /usr/bin/vmware-cmd <cfg> getstate /usr/bin/vmware-cmd <cfg> start <powerop_mode> /usr/bin/vmware-cmd <cfg> stop <powerop_mode> /usr/bin/vmware-cmd <cfg> reset <powerop_mode> /usr/bin/vmware-cmd <cfg> suspend <powerop_mode> /usr/bin/vmware-cmd <cfg> setconfig <variable> <value> /usr/bin/vmware-cmd <cfg> getconfig <variable> /usr/bin/vmware-cmd <cfg> setguestinfo <variable> <value> /usr/bin/vmware-cmd <cfg> getguestinfo <variable> /usr/bin/vmware-cmd <cfg> getid /usr/bin/vmware-cmd <cfg> getpid /usr/bin/vmware-cmd <cfg> getproductinfo <prodinfo> /usr/bin/vmware-cmd <cfg> connectdevice <device_name> /usr/bin/vmware-cmd <cfg> disconnectdevice <device_name> /usr/bin/vmware-cmd <cfg> getconfigfile /usr/bin/vmware-cmd <cfg> getheartbeat /usr/bin/vmware-cmd <cfg> getuptime /usr/bin/vmware-cmd <cfg> getremoteconnections /usr/bin/vmware-cmd <cfg> gettoolslastactive /usr/bin/vmware-cmd <cfg> getresource <variable> /usr/bin/vmware-cmd <cfg> setresource <variable> <value> /usr/bin/vmware-cmd <cfg> setrunasuser <username> <password> /usr/bin/vmware-cmd <cfg> getrunasuser /usr/bin/vmware-cmd <cfg> getcapabilities /usr/bin/vmware-cmd <cfg> addredo <disk_device_name> /usr/bin/vmware-cmd <cfg> commit <disk_device_name> <level> <freeze> <wait> /usr/bin/vmware-cmd <cfg> answer
回答
有一个名为(ahem)Hobocopy的工具,它将复制锁定的VM文件。我建议拍摄VM快照,然后备份VMDK。复制完成后,然后合并快照。
回答
值得一看rsync吗?如果仅更改大图像文件的一部分,则rsync可能是复制所有更改的最快方法。
回答
我在此处找到了用于在vmware服务器2中备份VM的易于遵循的指南:Backup VMware Server 2