English version of this article: https://community.ibm.com/community/user/blogs/michal-wiktorek/2024/11/27/introduction-to-aix
Wstęp
W świecie technologii systemy Unixowe często kojarzą się jako skomplikowane, przeznaczone wyłącznie dla wąskiej grupy specjalistów o zaawansowanej wiedzy. IBM AIX, czyli jeden z najbardziej dojrzałych i stabilnych systemów Unix, bywa postrzegany jako trudny do opanowania. W mojej ocenie jednak rzeczywistość jest inna. AIX, przy odpowiednim podejściu, może okazać się całkiem przystępny, nawet dla osób, które dopiero zaczynają swoją przygodę z administracją systemami, a tym co najbardziej zniechęca do korzystania z niego, jest strach przez czymś nieznanym i niszowym w porównaniu np. do popularnego Linuxa.
W tym artykule przyjrzymy się podstawom AIX, pokazując, że zrozumienie jego funkcji i mechanizmów wcale nie musi być wielkim wyzwaniem. Poznasz kluczowe pojęcia, dowiesz się, jak szybko zacząć efektywnie pracować z tym systemem i przede wszystkim: od czego właściwie zacząć. Niezależnie od tego, czy jesteś nowicjuszem, czy doświadczonym administratorem systemów, AIX może stać się Twoim sprzymierzeńcem w codziennej pracy.
Warto zdawać sobie sprawę, że AIX to system klasy enterprise, od podstaw projektowany dla serwerów. O ile dystrybucje Linux na serwerach mają często wiele wspólnego z rozwiązaniami dla Desktopów i wspólne repozytoria oprogramowania, to AIX jest pozbawiony takich rzeczy jak np. obsługa dźwięku, bluetooth, WIFI itp. ponieważ nie jest to potrzebne.
AIX jest minimalistyczny, pozbawiony zbędnego oprogramowania i jakiegokolwiek bloatware, dlatego że ma działać stabilnie i zapewnić ciągłość pracy systemów krytycznych dla biznesu.
Podstawowe informacje
System AIX (Advanced Interactive eXecutive) jest systemem operacyjnym z rodziny UNIX, stworzonym przez firmę IBM i jest wykorzystywany przede wszystkim do użytku w środowiskach korporacyjnych. AIX jest przeznaczony do działania tylko na serwerach IBM Power i został zaprojektowany jako system ściśle współpracujący z wirtualizacją PowerVM i architekturą procesora Power.
Z jednej strony AIX jest bardzo zaawansowanym systemem, a z drugiej strony ma wiele usprawnień, przez które codzienna praca z nim może być przyjemniejsza w porównaniu do wielu innych systemów operacyjnych.
Komendy typowe dla AIX są dość logiczne. Większość poleceń do wyświetlania, zaczyna się od "ls" (list), komendy które mają coś zmienić w systemie od "ch" (change), a komendy które służą do usuwania "rm" (remove).
Istnieje wiele czynności, które w AIX wymagają wykonania jednego polecenia, podczas gdy wykonanie tego samego na dystrybucji Linux wymaga kilku działań. Jest to odczuwalne zwłaszcza przy wykrywaniu nowych urządzeń, pracy z macierzami SAN i zarządzaniu przestrzenią systemów plików.
Administratorzy mają do dyspozycji również narzędzie SMIT (opisane w dalszej części artykułu), które pozwala na wykonanie wielu czynności administracyjnych, nawet wtedy, gdy nie mamy wiedzy o tym, jakich poleceń należy użyć w danym przypadku.
Administrację i automatyzację znacząco usprawnia korzystanie z gotowych kolekcji Ansible dedykowanych dla AIX (https://galaxy.ansible.com/ui/repo/published/ibm/power_aix). Zdecydowanie warto z nich korzystać i uczyć się ich używania nawet na początku nauki administracji AIX, zwłaszcza jeśli w organizacji mamy do dyspozycji Ansible Automation Platform lub AWX, które być może są wykorzystywane już do automatyzacji innych systemów.
AIX działa na serwerach i architekturze Power, dlatego został zoptymalizowany do działania w tej technologii. Dzięki temu, istnieje obsługa aż 8 wątków procesora, dlatego należy na to zwracać uwagę przy analizie obciążenia CPU, zwłaszcza na początku nauki pracy z AIX-em. W przypadku np. 8 CPU przypisanych do systemu i ustawieniu SMT-8 (8 wątków), w systemie widoczne będą aż 64 logiczne procesory, co może być nieco dezorientujące dla uczących się administratorów. Istnieje możliwość pracy nie tylko w 8 wątkach, ale również 4, 2 oraz w trybie pracy z wyłączoną wielowątkowością, a ustawienie SMT (Simultaneous Multithreading) może być zmieniane online.
Warto wiedzieć, że AIX w zdecydowanej większości przypadków działa w ramach wirtualizacji PowerVM, dlatego jest zazwyczaj uruchamiany w ramach LPAR-a (Logical Partition, czyli maszyny wirtualnej), a zasoby takie jak np. CPU i RAM mogą być dynamicznie przydzielane i zabierane.
Wersje systemu AIX
Obecnie rozwijane wersje to AIX 7.2 i AIX 7.3. Obydwa te systemy na dzień pisania artykułu są wspierane i rozwijane przez dostawcę, czyli IBM.
Do istotnych obowiązków administratorów należy utrzymanie odpowiedniej wersji AIX, ponieważ są one ściśle związane z obsługą zgłoszeń przez IBM. Posiadanie systemu AIX w przestarzałej wersji, która już nie jest wspierana, wiąże się z tym że IBM ma prawo odrzucić zgłoszenie serwisowe.
Utrzymanie możliwości serwisu dla systemu AIX to konieczność i nie należy tego lekceważyć. Niezależnie od tego jak bardzo dużą wiedzę i doświadczenie mają administratorzy danego systemu, zawsze istnieje ryzyko że może się pojawić bug lub problem którego nie da się rozwiązać bez pomocy serwisu IBM i np. dedykowanej poprawki lub rekomendacji zmiany konfiguracyjnej.
Daty końca wsparcia można śledzić na stronach:
End of Fix Support (EoFS) https://www.ibm.com/support/pages/aix-support-lifecycle-information
End of Service (EOS) : https://www.ibm.com/support/lifecycle/search?q=AIX%20Standard%20Edition
Wersję systemu AIX można sprawdzić poleceniem oslevel -s
. Przykładowy output polecenie może być następujący:
# oslevel -s
7300-02-02-2420
Co oznacza ten wynik?
- 7300 - określa wersję systemu AIX. W tym przypadku 7.3
- 02 - poziom technologiczny systemu (Technology Level), czyli 2
- 02 - poziom Service Pack, czyli 2
- 2420 - "build sequence identifier", który określa rok i tydzień wydania, czyli 20 tydzień 2024 roku
W systemie IBM AIX terminy Technology Level (TL) i Service Pack (SP) odnoszą się do różnych poziomów aktualizacji i wsparcia systemu operacyjnego.
- Technology Level to duże, regularnie wydawane aktualizacje systemu AIX, które wprowadzają nowe funkcje, usprawnienia wydajności, poprawki bezpieczeństwa i ulepszenia zgodności.
- Service Pack to zestawy aktualizacji, które zawierają poprawki błędów i łaty bezpieczeństwa dla konkretnego poziomu TL.
Oprócz tego istnieją poprawki tymczasowe czyli iFix (Interim Fix), czyli indywidualne poprawki wydane w odpowiedzi na konkretny problem, zanim zostanie uwzględniony w kolejnym TL lub SP.
Skąd czerpać wiedzę?
Początkujący administratorzy często mają problem z pozyskaniem źródeł informacji, dlatego poniżej wymieniłem te, które wydają mi się najbardziej sensowne. Warto pamiętać że zawsze w sposób nadrzędny należy traktować oficjalną dokumentację IBM.
Materiałów jest całkiem sporo, dlatego żeby nie być przytłoczonym nadmiarem informacji, polecam w pierwszej kolejności książkę Sebastiana Biedronia oraz naukę poprzez pracę z systemem.
W przypadku gdy masz dostęp do systemu AIX, warto skorzystać z podstawowych poleceń administracyjnych opisanych poniżej, bo najbardziej efektywną nauką jest połączenie teorii z praktyką.
Nauka przez praktykę, czyli praca z systemem
Jeśli masz dostęp do AIX-a w ramach np. chmury PowerVS, lub znienacka zostałeś szczęśliwym administratorem produkcyjnego systemu na którym działają krytyczne usługi w Twojej organizacji, to zdecydowanie warto poznawać podstawy zaznajamiając się z wynikami podstawowych poleceń i narzędziami.
Jakie polecenia na początek można wykonać na systemie, tak żeby mu nie zaszkodzić? Na początek proponuję poniższy zestaw
- Podstawowe informacje o danym systemie AIX
uname -a
- hostname systemu Displays the system name, nodename, version, machine ID.
df -g
- informacje o zajętości systemów plików (znane z Linux, jednak zamiast opcji -h używamy np. -g (GB) lub -m (MB). Warto zapoznać się z rolą widocznych Filesystemów przez sprawdzenie ich opisu w dokumentacji:https://www.ibm.com/docs/en/aix/7.3?topic=tree-file-system-structure)
oslevel -s
- wersja systemu AIX, poziom technologiczny, zainstalowany Service Pack
prtconf
- informacje m.in. o modelu serwera, generacji procesora, liczbie przypisanych zasobów CPU i RAM
lparstat -i
- nazwa i parametry LPAR-a
lssrc -a
- wyświetlenie stanu wszystkich podsystemów
- polecenia standardu POSIX, np.
ls
, cat
, grep
, cd
, pwd
, czyli znane administratorom i użytkownikom Linux oraz Unix (https://en.wikipedia.org/wiki/List_of_POSIX_commands)
- monitorowanie obciążenia systemu, procesów
- dyski, LVM oraz systemy plików
lspv -u
- Physical Volumes, wraz z numerami UID
lsvg
- wyświetlenie Volume Group
lslv XXX
- informacje o wolumenie logicznym XXX
lsfs
- wylistowanie Filesystemów
mount
- wyświetlenie zamontowanych systemów plików
lsps -a
- wyświetlenie paging spaces
- konfiguracja sieci
ifconfig -a
- stan interfejsów sieciowych oraz nadane adresy IP
netstat -nr
- tablica routingu
lsattr -El inet0
- parametry urządzenia inet0 i wpisy w tablicy routingu
lsattr -El en0
- parametry interfejsu en0
- urządzenia i ich parametry
lsdev
- wylistowanie urządzeń w systemie
lsdev -Cc adapter
- wylistowanie adapterów
lscfg
- wyświetlenie konfiguracji systemu i informacji o urządzeniach (VPD - vital product data)
- Zainstalowane oprogramowanie
lslpp -L
- wylistowanie zainstalowanych Filesetów, czyli pakietów oprogramowania
emgr -l
- wylistowanie zainstalowanych iFix-ów
- Dziennik zdarzeń
errpt -a
- wylistowanie błędów i zdarzeń systemu AIX
Wyzwania administratora
Praca z AIX może się różnić w zależności od zakresu obowiązków danej jednostki organizacyjnej w Twojej firmie. W niektórych firmach istnieją zespoły administratorskie które zarządzają zarówno utrzymywaniem systemów jak i wirtualizacją PowerVM i serwerami fizycznymi, a w innych podział kompetencji może być rozdzielony na wiele różnych zespołów.
- Codzienna praca (utrzymanie i rozwój)
- Obserwacja monitoringu i statystyk, reagowanie na zdarzenia dziennika systemowego, analizy wydajnościowe, tuning parametrów, tworzenie automatyzacji, utrzymywanie standardu konfiguracji, dodawanie zasobów
- Praca z kodem, zwłaszcza gdy pracujemy w kulturze DevOps (Git, Ansible, CI/CD)
- Dbanie o bezpieczeństwo, śledzenie podatności
- Prace cykliczne
- Podnoszenie wersji systemu AIX (Technology Level, Service Pack, instalacja iFix-ów), migracje AIX np. z wersji 7.2 do 7.3
- Zmiany w infrastrukturze (np. wymiana macierzy dyskowej lub wymiana serwerów na wyższą generację)
- Np. migracja danych na nową macierz dyskową na poziomie LVM, migrowanie LPAR-ów między maszynami fizycznymi
- Zgłoszenia do serwisu IBM
- zgłaszanie problemów, dostarczanie wymaganych danych do analizy, konsultacje, instalacja dostarczonych poprawek, stosowanie rekomendacji
Co powinien umieć administrator AIX?
- umieć wykonać backup systemu i go odtworzyć
- zainstalować poprawki iFix, podnieść wersję systemu do wyższego poziomu Technology Level, Service Pack
- zarządzać przestrzenią dyskową
- monitorować stan systemu
- troubleshooting, analiza problemów wydajnościowych
- stosowanie dobrych praktyk z zakresu bezpieczeństwa, dostosowanie systemu do wymogów bezpieczeństwa, hardening
- dostosowanie systemu do wymagań aplikacji, np. dla bazy Oracle
- automatyzacja powtarzalnych czynności
Warto już na początku przygody z AIX myśleć o automatyzacji oraz koncepcji utrzymywania infrastruktury jako kod, CI/CD i pracy w kulturze DevOps.
Narzędzie SMIT
SMIT, czyli System Management Interface Tool to interaktywne narzędzie dostępne z poziomu CLI, które pozwala wykonywać wiele rzeczy związanych z konfiguracją systemu AIX. Jest szczególnie przydatne dla początkujących administratorów, ale używają go również zaawansowani. Korzystanie ze SMIT-a pozwala uniknąć błędów w postaci literówek, wykonać czynność bez znajomości konkretnego polecenia i jest też po prostu wygodne.
Struktura systemu plików
Katalogi w strukturze plików systemu mają swoje znaczenie. W przypadku systemu AIX część z nich to punkty montowania osobnych wolumenów logicznych, dzięki czemu są od siebie odseparowane, a np. zapchanie Filesystemu /tmp
nie ma wpływu na wolną przestrzeń w ramach Filesystemu /usr
.
Po więcej informacji o strukturze odsyłam do dokumentacji: https://www.ibm.com/docs/pl/aix/7.2?topic=tree-file-system-structure
/
- Główny katalog systemu, czyli tzw. katalog root. Wszystkie inne systemy plików są montowane jako jego podkatalogi
/etc/
- Zawiera pliki konfiguracyjne systemu
/dev
- Zawiera pliki urządzeń, zarówno sprzętowych, jak i wirtualnych
/usr/
- Przechowuje programy, biblioteki i pliki systemowe
/home
- Przeznaczony dla katalogów domowych użytkowników
/opt
- Przeznaczony na dodatkowe oprogramowanie, które nie jest częścią systemu operacyjnego
/tmp
- Katalog używany dla danych tymczasowych
/var
- Przechowuje dane zmienne, takie jak logi systemowe, pliki tymczasowe i bufory wydruku
/var/adm/ras
- Katalog przeznaczony dla dzienników diagnostycznych AIX
LVM
Podstawą pracy z przestrzenią dyskową w systemie AIX jest LVM i zdecydowanie warto go znać. Zapewnia elastyczność, redundancję i łatwość rozbudowy pamięci masowej, pozwalając na dynamiczne zmiany konfiguracji bez przerywania pracy systemu. Różni się od implementacji LVM-a znanej z HP-UX czy Linux, ale nazwy poleceń są w pewnym stopniu podobne (pvdisplay = lspv, vgextend = extendvg). Warto wiedzieć że w przypadku AIX-a, nie ma czegoś takiego jak partycje znane z dystrybucji Linux i systemów Windows, co jest też sporą zaletą.
- PV (Physical Volume) - podstawowa jednostka w LVM, w przypadku AIX stanowiąca pojedynczy dysk, bez udziału klasycznej partycji. PV jest podstawą na której są budowane kolejne warstwy LVM
- VG (Volume Group) - grupa wolumenów która łączy PV w jedną, logiczną całość. Jest podstawą do tworzenia LV
- LV (Logical Volume) - Logiczny wolumen, który jest tworzony z przestrzeni dostępnej w VG i może stanowić podstawę dla Filesystemu lub SWAP
- PP (Physical Partition) - Najmniejsza jednostka w LVM. Physical Patitions można porównać do "cegiełek" z których jest zbudowana przestrzeń PV.
- Filesystem - system plików stanowi przestrzeń dla plików (w AIX zazwyczaj w formacie JFS lub JFS2), który można utworzyć na LV
Po więcej szczegółów odsyłam do dokumentacji: https://www.ibm.com/docs/en/aix/7.3?topic=management-logical-volume-manager
Edytor tekstu Vi
VI jest na tyle specyficznym i znanym edytorem tekstu w systemach Unix-owych, że dorobił się różnych żartów, np.:
"Jak wygenerować losowy ciąg znaków? Kazać użytkownikowi Windowsa wyjść z Vi"
"Już od 10 lat używam edytora Vi, głównie dlatego że nie wiem jak z niego wyjść"
Można go kochać lub nienawidzić, ale jego zdecydowaną zaletą jest to że jest dostępny praktycznie w każdym systemie Unix, dlatego każdy administrator AIX powinien go znać przynajmniej w podstawowym zakresie - https://www.ibm.com/docs/en/aix/7.2?topic=v-vi-command
Narzędzia do zabezpieczania systemu
W systemie AIX są dostępne narzędzia, których próżno szukać w innych systemach operacyjnych. Jednymi z najbardziej przydatnych są mksysb
i alt_disk_copy
, które pozwalają na utworzenie kopii systemu AIX. Warto je wykonywać przed każdą instalacją poprawek lub podniesieniem wersji systemu operacyjnego, w trakcie normalnego działania systemu.
alt_disk_copy
Narzędzie pozwala na klonowanie systemu AIX na alternatywny dysk, podłączony do tego samego LPAR-a. Klonowanie systemu umożliwia łatwy powrót do poprzedniego stanu w razie problemów, ponieważ przełączenie na alternatywny dysk odbywa się za pomocą restartu.
Przykład polecenia do wykonania kopii dysku systemowego, bez modyfikacji bootlisty:
alt_disk_copy -B -d hdiskX
mksysb
Narzędzie to służy do tworzenia pełnej kopii zapasowej systemu operacyjnego AIX. Oprócz możliwości odtworzenia systemu AIX w przypadku awarii, pozwala na stworzenie obrazu systemu, który można zainstalować na innym serwerze. Może być pomocne również w przypadku migracji na nowe serwery, np. jeśli nie jest możliwe wykonanie Live Partition Mobility. Należy zadbać by plik z obrazem mksysb został zabezpieczony w innym miejscu niż przestrzeń dyskowa naszego systemu operacyjnego.
Przykład polecenia do wykonania obrazu mksysb do pliku:
mksysb -i /backup/image_mksysb
Podstawy wirtualizacji PowerVM
Nie każdy administrator systemu AIX zajmuje się serwerami fizycznymi i wirtualizacją PowerVM, jednak warto przynajmniej znać poniższe pojęcia, choćby po to by móc się lepiej porozumiewać z zespołem administratorów odpowiedzialnym za warstwę wirtualizacji i sprzętu.
W celu zapoznania się z podstawowymi pojęciami wirtualizacji PowerVM, zachęcam do przeczytania mojego innego artykułu: https://www.linkedin.com/pulse/discover-power-ibm-wirtualizacja-powervm-michal-wiktorek-k0faf
- Wirtualizacja procesora, m.in. Entitled Capacity i Virtual Processors
- Profile LPAR-ów, czyli wartości minimum, desired, maximum, adaptery fizyczne/wirtualne, tryb kompatybilności procesora
- Systemy VIOS
- Konsola HMC
- dostęp dyskowy, czyli NPIV vs vSCSI
- wirtualizacja sieci: SEA, SR-IOV
- Live Partition Mobility
Podsumowanie
W tym artykule starałem się wskazać istotne zagadnienia związane z administracją systemami AIX. Choć z początku mogą się wydawać trudne i zagmatwane, z czasem można zauważyć, że rzekoma trudność systemu AIX to często kwestia uprzedzeń lub braku znajomości podstaw. Ten potężny system operacyjny oferuje nie tylko stabilność i niezawodność, ale także intuicyjne narzędzia, które ułatwiają zarządzanie infrastrukturą IT. Kluczem jest podejście krok po kroku – stopniowe zgłębianie funkcji i możliwości systemu. Im więcej czasu poświęcisz na praktykę, tym bardziej docenisz elastyczność i wszechstronność AIX, dlatego warto próbować – z odpowiednimi zasobami i odrobiną cierpliwości system AIX może stać się Twoim ulubionym systemem operacyjnym, a jego zrozumienie przyniesie Ci wymierne korzyści w codziennej administracji i rozwoju zawodowym.