KVM znamená virtuální stroj založený na jádře.
Jak název napovídá, jedná se o technologii virtualizace založenou na jádře pro OS Linux na hardwaru, který podporuje virtualizaci.
Hostující operační systémy mohou být plně virtualizované nebo paravirtualizované.
Paravirtualizace umožňuje několika operačním systémům běžet na jedné sadě hardwaru efektivním využitím zdrojů, jako jsou procesory a paměť. Ve virtualizaci Para je operační systém upraven tak, aby pracoval s virtuálním strojem, což minimalizuje dobu potřebnou k provádění operací, které se jinak ve virtuálním prostředí spouštějí obtížně.
Toto je 1. článek z pokračující série článků o KVM.
1. Nástroje pro správu VM
Balíček KVM poskytuje qemu-kvm, nástroj specifický pro hypervizor pro správu virtuálních strojů.
Místo tohoto nástroje můžete použít softwarový balíček známý jako libvirt, který je pohodlnější a doporučený způsob správy virtuálních strojů. Tento software obsahuje knihovnu API, démona (libvirtd) a nástroj příkazového řádku (virsh).
Tento nástroj libvirt můžete použít ke správě jakýchkoli existujících virtuálních strojů běžících na KVM, Xen, VMWARE ESX atd. Úplný seznam podporovaných hypervizorů je uveden na libvirt.
Existuje několik dalších dostupných nástrojů, které můžete použít ke správě hostovaného virtuálního počítače.
- virt-manager (Virtual Machine Manager):Grafický nástroj pro správu pro hosty VM.
- vm-install:Obslužný program řízený pomocí skriptu, který definuje hosta virtuálního počítače a nainstaluje jeho operační systém.
- virt-viewer:Klient prohlížeče X pro hosty VM, který podporuje šifrování TLS/SSL pro ověřování certifikátem x509 a ověřování SASL.
2. Zkontrolujte podporu virtualizace na vašem hardwaru
Chcete-li zkontrolovat, zda váš procesor podporuje virtualizaci hardwaru, proveďte následující příkaz.
# egrep '(vmx|svm)' /proc/cpuinfo
Pokud ve výstupu v sekci flags vidíte vmx nebo svm, pak váš hardware (CPU) podporuje virtualizaci.
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 rdtscp lm constant_tsc archrfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt lahf_lm tpr_shadow vnmi flexprioritpt vpid .
3. Nainstalujte balíčky KVM
Nainstalujte balíčky KVM pomocí nástroje pro správu balíčků specifického pro vaše distro (například yum na RedHat a CentOS).
# yum install kvm
Jakmile nainstalujete hlavní balíček kvm, nainstalujte následující balíčky související s KVM, které vám pomohou spravovat virtuální počítače ve vašem systému.
# yum install qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools
Níže jsou uvedeny balíčky související s KVM, které jsou nainstalovány na mém počítači. Číslo verze ve vašem systému se může mírně lišit.
# rpm -qa | egrep "virt|kvm|qemu" python-virtinst-0.600.0-18.el6.noarch qemu-img-0.12.1.2-2.415.el6.x86_64 libvirt-0.10.2-29.el6.x86_64 virt-viewer-0.5.6-8.el6.x86_64 qemu-kvm-0.12.1.2-2.415.el6.x86_64 libvirt-python-0.10.2-29.el6.x86_64 virt-manager-0.9.0-19.el6.x86_64 virt-top-1.0.4-3.15.el6.x86_64 libvirt-client-0.10.2-29.el6.x86_64 gpxe-roms-qemu-0.9.7-6.10.el6.noarch virt-what-1.11-1.2.el6.x86_64
Po instalaci balíčků se doporučuje restartovat počítač, aby se načetly všechny moduly KVM a libvirt, i když je můžete znovu načíst pomocí příkazu modprobe.
Hostující OS můžete nainstalovat pomocí správce strojů Virtul, který vm-install (pro SUSE Linux) a virt-install (pro RedHat).
Když je vaše zobrazení nastaveno (pomocí překračování, reflexeX nebo některých jiných správců zobrazení), poskytuje grafické rozhraní pro vytvoření průvodce virtuálním strojem, který vás provede procesem instalace. Pokud není nastaveno zobrazení, tj. při připojení počítače pomocí ssh bez přesměrování X11, vm-install nabízí průvodce příkazovým řádkem pro interaktivní nastavení hosta virtuálního počítače pro instalaci.
4. Network Pre-req to Create Guest VM
Ve výchozím nastavení budou mít virtuální počítače síťový přístup pouze k jiným virtuálním počítačům na stejném serveru (a k samotnému hostiteli). Pokud chcete, aby virtuální počítače měly přístup k vaší VLAN, musíte na hostiteli vytvořit síťový most, jak je vysvětleno zde.
Upravte /etc/sysconfig/network-scripts/ifcfg-eth0 a přidejte řádek „BRIDGE=br0“ (nezapomeňte odstranit všechny statické IP adresy).
Vytvořte soubor /etc/sysconfig/network-scripts/ifcfg-br0 a přidejte položky, jak je uvedeno níže. Můžete použít statické nebo dhcp. V tomto případě jsem použil statickou IP.
DEVICE="br0" BOOTPROTO="static" IPADDR="xxx.xxx.xxx.xxx" NETMASK="255.255.255.0" ONBOOT="yes" TYPE="Bridge" NM_CONTROLLED="no"
Pokud používáte firewall (jako iptables), vytvořte pravidlo, které povolí přemosťovaný provoz.
5. Další předběžné požadavky na vytvoření hostovaného virtuálního počítače
Výchozí umístění pro soubory obrazu virtuálního počítače je /var/lib/libvirt/images. Ujistěte se, že je v tomto adresáři dostatek místa. Pokud ne, můžete při vytváření virtuálního počítače nasměrovat soubor obrázku do jiného adresáře.
Povolte předávání IP v /etc/sysctl.conf přidáním následujícího řádku:
inet.ipv3.ip_forward=1
Během testovací fáze, pokud máte spuštěný SELinux, jej deaktivujte nastavením SELinuxu do permisivního režimu.
Po provedení výše uvedených změn restartujte systém.
6. Vytvoření nového hostovaného virtuálního počítače pomocí virt-install
nástroj virt-install se používá k vytvoření virtuálního počítače. Tento nástroj lze použít v interaktivním i neinteraktivním režimu.
V následujícím příkladu jsem předal všechny požadované hodnoty k vytvoření virtuálního počítače jako parametry příkazového řádku příkazu virt-install.
# virt-install \ -n myRHELVM1 \ --description "Test VM with RHEL 6" \ --os-type=Linux \ --os-variant=rhel6 \ --ram=2048 \ --vcpus=2 \ --disk path=/var/lib/libvirt/images/myRHELVM1.img,bus=virtio,size=10 \ --graphics none \ --cdrom /var/rhel-server-6.5-x86_64-dvd.iso \ --network bridge:br0
Ve výše uvedeném příkazu virt-install:
- n Název vašeho virtuálního počítače
- popis Nějaký platný popis vašeho virtuálního počítače. Například:Aplikační server, databázový server, webový server atd.
- typ os Typ OS může být Linux, Solaris, Unix nebo Windows.
- os-varianta Typ distribuce pro výše uvedený typ os. Například pro linux to může být rhel6, centos6, ubuntu14, suse11, fedora6 atd. Pro windows to může být win2k, win2k8, win8, win7
- ram Paměť pro virtuální počítač v MB
- vcpu Celkový počet virtuálních procesorů pro virtuální počítač.
- cesta k disku =/var/lib/libvirt/images/myRHELVM1.img,bus=virtio,size=10 Cesta, kde jsou uloženy soubory obrazu virtuálního počítače. Velikost v GB. V tomto příkladu má tento soubor obrazu virtuálního počítače 10 GB.
- žádná grafika Toto instruuje virt-install k použití textové konzoly na sériovém portu VM namísto grafického okna VNC. Pokud máte nastavený xmanager, můžete tento parametr ignorovat.
- cdrom Označuje umístění instalačního obrazu. Můžete zadat umístění instalace NFS nebo http (instaed z –cdrom). Například –location=http://.com/pub/rhel6/x86_64/
- síťový most:br0 Tento příklad používá přemostěný adaptér br0. Je také možné vytvořit vlastní síť na libovolném konkrétním portu namísto přemostěného adaptéru. Pokud chcete použít NAT, použijte něco jako níže pro parametr sítě s názvem virtuální sítě známým jako VMnetwork1. Všechny konfigurační soubory sítě jsou umístěny v /etc/libvirt/qemu/networks/ pro virtuální počítače. Například:–network network=VMnetwork1
7. Seznam virtuálních počítačů
Můžete upravit nabídku grub pomocí „console=tty0 console=ttyS0,115200“ a zobrazit konzolu pro vaši obrazovku během procesu instalace v okně SSH. To vám umožní nainstalovat OS pomocí řízené instalace. Jinak můžete pro zobrazení použít X server.
Následující příkaz zobrazí všechny virtuální počítače, které jsou nainstalovány ve vašem OS. V tomto příkladu máme v tomto systému nainstalované dva virtuální počítače.
# virsh list --all Id Name State ---------------------------------------------------- 1 dev-dev-vm running 2 myRHELVM1 running
8. Upravit soubor konfigurace virtuálního počítače
Po vytvoření virtuálního počítače uvidíte konfigurační soubor virtuálního počítače v následujícím umístění. Název konfiguračního souboru bude název virtuálního počítače s příponou .xml.
# ls -l /etc/libvirt/qemu/myRHELVM1.xml -rw-------. 1 root root 2109 Oct 15 12:30 /etc/libvirt/qemu/myRHELVM1.xml
Měli byste se vyhnout ručním úpravám tohoto souboru a místo toho použít příkaz virsh edit. Chcete-li upravit doménu (virtuální počítač), proveďte následující:
virsh edit myRHELVM1
9. Připojte se ke konzole VM
Chcete-li se připojit ke konzole virtuálního počítače, použijte následující příkaz. K ukončení konzole virtuálního počítače můžete použít „ctrl + ]“.
virsh console myRHELVM1
Pokud na svém hostiteli nemáte spuštěný X server, připojení k sériové konzole VM může být jediným způsobem, jak se přihlásit k VM, pokud není k dispozici síť.
Nastavení přístupu ke konzole virtuálního počítače se neliší od nastavení fyzického serveru, kde do virtuálního počítače jednoduše přidáte správné parametry spouštění jádra.
Například pro virtuální počítač RHEL (nebo virtuální počítač CentOS) přidejte následující parametry k zaváděcímu řádku jádra v souboru /etc/grub.conf a poté restartujte virtuální počítač.
console=tty0 console=ttyS0,115200
Případně můžete také přidat následující položky do souboru /etc/grub.conf.
serial --unit=0 --speed=115200 terminal --timeout=5 serial console
10. Zobrazit informace o virtuálním počítači
Chcete-li zobrazit informace o virtuálním počítači, použijte následující příkaz:
# virsh dominfo myRHELVM1 Id: 5 Name: myRHELVM1 UUID: 58083ae7-51db-50c3-64d8-bc4c49f642d0 OS Type: Linux State: running CPU(s): 2 CPU time: 207.6s Max memory: 2097152 KiB Used memory: 2097152 KiB Persistent: yes Autostart: disable Managed save: no Security model: selinux Security DOI: 0 Security label: system_u:system_r:svirt_t:s0:c698,c788 (permissive)
11. Zobrazit využití CPU a paměti virtuálního počítače
Chcete-li zobrazit využití CPU a paměti virtuálního stroje, použijte příkaz virt-top, jak je uvedeno níže.
# virt-top virt-top 07:14:44 - x86_64 8/8CPU 1600MHz 32094MB 3 domains, 2 active, 2 running, 0 sleeping, 0 paused, 1 inactive D:0 O:0 X:0 CPU: 0.1% Mem: 4096 MB (4096 MB by guests) ID S RDRQ WRRQ RXBY TXBY %CPU %MEM TIME NAME 5 R 0 0 1546 0 0.0 6.0 3:29.55 dev-dev-vm 8 R 0 0 1546 0 0.0 6.0 1:42.17 myRHELVM2 -
12. Vypnutí, restartování nebo spuštění virtuálního počítače pomocí virsh
Chcete-li virtuální počítač vypnout, proveďte následující:
# virsh shutdown myRHELVM1 Domain myRHELVM1 is being shutdown
Chcete-li restartovat virtuální počítač, proveďte následující:
# virsh reboot myRHELVM1
Chcete-li spustit nebo zapnout virtuální počítač, proveďte následující. Jakmile je virtuální počítač spuštěn, spusťte „virsh list –all“ pro zobrazení všech běžících virtuálních počítačů.
# virsh start myRHELVM1 Domain myRHELVM1 started
V dalším článku série KVM pokryjeme další podrobnosti o tom, jak upravovat a manipulovat s konfiguracemi na jednotlivých virtuálních počítačích.