Wirtualizacja serwerów
Oferowane rozwiązania budujemy w oparciu o najnowsze technologie wirtualizacyjne wiodących producentów. W ramach naszej działalności zapewniamy:
I. projektowanie i implementację
bezpiecznych, wydajnych i wysokodostępnych klastrów wirtualizacyjnych pracujących pod kontrolą VMware vSphere (ESX), Microsoft Hyper-V oraz CITRIX XenServer,
II. rozwiązywanie problemów oraz audyty
i związane z nimi rekonfiguracje istniejącej infrastruktury wirtualizacyjnej,
III. opiekę nad dostarczonymi lub istniejącymi rozwiązaniami
systemów wirtualizacyjnych w ramach umów na opiekę,
IV. atrakcyjną, wariantową ofertę
i różnorodne modele finansowania.
Wirtualizacja przetwarzania to przede wszystkim możliwość skorzystania z procesora oraz z pamięci fizycznego serwera – hosta przez jeden lub więcej (niekiedy nawet kilkadziesiąt lub kilkaset) systemów operacyjnych – gości. Takie rozwiązanie jest bardzo popularne, gdyż pozwala w stosunkowo prosty sposób wykorzystać rosnące moce obliczeniowe pojedynczego hosta. W celu uruchomienia wirtualizacji konieczny jest specjalny program, tzw. hipernadzorca, wirtualizator (hypervisor). On odpowiada za przydzielanie czasu procesorów fizycznych, a w zasadzie czasów poszczególnych rdzeni procesorów fizycznych. Dba także o to, aby obszary fizycznej pamięci przydzielone różnym gościom nie wchodziły ze sobą w konflikt. Niekiedy pozwala także, aby system operacyjny gościa całkowicie przejął obsługę urządzenia fizycznego znajdującego się na wyposażeniu hosta. W mniej lub bardziej zaawansowany sposób obsługuje także emulację pamięci RAM w sytuacjach, gdy suma wymagań wszystkich gości na przydział RAM-u przekracza fizyczne możliwości hosta. W systemach produkcyjnych taka potrzeba zachodzi dość rzadko, jednak nawet tam ta funkcja okazuje się niekiedy bardzo przydatna, szczególnie podczas modyfikacji tych systemów.
Przykładowymi hypervisorami są np.:
- ESXi firmy VMware,
- Hyper-V firmy Microsoft,
- KVM organizacji Open Virtualization Alliance
- XenServer firmy Citrix
- VIOS firmy IBM
Jakie możliwości daje wirtualizacja?
Na pojedynczym hoście można uruchomić wiele maszyn wirtualnych. Każda będzie się rządziła swoimi odrębnymi prawami. Zazwyczaj nic nie stoi na przeszkodzie, aby jako gościa (czy inaczej maszynę wirtualną) uruchomić dowolny system operacyjny zgodny z fizycznym procesorem znajdującym się na wyposażeniu hosta. Można zatem na jednej fizycznej maszynie wyposażonej w procesory Intel lub AMD uruchomić np. różne systemy Windows oraz różne dystrybucje systemów linux. Lub na jednej maszynie fizycznej wyposażonej w procesory IBM POWER uruchomić systemy AIX w różnych wersjach oraz systemy linux w dystrybucjach przeznaczonych na procesory IBM POWER.
Jednak zdecydowanie większe możliwości daje połączenie dwóch lub więcej hostów. Połączenie należy rozumieć jako współdziałanie w jednej sieci komputerowej tych maszyn oraz korzystanie (przynajmniej częściowo) ze wspólnej przestrzeni dyskowej.
Jeśli kilka hostów współdziała ze sobą, to nawet bez wspólnej przestrzeni dyskowej możliwe staje się przenoszenie działających maszyn wirtualnych – gości pomiędzy hostami. Oznacza to, że przez jakiś czas maszyna wirtualna (jej pamięć RAM oraz przestrzeń dyskowa) jest obsługiwana przez jeden host, zaś po tzw. migracji przez inny host. Oprogramowanie, które procesem owej migracji steruje i pozwala utrzymać w sieci komputerowej wrażenie, że maszyna wirtualna jest cały czas dostępna jest już nieco bardziej skomplikowane niż sam hypervisor.
Przykładowymi technologiami, które pozwalają na przenoszenie maszyn wirtualnych pomiędzy hostami to:
- vCenter firmy VMware
- Failover Cluster firmy Microsoft
Aby migracja była odpowiednio sprawna jest pożądane, aby nie było konieczności kopiowania plików emulujących dyski maszyn wirtualnych pomiędzy hostami. Po pierwsze dlatego, aby z reguły obszerne pliki nie były przesyłane pomiędzy hostami. Po drugie, aby nie trzeba było rezerwować podwójnych zasobów dyskowych podczas migracji jednej maszyny wirtualnej. Aby to osiągnąć konieczne staje się zastosowanie wspólnej przestrzeni dyskowej, dostępnej dla różnych hostów. Dzięki temu pliki emulujące dyski maszyn wirtualnych znajdują się w jednym miejscu, zaś poszczególne hosty podczas migracji przekazują sobie jedynie informacje o nazwach tych plików i ich położeniu, a nie ich zawartość. Wobec tego pomiędzy hostami zazwyczaj transmitowana jest jedynie zawartość pamięci RAM maszyny wirtualnej (jeśli maszyna jest włączona) oraz stan jej procesora. Stąd wymóg, aby w jednym klastrze hostów wirtualizujących procesory były ze sobą zgodne. Dlatego też nie ma możliwości budowania np. klastrów składających się jednocześnie zarówno z hostów z procesorami Intel, jak i AMD.
Jednak możliwość przeniesienia także plików emulujących dyski maszyny wirtualnej jest w niektórych wypadkach niezbędna. Jest oczywiste, że zazwyczaj taka migracja jest dłuższa, gdyż wymaga przekopiowania dużej liczby danych. Jednak jej konieczność zdarza się sporadycznie, najczęściej w trakcie zmiany i/lub rozbudowy przestrzeni dyskowej. Jeśli system wirtualizujący posiada taką funkcjonalność, to ten fakt pozwala na wykorzystanie migracji maszyn wirtualnych także w środowiskach, które nie posiadają wspólnej przestrzeni dyskowej.
Wspólna przestrzeń dyskowa
Istnieje przynajmniej kilka możliwości zapewnienia wspólnej przestrzeni dyskowej dla hostów wirtualizujących. Dwie technologie są wiodące. Pozostałe bardziej niszowe.
iSCSI
Pierwszą – od razu należy wspomnieć, że zazwyczaj tańszą – jest możliwość emulowania dysków na plikach, które są udostępniane w lokalnej sieci komputerowej (LAN), zazwyczaj opartej o standard Ethernet. Standard ten nosi nazwę iSCSI. Przy prędkościach transmisji danych już od 1Gb/s można myśleć o skonstruowaniu skromnej wspólnej przestrzeni dyskowej na potrzeby kilku, kilkunastu maszyn wirtualnych. Przy większej liczbie interfejsów 1Gb/s lub przy prędkościach transmisji danych 10Gb/s pojedynczego łącza można budować już dość wydajne i niezawodne wspólne przestrzenie dyskowe oparte o standard iSCSI. Aby jednak taka infrastruktura była zarówno wydajna, niezawodna i bezpieczna koszty dość znacząco wzrastają. Szczególnie, gdy jako standard w sieci Ethernet wykorzystuje się komponenty pracujące z prędkością 10Gb/s. Standard iSCSI i jego implementacje zazwyczaj zapewniają możliwość uwierzytelniania przy pomocy prostych protokołów pomiędzy hostem (initiator) a zbiorami prezentowanych dysków (target).
Naprzeciw temu wychodzi wielu producentów kilkudyskowych storage’y dyskowych. Przy obecnie dostępnych pojemnościach dysków i nawet niewielkiej ich liczbie można otrzymać bardzo obszerne wspólne przestrzenie dyskowe. Także producenci systemów operacyjnych wyposażają je w możliwości nie tylko korzystania z plików prezentowanych przez protokół iSCSI (initiator), ale także prezentowania swoich zasobów dyskowych (target) poprzez protokół iSCSI innym komputerom, np. hostom wirtualizującym. Jakkolwiek często w profesjonalnych zastosowaniach wydajność, niezawodność i bezpieczeństwo nie są wystarczające, to jednak wspólne przestrzenie dyskowe lub po prostu przestrzenie dyskowe oferowane przez te rozwiązania są powszechnie wykorzystywane jako odgrywające rolę pomocniczą w większych instalacjach.
Fibre Channel
Drugą – zazwyczaj nieco bardziej kosztowną – jest specjalnie przygotowany standard służący specjalnie do przesyłania dużych ilości danych blokowych – Fibre Channel. Pomimo nazwy nie zawsze jest realizowany za pomocą okablowania światłowodowego, jednak możliwości połączeń miedzianych są niezmiernie ograniczone jeśli chodzi o oferowane odległości (kilka metrów). Inaczej niż w standardzie iSCSI do transmisji nie są wykorzystywane powszechnie montowane w komputerach sterowniki Ethernet, lecz specjalizowane, wysokowydajne karty/adaptery HBA (Host Bus Adapter) standardu Fibre Channel. Często mogące pracować z granicznymi prędkościami dla danego typu magistrali/złącza komputera, na jaką zostały przeznaczone. Z drugiej strony owe adaptery są podłączane do wysokowydajnych macierzy dyskowych wiodących producentów sprzętu komputerowego. Zazwyczaj – z kilku powodów – nie stosuje się połączeń bezpośrednich HBA – macierz dyskowa (direct connection), lecz zarówno karty HBA, jak i interfejsy F/C macierzy dyskowych podłącza się do urządzeń pośredniczących – tzw. switch’y F/C. Zarówno macierze dyskowe oraz adaptery HBA, jak i odpowiednio wydajne komputery, w których są montowane są dość kosztowne. Jednak oferują bardzo duże transfery danych i odpowiednie bezpieczeństwo oraz skalowalność. Środowiska wspólnej przestrzeni dyskowej oparte o komponenty pracujące w standardzie Fibre Cahnnel mają także wiele innych zalet.
Wiodący producenci swoje macierze dyskowej wyposażają zarówno w interfejsy Fibre Channel, jak i w interfejsy Ethernet.
Wirtualizacja pamięci RAM
Jednym z zadań oprogramowania wirtualizującego jest wydajne emulowanie pamięci RAM w przypadku, gdy suma żądań przydziału pamięci przez poszczególne maszyny wirtualne jest większa od ograniczeń (czy to fizycznych, czy to wprowadzonych przez administratora) nałożonych na host. Jest zazwyczaj stosowaną strategią, że obszary pamięci najmniej używane przez maszynę wirtualną są najlepszymi kandydatami do fizycznego usunięcia z RAM-u hosta i tymczasowego przeniesienia ich na inny rodzaj pamięci. Nakłada to na system wirtualizujący potrzebę monitorowania sposobu wykorzystywania pamięci maszyny wirtualnej. Z drugiej strony funkcje systemu wirtualizującego pozwalają na daleko idące manipulacje, pozwalające na uzyskanie różnych charakterystyk przenoszenia pamięci RAM na inny rodzaj pamięci zależny od woli administratora wyrażanej poprzez odpowiednie ustawienia przeznaczonych do tego parametrów maszyn wirtualnych. Jakkolwiek wirtualizacja pamięci RAM odbywa się w ramach jednego hosta, to konieczność przeniesienia części RAM-u maszyn wirtualnych na inny nośnik może być sygnałem dla hosta, że nadszedł czas na migrację maszyny wirtualnej na mniej obciążony host. Migracja taka może zarówno zostać zasugerowana administratorowi lub wręcz wykonana automatycznie.
Wirtualizacja przestrzeni dyskowej
Wirtualizacja przestrzeni dyskowej jest związana przede wszystkim z poprawą zarządzania oraz, niekiedy, wydajności i efektywności już posiadanych macierzy dyskowych. Wirtualizacja pamięci dyskowych polega na tym, że dla hostów widoczna jest jedno urządzenie, które prezentuje logiczne dyski znajdujące się na fizycznych macierzach, niejako ukrytych za tym urządzeniem. W celu poprawy wydajności zazwyczaj urządzenie prezentujące jest także macierzą, posiadającą na swoim wyposażeniu wydajne dyski. W szczególności są to bardzo wydajne dyski w technologii Flash.
Niekiedy wirtualizacja przestrzeni dyskowej bywa także motywowana potrzebami związanymi z licencjonowaniem, niedostępnością niektórych funkcji na posiadanych macierzach dyskowych, czy zwyczajnie oszczędnościami, szczególnie w przypadku konieczności zastosowania zaawansowanych technik, takich jak np. lustrzane odbicie danych w zdalnej lokalizacji (mirror macierzy), czy automatyczne przenoszenie danych często używanych na szybsze dyski, zaś rzadko używanych na wolniejsze dyski (data tiering). W projektach dotyczących wirtualizacji systemów pamięci masowych wykorzystujemy rozwiązania IBM SAN Volume Controller (SVC). System SVC umożliwia zarządzanie systemami pamięci masowych pochodzących od różnych producentów z poziomu jednego interfejsu, udostępniając przy okazji szereg istotnych funkcjonalności takich jak kopie migawkowe, tiering dyskowy oraz replikację w środowiskach heterogenicznych.