OpenVZ e Conteineres

OpenVZ e Conteineres

O OpenVZ é uma solução baseada em conteineres para Linux. O OpenVZ é capaz de criar mútiplos, seguros e isolados conteineres (também conhecidos como VE (Virtual Environment) ou VPS (Virtual Private Server)) em um único servidor físico fornecendo uma melhor utilização do servidor sem impedir que ocorra conflitos entre as aplicações. Cada conteinere é executado exatamente como um servidor dedicado, um conteinere pode ser reiniciado, ter seu endereço ip modificado, ter as senhas de seus usuários modificadas e até mesmo sofrer alterações de hardware como quantidade de memória e espaço em disco. Veremos neste artigo, as principais formas de gerenciamento de um sistema utilizando o OpenVZ, neste estudo assumiremos que você já possui um servidor com Debian Squeeze (Stable na data da publicação deste documento) instalado e funcionando corretamente. Caso utilize outra versão do Debian, não há problemas basta modificar algumas ações como versão do kernel ou um ou outro arquivo de configuração :D A instalação do OpenVZ é bem simples, basta instalar a versão do kernel com suporte ao OpenVZ, para identificar a versão de seu kernel você pode utilizar o comando uname -r, em seguida com auxílio do apt-get você será capaz de instalar o OpenVZ, lembrando que utilizaremos um programa auxiliar para gerenciamento, o vzctl. Portanto abaixo efetuamos a instalação de ambos:

server:/# apt-get install linux-image-openvz-amd64 vzctl

Após efetuada a instalação, são necessários alguns ajustes no sistema, iniciaremos modificando o conteúdo do arquivo /etc/sysctl.conf, para tanto efetue backup da versão atual de seu arquivo e mantenha o mesmo com os seguintes valores:

net.ipv4.conf.all.send_redirects = 0
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_source_route = 0
kernel.sysrq = 1
kernel.core_uses_pid = 1
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.tcp_fin_timeout = 25
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.tcp_reordering = 5
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_max_syn_backlog = 2048
net.core.netdev_max_backlog = 1024
net.ipv4.tcp_max_tw_buckets = 360000
net.core.rmem_default = 65535
net.core.rmem_max = 8388608
net.ipv4.tcp_rmem = 4096 87380 8388608
net.core.wmem_default = 65535
net.core.wmem_max = 8388608
net.ipv4.tcp_wmem = 4096 65535 8388608
net.ipv4.tcp_mem = 8388608 8388608 8388608
net.core.optmem_max = 40960
net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.default.proxy_arp = 1
net.ipv4.conf.default.send_redirects = 1

Como o OpenVZ trabalha diretamente com o kernel do Linux, estas alterações se fazem necessárias no arquivo /etc/sysctl.conf, para que as mesmas tenham efeito sem que o servidor precise ser reiniciado, é necessário executar o comando sysctl -w. Após este procedimento nosso sistema está preparado para trabalhar com o OpenVZ, bastando apenas baixar o template, que no caso é uma pré instalação do sistema operacional que estaremos instalado, o mesmo pode ser baixado aqui. No caso escolhemos uma imagem mínima do Debian, mas sinta-se a vontade para baixar a imagem desejada. Após baixar a imagem, salve-a em /var/lib/vz/template/cache/.

Criaremos agora nossa máquina virtualcom a seguinte linha de comandos:

server:~# vzctl create 100 --config basic --ostemplate debian-5.0-x86_64

Repare que utilizamos o comando vzctl com a opção create e o número 100, este é um identificador deste servidor para questões de organização, o mesmo não pode se repetir, pois é a identificação de cada servidor virtual no sistema, e com a opção –ostemplate informamos o template desejado, no caso o que acabamos de baixar. Um detalhe importante é que na hora da especificação do template deve ser omitida a extensão .tar.gz. Abaixo definimos os limites de espaço em disco:

server:~# vzctl set 100 --diskspace 10G:10G --save

Como desejamos configurar a memória de 256MB destinada a este vps, manteremos os limites mínimo e máximo com as seguintes linhas de comando:

server:~# vzctl set 100 --vmguarpages 256m --save
server:~# vzctl set 100 --privvmpages 256m --save

Abaixo configuramos o vps para ser inicializado no boot do servidor dedicado:

server:~# vzctl set 100 --onboot yes --save

O comando vzctl é bastante intuitivo, definiremos agora o hostname do servidor:

server:~# vzctl set 100 --hostname server-vps --save

Endreço ip:

server:~# vzctl set 100 --ipadd 192.168.0.200 --save

Chegando perto da finalização da configuração, iremos agora definir o servidor de nomes utilizado:

server:~# vzctl set 100 --nameserver 192.168.0.245 --save

E finalmente iniciaremos nosso vps:

server:~# vzctl start 100

Com o vps iniciado,utilizamos o comando vzctl com o parâmetro enter, a partir deste ponto nosso servidor já está totalmente funcional. Para sair basta digitar o comando exit:

server:~# vzctl enter 100
entered into CT 100
server-vps:/#

Apartir deste momento, possuímos um servidor na rede da mesma forma que um servidor físico, portanto os cuidados com segurança, atualizações de software e administração do sistema são exatamente os mesmos.

administrador

Os comentários estão fechados.