Windows.  Vírusy.  Prenosné počítače.  internet.  Kancelária.  Verejné služby.  Vodiči

V Ubuntu sa ako nástroje na správu odporúča používať hypervízor KVM (správca virtuálnych strojov) a knižnicu libvirt. Libvirt obsahuje sadu softvérových rozhraní API a vlastných ovládacích aplikácií virtuálne stroje(VM) virt-manager (grafické rozhranie, GUI) alebo virsh ( príkazový riadok,CLI). Ako alternatívnych manažérov môžete použiť convirt (GUI) alebo convirt2 (WEB rozhranie).

V súčasnosti je na Ubuntu oficiálne podporovaný iba hypervízor KVM. Tento hypervízor je súčasťou kódu operačného jadra Linuxové systémy. Na rozdiel od Xen, KVM nepodporuje paravirtualizáciu, čo znamená, že ak ju chcete použiť, váš CPU musí podporovať technológie VT. Môžete skontrolovať, či váš procesor podporuje túto technológiu spustením príkazu v termináli:

Ak sa ako výsledok zobrazí nasledujúca správa:

INFO: /dev/kvm existuje Je možné použiť zrýchlenie KVM

To znamená, že KVM bude fungovať bez problémov.

Ak ste pri výstupe dostali nasledujúcu správu:

Váš procesor nepodporuje rozšírenia KVM Zrýchlenie KVM sa NEDÁ použiť

potom môžete stále používať virtuálny stroj, ale bude oveľa pomalší.

    Nainštalujte 64-bitové systémy ako hostia

    Prideľte hosťovským systémom viac ako 2 GB pamäte RAM

Inštalácia

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

Ide o inštaláciu na server bez X, t.j. neobsahuje grafické rozhranie. Môžete ho nainštalovať pomocou príkazu

Sudo apt-get install virt-manager

Potom sa v ponuke objaví položka „Správca virtuálnych strojov“ a s vysokou pravdepodobnosťou bude všetko fungovať. Ak sa stále vyskytnú nejaké problémy, budete si musieť prečítať pokyny na anglickej wiki.

Vytvorenie systému pre hostí

Postup vytvorenia hosťa pomocou GUI celkom jednoduché.

Ale textový režim sa dá popísať.

qcow2

Pri vytváraní systému pomocou GUI as pevný disk Navrhuje sa buď vybrať existujúci obrazový súbor alebo blokové zariadenie, alebo vytvoriť nový súbor s nespracovanými (RAW) dátami. Toto však zďaleka nie je jediný dostupný formát súboru. Zo všetkých typov diskov uvedených v man qemu-img je najflexibilnejší a najmodernejší qcow2. Podporuje snímky, šifrovanie a kompresiu. Musí byť vytvorený pred vytvorením nového hosťa.

Qemu-img create -o preallocation=metadata -f qcow2 qcow2.img 20G

Podľa toho istého muža qemu-img predbežné pridelenie metadát (-o preallocation=metadata) robí disk spočiatku trochu väčším, ale poskytuje lepší výkon, keď obraz potrebuje rásť. V skutočnosti v v tomto prípade Táto možnosť vám umožní vyhnúť sa nepríjemnej chybe. Vytvorený obrázok spočiatku zaberá menej ako megabajt miesta a podľa potreby rastie na špecifikovanú veľkosť. Hosťujúci systém by mal okamžite vidieť túto konečnú špecifikovanú veľkosť, avšak počas fázy inštalácie môže vidieť skutočnú veľkosť súboru. Prirodzene, nainštalujte pevný disk 200 kB vo veľkosti odmietne. Chyba nie je špecifická pre Ubuntu, objavuje sa aspoň v RHEL.

Okrem typu obrazu si následne môžete zvoliť spôsob jeho pripojenia – IDE, SCSI alebo Virtio Disk. Výkon bude závisieť od tejto voľby diskový subsystém. Neexistuje žiadna jednoznačná správna odpoveď, ktorú si musíte vybrať na základe úlohy, ktorá bude pridelená hosťovskému systému. Ak je hosťovský systém vytvorený „na pozeranie“, potom bude stačiť akákoľvek metóda. Vo všeobecnosti je to I/O, ktoré je prekážkou virtuálneho stroja, takže pri vytváraní vysoko zaťaženého systému je potrebné pristupovať k tomuto problému čo najzodpovednejšie.

Kontrola podpory hypervízora

Skontrolujeme, či server podporuje virtualizačné technológie:

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

Ako odpoveď by ste mali dostať niečo takéto:

flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp nonstop_lm reptsf aperfm perf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 popcnt aes lahf_lm epb tpr_shadow vnmi flexpriority ept vpid dtherm ida arat

V opačnom prípade prejdite do systému BIOS, nájdite možnosť povoliť technológiu virtualizácie (má rôzne názvy, napríklad Intel Virtualization Technology alebo Virtualization) a povoľte ju - nastavte hodnotu Povoliť.

Kompatibilitu môžete skontrolovať aj pomocou príkazu:

* ak príkaz vráti chybu "kvm-ok príkaz nenájdený", nainštalujte príslušný balík: apt-get nainštalovať cpu-checker.

Ak vidíme:

INFO: /dev/kvm existuje
Je možné použiť zrýchlenie KVM

To znamená, že existuje hardvérová podpora.

Príprava servera

Pre naše pohodlie si vytvoríme adresár, do ktorého budeme ukladať dáta pre KVM:

mkdir -p /kvm/(vhdd,iso)

*vytvoria sa dva adresáre: /kvm/vhdd(pre virtuálne pevné disky) A /kvm/iso(pre obrázky iso).

Nastavíme čas:

\cp /usr/share/zoneinfo/Europe/Moskva /etc/localtime

* tento príkaz nastavuje zónu v súlade s moskovským časom.

ntpdate ru.pool.ntp.org

* Synchronizujeme s časovým serverom.

Inštalácia a spustenie

Nainštalujeme KVM a potrebné nástroje na správu.

a) Ubuntu do verzie 18.10

apt-get install qemu-kvm libvirt-bin virtinst libosinfo-bin

b) Ubuntu po 18.10:

apt-get install qemu-kvm libvirt-daemon-system libvirt-bin virtinst libosinfo-bin

* Kde qemu-kvm- hypervízor; libvirt-bin— riadiaca knižnica hypervízora; virtinst— nástroj na správu virtuálnych strojov; libosinfo-bin— pomôcka na zobrazenie zoznamu možností operačného systému, ktoré možno použiť ako hosťujúce operačné systémy.

Nakonfigurujme službu tak, aby sa spustila automaticky:

systemctl povoliť libvirtd

Spustíme libvirtd:

systemctl spustiť libvirtd

Nastavenie siete

Virtuálne stroje môžu pracovať za NAT (čo je KVM server) alebo prijímať IP adresy lokálna sieť— na to musíte nakonfigurovať sieťový most. To posledné nakonfigurujeme.

Používanie vzdialené pripojenie, pozorne skontrolujte nastavenia. Ak sa vyskytne chyba, spojenie sa ukončí.

Nainštalujte bridge-utils:

apt-get install bridge-utils

a) nastavenie siete v starších verziách Ubuntu (/etc/network/interfaces).

Ak chcete nakonfigurovať sieťové rozhrania, otvorte konfiguračný súbor:

vi /etc/network/interfaces

A dajme to v tejto forme:

#iface eth0 inet static
# adresa 192.168.1.24
# maska ​​siete 255.255.255.0
#brána 192.168.1.1
# dns-nameservers 192.168.1.1 192.168.1.2

Auto br0
iface br0 inet static
adresa 192.168.1.24
sieťová maska ​​255.255.255.0
brána 192.168.1.1
dns-nameservers 192.168.1.1 192.168.1.2
bridge_ports eth0
bridge_fd 9
most_ahoj 2
bridge_maxage 12
bridge_stp off

* kde všetko, čo je zakomentované, sú staré nastavenia mojej siete; br0— názov rozhrania vytvoreného mosta; eth0— existujúce sieťové rozhranie, cez ktoré bude most fungovať.

Reštartujte sieťovú službu:

systemctl reštartovanie siete

b) nastavenie siete v nových verziách Ubuntu (netplan).

vi /etc/netplan/01-netcfg.yaml

*v závislosti od verzie systému, konfiguračný súbor yaml môže mať iný názov.

Poďme to do formy:

sieť:
verzia: 2
renderer: sieťový
ethernety:
eth0:
dhcp4: nepravda
dhcp6: nepravda
wakeonlan: pravda

Mosty:
br0:
makaddress: 2c:6d:45:c3:55:a7
rozhrania:
-eth0
adresy:
- 192.168.1.24/24
brána4: 192.168.1.1
mtu: 1500
menné servery:
adresy:
- 192.168.1.1
- 192.168.1.2
parametre:
stp: pravda
oneskorenie dopredu: 4
dhcp4: nepravda
dhcp6: nepravda

*V v tomto príklade vytvoríme rozhranie virtuálneho mosta br0; ako fyzické rozhranie používame eth0.

Aplikujeme nastavenia siete:

Trváme na presmerovaní sieťovej prevádzky (aby virtuálne stroje so sieťovým rozhraním NAT mali prístup na internet):

vi /etc/sysctl.d/99-sysctl.conf

Pridajte riadok:

net.ipv4.ip_forward=1

Použiť nastavenia:

sysctl -p /etc/sysctl.d/99-sysctl.conf

Vytvorenie virtuálneho stroja

Ak chcete vytvoriť prvý virtuálny počítač, zadajte nasledujúci príkaz:

virt-install -n VM1\
--autostart\
--noautoconsole\
--network=bridge:br0 \
--ram 2048 --arch=x86_64 \
--vcpus=2 --hostiteľ cpu --check-cpu \
--cesta k disku=/kvm/vhdd/VM1-disk1.img,veľkosť=16 \
--cdrom /kvm/iso/ubuntu-18.04.3-server-amd64.iso \
--graphics vnc,listen=0.0.0.0,password=vnc_password \
--os-type linux --os-variant=ubuntu18.04 --boot cdrom,hd,menu=on

  • VM1 - Meno vytváraný stroj;
  • automatické spustenie — povoliť automatické spustenie virtuálneho počítača spolu so serverom KVM;
  • noautoconsole — nepripojí sa ku konzole virtuálneho počítača;
  • sieť - typ siete. V tomto príklade vytvárame virtuálny stroj s rozhraním „sieťového mosta“. Na vytvorenie interné rozhranie s typom NAT enter --network=predvolené,model=virtio;
  • baran - objem RAM;
  • vcpus — počet virtuálnych procesorov;
  • disk - virtuálny disk: cesta — cesta k disku; veľkosť — jeho objem;
  • cdrom - virtuálny disk s obrazom systému;
  • grafika parametre na pripojenie k virtuálnemu stroju pomocou grafickej konzoly (v tomto príklade používame vnc); počúvaj - na akej adrese sa prijímajú požiadavky vnc (v našom príklade všetky); heslo - heslo na pripojenie pomocou vnc;
  • os-variant — hosťovská izba operačný systém(tím sme dostali celý zoznam osinfo-query os, v tomto príklade nainštalujeme Ubuntu 18.04).

Pripojenie k virtuálnemu stroju

Na počítači, z ktorého plánujeme pracovať s virtuálnymi strojmi, si stiahnite klienta VNC, napríklad TightVNC, a nainštalujte ho.

Na serveri zadáme:

virsh vncdisplay VM1

príkaz ukáže, na ktorom porte VNC beží pre stroj VM1. mal som:

* :1 znamená, že musíte pridať 1 k 5900 - 5900 + 1 = 5901.

Spustite program TightVNC Viewer, ktorý sme nainštalovali, a zadajte údaje o pripojení:

Kliknite na Pripojte sa. Keď sa zobrazí výzva na zadanie hesla, zadajte heslo, ktoré ste zadali pri vytváraní virtuálneho počítača ( vnc_password). K virtuálnemu stroju sa pripojíme pomocou vzdialenej konzoly.

Ak si nepamätáme heslo, otvoríme nastavenie virtuálneho počítača príkazom:

A nájdeme riadok:



* v tomto príklade sa na prístup k virtuálnemu stroju používa heslo 12345678 .

Správa virtuálneho počítača z príkazového riadku

Príklady príkazov, ktoré môžu byť užitočné pri práci s virtuálnymi strojmi.

1. Získajte zoznam vytvorených strojov:

virsh list --all

2. Povoľte virtuálny počítač:

virsh start VMname

* Kde VMname— názov vytvoreného stroja.

3. Vypnite virtuálny počítač:

ubuntu-vm-builder je balík vyvinutý spoločnosťou Canonical na uľahčenie vytvárania nových virtuálnych strojov.

Ak ho chcete nainštalovať, zadajte:

apt-get nainštalujte ubuntu-vm-builder

Píšem túto poznámku, aby som to demonštroval inštalácia krok za krokom a nastavenie virtuálneho stroja založeného na KVM v systéme Linux. Predtým som písal o virtualizácii, kde som použil nádherný .

Teraz stojím pred otázkou prenájmu dobrý server s veľkým množstvom pamäte RAM a objemné pevný disk. Nechcem však spúšťať projekty priamo na hostiteľskom počítači, takže ich rozdelím na samostatné malé virtuálne servery so systémom Linux alebo Docker kontajnery (o nich budem hovoriť v inom článku).

Všetky moderné cloud hostingy fungujú na rovnakom princípe, t.j. hostiteľ zapnutý dobrá žľaza zdvihne hromadu virtuálne servery, ktoré sme zvykli nazývať VPS/VDS, a distribuuje ich používateľom, prípadne tento proces automatizuje (ahoj, DigitalOcean).

KVM (kernel-based virtual machine) je softvér pre Linux, ktorý využíva hardvér procesorov kompatibilných s x86 na prácu s virtualizačnou technológiou Intel VT/AMD SVM.

Inštalácia KVM

Všetky machinácie s vytvorením virtuálneho stroja vykonám na OS Ubuntu 16.04.1 LTS. Ak chcete skontrolovať, či vaše procesy podporujú virtualizáciu hardvéru založené na Intel VT/AMD SVM, vykonajte:

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

Ak terminál nie je prázdny, potom je všetko v poriadku a KVM je možné nainštalovať. Ubuntu oficiálne podporuje iba hypervízor KVM (súčasť linuxového jadra) a ako nástroj na jeho správu odporúča používať knižnicu libvirt, čo urobíme ďalej.

Podporu virtualizácie hardvéru v Ubuntu môžete skontrolovať aj pomocou príkazu:

Ak uspejete, uvidíte niečo takéto:

INFO: /dev/kvm existuje Je možné použiť zrýchlenie KVM

Nainštalujte balíky pre prácu s KVM:

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

Ak máte prístup k grafický shell systém, môžete nainštalovať správcu GUI libvirt:

Sudo apt-get install virt-manager

Používanie virt-manager je pomerne jednoduché (nie ťažšie ako VirtualBox), takže v tomto článku budeme hovoriť o možnosti konzoly na inštaláciu a konfiguráciu virtuálneho servera.

Inštalácia a konfigurácia virtuálneho servera

V konzolovej verzii inštalácie, konfigurácie a správy systému je nevyhnutným nástrojom virsh utility (doplnok ku knižnici libvirt). Ona má veľké množstvo možnosti a parametre, podrobný popis možno získať takto:

Muž virsh

alebo zavolajte štandardnú "pomoc":

Virsh pomoc

Pri práci s virtuálnymi servermi vždy dodržiavam nasledujúce pravidlá:

  1. nechávam si obrázky iso OS v adresári /var/lib/libvirt/boot
  2. Obrazy virtuálneho počítača ukladám do adresára /var/lib/libvirt/images
  3. Každému novému virtuálnemu stroju explicitne pridelím jeho vlastnú statickú IP adresu cez DHCP server hypervízor.

Začnime inštalovať prvý virtuálny stroj (64-bitový server 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 stiahnutí obrázka spustite inštaláciu:

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 \ --cesta k disku=/var/lib/libvirt/images/ubuntu1604. img,veľkosť=20,zbernica=virtio

Preložením všetkých týchto parametrov do „ľudského jazyka“ sa ukáže, že vytvárame virtuálny stroj s OS Ubuntu 16.04, 1024 MB RAM, 1 procesor, štandardná sieťová karta (virtuálny stroj bude pristupovať na internet, akoby vďaka NAT ), 20 GB HDD.

Stojí za to venovať pozornosť parametrom --os-variant, informuje hypervízor, ktorému OS by sa mali nastavenia prispôsobiť.
Zoznam dostupných možností OS možno získať spustením príkazu:

Osinfo-dotaz os

Ak takýto nástroj nie je vo vašom systéme, nainštalujte:

Sudo apt-get install libosinfo-bin

Po spustení inštalácie sa v konzole zobrazí nasledujúca správa:

Inštalácia domény stále prebieha. Môžete opätovným pripojením ku konzole dokončite proces inštalácie.

Toto je bežná situácia, budeme pokračovať v inštalácii cez VNC.
Pozrime sa, ktorý port bol vytvorený na našom virtuálnom stroji (napríklad v nasledujúcom termináli):

Virsh dumpxml ubuntu1604... ...

Port 5900, na miestnej adrese 127.0.0.1. Ak sa chcete pripojiť k VNC, musíte použiť presmerovanie portov cez ssh. Predtým, ako to urobíte, skontrolujte, či je v démone ssh povolené presmerovanie tcp. Ak to chcete urobiť, prejdite do nastavení sshd:

Cat /etc/ssh/sshd_config | grep AllowTcpForwarding

Ak sa nič nenašlo alebo vidíte:

AllowTcpForwarding č

Potom upravíme konfiguráciu na

AllowTcpForwarding áno

a reštartujte sshd.

Nastavenie presmerovania portov

Spustíme príkaz na lokálnom počítači:

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

Tu sme nakonfigurovali presmerovanie ssh portu z lokálneho portu 5900 na port servera 5900. Teraz sa môžete pripojiť k VNC pomocou ľubovoľného klienta VNC. Preferujem UltraVNC kvôli jeho jednoduchosti a pohodliu.

Po úspešnom pripojení sa na obrazovke zobrazí štandardné uvítacie okno na spustenie inštalácie Ubuntu:

Po dokončení inštalácie a zvyčajnom reštarte sa zobrazí prihlasovacie okno. Po prihlásení určíme IP adresu novovytvoreného virtuálneho počítača, aby sme ho neskôr zmenili na statický:

Ifconfig

Pamätáme si a ideme k hostiteľskému stroju. Vytiahneme mac adresu „sieťovej“ karty virtuálneho počítača:

Virsh dumpxml ubuntu1604 | grep "mac adresa"

Zapamätajme si našu mac adresu:

Úprava sieťových nastavení hypervízora:

Sudo virsh net-edit predvolene

Hľadáme DHCP a pridáme toto:

Malo by to vyzerať asi takto:

Aby sa nastavenia prejavili, musíte reštartovať server DHCP hypervízora:

Sudo virsh net-destroy predvolená sudo virsh net-start predvolená služba sudo libvirt-bin reštart

Potom virtuálny počítač reštartujeme, teraz bude mať vždy priradenú IP adresu - 192.168.122.131.

Existujú aj iné spôsoby, ako nastaviť statickú IP pre virtuálny počítač, napríklad priamou úpravou sieťových nastavení v hosťujúcom systéme, ale tu je to čokoľvek, po čom vaše srdce túži. Práve som ukázal možnosť, ktorú radšej používam.

Ak sa chcete pripojiť k terminálu virtuálneho počítača, spustite:

Ssh 192.168.122.131

Auto je pripravené na boj.

Virsh: zoznam príkazov

Vidieť beh virtuálnych hostiteľov(všetky dostupné je možné získať pridaním --all):

Sudo virsh zoznam

Hostiteľa môžete reštartovať:

Sudo virsh reštartujte $VM_NAME

Zastavte virtuálny počítač:

Sudo virsh stop $VM_NAME

Vykonajte zastavenie:

Sudo virsh znič $VM_NAME

Sudo virsh štart $VM_NAME

Zakázať:

Sudo virsh vypnutie $VM_NAME

Pridať do automatického spustenia:

Automatické spustenie sudo virsh $VM_NAME

Veľmi často je potrebné klonovať systém, aby ho bolo možné v budúcnosti použiť ako rámec pre iné virtuálne operačné systémy, používa sa na to utilita virt-clone.

Virt-klon --pomoc

Klonuje existujúci virtuálny stroj a mení údaje citlivé na hostiteľa, napríklad mac adresu. Heslá, súbory a ďalšie informácie špecifické pre používateľa v klone zostávajú rovnaké. Ak bola IP adresa na klonovanom virtuálnom stroji zaregistrovaná manuálne, môžu nastať problémy s prístupom SSH ku klonu v dôsledku konfliktu (2 hostitelia s rovnakou IP).

Okrem inštalácie virtuálneho stroja cez VNC je možné použiť aj X11Forwarding cez utilitu virt-manager. V systéme Windows na to môžete použiť napríklad Xming a PuTTY.

Vydanie WordPress 5.3 zlepšuje a rozširuje editor blokov predstavený vo WordPress 5.0 o nový blok, intuitívnejšiu interakciu a vylepšenú dostupnosť. Nové funkcie v editore […]

Po deviatich mesiacoch vývoja je k dispozícii multimediálny balík FFmpeg 4.2, ktorý obsahuje sadu aplikácií a kolekciu knižníc pre operácie s rôznymi multimediálnymi formátmi (nahrávanie, konvertovanie a […]

  • Nové funkcie v Linux Mint 19.2 Škorica

    Linux Mint 19.2 je dlhodobá podpora, ktorá bude podporovaná do roku 2023. Dodáva sa s aktualizovaným softvér a obsahuje vylepšenia a mnoho nových […]

  • Vydaná distribúcia Linux Mint 19.2

    Prezentované vydanie distribučnej súpravy Linux Mint 19.2, druhej aktualizácie vetvy Linux Mint 19.x, vytvorenej na dávke Založené na Ubuntu 18.04 LTS a podporované do roku 2023. Distribúcia je plne kompatibilná [...]

  • K dispozícii sú nové vydania služby BIND, ktoré obsahujú opravy chýb a vylepšenia funkcií. Nové vydania si môžete stiahnuť zo stránky na stiahnutie na webovej stránke vývojára: […]

    Exim je agent prenosu správ (MTA) vyvinutý na Univerzite v Cambridge na použitie v systémoch Unix pripojených k internetu. Je voľne dostupný v súlade s [...]

    Po takmer dvoch rokoch vývoja je predstavené vydanie ZFS na Linuxe 0.8.0, implementácia súborový systém ZFS, navrhnutý ako modul pre jadro Linuxu. Prevádzka modulu bola testovaná s Linuxové jadrá od 2.6.32 do […]

  • WordPress 5.1.1 opravil chybu zabezpečenia, ktorá by vám mohla umožniť prevziať kontrolu nad vašou stránkou.
  • IETF (Internet Engineering Task Force), ktorá je zodpovedná za vývoj internetových protokolov a architektúry, dokončila vytvorenie RFC pre protokol ACME (Automatic Certificate Management Environment) […]

    Komunitou kontrolovaná nezisková certifikačná autorita Let’s Encrypt, ktorá poskytuje certifikáty všetkým bezplatne, zhrnula výsledky uplynulého roka a hovorila o plánoch na rok 2019. […]

  • Vyšiel von nová verzia Libreoffice – Libreoffice 6.2
  • Osobne je pre mňa najjednoduchšie predstaviť si KVM (Kernel-based Virtual Machine) ako úroveň abstrakcie nad technológiami virtualizácie hardvéru Intel VT-x a AMD-V. Vezmeme stroj s procesorom, ktorý podporuje jednu z týchto technológií, nainštalujeme na tento stroj Linux, nainštalujeme KVM do Linuxu a ako výsledok dostaneme možnosť vytvárať virtuálne stroje. Zhruba takto funguje cloud hosting, napríklad Amazon Web Services. Spolu s KVM sa niekedy používa aj Xen, ale diskusia o tejto technológii presahuje rámec tohto príspevku. Na rozdiel od technológií virtualizácie kontajnerov, napríklad Docker, vám KVM umožňuje spustiť ľubovoľný operačný systém ako hosťovský systém, ale má tiež O Vyššie náklady na virtualizáciu.

    Poznámka: Kroky popísané nižšie som testoval na Ubuntu Linux 14.04, ale teoreticky budú v mnohých ohľadoch rovnako pravdivé ako pre ostatné Verzie Ubuntu a ďalšie Linuxové distribúcie. Všetko by malo fungovať na pracovnej ploche aj na serveri, ku ktorému sa pristupuje cez SSH.

    Inštalácia KVM

    Skontrolujeme, či náš procesor podporuje Intel VT-x alebo AMD-V:

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

    Ak sa niečo zahreje, znamená to, že je to podporované a môžete ísť ďalej.

    Inštalácia KVM:

    aktualizácia sudo apt-get
    sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils

    Čo sa zvyčajne ukladá, kde:

    • /var/lib/libvirt/boot/ - ISO obrazy na inštaláciu hosťujúcich systémov;
    • /var/lib/libvirt/images/ — obrazy pevných diskov hosťujúcich systémov;
    • /var/log/libvirt/ - tu by ste mali hľadať všetky protokoly;
    • /etc/libvirt/ - adresár s konfiguračnými súbormi;

    Teraz, keď je KVM nainštalovaný, poďme vytvoriť náš prvý virtuálny stroj.

    Vytvorenie prvého virtuálneho počítača

    Ako hosťujúci systém som si vybral FreeBSD. Stiahnite si ISO obraz systému:

    cd /var/lib/libvirt/boot/
    sudo wget http://ftp.freebsd.org/ path/ to/ some-freebsd-disk.iso

    Virtuálne stroje sú vo väčšine prípadov spravované pomocou nástroja virsh:

    sudo virsh --pomoc

    Pred spustením virtuálneho počítača budeme musieť zhromaždiť nejaké ďalšie informácie.

    Pozeráme sa na zoznam dostupných sietí:

    sudo virsh net-list

    Zobrazenie informácií o konkrétnej sieti (pomenovaná predvolená):

    sudo virsh net-info predvolene

    Pozrime sa na zoznam dostupných optimalizácií pre hosťujúce operačné systémy:

    sudo virt-install --os-variant list

    Takže teraz vytvoríme virtuálny stroj s 1 CPU, 1 GB RAM a 32 GB miesta na disku, pripojený k predvolenej sieti:

    sudo virt-install\
    --virt-type =kvm\
    --name freebsd10\
    --ram 1024\
    --vcpus=1\
    --os-variant =freebsd8 \
    --hvm\
    --cdrom =/ var/ lib/ libvirt/ boot/ FreeBSD-10.2 -RELEASE-amd64-disc1.iso \
    --sieťová sieť =predvolené,model =virtio \
    --graphics vnc\
    --cesta k disku =/ var/ lib/ libvirt/ images/ freebsd10.img,size =32 ,bus =virtio

    Môžete vidieť:

    VAROVANIE Nedá sa pripojiť ku grafickej konzole: nie je virt-viewer
    nainštalovaný. Nainštalujte si balík „virt-viewer“.

    Inštalácia domény stále prebieha. Môžete sa znova pripojiť ku konzole
    na dokončenie procesu inštalácie.

    To je normálne, tak to má byť.

    Potom sa pozrite na vlastnosti virtuálneho počítača vo formáte XML:

    sudo virsh dumpxml freebsd10

    Najkompletnejšie informácie sú uvedené tu. Patrí sem napríklad MAC adresa, ktorú budeme neskôr potrebovať. Zatiaľ zisťujeme informácie o VNC. V mojom prípade:

    Pomocou vášho obľúbeného klienta (osobne používam Rammina) sa prihlasujeme cez VNC, v prípade potreby pomocou SSH port forwardingu. Prejdeme priamo do inštalačného programu FreeBSD. Potom je všetko ako obvykle - Ďalej, Ďalej, Ďalej, dostaneme nainštalovaný systém.

    Základné príkazy

    Poďme sa teraz pozrieť na základné príkazy pre prácu s KVM.

    Získanie zoznamu všetkých virtuálnych počítačov:

    sudo virsh list --all

    Získanie informácií o konkrétnom virtuálnom stroji:

    sudo virsh dominfo freebsd10

    Spustite virtuálny stroj:

    sudo virsh štart freebsd10

    Zastaviť virtuálny stroj:

    sudo virsh vypnutie freebsd10

    Sotva pribijete virtuálny stroj (napriek názvu, toto nie vymazanie):

    sudo virsh zničiť freebsd10

    Reštartujte virtuálny počítač:

    sudo virsh reboot freebsd10

    Klonovať virtuálny stroj:

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

    Povoliť/zakázať automatické spustenie:

    sudo virsh autostart freebsd10
    sudo virsh autostart --zakázať freebsd10

    Spustenie virsh v dialógovom režime (všetky príkazy v dialógovom režime - ako je popísané vyššie):

    sudo virsh

    Úpravou vlastností virtuálneho stroja v XML, vrátane tu môžete zmeniť limit na množstvo pamäte atď.:

    sudo virsh upraviť freebsd10

    Dôležité! Komentáre z upraveného XML sú bohužiaľ odstránené.

    Keď je virtuálny počítač zastavený, veľkosť disku sa dá zmeniť aj takto:

    zmena veľkosti sudo qemu-img /var/ lib/ libvirt/ images/ freebsd10.img -2G
    sudo qemu-img info /var/lib/libvirt/images/freebsd10.img

    Dôležité! Vášmu hosťujúcemu OS sa pravdepodobne nebude páčiť, že sa disk náhle zväčší alebo zmenší. V najlepšom prípade sa spustí v núdzovom režime s návrhom na prerozdelenie disku. Pravdepodobne by ste to nemali chcieť robiť. Môže byť oveľa jednoduchšie vytvoriť nový virtuálny stroj a migrovať naň všetky údaje.

    Zálohovanie a obnovenie sú pomerne jednoduché. Výstup dumpxml stačí niekam uložiť, aj obraz disku a následne obnoviť. na YouTube sa podarilo nájsť video S ukážkou tohto procesu naozaj nie je všetko ťažké.

    Nastavenia siete

    Zaujímavá otázka - ako zistiť, akú IP adresu dostal virtuálny stroj po spustení? KVM to robí šikovným spôsobom. Nakoniec som napísal tento skript v Pythone:

    #!/usr/bin/env python3

    # skript virt-ip.py
    # (c) 2016 Aleksander Alekseev
    # http://site/

    import sys
    import re
    import os
    podproces importu
    z xml .etree importujte ElementTree

    def eprint(str) :
    print(str, súbor = sys.stderr)

    if len(sys.argv)< 2 :
    eprint("POUŽITIE: " + sys .argv [ 0 ] + " " )
    eprint("Príklad: " + sys .argv [ 0 ] + " freebsd10" )
    sys.exit(1)

    if os .geteuid () != 0 :
    eprint("CHYBA: mali by ste byť root")
    eprint("Tip: spustite `sudo " + sys .argv [ 0 ] + " ...`" ) ;
    sys.exit(1)

    ak podproces .call ( "ktorý arping 2>&1 >/dev/null", shell = Pravda ) != 0 :
    eprint("CHYBA: arping sa nenašiel" )
    eprint( "Tip: spustite `sudo apt-get install arping`")
    sys.exit(1)

    Doména = sys.argv[1]

    ak nie, znova .match ("^*$" , doména):
    eprint( "CHYBA: neplatné znaky v názve domény")
    sys.exit(1)

    Domout = podproces .check_output ("virsh dumpxml " +doména+" || true" ,
    škrupina = pravda)
    domout = domout.decode("utf-8").strip()

    if domout == "" :
    # chybové hlásenie už vytlačil dumpxml
    sys.exit(1)

    Doc = ElementTree.fromstring(domout)

    # 1. zoznam všetkých sieťových rozhraní
    # 2. spustiť `arping` na každom rozhraní paralelne
    #3.grep odpovede
    cmd = "(ifconfig | cut -d " " -f 1 | grep -E "." | " + \
    "xargs -P0 -I IFACE arping -i IFACE -c 1 () 2>&1 | " + \
    "grep "bytes from") || true"

    pre dieťa v doc.iter() :
    if child.tag == "mac" :
    macaddr = dieťa.attrib["adresa"]
    macout = podproces .check_output (cmd .format (macaddr) ,
    škrupina = pravda)
    print(macout.decode("utf-8"))

    Skript pracuje s predvolenou sieťou aj premostenou sieťou, ktorej konfiguráciu zvážime neskôr. V praxi je však oveľa pohodlnejšie nakonfigurovať KVM tak, aby hosťujúcim systémom prideľoval vždy rovnaké IP adresy. Ak to chcete urobiť, upravte nastavenia siete:

    sudo virsh net-edit predvolene

    ... niečo takéto:

    >



    >

    Po vykonaní týchto zmien


    >

    ... a nahraďte ho niečím ako:




    >

    Reštartujeme hosťovský systém a skontrolujeme, či dostal IP cez DHCP zo smerovača. Ak chcete, aby mal hosťovský systém statickú IP adresu, táto je nakonfigurovaná ako zvyčajne v rámci samotného hosťujúceho systému.

    program virt-manager

    Tiež by vás mohol zaujímať program virt-manager:

    sudo apt-get install virt-manager
    sudo usermod -a -G libvirtd USERNAME

    Takto vyzerá jeho hlavné okno:

    Ako môžete vidieť, virt-manager nie je len GUI pre virtuálne stroje bežiace lokálne. S jeho pomocou môžete spravovať virtuálne stroje bežiace na iných hostiteľoch, ako aj prezerať si krásnu grafiku v reálnom čase. Osobne považujem za obzvlášť výhodné vo virt-manager, že nemusíte prehľadávať konfigurácie, aby ste zistili, ktorý port VNC beží na konkrétnom hosťujúcom systéme. Virtuálny počítač jednoducho nájdete v zozname, dvakrát kliknete a získate prístup k monitoru.

    S pomocou virt-manager je tiež veľmi pohodlné robiť veci, ktoré by inak vyžadovali pracnú úpravu XML súborov a v niektorých prípadoch aj spustenie dodatočné príkazy. Napríklad premenovanie virtuálnych strojov, nastavenie afinity CPU a podobné veci. Mimochodom, použitie afinity CPU výrazne znižuje vplyv hlučných susedov a vplyv virtuálnych strojov na hostiteľský systém. Vždy, keď je to možné, používajte ho.

    Ak sa rozhodnete použiť KVM ako náhradu za VirtualBox, majte na pamäti, že nebudú môcť medzi sebou zdieľať hardvérovú virtualizáciu. Aby KVM fungovalo na vašom desktope, budete musieť nielen zastaviť všetky virtuálne stroje vo VirtualBox a Vagrant, ale aj reštartovať systém. Osobne považujem KVM za oveľa pohodlnejší ako VirtualBox, prinajmenšom preto, že nevyžaduje spustenie príkazu nastavenie sudo /sbin/rcvboxdrv po každej aktualizácii jadra funguje adekvátne s Unity a vo všeobecnosti umožňuje skryť všetky okná.

    Protoss: Ruský požiarny preukaz.

    Ak si všimnete chybu, vyberte časť textu a stlačte Ctrl+Enter
    ZDIEĽAŤ: