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的错误,找到需要完善的地方。
  • 相关阅读:
    INFORMATION_SCHEMA.COLUMNS表的字段信息
    如何取得一个数据表的所有列名
    CASE 函数
    Js定制窗口
    获取当前数据库中的所有用户表
    Js让状态栏不显示链接地址
    RA病人关节残障与软骨破坏而非骨破坏相关
    抗阿达木单抗的抗体可能与阿达木单抗治疗过程中静脉和动脉血栓事件相关
    长期应用阿达木单抗时所产生的抗抗体会影响疗效
    多普勒超声预测抗TNFα治疗类风湿关节炎患者的有效性:一项前瞻性队列研究
  • 原文地址:https://www.cnblogs.com/gushiren/p/9591110.html
Copyright © 2011-2022 走看看