KVM

A Libvirt QEMU és KVM verem beállítása a Debianon

A Libvirt QEMU és KVM verem beállítása a Debianon
A QEMU-KVM alapú virtualizáció a Linux alapú virtualizációs verem középpontjában áll. Ingyenes és nyílt forráskódú, és az iparág egyik legelterjedtebb virtualizációs technológiája. A legtöbb felhőszolgáltató jó okkal használja a KVM-et. Nagyon hatékony, mégis nagyon biztonságos virtualizációs verem, és nem kell összevissza licencelni. Ez nem jellemző a Hyper-V vagy a VMWare tipikus beállítására. A kompromisszum az, hogy a beállítás nagyon összetett lehet, különösen a tapasztalatlan felhasználók számára. Ez a cikk az olvasó számára ezt a bonyolultságot hivatott csökkenteni.

Ennek ellenére próbáljuk meg beállítani saját KVM hipervizorunkat egy Debian 9 szerveren .

A VT-x vagy AMD-V kiterjesztések engedélyezése

Ideális esetben tiszta Linux telepítésre lesz szüksége egy olyan gépen (nem virtuális gépen), amely meglehetősen modern CPU-val rendelkezik. A legtöbb modern Intel CPU támogatja a VT-x kiterjesztéseket, és hasonlóan az AMD rendelkezik AMD-V kiterjesztéseivel. Ezek a bővítmények a CPU szilíciumába épített „fejlesztések”, amelyek gyorsabb és biztonságosabb virtualizációt tesznek lehetővé. Engedélyeznie kell ezeket a kiterjesztéseket az alaplap BIOS / UEFI menüjéből. További információkért olvassa el az alaplap kézikönyvét.

Ha nem akarja elrontani tökéletesen működő Linux munkaállomását, használhatja a virtuális gépet a felhőben a kísérletek futtatásához. A DigitalOcean például olyan virtuális gépeket kínál, amelyek beágyazott virtualizációt engedélyeztek. Ez lehetővé teszi a virtuális gépek futtatását a felhőben tárolt virtuális gépen belül (ezt beágyazott virtualizációnak hívják). Nyilvánvaló, hogy ez egy nagyon nem hatékony módszer a hipervizor gyakorlatias futtatására, de kísérletként nagyon jól fog működni. Ügyeljen arra, hogy legalább 4 GB memóriát és több mint 2 CPU-t szerezzen be.

Miután engedélyezte az említett kiterjesztéseket, az lscpu futtatásával és a Virtualizáció bejegyzés megkeresésével ellenőrizheti:

$ lscpu
… .
Virtualizáció: VT-x
… .

Most, hogy a bővítmények lehetővé tették, hogy tovább haladjunk a veremben.

A KVM és a QEMU telepítése

A KVM (vagy kernel alapú virtuális gép) néhány Linux kernelmodulból áll, amelyek kihasználják a korábban engedélyezett CPU kiterjesztéseket. A QEMU viszont egy csomó userland programból áll, amelyek emulációs képességeket biztosítanak számunkra. Önálló szoftverként a QEMU használható az egyik architektúrából származó programok futtatására, például az ARM, a másikra, például az x86_64, és fordítva. Bármelyik futtatására használható egyetlen bináris fájltól a teljes operációs rendszerig.

Természetesen csak az x86_64 operációs rendszerek virtualizálására fogjuk használni az x86_64 platformon. Ehhez csak egyetlen csomagra van szükségünk:

$ sudo apt install qemu-kvm

A futtatással ellenőrizheti, hogy a csomag betöltötte-e az összes szükséges modult:

$ lsmod | grep kvm
kvm_intel 200704 0
kvm 598016 1 kvm_intel
irqbypass 16384 1 kvm

Elméletileg ennyi kell. De hamarosan rájössz, hogy ez praktikus. A virtuális gépek rendkívül összetettek, és szoftverkövetőre van szükségünk a különféle igények, például a hálózatépítés, a fájlrendszer-kezelés stb. Kezeléséhez, meglehetősen automatizált (és skálázható módon). Ehhez szükségünk van a Libvirt virtualizációs könyvtárra / démonra.

A Libvirt telepítése

A Libvirt a virtualizációs verem lényegi része. A libvirtd démon virtualizációval kapcsolatos szolgáltatásokat futtat a háttérben. Szolgáltatások, amelyek olyan kéréseket hallgatnak meg, mint a „virtuális gép létrehozása”, a „virtuális gép megsemmisítése”, a „hálózat létrehozása” stb., És azokat az alapvető Linux segédprogramokkal (például qemu bináris fájlokkal, iptables stb.) Hajtják végre.

A Libvirt nagyon általános, és KVM vendégek, LXC tárolók és Xen virtualizációs verem kezelésére használható. Egyelőre csak a Libvirtre koncentrálunk a KVM vendégei számára. A Libvirtd olyan API-t mutat be, amelyet GUI alkalmazások, például virt-manager vagy oVirt, vagy parancssori eszközök, például virt-install, virsh stb. Írhatunk akár saját egyedi klienseket is, amelyek ugyanazt a szabványos API-t használják.  A dolgok szabványosítása érdekében a parancssori eszközöket fogjuk használni, mint például a virsh és a virt-install.

Telepítsük ezeket az eszközöket:

$ apt install libvirt-clients libvirt-daemon-system virtinst

Szükségünk lesz egy másik libguestfs-tools csomagra is, amely segít a vendég virtuális gép merevlemezeinek és fájlrendszereinek szerkesztésében.

Nagy! Most már telepítettük a teljes verem és tudjuk, hogyan van felépítve az architektúra. A libvirt (és a kapcsolódó eszközök) használatához vegye fel a felhasználót a libvirt-qemu és a libvirt csoportokba.

$ sudo usermod -aG libvirt
$ sudo usermod -aG libvirt-qemu

Vagy futtassa a parancsokat root felhasználóként.

Virsh és az alapértelmezett hálózat indítása

A virsh parancssori segédprogram sokat fog használni a virtuális gépek kezelésénél. Egyszerűen beírhatja a virsh parancsot, és beléphet a virsh parancssori felületébe, vagy beírhatja a virsh parancsot [Opciók] a szokásos héjadról. Menjen végig a virsh help kimenetén, amikor elakad valamilyen virtuális géphez kapcsolódó művelet.

Az első virsh parancs, amelyet használunk, meghívja az alapértelmezett hálózatot, amelyhez a virtuális gép csatlakozni tud:

A $ virsh net-autostart alapértelmezett
$ virsh net-start alapértelmezett

Ez elindítja az alapértelmezett hálózatot, és gondoskodik arról, hogy automatikusan elinduljon, amikor a gazdagép újraindul. Az alapértelmezett hálózat részleteinek ellenőrzéséhez használja a következő parancsot:

$ virsh net-dumpxml alapértelmezett

alapértelmezett
3d723dc6-49a4-4f73-bf6d-623d6b46b099












Az xml fájl megmutatja a lehetséges IP-címek tartományát és azt, hogy miként fognak kommunikálni a külvilággal. Alapvetően a forgalom egy NAT-on keresztül érkezik hozzájuk, és nem lesznek a gazdagép külső hálózatának részei. A Bridge Networking használatával minden virtuális gép kiszolgáltatható a gazdagép LAN-jának.

Virtuális gép indításához

A virtuális gép elindításához szükségünk van egy telepítési adathordozóra (például bármely operációs rendszer telepítési ISO-jára), és hogy hány CPU-t és mennyi memóriát kell lefoglalni a virtuális gépnek, és ha szüksége van VNC-re. Ebben a lépésben igazán értékelheti a GUI telepítőjét, mint például a virt-manager, azonban ezt egy meglehetősen összetett virt-install paranccsal fogjuk megtenni.

Szeretném az összes indító adathordozómat a / var / lib / libvirt / boot és az összes virtuális gépet, valamint virtuális merevlemezüket a / var / lib / libvirt / images (az alapértelmezett hely) címen tartani, ez leegyszerűsíti a szervezetet.

$ cd / var / lib / libvirt / boot
$ wget http: // kiadások.ubuntu.com / 18.04.2 / ubuntu-18.04.2-desktop-amd64.iso

A fenti parancs lekéri az Ubuntu asztali ISO-t, ugyanolyan egyszerűen megszerezheti a CentOS-t vagy bármely más disztribúciót, amelyre vágyik.

Új virtuális gép létrehozása és futtatása:

$ virt-install --virt-type kvm \
--nevezze el myVM \
--memória 2048 --vcpus = 2 \
--cdrom / var / lib / libvirt / boot / ubuntu-18.04.2-desktop-amd64.iso \
--lemez mérete = 40 \
--grafikus vnc, figyelj = 0.0.0.0, port = 5900 \
--noautoconsole

A fenti parancs valóban bonyolult. Javaslom, hogy ezeket a parancsokat mentse szöveges fájlokba, és futtatható parancsfájlként futtassa azokat, amikor új virtuális gépet hoz létre. A legtöbb paraméter, például a virt-típus és a virt-név, eléggé magától értetődő. Csak unalmasak leírni.

A VNC megjelenítésének utolsó opciója elindítja a VNC-kiszolgálót, és lehetővé teszi, hogy konzolosan férjen hozzá a virtuális gépéhez távolról, csatlakozva az állomás 5900-as portjához. Nyisson meg egy VNC klienst az asztalon, és lépjen a KVM gazdagép IP-jéhez az 5900-as porton. Győződjön meg arról, hogy a gazdagép IP-címét érte el, és nem a virtuális gép IP-címét. A virtuális gép csatlakozik a virtuális gép videó kimenetéhez, és folytathatja a telepítést.

Hol tovább?

Innentől kezdve megpróbálhatja szüneteltetni, leállítani és törölni a virtuális gépeket. Az alapul szolgáló infrastruktúrát módosíthatja tárolók hozzáadásával és a hídhálózatok konfigurálásával is. Az egyes virtuális gépek, hálózati interfészek és tárolókészletek összes konfigurációs fájlja az / etc / libvirt / és / etc / libvirt / qemu könyvtárban van tárolva.

Néha fizikailag is törölnie kell a / lib / libvirt / images fájlba mentett merevlemez-fájlokat még a virtuális gép eltávolítása után is. A dolgok további automatizálásához próbáljon meg olyan qcow2 képeket importálni, amelyek a legtöbb linux disztribúcióhoz hasonlóak, mint az Ubuntu és a CentOS. Ezekben az operációs rendszer előre van telepítve.

Következtetés

Ennek beállítása egyáltalán nem olyan egyszerű, mint a VirtualBox beállítása, és ennek sokféle oka van. A verem nagy része bonyolult, mert modulárisnak és nagymértékben méretezhetőnek tervezték. Nem tesz feltételezéseket arról, hogy hol futtatja a virtuális gépet. A környezet lehet személyes asztali számítógép vagy adatközpont. A grafikus felhasználói felülettel való együttműködés bizonyos mértékben csökkentheti ezt a bonyolultságot. Ezeket a rendszereket azonban úgy tervezték, hogy egy REST API-val működjenek együtt, hogy csatlakozzanak a szervezet számlázási rendszereihez, felügyeleti rendszereihez stb. Bevetésük után szinte soha nem érinti őket ember.

Ennek ellenére az automatizálás a libvirt és a qemu-kvm játék neve. Olvassa el a hivatalos dokumentációt, és írja meg a saját szkriptjét, hogy felpörgesse a virtuális gépek flottáját, és tudassa velünk, ha hasznosnak találta ezt az oktatóanyagot.

OpenTTD bemutató
Az OpenTTD az egyik legnépszerűbb üzleti szimulációs játék. Ebben a játékban létre kell hoznia egy csodálatos szállítási vállalkozást. Azonban kezdete...
SuperTuxKart Linuxhoz
A SuperTuxKart egy nagyszerű cím, amelynek célja, hogy ingyenesen hozza el a Mario Kart élményét Linux rendszerén. Elég kihívást jelentő és szórakozta...
Csata a Wesnoth bemutatóért
A Battle for Wesnoth az egyik legnépszerűbb nyílt forráskódú stratégiai játék, amelyet jelenleg játszhatsz. Ez a játék nem csak nagyon hosszú ideje fe...