-
XEN 4.6 w CentOS 7
Jakiś czas temu pisałem o konfiguracji maszyny Dom0 dla Xen-a pracującej pod kontrolą systemu CentOS 6. Teraz czas na siódemkę 🙂
yum install centos-release-xen
yum update
yum install xen kernel-xen
reboot
Otwieramy główny plik konfiguracyjny Gruba i znajdujemy poniższą linię.
vim /etc/default/grub
GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=1024M,max:1024M cpuinfo com1=115200,8n1 console=com1,tty loglvl=all guest_loglvl=all"
Ustawiamy na sztywno maksymalne zużycie pamięci operacyjnej przez DOM0.
GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=1024M,cpuinfo com1=115200,8n1 console=com1,tty loglvl=all guest_loglvl=all"
Możemy jeszcze wyedytować config kernela z poziomu configa xena tj. w pliku „/etc/sysconfig/xen-kernel”
vim /etc/sysconfig/xen-kernel
XEN_KERNEL_ARGS="dom0_mem=1024M cpuinfo com1=115200,8n1 console=com1,tty loglvl=all guest_loglvl=all"
grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.9.75-29.el7.x86_64
Found initrd image: /boot/initramfs-4.9.75-29.el7.x86_64.img
Found linux image: /boot/vmlinuz-4.9.75-29.el7.x86_64
Found initrd image: /boot/initramfs-4.9.75-29.el7.x86_64.img
Found linux image: /boot/vmlinuz-4.9.75-29.el7.x86_64
Found initrd image: /boot/initramfs-4.9.75-29.el7.x86_64.img
Found linux image: /boot/vmlinuz-4.9.75-29.el7.x86_64
Found initrd image: /boot/initramfs-4.9.75-29.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-693.17.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.17.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-02c984abab014580961c5edfdc57fa94
Found initrd image: /boot/initramfs-0-rescue-02c984abab014580961c5edfdc57fa94.img
done
Dla przetestowaniareboot
Wyłączamy zachowywanie stanu (hibernacja) maszyn wirtualnych przy restarcie.
vim /etc/sysconfig/xendomains
Komentujemy wpis
XENDOMAINS_SAVE=/var/lib/xen/save
Ustawiamy wartość „XENDOMAINS_RESTORE” na false.Konfigurujemy sieć, w naszym przypadku w formie bridge.
ifconfig -a
enp32s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 91.252.116.146 netmask 255.255.255.0 broadcast 91.252.116.255
ether 78:e7:d1:f5:e0:dc txqueuelen 1000 (Ethernet)
RX packets 851 bytes 64306 (62.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 246 bytes 27695 (27.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16enp34s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 78:e7:d1:f5:e0:dd txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 17lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 84 bytes 6908 (6.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 84 bytes 6908 (6.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0vim /etc/sysconfig/network-scripts/ifcfg-xenbr0
DEVICE=xenbr0
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Bridge
IPADDR=91.252.116.146
PREFIX=24
GATEWAY=91.252.116.1
DNS1=8.8.8.8
DNS2=8.8.4.4
USERCTL=novim /etc/sysconfig/network-scripts/ifcfg-enp32s0
DEVICE=enp32s0
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
BRIDGE="xenbr0"
USERCTL=novim /etc/sysconfig/network-scripts/ifcfg-xenbr2
DEVICE=xenbr2
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Bridge
IPADDR=192.168.30.2
PREFIX=24
USERCTL=novim /etc/sysconfig/network-scripts/ifcfg-enp34s0
DEVICE=enp34s0
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
BRIDGE="xenbr2"
USERCTL=noCzas na restart sieci.
service network restart
ifconfig
enp32s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 78:e7:d1:f5:e0:dc txqueuelen 1000 (Ethernet)
RX packets 987364271 bytes 1143051725270 (1.0 TiB)
RX errors 0 dropped 67 overruns 0 frame 0
TX packets 335911441 bytes 26638277777 (24.8 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16enp34s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 78:e7:d1:f5:e0:dd txqueuelen 1000 (Ethernet)
RX packets 339762 bytes 61539812 (58.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 699 bytes 52158 (50.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 17xenbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 91.252.116.146 netmask 255.255.255.0 broadcast 91.200.186.255
ether 78:e7:d1:f5:e0:dc txqueuelen 1000 (Ethernet)
RX packets 251252416 bytes 1052813669024 (980.5 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 126021278 bytes 8815768337 (8.2 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0xenbr2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.30.2 netmask 255.255.255.0 broadcast 192.168.30.255
ether 78:e7:d1:f5:e0:dd txqueuelen 1000 (Ethernet)
RX packets 339781 bytes 55425666 (52.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 350 bytes 24336 (23.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Wygląda na to, że się udało. Przydatnym poleceniem do sprawdzania działania bridge jest „brctl show”. Pamiętajmy o włączeniu autostartu usługi xendomains, ponieważ domyślnie jest wyłączona.systemctl enable xendomains
Na koniec konfiguracji, uruchommy ponownie maszynę
reboot
Po restarcie powinniśmy być w stanie uruchamiać maszyny wirtualne w naszym nowym środowisku 🙂 Przyda nam się poniższa komenda:
xm create nazwa_pliku_konfiguracyjnego_maszyny_z_dokładną_ścieżką
Pamiętajmy, że w configu maszyny wirtualnej nazwy urządzeń typu storage, powinny być również z „pełną ścieżką” np. „phy:/dev/vg0/vps,xvda1,w”, a nie „phy:vg0/vps,xvda1,w” jak można było jeszcze w starszych wersjach Xen-a.