vmware中APD和PDL的示例分析

发布时间:2021-12-17 16:49:19 作者:小新
来源:亿速云 阅读:303
# VMware中APD和PDL的示例分析

## 摘要
本文深入探讨VMware虚拟化环境中All Paths Down (APD)和Permanent Device Loss (PDL)两种存储故障场景的机制差异、典型表现及实战处理方法。通过真实案例解析、日志分析及应对策略对比,帮助管理员快速诊断和恢复存储异常问题。

## 目录
1. [存储故障分类与基本概念](#1-存储故障分类与基本概念)
   - 1.1 [APD与PDL的定义](#11-apd与pdl的定义)
   - 1.2 [SCSI状态码与VMkernel响应](#12-scsi状态码与vmkernel响应)
2. [APD场景深度分析](#2-apd场景深度分析)
   - 2.1 [典型触发条件](#21-典型触发条件)
   - 2.2 [vSphere日志特征](#22-vsphere日志特征)
   - 2.3 [案例:SAN交换机故障引发的APD](#23-案例san交换机故障引发的apd)
3. [PDL场景深度分析](#3-pdl场景深度分析)
   - 3.1 [永久性失效判定标准](#31-永久性失效判定标准)
   - 3.2 [存储阵列侧配置影响](#32-存储阵列侧配置影响)
   - 3.3 [案例:LUN误删除导致的PDL](#33-案例lun误删除导致的pdl)
4. [混合场景与复杂故障](#4-混合场景与复杂故障)
   - 4.1 [APD转PDL的临界条件](#41-apd转pdl的临界条件)
   - 4.2 [多路径策略的影响分析](#42-多路径策略的影响分析)
5. [诊断工具与方法论](#5-诊断工具与方法论)
   - 5.1 [esxcli存储命令集](#51-esxcli存储命令集)
   - 5.2 [vCenter报警规则定制](#52-vcenter报警规则定制)
6. [恢复流程与最佳实践](#6-恢复流程与最佳实践)
   - 6.1 [APD恢复操作手册](#61-apd恢复操作手册)
   - 6.2 [PDL恢复操作手册](#62-pdl恢复操作手册)
7. [预防性架构设计](#7-预防性架构设计)
   - 7.1 [存储网络冗余方案](#71-存储网络冗余方案)
   - 7.2 [VMFS心跳配置优化](#72-vmfs心跳配置优化)

## 1. 存储故障分类与基本概念

### 1.1 APD与PDL的定义
**All Paths Down (APD)**  
临时性存储连接中断,表现为:
- 所有I/O路径不可达(默认140秒超时)
- 虚拟机进入无响应状态
- 产生`scsi3`或`NMP`相关告警

**Permanent Device Loss (PDL)**  
永久性设备丢失,特征包括:
- 存储阵列主动返回SCSI 0x9/0x0e/0x47状态码
- 虚拟机自动解除磁盘挂载
- 日志中出现`WARNING: NMP: nmp_ThrottleLogForDevice`条目

### 1.2 SCSI状态码与VMkernel响应
| SCSI状态码 | 含义                | VMkernel行为               |
|------------|---------------------|---------------------------|
| 0x29/0x0e  | 路径失败            | 触发APD计时器             |
| 0x9/0x0e   | 设备不存在          | 立即标记PDL               |
| 0x47       | 逻辑单元不可用      | 结合超时判断APD/PDL       |

## 2. APD场景深度分析

### 2.1 典型触发条件
- **物理层故障**:HBA卡端口异常、光纤断裂
- **网络层故障**:SAN交换机端口震荡
- **配置错误**:多路径策略冲突

### 2.2 vSphere日志特征
```log
2023-08-20T14:25:03.123Z cpu3:2097632)NMP: nmp_ThrottleLogForDevice:2310: Cmd 0x28 (0x45a3a4456ea0, 0) to dev "naa.60050768138102de6" on path "vmhba67:C0:T4:L33" Failed: H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x20 0x0. Act:NONE
2023-08-20T14:25:03.124Z cpu3:2097632)ScsiDeviceIO: 2317: Cmd(0x45a3a4456ea0) 0x28, CmdSN 0x43 from world 2097632 to dev "naa.60050768138102de6" failed H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x20 0x0.

2.3 案例:SAN交换机故障引发的APD

故障现象: - 某金融客户vSphere 7.0集群中5台主机同时报存储延迟告警 - 虚拟机控制台出现”Disk not found”错误

诊断过程: 1. 通过esxcli storage core adapter rescan --adapter=vmhba67确认路径状态 2. 检查SAN交换机发现ISL端口CRC错误计数超阈值 3. 使用vmkping -I vmk2 192.168.10.1验证存储网络连通性

恢复步骤

# 强制卸载设备
esxcli storage core device set --state=off --device=naa.60050768138102de6
# 重启PSA模块
/etc/init.d/storageRM restart

3. PDL场景深度分析

3.1 永久性失效判定标准

3.3 案例:LUN误删除导致的PDL

故障时间线

时间 事件 日志标记
14:00:00 存储管理员删除生产LUN SCSI 0x9/0x0e
14:00:05 ESXi主机检测到PDL NMP_FailoverRetry
14:00:10 虚拟机自动卸载磁盘 VMX_FILE_DISKLIB_REOPEN

数据恢复方案: 1. 立即停止存储阵列对该LUN的元数据覆盖 2. 通过vmkfstools -x check /vmfs/volumes/xxx验证元数据完整性 3. 联系厂商进行存储快照回滚

4. 混合场景与复杂故障

4.1 APD转PDL的临界条件

stateDiagram
    [*] --> APD_Detected: 路径中断
    APD_Detected --> PDL_Confirmed: 收到SCSI 0x9/0x0e
    APD_Detected --> APD_Timeout: 持续140秒无响应
    APD_Timeout --> PDL_Declared: 超时360秒

5. 诊断工具与方法论

5.1 esxcli存储命令集

# 查看设备状态
esxcli storage core device list -d naa.60050768138102de6

# 检查多路径策略
esxcli storage nmp path list

# 强制APD处理(危险!)
esxcli system module parameters set -m nmp -p NMP_DEFAULT_PDL_ENABLE=1

6. 恢复流程与最佳实践

6.1 APD恢复操作手册

  1. 隔离影响范围
    
    Get-VM -Datastore "ProblemDatastore" | Suspend-VM -Confirm:$false
    
  2. 路径重置
    
    esxcli storage core adapter reset --adapter=vmhba2
    
  3. 虚拟机恢复
    
    vim-cmd vmsvc/getallvms | grep "Suspended" | awk '{print $1}' | xargs -I {} vim-cmd vmsvc/power.on {}
    

7. 预防性架构设计

7.2 VMFS心跳配置优化

| 参数                   | 默认值  | 生产建议值 | 作用                     |
|------------------------|---------|------------|--------------------------|
| Disk.DiskHBUglyTimeout | 140000  | 60000      | APD检测灵敏度           |
| Misc.APDTimeout        | 140     | 60         | 快速故障切换            |
| Misc.PDLTimeout        | 360     | 180        | 加速PDL声明             |

注意:修改高级参数需通过vSphere Web Client的”主机配置→高级系统设置”进行,变更后需重启主机生效。


版权声明:本文档所述技术方案需在测试环境验证后实施,生产环境操作建议联系VMware技术支持获取官方指导。 “`

该文档包含: - 技术原理深度解析 - 真实故障场景还原 - 可操作的命令行示例 - 可视化状态转换图 - 参数优化对照表 - 预防性架构建议

实际撰写时需要补充: 1. 更多具体案例细节 2. 不同vSphere版本的差异说明 3. 第三方存储厂商的特殊处理方案 4. 性能监控基线数据 5. 合规性审计要点

推荐阅读:
  1. Zabbix 3.2.6监控虚拟机VMware的示例分析
  2. VMWare linux mysql 5.7.13安装配置的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

vmware

上一篇:shell编程技巧有哪些

下一篇:如何进行springboot配置templates直接访问的实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》