Virtualizzazione · 5 min read · Jan 18, 2026

OpenVZ Su Debian Etch Per Webserver

OpenVZ Su Debian Etch Per Webserver

Introduzione

La virtualizzazione è fantastica! È una buona pratica per i server, poiché rende le cose più sicure, scalabili, sostituibili e replicabili. Tutto questo a costo di una complessità aggiuntiva minima.

Questa guida è scritta durante l’installazione di una macchina Supermicro con 2 opteron dual-core (64-bit), 2 dischi identici (per RAID) e una grande quantità di memoria. Perché OpenVZ e non XEN o il recente modulo del kernel KVM? Beh, XEN non è molto stabile per le architetture a 64 bit (ancora), e comporta un certo overhead (ogni VM esegue il proprio kernel) a causa della sua complessità. KVM è molto semplice ma ti costringe a eseguire un kernel come un processo, quindi la VM non può beneficiare di sistemi multi-core.

Con OpenVZ viene eseguito solo un kernel per l’ambiente host e tutte le VM, questo rende l’installazione snella e un buon candidato per i webserver.

Installa il sistema di hosting

Prima installa Etch (assicurati di configurare RAID con l’installer).

Potresti voler liberarti di alcune directory e collegamenti ingombranti nella tua root (e, come il resto della guida, come root):

cd /
rm cdrom
unlink vmlinuz.old
unlink vmlinuz
rmdir selinux/
rmdir initrd
unlink initrd.img.old
rmdir opt
rmdir srv/

Ora vogliamo compilare un kernel personalizzato abilitato per OpenVZ, abbiamo seguito in parte questa guida sul sito di OpenVZ. Una breve panoramica di cosa abbiamo fatto:

apt-get update
apt-get install linux-source-2.6.18 kernel-patch-openvz vzctl vzquota # questo comando potrebbe richiedere di confermare
cd /usr/src
tar xjvf linux-source-2.6.18.tar.bz2
cd linux-source-2.6.18
cp /boot/config-2.6.18-3-amd64 .config
aptitude install kernel-package # ne hai bisogno nella riga successiva
make-kpkg --append_to_version=-1-openvz --added_patches=openvz --revision=1 kernel_image
cd ..
dpkg -i linux-image-2.6.18-1-openvz_1_amd64.deb
update-initramfs -c -k 2.6.18-1-openvz
update-grub

Poi (dopo che potresti aver modificato un po’ il /boot/grub/menu.lst per impostare il kernel corretto come predefinito) puoi riavviare.

Dopo il riavvio, utilizzando il kernel abilitato per OpenVZ, controlla se tutto funziona:

ifconfig # dovrebbe elencare le tue interfacce e un'interfaccia "venet" aggiuntiva
cat /proc/vz/* # dovrebbe mostrare qualcosa (non è molto importante cosa mostra)
cat /proc/cpuinfo # verifica che le tue CPU siano attive
cat /proc/mdstat # RAID funzionante
lsmod # dovrebbe mostrare alcuni moduli che iniziano con le lettere "vz"

Crea Server Privati Virtuali (VPS)

Ora configuriamo, avviamo un VPS dal template minimale predefinito (puoi trovarlo in /var/lib/vz/template/cache):

vzctl create 101 --ostemplate debian-3.1-amd64-minimal --config vps.basic
vzctl set 101 --onboot yes --save
vzctl set 101 --hostname test101.mytest.org --save
vzctl set 101 --ipadd 10.0.0.101 --save
vzctl set 101 --numothersock 120 --save
vzctl set 101 --nameserver 10.0.0.2 --save
vzctl set 101 --privvmpages 500000:750000 --save # dagli un po' di memoria CONTROLLAMI
vzctl start 101
vzctl exec 101 passwd

Poi puoi connetterti con il VPS tramite

ssh 10.0.0.101

, e nota il prompt colorato…

Questo template è un template Sarge (3.1), e voglio che sia Etch (4.0), quindi quando sei connesso al VPS come root fai:

nano /etc/apt/sources.list # modificalo per corrispondere al sources.list della tua installazione host (Etch)
aptitude update
aptitude dist-upgrade

Ora prova il tuo nuovo VPS e rendilo funzionante, installa i pacchetti che desideri avere a disposizione poiché questi sistemi serviranno in seguito come base per ulteriori VPS.

Successivamente creiamo un template dal VPS appena personalizzato, è una cosa semplice:

vzctl stop 101 # fermalo
rm -f /var/lib/vz/private/101/etc/ssh/ssh_host_* # rimuovi le chiavi (ne verranno generate di nuove al primo avvio)
cd /var/lib/vz/private/101/
tar czf /var/lib/vz/template/cache/debian-etch-20061218-amd64.tar.gz .

Come direbbe Borat: “Bello! Mi piace!”

Ora possiamo configurare e avviare alcuni VPS aggiuntivi, come prima ma ora leggermente modificati:

vzctl create 102 --ostemplate debian-etch-20061218-amd64 --config vps.basic
vzctl set 102 --onboot yes --save
vzctl set 102 --hostname test102.mytest.org --save
vzctl set 102 --ipadd 10.0.0.102 --save
vzctl set 102 --numothersock 120 --save
vzctl set 102 --nameserver 10.0.0.2 --save
vzctl set 102 --privvmpages 500000:750000 --save # dagli un po' di memoria CONTROLLAMI
vzctl start 102
vzctl exec 102 passwd

e (sì, vedo che non ci sono molte modifiche interessanti)…

vzctl create 103 --ostemplate debian-etch-20061218-amd64 --config vps.basic
vzctl set 103 --onboot yes --save
vzctl set 103 --hostname test103.mytest.org --save
vzctl set 103 --ipadd 10.0.0.103 --save
vzctl set 103 --numothersock 120 --save
vzctl set 103 --nameserver 10.0.0.2 --save
vzctl set 103 --privvmpages 500000:750000 --save # dagli un po' di memoria CONTROLLAMI
vzctl start 103
vzctl exec 103 passwd

e avvia il primo VPS (vzctl start 101) poiché l’abbiamo messo offline per usarlo come base del nostro template, ricordi?

Ora abbiamo 3 VPS in esecuzione. Testalo con vzlist, output:

      VEID      NPROC STATUS  IP_ADDR         HOSTNAME
       101          5 running 10.0.0.101      test101.mytest.org
       102          5 running 10.0.0.102      test102.mytest.org
       103          5 running 10.0.0.103      test103.mytest.org

I VPS necessitano di memoria, per impostazione predefinita ne vengono dati troppo pochi, quindi imposta vmguarpages, oomguarpages, privvmpages, ecc., ecc., ecc., nei file di configurazione del tuo VPS (/etc/vz/conf/*.conf) su valori ragionevoli – una pagina equivale a 4Kb. Gli errori che si verificano perché hai limitato troppo il tuo VPS possono essere letti eseguendo:

vzctl exec 101 cat /proc/user_beancounters

L’ultima colonna dell’UBC (user_beancounter) dovrebbe contenere solo zeri, se altrimenti prova ad aumentare alcune barriere e limiti. Consulta la documentazione di OpenVZ per ulteriori informazioni sulle singole opzioni.

Ora possiamo continuare a configurare i nostri apache, postfix, eccetera sui VPS… Buona fortuna!

Ohh e qui sotto il mio file /etc/vz/conf/101.conf, puzza, ho appena aumentato alcuni valori in modo grossolano perché avevamo errori nel user_beancounter.

cat /etc/vz/conf/101.conf
#  Copyright (C) 2000-2006 SWsoft. Tutti i diritti riservati.
#
#  Questo programma è software libero; puoi ridistribuirlo e/o modificarlo
#  secondo i termini della GNU General Public License come pubblicato dalla
#  Free Software Foundation; sia 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, scrivi alla Free Software
#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
VERSION="2"
ONBOOT="yes"
# Parametri UBC (sotto forma di barriera:limite)
# Parametri primari
AVNUMPROC="40:40"
NUMPROC="255:255"
NUMTCPSOCK="80:80"
NUMOTHERSOCK="255:255"
VMGUARPAGES="500000:9223372036854775807"
# Parametri secondari
KMEMSIZE="33554432:36909875"
TCPSNDBUF="319488:524288"
TCPRCVBUF="524288:524288"
OTHERSOCKBUF="439296:439296"
DGRAMRCVBUF="132096:132096"
OOMGUARPAGES="500000:9223372036854775807"
# Parametri ausiliari
LOCKEDPAGES="32:32"
SHMPAGES="8192:8192"
PRIVVMPAGES="500000:750000"
NUMFILE="10240:10240"
NUMFLOCK="100:110"
NUMPTY="16:16"
NUMSIGINFO="256:256"
DCACHESIZE="1048576:1097728"
PHYSPAGES="0:9223372036854775807"
NUMIPTENT="128:128"
# Parametri di quota disco (sotto forma di softlimit:hardlimit)
DISKSPACE="1048576:1153434"
DISKINODES="200000:220000"
QUOTATIME="0"
# Parametro del fair scheduler CPU
CPUUNITS="1000"
OFFLINE_MANAGEMENT="yes"
VE_ROOT="/var/lib/vz/root/$VEID"
VE_PRIVATE="/var/lib/vz/private/$VEID"
OSTEMPLATE="debian-3.1-amd64-minimal"
ORIGIN_SAMPLE="vps.basic"
HOSTNAME="101.mytest.org"
IP_ADDRESS="10.0.0.101"
NAMESERVER="10.0.0.2"
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.