DomU

DomU

DomU e Preparazione dei dischi

DomUProseguiamo il nostro viaggio nei meandri della virtualizzazione Xen per poter avere un ambiente sano e a prova di proiettile. Ma che dico a prova di proiettile, a prova di fungo atomico. La Dom0 sará completamente sganciata da lla rete, mentre le DomU potranno collegarsi secondo le specifiche.

Scelta del filesystem

L’obiettivo è ottenere un filesystem efficiente, coerente e performante per un ambiente di virtualizzazione stabile.

Per gli ambienti Xen, alcuni filesystem possono essere più adatti di altri:

  • EXT4: leggero ma non ideale per ambienti di virtualizzazione avanzata come una DomU (niente snapshot nativi, copy-on-write assente, scarsa resistenza a errori, insomma una porcheria).
  • ZFS: tecnicamente eccellente ma estremamente affamato di RAM. Più adatto a SAN dedicate.
  • BTRFS (scelta consigliata): moderno, leggero, supporta compressione, snapshot e gestione raid. Buon compromesso per domU.

Questa guida utilizza un singolo disco e BTRFS. Se disponi di più dischi, puoi implementare mirror/raid come mostrato.


Creazione della partizione BTRFS

Se utilizzi un solo disco, crea una nuova partizione:

fdisk /dev/sdx (il tuo disco)

se utilizzi piú dischi, non serve partizionare, btrfs sta benissimo su un disco senza partizioni.

Installare pacchetti BTRFS

apt update
apt install -y btrfs-progs

Formattazione della partizione

Creiamo il filesystem BTRFS duplicando solo i metadati, adatto a disco singolo:

mkfs.btrfs -m dup -d single /dev/sdXY

Questo garantisce maggiore coerenza dei metadati senza sprecare spazio dati.

Altre possibili scenari

mkfs.btrfs -m raid1 -m dup -d dup /dev/sdb /dev/sdc
oppure -m mirror -d mirror o ancora -m raid1 -d raid1
Una configurazione solida, potrebbe essere questa

mkfs.btrfs -m raid1 -d raid1 -L MIRROR /dev/sdb /dev/sdc

mount /dev/disk/by-label/MIRROR /mnt
btrfs device add /dev/sdd /mnt/
btrfs balance start -dconvert=dup /mnt

Questo crea un mirror fra sdb e sdc e duplica, quindi riscrive i dati, effettua una copia a livello di file, sul disco sdd
volendo possiamo duplicare anche i metadati sul disco sdd
btrfs balance start -mconvert=dup /mnt
Diciamo che abbiamo l’imbarazzo della scelta, anche se non é questo l’articolo in cui discettare di coerenza dei dati, geometria del disco, e discipline varie tipo i backup replica e distribuzione dei dati.

Montaggio e configurazione BTRFS

Il comando mkfs.btrfs crea il filesystem e ci fornisce UUID

Quindi creaimo la directory che ospiterá il nostro filesystem

mkdir -p /work

Aggiungiamo il filesystem a /etc/fstab:

echo 'UUID=TUO-UUID /work btrfs defaults,compress=zstd,commit=30,autodefrag 0 0' >>/etc/fstab
mount -a

Creazione subvolume per ospitare le DomU

Creare un subvolume non é necessario ma, MA! non occupa spazio, e in molti casi torna utile.
Torna utile in tutti quei casi in cui devi effettuare un rsync, uno snapshot, un backup etc etc.

btrfs subvolume create /work/@WORKFS
btrfs property set /work/ compression zstd:3
btrfs property set /work/@WORKFS/ compression zstd:3

Verifica dei settaggi:

btrfs property get /work

Atteso:
ro=false
label=
compression=zstd:3

btrfs property get /work/@WORKFS

Atteso:
ro=false
compression=zstd:3

Smontiamo il Filesystem e rimontiamolo con il subvolume.

umount /work
sed -i '\|/work|d' /etc/fstab
echo 'UUID=TUO-UUID /work btrfs defaults,compress=zstd,commit=30,autodefrag,subvol=@WORKFS 0 0' >>/etc/fstab
mount -a

Dunque andiamo a verificare:

mount |grep work

Il risultato atteso dovrebbe essere qualcosa di questo tipo:

/dev/sdXY on /work type btrfs (rw,relatime,compress=zstd:3,ssd,discard=async,space_cache=v2,autodefrag,subvolid=256,subvol=/@WORKFS)

IL VOLUME É PRONTO PER OSPITARE LE DOMU


Configurazione Xen-Tools per le DomU

Xen-Tools non include Devuan, quindi lo abilitiamo manualmente.

Backup e nuova configurazione

cp /etc/xen-tools/xen-tools.conf /etc/xen-tools/xen-tools.conf.BAK
echo 'dir = /work' >/etc/xen-tools/xen-tools.conf
echo 'install-method = debootstrap' >>/etc/xen-tools/xen-tools.conf
echo 'size   = 32G' >>/etc/xen-tools/xen-tools.conf
echo 'memory = 1024M' >>/etc/xen-tools/xen-tools.conf
echo 'noswap = 1' >>/etc/xen-tools/xen-tools.conf
echo 'fs     = ext4' >>/etc/xen-tools/xen-tools.conf
echo 'dist   = `xt-guess-suite-and-mirror --suite`' >>/etc/xen-tools/xen-tools.conf
echo 'image  = sparse' >>/etc/xen-tools/xen-tools.conf
echo 'dhcp = 1' >>/etc/xen-tools/xen-tools.conf
echo 'genpass = 0' >>/etc/xen-tools/xen-tools.conf
echo 'password = 123456' >>/etc/xen-tools/xen-tools.conf
echo 'kernel = /boot/vmlinuz-`uname -r`' >>/etc/xen-tools/xen-tools.conf
echo 'initrd = /boot/initrd.img-`uname -r`' >>/etc/xen-tools/xen-tools.conf
echo 'btrfs_options = defaults' >>/etc/xen-tools/xen-tools.conf
echo 'disk_device = xvda' >>/etc/xen-tools/xen-tools.conf

Se vuoi scaricare direttamente il file, preconfigurato, senza doverlo scrivere, puoi usare questi comandi:

cp /etc/xen-tools/xen-tools.conf /etc/xen-tools/xen-tools.conf.BAK
wget -O /etc/xen-tools/xen-tools.conf https://dibrigida.it/DOWNLOAD/xen-tools.conf
chmod 644 /etc/xen-tools/xen-tools.conf

Abilitare Dom-U Devuan in Xen-Tools

cp -rp /usr/share/xen-tools/debian.d/ /usr/share/xen-tools/devuan.d
ln -s /usr/share/xen-tools/devuan.d /usr/share/xen-tools/daedalus.d
ln -s /usr/share/xen-tools/devuan.d /usr/share/xen-tools/excalibur.d

Modifichiamo manualmente il file di apt per le DomU

cd /usr/share/xen-tools/devuan.d
vi 20-setup-apt

Individuare il settore del source list e modificare secondo le specifiche DEVUAN

cercando la parola deb, si trova subito questa sezione:

deb ${mirror} ${dist} main contrib non-free
deb-src ${mirror} ${dist} main contrib non-free

che va modificata in questo modo:

deb     http://it.deb.devuan.org/merged ${mirror}     ${dist} main contrib non-free
deb-src http://it.deb.devuan.org/merged ${mirror}     ${dist} main contrib non-free

poi cerchiamo la sezione security e troviamo questo:

deb http://security.debian.org/ ${dist}/updates main contrib non-free
deb-src http://security.debian.org/ ${dist}/updates main contrib non-free

Anche in questo caso dobbiamo modificare:

deb     http://deb.devuan.org/merged ${dist}-security  main non-free-firmware contrib non-free
deb-src http://deb.devuan.org/merged ${dist}-security main non-free-firmware contrib non-free

cerchiamo ancora altri deb, in tutte le sezioni security sostituiamo con la parte security, nelle sezioni del mirror, sostituiamo con la giusta sezione.

Passiamo adesso ad un altra ricerca, il nome della distribuzione:

Dunque cerchiamo la parola sarge ed approdiamo in questa sezione:

if echo “${dist}” | egrep -q ‘\b(sarge|etch|lenny|squeeze|wheezyjessie|stretch|buster)\b’; then

ci basta sostituire la riga in questo modo:

 if echo "${dist}" | egrep -q '\b(daedalus|excalibur|beowulf)\b'; then

Quindi ripetere nuovamente la ricerca e sostituire sarge|etch|lenny|squeeze|wheezyjessie|stretch|buster con le nuove versioni:

daedalus|excalibur|beowulf


Capisco che editare questo file potrebbe essere complicato per alcuni, ecco il comando per poter eseguire il wget e posizionarlo nel posto giusto

wget -O /usr/share/xen-tools/devuan.d/20-setup-apt https://dibrigida.it/DOWNLOAD/20-setup-apt
chmod 755 /usr/share/xen-tools/devuan.d/20-setup-apt

Creazione della prima DomU

modprobe loop max_loop=255
echo 'options loop max_loop=255' >/etc/modprobe.d/xen-loop.conf
xen-create-image --hostname="letame" --dist="excalibur"

Verifica presenza disk.img in /work/domains/letame/.


Isoliamo la Dom0 dalla rete

echo "source /etc/network/interfaces.d/*" >/etc/network/interfaces
echo "auto lo" >>/etc/network/interfaces
echo "iface lo inet loopback" >>/etc/network/interfaces
echo "auto eth0" >/etc/network/interfaces.d/eth0.conf
echo "iface eth0 inet manual" >>/etc/network/interfaces.d/eth0.conf
echo "auto xenbr0" >>/etc/network/interfaces.d/eth0.conf
echo "iface xenbr0 inet manual" >>/etc/network/interfaces.d/eth0.conf
echo "    bridge_ports eth0" >>/etc/network/interfaces.d/eth0.conf
echo "        bridge_maxwait 0" >>/etc/network/interfaces.d/eth0.conf

Avvio della DomU

reboot
xl create /etc/xen/letame.cfg
xl list
xl console letame

Ecco la tua domU funzionante! 🚀

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

Torna in alto