Konfigurowanie wirtualizacji kvm na Ubuntu 16.04. Przestań się bać wirtualizacji za pomocą KVM

O montażu pisałem już wcześniej Qemu-KVM V Debiana. Jednak moim zdaniem informacje okazały się niekompletne. Poza tym nie wziąłem pod uwagę pewnych niuansów. Dlatego zwracam uwagę na zaktualizowany artykuł na temat instalacji maszyny wirtualnej Qemu-KVM. Oczywiście usunę stary artykuł.

Myślę, że powinienem wyjaśnić, o co chodzi maszyna wirtualna, nie jest tego warte. Prawdopodobnie o tym wiesz (ponieważ czytasz ten artykuł). Jeśli nie - . Skupimy się bezpośrednio na temacie. Qemu-KVM to projekt będący połączeniem dwóch najbardziej wymarzonych (moim zdaniem) technologii pełnej wirtualizacji. Qemu to rodzaj „emulatora komputera”, który obsługuje szeroką gamę architektur sprzętowych. Może uruchomić prawie każdy system operacyjny na dowolnym urządzeniu (na przykład uruchomiłem stare wersje Mac OS X, co jest dla PowerPC). Wadą Qemu jest jego powolność wynikająca z braku akceleracji sprzętowej. A potem na ratunek przychodzi kolejny projekt - KVM. Lub wirtualna maszyna jądra. KVM to technologia jądra Linuksa, która umożliwia akcelerację sprzętową przy pełnej wirtualizacji. Wadą KVM jest to, że obsługuje tylko architekturę x86

Dlaczego Qemu-KVM? W przypadku systemu Linux jest to najbardziej zalecany projekt wirtualizacji. Działa szybciej niż Wirtualny Box I Odtwarzacz VMware(według moich testów) KVM jest technologią natywną dla Linuksa. Ponadto, jeśli masz dobry komputer do gier z dwiema kartami graficznymi, możesz zainstalować w Qemu-KVM Okna, wrzuć do niego jedną z kart graficznych i zapomnij o ponownym uruchomieniu systemu operacyjnego. Jeśli chcesz zagrać, uruchamiasz maszynę wirtualną z systemem Windows i grasz. Wydajność będzie wynosić 95% wydajności systemu Windows zainstalowanego na sprzęcie. Ale moim zdaniem jest po prostu przepiękny. Napiszę o tym osobny artykuł. To będzie interesujące:)

Teraz opiszę nasz plan działania. Na początek przeprowadzę instalację na przykładzie Debian 8.2 GNOME 64-bitowy, choć w innych środowiskach graficznych nie będzie znaczących różnic. Po drugie, pracę z KVM opiszę jedynie w trybie graficznym (w końcu nie będziemy go instalować na serwerze). Dlatego nie ma terminali, skryptów i tak dalej, jak to zwykle ma miejsce w przypadku wirtualizacji serwerów. Po trzecie radzę dodatkowo zapoznać się z dokumentacją Qemu i KVM (linki podam na końcu artykułu). Będzie to dla Ciebie bardzo przydatne, jeśli chcesz w pełni wykorzystać potencjał tego pakietu. Cóż, nasz plan działania jest jasny. Teraz kroki działania:

  • zainstaluj qemu-kvm;
  • instalacja menedżera graficznego i dodatkowych narzędzi;
  • ustawienie mostu sieciowego;
  • tworzenie pamięci masowej dla maszyn wirtualnych;
  • instalowanie systemu gościa.
Najpierw sprawdźmy, czy Twój komputer obsługuje wirtualizację sprzętową. Aby to zrobić, uruchom polecenie w terminalu:

egrep "(vmx|svm)" /proc/cpuinfo

Dane wyjściowe polecenia muszą zawierać którykolwiek z nich vmx, Lub svm. Jeśli ich tam nie ma, sprawdź, czy w BIOSie jest włączona wirtualizacja (poszukaj pozycji Intel VT-i lub podobne dla AMD). Jeśli nic nie ma, oznacza to, że nie masz szczęścia.

Zainstaluj niezbędne komponenty:

sudo apt zainstaluj qemu-kvm Bridge-utils libvirt-bin virt-manager

Dodaj się do grupy libvirt:

sudo adduser $USER libvirt

Teraz skonfigurujmy sieć. Aby wszystkie maszyny wirtualne mogły uzyskać dostęp do sieci i komunikować się ze sobą, należy dla każdej maszyny wirtualnej utworzyć mostek sieciowy i wirtualne karty sieciowe ( dotknij urządzeń). Ponieważ maszyny wirtualne będziemy instalować z poziomu interfejsu graficznego, nie ma potrzeby ręcznego tworzenia kranów. Wirtualny Menedżer zrobi to za nas za każdym razem, gdy zaczniemy. Musimy tylko skonfigurować most. Najpierw włączmy routing w jądrze:

sudo nano /etc/sysctl.conf

Szukamy linii net.ipv4_forward=0 i zmieniamy jej wartość na 1 . Zapisujemy także:

sudo sysctl -p

Następnie założę, że: 1) na Twoim komputerze znajduje się jedna karta sieciowa, która otrzymuje adres IP od routera. 2) łączysz się z Internetem poprzez modem 3G, a Twoja karta sieciowa jest bezpłatna. Ta opcja wymaga większej pracy ręcznej, ale została przetestowana kilka razy (sam to robiłem na jednej z maszyn). Otwórz więc plik interfejsów:

sudo nano /etc/network/interfaces

Jego domyślna zawartość to:



auto lo
pętla zwrotna iface lo inet

Zmieniamy jego zawartość. Dla pierwszej opcji:

źródło /etc/network/interfaces.d/*

# Interfejs sieciowy z pętlą zwrotną
auto lo
pętla zwrotna iface lo inet

auto eth0
Instrukcja obsługi iface eth0 inet

auto br0
iface br0 inet statyczny
adres 192.168.0.2
brama 192.168.0.1
maska ​​sieci 255.255.255.0
sieć 192.168.0.0
transmituj 192.168.0.255
most_porty eth0
most_stp wyłączony
most_maxwait 0
most_fd 0

Dla drugiej opcji:

źródło /etc/network/interfaces.d/*

# Interfejs sieciowy z pętlą zwrotną
auto lo
pętla zwrotna iface lo inet

automatyczne ppp0
iface ppp0 inet wvdial

auto eth0
Instrukcja obsługi iface eth0 inet

auto br0
iface br0 inet statyczny
adres 192.168.0.2
brama 192.168.0.1
maska ​​sieci 255.255.255.0
sieć 192.168.0.0
transmituj 192.168.0.255
most_porty eth0
most_stp wyłączony
most_maxwait 0
most_fd 0
w górę trasa del domyślna br0

Notatka: jeśli nie potrzebujesz automatycznego połączenia z Internetem przez modem po uruchomieniu systemu, usuń linie auto ppp0 i
iface ppp0 inet wvdial . W przeciwnym razie upewnij się, że po uruchomieniu systemu modem jest podłączony do portu USB.

Ratować. Teraz, aby skorzystać z opcji z modemem, musisz zainstalować program dialer wvdial:

sudo apt zainstaluj wvdial

Edycja konfiguracji (uwaga: jako przykład użyto modemu 3G Linia powietrzna. Przykłady konfiguracji dla innych modemów można łatwo znaleźć w Internecie):

sudo nano /etc/wvdial.conf


Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","home.beeline.ru"
Tryb głupi = 1
ISDN = 0
Typ modemu = Modem USB
Nowe PPPD = tak
Telefon = *99#
Modem = /dev/ttyACM0
Nazwa użytkownika = beeline
Hasło = linia
Baud = 9600
Kraj = Rosja
Automatyczne ponowne łączenie = włączone
Automatyczny DNS = wyłączony
Bezczynne sekundy = 0

Ratować. Teraz modem włączy się natychmiast po uruchomieniu systemu. Line up Route del default br0 usuwa domyślną trasę przez most. Jeśli tego nie zrobisz, nie będziesz mógł połączyć się z Internetem, ponieważ ruch będzie odbywał się przez most, a nie przez modem 3G.

Ostatni krok, który musimy powiedzieć zapora sieciowa, dzięki czemu przekazuje ruch z naszych maszyn wirtualnych do sieci i z powrotem. Aby to zrobić, możesz skorzystać z dwóch sposobów: napisać skrypt z kilkoma regułami iptables, który będzie działał wraz z systemem, lub wprowadź te reguły ręcznie i zapisz je. Skorzystam z pierwszej opcji. W przypadku drugiego będziesz musiał zainstalować pakiet trwałe iptables i po prostu wprowadź reguły jedna po drugiej (używając sudo). Więc. utwórz skrypt (w dowolnym edytorze tekstu). Wklej tam następującą treść:

#!/bin/sh

# Zdefiniuj interfejs wyjściowy, dla którego zostanie zastosowana zamiana adresu (NAT).
iptables -v -t nat -A POSTROUTING -o ppp0 -j MASKARADA

# Przekazujemy wszystkie pakiety odebrane przez modem z sieci globalnej (0.0.0.0/0) do sieci lokalnej (192.168.0.0/24)
iptables -v -A FORWARD -i ppp0 -o br0 -s 0.0.0.0/0 -d 192.168.0.0/24 -j AKCEPTUJ

# Przekazuj wszystkie pakiety przychodzące z sieci lokalnej (192.168.0.0/24) do sieci globalnej (0.0.0.0/0)
iptables -v -A FORWARD -i br0 -o ppp0 -s 192.168.0.0/24 -d 0.0.0.0/0 -j AKCEPTUJ

Zapisz jako bramka.sh i nadaj uprawnienia do wykonywania (we właściwościach pliku lub w terminalu za pomocą polecenia chmod +x brama.sh). Teraz możesz uruchomić go ręcznie po uruchomieniu systemu lub dodać go do uruchamiania. Aby to zrobić, przenieś skrypt do ~/.config/autostart(w menedżerze plików włącz opcję pokaż ukryte pliki, a zobaczysz katalog .konfiguracja w katalogu domowym).

Teraz wszystko jest gotowe do zainstalowania maszyny wirtualnej. Z menu aplikacji uruchom Virt Manager (menedżer maszyn wirtualnych):

Kliknij prawym przyciskiem myszy linię Lokalny Gospodarz i wybierz Detale. Przejdź do zakładki Składowanie. Musimy określić katalog (lub partycję/dysk) do przechowywania maszyn wirtualnych.

W lewym dolnym rogu kliknij znak plus ( Dodaj basen), wskaż typ magazynu i ścieżkę do niego.

Na karcie Interfejsy sieciowe, możesz sprawdzić, czy wszystko działa.

Teraz naciskamy Plik - Nowa maszyna wirtualna. Określ ścieżkę do obrazu dysku i typ maszyny wirtualnej. Następnie wskazujemy ilość pamięci RAM i liczbę rdzeni procesora. Następnie wskaż nasz magazyn i kliknij Nowy wolumen. Podaj nazwę, zostaw typ qkrowa2 i rozmiar. Będzie to wirtualny dysk twardy. Jeśli planujesz instalację systemu z powłoką graficzną i mnóstwem programów, daj więcej miejsca (50 gigabajtów). Na ostatniej karcie zaznacz pole Zmień ustawienia przed uruchomieniem, sprawdź czy nasz mostek jest wybrany jako urządzenie sieciowe, wpisz dowolną nazwę dla maszyny wirtualnej i kliknij Kompletny. Okno parametrów tej maszyny wirtualnej otworzy się przed tobą.





Przejdź do zakładki procesor i zaznacz pole wyboru Skopiuj ustawienia procesora hosta.

Obok zakładki Internet(następny), a także wskazać vito. Na karcie Wyświetlacz proszę wskazać Przyprawa i na zakładce Wideo - QXL. Zwykle ta kombinacja zapewnia maksymalną wydajność renderowania grafiki, ale jeśli chcesz, możesz poeksperymentować. Należy pamiętać, że w przypadku systemów gościnnych Windows wymagana jest osobna instalacja sterownika QXL (w samym systemie Windows).


Teraz, gdy wszystko jest gotowe, kliknij w lewym górnym rogu Rozpocznij instalację. I zainstaluj system jak zwykle, z jednym wyjątkiem: gdy tylko instalator zacznie automatycznie konfigurować sieć, kliknij Anulować i wybierz Skonfiguruj sieć ręcznie. Podaj żądany adres IP maszyny wirtualnej (w naszym przypadku 192.168.0.3 ), maska ​​podsieci ( 255.255.255.0 ), bramę (bramą będzie adres hosta, tj 192.168.0.2 ) i serwer DNS (tutaj wystarczy podać Google 8.8.8.8 ). To wszystko. Nie ma potrzeby robić nic więcej. Zainstaluj system i skonfiguruj go. Ogólnie rzecz biorąc, to wszystko. Opisane kroki są sposobem na zastąpienie, powiedzmy, VirtualBox lepszą alternatywą. Po przeczytaniu dokumentacji zrozumiesz, jak szerokie są możliwości Qemu-KVM. Celowo nie opisałem tutaj dodatkowych parametrów konsoli i sposobów uruchamiania maszyn wirtualnych przez terminal, ponieważ nie zawsze jest to konieczne na komputerze domowym. O tym, jak skonfigurować domowy serwer wielofunkcyjny (który może pełnić także funkcję serwera maszyny wirtualnej), napiszę o tym osobny artykuł. Tym, którzy z jakiegoś powodu nie zrozumieli, co zostało napisane, lub nadal są niezrozumiałe momenty, sugeruję obejrzenie filmu, w którym nie będę opisywał, ale pokażę, jak zainstalować i skonfigurować to wszystko. Jeśli masz sugestie lub uzupełnienia do artykułu, napisz w komentarzach.

W tym wprowadzającym artykule pokrótce przedstawię wszystkie narzędzia programowe wykorzystywane w procesie tworzenia usług. Zostaną one omówione szerzej w kolejnych artykułach.

Dlaczego ? Ten system operacyjny jest mi bliski i zrozumiały, więc przy wyborze dystrybucji nie było udręki, udręki ani rzucania. Nie ma on żadnych szczególnych przewag nad Red Hat Enterprise Linux, ale zdecydowano się na współpracę ze znajomym systemem.

Jeśli planujesz samodzielnie wdrożyć infrastrukturę wykorzystującą podobne technologie, radzę wybrać RHEL: dzięki dobrej dokumentacji i dobrze napisanym programom aplikacyjnym będzie to jeśli nie o rząd wielkości, to na pewno dwa razy prostsze, a dzięki opracowanemu systemowi certyfikacji z łatwością znajdziesz szereg specjalistów znających ten system operacyjny na odpowiednim poziomie.

My ponownie postanowiliśmy skorzystać Ściśnięcie Debiana z zestawem pakietów od Sid/eksperymentalny a niektóre pakiety zostały przeportowane i skompilowane z naszymi łatkami.
W planach jest opublikowanie repozytorium z pakietami.

Wybierając technologię wirtualizacji, rozważano dwie opcje – Xen i KVM.

Uwzględniono także fakt, że istniała ogromna liczba programistów, hosterów i rozwiązań komercyjnych opartych na Xen – tym ciekawsze było wdrożenie rozwiązania opartego na KVM.

Głównym powodem, dla którego zdecydowaliśmy się na KVM, jest konieczność uruchamiania maszyn wirtualnych z systemem FreeBSD, a w przyszłości także MS Windows.

Do zarządzania maszynami wirtualnymi niezwykle wygodne okazało się wykorzystanie produktów korzystających z jej API: virsz, wirtualny menedżer, instalacja wirtualna itp.

To system, który przechowuje ustawienia maszyn wirtualnych, zarządza nimi, prowadzi statystyki na ich temat, pilnuje, aby interfejs maszyny wirtualnej został podniesiony przy uruchomieniu, łączy urządzenia z maszyną - ogólnie rzecz biorąc, wykonuje wiele pożytecznej pracy i trochę więcej.

Oczywiście rozwiązanie nie jest idealne. Wady obejmują:

  • Absolutnie szalone komunikaty o błędach.
  • Brak możliwości zmiany części konfiguracji maszyny wirtualnej w locie, chociaż pozwala na to QMP (QEMU Monitor Protocol).
  • Czasami z nieznanego powodu nie można połączyć się z libvirtd - przestaje ona odpowiadać na zdarzenia zewnętrzne.

Głównym problemem przy wdrażaniu usługi już na samym początku było ograniczenie zasobów dla maszyn wirtualnych. W Xen problem ten rozwiązano za pomocą wewnętrznego harmonogramu rozdzielającego zasoby pomiędzy maszyny wirtualne – a co najlepsze, zaimplementowano także możliwość ograniczania operacji dyskowych.

W KVM nie było czegoś takiego, aż do pojawienia się mechanizmu alokacji zasobów jądra. Jak zwykle w Linuksie, dostęp do tych funkcji został zaimplementowany poprzez specjalny system plików grupa c, w którym za pomocą zwykłych wywołań systemowych write() można dodać proces do grupy, przypisać mu wagę papugi, określić rdzeń, na którym będzie działał, określić przepustowość dysku, z której może korzystać proces, lub ponownie , przypisz mu wagę.

Zaletą jest to, że wszystko to jest zaimplementowane wewnątrz jądra i może być używane nie tylko na serwerze, ale także na komputerze stacjonarnym (co zostało wykorzystane w słynnej „Łatce jądra Linuksa ~ 200 linii, która czyni cuda”). I moim zdaniem jest to jedna z najbardziej znaczących zmian w gałęzi 2.6, nie licząc mojego ulubionego #12309, a nie zgłoszenia innego systemu plików. No może z wyjątkiem POHMELFS (ale wyłącznie ze względu na nazwę).

Mój stosunek do tej biblioteki narzędziowej jest bardzo niejednoznaczny.

Z jednej strony wygląda to mniej więcej tak:

Poza tym jest to cholernie trudne do zmontowania ze źródła, a tym bardziej do pakietu: czasami wydaje mi się, że Linux From Scratch jest trochę łatwiejszy do zbudowania od zera.

Z drugiej strony jest to bardzo potężna rzecz, która pozwala tworzyć obrazy dla maszyn wirtualnych, modyfikować je, kompresować, instalować Gruba, modyfikować tablicę partycji, zarządzać plikami konfiguracyjnymi, przenosić maszyny sprzętowe do środowiska wirtualnego, przesyłać maszyny wirtualne z jednego obrazu na drugi, przenosimy maszyny wirtualne z obrazu na sprzęt i szczerze mówiąc, tutaj wyobraźnia mnie trochę zawodzi. O tak: możesz także uruchomić demona na maszynie wirtualnej z Linuksem i uzyskać dostęp do danych maszyny wirtualnej na żywo, a wszystko to zrobić w powłokach Shell, Python, Perl, Java, Ocaml. To jest krótka i bynajmniej nie wyczerpująca lista tego, co możesz zrobić z plikami .

Co ciekawe, większość kodu generowana jest w momencie asemblera, podobnie jak dokumentacja do projektu. Powszechnie stosowane są Ocaml i Perl. Sam kod jest napisany w C, który następnie jest owijany w OCaml, a powtarzające się fragmenty kodu są generowane samodzielnie. Praca z obrazami odbywa się poprzez uruchomienie specjalnego obrazu usługi (urządzenie supermin), do którego kanałem wysyłane są do niego polecenia. Ten obraz ratunkowy zawiera pewien zestaw narzędzi, takich jak parted, mkfs i inne przydatne dla administratora systemu.

Ostatnio zacząłem nawet używać go w domu, wyodrębniając potrzebne mi dane z obrazu nandroidu. Wymaga to jednak jądra obsługującego Yaffs.

Inny

Poniżej znajduje się kilka ciekawszych linków do opisu użytego oprogramowania - przeczytaj i przestudiuj sam, jeśli jesteś zainteresowany. Na przykład,

Przychodzi taki moment w życiu administratora systemu, kiedy trzeba zbudować infrastrukturę przedsiębiorstwa od podstaw lub przebudować istniejącą, która została odziedziczona. W tym artykule omówię, jak prawidłowo wdrożyć hypervisor oparty na Linux KVM i libvirt z obsługą LVM (grupy logicznej).

Omówimy wszystkie zawiłości zarządzania hypervisorem, w tym narzędziami konsoli i GUI, rozszerzaniem zasobów i migracją maszyn wirtualnych do innego hypervisora.

Najpierw zrozummy, czym jest wirtualizacja. Oficjalna definicja brzmi: „Wirtualizacja to zapewnienie zestawu zasobów obliczeniowych lub ich logicznej kombinacji, wyodrębnionej z implementacji sprzętowej, przy jednoczesnym zapewnieniu logicznej izolacji od siebie procesów obliczeniowych działających na tym samym zasobie fizycznym”. Czyli po ludzku mając jeden mocny serwer, możemy zamienić go w kilka średniej wielkości serwerów, a każdy z nich będzie wykonywał przypisane mu w infrastrukturze zadanie, nie ingerując w inne.

Administratorzy systemów ściśle współpracujący z wirtualizacją w przedsiębiorstwie, mistrzowie i wirtuozi swojego rzemiosła, dzielą się na dwa obozy. Niektórzy są zwolennikami zaawansowanego technologicznie, ale niesamowicie drogiego VMware dla Windows. Inni są fanami open source i darmowych rozwiązań opartych na Linux VM. Długo moglibyśmy wymieniać zalety VMware, jednak tutaj skupimy się na wirtualizacji opartej na Linux VM.

Technologie wirtualizacji i wymagania sprzętowe

Obecnie istnieją dwie popularne technologie wirtualizacji: Intel VT i AMD-V. Intel VT (z Intel Virtualization Technology) implementuje wirtualizację w trybie rzeczywistego adresowania; odpowiednia wirtualizacja sprzętowa we/wy nazywa się VT-d. Technologia ta często określana jest skrótem VMX (Virtual Machine eXtension). Firma AMD stworzyła własne rozszerzenia wirtualizacji i początkowo nazwała je AMD Secure Virtual Machine (SVM). Kiedy technologia trafiła na rynek, stała się znana jako AMD Virtualization (w skrócie AMD-V).

Przed oddaniem sprzętu do użytku upewnij się, że sprzęt obsługuje jedną z tych dwóch technologii (możesz zajrzeć do specyfikacji na stronie producenta). Jeśli dostępna jest obsługa wirtualizacji, przed wdrożeniem hiperwizora należy ją włączyć w systemie BIOS.

Inne wymagania hypervisorów obejmują obsługę sprzętowej macierzy RAID (1, 5, 10), która zwiększa odporność hypervisora ​​na awarie w przypadku awarii dysków twardych. Jeśli nie ma obsługi sprzętowej macierzy RAID, w ostateczności możesz użyć oprogramowania. Ale RAID jest koniecznością!

Rozwiązanie opisane w tym artykule obsługuje trzy maszyny wirtualne i działa pomyślnie na minimalnych wymaganiach: Core 2 Quad Q6600 / 8 GB DDR2 PC6400 / 2 × 250 GB HDD SATA (sprzętowy RAID 1).

Instalacja i konfiguracja hypervisora

Pokażę Ci jak skonfigurować hypervisora ​​na przykładzie Debian Linux 9.6.0 - X64-86. Możesz użyć dowolnej dystrybucji Linuksa.

Kiedy już zdecydujesz się na wybór sprzętu i zostanie on ostatecznie dostarczony, nadejdzie czas na instalację hypervisora. Instalując system operacyjny, robimy wszystko jak zwykle, z wyjątkiem partycjonowania dysku. Niedoświadczeni administratorzy często wybierają opcję „Automatycznie podziel na partycje całe miejsce na dysku bez użycia LVM”. Wtedy wszystkie dane zostaną zapisane na jednym woluminie, co nie jest dobre z kilku powodów. Po pierwsze, jeśli Twój dysk twardy ulegnie awarii, utracisz wszystkie dane. Po drugie, zmiana systemu plików spowoduje wiele problemów.

Ogólnie, aby uniknąć niepotrzebnych kroków i straty czasu, polecam używać partycjonowania dysku za pomocą LVM.

Menedżer woluminów logicznych

Menedżer woluminów logicznych (LVM) to podsystem dostępny dla systemów Linux i OS/2, zbudowany na bazie narzędzia Device Mapper. Jego zadaniem jest reprezentowanie różnych obszarów jednego dysku twardego lub obszarów kilku dysków twardych w jednym woluminie logicznym. LVM tworzy logiczną grupę woluminów (VG - Volumes Group) z woluminów fizycznych (PV - Physical Volumes). Ten z kolei składa się z woluminów logicznych (LV - Logical Volume).

Teraz wszystkie dystrybucje Linuksa z jądrem 2.6 i nowszym obsługują LVM2. Aby używać LVM2 w systemie operacyjnym z jądrem 2.4, musisz zainstalować poprawkę.

Po wykryciu dysków twardych przez system zostanie uruchomiony menedżer partycji dysku twardego. Wybierz opcję Z przewodnikiem — użyj całego dysku i skonfiguruj LVM.


Teraz wybieramy dysk, na którym zostanie zainstalowana nasza grupa woluminów.



System zaoferuje opcje układu multimediów. Wybierz „Zapisz wszystkie pliki na jednej partycji” i przejdź dalej.




Po zapisaniu zmian otrzymamy jedną grupę logiczną i w niej dwa woluminy. Pierwsza to partycja główna, a druga to plik wymiany. Tutaj wielu zada pytanie: dlaczego nie wybrać znaczników ręcznie i samodzielnie nie utworzyć LVM?

Odpowiem prosto: podczas tworzenia grupy logicznej VG partycja rozruchowa nie jest zapisywana w VG, ale tworzona jako osobna partycja z systemem plików ext2. Jeśli nie zostanie to wzięte pod uwagę, wolumin rozruchowy trafi do grupy logicznej. To skaże cię na agonię i cierpienie podczas przywracania woluminu rozruchowego. Z tego powodu partycja rozruchowa jest wysyłana na wolumin inny niż LVM.



Przejdźmy do konfiguracji grupy logicznej dla hypervisora. Wybierz element „Konfiguracja menedżera woluminów logicznych”.



System powiadomi Cię, że wszystkie zmiany zostaną zapisane na dysku. Zgadzamy się.



Stwórzmy nową grupę - nazwijmy ją np. vg_sata.



INFORMACJE

Serwery korzystają z nośników SATA, SSD, SAS, SCSI, NVMe. Podczas tworzenia grupy logicznej dobrą praktyką jest określenie nie nazwy hosta, ale rodzaju nośnika używanego w grupie. Radzę nazwać grupę logiczną w następujący sposób: vg_sata, vg_ssd, vg_nvme i tak dalej. Pomoże Ci to zrozumieć, z jakiego nośnika zbudowana jest grupa logiczna.




Stwórzmy nasz pierwszy wolumin logiczny. Będzie to wolumin partycji głównej systemu operacyjnego. Wybierz element „Utwórz wolumin logiczny”.



Wybierz grupę dla nowego woluminu logicznego. Mamy tylko jeden.



Nadajemy nazwę woluminowi logicznemu. Przypisując nazwę, najbardziej poprawne jest użycie przedrostka w postaci nazwy grupy logicznej - na przykład vg_sata_root, vg_ssd_root i tak dalej.



Określ wolumin nowego woluminu logicznego. Radzę przydzielić 10 GB na root, ale mniej jest możliwe, ponieważ wolumin logiczny zawsze można rozszerzyć.



Analogicznie do powyższego przykładu tworzymy następujące woluminy logiczne:

  • vg_sata_home - 20 GB na katalogi użytkowników;
  • vg_sata_opt - 10 GB na instalację oprogramowania aplikacyjnego;
  • vg_sata_var - 10 GB na często zmieniające się dane, np. logi systemowe i inne programy;
  • vg_sata_tmp - 5 GB na dane tymczasowe, jeśli ilość danych tymczasowych jest duża, można zrobić więcej. W naszym przykładzie ta sekcja nie została utworzona jako niepotrzebna;
  • vg_sata_swap - równa ilości pamięci RAM. Jest to sekcja do wymiany i tworzymy ją jako siatkę bezpieczeństwa - na wypadek wyczerpania się pamięci RAM na hypervisorze.

Po utworzeniu wszystkich woluminów kończymy pracę menadżera.



Teraz mamy kilka woluminów do utworzenia partycji systemu operacyjnego. Nietrudno zgadnąć, że każda partycja ma swój własny wolumin logiczny.



Dla każdego woluminu logicznego tworzymy partycję o tej samej nazwie.



Zapisz i zapisz wprowadzone zmiany.



Po zapisaniu zmian w układzie dysku rozpocznie się instalacja podstawowych komponentów systemu, po czym zostaniesz poproszony o wybranie i zainstalowanie dodatkowych komponentów systemu. Ze wszystkich komponentów będziemy potrzebować serwera ssh i standardowych narzędzi systemowych.



Po instalacji program rozruchowy GRUB zostanie wygenerowany i zapisany na dysku. Instalujemy go na dysku fizycznym, na którym zapisana jest partycja rozruchowa, czyli /dev/sda.




Teraz czekamy aż bootloader zakończy zapisywanie na dysk i po otrzymaniu powiadomienia restartujemy hypervisor.





Po ponownym uruchomieniu systemu zaloguj się do hypervisora ​​poprzez SSH. Przede wszystkim w katalogu root zainstaluj narzędzia niezbędne do pracy.

$ sudo apt-get install -y sudo ekran htop narzędzia sieciowe dnsutils bind9utils sysstat telnet traciroute tcpdump wget curl gcc rsync

Skonfiguruj SSH według własnych upodobań. Radzę od razu dokonać autoryzacji za pomocą kluczy. Uruchom ponownie i sprawdź funkcjonalność usługi.

$ sudo nano /etc/ssh/sshd_config $ sudo systemctl uruchom ponownie sshd; sudo systemctl status sshd

Przed zainstalowaniem oprogramowania do wirtualizacji należy sprawdzić woluminy fizyczne i stan grupy logicznej.

$sudo pvscan $sudo lvs

Instalujemy komponenty i narzędzia do wirtualizacji, aby utworzyć most sieciowy na interfejsie hypervisora.

$ sudo apt-get update; apt-get upgrade -y $ sudo apt install qemu-kvm libvirt-bin libvirt-dev libvirt-daemon-system libvirt-clients virtinst Bridge-utils

Po instalacji konfigurujemy most sieciowy na hypervisorze. Skomentuj ustawienia interfejsu sieciowego i ustaw nowe:

$ sudo nano /etc/network/interfaces

Treść będzie mniej więcej taka:

Auto BR0 IFACE BR0 Inet Adres statyczny 192.168.1.61 Maska sieci 255.255.255.192 Brama 192.168.1.1 Boadcast 192.168.0.61 DNS-NAMESERVER 127.0.1 DNS-SEARCH Site Bridge_Ports Enp2S Bridge_stp Off Bridge_WaitPort 0 Bridge_fd 0

Do grup libvirt i kvm dodajemy naszego użytkownika, pod którym będziemy pracować z hypervisorem (dla RHEL grupa nazywa się qemu).

$ sudo gpasswd -a iryzhevtsev kvm $ sudo gpasswd -a iryzhevtsev libvirt

Teraz musimy zainicjować naszą grupę logiczną do pracy z hypervisorem, uruchomić ją i dodać do startu przy starcie systemu.

$ sudo virsh lista-pul $ sudo virsh definicja-as vg_sata logiczne --target /dev/vg_sata $ sudo virsh Pool-start vg_sata; sudo virsh pula-autostart vg_sata $ sudo virsh lista-puli

INFORMACJE

Aby grupa LVM działała poprawnie z QEMU-KVM, należy najpierw aktywować grupę logiczną za pomocą konsoli virsh.

Teraz pobierz dystrybucję do instalacji na systemach gościnnych i umieść ją w żądanym folderze.

$ sudo wget https://mirror.yandex.ru/debian-cd/9.5.0/amd64/iso-cd/debian-9.5.0-amd64-netinst.iso $ sudo mv debian-9.5.0-amd64-netinst .iso /var/lib/libvirt/images/; ls -al /var/lib/libvirt/images/

Aby połączyć się z maszynami wirtualnymi poprzez VNC, edytuj plik /etc/libvirt/libvirtd.conf:

$ sudo grep "listen_addr = " /etc/libvirt/libvirtd.conf

Odkomentujmy i zmieńmy linię Listen_addr = "0.0.0.0" . Zapisujemy plik, ponownie uruchamiamy hypervisor i sprawdzamy, czy wszystkie usługi uruchomiły się i działają.

Kontynuacja jest dostępna tylko dla członków

Opcja 1. Dołącz do społeczności „site”, aby zapoznać się ze wszystkimi materiałami w serwisie

Członkostwo w społeczności w określonym terminie zapewni Ci dostęp do WSZYSTKICH materiałów Hackera, zwiększy Twoją osobistą zniżkę kumulacyjną i pozwoli Ci zgromadzić profesjonalną ocenę Xakep Score!

KVM lub Kernel Virtual Module to moduł wirtualizacji dla jądra Linuksa, który pozwala zamienić komputer w hypervisor do zarządzania maszynami wirtualnymi. Moduł ten działa na poziomie jądra i obsługuje technologie akceleracji sprzętowej, takie jak Intel VT i AMD SVM.

Samo oprogramowanie KVM nie wirtualizuje niczego w przestrzeni użytkownika. Zamiast tego używa pliku /dev/kvm do skonfigurowania wirtualnych przestrzeni adresowych dla gościa w jądrze. Każde urządzenie gościnne będzie miało własną kartę graficzną, sieciową i dźwiękową, dysk twardy i inny sprzęt.

Ponadto system gościa nie będzie miał dostępu do komponentów prawdziwego systemu operacyjnego. Maszyna wirtualna działa w całkowicie izolowanej przestrzeni. Możesz używać kvm zarówno w systemie GUI, jak i na serwerach. W tym artykule przyjrzymy się, jak zainstalować kvm Ubuntu 16.04

Przed przystąpieniem do samej instalacji KVM należy sprawdzić, czy Twój procesor obsługuje sprzętową akcelerację wirtualizacji z Intel-VT lub AMD-V. Aby to zrobić, uruchom następujące polecenie:

egrep -c "(vmx|svm)" /proc/cpuinfo

Jeśli wynik zwróci 0, oznacza to, że Twój procesor nie obsługuje wirtualizacji sprzętowej, jeśli 1 lub więcej, możesz użyć KVM na swojej maszynie.

Teraz możemy przystąpić do instalacji KVM, zestaw programów można pobrać bezpośrednio z oficjalnych repozytoriów:

sudo apt zainstaluj qemu-kvm libvirt-bin Bridge-utils virt-manager cpu-checker

Zainstalowaliśmy nie tylko narzędzie kvm, ale także bibliotekę libvirt, a także menedżera maszyn wirtualnych. Po zakończeniu instalacji musisz dodać swojego użytkownika do grupy libvirtd, ponieważ tylko root i użytkownicy w tej grupie mogą korzystać z maszyn wirtualnych KVM:

sudo gpasswd -a UŻYTKOWNIK libvirtd

Po uruchomieniu tego polecenia wyloguj się i zaloguj ponownie. Następnie sprawdźmy, czy wszystko zostało poprawnie zainstalowane. W tym celu użyj komendy kvm-ok:

INFORMACJE: /dev/kvm istnieje
Można zastosować akcelerację KVM

Jeśli wszystko zostało wykonane poprawnie, zobaczysz ten sam komunikat.

Korzystanie z KVM na Ubuntu 16.04

Ukończyłeś zadanie instalacji kvm w Ubuntu, ale nie możesz jeszcze korzystać z tego środowiska wirtualizacji, ale nadal wymaga ono skonfigurowania. Następnie przyjrzymy się konfiguracji kvm Ubuntu. Najpierw musisz skonfigurować swoją sieć. Musimy stworzyć most, za pomocą którego maszyna wirtualna połączy się z siecią komputera.

Konfigurowanie mostu w NetworkManager

Można to zrobić na kilka sposobów, na przykład możesz skorzystać z programu do konfiguracji sieci NetworkManager.

Kliknij ikonę NetworkManager na panelu, a następnie wybierz zmienić połączenia, a następnie kliknij przycisk Dodać:

Następnie wybierz typ połączenia Most i naciśnij Tworzyć:

W oknie, które zostanie otwarte, kliknij przycisk Dodać, aby połączyć nasz most z połączeniem internetowym:

Z listy wybierz Ethernetu i naciśnij Tworzyć:

W kolejnym oknie wybierz w polu urządzenie, interfejs sieciowy, z którym powinien być powiązany nasz most:

Teraz zobaczysz swój most na liście połączeń sieciowych. Pozostaje tylko zrestartować sieć, aby w pełni zastosować zmiany, w tym celu uruchom:

Ręczna konfiguracja mostu

Najpierw musisz zainstalować zestaw narzędzi Bridge-utils, jeśli jeszcze tego nie zrobiłeś:

sudo apt install Bridge-utils

Następnie za pomocą programu brctl możemy stworzyć potrzebny nam most. Aby to zrobić, użyj następujących poleceń:

sudo brctl addbr most0
$ Sudo pokaż adres IP
$ sudo addif most0 eth0

Pierwsze polecenie dodaje urządzenie mostkowe br0, drugim trzeba określić, który interfejs sieciowy jest głównym połączeniem z siecią zewnętrzną, w moim przypadku jest to eth0. I ostatnim poleceniem łączymy most br0 z eth0.

Teraz musisz dodać kilka linii do ustawień sieciowych, aby wszystko uruchomiło się automatycznie po uruchomieniu systemu. Aby to zrobić, otwórz plik /etc/network/interfaces i dodaj w nim następujące linie:

sudo gedit /etc/network/interfaces

pętla zwrotna
auto lo most0
pętla zwrotna iface lo inet
iface most0 inet dhcp
most_porty eth0

Po dodaniu ustawień zrestartuj sieć:

sudo systemctl uruchom ponownie sieć

Teraz instalacja i konfiguracja KVM została całkowicie zakończona i możesz stworzyć swoją pierwszą maszynę wirtualną. Następnie możesz wyświetlić dostępne mosty za pomocą polecenia:

Tworzenie maszyn wirtualnych KVM

Konfiguracja Ubuntu KVM została zakończona i możemy teraz zacząć z niej korzystać. Najpierw spójrzmy na listę istniejących maszyn wirtualnych:

virsh -c qemu:///lista systemowa

To jest puste. Maszynę wirtualną możesz utworzyć poprzez terminal lub w interfejsie graficznym. Aby utworzyć za pomocą terminala, użyj polecenia virt-install. Najpierw przejdźmy do folderu libvirt:

cd /var/lib/libvirt/boot/

Aby zainstalować CentOS, polecenie będzie wyglądać następująco:

sudo virt-install\
--virt-type=kvm \
--nazwa centos7\
--ram 2048\
--vcpus=2 \
--os-wariant=rhel7 \
--hvm\
--cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-DVD-1511.iso \
--network=most=br0,model=wirtio \
--grafika vnc\
--ścieżka dysku=/var/lib/libvirt/images/centos7.qcow2,rozmiar=40,bus=virtio,format=qcow2

Przyjrzyjmy się bliżej, co oznaczają parametry tego polecenia:

  • typ virt- rodzaj wirtualizacji, w naszym przypadku kvm;
  • nazwa- nazwa nowego samochodu;
  • Baran- ilość pamięci w megabajtach;
  • vcpus- liczba rdzeni procesora;
  • wariant os- rodzaj systemu operacyjnego;
  • CDROM- obraz instalacyjny systemu;
  • most sieciowy- most sieciowy, który skonfigurowaliśmy wcześniej;
  • grafika- sposób uzyskania dostępu do interfejsu graficznego;
  • ścieżka dysku- adres nowego dysku twardego dla tej maszyny wirtualnej;

Po zakończeniu instalacji maszyny wirtualnej możesz sprawdzić parametry połączenia VNC za pomocą polecenia:

sudo virsh vncdisplay centos7

Teraz możesz wprowadzić otrzymane dane do swojego klienta VNC i połączyć się z maszyną wirtualną nawet zdalnie. W przypadku Debiana polecenie będzie nieco inne, ale wszystko wygląda podobnie:

Przejdź do folderu ze zdjęciami:

cd /var/lib/libvirt/boot/

W razie potrzeby możesz pobrać obraz instalacyjny z Internetu:

sudo wget https://mirrors.kernel.org/debian-cd/current/amd64/iso-dvd/debian-8.5.0-amd64-DVD-1.iso

Następnie utwórzmy maszynę wirtualną:

sudo virt-install\
--virt-type=kvm \
--name=debina8 \
--ram=2048\
--vcpus=2 \
--os-variant=debian8 \
--hvm\
--cdrom=/var/lib/libvirt/boot/debian-8.5.0-amd64-DVD-1.iso \
--network=most=most0,model=wirtio \
--grafika vnc\
--ścieżka dysku=/var/lib/libvirt/images/debian8.qcow2,rozmiar=40,bus=virtio,format=qcow2

Teraz spójrzmy jeszcze raz na listę dostępnych maszyn:

virsh -c qemu:///lista systemowa

Aby uruchomić maszynę wirtualną, możesz użyć polecenia:

sudo virsh uruchom nazwę komputera

Zatrzymać:

sudo virsh nazwa maszyny zamykającej

Aby przejść do trybu uśpienia:

sudo virsh zawiesić nazwę komputera

Uruchomić ponownie:

sudo virsh uruchom ponownie nazwę komputera

sudo virsh zresetuj nazwę komputera

Aby całkowicie usunąć maszynę wirtualną:

sudo virsh zniszcz nazwę maszyny

Tworzenie maszyn wirtualnych w GUI\

Jeśli masz dostęp do interfejsu graficznego, nie ma potrzeby korzystania z terminala, możesz skorzystać z pełnego interfejsu graficznego menedżera maszyn wirtualnych Virtual Manager. Program można uruchomić z menu głównego:

Aby utworzyć nową maszynę, kliknij ikonę z ikoną monitora. Następnie musisz wybrać obraz ISO swojego systemu. Możesz także użyć prawdziwego napędu CD/DVD:

Na kolejnym ekranie wybierz ilość pamięci, która będzie dostępna dla maszyny wirtualnej, a także liczbę rdzeni procesora:

Na tym ekranie musisz wybrać rozmiar dysku twardego, który będzie dostępny w Twoim komputerze:

W ostatnim kroku kreatora musisz sprawdzić, czy ustawienia urządzenia są prawidłowe, a także wpisać jego nazwę. Musisz także określić mostek sieciowy, przez który urządzenie będzie łączyć się z siecią:

Następnie maszyna będzie gotowa do użycia i pojawi się na liście. Możesz go uruchomić za pomocą zielonego trójkąta na pasku narzędzi menedżera.

wnioski

W tym artykule przyjrzeliśmy się, jak zainstalować KVM Ubuntu 16.04, sprawdziliśmy, jak w pełni przygotować to środowisko do pracy, a także jak tworzyć maszyny wirtualne i z nich korzystać. Jeśli masz jakieś pytania, zadaj je w komentarzach!

Na zakończenie wykład Yandexa na temat tego, czym jest wirtualizacja w Linuksie:

Wydanie WordPress 5.3 ulepsza i rozszerza edytor bloków wprowadzony w WordPress 5.0 o nowy blok, bardziej intuicyjną interakcję i lepszą dostępność. Nowe funkcje w edytorze […]

Po dziewięciu miesiącach rozwoju dostępny jest pakiet multimedialny FFmpeg 4.2, który zawiera zestaw aplikacji i zbiór bibliotek do operacji na różnych formatach multimedialnych (nagrywanie, konwertowanie i […]

  • Nowe funkcje w Linux Mint 19.2 Cinnamon

    Linux Mint 19.2 to wersja długoterminowego wsparcia, która będzie obsługiwana do 2023 roku. Zawiera zaktualizowane oprogramowanie i zawiera ulepszenia oraz wiele nowych […]

  • Wydano dystrybucję Linux Mint 19.2

    Prezentowane jest wydanie dystrybucji Linux Mint 19.2, drugiej aktualizacji gałęzi Linux Mint 19.x, powstałej na bazie pakietu Ubuntu 18.04 LTS i obsługiwanej do 2023 roku. Dystrybucja jest w pełni kompatybilna [...]

  • Dostępne są nowe wersje usług BIND, które zawierają poprawki błędów i ulepszenia funkcji. Nowe wydania można pobrać ze strony pobierania na stronie dewelopera: […]

    Exim to agent przesyłania komunikatów (MTA) opracowany na Uniwersytecie w Cambridge do użytku w systemach Unix podłączonych do Internetu. Jest on swobodnie dostępny zgodnie z [...]

    Po prawie dwóch latach rozwoju zaprezentowano wydanie ZFS na Linuksie 0.8.0, implementację systemu plików ZFS, zaprojektowaną jako moduł dla jądra Linuksa. Moduł został przetestowany z jądrami Linuksa od 2.6.32 do […]

  • WordPress 5.1.1 naprawia lukę, która pozwala przejąć kontrolę nad Twoją witryną
  • Grupa zadaniowa IETF (Internet Engineering Task Force), która opracowuje protokoły i architekturę internetową, ukończyła dokument RFC dla protokołu ACME (Automatic Certyfikat Management Environment) […]

    Kontrolowany przez społeczność urząd certyfikacji non-profit Let’s Encrypt, który bezpłatnie udostępnia każdemu certyfikaty, podsumował wyniki minionego roku i opowiedział o planach na 2019 rok. […]

  • Została wydana nowa wersja Libreoffice – Libreoffice 6.2