La méthode présentée ci dessous, décrit comment retirer un mirroir sur le rootvg d'un serveur AIX.
Nous allons commencer par déterminer si le volume groupe de boot est mirroré.
La commande lsvg -p permet de déterminer les disque composant le rootvg.
#lsvg -p rootvg rootvg: PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION hdisk0 active 542 199 108..28..00..00..63 hdisk1 active 542 383 108..12..46..108..10 9
Pour savoir si le disque est mirroré, on observe les volumes logiques à l'aide de lsvg -l. SI le nombre de PV est à deux c'est que les volumes logiques sont mirrorés. Dans un même volume groupe, il peut y avoir coexistance de volumes logiques mirrorés et d'autres qui ne le sont pas. C'est le cas ici avec lrootvg0101.
#lsvg -l rootvg rootvg: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT hd5 boot 1 2 2 closed/syncd N/A hd6 paging 80 160 2 open/syncd N/A hd8 jfs2log 1 2 2 open/syncd N/A hd4 jfs2 1 2 2 open/syncd / hd2 jfs2 33 66 2 open/syncd /usr hd9var jfs2 6 12 2 open/syncd /var hd3 jfs2 16 32 2 open/syncd /tmp hd1 jfs2 2 4 2 open/syncd /home hd10opt jfs2 3 6 2 open/syncd /opt lg_dumplv sysdump 200 200 1 open/syncd N/A lrootvg0101 jfs2 16 16 1 open/syncd /TUNING
Le volume logique hd5 est le volume de boot. Il faut impérativement vérifier que le disque que l'on conserve contient celui-ci. La commande lslv -m détermine son emplacement.
#lslv -m hd5 hd5:N/A LP PP1 PV1 PP2 PV2 PP3 PV3 0001 0001 hdisk0 0001 hdisk1
Dans notre cas, hd5 se trouve sur deux disques hdisk0 et hdisk1. Démirrore maintenant retournerait un message comme suit:
#unmirrorvg rootvg hdisk1 0516-1246 rmlvcopy: If hd5 is the boot logical volume, please run 'chpv -c' as root user to clear the boot record and avoid a potential boot off an old boot image that may reside on the disk from which this logical volume is moved/removed. 0516-1132 unmirrorvg: Quorum requirement turned on, reboot system for this to take effect for rootvg. 0516-1144 unmirrorvg: rootvg successfully unmirrored, user should perform bosboot of system to reinitialize boot records. Then, user must modify bootlist to just include: hdisk0.
On doit donc nettoyer le boot record du disque que l'on ne veut pas garder, puis vérifier que le volume logique de boot est correct.
#chpv -c hdisk1 #lslv -m hd5 hd5:N/A LP PP1 PV1 PP2 PV2 PP3 PV3 0001 0001 hdisk0
Une vérification du nombre de physical volume doit retourner 1 seul PV par LV.
#lsvg -l rootvg rootvg: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT hd5 boot 1 1 1 closed/syncd N/A hd6 paging 80 80 1 open/syncd N/A hd8 jfs2log 1 1 1 open/syncd N/A hd4 jfs2 1 1 1 open/syncd / hd2 jfs2 33 33 1 open/syncd /usr hd9var jfs2 6 6 1 open/syncd /var hd3 jfs2 16 16 1 open/syncd /tmp hd1 jfs2 2 2 1 open/syncd /home hd10opt jfs2 3 3 1 open/syncd /opt lg_dumplv sysdump 200 200 1 open/syncd N/A lrootvg0101 jfs2 16 16 1 open/syncd /TUNING
Il reste à déplacer les PPs encore utilisés sur le second disque en les migrant vers le premier. En effet lsvg -p montre que le second disque n'est pas composé uniquement de PPs libres.
#lsvg -p rootvg rootvg: PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION hdisk0 active 542 199 108..28..00..00..63 hdisk1 active 542 526 109..92..108..108..109
migratepv du disque à vider vers le disque qui doit contenir l'intégralité durootvg, va effectuer l'opération.. Au final, il doit y a voir sur le disque à libérer autant de PPs libres qu'il existe de PPs.
# migratepv hdisk1 hdisk0 #lsvg -p rootvg rootvg: PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION hdisk0 active 542 183 108..12..00..00..63 hdisk1 active 542 542 109..108..108..108.109
Il reste à retirer le disque du volume groupe à l'aide de reducevg.
#reducevg rootvg hdisk1 #lsvg -p rootvg rootvg: PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION hdisk0 active 542 183 108..12..00..00..63
Il reste maintenant à fixer le device d'IPL. On force avec le lien entre le disque et le device ipldevice (option-f). Ce n'est pas grave, si le lien était correctement configuré.
#ln -f /dev/rhdisk0 /dev/ipldevice ln: /dev/rhdisk0 and /dev/ipldevice are identical.
On fixe la bootlist pour le mode normal ainsi que pour le mode service et notre serveur est près à redémarrer.
#bootlist -m normal hdisk0 #bootlist -o -m normal hdisk0 #bootlist -o -m service hdisk0