vSphere嵌套虚拟化-虚拟机黑屏现象

7/30/2022 vmwarevSphere

# vSphere嵌套虚拟化-虚拟机黑屏现象

# 描述

在 vSphere Client 中部署一台RHEL 7.5环境,然后在RHEL 7.5环境中安装 libvirt组件,之后再RHEL 7.5中导入准备好的qcow2镜像。



# 思路

曾经我在真实设备上部署过虚拟化也遇到过一次导入的虚拟机一打开就是黑屏的情况,当时费了半天劲才查出来是BIOS中没有开启硬件辅助虚拟化功能;结合这次遇到情况,首先因为RHEL 7.5是可以正常运行的,排除硬件辅助虚拟化没有开启的情况,判断可能是虚拟机虚拟的BIOS没有开启此功能,所以可以尝试打开这一个功能。



# 解决

  1. 打开RHEL 7.5虚拟机的 *.vmx 所在位置
  1. 修改RHEL 7.5虚拟机的配置文件 *.vmx

在配置文件最后一行添加如下内容:

# 中间不要保留空行
vhv.enable = "TRUE"
1
2
  1. 重启虚拟机

  2. 检查硬件是否支持虚拟机

# 如果回显有vmx或者svm,说明硬件支持虚拟化;vmx是Intel,svm是AMD
egrep --color '(vmx|svm)' /proc/cpuinfo
egrep '^flags.*(vmx|svm)' /proc/cpuinfo
dmesg | grep kvm
lsmod | grep kvm
1
2
3
4
5
  1. 内核加载 kvm模块并再次检查
modprobe kvm
modprobe kvm_intel
lsmod | grep kvm
1
2
3
  1. 删掉原先嵌套进入RHEL7.5环境的虚拟机
# 这里定义该嵌套虚拟机的名称为 win
# 强制关机
virsh destroy win
# 释放资源
virsh undefine win

# 当然也可以通过vnc桌面处理也行: "virt-manager图形化中, 删除掉原先导入的虚拟机, 但保留原文件, 再次导入虚拟机即可"
1
2
3
4
5
6
7
  1. 重新导入虚拟机
# 这里我使用的嵌套虚拟机win是提前配置的qcow2镜像,所以我可以通过如下命令直接导入
virt-install \
          --name=win \
          --ram=4096 --vcpus=2 \
          --disk path=/var/lib/libvirt/images/app-win2012_v1.0.qcow2 \
          --network network=default \
          --input tablet,bus=usb --import \
          --autostart \
          --noreboot \
          --quiet

# 启动虚拟机win
virsh start win
1
2
3
4
5
6
7
8
9
10
11
12
13

注意
在多层嵌套虚拟机化时,请在最底层的虚拟机配置文件中加入 vhv.enable = "TRUE" 参数