如何在 KVM 虚拟机下在 Openstack 上运行 ESXi

Posted

技术标签:

【中文标题】如何在 KVM 虚拟机下在 Openstack 上运行 ESXi【英文标题】:How to run ESXi on Openstack under a KVM VM 【发布时间】:2021-12-23 17:43:23 【问题描述】:

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

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

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

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

【问题讨论】:

我发现github.com/virt-lightning/esxi-cloud-images 假设这是有效的,但不清楚 7.x 是否有效。问题是,在 VMware 网站上下载 6.x iso 不再起作用 我可以通过使用 6.5 的 esxi-cloud-image 安装程序让它工作。使用 e1000 时似乎无法通过 iso 在 OpenStack 上安装 - 在我的本地 libvirt(arch)上安装似乎可以工作。然后导入 qcow 也适用于 openstack。 【参考方案1】:

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

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

相反,我使用上面的 repo 构建了一个通过 qcow 发送的预安装 esxi 映像 - 它构建在我的本地计算机上,因此构建在我的本地 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 用户 清理自述文件

【讨论】:

以上是关于如何在 KVM 虚拟机下在 Openstack 上运行 ESXi的主要内容,如果未能解决你的问题,请参考以下文章

如何在 VMware ESXi 虚拟机上运行 KVM

如何在 VMware ESXi 虚拟机上运行 KVM

云原生之Docker实战在KVM虚拟机下安装Docker

OpenStack学习笔记----安装虚拟化工具

如何在openstack中创建镜像 for Juno

openstack的虚拟化技术有个kvm,啥是kvm?啥qemu,libvirt