如何通过 ESXi 命令行界面(CLI)管理主机和虚拟机?

问题浏览数Icon
67
问题创建时间Icon
2025-04-15 00:45:00
回答 | 共 5 个
作者头像
haoxiao77
  1. 连接ESXi主机

    • 启用SSH:通过vSphere Client进入主机 → 配置 → 系统 → 服务 → 启用SSH。
    • 使用SSH客户端(如PuTTY)登录:ssh root@<ESXi_IP>
  2. 管理主机

    • 查看主机信息
      esxcli system version get  # 查看ESXi版本
      esxcli hardware memory get  # 查看内存状态
      esxtop                     # 实时监控资源使用
    • 管理服务
      /etc/init.d/SSH restart    # 重启SSH服务
      esxcli system service list # 列出所有服务状态
    • 进入/退出维护模式
      esxcli system maintenanceMode set --enable true  # 进入
      esxcli system maintenanceMode set --enable false # 退出
    • 重启/关闭主机
      esxcli system shutdown reboot -d 60 -r "硬件维护"  # 60秒后重启
      esxcli system shutdown poweroff                   # 关机
  3. 管理虚拟机

    • 列出所有虚拟机
      vim-cmd vmsvc/getallvms | grep -v "Skipping"      # 显示所有VM及ID
    • 虚拟机开关机
      vim-cmd vmsvc/power.on <VM_ID>      # 开机
      vim-cmd vmsvc/power.shutdown <VM_ID># 正常关机(需安装VM Tools)
      vim-cmd vmsvc/power.off <VM_ID>     # 强制断电
    • 注册/取消注册虚拟机
      vim-cmd solo/registervm /path/to/vmx  # 注册
      vim-cmd vmsvc/unregister <VM_ID>      # 取消注册
    • 虚拟机磁盘管理
      vmkfstools -X 50G /vmfs/volumes/datastore/VM/disk.vmdk  # 扩展磁盘到50GB
  4. 网络与存储

    • 查看网络配置
      esxcli network ip interface list  # 列出网络接口
      esxcfg-vswitch -l                 # 查看虚拟交换机
    • 管理存储
      esxcli storage filesystem list    # 列出存储设备
      vmkfstools --punchzero /vmfs/volumes/datastore/VM/disk.vmdk  # 回收磁盘空间
  5. 日志与故障排查

    • 查看日志
      tail -f /var/log/vmkernel.log     # 实时监控内核日志
      vim-cmd vmsvc/get.log <VM_ID>     # 获取虚拟机日志路径
    • 重置虚拟机状态
      vim-cmd vmsvc/reset <VM_ID>       # 强制重置无响应VM

注意

  • 操作前确保备份关键配置,避免直接操作生产环境。
  • 使用vim-cmd时需准确获取虚拟机ID(通过getallvms)。
  • 强制断电(power.off)可能导致数据丢失,优先尝试正常关机。
作者头像
swanjune77

通过ESXi CLI管理主机和虚拟机需掌握以下核心操作:

  1. 连接与权限

    • 启用SSH:vim-cmd hostsvc/enable_ssh
    • 登录ESXi Shell:ssh root@ESXi_IP
  2. 主机管理

    • 查看系统信息:esxcli system version get
    • 网络配置:esxcli network ip interface list
    • 存储管理:esxcli storage filesystem list
    • 服务重启:/etc/init.d/hostd restart
  3. 虚拟机管理

    • 列出所有VM:vim-cmd vmsvc/getallvms
    • 启停操作:
      vim-cmd vmsvc/power.on <vmid>  
      vim-cmd vmsvc/power.off <vmid>  
    • 创建快照:vim-cmd vmsvc/snapshot.create <vmid> "Snapshot_Name" "Description"
  4. 高级工具

    • 使用esxcfg-*系列命令(如esxcfg-vswitch配置虚拟交换机)
    • 结合PowerCLI或自动化工具(Ansible/Terraform)实现批量管理

注:CLI操作需谨慎,建议测试后执行。生产环境优先通过vCenter或API管理,确保操作可追溯。

作者头像
mingrui77

为什么不尝试使用vSphere CLI或PowerCLI来简化ESXi主机和虚拟机的自动化管理呢?

作者头像
zhenlong22

通过ESXi命令行界面(CLI)管理主机和虚拟机需要熟悉关键命令及权限控制。主机管理:1. 使用SSH登录后,通过esxcli system系列命令查看/修改主机配置(如esxcli system version get);esxcli network管理网络(IP/VLAN);esxcli storage处理存储设备与路径策略;vim-cmd hostsvc控制服务状态;esxtop实时监控资源。虚拟机管理:2. 使用vim-cmd vmsvc/getallvms获取所有虚拟机列表;vim-cmd vmsvc/power.on开机;vmkfstools管理虚拟磁盘(扩容/克隆);vmdumper强制关闭异常虚拟机。注意事项:CLI操作需root权限,存在误操作风险,建议通过vCenter实现日常管理,CLI仅用于紧急修复或脚本自动化场景;定期备份ESXi配置(/etc/目录)及虚拟机文件。

作者头像
hufeng77

通过ESXi命令行界面(CLI)管理主机和虚拟机,需通过SSH登录后使用esxclivim-cmd等工具。例如,查看主机信息用esxcli system hostname get,虚拟机开关机用vim-cmd vmsvc/power.on

延伸知识点:esxcli命令的模块化结构esxcli按功能划分为多个命名空间(如systemnetworkstorage),每个命名空间下包含子命令。例如,esxcli storage core device list可列出所有存储设备,esxcli network ip interface list显示网络接口。命令格式为esxcli <命名空间> <子命令> [参数],通过esxcli --help可逐层查看可用命令及说明,这种设计便于按需调用特定管理功能。