zoukankan      html  css  js  c++  java
  • libvirt保持虚拟机运行情况下修改名称

    通过virsh list命令能看到虚拟机的列表:
    
    [root@compute2 ~]# virsh list
    Id 名称 状态
    ----------------------------------------------------
    60 instance-00000050 running
    64 instance-00000054 running
    
    这里要修改的是第二列, 虚拟机的名称。
    
     
    
    步骤:
    
    1.查看虚拟机信息:
    
    [root@compute2 ~]# virsh dominfo 64
    Id: 64
    名称: instance-00000054
    UUID: 870b83a2-3c93-4244-8d4e-385268325e88
    OS 类型: hvm
    状态: running
    CPU: 4
    CPU 时间: 12.2s
    最大内存: 65536 KiB
    使用的内存: 65536 KiB
    持久: 是
    自动启动: 禁用
    管理的保存: 否
    安全性模式: none
    安全性 DOI: 0
    
     
    
    注意虚拟机信息中的“持久:”项,这里值为“是”,所以在修改完成后, 需要定义一下虚拟机的xml,执行步骤4
    
    如果不是,可以跳过步骤4。
    
     
    
    2.修改xml信息:
    
    [root@compute2 ~]# vim /var/run/libvirt/qemu/instance-00000054.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='64'>
    <name>instance-00000054</name>
    <uuid>870b83a2-3c93-4244-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='64'>
    <name>instance-00000054-rename</name>
    <uuid>870b83a2-3c93-4244-8d4e-385268325e88</uuid>
    <metadata>
    
    ... ...
    
    保存,退出。
    
     
    
    3.重启libvirtd服务:
    
    [root@compute2 ~]# systemctl restart libvirtd
    [root@compute2 ~]# virsh list
    Id 名称 状态
    ----------------------------------------------------
    60 instance-00000050 running
    64 instance-00000054-rename running
    
    可以看到虚拟机的名字已经被修改了。
    
     
    
    4.将虚拟机的持久状态修改为“是”:
    
    查看虚拟机的信息:
    
    [root@compute2 ~]# virsh dominfo 64
    Id: 64
    名称: instance-00000054-rename
    UUID: 870b83a2-3c93-4244-8d4e-385268325e88
    OS 类型: hvm
    状态: running
    CPU: 4
    CPU 时间: 21.4s
    最大内存: 65536 KiB
    使用的内存: 65536 KiB
    持久: 否
    自动启动: 禁用
    管理的保存: 否
    安全性模式: none
    安全性 DOI: 0
    
     
    
    可以看到, 这里虚拟机信息“持久:”值为“否”, 与修改前不一致,所以定义一下这个虚拟机:
    
    cp /etc/libvirt/qemu/instance-00000054.xml  /etc/libvirt/qemu/instance-00000054-rename.xml
    
    vim  /etc/libvirt/qemu/instance-00000054-rename.xml
    
    <domain type='kvm'>
    <name>instance-00000054</name>
    
    ... ...
    
    修改为:
    
    <domain type='kvm'>
    <name>instance-00000054-rename</name>
    
    ... ...
    
    [root@compute2 ~]# virsh define /etc/libvirt/qemu/instance-00000054-rename.xml
    
     
    
    再次查看虚拟机状态:
    
    [root@compute2 ~]# virsh dominfo 64
    Id: 64
    名称: instance-00000054-rename
    UUID: 870b83a2-3c93-4244-8d4e-385268325e88
    OS 类型: hvm
    状态: running
    CPU: 4
    CPU 时间: 21.4s
    最大内存: 65536 KiB
    使用的内存: 65536 KiB
    持久: 是
    自动启动: 禁用
    管理的保存: 否
    安全性模式: none
    安全性 DOI: 0
    
     
    
    5.删除没用的文件:
    
    rm -rf /etc/libvirt/qemu/instance-00000054.xml
    
    rm -rf /var/run/libvirt/qemu/instance-00000054.* 
    
     
    
     
    
    原理:
    
    libvirtd守护进程在启动的时候, 会通过 /var/run/libvirt/qemu/目录下的xml文件,加载正在运行的虚拟机配置到内存中。
    
    所以这里直接修改该目录下的相应虚拟机的配置信息,重启libvirtd后,修改的配置就加载到libvirtd的内存中了。
    
     
    
    引申:
    
    猜测虚拟机的其它内存中的配置信息,也可以通过这种方式进行修改,包括uuid等部分配置信息。
    
     
    
    存在问题:
    
    这个步骤在openstack环境下有一个问题,按照步骤修改完成后,通过openstack删除这个虚拟机会失败,nova-compute的日志
    
    会报错误,这里猜测是修改的步骤不完善,导致这里出错,具体的原因在需要的时候再track nova-compute的错误,找到需要完善的地方。
  • 相关阅读:
    个人作业——软件工程实践总结作业
    个人作业——软件评测
    软件工程实践2019第四次作业
    软件工程实践2019第三次作业
    软件工程实践2019第二次作业
    软件工程实践2019第一次作业
    1
    个人作业——软件工程实践总结
    团队作业第二次—项目选题报告(追光的人)
    结对第二次—文献摘要热词统计及进阶需求
  • 原文地址:https://www.cnblogs.com/gushiren/p/9591110.html
Copyright © 2011-2022 走看看