Tanti Technology

My photo
Bangalore, karnataka, India
Multi-platform UNIX systems consultant and administrator in mutualized and virtualized environments I have 4.5+ years experience in AIX system Administration field. This site will be helpful for system administrator in their day to day activities.Your comments on posts are welcome.This blog is all about IBM AIX Unix flavour. This blog will be used by System admins who will be using AIX in their work life. It can also be used for those newbies who want to get certifications in AIX Administration. This blog will be updated frequently to help the system admins and other new learners. DISCLAIMER: Please note that blog owner takes no responsibility of any kind for any type of data loss or damage by trying any of the command/method mentioned in this blog. You may use the commands/method/scripts on your own responsibility. If you find something useful, a comment would be appreciated to let other viewers also know that the solution/method work(ed) for you.

Sunday, 2 March 2014

AIX Storage


Overzicht AIX Storage

aixstorage.jpg 
  1. Volume Group (VG)
    • Verzameling schijven die toegankelijk zijn onder 1 naam.
  2. Volume Group Description Area (VGDA)
    • Per PV is er minimaal één VGDA waarin de data wordt bijgehouden van de gehele VG.
  3. Physical Volume (PV)
    • Een fysieke schijf, deze kan maar in één VG zitten.
  4. Physical Partition (PP)
    • Elke fysieke schijf is onderverdeeld in een aantal PPs. PPs hebben in de gehele VG dezelfde grootte.
  5. Logical Partition (LP)
    • Van dezelfde grootte als een PP, en elke LP is minimaal mapped naar 1 PP, maar dat kunnen we meer zijn (bij bijvoorbeeld mirroring)
  6. Logical Volume (LV)
    • Een mapping van een aantal PPs. Hierop wordt een filesysteem gedefinieerd.

Overige terminologie

Filesystem: een directory structuur om bestanden in op te slaan
De root van een filesysteem heeft altijd het inode nummer 2 (bijvoorbeeld /home is de root van hd1)
Inodes worden dan ook per filesysteem bijgehouden.
Als je een filesysteem verwijderd of aanmaakt wordt ook het bijbehorende LV verwijderd of aangemaakt. Indien je een LV verwijderd of aanmaakt moet je het filesysteem nog handmatig verwijderen of aanmaken.
Filesystems worden onder AIX bijgehouden in /etc/filesystems. Filesystems die in deze file staan zijn te mounten door hun mountpoint op te geven. Het mountpoint is ook de naam waaraan wordt gerefereerd indien je het hebt over een filesysteem.
Default filesystems: Tijdens het installeren van AIX wordt er een standaard VG gemaakt met de volgende filesystemen erin:
  1. / (root) = /dev/hd4
    • Bevat the OS bestanden en de bestanden benodigd voor opstarten
  2. /usr = /dev/hd2
    • Commando's, libraries en applicatie bestanden.
  3. /var = /dev/hd9var
    • Spool, ,log en mail bestanden. Inhoud is veel aan verandering onderhevig.
  4. /home = /dev/hd1
    • Home directories van gebruikers
  5. /tmp = /dev/hd3
  6. /opt = /dev/hd10opt
    • Bedoeld voor freeware en 3th party software
  7. /proc = /proc
    • Speciaal pseudo filesysteem wat in het geheugen wordt geladen voor threads en lichtgewicht processen.
JFS: Journaled FileSystem, het standaard filesysteem voor AIX.
Voor meer informatie verwijs ik je naar de uitstekende pagina op wikipedia: http://en.wikipedia.org/wiki/JFS2.
Inode extra info:
Onderstaand verhaal is een standaard verhaal voor inodes onder Unix en Linux. Kleine verschillen kunnen voorkomen per distributie:
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 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 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 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 know as index number.
How do I see file inode number?
> ls -i /etc/passwd
You can also use stat command to find out inode number and its attribute:
> stat /etc/passwd
Find and remove file using find command (necessary with special characters), type the command as follows:
> find . -inum 782263 -exec rm -i {} \;
Wat is een directory dan: Een directory is niets anders dan een tabel met de naam van de bestanden die erin staan en een verwijzing naar het inode nummer van deze bestanden. Indien je geen execute rechten hebt op een directory kun je niet de sprong maken naar de inode tabel en de extra info van de bestanden ophalen. Om een file te verwijderen heb je dus alleen maar lees en execute rechten nodig op de directory, geen rechten op de file zelf.

Commando's

CommandoUitleg
lsvgList all volume groups
lsvg -oList all active volume groups
lsvg rootvgList info over rootvg
lsvg -p rootvgList PVs in de volume group rootvg
lsvg -l rootvgList LVs in de volume group rootvg
mkvgMaak een volume group
extendvgBreidt een volume group uit
reducevgMaakt een volume group kleiner
varyoffvg vg1Schakelt de volume group vg1 tijdelijk uit
varyonvg vg1Schakelt de volume group vg1 weer in
lsvg | lsvg -iGeeft de info van alle volume groups
lsvg | lsvg -ilGeeft alle logical volumes van alle volume groups
lsvg | lsvg -ipGeeft alle physical volumes van alle volume groups
dfDisplay filesystems
df -mDisplay filesystems in MB
lsfsList all filesystems
du /home | sort -r -nGeeft de grootte van de mappen onder /home weer, grootste eerst
ls -l | sort +4b -nrGeeft de grootste file in de huidige directory
defragfsDefragmenteerd het opgegeven filesysteem
fsckControleert het opgegeven filesysteem
mount /tmpMount het filesysteem /tmp (/dev/hd3)
lspvList all physical volumes
lspv hdisk0List info over hdisk0
lspv -l hdisk0List all LVs op hdisk0 en hun verspreiding over de schijf
lspv -p hdisk0List all PPs op hdisk0 en welk LV daar op zit
lslv hd1List info over het logical volume hd1
lslv -l hd1List de mate waarin het LV voldoet aan de policy in percentages
lslv -m hd1List de fysieke verdeling van het LV over de schijven
mklvMaak een logical volume
extendlv hd1 2Breidt het logical volume hd1 uit met 2 PPs
mklvcopy hd1 2 hdisk1Maak een totaal van 2 kopieën van het logical volume hd1 waarbij de nieuwe kopie op hdisk1 komt
chlvVerander een logical volume
rmlv hd1Verwijder het logical volume hd1
syncvg -l hd1Synchroniseer het LV met zijn mirror (-p voor PV en -v voor VG)

Taken

Verwijder een volume group en de bijbehorende fysieke 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 ; verwijderd het device ook uit de device database
    • -l ; geeft het logical device aan wat je wilt verwijderen

Bekijk de grootte van een physical volume

Mogelijkheid 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
Achter de regel TOTAL PPs: staat de grootte van de disk in MB
Mogelijkheid 2:
bash-3.00# bootinfo -s hdisk1
150528
Zoals je ziet zit er een verschil tussen de twee schijven. Het onderstaande commando kijkt echt naar de fysieke grootte van de disk, het bovenstaande commando naar de grootte van de disk zoals gedefinieerd in de device database. Om dit uit te breiden moet je onderstaande taak uitvoeren.

Vergroot beschikbare disk space van een SAN LUN

Info: In het geval dat je een SAN volume heb kan je op het san de grootte van het lun verhogen. Met onderstaande stappen kun je vervolgens de grootte van physieke schijf vergroten.

Vergroot fysieke 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.
Je hebt nu de toegevoegde ruimte op het SAN ook daadwerkelijk aan hdisk toegevoegd.
N.B. Dit wordt niet ondersteund voor het rootvg!!!

Vergroot 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
Zoals je kunt zien heb je nu in het sanvg 473 PP's vrij. Deze wil je toevoegen aan het logical volume fslv03. Deze mag echter maar 512 PP's bevatten terwijl hij er al 476 heeft. Onderstaand commando verteld je dat ook:
# chfs -a size=121472M /var/data
0516-787 extendlv: Maximum allocation for logical volume fslv03
        is 512.
Je moet dus eerst het logical volume aanpassen:
# 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
Je kan nu het filesystem uitbreiden:
# chfs -a size=121472M /var/data
Filesystem size changed to 248774656

Maak een nieuw filesystem uit een fysieke schijf

Welke schijven heb je:
bash-3.00# lspv
hdisk0          0001320a5613aa33                    rootvg          active
hdisk1          0001320a6935cee8                    sanvg           active
hdisk2          none                                None
Maak eerst een volume groep aan:
bash-3.00# mkvg -y testvg hdisk2
0516-1254 mkvg: Changing the PVID in the ODM.
testvg
De schijf heeft nu een PVID gekregen:
bash-3.00# lspv
hdisk0          0001320a5613aa33                    rootvg          active
hdisk1          0001320a6935cee8                    sanvg           active
hdisk2          0001320a37f02546                    testvg          active
Nu moet er nog een filesystem op. Dit doen we met 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
Na het maken hoef je hem alleen nog te mounten:
mount /iscsifc

Wijzig mount eigenschappen van een filesystem

De eigenschappen van filesystems staan in AIX in het bestand /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
Dit bestand is gewoon een text bestand en dus ook als zodanig te bewerken. Maar wijzigingen die je op deze manier maakt worden niet bewaard indien je een export en import doet van de volumegroup waar de filesystems inzitten. Indien je wijzigingen wilt maken die bewaard blijven moet je deze of doen met smitty of met het “chfs” commando. Hieronder worden een aantal opties beschreven:

Opties zetten:

chfs -p rw /opt
chfs -p rw /var/data
chfs -p rw /var/log

Automount zetten:

chfs -A yes /opt
chfs -A yes /var/data
chfs -A yes /var/log

Mountpoint aanpassen

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.
  1. Umount /mountpoint
  2. Varyoffvg testvg
  3. exportvg testvg
  4. rmdev -dl hdisk2
Change the initiator group in the SAN from iSCSI to FC and:
  1. cfgmgr
  2. importvg -y testvg hdisk2
  3. varyonvg testvg
  4. mount /mountpoint

Mount een 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

Mount a CD-ROM

To mount a CD-ROM on AIX:
  1. Switch user to root:
    1. $ su - root
  2. If necessary, enter the a command similar to following to unmount the currently mounted CD-ROM, then remove it from the drive:
    1. # umount /cdrom
    2. In this example, /cdrom is the mount point directory for the CD-ROM drive.
  3. Insert the appropriate CD-ROM into the CD-ROM drive, then enter a command similar to the following to mount it:
    1. # /usr/sbin/mount -rv cdrfs /dev/cd0 /cdrom
    2. # /usr/sbin/mount -v cdrfs -o ro /dev/cd0 /cdrom
    3. In this example, /dev/cd0 is the device name of the CD-ROM drive and /cdrom is the mount point directory.
  4. If the Installer is displaying the Disk Location dialog box, enter the CD-ROM mount point directory path, for example:
    1. /cdrom

Move filespace to another PV / add disk to VG

Done and tested by a collegue of mine:
  1. add new hdisk to vgname
    1. extendvg
  2. move PP's
    1. migratepv
  3. check USED/FREE
    1. lspv -p
  4. check used PP on old hdisk
    1. lslv -p | grep USED
  5. remove old disk from vg
    1. 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

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

No comments:

Post a Comment