首页 > 解决方案 > 如何在 KVM 虚拟机下在 Openstack 上运行 ESXi

问题描述

我们使用 KVM 作为管理程序运行 Openstack,现在需要在 VM 中运行 ESXi 6 或 7(嵌套虚拟化)。这主要是为了将磁盘转换为正确的vmdk磁盘,而不是真正在 ESXi 下运行任何虚拟机(这就是我们不使用准系统并将 esxi 作为 hv 运行的原因)

我们在 Proxmox 下运行同样的设置,没有更大的问题,主要是使用vmxnetNIX 的驱动程序。这正是我们使用 Openstack 失败的地方。好像没有这个驱动,用e1000不行。引导安装iso最终会导致“找不到 nic”。

我们在内核 5.10/5.14 上使用 Openstack Xena 和 Debian-Buster 作为计算(运行 libvirt)。

任何提示如何启动和运行?

标签: openstackkvmlibvirtesxiopenstack-nova

解决方案


使用https://github.com/virt-lightning/esxi-cloud-images我设法让它适用于 6.5/6.7 但不适用于 7.0。

似乎无法通过 ISO 在 OpenStack 实例本身(直接)上安装 ESXi,因为无论您使用e1000(6.x) 还是e1000e(7.x) 进行安装,安装程序都无法找到安装过程中的 NIC。同样对于 Openstack 下的 6.x 安装程序,它找不到任何磁盘(有或没有 SATA 标志)。

相反,我使用上面的 repo 构建了一个预安装的 esxi 映像qcow,它是在我的本地机器上构建的,因此是在我的本地 libvirt 上构建的。还不知道为什么这会产生巨大的差异,也许是基于 nova 的抽象或其他东西阻碍了 Openstack(尚未验证)。

在本地构建基于 6.5/6.7 的 qcow2 映像,通过 Glance 导入(确保使用 e1000 用于 6.x,使用 e1000e 用于 7.x),然后创建一个新实例。

这将使您在 6.5/6.7 上启动并运行正确的 DHCP 和网络配置。对于 7.x,检测到接口,但不知何故 DHCP 不起作用。我尝试了 q35 和其他不同的选项,但在知道之前无法让 7.x 工作。

我在https://github.com/EugenMayer/esxi-cloud-images创建了一个分支

  • 正确公开凭据,可以登录
  • 使用作者预定义的公钥删除 ansible zuul usere
  • 清理自述文件

推荐阅读