基于NFS共享存储实现KVM虚拟主机动态迁移

操作环境:

操作系统                IP地址                    主机名

CentOS7.5       192.168.200.111          KVM01

CentOS7.5       192.168.200.112          KVM02

CentOS7.5       192.168.200.113          NFS

实验初始配置:所有主机关闭防火墙与selinux

 iptables -F

 systemctl stop firewalld

 setenforce 0

基于NFS共享存储实现KVM虚拟主机动态迁移

在KVM中可以将运行中的虚拟机从一个KVM主机迁移到另一个KVM主机中运行,而不需要任何停机时间。如果两个KVM主机都能够访问相同的存储池,那么实时迁移工作就很好了。要使存储池在KVM主机上都可访问,您需要使用NFS或GFS2文件系统(集群文件系统)。在本例中,我使用NFS文件系统来存储VM映像文件。在迁移过程中,VM的“内存”内容将被复制到目标KVM主机,而在某个时间点上,将发生迁移VM。注意,当您在KVM主机上共享文件系统时,将不会在网络上传输VM的磁盘映像,因为两个KVM主机都可以访问相同的存储池。

迁移介绍:迁移是指将在KVM上运行的虚拟机系统转移到其他物理机的KVM上运行

静态迁移:在虚拟机关机的情况迁移

动态迁移:在虚拟机上服务正常运行的情况下迁移,要基于共享存储

动态迁移特点:

不会对最终用户造成明显影响

仅有非常短暂的停机时间

动态迁移拓扑图

1、 设置3台服务器主机名、配置 /etc/hosts 保证网络连接

2、 两台主机的KVM连接NFS共享存储

3、 在源主机的KVM中新建虚拟机并安装系统

4、 连接KVM、并进行迁移

动态迁移演示

源主机 KVM01 192.168.200.111

目的主机 KVM02 192.168.200.112

NFS共享存储 192.168.200.113 共享 /kvm-share

1、安装KVM软件

查看是否支持虚拟化:

 cat /proc/cpuinfo |grep vmx --color=auto

 yum -y install qemu-kvm qemu-kvm-tools virt-install qemu-img bridge-utils libvirt virt-manager

检测KVM模块安装是否成功

 lsmod | grep kvm

kvm_intel 174841 0

kvm 578518 1 kvm_intel

irqbypass 13503 1 kvm

开启服务,安装完成后还需要开启libvirtd服务

 systemctl start libvirtd

 systemctl enable libvirtd

2、设置KVM网络

 cp /etc/sysconfig/network-scripts/ifcfg-ens32 /etc/sysconfig/network-scripts/ifcfg-br0

 vim /etc/sysconfig/network-scripts/ifcfg-br0

TYPE=Bridge

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

NAME=br0

DEVICE=br0

ONBOOT=yes

IPADDR=192.168.200.111

PREFIX=24

GATEWAY=192.168.200.1

DNS1=202.106.0.20

 vim /etc/sysconfig/network-scripts/ifcfg-ens32

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

NAME=ens32

UUID=b194e583-21c3-4109-a160-3d2a9876a30b

DEVICE=ens32

ONBOOT=yes

BRIDGE=br0

重启network服务

 systemctl restart network

 ifconfig

出现br0和对应的IP地址即为成功。

3、配置hosts文件、主机名

KVM01:

 tail -3 /etc/hosts

192.168.200.111 KVM01

192.168.200.112 KVM02

192.168.200.113 NFS

 scp /etc/hosts 192.168.200.112:/etc

 scp /etc/hosts 192.168.200.113:/etc

 hostname KVM01

 bash

KVM02:

 hostname KVM02

 bash

NFS:

 hostname NFS

 bash

4、配置NFS共享

NFS:配置共享目录 /kvm-share

 cat /etc/exports

/kvm-share 192.168.200.0/24(rw,sync,no_root_squash)

 mkdir /kvm-share

 systemctl start nfs

两台KVM主机上的操作:

KVM01:

 showmount -e 192.168.200.113

/kvm-share 192.168.200.0/24

KVM02:

 showmount -e 192.168.200.113

/kvm-share 192.168.200.0/24

5、安装虚拟机

两台KVM连接共享存储:双击localhost(qemu) 点击 存储 点击 加号

 

KVM01在共享存储上创建虚拟机

 

 

 

 

 

 

 

 

 

过程比较慢,需要耐心等待。

6、KVM迁移:打开virt-manager 选择文件 选择Add Connection

源主机连接目标主机

 

 

 如果出现上述错误,执行以下步骤:

KVM01:

 yum -y install openssh-askpass

KVM02:

 yum -y install openssh-askpass

 

 

 

 如果出现上述错误,执行以下步骤:

 virsh shutdown centos7.0

域 centos7.0 被关闭

 virsh edit centos7.0

<driver name='qemu' type='raw' cache='none'/>

 virsh start centos7.0

域 centos7.0 已开始

 virsh list --all

Id 名称 状态

----------------------------------------------------

2 centos7.0 running

 

原文地址:https://www.cnblogs.com/maoyanqing/p/11754566.html