Quando si usa XEN con le immagini del disco su file, il sistema operativo utilizza un dispositivo di loop per ogni disco. Se si lancia il comando:
ls /dev/loop*
si noterà che in CentOS si hanno a disposizione solo 8 loop device, quindi sarà possibile avviare solamente 8 VM di XEN con collegato un solo disco; ovviamente, se le VM hanno più dischi collegati, il numero si VM istanziabili diminuisce ulteriormente.
Come fare ad aumentare questo valore?
Innanzi tutto una precisazione: il numero massimo di loop device in Linux, potrà essere al massimo 256.
Per la creazione dei device, CentOS (come moltissime altre distribuzioni), si affida al pacchetto udev: pertanto sarà sufficiente configurare adeguatamente udev perchè crei per noi i device aggiuntivi all’avvio.
Andiamo ad editare il file /etc/udev/makedev.d/50-udev.nodes e aggiungiamo i device di loop aggiuntivi; in questo esempio saranno creati 64 device totali:
/etc/udev/makedev.d/50-udev.nodes loop0 loop1 loop2 loop3 loop4 loop5 loop6 loop7 loop8 loop9 loop10 loop11 loop12 loop13 loop14 loop15 loop16 loop17 loop18 loop19 loop20 loop21 loop22 loop23 loop24 loop25 loop26 loop27 loop28 loop29 loop30 loop31 loop32 loop33 loop34 loop35 loop36 loop37 loop38 loop39 loop40 loop41 loop42 loop43 loop44 loop45 loop46 loop47 loop48 loop49 loop50 loop51 loop52 loop53 loop54 loop55 loop56 loop57 loop58 loop59 loop60 loop61 loop62 loop63 parport0 parport1 parport2 parport3 net/tun ppp console null zero
Dato che però CentOS carica dinamicamente il modulo all’avvio, è necessario configurare il modulo per indicargli il numero massimo di device:
/etc/modprobe.conf options loop max_loop=64
A questo punto sarà sufficiente riavviare il server per avere i nuovi device di loop creati automaticamente all’avvio.