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 !