2. vSphere存储架构基础

在 vSphere 环境中,ESXi 主机并不直接把物理磁盘“交给”虚拟机使用,而是通过一套分层存储栈把底层设备抽象成可被集群共享、调度和保护的数据存储(Datastore)。理解这套栈的层次、协议差异、命名规则与路径选择逻辑,是后续做存储协同设计(多路径、队列深度、IOPS 分配、故障切换)的技术底座。本节先建立“从物理设备到虚拟机磁盘”的完整映射关系。

一、ESXi 存储栈的分层结构

ESXi 存储栈自下而上大致分为四层:物理设备层(SAS/SATA/NVMe 盘、FC HBA、iSCSI NIC、NVMe-oF NIC)、协议与传输层(SCSI over FC、iSCSI、NFS、NVMe-oF)、存储抽象层(PSA/ NMP 多路径、VASA、VMFS 或 NFS 客户端)、数据存储与虚拟机层(VMFS/NFS/vSAN 数据存储、VMDK、快照、精简置备)。

其中 PSA(Pluggable Storage Architecture) 是可插拔存储架构,负责把“设备—路径—卷”三者关联起来;NMP(Native Multipathing Plugin) 是默认多路径插件,配合 SATP(存储阵列类型插件)和 PSP(路径选择插件)决定 I/O 走哪条路径。这一层是后续路径管理、故障切换和负载均衡的核心。

二、五类主流存储协议对比

ESXi 支持多种协议接入,它们在封装方式、共享能力和适用场景上差异明显:

协议传输方式数据存储形式典型场景
SCSI(FC/SAS)块级,FC 光纤或直连 SASVMFS低延迟核心数据库、传统 SAN
iSCSI块级,TCP/IP 封装 SCSIVMFS成本敏感、以太网统一承载
NFS文件级,NAS 服务器导出NFS 数据存储简单共享、模板与 ISO 库
vSAN分布式对象,本地盘聚合vSAN 数据存储超融合、软件定义存储
NVMe-oF块级,RDMA/FC-NVMe 承载VMFS on NVMe极低延迟、高性能数据库

块级协议(SCSI、iSCSI、NVMe-oF)向 ESXi 呈现的是 LUN,需要 VMFS 文件系统格式化后才能存放 VMDK;文件级协议(NFS)由 NAS 直接提供目录,ESXi 挂载后即可使用;vSAN 则是把主机本地盘组成分布式对象存储,再以数据存储形式暴露。选择哪种协议,取决于延迟要求、共享范围、运维复杂度和预算。

三、设备命名与路径管理

ESXi 对存储设备有稳定的命名规则,排障时必须能读懂:

  • naa.xxxx:SCSI 设备唯一标识,来自 LUN 的 NAA(Network Address Authority)ID,是识别同一 LUN 的关键。
  • eui.xxxx:NVMe 设备命名空间标识。
  • vmhbaX:主机总线适配器编号,如 vmhba64 为 iSCSI 软件适配器,vmhba1 为 FC HBA。
  • vmhbaX:C0:T0:L0:控制器/目标/ LUN 三元组,表示一条具体路径。

同一 LUN 通过多条物理路径到达时,会出现多个 vmhbaX:Cx:Tx:Lx 条目,但 naa 标识相同。PSA 通过 SATP 识别阵列类型,再由 PSP 决定路径策略:VMW_PSP_FIXED(固定路径,仅主路径工作)、VMW_PSP_RR(轮询,多路径均衡)、VMW_PSP_MRU(最近使用)。生产环境通常对支持 ALUA 的阵列使用 RR,并设置 IOPS 阈值(如 1000)避免路径抖动。

判断路径是否健康,可在 ESXi Shell 执行 esxcli storage nmp path list,观察 State 是否为 active,以及 Is Active 与 Is Standby 的分布是否符合预期。

四、数据存储类型与容量规划要点

VMFS 是集群文件系统,允许多台 ESXi 同时读写同一 LUN,适合承载虚拟机;NFS 数据存储由 NAS 管理文件锁,部署简单;vSAN 数据存储则通过存储策略(SPBM)定义冗余与性能等级。规划时需关注:块大小与 VMDK 大小上限、精简置备与厚置备的取舍、快照对空间的影响,以及单数据存储承载的虚拟机数量上限。

下面这张图把“物理设备 → 协议 → PSA/NMP → 数据存储 → 虚拟机”的映射关系与关键命名对象放在一起,便于对照理解:

物理设备层 FC HBA / iSCSI NIC SAS / SATA / NVMe 盘 NVMe-oF NIC (RDMA) 协议与传输层 SCSI over FC iSCSI (TCP/IP) NFS / NVMe-oF PSA / NMP SATP 识别阵列类型 PSP: FIXED / RR / MRU 路径状态 active/standby 数据存储 VMFS NFS vSAN 关键命名对象(排障必读) naa.60060160... SCSI LUN 唯一标识 同一 LUN 多路径共享 eui.xxxx NVMe 命名空间标识 NVMe-oF 设备识别 vmhba64 iSCSI 软件适配器 vmhba1 = FC HBA vmhba64:C0:T0:L0 控制器:目标:LUN 一条具体路径 路径选择策略(PSP)与典型取值 VMW_PSP_FIXED 仅主路径工作,备路径待命 适合不支持 ALUA 的阵列 VMW_PSP_RR 多路径轮询,IOPS 阈值均衡 生产推荐,阈值示例 1000 VMW_PSP_MRU 最近使用路径优先 用于特定阵列兼容场景

五、从命名到路径的排障思路

当虚拟机出现存储延迟或路径告警时,可按以下顺序定位:先用 esxcli storage core device list 确认设备是否被识别、naa 是否一致;再用 esxcli storage nmp path list 查看路径状态与 PSP 策略;若发现某条路径长期处于 dead 或 standby 异常,检查交换机 zoning、iSCSI 端口绑定或阵列 ALUA 配置。最后用 esxcli storage core device stats get -d naa.xxx 观察读写延迟与队列深度,判断是路径问题还是后端阵列瓶颈。

不要仅凭“数据存储显示正常”就认为路径健康。VMFS 数据存储可能通过单条路径仍可访问,但多路径冗余已失效,一旦该路径故障就会导致虚拟机 APD(All Paths Down)或 PDL(Permanent Device Loss)。

掌握以上内容后,后续做存储协同设计时,才能准确判断:某类业务该用块存储还是文件存储、多路径策略如何设置、队列深度与 IOPS 上限如何分配,以及故障切换时数据存储和虚拟机将如何表现。