Download: SysadminPoznan

Transkrypt

Download: SysadminPoznan
KNOW HOW
Linux na mainframe
Linux na mainframe
HISTORIA WDROŻENIA
NA UNIWERSYTECIE W POZNANIU
Niniejszy artykuł stanowi próbę podsumowania historii instalacji Linuksa na komputerze typu mainframe na
Uniwersytecie im. Adama Mickiewicza w Poznaniu, dokonaną przez uczestnika wdrożenia, Piotra Kolasińskiego.
PIOTR KOLASIŃSKI
Początek
N
a początku były dinozaury...
No, niezupełnie – tak naprawdę to były pudła. Dwie wielkie
skrzynie i problemy z przeciśnięciem
przez drzwi. Potem było już dużo... łatwiej, oczywiście.
Stan faktyczny: komputer, macierz
i kilka osób reprezentujących dwa odrębne światy: Linux/uczelnia i mainframe/
biznes. Najpierw konfiguracja podstawowa: po pierwotnym uruchomieniu przez
personel techniczny IBM (kabelkologia
i mikrokody) przyszedł czas na konfigurację I/O. Nie mam na myśli bynajmniej
dobierania karty graficznej, sterownika
dysków itp. Tak naprawdę trzeba zdecy-
68
NUMER 15 KWIECIEŃ 2005
dować, jak podzielić macierz – mieliśmy
do dyspozycji 2 * 1 TB i przestrzeń 512
(2 * 256) urządzeń logicznych. Minimalny przydział obszaru – 1 cylinder (ok. 15 *
56 kB), maksymalny – 32760 cylindrów.
Standardy są najlepsze, więc pierwsza decyzja – 16 dysków w klasycznym układzie
3390-3 (3339 cylindrów każdy). Kilka
operacji na konsoli „rekinka” (pracującej
pod kontrolą Linuksa) i rozpoczyna się
proces formatowania macierzy i przydziału urządzeń. O pozostałej puli z pierwszego terabajta zdecydujemy później (to
przecież mainframe – system zobaczy nowe logiczne dyski bez restartu). Teraz pora na „czarne maleństwo”. Spojrzenie
oczami inżyniera elektronika daje następujący obraz: 6 interfejsów sieciowych
(dwa miedziane GbE i cztery światłowo-
WWW.LINUX-MAGAZINE.PL
dowe), 4 interfejsy FICON, 8 GB pamięci
i dwa procesory. Dla administratora to
już coś innego – zaczyna od pytania, ile
partycji i ile pamięci w każdej z nich.
Operacja konfiguracji generalnie może
przebiegać „na gorąco” – z jednym wyjątkiem – zmiana ilości partycji wymaga ponownego startu całości (tzw. proces POR
– „Power On Reset"). Wszyscy przechodzimy do innego pomieszczenia: stół, kawa, kartki, ołówki. Po chwili dochodzą
jeszcze kolorowe flamastry. Po dwóch godzinach z wielu możliwych wariantów
wyłania się pierwsza konfiguracja.
Pozostajemy przy trzech partycjach,
jedno z miedzianych połączeń pozostaje
klasyczną kartą sieciową, a drugie na potrzeby systemu z/VM ma być ustawione w trybie emulacji terminali 3270.
Linux na mainframe
Po wstępnej instalacji i konfiguracji nastąpi zmiana na drugi klasyczny interfejs
sieciowy. Logiczne definicje I/O przy braku systemu operacyjnego wykonywane są
na konsoli sprzętowej poprzez edycję
zbioru tekstowego do złudzenia przypominającego program asemblerowy zSeries
– i nie jest to przypadek. Opisanie partycji, przyporządkowanie wybranych adresów logicznych – ważne dla systemu zVM.
Potem uruchomienie procesu asemblacji
(tak – nie ma pomyłki), ponowne wczytanie konfiguracji (system pierwotnie ocenia to na dwie godziny, potem miłosiernie
„schodzi” do 20 minut, ostatecznie trwa to
minut kilka). Możemy startować.
Przyspieszamy
Aby praca szła szybciej, decydujemy się
na zrównoleglenie – mamy wszak już
trzy partycje (i jedno DVD). Mainframe
to inteligentne zwierzątko, potrafi się
uczyć od innych. Z tej nauki wynika
obecny proces instalacji – na konsoli
technicznej znajduje się napęd DVD,
w mikrokod został wbudowany proces
startu systemu z tegoż napędu. Jeśli na
płycie występuje odpowiednio spreparowana struktura katalogów i format zbiorów – nastąpi wczytanie jądra do pamięci. Wykorzystujemy ten mechanizm do
instalacji zVM. Chwila oczekiwania i na
tej samej konsoli technicznej w oknie
emulatora terminala pojawiają się
pierwsze komunikaty instalacyjnej wer-
sji zVM (wydanie 5.1). Specjalista od
„światów wirtualnych” zaczyna swoją
pracę. Niestety, oznacza to zajęcie napędu DVD na dłuższy czas.
Brać linuksowa niecierpliwie kręci się
na krzesłach – mamy co prawda do dyspozycji płytkę CD z Debianem, ale
gdzie ją umieścić? Na szczęście oprócz
płyty jako źródło jądra można podać adres serwera ftp. Trzeba jedynie umieścić
tam cztery zbiory: binarny obraz jądra,
binarny obraz ramdysku, zawartość pliku parametrów dla jądra i zbiór z rozszerzeniem ins, spinający to wszystko
w jedną całość (czyli, gdzie co rozmieścić w pamięci). Serwer ftp to nie pro-
KNOW HOW
blem, pozostaje jedynie wpiąć konsolę
techniczną do segmentu sieci, nadać jej
odpowiedni adres i ustawić trasowanie –
banalne, nawet w systemie OS/2.
Po chwili rozpoczynamy proces ładowania Linuksa – pierwsze komunikaty
pojawiają się na konsoli technicznej –
tym razem w trybie wierszowym. Nie jest
to pierwsza instalacja Debiana na tej platformie – przezornie przy konfiguracji pamiętaliśmy, że w tej wersji dystrybucji nie
ma obsługi karty sieciowej w tzw. trybie
kolejkowania (QDIO), a jedynie w trybie
kanałowym (tzw. emulacja LCS). Kilka
pytań o interfejs sieciowy, informacja
o widocznych dyskach (są wszystkie
VTOC - opis struktury dysku mainframe
Każdy format systemu plików zawiera „mapę” opisującą zawartość bloków dysku
i przyporządkowanie do określonych zbiorów. W przypadku zSeries w najpopularniejszym systemie
zOS informacje takie zawiera VTOC („Volume Table Of Contents”) złożony ze 140 bajtowych
struktur o nazwie DSCB („Data Set Control Block”). Każda z nich zawiera w pierwszej części 44
bajty przeznaczone na nazwę zbioru (kodowaną w standardzie EBCDIC, a nie w ASCII!), zaś
w drugiej dodatkowe informacje określające (w zależności od typu DSCB) – obszary zajęte przez
zbiór i jego cechy, obszary wolne lub dysk jako całość. Ponadto, zawsze w trzecim bloku
w pierwszej ścieżce pierwszego cylindra znajduje się etykieta dysku (sześć znaków w kodzie
EBCDIC) i adres VTOC (numer cylindra, ścieżki i bloku). Nazwa każdego zbioru składa się
z maksimum ośmioznakowych pól rozdzielonych kropkami i nie może przekraczać 44 bajtów
(pierwszy fragment DSCB). W ten sposób para: nazwa zbioru i etykieta dysku tworzą unikalnaą
identyfikację zbioru danych w systemie zOS. Aby zachować spójność danych i móc współużywać
narzędzi i procedur do kopii zapasowych z systemu z/OS – format dysków Linux wpisuje się
w obowiązujący schemat. Każda z trzech partycji jest reprezentowana w VTOC jako jeden zbiór.
Zabezpiecza to również przed nieumyślnym sformatowaniem dysków Linux z innej partycji.
WWW.LINUX-MAGAZINE.PL
NUMER 15 KWIECIEŃ 2005
69
KNOW HOW
Linux na mainframe
REXX - język skryptów
dla mainframe
Bez wątpienia można uznać, że każdy system operacyjny ma swoją filozofię i konsekwentnie stosuje ją w każdym obszarze. Dla
systemów Unix powszechnym jest stosowanie języka powłoki do automatyzacji zadań.
Perl, Awk, Sed i inne języki także posługują
się pojęciami Unix. W systemach Windows
taką rolę od kilku lat pełni Visual Basic (po
wieloletnim panowaniu zbiorów z rozszerzeniem bat). W systemach zSeries analogiczne zastosowanie ma REXX („Restructured
Extended Executor Language”), stworzony
w laboratoriach IBM w roku 1979. Składnię
i zasady odziedziczył po dwóch rodzicach -kompilowanym PL/I (inne dziecko IBM) i
EXEC2 (w swej ideologii przypominający
zbiory *.bat z DOS-a). Pierwsza implementacja dla VM/370 rozpowszechniana wewnątrz struktur IBM, szybko udowodniła
przydatność interpretowanego języka także
dla zewnętrznych użytkowników. Cechą
charakterystyczną REXX-a jest integracja
ze środowiskiem, w którym działa – frazy,
nie rozpoznane jako zmienne lub słowa kluczowe, zostają potraktowane jako polecenia zewnętrzne i wykonane przez otoczenie.
Dodatkowe mechanizmy przechwytujące
rezultaty wykonanej komendy i duże możliwości obróbki danych znakowych nadają
mu cechy „kleju” łączącego różne wywoływane narzędzia binarne. REXX doczekał
się wielu implementacji poza IBM, także
w świecie GNU, dla wszystkich znaczących
systemów operacyjnych. Dla tych, którzy
chcieliby poznać króla, dobra rada – niech
zaczną od królowej – popularny interpreter
REXX na licencji GNU nosi nazwę Regina.
wcześniej zdefiniowane) i próba pinga do
domyślnej bramy – odpowiada. Teraz
kontakt zewnętrzny -- w procesie inicjowania systemu został uruchomiony demon ssh – połączenie przez klienta udane. Rozpoczyna się proces instalacji.
W zasadzie logicznie jest to ten sam
proces, co na PC. Istnieją dyski, które należy sformatować (proces polega na zapisie bloków o stałej długości – w zSeries
możliwe są zapisy na dysku bloków
o zmiennej długości) – w wersji wierszowej wykonuje to program dasdfmt. Ze
względu na możliwe współistnienie innych systemów operacyjnych, które mogą również mieć dostęp do naszych dysków – struktura logiczna odzwierciedla
klasyczny format rozumiany przez z/OS
(zob. VTOC), gwarantując w ten sposób
widoczność takiego dysku z innych partycji jako sformatowanego (ponowny format wymaga specjalnych zabiegów). Na
tak spreparowanym nośniku znajdują się
maksimum trzy partycje (jest to podyktowane określonym przydziałem numerów urządzeń w Linux/ 390) – z perspektywy z/OS traktowane jako tzw. zbiory
sekwencyjne. Taka konstrukcja umożliwia przeprowadzenie procesu backup
z poziomu narzędzi z/OS lub z/VM. Do
partycjonowania w trybie wierszowym
jest używane polecenie... fdasd. Następnym etapem jest oczywiście inicjacja systemu plików – dla bezpieczeństwa stary
sprawdzony ext2 – w przeciwieństwie do
kilku innych, on zawsze powinien być
wkompilowany w jądro. Tak naprawdę
cały ten proces przeprowadza instalator
Debiana, ale brać linuksowa chętnie słucha, co się dzieje pod „kapturem”. Administrator Linuksa podejmuje decyzję minimalnej konfiguracji, więc proces przebiega szybko. Po chwili wszyscy z zapar-
tym tchem obserwują ponowny start pingwinka – tym razem już z dysków. Próba
logowania i… jest – mamy pierwszego
niebieskiego pingwina w Poznaniu.
Zespół nie spoczywa jednak na laurach
– wciąż pracujemy na tymczasowej konfiguracji – czas zmienić kartę sieciową na
tryb QDIO, ale jest to osiągalne jedynie
przez kompilację nowego jądra. Następna decyzja – próba odbędzie się na wersji
2.6.8 – do tej pory pracowaliśmy na 2.4.
Niestety, w podstawowej wersji dystrybucyjnej nie ma jeszcze możliwości wybierania wersji jądra z menu – najrozsądniej
stworzyć kopię dysku, na którym umieścimy nowo skompilowane jądro. W tym
momencie przychodzi nam z pomocą...
zVM, którego podstawowa instalacja właśnie się przed momentem zakończyła.
Aby jednak skorzystać z dobrodziejstw
tak wspaniałego narzędzia, trzeba mieć
do niego drogę dostępu.
Terminale, TCP/IP
i cała reszta
System z/VM współpracuje z kilkoma
różnymi terminalami – poczynając od
trybu wierszowego (dumb), na pełnoekranowym kończąc (rodzina 3270). Niestety,
ten ostatni nijak się ma do znanych z maszyn uniksowych wariantów i klonów VT
i tym podobnych. Wymyślony dla systemów transakcyjnych, realizuje filozofię
podziału ekranu na pola (rekordy) dla
wprowadzania i wyprowadzania informacji. Transmisja między rzeczywistym
komputerem a terminalem następuje jedynie po naciśnięciu specyficznych klawiszy (Enter, klawisze funkcyjne PF i PA,
reset i kilka innych). Ponadto, w typowej
konfiguracji przesyłane są jedynie informacje o polach, które uległy zmianie
(edytor vi nie byłby zadowolony).
OSA GbE 3270 - emulacja terminali w pudełku
Dziś prawdziwych nowych terminali już nie ma
– chciałoby się rzec -- i w przypadku 3270 jest
to prawda. Poza wciąż sprawnymi, choć z lekka przykurzonymi urządzeniami, pozostała
jednak filozofia obsługi, protokół TN3270
i emulatory. TN3270 to sposób transmisji kodów sterujących terminali 3270 przez kanał
TCP/IP wewnątrz protokołu Telnet (doczekał
się nawet kilku RFC). Jednakże dla systemu
operacyjnego takiego jak z/VM bądź z/OS pier-
70
NUMER 15 KWIECIEŃ 2005
wotna instalacja (a w niektórych ośrodkach
także docelowa – eh to bezpieczeństwo), nie
przewiduje działania stosu TCP/ IP. Aby ułatwić (a właściwie umożliwić) pracę w takich
przypadkach, IBM opracował tryb działania
karty OSA GbE (Gigabit Ethernet w wersji ze
skrętką), emulujący podłączenie rzeczywistych
urządzeń kanałowych. Ze strony użytkownika
wymagane jest podłączenie programu rozumiejącego TN3270, zaś konfiguracja systemu
WWW.LINUX-MAGAZINE.PL
operacyjnego zawiera opisy terminali podłączonych przez kanał wejścia/ wyjścia. Konfiguracja adresu IP, parametrów sesji, elementów
związanych z bezpieczeństwem (SSL) wykonywana jest z poziomu konsoli sprzętowej. Tak
sparametryzowana karta OSA nie ma możliwości pracy jako klasyczna karta sieciowa (dla
TCP/ IP w Linux lub z/VM), może za to obsłużyć jednocześnie kilka partycji na różnych sesjach (jest współdzielona).
Linux na mainframe
Z drugiej strony, jak często mamy
dziś do czynienia z rzeczywistym terminalem? Powszechnie używana sieć
i protokół TCP/ IP (ssh i telnet) to standard. Jak wobec tego dostać się do zVM,
aby w pełni wykorzystać jego możliwości? Na szczęście, Internet pełen jest
wspaniałych, darmowych rozwiązań –
i takie też istnieje dla naszego problemu. Nazywa się x3270 (lub szerzej
x3270suite) i jest dobrą realizacją protokołu TN3270 – czyli emuluje terminal 3270 obsługiwany przez protokół
telnet. zVM wspiera takie rozwiązanie
od wielu lat i doskonale współpracuje
z x3270. Aby zabezpieczyć się przed
niespodziankami, wykorzystujemy jeszcze jedno rozwiązanie – emulację terminali w karcie OSA GbE (zob. ramka).
Jak tak dalej pójdzie – zabraknie nam
adresów IP w dedykowanej podsieci
(4 karty * 3 partycje to już 12 adresów).
Pozostaje wobec tego jedna mała drobnostka – skonfigurować TCP/ IP w zVM.
Na szczęście, na etapie instalacji istnieje
skrypt automatycznie wstawiający parametry konfiguracyjne dla opisanych interfejsów sieciowych. Jest to swoiste błogosławieństwo dla początkującego vm-owca,
gdyż przy całej swej przyjacielskości jest
to nadal środowisko mainframe. Przystępujemy więc do uruchomienia zVM zainstalowanego na dyskach (poprzedni start
odbył się z DVD) – po komunikatach na
konsoli o zakończeniu procesu startu
i uruchomieniu TCP/ IP (w zVM jest to
osobna usługa) – pierwszy test to, oczywiście, ping – DZIAŁA! Próba logowania
świeżo skompilowanym x3270 – jest pytanie o login i hasło – weszliśmy.
Maszyna wirtualna zamiast
partycji
Dlaczego zVM ma nam pomóc w kompilacji jądra? Poprzez prostą edycję zbiorów konfiguracyjnych istnieje możliwość zdefiniowania wirtualnego komputera z urządzeniami, których nie ma
lub są w zupełnie innym miejscu (czyli
mają inne adresy). Ponadto zamiast
udostępniać cały dysk (a więc o.. 3 GB),
można zdefiniować tzw. minidysk (określony przedział cylindrów przez maszynę wirtualną traktowany jako dysk rzeczywisty, tylko mniejszy). Ponadto Debian w swej pierwotnej dystrybucji udostępnia obsługę tzw. połączenia CTC
(Channel To Channel connection), któ-
KNOW HOW
Rysunek 1: Przykład elastyczności połączeń w z/VM – w takiej konfiguracji możemy testować
różne warianty.
re zVM perfekcyjnie emuluje – konfiguracja, w której mamy dwa interfejsy sieciowe – stabilny (CTC) i testowany
(OSA QDIO) jest – idealna dla naszych
potrzeb. Zamykamy więc pierwotną instancję Linuksa – traktowaną jako referencyjna, szybka kopia fizyczna dysku
narzędziem zVM DDR (Disk Dump
Restore) i ponowny start Debiana – tym
razem już pod kontrolą zVM. Rolę konsoli sprzętowej przejmuje terminal maszyny wirtualnej. Polecenia zVM dynamicznie definiują wirtualne urządzenie
CTC, moduł jądra 2.4 ctc. o zapewnia
obsługę od strony Linuksa, konfiguracja
CTC TCP/ VM zapewnia obsługę z drugiej strony. Typ połączenia pointopoint,
jeszcze tylko odpowiedni opis tras i... logujemy się do Linuksa przez zVM jako
ruter.
Kompilacja jądra
Każdy kiedyś musi skompilować jądro,
ale przesiadka z wersji 2.4 na wersję
2.6 to „jazda bez trzymanki”. Jeśli do te-
WWW.LINUX-MAGAZINE.PL
go decydujemy się na zmianę trybu z 32
bitów na 64 przy nie zmienionych aplikacjach – to mogą być tylko kłopoty.
I są – ale w zupełnie innym miejscu.
Debian w wersji 2.4 w dystrybucji
S/390 wykorzystuje koncepcję devfs
(zarzuconą w jądrze 2.6). Oznacza to, ni
mniej ni więcej, obecność takich podkatalogów w /dev jak:
/dev/dasd/0250
/dev/dasd/0250/disc
/dev/dasd/0250/part1
/dev/dasd/0250/device
Po kompilacji (wariant 64 bity z opcją
obsługi programów i API 32-bitowego)
i zdefiniowaniu następnej maszyny wirtualnej następuje format i podział na
partycje minidysku, montowanie i kopia
niezbędnych plików (przy testach można
się przecież obejść bez /usr/*). Następnie
magiczne polecenie chroot (choćby po to,
by sprawdzić, czy uruchomi się bash)
i konfiguracja parametrów startowych
NUMER 15 KWIECIEŃ 2005
71
KNOW HOW
Linux na mainframe
(/etc/zipl. conf). Wywołanie zipl zapisze
nowe parametry startowe na urządzeniu,
na którym fizycznie (minidysk) znajduje
się plik konfiguracji. Wywołanie exit, odmontowanie minidysku i...
Maszyna z jądrem 2.6
Jak powstaje nowa maszyna – po prostu
trzeba się zalogować jako nowy użytkownik: np.: DEBIAN2. Podczas procesu logowania odczytywana jest charakterystyka wirtualnego komputera – ilość pamięci, ilość procesorów (do 32 – ale lepiej nie
eksperymentować, jeśli ma się rzeczywiście tylko 2), konfiguracja minidysków
i innych urządzeń. Jeśli w opisie znajduje
się też zdanie IPL xxxx (xxxx – to adres
urządzenia wirtualnego) – to nastąpi próba automatycznego startu systemu z tego
urządzenia). Jeśli nie – mamy dostęp do
tzw. procesora kontrolnego (CP), w którym oprócz ręcznego startu możemy
zmienić dodatkowo inne parametry (specjalną sytuacją jest uruchomienie systemu CMS, w którym następuje np. edycja
zbiorów lub wykonanie skryptów w języku REXX. Finalnym poleceniem takiego
skryptu może być IPL xxxx). My pozwoliliśmy sobie na pełną kontrolę i po zalogowaniu ręcznie uruchomiamy proces star-
tu, podając adres przed chwilą spreparowanego minidysku. Efekt – panika – brak
/dev/console. Winowajca – devfs, proces
poprawy – montowanie minidysku w drugiej maszynie (z Linux 2.4), dodanie wpisów, ponowny start – i tak kilka razy.
A kiedy już wydaje się, że wszystko gra –
brak paniki – znów trzeba walczyć z interfejsem sieciowym. Ale tu niespodziankę
sprawia już sam Linux – a raczej jego elastycznosć.
prezentujący fizyczne urządzenia podłączone do systemu. Skorzystali z tego
dobrodziejstwa także autorzy implementacji Linuksa na zSeries – w wersji
2.6 każdy kanał i urządzenie ma swoje
odzwierciedlenie w sysfs. Komplikuje
to proces konfiguracji np. interfejsów
sieciowych, ale daje gwarancję „trafienia” z adresem IP w odpowiednią „szczelinę”. Plug’n’play w mainframe – to fakt,
dzięki zVM i sysfs.
Dynamika w każdym calu
Koniec?
Nie, to dopiero początek...
W czym dzisiejszy PC przypomina zVM
– w łatwości dodania nowego urządzenia podczas pracy. Tak jak w zVM można zdefiniować i dołączyć nowy dysk do
maszyny wirtualnej, tak samo równie
łatwo podłączyć do PC przez USB nowy
FlashDisk lub inne urządzenie. Zauważyli to główni architekci nowego jądra,
obserwując jednocześnie, jak trudno
poradzić sobie z odpowiedzią na pytanie, jaki numer węzła (lub nazwa pliku
albo nazwa urządzenia sieciowego) reprezentuje rzeczywiste urządzenie fizyczne. Wszak kolejność podłączania
determinuje dynamiczny przydział i
węzłów. Odpowiedzią na to jest nowy
system plików sysfs, dynamicznie re-
Cały proces podnoszenia pingwiniarni
trwał trzy dni – dzięki doskonałej współpracy między mainframowcami i linuksowcami – to była wspaniała zabawa
i ciekawa – choć długotrwała – praca (ale
kto przy takich okazjach patrzy na zegarek?). Dalej następuje montaż maszyn
wirtualnych, Linuksów i stopniowe odkrywanie zVM przez brać linuksową. Pytania w stylu: „Jak dołożyć drugi procesor wirtualny?”, „Jak współdzielić dyski
między maszynami?”, „Jak skonfigurować NFS pod zVM?” to małe kroki do
odkrywania wspaniałego wirtualnego
świata – a możliwości jest dużo więcej.
Ale o tym w następnym artykule.
■
Łączenie maszyn wirtualnych
zVM udostępnia wiele mechanizmów łączenia maszyn wirtualnych. Na
Rysunku 1 zostały pokazane dwa skrajnie różne rozwiązania, które
z punktu widzenia jądra Linux są obsługiwane jak ich rzeczywiste (sprzętowe) odpowiedniki. Pierwsze, oznaczone jako CTC, reprezentuje połączenie typu punkt-punkt (bez zVM jest to kabel światłowodowy między
dwiema partycjami). Moduł w jądrze to ctc. o, konfiguracja analogiczna
do PPP (dwa adresy IP przyporządkowane do jednego interfejsu sieciowego). Takie rozwiązanie wymaga, by jedna z maszyn wirtualnych pełniła rolę rutera (jeśli potrzebne jest połączenie ze światem zewnętrznym).
Drugie rozwiązanie symuluje wirtualny przełącznik sieciowy (VLAN –
VSWITCH) w warstwie TCP/IP (a w niedługim czasie w warstwie Ethernet). Punktem styku jest tutaj wirtualna karta sieciowa (VNIC) – dla jądra
Linux widziana jako urządzenie QDIO (bez z/VM jest to klasyczna karta
OSA w trybie QDIO). Konfiguracja interfejsu sieciowego odbywa się na
takich samych zasadach jak innych kart Ethernet. Umożliwia to obsługę
na poziomie podsieci (opisywanej maską) oraz generowania pakietów
typu „broadcast”. Taka sieć wirtualna może być tworem zamkniętym
bądź (tak jak na rysunku) może zostać podłączona do stosu TCP/ IP
systemu z/VM, działającego w tym przypadku w trybie mostka sieciowego. Ponadto w pełni jest obsługiwany standard VLAN (dodawane są
identyfikatory sieci wirtualnych).
Pomiędzy tymi dwoma skrajnymi rozwiązaniami istnieje wiele pośrednich
– część opiera się na istnieniu rzeczywistych urządzeń sieciowych dedykowanych do konkretnej maszyny wirtualnej (np. OSA w trybie LCS), zaś
72
NUMER 15 KWIECIEŃ 2005
część działa jedynie pod z/VM (np. sieć wirtualna bez obsługi VLAN lub
połączenie punkt-punkt korzystające ze wspólnej pamięci w obszarze
programu sterującego CP – określana akronimem IUCV – „Inter-User
Communication Vehicle”).
Sterowanie połączeniami, sprzęganie maszyn wirtualnych, generacja dynamiczna urządzeń wirtualnych (VSWITCh, VNIC, VLAN, CTC) odbywa się
z poziomu programu zarządzającego (CP – Control Program) i standardowo
jest wykonywana z sesji 3270 maszyny zarządzanej – odpowiada to funkcjonalnie konsoli sprzętowej w osobnym procesorze. Ze względu na pełną dynamikę generacji i kasowania urządzeń wirtualnych, nieocenione usługi oddaje tu wirtulany system plików sysfs zaimplementowany w jądrze 2.6.
Osobną pozycją na rysunku jest CMS – interaktywny system operacyjny działający jedynie w maszynie wirtualnej (bo wspierany przez dodatkowe usługi
CP, których brak w mikrokodzie). Filozofia jego działania opiera się na komunikacji z użytkownikiem poprzez terminal 3270, generowany w maszynie
wirtualnej jako urządzenie kanałowe, stąd wynika brak jakichkolwiek połączeń sieciowych ze światem zewnętrznym. Jednocześnie maszyna wirtualna
TCP/ IP systemu z/VM zapewnia transmisję (poprzez wewnętrzne mechanizmy CP) strumienia danych wirtualnego terminala do stacji roboczej z emulatorem 3270. CMS zawiera w sobie m.in. interpreter języka REXX (zob.
ramka), rozbudowany edytor pełnoekranowy XEDIT (w którym administrator systemu z/VM spędza znaczną ilość czasu) i umożliwia sprzężenie z innymi usługami (formatowanie minidysku, polecenia diagnostyczne PING,
NETSTAT, generacja i konfiguracja maszyn wirtualnych itp.).
WWW.LINUX-MAGAZINE.PL