This information is especially useful for SAN teams and system administrators when verifying storage mappings, troubleshooting, or documenting configurations.
In this post, we’ll look at a simple shell script that automates this task.
The script:
- Loops through all disks known to AIX (lspv output).
- Extracts each disk’s LUN ID from lscfg.
- Gets its size in GB using bootinfo.
- Finds all FC adapters (fcsX) and displays their WWPNs.
- Prints a consolidated, easy-to-read summary.
#!/bin/ksh
for i in $(lspv | awk '{print $1}')
do
# Get LUN ID
LUNID=$(lscfg -vpl "$i" | grep -i "LIC" | awk -F. '{print $NF}')
# Get size in GB
DiskSizeMB=$(bootinfo -s "$i")
DiskSizeGB=$(echo "scale=2; $DiskSizeMB/1024" | bc)
# Loop over all FC adapters
for j in $(lsdev -Cc adapter | grep fcs | awk '{print $1}')
do
WWPN=$(lscfg -vpl "$j" | grep -i "Network Address" | sed 's/.*Address[ .]*//')
echo "Disk: $i Size: ${DiskSizeGB}GB LUN ID: $LUNID WWPN: $WWPN"
done
done
How It Works:
- lspv lists all disks managed by AIX (e.g., hdisk0, hdisk1).
- lscfg -vpl hdiskX displays detailed configuration information for each disk, including the LUN ID.
- bootinfo -s hdiskX returns the disk size in megabytes.
- lsdev -Cc adapter | grep fcs lists all Fibre Channel adapters (fcs0, fcs1, etc.).
- lscfg -vpl fcsX | grep "Network Address" shows the adapter’s WWPN.
- sed 's/.*Address[ .]*//' cleans the output, leaving only the WWPN value.
Disk: hdisk0 Size: 100.00GB LUN ID: 500507680240C567 WWPN: C0507601D8123456
Disk: hdisk0 Size: 100.00GB LUN ID: 500507680240C567 WWPN: C0507601D8123457
Disk: hdisk1 Size: 200.00GB LUN ID: 500507680240C568 WWPN: C0507601D8123456
Disk: hdisk1 Size: 200.00GB LUN ID: 500507680240C568 WWPN: C0507601D8123457
This shows each disk (hdiskX) with its size, LUN ID, and all connected FC adapter WWPNs.
No comments:
Post a Comment