Przez lata administratorzy środowisk PowerVM musieli godzić się z pewnym brakiem konsekwencji. Każdy, kto na co dzień zarządza AIX-em, docenia wygodę mechanizmu alt_disk_install / alt_disk_copy – możliwość aktualizacji systemu na osobnym dysku i przełączenia instancji dopiero przy restarcie. W przypadku VIOS przez długi czas musieliśmy obejść się smakiem, a poprawki aplikowaliśmy bezpośrednio na „żywym organizmie”. Owszem, można było wcześniej wykonać kopię rootvg za pomocą polecenia alt_root_vg, co pozwalało na szybki powrót w razie awarii, jednak sam proces aktualizacji i tak zawsze ingerował w aktywne środowisko. Wraz z wersją VIOS 4.1.2.0 IBM robi świetny krok naprzód, wprowadzając natywną możliwość aktualizacji systemu na alternatywnym dysku.
Nowa opcja -altdisk w poleceniu updateios
Do polecenia updateios została dodana opcja -altdisk. Dzięki temu możemy przeprowadzić aktualizację systemu na alternatywnym dysku, pozostawiając aktywny rootvg bez zmian. W przypadku niepowodzenia aktualizacji aktywny system pozostaje nienaruszony i nie ma potrzeby odtwarzania go z kopii zapasowej. Również powrót do poprzedniej wersji systemu jest znacznie szybszy niż przy tradycyjnej metodzie aktualizacji.
-altdisk
Specifies one or more alternative disks on which the updateios operation is performed. The values must be separated by a colon (:).
Nowa funkcja w praktyce
Postanowiłem sprawdzić, jak działa ta funkcja w praktyce. W tym celu wykorzystałem:
- VIOS 4.1.2.0 (pierwszą wersję udostępniającą tę funkcjonalność),
- pakiet aktualizacyjny VIOS 4.1.2.20,
- dodatkowy dysk przeznaczony na instalację.
Składnia polecenia updateios dla aktualizacji z wykorzystaniem alternatywnego dysku jest bardzo prosta. W tym celu należy użyć opcji -altdisk, podając jeden lub kilka dysków rozdzielonych znakiem ’:’.
$ updateios -dev /install/VIOS_4.1.2.20 -install -accept -altdisk hdisk1
Po uruchomieniu polecenia rozpoczyna się klonowanie rootvg:
Calling mkszfile to create new /image.data file.
Checking disk sizes.
Creating cloned rootvg volume group and associated logical volumes.
Creating logical volume alt_hd5.
Creating logical volume alt_hd6.
Creating logical volume alt_hd8.
...
Creating /alt_inst/ file system.
Creating /alt_inst/admin file system.
Creating /alt_inst/home file system.
Creating /alt_inst/opt file system.
...
*******************************************************************************
installp PREVIEW: installation will not actually occur.
*******************************************************************************
...
Fixing LV control blocks...
Fixing file system superblocks...
Jak widać na skróconym listingu, proces wygląda bardzo podobnie do standardowej procedury aktualizacji znanej z systemu AIX.
Po zakończeniu operacji w systemie pojawia się nowy wolumen altinst_rootvg:
$ lspv -field Name VG STATUS
NAME VG STATUS
hdisk0 rootvg active
hdisk1 altinst_rootvg
Gdy proces dobiegnie końca, bootlista zostaje automatycznie przełączona na nowy dysk:
$ bootlist -mode normal -ls
hdisk1 blv=hd5 pathid=0
Oznacza to, że po restarcie system zostanie uruchomiony z nowo utworzonego rootvg.
Restart i aktywacja nowej wersji systemu
Przed restartem:
$ ioslevel 4.1.2.00
Po restarcie:
$ ioslevel 4.1.2.20
$ lspv -field Name VG STATUS
NAME VG STATUS
hdisk0 old_rootvg
hdisk1 rootvg active
$ bootlist -mode normal -ls
hdisk1 blv=hd5 pathid=0
Tak jak w systemach AIX, poprzedni rootvg nie jest usuwany – podczas pierwszego uruchomienia po aktualizacji zostaje automatycznie przemianowany na old_rootvg. To jedna z największych zalet tego mechanizmu, bo daje możliwość błyskawicznego rollbacku bez odtwarzania backupu. Jeśli zajdzie potrzeba powrotu do starszej wersji VIOS, wystarczy zmienić bootlistę na poprzedni dysk i zrestartować system.
$ bootlist -mode normal hdisk0
$ shutdown -restart
Po ponownym uruchomieniu system wystartuje z poprzedniej wersji VIOS. W porównaniu do klasycznej aktualizacji, znacząco skraca to czas potrzebny na odzyskanie sprawnego środowiska, ponieważ rollback ogranicza się do zmiany bootlisty i wykonania restartu.
Jeżeli nie potrzebujemy już poprzedniej kopii systemu, można ją usunąć poleceniem alt_root_vg:
$ alt_root_vg -remove old_rootvg
Volume group has been successfully deleted.
$ lspv -field Name VG STATUS
NAME VG STATUS
hdisk0 None
hdisk1 rootvg active
Znane ograniczenia dla wersji 4.1.2.0 i 4.1.2.10
Jeśli planujesz korzystać z aktualizacji tego typu w wersjach VIOS 4.1.2.0 oraz 4.1.2.10, konieczne jest zastosowanie odpowiednich poprawek. Bez nich mogą wystąpić następujące problemy:
- aktualizacja na dyskach NVMe może zakończyć się niepowodzeniem,
- w przypadku dysków SAS/SAN operacja bosboot może nie zostać wykonana poprawnie.
IBM udostępnił poprawki:
- IJ59424 (https://www.ibm.com/support/pages/apar/IJ59424)
- IJ59448 (https://www.ibm.com/support/pages/apar/IJ59448)
Więcej informacji o problemach przy użyciu updateios z -altdisk: https://www.ibm.com/support/pages/node/7281832
Dopiero od wersji 4.1.2.20 funkcjonalność działa poprawnie bez konieczności instalowania dodatkowych poprawek.
Podsumowanie
Dodanie obsługi alternatywnych dysków do polecenia updateios jest jedną z ciekawszych zmian wprowadzonych w VIOS 4.1.2.0. Aktualizacja może zostać przygotowana na osobnym dysku bez wpływu na działający system, a aktywacja nowej wersji sprowadza się do restartu serwera.
Jeszcze większą zaletą jest możliwość błyskawicznego rollbacku. Dopóki zachowany jest dysk zawierający old_rootvg, powrót do poprzedniej wersji systemu wymaga jedynie zmiany bootlisty i restartu. Mechanizm ten od wielu lat sprawdza się w środowiskach AIX. Jego pojawienie się w VIOS znacząco upraszcza proces aktualizacji i zmniejsza ryzyko związane z utrzymaniem kluczowego komponentu platformy IBM Power.

