首页 > 代码库 > kvm_虚拟机迁移

kvm_虚拟机迁移

virsh domblklist 虚拟机名称 #查看虚拟磁盘文件

一、kvm虚拟机静态迁移

1.静态迁移就是虚拟机在关机状态下,拷贝虚拟机虚拟磁盘文件与配置文件到目标虚拟主机中,实现的迁移。

(1)虚拟主机各自使用本地存储存放虚拟机磁盘文件

本文实现基于本地磁盘存储虚拟机磁盘文件的迁移方式,

(2)虚拟主机之间使用共享存储存放虚拟机磁盘文件

该方式只是在目标虚拟主机上重新定义虚拟机就可以了。

2.静态迁移过程如下

(1)确定虚拟机关闭状态

virsh list --all #查看虚拟机状态

技术分享

2)准备迁移oeltest02虚拟机,查看该虚拟机配置的磁盘文件

virsh domblklist #虚拟机名称 #查看虚拟磁盘文件

技术分享

(3)导入虚拟机配置文件

 
virsh dumpxml oeltest02 > /root/oeltest02.xml
技术分享

4)拷贝配置文件到目标虚拟主机上。

技术分享

(5)查看虚拟机磁盘文件并拷贝到目标虚拟主机。

技术分享

技术分享

3.目标虚拟主机上

上面已经将虚拟机磁盘文件与配置文件都已经复制到目标虚拟主机上了。下面开始配置与启动。

(1)查看目标虚拟主机环境。

技术分享

查看虚拟机磁盘文件,目录结构与源虚拟主机一致。

技术分享

(2)定义注册虚拟主机

技术分享

(3)启动虚拟主机并确认

技术分享

至此虚拟机静态迁移完成。

 

二、kvm虚拟机动态迁移

   相比KVM虚拟机静态迁移中需要拷贝虚拟机虚拟磁盘文件,kvm虚拟机动态迁移无需拷贝虚拟磁盘文件,但是需要迁移到的虚拟主机之间需要有相同的目录结构虚拟机磁盘文件,本文这部分内容通过nfs来实现,当然也可以采用GFS2集群文件系统来实现,本文的动态迁移是基于共享存储动态迁移。KVM动态迁移目前有两种,一种是基于共享存储的动态迁移,一种是基于基于数据块的动态迁移,需要qemu-kvm-0.12.2以上版本支持,OEL6.3版本是qemu-kvm-0.12.1.2,其它发行版可能有支持。

1.虚拟化平台架构

技术分享

2.虚拟化环境介绍

(1)KVM虚拟化服务器node1
操作系统版本:OEL6.3x64
KVM虚拟化:自带版本
桥接IP地址1:192.168.159.150
测试虚拟机:oeltest01
虚拟机IP地址:192.168.159.132
虚拟磁盘文件1:/data/test01.qcow2
虚拟磁盘文件2:/data/test01_add01.qcow2
nfs挂载目录:/data

(2)KVM虚拟化服务器node2
操作系统版本:OEL6.3x64
KVM虚拟化:自带版本
桥接IP地址1:192.168.159.160
nfs挂载目录:/data

(3)nfs服务器(nfs配置略)
操作系统版本:OEL5.8x64
桥接IP地址1:192.168.169.180

nfs服务目录:/mnt/vg/nfs/abc

3.kvm虚拟主机配置准备

(1)节点1挂载nfs目录

技术分享

(2)节点2挂载nfs目录

技术分享

技术分享

确保两节点都有相同的虚拟机磁盘文件存储目录。

4.kvm虚拟机迁移

(1)节点1虚拟机状态,oeltest01虚拟机开机状态

技术分享

(2)节点2虚拟机状态,无虚拟机运行

技术分享

(3)在主机1上执行迁移命令

1
2
3
[root@node1~]#virsh migrate --live --verbose oeltest01  qemu+ssh://192.168.159.160/system tcp://192.168.159.160
root@192.168.159.160‘spassword:
Migration:[100%]

技术分享

过程有一个暂停与关闭的过程。

(4)客户机一直ping查看迁移,可以看到中间有两个包的中断,基本上没有太大影响。

技术分享

(5)虚拟主机2上,可以看到虚拟机oeltest01已经启动了。

技术分享

虽然oeltest01虚拟机已经在节点2上启动了,但是虚拟主机上还没有oeltest01虚拟机的配置文件。所以需要创建配置文件并定义虚拟机。

技术分享

(6)虚拟主机2上,通过迁移过来的虚拟机内存状态创建虚拟机配置文件,并通过xml配置文件定义虚拟机。

技术分享

在虚拟主机2上进入虚拟机没有问题。

技术分享

到此,kvm虚拟机动态迁移成功。

kvm_虚拟机迁移