ESXi内核是什么?ESXi是Linux内核吗?

ESXi内核是什么?ESXi是Linux内核吗?

VMware的ESXi是一个备受关注的产品。许多人常常混淆ESXi与Linux内核之间的关系。

最常问到的问题是:

ESXi的内核其实就是Linux吗?

先说结论:曾经是,现在不是。

  1. 古老版本的ESX内核的确是用Linux内核(注意这个ESX没有i)。
  2. 转向新的ESXi后,Linux内核的依赖关系已经不存在。
  3. ESXi有自己的内核,称为vmkernel。

在这篇博文中,我们将深入探讨ESXi的架构及其与Linux内核的关系。一起来了解下ESXi的内核的历史。


ESXi的架构和内核的历史

ESXi是一种裸机(bare metal)虚拟化解决方案,它直接运行在硬件之上,而无需依赖操作系统,这一点与其他VMware产品有所不同。ESXi包含自己的内核,称为vmkernel。值得注意的是,在早期的VMware ESX版本中,Linux内核首先被启动,然后用于加载各种专用的虚拟化组件,包括vmkernel组件。可以说,当时的Linux内核是主要的虚拟机,由服务控制台调用。在正常运行时,vmkernel直接运行在物理计算机上,而基于Linux的服务控制台作为第一个虚拟机运行。

然而,自从VMware在4.1版本后停止开发ESX并转向ESXi后,ESXi中完全不再包含Linux内核。这个变革就意味着ESXi完全依赖于vmkernel来进行虚拟化管理,而不再需要Linux内核的支持。

截取来自VMworld 2017的ESXi架构图

vmkernel的角色

vmkernel是一个微内核,它提供了三个主要接口:硬件接口、客户系统接口和服务控制台(Console OS)接口。

硬件接口

vmkernel直接处理CPU和内存,使用扫描前执行(SBE)技术来处理特殊或特权的CPU指令,并利用系统资源分配表(SRAT)来跟踪已分配的内存。

模块访问

对于其他硬件(如网络或存储设备)的访问,则通过模块进行处理。这些模块中至少有一些是从Linux内核模块派生而来的。为了访问这些模块,vmkernel包含一个名为vmklinux的附加模块,它实现了Linux模块接口。根据README文件的说明,“这个模块包含vmkernel使用的Linux仿真层”。

ESXi内核VMkernel的示意图,可以看到像hostd,vpxd等关键模块

总结:ESXi不是用Linux内核,ESXi的内核是vmkernel

虽然早期的VMware ESX依赖于Linux内核作为其服务控制台,但自从转向ESXi后,这种依赖关系已经不存在。ESXi的vmkernel独立于Linux内核运行,直接管理硬件资源,并通过专用的模块处理硬件访问。

目前的ESXi来说,尽管某些模块借鉴了Linux内核模块的设计,但这并不意味着ESXi本身包含或依赖于Linux内核。所以说,ESXi是一种独立的、专用的虚拟化解决方案,与Linux内核有着清晰的分界。

有VM问题需要协助?

免费试用VMware技术助理(已接Deepseek)!即时解答VM难题

→ 🤖VM技术助理

解析和诊断各类vCenter错误,ESXi日志,虚拟机vmware.log

→ 📕VMware日志分析器

图书推介 - 京东自营

24小时热门

还有更多VMware问题?

免费试下我们的VMware技术助理(已接Deepseek)!即时解答VM难题 → 🤖VM技术助理

试试 📕VMware日志分析器 免费诊断各类vCenter错误,ESXi日志,虚拟机vmware.log等等

########

扫码加入VM资源共享交流微信群(请备注加群

需要协助?或者只是想技术交流一下,直接联系我们!

推荐更多

DRS affinity rules亲和性规则检查间隔与违规处理方法
运维必备

DRS affinity rules亲和性规则检查间隔与违规处理方法

DRS 亲和性规则检查间隔与违规处理方法。详细解析 VMware DRS 亲和性规则每 3 分钟检查一次的特性,以及如何处理 ‘should’ 类型规则的违规情况,帮助管理员优化 DRS 配置。 本文针对该问题提供了深度剖析与实测解决方案。

ESXi 7.x/8.x hostd 间歇性无响应事件分析
运维必备

ESXi 7.x/8.x hostd 间歇性无响应事件分析

ESXi 7.x/8.x hostd 间歇性无响应事件分析。详细解析 ESXi 7.x/8.x 中 ‘hostd detected to be non-responsive’ 间歇性事件的原因、现象和解决方法,帮助管理员正确处理这种时序性问题。 本文针对该问题提供了深度剖析与实测解决方案。

vCenter Server 服务堆内存配置显示差异原因分析

vCenter Server 服务堆内存配置显示差异原因分析。解析 vCenter Server 中使用 cloudvm-ram-size 命令配置服务堆内存时,显示值与实际设置值不符的原因,帮助管理员正确理解 CompressClassSize 的作用。 本文针对该问题提供了深度剖析与实测解决方案。

ESXi 7.x/8.x/9.x 远程 Syslog 配置避坑指南
运维必备

ESXi 7.x/8.x/9.x 远程 Syslog 配置避坑指南

ESXi 7.x/8.x/9.x 远程 Syslog 配置避坑指南。这篇文章详细介绍了 ESXi 7.x/8.x/9.x 版本中配置远程 Syslog 的完整步骤,包括命令行配置、主机配置文件、高级配置选项,以及防火墙设置的注意事项,帮助管理员避免常见的配置陷阱。 本文针对该问题提供了深度剖析与实测解决方案。

//omg10.com/4/9119499