Kompleksowa obsługa informatyczna

            Nowoczesne rozwiązania serwerowe

Instalacja bezdyskowej maszyny w środowisku XEN

Poradniki

Masz terminal bootowany z sieci po PXE i chciałbyś zmigrować go do wirtualnej maszyny? Okazuje się, że zadanie to mimo, że dość proste, jest bardzo słabo opisane w internecie. Jest to raczej rozwiązanie używane sporadycznie, w niektórych konfiguracjach jednak niezastąpinone.

W poradniku zakładamy, że masz już skonfigurowany serwer DHCP oraz tftp do serwowania zdalnym terminalom systemu plików. Krótko mówiąc - zakładamy, że masz już funkcjonujące środowisko, w którym bezdyskowe terminale bootują się ze zdalnego serwera, a jedynym problemem jest zmuszenie do tego samego wirtualnej maszyny działającej w środowisku xen

Plik konfiguracyjny

Plik konfiguracyjny jest nawet prostszy, niż w przypadku standardowej maszyny. potrzebne są jednak dodatkowe opcje. Poniżej zamieszczamy przykładową konfigurację:
kernel = "/boot/vmlinuz-2.6.26-2-xen-amd64"
ramdisk = "/boot/initrd.img-2.6.26-2-xen-amd64-nfs_boot"

vcpus=1
memory=1024

name = "ldts"
vif = [ 'mac=00:16:3e:64:dc:fc,bridge=eth0' ]

dhcp = "dhcp"
root = "/dev/nfs"

#nfs_server = "192.168.1.2"
#nfs_root = "/sciezka/do/systemu/na/serwerze"

Po zadeklarowaniu kernela, zasobów, nazwy hosta i adresu MAC (jeśli coś jest tu dla ciebie niejasne, polecamy przeczytać najpierw ten poradnik), następują dwie tak naprawdę istotne linijki. Określamy w nich, że serwer korzystać ma z serwera dhcp oraz, że partycja root będzie mountowana z serwera nfs.

Jeżeli twój serwer DHCP nie podaje terminalom skąd mają pobrać potrzebne pliki, powinieneś odkomentować 2 ostatnie linijki. Podobna konfiguracja po stronie serwera DHCP wyglądałaby następująco:

option root-path "192.168.1.2:/sciezka/do/systemu/na/serwerze"
Jeśli dodatkowo serwer tftp działa na innym komputerze, niż DHCP, powinieneś w konfiguracji DHCP umieścić:
next-server 192.168.1.2;

Tworzenie initrd

Jak zapewne zauważyłeś w powyższej konfiguracji, linia ramdisk określa ścieżkę do niestandardowego pliku z nfs_boot w nazwie. Aby go utworzyć skorzystamy z dostępnego w standardowej instalacji Debiana programu mkinitramfs.


Kopiujemy cały katalog initramfs-tools:
cp -a /etc/initramfs-tools /etc/initramfs-tools-nfs_boot
Zmieniamy opcję BOOT w pliku /etc/initramfs-tools-nfs_boot/initramfs.conf:
BOOT=nfs
I budujemy nowy initrd:
mkinitramfs -d /etc/initramfs-tools-nfs_boot \
            -o /boot/initrd.img-2.6.26-2-xen-amd64-nfs_boot
Po tych prostych zabiegach nasz bezdyskowy terminal powinien być gotowy do użycia.