通过virsh list命令能看到虚拟机的列表: [root@compute2 ~]# virsh list
Id 名称 状态
----------------------------------------------------
instance- running
instance- running 这里要修改的是第二列, 虚拟机的名称。 步骤: .查看虚拟机信息: [root@compute2 ~]# virsh dominfo
Id:
名称: instance-
UUID: 870b83a2-3c93--8d4e-385268325e88
OS 类型: hvm
状态: running
CPU:
CPU 时间: .2s
最大内存: KiB
使用的内存: KiB
持久: 是
自动启动: 禁用
管理的保存: 否
安全性模式: none
安全性 DOI: 注意虚拟机信息中的“持久:”项,这里值为“是”,所以在修改完成后, 需要定义一下虚拟机的xml,执行步骤4 如果不是,可以跳过步骤4。 .修改xml信息: [root@compute2 ~]# vim /var/run/libvirt/qemu/instance-.xml ... ... <libDir path='/var/lib/libvirt/qemu/domain-64-instance-00000054'/>
<channelTargetDir path='/var/lib/libvirt/qemu/channel/target/domain-64-instance-00000054'/>
<domain type='kvm' id=''>
<name>instance-</name>
<uuid>870b83a2-3c93--8d4e-385268325e88</uuid>
<metadata> ... ... 修改为: ... ... <libDir path='/var/lib/libvirt/qemu/domain-64-instance-00000054'/>
<channelTargetDir path='/var/lib/libvirt/qemu/channel/target/domain-64-instance-00000054'/>
<domain type='kvm' id=''>
<name>instance--rename</name>
<uuid>870b83a2-3c93--8d4e-385268325e88</uuid>
<metadata> ... ... 保存,退出。 .重启libvirtd服务: [root@compute2 ~]# systemctl restart libvirtd
[root@compute2 ~]# virsh list
Id 名称 状态
----------------------------------------------------
instance- running
instance--rename running 可以看到虚拟机的名字已经被修改了。 .将虚拟机的持久状态修改为“是”: 查看虚拟机的信息: [root@compute2 ~]# virsh dominfo
Id:
名称: instance--rename
UUID: 870b83a2-3c93--8d4e-385268325e88
OS 类型: hvm
状态: running
CPU:
CPU 时间: .4s
最大内存: KiB
使用的内存: KiB
持久: 否
自动启动: 禁用
管理的保存: 否
安全性模式: none
安全性 DOI: 可以看到, 这里虚拟机信息“持久:”值为“否”, 与修改前不一致,所以定义一下这个虚拟机: cp /etc/libvirt/qemu/instance-.xml /etc/libvirt/qemu/instance--rename.xml vim /etc/libvirt/qemu/instance--rename.xml <domain type='kvm'>
<name>instance-</name> ... ... 修改为: <domain type='kvm'>
<name>instance--rename</name> ... ... [root@compute2 ~]# virsh define /etc/libvirt/qemu/instance--rename.xml 再次查看虚拟机状态: [root@compute2 ~]# virsh dominfo
Id:
名称: instance--rename
UUID: 870b83a2-3c93--8d4e-385268325e88
OS 类型: hvm
状态: running
CPU:
CPU 时间: .4s
最大内存: KiB
使用的内存: KiB
持久: 是
自动启动: 禁用
管理的保存: 否
安全性模式: none
安全性 DOI: .删除没用的文件: rm -rf /etc/libvirt/qemu/instance-.xml rm -rf /var/run/libvirt/qemu/instance-.* 原理: libvirtd守护进程在启动的时候, 会通过 /var/run/libvirt/qemu/目录下的xml文件,加载正在运行的虚拟机配置到内存中。 所以这里直接修改该目录下的相应虚拟机的配置信息,重启libvirtd后,修改的配置就加载到libvirtd的内存中了。 引申: 猜测虚拟机的其它内存中的配置信息,也可以通过这种方式进行修改,包括uuid等部分配置信息。 存在问题: 这个步骤在openstack环境下有一个问题,按照步骤修改完成后,通过openstack删除这个虚拟机会失败,nova-compute的日志 会报错误,这里猜测是修改的步骤不完善,导致这里出错,具体的原因在需要的时候再track nova-compute的错误,找到需要完善的地方。