1.在VMware迁移项目中,“翻车”往往源于那些容易被忽视的细节。根据实战经验,以下是最危险的**“隐形地雷”及避坑清单**,附解决方案:
---
### **一、最易被忽略的6大“隐形地雷”**
1. **DRS依赖项未识别**
- **问题**:迁移后DRS规则失效,导致关键业务虚拟机(如数据库主从节点)被分散到不同主机,引发性能瓶颈。
- **根因**:未导出`DRS Affinity Rules`或未检查虚拟机-主机依赖关系。
- **规避**:
```bash
# 导出DRS规则清单
Get-DrsRule -Cluster "ClusterName" | Export-Csv -Path C:\DRS_Rules.csv
```
2. **虚拟交换机配置差异**
- **问题**:迁移后虚拟机网络中断,尤其是使用**PVLAN**或**自定义端口组**的环境。
- **根因**:目标环境vSwitch的MTU、负载均衡策略(如`Route based on IP hash`)、安全策略(混杂模式/MAC更改)不一致。
- **规避**:
- 使用PowerCLI对比源/目标交换机配置:
```powershell
Get-VirtualSwitch -Name vSwitch1 | Select-Object Name, Mtu, NicPolicy, SecurityPolicy
```
3. **存储隐身依赖**
- **问题**:虚拟机启动失败,报错`Unable to access VM configuration`。
- **根因**:
- 未迁移**VM配置文件**(.vmx, .nvram)或遗漏**独立磁盘**(Independent Disk)。
- **RDM磁盘映射丢失**(LUN ID变更)。
- **规避**:
- 迁移前执行存储扫描:
```bash
esxcli storage core device list # 确认RDM LUN ID
```
4. **虚拟机硬件版本兼容性**
- **问题**:迁移后虚拟机无法开机(如从vHW11升级到vHW19)。
- **根因**:旧版VM Tools/未启用的UEFI引导与高版本ESXi不兼容。
- **规避**:
- 批量检查硬件版本:
```powershell
Get-VM | Select Name, Version, ExtensionData.Config.Firmware
```
5. **隐形设备驱动冲突**
- **问题**:迁移后蓝屏(Windows)或Kernel Panic(Linux)。
- **根因**:源主机使用的**旧版VMXNET3驱动**(如e1000e模拟网卡)在目标环境不兼容。
- **规避**:
- 迁移前统一升级驱动:
```bash
vmware-toolbox-cmd upgrade --install # 强制更新VM Tools驱动
```
6. **时区与时间同步崩坏**
- **问题**:迁移后应用报证书过期/日志时间错乱。
- **根因**:未同步**BIOS时间**或**NTP配置**,导致虚拟机时钟漂移。
- **规避**:
- 在迁移计划中加入时间校准步骤:
```bash
vmware-toolbox-cmd timesync enable # 强制开启时间同步
```
---
### **二、高阶避坑清单(90%工程师会忽略)**
| **风险点** | **检测命令/工具** | **应急方案** |
|--------------------------|-----------------------------------|--------------------------------|
| **GPU直通遗留** | `lspci -v \| grep -i nvidia` | 目标主机预注册相同PCI设备ID |
| **加密虚拟机密钥丢失** | `Get-VM -Name VM1 \| Select *Key*` | 提前导出KEK/DEK密钥文件 |
| **vSAN拉伸集群配置** | `esxcli vsan cluster get` | 禁用vSAN后再迁移 |
| **旧版快照残留** | `vmkfstools -i disk.vmdk` | 合并快照后再迁移 |
---
### **三、终极迁移自检流程(Pre-Checklist)**
1. **配置一致性验证**:
```bash
diff <(esxcfg-info -w) <(ssh target-host esxcfg-info -w) # 对比主机配置
```
2. **网络连通性测试**:
```bash
vmkping ++netstack=vmotion -I vmk1 target-ESXi-IP # vMotion网络测试
```
3. **存储性能基线**:
```bash
esxtop -d 2 -n 100 -b > storage_baseline.csv # 记录IO延迟/队列深度
```
4. **虚拟机状态快照**:
```powershell
Get-VM | Get-AdvancedSetting -Name "snapshot*" | Export-Csv VM_Settings.csv
```
---
### **四、翻车现场急救包**
- **DRS规则丢失**:
用`New-DrsRule -Name "DB_Group" -Cluster CL01 -KeepTogether $true`快速重建亲和组。
- **网络中断**:
临时切回标准交换机:
```bash
Get-VMHostNetworkAdapter -VMHost ESXi01 | Set-VMHostNetworkAdapter -PortGroup "Temp_PG"
```
- **虚拟机卡死**:
强制重置虚拟机硬件版本:
```bash
vmkload_mod -u vmware # 卸载驱动模块后重注册
```
> **最后忠告**:迁移前24小时**冻结环境变更**,并对关键虚拟机执行`VMware FT测试性迁移`(非生产副本)。真正的灾难往往源于“这个设置应该没问题”的假设! |