Arquivo março 2011

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.

Debian – Melhorias no sistema de instalação

Plataformas removidas

O instalador do Debian 6.0 não suporta mais as arquiteturas ALPHA e ARM.

Adicionado suporte ao kernel kFreeBSD

Na versão 6.0, pode ser utilizado o kFreeBSD ao invés do Linux Kernel.

Grub 2 Gerenciador de boot padrão

O Grub 2 tournou-se o gerenciador de boot padrão no Debian 6.0.

Ajuda durante o processo de instalação

O processo de instalação agora conta com diálogos de ajuda, a característica não está disponível em todas as opções, mas futuramente será utilizada em mais etapas do processo de instalação.

Instalação de pacotes recomendados

O processo de instalação instalará automaticamente os pacotes recomendados, exceto em casos em que esta opção cause resultados indesejáveis.

Instalação automática de pacotes específicos para hardware

O sistema selecionará automaticamente a instalação de pacotes específicos para hardware quando necessário.

Suporte para instalação de lançamentos anteriores

O sistema de instalação pode também ser usado para instalar o lançamento anterior, como o Lenny.

Seleção de mirror melhorada

O sistema de instalação apresenta suporte melhorado para instalar tanto o Squeeze como o Lenny e lançamentos mais antigos (através do uso do archive.debian.org). Além disto, irá também verificar que o mirror escolhido é consistente e mantém o lançamento selecionado.

Alterações nas funcionalidade de particionamento

Este lançamento do instalador suporta o uso do sistema de arquivos ext4 e também simplifica a criação de sistemas RAID, LVM, e sistemas protegidos por encriptação. Suporte para o reiserfs já não é incluído como padrão, apesar de poder ser carregado opcionalmente.

Suporte para carregamento de pacotes e firmware durante a instalação

Possibilidade de carregar arquivos contendo firmwares durante a instalação, esta funcionalidade pode ser utilizada para instalar suporte a hardwares com firmwares não livres, já que os mesmos foram removidos do kernel main.

Novos idiomas

Foi adicionado o suporte a 7 novos idiomas, sendo Asturiano, Estónio, Islandês, Cazaque e Persa adicionados em modo gráfico e modo texto. Kannada, Lao, Sinhala e Telugu foram adicionados ao instalador gráfico e Tailandês, anteriormente apenas disponível na interface gráfica, está agora também disponível no modo texto.  deviod a falta de atualizações de tradução, os idiomas Wolof e Galês foram removidos.

Seleção de localização melhorada

A seleção de valores relacionados com a localização (idioma, localização e definições regionais) é agora menos interdependente e mais flexível. Os utilizadores podem escolher o sistema de acordo com as suas necessidades de localização mais facilmente enquanto se mantém confortável para que os utilizadores escolham as definições mais comuns para o seu país. Além disso, as consequências das escolhas de localização (como o fuso horário, mapa de teclado e selecção de mirror) são agora muito mais óbvias para o utilizador.

Instalação do sistema live

O instalador agora suporta sistemas live de duas formas. Primeiro, o instalador incluido em mídia de sistemas live pode utilizar o conteúdo do sistemas live em lugar da usual instalação do sistema base. Em segundo, o instalador pode agora ser lançado enquanto executa o sistema live, permitindo ao utilizador fazer outras coisas com o sistema live durante a instalação. Ambas as funcionalidades estão nas images Debian Live oferecidas em http://cdimage.debian.org/.

Fonte: http://www.debian.org/releases/stable/