问题描述兄弟们,昨天分享了Hyper-v虚拟化,机停维护过程,今天我们来看一下,linux的kvm虚拟机,如何维护停机的详细过程。
解决过程
首先我们,需要登录到KVM的宿主机,我们可以使用virsh list,列出所有正在运行的虚拟机。或者使用:virsh list --all 命令列出所有虚拟机。
我们使用下面命令进行虚拟机关机。virsh shutdown web-server在虚拟机关机之前,我们需要和客户确认虚拟机的业务是否正常停止了,然后,再使用下面命令进行对虚拟机进行关机操作。我们使用virsh list可以看到,现在只有一台虚拟机了,另外一台虚拟机已经在关机了。我们使用的virsh list只能看到,正在运行的虚拟机,无法看到已关机的虚拟机,我们需要使用下面命令。注意:shutdown 需要虚拟机内部安装并运行 acpid 或 qemu-guest-agent,否则可能无响应。
我们再关另外一台服务器虚拟机。
检查是否还有运行中的虚拟机virsh list如果没有任何虚拟机在运行,输出是空虚拟机名称(无运行中 VM):Id Name State -------------------
或确认所有 VM 状态我们再使用virsh list --all查看所有虚拟机。
我发现有几台虚拟机无法使用virsh shutdown web-server命令关机。下面这几台一直没关掉,虽说显示正在关机中了,但是一直关闭不掉。难道虚拟机中没安装acpid或 qemu-guest-agent吗?那这时远程SSH是没有办法正常关机了,那我还有办法,我们直接拿显示器,连接到服务器。找到VM。关机完成之后,我们再查看一下,可以看到,现在所有虚拟机都已经正常关机了。还是那句话,在关机之前,一定要和客户确定好虚拟机的生产业务都正常停止了,然后再对虚拟机进行关机操作。然后回到linux宿主机,打开终端init 0进行宿主机关机。使用virsh start 虚拟机名称。进行开机操作,开机要注意虚拟机的开机顺序,客户有些虚拟机,是要有开机顺序的,否则有些业务会报错。开另外一台服务器的时候,发现,有4台虚拟机无法正常开机。说找不到这台虚拟机,不是吧,我都是正常关机的,怎么有4台虚拟机,不见了,别吓我,不会被删除,或者虚拟机文件损了吧!到宿主机上查看,发现虚拟机名称是在的,但是也是没有这虚拟机文件了。检查一下,这4台虚拟机文件都还在不在,ls-la /kntfiles/,在这里找不到那4台虚拟机文件了。
1. 查看具体缺失的文件ls-la /kntfiles/v12019_JumpServer.qcow2ls-la /kntfiles/v12023_JSapp.qcow22. 检查 /kntfiles 挂载状态df-h | grep kntfilesmount | grep kntfilesvirsh edit v12019_JumpServer 查看 <disk> 部分但是我使用,virsh domblklist v12019_JumpServer 列出所有磁盘,是有虚拟机文件的。后来和客户沟通了一下,说这4台虚拟机,就是关机状态的,不使用了,删除过的。吓死我了,差点认为是关机后,虚拟机文件损坏了。下次关机前还真的要确认一下,虚拟机是否正在使用,要不然心脏受不了。