Szerverek virtualizálására használjuk.
Ha vendéggépek partíciói LVM-en keresztül érhetők el, gyorsabb működést eredményezhet, mint virtuális képfájlok használata, ezért már telepítéskor gondolni kell egy külön partícióra.
Gyakorlásképpen Virtualboxban is telepíthetünk egy 64 bites Debiant. A telepítés során a gazdagépnek három partíciója lesz. Az első a Debian rendszer gyökerének. A második a lehet LVM kötetkezelős partíció. A harmadik pedig egy cserehely.
A kísérlethez Virtualboxon egy 8 GB, merevlemezt választottam, amely valójában 8.6 GB volt. Az első és második partíciónak 4 GB helyet hagytam, a maradék ment a swapnak. Az első partíció szimpla ext4 lett, a másodikra LVM kötetet tettem:
Az LVM kötetet nem csatoltam.
Telepíteni kell az lvm2 csomagot. A következő paranccsal ellenőrizhetjük, hogy telepítve van-e:
dpkg -l lvm2 | grep ^ii
Ha nincs:
apt-get install lvm2
A telepítés után, ha újraindítjuk a gépet, ellenőrizzük a dm_mod modul be van-e töltve:
lsmod | grep dm_mod
Ha nem íródik semmi a képernyőre akkor nincs betöltve. Ha be van töltve a válasz valami ehhez hasonló lesz:
dm_mod 89405 0
Az fdisk paranccsal ellenőrizzük milyen partícióink vannak:
A válasz a következőhöz hasonló:
# fdisk -l Disk /dev/sda: 8 GiB, 8589934592 bytes, 16777216 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xb9531eb4 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 7813119 7811072 3,7G 83 Linux /dev/sda2 7813120 15626239 7813120 3,7G 8e Linux LVM /dev/sda3 15626240 16775167 1148928 561M 82 Linux swap / Solaris
Hozzuk létre az sda2 partíción egy fizikai kötetet: # pvcreate /dev/sda2
Physical volume "/dev/sda2" successfully created
Ellenőrizzük:
# pvdisplay "/dev/sda2" is a new physical volume of "3,73 GiB" --- NEW Physical volume --- PV Name /dev/sda2 VG Name PV Size 3,73 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID lTmPaD-P3c6-iAAZ-F2zY-qviY-l69F-Aw8zxb
Most hozzunk létre egy kötetcsoportot:
vgcreate gv0 /dev/sda2
Ellenőrizzük:
# vgdisplay --- Volume group --- VG Name vg0 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 3,72 GiB PE Size 4,00 MiB Total PE 953 Alloc PE / Size 768 / 3,00 GiB Free PE / Size 185 / 740,00 MiB VG UUID vQbmMA-xkhk-SOFE-0LwF-s0xb-fuwY-PeX31
A gv0-ra tesszük majd a logikai kötetet, de erről majd később gondoskodunk.
apt-get install xen-tools xen-linux-system-adm64
Ezzel megkapjuk például a xen-create-image parancsot.
# dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen Hozzáadás: „/etc/grub.d/20_linux_xen helyi eltérítése ide: /etc/grub.d/08_linux_xen”
Ha meggondoltuk volna magunkat:
dpkg-divert --rename --remove /etc/grub.d/20_linux_xen
Frissítsük a grubot:
update-grub
Néhány paraméter fogunk megadni. Mivel a grubbal indul a XEN, ezért paraméterezzünk az /etc/deafult/grub állományban:
# mcedit /etc/default/grub
A végéhez fűzzük:
GRUB_CMDLINE_XEN="dom0_mem=512M dom0_max_vcpus=2 dom0_vcpus_pin"
Készítsünk mentést az eredetiről:
mv /etc/xen/xl.conf /etc/xen/xl.conf.eredeti
Hozzunk létre egy újat:
mcedit /etc/xen/xl.conf
Tartalma a következő:
autoballoon="on" run_hotplug_scripts=1 vif.default.backend="0" vif.default.gatewaydev="eth0" vif.default.script="vif-route" vif.default.bridge="xenbr0"
# mcedit /etc/default/xendomains
A következő értékeket cseréljük így:
XENDOMAINS_RESTORE=false XENDOMAINS_SAVE=
Indítsuk újra a rendszert.
# reboot
Állítsuk be xen kezelőjét:
Szerkesszük az /etc/default/xen fájlt:
mcedit /etc/default/xen
Tartalma a következő legyen:
TOOLSTACK=xl
Létrehozunk egy új xen-tools.conf állományt, az eredetit elmentjük:
# mv /etc/xen-tools/xen-tools.conf /etc/xen-tools/xen-tools.conf.eredeti # mcedit /etc/xen-tools/xen-tools.conf
Tartalma
lvm = vg0 # alapértelmezett logikai kötetcsoport install-method = debootstrap size = 2G # merevlemez; megadható mértékegység: (G, M, k) memory = 512M # megadható mértékegység: (G, M, k) swap = 512M # megadható mértékegység: (G, M, k) fs = ext4 # alapértelmezett fájlrendszer dist = `xt-guess-suite-and-mirror --suite` # kívánt terjesztés image = sparse # sparse vagy full disk images (csak image esetén használható) cachedir = /var/cache/xen-tools/archives/ genpass = 1 # legyen a root számára jelszó generálva genpass_len = 12 hash_method = sha256 passwd = 1 kernel = /boot/vmlinuz-`uname -r` initrd = /boot/initrd.img-`uname -r` pygrub = 1 mirror = `xt-guess-suite-and-mirror --mirror` ext4_options = noatime,nodiratime,errors=remount-ro ext3_options = noatime,nodiratime,errors=remount-ro ext2_options = noatime,nodiratime,errors=remount-ro xfs_options = defaults reiserfs_options = defaults btrfs_options = defaults boot = 1 # Ha elkészült a vm, utána elinduljon-e vcpus = 2 # processzorok száma output = /etc/xen/conf.d # a .cfg fájlok helye extension = .cfg bridge = xenbr0 # hálózati híd gateway = 10.0.10.1 # alapértelmezett átjáró netmask = 255.255.255.0 # hálózati maszk broadcast = 10.0.10.255 # broadcast
Hozzuk létre a .cfg fájlokat tároló könyvtárat:
# mkdir /etc/xen/conf.d
A belső hálózatról is elérhető címet szeretnénk virtuális gépünk számára. A gazdagépen híddal fogjuk összekötni a valós hálózati kártyával.
Szerkesszük a gazdagépen a hálózati beállításokat:
# mcedit /etc/network/interfaces
Vegyük fel a következő bejegyzést:
... allow-hotplug xenbr0 iface xenbr0 inet manual bridge_ports eth0
A vendéggépen vegyünk fel egy IP címet:
# mcedit /etc/network/interfaces
auto eth0 iface eth0 inet static address 192.168.5.15 gateway 192.168.5.1 netmask 255.255.255.0 broadcast 192.168.5.255
# apt-get install brigde-util # brctl addbr xenbr0
Ellenőrizzük:
# ip addr show
# brctl addif xenbr0 eth0
# mcedit /etc/sysctl.conf
Fűzzük a végére:
net.ipv4.ip_forward = 1 net.ipv4.conf.all.proxy_arp = 1 net.ipv4.conf.default.proxy_arp = 1 # A Netfilter tiltása a hidakon (bridge) net.bridge.bridge-nf-call-ip6tables = 0 # IPv6 és Hídhoz net.bridge.bridge-nf-call-iptables = 0 # Hídhoz net.bridge.bridge-nf-call-arptables = 0 # Hídhoz net.ipv6.conf.all.forwarding = 1 # csak IPv6 net.ipv6.conf.all.proxy_ndp = 1 # csak IPv6 net.ipv6.conf.all.autoconf = 0 # csak IPv6
Aktualizáljuk a beállításokat:
# sysctl -p
A Netfilter esetleg így is lehet:
-I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
# xen-create-image --hostname=vm0 --lvm=vg0 --memory=512mb \ > --pygrub --ip 192.168.5.15 --passwd
Indítás:
xl create /etc/xen/vm.cfg
Ha elindult kapcsolódás a konzolhoz:
xl console vm0
Ha beléptünk adjunk hozzá egy felhasználót:
adduser joska
Megpróbálhatunk távolról belépni:
ssh joska@192.168.5.15