Linux w ciągłym ruchu

Usługi Web

Linux w ciągłym ruchu

Program do podglądu obciążenia klastra MOSIX

Zawrotna kariera Linuxa rozpoczęła się od wykorzystania go jako platformy dla tanich serwerów internetowych. Niezwykle kusząca wydaje się możliwość zbudowania stabilnego i nowoczesnego rozwiązania, które zwykle dość dużo kosztuje. Przede wszystkim Linux stanowi dobre środowisko dla serwera WWW Apache, baz danych My SQL lub PostgreSQL oraz języków skryptowych, głównie PHP. Takie połączenie serwera WWW, bazy SQL i języka skryptowego czyni z Linuxa uniwersalny serwer aplikacji i usług Web. Na tej triadzie opiera się większość serwisów Web utrzymywanych na systemie Linux.

Przykładem alternatywnego rozwiązania komercyjnego jest serwer Lotus Domino. Dostępny dla Linuxa od czterech lat jest platformą typu corporate messaging zintegrowaną z wewnętrznym serwerem aplikacji. Od roku 2003 IBM umożliwia natomiast łączenie serwera aplikacji WebSphere (jako front-end dla aplikacji Web) z Domino (back-end z możliwością korzystania z dowolnych źródeł danych).

W kontekście usług WWW bardzo interesująco wygląda wykorzystanie na platformie linuxowej oprogramowania open source do przetwarzania dokumentów XML. W ramach Apache Software Foundation działa projekt Apache XML (http://xml.apache.org ). W rzeczywistości jest to kilka niezależnych projektów, z których każdy koncentruje się na innym aspekcie XML. W przyszłości zostaną one połączone tak, aby stworzyć spójne środowisko przetwarzania dokumentów XML. Najważniejsze z nich to:

Xerces - zestaw parserów XML z funkcją walidacji dokumentów XML zgodnie ze standardami W3C XML i DOM Leve1/2 oraz XML Schema (a nawet z trybem kompatybilności z Microsoft MSXML);

Xalan - procesor stylów XSLT dokonujący transformacji XML do HTML, pliku tekstowego lub do innych dokumentów XML przy użyciu stylów XSL;

Cocoon - motor publikacji dokumentów XML generujący (statycznie lub dynamicznie) na podstawie tych samych danych różnego rodzaju dokumenty - od HTML, przez WML (urządzenia WAP), aż po dokumenty PDF generowane na żądanie;

Apache SOAP (Simple Object Access Protocol) - implementacja protokołu W3C SOAP oparta na udostępnionym przez IBM oprogramowaniu IBM SOAP4J.

Na razie Apache XML to wciąż jedynie zestaw dość luźno powiązanych ze sobą narzędzi i nie jest to rozwiązanie takie, jak chociażby BizTalk Server Microsoftu. Tak jak w przypadku innych rozwiązań open source, problemem jest żmudna konfiguracja Apache XML oraz brak centralnego zarządzania i monitorowania, a między poszczególnymi komponentami występuje wiele drobnych niezgodności. Niemniej narzędzia te mają duże możliwości dostosowania do potrzeb użytkownika.

Linux jako platforma dla bazy danych

Wszystkie najważniejsze (oprócz Microsoft SQL Server) relacyjne bazy danych (Sybase, Oracle, IBM DB2) są już dostępne w wersjach dla Linuxa. Jednak większość z nich nie zachęca do korzystania z Linuxa ani ceną licencji i wsparcia technicznego, ani wydajnością (nie korzystają z funkcji jądra podnoszących wydajność). Linux jest traktowany jedynie jako runtime dla tych systemów, a dostęp do linuxowych wersji rzadziej używanych dodatków do tych systemów RDBMS jest problematyczny.

Lukę tę wypełniają systemy bazodanowe open source. Na tym polu prym wiodą bazy My SQL i PostgreSQL. Te dwa serwery baz danych stanowią motor bazodanowy dla większości aplikacji internetowych open source. Obie bazy świetnie nadają się do tego celu - są "lekkie" (mają małe wymagania sprzętowe), łatwe w instalacji i nie wymagają właściwie zarządzania, opanowanie umiejętności posługiwania się narzędziami administracyjnymi nie sprawia problemu. Biblioteki do tworzenia aplikacji są dostępne dla większości języków programowania, istnieje również kilka bezpłatnych sterowników ODBC/JDBC.

Trzeba jednak pamiętać, że migracja aplikacji choćby z Oracle/DB2 nie jest zazwyczaj łatwa, ponieważ zarówno My SQL, jak i PostgreSQL nadal nie obsługują kilku istotnych funkcji języka SQL. Problemem obu baz jest również skalowalność - w zasadzie jedynym sposobem podniesienia ich wydajności jest budowa klastrów.

Linux wysokiej dostępności

Jeszcze do niedawna powszechnie uważano, że słabym punktem Linuxa jest mała liczba rozwiązań HA (High Availability) eliminujących tzw. pojedynczy punkt awarii. Dostępne są głównie produkty komercyjne, np. Convolo Cluster firmy Mission Critical Linux - to prawdopodobnie najlepsze rozwiązanie do budowy klastrów typu HA opartych na systemie Linux. Służy do budowy klastrów typu HA i jest przeznaczony do równoważenia obciążenia zarówno serwerów WWW, jak i serwerów baz danych, ale też np. serwerów plików NFS (Network File System). Konkurentem Convolo jest LifeKeeper for Linux firmy SteelEye zawierający dodatkowo funkcje odzyskiwania danych po awarii. Spośród rozwiązań HA typu open source godne polecenia są jedynie dwa: LVS i Linux-HA. LVS (Linux Virtual Server) to rozbudowane oprogramowanie do budowy wirtualnego serwera z wielu pojedynczych komputerów. Może obsługiwać dowolną usługę TCP lub UDP (np. HTTP, HTTPS, NNTP, FTP, DNS, POP3), czyniąc je całkowicie niewidocznymi dla klienta. LVS ma duże możliwości, ale jego prawidłowa konfiguracja jest bardzo uciążliwa.

Linux-High Availability Project (Linux-HA,http://linux-ha.org ) udostępnia zestaw narzędzi umożliwiających zbudowanie podsystemu typu heartbeat (bicie serca) służącego do monitorowania funkcjonowania poszczególnych węzłów klastra (np. poprzez port szeregowy lub odpowiedź na broadcast UDP). W przypadku stwierdzenia wyłączenia węzła podsystem HA alokuje jego adres IP do innego komputera. Podobnie jak w przypadku LVS, instalacja polega na rekompilacji jądra i skomplikowanej konfiguracji.

Linux jest stabilną platformą także do budowy klastrów obliczeniowych. Na ogół mają one niewielkie zastosowanie w przeciętnych organizacjach komercyjnych, jednak czasami może być potrzebne chwilowe zwiększenie możliwości obliczeniowych jakiejś aplikacji. Klastry tego typu służą do masowego przetwarzania danych jednego rodzaju (np. danych statystycznych lub wizualizacji) i wymagają specjalnie przygotowanych programów, tworzonych przy użyciu wyspecjalizowanych bibliotek programistycznych, takich jak MPI (Message Passing Interface) lub PVM (Parallel Virtual Machine). Przykładem takiego klastra linuxowego jest Beowulf.

Warto również wspomnieć o "klastrze dla ubogich", czyli oprogramowaniu MOSIX (Multi-computer Operating System for Unix,http://www.mosix.org ) służącym do budowy prostych klastrów równoważących obciążenie przez rozdzielanie wątków między poszczególne serwery. MOSIX nie stawia żadnych wymagań co do doboru kart sieciowych, typu procesora, pamięci RAM i innych parametrów sprzętowych.


TOP 200