Wirtualizacja

Wirtualizacja polega na obliczaniu, aby uruchomić na maszynie hosta w izolowanym środowisku systemów operacyjnych - to się nazywa system wirtualizacji - lub aplikacji - to się nazywa wirtualizacji aplikacji . Te maszyny wirtualne nazywane są wirtualnym serwerem prywatnym ( Virtual Private Server lub VPS) lub środowiskiem wirtualnym ( Virtual Environment lub VE).

Wirtualizacja danych

Wirtualizacja danych to podejście polegające na ujednoliceniu danych z wielu źródeł w jednej warstwie, tak aby aplikacje, narzędzia raportowania i użytkownicy końcowi mieli dostęp do danych bez konieczności posiadania szczegółowych informacji o źródle, pierwotnej lokalizacji i strukturach danych.

Zasada

Symulacja innych maszyn na maszynie hosta może wydawać się a priori dziwna: system operacyjny jest zaprojektowany do używania sprzętu, który jest całkowicie pod jego kontrolą. Zestawienie kilku systemów, które nie zostały zaprojektowane do komunikacji ze sobą, może budzić obawy dotyczące nieefektywności, a także fakt, że proces wirtualizacji pochłania zasoby. Obraz nie jest taki ponury. Z jednej strony, wielu z tej nieefektywności można uniknąć, mając po prostu różne dyski dla każdego systemu, az drugiej strony koszt pamięci pozwala każdemu z tych systemów pozostać rezydentnymi, a czasami z dużymi sekcjami pamięci. Ponadto mikrokod zarówno komputerów typu mainframe, jak i mikroprocesorów zawiera coraz więcej funkcji, które zwiększają wydajność wirtualizacji.

Wreszcie, często zdarza się, że firma ma około piętnastu serwerów działających na 15% ich pojemności, aby móc poradzić sobie ze sporadycznymi szczytami obciążenia. Serwer z obciążeniem 15% zużywa tyle samo energii, co serwer obciążony w 90%, a grupowanie kilku serwerów na tej samej maszynie jest opłacalne, jeśli ich szczytowe obciążenia nie zawsze się pokrywają, nawet uwzględniając obciążenie związane z wirtualizacją. Wirtualizacja serwerów pozwala również na znacznie większą modułowość w równoważeniu obciążenia i rekonfiguracji serwera w przypadku zmian lub chwilowej awarii (plan tworzenia kopii zapasowych itp.).

Galanteria

Każde narzędzie do wirtualizacji implementuje co najmniej jedną z następujących koncepcji:

Zainteresowania

Zainteresowania to:

Niedogodności

Zależy od implementacji maszyny wirtualnej. W przypadku surowej instalacji na pojedynczym serwerze można zaobserwować następujące problemy:

Historyczny

Znaczna część prac nad wirtualizacją została opracowana w IBM Science Center w Cambridge we współpracy z MIT , gdzie opracowano eksperymentalny system CP / CMS, który później stał się (wówczas nazywanym hiperwizorem ) produktem VM / CMS . Zobacz IBM 360 i 370 . Następnie komputery mainframe były w stanie wirtualizować swoje systemy operacyjne przy użyciu określonych i zastrzeżonych technologii, zarówno oprogramowania, jak i sprzętu. Na przykład w 1979 roku na IBM 4331 i 4341 ogłoszono opcjonalny mikrokodowany akcelerator VM .

W drugiej połowie lat 80. i na początku lat 90. na komputerach osobistych powstały embriony wirtualizacji. Rozwiązania te mogą być czysto programowe lub w połączeniu z dodatkowym sprzętem (dodanie procesora, karty sieciowej itp.). I to na komputerach Amiga wyposażonych w heterogeniczne procesory, takie jak 80386 i 80486, 68xxx i PPC, można było uruchomić inne systemy operacyjne, takie jak Windows, Mac OS, a nawet Linux, a wszystko to w trybie wielozadaniowym pod AmigaOS. To właśnie na tej maszynie wyprzedziła swoje czasy, kiedy technologia wirtualizacji została w pełni wykorzystana i nadal nie ma sobie równych. W przypadku komputerów PC były emulatory, takie jak SideCar i PC Task . Na komputerach Macintosh , Emplant i ShapeShifter . Po nich pojawiły się wielkie Unixy z architekturą NUMA Superdome firmy HP ( PA-RISC i IA-64 ) oraz E10000 / E15000 firmy Sun ( UltraSparc ).

W drugiej połowie 1990 roku olbrzymim sukcesem odniosły emulatory na starych maszynach x86 z lat 80., w tym komputery Atari , Amiga , Amstrad oraz konsole NES , SNES , Neo Geo . Firma VMware opracowała i spopularyzowała na przełomie lat 90. i 2000. system wirtualizacji oprogramowania dla architektur x86 dla architektur x86. Darmowe oprogramowanie Xen , KVM , QEMU , Bochs , Linux-VServer , Oracle VM VirtualBox oraz zastrzeżone, ale bezpłatne oprogramowanie VirtualPC , Virtual Server i VMware Server zakończyły popularyzację wirtualizacji w świecie x86. Firma VMware niedawno udostępniła bezpłatną lekką wersję swojego flagowego hiperwizora ESX3i . Producenci procesorów x86 AMD i Intel wdrożyli w swoich liniach wirtualizację sprzętową w drugiej połowie 2000 roku.

ETSI założył wlistopad 2012grupa robocza do standaryzacji NFV  ( fr ) , nowe podejście do wirtualizacji, w którym wiele firm specjalizujących się w technologiach inteligencji sieciowej ( Qosmos , Procera Networks lub Sandvine) oraz uniwersyteckie laboratoria badawcze (Uniwersytet Campinos, Uniwersytet Karola III w Madrycie, Uniwersytet Kraju Basków, Uniwersytet w Patras itp.).

Różne techniki

Aby uzyskać teoretyczne wyobrażenie o działaniu najlepszych aplikacji, musimy porównać stos warstw w pionie. Możliwe jest rozszerzenie schematów przez dodanie zwirtualizowanych środowisk, które również zużywają zasoby hosta.

Izolator

Izolator to oprogramowanie używane do izolowania wykonywania aplikacji w tak zwanych kontekstach lub strefach wykonywania. W ten sposób izolator umożliwia kilkakrotne uruchamianie tej samej aplikacji w trybie wielu instancji (kilka instancji wykonania), nawet jeśli nie została do tego zaprojektowana. To rozwiązanie jest bardzo wydajne ze względu na niewielki narzut (czas spędzony przez system na samym zarządzaniu), ale zwirtualizowane środowiska nie są całkowicie izolowane. Wydajność jest więc tam, jednak tak naprawdę nie możemy mówić o wirtualizacji systemów operacyjnych. W przypadku systemów Linux izolatory składają się w rzeczywistości z wielu części i mogą przybierać różne formy.

Na przykład w wolnym oprogramowaniu: Linux-VServer (izolacja procesów przestrzeni użytkownika ), chroot (izolacja zmian roota), BSD Jail (izolacja przestrzeni użytkownika), OpenVZ (partycjonowanie na poziomie jądra w systemie Linux), LXC (użycie jądra cgroups Linux), Docker .

Jądro w przestrzeni użytkownika

Ziaren w przestrzeni użytkownika ( przestrzeni użytkownika ) obraca się w przestrzeni użytkownika pod systemem operacyjnym hosta. Jądro przestrzeni użytkownika ma zatem własną przestrzeń użytkownika, w której kontroluje swoje aplikacje. To rozwiązanie jest bardzo nieefektywne, ponieważ dwa rdzenie są ułożone w stos, a izolacja środowisk nie jest zarządzana, a niezależność od systemu hosta nie istnieje. Służy głównie do rozwoju jądra.

Na przykład: User Mode Linux (jądro działające w przestrzeni użytkownika); Współpracujący Linux lub coLinux (współpracujące jądro z hostem Windows); Adeos (mikro jądro RT z systemem Linux w przestrzeni jądra innej niż RT); L4Linux (mikro jądro RT z systemem Linux w przestrzeni jądra innej niż RT).

Hiperwizor typu 2

Typu 2 hypervisor jest oprogramowanie (zazwyczaj dość ciężki), który działa na gospodarza OS. To oprogramowanie umożliwia uruchomienie jednego lub więcej systemów gościa. Maszyna wirtualizuje lub / i emuluje sprzęt dla systemu gościa, który uważa, że ​​jest w bezpośrednim dialogu ze wspomnianym sprzętem. To rozwiązanie jest bardzo porównywalne z emulatorem, a czasem nawet mylone. Jednak centralna jednostka obliczeniowa, czyli mikroprocesor , pamięć systemowa (RAM) oraz pamięć masowa (poprzez plik) są bezpośrednio dostępne dla maszyn wirtualnych, natomiast na emulatorze symulowana jest elektrownia blokowa, co znacząco zmniejsza wydajność w porównaniu do wirtualizacji.

To rozwiązanie dobrze izoluje system operacyjny gościa, ale wiąże się z kosztem wydajności. Koszt ten może być bardzo wysoki, jeśli procesor ma być emulowany, jak ma to miejsce w przypadku emulacji. W zamian to rozwiązanie umożliwia współistnienie kilku heterogenicznych systemów operacyjnych na tej samej maszynie dzięki całkowitej izolacji. Wymiana między maszynami odbywa się za pośrednictwem standardowych kanałów komunikacyjnych między systemami operacyjnymi ( TCP / IP i inne protokoły sieciowe), bufor wymiany umożliwia emulację wirtualnych kart sieciowych na jednej rzeczywistej karcie sieciowej.

Na przykład: Microsoft oprogramowania ( Microsoft VirtualPC , Microsoft Virtual Server ), oprogramowanie Parallels ( Parallels Desktop Parallels Server), Oracle VM VirtualBox (bezpłatny), VMware oprogramowania ( VMware Fusion , VMware Player, VMware Server, VMware Workstation ), oprogramowanie open source ( QEMU  : emulator platformy x86, PPC, Sparc i bochs  : emulator platformy x86).

Hiperwizor typu 1

Typ 1 hypervisor jest jak jądra systemu bardzo lekkiej i zoptymalizowane do obsługi dostępu jąder gość OS podstawowej architektury sprzętowej. Jeśli systemy gościa działają ze świadomością, że są zwirtualizowane i są zoptymalizowane pod kątem tego faktu, wówczas mówimy o para-wirtualizacji (podstawowa metoda na Hyper-V firmy Microsoft i która zwiększa wydajność na przykład na ESX firmy VMware ). Obecnie hiperwizor jest najbardziej wydajną metodą wirtualizacji infrastruktury, ale ma tę wadę, że jest restrykcyjny i drogi, chociaż pozwala na większą elastyczność w przypadku wirtualizacji centrum danych .

Na przykład: Citrix Xen Server (bezpłatny), VMware vSphere (dawniej VMware ESXi i VMware ESX ), Microsoft Hyper-V Server , Parallels Server Bare Metal, Oracle vm (bezpłatny), KVM (bezpłatny).

Ekwipunek

Obsługa wirtualizacji może być zintegrowana lub wspomagana przez procesor, przy czym sprzęt przejmuje na przykład wirtualizację dostępu do pamięci lub ochronę fizycznego procesora przed dostępem najniższego poziomu. Pomaga to uprościć wirtualizację oprogramowania i zmniejszyć spadek wydajności.

Przykłady wirtualizacji sprzętu: hiperwizor IBM Power i mikropartycjonowanie AIX, komputery mainframe: VM / CMS, Sun LDOM (hiperwizor do zarządzania „  domenami logicznymi  ”), Sun E10k / E15k, HP Superdome, AMD-V (obsługa wirtualizacji AMD, dawniej Pacifica) i Intel VT (Intel Virtualization Assistance, dawniej Vanderpool).

Uwagi i odniesienia

  1. „  Virtualization of Operating Systems  ” , na ubuntu-fr (dostęp 25 września 2017 )
  2. „  Po darmowym dostępie VMWare rozważa wycenę  ” na silicon.fr ,29 sierpnia 2008(dostęp 25 września 2017 )
  3. (en-US) „  dataWerks - rozwiązania do wirtualizacji danych z radykalnie nowym podejściem do dostarczania informacji biznesowych w czasie rzeczywistym  ” , na www.datawerks.com (dostęp 13 grudnia 2017 )
  4. Dzieje się tak szczególnie w przypadku VM / CMS
  5. VT-x, AMD-V, stronicowanie zagnieżdżone
  6. (w) Sun and AMD Special Edition, Virtualization for Dummies , str.  8
  7. (w) „  Network Functions Virtualization  ” na ETSI (dostęp: 25 września 2017 )
  8. (in) „  Członkostwo w NFV  ” , Lista członków ETSI NFV w ETSI
  9. „  Types of hypervisors  ” , w IT-Connect (dostęp 6 września 2016 r. )
  10. (in) „  Server virtualisation with IBM PowerVM  ” (dostęp: 25 września 2017 r. )

Załączniki

Powiązane artykuły

Linki zewnętrzne