Download: KnowIBM

Transkrypt

Download: KnowIBM
SYSADMIN
Linux na Mainframe
LINUX I SERWERY
MAINFRAME
Linux działa na wielu platformach sprzętowych. Dostępny jest również na najpotężniejszych serwerach –
komputerach typu Mainframe. W artykule tym przyjrzymy się sposobowi działania sytemu Linux na tej platformie
i korzyściom, jakie może przynieść uruchomienie aplikacji w środowisku Linux/ Mainframe.
JAKUB MANIKOWSKI
L
inux jest systemem operacyjnym, który może być stosowany praktycznie na
dowolnej platformie sprzętowej, począwszy od komputerów wbudowanych
w rozmaite maszyny, poprzez urządzenia
przenośne, a kończąc na różnego rodzaju serwerach. Praktycznie nie ma w tej chwili
komputera, na którym nie dałoby się uruchomić systemu Linux. Serwery typu Mainframe nie są tu wyjątkiem.
Pierwszy Mainframe został stworzony
w 1964 r. Od tego czasu, przez ponad 40 lat
maszyny tego typu są cały czas rozwijane
i udoskonalane (jedna z najnowszych ma-
Rysunek 1: IBM eServer z990
56
NUMER 20 PAŹDZIERNIK 2005
szyn, IBM eServer z990, jest przedstawiona
na Rysunku 1).
Rozbudowywane są zarówno od strony
sprzętowej (nowe procesory, większa ilość
pamięci, architektura, itp.) jak i od strony
oprogramowania. Jedną z najistotniejszych
innowacji związanych z oprogramowaniem
jest możliwość uruchamiania systemu operacyjnego Linux i aplikacji działających
pod kontrolą tego systemu.
W artykule tym przyjrzymy się korzyściom, jakie dla użytkowników systemu Linux wnosi platforma Mainframe oraz jak
mogłyby wyglądać w środowisku Linux/
Mainframe aplikacje oparte o podstawowe
komponenty, takie jak serwer aplikacji
i baza danych.
Opis komputerów typu Mainframe należy rozpocząć od konstrukcji tych serwerów.
Mainframe, stworzony w 1964 r., zbudowany był w oparciu o architekturę 24-bitową.
Teoretycznie możliwe więc było zaadresowanie tylko 16 MB pamięci. Kolejnym krokiem było adresowanie 31-bitowe (adresowanie do 2 GB pamięci). Najnowsza linia
serwerów Mainframe zSeries oparta jest
o 64-bitową architekturę zArchitecture. Serwery tego typu pozwalają na zaadresowanie
16 exabajtów pamięci (2^64). Gdyby ilość
pamięci adresowalnej przy pomocy 31 bitów
porównać do obiektu długości 5 cm (np.
klucza od drzwi) to ilość pamięci adresowalnej przy pomocy 64 bitów odpowiadałaby
WWW.LINUX-MAGAZINE.PL
odległości od Ziemi do Księżyca – ponad
400 000 kilometrów. Różnica pomiędzy tymi trybami adresowania jest więc ogromna.
Podstawowym wyróżnikiem Mainframe
w stosunku do serwerów zbudowanych przy
użyciu procesorów RISC czy Intel jest architektura. W Mainframe każda część jest
zdublowana. Gdy system wykryje awarię
np. procesora, jest w stanie automatycznie
przenieść przetwarzanie na zapasowy procesor. Podobnie jest z pozostałymi komponentami serwera. Taka konstrukcja pozwala na
zapewnienie niezawodności rzędu 99,999%,
co przekłada się na 5 minut planowanych
i nieplanowanych przestojów rocznie.
Kolejną ciekawą cechą serwerów Mainframe jest istnienie nie tylko procesorów
ogólnego zastosowania, ale także procesorów dedykowanych do określonych typów
operacji. Obecnie dostępne są 3 rodzaje takich procesorów:
– zAAP (zSeries Application Assist Processor) dedykowany do wykonywania kodu
Java
– ICF (Internal Coupling Facility) wykorzystywany do obsługi klastra wydajnościowego i niezawodnościowego – Parallel Sysplex
– IFL (Integrated Facility for Linux) jest
to procesor służący wyłącznie do obsługi
systemu operacyjnego Linux.
Innym wyróżnikiem maszyn typu Mainframe są bardzo wydajne operacje typu I/O.
Linux na Mainframe
W nowej maszynie typu IBM System z9,
która niedawno pojawiła się na rynku, operacje I/O mogą się odbywać z prędkością do
172 GB/sekundę. Dla porównania – w maszynach typu UNIX dostęp do podsystemu
I/O odbywa się z prędkością do 2-3 GB/sekundę. W komputerach z procesorami Intel
prędkość I/O jest jeszcze mniejsza i nie
przekracza 1 GB.
Diagram 1: Przykładowa konfiguracja partycji
w Mainframe.
Jednak tak naprawdę najistotniejszą cechą
Mainframe z punktu widzenia użytkowników systemu Linux jest możliwość partycjonowania serwera. Może się to odbywać na
2 sposoby. Pierwszym z nich jest podział maszyny na partycje nazywane LPAR (Logical
Partitions). Każdy z LPAR-ów jest autonomiczny, posiada własne zasoby pamięci i pozwala na uruchomianie niezależnego systemu operacyjnego. W maszynach typu IBM
System z9 można utworzyć do 60 partycji,
pozwala to na uruchomienie do 60 jednocześnie działających systemów operacyjnych.
Drugim sposobem partycjonowania serwera jest wykorzystanie systemu z/VM (Virtual Machine). Jest to środowisko, które służy przede wszystkim do tworzenia wirtualnych serwerów tak, aby możliwe było współdzielenie istniejących fizycznych zasobów
pomiędzy wiele systemów operacyjnych.
Podczas tworzenia każdemu z serwerów
wirtualnych przypisywane są określone zasoby serwera. Definicje te można jednak
zmieniać w trakcie pracy systemu. Zmiany
te mogą obejmować np. automatyczne przeniesienie mocy procesora z mało obciążonego serwera na serwer, który w danej chwili
potrzebuje więcej mocy obliczeniowej.
W podobny sposób dynamicznie można
zmieniać ilość pamięci wirtualnego serwera
czy też udostępniać nowe urządzenia I/O.
Opisane powyżej obydwie metody tworzenia partycji są niezależne i mogą być
stosowane jednocześnie. Przykładowo, na
jednej maszynie mogą być utworzone 2 partycje LPAR. Na jednej z nich może działać
system operacyjny z/OS, na drugiej system
operacyjny z/VM. Pod kontrolą systemu
z/VM może być utworzonych wiele serwerów wirtualnych z systemem operacyjnym
Linux. Taka konfiguracja została przedstawiona na Diagramie 1.
Bardzo ważną cechą związaną z partycjonowaniem jest możliwość utworzenia
sieci LAN w pamięci serwera. Technologia
ta nazywa się Hypersockets i pozwala na
komunikację pomiędzy systemami operacyjnymi działającymi na jednej fizycznej
maszynie przy użyciu protokołu TCP/IP,
co jest istotne, z prędkością działania pamięci. Poza prędkością zwiększa się również bezpieczeństwo komunikacji, ponieważ pakiety nie opuszczają Mainframe, nie
mogą więc być przechwycone.
Partycjonowanie Mainframe pozwala na
konsolidację na jednej fizycznej maszynie
wielu działających niezależnie systemów
operacyjnych. Szczególnie dobrze działa
w takim środowisku system Linux. Jedna
z amerykańskich firm przeprowadziła testy
laboratoryjne, w których udało się uruchomić na pojedynczym Mainframe ponad 97
000 wirtualnych serwerów z systemem operacyjnym Linux. W każdej z instancji systemu działał serwer WWW i symulowano
pewną ilość odwołujących się do niego
użytkowników. Taka liczba konsolidowanych serwerów byłaby oczywiście trudna do
osiągnięcia w środowisku produkcyjnym,
jednak uruchomienie kilkuset systemów
produkcyjnych jest jak najbardziej możliwe. Ilość działających jednocześnie serwerów wirtualnych zależna jest oczywiście od
typu przetwarzania, jakie odbywa się na
tych konsolidowanych maszynach.
Kolejnym ciekawym przykładem jest zastosowanie środowiska Linux/ Mainframe
w jednej z uczelni w USA, która wdrożyła
projekt udostępniania studentom wirtualnych maszyn z systemem operacyjnym Linux. Działający na uczelni serwer Mainframe, poza obsługą poczty elektronicznej, zarządza pracą setek maszyn wirtualnych
z systemem Linux przydzielanych studentom informatyki na cały okres studiów.
WWW.LINUX-MAGAZINE.PL
SYSADMIN
Poza oczywistą zaletą związaną z łatwiejszym administrowaniem jedną maszyną
Mainframe zamiast kilkuset serwerami,
istotny jest również czas tworzenia i konfigurowania nowego serwera Linux – w przypadku korzystania z z/VM wynosi on kilkanaście minut. Dodatkowo architektura ta
zapewnia najwyższy dostępny poziom bezpieczeństwa – serwery Mainframe jako jedyne posiadają certyfikat EAL5 (Common
Criteria Evaluation Assurance Level 5).
Oznacza to, iż mechanizm partycjonowania
został przetestowany i sprawdzony przez
niezależną firmę pod kontem odporności
na ataki. Sprawdzano również możliwość
nieautoryzowanego przepływu danych pomiędzy partycjami serwera.
Mimo że serwery wirtualne działają niezależnie, istnieje technika pozwalająca na
takie skonfigurowanie Mainframe, aby
wszystkie instancje systemu Linux działające w ramach jednego serwera mogły
współdzielić kod binarny aplikacji.
Przyjrzyjmy się, jak może wyglądać taka
konfiguracja na przykładzie serwera aplikacji WebSphere. Serwer ten do działania
potrzebuje kodów binarnych (używanych
tylko w trybie odczytu) oraz profilu, w którym zawarte są aplikacje użytkowników,
pliki konfiguracyjne, logi, itp. Profil, oczywiście, musi być dostępny zarówno w trybie
odczytu jak i zapisu. Skoro kody binarne
mogą być w trybie read-only możemy je
współdzielić pomiędzy wieloma serwerami
wirtualnymi. W z/VM możemy zdefiniować dyski wirtualne nazywane minidisk
i właśnie z ich pomocy skorzystamy podczas konfiguracji. Zakładając, że mamy już
działający system Linux (nazwijmy go
WAS-MASTER), tworzymy nowy minidysk, który będzie przechowywał kody binarne serwera aplikacji i mapujemy go do
naszego systemu w trybie R/W (Read/Write) jako /opt/IBM/WebSphere. Profil z plikami konfiguracyjnymi będziemy przechowywali gdzie indziej, np. na minidysku systemowym w katalogu /opt/wasprofile. Następnie dokonujemy standardowej instalacji.
Po jej zakończeniu będziemy mieli działający w naszym systemie serwer WebSphere.
Jedyne co teraz musimy zrobić, to podłączyć nasz minidysk z WebSphere do innych
instancji serwera Linux jako /opt/IBM/WebSphere (w trybie Read/Only) i dla każdego
serwera stworzyć nowy profil. Diagram
2 obrazuje tę konfiguracje.
Podstawową korzyścią takiego rozwiązania jest łatwość utrzymywania WebSphere.
NUMER 20 PAŹDZIERNIK 2005
57
SYSADMIN
Linux na Mainframe
Wszystkie poprawki, nowe wersje, itp.
wgrywamy tylko raz – na serwerze WAS-MASTER. Pozostałe systemy operacyjne
będą miały natychmiast dostęp do zaktualizowanej wersji WebSphere. Zaprezentowana technika nie odnosi się oczywiście tylko
do serwera WebSphere. Analogicznie można skonfigurować wiele innych aplikacji.
Zobaczmy teraz, jak może wyglądać
przykładowa aplikacja trójwarstwowa uruchomiona w środowisku Linux/ Mainframe. Klientem będzie oczywiście przeglądarka internetowa. Za logikę biznesową odpowiedzialny będzie serwer aplikacji,
a konkretnie WebSphere Application Server. Dane będą przechowywane w bazie
danych DB2. Zarówno WebSphere jak
i DB2 umieścimy na oddzielnych serwerach. Dodatkowo 1 serwer będzie służył jako serwer WWW dla treści statycznych. Za
bezpieczeństwo będzie odpowiadał serwer
z systemem Linux i oprogramowaniem ty-
mi. Nie korzystamy z normalnej infrastruktury sieciowej,
tylko z mechanizmu Hypersockets. Wymiana danych odbywa
się więc z prędkością działania
serwera Mainframe. Nie ma też
możliwości podsłuchania komunikacji pomiędzy serwerem
aplikacji a bazą danych – pakiety nie opuszczają serwera.
Mechanizmy
wirtualizacji
sprawiają również, że dużo łaDiagram 2: Współdzielenie dysku pomiędzy wieloma instancjami
twiej jest rozbudowywać środosystemu Linux.
wisko o nowe komponenty.
działającymi pod kontrolą systemów LiPewną modyfikacją opisanej powyżej arnux, UNIX, Windows a bazą danych DB2
chitektury jest aplikacja przedstawiona na
na z/OS.
Diagramie 4.
Połączenie na jednym serwerze dwóch
Podstawową różnicą w stosunku do potechnologii – z/OS i Linux pozwala z jednej
przedniego rozwiązania jest przeniesienie
strony na wykorzystanie wieloletniego doserwera baz z systemu Linux do z/OS. z/OS
świadczenia w tworzeniu i zarządzaniu wyjest podstawowym systemem operacyjnym
dajnymi środowiskami bazodanowymi,
używanym na platformie Mainframe. Poza
Diagram 3: Aplikacja w architekturze trójwarstwowej na platformie Mainframe.
pu firewall. Na Diagramie 3 przedstawiona
jest architektura tej aplikacji.
Jakie korzyści możemy czerpać z takiego
rozwiązania? Przede wszystkim zyskujemy
łatwość zarządzania. Jak widać było na
wcześniejszym przykładzie opisującym
konfigurację WebSphere, w wielu przypadkach możemy istotnie zminimalizować czas
potrzebny na utrzymywanie środowiska.
W przypadku tylko dwóch serwerów korzyści nie będą oczywiście bardzo duże, ale jeśli nasza aplikacja będzie się rozrastała (np.
z powodu większych wymagań wydajnościowych będziemy musieli zwiększyć ilość
serwerów aplikacji), czynnik ten jest bardzo istotny. Kolejną korzyścią jest przyśpieszenie komunikacji pomiędzy serwera-
58
NUMER 20 PAŹDZIERNIK 2005
Diagram 4: Aplikacja wykorzystująca DB2 na z/OS.
wysoką wydajnością i niezawodnością charakteryzuje się on również bardzo wysokim
poziomem bezpieczeństwa – nie są znane
zakończone sukcesem próby włamania do
tego systemu. Przeniesienie bazy danych na
system z/OS pozwala w maksymalnym
stopniu wykorzystać możliwości systemu
Mainframe. Wieloterabajtowe bazy danych
nie są czymś niezwykłym dla DB2 na z/OS
– wiele krytycznych systemów w Polsce pracuje właśnie w takim środowisku. Komunikacja pomiędzy serwerem aplikacji a DB2
for z/OS odbywa się z wykorzystaniem
oprogramowania DB2 Connect. DB2 Connect używa natywnego protokołu bazy danych – DRDA i jest najwydajniejszym sposobem komunikacji pomiędzy aplikacjami
WWW.LINUX-MAGAZINE.PL
a z drugiej na łatwiejszą i bardziej efektywną pracę nad logiką aplikacji.
Więcej informacji na temat systemu Linux i platformy Mainframe jest dostępnych
pod adresem [1]. Wiele ciekawych artykułów na ten temat można znaleźć na stronach developerWorks [2] i [3]. ■
INFO
[1] http://www.ibm.com/servers/eserver/zseries/os/linux/
[2] http://www.ibm.com/developerworks/linux/linux390/index.html
[3] http://www.ibm.com/developerworks/eserver/articles/linux_s390/