= AIX Storage
**Summary**: ALthough AIX is by now on version 7.3 I find these old pages so fascinating I decided to keep them. On this page I'll show you how to configure and work with storage on AIX. This page is for AIX 5.3 and AIX 6.1.\\
**Date**: Between 2010-2013 \\
**Refactor**: 21 December 2024: Checked formatting. Translated from Dutch to English.\\
{{tag>aix}}
== Overzicht AIX Storage ==
[{{aixstorage.jpg}}] \\
# Volume Group (VG)
#* A collection of disk accessible by one name.
# Volume Group Description Area (VGDA)
#* On each PV there is a minimum of 1 VGDA in which the data is kept of the entire VG.
# Physical Volume (PV)
#* A physical drive, can only be in one VG.
# Physical Partition (PP)
#* Each physical drive is devided into a number of PPs. All PPs in a VG have the same size.
# Logical Partition (LP)
#* Has the sime size as a PP, and each LP has at least one mapping to a PP, but there could be more (for example, with a mirror)
# Logical Volume (LV)
#* A mapping of a number of PPs. A filesystem is defined on a LV.
== Other terminilogy ==
**Filesystem**: a directory stucture to save files in.
The root of a filesystem always has the inode number 2 (for example /home is the root of hd1). Inodes are kept per filesystem. If you remove a filesystem or create a new one, the corresponding LV is also removed or created. If you remove or create a LV, you still have to remove or create the filesystem manually. Filesystems are kept in /etc/filesystems. Filesystems in this file can be mounted by giving the mountpoint. The mountpoint is also the name you refer to when you talk about a filesystem.
**Default filesystems**: During the installation of AIX, a default VG is created with the following filesystems:
# / (root) = /dev/hd4
#* Contains the OS files and the files needed for booting
# /usr = /dev/hd2
#* Commands, libraries, and application files.
# /var = /dev/hd9var
#* Spool, log, and mail files. Content is subject to frequent changes.
# /home = /dev/hd1
#* Home directories of users
# /tmp = /dev/hd3
# /opt = /dev/hd10opt
#* Intended for freeware and 3rd party software
# /proc = /proc
#* Special pseudo filesystem loaded into memory for threads and lightweight processes.
**JFS**: Journaled FileSystem, the standard filesystem for AIX.
For more information, refer to the excellent page on Wikipedia: http://en.wikipedia.org/wiki/JFS2.
**Inode extra info**:
The following story is a standard story for inodes under Unix and Linux. Small differences may occur per distribution:
Understanding UNIX / Linux filesystem Inodes
The inode (index node) is a fundamental concept in the Linux filesystem. Each object in the filesystem is represented by an inode. But what are the objects? Let us try to understand it in simple words. Each and every file under Linux (and UNIX) has the following attributes:
* File type (executable, block special etc)
* Permissions (read, write etc)
* Owner
* Group
* File Size
* File access, change and modification time (remember UNIX or Linux never stores file creation time, this is a favorite question asked in UNIX/Linux sys admin job interview)
* File deletion time
* Number of links (soft/hard)
* Extended attribute such as append only or no one can delete file including root user (immutability)
* Access Control List (ACLs)
All the above information is stored in an inode. In short, the inode identifies the file and its attributes (as above). Each inode is identified by a unique inode number within the file system. Inode is also known as index number.
How do I see file inode number?
> ls -i /etc/passwd
You can also use the stat command to find out the inode number and its attributes:
> stat /etc/passwd
Find and remove a file using the find command (necessary with special characters), type the command as follows:
> find . -inum 782263 -exec rm -i {} \;
**What is a directory then**: A directory is nothing more than a table with the names of the files it contains and a reference to the inode number of these files. If you do not have execute rights on a directory, you cannot make the jump to the inode table and retrieve the extra info of the files. To delete a file, you only need read and execute rights on the directory, no rights on the file itself.
== Commands ==
|**Commando**|**Uitleg**|
|lsvg |List all volume groups |
|lsvg -o |List all active volume groups|
|lsvg rootvg |List info over rootvg|
|lsvg -p rootvg |List PVs in de volume group rootvg|
|lsvg -l rootvg |List LVs in de volume group rootvg|
| | |
|mkvg |Create a volume group|
|extendvg |Extend a volume group|
|reducevg |Shrink a volume group|
|varyoffvg vg1|Temporary turn off the volume group vg1|
|varyonvg vg1|Turn on the volume group vg1|
|{{{lsvg | lsvg -i }}} |Provides information on all volume groups|
|{{{lsvg | lsvg -il }}} |Lists all logical volumes of all volume groups|
|{{{lsvg | lsvg -ip }}} |Lists all physical volumes of all volume groups|
| | |
|df |Display filesystems|
|df -m |Display filesystems in MB |
|lsfs |List all filesystems|
|{{{du /home | sort -r -n}}} |Lists all folder's sizes, biggest one first|
|{{{ls -l | sort +4b -nr}}} |Lists the biggest file in the current directory|
|defragfs|Defrags the filesystem|
|fsck|Checks the filesysteem|
|mount /tmp |Mounts the filesysteem /tmp (/dev/hd3)|
| | |
|lspv |List all physical volumes|
|lspv hdisk0 |List info on hdisk0|
|lspv -l hdisk0 |List all LVs on hdisk0 and their spreading on the disk|
|lspv -p hdisk0 |List all PPs on hdisk0 and which LV is hosted on it|
| | |
|lslv hd1 |List info on the logical volume hd1 |
|lslv -l hd1|List the policy compliance percentage of the LV|
|lslv -m hd1|List the physical spread of the LV over the available disks|
|mklv |Create a logical volume|
|extendlv hd1 2|Extend the logical volume hd1 with 2 PPs|
|mklvcopy hd1 2 hdisk1|Create a total of 2 copies of the logical volume hd1 and put the new copy on hdisk1|
|chlv|Change a logical volume|
|rmlv hd1|Remove the logical volume hd1|
| | |
|syncvg -l hd1 |Sync the LV with its mirror (-p for PV and -v for VG)|
== Tasks ==
=== Remove a volume group and it's disks ===
bash-3.00# lsvg -p tempvg
tempvg:
PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION
hdisk2 active 799 166 160..00..00..00..06
bash-3.00# reducevg tempvg hdisk2
0516-016 ldeletepv: Cannot delete physical volume with allocated
partitions. Use either migratepv to move the partitions or
reducevg with the -d option to delete the partitions.
0516-884 reducevg: Unable to remove physical volume hdisk2.
bash-3.00# reducevg -d tempvg hdisk2
0516-914 rmlv: Warning, all data belonging to logical volume
fslv04 on physical volume hdisk2 will be destroyed.
rmlv: Do you wish to continue? y(es) n(o)?
y
rmlv: Logical volume fslv04 is removed.
ldeletepv: Volume Group deleted since it contains no physical volumes.
bash-3.00# rmdev -d -l hdisk2
hdisk2 deleted
* rmdev
* -d ; also remove the disk from the device database
* -l ; the logical device you want to remove
=== Check the size of a physical volume ===
Option 1:
bash-3.00# lspv hdisk1
PHYSICAL VOLUME: hdisk1 VOLUME GROUP: sanvg
PV IDENTIFIER: 0001320a6935cee8 VG IDENTIFIER 0001320a0000d4000000011b6935e652
PV STATE: active
STALE PARTITIONS: 0 ALLOCATABLE: yes
PP SIZE: 128 megabyte(s) LOGICAL VOLUMES: 5
TOTAL PPs: 702 (89856 megabytes) VG DESCRIPTORS: 2
FREE PPs: 4 (512 megabytes) HOT SPARE: no
USED PPs: 698 (89344 megabytes) MAX REQUEST: 256 kilobytes
FREE DISTRIBUTION: 00..00..00..00..04
USED DISTRIBUTION: 141..140..140..140..137
> The line TOTAL PPs provides the size of the disk in MBs
Option 2:
bash-3.00# bootinfo -s hdisk1
150528
As you can see, there is a difference between the two disks. The command below looks at the actual physical size of the disk, while the command above looks at the size of the disk as defined in the device database. To expand this, you need to perform the following task.
=== Increase available disk space of a SAN LUN ===
Info: In case you have a SAN volume, you can increase the size of the LUN on the SAN. With the following steps, you can then increase the size of the physical disk.
==== Increase physical disk: ===
# varyoffvg sanvg
# varyonvg sanvg
0516-1434 varyonvg: Following physical volumes appear to be grown in size.
Run chvg command to activate the new space.
hdisk1
# chvg -g sanvg
0516-1164 chvg: Volume group sanvg changed. With given characteristics sanvg
can include upto 16 physical volumes with 2032 physical partitions each.
You've now added the extra space from the SAN to thye hdisk.
Note: This is not supported for the rootvg!!!
==== Extend logical volume ====
# lsvg sanvg
VOLUME GROUP: sanvg VG IDENTIFIER: 0001320a0000d4000000011b6935e652
VG STATE: active PP SIZE: 128 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 1175 (150400 megabytes)
MAX LVs: 256 FREE PPs: 473 (60544 megabytes)
LVs: 5 USED PPs: 702 (89856 megabytes)
OPEN LVs: 2 QUORUM: 2
TOTAL PVs: 1 VG DESCRIPTORS: 2
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 1 AUTO ON: yes
MAX PPs per VG: 32512
MAX PPs per PV: 2032 MAX PVs: 16
LTG size (Dynamic): 256 kilobyte(s) AUTO SYNC: no
HOT SPARE: no BB POLICY: relocatable
# lslv fslv03
LOGICAL VOLUME: fslv03 VOLUME GROUP: sanvg
LV IDENTIFIER: 0001320a0000d4000000011b6935e652.4 PERMISSION: read/write
VG STATE: active/complete LV STATE: opened/syncd
TYPE: jfs2 WRITE VERIFY: off
MAX LPs: 512 PP SIZE: 128 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 476 PPs: 476
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: minimum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 32
MOUNT POINT: /var/data LABEL: /var/data
MIRROR WRITE CONSISTENCY: on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO
As you can see, you have 473 PP's available in the sanvg. You want to add these to the logical volume fslv03. This one can only have 512 PP's while it already has 476. The command below tells you this:
# chfs -a size=121472M /var/data
0516-787 extendlv: Maximum allocation for logical volume fslv03
is 512.
You need to adjust the logical volume first:
# chlv -x 949 fslv03
# lslv fslv03
LOGICAL VOLUME: fslv03 VOLUME GROUP: sanvg
LV IDENTIFIER: 0001320a0000d4000000011b6935e652.4 PERMISSION: read/write
VG STATE: active/complete LV STATE: opened/syncd
TYPE: jfs2 WRITE VERIFY: off
MAX LPs: 949 PP SIZE: 128 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 949 PPs: 949
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: minimum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 32
MOUNT POINT: /var/data LABEL: /var/data
MIRROR WRITE CONSISTENCY: on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO
You can now extend the logical volume:
# chfs -a size=121472M /var/data
Filesystem size changed to 248774656
=== Create a new filesystem from a physical disk ===
Check the disks:
bash-3.00# lspv
hdisk0 0001320a5613aa33 rootvg active
hdisk1 0001320a6935cee8 sanvg active
hdisk2 none None
First create a new volume group:
bash-3.00# mkvg -y testvg hdisk2
0516-1254 mkvg: Changing the PVID in the ODM.
testvg
The disk now has a new PVID:
bash-3.00# lspv
hdisk0 0001320a5613aa33 rootvg active
hdisk1 0001320a6935cee8 sanvg active
hdisk2 0001320a37f02546 testvg active
Now we'll add a filesystem using smitty:
* Smitty
* System Storage Management (Physical & Logical Storage)
* File Systems
* Add / Change / Show / Delete File Systems
* Enhanced Journaled File Systems
* Add an Enhanced Journaled File System
* Selecteer de juiste vg om een filesystem in te maken, in dit geval testvg, en vul de juiste gegevens in: \\
[{{aixstorage-mkfs.jpg}}] \\
Now you only need to mount it:
mount /iscsifc
=== Change mount properties of a filesystem ===
The properties of filesystems are kept in AIX in the file /etc/filesystems:
bash-3.00# cat /etc/filesystems
* @(#)filesystems @(#)29 1.22 src/bos/etc/filesystems/filesystems, cmdfs, bos530 9/8/00 13:57:45
* IBM_PROLOG_BEGIN_TAG
* This is an automatically generated prolog.
*
* bos530 src/bos/etc/filesystems/filesystems 1.22
*
* Licensed Materials - Property of IBM
*
* (C) COPYRIGHT International Business Machines Corp. 1985,1993
* All Rights Reserved
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
*
* IBM_PROLOG_END_TAG
*
* COMPONENT_NAME: CMDFS
*
* FUNCTIONS: none
*
* ORIGINS: 27
*
* (C) COPYRIGHT International Business Machines Corp. 1985, 1993
* All Rights Reserved
* Licensed Materials - Property of IBM
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
*
*
*
* This version of /etc/filesystems assumes that only the root file system
* is created and ready. As new file systems are added, change the check,
* mount, free, log, vol and vfs entries for the appropriate stanza.
*
/:
dev = /dev/hd4
vfs = jfs2
log = /dev/hd8
mount = automatic
check = false
type = bootfs
vol = root
free = true
/home:
dev = /dev/hd1
vfs = jfs2
log = /dev/hd8
mount = true
check = true
vol = /home
free = false
/usr:
dev = /dev/hd2
vfs = jfs2
log = /dev/hd8
mount = automatic
check = false
type = bootfs
vol = /usr
free = false
/var:
dev = /dev/hd9var
vfs = jfs2
log = /dev/hd8
mount = automatic
check = false
type = bootfs
vol = /var
free = false
/tmp:
dev = /dev/hd3
vfs = jfs2
log = /dev/hd8
mount = automatic
check = false
vol = /tmp
free = false
/proc:
dev = /proc
vol = "/proc"
mount = true
check = false
free = false
vfs = procfs
/setup:
dev = /dev/fslv00
vfs = jfs2
log = /dev/hd8
mount = true
account = false
/opt:
dev = /dev/fslv01
vfs = jfs2
log = /dev/loglv00
mount = true
check = false
options = rw
account = false
/var/log:
dev = /dev/fslv02
vfs = jfs2
log = /dev/loglv00
mount = true
check = false
options = rw
account = false
/var/data:
dev = /dev/fslv03
vfs = jfs2
log = /dev/loglv00
mount = true
check = false
options = rw
account = false
This file is just a text file and can be edited as such. But changes made this way will not be saved if you export and import the volume group where the filesystems are in. If you want to make changes that will be saved you can do this with smitty or the "chfs" command. Below are a few options:
==== Change properties: ====
chfs -p rw /opt
chfs -p rw /var/data
chfs -p rw /var/log
==== Set automount: ====
chfs -A yes /opt
chfs -A yes /var/data
chfs -A yes /var/log
==== Change mountpoint ====
bash-3.2# chfs -m /var/data1 /var/data
bash-3.2# chfs -m /var/backup1 /var/backup
bash-3.2# chfs -m /var/dump1 /var/dump
bash-3.2# chfs -m /var/log1 /var/log
=== Change iSCSI disk to FC disk ===
This is how to change a connected iSCSI disk to FibreChannel. Of course the SAN will have to be able to do this. First you have to remove the volume group from the server, and after changing the access protocol you can import the volume group again.
# Umount /mountpoint
# Varyoffvg testvg
# exportvg testvg
# rmdev -dl hdisk2
Change the initiator group in the SAN from [[netappstorage|iSCSI to FC]] and:
# cfgmgr
# importvg -y testvg hdisk2
# varyonvg testvg
# mount /mountpoint
=== Mount an ISO ===
Because there is no direct way of mounting an ISO on AIX we'll have to use a workaround.
==== Create a filesystem ====
Make sure you have a volume group with enough free space. In this example that's rootvg:
bash-3.2# lsvg -p rootvg
rootvg:
PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION
hdisk0 active 638 140 12..00..00..00..128
bash-3.2# lsvg rootvg
VOLUME GROUP: rootvg VG IDENTIFIER: 000153ba0000d4000000011ffa8be3fb
VG STATE: active PP SIZE: 32 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 638 (20416 megabytes)
MAX LVs: 256 FREE PPs: 140 (4480 megabytes)
LVs: 10 USED PPs: 498 (15936 megabytes)
OPEN LVs: 9 QUORUM: 2
TOTAL PVs: 1 VG DESCRIPTORS: 2
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 1 AUTO ON: yes
MAX PPs per VG: 32512
MAX PPs per PV: 1016 MAX PVs: 32
LTG size (Dynamic): 256 kilobyte(s) AUTO SYNC: no
HOT SPARE: no BB POLICY: relocatable
As you can see the rootvg consists of one physical disk with a total of 140 free PPs, and each PP is 32 MB big.
Then you can create a filesystem:
bash-3.2# mklv -y cdlv -s n -L /dev/cdlv rootvg 672M hdisk0
cdlv
* -y LVname
* -s Strict
* -L Label
You'll need a size big enough to support the ISOs you're going to mount. Mine biggest ISO is about 650 MB big, so 672 should be big enough.
==== Create a pseudo device ====
Use the dd command to create a pseudo-device. Ensure that the partition has enough space for the pseudo-device. In the following example command, the pseudo-device is /dev/cdlv.
bash-3.2# dd if=/tmp/iso/u817522.v1.iso of=/dev/cdlv
1141312+0 records in
1141312+0 records out
Note that this command may take a long time (took me 2 hours) and will create two dd processes:
bash-3.2# ps -ef | grep dd
root 545020 589994 0 09:38:52 pts/3 0:00 dd if=/tmp/iso/u817522.v1.iso of=/dev/cdlv
root 630938 545020 1 09:38:52 pts/3 0:00 dd if=/tmp/iso/u817522.v1.iso of=/dev/cdlv
==== Mount the pseudo device ====
Mount the device like a CD-ROM in AIX. Ensure that the mount point exists.
bash-3.2# mount -v cdrfs -o ro /dev/cdlv /mnt/iso
bash-3.2# ls /mnt/iso/
.Version RPMS installp usr
Now the iso is mounted.
==== Undo the mount ====
Unmount the iso:
bash-3.2# umount /mnt/iso/
==== Remove the logical volume ====
bash-3.2# rmlv cdlv
Warning, all data contained on logical volume cdlv will be destroyed.
rmlv: Do you wish to continue? y(es) n(o)?
y
rmlv: Logical volume cdlv is removed.
==== Source ====
[[http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=/com.ibm.tivoli.fim.doc_6.0.1/tfim601_relnotes35.htm|IBM documentation]]
=== Mount a CD-ROM ===
To mount a CD-ROM on AIX:
# Switch user to root:
## $ su - root
#If necessary, enter the a command similar to following to unmount the currently mounted CD-ROM, then remove it from the drive:
## # umount /cdrom
## In this example, /cdrom is the mount point directory for the CD-ROM drive.
# Insert the appropriate CD-ROM into the CD-ROM drive, then enter a command similar to the following to mount it:
## # /usr/sbin/mount -rv cdrfs /dev/cd0 /cdrom
## # /usr/sbin/mount -v cdrfs -o ro /dev/cd0 /cdrom
## In this example, /dev/cd0 is the device name of the CD-ROM drive and /cdrom is the mount point directory.
#If the Installer is displaying the Disk Location dialog box, enter the CD-ROM mount point directory path, for example:
## /cdrom
=== Move filespace to another PV / add disk to VG ===
Done and tested by a collegue of mine:
# add new hdisk to vgname
## extendvg
# move PP's
## migratepv
# check USED/FREE
## lspv -p
# check used PP on old hdisk
## lslv -p | grep USED
# remove old disk from vg
## reducevg
=== Change disk properties of disks in use ===
This is a scenario in which the disk properties of the disks in volume group testvg needed to change, but without losing the files (of course):
bash-3.00# cd /
bash-3.00# umount /test
bash-3.00# varyoffvg testvg
bash-3.00# exportvg testvg
bash-3.00# chdev -l hdisk9 -a queue_depth=1
hdisk9 changed
bash-3.00# chdev -l hdisk10 -a queue_depth=1
hdisk10 changed
bash-3.00# importvg -y testvg hdisk9
testvg
bash-3.00# varyonvg testvg
bash-3.00# mount /test
bash-3.00# ls /test
GroteBestanden KleineBestanden lost+found
=== Find LUN id and LUN info ===
Find manufacturer of LUN:
/home/root>lscfg -vl hdisk14
hdisk14 U78A5.001.WIH0975-P1-C7-T2-W210000092B286179-L10000000000000 Other FC SCSI Disk Drive
Manufacturer................IQSTOR
Machine Type and Model......iQ2880
ROS Level and ID............36313930
Serial Number...............00586191
Device Specific.(Z0)........000004125B005002
Device Specific.(Z1)........110000790128
Find LUN id:
/home/root>lsattr -El hdisk14
clr_q no Device CLEARS its Queue on error True
location Location Label True
lun_id 0x10000000000000 Logical Unit Number ID False
max_transfer 0x40000 Maximum TRANSFER Size True
node_name 0x210000092b286179 FC Node Name False
pvid 000153caa9a979e40000000000000000 Physical volume identifier False
q_err yes Use QERR bit True
q_type simple Queuing TYPE True
queue_depth 1 Queue DEPTH True
reassign_to 120 REASSIGN time out value True
rw_timeout 30 READ/WRITE time out value True
scsi_id 0x11300 SCSI ID False
start_timeout 60 START unit time out value True
ww_name 0x210000092b286179 FC World Wide Name False
lun_id: 0x10000000000000 \\
Remove the first two and the last 12 digits: 10 in hex is 16 in dec
Another example:
:/home/root>lsattr -El hdisk6
clr_q no Device CLEARS its Queue on error True
location Location Label True
lun_id 0xb000000000000 Logical Unit Number ID False
max_transfer 0x40000 Maximum TRANSFER Size True
node_name 0x290000092b286179 FC Node Name False
pvid 000153ca127112140000000000000000 Physical volume identifier False
q_err yes Use QERR bit True
q_type simple Queuing TYPE True
queue_depth 1 Queue DEPTH True
reassign_to 120 REASSIGN time out value True
rw_timeout 30 READ/WRITE time out value True
scsi_id 0x11300 SCSI ID False
start_timeout 60 START unit time out value True
ww_name 0x290000092b286179 FC World Wide Name False
lun_id: 0xb000000000000 \\
Remove the first two and the last 12 digits: b in hex is 11 in dec
=== Find Open Files ===
root@aixbox:/>fuser -uc /
/: 0c(root) 1c(root) 90252c(root) 131230(root) 164004c(sjoerd) 233714(root) 286778c(root) 376888c(root) 381030(root) 426112c(sjoerd) 446480c(root) 512200(user5) 671846c(root) 692428c(root) 53604(root) 82320c(root) 86428c(root) 102864(root) 106858c(root) 123262c(root) 143796(root) 147916(root) 151818c(sjoerd) 213476(root) 229634(root) 598380c(user5) 606488c(sjoerd) 635164(root) 778542c(root) 782650c(sjoerd) 795126c(root)
root@aixbox:/>fuser -uc /var
/var: 233714c(root) 53604c(root) 102864c(root) 143796c(root) 147916c(root) 213476c(root) 229634c(root)
== MPIO ==
MPIO is a way to connect to a SAN with multiple paths. This way you can have a redundant connection to the SAN. AIX has a native MPIO driver, but you can also use the IBM SDD driver. The SDD driver is a bit more advanced and has more options. The native driver is a bit more simple and is easier to use.
=== Show SAN luns ===
With a NetApp SAN:
root@sanserver:/home/root>sanlun lun show
controller: lun-pathname device filename adapter protocol lun size lun state
netapp2: /vol/sanserver_boot/boot hdisk0 fcs0 FCP 29.9g (32144097280) GOOD
=== Set Path Priority ===
First query:
root@sanserver:/home/root>dotpaths -q
hdisk5 (path 0): Unoptimized path - Default priority is 1
hdisk5 (path 1): Optimized path - Default priority is 1
hdisk5 (path 2): Optimized path - Default priority is 1
hdisk5 (path 3): Unoptimized path - Default priority is 1
Than set:
Not prioritized yet:
root@sanserver:/home/root>dotpaths -v
hdisk0 (path 0): Unoptimized path - Current priority of 1 is correct
hdisk0 (path 1): Optimized path - Setting priority to 255
hdisk0 (path 2): Optimized path - Setting priority to 255
hdisk0 (path 3): Unoptimized path - Current priority of 1 is correct
Path priority set and/or verified for 1 disks, 2 total paths.
Already prioritized:
root@sanserver:/home/root>dotpaths -v
hdisk0 (path 0): Optimized path - Current priority of 255 is correct
hdisk0 (path 1): Optimized path - Current priority of 255 is correct
Path priority set and/or verified for 1 disks, 2 total paths.
=== See Number of Paths ===
root@sanserver:/home/root>lspath
Enabled hdisk0 fscsi0
Enabled hdisk0 fscsi1
=== See SAN Data ===
root@sanserver:/home/root>sanlun lun show -p
ONTAP_PATH: netapp2:/vol/sanserver_boot/boot
LUN: 0
LUN Size: 29.9g (32144097280)
Host Device: hdisk0
LUN State: GOOD
Controller_CF_State: Cluster Enabled
Controller Partner: netapp1
Multipath Provider: AIX Native
Multipathing Algorithm: round_robin
--------- ----------- ------ ------ ----------- ----------
MPIO Controller AIX Controller AIX MPIO
path path MPIO host target HBA path
status type path HBA port priority
--------- ----------- ------ ------ ----------- ----------
Enabled primary path0 fcs0 0b 255
Enabled primary path1 fcs1 0d 255
=== Enable Failed Paths ===
When paths have gone wrong they stay in a disabled state until the operator enables them again:
See failed paths:
root@aixbox:/home/root>lspath -l hdisk0
Enabled hdisk0 fscsi0
Failed hdisk0 fscsi0
Enabled hdisk0 fscsi1
Failed hdisk0 fscsi1
Enable the failed paths:
root@aixbox:/home/root>chpath -l hdisk0 -s enable
paths Changed
root@aixbox:/home/root>lspath -l hdisk0
Enabled hdisk0 fscsi0
Enabled hdisk0 fscsi0
Enabled hdisk0 fscsi1
Enabled hdisk0 fscsi1
You can also do that per adapter:
root@aixbox:/home/root>chpath -l hdisk0 -p fscsi1 -s enable