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.
1_virttools.jpg
(Bryant Son, CC BY-SA 4.0)
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
(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
(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
(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
(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
(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
(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
(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
.