千家信息网

在kvm中部署嵌套esxi6.7

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,最近测试esxi6.7的vmotion功能,为了熟悉kvm决定在kvm上实现, 系统是ubuntu16.04, 启动一个kvm,发现esxi在迁移时会崩溃,无法进行迁移,查找相关次料,解决方案如下:K
千家信息网最后更新 2025年01月24日在kvm中部署嵌套esxi6.7

最近测试esxi6.7的vmotion功能,为了熟悉kvm决定在kvm上实现, 系统是ubuntu16.04, 启动一个kvm,发现esxi在迁移时会崩溃,无法进行迁移,查找相关次料,解决方案如下:

KVM的安装和使用

  1. 首先安装kvm
    # apt install qemu-system-x86 qemu-kvm qemu libvirt-bin virt-manager virtinst bridge-utils cpu-checker virt-viewer
  2. 校验kvm是否安装,并检测cpu的VT-x虚拟化有没有开,出现以下信息说明正常
    # kvm-okINFO: /dev/kvm existsKVM acceleration can be used
  3. 运行virt-host-validate查看你的环境对kvm的技持,如果全部为pass,说明可以
    # virt-host-validate QEMU: Checking for hardware virtualization                                 : PASSQEMU: Checking if device /dev/kvm exists                                   : PASS
  4. 如果你想使普通用户能够使用kvm,可以添加当前用户到libvirt组中
cat /etc/group | grep libvirt | awk -F':' {'print $1'} | xargs -n1 sudo adduser $USER  # add user to kvm group alsosudo adduser $USER kvm# relogin, then show group membershipexec su -l $USERid | grep libvirt
  1. 缺省的,kvm会建立一个虚拟的交换机名字为virbr0, 使用192.168.122.0/24
    # ip addr show virbr017: virbr0:  mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:d2:52:b5 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0   valid_lft forever preferred_lft forever
  2. virbr0实际上是一个nat模式,我们可以通过iptables看到实际的情况
    # iptable -t nat -vnLChain POSTROUTING (policy ACCEPT 146 packets, 11359 bytes)pkts bytes target     prot opt in     out     source               destination         0     0 RETURN     all  --  *      *       192.168.122.0/24     224.0.0.0/24        0     0 RETURN     all  --  *      *       192.168.122.0/24     255.255.255.255     0     0 MASQUERADE  tcp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-655350     0 MASQUERADE  udp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-655350     0 MASQUERADE  all  --  *      *       192.168.122.0/24    !192.168.122.0/24    
  3. 定义存储池,缺省的存储池是/var/lib/libvirt/images, 但你可以另外mount你想要的os磁盘
# virsh pool-list --all Name                 State      Autostart ------------------------------------------- default              active     yes $ virsh pool-define-as kvmpool --type dir --target /data/kvm/poolPool kvmpool defined$ virsh pool-list --all$ virsh pool-start kvmpool$ virsh pool-autostart kvmpool$ virsh pool-list --all Name                 State      Autostart ------------------------------------------- default              active     yes        kvmpool              active     yes
  1. 布署一个vm在你的kvm上,建立一个1vcpu/1G RAM使用缺省的virbr0 NAT网络和缺省的pool storage
virt-install --virt-type=kvm --name=ukvm1404 --ram 1024 --vcpus=1 --virt-type=kvm --hvm --cdrom ~/Downloads/mini.iso --network network=default --graphics vnc --disk pool=default,size=20,bus=virtio,format=qcow2 --noautoconsole# open console to VMvirt-viewer ukvm1404
  1. 如果你想删除这个vm,可以使用如下命令:
    virsh destroy ukvm1404virsh undefine ukvm1404
  2. 如你想要一个全部图形化的软件管理kvm,可以使用virt-manager,当你没安装图形介面时你可以使用x协议的ssh客户端,如xshell, 或xming+ssh客户端软件

布署esxi在KVM中

  1. 配置VT-x,你同样需要在ubuntu中配置VT
# vi /etc/modprobe.d/qemu-system-x86.conf options kvm_intel nested=1 enable_apicv=noptions kvm ignore_msrs=1
  1. 重启系统,执行下列命令,必须返回如下值
# want Y to be returned$ cat /sys/module/kvm/parameters/ignore_msrs# want N to be returned$ cat /sys/module/kvm_intel/parameters/enable_apicv# want Y to be returned$ cat /sys/module/kvm_intel/parameters/nested
  1. 建立kvm虚拟机
    # virt-install --virt-type=kvm --name=esxi4 \--ram 4096 --vcpus=4 \--virt-type=kvm --hvm \--cdrom /data/iso/VMware-VMvisor-Installer-6.7.0.update03-14320388.x86_64.iso \--network network:default,model=e1000 \--graphics vnc --video qxl \--disk pool=default,size=80,sparse=true,bus=ide,format=qcow2 \--boot cdrom,hd --noautoconsole --force \--cpu host-model-only当然你也可以使用virt-manager来建立虚拟机。

  2. 重复建立两个虚拟机,建立两个esxi实现动态vmotion迁移,测试和建立步骤省略,经测试vmotion可以正常工作,不会出现崩溃现象。
0