Posted in

VIOS: Aktualizacja na alternatywnym dysku (alt_disk)

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:

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.