Wirtualizacja w elektronicznym archiwum

Wirtualizacja jest bardzo modnym terminem i ma wiele znaczeń. Często jest traktowana jako podstawowy element konstrukcji w chmurach obliczeniowych. Nie należy tego terminu uważać za coś samo w sobie ponieważ wirtualizacja ma jedno istotne zastosowanie – izolację systemów operacyjnych lub aplikacji działających na jednej fizycznej maszynie tzn. komputerze. Można wyróżnić dwie implementacje wirtualizacji – maszyny wirtualne oraz maszyny zwirtualizowane. Maszyny wirtualne są kompletnym softwarowym komputerem w którym można instalować systemy operacyjne. Zadaniem maszyny wirtualnej jest kontrolowanie i współdzielenie zasobów komputera tzn. mocy obliczeniowej procesora, pamięci, pamięci masowej i innych urządzeń np. kart sieciowych, audio czy podzespołu UART itp. Maszyna zwirtualizowana jest bardzo podobna do maszyny wirtualnej, ale nie jest przeznaczona do instalacji systemu operacyjnego. W zasadzie jest to mechanizm pośredniczący dla uruchamiania aplikacji napisanych w językach wysokiego poziomu. Kod napisany w takim języku jest interpretowany do postaci pośredniej i następnie kompilowane „w locie” na kod maszynowy komputera (procesora) na którym działa maszyna. Pozwala to na implementowanie aplikacji na różnych konstrukcjach na których działa maszyna zwirtualizowana. Przykładem takiego rozwiązanie jest maszyna zwirtualizowana Javy.
Obok maszyn wirtualnych istnieją również inne podobne konstrukcje np. kontenery lub dokery, które można uznać za pewien rodzaj maszyny zwirtualizwanej. Poniższy rysunek wyjaśnia różnice pomiędzy narzędziami do wirtualizacji.

W konstrukcji archiwum wykorzystany jest model „Kontenera”, który jest typem maszyny zwirtualizowanej.  Konstrukcja archiwum jest oparta na strukturze sieci danych, gdzie zakłada się, że niesprawność węzła sieci (komputera) nie może unieruchamiać dostępu do zasobu. W przypadku maszyn wirtualnych działających na jednym sprzęcie niesprawność sprzętu powoduje, że wszystkie maszyny wirtualne są niesprawne. Obecnie uszkodzenie procesora czy tzw. chipsestu jest zjawiskiem mniej prawdopodobnym w porównaniu z błędami jakie występują w „grubych” aplikacjach. W takim przypadku zastosowanie maszyn wirtualnych izoluje działanie systemów operacyjnych, szczególnie dla usług w formie infrastruktury IaaS. Usługi (aplikacje) IaaS mogą działać na trzech typach implementacji struktur fizycznych mniej lub bardziej zlokalizowanych tzn.  na strukturach sieci danych, sieci obliczeniowych, sieci strumieniujących. Należy podkreślić, że wymienione struktury sieci są fizyczną warstwą konstrukcji usługi i nie definiują zakresu i typu usługi z zaleceń NIST. Implementacja w modelu „Kontenera” w konstrukcji archiwum jest w wirtualizacją tzw. lekką. Taki wybór jest stosowny w przypadku kiedy, wszystkie usługi dotyczą jednego zadania i nie jest wymagana głęboka separacja np. z powodu bezpieczeństwa poprzez izolację różnych usług implementowanych w strukturze (na przykład wynajmowanie komputera wieloprocesorowego dla realizacji wielu prywatnych serwerów WWW).  

Jerzy Piotr Walczak, Robert Śmietanka