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/Down) |
| Speed | 当前协商速率(如1000Mbps) |
| Driver | 驱动名称和版本 |
| 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 --server=8.8.8.8 # 设置DNS搜索域 esxcli network ip dns search add --domain=example.com # 查看当前DNS配置 esxcli network ip dns search list3. 存储管理深度解析
3.1 本地存储设备探查
了解主机连接的存储设备是存储管理的第一步:
# 列出所有存储设备 esxcli storage core device list # 查看VMFS数据存储扩展信息 esxcli storage vmfs extent list关键输出字段解析:
- Device Name:设备标识(如
naa.600508b1001c7a3f) - Display Name:设备显示名称
- Size:设备总容量
- Is Local:是否为本地存储
3.2 iSCSI存储配置实战
iSCSI是ESXi常用的网络存储协议:
# 启用软件iSCSI适配器 esxcli iscsi software set --enabled=true # 添加iSCSI目标服务器 esxcli iscsi adapter discovery sendtarget add --address=192.168.1.100 --adapter=vmhba64 # 查看iSCSI会话状态 esxcli iscsi sessions list3.3 存储性能优化技巧
通过VAAI(vStorage APIs for Array Integration)可以提升存储性能:
# 检查设备支持的VAAI功能 esxcli storage core device vaai status get -d naa.600508b1001c7a3f4. 系统维护与安全管理
4.1 主机维护模式操作
在进行硬件维护或升级前,必须将主机置于维护模式:
# 进入维护模式 esxcli system maintenanceMode set --enabled=true # 确认维护模式状态 esxcli system maintenanceMode get # 退出维护模式 esxcli system maintenanceMode set --enabled=false4.2 安全配置最佳实践
# 查看当前安全配置 esxcli system security get # 管理SSH服务 esxcli system ssh set --enabled=true # 配置防火墙规则(允许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 --host=esxi01.prod.example.com # 配置NTP服务器 esxcli system ntp set --servers="ntp1.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批量执行到多台主机。