Zastosowanie maszyn wirtualnych w przedsiebiorstwie – Rys historyczny technologii wirtualizacji

Historia maszyn wirtualnych, oraz samej wirtualizacji jako nowej gałęzi w informatyce bardzo dobrze opisana jest w publikacji pani Melindy Varian z Uniwersytetu Princeton [Varian, 1997]. Opierając się na jej wspomnieniach, oraz informacjach przez nią zebranych możemy stwierdzić że wszystko rozpoczyna się w połowie XX wieku w latach sześćdziesiątych od dwóch wydarzeń – pierwszym z nich było powstanie maszyny IBM M44/44X drugim zaś problem wielozadaniowości systemów komputerowych czyli projekt CTSS „Compatible Time-Sharing System”.

W roku 1963 w laboratoriach Thomas J. Watson Research Center firmy IBM znajdujących się w Yorktown Heights (Nowy Jork), powstała platforma sprzętowa IBM M44/44X składająca się z fizycznej maszyny M44 opartą o platformę sprzętową IBM 7044 oraz maszyn wirtualnych (nazywanych wówczas „pseudo-machines”) 44X, które współdzieliły pamięć, oraz oprogramowanie komputera matki. Było to rozwiązanie czysto sprzętowe, polegało na dokładnym sklonowaniu komputera M44 przez maszyny 44X. Ten czysto naukowy projekt realizowany przez zespół Dava Sayre i Roba Nelsona nigdy nie został zastosowany komercyjnie, dowiódł jednak że wirtualizacja jest możliwa, a późniejsze projekty dotyczące wirtualizacji bardzo dużo czerpały z maszyn IBM M44/44X.

Drugim projektem bezpośrednio związanym z tematem wirtualizacji był CTSS. Projekt ten tworzony był przez niewielką grupę programistów Massachusetts Institute of Technology (MIT) w Cambridge, Massachusetts, pod przewodnictwem Profesora Fernando Corbató. Jednym z członków zespołu programistycznego był Robert Creasy który stał się w późniejszym czasie liderem projektu CP-40. CTSS był projektem który miał rozwiązać problem wielozadaniowości i opracować metodę jej implementacji w oprogramowaniu i sprzęcie. Projekt początkowo działał na maszynach IBM z serii 704. Podczas ewolucji projektu CTSS Profesor Corbató wraz z zespołem doszli do wniosku, że bardziej wydajnie jest adresować pamięć sprzętowo, niż programowo. Poproszono wówczas IBM o kilka modyfikacji w procesorze aby umożliwić wielozadaniowości prawidłowe i wydajne działanie. W czasie kiedy inżynierowie IBM opracowywali rozszerzenie dla MIT CTSS rozwijał się i po dostarczeniu przez „Błękitnego giganta” nowego procesowa zaczął w pełni działać.

Rys. 3 Komputer IBM 7090

W roku 1963 na maszynach IBM 7090 z zaimplementowanym rozszerzeniem zaprojektowanym przez MIT po dołożeniu drugiego bloku pamięci, modyfikacji rejestrów pamięci, oraz modułów ochrony pamięci CTSS stał się przykładem w pełni działającego systemu wielozadaniowości. W czasie kiedy w Cambridge był opracowywany system CTSS w Poughkeepsie IBM projektował nową linię serwerów znanych pod nazwą System/360, które miały zastąpić serię 7xxx. Na początku lat 60 IBM przechodził wewnętrzne przemiany, co wpłynęło na wahania stanowiska wobec wielozadaniowości. Zaprzestano wówczas rozmów i współpracy z MIT. Naukowcy pomimo braku wsparcia od strony IBM zdecydowali się rozpocząć nowy projekt mający na celu stworzenie jeszcze bardziej wydajnego i stabilnego systemu wielozadaniowości, projekt nazwano MAC. Dodatkowo MIT nabył od IBM drugą maszynę z serii 7094 na której zostały rozpoczęte prace nad systemem Multics, który w przyszłości stał się systemem UNIX. W 1964 roku na scenie problemów na linii między IBM a środowiskami akademickimi pojawił się Norm Rasmussen. Założył on Cambridge Scientific Center. Nowopowstała instytucja była wsparciem dla MIT. IBM dostarczył sprzęt i specjalistów systemowych co miało zaowocować zadowoleniem klientów nową serią System/360. Wewnątrz CSC rozpoczął się projekt CP-40 który skupił wielu programistów i techników z MIT jak i innych ośrodków akademickich. Jego wyniki zostały zaimplementowane w serwerach System/360 model 40. Program kontrolny tych serwerów działał bardzo podobnie do wirtualizacji którą znamy dzisiaj, jednak miał ograniczenia – można było uruchomić maksymalnie 14 maszyn wirtualnych, każda z nich musiała mieć 256K pamięci. Program kontrolny CP-40 dzielił realny dysk twardy na „mini dyski” i kontrolował dostęp do nich za pomocą algorytmu CCW. W roku 1965 IBM wprowadził na rynek maszynę System/360 Model 67 z zaimplementowanym modułem TSS Time Sharnig System. Zespól z Cambrige nie mając dostępu do najmłodszego dziecka IBM – System/360 Model 67 stworzył emulacje maszyny M67 na maszynie M40, pokonując w tym projekcie wiele problemów które napotkał IBM, tak powstał projekt CP/CMS. W roku 1970 IBM zapowiedział maszyny z serii System/370, które miały mieć zaimplementowane wszystkie rozwiązania wielozadaniowości i wirtualizacji – TSS, CP/CMS. Podczas opracowywania nowej serii maszyn IBM System/370 po raz pierwszy pojawia się słowo „hypervisor” określające program kontrolny uruchamiający maszyny wirtualne. Po roku 1970 wirtualizacja zaczyna nabierać formy którą znamy dzisiaj. Osiągnięcia zespołu Uniwersytetu w Cambrige wykorzystywane są w nowopowstających projektach na całym świecie, również projektach Open Source.

Przez ponad trzy dekady technologia wirtualizacji była rozwijana, jednak dostęp do niej był znacząco utrudniony. Spowodowane było to dużą mocą obliczeniową potrzebną do jej stosowania. Tylko firmy specjalistyczne, posiadające odpowiednie fundusze aby stworzyć niezbędną infrastrukturę mogły sobie pozwolić na jej stosowanie. Sytuacja zmieniła się gdy ceny na sprzęt komputerowy spadły, a moc obliczeniowa, oraz ilość pamięci komputerów PC oraz serwerów „low-end” wzrosła do takich wielkości które mogły umożliwić zastosowanie wirtualizacji w małych i średnich firmach a także w gospodarstwach domowych. Druga połowa lat 90 zeszłego wieku to czas gwałtownego rozwoju wirtualizacji. Na rynku pojawiła się firma VMware, oferująca gotowe, zrozumiałe dla zwykłego użytkownika oprogramowanie do wirtualizacji. W latach 90 na rynek wkracza również Sun Microsystems wraz z wirtualną maszyną Javy, która znajduje zastosowanie w wielu obszarach IT – od komputerów osobistych przez stron internetowe po aplikacje na telefony komórkowe. Na początku XXI wieku pojawiła się kolejna para graczy na rynku IT – Microsoft wraz z Microsoft Virtual PC/Server, oraz Citrix z Xen Serverem.

Wirtualizacja stała się również możliwa dzięki zaimplementowaniu przez czołowych producentów podzespołów komputerowych – Intel i AMD technologii wirtualizacji bezpośrednio w procesorach.
W roku 2003 na łamach Intel Developer Forum została zapowiedziana technologia wirtualizacji Intel VT znana pod nazwą kodową „Vanderpool”, projekt został zaimplementowany w roku 2005 między innymi w serii procesorów Pentium 4 662 i 672 oraz ich następcach i odpowiednikach serwerowych [Intel Corporation, 2007].

Natomiast w roku 2006, 23 maja firma AMD wprowadziła na rynek trzy procesory Athlon 64 (Nazwa kodowa „Orleans”), Athlon 64 X2 (Nazwa kodowa „Windsor”) i Athlon 64 FX (Nazwa kodowa „Windsor”) wszystkie wspierające technologię wirtualizacji AMD-V znanej wcześniej pod nazwą „Pacifica” [Advanced Micro Devices, 2008].

About the author

Bloger i niezależny konsultant z wieloletnim doświadczeniem w branży IT. Specjalizujący się w wirtualizacji i cloud computingu. Posiada tytuły MCP, MCTS, VCP oraz VMware vExpert.

Leave a Reply