środa, 15 września 2010

ISM - Wirtualizacja - podstawy

Po omówieniu różnych architektur i sposobów, w jaki możemy zestawiać nasze środowisko storage, nadszedł czas na zmianę tematu. Kilka następnych wpisów będzie na temat wirtualizacji. Początkowo bardzo ogólnie, potem wyspecjalizujemy się w stronę wirtualizowaniu storage. Oczywiście, ponieważ ISM jest certyfikatem "podstawowym", nie ma się co nastawiać na bardziej zaawansowane informacje, większość będzie na poziomie bardzo elementarnym i, co by tu nie mówić, raczej oczywistym dla wszystkich siedzących w IT.

Zaczniemy od definicji:

Virtualization - "Technique of abstracting physical resources in to logical view"

Nieco potocznie można powiedzieć że wirtualizacja (ogólnie) polega na  łączeniu wszystkich fizycznych urządzeń danego typu ( serwer , storage , networking itd...)  w pule, a następnie tworzeniu i wydzielaniu, ich logicznych odpowiedników.


Zalety wirtualizacji:
  • Lepsza utylizacja i wykorzystanie zasobów IT
  • Łatwiejsze zarządzanie
  • Redukcja downtime-u ( zarówno planowanego jak i nieplanowanego )

Zakres wirtualizacji:


Wirtualizację można stosować do różnych rodzajów urządzeń. Kilka najbardziej standardowych przykładów jej zastosowania to:
  • Wirtualizacja pamięci - Każda aplikacja widzi swoją własną przestrzeń dyskową, niewspółdzieloną z innymi programami i niezależną od pamięci fizycznej. Do zarządzania pamięcią wirtualną i mapowania pomiędzy jej adesami, a adresami w pamięci fizycznej, stosowane są aplikacje nazywane Virtual Memory Menager (VMM). W większości współczesnych implementacji wirtualnej pamięci, przestrzeń adresowa podzielona jest ciągłe bloki o określonej wielkości, zwane stronami (pages). Proces, zwany stronicowaniem (paging), przenosi nieaktywne strony z pamięci fizycznej i zapisuje je na dyski twarde. Dzięki temu możemy efektywne wykorzystać dostępną pamięć fizyczną, poprzez trzymanie w niej jedynie aktywnej zawartości. Plik, na dysku twardym, w którym przechowywane są dane z RAMu nazywany jest plikiem wymiany (swap file)
  • Wirtualizacja sieci - podobnie jak w przypadku wirtualizowania pamięci, wirtualizacja sieci sprawia, że każda aplikacja widzi swoją własną sieć logiczną, niezależną od fizycznej. Przykładem wirtualizacji sieci są VLANy ( Virtual LAN) - sieć fizyczna jest podzielona (wirtualnie) na logiczne. Komputery i aplikacje nie widzą struktury fizycznej oraz hostów które się w niej znajdują, z wyjątkiem tych znajdujących sie w tym samym VLANie. Odpowiednikiem VLANów w środowisku SAN są VSANy.
  • Wirtualizacja serwerów - polega (oczywiście w gigantycznym uproszczeniu) na tworzeniu maszyn wirtualnych, a następnie uruchamianiu dużej ich ilości na jednym ( lub większej ilości) hostów fizycznych. Na maszynach wirtualnych instaluje się system operacyjny oraz aplikacje. Są one odizolowane od fizycznej części hardware. 
  • Wirtualizacja storage - polega na prezentowaniu do hostów logicznych zasobów storage, stworzonych na zasobach fizycznych. Przykładami wirtualizacji storage są: volume management na poziomie hosta , tworzenie LUNów, wirtualizacja taśm magnetycznych (VTL)


Wirtualizacja storage:

Organizacja SNIA (Storage Networking Industry Association) rozłożyła sposoby wirtualizacji storage na "części pierwsze" i zaproponowała ich trzystopniową klasyfikację:

LEVEL 1: Co jest tworzone? - czyli wirtualizacja różnych urządzeń w obrębie storage
  • Block virtualization
  • Disk virtualization
  • Tape , Tape Drive , Tape Library Virtualization
  • File System , File/Record Virtualization
  • Other Devices Virtualization
LEVEL 2: Gdzie jest tworzone? - czyli w którym miejscu infrastruktury uruchamiany wirtualizację
  • Host Based VIrtualization (Path management , Volume Management , Replication)
  • Network Based Virtualization (Path redirection , Load balancing - ISL trucking , Zoning )
  • Storage Device Virtualization (Access control , Replication , RAID )
LEVEL 3: W jaki sposób wirtualizacja jest zaimplementowana?
  • In-band Virtualization (wirtualizacja odbywa się na ścieżce danych)
  • Out-of-band Virtualization (środowisko wirtualizacyjne znajduje się poza ścieżką danych)


Wyzwania stawiane przed wirtualizacją storage:

Aby implementacja wirtualizacji storage była opłacalna, muszą być rozważone pewne kwestie, w których może ona pogorszyć działanie naszego środowiska.
Najważniejsze z takich kwestii to:
  • Skalowalność i wymagania wydajnościowe : Przed zwirtualizowaniem nasze środowisko storage składa się z niezależnych macierzy, z których każda ma określoną wydajność i pojemność. Dla każdej z nich, niezależnie, wyznaczane są pewne progi. Po zwirtualizowaniu mamy jedną "pulę" storage , należy zadbać, aby na tym poziomie, wydajność spełniała założone kryteria.
  • Funkcjonalność: Macierze dysponują różnoraką dodatkową funkcjonalnością poza samym składowaniem i udostępnianiem danych ( np: Thin Provisioning , Replikacja , Automated Tiering itd...). Środowisko po zwirtualizowaniu również powinno zezwalać na stosowanie tych mechanizów.
  • Zarządzanie: Po zwirtualizowaniu naszego storage , nowe mechanizmy zarządzające powinny zintegrować się z fizycznymi macierzami i zezwalać na wygodne zarządzanie.
  • Wsparcie: Wprowadzenie wirtualizacji nie powinno utrudnić identyfikacji problemów sprzętowych w warstwie fizycznej. Zwirtualizowanie storage może sprawić, że pewne dane diagnostyczne, mogą być niejasne lub niekompletne, ponieważ między punktem ich zbierania a samym sprzętem, znajduje się jeszcze warstwa wirtualizacyjna.


Wirtualizacja na poziomie bloku:

Wirtualizacja na poziomie bloku odbywa się w sieci SAN, pomiędzy hostami a macierzami. Cały ruch pomiędzy tymi urządzeniami przechodzi przez wirtualizator. Środowisko macierzy może być heterogeniczne, ale do samych hostów prezentowane jest jedno wirtualne urządzenie storage. Ponieważ same fizyczne macierze nie są widoczne dla hostów, można bez przerw w dostępie danych re-konfigurować środowisko np: dodając nowe urządzenia. Bez zakłóceń można także przeprowadzać migrację danych między fizycznymi macierzami.


Wirtualizacja na poziomie pliku:

Używana jest w środowisku NAS. Likwiduje powiązanie między plikiem i fizyczną lokacją, gdzie on się znajduje. Bez wirtualizacji, do dostępu do pliku, jest używana cała ścieżka (struktura katalogów, folderów itd.) Klienci NASa, kontaktują się z serwerami plików, a te udostępniają im zasoby z podłączonej macierzy, poprzez podanie im ścieżki fizycznej do tych plików. Po zwirtualizowaniu ścieżki fizyczne zostają zastąpione ścieżkami logicznymi. Pozwala to, między innymi, na migracje plików między serwerami plików, bez potrzeby przekonfigurowywania klientów ( nie zmienia się ścieżka dostępu ).





Kolejny wpis dotyczyć będzie "thin provisioning" ( nazywanego także niekiedy "virtual provisioning"). Jest to przykład wirtualizowania storage, a sama funkcjonalność jest bardzo często spotykana w macierzach klasy "enterprise" i "mid-range".
A chwilę potem temat który już się raz pojawił w tym blogu a mianowicie "Cloud computing"

Brak komentarzy:

Prześlij komentarz