6 technologii wirtualizacji open source do poznania w 2020 roku

Virtualization Tools, lepiej znane jako Virt Tools, to zbiór sześciu narzędzi wirtualizacji open source stworzonych przez różnych współtwórców, aby uczynić świat wirtualizacji lepszym miejscem.

Niektóre z tych narzędzi, jak KVM i QEMU, mogą być znane entuzjastom Linuksa, ale narzędzia takie jak libvirt i libguestfs są prawdopodobnie mniej.

W przypadku, gdy wolisz uczyć się przez oglądanie filmów niż czytanie, stworzyłem wersję wideo tego artykułu, który można uzyskać dostęp na YouTube.

Przed spacerem przez narzędzia, to dobry pomysł, aby wiedzieć, niektóre istotne terminologii wirtualizacji. Wiele z tych definicji zaczerpnąłem z Wikipedii, ze stronami połączonymi w tabeli.

Terminy Definicja
Wirtualizacja W informatyce, wirtualizacja odnosi się do aktu tworzenia wirtualnej (a nie fizycznej) wersji czegoś, w tym wirtualnych platform sprzętowych komputerów, urządzeń pamięci masowej i zasobów sieci komputerowej.
Emulator Emulator to sprzęt lub oprogramowanie, które umożliwia jednemu systemowi komputerowemu (zwanemu hostem) zachowywanie się jak inny system komputerowy (zwany gościem).
Maszyna wirtualna (VM) Nazywana również „maszyną gościa”, są to emulacje prawdziwych, fizycznych komputerów sprzętowych.
Host W wirtualizacji sprzętu, komputer, na którym hypervisor uruchamia jedną lub więcej maszyn wirtualnych.
Hypervisor Jest to oprogramowanie komputerowe, firmware lub sprzęt, który tworzy i uruchamia maszyny wirtualne.
Kernel Jest to program komputerowy w rdzeniu systemu operacyjnego komputera z pełną kontrolą nad wszystkim w systemie.
Demon Jest to program komputerowy, który działa jako proces w tle, a nie pod bezpośrednią kontrolą interaktywnego użytkownika.

Ta tabela podsumowuje każde narzędzie Virt, w tym informacje o licencji i linki do strony internetowej i kodu źródłowego każdego narzędzia. Wiele z tych informacji pochodzi ze strony internetowej Virt Tools i strony każdego narzędzia.

Nazwa Co to jest Licencja Kod źródłowy
Kernel- based Virtual Machine (KVM)based Virtual Machine (KVM) Moduł wirtualizacji w jądrze Linuksa, który pozwala jądru działać jako hypervisor GNU GPL lub LGPL Kod źródłowy
Quick Emulator (QEMU) Generyczny emulator i wirtualizator maszyn o otwartym kodzie źródłowym GPLv2 Kod źródłowy
Libvirt Biblioteka i demon zapewniający stabilne, open source API do zarządzania hostami wirtualizacji GNU Kod źródłowy
Libguestfs Zestaw narzędzi do dostępu i modyfikacji obrazów dysków maszyn wirtualnych LGPL, GPL Kod źródłowy
Virt-manager Pulpitowy interfejs użytkownika do zarządzania maszynami wirtualnymi za pomocą libvirt GPLv2+ Kod źródłowy
Libosinfo Dostarcza bazę danych informacji informacji o wydaniach systemów operacyjnych, aby pomóc w optymalnym konfigurowaniu sprzętu podczas wdrażania maszyn wirtualnych LGPLv2+ Kod źródłowy

Kernel- based Virtual Manager (KVM)based Virtual Manager (KVM)

2_kvm.jpg

KVM strona internetowa

(Bryant Son, CC BY-SA 4.0)

KVM to rozwiązanie do pełnej wirtualizacji systemu Linux na sprzęcie zawierającym rozszerzenia wirtualizacji. KVM zapewnia wirtualizację sprzętu dla wielu różnych systemów operacyjnych gości, w tym Linux, Windows, macOS, ReactOS i Haiku. Za pomocą KVM można uruchamiać wiele maszyn wirtualnych na niezmodyfikowanych obrazach systemu Linux lub Windows. Każda maszyna wirtualna ma prywatny zwirtualizowany sprzęt: kartę sieciową, dysk, kartę graficzną itp.

Przez większość czasu nie wchodzimy w bezpośrednią interakcję z KVM. Zamiast tego do korzystania z KVM trzeba używać QEMU, virt-managera lub innego narzędzia do zarządzania wirtualizacją.

Na stronie KVM można znaleźć pełną dokumentację, a także uzyskać dostęp do kodu źródłowego.

Emulator Quick Emulator (QEMU)

3_qemu.jpg

Strona internetowa QEMU

(Bryant Son, CC BY-SA 4.0)

QEMU jest ogólnym, otwartoźródłowym emulatorem maszyn i wirtualizatorem. Używany jako emulator, QEMU może uruchamiać systemy operacyjne i programy stworzone dla jednej maszyny (np. ARM) na innej maszynie (np. twoim własnym komputerze z procesorem x86_64). Używany jako wirtualizator, QEMU osiąga niemal natywną wydajność, wykonując kod gościa bezpośrednio na CPU gospodarza za pomocą KVM.

QEMU jest obsługiwany w wielu systemach operacyjnych, a jego proces instalacji jest tak prosty, jak uruchomienie kilku prostych poleceń; tutaj można zobaczyć, jak zainstalować QEMU na macOS za pomocą Homebrew.

3_1_qemuinstall.jpg

QEMU macOS installation info

(Bryant Son, CC BY-SA 4.0)

Po zainstalowaniu dowiedz się, jak z niego korzystać, czytając jego dokumentację, możesz też uzyskać dostęp do jego kodu źródłowego.

Libvirt

4_libvirt.jpg

Strona internetowa libvirt

(Bryant Son, CC BY-SA 4.0)

Libvirt to biblioteka i demon, który zapewnia stabilne API open source do zarządzania hostami wirtualizacji. Jest skierowany do wielu hypervisorów, w tym QEMU, KVM, LXC, Xen, OpenVZ, VMWare ESX, VirtualBox i więcej.

Inną interesującą rzeczą w libvirt jest to, że KubeVirt, projekt open source do tworzenia i zarządzania maszynami wirtualnymi wewnątrz platformy Kubernetes, w dużej mierze wykorzystuje Libvirt. (Zajmę się KubeVirt w przyszłym artykule.) Libvirt jest interesującym projektem do zbadania, i można znaleźć mnóstwo informacji na jego oficjalnej stronie internetowej, jak również pobrać jego kod źródłowy.

Libguestfs

5_libguestfs.jpg

Strona internetowa libguestfs

(Bryant Son, CC BY-SA 4.0)

Libguestfs to zestaw narzędzi do uzyskiwania dostępu i modyfikowania obrazów dysków maszyn wirtualnych. Można go używać do przeglądania i edycji plików wewnątrz gości; skryptowania zmian w maszynach wirtualnych; monitorowania statystyk użycia/wolności dysków; tworzenia gości, maszyn fizycznych na wirtualne (P2V) lub wirtualnych na wirtualne (V2V); wykonywania kopii zapasowych; klonowania maszyn wirtualnych; budowania maszyn wirtualnych; formatowania dysków; zmiany rozmiaru dysków i wielu innych. Ostatnio używałem go podczas pracy nad projektem opartym na KubeVirt o nazwie OpenShift Virtualization, o którym możesz dowiedzieć się więcej w moim samouczku wideo.

Oficjalna strona internetowa biblioteki Libguestfs zawiera obszerną dokumentację na temat używania każdego polecenia, a także możesz pobrać jej kod źródłowy na GitHub.

Virt-manager

6_virtualmanager.jpg

Strona internetowa Virt-manager

(Bryant Son, CC BY-SA 4.0)

Virt-manager to desktopowy interfejs użytkownika do zarządzania maszynami wirtualnymi za pomocą libvirt. Jest przeznaczony głównie dla maszyn wirtualnych KVM, ale zarządza również Xen i LXC. Zawiera także narzędzie do provisioningu virt-install, działające w linii poleceń. Pomyśl o virt-manager jako o łatwym w użyciu narzędziu do zarządzania maszynami wirtualnymi. Na przykład, możesz użyć virt-managera do uruchomienia środowiska Microsoft Windows na stacji roboczej Linux lub odwrotnie.

Kod źródłowy virt-managera jest dostępny na GitHub, a dokumentacja na jego stronie internetowej. W tej chwili virt-manager jest dostępny tylko dla platform Linux.

Libosinfo

7_libosinfo.jpg

Strona internetowa bibliosinfo

(Bryant Son, CC BY-SA 4.0)

Libosinfo dostarcza bazę informacji o wydaniach systemów operacyjnych, aby pomóc w konfiguracji sprzętu podczas wdrażania maszyn wirtualnych. Zawiera bibliotekę C do wyszukiwania informacji w bazie danych, która jest również dostępna z każdego języka obsługiwanego przez introspekcję GObject. Jak można się domyślać, libosinfo jest raczej blokiem konstrukcyjnym, umożliwiającym funkcjonalność systemu operacyjnego – ale całkiem ważnym.

Kod źródłowy libosinfo jest dostępny na GitLab, a jego dokumentację można znaleźć na jego stronie.

Podsumowanie

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.