利用XML调整/复制虚拟机

本文介绍了如何利用XML文件在KVM环境下调整虚拟机配置,包括改名和复制虚拟机。具体步骤涉及dumpxml导出XML配置,修改name、uuid、磁盘和MAC地址,然后使用virsh define创建新虚拟机。同时,文章还提到了通过virt-viewer直接访问虚拟机和使用virt-clone创建克隆虚拟机的方法。

2.利用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
… …

rh6_n1 //名称
dae4cb37-0a80-75c3-5853-07d5187073c7 //UUID值
1048576
1048576 //内存大小
1 //CPU数量
… …
2)将虚拟机rh6_1的XML描述导出到/root/new.xml文件
[root@kvmsvr ~]# virsh dumpxml rh6_n1 > /root/new.xml //导出XML文件
[root@kvmsvr ~]# less /root/new.xml //确认结果
… …

rh6_n1
dae4cb37-0a80-75c3-5853-07d5187073c7
1048576
1048576
1
… …
步骤二:将虚拟机 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

rhel6_node1 //修改为新的虚拟机名称
c33a4aad-c555-48b3-a0a9-893ad0b4775e //修改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

rh6_n2 //修改为新的虚拟机名称
bfdce427-fca8-48a7-ae6c-0dd94daa2ceb //修改UUID值


//改用新的虚拟磁盘
… …

… …

//修改网卡的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                         关闭
    

… …
3.虚拟机其他操作
问题
关于KVM虚拟机管理的其他操作:
1)通过virt-viewer直接访问虚拟机
2)使用virt-clone为现有的虚拟机创建克隆
方案
在KVM虚拟化服务器的桌面环境中,可以绕过virt-manager虚拟系统管理器,通过virt-viewer工具直接访问指定的虚拟机,基本用法:
virt-viewer 虚拟机名称
另外可以通过virt-clone命令来克隆一台虚拟机,效果相当于练习二中的虚拟机复制,但是操作要更加简单:
virt-clone -o 模板虚拟机名称 -n 新虚拟机名称 -f 指定虚拟磁盘路径
步骤
实现此案例需要按照如下步骤进行。
步骤一:virt-viewer直接访问
假设虚拟机rhel6_node1正在运行中,可以执行virt-viewer rhel6_node1来直接访问此虚拟机的图形控制台,如图-2所示。
在这里插入图片描述
图-2
步骤二:将虚拟机rhel6_node1克隆为新虚拟机rhel6_node2
1)将被克隆的虚拟机rhel6_node1关机
[root@kvmsvr ~]# virsh destroy rhel6_node1
域 rhel6_node1 被删除
2)执行克隆操作
[root@kvmsvr ~]# virt-clone -o rhel6_node1 -n rhel6_node2
-f /data/images/rhel6-clone.img
正在克隆 node1.img 46% [========- ] 7.7 MB/s | 4.5 GB //显示克隆进度
Clone ‘rhel6_node2’ created successfully.

[root@kvmsvr ~]# ls /data/images/ //确认新克隆的磁盘文件
node1.img node2.img rhel6-clone.img
3)验证新虚拟机rhel6_node2
[root@kvmsvr ~]# virsh start rhel6_node2 //开启新虚拟机
域 rhel6_node2 已开始
[root@kvmsvr ~]# virsh list --all //确认虚拟机列表
Id 名称 状态

8 rhel6_node2 running

  • rhel6_node1                    关闭
    
  • rh6_n2                         关闭
    

… …

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值