openvz

HyperVM e Kloxo viram Open Source

Após a trágica morte de K. T. Ligesh (fundador da lxlabs e desenvolvedor do HyperVM e LxAdmin/Kloxo), formou-se o consórcio “LxCenter” para dar continuidade a estes produtos no formato Open Source.

Hoje a “LxCenter” finalmente liberou o código fonte dos dois produtos sob a licença AGPL3.0.

O post com a notícia completa do lançamento pode ser conferido aqui.

Sobre o HyperVM:
O HyperVM é um sistema completo de gerenciamento de máquinas virtuais(OpenVZ/Xen) e reais. Você pode ter controle total do seu datacenter em um painel centralizado.

Sobre o Kloxo:
Sistema de webhosting seguindo a mesma linha do ISPConfig, DirectAdmin e cPanel.
Observar que este ainda não deve ser utilizado em ambiente de produção pois possuí falhas na segurança.

Links Relacionados:
The Times Of India – Techie hangs himself in HSR Layout
Platonic – LxLabs Ligesh commits suicide
lowendbox – HyperVM and Kloxo Now Open Sourced, Hosted at LxCenter
The Register – Webhost hack wipes out data for 100,000 sites
Whatever Compliance – Hackers to VAServ: “it was ur own stupidity and excessive passwd reuse”
Forum LxCenter – Opensource Release Date

Proxmox VE – Cluster OpenVZ/KVM em 30 minutos

O Proxmox VE é uma distribuição linux baseada em debian focada exclusivamente em virtualização, utilizando OpenVZ (virtualização em container) e KVM (Virtualização completa).
Ele oferece uma interface de gerenciamento via Web onde praticamente todas as ações de manutenção podem ser realizadas.
O grande diferencial do Proxmox VE é o suporte a cluster nativo, as máquinas virtuais podem ser movidas de um servidor para outro com 2 ou 3 cliques do mouse e com um mínimo de downtime (apenas alguns segundos) e todo o gerenciamento dos servidores do cluster é realizado em um ponto central através da interface web.
Confira no video abaixo uma máquina virtual sendo migrada online!

Apesar do Proxmox VE ser um produto relativamente novo (primeira versão estável lançada em 29/10/2008) posso afirmar que por ser Open Source e com a sua maneira simplificada de gerenciar via web um cluster com 2 ambientes virtuais totalmente distintos, está rapidamente ganhando espaço no mercado.

Links do Proxmox VE
Proxmox VE Cluster
Container and Full Virtualization
Backup – Restore – Live Migration
Proxmox Download

Posts Relacionados:
Introdução a Virtualização
Howto OpenVZ no CentOS 5.x

Observação: Importante lembrar que o Proxmox VE não possuí suporte a processadores de 32bits. Você pode instalar o Proxmox VE com suporte ao OpenVZ em qualquer computador de 64bits mas para utilizar o KVM, será necessário um CPU com suporte nativo a Virtualização (Intel VT ou AMD-V)

Howto: OpenVZ no CentOS 5.x

Este tutorial é dividido em 5 partes:
1- Introdução ao OpenVZ
2- Instalação do OpenVZ no CentOS 5.X
3- Templates
4- Operações básicas do OpenVZ
5- Leitura recomendada
Ao fim deste tutorial, você terá o OpenVZ instalado e rodando com pelo menos uma máquina virtual.

1- Introdução ao OpenVZ

OpenVZ utiliza virtualização em containers para Linux. OpenVZ cria múltiplos containers de forma segura e isolada (também conhecidos como VE ou VPS) no mesmo servidor físico, permitindo uma melhor utilização do servidor e assegurando-se que as aplicações não entrem em conflito. Cada container roda exatamente como um servidor individual; um container pode ser reiniciado, ter os seus próprio usuários, memória, processos, aplicativos, bibliotecas e arquivos de configuração.
OpenVZ é um Software Livre, disponível na Licença GNU GPL
OpenVZ é a base do Parallels Virtuozzo Containers, uma solução comercial de virtualização oferecida pela Parallels. O projeto OpenVZ é patrocinado por Parallels.
Tradução Livre – OpenVZ Wiki

Para maiores informações sobre esta e/ou outras formas de virtualização consulte os Links:
Eduardo Silva – Introdução a Virtualização
OpenVZ Wiki – Introduction to Virtualization
OpenVZ – Virtualization in Linux
Wikipedia – OpenVZ

Video: A brief Introduction to OpenVZ – Scott Dowdle
[video:google:3811575606473768400]

2- Instalação do OpenVZ no CentOS 5.X
Pré-requisitos:
* Desabilitar o SELinux
* Partição separada para /vz/private (Recomendável, caso contrário as Quotas não funcionarão para as máquinas virtuais)

Instalando o repositório do OpenVZ

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

Instalando o Kernel:

# yum install ovzkernel

Teoricamente, após instalar o ovzkernel pelo yum, o grub já estará configurado para carregar o novo kernel no próximo boot, mesmo assim, verifique o arquivo /boot/grub/menu.lst e verifique se o novo kernel está na lista como default. Caso não esteja, a configuração deve ficar mais ou menos assim:

title CentOS (2.6.18-128.1.1.el5.028stab062.3)
root (hd0,0)
kernel /vmlinuz-2.6.18-128.1.1.el5.028stab062.3 ro root=LABEL=/
initrd /initrd-2.6.18-128.1.1.el5.028stab062.3.img

Edite o arquivo /etc/sysctl.conf e edite os parâmetros das opções listadas abaixo

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

Reinicie o servidor, e verifique se o kernel que foi instalado anteriormente está rodando:

# uname -a
Linux ovztest.exemplo.com.br 2.6.18-128.1.1.el5.028stab062.3 #1 SMP Tue May 5 17:31:34 MSD 2009 i686 i686 i386 GNU/Linux

Agora instale as principais ferramentas de gerenciamento do OpenVZ utilizando o YUM:

# yum install vzctl vzquota
# yum install vzpkg vzyum vzrpm43-python vzrpm44-python vzctl-lib (Requer python 2.2, 2.3 ou 2.4. Não funciona com python 2.5 ou com o kernel de 64bits)

Inicialize o serviço “vz” e observe se este carregou corretamente.

# service vz start
Starting OpenVZ: [ OK ]

3- Templates
O OpenVZ utiliza templates de sistemas operacionais para criar um novo container. Neste tutorial, iremos utilizar templates pré-criados disponíveis em: http://wiki.openvz.org/Download/template/precreated escolha a sua distribuição favorita e faça o download. Ex: centos-5-x86.tar.gz

Caso queira criar o seu próprio template, visite a Wiki do OpenVZ e procure as intruções para criar um template da distribuição escolhida. Alguns exemplos:
* Creating a CentOS 5.0 Template
Gentoo template creation

Observar que o OpenVZ permite rodar distribuições distintas de Linux no mesmo servidor.
Coloque o(s) seu(s) template(s) escolhido(s) “SEM DESCOMPACTAR” em /vz/template/cache/

4- Operações básicas do OpenVZ
É importante observar que o OpenVZ utiliza números (CTID) para identificar as máquinas virtuais. A faixa de 0 a 100 é reservada para o OpenVZ e não deve ser utilizada (principalmente o ID 0). Uma recomendação para evitar conflitos na migração de VPSs entre servidores e facilitar a identificação (saber que o VPS XXXX está no servidor YY), seria utilizar “pre-fixos” para cada servidor. Exemplo
Servidor 1 – CTID começa por 1. EX: 1101
Servidor 2 – CTID começa por 2. EX: 2135

Criando um VPS:

# vzctl create 101 –ostemplate centos-5-x86 –hostname vps1.exemplo.com.br
Unable to get full ostemplate name for centos-5-x86
Creating container private area (centos-5-x86)
Performing postcreate actions
Container private area was created

O Comando acima irá criar uma máquina virtual com o CTID 101 utilizando o template centos-5-x86 com o hostname vps1.exemplo.com.br

Configurando a rede do container:

# vzctl set 101 –ipadd 192.168.100.223 –save
Saved parameters for CT 101
# vzctl set 101 –nameserver 192.168.100.223 –save
Saved parameters for CT 101

Configurando o container para inicializar durante o boot

# vzctl set 101 –onboot yes –save
Saved parameters for VPS 101

Inicializando o container:

# vzctl start 101
Starting container …
Container is mounted
Adding IP address(es): 192.168.100.223
Setting CPU units: 1000
Configure meminfo: 65536
Set hostname: vps1.exemplo.com.br
File resolv.conf was modified
Container start in progress…

Lista dos VPSs hospedados no servidor:

# vzlist
CTID NPROC STATUS IP_ADDR HOSTNAME
101 12 running 192.168.100.223 vps1.exemplo.com.br

Entrando no VPS:

# vzctl enter 101
entered into CT 101
[root@vps1 /]# uname -a
Linux vps1.exemplo.com.br 2.6.18-128.1.1.el5.028stab062.3 #1 SMP Tue May 5 17:31:34 MSD 2009 i686 i686 i386 GNU/Linux
[root@vps1 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/simfs 1.0G 492M 533M 48% /
none 505M 4.0K 505M 1% /dev

Executando um comando de fora do VPS:

# vzctl exec 101 service sshd start
Starting sshd: [ OK ]

Realizando um backup (dump) completo de todas as máquinas virtuais hospedadas no servidor (sem interromper os serviços):

# vzdump –snapshot –compress –dumpdir /backup –all

Parando o VPS

# vzctl stop 101
Stopping container …
Container was stopped
Container is unmounted

Destruindo um VPS (preciso avisar que todos os arquivos que estão contidos no container serão perdidos para sempre?) :P
# vzctl destroy 101
Destroying container private area: /vz/private/101
Container private area was destroyed

Restaurando um backup:

vzdump –restore vzdump-101.tgz 101

5- Leitura recomendada
Abaixo alguns links com leitura recomendada
OpenVZ User’s guide (Completo, mas principalmente a o capítulo Managing Resources)
OpenVZ Wiki
MediaWiki – OpenVZ

Qualquer dúvida, problema, correção elogio ou xingamento, utilize o campo de comentários logo abaixo :)