【问题标题】:Shutdown all Running Virtual Machines and starting auto-start machines again关闭所有正在运行的虚拟机并再次启动自动启动机器
【发布时间】:2017-12-02 13:20:52
【问题描述】:

我想创建一个简单的备份脚本来关闭所有正在运行的虚拟机,然后复制映像文件并再次开始自动启动虚拟机。听起来很简单,但是当我关闭虚拟机(使用“virsh shutdown VMNAME”)时,脚本不会完全等待关闭。我可以停止 KVM 服务,导致所有 VM 关闭,复制 VM 文件并重新启动。这样只会启动自动启动 VM。听起来像是停止 MySQL/MariaDB,备份文件并重新启动它。人们可能会建议使用 LVM 快照,目前对于此服务器来说是不可能的。

【问题讨论】:

    标签: linux ubuntu kvm


    【解决方案1】:

    “virsh shutdown”向客户端操作系统发送关闭命令,这可能(或可能不会)实际关闭客户端。 “virsh destroy”同样会向客户端发送关机信号,但不处于正常状态的客户端(例如,等待 NFS 卸载或有问题的磁盘同步)仍然不会关闭。

    我发现保证客户端关闭的唯一方法是重新启动 KVM 父级,等待任何 KVM 状态恢复,然后立即关闭所有正在运行的客户端。此时,您可以进行 qemu-img 备份或快照,然后重新启动客户端

    我没有尝试过“virsh suspend”命令(只是在研究这个答案时进行了查找)——这可能对我的类似问题有所帮助。

    【讨论】:

    • 谢谢。我发现最好写下一个等待所有服务器关闭的脚本。 Libvirt 有我熟悉的 PHP API。我想我设法编写了干净地关闭所有服务器、创建备份并重新开始的脚本。我正在考虑分享它,经过一些打磨。目前,它只适合我。
    猜你喜欢
    • 2014-09-29
    • 1970-01-01
    • 2013-12-31
    • 2022-07-23
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    相关资源
    最近更新 更多