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
root@10.0.0.11'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
root@10.0.0.12'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是虚拟机压缩文件,其中包含了磁盘文件和配置文件。
导出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
网友评论