Linux KVM迁移与存储

1、环境描述:

如图1所示的网络环境,存储挂接到了NFS服务器上,通过交换机共享给了两台服务器KVM1KVM2,操作系统均为64位的RHEL6.5,均运行着KVM虚拟机软件。要求服务器KVM1KVM2上的KVM软件都连接到NFS共享存储上,并使用动态迁移的方法将KVM1上运行的KVM虚拟机VM11迁移到KVM2上运行。结果如下:

  1. 两台服务器上的KVM能够连接NFS共享存储;

  2. 能够基于共享存储新建KVM虚拟机并安装操作系统;

    3) 动态迁移正常完成并且业务不中断。

wKiom1cwc7eCzXzJAACMF93Iwlw947.png

                                        图1 网络环境

具体的实验环境如图2所示,使用VMWare Workstation搭建实验环境,新建虚拟机时要勾选VT-x/EPTAMD-V/RVI

wKiom1cwc-TxAgonAACKPZ2gPPI823.png

                                        图2 实验环境

2、环境搭建要求:

NFS Server为共享存储服务器,操作系统为64位的RHEL6.5主机名为nfsserver网卡连接到VMnet1上,IP地址为192.168.1.110/24共享出了根目录下的kvm-share目录,客户端能读写该目录。

KVM1为源服务器,操作系统为64位的RHEL6.5,主机名为kvm1,网卡连接到VMnet1上,RHEL6.5系统中使用基于eth0的桥接模式,桥接设备为br0IP地址为192.168.1.100/24

KVM2为目的服务器,操作系统为64位的RHEL6.5,主机名为kvm2,网卡连接到VMnet1上,RHEL6.5系统中使用基于eth0桥接模式,桥接设备为br0IP地址为192.168.1.200/24


1)三台服务器要关闭iptablesSElinux

2)三台服务器的主机名与IP地址对应关系均写入各自的hosts文件。



实验思路:

   首先准备实验工具:RHEL6.5 64位操作系统,能够开启cpu虚拟化,并且了安装vmware虚拟机平台的电脑

二·搭建linux  NFSserver服务器

三·搭建RHEL6.5 64位操作系统为宿主机的kvm平台,kvm1.kvm2

四·在kvm环境中安装虚拟机和在线迁移验证



实验步骤以及配置:

一·搭建linux  NFSserver服务器,关闭iptables(或者不关闭iptables开放相应端口),并给予客户端相应权限。Ip地址为192.168.100.110/24.host文件中写入nfsserverkvm1kvm2的信息

[root@NFSserver ~]# vi/etc/sysconfig/network-scripts/ifcfg-eth0   #NFSserver设置IP地址

 

DEVICE=eth0

HWADDR=00:0C:29:34:24:2F

TYPE=Ethernet

UUID=47ab4485-55e1-446d-aa8f-03d412b527bc

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=192.168.1.110

NETMASK=255.255.255.0

[root@NFSserver ~]# hostname     //设备名称

NFSserver

[root@NFSserver ~]# vi /etc/hosts  //修改host文件

192.168.1.100 kvm1

192.168.1.200 kvm2

192.168.1.110 NFSserver

[root@NFSserver ~]# rpm -qa | grep nfs  //查看nfs软件安装情况

nfs-utils-lib-1.1.5-6.el6.x86_64

nfs-utils-1.2.3-39.el6.x86_64

nfs4-acl-tools-0.3.3-6.el6.x86_64

[root@NFSserver ~]# vi /etc/sysconfig/nfs   //修改nfs主配置文件

[root@NFSserver ~]# cat /etc/sysconfig/nfs| grep -v "#"

LOCKD_TCPPORT=32803   #tcp接口

LOCKD_UDPPORT=32769   #udp接口

MOUNTD_PORT=892       #挂载接口

STATD_PORT=662          #状态接口

[root@NFSserver ~]# mkdir /kvm-share   #准备共享目录,创建kvm-share 目录

[root@NFSserver ~]# chmod 770 /kvm-share   #赋予共享目录权限

[root@NFSserver ~]# vi /etc/exports     #修改共享设置(选项重要)

/kvm-share 192.168.1.100(rw,sync,no_root_squash)

/kvm-share 192.168.1.200(rw,sync,no_root_squash)

[root@NFSserver ~]# service nfs sertart   //重启nfs服务

[root@NFSserver ~]# showmount -e192.168.1.110   //查看共享信息

Export list for 192.168.1.110:

/kvm-share 192.168.1.200,192.168.1.100

[root@NFSserver ~]# cp /dev/sr0 /kvm-share/    #将镜像拷贝到共享目录下

 

[root@NFSserver ~]# service iptables stop     临时关闭iptables 服务

iptables: Setting chains to policy ACCEPT:filter          [  OK  ]

iptables: Flushing firewall rules:                         [  OK  ]

iptables: Unloading modules:                               [  OK  ]

[root@NFSserver ~]# setenforce 0   关闭SElinux服务

二·搭建RHEL6.5 64位操作系统为宿主机的kvm平台,关闭iptables(或者不关闭iptables开放相应端口),为kvm1kvm2建立桥接模式,使用br0桥接设备ip地址为192.168.100.100/24192.168.100.200/24Host文件中写入nfsserverkvm1kvm2的信息

安装kvm虚拟化所需的软件。

Kvm1安装

配置桥接网卡

[root@kvm1 ~]# vi/etc/sysconfig/network-scripts/ifcfg-eth0   

DEVICE=eth0

HWADDR=00:0C:29:9F:7E:30

TYPE=Ethernet

UUID=bd18cc77-2d82-4570-aa24-94e5e50c41d7

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=none

BRIDGE="br0"

 

[root@kvm1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0  //桥接网卡

DEVICE=br0

TYPE=Bridge

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

IPADDR=192.168.1.100

NETMASK=255.255.255.0

 

[root@kvm1 ~]# vi /etc/sysconfig/network    主机名称

NETWORKING=yes

HOSTNAME=kvm1

[root@kvm1 ~]# vi /etc/hosts    配置host文件

192.168.1.100 kvm1

192.168.1.200 kvm2

192.168.1.110 NFSserver

配置yum安装

[root@kvm1 ~]# cd /etc/yum.repos.d/     #进入配置目录

[root@kvm1 yum.repos.d]# ls

packagekit-media.repo  rhel-source.repo 

[root@kvm1 yum.repos.d]# virhel-source.repo   #配置配置文件

[rhel-source]

name=Red Hat Enterprise Linux $releasever -$basearch - Source

baseurl=file:///mnt/

#baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/SRPMS/

enabled=1

gpgcheck=0

[root@kvm1 yum.repos.d]# mount /dev/sr0/mnt/  将光盘挂载到yum指定目录

[root@kvm1 yum.repos.d]# yum list    验证yum 配置

[root@kvm1 yum.repos.d]# yum groupinstall"Desktop" –y     安装桌面

 

安装虚拟化所需的各种软件

[root@kvm1 yum.repos.d]# yum install -y \    

qemu-kvm.x86_64 \

qemu-kvm-tools.x86_64 \

python-virtinst.noarch \

qemu-img.x86_64 \

bridge-utils.x86_64 \

libvirt \

virt-manager

[root@kvm1 yum.repos.d]# cat /proc/cpuinfo|grep -o vmx     查看cpu是否支持虚拟化

vmx

[root@kvm1 yum.repos.d]# lsmod | grep kvm       

kvm_intel              54285  0

kvm                   333172  1 kvm_intel

 

[root@kvm1 ~]# service iptables stop    临时关闭iptables 服务

iptables:将链设置为政策 ACCEPTnat mangle filter         [确定]

iptables:清除防火墙规则:                                [确定]

iptables:正在卸载模块:                                  [确定]

[root@kvm1 ~]# setenforce 0     关闭SElinux服务

 

kvm2的安装配置和kvm1相似,不再一一表述

 

三·在kvm环境中有两种方式安装虚拟机,命令行和图形界面化

 [root@kvm1 yum.repos.d]# showmount -e192.168.1.110    kvm1查看nfs服务器

Export list for 192.168.1.110:

/kvm-share 192.168.1.200,192.168.1.100  

命令行

[root@kvm1 ~]# mkdir /var/lib/libvirt/p_w_picpaths/kvm          //创建空文件夹

[root@kvm1 ~]# mount -t nfs192.168.1.110:/kvm-share /var/lib/libvirt/p_w_picpaths/kvm     //挂载nfs存储卷

192.168.1.110:/kvm-share on/var/lib/libvirt/p_w_picpaths/kvm type nfs(rw,vers=4,addr=192.168.1.110,clientaddr=192.168.1.100)

 

[root@kvm1 ~]# qemu-img create -f raw/var/lib/libvirt/p_w_picpaths/kvm/vm11.img 6G   //创建新卷

Formatting'/var/lib/libvirt/p_w_picpaths/kvm/vm11.img', fmt=raw size=6442450944

 

[root@kvm1 ~]# virt-install -n vm11 -r 1024--os-type=linux --vcpus=1 -c /var/lib/libvirt/p_w_picpaths/kvm/sr0 --diskpath=/var/lib/libvirt/p_w_picpaths/kvm/vm11.img,format=raw,bus=ide --boot cdrom -bbr0 --vnc --vnclisten=0.0.0.0

//创建虚拟机

 wKiom1cwdSHQ7Jo_AABBVIwCQh8673.png


下一步图形化安装虚拟机系统

wKioL1cwdinyOJm9AAKPO-IcnSA269.png

图形界面化:(由于该操作已将命令行安装还原,看不到命令行的结果)

[root@kvm1 yum.repos.d]# virt-manager  打开虚拟系统管理器

  1. 添加NFS存储池

wKiom1cwdZ7wlF7IAAKSRlAsWe4369.png

wKiom1cwdZ-hC5VzAADoxiV8KWA193.png

2.添加新加卷


wKiom1cwdhrj7BfaAALeqn8pzEU159.png

wKiom1cwdhuRLZReAAD1LmsdNd4275.png


3.新建虚拟机


wKioL1cwd3Cz-FzMAAFv-n6TFr8262.png

4.选择NFS存储的ios文件

wKiom1cwds7x0GsUAAGla8s1RUI802.png

5.设置虚拟机内存

wKioL1cwd9TjiMAOAACfTPQ9J68382.png


6.选择虚拟机安装位置

wKiom1cwd1TwoxksAADvLGiH-cI353.png



开始安装vm11虚拟机

wKiom1cwd2-ywWCkAAKPO-IcnSA907.png

虚拟机安装完成后,我们对kvm平台的虚拟机进行在线迁移测试

  1. 为新建虚拟机配置临时ip地址

wKiom1cwd43hQ4-wAADnRYdLo9U169.png

2.使用本机连续“ping  vm11虚拟机,使其处于连续工作状态


wKiom1cweCWyCc8-AABkMDD_RW4932.png

3.  Kvm 2连接 kvm1

wKiom1cweGbATO6lAAD758GSgO0198.png


点击连接后第一个提示框填写“yes,第二个填写连接主机的密码

wKioL1cweUSB3S8rAADP_s4Fxs0334.png

4. 实施在线迁移vm11,有kvm1kvm2


wKiom1cweGiwZ9VSAADGJkEIDx4155.png

wKiom1cwePehizqQAAD992VDeqY447.png



验证结果,在线迁移过程中可以看到,在连续ping的过程中只有一条是请求超时,中断时间及其短暂。

wKiom1cweR2TiaCvAACrXQXhndQ091.png