K instalaci Gentoo Linux serveru ve virtuálním prostředí KVM potřebujeme:
-
Nastavit virtuální stroj v KVM na hostu (hypervisoru) — to udělám já
-
Provést samotnou instalaci virtuálního stroje (guesta) — to budete dělat vy, studenti
Nastavení virtuálního stroje KVM na hostu (hypervisoru) - 1. část instalace
Nejprve musíme připravit virtuální disk (image), k tomu se používá program qemu-image. Virtuální disk bude obyčejný soubor na hostu.
qemu-image create -f qcow2 /home/vm/vm1/vm1.qcow2 20G (1)
| 1 | Přepínačem -f nastavujeme typ, v našm přípedě doporučený qcow2. Další parametr je cesta, kde bude image uloženo a poslední parametr je velikost disku. Formát qcow2 nealokuje celých 20Gbyte, ale velikost image souboru roste s naplněním disku virtuálního stroje. |
Vlastní virtualizaci stroje provádí program qemu-system-x86_64 s obrovským množstvím parametrů (tím se zatím nebudeme zabývat).
Spouštěcí skript nám definuje nastavení hardware virtuálního stroje.
#!/sbin/openrc-run
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
extra_commands="zaloha"
CISLO="01" (1)
NAME="vm$CISLO" (2)
MEMORY="2048M" (3)
CORES=2 (4)
VIRTDISK="/home/vm/${NAME}/${NAME}.qcow2" (5)
ZALDISK="/mnt/backup/vm" (6)
ZALOHA="${ZALDISK}/${NAME}/${NAME}.qcow2" (7)
ISOIMG="/home/vm/iso/finnix-125.iso" (8)
pidfile="/run/kvm-${NAME}.pid"
PORT=59$CISLO (9)
MAC="00:25:2d:36:e6:$CISLO" (10)
NETDEV="mp$CISLO" (11)
BR="br0" (12)
TAP="tap$CISLO" (13)
CHANNEL=$CISLO (14)
SECRET="/etc/qemu/spice${CISLO}" (15)
depend() {
use logger clock hostname net
}
start() { (16)
ebegin "Starting ${SVCNAME}"
mkdir -p /run/kvm-${NAME}
qemu-system-x86_64 -enable-kvm \
-name ${NAME} \
-smp cores=${CORES} \
-cpu host \
-m ${MEMORY} \
-drive driver=qcow2,file=${VIRTDISK},if=virtio \
-cdrom ${ISOIMG} \
-device virtio-net,netdev=${NETDEV},mac=${MAC} \
-netdev tap,id=${NETDEV},ifname=${TAP},br=${BR} \
-boot order=c \
-object secret,id="spice${CISLO}",file=${SECRET} \
-vga qxl -device virtio-serial-pci -spice port=${PORT},password-secret="spice${CISLO}" \
-device virtserialport,chardev=spicechannel${CHANNEL},name=com.redhat.spice.${CHANNEL} -chardev spicevmc,id=spicechannel${CHANNEL},name=vdagent \
-monitor unix:/run/kvm-${NAME}/monitor,server,nowait \
-object rng-random,id=rng${CHANNEL},filename=/dev/urandom -device virtio-rng-pci,rng=rng${CHANNEL} \
-daemonize \
-pidfile ${pidfile}
eend $?
}
stop() { (17)
ebegin "Stopping ${SVCNAME}"
echo system_powerdown | socat - UNIX-CONNECT:/run/kvm-${NAME}/monitor
sleep 10
start-stop-daemon --stop --pidfile ${pidfile}
ret=$?
eend ${ret}
}
zaloha() { (18)
stop
ebegin "Zalohuji ${SVCNAME}"
mkdir -p $ZALDISK/${NAME}
mv $ZALOHA.xz $ZALOHA.xz.old
cat $VIRTDISK | xz > $ZALOHA.xz
eend $?
start
}
| 1 | Interní číslo virtuálního stroje (guesta). |
| 2 | Interní jméno virtuálního stroje. |
| 3 | Přidělená paměť RAM. |
| 4 | Počet jader procesoru. |
| 5 | Virtuální disk. |
| 6 | Kam se bude zálohovat. |
| 7 | Jméno souboru se zálohou. |
| 8 | Instalační CDROM. |
| 9 | Na jakém portu bude virtuální stroj poslouchat (spice protokol). |
| 10 | MAC adresa síťové karty |
| 11 | Interní číslo sítě |
| 12 | Na jaký bridge hypervisoru to bude připojeno. |
| 13 | Interní TAP rozhraní |
| 14 | Interní komunikační kanál |
| 15 | V tomto souboru se nachází heslo pro připojení virt-viewerem |
| 16 | Funkce startující virtuální stroj, uvnitř je samotná definice virtuálního stroje. |
| 17 | Funkce k zastavení virtuálního stroje. |
| 18 | Funkce ke kompletní záloze virtuálního stroje. |
Úkol na dnešní hodinu
Každý máte nainstalovaný miniaturní Gentoo Linux server sám pro sebe. Zkusíte si dostat se na konsoli server pomocí virt-vieweru. Nastavení je v následující tabulce. IP adresu virtuálu napíšu na tabuli. Každý bude používat svůj port a svoje heslo. Hesla jste dostali na papírku. Virtuální stroje budou bohužel přístupné jenom ve škole, protože nemáme zatím k dispozici veřejnou IP adresu pro hypervisor.


| Jméno studenta | Jméno virtuálního stroje | Port |
|---|---|---|
Černák Jiří |
vm01 |
5901 |
Hlaváčková Eliška |
vm02 |
5902 |
Hrzán Ondřej |
vm03 |
5903 |
Chudý Marek |
vm04 |
5904 |
Jakoubek David |
vm05 |
5905 |
Ježek Jan |
vm06 |
5906 |
Jílek Petr |
vm07 |
5907 |
John Tomáš |
vm08 |
5908 |
Kaplan Martin |
vm09 |
5909 |
Kouba Dalimil |
vm10 |
5910 |
Martinková Nela |
vm11 |
5911 |
Nývltová Michaela |
vm12 |
5912 |
Plocek Martin |
vm13 |
5913 |
Pospíšil Jan |
vm14 |
5914 |
Potočková Nikola |
vm15 |
5915 |
Solawa Kordian Adam |
vm16 |
5916 |
Suchánek Adam |
vm17 |
5917 |
Šabata Jan |
vm18 |
5918 |
Šebesta Jakub |
vm19 |
5919 |
Šubrt Štěpán |
vm20 |
5920 |
Tran Nam Pham |
vm21 |
5921 |
Heslo roota do konsole je stejné, jako jste dostali na papírku.
Pokud chcete opustit virt-viewer protože vám chytnul myš a klávesnici, na Linuxu stiskněte klávesy pravý Ctrl + pravý Alt, na Windows Shift+F12.