这里写目录标题
- ESXi 软件架构图
- VMkernel
- 文件系统
- 内存文件系统
- VMFS 分布式文件系统
- VMkernel 文件系统特点
- 用户和组
- 标准虚拟交换机
- Standard Port Group Network
- Vmkernel Network
- User World
- Swap 文件
- DCUI
- User World 上的其他进程
- ESXi 管理模型
- ESXi 管理模型设计的核心思想
- System State Information (SSI)机制
- Common Information Model
- VI API
- ESXi 分区说明
ESXi 软件架构图
VMkernel
VMkernel 是 VMware 开发的操作系统,拥有常见操作系统的功能,例如进程创建和控制,信号处理,文件系统等功能。它是专门为密集运行多台虚拟机而设计,并提供以下核心功能:
• 资源调度
• I/O 堆栈(网络与存储 IO 堆栈)
• 硬件设备驱动程序
下面将简要介绍 VMkernel 的组成。
文件系统
VMkernel 内部的文件系统包含两部分,分别是内存文件系统和 VMFS 分布式文件系统。
内存文件系统
VMkernel 使用简单的内存文件系统来分别保存 ESXi 配置文件、日志文件和临时的修补程序。由于是内存文件系统,当 ESXi 重启后该文件系统不保存原有数据,相当于内存文件系统所在目录重启就会被清空。以下是 VMkernel 中内存文件系统对应的路径
配置文件路径:/etc/vmware
日志文件路径:/var/log/
修补程序路径:/tmp/
VMFS 分布式文件系统
VMFS 文件系统主要用来储存虚拟机。在 ESXi 中使用 VMFS 文件系统存放虚拟机的存储空间称为 VMFS Datastore,它可以由主机本地硬盘或者网络共享存储创建,是可支持多主机共享访问的文件系统。
VMkernel 文件系统特点
• 远程登录的命令行可以同时管理内存文件系统和 VMFS 文件系统
• ESXi 可以支持网络存储启动,如采用网络存储启动,服务器本机不需要要配置硬盘
• 由于日志文件存放在内存文件系统,不支持永久保存,如需要保存日志文件必需配置远程的 syslog server。
用户和组
ESXi 允许在系统内部定义用户和组,当使用 Virtual Infrastructure Client\Web Client、SSH 或者 the VIM API 访问 ESXi 时可通过不同用户和组来区分身份。
• ESXi 组一般包含多个用户,支持以组为单位去控制权限,ESXi 有一些内置的组和用户,可作为辨别 VMkernel 中运行的多个进程的手段。
• ESXi 用户和组的配置文件存放路径:/etc/passwd, /etc/shadow, /etc/
标准虚拟交换机
vSphere Standard Switch(VSS)的工作模式类似物理交换机。虚拟机连接到虚拟交换机,实现虚拟机之间的通讯。 vSphere Standard Switch 可以通过物理网卡连接到物理交换机并通过上联链路链接到物理网络中。
Standard Port Group Network
虚拟机并不是直接连接到虚拟交换机的,而是通过 port groups 连接到虚拟交换机。一般来说一个 vSphere Standard Switch 拥有一个或者多个 port groups。用户可以为 port group 指定一些参数,例如:为每个不同 port group 设置带宽控制和 vLAN 标签等等。那么连接到这个 port group 的所有虚拟机的网络都会继承这个 port group 的网络属性。
Vmkernel Network
顾名思义,是与 vmkernel 相关的网络,用于连接虚拟交换机和主机的网络。主要用途包括管理网络 IP,IP 存储(NAS 和 iSCSI client ip)、vMotion、FT 等相关的网络设置。
User World
User world 功能类似 POSIX ,但它不是为运行通用应用程序而设计的机制,仅仅是为在 hypervisor 环境下运行的进程提供的足够框架。User world 具备以下特性:
• 一部分信号被限制
• 是 POSIX 的子集
• 严格限制使用 /proc
Swap 文件
• 单个 swap 文件可以被整个 user world 进程使用
• ESXi 有本地磁盘的情况下,系统在 vfat 分区中自动创建 swap 文件
• ESXi 没有本地磁盘的情况下,可以指定 swap 文件挂载到一个远程的 VMFS Datastore 之上。
DCUI
The Direct Console User Interface (DCUI) 是在 ESXi 本地的用户界面,界面操作有点类似 BIOS,主要用途是提供配置管理以及故障处理功能。包括以下功能:
• 设置管理员密码
• 设置网络信息
• 简单网络连通性测试
• 查看日志
• 重启代理程序
• 还原系统状态
ESXi 一般在系统安装后通过 DCUI 配置网络,后面就通过 vCenter 或者远程工具访问 ESXi。
User World 上的其他进程
ESXi 移除了 Service Console ,VMware 的一些管理功能从 Service Console 移植到 user world 上运行。
• hostd
hostd 进程为 VMkernel 提供编程接口,VI client 和 VI API 可以直接使用 hostd
• vpxa
vpxa 进程是用于连接 vCenter 的 agent,该进程使用系统内置用户 vpxuser 的身份运行。vpxa 实际上是作为 hostd 与 vCenter 之间的代理角色
• HA agent
vCenter HA 代理
• syslog daemon
当配置了远程 syslog server 后,syslog daemon 负责发送日志到 syslog server
• iSCSI 发现
用于初次发现和处理 iSCSI Target ,后续所有操作都由 VMkernel 来处理。
• NTP synchronization
NTP 时间同步代理
• SNMP
SNMP 监控代理
ESXi 管理模型
ESXi 管理模型设计的核心思想
• 可集中式管理,包括运维操作和策略
• 计算基础架构是无状态的,可切换到不同设备上运行
• 系统使用定义优良的标准化 API 进行通讯,取代难以定位和审计的非结构化的交互式会话
ESXi 的管理模型由 CIM、VI API 和 SSI 等几个机制组成,下面将简要介绍各个机制的原理
System State Information (SSI)机制
• 使用少数几个配置文件保存 ESXi 系统状态信息
• 配置文件同时保存在内存,并复制到持久化存储,即使服务器突然掉电,重启后会自动载入最后一份存储的配置文件进行启动
• 可通过下载配置文件进行备份系统配置
• 可将配置文件复制到其他 ESXi 服务器上使用
以上机制可保证 ESXi 系统与配置解耦,系统配置更容易备份与还原。任意安装了 ESXi 系统的主机都可以成为无状态的载体,通过导入配置,快速地就绪并提供服务。
Common Information Model
The Common Information Model (CIM) 是一个开放的标准,用于展示和管理计算资源。这个是无代理的软件框架。主要包含两种组件:
• CIM providers
CIM providers 主要用作底层硬件和设备驱动的管理入口,服务器厂商和硬件设备厂商可以依照 CIM 标准编写 providers,用于监控和管理硬件。VMware 自身也会提供 providers,用于监控服务器,存储以及其他特定的虚拟化资源。
• CIM broker
CIM broker 收集所有 providers 的信息后,通过标准的 API (包括 WS-MAN 协议)展现给外界。
VI API
VMware Virtual Infrastructure API 为开发集成 VMware Infrastructure 程序提供了強大的接口。它允许的你的程序调用 vCenter 上的 vCenter Web Service 接口功能管理和控制 ESXi。
• VI Client 可用通过 VI API 访问 vCenter 以及直接管理 ESXi 主机
• vCenter 与 ESXi 之间的通讯是通过 vCenter 私有协议
VI API 与 CIM 标准共同提供一种远程中心管理 ESXi 的方案
方案优势:
• 无代理,避免底层硬件改变、重新安装或者更新而引起的代理程序调整,所有监控和管理相关的程序都可以放在外部。
• 管理多个主机更加简单(比起管理多个代理)
• 无代理,使得 ESXi 变成一个无状态的实体,虚拟机可以无需调整地在不同服务器上运行。
ESXi 分区说明
ESXi 系统所在磁盘根据功能需要被分成多个区域,下面将简要介绍各个区域的用途
- 引导分区
容量为 4 MB,用于 ESXi 系统引导 - 活动系统分区
容量为 250MB,用于储存操作系统及相关文件,其中 Core Hyprevisor(VMkernel )占用 32MB,其余是用于存放服务器制造商定制程序(CIM providers)。 - 备用系统分区
容量与活动系统分区一样(250MB),该分区初始状态为空白,当 ESXi 系统执行升级,升级操作将写入备用系统分区,保留原来版本在活动系统分区,升级成功后,备用系统分区转为活跃分区进行启动。当新升级的分区无法正常启动,则可使用原来版本分区进行启动,可有效防止系统升级失败导致无法启动的问题。 - 存储分区
容量为 286MB,主要用于存放各种操作系统对应的 VMtools 软件。 - 日志分区
容量为 4GB,当系统需要导出 VM-Support 日志时,该目录作为导出日志存放路径。 - 第一 Core Dump 分区
容量为 110MB,用于存放 ESXi 系统 Crash 日志,主要用于故障分析 - 第二 Core Dump 分区
容量为 2.5GB,作为第一 Core Dump 分区的扩展,当第一 Core Dump 分区日志已满,自动写入第二 Core Dump 分区。