在KVM中部署嵌套版本的VMware ESXi 6.7

KVM中部署嵌套版本的VMware ESXi 6.7

如果您在Ubuntu服务器上运行KVM,则您已经拥有出色的Type 1虚拟化引擎。幸运的是,如果您需要测试特定于VMware的产品,则始终可以运行嵌套在KVM虚拟机中的ESXi

在KVM中部署嵌套版本的VMware ESXi 6.7_第1张图片

在本文中,我将使用运行UbuntuKVM裸机服务器作为类型1虚拟机管理程序。

然后,我将提供有关如何创建运行VMware ESXiKVM虚拟机,然后通过在ESXi之上部署来宾OS进行烟雾测试的说明。

安装KVM

我假设您正在运行Ubuntu,并且已经按照我之前的文章中的描述安装了KVM并对其进行了烟雾测试

启用VT-x

您需要确保您的CPU具有VT-x(虚拟化加速)功能,然后您的BIOS已启用VT-x。许多计算机默认情况下在BIOS中将其禁用。

最简单的检查方法是kmv-ok

$ sudo apt-get install cpu-checker

$ kvm-ok

信息:/ dev / kvm存在

可以使用KVM加速

您还可以使用virt-host-validate进行检查。

$ virt-host-validate

QEMU:检查硬件虚拟化:通过

QEMU:检查设备/ dev / kvm:通过

 

$ egrep -c''vmx | svm'/ proc / cpuinfo(#cpus的值非零)

最后,您应该看到cpuinfo返回的数字大于0

$ egrep -c''vmx | svm'/ proc / cpuinfo

8

如果未启用此功能,请重新引导计算机,然后按特殊功能键F1 | F2 | F10 | DEL | ESC | alt-S),将您带入BIOS。每个BIOS是不同的,但寻找虚拟化技术“VT-X”

没有此支持,我们将无法创建嵌套的虚拟化解决方案。

在操作系统中配置VT-x

除了在BIOS级别启用VT-x外,您还需要在Ubuntu OS级别进行配置。在文件“ /etc/modprobe.d/qemu-system-x86.conf”中,设置以下行。

选项kvm_intel nested = 1 enable_apicv = n

选项kvm ignore_msrs = 1

重新启动主机,然后运行以下命令。

#希望返回Y

$ cat / sys / module / kvm / parameters / ignore_msrs

 

#希望返回N

$ cat / sys / module / kvm_intel / parameters / enable_apicv

 

#希望返回Y

$ cat / sys / module / kvm_intel / parameters / nested

下载vSphere Hypervisor

VMware vSphere的虚拟机管理程序ESXi是一个商业产品,但是当你创建一个帐户,你可以下载60天试用版。

转到此页面,单击“ VMware vSphere HypervisorESXi6.7”,然后下载“ VMWare vSphere HypervisorESXI ISO)映像(包括VMware Tools。大约330Mb

下载Ubuntu网络安装程序

因为我们在Ubuntu主机上,所以我们Ubuntu 14.04网络安装程序下载ISO 。该文件只有57Mb,因此非常适合引导测试。完成后,您应该有一个名为/ Downloads / mini.iso”的本地文件。

创建KVM虚拟机

现在,我们准备创建能够运行ESXiKVM虚拟机。运行下面的“ virt-install”命令,使其适应任何特定的cpu / disk / ram要求。

virt-install --virt-type = kvm --name = esxi1

--ram 4096 --vcpus = 4

--virt-type = kvm --hvm

--cdrom/下载/VMware-VMvisor-Installer-6.7.0-8169922.x86_64.iso

--network网络:默认,型号= e1000

--graphics vnc --video qxl

--disk pool =默认,size = 80sparse = truebus = ideformat = qcow2

--boot cdromhd --noautoconsole --force

--cpu仅主机模型

如果您使用的是旧版本的QEMU,例如Ubuntu Trusty上的2.0,则不要在上面的命令中指定“ –cpu host-model-only”。相反,在创建虚拟机之后,打开virt-manager,转到CPU选项卡,然后按按钮以复制主机CPU配置并强制关闭主机,然后重新打开电源(如下所示)。

在KVM中部署嵌套版本的VMware ESXi 6.7_第2张图片

这应该会启动机器,但是在开机后需要连接CDROM。根据域xml,您可能必须将其附加为设备“ hdb”“ hdc”,因此请查看hd“> cdrom设备的标签。

$ cdrom =`virsh domblklist inst1-详细信息| grep cdrom | awk {'print $ 3'}`

 

$ virsh attach-disk esxi1/ Downloads / VMware-VMvisor-Installer-6.7.0-8169922.x86_64.iso $ cdrom --type cdrom --mode只读

采用这种连接到CDROM,继续和复位机,因此可以用它来启动系统。

$ virsh reset esxi1

 

注意:我在上面的virt-install命令中使用的参数是有意的,并且我尝试引导您解决可能会遇到的几个问题。qxl的视频类型是有意的(cirrus进行了初始设置屏幕循环),磁盘是IDE目的是为了避免在安装过程中出错,并且网络使用的是通用e1000类型,安装程序可以检测到该类型。

ESXi受支持硬件列表很窄,因此如果您可以使用其他驱动程序类型来使安装正常运行,那就很好。只是知道我花了一些时间才能使上述组合生效。

安装ESXi

现在应该出现初始ESXi引导菜单。

在KVM中部署嵌套版本的VMware ESXi 6.7_第3张图片

然后就像一个正常的ESXi安装在许多地方已经网络上如所描述的1234 ]

在欢迎屏幕,按

接受许可

选择单个磁盘作为默认安装驱动器

在默认的美国键盘上按

输入root的初始密码

(如果收到将来的CPU支持警告)

验证磁盘上的安装

正在安装

重启前断开CDROM的消息

$ virsh attach-disk esxi1“” hdc --type cdrom --mode只读

重新启动

重启后,您应该看到以下屏幕,其中提供了ESXi服务器的192.168.122.x地址(192.168.122.0/24KVM使用的默认NAT网络)。

在KVM中部署嵌套版本的VMware ESXi 6.7_第4张图片

,然后输入您在安装过程中键入的root密码。您将要转到疑难解答选项,并在按两次返回主屏幕之前启用ESXi ShellSSH

在KVM中部署嵌套版本的VMware ESXi 6.7_第5张图片

ESXi嵌入式主机客户端

使用Web浏览器,转到ESXi启动屏幕中指定的URLhttps// / ui /)。

您应该获得登录页面,使用“ root”凭据登录,并且应该看到类似于下面的屏幕,即Embedded Host Client

在KVM中部署嵌套版本的VMware ESXi 6.7_第6张图片

HTML / Javascript应用程序是直接从ESXi主机提供的轻量级管理界面。请注意,它不能用于管理vCenter(例如/ vsphere-client)。

创建虚拟机

请记住,在这一点上,我们在虚拟化引擎中存在多个层次。ESXi正在嵌套在KVM中运行。因此,现在让我们在ESXi内创建一个来宾VM,以确保它可以正常工作。

首先按创建/注册虚拟机

在KVM中部署嵌套版本的VMware ESXi 6.7_第7张图片

然后选择创建新的虚拟机,然后按下一步。

在KVM中部署嵌套版本的VMware ESXi 6.7_第8张图片

为来宾操作系统键入名称“ esxchild1”,然后选择一个Linux主机,即Ubuntu Linux64位)。

在KVM中部署嵌套版本的VMware ESXi 6.7_第9张图片

我们仅为ESXi主机创建了一个80Gb磁盘,因此允许使用默认的datastore1并按Next

在KVM中部署嵌套版本的VMware ESXi 6.7_第10张图片

然后出现自定义设置,您可以保留默认的1 vcpu1024M内存。

在KVM中部署嵌套版本的VMware ESXi 6.7_第11张图片

但是您应该更改的一件事是CD / DVD驱动器。我们要在本地系统上的/ Downloads / mini.iso”中使用Ubuntu网络安装程序ISO。从下拉列表中选择数据存储ISO文件,而不是主机设备,然后将显示一个数据存储浏览器。

在KVM中部署嵌套版本的VMware ESXi 6.7_第12张图片

上传,然后从本地驱动器中选择mini.iso文件。然后单击中间列中的文件,然后按选择。这将带您回到主设置窗口,只需确保选中CDROM旁边的“ Connect”即可。

您现在位于完成屏幕上,查看您的选择,然后按完成。

在KVM中部署嵌套版本的VMware ESXi 6.7_第13张图片

现在,使用左侧的树导航至“ esxchild1”,并注意到电源仍然关闭。继续并按电源按钮。

在KVM中部署嵌套版本的VMware ESXi 6.7_第14张图片

您应该会看到预览屏幕的更改,Ubuntu徽标将可见。按控制台,然后按打开浏览器控制台以获取交互式屏幕。

在KVM中部署嵌套版本的VMware ESXi 6.7_第15张图片

我们将在此处停止此练习,但是可以安装此OS,并且可以将该主机与在KVM下创建的来宾OS完全相同。

稳定性问题

如果您发现ESXi主机经常遇到VMware紫色死亡之屏,请记住,VMware支持的硬件列表很窄,可能与主机硬件或驱动程序不兼容。

在KVM中部署嵌套版本的VMware ESXi 6.7_第16张图片

通过让KVM对虚拟机使用最新的OVMF UEFI固件,而不是使用随KVM分发的SeaBIOS非常老),我看到了很多改进。

通过在XML 部分中添加元素,可以轻松地为KVM主机设置固件。但这必须在安装ESXi之前完成,因此如果要切换,则需要重建。

这是我有关构建最新OVMF映像的文章。如果您要遵循旧版固件标准,这是我有关构建最新SeaBIOS映像的文章。这是我关于如何设置元素的文章,以便您的KVM虚拟机使用更新的固件

进一步的ESXi配置步骤

这里有几个可选的步骤,可以在管理这个ESXi主机帮助。如果接下来要安装vCenter,则需要考虑强制更改静态IP和主机名vCenter安装期间必须强制使用完整DNS和反向IP解析。

静态IP [ 123 ]

设置静态IP更容易,尤其是在手动管理DNS条目时。这也可以通过ssh会话Web GUI来完成,但是让我们直接从ESX主机控制台中完成。

选择配置管理网络> IPv4配置,然后设置IP,子网和默认网关,如下所示。

在KVM中部署嵌套版本的VMware ESXi 6.7_第17张图片

主机名和DNS [ 123 ]

默认名称为“ localhost”,因此如果要通过DNSvCenter寻址该服务器,则需要更改该名称。选择配置管理网络> DNS配置,然后设置短主机名和主DNS服务器。

在KVM中部署嵌套版本的VMware ESXi 6.7_第18张图片

在上面的屏幕截图中,我将主机名设置为“ esxi1”。要公开标准主机名,请选择选择配置管理网络>自定义DNS后缀,然后输入应该附加的域名。通过如下所示将值设置为“ home.lab”,此主机的标准名称将变为“ esx1.home.lab”

在KVM中部署嵌套版本的VMware ESXi 6.7_第19张图片

证书再生 [ 1234]

ESXi上交付的初始证书是CN = localhost.localdomain。要将其更改为反映真实名称的自签名证书,请使用从SSH会话到ESXi主机的“ generate-certificates”实用程序。

#检查当前证书

cd / etc / vmware / ssl

主机名

主机名-f

openssl x509 -in rui.crt -text -noout | grep主题

 

#备份证书

tar cvfz /etc-vmware-ssl.tgz *

 

#生成新证书

/ sbin / generate-certificates

openssl x509 -in rui.crt -text -noout | grep主题

 

#重新启动服务

/etc/init.d/hostd重新启动

/etc/init.d/vpxa重新启动

如果现在在ESXi Embedded Host Client上刷新浏览器并查看证书,它将显示CN的主机名。请注意,它仍然是自签名证书(因此默认情况下不受信任)。

SSH / SCP访问

如果将ESXi作为目标主机,则较早在控制台上启用ssh访问确实启用了ssh,但仍未启用从ESXi主机启动到另一主机的ssh / scp。您将看到的是“ FIPS模式已初始化和一个超时。

要使此工作有效,您需要禁用防火墙规则。运行以下命令以检查防火墙规则,然后将其禁用。

esxcli网络防火墙规则集列表--ruleset-id sshClient

esxcli网络防火墙规则集set --ruleset-id sshClient --enabled = true

届时,从ESXi主机启动的scp将起作用。

 

参考资料

https://docs.vmware.com/cn/VMware-vSphere/6.7/rn/vsphere-esxi-vcenter-server-67-release-notes.html#compatibility6.7硬件支持列表)

https://www.pluralsight.com/blog/it-ops/top-vmware-compatibility-issues(顶级兼容性问题)

https://www.thehumblelab.com/vsphere-67-homelabs-unsupported-cpu/(解决incompat问题)

https://tinkertry.com/patch-esxi-6-manually(升级保持vib

https://xenserver.org/blog/entry/vga-over-cirrus-in-xenserver-6-2.html(使用cirrus

https://www.redhat.com/archives/libvirt-users/2015-April/msg00067.html(尝试使用原始磁盘而不是qcow2

https://haveyoutriedreinstalling.com/2017/07/17/vsphere-6-x-certificates-just-because-因为-you-can-doesnt-mean-you-should //vsphere 6中的证书列表)

https://rwmj.wordpress.com/2014/05/19/notes-on-getting-vmware-esxi-to-run-under-kvm/

笔记

如果ESXi抱怨不支持虚拟化1 ]

ssh进入esxi主机/ etc / vmware / config

vhv.enable =“ TRUE”

vmx.allowNested =“ TRUE”

检查IOIOMMUVT-d虚拟化(与CPU VT-x不同)

dmesg | grep -iE“ dmar | iommu | aspm”

cat /var/log/kern.log | grep IOMMU

==添加到18.04中的 / etc / default / grub对于VT-d)错误

GRUB_CMDLINE_LINUX_DEFAULT =” intel_iommu =开启

$ grub-install –版本

$ sudo update-grub(相当于grub2-mkconfig

dnsmasq禁止转发本地地址1 ]

/etc/dnsmasq.conf

本地= / home.lab /

地址= / esxi1.home.lab / 192.168.122.133

esxi软件组件列表 [ 1 ]

esxcli软件震动列表

直接ESXi主机模式

-转到外壳

-进入状态

-返回GUI

维护模式 [ 1 ]

vim-cmd主机vc / maintenance_mode_enter

vim-cmd hostsvc / maintenance_mode_exit

从内侧的ESXi安装CDROM [ 12 ]

vmkload_mod iso9660

esxcfg-mpath -b | grep“ CD-ROM”

cd / vmfs /

ls(请参见mpx*

vsish -e/ vmkModules / ISO9660 /安装$(的esxcfg-mpath -b | grep “CD-ROM” | awk '{$打印1}'

vsish -e设置/ vmkModules / iso9660 / umount $esxcfg-mpath -b | grep“ CD-ROM” | awk'{print $ 1}'

ESXi软件存储库和安装

Add-EsxSoftwareDepotGet-EsxSoftwarePackageAdd-EsxSoftwarePackage

 

 

你可能感兴趣的:(在KVM中部署嵌套版本的VMware ESXi 6.7)