OpenVZ Web Panel 2.1 no CentOS 6

O OpenVZ é um kernel linux modificado para permitir o isolamento de uma série de recursos entre cada ambiente. Ele permite: Isolamento dos ambientes, impedindo interferências e garantindo a segurança de um ambiente sobre o outro gerenciamento dos recursos, limitando ou garantindo para determinados ambientes recursos de CPU, RAM, disco e rede checkpointing – permitindo que os ambientes sejam “gravados” e “congelados” em um estado, podendo ser reassumido futuramente. É conhecido como paravirtualização, ou ainda virtualização baseada em containers.

Link bacana que aborda um pouco mais sobre VPS’s
http://www.kerodicas.com/dicas/artigo=47608/

Passo 1 – Instalando o repositório OpenVZ para o CentOS 6

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

Passo 2 – Instalando os pacotes necessários

# yum install vzkernel vim bridge-utils xorg-x11-xauth libcanberra-gtk2 vzctl vzquota virt-what system-config-firewall-tui.noarch

Passo 3 – Configurando a rede como Bridge
OBS: Caso venha configurar os Containers como Bridge

# cd /etc/sysconfig/network-scripts/
# vim ifcfg-eth0
DEVICE="eth0"
HWADDR="MAC"
NM_CONTROLLED="no"
ONBOOT="yes"
BRIDGE="br0"

OBS: No meu caso estou usando um IP fixo determinado como 192.168.1.30

# vim ifcfg-br0
DEVICE="br0"
TYPE="Bridge"
BOOTPROTO="static"
ONBOOT="yes"
IPADDR="192.168.1.30"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
IPV6INIT="NO"
NAME="Bridge eth0"
NM_CONTROLLED="no"
DELAY="0"
USERCTL="no"

Rede configurada.

Passo 4 – Desabilitando o Selinux

# vim /etc/selinux/config
SELINUX=disabled

Passo 5 – Configurando o arquivo sysctl.conf

# vim /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
#kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1
# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
# CONFIGURAÇÃO PARA OPENVZ
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

Passo 6 – Criando um Volume Lógico de 100GB com o rótulo chamado openvz
OBS: Lembrando que o meu servidor ja está com o LVM ativo, e o nome do meu Grupo de Volumes é storage_lvm

# lvcreate -L 100G -n openvz storage_lvm
  Logical volume "openvz" created

[root@virtualizador /]

# lvdisplay — Logical volume — LV Name /dev/storage_lvm/openvz VG Name storage_lvm LV UUID 4S4tHY-upIj-bci2-GlOF-xy9D-J2nf-H2tMp5 LV Write Access read/write LV Status available # open 0 LV Size 100,00 GiB Current LE 25600 Segments 1 Allocation inherit Read ahead sectors auto – currently set to 256 Block device 253:0

# mkfs.ext4 /dev/storage_lvm/openvz
# mkdir /openvz
# mount /dev/storage_lvm/openvz /openvz/
# cd /openvz
# mkdir dump lock private root template vztmp

Configurando o arquivo fstab

# vim /etc/fstab
/dev/storage_lvm/openvz /openvz ext4 defaults 0 0 

OBS: Agora todos os templates, containers e backups serão armazenados dentro do diretório /openvz

Passo 7 – Alterando algumas configurações dentro do arquivo vz.conf

# vi /etc/vz/vz.conf 
## Global parameters
VIRTUOZZO=yes
LOCKDIR=/openvz/lock
DUMPDIR=/openvz/dump
VE0CPUUNITS=1000
NEIGHBOUR_DEVS=all
## Fail if there is another machine in the network with the same IP
ERROR_ON_ARPFAIL="no"
## Template parameters
TEMPLATE=/openvz/template
## Defaults for containers
VE_ROOT=/openvz/root/$VEID
VE_PRIVATE=/openvz/private/$VEID
IPV6="no"
# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.30    virtualizador   virtualizador.d2d.com.br

Passo 8 – Desabilitando o firewall

# system-config-firewall-tui

Passo 9 – Reinicie o servidor

# init 6

Passo 10 – Instalando o Openvz Panel 2.1

wget -O - http://ovz-web-panel.googlecode.com/svn/installer/ai.sh | sh

OBS: Pode ir tomar um café…

Passo 11 – Com o servidor reiniciado, vamos brincar um pouco com o Openvz Para acessar o Openvz Panel, utilize o IP do servidor Openvz. No meu caso é: http://192.168.1.30:3000

Passo 12 – Liberando os pacotes INPUT/OUTPUT entre as redes (Servidor Openvz e Containers)

OBS: Faça um script para sempre inicar junto com o Sistema Operacional
OBS: Rede 192.168.100.1/28 pertencem a rede das VPS’s, definida dentro do OpenVZ Panel

# iptables -t nat -A POSTROUTING -o br0 -s 192.168.100.0/28 -j MASQUERADE

Definindo um range de IP’s dentro do Openvz Panel

Pronto até aqui qualquer vps que for adicionada irá trocar seus pacotes com qualquer rede que chega até o servidor Openvz.

Rede Bridge e Pública

Neste passo remova a regra abaixo definida acima para encaminhamento dos pacotes vindo da rede do servidor Openvz

# iptables -t nat -D POSTROUTING -o br0 -s 192.168.100.0/24 -j MASQUERADE

Agora Basta realizar as configurações abaixo no servidor Openvz
OBS: No meu caso estou criando as regras para a VPS de ID 100. Um outro ponto é que para chegar neste passo é preciso que a rede esteja configurada como Bridge

# vzctl start 100
# vzctl set 100 --netif_add eth0 --save
# vzctl exec 100 ifconfig eth0 192.168.1.210/24
# brctl addif br0 veth100.0
# vzctl exec 100 ip route add default via 192.168.1.1 dev eth0

Instalando uma VPS

Hostname: vps1
Tamanho: 20Gb
S.Operacional: CentOS 6
IP Bridge: 192.168.1.210/24
Gateway: 192.168.1.1
DNS: 192.168.1.1 192.168.1.9

A instalação será feita pelo Openvz Panel e a otimização feita por linha de comando

Agora pelo terminal vamos fazer as otimizações

# vzctl enter 101
[root@vps1 /]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/simfs             20G  621M   19G   4% /
none                  128M  4.0K  128M   1% /dev
none                  128M     0  128M   0% /dev/shm
# exit
# vim /etc/vz/conf/101.conf
# vzctl set 101 --privvmpages 1024:2048M --save 
UB limits were set successfully
CT configuration saved to /etc/vz/conf/101.conf

O primeiro valor é a quantidade de memória garantida a VPS. Essa é a quantidade de memória que a VPS, independentemente da situação, pode utilizar. O segundo valor é o máximo de memória que a VPS pode utilizar. É possível também limitar a porcentagem de CPU destinada a cada VPS através do parâmetro cpulimit.

# vzctl set 101 --cpulimit 25% --save
Setting CPU limit: 100
CT configuration saved to /etc/vz/conf/101.conf

Note que se a máquina possuir dois processadores, o valor total é 200%. Limitando disco Podemos limitar o uso de disco entre VE’s através do parâmetro diskspace.

# vzctl set 101 --diskspace 20G:40G --save
CT configuration saved to /etc/vz/conf/101.conf

Limitando o uso de Swap

# vzctl set 101 --swappages 0:1024M --save 

Alguns outros parâmetros:

--numproc : Número máximo de processos
--ioprio : Prioridade para realizar I/O. Valor entre 0 e 7
--numtcpsock : Número máximo de sockets TCP
--numothersock : Número máximo de sockets não TCP

Reiniciando a VPS

# vzctl restart 101

Agora basta configurar a rede da VPS dentro do servidor Openvz

# vzctl set 101 --netif_add eth0 --save
Configure veth devices: veth101.0 
CT configuration saved to /etc/vz/conf/101.conf
# vzctl exec 101 ifconfig eth0 192.168.1.210/24
# brctl addif br0 veth101.0
# vzctl exec 101 ip route add default via 192.168.1.1 dev eth0

OBS: Lembrando que se a VPS for reiniciada perderá a configuração de rede, neste caso faça a reconfiguração novamente com os comandos abaixo:

# vzctl exec 101 ifconfig eth0 192.168.1.210/24
# brctl addif br0 veth101.0
# vzctl exec 101 ip route add default via 192.168.1.1 dev eth0

Passo 13 – Instalando uma nova VPS para atribuição de IP por DHCP

Hostname: vps2
Tamanho: 10Gb
S.Operacional: CentOS 6
IP Bridge: DHCP
DNS: 192.168.1.1 192.168.1.9

Configurando a rede por DHCP

# vzctl set 102 --netif_add eth0 --save
Configure veth devices: veth102.0 
CT configuration saved to /etc/vz/conf/102.conf
# ifconfig veth102.0 0
# brctl addif br0 veth102.0
# vzctl enter 102
entered into CT 102

Na VPS2 execute o comando dhclient eth0

[root@vps2 /]# dhclient eth0

[root@vps2 /]

# ifconfig eth0 Link encap:Ethernet HWaddr 00:18:51:22:88:41 inet addr:192.168.1.160 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::218:51ff:fe22:8841/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:27 errors:0 dropped:0 overruns:0 frame:0 TX packets:9 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2218 (2.1 KiB) TX bytes:984 (984.0 b) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

Lembrando que se for reiniciada a VPS será preciso recriar as configurações abaixo no servidor Openvz

# ifconfig veth102.0 0
# brctl addif br0 veth102.0

Passo 14 – Comandos de Administração: Entrando na VPS:

# vzctl enter 101

Para sair, basta digitar: # exit (Retorna para a máquina principal) Para desligar a VPS:

# vzctl stop 101

Para reiniciar a VPS:

# vzctl restart 101

Para destruir e remover a VPS:

# vzctl destroy 101

Para obter uma lista de todas as VPS e o seu status, digite:

# vzlist -a 

Iniciando a VPS junto com o sistema operacional

# vzctl set 101 --onboot yes --save

Configurando o hostname

# vzctl set 101 --hostname vps-new --save

Definindo o DNS para VPS

# vzctl set 101 --nameserver 10.1.1.43 --save Saved parameters for VPS 101

Removendo a VPS do servidor

vzctl destroy 101

Definindo a senha root da VPS

vzctl exec 101 passwd

OBS: Se quiser um servidor robusto de virtualização, você ainda pode instalar o KVM que roda perfeitamente junto com o OpenVZ

Basta instalar os pacotes do KVM

# yum install libvirt libvirt-client qemu-kvm virt-manager virt-viewer qemu-kvm-tools xorg-x11-xauth libcanberra-gtk2

Templates podem ser encontrados no link abaixo:
http://wiki.openvz.org/Download/template/precreated

Fonte do Tutorial:
http://wiki.openvz.org
http://code.google.com/p/ovz-web-panel/wiki/Installation

CATEGORIES:

Software Livre

Tags:

No responses yet

    Deixe um comentário

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *