DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chcesz czytać Dzwon?
Bez spamu

Próbowałem wielu interfejsów zarządzania siecią i żaden z nich nie był wystarczająco dobry, jak virt-manager.

Wiesz, jestem jednym z tych gości, którzy mieli VMware, gdzie 90% kontroli można kliknąć.

Moje pytania:

1) Czy jest jakieś „interaktywne” narzędzie CLI, takie jak mc (dowódca północy) lub coś, jak zarządzać KVM? (WŁ./WYŁ. VM, zwiększenie pamięci, ponowne uruchomienie maszyn wirtualnych, dodanie wirtualnego sprzętu, dodanie nowych dysków itp.)

2) Czy mógłbyś mi polecić jakiś rodzaj zarządzania interfejsem sieciowym dla KVM na debian squeeze? Czy widziałeś VMware Server 2? Istnieje kontrola sieci. Wiem, że był powolny, ale jest ok, gdy jesteś gdzieś bez terminala. (na przykład na Androidzie z przeglądarką internetową) Próbowałem wielu z nich, ale nic, co próbowałem, nie zadziałało.

5) Jak poprawić bezpieczeństwo KVM? Czy jakiś interfejs WWW może rozwiązać ten problem? (np. księgowość, zarządzanie użytkownikami?)

Wiem, że jest google, wiki, jest długa lista UI dla kvm, ale potrzebuję opinii, doświadczenia od ekspertów lub użytkowników korzystających z KVM. Mam nadzieję, że to nie jest głupie pytanie. Dziękuję wszystkim za odpowiedzi na moje pytania.

Rozwiązania 5 zbierają formularze internetowe dla „KVM — którego zarządzania przez przeglądarkę internetową należy użyć?”

W przypadku menedżera internetowego KVM możesz wypróbować Proxmox. Instrukcje dotyczące Debian Squeeze znajdują się tutaj.

Ma narzędzia wiersza poleceń, ale nie ma tekstowego menu podstawowego.

Powinieneś stworzyć małe środowisko i wypróbować to. Następnie określ cel i zrealizuj go.

Nie ma na to dokładnej odpowiedzi / samouczka. To, jak naprawdę można skonfigurować serwer / klienta KVM, zależy od tego, ile zasobów (procesor / pamięć RAM / pamięć masowa) jest dostępnych.

Ponownie, zależy to od twojego środowiska i na przykład jest to wielowarstwowe / urządzenia. routery, firewall, tablice ip, polityka haseł, polityka dostępu, itp. Nie znam żadnego gui, webbase, które mogłyby obsłużyć je wszystkie, w tym KVM. (OK, chmura jest, ale nie mam z tym żadnego doświadczenia)

Próbowałeś Kimchi? jest najbardziej przyjaznym dla użytkownika open source na KVM i jest sponsorowany przez IBM.

Zastrzeżenie: W ogóle nie jestem związany z Kimchi. Po prostu kocham jego życzliwość.

Eksperci korzystają z CLI. Nie GUI. Dotyczy to nawet doświadczonych administratorów Windows.

Nie, GUI wciąż się poprawiają, ale samodzielne pisanie skryptów jest szybsze i robi to, co chcesz.

Poprawić wydajność w KVM? Wyrzuć to.

To tylko wskazówka eksperta XEN-PV. Tylko LXC (lub inne kontenery) lub rozwiązania oparte na chroot są szybsze.

Przewodnik instalacji KVM może nie być bardzo szczegółowy, ale przynajmniej podaje lub dostarcza pomysłów na proces instalacji i konfiguracji.

Istnieje nowy system zarządzania KVM i AV / IT na poziomie przedsiębiorstwa o nazwie Boxilla, który ma wszechstronne i scentralizowane centrum dowodzenia, które maksymalizuje wydajność, łatwość użytkowania i bezpieczeństwo.

Zapewnia możliwość zarządzania wysokowydajnymi KVM, KVM over IP, zwirtualizowanymi punktami końcowymi i różnymi urządzeniami AV / IT w jednym scentralizowanym centrum dowodzenia, umożliwiając administratorom zarządzanie wielowarstwowymi wdrożeniami KVM i AV / IT za pomocą wydajnej sieci i zwykłego użytkownika berło. Znajdziesz na ten temat tutaj: https://www.blackbox.co.uk/gb-gb/page/37929/Solutions-Industries/Technology-Products/KVM-Switching-and-Extension/Centralised-KVM-AV- Manager -Boxilla

Kimchi to oparty na HTML5 interfejs sieciowy dla KVM. Zapewnia łatwy i elastyczny interfejs do tworzenia i zarządzania wirtualnymi maszynami gościa. Kimchi jest zainstalowany i działa jako demon na hoście KVM. Zarządza gośćmi KVM za pomocą libvirt. Interfejs Kimchi obsługuje wszystkie najnowsze wersje przeglądarek z wersją -1, obsługuje również przeglądarki mobilne.

Kimchi można zainstalować w najnowszej wersji RHEL, Fedory, openSUSE i Ubuntu. W tym przewodniku używałem Ubuntu 14.10 jako hosta KVM.

Przed skonfigurowaniem kimchi musisz zainstalować następujące pakiety zależne.

$ sudo apt-get install gcc make autoconf automake gettext git python-cherrypy3 python-cheetah python-libvirt libvirt-bin python-imaging python-pam python-m2crypto python-jsonschema qemu-kvm-ipthonsutil-tool y -ldap python-lxml nfs-common open-iscsi lvm2 xsltproc python-parted nginx firewalld python-guestfs libguestfs-tools python-requests websockify novnc spice-html5 wget

Podczas instalacji pakietów system zapyta Cię o następujące szczegóły.

1. OK w konfiguracji Postfix.

2. Wybierz opcję Witryna internetowa w ogólnym typie konfiguracji poczty.

3. Wpisz swoją nazwę FQDN, a następnie wybierz OK.

Po zainstalowaniu pobierz najnowszą wersję kimchi z github.

$ wget https://github.com/kimchi-project/kimchi/archive/master.zip

Rozpakuj pobrany plik.

$ unzip master.zip $ cd kimchi-master /

Zbuduj kimchi za pomocą następującego polecenia.

$ ./autogen.sh --system

$ make $ sudo make install # Opcjonalne, jeśli działa z drzewa źródeł

$ sudo kimchid --host = 0.0.0.0

Uzyskaj dostęp do kimchi za pomocą przeglądarki internetowej, https: // localhost: 8001. Zostaniesz poproszony o zalogowanie się, użyj poświadczeń systemowych, których zwykle używasz do logowania do systemu.


Po zalogowaniu otrzymasz stronę jak poniżej. To pokazuje listę uruchomionych maszyn wirtualnych gościa na bieżącym hoście, masz przyciski do wykonania zamknięcia, ponownego uruchomienia i połączenia z konsolą, klikając akcję.


Aby utworzyć nowy komputer gościa, kliknij znak + w prawym rogu. Jeśli użyjesz tej opcji do stworzenia maszyny, zostanie to zrobione za pomocą szablonów.


Możesz zarządzać szablonami, odwiedzając menu szablonów. Aby utworzyć nowy szablon, kliknij znak + w prawym rogu. Możesz stworzyć szablon za pomocą obrazów ISO, możesz umieścić obrazy iso w / var / lib / kimchi / isos lub użyć zdalnego.


Możesz zarządzać pulą pamięci, przechodząc do menu pamięci, tam możesz dodać nową pamięć, klikając znak +. Obsługuje dodawanie pamięci Fibre Channel NFS, iSCSI i SCSI.


Siecią można zarządzać przechodząc do menu sieci, można utworzyć nową sieć z siecią izolowaną, NAT i mostkową.


Myślę, że wielu spotkało się z konwencjonalnymi przełącznikami KVM. Skrót „KVM” oznacza „Keyboard Video Mouse”. Urządzenie KVM pozwala, mając tylko jeden zestaw klawiatura + monitor + mysz (KMM), kontrolować kilka komputerów (jednostek systemowych). Innymi słowy bierzemy N jednostek systemowych, łączymy ich wyjścia z K.M.M. do urządzenia KVM i już podłącz prawdziwy monitor, klawiaturę i mysz do samego urządzenia. Przełączając się za pomocą KVM między komputerami, możemy zobaczyć, co dzieje się na ekranie wybranego komputera, a także sterować nim tak, jakbyśmy byli bezpośrednio z nim połączeni.

Jest to wygodne, jeśli do pracy potrzebujemy kilku maszyn, ale dostęp do nich w tym samym czasie nie jest wymagany. Dodatkowo znacznie oszczędza się miejsce – monitory, nawet ciekłokrystaliczne, zajmują dość sporą ilość miejsca na stole. I dużo kosztują. A w stercie klawiatur i myszy na stole możesz szybko się pomylić ...

Zaawansowani czytelnicy będą się sprzeciwiać - skąd takie trudności, skoro komputery są najprawdopodobniej podłączone do tej samej sieci lokalnej i można korzystać z programów zdalnego dostępu wbudowanych w system operacyjny (lub zewnętrznych), np. Terminal Services lub Radmin pod Windows, VNC, ssh pod * nix-podobnymi systemami operacyjnymi. Wszystko się zgadza, ale co zrobić, jeśli musisz np. wejść do BIOS-u swojego komputera lub system operacyjny przestał się ładować, ponieważ zainstalowaliśmy jakiś zły sterownik lub program? A może na komputerze jest zainstalowanych kilka systemów operacyjnych i musieliśmy wybrać inny niż ten, który uruchamia się domyślnie? Ogólnie rzecz biorąc, wszystkie te programy są naprawdę dobre, ale do pewnych granic - o ile system operacyjny komputera działa i potrzebujemy dostępu do komputera tylko po uruchomieniu tego systemu operacyjnego.

Jako przykład przyjrzyjmy się kilku typowym przełącznikom KVM na przykładzie urządzeń firmy.

Specyfikacje urządzenia

CN-6000 obsługuje rozdział uprawnień pomiędzy użytkownikami i pozwala na utworzenie do 64 kont administracyjnych lub użytkowników, z czego do 16 kont może jednocześnie pracować z urządzeniem. Urządzenie posiada wbudowany interfejs WWW do administracji, a jego niewielkie rozmiary pozwalają na umieszczenie go na stole lub zamontowanie (za pomocą specjalnej płyty dołączonej do zestawu) na bocznym stojaku stojaka (możliwość montażu w stojaku 0U). CN-6000 obsługuje aktualizacje oprogramowania układowego przez połączenie Ethernet (z interfejsu internetowego lub natywnego narzędzia). Maksymalna rozdzielczość wideo obsługiwana przez urządzenie to 1600x1200 pikseli.

Tabela podsumowująca specyfikacje:

Wymagania sprzętowe (klient zdalny)Pentium III 1 GHz
InterfejsyKonsola lokalnaKlawiatura1 × Mini-DIN-6 F (fioletowy)
Wideo1 × HDB-15 F (niebieski)
Mysz1 × HDB-15 F (zielony)
System (KVM)1 × SPHD-15 F (żółty)
Port LAN1 × RJ-45 (żeński)
Zasilanie w sieci (zarezerwowane)1 × DB9 (M)
Interfejs zasilania1
Przyciski / PrzełącznikiReset KVM1 × częściowo ukryty przód
Wskaźnikiodżywianie1 × pomarańczowy
zdalne połączenie użytkownika1 × zielony
Sieć LAN 10/100 Mb/s1 × zielony / pomarańczowy
Obsługiwane protokoły10baseT Ethernet i 100baseTX Fast Ethernet. TCP/IP
Rozdzielczości wideoDo 1600 × 1200 60 Hz
Ramametal
Wymiary (długość × szerokość × wysokość)200 × 80 × 25 mm

Przejdźmy do testów.

Dołączona płyta CD zawiera cztery narzędzia:

  • CN6000 Client - program kliencki dla systemu Windows, za pomocą którego można połączyć się ze zdalnym komputerem
  • podobny program kliencki napisany w Javie (format jar)
  • Narzędzie administracyjne CN6000 — Menedżer konfiguracji urządzeń (dla systemu Windows)
  • serwer logów - program, który można skonfigurować do odbierania i przechowywania plików logów z CN-6000

Ponadto w przełącznik KVM wbudowany jest serwer WEB, dzięki czemu do urządzenia można uzyskać dostęp za pośrednictwem przeglądarki internetowej. Ale wrócimy do interfejsu internetowego nieco później, najpierw rozważymy poszczególne narzędzia.

Konfiguracja CN-6000 za pomocą narzędzia administracyjnego.

Program przeznaczony jest do konfiguracji urządzenia, ustawiania haseł dostępu, zabezpieczeń itp.

Kiedy został uruchomiony, nie obyło się bez ciekawostek:

Przy pierwszym uruchomieniu wszystkich narzędzi z dostarczonego dysku należy wprowadzić numer seryjny. Dokumentacja (nawet najnowsza wersja na stronie producenta) mówi, że numer seryjny jest wydrukowany na spodzie obudowy CN-6000. I tak naprawdę jest wydrukowany jakiś numer seryjny, tyle że jest on znacznie krótszy niż wymagają tego programy. Ogólnie rzecz biorąc, trochę cierpiąc, wpisując znaleziony numer seryjny w ten i inny sposób, dodając do niego zera lub spacje i nie osiągając niczego więcej niż pole „Nieprawidłowy numer seryjny”, chciałem już tego dnia zakończyć testowanie urządzenia. Wyjmując płytę CD z CD-ROM-u (włożyłem ją najpierw do napędu CD – musiałem zainstalować oprogramowanie), znalazłem na płycie dziwną naklejkę – okazało się, że to upragniony serial.

Oczywiście teoretycznie dana osoba może zwrócić uwagę na to, co jest napisane lub wklejone na płycie CD, gdy wkłada ją do napędu. Ale ile osób natychmiast zwraca na to uwagę? :) I zastanawiam się, dlaczego konieczne było zapisywanie w dokumentacji celowo nieprawdziwych informacji? Powtarzam - strona zawiera nowszą wersję dokumentacji i ta "literówka" nie została tam poprawiona. Zauważ, że nie jest to ostatnia nieścisłość, która wślizguje się do dokumentacji, więc czasami trzeba działać zgodnie z powiedzeniem „nie wierz własnym oczom”.

Narzędzie administracyjne CN-6000 jest przydatne, ponieważ pozwala znaleźć urządzenie w sieci, nawet jeśli jego adres IP nie należy do podsieci, w której się znajdujemy, wystarczy tylko my (komputer, z którego próbują uzyskać dostęp do CN-6000) były w tym samym segmencie sieci LAN co przełącznik KVM.

Po wpisaniu nazwy użytkownika i hasła przechodzimy do menu konfiguracji urządzenia:

Firma ATEN dobrze podeszła do kwestii bezpieczeństwa urządzenia. Wchodząc po raz pierwszy w konfigurację urządzenia jesteśmy ostrzegani, że fajnie byłoby zmienić standardową nazwę użytkownika i hasło...

W rozdziale Sieć Konfigurowana jest adresacja IP urządzenia, ustawiane są porty zdalnego dostępu do komputerów sterowanych przez CN-6000. A także tutaj możesz podać adres MAC maszyny, na której znajduje się program „Log Server”, który przechowuje pliki logów (zdarzenia) wysyłane z przełącznika KVM (jeśli go nie ustawisz, logi będą przechowywane na KVM i można je zobaczyć z interfejsu internetowego). Tym komputerem (dla serwera dziennika) może być dowolny komputer z systemem Windows i uruchomionym omawianym programem. Jedynym problemem jest to, że komputer musi znajdować się w tym samym segmencie sieci (z grubsza mówiąc, podłączony do tego samego przełącznika) co sam KVM CN-6000, więc użyteczność tej „funkcji” jest wątpliwa.

W zakładce Bezpieczeństwo skonfigurowane są filtry (wg adresów MAC i/lub IP) dostępu do zdalnego ekranu administrowanych komputerów, a także filtr do administrowania samym CN-6000.

W kolejnej zakładce ustawiane są nazwy użytkowników i hasła oraz ich uprawnienia. Co ciekawe, możesz ograniczyć logowanie, aby skonfigurować CN-6000 i korzystać z klienta JAVA. Minimalna długość hasła akceptowana przez narzędzie konfiguracyjne to osiem znaków. Szkoda oczywiście, że hasło nie jest sprawdzane pod kątem „prostoty”, ale nawet sprawdzenie długości hasła wskazuje, że ATEN przywiązuje wagę do bezpieczeństwa.

Ostatnia zakładka pozwala zaktualizować firmware urządzenia, włączyć możliwość jednoczesnego podłączenia do zdalnego komputera dla kilku osób (choć mysz i klawiatura nadal są takie same, z punktu widzenia sterowanego komputera, więc steruje się jednym , inni patrzą ... lub przeszkadzają sobie nawzajem, przeciągając myszką w różnych kierunkach) ... Reakcja na nieprawidłowy proces uwierzytelnienia jest natychmiast konfigurowana, a także włączenie różnych trybów „ukrywania” CN-6000 (brak odpowiedzi na ping i zakaz pokazywania się przy automatycznym wyszukiwaniu urządzeń w sieci lokalnej przez klienta narzędzie lub narzędzie administracyjne).

W tej samej zakładce jest jeszcze jeden element - Zresetuj przy wyjściu... Zakładałbym, że jest to reset do ustawień domyślnych, ale w tym przypadku oznacza to ponowne uruchomienie urządzenia po wyjściu z narzędzia konfiguracyjnego. W przeciwnym razie (jeśli nie zostanie ponownie uruchomiony) nowe ustawienia zostaną zapamiętane, ale nie zostaną zastosowane (do czasu ponownego uruchomienia).

W tym momencie przegląd narzędzia konfiguracyjnego można uznać za kompletny (jeden aspekt zostanie omówiony w sekcji o kliencie Java).

Przejdźmy do interfejsu internetowego.

Konfiguracja przez interfejs WEB

Aby dostać się do interfejsu WWW urządzenia wystarczy w dowolnej przeglądarce wprowadzić adres IP ustawiony na CN-6000.

Warto zauważyć, że przeglądarka od razu przenosi klienta do połączenia przez HTTPS: //, czyli cała dalsza praca odbywa się za pośrednictwem bezpiecznego połączenia SSL.

Po wpisaniu loginu i hasła, ikony po lewej i na górze interfejsu WWW stają się aktywne (można na nie kliknąć).

Górne ikony otwierają sekcje związane z konfiguracją CN-6000. W większości wszystkie opcje są takie same, jak opcje w interfejsie narzędzia Windows. Narzędzie administratora ale są pewne różnice. Np. w tym oknie (konfiguracja adresów sieciowych) możemy ustawić tylko adres IP urządzenia, ale nie możemy określić maski podsieci i bramy. Poza tym ustawienie adresu IP działa jakoś krzywo – nadal nie mogłem zmienić adresu IP urządzenia z poziomu interfejsu webowego (za pomocą narzędzia Admin Tools zmieniało się to bez problemów).

Oto, co możesz zobaczyć w narzędziu administratora, gdy próbujesz zmienić adres za pomocą interfejsu internetowego z 10.0.0.9 na 192.168.0.1. Z jakiegoś powodu maska ​​podsieci zmieniła się ze standardowej 255.255.255.0 na 10.0.0.9, a urządzenie (po restarcie) przez 5 sekund odpowiada na 192.168.0.1, a potem zaczyna odpowiadać na 10.0.0.9 (zupełnie zapomina o 192.168 .0.1). Może to być błąd w obecnej wersji oprogramowania (1.5.141), ale ta wersja w czasie testów była najnowszą, którą można było znaleźć na stronie internetowej firmy.

Podczas testów nie znaleziono więcej błędów związanych z interfejsem sieciowym.

Rozdział Bezpieczeństwo powtarza podobną sekcję w Narzędziu administracyjnym.

Podobna sytuacja z sekcją Menedżer użytkownika

... i sekcja Dostosowywanie.

Ikona Dziennik, znajdujący się po lewej stronie interfejsu WWW, umożliwia podgląd zdarzeń, które wystąpiły podczas pracy urządzenia. W tym przypadku zrzut ekranu odzwierciedla logi, które pojawiły się podczas testowania urządzenia przez program Nessus.

Jak wspomniano powyżej, logi mogą być zrzucane na zewnętrzny serwer logów (ale z pewnymi ograniczeniami co do jego lokalizacji).

Dla mnie osobiście najłatwiej jest myśleć o KVM (maszynie wirtualnej opartej na jądrze) jako takim poziomie abstrakcji w stosunku do technologii wirtualizacji sprzętowej Intel VT-x i AMD-V. Bierzemy maszynę z procesorem obsługującym jedną z tych technologii, instalujemy Linuksa na tej maszynie, instalujemy KVM w Linuksie, w efekcie otrzymujemy możliwość tworzenia maszyn wirtualnych. Tak mniej więcej działają usługi hostingu w chmurze, na przykład Amazon Web Services. Wraz z KVM czasami używany jest również Xen, ale omówienie tej technologii wykracza poza zakres tego postu. W przeciwieństwie do technologii wirtualizacji kontenerów, na przykład tego samego Dockera, KVM umożliwia uruchamianie dowolnego systemu operacyjnego jako systemu gościa, ale ma również b O Wyższe koszty wirtualizacji.

Notatka: Opisane poniżej kroki zostały przetestowane przeze mnie na Ubuntu Linux 14.04, ale teoretycznie będą one w dużej mierze prawdziwe zarówno dla innych wersji Ubuntu, jak i innych dystrybucji Linuksa. Wszystko powinno działać zarówno na pulpicie, jak i na serwerze, do którego dostęp uzyskuje się przez SSH.

Instalowanie KVM

Sprawdź, czy nasz procesor obsługuje Intel VT-x lub AMD-V:

grep -E "(vmx | svm)" / proc / cpuinfo

Jeśli coś się nagrzeje, to jest obsługiwane i możesz przejść dalej.

Zainstaluj KVM:

aktualizacja sudo apt-get
sudo apt-get zainstaluj qemu-kvm libvirt-bin virtinst bridge-utils

Jakie są zwyczaje przechowywania, gdzie:

  • / var / lib / libvirt / boot / - obrazy ISO do instalacji systemów-gości;
  • /var/lib/libvirt/images/ - obrazy dysków twardych systemów-gości;
  • / var / log / libvirt / - tutaj należy przeszukać wszystkie logi;
  • /etc/libvirt/ - katalog z plikami konfiguracyjnymi;

Po zainstalowaniu KVM utwórzmy naszą pierwszą maszynę wirtualną.

Stworzenie pierwszej maszyny wirtualnej

Jako system gościa wybrałem FreeBSD. Pobieranie obrazu ISO systemu:

cd / var / lib / libvirt / boot /
sudo wget http: // ftp.freebsd.org/ ścieżka / do / some-freebsd-disk.iso

W większości przypadków do zarządzania maszynami wirtualnymi służy narzędzie virsh:

sudo virsh --help

Przed uruchomieniem maszyny wirtualnej musimy zebrać dodatkowe informacje.

Patrzymy na listę dostępnych sieci:

sudo virsh net-list

Przeglądanie informacji o określonej sieci (o nazwie domyślnej):

sudo virsh domyślna informacja o sieci

Spójrzmy na listę dostępnych optymalizacji dla systemu gościa:

sudo virt-install --os-lista wariantów

Tak więc teraz tworzymy maszynę wirtualną z 1 CPU, 1 GB RAM i 32 GB miejsca na dysku, podłączoną do domyślnej sieci:

sudo wirtualna instalacja \
--virt-type = kvm \
--nazwa freebsd10 \
--ram 1024 \
--vcpus = 1 \
--os-wariant = freebsd8 \
--hvm \
--cdrom = / var / lib / libvirt / boot / FreeBSD-10.2 -RELEASE-amd64-disc1.iso \
--network network = domyślna, model = virtio \
--grafika vnc \
--disk path = / var / lib / libvirt / images / freebsd10.img, size = 32, bus = virtio

Możesz zobaczyć:

OSTRZEŻENIE Nie można połączyć się z konsolą graficzną: virt-viewer nie
zainstalowany. Zainstaluj pakiet „virt-viewer”.

Trwa instalacja domeny. Możesz ponownie połączyć się z konsolą
aby zakończyć proces instalacji.

To normalne i powinno być.

Następnie przyjrzymy się właściwościom maszyny wirtualnej w formacie XML:

sudo virsh dumpxml freebsd10

Oto najbardziej kompletne informacje. W tym na przykład adres MAC, którego będziemy potrzebować dalej. Jak na razie znajdujemy informacje o VNC. W moim przypadku:

Z pomocą twojego ulubionego klienta (ja osobiście używam Ramminy) przechodzimy do VNC, używając w razie potrzeby przekierowania portów SSH. Przechodzimy od razu do instalatora FreeBSD. Potem wszystko jest jak zwykle - Next, Next, Next, dostajemy zainstalowany system.

Podstawowe polecenia

Przyjrzyjmy się teraz podstawowym poleceniom do pracy z KVM.

Pobieranie listy wszystkich maszyn wirtualnych:

lista sudo virsh --all

Uzyskiwanie informacji o konkretnej maszynie wirtualnej:

sudo virsh dominfo freebsd10

Uruchom maszynę wirtualną:

sudo virsh start freebsd10

Zatrzymaj maszynę wirtualną:

sudo virsh wyłączanie freebsd10

Ciężko przybić maszynę wirtualną (pomimo nazwy, to nie kasować):

sudo virsh zniszcz freebsd10

Uruchom ponownie maszynę wirtualną:

sudo virsh restart freebsd10

Sklonuj maszynę wirtualną:

sudo virt-clone -o freebsd10 -n freebsd10-clone \
--file / var / lib / libvirt / images / freebsd10-clone.img

Włącz / wyłącz automatyczne uruchamianie:

sudo virsh autostart freebsd10
sudo virsh autostart --wyłącz freebsd10

Uruchomienie virsha w trybie dialogowym (wszystkie komendy są w trybie dialogowym - jak opisano powyżej):

sudo virsh

Edycja właściwości maszyny wirtualnej w XML, w tym tutaj można zmienić limit ilości pamięci itp.

sudo virsh edytuj freebsd10

Ważny! Niestety komentarze z edytowanego pliku XML są usuwane.

Gdy maszyna wirtualna jest zatrzymana, można również zmienić rozmiar dysku:

sudo qemu-img zmiana rozmiaru / var / lib / libvirt / images / freebsd10.img -2G
sudo qemu-img info / var / lib / libvirt / images / freebsd10.img

Ważny! Twój system operacyjny najprawdopodobniej nie spodoba się, że dysk nagle stanie się większy lub mniejszy. W najlepszym przypadku uruchomi się w trybie awaryjnym z propozycją ponownego podziału dysku. Są szanse, że nie powinieneś tego chcieć. Znacznie łatwiej może być uruchomić nową maszynę wirtualną i przenieść na nią wszystkie dane.

Tworzenie kopii zapasowych i przywracanie jest dość proste. Wystarczy zapisać gdzieś wyjście dumpxml, a także obraz dysku, a następnie je przywrócić. Na YouTube znalazłem film z demonstracją tego procesu wszystko jest naprawdę proste.

Ustawienia sieci

Ciekawym pytaniem jest jak ustalić, jaki adres IP maszyna wirtualna otrzymała po uruchomieniu? KVM robi to w podchwytliwy sposób. Skończyło się na napisaniu skryptu takiego w Pythonie:

#! / usr / bin / env python3

# skrypt virt-ip.py
# (c) 2016 Aleksander Alekseev
# http: // strona /

system importu
importuj ponownie
importuj system
import podprocesu
z xml .etree import ElementTree

def eprint (str):
print (str, plik = sys .stderr)

jeśli len (sys .argv)< 2 :
eprint ("UŻYCIE:" + sys .argv [0] + " " )
eprint („Przykład:” + sys .argv [0] + „freebsd10”)
sys .exit (1)

jeśli os .geteuid ()! = 0:
eprint ("BŁĄD: powinieneś być rootem")
eprint ("Wskazówka: run` sudo "+ sys .argv [0] +" ... `");
sys .exit (1)

jeśli podproces .call ( "które arping 2> i 1> / dev / null", powłoka = Prawda)! = 0:
eprint ("BŁĄD: nie znaleziono arpingu")
e-druk ( "Wskazówka: uruchom` sudo apt-get install arping` ")
sys .exit (1)

Domena = sys .argv [1]

jeśli nie ponownie .match ("^ * $", domena):
e-druk ( „BŁĄD: nieprawidłowe znaki w nazwie domeny”)
sys .exit (1)

Domout = podproces .check_output ("virsh dumpxml" + domena + "|| true",
powłoka = Prawda)
domout = domout.decode ("utf-8") .strip ()

if domout == "":
# komunikat o błędzie już wydrukowany przez dumpxml
sys .exit (1)

Dokument = ElementDrzewo.fromstring (domout)

# 1.Wymień wszystkie interfejsy sieciowe
# 2.uruchom `arping` na każdym interfejsie równolegle
# 3.grep odpowiedzi
cmd = "(ifconfig | cut -d" "-f 1 | grep -E". "|" + \
"xargs -P0 -I IFACE arp -i IFACE -c 1 () 2> & 1 |" + \
"grep" bajty z ") || prawda"

dla dziecka w doc.iter ():
if child.tag == "mac":
macaddr = dziecko.attrib ["adres"]
macout = subprocess .check_output (cmd .format (macaddr),
powłoka = Prawda)
drukuj (macout.decode ("utf-8"))

Skrypt działa zarówno z siecią domyślną, jak i siecią zmostkowaną, których konfiguracja zostanie omówiona dalej. Jednak w praktyce dużo wygodniej jest skonfigurować KVM tak, aby zawsze przypisywał te same adresy IP do systemów gości. Aby to zrobić, edytuj ustawienia sieciowe:

sudo virsh net-edit domyślnie

... coś takiego:

>



>

Po wprowadzeniu tych zmian


>

... i zamień na coś takiego:




>

Ponownie uruchamiamy system gościa i sprawdzamy, czy otrzymał adres IP przez DHCP z routera. Jeśli chcesz, aby gość miał statyczny adres IP, jest to konfigurowane jak zwykle w samym gościu.

Program Virt-manager

Możesz być również zainteresowany programem virt-manager:

sudo apt-get install virt-manager
sudo usermod -a -G libvirtd NAZWA UŻYTKOWNIKA

Tak wygląda jego główne okno:

Jak widać, virt-manager to nie tylko GUI dla maszyn wirtualnych działających lokalnie. Za jego pomocą można zarządzać wirtualnymi maszynami działającymi na innych hostach, a także oglądać piękne wykresy w czasie rzeczywistym. Osobiście uważam za szczególnie wygodne w virt-manager, że nie trzeba szukać w konfiguracjach, na którym porcie działa VNC konkretnego systemu gościa. Wystarczy znaleźć maszynę wirtualną na liście, kliknąć dwukrotnie i uzyskać dostęp do monitora.

Bardzo wygodne jest również używanie virt-manager do wykonywania czynności, które w innym przypadku wymagałyby pracochłonnej edycji plików XML i, w niektórych przypadkach, dodatkowych poleceń. Na przykład zmiana nazw maszyn wirtualnych, konfiguracja koligacji procesora i tym podobne. Nawiasem mówiąc, korzystanie z koligacji procesora znacznie zmniejsza wpływ hałaśliwych sąsiadów i wpływ maszyn wirtualnych na system hosta. Zawsze używaj go, gdy tylko jest to możliwe.

Jeśli zdecydujesz się użyć KVM jako zamiennika VirtualBox, pamiętaj, że nie mogą oni udostępniać między sobą wirtualizacji sprzętu. Aby KVM działał na twoim komputerze, będziesz musiał nie tylko zatrzymać wszystkie maszyny wirtualne w VirtualBox i Vagrant, ale także ponownie uruchomić system. Osobiście uważam, że KVM jest znacznie wygodniejszy niż VirtualBox, przynajmniej dlatego, że nie wymaga wykonywania polecenia Konfiguracja sudo / sbin / rcvboxdrv po każdej aktualizacji jądra działa odpowiednio z Unity i generalnie pozwala ukryć wszystkie okna.

Piszę ten post, aby zademonstrować krok po kroku instalację i konfigurację maszyny wirtualnej w Linuksie opartej na KVM. Wcześniej pisałem już o wirtualizacji, gdzie wykorzystałem tę cudowną.

Teraz mam do czynienia z kwestią wynajęcia dobrego serwera z dużą ilością pamięci RAM i dużym dyskiem twardym. Ale nie chcę uruchamiać projektów bezpośrednio na maszynie-hoście, więc ograniczę je do oddzielnych małych serwerów wirtualnych z systemem Linux OS lub kontenerami dockera (o nich w innym artykule).

Wszystkie nowoczesne usługi hostingu w chmurze działają na tej samej zasadzie, tj. hoster na dobrym sprzęcie podnosi kilka wirtualnych serwerów, które zwykliśmy nazywać VPS/VDS, i dystrybuuje je do użytkowników lub automatyzuje ten proces (hello, DigitalOcean).

KVM (maszyna wirtualna oparta na jądrze) to oprogramowanie Linux, które wykorzystuje sprzęt procesorowy zgodny z x86 do uruchamiania technologii wirtualizacji Intel VT / AMD SVM.

Instalowanie KVM

Przeprowadzę wszystkie oszustwa, aby stworzyć maszynę wirtualną na Ubuntu 16.04.1 LTS. Aby sprawdzić, czy Twoje procesy obsługują wirtualizację sprzętu w oparciu o Intel VT / AMD SVM, uruchom:

Grep -E "(vmx | svm)" / proc / cpuinfo

Jeśli terminal nie jest pusty, wszystko jest w porządku i można zainstalować KVM. Ubuntu tylko oficjalnie wspiera hypervisor KVM (zawarty w jądrze Linux) i zaleca używanie biblioteki libvirt jako narzędzia do zarządzania, co zrobimy dalej.

Możesz także sprawdzić obsługę wirtualizacji sprzętu w Ubuntu za pomocą polecenia:

Jeśli się powiedzie, zobaczysz coś takiego:

INFO: / dev / kvm istnieje Można użyć akceleracji KVM

Zainstaluj pakiety do pracy z KVM:

Sudo apt-get zainstaluj qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Jeśli masz dostęp do powłoki graficznej systemu, możesz zainstalować menedżera GUI libvirt:

Sudo apt-get install virt-manager

Korzystanie z virt-manager jest dość proste (nie trudniejsze niż VirtualBox), więc ten artykuł skupi się na konsolowej wersji instalacji i konfiguracji serwera wirtualnego.

Instalacja i konfiguracja serwera wirtualnego

W konsolowej wersji instalacji, konfiguracji i zarządzania systemem niezastąpionym narzędziem jest narzędzie virsh (dodatek do biblioteki libvirt). Posiada dużą liczbę opcji i parametrów, szczegółowy opis można uzyskać w następujący sposób:

Człowiek virsh

lub zadzwoń do standardowej "pomocy":

Pomoc dla Virsh

Podczas pracy z serwerami wirtualnymi zawsze przestrzegam następujących zasad:

  1. Przechowuję obrazy ISO systemu operacyjnego w katalogu / var / lib / libvirt / boot
  2. Przechowuję obrazy maszyn wirtualnych w katalogu / var / lib / libvirt / images
  3. Jawnie przypisuję każdej nowej maszynie wirtualnej jej własny statyczny adres IP za pośrednictwem serwera DHCP hipernadzorcy.

Zacznijmy instalację pierwszej maszyny wirtualnej (serwer 64-bitowy Ubuntu 16.04 LTS):

Cd / var / lib / libvirt / boot sudo wget http://releases.ubuntu.com/16.04/ubuntu-16.04.1-desktop-amd64.iso

Po pobraniu obrazu rozpoczynamy instalację:

Sudo virt-install \ --virt-type = kvm \ --name ubuntu1604 \ --ram 1024 \ --vcpus = 1 \ --os-variant = ubuntu16.04 \ --hvm \ --cdrom = / var / lib / libvirt / boot / ubuntu-16.04.1-server-amd64.iso \ --network network = default, model = virtio \ --graphics vnc \ --disk path = / var / lib / libvirt / images / ubuntu1604. img, rozmiar = 20, autobus = virtio

Przekładając te wszystkie parametry na „ludzki język”, okazuje się, że tworzymy maszynę wirtualną z systemem operacyjnym Ubuntu 16.04, 1024 MB RAM, 1 procesor, standardową kartę sieciową (maszyna wirtualna pójdzie do internetu jakby z powodu NAT), dysk twardy 20 GB.

Warto zwrócić uwagę na parametr --os-wariant, informuje hypervisor, dla którego systemu operacyjnego należy dostosować ustawienia.
Listę dostępnych opcji systemu operacyjnego można uzyskać, uruchamiając polecenie:

Osinfo-zapytanie os

Jeśli w twoim systemie nie ma takiego narzędzia, zainstaluj:

Sudo apt-get zainstaluj libosinfo-bin

Po uruchomieniu instalacji w konsoli pojawi się następujący komunikat:

Trwa instalacja domeny. Możesz ponownie połączyć się z konsolą, aby zakończyć proces instalacji.

To normalna sytuacja, będziemy kontynuować instalację przez VNC.
Sprawdzamy, który port został podniesiony z naszej maszyny wirtualnej (na przykład w sąsiednim terminalu):

Virsh dumpxml ubuntu1604 ... ...

Port 5900, pod adresem lokalnym 127.0.0.1. Aby połączyć się z VNC, musisz użyć przekierowania portów przez ssh. Zanim to zrobisz, upewnij się, że przekazywanie tcp jest włączone w demonie ssh. Aby to zrobić, przejdź do ustawień sshd:

Kot / etc / ssh / sshd_config | grep Zezwalaj na przekazywanie Tcp

Jeśli nic nie zostało znalezione lub widzisz:

Zezwól na przekazywanie Tcp nie

Następnie edytujemy konfigurację na

Zezwalaj na przekazywanie Tcp tak

i uruchom ponownie sshd.

Konfiguracja przekierowania portów

Polecenie wykonujemy na lokalnej maszynie:

Ssh -fN -l login -L 127.0.0.1:5900:localhost:5900 server_ip

Tutaj skonfigurowaliśmy przekierowanie portów ssh z portu lokalnego 5900 na port serwera 5900. Teraz możesz połączyć się z VNC za pomocą dowolnego klienta VNC. Wolę UltraVNC ze względu na jego prostotę i wygodę.

Po udanym połączeniu na ekranie pojawi się standardowy ekran powitalny do rozpoczęcia instalacji Ubuntu:

Po zakończeniu instalacji i zwykłym ponownym uruchomieniu pojawi się okno logowania. Po zalogowaniu ustalamy adres IP nowo utworzonej maszyny wirtualnej, aby później uczynić ją statyczną:

Ifconfig

Zapamiętujemy i idziemy do maszyny hosta. Wyciągamy adres mac karty „sieciowej” maszyny wirtualnej:

Virsh dumpxml ubuntu1604 | grep "adres MAC"

Pamiętamy nasz adres mac:

Edycja ustawień sieciowych hiperwizora:

Sudo virsh domyślna edycja sieciowa

Szukamy DHCP i dodajemy to:

Powinieneś otrzymać coś takiego:

Aby ustawienia zaczęły obowiązywać, należy ponownie uruchomić serwer DHCP hipernadzorcy:

Sudo virsh net-destroy domyślna sudo virsh net-start domyślna usługa sudo restart libvirt-bin

Następnie ponownie uruchamiamy maszynę wirtualną, teraz zawsze będzie do niej przypisany adres IP - 192.168.122.131.

Istnieją inne sposoby ustawienia statycznego adresu IP na maszynie wirtualnej, na przykład poprzez bezpośrednią edycję ustawień sieciowych w systemie gościa, ale tutaj jest to, czego pragnie twoje serce. Właśnie pokazałem opcję, z której sam wolę korzystać.

Aby połączyć się z terminalem maszyny wirtualnej, uruchom:

Ssh 192.168.122.131

Pojazd jest gotowy do bitwy.

Virsh: lista poleceń

Aby zobaczyć działające hosty wirtualne (wszystkie dostępne można uzyskać, dodając --all):

Lista virsh sudo

Możesz ponownie uruchomić hosta:

Sudo virsh zrestartuj $ VM_NAME

Zatrzymaj maszynę wirtualną:

Przystanek Sudo virsh $ VM_NAME

Wykonaj zatrzymanie:

Sudo virsh niszczy $VM_NAME

Sudo virsh start $VM_NAME

Odłączenie:

Zamknięcie Sudo virsh $ VM_NAME

Dodaj do autostartu:

Sudo virsh autostart $VM_NAME

Bardzo często wymagane jest sklonowanie systemu w celu wykorzystania go w przyszłości jako szkieletu dla innych wirtualnych systemów operacyjnych, do tego celu używają narzędzia virt-clone.

Wirtualny klon --pomoc

Klonuje istniejącą maszynę wirtualną i zmienia dane wrażliwe na hosta, na przykład adres mac. Hasła, pliki i inne informacje specyficzne dla użytkownika w klonie pozostają takie same. Jeśli adres IP został ręcznie zarejestrowany na sklonowanej maszynie wirtualnej, mogą wystąpić problemy z dostępem SSH do klonu z powodu konfliktu (2 hosty z tym samym adresem IP).

Oprócz instalacji maszyny wirtualnej przez VNC, jest to również możliwe dzięki X11Forwarding za pośrednictwem narzędzia virt-manager. Na przykład w systemie Windows możesz do tego użyć Xming i PuTTY.

DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chcesz czytać Dzwon?
Bez spamu