Virtualizando Com o OpenVZ _ Blog Do Scardini
Transcript of Virtualizando Com o OpenVZ _ Blog Do Scardini
-
7/22/2019 Virtualizando Com o OpenVZ _ Blog Do Scardini
1/11
9/12/12 Virtualizando com o OpenVZ | Blog do Scardini
scardini.net/?p=58
Virtualizando com o OpenVZ
Publicado em 27 de setembro de 2010
1 Introduo
O OpenVZ uma tecnologia de virtualizao para ambientes Linux que difere de outras por
ser uma virtualizao a nvel de Sistema Operacional e no de Hardware. A virtualizao
do OpenVZ baseada no sistema Linux com um kernel modificado.
O OpenVZ cria containers (instncias virtuais do sistema operacional) que rodam em uma
nica mquina fsica compartilhando o mesmo hardware, mas cada um deles se
comportando como se fosse uma nova mquina com todos os componentes de softwares
independentes do sistema hospedeiro.
Por no virtualizar um hardware, os containers ficam restritos a sistemas Linux com um
kernel compatvel com o kernel da mquina real. Mas em contra partida, h uma perda de
desempenho de apenas de 1 a 3%, quando comparado com a utilizao de um servidor
standalone.
O OpenVZ licenciado sob a verso 2 da GPL, sendo um projeto da Parallels. A Parallels
utiliza o OpenVZ como base da soluo Parallels Virtuozzo Containers, um software
proprietrio produzido e fornecido pela Parallels.
A nossa mquina real a ser virtualizada com o OpenVZ ser um CentOS verso 5.5 de 64
bits. Vamos criar dois containers com o OpenVZ.
Este procedimento pode ser efetuado dentro da mquina virtual criada no post Criando
uma Mquina Virtual com o VMware Player ou em uma maquina real com o CentOS
instalado. possvel tambm utilizar outras distribuies Linux de sua preferncia, apenas
observando as verses Linux/kernel suportadas pelo projeto OpenVZ. Se voc utilizar uma
distribuio no baseada em rpm/yum, alguns passos sero diferentes dos apresentados
aqui.
Nossa estrutura de virtualizao apresentada no esquema abaixo:
Blog do Scardini
S mais um site de TI, Linux, Modelos Numricos,
http://scardini.net/?p=58http://scardini.net/http://scardini.net/http://scardini.net/?p=7http://scardini.net/?p=58 -
7/22/2019 Virtualizando Com o OpenVZ _ Blog Do Scardini
2/11
Nvel de Virtualizao Sistema
Operacional
Tecnologia
De Virtualizao
Maquina Real Windows 7 64-bits -
1 Nvel CentOS 5.5 64-bits VMware Player
2 Nvel CentOS 5.5 64-bits OpenVZ
2 Mos a Obra
O primeiro passo para instalar o OpenVZ baixar e instalar os softwares necessrios.
Para nossa comodidade o projeto OpenVZ disponibiliza um repositrio para YUM/RPM.
Ento basta adicionar este repositrio e efetuar toda a instalao via YUM.
Primeiro baixe a configurao do repositrio:
Cdigo
cd /etc/yum.repos.d/
wget http://download.openvz.org/openvz.repo
Verifique o arquivo baixado, por padro ele contm uma srie de definies de repositrios
para vrias verses de sistema, no nosso caso devemos ativar os seguintes itens:
1) RHEL5-based kernel
2) OpenVZ utilities.
Exemplo do arquivo openvz.repo:
Cdigo
[openvz-utils]
name=OpenVZ utilities
Estru tur a de v irtua lizao utilizada
http://scardini.net/wp-content/plugins/wp-synhighlight/About.htmlhttp://scardini.net/?p=58#codesyntax_2http://scardini.net/?p=58#codesyntax_2http://scardini.net/?p=58#codesyntax_2http://scardini.net/wp-content/plugins/wp-synhighlight/About.htmlhttp://scardini.net/?p=58#codesyntax_1http://scardini.net/?p=58#codesyntax_1http://scardini.net/?p=58#codesyntax_1http://scardini.net/wp-content/uploads/2010/09/OpenVZ01.png -
7/22/2019 Virtualizando Com o OpenVZ _ Blog Do Scardini
3/11
9/12/12 Virtualizando com o OpenVZ | Blog do Scardini
3/11scardini.net/?p=58
#baseurl=http://download.openvz.org/current/
mirrorlist=http://download.openvz.org/mirrors-current
enabled=1
gpgcheck=1
gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ
# In addition to openvz-utils repo, you have to enable one the the
# kernel repositories below. In the stock config, openvz-kernel-rhel5
# is enabled; you might want to change this.
# Stable bracnhes
[openvz-kernel-rhel5]
name=OpenVZ RHEL5-based kernel
#baseurl=http://download.openvz.org/kernel/branches/rhel5-2.6.18/current/
mirrorlist=http://download.openvz.org/kernel/mirrors-rhel5-2.6.18
enabled=1
gpgcheck=1
gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ
[openvz-kernel-rhel4]
name=OpenVZ RHEL4-based kernel
#baseurl=http://download.openvz.org/kernel/branches/rhel4-2.6.9/current/
mirrorlist=http://download.openvz.org/kernel/mirrors-rhel4-2.6.9
enabled=0
gpgcheck=1
gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ
# Testing branch
[openvz-kernel-rhel5-testing]name=OpenVZ RHEL5-based testing kernel
#baseurl=http://download.openvz.org/kernel/branches/rhel5-2.6.18-testing/current/
mirrorlist=http://download.openvz.org/kernel/mirrors-rhel5-2.6.18-testing
enabled=0
gpgcheck=1
gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ
# Development branches
[openvz-kernel-2.6.32]
name=OpenVZ 2.6.32 kernel#baseurl=http://download.openvz.org/kernel/branches/2.6.32/current
mirrorlist=http://download.openvz.org/kernel/mirrors-2.6.32
enabled=0
gpgcheck=1
gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ
[openvz-kernel-2.6.27]
name=OpenVZ 2.6.27 kernel
#baseurl=http://download.openvz.org/kernel/branches/2.6.27/current
mirrorlist=http://download.openvz.org/kernel/mirrors-2.6.27enabled=0
gpgcheck=1
gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ
-
7/22/2019 Virtualizando Com o OpenVZ _ Blog Do Scardini
4/11
9/12/12 Virtualizando com o OpenVZ | Blog do Scardini
4/11scardini.net/?p=58
# Old/obsoleted branches
[openvz-kernel-2.6.26]
name=OpenVZ 2.6.26 kernel
#baseurl=http://download.openvz.org/kernel/branches/2.6.26/current
mirrorlist=http://download.openvz.org/kernel/mirrors-2.6.26
enabled=0
gpgcheck=1
gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ
[openvz-kernel-2.6.24]
name=OpenVZ 2.6.24 kernel
#baseurl=http://download.openvz.org/kernel/branches/2.6.24/current
mirrorlist=http://download.openvz.org/kernel/mirrors-2.6.24
enabled=0
gpgcheck=1
gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ
[openvz-kernel-2.6.22]
name=OpenVZ 2.6.22 kernel
#baseurl=http://download.openvz.org/kernel/branches/2.6.22/current
mirrorlist=http://download.openvz.org/kernel/mirrors-2.6.22
enabled=0
gpgcheck=1
gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ
[openvz-kernel-2.6.20]
name=OpenVZ 2.6.20 kernel
#baseurl=http://download.openvz.org/kernel/branches/2.6.20/currentmirrorlist=http://download.openvz.org/kernel/mirrors-2.6.20
enabled=0
gpgcheck=1
gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ
[openvz-kernel-2.6.18]
name=OpenVZ 2.6.18 kernel
#baseurl=http://download.openvz.org/kernel/branches/2.6.18/current
mirrorlist=http://download.openvz.org/kernel/mirrors-2.6.18
enabled=0gpgcheck=1
gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ
[openvz-kernel-2.6.16]
name=OpenVZ 2.6.16 kernel
#baseurl=http://download.openvz.org/kernel/branches/2.6.16/current
mirrorlist=http://download.openvz.org/kernel/mirrors-2.6.16
enabled=0
gpgcheck=1
gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ[openvz-kernel-2.6.8]
name=OpenVZ 2.6.8 kernel
#baseurl=http://download.openvz.org/kernel/branches/2.6.8/current
-
7/22/2019 Virtualizando Com o OpenVZ _ Blog Do Scardini
5/11
9/12/12 Virtualizando com o OpenVZ | Blog do Scardini
5/11scardini.net/?p=58
mirrorlist=http://download.openvz.org/kernel/mirrors-2.6.8
enabled=0
gpgcheck=1
gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ
Importe a chave (key) do repositrio
Cdigo
rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ
Verifiique as opes de kernel do OpenVZ disponveis para instalao no seu sistema com
o comando:
Cdigo
yum search ovzkernelVoc ter uma resposta semelhante a esta:
[root@centos /]# yum search ovzkernel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: mirror.umoss.org
* base: mirrors.ucr.ac.cr
* extras: mirror.cogentco.com
* openvz-kernel-rhel5: download.openvz.org* openvz-utils: download.openvz.org
* updates: yum.singlehop.com
=============================== Matched: ovzkernel ============
ovzkernel.i686 : Virtuozzo Linux kernel (the core of the Linux
ovzkernel.x86_64 : Virtuozzo Linux kernel (the core of the Linu
ovzkernel-PAE.i686 : O ncleo do Linux compilado para mquinas
ovzkernel-PAE-debug.i686 : The Linux PAE kernel compiled with d
ovzkernel-PAE-devel.i686 : Pacote de desenvolvimento para compi
: kernel com o kernel PAE corresponden
ovzkernel-debug.i686 : The Linux kernel compiled with debug con
ovzkernel-debug.x86_64 : The Linux kernel compiled with debug c
ovzkernel-devel.i686 : Pacote de desenvolvimento para compilar
: correspondentes ao kernel.
ovzkernel-devel.x86_64 : Pacote de desenvolvimento para compila
: correspondentes ao kernel.
ovzkernel-ent.i686 : The Linux kernel compiled for huge mem cap
ovzkernel-ent-debug.i686 : The Linux ent kernel compiled with d
ovzkernel-ent-devel.i686 : Development package for building ker
: the ent kernel.
ovzkernel-xen.i686 : O kernel do Linux compilado para operaes
: virtuais Xen
ovzkernel-xen.x86_64 : O kernel do Linux compilado para opera
: virtuais Xen
http://scardini.net/wp-content/plugins/wp-synhighlight/About.htmlhttp://scardini.net/?p=58#codesyntax_4http://scardini.net/?p=58#codesyntax_4http://scardini.net/?p=58#codesyntax_4http://scardini.net/wp-content/plugins/wp-synhighlight/About.htmlhttp://scardini.net/?p=58#codesyntax_3http://scardini.net/?p=58#codesyntax_3http://scardini.net/?p=58#codesyntax_3 -
7/22/2019 Virtualizando Com o OpenVZ _ Blog Do Scardini
6/11
9/12/12 Virtualizando com o OpenVZ | Blog do Scardini
6/11scardini.net/?p=58
ovzkernel-xen-devel.i686 : Pacote de desenvolvimento para compi
: correspondentes ao kernel.
ovzkernel-xen-devel.x86_64 : Pacote de desenvolvimento para com
: correspondentes ao kernel.
[root@centos /]#
Podemos ver varias opes de kernel com suporte a OpenVZ. Para entender o quesignifica cada um dele basta entender os atributos anexados ao nome ovzkernel:
i686 Kernel para arquitetura de 32 bits
x86_64 Kernel para arquitetura de 64 bits
PAE Kernel para arquitetura de 32 bits com Physical Address Extension (PAE)
ativo. (>4GB RAM)
ent Kernel com suporte a grande capacidade de memria
xen Kernel com suporte a tecnologia de virtualizao XEN
devel headers para compilao de mdulos do kernel correspondente. Por
exemplo: ovzkernel-devel.x86_64 ovzkernel.x86_64
debug Kernel compilado com smbolos de debug
Para a minha mquina vamos instalar o kernel ovzkernel.x86_64 (opo de 64 bits), e os
headers ovzkernel-devel.x86_64 do mesmo kernel. No seu caso voc deve escolher o
kernel adequeado para o seu sistema dentre as opes retornadas no comando acima.
Aps escolher o kernel, proceda a instalao do mesmo:
Cdigo
yum install ovzkernel.x86_64*
yum install ovzkernel-devel.x86_64**
*ovzkernel.x86_64 deve ser substituido pelo kernel adequado para seu sistema
**ovzkernel-devel.x86_64 mdulo necessrio para compilar mdulos do kernel (opcional)
Agora Vamos preceder algumas alteraes na configurao da mquina para o perfeito
funcionamento do kernel OpenVZ que instalamos. Primeiro vamos verificar se o kernel
padro o novo kernel instalado, para isto abra o arquivo grub.conf :
Cdigo
vim /etc/grub.conf
http://scardini.net/wp-content/plugins/wp-synhighlight/About.htmlhttp://scardini.net/?p=58#codesyntax_6http://scardini.net/?p=58#codesyntax_6http://scardini.net/?p=58#codesyntax_6http://scardini.net/wp-content/plugins/wp-synhighlight/About.htmlhttp://scardini.net/?p=58#codesyntax_5http://scardini.net/?p=58#codesyntax_5http://scardini.net/?p=58#codesyntax_5 -
7/22/2019 Virtualizando Com o OpenVZ _ Blog Do Scardini
7/11
9/12/12 Virtualizando com o OpenVZ | Blog do Scardini
7/11scardini.net/?p=58
Se necessrio altere a propriedade default para selecionar o kernel OpenVZ instalado. Na
imagem acima est selecionada a entrada de ndice 0 (zero) da lista (kernel destacado em
laranja).
Desative o SELinux:
Cdigo
vim /etc/selinux/config
Mude a varivel SELINUX para disabled:
Cdigo
# 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
# SETLOCALDEFS= Check local definition changes
Configu ra o de boot da m quin a
http://scardini.net/wp-content/plugins/wp-synhighlight/About.htmlhttp://scardini.net/?p=58#codesyntax_8http://scardini.net/?p=58#codesyntax_8http://scardini.net/?p=58#codesyntax_8http://scardini.net/wp-content/plugins/wp-synhighlight/About.htmlhttp://scardini.net/?p=58#codesyntax_7http://scardini.net/?p=58#codesyntax_7http://scardini.net/?p=58#codesyntax_7http://scardini.net/wp-content/uploads/2010/09/grub_conf.png -
7/22/2019 Virtualizando Com o OpenVZ _ Blog Do Scardini
8/11
9/12/12 Virtualizando com o OpenVZ | Blog do Scardini
8/11
SETLOCALDEFS=0
Faa uma cpia do arquivo sysctl.conf e em seguida edite o original:
Cdigo
cp -f /etc/sysctl.conf /etc/sysctl.conf.bkp
vim /etc/sysctl.confO original deve ficar assim:
Cdigo
net.ipv4.ip_forward = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 1
kernel.sysrq = 1net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
Instale as ferramentas de gerenciamento do OpenVZ:
Cdigo
yum install vzctl vzquota
Confirme a instalao dos pacotes e das dependncias.
Reinicie o CentOS.
3 Criando Nossos Containers
Aps a reinicializao do sistema, sua mquina estar pronta para o uso do OpenVZ.
Antes de iniciarmos a criao do nosso primeiro container, vamos entender um pouco
mais sobre o OpenVZ. Ao contrrio de tantas outras tecnologias que virtualizam o
hardware, o OpenVZ virtualiza um espao de software, e em consequencia disto a
instalao de um sistema operacional nos containers no seguem uma instalao padro
a partir de uma mdia. Cada container criado a partir de um template do sistema
desejado.
Estes templates podem ser obtidos a partir no site do projeto OpenVZ ou voc pode criar o
seu prprio template.
Os templates pre-criados fornecidos pelo projeto OpenVZ pode ser encontrados aqui:
http://download.openvz.org/template/precreated/
http://download.openvz.org/template/precreated/http://scardini.net/wp-content/plugins/wp-synhighlight/About.htmlhttp://scardini.net/?p=58#codesyntax_11http://scardini.net/?p=58#codesyntax_11http://scardini.net/?p=58#codesyntax_11http://scardini.net/wp-content/plugins/wp-synhighlight/About.htmlhttp://scardini.net/?p=58#codesyntax_10http://scardini.net/?p=58#codesyntax_10http://scardini.net/?p=58#codesyntax_10http://scardini.net/wp-content/plugins/wp-synhighlight/About.htmlhttp://scardini.net/?p=58#codesyntax_9http://scardini.net/?p=58#codesyntax_9http://scardini.net/?p=58#codesyntax_9 -
7/22/2019 Virtualizando Com o OpenVZ _ Blog Do Scardini
9/11
9/12/12 Virtualizando com o OpenVZ | Blog do Scardini
9/11scardini.net/?p=58
Voc tambm poder encontrar templetes criados por contribuio da comunidade aqui:
http://download.openvz.org/contrib/template/precreated/
Para nossos containers vamos baixar um template do CentOS 5, disponvel no seguinte
link:
wget http://download.openvz.org/template/precreated/centos-5-x86_64.tar.gz
Cada template baixado, deve ser salvo na pasta: /vz/template/cache
Vamos ento baixar nosso template:
Cdigo
cd /vz/template/cache
wget http://download.openvz.org/template/precreated/centos-5-x86_64.tar.gz
Aps baixar nosso template, vamos criar o nosso primeiro container:
Cdigo
vzctl create 101 \
--ostemplate centos-5-x86_64 \
--conf basic \
--ipadd 10.0.0.101 \
--hostname c101.localhost
Com isto nosso primeiro container foi criado. Atribuimos a ele o ID 101. Utilizamos como
template o centos-5-x86_64 baixado anteriomente (centos-5-x86_64.tar.gz). Selecionamos
a configurao bsica de hardware (basic) e atribuimos o ip 10.0.0.101 para nosso
container. Ainda no comando de criao atribuimos para o container o nome
c101.localhost.
Vamos agora prosseguir com a configurao de nosso container recm criado. Vamos
atribuir um nome, um servidor de nomes e uma cota de disco:
Cdigo
vzctl set 101 \
--name c101 \
--nameserver "192.168.226.129" \
--diskspace 10G:10G \
--save
Com isto concluimos o nosso primeiro container. Vamos criar nosso segundo container:
http://scardini.net/wp-content/plugins/wp-synhighlight/About.htmlhttp://scardini.net/?p=58#codesyntax_14http://scardini.net/?p=58#codesyntax_14http://scardini.net/?p=58#codesyntax_14http://scardini.net/wp-content/plugins/wp-synhighlight/About.htmlhttp://scardini.net/?p=58#codesyntax_13http://scardini.net/?p=58#codesyntax_13http://scardini.net/?p=58#codesyntax_13http://scardini.net/wp-content/plugins/wp-synhighlight/About.htmlhttp://scardini.net/?p=58#codesyntax_12http://scardini.net/?p=58#codesyntax_12http://scardini.net/?p=58#codesyntax_12http://scardini.net/wget%20http://download.openvz.org/template/precreated/centos-5-x86_64.tar.gzhttp://download.openvz.org/contrib/template/precreated/ -
7/22/2019 Virtualizando Com o OpenVZ _ Blog Do Scardini
10/11
9/12/12
10/11scardini.net/?p=58
Cdigo
vzctl create 102 \
--ostemplate centos-5-x86_64 \
--conf basic \
--ipadd 10.0.0.102 \
--hostname c102.localhostvzctl set 102 \
--name c102 \
--nameserver "192.168.226.129" \
--diskspace 10G:10G \
--save
Com os containers criados, vamos aos comandos bsicos de manipulao dos memsos:
Para iniciar ( ligar ) um container:
vzctl start ID
Para entrar em container:
vzctl enter 101
ou
ssh ip_do_container
para parar um container:
vzctl stop ID
para destruir um container:
vzctl destroy ID
para definir a senha do root nos containers criados:
vzctl set ID userpasswd root:nova_senha save
Em todos os comando o ID deve ser substituido pelo ID do container desejado. No nosso
caso 101 ou 102.
Publicado em Linux e Afins porCristiano Scardini. Marque Link Permanente[http://scardini.net/?p=58] .
http://scardini.net/?p=58http://scardini.net/?author=1http://scardini.net/?cat=1http://scardini.net/wp-content/plugins/wp-synhighlight/About.htmlhttp://scardini.net/?p=58#codesyntax_15http://scardini.net/?p=58#codesyntax_15http://scardini.net/?p=58#codesyntax_15 -
7/22/2019 Virtualizando Com o OpenVZ _ Blog Do Scardini
11/11
9/12/12 Virtualizando com o OpenVZ | Blog do Scardini
Comentrios encerrados.