Virtualização com Red Hat Enterprise
XEN GPL
CASE: EMPREL
Prefeitura de Recife
Paulo Cezar Melo
[email protected]
Virtualização
Simplificando o conceito, virtualização é o processo de
executar vários sistemas operacionais em uma única máquina.
Uma máquina virtual é um ambiente operacional completo
que se comporta como se fosse um computador independente.
Com a virtualização, um servidor pode manter vários sistemas
operacionais.
Histórico
Déada de 70, primeira tentativa, CP 67 - mainframe IBM 360/67:
- Divisão do sistema para vários usuários
- Isolamento entre os ambientes
Década de 80 e 90
- IBM – Sistema Operacional VM, virtualizando máquinas com MVS, VSE, etc.
-- Arquitetura x86, sem suporte de hardware a virtualização.
Década 2000:
- Arquitetura x86, COM suporte de hardware a virtualização.
- Aumento do poder computacional da baixa plataforma
- Virtualização se torna realidade
Projetos: Vmware, XEN, KVN, Qemu, VirtualPC, ...
Histórico
2005 - Emprel virtualiza Linux sobre Mainframe
z/OS
z/VM
DB2
CICS
COBOL
VSAM
VAGEN
Linux
DB2
Websphere
DB2 Connect
HOD
Apache
TomCat
Samba
........
2066 – 0A1, 16 Gb, 2 IFLS, 1 OSA GB, 2 OSA FAST, PCICA
Por que virtualizar ?
●
Isolamento de serviços minimizando danos
●
Ambiente de teste e desenvolvimento isolados
●
Reduzir custos:
- Aquisição ou aluguel de servidores
- Espaço em Rack
- Menos custo com network (Switch, portas, cabos...)
- Consumo de energia
●
Suporte a balanceamento de carga
●
Suporte a alta disponibilidade
●
Flexibilidade nas configurações das VM's
●
Agilidade na criação e configuração de novos servidores .
Desvantagens
●
Segurança
Virtualização é uma camada de software, portanto está sujeito a falhas.
●
Gerenciamento
●
Desempenho
Tipos de Virtualização
Emulação:
A máquina virtual simula todo o hardware, permitindo que um Sistema
Operacional sem modificações rode em um ambiente completamente
diferente do hardware nativo. (QEMU, PearPC, versões do virtual PC).
Virtualização Nativa ou “virtualização total”:
A máquina virtual simula parcialmente o hardware para permitir que
um Sistema Operacional sem modificações funcione isoladamente no hardware.
Para-virtualização:
No esquema para-virtualizado é criada uma simples camada de abstração
do hardware (hypervisor) para os sistemas operacionais modificados, permitindo
o acesso ao hardware de uma forma quase direta.
Xen – What is this
●
O Xen (pronuncia-se zen) é um software livre distribuído sob licença GPL.
●
Inicialmente concebido em centros de pesquisas da Universidade de Cambridge
Atualmente desenvolvido pela empresa Citrix/XenSource(XenSource Inc. adquirida
pela Cytrix System em 2007) que mantém uma versão comercial do software além
de também desenvolver e manter a versão livre.
●
Utilizando o conceito de para-virtualização, onde não há necessidade de simular
um hardware completo. o XEN consegue performance muito próxima a de se
executar o sistema operacional em um hardware nativo.
●
Atualmente, a Citrix/XenSource mantém a infra-estrutura do projeto no site
www.xen.org, porém o código é desenvolvido e melhorado por profissionais de
diversas empresas, dentre elas: IBM, Unisys, Novell, Intel, AMD, Red Hat, Oracle
entre outras. Isso mostra como o Xen é levado a sério por grandes players do
mercado de TI.
●
XEN – Componentes
Dois conceitos principais:
●
●
Domínio
- Privilegiado
-> Domínio 0
- Não Privilegiado --> Domínio U
Hypervisor (VMM - monitor de máquina virtual)
XEN – Componentes
Domínio 0
●
●
●
●
Máquina hospedeira (host)
Gerenciamento e controle das máquinas virtuais
(Definição e configuração as VM's)
Linux com núcleo modificado
Drivers nativos da máquina física (acesso direto aos dispositivos)
XEN – Componentes
Hypervisor (VMM)
●
●
●
●
O hypervisor se apresenta para a maquina virtual como uma camada de
abstração de hardware, como se tivesse rodando num hardware isolado.
Gerenciamento de CPU e Memória
Controle dos recursos compartilhados pelas VM's.
Não manipula os dispositivos diretamente
XEN – Componentes
Domínio U
●
●
●
●
São as Máquinas Virtuais (VM's)
Sistema Operacional Visitante (Guest Operating System)
Linux com núcleo modificado
Acesso a dispositivos através do Domínio 0
XEN – Suporte a Virtualização por Hardware
●
A partir da versão 3.0
●
Hardware com suporte à virtualização (2006)
– Intel VT
– AMD-V
●
●
●
●
Virtualiza sistemas operacionais com núcleo não modificado (Windows)
O hypervisor executa um patch binário nos guests impedindo assim que
eles interajam diretamente com o hardware
Baixa peformance de I/O no Xen-GPL
Drives para-virtualizados para windows existem na versão comercial, onde
as operações de I/O são aceleradas.
XEN – Sistemas Portados
XEN – Topologia de Rede
interface para fazer
a bridge entre as
interfaces virtuais
e a interface real
Interface virtual utilizada para que o
Dom0 se comunique com a rede real.
bridge padrão
Interface virtual utilizada para que o DomU
(VM) se comunique com a rede real.
Xen – Esquema de Arquivos
●
Dominio 0 exporta dispositivos de dados para as VM's – DominioU
●
Exporta diversos tipos de dispositivos
- Partição: /devsda5
- Arquivos utilizando VBDs (Virtual Block Device)
dd if=/dev/zero of=vm1disk bs=1k seek=2048k count=1
- CD/DVROM
- Sistemas de arquivos em rede, como o NFS
- LVM
- iSCI - Sstorage de rede e que trabalha sobre uma rede TCP/IP.
- Storage - (SAN (Storage Area Network) e o NAS (Network Attached Storage))
Xen – Caso de Sucesso na EMPREL
●
Início em 2007
●
RedHat Enterpride Linux 5.1, 5.2
●
Xen GPL 3.01
●
Dispositivos de I/O em partições locais e storage
●
Exportação de dispositivo via LVM
●
Memória física compartilhada sem overred ...
Xen – Caso de Sucesso na EMPREL
7 Servidores em operação
Servidores Físicos Tipo de CPU
CAÇOTE
AFLITOS
DOIS IRMÃOS
HIPODROMO
JSPAULO
PONTO PARADA
TORRÕES
Intel(R) Xeon(TM)
AMD Opteron(tm)
Intel(R) Xeon(R)
Intel(R) Xeon(TM)
Intel(R) Xeon(TM)
AMD Opteron(tm)
Intel(R) Xeon(TM)
Clock Ghz Cacle L2 MB QTD. CPU'S RAM GB
HD GB
3,6
2,2
1,6
3
3,6
2,2
3,6
1
1
4
1
1
1
1
4
2
8
4
4
2
4
8
4
4
2
8
4
4
441,3
142
73,2
146
588,4
142
292
19,8
10
28
34
1824,9
Xen – Caso de Sucesso na EMPREL
18 Servidores Virtuais em operação
CAMPINA BARRETO
GRAÇAS
AREIAS
SOLEDADE
CAXANGA
BEBERIBE
ILHARETIRO
IPSEP
ARRUDA
CASA AMARELA
MANGUEIRA
MACAXEIRA
IMBIRIBEIRA-D
IMBIRIBEIRA-H
COHAB
CDU
Tomcat - Produção
Tomcat - Desenvolvimento
Tomcat 2 - Produção
Testes
WEB - APACHE/PHP – Homologação
WEB - APACHE/PHP – Produção
WEB - APACHE/PHP – Desenvolvimento
CVS, MANTIS, SAMBA – Produção
Repositórios YUM
POSTGRESQL - PRODUÇAO - BACKUP
DB2 - TESTE
DB2 - MIGRAÇÂO
WEBSPERE - Desenvolvimento
WEBSPERE – Homologação
SAMBA, Portal WEB de - Desenvolvimento
SAMBA, Portal WEB de – Homologação
2000
1000
4000
3500
256
512
256
512
256
2000
2000
2000
2000
1535
2000
2000
2
1
2
1
1
2
1
2
1
1
1
1
2
1
2
1
57
41
42
15
57
15
15
46
32
21
191
191
52
52
100
60
33410
24
1081
Xen – Caso de Sucesso na EMPREL
Folga para Ajustes
●
10 Processadores
●
590 MB RAM
●
743 GB de Disco
Xen – Caso de Sucesso na EMPREL
Servidor Real: JSPAULO
CPU:
4
Intel(R) Xeon(TM) CPU 3.60GHz - Cache 1 MB
Memória Real: 8
GB
Discos Total: 588.4 GB (Storage)
XEN:
Memoria: 256
Discos:
/
/boot
SWAP
* LVM
MB
10 GB
100 MB
1 GB
577 GB
Servidores Virtuais(3):
CASA AMARELA:
Aplicativos: POSTGRESQL - PRODUÇAO - BACKUP
Memoria: 2 GB
Discos:
el5_casaamarela_root
VG -wi-ao 10.00G
el5_casaamarela_swap VG -wi-ao 512.00M
el5_casaamarela_usrlocal VG -wi-ao 10.00G
21.50G
Xen – Caso de Sucesso na EMPREL
MANGUEIRA:
Aplicativos: DB2 - TESTE
Memoria: 2 GB
Discos:
el5_mangueira_db2
el5_mangueira_root
el5_mangueira_swap
VG -wi-ao 170.00G
VG -wi-ao 20.00G
VG -wi-ao 1.00G
191.00G
MACAXEIRA:
Aplicativos: DB2 - MIGRAÇÃO
Memoria: 2 GB
Discos:
el5_macaxeira_db2
el5_macaxeira_root
el5_macaxeira_swap
VG -wi-ao 170.00G
VG -wi-ao 20.00G
VG -wi-ao 1.00G
191.00G
VG #PV #LV #SN Attr VSize VFree
VG 1 13 0 wz--n- 537.66G 135.16G
Name
Domain-0
casaamarela
macaxeira
mangueira
ID Mem(MiB) VCPUs State
0
256
4
r----1 2047
1
-b---2 2047
1
-b---3 2047
1
-b----
Time(s)
70451.9
40624.2
295765.1
108774.8
Xen – Caso de Sucesso na EMPREL
Sistema de Trabalho
●
Domínio 0 (host hospedeiro)
- Instalação básica do RedHat EL5.2
Formatação:
/
10
/boot 100
SWAP
1
LVM
*
GB
MB
GB
GB
- Instalação do Xen GPL
Yum install xen kernel-xen virt-manager
- Configuração do grub.conf
Apontar para o Kernel do Xen
Alocar 256 MB para o dom0
- Iniciando o serviço xend (dom0 e o Hipervisor)
service xend start
Xen – Caso de Sucesso na EMPREL
Sistema de Trabalho
●
Domínio U (Maquinas Virtuais)
- A partir de uma máquina modelo
Previamente instalada em uma partição
- Definição e formatação dos LVM's que serão partições das VM's
lv_serv_virt1 /root
lv_serv_virt1 /swap
lv_serv_virt1 /xxx
10 GB
1 GB
nn GB
- Cópia do modelo para partição LVM raiz(root)
Montar partição LVM /opt
cp -ax modelo
/opt
- Configuração básica do novo servidor virtual
Com a partição raiz ainda montada configurar:
/etc/fstab, /etc/hosts, /etc/sysconfig/network-scripts/ifcfg-eth0
Xen – Caso de Sucesso na EMPREL
Sistema de Trabalho
●
Domínio U (Maquinas Virtuais)
- Desmontar partição LVM
- Configuração da máquina virtual no Xen
Criar arquivo de configuração no /etc/xen a partir de modelo pré-definido
#---------------------------------------------------------------------------------------------------------------------------name = "serv-virt1"
maxmem=512
memory=256
kernel="/boot/vmlinuz-2.6.18-92.el5xen"
ramdisk = "/boot/initrd-2.6.18-92.el5xen.img"
vif=[ 'ip="", bridge=xenbr0' ]
disk=[ 'phy:/dev/Vol_Grupo/lv_serv1_root,sda1,w', 'phy:/dev/Vol_Grupo/lv_serv1_swap,sda2,w' ]
root="/dev/sda1 ro"
vcpus=1
#-----------------------------------------------------------------------------------------------------------------------------
Xen – Caso de Sucesso na EMPREL
Sistema de Trabalho
●
Domínio U (Maquinas Virtuais)
- Configurar início automático da VM junto ao Domínio 0
Criar link simbólico no /etc/xen/auto para arquivo da configuração da máquina virtual
- Subir máquina virtual
xm create /etc/xen/serv_virt1 -c
- Entar na máquina virtual para configuração dos serviços
Mudar password do root
Instalar serviços no servidor
Efetuar procedimentos para colocar o servidor em operação (firewall, nagios, rotas, etc)
Xen – Configuração
●
Configuração do Xen (serviço xend)
/etc/xen/xend.config.swp - usar arquivo padrão da instalação, com ajustes se necessário
●
Configuração das VM's
#---------------------------------------------------------------------------------------------------------------------------name = "serv-virt1"
maxmem=512
memory=256
kernel="/boot/vmlinuz-2.6.18-92.el5xen"
ramdisk = "/boot/initrd-2.6.18-92.el5xen.img"
vif=[ 'ip="", bridge=xenbr0' ]
disk=[ 'phy:/dev/Vol_Grupo/lv_serv1_root,sda1,w', 'phy:/dev/Vol_Grupo/lv_serv1_swap,sda2,w' ]
root="/dev/sda1 ro"
vcpus=1
#-----------------------------------------------------------------------------------------------------------------------------
Xen – Comandos básicos para administração
xm create /etc/xen/serv_virt1 -c
Inicia uma máquina virtual
xm list
lista as vms ligadas.
xm console "ID"
abre o console da vm especificada.
xm mem-set "ID" "MEMORIA"=
altera a quantidade de memória do domínio especificado, limitado ao parâmetro
MAXMEM no arquivo de configuração. Ex: xm mem-set 1 512
xm vcpu-set "ID" "VCPU"
altera o número de processadores ativos num domínio, limitado ao parâmetro
VCPUS no arquivo de configuração. Ex: xm vcpu-set 1 2
xm vcpu-list
mostra quais processadores (cores) reais estão sendo usados pelas VMs.
xm shutdown "ID" inicia o desligamento do domínio especificado.
xm destroy "ID"
força o desligamento do domínio especificado. É como puxar o " cabo da tomada",
inclusive com as mesmas seqüências.
xm reboot "ID"
reinicia o domínio especificado.
xm top =
mostra o monitor das VMs.
xm dmesg =
mostra o log de inicialização do hypervisor.
Xen – Comandos básicos para administração
Interrupção temporária
xm pause
Pausa execução de um servidor virtual
Interrompe a execução do domínio
Permanece pronto para continuar
xm unpause
Retina a pausa de servidor Virtual
Suspenção do domínio
xm save domínio arquivo
Interrompe a execução do domínio
Salva o estado em arquivo
Destrói o domínio em execução
Pode ser utilizado em upgrade do Xen ou domínio
xm restore arquivo
Xen – Comandos
●
xm list
lista os domínios que estão ativos atualmente:
Name
ID Mem(MiB) VCPUs State Time(s)
Domain-0
0
256
2
r----- 136156.7
sanchod
1 2099
1
-b---- 24636.2
sanchoh
2 1535
1
-b---- 7872.7
name :
O nome descritivo da VM.
Domid:
O número do ID do domínio em que esta VM está rodando.
Memory: O tamanho da memória em megabytes.
Vcpus
O número de CPUs virtuais que este domínio tem.
State:
O estado do domínio.
consiste em 5 campos:
r - rodando
b - bloqueado
p - pausado
s - desligado
c - quebrado (crashed)
cputime: O tempo de CPU (em segundos) que o domínio utilizou até então.
Xen – Migração de Máquinas Virtuais
●
Permite migração sem interromper a execução dos serviços live migration
●
Transfere um domínio U em execução num host(dom0), para outro host(dom0).
●
“Downtime” muito baixo,
●
Obedece limitação de banda especificada
●
Precisa de dispositivos compartilhados entre hosts origem e destino
xm migrate –live –resource 70 DominioA OutroHostXen
(Limite de 70Mbit)
Xen – Migração de Máquinas Virtuais
Servidor Xen dom0
Host 1
Máquina Virtual domU
a ser migrada
Servidor Xen dom0
Host 2
Servidor iSCI
disco compartilhado para
host1 e host 2
Perguntas !
Download

Virtualizacao com Red Hat Enterprise - XEN