Megyeget is szépen a fejlesztés (első körben még csak a query parancsok), és el is jutottam a 'query essmap' részhez, ahol is le lehet kérni a connection detaileket (az adott LUN melyik SAN Rack, melyik Module, melyik portján közlekedik felénk - hasznos kis információ hibakeresés esetén)..
Ez ugye pcmpath/datapath alatt valahogy így néz ki:
test_server@root:/ # datapath query essmap|head -3Ami nekem ebből kellett az az 'R1-B3-H1-ZA'. Ugyan ezt akarom én is megvalósítani az XIV-s scriptem 'query essmap' részénél.. Na de nézzük hogyan...
Disk Path P Location adapter LUN SN Type Size LSS Vol Rank C/A S Connection port RaidMode
------- ----- - ----------- ------ ----------- ------------ ---- ---- --- ----- ---- - ----------- ---- --------
vpath0 hdisk6 6p-08-02[FC] fscsi3 xxxxxxx0400 IBM 2107-900 32.8GB 4 0 0004 29 Y R1-B3-H1-ZA 200 RAID5
Mint kiderült - ezt is ki lehet bányászni ODM-ből (CuPath alatt connection attributum utolsó 3 karaktere), de sajna ezt már nem lehet 1 az 1ben konvertálni ahogy néztem (vagy csak még nem jöttem rá pontosan hogyan).
Sebaj mondom, az XIV is nagyban épít az MPIO-ra, ahogy az SDDPCM is, annak meg van pcmpath parancsa, ami ezeket az infókat gyönyörűen kiadja, úgy hogy akkor induljak ki abból, nézzük össze az adatokat, és akkor az alapján dolgozzunk.
Némi kis keresgélés után kiderült, hogy SDDPCM alatt ugyan úgy a CuPath alatt kell keresni az adatokat, csak ott nem a végén, hanem kicsit máshol, de ugyan úgy megvan. Így aztán elkezdtem írni egy kis scriptet ami ezeket összegyűjti nekem, és amiből aztán majd egy kedves kis mátrixot csinálhatok, hogy mi és merre..
Aztán ahogy gyűltek az adatok észrevettem, hogy ugyan ezen kiosztás érvényes az SDD esetében is és ott meg a datapath alatt ugyan úgy elérhetőek ezek a Connection infók, szóval kicsit kibővítettem a scriptem, hogy lekezelje az SDD-os ODM bejegyzéseket is (ez kivételesen már a CuAt alatt van) és összeszedtem amit tudtam.
Az eredmény: Egy egész kellemes kis script:
#!usr/bin/ksh
SDDPCM=0
SDD=0
export ODMDIR=/etc/objrepos
if [ `lslpp -l |grep -wc devices.sddpcm` -gt 0 ]
then
SDDPCM=1
MAIN_COMMAND="pcmpath"
fi
if [ `lslpp -l |grep -wc devices.sdd` -gt 0 ]
then
SDD=1
MAIN_COMMAND="datapath"
fi
$MAIN_COMMAND query essmap > /tmp/$MAIN_COMMAND.query.essmap
for i in $(awk '{print $14}' /tmp/$MAIN_COMMAND.query.essmap |sort|uniq |grep ^R);do grep -w $i /tmp/$MAIN_COMMAND.query.essmap |head -1;done |awk '{ sub("path", ""); print $1,$2,$14}' > /tmp/connection.check
while read LINE
do
if [ $SDDPCM -eq 1 ]
then
set -A array $LINE
DISK=$(print ${array[0]})
CONN_PATH=$(print ${array[1]})
CONNECTION=$(print ${array[2]})
# In case of SDDPCM 11-13 contain the right identifiers in CuPath
CONN_IDENTIFIER=$(odmget -q "name=$DISK and path_id=$CONN_PATH" CuPath|awk -F "\"" '/connection/ {print $2}'|cut -c 11-13)
elif [ $SDD -eq 1 ]
then
set -A array $LINE
DISK=$(print ${array[1]})
CONNECTION=$(print ${array[2]})
# In case of SDD
CONN_IDENTIFIER=$(odmget -q "name=$DISK and attribute=ww_name" CuAt|awk -F "\"" '/value/ {print $2}' |cut -c 13-15)
fi
echo "$CONN_IDENTIFIER - $CONNECTION"
done < /tmp/connection.check
Illetve egy kellemes kis mátrix, amit használni tudok:
000 - R1-B1-H1-ZANa mondom éljen.. Megvan minden szépen ahogy kell.. Nézzük ezt össze az XIV-s kapcsolatokkal.. És kopp - XIV alatt jóvolta több kapcsolat van, mint amiket én kigyűjtöttem, ami azt jelenti, hogy ez a mátrix max részben használható jelenleg..
004 - R1-B1-H1-ZB
008 - R1-B1-H1-ZC
030 - R1-B1-H3-ZA
034 - R1-B1-H3-ZB
038 - R1-B1-H3-ZC
080 - R1-B2-H1-ZA
084 - R1-B2-H1-ZB
088 - R1-B2-H1-ZC
0b0 - R1-B2-H3-ZA
0b4 - R1-B2-H3-ZB
0b8 - R1-B2-H3-ZC
100 - R1-B3-H1-ZA
104 - R1-B3-H1-ZB
108 - R1-B3-H1-ZC
130 - R1-B3-H3-ZA
134 - R1-B3-H3-ZC
138 - R1-B3-H3-ZC
180 - R1-B4-H1-ZA
184 - R1-B4-H1-ZB
188 - R1-B4-H1-ZC
1b0 - R1-B4-H3-ZA
1b4 - R1-B4-H3-ZB
1b8 - R1-B4-H3-ZC
200 - R1-B5-H1-ZA
204 - R1-B5-H1-ZB
208 - R1-B5-H1-ZC
230 - R1-B5-H3-ZA
234 - R1-B5-H3-ZB
238 - R1-B5-H3-ZC
280 - R1-B6-H1-ZA
284 - R1-B6-H1-ZB
288 - R1-B6-H1-ZC
2b0 - R1-B6-H3-ZA
2b4 - R1-B6-H3-ZB
2b8 - R1-B6-H3-ZC
300 - R1-B7-H1-ZA
304 - R1-B7-H1-ZB
308 - R1-B7-H1-ZC
330 - R1-B7-H3-ZA
334 - R1-B7-H3-ZB
338 - R1-B7-H3-ZC
380 - R1-B8-H1-ZA
384 - R1-B8-H1-ZB
388 - R1-B8-H1-ZC
3b0 - R1-B8-H3-ZA
3b4 - R1-B8-H3-ZB
3b8 - R1-B8-H3-ZC
Most bújom a DS8000 és az XIV Architecture guide-jait, hogy megnézzem milyen durva különbségek vannak még amiről tudnom kéne :)))
Stay tooned :)
Szerk:
na végül erre is fény derült :))
- > DS8000 series alatt a Bay1-8 az a DS hátán elhelyezett I/O enclosure-öknek felelnek meg (SG246452 PDF 44. oldal), míg XIV esetében ez kicsit másként néz ki: Igaz, hogy jóvolta több kapcsolódási lehetősége van, viszont Fibre kapcsolatra csupán 6 I/O module-ja van (SG247659 PDF 81. oldal) amelyek számozása Module 4-9ig tart (ergo Bay1-4 variáció itt totál kiesik). Minden module rendelkezik 4-4 portal kapásból, amiket aztán rá lehet kötni a közeli Fibre switchre.
Ez után viszont akkor ez azt jelenti, hogy az SDD/SDDPCM-nél megszokott konnekciós ábrázolás bukott, helyette valami ilyesmi használható XIV esetén:
test_server@root:/ # odmget -q name=hdisk3 CuPath |awk -F "\"" '/connection/ {print $2}' |cut -c 14-16 |sort|uniq |head -1Ergo jelen esetben akkor ez a kapcsolat a Rack 1, Module 4 1. portjáról jön ( az ODM-ben a számozás 0-3ig van, az XIV-n meg 1-4ig, ergo ott azt 1el kell növelni), tehát a nevezéktan valami ilyesmi lehetne:
140
R1-M3-C1
(Az SDD/SDDPCM query essmap outputja végén lévő ZA/ZB/ZC/ZD(?) elvileg a Fabric-et jelöli. Annak még megpróbálok utánajárni, hogy kinyerhető e valahogy :)