ESXi 8.0 运维实战手把手教你用 esxcli 搞定日常网络与存储管理当你第一次登录到一台全新的ESXi主机时面对黑底白字的命令行界面是否感到无从下手作为虚拟化基础设施的核心组件ESXi的高效管理直接关系到整个虚拟化环境的稳定性。本文将带你深入掌握esxcli这个强大的命令行工具从网络配置到存储管理从安全设置到系统维护通过真实场景下的命令组合与应用逻辑让你快速成长为ESXi管理高手。1. 初识esxcli你的ESXi管理瑞士军刀esxcli是VMware为ESXi系统设计的一套命令行管理工具集它通过命名空间namespace的方式组织各种管理功能。与传统的Linux命令不同esxcli专门针对虚拟化环境进行了优化能够直接与ESXi的底层系统组件交互。1.1 基本命令结构与帮助系统在开始具体操作前先熟悉几个基础命令# 查看所有可用的命名空间 esxcli esxcli command list # 获取特定命名空间的帮助信息 esxcli network --help每个命名空间下又包含多个子命令形成esxcli 命名空间 子命令的标准结构。例如要查看网络接口信息esxcli network ip interface list1.2 命令自动补全技巧虽然ESXi默认不启用命令补全但可以通过以下步骤开启安装bash-completion软件包编辑/etc/profile文件添加source /usr/share/bash-completion/bash_completion重新加载配置文件source /etc/profile注意某些ESXi版本可能不支持完整的bash补全功能建议先在测试环境验证。2. 网络配置实战从基础到高级2.1 物理网卡信息查询当需要排查网络性能问题时首先需要了解物理网卡的状态# 列出所有物理网卡 esxcfg-nics -l # 查看指定网卡的详细信息以vmnic0为例 esxcli network nic get -n vmnic0典型输出包含以下关键信息参数说明Link Status网卡连接状态Up/DownSpeed当前协商速率如1000MbpsDriver驱动名称和版本Firmware Version网卡固件版本2.2 VMkernel网络接口管理VMkernel接口用于ESXi主机的各种服务通信# 列出所有VMkernel接口 esxcli network ip interface list # 禁用某个接口谨慎操作 esxcli network ip interface set -i vmk1 -d true2.3 DNS与网络服务配置正确的DNS配置对ESXi主机的正常运行至关重要# 添加DNS服务器 esxcli network ip dns server add --server8.8.8.8 # 设置DNS搜索域 esxcli network ip dns search add --domainexample.com # 查看当前DNS配置 esxcli network ip dns search list3. 存储管理深度解析3.1 本地存储设备探查了解主机连接的存储设备是存储管理的第一步# 列出所有存储设备 esxcli storage core device list # 查看VMFS数据存储扩展信息 esxcli storage vmfs extent list关键输出字段解析Device Name设备标识如naa.600508b1001c7a3fDisplay Name设备显示名称Size设备总容量Is Local是否为本地存储3.2 iSCSI存储配置实战iSCSI是ESXi常用的网络存储协议# 启用软件iSCSI适配器 esxcli iscsi software set --enabledtrue # 添加iSCSI目标服务器 esxcli iscsi adapter discovery sendtarget add --address192.168.1.100 --adaptervmhba64 # 查看iSCSI会话状态 esxcli iscsi sessions list3.3 存储性能优化技巧通过VAAIvStorage APIs for Array Integration可以提升存储性能# 检查设备支持的VAAI功能 esxcli storage core device vaai status get -d naa.600508b1001c7a3f4. 系统维护与安全管理4.1 主机维护模式操作在进行硬件维护或升级前必须将主机置于维护模式# 进入维护模式 esxcli system maintenanceMode set --enabledtrue # 确认维护模式状态 esxcli system maintenanceMode get # 退出维护模式 esxcli system maintenanceMode set --enabledfalse4.2 安全配置最佳实践# 查看当前安全配置 esxcli system security get # 管理SSH服务 esxcli system ssh set --enabledtrue # 配置防火墙规则允许vMotion流量 esxcli network firewall ruleset set -e true -r vMotion4.3 证书管理# 列出所有证书 esxcli certificate-manager get-certificates # 导入新证书 esxcli certificate-manager import --cert/tmp/server.pem --pk/tmp/key.pem5. 高级系统配置技巧5.1 主机名与时间同步# 设置主机名 esxcli system hostname set --hostesxi01.prod.example.com # 配置NTP服务器 esxcli system ntp set --serversntp1.example.com,ntp2.example.com # 强制时间同步 esxcli system time sync refresh5.2 高级参数调优通过esxcli system settings advanced可以调整大量底层参数# 列出所有非默认设置 esxcli system settings advanced list -d # 修改内存压缩阈值示例 esxcli system settings advanced set -o /Mem/ShareForceSalting -i 25.3 软件包管理# 列出已安装的VIB包 esxcli software vib list # 安装离线补丁包 esxcli software profile update -d /vmfs/volumes/datastore1/ESXi-8.0.0-12345678-depot.zip -p ESXi-8.0.0-12345678-standard在实际运维中我发现esxcli命令的输出格式非常规整特别适合通过脚本解析。例如可以使用grep和awk组合提取特定信息# 提取所有万兆网卡名称 esxcli network nic list | grep 10000 | awk {print $1}对于需要频繁执行的操作建议将这些命令封装成Shell脚本并通过SSH批量执行到多台主机。