公司动态
【VMware虚拟化】ESXi运维实战:从Shell到esxcli的日常管理命令精要
1. ESXi Shell基础操作入门刚接触VMware虚拟化的运维工程师最先要掌握的就是ESXi Shell的基础操作。这就像学开车要先熟悉方向盘和油门一样是后续所有高级操作的基础。我刚开始接触ESXi时最常用的就是services.sh这个命令它相当于ESXi服务的总开关。1.1 服务管理三板斧services.sh命令支持三个核心参数start启动所有ESXi服务stop停止所有ESXi服务restart重启所有服务实际运维中最常用的就是重启操作。当遇到vCenter连接异常或者主机管理界面卡顿时执行services.sh restart往往能解决大部分问题。不过要注意这会重启所有服务相当于给ESXi主机做了一次软重启。如果只想重启特定服务可以到/etc/init.d目录下操作。比如vCenter Agentvpxa服务异常时执行/etc/init.d/vpxa restart就能单独重启这个服务不会影响其他服务运行。这个技巧在维护生产环境时特别有用能最大限度减少影响范围。查看服务状态也很重要cat /etc/chkconfig.db命令会列出所有ESXi服务的运行状态。我习惯在执行维护操作前后都检查一次确保关键服务都处于正常状态。1.2 网络诊断利器网络问题是虚拟化环境中最常见的故障之一。ESXi提供了两个强大的网络诊断工具vmkping比普通ping更强大可以通过指定VMkernel接口发送ICMP请求。比如vmkping -I vmk1 10.10.10.1这条命令会通过vmk1接口可能是vMotion专用网络测试到10.10.10.1的连通性。当管理网络不通但vMotion网络正常时这个命令就能派上大用场。ncnetcat用来测试特定TCP/UDP端口的连通性。比如检查iSCSI存储连接时nc -z 10.10.10.10 3260如果端口开放会显示succeeded否则就是连接失败。对于UDP端口如NTP服务需要加-u参数nc -uz 10.128.16.9 1231.3 存储管理实战vmkfstools是管理VMFS数据卷和虚拟磁盘的瑞士军刀。我常用它来做这些操作克隆虚拟磁盘vmkfstools -i test.vmdk testclone.vmdk扩展虚拟磁盘大小检查文件系统一致性有一次客户需要快速部署50台相同配置的虚拟机我就是用vmkfstools批量克隆磁盘节省了大量时间。esxtop则是性能分析的利器。它类似于Linux的top命令但提供了更多VMware特有的指标中断统计内存 ballooning状态网络吞吐量磁盘队列深度按不同字母键可以切换监控视图比如按n切到网络视图d切到磁盘视图。发现性能瓶颈时esxtop总是我的第一选择。2. esxcli高级管理技巧esxcli是ESXi的超级工具箱通过不同的命名空间管理几乎所有主机组件。刚开始可能会被它的复杂性吓到但掌握后就会发现它比图形界面更高效。2.1 硬件信息一手掌握排查硬件问题时这些命令特别有用esxcli hardware cpu list # 查看CPU详细信息 esxcli hardware memory get # 查看内存配置 esxcli hardware clock get # 查看主机时间曾经有台主机频繁宕机我就是通过esxcli hardware cpu list发现某个CPU核心的缓存错误计数异常增长最终定位到是主板故障。2.2 网络配置不求人网络命名空间可能是最常用的功能之一。几个实用场景查看网卡信息esxcli network nic list这会列出所有物理网卡的型号、速度、MAC地址等信息。有次客户反映网络速度慢就是这个命令发现网卡协商速率只有100Mbps最后更换网线解决了问题。管理虚拟交换机esxcli network vswitch standard list # 查看标准交换机 esxcli network vswitch dvs vmware list # 查看分布式交换机检查IP配置esxcli network ip interface ipv4 get # 查看IPv4地址 esxcli network ip route ipv4 list # 查看路由表2.3 存储管理实战存储问题是另一个常见故障点。这些命令能帮你快速定位问题列出存储设备esxcli storage core device list这会显示所有存储设备的型号、容量、多路径状态等信息。我曾经用这个命令发现某台存储的LUN未被正确识别原因是HBA卡驱动版本过旧。检查VAAI状态esxcli storage core device vaai status getVAAIvStorage APIs for Array Integration能大幅提升存储性能。如果显示unsupported说明存储阵列不支持硬件加速可能需要升级存储固件。2.4 系统维护必备技能维护模式esxcli system maintenanceMode set --enable yes # 进入维护模式 esxcli system maintenanceMode set --enable no # 退出维护模式在升级主机或更换硬件前必须先进入维护模式。我见过不少新手直接关机导致虚拟机异常关闭这个习惯一定要养成。主机开关机esxcli system shutdown reboot # 重启主机 esxcli system shutdown poweroff # 关闭主机注意这些命令只在维护模式下有效这是VMware的安全机制。查看系统信息esxcli system version get # 查看ESXi版本 esxcli system hostname get # 查看主机名3. 虚拟机管理实战3.1 虚拟机生命周期管理列出所有虚拟机vim-cmd vmsvc/getallvms这会显示每台虚拟机的ID、名称和配置文件路径。ID在后续操作中会用到。查看虚拟机状态vim-cmd vmsvc/power.getstate VMID开关机操作vim-cmd vmsvc/power.on VMID # 开机 vim-cmd vmsvc/power.shutdown VMID # 正常关机 vim-cmd vmsvc/power.off VMID # 强制关机紧急情况下也可以用esxcli直接终止虚拟机进程esxcli vm process kill --typeforce --world-idWorldID3.2 虚拟机配置检查查看虚拟机详细配置vim-cmd vmsvc/get.config VMID这会输出虚拟机的CPU、内存、磁盘、网卡等完整配置。有次客户说虚拟机性能差就是这个命令发现只分配了1个vCPU扩容后问题解决。4. 日常运维最佳实践4.1 日志收集与分析遇到疑难杂症时首先要收集日志vm-support # 打包所有日志这个命令会生成一个tgz压缩包包含主机配置、系统日志、虚拟机信息等。VMware技术支持通常都会先要这个包。查看实时日志esxcli system syslog mark --message开始维护 # 打标记 tail -f /var/log/vmkernel.log # 实时查看内核日志4.2 安全加固建议完成维护后立即关闭ESXi Shell访问定期检查/etc/shadow文件权限使用esxcli network firewall配置防火墙规则启用SSH密钥认证替代密码登录4.3 性能调优技巧使用vscsiStats监控存储I/O模式通过esxtop识别资源瓶颈检查esxcli system settings advanced list中的非默认参数定期执行esxcli storage filesystem list查看存储空间使用情况记得有次客户反映虚拟机响应慢通过esxtop发现磁盘延迟高达200ms进一步检查发现是存储阵列的缓存电池故障更换后性能立即恢复正常。掌握这些命令后你会发现ESXi管理效率能提升数倍。刚开始可能需要经常查阅笔记但经过3-5次实践就会变得得心应手。建议在测试环境多练习熟悉后再在生产环境使用。