Mksysb op een kleinere disk

  Algemeen

Ik heb diverse projecten gedaan waarbij we migraties deden van physieke AIX systemen naar naar lpar achter vio. voordeel van zo’n VIO is oa dat je de rootvg disken klein kunt houden.

Probleem

De bestaande systemen hebben voor rootvg physieke disken. 70GB. de nieuwe lpar’s hebben rootvg disken van 12GB op de bestaande systemen is uiteraard niet meer als 12GB aan data aanwezig paging niet meer gerekend. Is dat wel het geval zul je eerst moeten zorgen dat alle applicatie Logical volumes/filesystemen in een andere volume group komen. in dit document ga ik er verder van uit dat je een NIM server tot je beschikking hebt, en ook de weg weet binnen NIM.

De migratie

Als eerste verzamelen we zoveel mogenlijk nuttige gegevens van het het systeem, filesysteem, lv, vg, disken zoveel mogenlijk ik zelf gebruik graag cfg2html (is er ook voor andere OSen. maar je kan ook een snap maken. Vervolgens maken we een mksysb van het bestaande systeem.

# mksysb -i /locatie 

Als de mksysb klaar is en deze staat op de NIM server haal je uit de mksysb de image.data of je kopieert hem van het systeem, ik haal hem altijd op de NIM server uit de mksysb.

# restore -xvf mksysb_filename ./image.data 

de image.data word in de huidige directory uitgepakt. open nu de image.data in een tekst editor bv vi. hier onder is niet de complete image.data alleen het eerste deel. het gaat om het idee

 # vi image.data 
 image_data:
        IMAGE_TYPE= bff
        DATE_TIME= Fri Nov 20 09:54:30 MET 2009
        UNAME_INFO= AIX XXXXXX 3 5 00C6333B4C00
        PRODUCT_TAPE= no
        USERVG_LIST= data1vg data2vg
        PLATFORM= chrp
        OSLEVEL= 5.3.8.0
        OSLEVEL_R= 5300-08
        CPU_ID= 00C6333B4C00
        LPAR_ID= 3

 logical_volume_policy:
        SHRINK= no
        EXACT_FIT= no

 ls_data:
        LANG=  en_US

 ##Command used for vg_data; /usr/sbin/lsvg

 vg_data:
        VGNAME= rootvg
        PPSIZE= 128
        VARYON= no
        VG_SOURCE_DISK_LIST= hdisk0 hdisk1
        QUORUM= 1
        ENH_CONC_CAPABLE= no
        CONC_AUTO= no
        BIGVG= no
        TFACTOR= 1

 ##Command used for source_disk_data; /usr/sbin/bootinfo

 source_disk_data:
        PVID= 00c6333b92899b1f
        PHYSICAL_LOCATION= U7879.001.DQDXXXX-P1-T12-L4-L0
        CONNECTION= scsi0//4,0
        LOCATION= 07-08-00-4,0
        SIZE_MB= 70006
        HDISKNAME= hdisk0

 source_disk_data:
        PVID= 00c6333b92a8fe57
        PHYSICAL_LOCATION= U7879.001.DQDXXXX-P1-T12-L5-L0
        CONNECTION= scsi0//5,0
        LOCATION= 07-08-00-5,0
        SIZE_MB= 70006
        HDISKNAME= hdisk1

 ##Command used for lv_data; /usr/sbin/lslv

 lv_data:
        VOLUME_GROUP= rootvg
        LV_SOURCE_DISK_LIST= hdisk0 hdisk1
        LV_IDENTIFIER= 00c6333b00004c000000011c278ff196.1
        LOGICAL_VOLUME= hd5
        VG_STAT= active/complete
        TYPE= boot
        MAX_LPS= 512
        COPIES= 2
        LPs= 1
        STALE_PPs= 0
        INTER_POLICY= minimum
        INTRA_POLICY= edge
        MOUNT_POINT=
        MIRROR_WRITE_CONSISTENCY= on/ACTIVE
        LV_SEPARATE_PV= yes
        PERMISSION= read/write
        LV_STATE= closed/syncd
        WRITE_VERIFY= off
        PP_SIZE= 128
        SCHED_POLICY= parallel
        PP= 2
        BB_POLICY= relocatable
        RELOCATABLE= no
        UPPER_BOUND= 32
        LABEL= primary_bootlv
        MAPFILE=
        LV_MIN_LPS= 1
        STRIPE_WIDTH=
        STRIPE_SIZE=
        SERIALIZE_IO= no
        FS_TAG=
        DEV_SUBTYP=

 lv_data:
        VOLUME_GROUP= rootvg
        LV_SOURCE_DISK_LIST= hdisk0 hdisk1
        LV_IDENTIFIER= 00c6333b00004c000000011c278ff196.2
        LOGICAL_VOLUME= hd6
        VG_STAT= active/complete
        TYPE= paging
        MAX_LPS= 512
        COPIES= 2
        LPs= 10
        STALE_PPs= 0

Boven staande image.data is een veel voorkomende configuratie. Om deze terug te lezen op kleinere disken kan je het volgende doen. verwijder de definitie van hdisk1, de volgende stanza verwijder je dus.

 source_disk_data:
       PVID= 00c6333b92a8fe57
       PHYSICAL_LOCATION= U7879.001.DQDXXXX-P1-T12-L5-L0
       CONNECTION= scsi0//5,0
       LOCATION= 07-08-00-5,0
       SIZE_MB= 70006
       HDISKNAME= hdisk1

verder haal je ook bij iedere lv_data stanza (voor iedere LV in rootvg is er een lv_data) achter LV_SOURCE_DISK_LIST hdisk1 weg, als er al 1 maar 1 hdisk achter stond dan was die LV niet gemirrord, als het in dat geval hdisk1 was pas deze dan aan naar hdisk0. Alle entries van LV_SOURCE_DISK_LIST bij alles lv_data zien er dus als volgt uit.

 LV_SOURCE_DISK_LIST= hdisk0

Dan staan er in iedere stanza lv_data 3 andere velden die aan gepast moeten worden. namelijk COPIES, LPs en PP. Als COPIES= 2 staat zal PP het dubbelen aantal zijn van LPs. Pas COPIES aan naar 1 en maak PP gelijk aan LPs, doe dit voor iedere Logical Volume. een speciaal geval is paging stanza, zet hier de mirror ook uit door COPIES= 1 te plaatsen maar pas LPs en PP aan naar 1 die vergroten we later wel weer. dit kan je eventueel ook doen voor het dump device als die er is. Is alles aangepast save de file en voer de image.data op als NIM resource.

Start nu de installatie van het nieuwe systeem. met als extra resource de image.data. Op een gegeven moment krijg je de vraag of je de instellingen wilt aanpassen. kies eventueel beide disken van het nieuwe systeem voor installatie van rootvg en ze de optie shrink filesystem aan. Ik kies meestal voor een installatie op beide disken, ik heb wel eens gemerkt dat ondanks dat alles op 1 disk zou moeten passen de installatie toch afgebroken werd met de melding dat er niet genoeg ruimte zou zijn. na het installeren op 2 disken bleek achter af dat er toch maar 1 disk nodig was.

Na bewerking

Als het systeem is gerestored, en weer gestart is. zorg er dan voor dat de alle LV op 1 disk liggen. maak mirror weer actief, en vergroot alle filesysteme

n weer hoe je ze wilden hebben. zorg ook dat paging weer groot genoeg is. als deze niet meer in rootvg past en je gaat meerdere paging devices gebruiken houd daar bij de regels van IBM in acht, alle pagings device even groot.