4. 源端与目标端存储发现

存储迁移项目最容易出问题的环节,往往不是数据拷贝本身,而是“没搞清楚自己有什么”。源端阵列上到底有多少个 LUN、哪些 LUN 映射给了哪台主机、哪些文件系统挂载在哪些设备上、阵列之间还有多少条复制关系在跑——这些信息如果只靠运维人员凭记忆或零散文档整理,几乎必然出现遗漏。存储发现(Storage Discovery)就是把这些资产从“人脑里的印象”变成“可核对的结构化清单”的过程,它是迁移方案设计、停机窗口估算和回滚预案制定的共同输入。

发现要清点的四类核心资产

在 Dell 企业存储环境中,一次完整的发现至少应覆盖四个层面,它们之间存在明确的依赖关系:

  • 物理与逻辑存储层:阵列型号、微码版本、磁盘组/存储池、RAID 级别、可用容量与已用容量。这一层决定了目标端是否有足够的空间和性能承载源端负载。
  • LUN / 卷层:每个 LUN 的 ID、容量、所属存储池、ALUA 归属控制器、是否启用精简(Thin)、是否属于某个一致性组(Consistency Group)。
  • 主机映射层:LUN 通过哪些前端端口、以什么 LUN 编号映射给哪台主机的哪个 HBA WWN/initiator,即 Masking 视图(IG、Port Group、LUN Mapping)。
  • 文件系统与复制关系层:主机侧文件系统类型、挂载点、容量与使用率;阵列侧 SnapVX 快照、SRDF/Metro、Live Volume、异步复制等关系的源与目标。

这四层不是并列的,而是“物理池 → LUN → 映射 → 文件系统/复制”的逐层收敛关系。发现工作的价值就在于把这条链完整串起来,任何一层断裂都会导致迁移时“找不到盘”或“映射错主机”。

存储发现四层资产链与工具分工 源端 → 目标端逐层收敛,任一层断裂都会导致迁移映射失败 ① 物理/逻辑层 阵列 · 池 · RAID 阵列型号 / 微码版本 / 存储池容量与已用率 / RAID 级别 / 磁盘组健康状态 关键输出:目标端可用容量 ≥ 源端已用容量 × 1.2(含快照与增长余量) 工具:Unisphere / SYMCLI symcfg list · symdisk list ② LUN / 卷层 设备 · 容量 · 属性 LUN ID / 容量 / 所属池 / ALUA 归属控制器 / Thin 精简 / 一致性组归属 关键输出:LUN 清单(含 Device ID、WWN、容量、属性),用于目标端卷规划 工具:SYMCLI symdev list -sid xxx · symcfg list -tdev ③ 主机映射层 Masking · WWN Initiator Group (IG) / Port Group / LUN Mapping / 主机 HBA WWN / 多路径状态 关键输出:主机—LUN 映射矩阵,确认每台主机可见的 LUN 编号与路径 工具:SYMCLI symaccess list · symmaskdb list · 主机端 multipath -ll ④ 文件系统/复制层 挂载 · 快照 · SRDF 文件系统类型 / 挂载点 / 使用率 / SnapVX 快照 / SRDF 或 Live Volume 复制关系 关键输出:文件系统清单 + 复制关系拓扑,决定迁移顺序与停机窗口 工具:df -hT · symsnapvx list · symrdf list · Unisphere SRDF 视图 源端与目标端各执行一次,逐层比对

Dell 原生工具:从 Unisphere 到 SYMCLI

对于 PowerMax / VMAX 系列,最直接的发现入口是 Unisphere for PowerMax 的图形界面,但真正适合批量清点和留档的是 SYMCLI 命令行。以下是一组常用的发现命令,建议在源端和目标端各执行一次并保存输出:

# 1. 阵列基本信息与微码版本
symcfg list -sid 1234

# 2. 存储池容量与已用率
symcfg list -pool -sid 1234 -detail

# 3. LUN(设备)清单:ID、容量、属性
symdev list -sid 1234 -noheader | head -50

# 4. 主机映射关系(Masking View)
symaccess list view -sid 1234
symaccess show view <view_name> -sid 1234

# 5. 复制关系
symrdf list -sid 1234
symsnapvx list -sid 1234

对于 PowerStore 或 Unity XT,则分别使用 PowerStore Manager / Unisphere for Unity 的 REST API 或 CLI(如 pstcli、uemcli)导出卷、主机、主机组和映射信息。关键原则是:不要只截图,要导出结构化数据(CSV 或 JSON),因为后续比对和迁移规划需要按字段筛选。

第三方工具:补齐主机侧与跨厂商视角

Dell 工具擅长阵列内部视角,但主机侧的文件系统、多路径状态、集群配置往往需要第三方工具补充。常用的组合包括:

  • 主机侧发现:Linux 上用 lsblk、multipath -ll、df -hT、lsscsi 获取磁盘、路径、文件系统与挂载点;Windows 上用 Disk Management、mpio 工具或 PowerPath 的 powermt display dev=all。
  • 跨厂商清点:当环境中有多品牌阵列时,可用开源工具如 lsblk 结合 /sys/class/scsi_device 或商业工具(如 NetApp 的 OnCommand、Broadcom 的 SAN 管理套件)统一采集。
  • SAN 交换机侧:通过 Brocade 或 Cisco MDS 的 switchshow、zoneshow 确认 Zone 配置,避免迁移后主机看不到新阵列端口。
建议把发现结果整理成一张“主机—LUN—文件系统—复制关系”的关联表,而不是四张独立的表。关联表能直接暴露“某个 LUN 映射给了主机但主机上没有文件系统”或“文件系统挂载了但复制关系未覆盖”这类隐患。

发现结果的核对与常见陷阱

发现完成后,至少要做三项交叉核对:第一,源端 LUN 总数与主机侧可见磁盘数是否一致(考虑多路径后应等于 LUN 数);第二,每个文件系统对应的设备 WWN 是否能在阵列 LUN 清单中找到;第三,复制关系中的源 LUN 是否都在迁移范围内,避免遗漏正在同步的卷。

常见陷阱包括:精简卷的已用容量远小于配置容量,迁移时若按配置容量规划会浪费目标端空间;ALUA 归属控制器在目标端可能不同,需要重新确认路径优先级;一致性组中的 LUN 必须整体迁移,拆散会导致快照或复制关系失效。这些细节都依赖发现阶段拿到完整属性,而不是只看容量数字。

发现阶段不要修改任何映射或复制配置。所有命令应以只读方式执行,导出文件按“源端/目标端 + 日期 + 阵列 SID”命名归档,作为迁移前后比对的基线。

把四层资产清点清楚之后,迁移方案才有可靠的输入:目标端需要建多少卷、每台主机要改哪些 Zone 和 Masking、哪些复制关系需要先暂停或重建、停机窗口要覆盖哪些文件系统。发现不是一次性的动作,而应在迁移前、迁移中、迁移后各执行一次,用同一套字段做差异比对,才能确认迁移真正完成且没有遗漏。