ESXi 支持光纤通道 (FC),这是一种存储协议,SAN 使用该协议将数据流量从主机服务器传输到共享存储。本节介绍如何将 ESXi 与光纤通道 SAN 配合使用。有关详细信息,请查看供应商文档。

光纤通道 SAN 概念

如果您是 vSphere 管理员,并计划设置主机与 SAN 配合使用,那么您必须掌握 SAN 概念的相关应用知识。在某些出版资料中和 Internet 上可以找到 SAN 的相关信息。这一领域的发展日新月异,请时常查看上述资源。
存储区域网络 (SAN)
存储区域网络 (Storage Area Network, SAN) 是将主机服务器连接到高性能存储子系统的专用高速网络。SAN 组件包括主机服务器中的主机总线适配器 (Host Bus Adapter, HBA)、用于路由存储流量的交换机、线缆、存储处理器 (Storage Processor, SP) 以及存储磁盘阵列。
SAN 架构
在网络上至少存在一台交换机的 SAN 拓扑构成了 SAN 架构。
光纤通道 (FC) 协议
为将流量从主机服务器传输到共享存储,SAN 使用光纤通道 (Fibre Channel, FC) 协议将 SCSI 或 NVMe 命令打包到光纤通道帧中。
分区域
为限制服务器访问未分配给该服务器的存储阵列,SAN 将使用分区域。通常会为访问一组共享存储设备和 LUN 的各组服务器创建区域。区域定义了哪些 HBA 可连接哪些 SP。某区域以外的设备对该区域之内的设备不可见。

区域分配具有以下作用:

  • 减少提供给主机的目标和 LUN 的数目。
  • 控制和隔离架构中的路径。
  • 可以防止非 ESXi 系统访问特定的存储系统,以及避免 VMFS 数据遭到破坏。
  • 可用于分隔不同的环境(例如,将测试环境与生产环境分开)。

对于 ESXi 主机,可使用单启动器区域分配或单启动器单目标区域分配。后者是首选区域分配做法。使用更严格的区域分配可防止出现 SAN 上可能发生的问题和配置错误。

有关详细说明和最佳区域分配做法,请与存储阵列或交换机供应商联系。

LUN 屏蔽
分区域与 LUN 屏蔽类似,后者常用于权限管理。LUN 屏蔽是使 LUN 对某些主机可用而对另外一些主机不可用的过程。
多路径
在主机服务器与存储之间传输数据时,SAN 将使用一种叫做多路径的技术。使用多路径,您可以通过多条物理路径从 ESXi 主机到达存储系统上的 LUN。
路径故障切换
通常,从主机到 LUN 的单一路径包括 HBA、交换机端口、连接电缆和存储控制器端口。如果路径中的任何组件出现故障,主机将选择另一条可用路径用于 I/O。检测故障路径并切换到另一条路径的过程称为路径故障切换。

光纤通道 SAN 中的端口

在本文档的上下文中,端口是指设备与 SAN 的连接。SAN 中的每个节点(例如主机、存储设备或架构组件)均有一个或多个端口,用于将其连接到 SAN。端口可通过多种方式进行标识。

WWPN(全球端口名称)
一种全球唯一的端口标识符,可允许特定应用程序访问相应端口。FC 交换机会发现设备或主机的 WWPN,并向该设备分配一个端口地址。
Port_ID(或端口地址)
在 SAN 中,各端口具有唯一的端口 ID,用作端口的 FC 地址。通过这个唯一 ID 可将数据经由 SAN 路由至相应端口。FC 交换机在设备登录到相应架构时为其分配端口 ID。仅当设备登录后端口 ID 才有效。

使用 N-Port ID 虚拟化 (NPIV) 时,单一 FC HBA 端口 (N-port) 可使用多个 WWPN 向架构注册。这个方法允许一个 N-port 声明多个架构地址,每个地址都显示为一个唯一的实体。当 ESXi 主机使用 SAN 时,上述多个唯一标识符允许在配置各个虚拟机的过程中为虚拟机分配 WWN。

光纤通道存储阵列类型

ESXi 可支持不同的存储系统和阵列。通常分为以下几类。

主动-主动存储系统
支持通过所有可用的存储端口同时访问多个 LUN,而不会明显降低性能。所有路径都保持活动状态,除非路径发生故障。
主动-被动存储系统
存储处理器在其中主动提供对给定 LUN 的访问权限的系统。其他处理器用作 LUN 的备份,并且可以主动提供对其他 LUN I/O 的访问权限。只能向给定 LUN 的活动端口成功发送 I/O。如果通过主动存储端口访问失败,则其中一个被动存储处理器可通过服务器对其进行访问而激活。
非对称存储系统
支持非对称逻辑单元访问 (ALUA)。ALUA 合规存储系统对每个端口提供不同级别的访问。借助 ALUA,主机可以判断目标端口的状态,并区分路径的优先级。主机会将某些活动路径用作主路径,将其他路径用作辅助路径。

虚拟机如何访问光纤通道 SAN 上的数据

ESXi 会将虚拟机的磁盘文件存储到位于 SAN 存储设备上的 VMFS 数据存储内。当虚拟机客户机操作系统向虚拟磁盘发送 SCSI 或 NVMe 命令时,SCSI 或 NVMe 虚拟化层会将这些命令转换为 VMFS 文件操作。

虚拟机与其在 SAN 上存储的虚拟磁盘交互时,将发生以下过程:

  1. 当虚拟机中的客户机操作系统读取或写入 SCSI 或 NVMe 磁盘时,它会向虚拟磁盘发送 SCSI 或 NVMe 命令。
  2. 虚拟机操作系统中的设备驱动程序与虚拟 SCSI 或 NVMe 控制器进行通信。
  3. 虚拟 SCSI 或 NVMe 控制器将命令转发到 VMkernel。
  4. VMkernel 将执行以下任务。
    1. 在 VMFS 卷中查找相应的虚拟磁盘文件。
    2. 将对虚拟磁盘上块的请求映射到相应物理设备上的块。
    3. 将修改后的 I/O 请求从 VMkernel 中的设备驱动程序发送到物理 HBA。
  5. 物理 HBA 可执行以下任务。
    1. 依据 FC 协议的规则将 I/O 请求打包。
    2. 将请求传输至 SAN。
  6. 根据 HBA 用于连接到架构的端口,其中一个 SAN 交换机会收到请求。交换机将请求路由到相应的存储设备。