Вы находитесь на странице: 1из 44

Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia de Sistemas e Informtica

Disciplina de Opo III


Ano Lectivo de 2004/2005

Virtualizao e Alta Disponibilidade Caso Prtico - Gil

Luciano Rocha - 22673 <strange@gil.di.uminho.pt> Nuno Carvalho - 22696 <smash@gil.di.uminho.pt> Superviso: Victor Francisco Fonte <vff@di.uminho.pt>

Fevereiro, 2005

Data de Recepo Responsvel Avaliao Observaes

Virtualizao e Alta Disponibilidade Caso Prtico - Gil

Luciano Rocha - 22673 Nuno Carvalho - 22696

Fevereiro, 2005

Gostaramos de dedicar este projecto ao Grupo de Investigao de Linux da Universidade do Minho: aos seus membros activos, um grupo simptico de apoiantes e dinamizadores de Linux em Portugal, e aos seus fundadores, eternos gileiros e suporte do grupo. A todos os apoiantes de Linux, como prova do que pode ser feito, com vontade, trabalho, e software livre. Universidade do Minho em geral, e ao Departamento de Informtica em particular, na esperana de demonstrar a qualidade de ensino praticada e de estimular um maior investimento neste sistema operativo.

Resumo
Este projecto teve como objectivo a reestruturao da infra-estrutura informtica do Gil, a nvel de servios, servidores e rede, de modo a corrigir decincias identicadas, fornecer novas capacidades, e manter um nvel de disponibilidade adequado. Para esse efeito usou-se de paravirtualizao, que permite particionar um sistema em vrias mquinas virtuais, com isolao de recursos e um impacto de performance mnimo. A virtualizao do hardware permite tambm suspender e resumir, ou migrar, as mquinas virtuais de forma transparente e com uma interrupo de servio na ordem dos milisegundos. Para redundncia e manuteno distribuda do estado das mquinas virtuais, usou-se tambm de um mecanismo de rede de replicao de dados com garantias de consistncia. Finalmente, com este relatrio pretende-se descrever os passos necessrios implementao de servios de alta disponibilidade sob o modelo escolhido, assim como as razes que levaram a optar por esse modelo. rea de Aplicao: Planeamento, implementao e administrao de uma infra-estrutura de redes e servios. Palavras-Chave: Paravirtualizao, Replicao, Alta Disponibilidade, Linux, DRBD, Xen, LVM, NFS, LDAP, Kerberos.

ndice
Resumo ndice ndice de Figuras ndice de Tabelas 1. Introduo 2. Motivaes 3. Planeamento 3.1. Paravirtualizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1. Xen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Replicao de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1. DRBD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2. Informao Administrativa . . . . . . . . . . . . . . . . . . . . . . . . 3.3. Monitorizao e Migrao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1. Heartbeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4. Administrao Centralizada . . . . . . . . . . . . . . . . . . . . . . . . . . . . i iii iii iii 1 2 5 5 6 6 8 9 9 9 9

3.4.1. LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.4.2. Kerberos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.4.3. NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.5. Cpias de Segurana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4. Realizao 12

4.1. Sistema Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.1.1. Instalao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.2. Xen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.3. DRBD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.4. Sistemas Hspedes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.4.1. Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5. Rede 21

ii

5.1. Rede IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.2. Segmentos de Rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 5.3. Congurao do Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 6. Resultado 7. Problemas 27 29

7.1. Interoperabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 7.2. Logsticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 7.2.1. Disponibilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 7.2.2. Hardware 8. Concluso 9. Trabalho Futuro 10. Agradecimentos Lista de Acrnimos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 33 34 35 36

ndice de Figuras
1. 2. 3. 4. 5. Infra-estrutura inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Ligao entre o Gil e o DI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 VLANs do Gil e a ligao ao DI. . . . . . . . . . . . . . . . . . . . . . . . . . 23 Rede fsica do Gil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Infra-estrutura obtida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

ndice de Tabelas
1. 2. 3. Endereos IP das mquinas. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Mapeamento entre portas e endereos IP. . . . . . . . . . . . . . . . . . . . . 23 Atribuio de portas fsicas s VLANs. . . . . . . . . . . . . . . . . . . . . . . 25

iii

1.

Introduo

Foi proposto, no mbito do projecto de Opo III, o desenvolvimento de alguns dos projectos actuais1 no Gil2 , pelo professor Victor Fonte. No comeo do desenvolvimento do projecto inicialmente escolhido, identicaram-se alguns problemas logsticos na infra-estrutura actual que era necessrio corrigir. Com a disponibilidade de novo hardware, generosamente doado ao Gil, cou possvel a reimplementao por completo da infra-estrutura e o fornecimento de novos nveis de servios. Houve um estudo inicial das tecnologias existentes de fornecimento de servios com garantias de segurana e disponibilidade, e construiu-se um plano de execuo que permitiria simultaneamente o estudo e experimentao de novas tecnologias emergentes. Na realizao da migrao para o novo plano, tornou-se evidente que os objectivos estabelecidos tinham a capacidade de tornar a realizao da nova infra-estrutura um projecto de Opo III com mritos prprios. Aps a aprovao e apoio pelo professor orientador, foi decidido seguir com a realizao da nova infra-estrutura como projecto com os seguintes objectivos:

Replicar a informao importante existente, para que falhas de hardware no se


tornem em falhas catastrcas.

Criar redundncia de hardware, a nvel virtual, para uma substituio rpida e automtica de servios.

Permitir a criao de mquinas virtuais para uso de projectos internos e externos, com
garantias de disponibilidade, isolao e segurana.

Centralizar e replicar a informao administrativa, de modo a facilitar a administrao


de utilizadores e permisses de acesso, e eliminar problemas causados por falha de sincronismo.

Fornecer a informao pessoal s novas estaes de trabalho de forma transparente


ao utilizador.

1 2

http://gsd.di.uminho.pt/members/vff/bolsa-projectos-gil
Grupo de Investigao de Linux

2.

Motivaes

Como foi j referido, foi a manifestao de algumas decincias na infra-estrutura existente, novas necessidades, e a existncia de material sub-aproveitado, que levaram total reestruturao da rede e dos servios.

Figura 1: Infra-estrutura inicial Apresentam-se de seguida a infra-estrutura previamente existente, representada na gura 1, e as decincias demonstradas. A rede do Gil era constituda por:

Duas Alphastation3 , a servirem, uma de rewall, e a outra de recepo de correio


electrnico e de servidor de nomes de domnios;

Um Aviion4 , a servir de mquina de login remoto; Dois PCs de marca branca, um a servir um sistema de cheiros remotos, e outro a
servir o site principal e dos projectos alojados no Gil. Vrios problemas se manifestavam com essa congurao:
3 4

http://h18002.www1.hp.com/alphaserver/workstations/retired/a255series.html http://developer.novell.com/yes/37241.htm

O hardware de rede fornecia um nvel de performance no satisfatrio para o servio


de cheiros e pginas. Com interfaces limitadas a 10 Mbps na generalidade das mquinas - a excepo sendo o servidor web -, e um hub tambm a 10 Mbps, a rede limitava a performance do servio de email e de login. A adio planeada de estaes de trabalho viria a piorar a situao.

Eram usadas verses variadas e antigas de distribuies e de kernel Linux. Essas


verses limitavam o que era possvel fornecer a nvel de rewall, sem suporte ao seguimento de estado e com congurao complexa e confusa. Tambm lhes faltava o suporte a sistemas de cheiros journalled. Com um tipo de sistema de cheiros normal, no se do garantias sobre a consistncia dos dados armazenados em disco, o que poder causar os seguintes problemas em caso de falhas de energia ou reboots forados: 1. necessrio realizar uma vericao total do estado do sistema de cheiros. Essa operao pode demorar horas em sistemas de cheiros de grande capacidade. 2. No possvel corrigir automaticamente em todos os casos problemas de consistncia, o que levar interrupo do processo de arranque e indisponibilidade do servio at interveno humana. Sem congurao especial do sistema, o acesso ao sistema para recuperao ca limitado a intervenes in situ.

O arranque dos sistemas no era sincronizado, e no podia seguir as dependncias


lgicas entre servios. A falha de um sistema, ou demora no arranque desse sistema, poderia causar a falha total de outro sistema que lhe estava dependente, at ao reboot manual e sincronizado dos sistemas em falta. Este caso era evidente em falhas de energia, nos casos em que o sistema de NFS5 demorava mais tempo a arrancar que o de email ou login. Nesse caso, os outros sistemas bloqueavam at a expirao de determinado perodo de tempo. Se o sistema de NFS no recuperasse at essa altura, o arranque continuaria com a falta denitiva do subsistema de NFS.

O sistema Aviion comeava a demonstrar alguns problemas de hardware. Certos


arranques bloqueavam, e a correco passava por desligar por tempo prolongado a mquina at ao descarregamento dos condensadores em falta. Como falhas de energia no DI6 tinham tendncia de aparecer aos ns-de-semana, era comum car sem servio at "visita semanal de segunda-feira".

A informao pessoal, privada e pblica, encontrava-se armazenada em pontos de


falha nicos. Notavelmente, o sistema que mantinha os dados tinha j apresentado erros nos sectores de um dos seus discos rgidos. Tornava-se necessrio tomar medidas para evitar a perda total e irrecupervel de dados importantes.
5 6

Network File System Departamento de Informtica

Alguns projectos a desenvolver no Gil iro necessitar de exportar interfaces pblicas.


Ser necessrio poder criar e isolar mquinas dedicadas a esses projectos. No entanto, o hardware era insuciente para a criao de todas as mquinas necessrias, e a adaptao dos sistemas actuais a novas instncias obrigava a: suspender servio; realizar cpias de segurana; reinstalar o sistema operativo; recriar as conguraes; e nalmente repor os dados.

Existiam mquinas, recentemente oferecidas ao Gil, em subaproveitamento, devido


ao pouco dinamismo apresentado pelo sistema existente.

3.

Planeamento

De seguida apresentam-se tecnologias e as suas implementaes especcas usadas para a implementao da soluo pretendida, assim como as vantagens que se esperava obter.

3.1.

Paravirtualizao

Os computadores actuais so poderosos o suciente para virtualizar recursos e apresentar a iluso da existncia de vrias mquinas virtuais. Podem-se seguir vrias estratgias na implementao da virtualizao, para a realizao de diferentes objectivos. Pode-se dar preferncia compatibilidade binria, para fornecer o suporte execuo de sistemas operativos existentes no mercado, sem alteraes. Sacricando, no entanto, rapidez. Neste caso particular, como os sistemas a serem usados sero sempre livres, no haver necessidade de compatibilidade binria, embora seja prefervel reduzir ao mnimo as alteraes necessrias para a converso de um sistema. Outras implementaes do preferncia velocidade, em detrimento de segurana e funcionalidades. Poucos oferecem garantias de isolao de recursos e de performance. No caso particular, o interesse foi por uma implementao que fosse, em primeiro lugar, segura, e, em segundo lugar, que fornecesse funcionalidades de controlo adequadas e um impacto mnimo de performance. O sistema de virtualizao escolhido foi o Xen, mas refere-se a existncia de algumas outras solues existentes, uma comercial e a outra livre:

VMWare http://www.vmware.com/
Soluo comercial, exclusivamente para a arquitectura x86, com emulao das instrues privilegiadas. Permite correr sistemas operativos e aplicaes actuais sem necessidade de alteraes. O impacto na performance causado pela emulao de instrues privilegiadas e de hardware signicativo, mas reduzido para aplicaes com um uso maioritrio do processador.

UML http://user-mode-linux.sourceforge.net/
User Mode Linux uma soluo que torna o kernel Linux um processo de utilizador normal. Est limitado arquitectura x86, e a sistema hspede e hospedeiro Linux. O modo de funcionamento mais usual, sem alteraes especcas ao sistema hospedeiro, por trace aos programas que correm dentro da mquina virtual e intercep-

tao das system calls executadas. Tem, por isso, um impacto elevado na performance do sistema. 3.1.1. Xen

Xen7 um monitor de mquinas virtuais que implementa um sistema de paravirtualizao. Paravirtualizao deni-se por apresentar uma mquina virtual semelhante ao sistema hospedeiro, mas no exactamente igual. Requer, assim, transformao do kernel a ser usado nas mquinas virtuais, mas no das aplicaes. A emulao restringe-se, mas no requerida, a dispositivos de disco e de rede. O acesso memria e processador directo, dentro dos limites que so estabelecidos mquina virtual, e possvel dedicar hardware especco para uso exclusivo pela mquina virtual. Xen oferece assim nveis de performance excelentes, com gesto minuciosa dos recursos existentes. Por virtualizar e controlar o hardware, oferece tambm a possibilidade de guardar o estado de uma mquina virtual e recuper-lo posteriormente. Esta possibilidade tambm oferecida pelas outras solues apresentadas. Oferece tambm a possibilidade nica de migrar mquinas virtuais entre sistemas hospedeiros, com uma interrupo de servio na ordem dos milisegundos. Finalmente, embora requeira alteraes especcas ao sistema hspede, as alteraes necessrias esto bem denidas, e encontram-se j em existncia converses estveis dos sistemas NetBSD e Linux, e em desenvolvimento converses de OpenBSD, FreeBSD e Windows. E, embora inicialmente desenvolvido para a arquitectura x86, est em fase de nalizao o suporte para IA64, e em desenvolvimento rpido o suporte para x86_64. Espera-se, por isso, um futuro brilhante para este projecto.

3.2.

Replicao de Dados

O nvel de disponibilidade de um sistema tambm caracterizado pela frequncia de actualizao, ou sincronizao, dos dados necessrios operao do sistema. A sincronizao pode ser efectuada a vrios nveis: 1. Aplicacional, em que se delega aplicao a replicao dos dados, ou se usam
7

Para mais informaes sobre paravirtualizao e Xen, referem-se os papers Xen and the Art of Virtualization - http://www.cl.cam.ac.uk/netos/papers/2003-xensosp.pdf - e Lightweight Virtual Machines for Distributed and Networked Applications - http://www.cis.upenn.edu/~cis700-6/04f/papers/ denali-usenix.pdf.

mecanismos de transferncia e sincronismo especcos aplicao. Este nvel de replicao garante a consistncia dos dados copiados. Como exemplo, temos a transferncia do contedo das tabelas numa base de dados. 2. Sistema de Ficheiros, em que se replica o contedo do sistema de cheiros, independentemente da aplicao, ou aplicaes, que o usam e o seu formato interno. Este nvel garante a consistncia a nvel de sistema de cheiros, mas possvel que o estado representado a esse nvel no seja um estado vlido aplicao. 3. Dispositivo de Armazenamento, em que se replica o contedo exacto dos blocos no dispositivo de armazenamento. Este nvel no garante consistncia nos nveis superiores. Embora os nveis inferiores no garantam a consistncia nos nveis superiores, uma aplicao e sistema de cheiros bem comportados procura garantir um estado coerente no nvel inferior, e recuperar graciosamente de um estado incoerente causado por falha do sistema. Temos o exemplo do uso de logs em bases de dados e sistemas de cheiros, em que, antes de realizar alteraes, se regista o conjunto de operaes a efectuar e se garante a transferncia desse registo para a camada fsica. No caso de falha do sistema, o registo lido e executam-se, ou cancelam-se, as operaes em falta. A nvel de frequncia de actualizao, ou frescura dos dados replicados, temos: 1. Replicao Peridica, em que a transferncia do estado, ou das alteraes ao estado, so realizadas em determinados pontos temporais. Podem ser causadas ciclicamente por passagem de um determinado espao de tempo, ou por um acontecimento especco que causou a transferncia de estado. evidente que, no caso de uma falha, a rplica que substituir o sistema em falha poder ter dados desactualizados. Como exemplos, temos o uso de rsync e cron para transferncia do estado do sistema de cheiros periodicamente, e do mecanismo de replicao existente de base no MySQL - em que o nvel de frescura o tempo que as rplicas secundrias demoram a receber e processar as actualizaes base de dados. 2. Replicao Contnua, em que garantida a consistncia das rplicas antes do retorno do resultado de uma operao. Como exemplos, temos aplicaes desenhadas de raiz para funcionamento distribudo, que implementam protocolos de comunicao com garantias de sincronismo, ou s quais se desenvolveram camadas que oferecem essas garantias. o caso da DBSM8 e de vrios projectos desenvolvidos pelo Grupo de Sistemas Distribudos.
8

Database State Machine - http://www.ingentaconnect.com/content/klu/dapd/2003/00000014/

00000001/05117548

No nvel seguinte, temos como exemplos alguns sistemas de cheiros de rede, como o GFS9 e o Coda10 . A nvel de sistema de armazenamento, temos storage partilhadas. Usualmente, oferecida redundncia no hardware, e usam-se ligaes de alto dbito s rplicas SCSI e FibreChannel. A performance - e custo - desses sistemas impressionante. Tambm se pode optar por SANs11 , que usam uma infra-estrutura de rede para partilhar os dispositivos de armazenamento. Continua a ser necessrio garantir a disponibilidade desse subsistema, mas deixa de ser estritamente necessria a redundncia em cada sistema fsico individual, tornando possvel reduzir os custos globais do sistema. 3.2.1. DRBD

A soluo escolhida para o caso presente foi o DRBD12 , que oferece uma replicao contnua ao nvel de dispositivo de armazenamento. A replicao feita pela rede, sendo possvel o uso de um canal dedicado. garantido que um pedido de escrita realizado em ambas as rplicas antes de se retornar a operao como concluda aplicao, embora seja possvel denir outros modos de funcionamento sem essa garantia. O servio disponibilizado ento semelhante ao de uma storage partilhada, com as seguintes diferenas:

A taxa de transferncia limitada ao canal de comunicao e so introduzidos atrasos


necessrios pela transferncia e vericao das alteraes ao estado do sistema.

No caso de falha de uma rplica, ou do canal de comunicao, possvel obter rplicas com dados diferentes. Neste caso, e na falha catastrca da rplica principal, perdem-se os dados alterados aps a desconexo da segunda rplica. No entanto, fornecida a garantia de que os dados desactualizados no sero usados at se chegar a um estado actualizado, ou se forar, administrativamente, a considerar os dados como vlidos.

Obtm-se redundncia de hardware adicional, a nvel de processadores, dispositivos


de armazenamento, canais de comunicao, etc., a um custo muito inferior. Para o Gil, o uso de DRBD veio a permitir abstrairmo-nos das aplicaes a replicar, e garantir a disponibilidade constante dos dados das vrias mquinas virtuais, a nveis de performances aceitveis.
9 10 11 12

Global File System - http://www.redhat.com/software/rha/gfs/

http://www.coda.cs.cmu.edu/
Storage Area Network

http://www.drbd.org/

3.2.2.

Informao Administrativa

Para a replicao da informao administrativa, LDAP e Kerberos, decidiu-se por usar os mecanismos oferecidos pelas prprias aplicaes. Assim, obtm-se uma independncia da disponibilidade de DRBD e Heartbeat, e elimina-se trfego no cifrado de dados crticos segurana do sistema.

3.3.

Monitorizao e Migrao

Ter a possibilidade de substituir uma rplica em falta no suciente. necessrio monitorizar continuamente o funcionamento das rplicas e servios, e reagir automaticamente s falhas que podero ocorrer, para se realizar a substituio e reduzir o tempo de indisponibilidade. 3.3.1. Heartbeat

Hearbeat13 um software de monitorizao e migrao. Tem sido usado por vrias entidades e tem se demonstrado vel. Permite monitorizar a disponibilidade de um servio a vrios nveis: 1. Funcionamento do software de monitorizao, por troca de pedidos e repostas na rede; 2. Existncia de servio, por estabelecimento de ligaes aos servios; 3. Funcionamento do servio, por anlise das respostas a pedidos especcos. No caso de ser detectada uma falha, activada uma reaco automtica que procura, em primeiro lugar, garantir de se tratar de uma falha de servio e no apenas de problemas de comunicao entre os ns. O modo mais vel de o garantir forar a falha do outro sistema, por corte da corrente elctrica ou interveno manual. Posteriormente, sero executados, ordenadamente, os scripts responsveis pelo arranque dos servios. Com a ordenao de arranque correcta, resolver-se- os problemas de dependncias de arranque existentes.

3.4.

Administrao Centralizada

A centralizao da informao administrativa ser tambm uma ajuda para a alta disponibilidade. Fica reduzido o nmero de passos necessrios para adicionar, remover, e alterar
13

http://linux-ha.org/

utilizadores, e eliminada a necessidade de introduo manual das alteraes nas vrias mquinas e servios. Com a simplicao das operaes, ca reduzida a possibilidade de acidentes, e da criao situaes de erro difceis de depurar. 3.4.1. LDAP

LDAP14 um protocolo de acesso a um servio de directorias. Cada directoria consiste numa coleco de atributos associada a um nome, o distinguished name. Esses atributos contm um tipo e um ou mais valores. Com a informao no servio de directorias, e a denio do esquema dessa informao, pode-se referir a um nico servio para obter toda a informao relevante a determinado utilizador: login, palavra-chave, nome completo, morada, etc.. Na necessidade de manter informao adicional, especca a um servio, suciente denir o esquema e adicionar a informao no servio de directorias. Essa informao car imediatamente disponvel s aplicaes que a requerem, desde que conguradas para aceder ao servio. A implementao especca escolhida foi o OpenLDAP15 , por ser a soluo livre mais conhecida. 3.4.2. Kerberos Kerberos um protocolo de autenticao, desenhado de modo a fornecer autenticao de forma segura atravs de um meio de comunicao inerentemente inseguro - a rede. Prov autenticao mtua e comunicaes seguras entre entidades - utilizadores, mquinas e servios -, por criao e distribuio de chaves de sesso secretas. No entanto, Kerberos no prov um servio de directorias. No fornece qualquer informao sobre o utilizador para alm de garantir ser quem diz ser. Continua a ser necessrio, portanto, a utilizao de um outro meio de centralizao dessa informao - LDAP. Embora LDAP seja suciente tambm para autenticao, o uso de Kerberos permitir: 1. A introduo, por parte dos utilizadores, da sua senha de acesso apenas uma vez numa sesso. A partir desse momento, sero usadas as credenciais obtidas para acesso s outras contas e servios permitidos ao utilizador. 2. A autenticao mtua entre utilizadores, mquinas e servios.
14 15

Lightweight Directory Access Protocol

http://www.openldap.org/

10

3. Identicao segura de utilizadores ao servio de NFS verso 4, com cifragem facultativa. 3.4.3. NFS

Para um acesso transparente por parte dos utilizadores ao sistema, sem manuteno dos dados desses utilizadores em cada estao de trabalho ou servidor a que tm permisses de acesso, ser necessrio oferecer um servio de NAS16 . O servio escolhido foi o NFS, por ser o melhor suportado nas plataformas Unix, ser de fcil congurao, e, com a verso 4, oferecer novas garantias de segurana.

3.5. Cpias de Segurana


Manter a informao replicada no garantia da contnua disponibilidade dos dados. Uma falha catastrca de ambos os sistemas eliminaria as nicas cpias existentes dos dados. Erro humano tambm suciente para a destruio de dados essenciais. O mecanismo de replicao iria alegremente efectuar a destruio na outra cpia. necessrio, por tanto, denir tambm mtodos e polticas de criao de cpias de segurana. Os mtodos identicaro o processo de criao das cpias: tapes, CDs, DVDs, um sistema remoto, etc.. As polticas identicaro o que necessrio salvaguardar e a periodicidade de realizao das cpias de segurana completas e incrementais. O mtodo a implementar ser composto pela exportao de uma imagem cifrada por parte de uma workstation usando o GNBD. Essa imagem ser montada pela rplica principal diariamente, onde se gravaro as alteraes entretanto ocorridas, com histrico, usando o programa rdiff-backup17 . Quinzenalmente, a imagem ser gravada para um DVD-ROM e arquivada. necessrio ainda realizar uma observao profunda das necessidades dos vrios utilizadores e sistemas no que se refere aos dados a preservar. Devido s limitaes de espao em disco disponvel para as cpias de segurana e do limite de espao mximo num DVD, impossvel realizar cpias de segurana de todos os dados. A implementao completa ca portanto pendente da denio futura destes requisitos, mas ser realizada uma cpia conservativa do sistema total aquando a migrao para a nova infra-estrutura. Manter-se- tambm o sistema anterior em standby, para qualquer eventualidade, at o novo sistema se demonstrar estvel.
16 17

Network Attached Storage - partilha de cheiros na rede

http://www.nongnu.org/rdiff-backup/

11

4.

Realizao

Apresentam-se nesta seco os passos necessrios para a realizao da soluo pretendida. possvel que, com a evoluo constante a que o software est sujeito, seja necessrio adaptar algumas operaes. Tambm o caso para as particularidade da implementao de uma outra soluo semelhante. Para efeitos de arquivo, e de ajuda na instalao, o software usado encontra-se disponvel em http://gil.di.uminho.pt/membros/strange/opcao3/ e ftp://ftp.gil.di.uminho. pt/users/strange/op3/.

4.1.

Sistema Base

O sistema base ser constitudo por duas mquinas com uma instalao simplista de uma distribuio Linux. No h necessidade de serem exactamente idnticas: a virtualizao esconder muita particularidades do hardware e software usado como base. No entanto, h convenincia em usar mquinas com certas caractersticas idnticas, de forma a facilitar a administrao. Tambm, como o volume a replicar estar limitado pelo menor entre eles, o uso de discos com tamanhos diferentes causar um desperdcio de espao. Ou poder se entrar na tentao de usar o espao restante para outro servio, ignorando a perca de redundncia para esses dados. No caso particular da implementao aqui apresentada, usaram-se dois PCs de marca branca, que tinham sido oferecidos ao Gil. Os discos foram resgatados de duas Shuttles, resultado do activismo pelo membros do Gil, para uma existncia mais nobre. Uma questo que requere ponderao a da memria que dever ser instalada nas mquinas. Dever ser suciente para acomodar as necessidades mnimas das mquinas virtuais, sem esquecer que uma disponibilidade maior de memria permitirar usar de mais buffers e cache por parte das mquinas virtuais e mquina fsica, com aumento signicativo de performance. Para o presente caso, foi necessrio: 1. Sistema base: 128MB 2. NFS e DNS: 64MB 3. Shell: 256MB 4. WWW: 192MB 5. FTP: 64MB Total: 704MB

12

Durante o desenvolvimento, com necessidades de compilao e execuo de operaes pesadas (actualizao de todo o sistema, por exemplo), foi usada uma maior capacidade para as mquinas em execuo. Para o software base, optou-se por usar a distribuio Fedora Core 3 18 , por ser a com que se tinha mais experincia, e trazer de raiz suporte a algumas das tecnologias requeridas. Na implementao de uma qualquer outra soluo, recomenda-se sempre seguir antes por uma distribuio com a qual os executores se sintam mais confortveis. 4.1.1. Instalao

O processo de instalao de vrias distribuies de Linux tem vindo a sofrer avanos notveis, e j no apresenta desaos signicativos a um novo utilizador. No entanto, a instalao do sistema requerido tem algumas particularidades, e apresentamse portanto os passos de instalao usados. 1. Obteno do software O Fedora Core 3 (FC3) pode ser obtido legalmente e gratuitamente a partir de vrios locais espalhados pelo mundo19 . Localmente, pode ser encontrada no mirror do ftp: //ftp.di.uminho.pt e no que foi criado no Gil (ftp://ftp.gil.di.uminho.pt/ pub/fedora/3/iso/).

4.2.

Xen

Aps ter o sistema base actualizado, prossegue-se instalando o Xen: monitorizador, verses hspede e hospedeiro do kernel, e os utilitrios de controle. 1. Comea-se por obter o cdigo necessrio:
[root@knuth ~]# curl -O http://ftp.gil.di.uminho.pt/users/strange/op3/xen/xen-2.0.3-src.tgz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2108k 100 2108k 0 0 4126k 0 --:--:-- --:--:-- --:--:-- 4308k [root@knuth ~]# curl -O http://ftp.gil.di.uminho.pt/users/strange/op3/xen/python-twisted-1.3.0-2.i386.rpm % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2768k 100 2768k 0 0 4149k 0 --:--:-- --:--:-- --:--:-- 4412k [root@knuth ~]# curl -O http://ftp.gil.di.uminho.pt/users/strange/op3/xen/linux-2.6.10.tar.bz2 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 34.8M 100 34.8M 0 0 4487k 0 0:00:07 0:00:07 --:--:-- 4493k [root@knuth ~]# curl -O http://ftp.gil.di.uminho.pt/users/strange/op3/xen/linux-2.6.10-disable_irq_test.patch % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 597 100 597 0 0 20942 0 --:--:-- --:--:-- --:--:-0
18 19

http://fedora.redhat.com/ http://fedora.redhat.com/download/mirrors.html

13

[root@knuth ~]# curl -O http://ftp.gil.di.uminho.pt/users/strange/op3/xen/config-xenU % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 10345 100 10345 0 0 349k 0 --:--:-- --:--:-- --:--:-- 1275k [root@knuth ~]# curl -O http://ftp.gil.di.uminho.pt/users/strange/op3/xen/config-xen0 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 21591 100 21591 0 0 1723k 0 --:--:-- --:--:-- --:--:-- 4978k

2. Antes de congurar o xen, necessrio instalar o python-twisted:


[root@knuth ~]# rpm -ivh python-twisted-1.3.0-2.i386.rpm Preparing... ########################################### [100%] 1:python-twisted ########################################### [100%]

3. Prossegue-se com a extraco e preparao do cdigo fonte:


[root@knuth ~]# tar xzf xen-2.0.3-src.tgz [root@knuth ~]# cd xen-2.0 [root@knuth xen-2.0]# ln ../linux-1.6.10.tar.bz2 [root@knuth xen-2.0]# make -f buildconfigs/mk.linux-2.6-xen0 linux-2.6.10-xen0/include/linux/autoconf.h (output omitido)

4. Aplica-se o patch criado para a supresso da mensagem de aviso de interrupts permitidas, e prossegue-se com a congurao do kernel para o sistema especco. necessrio o suporte para initrd, lvm, hardware especco. E tambm desactivar o suporte para kernel preemptible.
[root@knuth xen-2.0]# patch -p0 < ../linux-2.6.10-disable_irq_test.patch patching file linux-2.6.10-xen0/drivers/block/ll_rw_blk.c [root@knuth xen-2.0]# cp ../config-xen0 linux-2.6.10-xen0/.config cp: overwrite linux-2.6.10-xen0/.config? y [root@knuth xen-2.0]# make -C linux-2.6.10-xen0 menuconfig ARCH=xen

5. A operao tambm realizada para o kernel xenU, com a excepo do patch, que no necessrio. A congurao no ser feita para o hardware especco da mquina, mas para uma congurao conforme aos requisitos dos sistemas hspedes. Para permitir o uso da mesma imagem nas duas rplicas, necessrio que as opes de congurao sejam idnticas nas duas rplicas para o kernel xenU.
[root@knuth xen-2.0]# make -f buildconfigs/mk.linux-2.6-xenU linux-2.6.10-xenU/include/linux/autoconf.h (output omitido) [root@knuth xen-2.0]# cp ../config-xenU linux-2.6.10-xenU/.config cp: overwrite linux-2.6.10-xenU/.config? y [root@knuth xen-2.0]# make -C linux-2.6.10-xenU menuconfig ARCH=xen

6. Com a congurao realizada, compila-se e instala-se o programa:


[root@knuth xen-2.0]# make all install

7. Aps a instalao do kernel e utilitrios, preciso activar o arranque do daemon de controle do xen e mudar o processo de arranque para usar o kernel xen.

14

a) TODO b) Criar a imagem de arranque:


[root@knuth xen-2.0]# mkinitrd /boot/initrd-2.6.10-xen0.img 2.6.10-xen0 -v -f

c) Adicionar a entrada ao loader:


title Xen root (hd0,0) kernel /xen.gz dom0_mem=262144 module /vmlinuz-2.6.10-xen0 ro root=/dev/knuth/root quiet module /initrd-2.6.10-xen0.img

Mudar a quantidade de memria desejada, e o caminho para a raiz para o especco a este sistema. 8. Resta apenas realizar um reboot e vericar se o sistema continua a funcionar correctamente.

4.3.

DRBD

Com o Xen em funcionamento, para simplicao da compilao do mdulo de kernel, comea-se o processo de instalao do DRBD. 1. Obter o cdigo fonte:
[root@knuth ~]# curl -O http://ftp.gil.di.uminho.pt/users/strange/op3/drbd-0.7.10.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 270k 100 270k 0 0 2808k 0 --:--:-- --:--:-- --:--:-- 4413k

2. Prossegue-se com a extraco e compilao do cdigo fonte, e instalao dos binrios:


[root@knuth ~]# tar xzf drbd-0.7.10.tar.gz [root@knuth ~]# cd drbd-0.7.10 [root@knuth drbd-0.7.10]# make all install

3. Cria-se agora o volume lgico que ser partilhado, com o tamanho desejado, no grupo de volumes do sistema. Este passo deve ser ignorado se o volume foi criado j no processo de instalao do sistema base. No exemplo dado, vai-se criar um volume lgico com o nome de exports no grupo knuth, e tamanho 20GB:
[root@knuth drbd-0.7.10]# vcreate -L20G -nexports knuth Logical volume "exports" created [root@knuth xen-2.0]#

4. Prossegue-se com a criao da congurao, criando o cheiro /etc/drbd.conf. Ser preciso substituir o nome e endereo dos sistemas conforme a congurao local, assim como o o volume lgico denido:

15

resource data {

## nome do recurso, para uso nos comandos de ## administrao ## usar o protocolo C, que garante a escrita por ambos ## os ns

protocol C;

incon-degr-cmd "echo !DRBD! pri on incon-degr | wall ; sleep 60 ; halt -f"; ## comando a executar quando se tenta activar o ## dispositivo e se sabe que est inconsistente startup { wfc-timeout

120; ## tempo de espera no arranque pelo par, ## quando o estado anterior era connectado. ## ## tempo de espera, quando o estado anterior degradado: apenas um n em funcionamento

degr-wfc-timeout 120; } disk { on-io-error } syncer { rate 10M;

detach;

## em caso de erros no dispositivo fsico, ## desligar o dispositivo

## permitir um dbito mximo de 10MB/s na transferncia ## de dados para actualizao do n ## inconsistente ## a sincronizao ser realizada em paralelo ## para os dispositivos dentro do mesmo grupo, ## irrelevante para o caso actual ## cada unidade identificar reas de 4MB que ## foram actualizadas. quando o n secundrio ## retornar, essa informao poder ser usada ## para reduzir a informao transferida

group 1;

al-extents 257;

} on turing.gil.di.uminho.pt { ## um dos ns, o nome a usar deve ser o ## retornado pelo comando hostname ## onde se encontrar o dispositivo ## replicado

device

/dev/drbd0;

disk address meta-disk

/dev/turing/exports; ## dispositivo base de armazenamento 192.168.1.6:7788; internal; ## endereo IP e porta do n ## localizao da informao de estado ## do dispositivo. permite-se reservar ## parte do espao disponvel

} on knuth.gil.di.uminho.pt { device /dev/drbd0; disk /dev/knuth/exports; address 192.168.1.3:7788; meta-disk internal; } } ## o outro n

5. Pode-se agora denir o arranque automtico do servio:


[root@knuth ~]# chkconfig --add drbd && chkconfig drbd on

16

6. E arrancar j o servio. Nesta fase no h ainda a necessidade de manter os dados constantemente sincronizados. Quando o outro n for trazido rede, receber os dados correctos. at possvel desenvolver os dois sistemas ortogonalmente, e decidir, previamente sincronizao, qual dos dois contm os dados a manter.
[root@knuth ~]# service drbd start Starting DRBD resources: [ d0 s0 n0 ]. *************************************************************** DRBDs startup script waits for the peer node(s) to appear. - In case this node was already a degraded cluster before the reboot the timeout is 120 seconds. [degr-wfc-timeout] - If the peer was available before the reboot the timeout will expire after 120 seconds. [wfc-timeout] (These values are for resource data; 0 sec -> wait forever) To abort waiting enter yes [ 9]:yes

7. Verica-se agora o estado do dispositivo e muda-se para primrio. Como no h ainda informao sobre o secundrio, o DRBD obriga a forar o comando:
[root@knuth ~]# drbdadm state data Secondary/Unknown [root@knuth ~]# drbdadm primary data ioctl(,SET_STATE,) failed: Input/output error Local replica is inconsistent (--do-what-I-say ?) Command /sbin/drbdsetup /dev/drbd0 primary terminated with exit code 21 Broadcast message from root (Mon Feb !DRBD! pri on incon-degr ^C [root@knuth ~]# drbdsetup /dev/drbd0 primary --do-what-I-say 7 06:12:51 2005):

8. Pode-se agora passar criao do grupo de volumes sincronizado e dos volumes lgicos e seus sistemas de cheiros necessrios:
[root@knuth ~]# pvcreate /dev/drbd0 Physical volume "/dev/drbd0" successfully created [root@knuth ~]# vgcreate shared /dev/drbd0 Volume group "shared" successfully created [root@knuth ~]# lvcreate -L2GB -n www shared Logical volume "www" created [root@knuth ~]# lvcreate -L128 -n www.swap shared Logical volume "www.swap" created [root@knuth ~]# mke2fs -j -O dir_index -q /dev/shared/www max_blocks 536870912, rsv_groups = 16384, rsv_gdb = 127 inode.i_blocks = 6104, i_size = 4243456 mk[root@knuth ~]# mkswap /dev/shared/www.swap Setting up swapspace version 1, size = 134213 kB

4.4.

Sistemas Hspedes

A instalao dos sistemas hspedes pode ser baseada numa cpia de um sistema j instalado. Nesse caso, necessrio adicionar o suporte ao kernel xenU, pela adio dos mdulos

17

e criao da imagem de arranque. tambm necessrio realizar algumas alteraes s conguraes do sistema. Que parties montar, que hardware existe, congurao de interfaces de rede, etc.. Em alternativa, pode-se optar por novas instalaes. Apresentam-se aqui formas de o realizar para as duas distribuies usadas. 4.4.1. Debian

Debian20 uma distribuio estritamente Open Source de Linux, gratuita e instalvel a partir da Internet. Esta distribuio foi usada internamente nas mquinas virtuais responsveis pelo servio de www e ftp, seguindo os passos seguintes: 1. necessrio obter o debootstrap21 , que permite a instalao de um sistema base Debian numa directoria especca. Para quem tem acesso a um sistema Debian, fcil instalar o pacote. No nosso caso, foi necessrio extrair manualmente o pacote:
[root@knuth tmp]# ar xv debootstrap_0.2.45-0.1_i386.deb x - debian-binary x - control.tar.gz x - data.tar.gz [root@knuth tmp]# tar xzf data.tar.gz -C/

O binrio encontra-se agora disponvel em /usr/sbin/debootstrap. Quando deixar de ser necessrio, debootstrap pode ser removido com:
[root@knuth tmp]# tar tzf data.tar.gz | (cd / ; while read path ; do rm -f $path ; rmdir -p $path ${path%/*} ; done ) 2> /dev/null

Que tenta remover cheiros e directorias vazias. 2. Com o volume lgico criado e formatado conforme os passos apresentados na secco de DRBD, monta-se o volume destino numa directoria temporria:
[root@knuth ~]# mount /dev/shared/www /mnt/

3. S falta a deciso de que mirror e verso da distribuio usar. Caso se decida por uma verso mais conservadora da distruio, ser necessrio reduzir algumas features activadas por omisso no lesystem formatado. Entretanto, pode-se prosseguir com a instalao dos pacotes base:
20 21

http://www.debian.org/ http://packages.debian.org/stable/admin/debootstrap

18

[root@knuth ~]# debootstrap --arch i386 sid /mnt http://ftp.eq.uc.pt/software/Linux/debian

4. Como com o sistema hospedeiro, necessrio remover a implementao de glibc com suporte a TLS:
[root@knuth ~]# rm -fr /mnt/lib/tls /mnt/usr/lib/tls /mnt/usr/X11R6/lib/tls

5. ainda necessrio alterar os cheiros de conguraa relevantes para o sistema operativo reetir os efeitos desejados:

etc/hostname
Denio do nome da mquina:
www.gil.di.uminho.pt

etc/hosts
Resoluo esttica de nomes e endereos IP:
127.0.0.1 localhost.localdomain localhost 192.168.1.19 www.gil.di.uminho.pt www

etc/resolv.conf
Denio do nome de domnio e servidor interno:
search gil.di.uminho.pt nameserver 192.168.1.2

etc/network/interfaces
Denio das interfaces de rede disponveis:
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.19 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.254

etc/fstab
Denio da partio raiz e partio de swap (ambas virtuais):
/dev/sda1 / ext3 defaults 1 1 /dev/sda2 swap swap defaults 0 0

etc/apt/sources.list
Denio do repositrio Debian, para permitir a instalao simples de pacotes usando o apt-get:
deb http://ftp.eq.uc.pt/software/Linux/debian unstable main contrib non-free deb http://ftp.eq.uc.pt/software/Linux/debian-non-US unstable/non-US main contrib non-free deb http://ftp.eq.uc.pt/software/Linux/debian-security stable/updates main contrib non-free

6. Finalmente, necessrio criar a congurao para a mquina virtual, em /etc/xen/www:


kernel memory disk = root = = "/boot/vmlinuz-2.6.10-xenU" = 192 [ phy:shared/www,0801,w, phy:shared/www.swp,0802,w ] "/dev/sda1 ro"

19

possvel agora criar e desligar a mquina virtual, assim como usar outros comandos administrativos xen:

xm create www
Criao da mquina virtual. Com a opo -c, estabelecida uma ligao consola criada.

xm list
Mostra uma listagem das mquinas virtuais em funcionamento, com informao sobre memria reservada, estado de processador e endereo da consola.

xm shutdown www
Equivalente a executar o comando halt na mquina virtual. O sistema realizar as operaes de encerramento e, aps o halt, a mquina virtual desaparece e os recursos usados voltam a car disponveis.

xm destroy www
A mquina virtual simplesmente destruda e os recursos libertos, sem qualquer possibilidade de encerramento limpo por parte do sistema.

xm console www
estabelecida uma ligao consola da mquina virtual.

20

5.

Rede

A nvel de rede, a infra-estrutura vai sofrer vrias alteraes. adicionado um segmento adicional de rede e o hardware de suporte tambm alterado. As alteraes feitas a nvel de segmentos de rede foram possveis graas ao facto de o DI ter gentilmente disponibilizado material para o suporte da mesma, nomeadamente o switch modular Alcatel 1100 LSS.

5.1.

Rede IP

O Gil encontrava-se ligado rede da UM atravs da estrutura de rede do DI, como ilustrado na gura 2, e dispe de dois endereos IP pblicos:

193.136.19.100 193.136.19.101

Figura 2: Ligao entre o Gil e o DI. A tabela 1 mostra a atribuio nal dos endereos IP a cada mquina fsica e a respectiva rede. Utilizando os endereos pblicos possvel de fora da rede da UM aceder aos servios fornecido pelo Gil. claro que o acesso no permitido a todo o conjunto de servios fornecidos, apenas a um sub-conjunto destes possibilitado o acesso, quer por razes de segurana, quer por razes de o servio no fazer sentido fora do Gil. Exemplos de servios com acesso de fora do DI:

HTTP;

21

Nome Mail Knuth Turing Ritchie Thompson Jakim Spark Steve

IP 192.168.1.1 192.168.1.3 192.168.1.6 192.168.2.1 192.168.2.2 192.168.2.3 192.168.2.4 192.168.2.5

Rede 192.168.1.0/24 192.168.1.0/24 192.168.1.0/24 192.168.2.0/24 192.168.2.0/24 192.168.2.0/24 192.168.2.0/24 192.168.2.0/24

Tabela 1: Endereos IP das mquinas.

SSH; MAIL.
Exemplos de servio sem acesso de fora do DI:

NFS; LDAP.

5.2.

Segmentos de Rede

Para uma melhor segurana o acesso de fora para dentro da rede do Gil no feito directamente s maquinas. Os endereos pblicos ilustrados anteriormente encontram-se atribudos a uma mquina que funciona como rewall. Ou seja, todo o trfego para a rede do Gil recebido pela rewall e ser redireccionado para a mquina que disponibiliza o servio requerido, ou que originou a ligao. Como j foi referido anteriormente, algumas destas mquinas podem ser virtuais, situao que no afecta o desenho da rede, uma vez que cada uma tem o seu prprio endereo IP e MAC bem denidos. Este redireccionamento conseguido utilizando iptables. A tabela 2 representa a relao entre os servios exportados e a mquina que o serve. Alm deste facto, a rede do Gil encontra-se tambm internamente segmentada. Isto foi realizado utilizado o hardware para suporte de rede fornecido pelo DI, o switch da Alcatel, para criar vrias redes privadas - VLANs. Basicamente existem duas VLANs, uma para os servidores e outra para as estaes de trabalho. Este facto aumenta a segurana dos servidores uma vez que deixa de ser possvel

22

Porta 53 25 22 20 21

Servio DNS SMTP SSH FTP [data] FTP [control]

Destino 192.168.1.2 192.168.1.1 192.168.1.18 192.168.1.17 192.168.1.17

Mquina intsrv mail shell ftp ftp

Tabela 2: Mapeamento entre portas e endereos IP. aos processos das estaes de trabalho acederem ao trfego trocado entre os servidores, e vice-versa. Este trfego tem assim que passar pela rewall para chegar ao seu destino, dando assim tambm uma possibilidade de ltragem por parte do iptables.

Figura 3: VLANs do Gil e a ligao ao DI. A gura 3 ilustra a situao. A VLAN dos servidores encontra-se representada a vermelho e das estaes de trabalho a azul. Finalmente, so atribudos endereos IP s mquinas reais, ignorando de momento as mquinas virtuais. A gura 4 ilustra uma boa aproximao rede do Gil. Como referido anteriormente, todo a comunicao entre as mquinas na rede 192.168.1.0/24 e a rede 192.168.2.0/24 feita atravs da rewall. Na gura podemos ainda ver a relao entre os nomes das mquinas e dos seus endereos.

23

Figura 4: Rede fsica do Gil.

24

5.3.

Congurao do Switch

Foi necessrio congurar o switch de acordo com os decises discutidas no captulo anterior. Para esta congurao ligou-se uma das mquinas consola de administrao do switch, atravs da porta srie (rs232). Para a comunicao com o switch foi utilizada a aplicao minicom. Em seguida ilustra-se alguns dos procedimentos realizados na congurao do switch para reectir todo o esquema descrito anteriormente. Esta parte foi por vezes dicultada pela falta na altura de qualquer documentao do hardware em questo. O primeiro objectivo foi congurar as VLANs. As VLANs foram criadas usando o comando crgp, e estas podem ser visualizadas usando o comando gp:

gil /# vlan gil /VLAN# crgp GROUP Number ( 5) : Description (no quotes) : Enable WAN Routing? (n): Enable ATM CIP? (n): . . . gil /VLAN# gp 1 Default GROUP (#1) 2 Backbone . . . 5 gil servers . . . 7 gil workstations . . .
Em seguida foi necessrio atribuir portas do switch a essas VLANs, a tabela 3 ilustra a maneira como essas portas foram atribudas. VLAN 1 2 Grupo 5 7 Nome gil servers gil workstations Portas 4/1 - 4/12 5/1 - 5/12

Tabela 3: Atribuio de portas fsicas s VLANs. Uma vez q o switch composto por vrios mdulos a identicao de cada porta do tipo: <mdulo>/<porta>. Por exemplo, a porta 4/7 identica a porta nmero 7 do mdulo 4. Na prtica, esta atribuio foi feita do seguinte modo:

gil /VLAN# addvp Usage: addvp group_id vport_list

25

. . gil . . gil

. /VLAN# addvp 5 4/1-12 . /VLAN# via 5 GROUP Interface Attachments For GROUP 5

GROUP: Slot/Intf ========== 5:4/1 5:4/2 5:4/3 . . .

Description ====================== Virtual port (#33) Virtual port (#34) Virtual port (#35)

Service/ Instance ============ Brg / 1 Brg / 1 Brg / 1

Admin Protocol Status ============ ======= Tns Enabled Tns Enabled Tns Enabled

26

6.

Resultado

Figura 5: Infra-estrutura obtida A gura 5 representa o sistema aps a concretizao do projecto, que segue, com poucas excepes, o plano criado. Variaes do sistema a destacar so:

A adio de um web accelerator, que permitir fornecer vrios servios de pginas em


mquinas distintas. Anteriormente, o redireccionamento era efectuado na mquina www, e limitado a processos locais.

27

A no replicao do servio de FTP. Os dados de um servio de mirroring, alm de


serem obtenveis por outros mirrors, so de volume aprecivel. A replicao dos dados conjuntamente com os dados pessoais dos utilizadores viriam a limitar consideravelmente a utilidade do sistema. Em vez disso, optou-se pelo uso dedicado de um disco oferecido para o efeito. No arranque de um dos sistemas hspedes, vericada a existncia do disco e, se vlida, arranca-se o servio virtual.

28

7.

Problemas

A realizao do projecto no teve uma evoluo constante e suave. Pelo contrrio, cou marcada pelos seguintes obstculos encontrados.

7.1.

Interoperabilidade

Alguns componentes, com funcionamento correcto quando instalados isoladamente, manifestavam alguns problemas quando agrupados:

Xen e DRBD
O desenvolvimento inicial passou inicialmentee pela instalao de DRBD e apenas posteriormente de Xen. Para nosso desespero, aps a instalao de Xen, DRBD passou a gerar avisos preocupantes e constantes de problemas possveis de acesso concorrente a partes crticas do kernel. Isso levou a redesenhar o sistema por duas vezes. Na primeira instncia, exportava-se directamente no sistema hospedeiro as homes e cheiros das mquinas virtuais - estes como imagens em disco. No entanto, o acesso directo ao sistema de cheiros gerava alocaes no kernel de blocos dinmicos de transferncia de dados. Essas alocaes levavam a um estabelecimento de ligao e remoo do dispositivo de baixo nvel que, no caso do DRBD, e apenas quando debaixo do Xen, deixavam de ser atmicas por reactivao espontnea de interrupts. Para evitar essa situao, decidiu-se por usar o bloco DRBD directamente apenas numa mquina virtual. A ligao no kernel do dispositivo de baixo nvel ocorria ento apenas uma vez, no arranque da mquina virtual. No entanto, essa soluo obrigava a: 1. Manter a imagem dessa mquina virtual fora do dispositivo partilhado, e sincronizla por outros meios; 2. Reimportar as imagens das restantes mquinas virtuais. O que complicava a administrao, obrigava o uso de outros componentes no sistema hospedeiro, e causava dependncias desnecessrias entre mquinas virtuais. Posto isso, foi resolvido voltar ao uso do dispositivo DRBD directamente no sistema hospedeiro, usar volumes lgicos sobre o dispositivo, e procurar uma congurao de kernel estvel. Para isso:

29

1. Desligou-se a gerao de um kernel preemptible, i.e., em que um processo a executar uma operao no kernel pode ser interrompido por outro processo, ou evento, de maior prioridade. Como essa caracterstica traz poucas vantagens a um sistema servidor, no se obteve um impacto adverso na performance do sistema, e melhorou-se a estabilidade. 2. Com a alterao anterior, e como o sistema se manteve estvel durante testes de carga, desligou-se no kernel o cdigo de vericao do estado de interrupts. Sem esta alterao, os registos gerados depressa esgotariam o espao reservado aos registos de sistema, e a performance do sistema sofreria uma degradao considervel.

Xen e TLS
A implementao actual TLS22 na glibc incompatvel com o Xen, por reservarem ambos o mesmo registo de segmentos do processador. Continua a ser possvel o uso de TLS, com emulao por parte do Xen, mas reduzindo substancialmente a performance do sistema. por isso recomendado remover as directorias /lib/tls e /usr/lib/tls, que contm as verses TLS de vrias bibliotecas. No entanto, a verso do OpenLDAP distribuda no Fedora Core 3 requer o uso de Futex23 para as bases de dados de suporte. Aparentemente, a implementao de Futex est dependente de TLS. Infelizmente, a instalao do OpenLDAP foi realizada aps a instalao do Xen. A causa do no funcionamento no cou aparente, e as mensagens de erro geradas no faziam sentido. Uns traces ao programa acabou por revelar a falha no Futex. Corrigiu-se ento a situao com uma compilao personalizada do OpenLDAP, usando outro sistema de base de dados de suporte - a Gdbm24 . Se se tivesse optado pelo uso de verses dos componentes mais estveis, talvez se tivesse evitado alguns destes problemas. Nomeadamente, o uso da verso 2.6 do kernel Linux, ainda no atingiu a maturidade da verso 2.4, e tem sido alvo de reescritas de subsistemas crticos. Na procura de uma evoluo rpida para uma maior performance, estabilidade e escalabilidade. Com essa evoluo rpida, certas assunes na implementao de Xen e DRBD deixam de ser vlidas, e torna-se necessrio reescrever partes desses subsistemas.
22

Thread Local Storage - mecanismo que permite denir partes do espao de endereamento de uma thread como especcas thread. 23 Fast Mutexes - implementao de semforos por instrues especcas ao processador, de rpido desempenho e disponibilidade inter-processos.
24

http://www.gnu.org/software/gdbm/

30

Usar a verso 2.6 tambm veio forar o uso das novas verses desses compatveis com essa verso do kernel. Embora consideradas estveis, h ainda partes no muito testadas. Com a incluso do Xen no kernel base e estabilizao do desenvolvimento desses sistemas, espera-se que as correces realizadas para esses problemas deixem de ser necessrias.

7.2.
7.2.1.

Logsticos
Disponibilidade

H sempre o problema da falta de tempo e disponibilidade para realizar o trabalho em mos, mas o caso presente foi agravado pelo requerimento de vrias operaes terem de ser realizadas in situ:

Por ser necessrio realizar algumas operaes em nveis de falta de acesso remoto; Na eventualidade de tornar o sistema incontactvel at interveno local se algo corresse mal. O local, neste caso, seria o Laboratrio de Sistemas Operativos, no edifcio do Departamento de Informtica: a) Por o hardware ser pertena da Universidade do Minho; b) Por ser necessrio manter partes do servio continuamente disponveis (email, dns, login). Como foi necessrio no incomodar as aulas decorrentes na sala, e como o edifcio era encerrado durante o perodo extra-curricular, no foi possvel usufruir do tempo de acesso ideal para a realizao do projecto. 7.2.2. Hardware

Os objectivos impunham o aproveitamento do hardware j disponvel, mas, para obter uma melhor realizao, foi necessrio obter o seguinte hardware:

Memria RAM para o uso de mquinas virtuais, com caractersticas diferentes e que
comeam a desaparecer do mercado;

Duas placas de rede a 100Mbps, para ligao da nova rede de workstations na rewall
e melhorias do desempenho de rede;

Uma placa grca ISA, devido rewall no oferecer o nmero de slots PCI sucientes.

31

Eventualmente, obteve-se o hardware necessrio por oferta do professor Victor Fonte. A placa grca, da sua coleco privada, e os restantes componentes por compra no mercado.

32

8.

Concluso

Como resultado obteve-se uma infra-estrutura de rede dinmica, em que os servios podem ser rapidamente migrados entre mquinas e a sua disponibilidade virtualmente constante. Nomeadamente: 1. Servidores redundantes, com informao sincronizada; 2. Servidor virtual interno, a fornecer homes e DNS; 3. Servidor virtual Web, a correr Plone; 4. Servidor virtual de login, para execuo e desenvolvimento de projectos; 5. Servidor virtual de FTP, para manuteno local de cpias de software necessrio s actividades do Gil; aos requisitos pessoais legais dos gileiros; e ao fornecimento de software criado no Gil no desenvolvimento dos seus projectos; 6. Servidor de email, com listas de distribuio; 7. Servidor LDAP e Kerberos, com replicao independente, para uma administrao centralizada. 8. Firewall, com distribuio e ltragem de trfego pelo uso de iptables e de squid como web accelerator. 9. Suporte criao de novas mquinas virtuais que venham a ser necessrias. Ainda, uma srie de estaes de trabalho caram disponveis no laboratrio do Gil para uso pelos elementos do grupo. Em geral, cmos satisfeitos com o resultado nal e achamos que os objectivos principais foram atingidos e a as decincias da infra-estrutura anterior ultrapassadas. O Gil cou dotado de uma nova infra-estrutura de rede capaz de satisfazer as necessidades do grupo.

33

9.

Trabalho Futuro

A soluo implementada atingiu os objectivos propostos, mas h funcionalidades potenciais a explorar: (i) Exportar as imagens das mquinas virtuais, de modo a permitir distribu-las por outras mquinas fsicas. Poder ser implementado usando GNBD25 . (ii) Monitorizar a carga nas mquinas hospedeiras, e migrar dinamicamente mquinas virtuais para estabilizar e igualizar a carga. No se conhece nenhuma implementao, mas a realizao do software necessrio certamente vir a interessar um gileiro. Esta funcionalidade requer (i). (iii) Exportar para a Internet as homes locais, usando NFSv4 e Kerberos, para permitir o acesso transparente por parte dos vrios utilizadores aos seus dados, com autenticao segura e cifragem dos dados. (iv) Criar uma base LDAP de contactos comum e export-la para uso dos utilizadores pela Internet. (v) Com a permisso e apoio do SCOM26 , implementar a verso 6 do protocolo IP, para uma presena na Internet de todas as mquinas virtuais, alm das estaes de trabalho e mquinas pessoas, sem necessidade de truques e conguraes estticas na rewall - NAT e PAT 27

25 26

http://gfs.wikidev.net/GNBD_installation

Servio de Comunicaes da Universidade do Minho - http://www.scom.uminho.pt/ 27 Network Address Translation e Port Address Translation - mecanismos e regras de reescrita de endereos de rede e portas para reenvio para os destinos correctos.

34

10.

Agradecimentos

Queremos demonstrar o nosso agradecimento por:

O apoio demonstrado pelo orientador realizao do projecto, o nosso estimado professor Victor Fonte;

A compreenso demonstrada por aqueles que sofreram os inconvenientes necessrios


implementao desta soluo: utilizadores, professores, amigos e familiares;

O apoio do Departamento de Informtica, pela infra-estrutura de rede e pela oferta do


switch;

O apoio constante do Grupo de Sistemas Distribudos s actividades do Gil.

35

Lista de Acrnimos
DHCP Dynamic Host Conguration Protocol Protocolo que permite aos administradores de redes centralizar e automatizar a atribuio automtica de endereos IP dentro dessa rede. DI Departamento de Informtica Departamento de Informtica da Universidade do Minho. DNS Domain Name Server Servio usado para mapear nomes em IPs e vice-versa. DRBD Distributed Replicated Block Device Servio capaz de manter sincronizado um dispositivo de disco atravs da rede. CD Compact Disc Disco ptico compacto, com capacidade para 640MB de dados ou 74 minutos de udio. DVD Digital Video Disk Uma inovao do disco compacto com maior capacidade de armazenamento. DVD-ROM Digital Video Disk-Read Only Memory Unidades DVD que permitem a escrita de dados, apenas uma vez. FC3 Fedora Core 3 Distribuio de Linux open source patrocinada pela Red Hat, terceira edio. FTP File Transfer Protocol Protocolo para transferir cheiros entre mquinas atravs da Internet. FW FireWall Designao para a mquina que implementa o servio de ltragem do trfego de rede. FUTEX Fast Mutex Implementao de semforos por instrues especcas ao processador, de rpido desempenho e disponibilidade inter-processos. GB GigaByte Unidade utilizada para medir espao de armazenamento ou capacidades de transferncia. GIL Grupo de Investigao Linux Grupo de Investigao Linux, liado ao Grupo de Sistemas de Distribudos do Departamento de Informtica da Universidade do Minho.

36

HTTP HyperText Transfer Protocol Um protocolo para transferir (utilizando o TCP) pedidos de hipertexto e informao entre clientes e servidores. Pertence camada de aplicao da pilha OSI. IBM International Business Machines Empresa internacional ligada ao desenvolvimento de software e hardware. IP Internet Protocol Protocolo utilizado na camada de rede para transferncia de dados atravs da Internet. ISA Industry Standard Architecture Denio da arquitectura de um barramento standard para a comunicao entre a motherboard e dispositivos ligados a expansion slots. KDC Key Distribution Center Servio utilizado para emitir tickets e chaves de sesso, ver Kerberos28 . LAN Local Area Network Rede local para comunicao entre computadores. LDAP Lightweight Directory Access Protocol Conjunto de protocolos que permite o acesso a directrios de informao. LVM Logical Volume Manager Servio para a gesto de volumes lgicos. MAC Media Access Code Endereo identicativo da interface de rede, segunda camada da pilha OSI. MB MegaByte Unidade utilizada para medir espao de armazenamento ou capacidades de transferncia. NAT Network Address Translation Servio que converte um endereo IP de uma rede privado para um endereo de uma rede pblico em tempo real. NFS Network File System Protocol que permite que vrias mquinas tenham acesso aos mesmos cheiros. NFSv4 Network File System version 4 Verso 4 deste protocolo, ver NFS. OSI Open Systems Interconnection Conjunto de standards aceites a nvel internacional para comunicao entre sistemas.
28

http://web.mit.edu/kerberos/www/

37

PAT Port Address Translation Implementa um funcionalidade similar ao NAT, mas reencaminha tambm pelas portas usadas. PC Personal Computer Sigla utilizada para denir um computador pessoal, geralmente compatvel com o standard da IBM. PCI Peripheral Component Interconnect Sistema que permite ligar um processador a um dispositivo externo. RAM Random Access Memory Circuito integrado que permite o armazenamento voltil de informao. SCOM Servio de Comunicaes da Universidade do Minho Centro de comunicaes que gere rede da Universidade do Minho. SMTP Simple Mail Transfer Protocol Protocolo utilizado para enviar mensagens de correio electrnica pela Internet. SSH Secure SHell Protocolo que permite o acesso seguro a uma shell remota. TLS Thread Local Storage Mecanismo que dene partes do espao de endereamento de uma thread como especcas a esta. UM Universidade do Minho Universidade do Minho. VLAN Virtual Local Area Network Denio lgica de uma rede local implementada em hardware. WWW World Wide Web Coleco de documentos on-line espalhados por mquinas em todo o mundo.

38

Вам также может понравиться