输入/输出策略

我们可以设置 I/O 策略以跨存储数组的多个路径分配负载。
I/O 策略记录在文件 /etc/vx/dmppolicy.info 中。
不要手动编辑此文件。
可以配置的 I/O 策略有:

adaptive
balanced
minimumq
priority
round-robin
singleactive

在数组上设置所需的策略:

# vxdmpadm setattr enclosure enc1 iopolicy=[policy]

要在机箱上显示设置的策略:

# vxdmpadm getattr enclosure Disk iopolicy
ENCLR_NAME       DEFAULT        CURRENT
--------------------------------------
Disk             MinimumQ       Balanced

设置命名方案

根据我们在 VxVM 中的命名方案,为磁盘分配设备名称。
有 2 种命名方案可用:

  1. 操作系统原生
  2. 基于shell

要检查命名方案,请使用:

# vxddladm get namingscheme
NAMING_SCHEME       PERSISTENCE    LOWERCASE      USE_AVID
============================================================
OS Native           No             Yes            Yes

通过命令行更改命名方案

# vxddladm set namingscheme=ebn
# vxddladm get namingscheme
NAMING_SCHEME       PERSISTENCE    LOWERCASE      USE_AVID
============================================================
Enclosure Based     Yes            Yes            Yes

显示有关机柜的信息

要列出有关系统中所有机柜的信息:

# vxdmpadm listenclosure all
ENCLR_NAME  ENCLR_TYPE  ENCLR_SNO             STATUS       ARRAY_TYPE  LUN_COUNT
================================================================================
Disk        Disk        DISKS                 CONNECTED    Disk         6
SENA0       SENA        508002000001d660      CONNECTED    A/A          57
enc0        T3          60020f20000001a90000  CONNECTED    A/P          30

要显示有关特定机箱的信息:

# vxdmpadm listenclosure enc0
ENCLR_NAME ENCLR_TYPE ENCLR_SNO             STATUS     ARRAY_TYPE  LUN_COUNT
=============================================================================
enc0       T3         60020f20000001a90000  CONNECTED    A/P           30
查看更多教程 https://on  itroad.com

显示有关路径的信息

要显示 DMP 已知的所有子路径:

# vxdmpadm getsubpaths
NAME      STATE[A]    PATH-TYPE[M] DMPNODENAME ENCLR-NAME CTLR ATTRS
=======================================================================
c1t65d0s2 ENABLED(A)   -           Disk_1       Disk      c1    
c1t66d0s2 ENABLED(A)   -           Disk_2       Disk      c1    
c2t65d0s2 ENABLED(A)   -           Disk_1       Disk      c2    
c2t66d0s2 ENABLED(A)   -           Disk_2       Disk      c2

要获取有关连接到同一 HBA 卡控制器的所有子路径的信息:

# vxdmpadm getsubpaths ctlr=c2
NAME     STATE[-]   PATH-TYPE[-] CTLR-NAME ENCLR-TYPE ENCLR-NAME ATTRS
======================================================================
c2t1d0s2 ENABLED(A) PRIMARY      c2t1d0s2  ACME       enc0        
c2t2d0s2 ENABLED(A) PRIMARY      c2t2d0s2  ACME       enc0        
c2t3d0s2 DISABLED   SECONDARY    c2t3d0s2  ACME       enc0        
c2t4d0s2 ENABLED    SECONDARY    c2t4d0s2  ACME       enc0

同样,要获取有关连接到相同机箱和 portid 的子路径的信息:

# vxdmpadm getsubpaths enclosure=enc0 portid=1A
NAME      STATE[A]   PATH-TYPE[M] DMPNODENAME ENCLR-NAME     CTLR ATTRS
=======================================================================
c1t65d0s2 ENABLED(A) PRIMARY      c1t65d0s2   enc0           c1    
c1t66d0s2 ENABLED(A) PRIMARY      c1t66d0s2   enc0           c1

要通过 WWN 列出通过数组端口的所有子路径:

# vxdmpadm getsubpaths pwwn=20:00:00:E0:8B:06:5F:19
NAME      STATE[A]   PATH-TYPE[M] DMPNODENAME  ENCLR-NAME     CTLR ATTRS
=======================================================================
c1t65d0s2 ENABLED(A) PRIMARY      c1t65d0s2    HDS9500-ALUA0  c1    
c1t66d0s2 ENABLED(A) PRIMARY      c1t66d0s2    HDS9500-ALUA0  c1

如何检查Veritas 是否启用了 DMP

  1. 检查 DMP 是否启用最简单的方法是检查 vxdisk path 命令:
# vxdisk path
SUBPATH    DANAME    DMNAME  GROUP  STATE
c1t0d0s2   c1t0d0s2  mydg01  mydg   ENABLED
c4t0d0s2   c1t0d0s2  mydg01  mydg   ENABLED
c1t1d0s2   c1t1d0s2  mydg02  mydg   ENABLED
c4t1d0s2   c1t1d0s2  mydg02  mydg   ENABLED

如我们所见,2 个磁盘 mydg01 和 mydg02 中的每一个都有 2 个路径。

  1. 另一种方法是在单个磁盘上检查多路径:
# vxdisk list c2t0d0s2
Device  c2t0d0
devicetag  c2t0d0
type  sliced
hostid  system01
.
.
.
Multipathing information:
numpaths: 2
c2t0d0s2  state=enabled   type=primary
c1t0d0s2  state=disabled  type=secondary

numpath 参数显示磁盘有 2 条路径。

  1. 或者,我们也可以使用以下命令来检查多路径:
# vxdmpadm getsubpaths dmpnodename=devicename
# vxdmpadm getsubpaths dmpnodename=c2t66d0s2
NAME       STATE[A]    PATH-TYPE[M] CTLR-NAME ENCLR-TYPE ENCLR-NAME ATTRS
=======================================================================
c2t66d0s2  ENABLED(A)  PRIMARY      c2        ACME       enc0        
c1t66d0s2  ENABLED     PRIMARY      c1        ACME       enc0
Veritas 动态多路径 (VxDMP)教程

Veritas Dynamic Multi-Pathing (DMP) 为系统上的本机设备提供多路径功能。
DMP 创建 DMP 元设备(DMP 节点)来表示到同一物理 LUN 的所有设备 e 路径。

显示 I/O 统计信息

vxdmp iostat 命令可用于收集和显示特定路径、DMP 节点或者机箱上的 I/O 统计信息。
开始收集统计信息:

# vxdmpadm iostat start

要显示所有路径的 I/O 统计信息和累积 r/w 操作:

# vxdmpadm iostat show all
            cpu usage = 7952us    per cpu memory = 8192b
             OPERATIONS        KBYTES            AVG TIME(ms)
PATHNAME     READS WRITES      READS  WRITES     READS  WRITES
c0t0d0       1088    0         557056  0         0.00   0.00
c2t118d0     87      0         44544   0         0.00 0.00
c3t118d0     0       0         0       0         0.00 0.00
c2t122d0     87      0         44544   0         0.00 0.00

要显示有关特定路径名、DMP 节点名和机箱名称的 I/O 统计信息:

# vxdmpadm iostat show pathname=c3t115d0s2
             cpu usage = 8132us per cpu memory = 4096b
              OPERATIONS        BYTES            AVG TIME(ms)
PATHNAME      READS WRITES     READS WRITES      READS WRITES
c3t115d0s2      0    0          0      0         0.00  0.00
# vxdmpadm iostat show dmpnodename=c0t0d0s2
             cpu usage = 8501us per cpu memory = 4096b
             OPERATIONS            BYTES           AVG TIME(ms)
PATHNAME     READS WRITES       READS  WRITES      READS  WRITES
c0t0d0s2     1088   0           557056  0          0.00    0.00
# vxdmpadm iostat show enclosure=Disk
              cpu usage = 8626us per cpu memory = 4096b
         OPERATIONS BYTES AVG TIME(ms)
PATHNAME      READS WRITES     READS WRITES      READS WRITES
c0t0d0s2      1088    0        57056  0          0.00  0.00

为 iostat 命令指定间隔和示例:

# vxdmpadm iostat show dmpnodename=emc_clariion0_342 interval=1 count=2

要将 I/O 统计计数器重置为零:

# vxdmpadm iostat reset

要禁用收集 I/O 统计信息:

# vxdmpadm iostat stop

显示有关控制器的信息

要显示系统上可用的所有 HBA 控制器:

# vxdmpadm listctlr all
CTLR-NAME    ENCLR-TYPE     STATE      ENCLR-NAME
===================================================
c1           OTHER         ENABLED     other0
c2           X1            ENABLED     jbod0
c3           ACME          ENABLED     enc0
c4           ACME          ENABLED     enc0

要列出特定机箱下的控制器:

# vxdmpadm listctlr enclosure=enc0
CTLR-NAME     ENCLR-TYPE     STATE          ENCLR-NAME
======================================================
c2            ACME          ENABLED         enc0
c3            ACME          ENABLED         enc0

获取 DMP 节点信息

要列出所有机箱下的所有 DMP 节点:

# vxdmpadm list dmpnode all

要列出特定机箱 enc0 下的所有 DMP 节点:

# vxdmpadm getdmpnode enclosure=enc0
NAME     STATE   ENCLR-TYPE PATHS ENBL DSBL ENCLR-NAME
=========================================================
c2t1d0s2 ENABLED T300        2     2    0     enc0
c2t1d1s2 ENABLED T300        2     2    0     enc0
c2t1d2s2 ENABLED T300        2     2    0     enc0
c2t1d3s2 ENABLED T300        2     2    0     enc0

要获取有关特定 DMP 节点的信息:

# vxdmpadm getdmpnode nodename=c0t5006016041E03B33d0s2
NAME              STATE    ENCLR-TYPE PATHS ENBL DSBL  ENCLR-NAME
====================================================================
emc_clariion0_16 ENABLED EMC_CLARiiON  6     6    0    emc_clariion0

DMP 的工作原理

VxVM 使用 DMP 元节点(DMP 节点)访问连接到系统的磁盘设备。
对于每个磁盘,DMP 将一个节点映射到连接到磁盘的一组路径。
原始设备和块设备分别在目录 /dev/vx/rdmp 和 /dev/vx/dmp 中创建。

日期:2020-09-17 00:15:29 来源:oir作者:oir