Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Installazione e utilizzo di OpenVZ su CentOS 5.6

In questa guida mi limiterò a descrivere come preparare un server CentOS 5.6 per OpenVZ. Con OpenVZ è possibile creare più Virtual Private Server (VPS) sullo stesso hardware, simile a Xen e il progetto Linux Vserver. OpenVZ è il ramo di open source di Virtuozzo, una soluzione di virtualizzazione commerciale utilizzata da molti provider che offrono server virtuali. La patch del kernel di OpenVZ è concesso in licenza sotto la licenza GPL, e gli strumenti di livello utente sono sotto licenza QPL.

Questo howto è da intendersi come una guida pratica; non copre gli sfondi teorici. Sono trattati in un sacco di altri documenti nel web.

Questo documento viene fornito senza garanzia di alcun tipo! Voglio dire che questo non è l’unico modo di impostazione di un tale sistema. Ci sono molti modi per raggiungere questo obiettivo, ma questo è il modo di che prendere. Io non rilasciano alcuna garanzia che questo funziona per voi!

 

1 installare OpenVZ

Per poter installare OpenVZ, abbiamo bisogno di aggiungere il repository di OpenVZ per yum:

CD /etc/yum.repos.d
wget http://download.openvz.org/openvz.repo
rpm–import http://download.openvz.org/RPM-GPG-Key-OpenVZ

Il repository contiene pochi diversi OpenVZ kernel (si possono trovare maggiori informazioni qui:http://wiki.openvz.org/Kernel_flavors). Il comando

yum search ovzkernel

viene illustrato il kernel disponibili:

[root@server1 yum.repos.d]# yum search ovzkernel

ovzkernel.i686: Virtuozzo Linux kernel (il cuore del sistema operativo Linux)
ovzkernel.x86_64: Virtuozzo Linux kernel (il cuore del sistema operativo Linux)
ovzkernel-PAE.i686: il kernel di Linux compilato per macchine in grado di PAE.
ovzkernel-PAE-debug.i686: il kernel di Linux PAE compilato con la configurazione di debug
ovzkernel-PAE-devel.i686: pacchetto di sviluppo per la creazione di moduli del kernel per abbinare il kernel PAE.
ovzkernel-debug.i686: il kernel di Linux compilato con la configurazione di debug
ovzkernel-debug.x86_64: il kernel di Linux compilato con la configurazione di debug
ovzkernel-devel.i686: pacchetto di sviluppo per la creazione di moduli del kernel per abbinare il kernel.
ovzkernel-devel.x86_64: pacchetto di sviluppo per la creazione di moduli del kernel per abbinare il kernel.
ovzkernel-ent.i686: il kernel di Linux compilato per macchine in grado di enorme mem.
ovzkernel-ent-debug.i686: il kernel di Linux ent compilato con la configurazione di debug
ovzkernel-ent-devel.i686: pacchetto di sviluppo per la creazione di moduli del kernel per abbinare il kernel ent.
ovzkernel-xen.i686: il kernel di Linux compilato per le operazioni di VM Xen
ovzkernel-xen.x86_64: il kernel di Linux compilato per le operazioni di VM Xen
ovzkernel-xen-devel.i686: pacchetto di sviluppo per la creazione di moduli del kernel per abbinare il kernel.
ovzkernel-xen-devel.x86_64: pacchetto di sviluppo per la creazione di moduli del kernel per abbinare il kernel.
[root@server1 yum.repos.d]#

Scegline uno e installarlo come segue:

yum install ovzkernel

Questo dovrebbe automaticamente aggiornare il bootloader GRUB pure. In ogni caso, dovremmo aprire /boot/grub/menu.lstla prima strofa del kernel deve contenere il nuovo kernel di OpenVZ. Il titolo di quel kernel appena legge “CentOS”. Penso che sia una buona idea per cambiare quel titolo e aggiungere qualcosa con “OpenVZ” ad esso in modo che sai che è il kernel di OpenVZ. Inoltre, assicurarsi che il valore predefinito è 0 in modo che il primo kernel (kernel OpenVZ) viene avviato automaticamente anziché il kernel di CentOS predefinito.

vi /boot/grub/menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS OpenVZ (2.6.18-238.5.1.el5.028stab085.5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-238.5.1.el5.028stab085.5 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.18-238.5.1.el5.028stab085.5.img
title CentOS (2.6.18-238.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-238.el5 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.18-238.el5.img

Ora installare alcuni strumenti utente OpenVZ:

yum install vzctl vzquota

Aprire /etc/sysctl.conf e assicurarsi di avere le seguenti impostazioni in esso:

vi /etc/sysctl.conf
[...]
net.ipv4.ip_forward = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.default.forwarding=1
[...]

Se è necessario modificare /etc/sysctl.conf, eseguire

sysctl -p 

in seguito.

Il passo successivo è importante se gli indirizzi IP delle macchine virtuali da una subnet diversa rispetto a indirizzo IP del sistema host. Se non lo fate, la rete non funzionerà nelle macchine virtuali!

Aprire /etc/vz/vz.conf e impostare NEIGHBOUR_DEVS su tutte le:

vi /etc/vz/vz.conf
[...]
NEIGHBOUR_DEVS=all
[...]

SELinux needs to be disabled if you want to use OpenVZ. Open /etc/sysconfig/selinux and set the value of SELINUX to disabled:

vi /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted

Infine, riavviare il sistema:

reboot

Se il sistema si riavvia senza problemi, quindi tutto va bene!

Correre

uname -r

e il nuovo kernel di OpenVZ dovrebbe comparire:

[root@server1 ~] # uname – r
2.6.18-238.5.1.el5.028stab085.5
[root@server1 ~]#

2 usando OpenVZ

Prima possiamo creare macchine virtuali con OpenVZ, abbiamo bisogno di avere un modello per la distribuzione che si desidera utilizzare nelle macchine virtuali nella directory /vz/template/cache . Le macchine virtuali verrà create da tale modello. È possibile trovare un elenco di importando modelli su http://wiki.openvz.org/Download/template/precreated.

Voglio usare CentOS 5 in macchine virtuali, quindi scaricare un modello di CentOS 5:

CD /vz/template/cache
wget http://download.openvz.org/template/precreated/centos-5-x86.tar.gz

Ora vi mostrerà i comandi di base per l’utilizzo di OpenVZ.

Per impostare un VPS dal modello predefinito di CentOS 5, eseguire:

vzctl create 101 --ostemplate centos-5-x86 --config basic

Il 101 deve essere un ID uniqe – ogni macchina virtuale deve avere un proprio ID univoco. È possibile utilizzare l’ultima parte dell’indirizzo IP della macchina virtuale per esso. Ad esempio, se l’indirizzo IP della macchina virtuale è 192.168.0.101, è utilizzare 101 come ID.

Se si desidera avere la vm lanciata all’avvio, eseguire

vzctl set 101 --onboot yes --save

Per impostare un nome host e indirizzo IP per la macchina virtuale, eseguire:

vzctl impostare 101– hostname test.esempio.com…
salvare vzctl serie 101 – ipadd 192.168.0.101…

Successivamente abbiamo impostato il numero di socket a 120 e assegnare alcuni nameservers alla vm:

impostare vzctl 101 – numothersock 120 – Salva
salvare vzctl serie 101 – nameserver 8.8.8.8 – nameserver 8.8.4.4 – nameserver 145.253.2.75…

(Invece di utilizzare i comandi vzctl impostato , è possibile modificare anche direttamente i file di configurazione della macchina virtuale che viene memorizzato nella directory /etc/vz/conf . Se l’ID di vm è 101, quindi il file di configurazione è /etc/vz/conf/101.conf.)

Per avviare la macchina virtuale, eseguire

vzctl start 101 

Per impostare una password di root per vm, eseguire

vzctl exec 101 passwd

È ora possibile o connettersi alla macchina virtuale tramite SSH (ad es. con PuTTY), o si entra come segue:

vzctl enter 101 

Per uscire dalla console della macchina virtuale, digitare

exit

Per arrestare una macchina virtuale, eseguire

vzctl stop 101

Per riavviare una macchina virtuale, eseguire

vzctl restart 101

Per eliminare una macchina virtuale dal disco rigido (deve essere fermato prima che è possibile farlo), eseguire

vzctl destroy 101 

Per ottenere un elenco di macchine virtuali e il relativo stato, eseguire

vzlist -a

[root@server1 cache] # vzlist – a
CTID NPROC STATUS IP_ADDR HOSTNAME
101 correnti 192.168.0.101 14 test.esempio.com
[root@server1 cache] #

Per saperne di più sulle risorse allocate a una macchina virtuale, eseguire

vzctl exec 101 cat /proc/user_beancounters 

[root@server1 cache] # vzctl exec 101 cat/proc/user_beancounters
Versione: 2.5
UID risorsa contenuta maxheld barriera limite failcnt
101: kmemsize 1508202 1661695 11055923 11377049 0
lockedpages 0 0 256 256 0
privvmpages 5430 7102 65536 69632 0
shmpages 381 381 21504 21504 0
manichino 0 0 0 0 0
Numproc 19 21 240 240 0
physpages 2489 2775 0 2147483647 0
vmguarpages 0 0 33792 2147483647 0
oomguarpages 2489 2775 26112 2147483647 0
numtcpsock 5 5 360 360 0
numflock 3 4 188 206 0
Numpty 0 1 16 16 0
numsiginfo 0 2 256 256 0
tcpsndbuf 44720 0 1720320 2703360 0
tcprcvbuf 81920 0 1720320 2703360 0
othersockbuf 13144 14356 1126080 2097152 0
dgramrcvbuf 0 8380 262144 262144 0
numothersock 11 13 120 120 0
dcachesize 0 0 3409920 3624960 0
numfile 503 531 9312 9312 0
manichino 0 0 0 0 0
manichino 0 0 0 0 0
manichino 0 0 0 0 0
numiptent 10 10 128 128 0
[root@server1 cache] #

La colonna failcnt è molto importante, deve contenere solo zeri; Se così non fosse, ciò significa che la macchina virtuale ha bisogno di più risorse di quante sono attualmente allocata alla macchina virtuale. Aprire il file di configurazione della macchina virtuale in /etc/vz/conf e sollevare la risorsa appropriata, quindi riavviare la macchina virtuale.

Per scoprire ulteriori informazioni sul comando vzctl, eseguire

man vzctl 

 

Piaciuto l'articolo? Condividilo sui social!

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp