细说kvm虚拟化动静迁移

架构环境:基于Centos6.7
动态实验环境:一台NFS共享服务器、两台同基础环境kvm服务器
静态实验环境:共两台kvm服务器,相同环境,一台备用待迁移即可

特点:
动态迁移:无需停止环境,且高效,默认定义迁移时间为30ms,由NFS自动
静态迁移:过程繁琐,需拷贝其文件及.xml配置,需要将迁移对象关机

1)首先架构两台相同环境KVM服务器

安装前要查看 CPU 是否支持虚拟化
Intel CPU: cat /proc/cpuinfo |grep --color vmx(目前主流)
AMD CPU: cat /proc/cpuinfo |grep --color smv
若以上操作有输出,就说明 CPU 支持虚拟化

细说kvm虚拟化动静迁移
注:我这里已经装完系统,但没有勾选虚拟化,所以需要从新安装图形化及一些虚拟化工具包支持(如没安装系统,建议先勾选虚拟化支持并在引擎处支持)

yum -y groupinstall “Desktop” //安装图形化

yum -y install qemu-kvm qemu-kvm-tools python-virtinst qemu-img bridge-utils libvirt virt-manager libguestfs-tools
详解:
qemu-kvm
//KVM模块
qemu-kvm-tools
//KVM调试工具,可不安装
python-virtinst
//python组件,记录配置文件以.xml结尾文件
qemu-img
//qemu组件,创建磁盘、启动虚拟机等
bridge-utils
//网络支持工具
libvirt
//命令行虚拟机管理工具
virt-manager
//图形化管理虚拟机工具
libguestfs-tools
//不登录虚拟机即可查看其状态的命令软件
reboot
//重启系统

2)虚拟网卡配置

1)用户模式:即NAT方式,这种方式是默认网络,数据包由NAT方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络
2)桥接模式:即Bridge方式,这种模式允许虚拟机像一*立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持,一般的有线网卡都支持,需手动配置
3)Bridge(桥接)模式手动配置
注:需要将真机eth0的网卡绑定到br0虚拟网卡上,让IP桥接在虚拟网卡上使用

vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
//网卡名称
TYPE=Bridge
//网卡类型为桥接
ONBOOT=yes
//开机自启该网卡
NM_CONTROLLED=no
//关闭NetworkManager
BOOTPROTO=dhcp
//网卡设置为动态获取方式

vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
//网卡名称
TYPE=Ethernet
//网卡类型为以太网
ONBOOT=yes
//开机自启该网卡
NM_CONTROLLED=no
//关闭NetworkManager
BOOTPROTO=none
//不指定网卡配置信息(由br0网卡提供)
BRIDGE=br0
//桥接虚拟网卡名称

细说kvm虚拟化动静迁移
出现以上信息,说明网卡桥接成功了

mkdir -pv /kvm/{store,iso}
//创建存储池,新建磁盘及镜像存储目录
细说kvm虚拟化动静迁移
架构kvm服务器(主)

virt-manager
//跳转图形化创建虚拟机界面命令

细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
再定义磁盘存储池
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
新建虚拟机

细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
注:测试时需要将虚拟机关机,默认静态迁移是不可以开机迁移的!!

注:第二台kvm(从)服务器环境步骤相同

ls /kvm/
//检查环境
ls /etc/libvirt/qemu
//检查.xml配置文件环境

静态迁移(主>从)

第一台KVM虚拟机操作
scp /etc/libvirt/qemu/CentOS_6.7.xml [email protected]:/etc/libvirt/qemu/
scp /kvm/store/CentOS_6.7.img [email protected]:/kvm/store/
scp /kvm/iso/CentOS-6.7-x86_64-bin-DVD1.iso [email protected]:/kvm/iso/

第二台kvm虚拟机操作
ls /etc/libvirt/qemu/
ls /kvm/store/
ls /kvm/iso/
//检查迁移文件是否完成

virsh define /etc/libvirt/qemu/CentOS_6.7.xml
//将迁移过来的虚拟机重建还原即运行
virsh list --all
//即可查看到迁移的虚拟机状态
注:这里如果第二台kvm迁移完成后发现报错,则需要检查虚拟化依赖库是否开启
报错:
error: Failed to reconnect to the hypervisor
error: no valid connection
error: Failed to connect socket to ‘/var/run/libvirt/libvirt-sock’: No such file or directory
解决:
ps -le | grep libvirt* //检查进程
libvirtd -d //启动该进程
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移

virt-manager
//开机测试

注:这里默认kvm(从)服务器迁移过来,没有创建存储及镜像目录,需要手动创建,而且尽可能为相同环境,创建环境的步骤与创建第一个图形化相同,可参照
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
注:第二台还需要重新创建一次相同环境存储池及镜像池,可参照kvm(主)创建步骤,尽量创建相同环境,即可发现已经有显示迁移过来的文件内容

正常开机使用即可
细说kvm虚拟化动静迁移

动态迁移(NFS共享)

注:基础配置两台KVM虚拟机需相同环境

vim /etc/hosts
//定义主机名方便之间互相通信(两台kvm服务器定义)

细说kvm虚拟化动静迁移
架构NFS共享服务器

注:将存储池及镜像池存放在共享服务器中,迁移时只需要使用软件服务提供的迁移选项即可实现自动迁移,(迁移过程约30毫秒不到)

yum -y install rpcbind nfs-utils
//安装共享软件包
mkdir /data
//准备共享目录(权限755)
vim /etc/exports
//编辑共享配置文件
/data 192.168.1.*(rw,sync,no_root_squash)
细说kvm虚拟化动静迁移
/etc/init.d/rpcbind start
/etc/init.d/nfs start

kvm虚拟机操作(主kvm)

mkdir /nfs
//创建共享挂载目录(这个下面放iso及store)
virt-manager
//登录图形化界面

细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
注:这里建议使用新磁盘挂载到指定共享目录,这里为测试!!真实环境不允许

创建新的虚拟机

virt-manager
//登录图形化界面
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
使用NFS共享目录中的镜像
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
kvm虚拟机操作(从kvm)

注:kvm(从)服务器需要相同环境,这里则不再重复,可参考kvm(主)服务器
mkdir /nfs
//创建共享同步目录(这个下面放iso及store)
virt-manager
//登录图形化界面
细说kvm虚拟化动静迁移
继续使用共享目录提供的文件
细说kvm虚拟化动静迁移
即可查看到kvm(主)服务器使用的文件相同(发现已同步)
virt-manager
//重新登录图形化界面
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
注:kvm(从)服务器连接成功后会看到kvm(主)服务器运行的主机,迁移即可
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
细说kvm虚拟化动静迁移
完成迁移