Centos7系统下KVM虚拟化Migration(07)--企业迁移案例

1.NFS共享存储 在线热迁移技术案例

原理:源主机和目标主机有相同的目录结构,源主机上的VM,可以不关机的情况下热迁移。速度比冷迁移要快。

001.png
主机名 IP规划 内存 所需软件 网络 虚拟化 备注
KVM01 10.0.0.11 2G yum install -y libvirt qemu-kvm virt-install bridge-utils qemu-img virt-manager libguestfs nfs-utils NAT KVM NFS客户端
KVM02 10.0.0.12 2G yum install -y libvirt qemu-kvm virt-install bridge-utils qemu-img virt-manager libguestfs nfs-utils NAT KVM NFS客户端
NFS 10.0.0.13 1G yum install -y nfs-utils rpcbind NAT NFS服务器端

Step 1 修改3台主机的hostname

#设置hostname
hostnamectl set-hostname kvm01
hostnamectl set-hostname kvm02
hostnamectl set-hostname nfs
#三台主机分别安装 nfs
yum install -y nfs-utils
#添加本地host解析
vim /etc/hosts
10.0.0.11    kvm01
10.0.0.12    kvm02
10.0.0.13    nfs
#分发到其他机器
scp -rp /etc/hosts 10.0.0.12:/etc/
scp -rp /etc/hosts 10.0.0.13:/etc/

Step 2 查看虚拟机状态

[root@kvm03 v2v]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     Centos7x64_1810        shut off
 -     Centosx64_ESXi          shut off

配置nfs服务端--10.0.0.13服务器

添加配置文件(async异步同步,性能更高)
[root@nfs01 ~]# vim /etc/exports
/data  10.0.0.0/24(rw,async,no_root_squash,no_all_squash)
参数 参数说明
ro 共享目录只读
rw 共享目录可读可写
all_squash 所有访问用户都映射为匿名用户或用户组
no_all_squash(默认) 访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组
root_squash(默认) 将来访的root用户映射为匿名用户或用户组
no_root_squash 来访的root用户保持root帐号权限
secure(默认) 限制客户端只能从小于1024的tcp/ip端口连接服务器
insecure 允许客户端从大于1024的tcp/ip端口连接服务器
sync 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
async 将数据先保存在内存缓冲区中,必要时才写入磁盘
wdelay(默认) 检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率
no_wdelay 若有写操作则立即执行,应与sync配合使用
subtree_check 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
no_subtree_check(默认) 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
重启注意先后顺序
[root@nfs01 ~]# systemctl restart rpcbind
[root@nfs01 ~]# systemctl restart nfs
[root@nfs01 ~]# systemctl enable rpcbind.service
[root@nfs01 ~]# systemctl enable nfs-server.service
[root@nfs01 ~]# showmount -e localhost

创建/v2v_data目录
[root@nfs01 ~]# mkdir /v2v_data

设置防火墙打开111和2049端口(添加服务)

第一种方式 普通版
[root@nfs ~]# firewall-cmd --permanent --add-service=nfs
success
[root@nfs ~]# firewall-cmd --permanent --add-service=mountd
success
[root@nfs ~]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@nfs ~]# firewall-cmd --reload
success
第二种方式 专业版
firewall-cmd --permanent --add-service=nfs --zone=public
firewall-cmd --permanent --add-service=mountd --zone=public
firewall-cmd --permanent --add-service=rpc-bind --zone=public
firewall-cmd --permanent --add-port=4001/udp --zone=public
firewall-cmd --permanent --add-port=4001/tcp --zone=public
firewall-cmd --permanent --add-port=2049/tcp --zone=public
firewall-cmd --permanent --add-port=2049/udp --zone=public
firewall-cmd --reload
去kvm01和02上检查是否连接nfs
[root@kvm01 /v2v_data]#  showmount -e 10.0.0.13
Export list for 10.0.0.13:
/v2v_data  10.0.0.0/24

[root@kvm02 /v2v_data]#  showmount -e 10.0.0.13
Export list for 10.0.0.13:
/v2v_data  10.0.0.0/24

Setp3挂载并测试查看状态

kvm01上:
[root@kvm01 ~]# mount -t nfs 10.0.0.13:/v2v_data/ /vm_data/
[root@kvm01 ~]# df -h
10.0.0.13:/vm_data  48G  2.2G   46G   5% /data


kvm02上:
[root@kvm02 /vm_data]# mount -t nfs 10.0.0.13:/v2v_data/ /vm_data/
[root@kvm02 /vm_data]# df -h
10.0.0.13:/vm_data  48G  2.2G   46G   5% /data


查看nfs01的/v2v_data目录是否同步之前的文件:
[root@nfs01 ~]# ll -h /v2v_data/
total 446M
-rw-r--r-- 1 107 107 6.3M Sep  3 22:14 Centos7x64_1810.qcow2
-rw-r--r-- 1 107 107 439M Sep  3 22:24 Centos7x64_ESXi.qcow2

Setp4 从kvm02宿主机上迁移虚拟机到kvm01

虚拟机都在kvm02上:
[root@kvm02 /vm_data]# virsh list 
 Id    Name                                               State
----------------------------------------------------------------
1     Centos7x64_1810                          running
2     Centos7x64_ESXi                          running


当前的kvm01上没有虚拟机:
[root@kvm01 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------

执行迁移的命令 (将kvm02上的Centos7x64_ESXi 迁移到10.0.0.11宿主机上)
[root@kvm02 /vm_data]# virsh migrate --live --verbose Centos7x64_ESXi  qemu+ssh://10.0.0.11/system --unsafe
[email protected]'s password: 
Migration: [100 %]

在kvm01上查看Centos7x64_ESXi 虚拟机已迁移过来了
[root@kvm01 ~]# virsh list
 Id    Name                           State
----------------------------------------------------
1     Centos7x64_ESXi        running

Step5 从kvm01宿主机上迁移虚拟机到kvm02

迁移到10.0.0.12的kvm02宿主机上:
[root@kvm01 ~]# virsh migrate --live --verbose Centos7x64_ESXiqemu+ssh://10.0.0.12/system --unsafe
[email protected]'s password: 
Migration: [100 %]
[root@kvm01 ~]# virsh list
 Id    Name                           State
----------------------------------------------------


在kvm02宿主机上查看已经迁移回来了:
[root@kvm02 /vm_data]# virsh list 
 Id    Name                           State
----------------------------------------------------
1     Centos7x64_1810      running
2     Centos7x64_ESXi      running

2 XenServer 虚拟化技术冷迁移案例(VMWare WorkStation/ESXi也可)

Step 1 XenCenter导出VM到ova格式的文件。

OVA是虚拟机压缩文件,其中包含了磁盘文件和配置文件。

x001.png

导出ova格式,我们可以解压缩该文件
ova格式.png

ova格式的文件上传的KVM服务器上
x003.png

Step 2 解压缩ova文件或得.vhd文件格式的磁盘文件

#通过qemu-img convert磁盘管理工具转换成KVM需要的格式qcow2
[root@kvm03 v2v]# qemu-img convert -O qcow2 56f6e164-ed46-409a-a3c8-a4bf813eacd7.vhd CentOS7v2v.qcow2
[root@kvm03 v2v]# ls
CentOS7v2v.qcow2  Centosx64_ESXi-disk1  Centosx64_ESXi-sda  Centosx64_ESXi.xml

Step3 通过WebVirtMgr创建新的VM

添加存储


003.png

001.png

选择Custom Instance 自定义方式创建虚拟机实例
002.png

Step4 kvm下虚拟机创建成功验证vm状态

004.png

【点击控制台已经可以进入系统】
005.png

你可能感兴趣的:(Centos7系统下KVM虚拟化Migration(07)--企业迁移案例)