OpenVZ Install · 6 min read · Oct 04, 2025
Installazione e utilizzo di OpenVZ su Debian Wheezy (AMD64)
Installazione e utilizzo di OpenVZ su Debian Wheezy (AMD64)
Versione 1.0
Autore: Falko Timme
Seguimi su Twitter
In questo HowTo descriverò come preparare un server Debian Wheezy per OpenVZ. Con OpenVZ puoi creare più server virtuali privati (VPS) sullo stesso hardware, simile a Xen e al progetto Linux Vserver. OpenVZ è il ramo open-source di Virtuozzo, una soluzione di virtualizzazione commerciale utilizzata da molti fornitori che offrono server virtuali. La patch del kernel OpenVZ è concessa in licenza sotto la licenza GPL, e gli strumenti a livello utente sono sotto la licenza QPL.
Questo howto è inteso come una guida pratica; non copre i fondamenti teorici. Questi sono trattati in molti altri documenti sul web.
Questo documento viene fornito senza garanzia di alcun tipo! Voglio dire che questo non è l’unico modo per configurare un sistema del genere. Ci sono molti modi per raggiungere questo obiettivo, ma questo è il modo che seguo. Non rilascio alcuna garanzia che questo funzionerà per te!
1 Nota preliminare
Sto usando un sistema x86_64 (amd64) qui. Se sei su un sistema i386, alcuni comandi saranno leggermente diversi.
2 Installazione di OpenVZ
Per Debian Wheezy, non c’è un kernel OpenVZ nei repository ufficiali. Pertanto abbiamo tre opzioni:
- Installare dai pacchetti RPM ufficiali del progetto OpenVZ (vedi Installare il kernel da RPM su Debian 6.0) - con supporto ploop! (raccomandato)
- Installare il kernel Debian Wheezy dal progetto OpenVZ e gli altri pacchetti dai repository ufficiali di Debian Wheezy (vedi Installazione su Debian) - kernel con supporto ploop, ma il pacchetto vzctl di Debian non lo supporta.
- Installare dai pacchetti Proxmox (vedi Installare Proxmox VE su Debian Wheezy) - nessun supporto ploop nel kernel.
2.1 Installazione dai pacchetti RPM ufficiali del progetto OpenVZ
Scarica gli ultimi pacchetti RPM vzkernel, vzctl, ploop e vzquota da http://wiki.openvz.org/Download/kernel/rhel6 e http://wiki.openvz.org/Download/utils, ad esempio come segue::
cd /tmp
wget http://download.openvz.org/kernel/branches/rhel6-2.6.32/042stab076.8/vzkernel-2.6.32-042stab076.8.x86_64.rpm
wget http://download.openvz.org/kernel/branches/rhel6-2.6.32/042stab076.8/vzkernel-devel-2.6.32-042stab076.8.x86_64.rpm
wget http://download.openvz.org/utils/vzctl/4.3.1/vzctl-4.3.1-1.x86_64.rpm
wget http://download.openvz.org/utils/vzctl/4.3.1/vzctl-core-4.3.1-1.x86_64.rpm
wget http://download.openvz.org/utils/ploop/1.7/ploop-1.7-1.x86_64.rpm
wget http://download.openvz.org/utils/ploop/1.7/ploop-lib-1.7-1.x86_64.rpm
wget http://download.openvz.org/utils/vzquota/3.1/vzquota-3.1-1.x86_64.rpmInstalla i seguenti pacchetti…
apt-get install fakeroot alien libcgroup1… e converti i pacchetti RPM in pacchetti DEB:
fakeroot alien --to-deb --scripts --keep-version vz*.rpm ploop*.rpmInstalla i pacchetti DEB come segue:
dpkg -i vz*.deb ploop*.deb Successivamente dobbiamo assicurarci che il kernel corretto (il kernel OpenVZ) venga avviato quando riavvii il sistema. Nell’output dell’ultimo comando, dovresti vedere qualcosa del genere:
Impostazione di vzkernel (2.6.32-042stab076.8) …
update-initramfs: Generazione /boot/initrd.img-2.6.32-042stab076.8
ATTENZIONE: impossibile aprire /lib/modules/2.6.32-042stab076.8/modules.builtin: Nessun file o directory di questo tipo
ATTENZIONE: impossibile aprire /var/tmp/mkinitramfs_baPCFp/lib/modules/2.6.32-042stab076.8/modules.builtin: Nessun file o directory di questo tipo
Generazione grub.cfg …
Trovata immagine linux: /boot/vmlinuz-3.2.0-4-amd64
Trovata immagine initrd: /boot/initrd.img-3.2.0-4-amd64
Trovata immagine linux: /boot/vmlinuz-2.6.32-042stab076.8
Trovata immagine initrd: /boot/initrd.img-2.6.32-042stab076.8
fatto
Questo significa che c’è anche un altro kernel sul sistema (3.2.0), e il kernel openVZ (2.6.32) non è il primo nell’elenco. Quindi, per rendere il kernel OpenVZ il kernel predefinito, abbiamo due opzioni: regolare il kernel predefinito in GRUB (raccomandato) o rimuovere il kernel non VZ.
Per regolare il kernel predefinito in GRUB, apri /etc/default/grub…
vi /etc/default/grub… e modifica la riga GRUB_DEFAULT (il conteggio inizia da 0; poiché ogni kernel viene anche fornito con una modalità di recupero, il nostro kernel OpenVZ è il terzo kernel, quindi dobbiamo mettere 2 qui):
| [...] GRUB_DEFAULT=2 [...] |
Aggiorna GRUB successivamente:
update-grubPer rimuovere il kernel predefinito, esegui…
apt-get remove linux-image-amd64 linux-image-3.2.0-4-amd64… e aggiorna GRUB:
update-grubOra che ci siamo assicurati che il kernel corretto si avvii, possiamo procedere.
Successivamente dobbiamo controllare che stiamo usando UUID invece dei nomi dei dispositivi in /etc/fstab perché altrimenti il sistema potrebbe non avviarsi con il kernel openVZ. Esegui…
blkid… per scoprire gli UUID dei tuoi dispositivi/partizioni:
root@server1:/tmp# blkid
/dev/mapper/server1-swap_1: UUID=”c465cb44-1bf9-4fbe-bb31-17139fd43004” TYPE=”swap”
/dev/sda5: UUID=”WRK6Xm-fg52-T836-sp4k-6uxm-trHH-FiRdBx” TYPE=”LVM2_member”
/dev/sda1: UUID=”46d1bd79-d761-4b23-80b8-ad20cb18e049” TYPE=”ext2”
/dev/mapper/server1-root: UUID=”d5ac6d76-0b69-46da-b0c1-a4376f2f0e4e” TYPE=”ext4”
root@server1:/tmp#
Apri /etc/fstab:
vi /etc/fstabIl mio originale /etc/fstab appare come segue (come puoi vedere, l’UUID della partizione /boot è già in uso, ma per / e swap, sono in uso i nomi dei dispositivi):
| # /etc/fstab: informazioni statiche sul file system. # # Usa 'blkid' per stampare l'identificatore univoco universale per un # dispositivo; questo può essere utilizzato con UUID= come un modo più robusto per nominare i dispositivi # che funziona anche se i dischi vengono aggiunti e rimossi. Vedi fstab(5). # # |
Modificalo in modo che vengano utilizzati gli UUID per tutte le partizioni:
| # /etc/fstab: informazioni statiche sul file system. # # Usa 'blkid' per stampare l'identificatore univoco universale per un # dispositivo; questo può essere utilizzato con UUID= come un modo più robusto per nominare i dispositivi # che funziona anche se i dischi vengono aggiunti e rimossi. Vedi fstab(5). # # |
Assicurati che OpenVZ si avvii automaticamente all’avvio:
update-rc.d vz defaults
update-rc.d vzeventd defaultsSuccessivamente dobbiamo collegare alcune librerie:
ln -s /usr/lib64/libvzctl-4.3.1.so /usr/lib
ln -s /usr/lib64/libploop.so /usr/libSe desideri utilizzare i contenitori ploop, fai questo:
apt-get install partedInoltre, apri /etc/init.d/vz…
vi /etc/init.d/vz… e aggiungi la riga mkdir $VARLOCK/ploop per assicurarti che la directory /var/lock/ploop venga ricreata dopo un riavvio:
| #!/bin/sh # Copyright (C) 2000-2009, Parallels, Inc. Tutti i diritti riservati. # # Questo programma è software libero; puoi ridistribuirlo e/o modificarlo # secondo i termini della GNU General Public License come pubblicato da # la Free Software Foundation; o la versione 2 della Licenza, o # (a tua scelta) qualsiasi versione successiva. # # Questo programma è distribuito nella speranza che possa essere utile, # ma SENZA ALCUNA GARANZIA; senza nemmeno la garanzia implicita di # COMMERCIABILITÀ o IDONEITÀ PER UN PARTICOLARE SCOPO. Vedi la # GNU General Public License per ulteriori dettagli. # # Dovresti aver ricevuto una copia della GNU General Public License # insieme a questo programma; se non lo hai ricevuto, scrivi alla Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # Script di avvio OpenVZ, utilizzato per distribuzioni relative a redhat e debian. ### # chkconfig: 2345 96 20 # descrizione: Script di avvio OpenVZ. ### ### INIZIO INFORMAZIONI INIT # Fornisce: vz # Richiesta di avvio: $network $remote_fs $syslog # Richiesta di arresto: $network $remote_fs $syslog # Dovrebbe iniziare: sshd vzeventd # Dovrebbe fermarsi: sshd vzeventd # Avvio predefinito: 2 3 4 5 # Arresto predefinito: 0 1 6 # Breve descrizione: Script di avvio OpenVZ # Descrizione: Script di avvio OpenVZ. ### FINE INFORMAZIONI INIT # Questa riga è necessaria per ingannare /etc/init.d/rc che si aspetta una parola d'azione . /usr/libexec/vzctl/scripts/initd-functions mkdir $VARLOCK/ploop [...] |
Crea un collegamento simbolico da /vz a /var/lib/vz per fornire compatibilità retroattiva:
ln -s /vz /var/lib/vzApri /etc/sysctl.conf e assicurati di avere le seguenti impostazioni:
vi /etc/sysctl.conf| [...] net.ipv4.conf.all.rp_filter=1 net.ipv4.icmp_echo_ignore_broadcasts=1 net.ipv4.conf.default.forwarding=1 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.ip_forward=1 kernel.sysrq = 1 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.eth0.proxy_arp=1 [...] |
Se hai bisogno di modificare /etc/sysctl.conf, esegui
sysctl -p dopo.
Il seguente passaggio è importante se gli indirizzi IP delle tue macchine virtuali provengono da una sottorete diversa rispetto all’indirizzo IP del sistema host. Se non lo fai, il networking non funzionerà nelle macchine virtuali!
Apri /etc/vz/vz.conf e imposta NEIGHBOUR_DEVS su all:
vi /etc/vz/vz.conf| [...] # Controlla quali interfacce inviare richieste ARP e modificare le tabelle APR su. NEIGHBOUR_DEVS=all [...] |
Installa vzdump:
apt-get install vzdumpInfine, riavvia il sistema:
rebootSe il tuo sistema si riavvia senza problemi, allora va tutto bene!
Esegui
uname -re il tuo nuovo kernel OpenVZ dovrebbe apparire:
root@server1:~# uname -r
2.6.32-042stab076.8
root@server1:~#
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.