本次实验的目的是将ESXi环境下的vmware虚拟机迁移至KVM平台。

实验环境:

vmware workstation 15 Pro 

通过在vmware workstation上搭建ESXi和KVM虚拟机。ESXi虚拟机下再新建二层虚拟机jumpserver。

KVM虚拟机IP地址:192.168.18.52

ESXi宿主机IP地址(也是一个虚拟机):192.168.18.41

ESXi宿主机下挂jumpserver虚拟机IP地址:192.168.18.48

VMWARE虚拟机文件介绍:

esxi 怎么跑docker esxi kvm_esxi 怎么跑docker

基本转化图:

esxi 怎么跑docker esxi kvm_esxi 怎么跑docker_02

jumpserver虚拟机文件结构:

esxi 怎么跑docker esxi kvm_esxi 怎么跑docker_03

迁移前的环境准备(KVM虚拟机上安装):

esxi 怎么跑docker esxi kvm_esxi 怎么跑docker_04

其中qemu-kvm在系统装好后自带,libvirt、virt-manager和virt-v2v通过yum进行安装。

esxi 怎么跑docker esxi kvm_esxi无法打开虚拟机电源_05

下面是具体实施过程:

1,通过vSphere client客户端连接到ESXi主机192.168.18.41;

2,在ESXi主机下新建CentOS 7.8版本操作系统,并一键部署jumpserver堡垒机:

[root@jumpserver ~]# cat /etc/redhat-release 
CentOS Linux release 7.8.2003 (Core)

esxi 怎么跑docker esxi kvm_esxi无法打开虚拟机电源_06

3,对jumpserver虚拟机执行关机操作;

4,对关机的jumpserver虚拟机导出为单个OVA文件:

esxi 怎么跑docker esxi kvm_esxi无法打开虚拟机电源_07

esxi 怎么跑docker esxi kvm_esxi无法打开虚拟机电源_08

5,将jumpserver.ova文件传输到KVM虚拟机的/root/jumpserver目录:

esxi 怎么跑docker esxi kvm_esxi 怎么跑docker_09

6,通过virt-v2v命令将jumpserver的ova格式文件转化为KVM专用的qcow2文件格式,指定目录为/data/vmfs/jumpserver。

esxi 怎么跑docker esxi kvm_esxi 怎么跑docker_10

7,转化成功后,在指定目录得到jumpserver-sda和jumpserver.xml两个文件,对jumpserver.xml文件进行备份,生成jumpserver.xml.bak,然后对jumpserver.xml文件进行编辑。

esxi 怎么跑docker esxi kvm_esxi无法打开虚拟机电源_11

修改内容如下:

esxi 怎么跑docker esxi kvm_esxi 怎么跑docker_12

8,编辑完成后,通过virsh define指定xml文件进行定义,然后可通过virsh list --all看到新生成的kvm可以识别的虚拟机:

esxi 怎么跑docker esxi kvm_esxi 怎么跑docker_13

9,通过virsh start jumpserver对虚拟机进行启动:

esxi 怎么跑docker esxi kvm_esxi 怎么跑docker_14

10,启动成功后,发现jumpserver虚拟机的IP地址192.168.18.48无法ping通,到KVM虚拟机的图形界面通过virt-manager调出管理界面查看jumpserver虚拟机启动情况:

esxi 怎么跑docker esxi kvm_esxi无法打开虚拟机电源_15

发现虚拟机状态为running,并且能够进入到图形界面,通过执行docker ps -a能够发现jumpserver的依赖容器为启动,但网卡信息发生变化,原有的ens32网卡并没有启动,取而代之的是一个名为eth0的网卡,且也没有获取到IP地址。

到/etc/sysconfig/network-scripts目录下执行:

# cp ifcfg-ens32 ifcfg-eth0

生成对应的网卡配置文件,并将文件中的“ens32”替换为“eth0”,然后重启虚拟机。

重启后发现,能够和KVM宿主机进行通信:

esxi 怎么跑docker esxi kvm_esxi 怎么跑docker_16

通过字符界面登录jumpserver虚拟机,发现docker容器状态正常,也能够通过制定的br0网桥和外网进行通信:

esxi 怎么跑docker esxi kvm_esxi无法打开虚拟机电源_17

最后一步,测试jumpserver堡垒机的web界面是否可以如之前在ESXi虚拟机上运行时一样正常打开:

esxi 怎么跑docker esxi kvm_esxi 怎么跑docker_18

没有问题,此次实验成功。