两道门各管一层
Zoning 与 LUN 掩码是两道不同层次的访问控制。Zoning 在 FC fabric 层执行,决定「哪些端口能互相登录通信」,粒度是端口或 WWN,与 LUN 无关;LUN 掩码(masking、mapping)在存储阵列前端或主机侧执行,决定「某台主机能看到哪些 LUN、这些 LUN 以什么号呈现」,粒度是 LUN。少了任何一道,控制权就交给了对方:只做 Zoning,主机可能看见不该看的 LUN;只做掩码,非授权主机仍能登录到阵列前端端口。
基本信息
| 适用环境 | FC SAN 与 iSCSI SAN |
|---|---|
| Zoning 执行位置 | FC 交换机(ASIC 转发面 / 名称服务) |
| 掩码执行位置 | 存储阵列前端;部分场景也可在主机 HBA 驱动侧过滤 |
| 控制粒度 | 端口或 WWN 对 LUN 号 |
| 典型故障表现 | Zoning 错=看不到 target;掩码错=能登录但看不到 LUN |
| 变更影响面 | 激活 zone set 触发 RSCN;掩码变更通常只影响被改主机 |
典型使用场景
- 新建主机接入:先确认分区内能登录到阵列前端端口,再核对 LUN 可见性
- 排障定位:先分清是「看不到 target」还是「看得到 target 但看不到 LUN」
- 多租户隔离:分区按业务/租户划分通信边界,掩码按主机划分 LUN 视图
- 权限清理:主机下线时同时回收分区成员与阵列映射,避免残留访问权
- 合规审计:核对「分区内的主机」与「映射到 LUN 的主机」两份清单是否一致
主机侧观察两层的检查点
主机侧观察两层的检查点
# fabric 层:名称服务里是否存在目标存储端口
nsshow | grep -i '20:00' # 查看已登录的存储 pWWN
# 主机侧:先看 target,再看 LUN
cat /sys/class/fc_remote_ports/*/port_name # 主机可见的远端端口
lsscsi -t # 列出设备及传输类型(fc/iscsi)
multipath -ll # 归并后每个 LUN 的路径数
# 掩码层:主机看到的 LUN 号是否与阵列分配一致
cat /proc/scsi/scsi | grep -A2 -i vendor # 查看 SCSI 设备与厂商信息职责划分对照
| 对比项 | Zoning | LUN 掩码 |
|---|---|---|
| 作用层 | fabric 层(交换机) | 存储/主机层(阵列前端) |
| 控制对象 | 端口之间的通信权 | LUN 可见性与 LUN 号 |
| 失效后果 | 登录不到阵列前端端口 | 看到多余或缺少 LUN |
| 变更影响面 | 激活触发 RSCN,全 fabric 感知 | 通常只影响被改主机 |
| 能否互相替代 | 不能 | 不能 |
阵列侧术语差异较大:有的厂商用 host 或主机组加 LUN 映射,有的用 igroup 加 lun map,有的用 storage group 加 masking view,概念相近但划分方式不同,操作前以对应厂商文档为准。
只靠 Zoning 保护数据是常见误区:分区只限制谁能和谁通信,只要主机在分区内且被阵列加入了映射,它就能读写这些 LUN,敏感数据必须靠掩码收敛可见范围。