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/