代码之家  ›  专栏  ›  技术社区  ›  Community wiki

VMWare服务器:备份映像的最佳方式

  •  6
  • Community wiki  · 技术社区  · 1 年前

    备份VMWare服务器(1.0.x)的最佳方式是什么? 有问题的虚拟机是我们的开发环境,与主网络隔离运行(因此您不能仅将数据从虚拟服务器复制到真实服务器)。

    图像文件通常在使用中,并且在服务器运行时被锁定,因此在计算机运行的情况下很难备份这些文件。

    目前:我离开时手动暂停服务器,并在午夜运行一项计划任务,将图像自动复制到远程NAS。

    有没有更好的方法可以做到这一点,理想情况下不必记住暂停虚拟机?

    5 回复  |  直到 16 年前
        1
  •  5
  •   John Stauffer    16 年前

    VMWare服务器包括命令行工具“VMwarecmd”,它可以用来执行几乎任何可以通过控制台执行的操作。

    在这种情况下,您只需在启动备份之前在脚本中添加一个“vmware cmd susepend”,并在备份完成后添加一个”vmware cmd-start“。

    我们使用vmware服务器作为构建系统的一部分,以提供一个已知的环境来运行自动数据库升级,因此我们最终将状态回滚作为每个构建的一部分(由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
    
        2
  •  2
  •   community wiki 2 revs Martin Beckett    15 年前

    值得看rsync吗?如果一个大的图像文件只有一部分在更改,那么rsync可能是复制任何更改的最快方法。

        3
  •  1
  •   community wiki MadCAt    14 年前

    我在这里找到了一个在vmware服务器2中备份VM的简单指南: Backup VMware Server 2

        4
  •  0
  •   Roger Lipscombe    16 年前

    如果我没有记错的话,VMWare Server有一个脚本接口,可以通过Perl或COM获得。您可能可以在运行备份之前使用它来自动暂停虚拟机。

    如果您的备份软件支持卷影复制,这可能也会起作用。

        5
  •  0
  •   seisyll    16 年前

    有一个名为(嗯哼)Hobocopy的工具,它将复制锁定的VM文件。我建议先拍一张虚拟机的快照,然后备份VMDK。然后在复制完成后合并快照。