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