User Tools

Site Tools


aix:emc_multipath

EMC multipathing

ODM definitions can be downloaded from ftp://ftp.emc.com/pub/elab/aix/ODM_DEFINITIONS/

Software Used:

    * Virtual I/O v1.3.0.1-FP-8.1
    * EMC Navisphere Agent / Client v6.24
    * EMC ODM Filesets v5.3.0.0
    * EMC PowerPath Filesets v5.0.0.0

The following steps will allow you to change the reserve_lock setting on the VIO Server:

1. Let's see the current setting.

$ oem_seup_env (to leave the restricted shell)

# lsattr -El hdiskpower2
cgname                                                                  Consistency Group Name         True
clr_q                       no                                           Clear Queue (RS/6000)            True
location                                                                  Location                                         True
lun_id                    0x2000000000000         LUN ID                                           False
lun_reset_spt      yes                                          FC Forced Open LUN                  True
max_coalesce      0x100000                            Maximum coalesce size             True
max_transfer      0x100000                            Maximum transfer size            True
pvid                        none                                        Physical volume identifier     False
pvid_takeover    yes                                           Takeover PVIDs from hdisks   True
q_err                     yes                                           Use QERR bit                                True
q_type                  simple                                     Queue TYPE                                 False
queue_depth      32                                             Queue DEPTH                             True
reassign_to         120                                           REASSIGN time out value      True
reserve_lock       yes                                            Reserve device on open            True
rw_timeout        30                                             READ/WRITE time out            True
scsi_id                  0x21000                                 SCSI ID                                          False
start_timeout   60                                              START unit time out                True
ww_name          0x5006016830603e48     World Wide Name                     False

2. Let's try and change the setting with an LPAR running.

# chdev -l hdiskpower0 -a reserve_lock=no

Method error (/etc/methods/chgpowerdisk):
        0514-062 Cannot perform the requested function because the
                 specified device is busy.

3. The error in step 2 makes sense because we have mapped the physical device to a virtual device.

$ lsmap -vadapter vhost3
SVSA                    Physloc                                                           Client Partition ID
---------------           --------------------------------------------               ------------------
vhost3                  U9131.52A.063448G-V1-C22               0x00000002

VTD                       vhdiskpower2
LUN                       0x8100000000000000
Backing device   hdiskpower2
Physloc                 U787F.001.DPM1545-P1-C5-T1-L8

4. Shutdown the LPAR that is using the device in step 3.

5. Remove the virtual adapter and its mapping.

# exit (to return to the restricted shell)

$ rmdev -dev vhost3 -recursive
vhdiskpower2 deleted
vhost3 deleted

6. Change the reserve_lock setting.

# chdev -l hdiskpower2 -a reserve_lock=no
hdiskpower2 changed

7. Let's make sure the setting changed.

$ oem_seup_env (to leave the restricted shell)

# lsattr -El hdiskpower2
cgname                                                                  Consistency Group Name         True
clr_q                       no                                           Clear Queue (RS/6000)            True
location                                                                  Location                                         True
lun_id                    0x2000000000000         LUN ID                                           False
lun_reset_spt      yes                                          FC Forced Open LUN                  True
max_coalesce      0x100000                            Maximum coalesce size             True
max_transfer      0x100000                            Maximum transfer size            True
pvid                        none                                        Physical volume identifier     False
pvid_takeover    yes                                           Takeover PVIDs from hdisks   True
q_err                     yes                                           Use QERR bit                                True
q_type                  simple                                     Queue TYPE                                 False
queue_depth      32                                             Queue DEPTH                             True
reassign_to         120                                           REASSIGN time out value      True
reserve_lock       no                                             Reserve device on open            True
rw_timeout        30                                             READ/WRITE time out            True
scsi_id                  0x21000                                 SCSI ID                                          False
start_timeout   60                                              START unit time out                True
ww_name          0x5006016830603e48     World Wide Name                     False

8. Now that we have verified the changes, we need to re-create our virtual device.

# exit (to return to the restricted shell)

$ cfgdev (to bring back vhost3)

$ mkvdev -vdev hdiskpower2 -vadapter vhost3 -dev vhdiskpower2
vhdiskpower2 Available

$ lsmap -vadapter vhost3
SVSA                    Physloc                                                           Client Partition ID
---------------           --------------------------------------------               ------------------
vhost3                  U9131.52A.063448G-V1-C22               0x00000002

VTD                       vhdiskpower2
LUN                       0x8100000000000000
Backing device   hdiskpower2
Physloc                 U787F.001.DPM1545-P1-C5-T1-L8

9. You can now activate the LPAR that was using this device.

PowerPath commands

powermt display – Display High Level HBA I/O Paths

powermt display command (without any arguments), displays the available HBAs and their current status. The following examples, shows that there are 2 HBAs connected to the server, both the HBAs are in active condition with 2 I/O path’s each. qla2xxx indicates that it is using the Q-Logic HBA card.

This also indicates that the connected EMC device is CLARiiON, as it displays a value for “CLARiiON logical device count” as 1.

# powermt display
Symmetrix logical device count=0
CLARiiON logical device count=1
Hitachi logical device count=0
Invista logical device count=0
HP xp logical device count=0
Ess logical device count=0
HP HSx logical device count=0
===================================================
===========================
----- Host Bus Adapters ---------  ------ I/O Paths
 -----  ------ Stats ------
###  HW Path                       Summary   Total   Dead  IO/Sec Q-IOs Errors
==============================================================================
   1 qla2xxx                       optimal       2      0       -     0      0
   2 qla2xxx                       optimal       2      0       -     0      0

powermt display dev=all – Display All Attached LUNs

This is the most frequently used powermt command, which will display all the attached logical devices to the server.

# powermt display dev=all
Pseudo name=emcpowera
CLARiiON ID=AAA00000000000 [dev-server]
Logical device ID=1111111111111111111 [LUN 1]
state=alive; policy=CLAROpt; priority=0; queued-IOs=0
Owner: default=SP B, current=SP B       Array failover mode: 1
==============================================================================
---------------- Host ---------------   - Stor -   -- I/O Path -  -- Stats ---
###  HW Path                I/O Paths    Interf.   Mode    State  Q-IOs Errors
==============================================================================
   1 qla2xxx                   sdd       SP A4     active  alive      0      0
   1 qla2xxx                   sde       SP B4     active  alive      0      0
   2 qla2xxx                   sdf       SP A5     active  alive      0      0
   2 qla2xxx                   sdg       SP B5     active  alive      0      0
Pseudo name=emcpowerb
CLARiiON ID=AAA00000000000 [dev-server]
Logical device ID=2111111111111111111 [LUN 2]
state=alive; policy=CLAROpt; priority=0; queued-IOs=0
Owner: default=SP A, current=SP A       Array failover mode: 1
==============================================================================
---------------- Host ---------------   - Stor -   -- I/O Path -  -- Stats ---
###  HW Path                I/O Paths    Interf.   Mode    State  Q-IOs Errors
==============================================================================
   1 qla2xxx                   sdh       SP A4     active  alive      0      0
   1 qla2xxx                   sdi       SP B4     active  alive      0      0
   2 qla2xxx                   sdj       SP A5     active  alive      0      0
   2 qla2xxx                   sdk       SP B5     active  alive      0      0

The above indicates that there are two LUNs attached to the dev-server with 4 I/O paths from the server to the SAN storage device.

The above command output indicates the following:

Pseudo name=emcpowera
 – The device name that can be used by the server. For example, /dev/emcpowera CLARiiON ID=AAA00000000000 [dev-server] 
 - EMC CLARiiON CX3 serial number and the server name Logical device ID=11111111 [LUN 1]
 – LUN number. For example, LUN 1 state=alive; policy=CLAROpt;
 – This displays that this particular LUN is valid and using the CLAROpt policy Owner: default=SP B, current=SP B
 – This indicates that the default (and current) owner for this LUN is storage processor SP B.

powermt display dev=emcpowera – Display specific LUN

When there are multiple LUNs connected to a server, you might want to view information about a specific LUN by providing the logical name of the LUN as shown below

# powermt display dev=emcpowera
Pseudo name=emcpowera
CLARiiON ID=AAA00000000000 [dev-server]
Logical device ID=1111111111111111111 [LUN 1]
state=alive; policy=CLAROpt; priority=0; queued-IOs=0
Owner: default=SP B, current=SP B       Array failover mode: 1
==============================================================================
---------------- Host ---------------   - Stor -   -- I/O Path -  -- Stats ---
###  HW Path                I/O Paths    Interf.   Mode    State  Q-IOs Errors
==============================================================================
   1 qla2xxx                   sdd       SP A4     active  alive      0      0
   1 qla2xxx                   sde       SP B4     active  alive      0      0
   2 qla2xxx                   sdf       SP A5     active  alive      0      0
   2 qla2xxx                   sdg       SP B5     active  alive      0      0

If the device is not available, you’ll get a “Bad dev value” as shown below.

# powermt display dev=emcpowerc
Bad dev value emcpowerc, or not under Powerpath control.

powermt check_registration – Display PowerPath Registration Key / Status

If you’ve lost the PowerPath registration key that you’ve used during the EMC PowerPath installation, you can retrieve it using the following command.

# powermt check_registration
Key AAAA-BBBB-CCCC-DDDD-EEEE-FFFF
  Product: PowerPath
  Capabilities: All

powermt display options – Display EMC PowerPath Options

Displays the high level EMC SAN array options as shown below.

# powermt display options
        Default storage system class: all
        Show CLARiiON LUN names:      true
        Path Latency Monitor: Off
        Path Latency Threshold: 0 Sec.
        Storage
        System Class  Attributes
        ------------  ----------
        Symmetrix     periodic autorestore = on
                      status = managed
        CLARiiON      periodic autorestore = on
                      status = managed
        Hitachi       periodic autorestore = on
                      status = managed
        Invista       periodic autorestore = on
                      status = managed
        HP xp         periodic autorestore = on
                      status = managed
        Ess           periodic autorestore = on
                      status = managed
        HP HSx        periodic autorestore = on
                      status = managed

powermt display hba_mode – Display PowerPath HBA Mode

This is similar to #1, but displays whether hba is enabled or not, as shown in the last column of the output.

# powermt display hba_mode
Symmetrix logical device count=0
CLARiiON logical device count=1
Hitachi logical device count=0
Invista logical device count=0
HP xp logical device count=0
Ess logical device count=0
HP HSx logical device count=0
==============================================================================
----- Host Bus Adapters ---------  ------ I/O Paths -----  Stats
###  HW Path                       Summary   Total   Dead  Q-IOs Mode
==============================================================================
   1 qla2xxx                       optimal       2      0     0 Enabled
   2 qla2xxx                       optimal       2      0     0 Enabled

powermt display path – Display available I/O Paths.

This displays all available path for your SAN device

# powermt display paths
Symmetrix logical device count=0
==============================================================================
----- Host Bus Adapters --------- ------ Storage System -----    - I/O Paths -
###  HW Path                           ID      
Interface     Total    Dead
==============================================================================
CLARiiON logical device count=1
==============================================================================
----- Host Bus Adapters --------- ------ Storage System -----    - I/O Paths -
###  HW Path                           ID          
Interface     Total    Dead
==============================================================================
   1 qla2xxx                      AAA00000000000      SP A4          1       0
   1 qla2xxx                      AAA00000000000      SP B4          1       0
   2 qla2xxx                      AAA00000000000      SP A5          1       0
   2 qla2xxx                      AAA00000000000      SP B5          1       0
Hitachi logical device count=0
==============================================================================
----- Host Bus Adapters --------- ------ Storage System -----    - I/O Paths -
###  HW Path                           ID          Interface     Total    Dead
==============================================================================
Invista logical device count=0
==============================================================================
----- Host Bus Adapters --------- ------ Storage System -----    - I/O Paths -
###  HW Path                           ID          Interface     Total    Dead
==============================================================================
HP xp logical device count=0
==============================================================================
----- Host Bus Adapters --------- ------ Storage System -----    - I/O Paths -
###  HW Path                           ID          
Interface     Total    Dead
==============================================================================
Ess logical device count=0
==============================================================================
----- Host Bus Adapters --------- ------ Storage System -----    - I/O Paths -
###  HW Path                           ID          Interface     Total    Dead
==============================================================================
HP HSx logical device count=0
==============================================================================
----- Host Bus Adapters --------- ------ Storage System -----    - I/O Paths -
###  HW Path                           ID          Interface     Total    Dead
==============================================================================

powermt displays port_mode – Display Port Status

Displays the status of the individual ports on the HBA. i.e Whether the port is enabled or not.

# powermt display port_mode
Storage class = Symmetrix
==============================================================================
----------- Storage System ---------------     -- I/O Paths --   --- Stats ---
    ID              Interface         Wt_Q      Total    Dead    Q-IOs  Mode
==============================================================================
Storage class = CLARiiON
==============================================================================
----------- Storage System ---------------     -- I/O Paths --   --- Stats ---
    ID              Interface         Wt_Q      Total    Dead    Q-IOs  Mode
==============================================================================
    AAA00000000000     SP A4           256          1       0        0  Enabled
    AAA00000000000     SP B4           256          1       0        0  Enabled
    AAA00000000000     SP A5           256          1       0        0  Enabled
    AAA00000000000     SP B5           256          1       0        0  Enabled

powermt version – Display EMC PowerPath Version

How to identify the version number of EMC PowerPath software?

# powermt version
EMC powermt for PowerPath (c) Version 5.3 (build 185)

powermt check – Check the I/O Paths

If you have made changes to the HBA’s, or I/O paths, just execute powermt check, to take appropriate action.

For example, if you have manually removed an I/O path, check command will detect a dead path and remove it from the EMC path list.

# powermt check
 Warning: storage_system I/O path path_name is dead
.
       Do you want to remove it (y/n/a/q)?

Note: If you want powermt to automatically remove all dead paths, without any confirmation, execute “powermt check force”.

powermt set mode hba – Forcefully set the mode for a specific HBA

You can change the mode of a specific HBA to either standby or active using this command. Following example, changes HBA #1′s mode from active to standby.

# powermt set mode=standby hba=1

After the above command, you can see the mode for HBA#1 changed to standby, as shown below.

# powermt display dev=all
Pseudo name=emcpowera
CLARiiON ID=AAA00000000000 [dev-server]
Logical device ID=1111111111111111111 [LUN 1]
state=alive; policy=CLAROpt; priority=0; queued-IOs=0
Owner: default=SP B, current=SP B       Array failover mode: 1
==============================================================================
---------------- Host ---------------   - Stor -   -- I/O Path -  -- Stats ---
###  HW Path                I/O Paths    Interf.   Mode    State  Q-IOs Errors
==============================================================================
   1 qla2xxx                   sdd       SP A4     standby alive      0      0
   1 qla2xxx                   sde       SP B4     standby alive      0      0
   2 qla2xxx                   sdf       SP A5     active  alive      0      0
   2 qla2xxx                   sdg       SP B5     active  alive      0      0

Note: Path mode can also be “unlic” indicating that you’ve not registered the PowerPath with proper License key.

Note: Some powermt commands (for example, powermt set port_disable), is restricted to certain platform and storage type — On AIX and Solaris, only Fibre channel is supported. On HP-UX, only iSCSI and Fibre are supported. On Linux, Only iSCSI (HBAs) and Fibre are supported

powermt remove – Delete an I/O Path

Use this command to remove any specific I/O path (or) a whole device.

The following example has 4 I/O Paths.

# powermt display dev=all
==============================================================================
---------------- Host ---------------   - Stor -   -- I/O Path -  -- Stats ---
###  HW Path                I/O Paths    Interf.   Mode    State  Q-IOs Errors
==============================================================================
   1 qla2xxx                   sdd       SP A4     standby alive      0      0
   1 qla2xxx                   sde       SP B4     standby alive      0      0
   2 qla2xxx                   sdf       SP A5     active  alive      0      0
   2 qla2xxx                   sdg       SP B5     active  alive      0      0

To remove I/O Path sdd, execute the following powermt remove command.

# powermt remove dev=sdd
# powermt display dev=all
==============================================================================
---------------- Host ---------------   - Stor -   -- I/O Path -  -- Stats ---
###  HW Path                I/O Paths    Interf.   Mode    State  Q-IOs Errors
==============================================================================
   1 qla2xxx                   sde       SP B4     standby alive      0      0
   2 qla2xxx                   sdf       SP A5     active  alive      0      0
   2 qla2xxx                   sdg       SP B5     active  alive      0      0

Following will remove all I/O Path for a particular device. i.e To remove /dev/emcpowera, do the following. If the /dev/emcpowera is mounted and used by some program, following command will not work.

# powermt remove dev=emcpowera

powermt config – Configure PowerPath

This command checks for available EMC SAN logical devices and add those to PowerPath configuration list. Powermt config command, sets some of the options to it’s default values. For example, write throttling = off, HBA mode = active, CLARiiON policy = CLAROpt, etc. Possible EMC SAN LUN policy values are: Adaptive, BasicFail over, CLAROpt, LeastBlocks, LeastIos, NoRedirect, Request, RoundRobin, StreamIO, or SymmOpt. After you execute the powermt config, if you don’t like any of the def ault values, you should change it accordingly.

# powermt config

powermt restore – Make Dead I/O Path Alive

If you have dead I/O paths, and if you’ve done something to fix the issue, you can request PowerPath to re-check the paths and mark it as active using powermt restore com mand. When you execute powermt restore, it does an I/O path check. If a previously dead path is alive, it will be marked as alive, and if a previously alive path is dead, it will be marked as dead.

For some reason, if you see the default owner and the current owner of a particular LUN is not the same storage processor, then execute the following command, which will make the current owner of the LUN same as thedefault owner.

# powermt restore dev=all

Instead of dev, you can also specify class in the powermt restore command. Class can be one of the following depending on your system.

symm – Symmetrix
clariion -  CLARiiON
invista – Invista
ess – IBM ESS
hitachi – Hitachi Lightning TagmaStore
hpxp -  HP StorageWorks XP, or EVA series
hphsx – HP StorageWorks EMA, or MA
all – All systems

Powermt Save and Load – Save and Restore PowerPath Configurations

If you are changing the PowerPath configurations for testing purpose, you can save the current configuration using powermt save command. Use this method to backup the current PowerPath Configurations.

# powermt save

This will save the current powermt configuration to /etc/powermt.custom file. Following is the partial content of this file.

# cat /etc/powermt.custom
global:version:5.3.0.0.0:4.1.0
path_c:sdd:sdd:qla2xxx:0x111
path_c:sde:sde:qla2xxx:0x111
adapter:  1:  1:qla2xxx:0x111:1:0:111:0:11:0
adapter:  2:  2:qla2xxx:0x111:1:0:111:0:111:0
arrPort_c:04000000:04000000:111:111
mpext_cfg:unused:Mp:0:symm:0:0
...

If you want to store the current PowePath configuration to a different file, do the following.

# powermt save file=/etc/powermt.21-Aug-2010

powermt load – Load a previously saved EMC PowerPath Configuration

When you are testing EMC PowerPath configuration, if you are not satisfied with the new configuration, you can go back to the previous configuration. For example, to restore the configuration to a specific file that you created in the above powermt save example, do the following.

# powermt load file=/etc/powermt.21-Aug-2010
aix/emc_multipath.txt · Last modified: 2021/01/01 21:21 (external edit)