Xen复制虚拟机

来源:互联网 发布:网络游戏破解软件大全 编辑:程序博客网 时间:2024/06/08 15:17

因为机房的网络受限制,安装DomU时没有网络,而半虚拟化只能通过URL的方式进行安装,通过http的方式也不行,Ubuntu 14以后就不再提供netboot的镜像了!然后就只能在实验室的电脑上安装好DomU再复制到机房里面去了。当然每次安装创建虚拟机的步骤比较繁琐,通过复制的方式可以简化操作和提高效率。


复制虚拟机的方法有很多种,这里介绍的是以映像文件方式保存的虚拟机的复制,只要拷贝虚拟机的img镜像文件和配置文件并修改相应配置文就可以了,非常方便。如果想使用virt-clone命令克隆虚拟机请参考《深入理解Xen虚拟机克隆复制实战》及《How to Clone/Duplicate a VM on XEN HyperVisor using virt-clone?》。

安装新的DomU

因为之前我都是使用LVM的方式存储虚拟机的,这里改用镜像文件的方式,重新安装一个新的虚拟机,安装方式是跟之前的《Xen中半虚拟化的创建与配置》完全一致的,只不过这里使用了镜像文件存储而不是LVM,下面简要说一下主要步骤。

创建一个20G的大文件用于存储虚拟机:

# dd if=/dev/zero of=ubuntu-pv-1.img bs=1M seek=20480 count=0
获取用于xen半虚拟化的 initrd 映像及内核,我这里下载的是Ubuntu 14:

# wget http://mirrors.sohu.com/ubuntu/dists/trusty/main/installer-amd64/current/images/netboot/xen/initrd.gz# wget http://mirrors.sohu.com/ubuntu/dists/trusty/main/installer-amd64/current/images/netboot/xen/vmlinuz
安装前的配置文件:

ye@ye:~/ubuntu-pv/ubuntu-pv-1$ cat ubuntu-pv-1.cfg # Guest namename = "ubuntu-pv-1"# Kernel image to bootkernel = "/home/ye/ubuntu-pv/ubuntu-pv-3/images/vmlinuz"#bootloader = "pygrub" # Ramdisk (optional)ramdisk = "/home/ye/ubuntu-pv/ubuntu-pv-1/images/initrd.gz"# Initial memory allocation (MB)memory = 512# Number of VCPUSvcpus = 1# Network devicesvif = [ 'bridge=xenbr0' ]# Disk Devicesdisk = [ 'file:/home/ye/ubuntu-pv/ubuntu-pv-1/ubuntu-pv-1.img,xvda,rw' ]on_reboot = 'destroy'  on_crash = 'destroy'
安装后的配置文件:

ye@ye:~/ubuntu-pv/ubuntu-pv-1$ cat ubuntu-pv-1.cfg # Guest namename = "ubuntu-pv-1"# Kernel image to boot#kernel = "/home/ye/ubuntu-pv/ubuntu-pv-3/images/vmlinuz"bootloader = "pygrub" # Ramdisk (optional)#ramdisk = "/home/ye/ubuntu-pv/ubuntu-pv-1/images/initrd.gz"# Initial memory allocation (MB)memory = 512# Number of VCPUSvcpus = 1# Network devicesvif = [ 'bridge=xenbr0' ]# Disk Devicesdisk = [ 'file:/home/ye/ubuntu-pv/ubuntu-pv-1/ubuntu-pv-1.img,xvda,rw' ]#on_reboot = 'destroy'  #on_crash = 'destroy

复制虚拟机

复制虚拟机很简单,只要先把想要复制的虚拟机关掉,然后拷贝该虚拟机的镜像文件(ubuntu-pv-1.img)和配置文件(ubuntu-pv-1.cfg),然后修改相应的配置就行。

我这里将整个ubuntu-pv-1文件夹一起拷贝,其中vmlinuz和 initrd.gz可以是不需要的。

root@ccrfox141:/home/ye/ubuntu-pv# scp -r root@172.20.110.188:/home/ye/ubuntu-pv/ubuntu-pv-1 ubuntu-pv-2root@172.20.110.188's password: vmlinuz                                                                                                                                                                100% 5644KB   1.8MB/s   00:03    initrd.gz                                                                                                                                                              100%   20MB   5.1MB/s   00:04    ubuntu-pv-1.img                                                 100%   20GB   7.4MB/s   46:06    ubuntu-pv-1.cfg                                                 100%  480     0.5KB/s   00:00    
我是远程复制,本地复制使用cp命令就行。拷贝后可以修改相应文件的名字:

# mv ubuntu-pv-1.cfg ubuntu-pv-2.cfg # mv ubuntu-pv-1.img ubuntu-pv-2.img

然后修改的配置文件中的disk路径和name就行:

# Guest namename = "ubuntu-pv-2"# Kernel image to boot#kernel = "/home/ye/ubuntu-pv/ubuntu-pv-2/images/vmlinuz"bootloader = "pygrub" # Ramdisk (optional)#ramdisk = "/home/ye/ubuntu-pv/ubuntu-pv-2/images/initrd.gz"# Initial memory allocation (MB)memory = 512# Number of VCPUSvcpus = 1# Network devicesvif = [ 'bridge=xenbr0' ]# Disk Devicesdisk = [ 'file:/home/ye/ubuntu-pv/ubuntu-pv-2/ubuntu-pv-2.img,xvda,rw' ]#on_reboot = 'destroy'  #on_crash = 'destroy'
到此,虚拟机就已经复制好了。

启动虚拟机后,可以进入该虚拟机修改该虚拟机的hostname,并根据不同的情况修改网络配置。

修改主机名可以到/etc/hosts和/etc/hostname文件修改。







原创粉丝点击