4. 数据平面安全隔离

控制平面的权限决定“谁能下发命令”,而数据平面决定“数据实际从哪条路走、能走多快、能和谁共享”。在 Pure Storage 环境中,数据平面隔离的核心不是把阵列切成多台设备,而是围绕主机访问路径建立可验证的边界:同一台 FlashArray 或 FlashBlade 上,不同业务、不同租户、不同安全等级的主机,必须通过各自独立的协议入口、独立的网络分区和独立的性能配额访问存储,避免“权限对了但路径串了”的隐性越权。

主机访问路径的四个隔离层

一条完整的主机访问路径可以拆成四层,每层都有独立的隔离手段:

  • 物理/链路层:FC 用独立 HBA 端口与 SAN 交换机 zone 隔离;iSCSI/NVMe-oF 用独立 VLAN 或独立物理网卡隔离;NFS/SMB 用独立业务网段隔离。
  • 协议入口层:FlashArray 上 FC 端口、iSCSI 目标门户、NVMe-oF 子系统 NQN 是不同入口;FlashBlade 上 NFS 导出、SMB 共享、S3 桶是不同入口。
  • 身份映射层:主机通过 WWN、IQN、NQN 或 IP 被识别为 host 对象,再绑定到卷、文件系统或快照。
  • 性能边界层:通过 QoS 策略限制每主机或每卷的 IOPS、带宽,防止单租户抢占共享资源。

这四层中,前三层解决“能不能到”,第四层解决“到了之后会不会影响别人”。很多隔离事故并非权限配错,而是不同安全域的主机共用同一 iSCSI 门户或同一 NFS 导出网段,导致路径层已经混在一起。

数据平面隔离:主机访问路径与协议入口 主机 / 租户侧 租户A · 数据库 FC HBA / WWN 租户B · 虚拟化 iSCSI IQN 租户C · AI训练 NVMe-oF NQN 租户D · 文件共享 NFS / SMB IP 租户E · 备份 S3 / 独立网段 网络隔离层 FC SAN Zone 独立交换机 iSCSI VLAN 110 独立子网 RoCE VLAN 120 无损以太网 文件网段 10.20 NFS/SMB 分离 备份网段 10.30 S3 独立 Pure Storage 阵列 · 协议入口与资源边界 FC 端口 WWN 映射 iSCSI 门户 IQN 映射 NVMe-oF NQN 子系统 NFS 导出 IP 白名单 SMB 共享 AD 域控 S3 端点 桶策略 卷 / 文件系统 / 桶 · 绑定到 Host 对象 WWN / IQN / NQN / IP → Host → Volume / FS / Bucket 跨租户不可见,快照与克隆继承同一隔离边界 QoS 边界 · 性能隔离 每主机 / 每卷 IOPS 上限、带宽上限 突发桶 + 稳态限速,防止单租户抢占共享资源 隔离原则:协议入口独立、网络分区独立、Host 映射独立、QoS 配额独立;任一层共用即视为边界失效

协议隔离的关键差异

不同协议在隔离粒度上并不等价,配置时必须按协议特性分别处理:

协议 身份标识 隔离手段 常见越界风险
FC WWN Zone 划分、端口绑定 Zone 过宽导致主机看到未授权 LUN
iSCSI IQN + IP VLAN、CHAP、门户隔离 共用门户导致跨租户发现目标
NVMe-oF NQN 子系统隔离、RoCE VLAN NQN 命名空间共享导致误挂载
NFS IP / 客户端 导出白名单、root_squash 导出网段过宽导致任意主机可挂载
SMB AD 账户 共享权限、ACL、域隔离 共享权限继承导致跨部门可见

以 iSCSI 为例,若租户 A 与租户 B 共用同一目标门户 IP,即使 CHAP 认证不同,B 仍可能通过发现会话看到 A 的 IQN 列表。正确做法是为每个租户分配独立的目标门户 IP 或独立 VLAN,并在交换机侧禁止跨 VLAN 的 iSCSI 流量。NVMe-oF 同理,不同租户应使用不同 subsystem NQN,且 RoCE 流量必须走独立无损队列,避免 PFC 风暴跨租户传播。

多租户与 QoS 边界的落地方法

多租户隔离在 Pure Storage 上通常通过“Host 对象 + 卷/文件系统 + QoS 策略”三者绑定实现。以下是一个可参考的配置示例,假设一台 FlashArray 同时服务三个租户:

# 示例:为租户B创建独立 iSCSI Host 并绑定卷与 QoS
purehost create --iqn iqn.2024-06.com.tenantb:esxi01 tenantb-esxi01
purevol create --size 4T tenantb-datastore01
purehost connect --host tenantb-esxi01 --vol tenantb-datastore01

# 创建 QoS 策略:稳态 20000 IOPS,突发 40000 IOPS,突发窗口 30s
pureqos create --name tenantb-qos --iops-limit 20000 --burst-iops 40000 --burst-window 30
pureqos apply --name tenantb-qos --vol tenantb-datastore01

# 验证绑定关系
purehost list --connect tenantb-esxi01
pureqos list --vol tenantb-datastore01

上述参数为教学示例,实际值需根据业务峰值和阵列规格调整。关键判断依据是:purehost list --connect 应只显示该租户自己的卷;pureqos list --vol 应显示策略已生效。若发现其他租户卷出现在同一 Host 下,说明 Host 映射边界已被破坏。

验证隔离是否真正生效的三个检查点:
  • 主机侧执行 iscsiadm -m session 或 multipath -ll,确认只看到本租户 LUN,且路径数符合设计。
  • 在交换机或阵列侧抓包,确认 iSCSI/NVMe-oF 流量未跨 VLAN 泄漏。
  • 用 fio 或 vdbench 对租户 B 打满 QoS 上限,同时观察租户 A 的延迟是否稳定,验证性能边界有效。
常见误区:把“权限隔离”等同于“数据平面隔离”。Pure Storage 的 host 映射只解决“谁能看到哪个卷”,但如果两个租户共用同一 iSCSI 门户、同一 NFS 导出网段或同一 RoCE 队列,路径层仍然共享,故障域和性能域并未真正分开。安全隔离必须同时覆盖身份、路径和性能三个维度。

最后需要强调,数据平面隔离不是一次性配置,而是随租户增减、协议升级和网络调整持续维护的边界。每次新增主机或卷时,都应重新检查:协议入口是否独立、网络分区是否独立、Host 映射是否独立、QoS 配额是否独立。四个“独立”同时成立,数据平面隔离才算闭环。