VMware vCenter 基础命令的 6 大核心模块
VMware vCenter 基础命令的 6 大核心模块
VMware vCenter Server 作为 ESXi 主机的集中管理平台,基础命令围绕 “集群与主机管理、虚拟机运维、资源与存储网络配置、系统监控、权限与自动化” 五大核心场景设计,可划分为 6 大模块。需注意:vCenter 命令主要通过 PowerCLI(PowerShell 扩展) 执行(Windows/Linux/macOS 均支持),少量通过 vCenter Shell( Appliance 版)执行,以下按功能模块分类:
一、连接与环境初始化模块(命令执行前提)
核心作用:建立与 vCenter Server 的连接,初始化管理环境,是所有 vCenter 命令执行的基础。
命令(PowerCLI) | 核心用途 | 示例 |
---|---|---|
Install-Module -Name VMware.PowerCLI -Scope CurrentUser | 安装 PowerCLI 模块(首次使用需执行) | Install-Module -Name VMware.PowerCLI -Scope CurrentUser -Force (强制更新) |
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false | 忽略 SSL 证书验证(避免自签名证书报错) | Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false |
Connect-VIServer -Server <vCenter IP/域名> -User <用户名> -Password <密码> | 连接到 vCenter Server | Connect-VIServer -Server 192.168.1.10 -User administrator@vsphere.local -Password P@ssw0rd |
Disconnect-VIServer -Server <vCenter IP> -Confirm:$false | 断开与 vCenter 的连接 | Disconnect-VIServer -Server 192.168.1.10 -Confirm:$false |
Get-VIServer | 查看当前已连接的 vCenter 会话 | Get-VIServer |
二、集群与 ESXi 主机管理模块(集中管控主机)
核心作用:通过 vCenter 集中管理 ESXi 主机(添加 / 移除、状态监控、集群配置),实现主机资源的统一调度。
命令(PowerCLI) | 核心用途 | 示例 |
---|---|---|
Get-Cluster | 列出 vCenter 中所有集群 | Get-Cluster (显示集群名称、主机数量、DRS/HA 状态) |
Get-VMHost | 列出所有受管 ESXi 主机 | Get-VMHost -Cluster "Production-Cluster" (查看指定集群的主机) |
Add-VMHost -Name <ESXi IP> -Location <集群名> -User <ESXi 用户名> -Password <密码> -Confirm:$false | 将 ESXi 主机添加到 vCenter 集群 | Add-VMHost -Name 192.168.1.20 -Location "Production-Cluster" -User root -Password Esxi@123 -Confirm:$false |
Remove-VMHost -VMHost <ESXi 主机> -Confirm:$false | 从 vCenter 中移除 ESXi 主机(需先进入维护模式) | Remove-VMHost -VMHost 192.168.1.20 -Confirm:$false |
Set-VMHost -VMHost <ESXi 主机> -State Maintenance | 将 ESXi 主机置于维护模式(迁移 VM 后执行) | Set-VMHost -VMHost 192.168.1.20 -State Maintenance |
Set-VMHost -VMHost <ESXi 主机> -State Connected | 退出 ESXi 主机维护模式 | Set-VMHost -VMHost 192.168.1.20 -State Connected |
Get-VMHostHardware -VMHost <ESXi 主机> | 查看 ESXi 主机硬件信息(CPU、内存、存储控制器) | Get-VMHostHardware -VMHost 192.168.1.20 |
三、虚拟机集中运维模块(批量管理 VM)
核心作用:通过 vCenter 批量操作虚拟机(创建、启停、迁移、配置修改),替代单台 ESXi 主机的分散管理。
命令(PowerCLI) | 核心用途 | 示例 | ||
---|---|---|---|---|
Get-VM | 列出 vCenter 中所有虚拟机 | Get-VM -Location "Production-Cluster" (查看指定集群的 VM)、Get-VM -Name "Web-*" (模糊匹配名称前缀为 Web- 的 VM) | ||
New-VM -Name <VM 名> -VMHost <ESXi 主机> -Datastore <数据存储> -GuestId <系统类型> -MemoryGB <内存> -NumCpu <CPU 数> | 创建新虚拟机 | New-VM -Name "DB-Server" -VMHost 192.168.1.20 -Datastore "Datastore1" -GuestId centos7_64Guest -MemoryGB 8 -NumCpu 4 | ||
Start-VM -VM <VM 名> -Confirm:$false | 启动虚拟机 | Start-VM -VM "Web-Server" -Confirm:$false | ||
Stop-VM -VM <VM 名> -Confirm:$false | 关闭虚拟机(优雅关机,需 Guest OS 支持) | Stop-VM -VM "Web-Server" -Confirm:$false | ||
Move-VM -VM <VM 名> -Destination <目标 ESXi 主机/集群> -Confirm:$false | 迁移虚拟机(vMotion,需共享存储) | Move-VM -VM "Web-Server" -Destination 192.168.1.30 -Confirm:$false | ||
`Get-VM -Name <VM 名> | Select-Object Name, PowerState, VMHost, NumCpu, MemoryGB` | 查看虚拟机关键信息(状态、主机、配置) | `Get-VM -Name "DB-Server" | Select-Object Name, PowerState, VMHost, NumCpu, MemoryGB` |
Remove-VM -VM <VM 名> -DeletePermanently -Confirm:$false | 删除虚拟机(永久删除磁盘文件) | Remove-VM -VM "Test-VM" -DeletePermanently -Confirm:$false |
四、资源与存储管理模块(统一分配资源)
核心作用:管理 vCenter 中的资源池(CPU / 内存分配)、数据存储(VMFS/NFS),实现资源的按需分配与监控。
命令(PowerCLI) | 核心用途 | 示例 | ||
---|---|---|---|---|
Get-ResourcePool -Cluster <集群名> | 列出指定集群的资源池 | Get-ResourcePool -Cluster "Production-Cluster" | ||
New-ResourcePool -Name <资源池名> -Location <集群/父资源池> -CpuReservationGHz <CPU 预留> -MemoryReservationGB <内存预留> | 创建资源池 | New-ResourcePool -Name "App-Pool" -Location "Production-Cluster" -CpuReservationGHz 2 -MemoryReservationGB 4 | ||
Get-Datastore | 列出 vCenter 中所有数据存储 | Get-Datastore -VMHost 192.168.1.20 (查看指定主机的 datastore) | ||
`Get-Datastore <数据存储名> | Select-Object Name, DatastoreType, CapacityGB, FreeSpaceGB` | 查看数据存储容量信息 | `Get-Datastore "Datastore1" | Select-Object Name, DatastoreType, CapacityGB, FreeSpaceGB` |
New-Datastore -VMHost <ESXi 主机> -Name <数据存储名> -Path <NFS 服务器路径> -NfsHost <NFS 服务器 IP> | 创建 NFS 数据存储 | New-Datastore -VMHost 192.168.1.20 -Name "NFS-Datastore" -Path /nfs/vmware -NfsHost 192.168.1.100 | ||
Get-VMResourceConfiguration -VM <VM 名> | 查看虚拟机的资源配置(预留、限制、份额) | Get-VMResourceConfiguration -VM "Web-Server" |
五、网络管理模块(虚拟网络集中配置)
核心作用:管理 vCenter 中的分布式虚拟交换机(vDS)、端口组、VMkernel 适配器,统一管控虚拟网络。
命令(PowerCLI) | 核心用途 | 示例 |
---|---|---|
Get-VirtualSwitch -Distributed | 列出所有分布式虚拟交换机(vDS) | Get-VirtualSwitch -Distributed |
New-VDSwitch -Name <vDS 名> -Location <数据中心> -NumUplinkPorts 2 | 创建分布式虚拟交换机 | New-VDSwitch -Name "Prod-vDS" -Location "DC1" -NumUplinkPorts 2 |
Get-VirtualPortGroup -Distributed | 列出所有分布式端口组 | Get-VirtualPortGroup -Distributed -VDSwitch "Prod-vDS" (查看指定 vDS 的端口组) |
New-VirtualPortGroup -Name <端口组名> -VDSwitch <vDS 名> -VlanId <VLAN 号> | 创建分布式端口组 | New-VirtualPortGroup -Name "Web-VLAN10" -VDSwitch "Prod-vDS" -VlanId 10 |
Get-VMHostNetworkAdapter -VMKernel | 列出所有 ESXi 主机的 VMkernel 适配器(管理 / VMotion 网卡) | Get-VMHostNetworkAdapter -VMKernel -VMHost 192.168.1.20 |
Set-VMNetworkAdapter -VM <VM 名> -PortGroup <目标端口组> -Confirm:$false | 修改虚拟机的网络端口组 | Set-VMNetworkAdapter -VM "Web-Server" -PortGroup "Web-VLAN10" -Confirm:$false |
六、监控与日志模块(运维与故障排查)
核心作用:监控 vCenter 及受管资源(主机、VM、存储)的状态,查看日志排查故障,生成运维报告。
命令(PowerCLI) | 核心用途 | 示例 |
---|---|---|
Get-VMHostPerformance -VMHost <ESXi 主机> -CounterName cpu.usage.average,mem.usage.average | 查看 ESXi 主机性能(CPU / 内存使用率) | Get-VMHostPerformance -VMHost 192.168.1.20 -CounterName cpu.usage.average,mem.usage.average |
Get-VMPerformance -VM <VM 名> -CounterName cpu.usage.average,disk.write.average | 查看虚拟机性能(CPU 使用率、磁盘写入速率) | Get-VMPerformance -VM "Web-Server" -CounterName cpu.usage.average,disk.write.average |
Get-VIEvent -Entity <VM/主机> -Start (Get-Date).AddHours(-1) | 查看指定资源近 1 小时的事件日志(如启动 / 迁移记录) | Get-VIEvent -Entity "Web-Server" -Start (Get-Date).AddHours(-1) |
Get-Log -VMHost <ESXi 主机> -Key vmkernel -Start (Get-Date).AddMinutes(-30) | 查看 ESXi 主机的 vmkernel 日志(近 30 分钟) | Get-Log -VMHost 192.168.1.20 -Key vmkernel -Start (Get-Date).AddMinutes(-30) |
Get-VCenterLog -LogType vpxd -Start (Get-Date).AddHours(-2) | 查看 vCenter Server 自身的 vpxd 日志(核心服务日志) | Get-VCenterLog -LogType vpxd -Start (Get-Date).AddHours(-2) |
`Get-VM | Where-Object {$_.PowerState -eq "PoweredOff"} | Select-Object Name, VMHost` |
关键说明
- 执行环境:所有 PowerCLI 命令需先安装 PowerShell(Windows 自带,Linux/macOS 需手动安装),再安装
VMware.PowerCLI
模块。 - 权限要求:需使用具有对应权限的 vCenter 账号(如管理员
administrator@vsphere.local
)连接,否则部分命令(如添加主机、删除 VM)会执行失败。 - vCenter Shell:若使用 vCenter Server Appliance(VCSA),可通过 SSH 登录 VCSA 执行少量命令(如
vc-support.sh
生成日志包),但日常管理优先推荐 PowerCLI。