vxdmpadm 实用程序管理 Volume Manager 的动态多路径 (DMP) 功能性。有关此命令的选项和属性的详细描述,请参阅 vxdmpadm(1M) 实用程序的手册页。 可以使用 vxdmpadm 实用程序命令 listctlr 列出所有与挂接在主机上的磁盘相连的控制器。例如,若要列出所有与主机上的磁盘相连的控制器,请使用如下命令: # vxdmpadm listctlr all 显示下列实例输出: CTLR-NAME ENCLR-TYPE STATE ENCLR-NAME ===================================================== c0 OTHER ENABLED others0 c1 SEAGATE ENABLED seagate0 c2 SEAGATE ENABLED seagate0 上面显示的输出表明: 第一个控制器 c0 与不在任何所识别的 DMP 种类下的磁盘相连 第二个和第三个控制器(c1 和 c2) 与 A5x00 (SEAGATE) 磁盘阵列相连 上面所有的控制器都处于 ENABLED 状态,这表示它们都可用于 IO 操作。状态 DISABLED 用于表示控制器不可用于 IO 操作。此不可用性可能是因为硬件故障或系 统管理员禁止在该控制器上进行 IO 操作。可使用 vxdmpadm 实用程序更改控制器状态。 若要列出与具体某个控制器相连的所有路径,可以将 getsubpaths 选项与 ctlr 属性一起使用。例如,使用如下命令: # vxdmpadm getsubpaths ctlr=c1 显示下列实例输出: NAME STATE PATH-TYPE DMPNODENAME ENCLR-TYPE ENCLR-NAME ================================================================== c1t0d0s2 ENABLED - c2t0d0s2 SEAGATE seagate0 c1t1d0s2 ENABLED - c2t1d0s2 SEAGATE seagate0 c1t2d0s2 ENABLED - c2t2d0s2 SEAGATE seagate0 c1t3d0s2 ENABLED - c2t3d0s2 SEAGATE seagate0 c1t4d0s2 ENABLED - c2t4d0s2 SEAGATE seagate0 c1t5d0s2 ENABLED - c2t5d0s2 SEAGATE seagate0 c1t6d0s2 ENABLED - c2t6d0s2 SEAGATE seagate0 c1t16d0s2 ENABLED - c2t16d0s2 SEAGATE seagate0 c1t17d0s2 ENABLED - c2t17d0s2 SEAGATE seagate0 c1t18d0s2 ENABLED - c2t18d0s2 SEAGATE seagate0 c1t19d0s2 ENABLED - c2t19d0s2 SEAGATE seagate0 c1t20d0s2 ENABLED - c2t20d0s2 SEAGATE seagate0 c1t21d0s2 ENABLED - c2t21d0s2 SEAGATE seagate0 c1t22d0s2 ENABLED - c2t22d0s2 SEAGATE seagate0 输出显示表明了与名为 c1 的控制器相连的路径 显示的附加信息表明: 路径 c1t0d0s2 (由 /dev/rdsk 和 /dev/dsk 目录中的节点表示)处于ENABLED 状态。 路径 c1t0d0s2 由 DMP metanode c1t0d0s2 表示,而 DMP metanode c1t0d0s2 由 /dev/vx/dmp 和 /dev/vx/rdmp 目录中的设备节点表示。 可以将 getsubpaths 选项与 dmpnodename 属性一起使用,列出与 LUN (由 DMP 设备表示)相连的所有路径。例如,若要列出有关指向 LUN 命名的 c1t0d0s2 的路径信息,请使用如下命令: # vxdmpadm getsubpaths dmpnodename=c1t0d0s2 显示下列实例输出: NAME STATE PATH-TYPE CTLR-NAME ENCLR-TYPE ENCLR-NAME ================================================================== c2t0d0s2 DISABLED - c2 SEAGATE seagate0 c1t0d0s2 ENABLED - c1 SEAGATE seagate0 上面的列表显示了有两条路径可到达 DMP 设备 c1t0d0s2,分别是 c1t0d0s2 和c2t0d0s2。附加信息表明其中只有一条路径可用于 I/O 操作。其中一条路径处于 ENABLED 状态,另一条处于 DISABLED 状态。两条路径都在 SEAGATE 磁盘阵列中。 若要检索控制特定路径的 DMP 设备的名称,可使用下列命令将 getdmpnode 选项与nodename 属性结合起来: # vxdmpadm getdmpnode nodename=c1t0d0s2 显示下列实例输出: NAME STATE ENCLR-TYPE PATHS ENBL DSBL ENCLR-NAME =============================================================== c2t0d0s2 ENABLED SEAGATE 2 2 0 seagate0 此实例输出显示了路径 c2t0d0s2 由具有两条路径的 DMP 设备 c2t0d0s2 所拥有。 DMP 支持的磁盘阵列 注意DMP 功能支持的阵列是 Volume Manager 支持的阵列的子集。下列阵列有多条路径可以到达同一磁盘。这里没有列出的阵列只有一条路径可到达物理磁盘。 Volume Manager 的动态多路径功能支持下列阵列: EMC Symmetrix™ HP SureStore™ E Disk Array XP256 IBM Enterprise Storage Servers™ (ESS) Hitachi Data Systems™ 5700E Disk Array Subsystem™ Hitachi Data Systems 5800E/7700E Disk Array Subsystem™ Sun StorEdge A5x00 Array™ Sun StorEdge T3 Array™ JBOD (几张磁盘) SEAGATE 磁盘,在标准 SCSI 查询数据中返回唯一序列号 Storage Computer™ OmniRaid™ 磁盘阵列。若要在使用 Volume Manager 3.1 时使Storage Computer 磁盘阵列有多条与系统相连的路径,必须为每一个连接到机器的磁盘阵列指定一个唯一的系统名 。ftp 站点 www.storage.com 处的 RAID-5 用户手册描述了如何为 Storage Computer 磁盘阵列设置系统名。 ECCS™ Synchronix™ 阵列
DMP 与驱动程序共存 Volume Manager 的动态多路径功能还支持与下列阵列共存: 在系统上安装了 ATF 驱动程序的 DG CLARiiON SYMBIOS Sun StorEdge A3000/A3500 阵列,只有当系统上安装了 RDAC 驱动程序时 DMP 和 Sun StorEdge T3 阵列 VERITAS Volume Manager 的动态多路径功能支持主动/ 被动方式的 Sun StorEdge T3阵列。 DMP 仅在具有如下配置的 T3 磁盘阵列上有效: 磁盘阵列上固件的最小级别必须是 1.0 修订版。 mp_support 参数必须设置为 rw。 DMP 和 JBOD 磁盘阵列支持 JBOD 驱动器上的动态多路径功能使 DMP 能够使用 VxVM 使 JBOD 磁盘阵列有多条与系统相连的路径。这些 JBOD 磁盘阵列/ 磁盘可以包含来自任何供应商的磁盘。但是, 只有当满足下列条件时, DMP 才能正确检测到这些磁盘/磁盘阵列的多条路径: 标准 SCSI INQUIRY DATA(字节 36-47)的序列号字段对任何连接到 JBOD 的磁盘应该是“全球唯一的”。用户在尝试配置 DMP 以将这些磁盘添加到 DMP 的 JBOD 种类时,必须知道以上这一事实。 注意如果任何磁盘都没有提供唯一序列号,则 DMP 无法正确检测到磁盘的多条路径,而且结果不可预测。请与 JBOD 磁盘/磁盘阵列供应商联系,了解有关磁盘序列号唯一性的正确信息。 要求 DMP 多路径功能性的 JBOD 磁盘阵列应该是活动/活动类型。这意味着 JBOD 磁盘阵列上到所有 LUN 的所有路径都应该可以通过所有路径同时存取,而不会导致任何性能降低。 一旦知道与 JBOD 磁盘阵列相连的磁盘满足以上条件,必须遵从下面四个步骤获得 DMP的 JBOD 种类下的这些磁盘: 1. 转到 /kernel/drv 目录 2. 在该目录下编辑文件 vxdmp.conf 3. 您将在 vxdmp.conf 中看到下列默认项: dmp_jbod="HITACHI" 例如,假设有一个 JBOD 与包含 DG Clariion 磁盘的机器相连。需要知道这些磁盘返回的精确供应商 ID 字符串以配置 DMP。这将确保在 JBOD 种类下要求所需的磁盘。 format 命令可用于接收磁盘的供应商 ID 字符串(有关 format 命令的详细信息,请参阅系统上的format(1M) 手册页)。供应商 ID 字符串包含在磁盘返回的标准 SCSI INQUIRY 数据的第 8 - 15 个字节中。format 命令(在磁盘上执行时)的 inquiry 选项返回与输出的 供应商:字段下的磁盘关联的供应商 ID。例如, DG Clariion 磁盘可能返回供应商 ID string “DGC” 该字符串必须以如下形式包含在 vxdmp.conf 文件中: dmp_jbod="DGC"; 如果一个 JBOD 磁盘阵列中有来自多个供应商的磁盘,则应在 vxdmp.conf 文件中指定所有供应商的供应商 ID。如果没有这样做,则属于 dmp_jbod[] 阵列中没有提到的供应商的磁盘不由 DMP 提供多条路径,并且属于 OTHER DISKS 种类。(OTHER DISKS 是一个单独的磁盘种类,其下的磁盘均不由 DMP 提供多条路径,并且不属于 DMP 支持的任何种类。) 下列实例显示如何为 dmp_jbod[] 阵列中的多个供应商添加项。 dmp_jbod="DGC", "IBM", "FUJITSU"; 在 vxdmp.conf 文件中指定的供应商 ID 的长度不能超过 8 个字符。如果在 vxdmp.conf文件中指定的供应商 ID 字符串超过 8 个字符,控制台上将显示下列信息: NOTICE:vxvm:vxdmp: Invalid Vendor ID = <vendor_id> specified in vxdmp.conf Action:Remove or correct this entry in the vxdmp.conf file. 4. 在编辑完 vxdmp.conf 文件,添加了所需的项后,应重新启动系统以便 DMP 可以为指定的 JBOD 提供多条路径。 Sun StorEdge A5x00 阵列 本节内容适合 A5000、A5100 和 A5200 磁盘阵列。这些磁盘阵列由 SEAGATE 种类下的VxVM (DMP) 要求。 当取下将这些磁盘阵列中的任何一个与主机相连的电缆,并且在主机上执行命令drvconfig、disks 和 vxdctl enable 时,DMP 不以标准的 c#t#d#s# 格式显示路径 名。相反,将显示 NONAME 字符串以表示已删除路径的名称。 例如,假设主机与其中一个 A5x00 磁盘阵列相连。该磁盘阵列通过两条光缆与主机相连。 该磁盘阵列上有一个磁盘。有两条路径可以到达这个磁盘,分别是/dev/[r]dsk/c1t33d0s2 和 /dev/[r]dsk/c2t33d0s2。当此磁盘用于 VxVM 时,在此磁盘上执行的vxdisk list <daname> 命令将显示如下内容: # vxdisk list c1t33d0s2 Device: c1t33d0s2 devicetag: c1t33d0 type: sliced hostid: gluon.veritas.com disk: name=rootdisk id=933470913.1042.gluon.veritas.com group: name=rootdg id=933470911.1025.gluon.veritas.com flags: online ready autoconfig autoimport imported pubpaths: block=/dev/vx/dmp/c1t33d0s6 char=/dev/vx/rdmp/c1t33d0s6 privpaths: block=/dev/vx/dmp/c1t33d0s7 char=/dev/vx/rdmp/c1t33d0s7 version: 2.1 iosize: min=512 (bytes) max=2048 (blocks) public: slice=6 offset=1 len=35363560 private: slice=7 offset=1 len=4711 update: time=933471058 seqno=0.9 headers: 0 248 configs: count=1 len=3448 logs: count=1 len=522 Defined regions: config priv 000017-000247[000231]: copy=01 offset=000000 enabled config priv 000249-003465[003217]: copy=01 offset=000231 enabled log priv 003466-003987[000522]: copy=01 offset=000000 enabled Multipathing information: numpaths: 2 c1t33d0s2 state=enabled c2t33d0s2 state=enabled 在取下与控制器 c2 相连的电缆并且在系统上执行 vxdctl enable 命令后,显示的内容变成: # vxdisk list c1t33d0s2 Device: c1t33d0s2 devicetag: c1t33d0 type: sliced hostid: gluon.veritas.com disk: name=rootdisk id=933470913.1042.gluon.veritas.com group: name=rootdg id=933470911.1025.gluon.veritas.com flags: online ready autoconfig autoimport imported pubpaths: block=/dev/vx/dmp/c1t33d0s6 char=/dev/vx/rdmp/c1t33d0s6 privpaths: block=/dev/vx/dmp/c1t33d0s7 char=/dev/vx/rdmp/c1t33d0s7 version: 2.1 iosize: min=512 (bytes) max=2048 (blocks) public: slice=6 offset=1 len=35363560 private: slice=7 offset=1 len=4711 update: time=933471058 seqno=0.9 headers: 0 248 configs: count=1 len=3448 logs: count=1 len=522 Defined regions: config priv 000017-000247[000231]: copy=01 offset=000000 enabled config priv 000249-003465[003217]: copy=01 offset=000231 enabled log priv 003466-003987[000522]: copy=01 offset=000000 enabled Multipathing information: numpaths: 2 c1t33d0s2 state=enabled NONAME state=disabled 同样, vxdmpadm 命令的输出对已经删除的路径名显示的也是 NONAME 字符串。例如,如果从主机中删除控制器 c1 ,则 vxdmpadm 命令将显示以下内容: # vxdmpadm getsubpaths ctlr=/c1 NAME STATE TYPE DMPNODENAME DA-TYPE DA-SNO ================================================================= NONAME DISABLED - c1t36d0s2 SEAGATE SEAGATE_DISKS NONAME DISABLED - c1t49d0s2 SEAGATE SEAGATE_DISKS NONAME DISABLED - c1t38d0s2 SEAGATE SEAGATE_DISKS NONAME DISABLED - c1t37d0s2 SEAGATE SEAGATE_DISKS NONAME DISABLED - c1t53d0s2 SEAGATE SEAGATE_DISKS NONAME DISABLED - c1t34d0s2 SEAGATE SEAGATE_DISKS NONAME DISABLED - c1t51d0s2 SEAGATE SEAGATE_DISKS NONAME DISABLED - c1t54d0s2 SEAGATE SEAGATE_DISKS NONAME DISABLED - c1t52d0s2 SEAGATE SEAGATE_DISKS NONAME DISABLED - c1t33d0s2 SEAGATE SEAGATE_DISKS NONAME DISABLED - c1t50d0s2 SEAGATE SEAGATE_DISKS NONAME DISABLED - c1t32d0s2 SEAGATE SEAGATE_DISKS NONAME DISABLED - c1t48d0s2 SEAGATE SEAGATE_DISKS NONAME DISABLED - c1t35d0s2 SEAGATE SEAGATE_DISKS 还应注意,当用于命名 DMP 元设备(代表 LUN)的路径被删除时,DMP 使用备选路径的名称来命名 DMP 元设备。 例如,假定有两条路径可到达 LUN,分别是 c1t33d0s2 和 c2t33d0s2。代表 LUN 的DMP 元设备名为 c1t33d0s2,且处于 ONLINE 状态。如果取下与控制器 c1 相连的电缆,然后执行 vxdctl enable 命令,则 DMP 元设备将被重命名为 c2t33d0s2。结果,有两个元设备与用户可以看见的同一个 LUN 相对应。这两个元设备中可能有一个处于错误状态,而另一个处于联机状态。注意这不是问题。但是,当在曾用于命名 DMP 设备的原始daname 上执行 vxdisk list <daname> 命令时,上述这种情况将导致某些出错讯息。向用户显示的不是多路径 信息,而是如下出错讯息: vxvm:vxdisk: 错误:<da_name> 不是有效的 DMP 节点磁盘存取名。 可使用 rm 命令删除无法再存取的磁盘路径。 |