Bomi
分类: 虚拟化
2012-02-05 11:46:04
Copyright 2009, The e. Publishing Dept. of Morpho Studio (Spruce Int. Found. ) All rights reserved.
ZFS Zvol 是一个虚拟block 设备,可以分配给xVM Guset Domain作为虚拟硬盘使用,结合ZFS 通过快照克隆新ZFS文件系统的功能,我们可以使用现有虚拟机的配置文件和虚拟硬盘文件克隆新的虚拟机。
克隆基于zfs的DomU
步骤:
首先,关闭克隆源主机,以便制作源主机虚拟硬盘对应的zfs文件系统的快照。(通常为zvol)
root@qhoxvm:~#xm shutdown -w egooweb1
然后制作克隆源 egooweb1 系统盘的快照
root@qhoxvm:~#zfs snapshot vdisk/domU_OS/web1@clone
使用快照克目标domU的系统盘
root@qhoxvm:~#zfs clone vdisk/domU_OS/web1@clone vdisk/domU_OS/web2
接着导出源domU的配置文件
root@qhoxvm:~#virsh dumpxml egooweb1 > /etc/egooweb2.xml
然后修改新domU的配置文件
主要需要更改的地方包括:
1.domU 的名字
找到如下xml 标签
将
例如改为:
2.删除
3.修改虚拟磁盘设备的路径
例如克隆源系统盘的zvol路径为:
4.修改虚拟网卡的mac 地址,以免2个domU的虚拟网卡使用相同的mac造成冲突。
实验发现如果两个domU虚拟网卡的mac相同,那么后启动的domU将无法正常从网络访问。
在virsh dumpxml 命令导出的domain配置文件中有类型如下的文本:
通常只需修改mac 地址的最后2位,确保不与其他虚拟机的网卡冲突就可以了!
运行中的其他虚拟机网卡的地址,可以通过 virsh dumpxml domain-Name 命令输出指定名字domain 的配置文件到当前终端窗口来查看。
5.最后使用修改完成后的domain 配置文件创建新的虚拟机
root@qhoxvm:~#virsh define /etc/egooweb2.xml
现在你应该可以在虚拟机管理工具看到新的domU egooweb2,并启动它。
你也可以通过命令行启动domU,如:
xm start egooweb2
注意:如果你的DomU 系统为opensoalris ,并且使用sys-unconfig 命令来重新定义系统(重新配置系统默认语言、网络、地区选项等),DomU重新启动后是无法通过vnc连接到虚拟机的,从虚拟机管理中选择打开的串口控制 台窗口可能也看不到任何信息输出。
这时候你可以在终端窗口输入 xm console egooweb2(虚拟主机的domain name)连接的虚拟机,然后就能看到系统重定义向导的菜单了!
另外:今天做了一些实验,证实了xVM guest domain (domU)的虚拟网卡确实是动态创建的,也就是说对于普通用户来说xVM对于虚拟网络设备的管理基本上是透明的。 每一次重新启动,domU的domid都会变化(自增),使用dladm show-list 看到的xen创建的虚拟网卡名字也是跟着domid 变化的。
在通过virsh dumpxml 导出domU配置文件,修改硬件配置,然后使用virsh define 将修改后的硬件配置应用到虚拟机的实验中,发现domU虚拟网卡只能设定为桥接、NAT 到物理网卡设备,不能使用任何形式的虚拟网卡(比如用dladm 创建的虚拟网卡或传统的类似hostname.eth0:1形式的虚拟网卡)。
否则在启动虚拟机时xm 调用虚拟网卡配置脚步会出错,导致domU启动失败。这一点做的要比VirtualBox要差。
特别是每次domU重新启动都会改变虚拟网卡的设备名,将导致某些特定的应用受到限制。
比如:如果网卡设备名改变,mac也跟着变,在domU上配置的iSCSI target 和 initiator的IQN是不是也会改变甚至失效呢!