当前位置: > 虚拟化 Virtualization > KVM >

Ubuntu 12.04 KVM之VM静态迁移-基于镜像

时间:2016-05-29 23:12来源:linux.it.net.cn 作者:IT

    静态迁移:也叫做常规迁移、离线迁移(Offline Migration)。就是在虚拟机关机或暂停的情况下从一台物理机迁移到另一台物理机。因为虚拟机的文件系统建立在虚拟机镜像上面,所以在虚拟机关机的情况下,只需要简单的迁移虚拟机镜像和相应的配置文件到另外一台物理主机上;如果需要保存虚拟机迁移之前的状态,在迁移之前将虚拟机暂停,然后拷贝状态至目的主机,最后在目的主机重建虚拟机状态,恢复执行。这种方式的迁移过程需要显式的停止虚拟机的运行。从用户角度看,有明确的一段停机时间,虚拟机上的服务不可用。这种迁移方式简单易行,适用于对服务可用性要求不严格的场合。

        两台dell R710,两台做宿主机上面安装kvm虚拟机,主要实验kvm的vm静态迁移过程。

        Ubuntu-src、Ubuntu-dst,kvm的安装以在Ubuntu-src为例:

在Ubuntu-src、Ubuntu-dst上都需要安装以下软件包

apt-get install ubuntu-virt-server python-vm-builder kvm-ipxe bridge-utils
以下的操作均在Ubuntu-src上面执行:

查看cpu及BIOS是否开启虚拟化支持,BIOS的检查在开机启动时,按F2检查,cpu按照如下命令检查:

egrep '(vmx|svm)' --color=always  /proc/cpuinfo
修改网卡配置(/etc/network/interfaces),建立桥接,如下:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
        address 10.1.6.90
        netmask 255.255.255.0
        gateway 10.1.6.254
        bridge_ports eth0
        bridge_fd 9
        bridge_hello 2
        bridge_maxage 12
        bridge_stp off
安装基于image的vm,进入/opt目录,导入一个debian6的iso安装镜像,然后用kvm-img生成一个vm image
kvm-img create -f qcow2 debian.img 5G
采用virt-install方法管理虚拟机,安装以下工具包:
apt-get install libvirt-bin virtinst
安装kvms虚拟机
virt-install -d -n kvms -r 2048 --disk path=/opt/debian.img,bus=virtio,cache=none,format=qcow2 --network bridge=br0,model=virtio --vnc --cdrom=/opt/debian-6.0.2.1-amd64-CD-1.iso
使用vnc打开安装界面

接下来按照正常的安装过程一步一步安装完毕后,重启虚拟机,因为使用virt-install安装完虚拟机后,默认虚拟机是不启动的,所以需要先启动虚拟机。

可以看到kvms虚拟机已经启动了,在Ubuntu-src上ssh登录kvms:

      

       接下来进行静态迁移

       先在Ubuntu-src上关闭kvms虚拟机,并把/opt/debian.img文件拷贝至Ubuntu-dst的/opt目录下面,并把kvms虚拟机的配置文件/etc/libvirt/qemu/kvms.xml拷贝至Ubuntu-dst的/etc/libvirt/qemu的目录下。

scp /opt/debian.img root@10.1.6.228:/opt
scp /etc/libvirt/qemu/kvms.xml root@10.1.6.228:/etc/libvirt/qemu
如下图

 

接下来所有的操作转移至Ubuntu-dst上进行操作:

查看Ubuntu-dst上有哪些虚拟机在,因为Ubuntu-dst上还没有运行虚拟机,所以看不到有虚拟机:

virsh list --all

使拷贝过来的kvms的配置文件生效,然后再次查看系统中的虚拟机,就会看到kvms了:

virsh define /etc/libvirt/qemu/kvms.xml
virsh list --all

启动Ubuntu-dst上的kvms虚拟机,并登录kvms虚拟机:

virsh start kvms
ssh root@10.1.6.237
整个过程如下:

可以看到kvms已经运行在Ubuntu-dst上了,这时不能在Ubuntu-src上启动原有的kvms虚拟机,因为这时MAC和IP会冲突的,也可以修改Ubuntu-src上的kvms的配置文件后,再次启动它。

 

最简单的静态迁移就完成了,显然这种虚拟机不适合在线上大规模部署,并且大量的镜像文件管理起来也很混乱,根据业务可允许中断的时间,决定是否使用该模式。




(责任编辑:IT)
------分隔线----------------------------