Instituto Superior de Engenharia do Porto Departamento de Engenharia Informática Administração de Sistemas Informáticos I Trabalho Prático N.º 1 Sistemas Redundância Grupo 6: Andreia Abelha 1020499 Miguel Chaves 1020572 Pedro Barbosa 1020588 Ricardo Silva 1020590
Introdução Nos dias que correm, possuir uma disponibilidade elevada é uma necessidade. Mas para atingir este patamar, para além de possuirmos hardware de confiança, é requerida uma boa capacidade de reparação e software robusto. Actualmente a maioria dos sistemas possuem componentes redundantes, como processadores, memórias, fontes de alimentação, etc. Redundância de Processadores Monitorização de falhas Um dos grandes problemas no design de um sistema com redundância de processadores é a detecção de falhas no hardware e software. Assim existem muitas formas de detectar problemas num processador, como é o caso de verificar as voltagens ou monitorizar a temperatura dum CPU. Quando é detectada falhas criticas no hardware ou excepções fatais o esquema de redundância deverá forçar o CPU a reiniciar, permitindo assim ao processador em standby tomar conta do sistema. A monitorização de problema não deverá ser exagerado pois pode chegar ao cúmulo de ter metade do código existente com apenas esse único propósito. Código de análise a erros de software é também necessário para determinar o local apropriado e o nível de recuperação a tomar. Para uma melhor performance devese sempre tentar detectar e tratar falhas a nível local não deixando o processador em standby envolver-se. Numa arquitectura deste género deve ser usado um mecanismo de bloqueio para garantir que apenas um processador possua o papel activo, tendo que cada processador saber o seu estado operacional (ligado ou desactivo) e papel de protecção (activo ou em standby). Durante um estado de operação normal cada processador monitoriza o estado operacional e papel de protecção indicado pelo outro processador, assim quando um se desliga o outro processador toma o papel activo. Para evitar que dois processadores se tornem o activo é implementada uma regra de prioridade, sendo que a prioridade e predefinida a um dos processadores.
Figura 1: Escolha de Processadores numa Arquitectura Redundante Comunicação entre processadores Existem três formas de manter o processador em standby: Sincronizado: O processador activo envia para o processador em standby todos os inputs. O que acontece é que se perde o sentido de processador em standby. Figura 2: Comunicação entre processadores, modelo sincronizado Método mirrored-memory: Existe uma partilha de memória entre os processadores transferindo informação relevante.
Figura 3: Comunicação entre processadores, modelo mirrored-memory Método communication-link: Usa um link de comunicações entre os dois processadores. As comunicações são feitas com quando ocorre uma mudança de estado ou por períodos de tempo. Figura 4: Comunicação entre processadores, communication-link Mudança de Processador e Recuperação A mudança de processador controlado ocorre quando o processador activo ainda e capaz de comunicar com o processador em standby. Esta troca permite transferir controlo e minimizar erros. Neste processo o processador activo termina todas as transacções pendentes e suspende eventos fazendo o controlo por interfaces, assim estando os processadores sincronizados ocorre a troca de estados operacionais entre os processadores. Por fim o processador em standby fica activo e a recuperação de sistema e iniciada. UPS (Uninterruptible Power Supply) Uma UPS é um aparelho que se encontra entre uma fonte de energia e um aparelho. O objectivo da UPS é prevenir eventuais falhas de energia adjacentes á fonte de energia que podem afectar o bom funcionamento desse mesmo aparelho. As vantagens de se ter uma UPS num sistema são várias: o O computador não pára de trabalhar mesmo que a energia falhe; o Os utilizadores não param de trabalhar por causa de o computador se desligar; o O equipamento não fica sujeito a um curto circuito, que poderá danificar aparelhos;
o Os dados não são perdidos porque a maquina se desligou por haver falta de energia; o Mostra a voltagem que está a ser recebida; o Reinicia o equipamento após um longo período de tempo sem corrente; A arquitectura física das UPS é uma arquitectura onde existem uma série de baterias que têm como principal função assegurar que a energia não irá faltar ao sistema, mesmo no caso em que a fonte de alimentação deixa de fornecer energia. Desta forma ao haver um corte de corrente é emitido um aviso ao utilizador que lhe indica que a corrente falhou, e dá-lhe tempo para que possa guardar informações que ainda não tenham sido guardadas e encerrar, caso se justifique, o sistema de forma segura. No entanto as UPS também possuem as suas limitações; uma vez que se trata de um aparelho que serve como armazenador de energia, ele irá ter uma autonomia de acordo com as baterias que possua. Quanto maiores forem as baterias e maior for a sua capacidade de carga, maior será a autonomia da UPS. Figura 5: Diagrama básico do funcionamento de uma UPS Neste momento existem dois tipos de UPS: o Standby UPS o Continuous UPS Standby UPS Este tipo de UPS é um sistema em que a UPS está desactivada enquanto a energia recebida pelo sistema tem uma voltagem normal até que seja detectado um problema. Quando um problema for detectado, num curto espaço de tempo (regra geral em cinco milissegundos ou por vezes menos) a UPS entra em pleno funcionamento e fornece ao computador a energia que ele necessita para poder continuar em funcionamento através de uma técnica chamada power inverter. Esta técnica consiste no seguinte: transforma a energia DC recebida das baterias em energia AC de 120-volt e 60-Hertz. Desta maneira assegura-se o normal funcionamento do sistema até que as baterias da UPS sejam totalmente descarregadas. Continuous UPS Neste tipo de UPS a energia fornecida ao computador provém sempre das baterias existentes na UPS, e essas mesmas baterias estão sempre a ser recarregadas através da fonte de alimentação.
Este tipo de UPS pode ser construída manualmente de forma muito simples bastando para isso possuir um carregador de baterias, uma bateria recarregável e um power inverter. O carregador de baterias produz corrente DC contínua, enquanto que o power inverter converte essa energia em energia AC de 120 volt. Se a electricidade falhar, a bateria fornece energia ao power inverter. Desta maneira não existe falha de energia no alimentador do computador. As Standby UPS são mais comuns para uso doméstico ou para pequenas empresas pois o seu custo é em média metade do custo das Continuous UPS. No entanto estas UPS são extremamente fiáveis em termos de estabilidade de energia e têm uma grande tendência a ser usadas em salas de servidores. Memórias redundantes Figura 6: Exemplo de uma UPS Algo redundante é como o próprio termo indica, algo repetitivo. O uso de memórias redundantes tem como objectivo reduzir a ocorrência de falhas. Este dispositivo pertence ao grupo de dispositivos que permitem a criação de sistemas redundantes. Deste grupo destacam-se: os discos RAID, as fontes de alimentação e a UPS. Estes dispositivos têm como finalidade aumentar a tolerância contra falhas. As falhas mais comuns são a nível de hardware, falhas de energia, descargas electrostáticas e que normalmente afectam memórias RAM. Se numa máquina constituída por três Slots de memória, apenas existir uma placa de memória significa que não existe redundância. Isto porque para haver redundância a máquina deveria conter pelo menos duas placas de memória, de forma a permitir a replicação do conteúdo dessa memória para outra. Ou seja, para haver redundância a partir de memórias RAM é necessário que a máquina seja constituída por pelo menos duas memórias RAM. Para além do número de placas de memória também é necessária uma unidade de gestão de memória que reaja de forma apropriada para permitir que haja redundância entre as memórias. Quando é invocada a instrução de escrita de dados em memória, a unidade de gestão deverá dirigir os dados para o Slot principal e, copiar e enviar os mesmos dados para os restantes Slots de memória que possuam memórias. Essa unidade de gestão de memória é também responsável por avaliar e prever quando alguma das
memórias pode vir a falhar, redireccionando o fluxo de dados para as memórias de backup (restantes) e desactivar a memória defeituosa. Desta forma as memórias funcionam como um todo mas independentes entre si, caso uma falhe as outras continuam o seu trabalho e compensam essa falha. Para o utilizador ou o sistema em geral, por exemplo uma base de dados, esta gestão numa situação de falha, evita que o mesmo servidor seja desligado para substituição do dispositivo, e desta forma previne também a perda de dados. De seguida é apresentado um exemplo prático da utilização de três memórias redundantes. A Unisys Portugal, em parceria com a PT Corporate e o suporte técnico da Elections Systems and Software (ES&S), a principal empresa mundial de gestão de processos eleitorais, foi convidada pela UMIC, Agência para a Sociedade do Conhecimento, para participar pela segunda vez na experiência piloto de voto electrónico presencial, que se realizou nas Eleições Legislativas, no passado dia 20 de Fevereiro deste ano. Sem validade legal, este exercício decorreu apenas nas cinco freguesias onde votaram os líderes dos cinco partidos políticos/coligações com assento parlamentar. A Unisys apresentou, uma solução que revela uma utilização fácil, segura e robusta, associada a uma simplicidade operacional em todo o processo de votação, desde a abertura da mesa até ao apuramento dos resultados finais. Os Quiosques de Votação Electrónica da Unisys, denominados ivotronics, permitem recolher a informação em cada um dos quiosques após o fecho de cada uma das mesas, através de um cartão electrónico de supervisor (PEB), a qual, depois de impressa e validada pela mesa, é transmitida de modo seguro, para um servidor central, no qual se encontra instalado o software de apuramento de resultados globais. Os quiosques são compostos por três memórias redundantes, para que nenhum voto possa ser alterado ou perdido. Sistemas RAID Redundant Array of Independent Disks (RAID), ou, em português, Conjunto Redundante de Discos Independentes. Tal como o seu nome indica, trata-se de um conjunto de discos interligados que podem ser usados em vários modos de funcionamento para necessidades diferentes. Modos/ Níveis de RAID: 1. RAID 0 Striped Disk Array Nesta arquitectura são utilizados 2 ou mais discos rígidos de forma a criar uma única unidade lógica (a capacidade total é a soma das capacidades dos vários discos). Desta forma, os dados são distribuídos pelos vários discos, o que permite, em teoria duplicar o desempenho.
Esta distribuição é concebida através da segmentação [ 1] de dados em que os ficheiros são separados em blocos e são guardados sequencialmente em cada disco rígido. Este sistema não é propriamente um sistema redundante pois não há duplicação (mirror) de dados. Exemplo: Figura 7: RAID 0 Metade dos dados são gravados/lidos no disco A e outra metade é no disco B. A B Vantagens: Fácil implementação Aumenta o desempenho na leitura/escrita em disco. Desvantagens: No caso de avaria de um disco a informação será perdida, pois este sistema não é redundante nem tem como objectivo ser tolerante a falhas. [ ] 1 Segmentação (stripping) é um método de mapeamento de dados sobre o meio físico de um bloco, que serve para criar um grande dispositivo de armazenamento. Os dados são subdivididos em segmentos (stripes) que são escritos sequencialmente em cada um dos discos de um arranjo. Cada segmento tem um tamanho definido em blocos.
2. RAID 1 Mirroring and Duplexing Esta arquitectura é pouco utilizada em PCs de secretária porque não conduz ao aumento de desempenho do sistema de armazenamento nem permite criar unidades de maior capacidade. Pelo contrário, a capacidade total de dois discos ligados em RAID1 é igual à capacidade de um dos discos, o que significa que metade do espaço é perdido. Neste modo todos os dados são guardados nos vários discos. Ou seja um disco é o espelhado noutro disco. Esta técnica é utilizada frequentemente em servidores de armazenamento de ficheiros porque permite redundância. Exemplo: Figura 8: -RAID 1 Tal como o RAID 0 são necessários no mínimo dois discos rígidos. A B Neste modo os dados são todos gravados nos dois discos. Ou seja, o disco B é um espelho do disco A. Se o disco A avariar, o sistema continua a funcionar graças ao disco B. Ou seja, o sistema de armazenamento fica com o dobro da fiabilidade. Vantagens: Permite um sistema mais fiável visto ser tolerante a falhas. Como é um sistema 100% redundante em caso de falha temos os dados duplicados no disco de mirror. Desvantagens: Menos performance na leitura/escrita a dados. Perca de capacidade de armazenamento visto obter-mos sempre metade do espaço total dos vários discos.
Tipos Híbridos Combinação de RAIDS A partir da abordagem acima descrita dos vários tipos de RAID fica claro que estes têm vantagens e desvantagens conforme os objectivos pretendidos (fiabilidade ou performance?). Daí surgiu a combinação de tipos de RAID com a finalidade de complementar os tipos de RAID existentes. 3. RAID 0+1 (Mirror of Stripes) e RAID 10 (Stripe of Mirrors) Nestas arquitecturas temos a combinação de RAID 0 e RAID 1 /RAID 1 e RAID 0 com a finalidade de garantir performance de leitura/escrita de dados garantindo ainda a fiabilidade do sistema. A ordem pela qual se escreve a combinação dos tipos de RAID interessa visto a ordem indicar o que vai ser replicado. No caso do RAID 0+1 existe uma replicação (mirror) de segmentos de dados, ou seja temos uma duplicação de segmentos de dados ao invés de uma duplicação de blocos de discos. Figura 9: RAID 0+1 Vantagens: Excelente em níveis de performance e segurança. Desvantagens: O alto custo de implementação 4. RAID 10 Stripe of Mirrors Este modo de RAID é a combinação de discos espelhados (RAID-1) com a segmentação de dados (data stripping) (RAID-0). Figura 10: RAID 10
Vantagens: Tem o mesmo nível de performance de um RAID 0+1, contudo o nível de segurança em caso de falha (fault tolerance)é maior, pois este nível de RAID só é perdida a informação se os dois discos rígidos do mesmo grupo apresentarem falhas ao mesmo tempo. Desvantagens: O alto custo de imementação. Referências do trabalho: http://www.webopedia.com/term/r/raid.html http://www.acnc.com/raid.html http://www.commsdesign.com/csdmag/sections/ feature_article/showarticle.jhtml?articleid=16504011 http://www.jetcafe.org/~npc/doc/ups-faq.html http://www.pcguide.com/ref/power/ext/ups http://www.google.pt