利用XML调整/复制虚拟机

编程入门 行业动态 更新时间:2024-10-28 13:13:38

利用XML调整/复制<a href=https://www.elefans.com/category/jswz/34/1770279.html style=虚拟机"/>

利用XML调整/复制虚拟机

利用XML调整/复制虚拟机

问题

在KVM服务器上,利用XML描述文件来调整/复制虚拟机,主要任务如下:
1)将虚拟机 rh6_n1 改名为 rhel6_node1
2)将虚拟机 rhel6_node1 复制为rh6_n2

方案

要运行一台KVM虚拟机,需要提供虚拟机的磁盘文件,还需要指定这台虚拟机的硬件配置。通常情况下,虚拟机的磁盘文件和配置文件放在下列位置:
1)配置文件:/etc/libvirt/qemu/虚拟机名.xml
2)磁盘文件:/var/lib/libvirt/images/虚拟机名.img
其中,用来记录虚拟机硬件的配置文件采用了XML(eXtensible Markup Language,可扩展标记语言)格式,也叫做描述文件。当我们从“虚拟系统管理器”新建虚拟机以后,对应的XML文件也就自动建好了。
也正因为如此,从命令行来管理KVM虚拟机的时候,就可以利用XML描述文件,来快速修改虚拟机的设置,也可以复制虚拟机。
利用XML文件修改虚拟机配置的基本思路:
1)virsh dumpxml 原虚拟机名 > /路径/new.xml
2)修改 /路径/new.xml 文件(name、uuid)
3)virsh define /路径/new.xml
4)virsh destroy 原虚拟机名,如果虚拟机未运行则跳过此步
5)virsh undefine 原虚拟机名
利用XML文件复制虚拟机的基本思路:
1)virsh dumpxml 原虚拟机名 > /路径/new.xml
2)修改 /路径/new.xml 文件(name、uuid、disk、mac address)
3)拷贝原虚拟机磁盘文件为新的虚拟机磁盘文件
4)virsh define /路径/new.xml

步骤

实现此案例需要按照如下步骤进行。
步骤一: 了解查看/导出XML描述的基本操作
1)查看虚拟机rh6_n1的XML描述信息

[root@kvmsvr ~]# virsh  dumpxml  rh6_n1 
.. ..
<domain type='kvm'><name>rh6_n1</name>  			 	 				//名称<uuid>dae4cb37-0a80-75c3-5853-07d5187073c7</uuid>	  	//UUID值<memory unit=‘KiB’>1048576</memory>  <currentMemory unit=‘KiB’>1048576</currentMemory>	  	//内存大小<vcpu placement=‘static’>1</vcpu>  			  		//CPU数量.. ..

2)将虚拟机rh6_1的XML描述导出到/root/new.xml文件

[root@kvmsvr ~]# virsh dumpxml rh6_n1 > /root/new.xml  	//导出XML文件
[root@kvmsvr ~]# less  /root/new.xml   	//确认结果
.. ..
<domain type='kvm' id='1'><name>rh6_n1</name><uuid>dae4cb37-0a80-75c3-5853-07d5187073c7</uuid><memory unit='KiB'>1048576</memory><currentMemory unit='KiB'>1048576</currentMemory><vcpu placement='static'>1</vcpu>.. ..

步骤二:将虚拟机 rh6_n1 改名为 rhel6_node1
1)导出虚拟机 rh6_n1 的XML描述信息,保存为 new.xml 文件

[root@kvmsvr ~]# virsh  dumpxml  rh6_n1  >  new.xml

2)修改导出的new.xml文件

[root@kvmsvr ~]# uuidgen  								//获取新的UUID值
c33a4aad-c555-48b3-a0a9-893ad0b4775e[root@kvmsvr ~]# vim  new.xml
<domain type='kvm' id='1'><name>rhel6_node1</name>  							//修改为新的虚拟机名称<uuid>c33a4aad-c555-48b3-a0a9-893ad0b4775e</uuid>  	//修改UUID值
.. ..  

3)根据 new.xml 建立新的虚拟机

[root@kvmsvr ~]# virsh  define  new.xml   				//导入新虚拟机描述
定义域 rhel6_node1(从 new.xml)[root@kvmsvr ~]# virsh  list  --all 					//确认创建结果Id    名称                         状态
----------------------------------------------------1     rh6_n1                         启用-     rhel6_node1                    关闭
.. ..

4)删除原虚拟机的 XML 描述

[root@kvmsvr ~]# virsh  destroy  rh6_n1  				//强制关机
域 rh6_n1 被删除[root@kvmsvr ~]# virsh  undefine  rh6_n1  				//删除虚拟机定义
域 rh6_n1 已经被取消定义[root@kvmsvr ~]# virsh  list  --all  					//确认删除结果Id    名称                         状态
-----------------------------------------------------     rhel6_node1                    关闭
.. ..

步骤三:将虚拟机 rhel6_node1 复制为rh6_n2

1)导出虚拟机 rhel6_node1 的XML描述信息,保存为 rh6_n2.xml 文件
[root@kvmsvr ~]# virsh  dumpxml  rhel6_node1  >  rh6_n2.xml

2)修改导出的 rh6_n2.xml文件

[root@kvmsvr ~]# uuidgen  								//获取新的UUID值
bfdce427-fca8-48a7-ae6c-0dd94daa2ceb[root@kvmsvr ~]# vim  rh6_n2.xml
<domain type='kvm' id='1'><name>rh6_n2</name>  		    						//修改为新的虚拟机名称<uuid>bfdce427-fca8-48a7-ae6c-0dd94daa2ceb</uuid>  	//修改UUID值<disk type='file' device='disk'><driver name='qemu' type='raw' cache='none'/><source file=‘/data/images/node2.img’/>  	  	//改用新的虚拟磁盘.. ..</disk>
.. ..<interface type='network'><mac address='52:54:00:56:77:88'/>				//修改网卡的MAC地址
.. .. 

3)以复制的方式为新虚拟机建立磁盘文件

[root@kvmsvr ~]# cp  -p  /data/images/node1.img  /data/images/node2.img

4)根据 rh6_n2.xml 建立新的虚拟机

[root@kvmsvr ~]# virsh  define  rh6_n2.xml 
定义域 rh6_n2(从 rh6_n2.xml)
[root@kvmsvr ~]# virsh  list  --all  					//确认复制结果Id    名称                         状态
-----------------------------------------------------     rhel6_node1                    关闭-     rh6_n2                         关闭
.. ..

更多推荐

利用XML调整/复制虚拟机

本文发布于:2023-07-28 16:33:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1250970.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:虚拟机   XML

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!