ESXi 7 安装时缩小系统分区并释放 datastore 空间

分类有用的小知识服务器标签
ESXi 7 安装时缩小系统分区并释放 datastore 空间 题图

摘要:记录安装 ESXi 7 时,通过 systemMediaSize=min 将系统存储调整为最小布局、为 VMFS6 datastore 释放更多空间的方法。

大家好,我是云核筑梦家,来自成都。

在一块 400GB SSD 上安装 ESXi 7.0U3d 后,ESXi 实际识别容量为 372.61GB,但默认创建的 datastore1 只有约 244.5GB。查看磁盘分区后可以发现,ESXi 给 VMFSL/ESX-OSData 系统分区分配了约 119.9GB。

如果希望减少系统分区占用,关键不是安装完成后再调整,也不是使用 Linux 自定义分区,而是必须在 ESXi 安装器第一次启动时传入:

systemMediaSize=min

无论使用 U 盘、物理光盘、iDRAC/iLO 虚拟介质、PXE 还是自动装机平台,原理都一样:必须让这个参数在安装器开始分区之前生效。

一、默认分区为什么占用这么大

本次测试环境如下:

项目

信息

系统版本

VMware ESXi 7.0U3d

物理硬盘

400GB SSD

ESXi 识别容量

372.61GB

默认 VMFSL

119.9GB

默认 VMFS6 datastore

约 244.6GB

默认分区大致如下:

分区

容量

用途

EFI 系统分区

100MB

UEFI 启动

BootBank 1

4GB

ESXi 启动镜像

BootBank 2

4GB

备用启动镜像

VMFSL

119.9GB

ESX-OSData 系统数据

VMFS

244.61GB

虚拟机数据存储

这不是硬盘识别不完整,也不是存在一块可以直接划给 datastore 的未分配空间。VMFSL/ESX-OSData 用于保存系统状态、日志、组件、缓存和转储等内容。

从 ESXi 7.0 开始,系统存储布局发生了变化。对于容量足够的本地 SSD 或 HDD,安装器默认最多会为系统存储使用约 138GB 的十进制容量。

二、systemMediaSize 参数说明

从 ESXi 7.0 Update 1c 开始,官方提供了安装器启动参数 systemMediaSize,用于限制系统存储分区容量。

参数

系统存储容量

适用场景

systemMediaSize=min

约 33GB

单盘、小容量或嵌入式服务器

systemMediaSize=small

约 69GB

内存至少 512GB 的服务器

不添加参数

默认约 138GB

官方默认布局

对于本次 400GB SSD,设置 systemMediaSize=min 后,VMFS6 datastore 正常情况下可以增加到约 340GB。实际容量会因十进制与二进制单位换算、对齐方式及具体版本存在少量差异。

官方说明:Boot option to configure the size of ESXi system partitions

三、最重要的操作原则

systemMediaSize=min 必须作为 ESXi 安装器启动参数,在安装器第一次启动、尚未创建磁盘分区时传入。

不同安装方式只是参数注入位置不同:

安装方式

参数设置位置

U盘、光盘、虚拟光驱手动安装

启动首屏按 Shift+O 后手工追加

PXE 安装

PXE 启动首屏手工追加,或写入 PXE 的 boot.cfg

自动装机平台

写入平台实际生成的 ESXi 启动参数或 PXE 模板

自定义 ISO

写入 ISO 的 boot.cfg,本质上仍是传给安装器

所以,“必须在装系统第一步设置”是对的,但不一定每次都要人工输入。批量部署时可以预先写进启动配置,最终只要安装器实际收到该参数即可。

四、手动安装操作方法

本方法适用于 U 盘、物理光盘、iDRAC/iLO 虚拟光驱等直接启动 ESXi 安装介质的场景。

1. 从 ESXi 安装介质启动

服务器从 ESXi ISO、U盘或虚拟光驱启动后,会进入 ESXi 安装器加载界面。

2. 在启动首屏按 Shift+O

在启动倒计时结束前按:

Shift+O

进入启动参数编辑界面。

3. 在原参数最后追加 systemMediaSize=min

不要删除原有参数,在最后先输入一个空格,再追加:

systemMediaSize=min

例如原参数为:

runweasel cdromBoot

修改后应为:

runweasel cdromBoot systemMediaSize=min

确认大小写和空格正确后按 Enter,继续安装。

五、PXE或自动安装操作方法

PXE 自动安装通常会加载远程 boot.cfg 和应答文件,例如:

Loading http://服务器地址/pxe/file/boot.cfg

启动参数中可能包含:

ks=http://服务器地址/pxe/file/ks.cfg

在 PXE 安装器启动首屏按 Shift+O,保留原有的 ks=ksdevice= 和其他硬件兼容参数,在命令末尾追加:

systemMediaSize=min

例如:

ks=http://服务器地址/pxe/file/ks.cfg ksdevice=7c:d3:0a:55:d8:2c systemMediaSize=min

输入完成后按 Enter 继续安装。

如果需要长期批量使用,可以把参数直接加入 PXE 实际加载的 boot.cfg 或自动装机平台的 ESXi 启动模板中,避免每次手工输入。

六、PXE提示找不到MAC地址怎么办

如果启动界面提示:

Network boot: MAC address not found.
Add "BOOTIF=01-aa-bb-cc-dd-ee-ff" manually to the boot options.

需要根据实际 PXE 启动网卡的 MAC 地址补充 BOOTIF

例如网卡 MAC 为:

7c:d3:0a:55:d8:2c

对应参数为:

BOOTIF=01-7c-d3-0a-55-d8-2c

最终命令末尾可以写成:

ksdevice=7c:d3:0a:55:d8:2c BOOTIF=01-7c-d3-0a-55-d8-2c systemMediaSize=min

BOOTIF 只用于帮助 PXE 安装器识别启动网卡,与磁盘容量设置不是同一个功能。如果界面没有相关警告,一般不需要额外添加。

七、使用自定义ISO自动带入参数

如果希望直接使用 ISO 安装,又不想每次按 Shift+O,可以修改 ISO 中 BIOS 和 UEFI 对应的两个配置文件:

/boot.cfg
/efi/boot/boot.cfg

找到:

kernelopt=runweasel cdromBoot

修改为:

kernelopt=runweasel cdromBoot systemMediaSize=min

修改后需要重新生成可启动 ISO。需要注意:如果服务器实际使用 PXE 启动,PXE 可能重新加载网络上的 boot.cfg,此时 ISO 内的修改不会参与本次安装,仍应修改实际的 PXE 启动参数。

八、安装完成后验证

安装完成并登录 ESXi Web 管理界面后,依次进入:

存储 → 设备 → 选择系统硬盘 → 分区详情

重点检查 VMFSLVMFS 的容量。

对于本次 400GB SSD:

项目

默认安装

使用 min 后预期

VMFSL/ESX-OSData

约 119.9GB

约 20 多 GB

VMFS6 datastore

约 244.6GB

约 340GB

systemMediaSize=min 控制的是整个 ESXi 系统存储布局,不是单独把 VMFSL 设置为 33GB。因此,最终看到的单个 VMFSL 分区小于 33GB 属于正常现象。

九、常见错误

1. 安装完成后再尝试缩小 VMFSL

已经创建的 VMFSL 不能通过 ESXi Web 页面安全缩小。Broadcom 不支持安装完成后缩小 ESXi 系统分区,强行修改可能导致系统异常或无法启动。

2. 在本地硬盘启动界面添加参数

如果参数行中只有类似下面的内容:

autoPartition=FALSE bootUUID=xxxxxxxx

说明当前是在启动已经安装好的 ESXi,而不是启动安装器。在这里添加 systemMediaSize=min 不会重新划分硬盘。

3. 使用 Linux 自定义分区

ESXi 不使用 EXT4、XFS 或 Linux LVM 作为系统分区和 VMFS6 datastore。即使把名称填写成 VMFSLVMFS,也不会因此变成 VMware 分区。

4. 只修改 ISO,但实际从 PXE 启动

PXE 可能从网络重新加载 boot.cfg,导致 ISO 内的修改没有被使用。判断时应以启动界面实际显示的配置来源和参数为准。

5. 使用 autoPartitionOSDataSize=6144

网上可以看到通过下面参数把 OSDATA 压缩到约 6GB的做法:

autoPartitionOSDataSize=6144

当前官方推荐的可控方案是 systemMediaSize=min,系统存储约 33GB。生产环境不建议为了多释放十几GB空间而把系统区压缩得过小,以免影响日志、补丁、组件和转储文件。

十、风险提醒

重新安装 ESXi 通常会清除目标硬盘上的系统、虚拟机和 datastore 数据。操作前务必确认:

  • 已备份所有重要虚拟机和配置。

  • 选择的是正确的目标硬盘。

  • 安装方式会清除旧分区,而不是保留旧的 VMFS 布局。

  • systemMediaSize=min 已经出现在本次安装器的实际启动参数中。

如果服务器对稳定性要求较高,更推荐使用独立的小容量高耐久 SSD 安装 ESXi,再将其他硬盘全部用于 VMFS6 数据存储。

总结

无论通过哪种方式安装 ESXi 7,只要希望减少 ESX-OSData 系统存储占用,都必须在安装器第一次启动、创建分区之前传入:

systemMediaSize=min

手动安装可以在启动首屏按 Shift+O 输入;PXE 或自动安装可以写入实际使用的 boot.cfg 或启动模板;自定义 ISO 也可以预先修改 boot.cfg。三种方式本质完全相同,都是把参数传给 ESXi 安装器。

参数生效后,400GB SSD 的 VMFS6 datastore 通常可以从约 244GB增加到约 340GB,同时保留官方支持的最小系统存储布局。

参考资料

本文为原创实践记录,首发于 小航博客,转载请注明出处与链接。

评论

发表评论

评论经审核后显示。请勿提交广告或与主题无关的内容。