Vous êtes sur la page 1sur 159

ENDERSON FERREIRA

ANÁLISE DE CONFIABILIDADE DE SISTEMAS


REDUNDANTES DE ARMAZENAMENTO EM
DISCOS MAGNÉTICOS

Dissertação apresentada à Escola


Politécnica da Universidade de São
Paulo para obtenção do Título de
Mestre em Engenharia.

SÃO PAULO
2003
ENDERSON FERREIRA

ANÁLISE DE CONFIABILIDADE DE SISTEMAS


REDUNDANTES DE ARMAZENAMENTO EM
DISCOS MAGNÉTICOS

Dissertação apresentada à Escola


Politécnica da Universidade de São
Paulo para obtenção do Título de
Mestre em Engenharia.

Área de Concentração:Sistemas
Digitais

Orientador:
Prof. Dr. Jorge Rady de Almeida Jr.

SÃO PAULO
2003
Ferreira, Enderson
Análise de Confiabilidade de Sistemas Redundantes
de Armazenamento em Discos Magnéticos. São Paulo, 2003.
140 p.

Dissertação (Mestrado) – Escola Politécnica da


Universidade de São Paulo – Departamento de Engenharia da
Computação e Sistemas Digitais.

1. Arquitetura de Computadores 2. Discos Magnéticos


3. Sistemas Redundantes I-Universidade de São Paulo, Escola
Politécnica, Departamento de Engenharia da Computação e
Sistemas Digitais.
À minha querida esposa Vanessa pelo
incentivo e inesgotável paciência e
compreensão.
AGRADECIMENTOS

Ao Prof. Dr. Jorge Rady de Almeida Jr. pela inestimável ajuda e orientação durante o
desenvolvimento deste trabalho.
À minha esposa Vanessa, pelo estímulo e paciência nos diversos momentos em que
nos privamos de horas de lazer.
Aos meus companheiros de trabalho, com menção especial ao Diretor de Tecnologia
da Agência Estado, Prof. Dr. Demi Getschko, pelo incentivo e reconhecimento
profissional.
Ao homem lá de cima, e a todos que, direta ou indiretamente, colaboraram na
execução deste trabalho.
RESUMO

A presente dissertação faz uma avaliação da confiabilidade de algumas técnicas de


armazenamento redundante de dados em discos magnéticos, conhecidas como
técnicas RAID (Redundant Array of Inexpensive Disks). Essas técnicas organizam os
discos em matrizes possibilitando a recuperação de discos falhos através da
informação redundante armazenada em outros discos, além de obter ganhos de
desempenho. Através de modelagens utilizando diversos métodos conhecidos na
literatura para avaliação de confiabilidade de sistemas, o autor mensura o tempo
médio de perda de dados de cada técnica RAID avaliada. Um ambiente
parametrizado onde é possível modificar as variáveis de sistema e obter a
confiabilidade desejada é proposto pelo autor, possibilitando ainda comparar as
diversas técnicas ajudando na escolha da mais apropriada em projetos de
armazenamento secundário.
ABSTRACT

This report make an analysis of reliability of some techniques of redundant


storagement of data on magnetic disks, know as RAID techniques (Redundant Array
of Inexpensive Disks). These techniques organize disks in arrays that allow
recovering fail disks through redundant information in other disks, and on the other
side, improve performance. Using reliability models from literature, the author
measure the mean time to data loss of each techniques RAID analyzed. A parameter
environment where is possible to modify variables of system and display the
reliability wished is proposed by author, still allowing to compare several techniques
helping on choose the more appropriate in designs of secondary storagement.
SUMÁRIO

Capítulo 1. Introdução.................................................................................................. 1
1.1. Justificativa ....................................................................................................... 1
1.2. Objetivos ........................................................................................................... 4
1.3. Organização do Trabalho .................................................................................. 5
Capítulo 2. Métricas e Métodos para Avaliação de Confiabilidade de Sistemas......... 8
2.1. Principais Conceitos.......................................................................................... 8
2.1.1. Confiabilidade ............................................................................................ 8
2.1.2. Disponibilidade .......................................................................................... 9
2.1.3. Segurança ................................................................................................... 9
2.1.4. Executabilidade ........................................................................................ 10
2.1.5. Manutenabilidade..................................................................................... 10
2.1.6. Falha, Erro e Disfunção ........................................................................... 10
2.2. Métodos Quantitativos para Análise de Confiabilidade de Sistemas.............. 11
2.2.1. Mean Time To Failure (MTTF) ............................................................... 13
2.2.2. Mean Time To Repair (MTTR) ............................................................... 14
2.2.3. Mean Time Between Failures (MTBF).................................................... 15
2.3. Modelos Combinatórios para Avaliação de Sistemas Redundantes ............... 15
2.3.1. Sistema Série............................................................................................ 16
2.3.2. Sistema Paralelo ....................................................................................... 17
2.4. Modelos de Markov ........................................................................................ 18
2.5. Métodos Qualitativos para Análise de Confiabilidade de Sistemas................ 21
2.5.1. Análise por Árvore de Falhas................................................................... 21
2.5.2. Redes de Petri........................................................................................... 25
Capítulo 3. Discos Magnéticos e Interfaces............................................................... 28
3.1. Os Discos Rígidos ........................................................................................... 29
3.1.1. Organização Lógica dos Discos Rígidos.................................................. 31
3.1.2. Parâmetros de Desempenho dos Discos Rígidos ..................................... 33
3.1.3. Detecção e Correção de Erro em Discos Rígidos .................................... 35
3.1.3.1. CRC................................................................................................... 36
3.1.3.2. S.M.A.R.T. ........................................................................................ 38
3.2. Interfaces ......................................................................................................... 40
3.2.1. SCSI ......................................................................................................... 40
3.2.2. IDE / ATA................................................................................................ 43
3.2.3. Outras Interfaces ...................................................................................... 46
Capítulo 4. RAID, Matrizes Redundantes de Discos Magnéticos ............................ 49
4.1. Os Níveis de RAID ......................................................................................... 54
4.1.1. Raid Nível 1 - Espelhamento ................................................................... 55
4.1.2. Raid Nível 2 - Correção de erro por Hamming........................................ 56
4.1.2.1. Código de Hamming ......................................................................... 57
4.1.3. RAIDs níveis 3, 4 e 5 - Paridade N+1...................................................... 62
4.2. RAID Derivados ............................................................................................. 68
4.2.1. RAID com dados e paridade não entrelaçados ........................................ 68
4.2.2. RAID com Matriz bi-dimensional de discos............................................ 70
4.2.3. RAID Ortogonal....................................................................................... 74
4.2.4. RAID com código não-binário................................................................. 75
4.2.5. RAID 0 – Sem redundância ..................................................................... 76
4.2.6. RAID em camadas ................................................................................... 77
4.2.6.1. RAID 0+1.......................................................................................... 77
4.2.6.2. RAID 0+3.......................................................................................... 79
4.2.6.3. RAID RM2........................................................................................ 80
4.3. Comparação de RAID por Software e RAID por Hardware........................... 81
Capítulo 5. Análise de Confiabilidade dos Sistemas RAID....................................... 86
5.1. Considerações Gerais ...................................................................................... 86
5.1.1. Principais Parâmetros............................................................................... 87
5.1.2. Caracterização do Processo de Reparo .................................................... 91
5.1.3. Falhas de Sistema..................................................................................... 94
5.2. Avaliação de Confiabilidade dos RAID 3, 4 e 5............................................. 97
5.2.1. Avaliação para Múltiplos Grupos de Paridade Simples......................... 100
5.2.2. Avaliação de Múltiplos Grupos de Paridade Simples Considerando Falhas
de Sistema ........................................................................................................ 101
5.2.3. Avaliação do RAID Ortogonal Considerando Falhas de Sistema ......... 102
5.3. Avaliação de Confiabilidade do RAID 1 ...................................................... 106
5.4. Avaliação de Confiabilidade do RAID RM2 ................................................ 107
5.5. Rede de Petri para Modelagem de Falhas em RAID .................................... 108
5.6. Resumo.......................................................................................................... 113
Capítulo 6 - Simulação............................................................................................. 115
6.1. O SimuRAID................................................................................................. 115
6.2. Aplicação do Simulador................................................................................ 118
Capítulo 7 - Conclusões ........................................................................................... 121
7.1. Contribuições ................................................................................................ 124
7.2. Trabalhos Futuros ......................................................................................... 127
Referências Bibliográficas ....................................................................................... 128
Anexo A – Apresentação do Simuraid..................................................................... 137
LISTA DE FIGURAS

Fig.1.1 - Processor-centric e data-centric (COURTRIGHT, 1997) ............................. 2


Fig. 2.1 - Interconexão entre os conceitos de Falha, Erro e Disfunção...................... 11
Fig. 2.2 - Curva da Banheira (Johnson, 1989) ........................................................... 12
Fig. 2.3 – Relação entre MTBF e o MTTF. ............................................................... 15
Fig. 2.4 – Um sistema série de N módulos ................................................................ 16
Fig. 2.5 – Sistema paralelo de N blocos..................................................................... 17
Fig. 2.6 – Modelo de Markov para o sistema TMR com as probabilidades de
transições de estado............................................................................................ 20
Fig. 2.7 – Modelo de Markov reduzido para o sistema TMR .................................... 21
Fig. 2.8 – Exemplo de Árvore de Falhas com gates e eventos enumerados .............. 23
Fig. 2.9 – Exemplo gráfico de uma Rede de Petri. .................................................... 25
Fig. 3.1 – Mecanismo de acesso aos dados dos discos magnéticos ........................... 30
Fig. 3.2 - Organização lógica de discos magnéticos (Adaptado de PATTERSON,
1996) .................................................................................................................. 32
Fig. 3.3 – Formato de gravação de trilha em discos rígidos padrão ST-506.............. 38
Fig. 3.4. – Controlador SCSI como interface entre discos e o computador (adaptado
de DELL, 1999 e KRINGS, 1999)..................................................................... 41
Fig. 3.5 – Configuração ATA com dois periféricos por canal (adaptado de DELL,
1999) .................................................................................................................. 44
Fig. 3.6 – Topologias de Canais de Fibra (adaptado de CLARK, 2000) ................... 48
Fig. 4.1 - Discos físicos organizados em matriz são endereçados como um único
disco lógico ........................................................................................................ 52
Fig. 4.2 – Matriz utilizando discos de diferentes capacidades................................... 53
Fig. 4.3 - Espelhamento ............................................................................................. 56
Fig. 4.4 – Matriz de discos do RAID nível 2 ............................................................. 57
Fig. 4.5 – Diagrama de Venn-Euler ........................................................................... 60
Fig. 4.6 – Técnica de cálculo da paridade por subconjuntos ..................................... 61
Fig. 4.7 – Verificação dos bits de paridade para detecção e correção de erro ........... 62
Fig. 4.9 – Entrelaçamento de paridade com disco dedicado ...................................... 64
Fig. 4.10 – RAID nível 3, entrelaçamento de paridade em nível de byte. ................. 65
Fig. 4.11 – Entrelaçamento de paridade por blocos de 16KB.................................... 65
Fig. 4.12 – RAID Nível 4 em nível de bloco e disco de paridade dedicado .............. 66
Fig. 4.13 – RAID 5 – paridade distribuída com entrelaçamento em nível de bloco.. 67
Fig. 4.14 – Exemplo de RAID sem entrelaçamento de dados ................................... 69
Fig. 4.15 – Matriz bi-dimensional.............................................................................. 70
Fig. 4.16 – Matriz bi-dimensional de discos genérica ............................................... 73
Fig. 4.17 – RAID Ortogonal ...................................................................................... 74
Fig. 4.18 – Código de verificação não binário ........................................................... 76
Fig. 4.19 – RAID 0+1 ................................................................................................ 78
Fig. 4.20 – RAID 0+3 ................................................................................................ 79
Fig. 4.21 – RAID RM2 .............................................................................................. 81
Fig. 4.22 – RAID Híbrido em nível de Software e Hardware (adapatado de AKOM,
2002) .................................................................................................................. 84
Fig. 4.23 – Organização de um RAID por Software com múltiplos hosts (KIM, 1997)
............................................................................................................................ 84
Fig. 5.1 – Espelhamento (RAID 1) com OLS............................................................ 93
Fig. 5.2 – MTTF dos componentes que o subsistema de E/S é dependente .............. 95
Fig. 5.3 - Árvore de Falhas do sub-sistema de E/S .................................................... 96
Fig. 5.4 - Sistema com redundância de controladoras, canais e hosts ....................... 97
Fig. 5.5 - Modelo de Markov para sistema de discos redundantes com único grupo de
paridade .............................................................................................................. 98
Fig. 5.6 – RAID com organização ortogonal da paridade e suporte de hardware ... 102
Fig. 5.7 – Modelo de Markov para RAID de paridade e suporte de hardware
ortogonais......................................................................................................... 103
Fig. 5.8 – Submodelos para Perda de Dados do RAID Ortogonal........................... 104
Fig. 5.9 – Modelo de Markov para o RAID RM2.................................................... 107
Fig. 5.10 – Rede de Petri para um grupo de paridade N+1 com falha de disco
independente .................................................................................................... 110
Fig. 5.11 – Árvore de Alcançabilidade da Rede de Petri ......................................... 112
Fig. 5.12 – Modelo de Markov equivalente a Árvore de Alcançabilidade .............. 112
Fig. 6.1 – Entradas e Saídas do SimuRAID ............................................................. 116
LISTA DE TABELAS

Tabela 2.1 – Análise Top-Down dos gates e eventos básicos da árvore.................... 24


Tabela 2.2 – Conjunto de entradas e saídas das transições da Rede de Petri............. 26
Tabela 3.1. – Versões da interface SCSI (adaptada de DELL, 1999)........................ 43
Tabela 3.2 – Modos de Transferência da interface ATA (adaptada de DELL, 1999)45
Tabela 4.1 – Distância Hamming 2............................................................................ 58
Tabela 4.2 – Distância Hamming 3............................................................................ 59
Tabela 4.3 – Bits de redundância e sobretaxas para m bits usando ........................... 60
código de Hamming para correção de erros simples ................................................. 60
Tabela 4.4 – Sobretaxa de matrizes bi-dimensionais comparado a Hamming .......... 73
Tabela 5.1 – Especificações técnicas da Seagate, referente ao disco ST1181677LCV
(SEAGATE, 2002)............................................................................................. 89
Tabela 5.2 – MTTDL das técnicas RAID ................................................................ 114
Tabela 6.1 – Parâmetros de um estudo de caso no SimuRAID ............................... 118
Tabela 6.2 – Síntese de resultados do SimuRAID para um estudo de caso............. 119
Tabela 7.1 – Relação Custo x Desempenho x Confiabilidade das técnicas RAID .. 123
LISTA DE SIGLAS

ATA – AT Attachment
CDROM – Compact Disk Read Only Memory
CRC – Cyclic Redundancy Check
CR – Cadeia em Reparo
DR – Discos em Reparo
DP – Dados Perdidos
DVD – Digital Video Disk
E/S - Entrada e Saída
HiFD – High capacity Floppy Disk
IEEE - Institute of Electrical & Electronics Engineers
IDE – Integrated Device Electronics
MTTF – Mean Time To Failure
MTTR – Mean Time To Repair
MTBF – Mean Time Between Failures
MTTDL – Mean Time To Data Loss
MTTCD – Mean Time To Change Disk
NF – Nenhuma Falha
OLS – On Line Spare
RAID - Redundant Arrays of Inexpensive Disks
RAM – Random Access Memory
RPM – Rotações Por Minuto
RM2 – Redundancy Matrix 2
SCSI – Small Computer Systems Interface
S.M.A.R.T - Self-Monitoring Analysis and Reporting Technologies
TMR – Triple Module Redundancy
TD – Tamanho do Disco
TR – Taxa de Reconstrução
UCP – Unidade Central de Processamento
1

CAPÍTULO 1. INTRODUÇÃO

1.1. Justificativa

Os sistemas de computação, tradicionalmente compostos em unidade centrais de


processamento, memória primária ou principal e memória secundária, surgiram para
uso comercial no início da década de 50 e, desde então, os dispositivos de
armazenamento em massa, bem como discos e fitas magnéticas usadas como
memória secundária, eram colocados em segundo plano às unidades central de
processamento com relação a investimento em desempenho e confiabilidade.

Antes do surgimento dos primeiros microcomputadores no início da década de 80, os


sistemas eram caracterizados por uma unidade central de processamento e, em sua
periferia, vários dispositivos de armazenamento secundário além de terminais de
acesso remoto. Essa topologia denominou os dispositivos de armazenamento
secundário como dispositivos periféricos.

Esse conceito inverteu-se quando os microcomputadores passaram a ser utilizados


em lugar de computadores de grande porte nos modelos de negócio das grandes
empresas, processo de transformação dos setores de informática no início da década
de 90 conhecido por downsizing. Essa transformação se deu devido à queda dos
custos das unidades central de processamento e ao aprimoramento tecnológico da
fabricação de microcomputadores em grande escala.

Os modelos de negócio baseados em microcomputadores demandaram maior volume


de dados armazenados em dispositivos de armazenamento secundário, e as grandes
empresas perceberam que tais dados são o maior valor do sistema computacional,
uma vez que uma falha não suprida pelo sistema pode resultar na perda de
informações, mais valiosas que todo o sistema de processamento investido.
2

Desde então, na visão de prioridade de investimento em tecnologia para


aprimoramento de confiabilidade e desempenho, pode-se classificar as unidades de
processamento como “periféricos” no sistema computacional, apesar de oficialmente
não serem classificados dessa forma.

O conceito de implementação dos sistemas passou então de processor-centric para


data-centric, ou seja, em termos de investimento tecnológico, os sistemas de
armazenamento secundário são colocados hoje como o centro de todo o sistema
computacional ao invés das unidades de processamento, dos tradicionais sistemas
(COURTRIGHT, 1997).

processor-centric data - centric

Fig.1.1 - Processor-centric e data-centric (COURTRIGHT, 1997)

A importância do armazenamento secundário dentro do sistema, somado à evolução


dos processadores e memória principal, demandou o aprimoramento tecnológico dos
dispositivos de armazenamento em massa e o surgimento de novas técnicas para o
aperfeiçoamento do armazenamento secundário, com o objetivo de prover mais
desempenho e confiabilidade desses sistemas.

A velocidade de obtenção de dados armazenados em dispositivos de armazenamento


secundário depende de evoluções mecânicas nos discos magnéticos. A evolução
observada nesses dispositivos, apesar de expressiva, tem ficado bastante aquém dos
processadores e das memórias principais, exatamente pelas limitações mecânicas.
3

Os processadores têm dobrado seu desempenho a cada 18 meses, ao passo que se


observa que os discos magnéticos atingem o mesmo ganho a cada 3 anos (BELL e
JOY apud CHEN, 1996). As taxas de acesso de um disco rígido são da ordem de
milisegundos, enquanto que os demais componentes de uma hierarquia de memória,
como as memórias principal RAM (memórias de acesso randômico), são da ordem
de nanosegundos, o que prova a importância do desenvolvimento de armazenamento
secundário de alto desempenho para prover eficiência ao sistema como um todo.

De forma a superar as limitações mecânicas, uma alternativa de fragmentar os dados


armazenando-os em vários discos foi proposto em 1984 (KIM e SALEM apud
CHEN, 1990). No intuito de aprimorar o desempenho, os discos são arranjados em
matrizes ou vetores. A fragmentação melhora o desempenho de leitura/escrita ou
operações de E/S (Entrada e Saída) por permitir que múltiplas E/S sejam executadas
paralelamente. Nesse caso, requisições múltiplas e independentes podem ser
atendidas em paralelo por discos distintos e uma requisição por um dado que esteja
fragmentado em vários discos é atendida por múltiplos discos atuando de forma
sincronizada.

Quanto mais discos na matriz, maior o desempenho, uma vez que se obtêm um maior
número de instruções de E/S independentes. Porém, uma matriz de muitos discos
pode comprometer a confiabilidade do sistema uma vez que os dados estão
fragmentados ao longo de todos os discos da matriz, e para que haja uma E/S com
sucesso, é preciso que todos os fragmentos estejam íntegros em cada disco da matriz.

Patterson et al., após experimentos realizados em 1988 na Universidade da


Califórnia, propuseram algumas técnicas de organização dos dados em matriz
tolerante a falhas, valendo-se do armazenamento redundante dos dados nas matrizes.
Essas técnicas receberam a denominação RAID, Redundant Arrays of Inexpensive
Disks, ou matriz redundante de discos de baixo custo.
4

Matriz redundante pois as técnicas propostas organizam os dados de forma


fragmentada e de forma redundante para que na falha de um disco na matriz os
fragmentos perdidos possam de alguma forma serem recuperados.

Discos de baixo custo, pois na época existiam discos magnéticos tecnologicamente


mais confiáveis e conseqüentemente mais caros, cujos tempos médios estimados de
vida útil eram maiores. O armazenamento redundante não dispensa discos mais
confiáveis, porém, em alguns casos, discos menos confiáveis e de menor custo
podem ser empregados já que em caso de falha, este pode ser trocado e todos os
fragmentos podem ser reconstituídos.

Para tolerar falhas, a técnica RAID aloca uma fração de sua capacidade para o
armazenamento de um código que permite a redundância. Esta informação
redundante permite que em caso de uma falha de disco, a informação de origem seja
recuperada a partir do conteúdo de discos que não falharam (Gibson, 1991).

1.2. Objetivos

Os objetivos desta dissertação são utilizar as métricas e métodos de avaliação de


confiabilidade de sistemas encontrada na literatura para modelar algumas das
técnicas de armazenamento redundante de dados em disco (as matrizes de disco
RAID) e avaliar a confiabilidade de cada técnica extraindo-se dos modelos
apresentados a probabilidade de perda de dados em função dos diversos parâmetros
envolvidos. Esse objetivo geral pode ser subdividido nos seguintes objetivos
específicos:

• usando Modelos de Markov avaliar a confiabilidade sem considerar falhas


de sistemas das técnicas de RAID que utilizam paridade simples e suporte
a uma falha de disco, dupla paridade e suporte a duas falhas de disco e
espelhamento, e considerando falhas de sistema, avaliar a técnica RAID
de paridade simples utilizando múltiplas matrizes ortogonais em cadeias
independentes;
5

• propor a modelagem por Redes de Petri, chegando ao Modelo de Markov


para avaliar a confiabilidade da técnica de paridade simples;
• desenvolver um ambiente parametrizado de simulação que possibilite a
avaliação quantitativa das técnicas de RAID modeladas apresentando
números e gráficos que resultam das equações de tempo médio estimado
de perda de dados de cada técnica. E com base em números extraídos
desse ambiente, comparar a confiabilidade das técnicas e identificar os
parâmetros que comprometem a confiabilidade esperada de um projeto de
armazenamento secundário.

A teoria de confiabilidade bem como os métodos utilizados para modelagem de


confiabilidade de sistemas encontrados na literatura são apresentados nesta
dissertação na forma de tutorial. Da mesma maneira a caracterização dos
componentes dos subsistemas de entrada e saída e a descrição das diversas técnicas
de armazenamento redundante são resultado do levantamento bibliográfico, servindo
como base para a modelagem, elemento principal do trabalho.

1.3. Organização do Trabalho

Um estudo bibliográfico sobre os principais métodos e conceitos utilizados para


avaliação de confiabilidade de sistemas é o enfoque do Capítulo 2. O estudo fica
limitado aos conceitos aplicados nesta dissertação nos capítulos posteriores.

O Capítulo 2 descreve de forma sucinta e nos casos necessários as principais


métricas de confiabilidade de sistemas, como taxa de falha, tempo médio estimado
para falha (MTTF), disponibilidade e a confiabilidade de sistemas em função do
tempo. Ainda conceitua e exemplifica os métodos de avaliação de confiabilidade,
como a utilização de Modelos de Markov, modelos combinatórios, análise por
Árvore de Falhas e Redes de Petri.
6

RAID é uma técnica que aprimora o desempenho e a confiabilidade do


armazenamento em discos magnéticos. Portanto, priorizou-se a abordagem dos
discos magnéticos e interfaces, que é o conteúdo do Capítulo 3.

No Capítulo 3 são especificados os diversos tipos de armazenamento secundário,


com destaque para o armazenamento magnético, que é explorado nesta dissertação.
O mecanismo de funcionamento dos discos magnéticos, bem como seus
componentes mecânicos e a distribuição e organização lógica dos dados na superfície
magnética dos discos são descritos neste capítulo. As técnicas para controle de
detecção e correção de falha e as métricas para avaliação individual de desempenho
dos discos também são abordados. Quanto às interfaces, são citadas duas principais
que se tornaram padrão de mercado, SCSI e IDE, e outras de aplicações mais
específicas como Fiber Channel (Canal de Fibra), USB (Universal Serial Bus) e
FireWire.

O Capítulo 4 descreve os benefícios trazidos pela fragmentação de dados em vários


discos e a necessidade de utilizar redundância de armazenamento para tolerar falha
de disco em sistemas críticos. As principais arquiteturas RAID, também conhecidas
como níveis de RAID (RAID nível 1 a nível 5) são detalhadamente descritas e
exemplificadas, abordando os mecanismos de distribuição dos dados em vários
discos e citadas as vantagens e desvantagens de cada técnica quanto à confiabilidade,
custo e desempenho. Outras técnicas derivadas dos níveis de RAID originais,
inclusive técnicas mais recentes e mais sofisticadas que permitem falhas múltiplas de
discos serem recuperadas, além de utilização de RAIDs em camadas para aumentar
desempenho e confiabilidade, são também estudadas nesse capítulo.

Os métodos de avaliação de confiabilidade de sistemas citados no Capítulo 2 são


utilizados no Capítulo 5 para análise de matrizes redundantes de disco RAID. Nesse
capítulo algumas das técnicas RAID descritas no Capítulo 4 são modeladas e a partir
dos modelos, equacionado o tempo médio de perda de dados de cada técnica
modelada.
7

O Capítulo 6 propõe um ambiente parametrizado de simulação baseado nas equações


obtidas do Capítulo 5.

O Capítulo 7 apresenta as conclusões e contribuições apresentadas neste trabalho,


fazendo uma comparação das técnicas modeladas e uma avaliação crítica de cada
técnica.

Por fim, são apresentadas as Referências Bibliográficas utilizadas e nos anexos, são
apresentadas as telas do ambiente parametrizado, com os gráficos de confiabilidade
em função dos parâmetros envolvidos de um estudo de caso.
8

CAPÍTULO 2. MÉTRICAS E MÉTODOS PARA AVALIAÇÃO DE


CONFIABILIDADE DE SISTEMAS

Neste capítulo são apresentados os principais conceitos relativos às métricas e


métodos utilizados para a avaliação da confiabilidade de sistemas.

Inicialmente são definidos os principais conceitos envolvidos, para em seguida serem


apresentadas as duas grandes vertentes para avaliação da confiabilidade de sistemas,
os métodos quantitativos e os métodos qualitativos.

O propósito da revisão destes conceitos teóricos é o de proporcionar um


embasamento para a modelagem que é feita no capítulo 5.

2.1. Principais Conceitos

A avaliação de um sistema quando submetido a uma missão crítica, ou seja, sistemas


onde há a necessidade de estar disponível 24 horas por dia, 7 dias por semana, pode
ser realizada através do levantamento de algumas de suas características. As
principais métricas que avaliam a operação de um sistema são a confiabilidade,
disponibilidade, segurança, executabilidade e manutenabilidade descritas a seguir.

2.1.1. Confiabilidade

Confiabilidade R(t) de um sistema é uma função do tempo, definida como a


probabilidade condicional que um sistema operará corretamente em um intervalo [t0,
t], dado que o sistema estava operando corretamente no instante t0 (SIEWIOREK,
1982). Em outras palavras, a confiabilidade é a probabilidade que o sistema irá
operar corretamente ao longo de um completo intervalo de tempo. A confiabilidade é
uma probabilidade condicional que depende do sistema estar operacional no início do
intervalo de tempo escolhido.
9

A não-confiabilidade Q(t) de um sistema é também uma função do tempo, definida


como uma probabilidade condicional que um sistema operará incorretamente durante
o intervalo [to,t], dado que o sistema estava operando corretamente no instante t0. A
não-confiabilidade é também referida como probabilidade de falha (SIEWIOREK,
1982).

Por exemplo, um computador que falhe em média uma vez a cada 2000 horas tem
uma probabilidade de falhas de 1/2000 falhas/hora.

2.1.2. Disponibilidade

A disponibilidade A(t) de um sistema é uma função de tempo, definida como a


probabilidade de que um sistema esteja em correto funcionamento e disponível para
realizar suas funções em um instante t (SIEWIOREK, 1982). A disponibilidade é
calculada apenas para um instante t, enquanto que a confiabilidade, refere-se a um
período de tempo.

2.1.3. Segurança

A segurança é definida como a probabilidade de que um sistema não atinja um


estado considerado inseguro ou perigoso, ou seja, não ficando exposto a um acidente.
Um estado inseguro é definido como sendo parte de um subconjunto dos estados de
falha do sistema.
Mais formalmente, segurança é a probabilidade de um sistema, em um determinado
período de tempo ∆t, desempenhar corretamente suas funções ou falhar sem
comprometer a integridade de pessoas e do meio ambiente, dado que este sistema
estava seguro no instante inicial.
10

2.1.4. Executabilidade

Em muitos casos, é possível projetar sistemas que podem continuar a executar suas
funções corretamente mesmo após a ocorrência de uma falha de hardware ou
software, ainda que o nível de desempenho diminua. É o caso de sistemas que
possuem tolerância à falhas; através da redundância dos módulos do sistema. Mesmo
que um módulo falhe, o outro pode suprir o sistema mantendo a execução de suas
funções corretamente.

A executabilidade P(L,t) de um sistema é também uma função de tempo, definida


como a probabilidade que o desempenho do sistema estará acima ou em um nível L
em um determinado instante de tempo t (Johnson, 1989).

2.1.5. Manutenabilidade

A manutenabilidade mede a facilidade com que um sistema pode ser reparado, após a
ocorrência de uma falha. A manutenabilidade M(t) é a probabilidade que um sistema
em estado de falha possa voltar a um estado de operação em um instante t (Johnson,
1989). O processo de restauração do sistema inclui a localização do problema, a
reparação física do sistema e a sua reinicialização em condições operacionais.

2.1.6. Falha, Erro e Disfunção

Dado um sistema, seja ele composto por hardware ou software, a presença de uma
anormalidade pode ser caracterizada em 3 tipos: falha, erro e disfunção
(CAMARGO, 2002). A interconexão desses conceitos é mostrada na figura 2.1.

Uma falha de sistema caracteriza um problema interno, ou seja, a falha de um


módulo de hardware ou software que não necessariamente provocou um
comportamento externo inadequado do sistema. Há 3 tipos de falhas, as falhas
transientes, falhas intermitentes e as falhas permanentes. As falhas transientes
11

ocorrem em um período de tempo e desaparecem. As falhas intermitentes


caracterizam-se por falhas transientes que ocorrem de tempos em tempos. Já as
falhas permanentes manifestam-se de forma contínua até que haja um reparo.

A existência de uma falha de qualquer natureza pode gerar um erro no sistema, que
representa um módulo ou subsistema faltoso ou falho apresentando um
comportamento inadequado.

A presença de um erro dentro do sistema pode por sua vez gerar um erro externo que
caracteriza a disfunção do sistema. Uma disfunção no sistema existe quando este não
se comporta de forma adequada apresentando resultados fora dos limites aceitáveis,
ou ainda quando deixa de funcionar totalmente.

Falha Erro Disfunção


(problema (problema em um (problema
interno) módulo ou externo)
subsistema)

Fig. 2.1 - Interconexão entre os conceitos de Falha, Erro e Disfunção

2.2. Métodos Quantitativos para Análise de Confiabilidade de Sistemas

A função de taxa de falhas representa quantas vezes um sistema falha dado um


período de tempo. Sendo assim, é medida em falhas por unidade de tempo,
normalmente falhas por hora.

Dados práticos mostram que a taxa de falhas para componentes eletrônicos é


aproximadamente uma constante. Especificamente para esse tipo de sistemas, o
gráfico que representa o comportamento de um sistema relacionando suas falhas no
tempo é chamado curva da banheira (do inglês bathub), já que o gráfico tem esse
formato (JOHNSON, 1989) e é mostrada na figura 2.2.
12

Mortalidad Vida útil Pós-


e Infantil nominal desgaste

Taxa de
Falhas

Tempo

Fig. 2.2 - Curva da Banheira (Johnson, 1989)

A curva mostra que durante o início da vida de um sistema composto por circuitos
eletrônicos, falhas ocorrem com mais freqüência pois os componentes estão sujeitos
a falhas de fabricação ou defeitos. Essa fase é conhecida como fase de mortalidade
infantil. No outro lado da curva, existe a fase pós-desgaste, ou seja, o sistema esteve
em operação por um longo tempo e está sujeito a falhas em decorrência do uso
excessivo dos componentes eletrônicos, falhas estas que podem ser ocasionadas por
desgaste físico ou mecânico. Na fase intermediária, a função de taxa de falhas é
aproximadamente uma constante e esta fase é chamada de vida útil do sistema. O
período onde a taxa de falhas é constante é a métrica relevante para mensurar o
sistema, e é simbolizada por λ , expressa por unidade de falhas por hora.

A confiabilidade R(t) é uma função do tempo e pode ser equacionada através da


função exponencial da taxa de falhas do sistema. Para que isso seja verdade, as falhas
de um sistema devem obedecer a uma distribuição exponencial.

A distribuição exponencial é a única distribuição contínua com a propriedade de não


possuir memória (memoryless), ou seja, o período de tempo desde o último evento
não ajuda a prever a próximo evento. (JAIN, 1991)
13

Se a ocorrência de uma falha representa um evento, e a distribuição de falhas de um


sistema tem a propriedade memoryless, a confiabilidade R(t) pode ser escrita como

R(t ) = e − λt

sendo que λ é uma constante que representa a taxa de falhas observada na fase de
estabilidade da curva da banheira.

A não-confiabilidade Q(t) é a probabilidade do sistema falhar em um período de


tempo, dado que inicialmente estava em funcionamento. Portanto, Q(t) é o inverso da
confiabilidade e pode ser escrito como:

Q(t) = 1 − R(t) = 1 − e−λt

2.2.1. Mean Time To Failure (MTTF)

Assim como a taxa de falhas, o tempo médio estimado de falha MTTF (Mean Time
To Failure) é um parâmetro importante para especificar a qualidade de um sistema.
O MTTF é o tempo estimado em que um sistema ficará operacional até a ocorrência
de uma falha. Por exemplo, se existem N idênticos sistemas colocados em operação
em t=0, e mede-se o tempo que cada sistema opera antes de falhar, o tempo médio
dentre esses tempos medidos é o MTTF (Johnson, 1989). Se cada sistema i opera por
um tempo t, antes de encontrar a primeira falha, o MTTF é dado por:

∑t i
MTTF = i =1
N

Se a função de confiabilidade obedece à lei de falha exponencial, o resultado do


cálculo do MTTF é dado por:
14

∞ −λt
MTTF = ∫ e dt = 1
0 λ

Sendo assim, o MTTF de um sistema é o inverso da taxa de falhas do sistema. A


confiabilidade de um sistema quando t=MTTF é

R ( MTTF ) = R 1( λ)= e −λ 1 ( λ) −1
= e = 0,3678

ou seja, a confiabilidade do sistema quando seu tempo de vida atinge o MTTF é 0,36
ou probabilidade de 36% que o sistema falhe.

2.2.2. Mean Time To Repair (MTTR)

O tempo médio de reparo MTTR (Mean Time To Repair) é simplesmente o tempo


médio requerido para que um sistema seja reparado após a ocorrência de uma falha
(Johnson, 1989). Se a enésima de N falhas requer um tempo t para reparo, o MTTR é
dado por:

∑t i
MTTR = i =1
N

O MTTR é normalmente especificado como uma função inversa da taxa de reparo


µ , que é a média de reparos que ocorrem num período de tempo. A unidade da taxa
de reparo é normalmente dada em reparos por hora.

MTTR = 1
µ

A função da disponibilidade pode ser escrita em termos do MTTF e MTTR quando o


sistema ainda não passou por um reparo em decorrência de uma falha. Durante esse
15

período de estabilidade do sistema, chamado steady state, a disponibilidade pode ser


escrita como sendo uma constante (SIEWIOREK, 1982).

Ass = µ = MTTF
(λ + µ ) ( MTTR + MTTF )

2.2.3. Mean Time Between Failures (MTBF)

O Mean Time Between Failures (MTBF) ou tempo médio entre falhas, é a soma do
MTTR e o MTTF como mostra a figura 2.3, ou seja, é o tempo médio entre todas as
vezes em que o sistema entrou em funcionamento, falhou e entrou novamente em
funcionamento após um tempo de reparo (Johnson, 1989).

1o ciclo 2o ciclo

MTTF MTTR MTTF MTTR tempo

MTBF=MTTF+MTTR

Fig. 2.3 – Relação entre MTBF e o MTTF.

2.3. Modelos Combinatórios para Avaliação de Sistemas Redundantes

Os modelos combinatórios usam técnicas probabilísticas que enumeram os diferentes


caminhos em que um sistema possa permanecer operacional.
A confiabilidade de um sistema está geralmente associada à confiabilidade dos
componentes individuais que compõem o sistema. Os 2 modelos de sistema mais
comuns na prática são os modelos série e paralelo. Em um sistema série, é necessário
que cada elemento do sistema opere sem falhas para que todo o sistema opere
corretamente ao passo que em um sistema paralelo, somente um dos vários
elementos em paralelo pode estar operacional para que todo o sistema funcione
corretamente.
16

Na prática, os sistemas são tipicamente combinações de subsistemas séries e


paralelos.

2.3.1. Sistema Série

Os sistemas série são sistemas que não possuem qualquer tipo de redundância. Uma
maneira de representar esses sistemas é utilizar um diagrama em bloco de
confiabilidade. Esse diagrama é representado como um diagrama de fluxo com uma
entrada e uma saída do sistema. Cada elemento do sistema é um bloco e no caso do
sistema série, os blocos são alocados de forma que as saídas de cada bloco são a
entrada do bloco subseqüente.

R1(t) R2(t) RN-1(t) RN(t)

Fig. 2.4 – Um sistema série de N módulos

Um diagrama em blocos genérico de um sistema série é mostrado na figura 2.4, e


contém N elementos (SIEWIOREK, 1982). A confiabilidade do sistema série pode
ser calculada como a probabilidade que nenhum dos elementos falhe ou a
probabilidade em que todos os elementos estejam operando corretamente.

Supõe-se que Ciw(t) representa o evento em que o componente Ci está trabalhando


corretamente no tempo t, Ri(t) é a confiabilidade do componente Ci no tempo t, e
Rseries(t) é a confiabilidade do sistema série. A confiabilidade em qualquer tempo t é a
probabilidade que todos N componentes estejam trabalhando corretamente (Johnson,
1989). Em termos matemáticos, obtêm-se:

R Series
(t ) = P(C1w (t ) ∩ C 2 w (t ) ∩ ... ∩ C nw (t ))

Assumindo que os Ciw(t) são independentes:


17

R Series
(t ) = R1 (t ) R 2 (t )... R n (t )

ou
n
Rseries (t ) = ∏ Ri (t )
i =1

2.3.2. Sistema Paralelo

A diferença desses sistemas para os sistemas série é que é necessário que apenas um
dos N componentes idênticos em paralelo esteja funcionando para que todo o sistema
esteja funcionando corretamente. O diagrama de confiabilidade em blocos é
mostrado na figura 2.5 (SIEWIOREK, 1982).

R1(t)

R2(t)

≈ ≈
RN-1(t)

RN(t)

Fig. 2.5 – Sistema paralelo de N blocos

Como pode ser visto, existe mais de um caminho da entrada para saída do diagrama.
Se um dos caminhos estiver impossibilitado pela falha de um módulo, um outro
módulo em paralelo pode ser utilizado, não alterando os resultados da saída do
sistema como um todo.
A não-confiabilidade desse sistema pode ser calculada como a probabilidade que
todos os N elementos falhem. Suponha que Cif(t) seja o evento em que um módulo
falhou no tempo t, Qparalelo(t) seja a não-confiabilidade do sistema paralelo, e Qi(t)
18

seja a não-confiabilidade do iésimo elemento. Qparalelo(t) pode ser escrito como


(Johnson, 1989):

Q Paralelo
(t ) = P (C1 f (t ) ∩ C 2 f (t ) ∩ ... ∩ C nf (t ))

ou
n
QParalelo (t ) = Q (t ) Q (t )... Q (t ) = ∏ Qi (t )
1 2 n
i =1

2.4. Modelos de Markov

Muitos sistemas complexos são difíceis de serem modelados apenas com modelos
combinatórios, uma vez que os diagramas em bloco de confiabilidade podem ser
muito difíceis de serem construídos. As expressões de confiabilidade podem tornar-
se muito complexas e outro fator a ser considerado é que tais modelos não permitem
a modelagem com reparo. Nesses casos, pode-se utilizar para a modelagem os
Modelos de Markov (Johnson, 1989).

Os dois principais conceitos no modelo de Markov são os estados do sistema e as


transições de estado. Os estados de um sistema representam todas as condições que
devem ser conhecidas para descrever o sistema em qualquer instante de tempo. Em
modelos de confiabilidade, por exemplo, cada estado representa uma combinação
distinta de módulos falhos e livres de falha dentro do sistema. Todas as combinações
devem ser previstas, e cada uma das combinações representa um estado do sistema.
As transições de estado realizam os vínculos entre os estados do sistema. Para o
modelo de confiabilidade, as ocorrências de falhas e reparos implicam em mudanças
de estado, que se dão através dessas transições.

Para um melhor entendimento, um exemplo utilizando modelo de Markov para


representar a confiabilidade de um sistema modular de redundância tripla TMR
(Triple Modular Redundancy) é apresentado.
19

Os sistemas TMR utilizam 3 módulos de hardware ou software redundantes, não


necessariamente idênticos mas que operam em paralelo executando as mesmas
funções e apresentando os mesmos resultados. Um votador de maioridade na saída
dos módulos detecta a eventual falha de um dos módulos comparando-se os
resultados para determinar se algum dos módulos apresentou um resultado diferente
dos demais. Nesse caso, é considerado como correto o resultado da maioria. Esse
mecanismo torna o sistema tolerante a falha de um módulo sem que o sistema
apresente uma disfunção externa.

Suponha um sistema TMR com 3 computadores idênticos em paralelo e um votador


ligado à saída dos 3 módulos. Considerando-se o votador perfeito, os estados deste
sistema podem ser definidos como S = (S1, S2, S3) onde Si=1 se o módulo i está livre
de falhas e Si=0 se o módulo i falhou. O sistema TMR apresenta oito combinações
distintas de estados de seus módulos (23): (000), (001), (010), (011), (100), (101),
(110) e (111). Apenas a falha de um dos módulos é tolerada no TMR.

Dessa forma, os estados (000), (001), (100) e (010) representam estados em que o
sistema sofreu uma disfunção externa. Já o estado (111) significa que o sistema está
livre de erros (perfeito funcionamento) e os demais estados (110), (101) e (011) o
sistema apresenta erro interno.

As transições de estado são as mudanças de estados que ocorrem dentro do sistema.


Com o passar do tempo, com as falhas e reparos ocorrendo, o sistema passa de um
estado para outro. O diagrama de estado e transições do modelo de Markov descrito
sem prever reparo de módulos falhos é mostrado na figura 2.6 (Johnson, 1989).

Se assumir que cada módulo do sistema TMR obedece à lei de falha exponencial e
tem uma taxa constante de falhas λ , a probabilidade de um módulo falhar em um
período de tempo t+ ∆ t, dado que o módulo estava operacional no instante t, é a não-
confiabilidade do módulo, dado por:

Q (t ) = 1 − e − λ ∆t
20

Para valores pequenos de ∆ t, a expressão pode ser reduzida para:

1 − e − λ∆ t ≈ λ ∆ t

Em outras palavras, a probabilidade de um módulo falhar dentro de um pequeno


período ∆ t é de aproximadamente λ∆t . As probabilidades das transições possíveis
de estado é mostrado na figura 2.6.

A figura 2.7 mostra o modelo de Markov para o sistema TMR de forma reduzida
(Johnson, 1989). O estado 3 representa os 3 módulos funcionalmente perfeitos e o
estado 2 um dos módulos falho, representando erro interno sem causar disfunção do
sistema. O estado de falha é representado pelo estado F, onde pelo menos 2 dentre os
3 módulos falharam, caracterizando disfunção do sistema.

1-2 λ∆ t 1- λ∆ t

110 λ∆ t 100

λ∆ t λ∆ t λ∆ t
1-3 λ∆ t λ∆ t 1- λ∆ t 1.0
1-2 λ∆ t

λ∆ t
111 101 001 000
λ∆ t λ∆ t

1-2 λ∆ t 1- λ∆ t
λ∆ t λ∆ t
011 010
λ∆ t

Perfeito Estado 1 Módulo falhou 2 Módulos falharam 3 módulos falharam

Disfunção no sistema

Fig. 2.6 – Modelo de Markov para o sistema TMR com as probabilidades de transições de estado
21

1- 1- 1.0

3 λ∆ t 2 λ∆ t
3 2 F

Fig. 2.7 – Modelo de Markov reduzido para o sistema TMR

2.5. Métodos Qualitativos para Análise de Confiabilidade de Sistemas

Análise de perigo (do inglês hazard analysis) é a principal ferramenta para


visualização e coordenação em detecção e correção de sistemas quanto as suas falhas
de projeto. (LEVESON, 1995). Essas análises ajudam os desenvolvedores de
sistemas a garantir a qualidade dos projetos identificando categorias, aceitação de
testes, requerimentos de inspeções, e componentes que necessitam cuidados
especiais. Nesse último caso, tais componentes podem ser identificados como pontos
vulneráveis para o funcionamento adequado do sistema como um todo.
A seguir alguns modelos e técnicas para análise de perigo.

2.5.1. Análise por Árvore de Falhas

Esta técnica é altamente empregada para análise de perigo em indústrias de


aeronaves, eletrônica e materiais nucleares.

Árvores de Falhas são utilizadas para analisar as causas de riscos do sistema, mas
não para identificar os riscos. Trata-se de uma técnica de procura top-down, ou seja,
de cima para baixo. Uma vez que a árvore tenha sido projetada, pode-se escreve-la
como uma expressão booleana e simplificá-la para mostrar combinações específicas
de eventos básicos suficientes para causar eventos indesejáveis os quais são
colocados no topo da árvore.
22

A análise por árvore de falhas tem 4 passos básicos: definição do sistema, construção
da árvore de falhas, análise qualitativa e análise quantitativa (KECECIOGLU, 1991).
A análise quantitativa não será abordada neste trabalho.

a) Definição do Sistema
Nesse passo é definido o evento topo, condições iniciais, eventos existentes, e
eventos não permissíveis ao sistema.

b) Construção da Árvore de Falhas


Uma vez que o sistema tenha sido definido, o próximo passo é a construção da
árvore de falhas.

Partindo da definição do evento indesejável ao sistema colocando-o no topo da


árvore, são escritos abaixo os demais eventos que levariam a causa do evento topo,
sendo que as relações lógicas entre os eventos são feitas através de símbolos
booleanos.

O exemplo da figura 2.8 mostra uma árvore de falhas com a simbologia de eventos e
relações lógicas entre os eventos.

O retângulo mais acima identificado como T é o evento topo e representa o evento


indesejável. Eventos do tipo folha, ou seja, que não possuem relações lógicas com
outros eventos logo abaixo são chamados eventos básicos ou de origem
desconhecida, representados por círculo ou losango respectivamente. Na figura 2.8,
os eventos 1, 3 e 4 são básicos e o evento 2 de origem desconhecida. Os eventos
simbolizados com um retângulo, como é o caso dos eventos G1 e T, são chamados
eventos resultantes e possuem relações lógicas hierarquicamente abaixo.

As relações lógicas, também chamadas de gates, fazem a ligação entre os eventos.


Na figura 2.8, G0 simboliza que o evento T ocorre se os eventos 1 ou G1 ou 2
ocorrerem. G1 por sua vez ocorre somente se os eventos 3 e 4 ocorrerem.
23

c) Análise qualitativa
Esta técnica tem como finalidade identificar os conjuntos de eventos básicos cuja
ocorrência leva ao evento topo indesejável ao sistema. Esse conjunto de eventos é
conhecido como cut sets ou atalhos. Através dos cut sets podem ser identificados os
pontos vulneráveis no sistema observando os eventos básicos e comparando-se os
diversos caminhos que possibilitam a ocorrência do evento topo.

G0

1 G1 2

3 4

Fig. 2.8 – Exemplo de Árvore de Falhas com gates e eventos enumerados

A técnica para obter o algorítimo do cut set mínimo segue os procedimentos abaixo:
1) nomear cada gate;
2) numerar cada evento básico;
3) localizar o gate mais acima da árvore na primeira linha e coluna da matriz;
4) iniciar o cut set com o número do gate mais acima e fazer múltiplas substituições,
de cima para baixo trocando eventos que apareçam em retângulos por equivalentes
gates mais abaixo ou em caso de eventos básicos escrever o nome do próprio evento;
24

5) quando todos os gates tiverem sido substituídos por eventos básicos, obter os
mínimos cut sets removendo os supersets, que são os cut sets que incluem outros cut
sets.

G0 1 1
2 2
G1 3, 4

Tabela 2.1 – Análise Top-Down dos gates e eventos básicos da árvore

A tabela 2.1 relaciona da direita para a esquerda os gates e eventos a partir do evento
topo em direção aos eventos básicos. G0 é o gate mais acima, sendo que suas
entradas são os eventos básicos 1, 2 e o gate G1. A ocorrência de qualquer de suas
entradas implica na ocorrência do evento topo. O gate G1 possui como entradas os
eventos básicos 3 e 4, e nesse caso, G1 habilita G0 somente se ambos eventos
ocorrerem simultaneamente.

O conjunto C que contém os cut sets para a arvore de falhas é dado por:

C=({1}, {2},{3,4})

Conclui-se que os eventos básicos 1 e 2 são mais críticos que os eventos 3 e 4 pois a
ocorrência desses eventos está diretamente associado a ocorrência indesejável do
evento topo. Devido a simplicidade e conseqüentemente a obviedade das conclusões
do exemplo utilizado pode não parecer tão útil a utilização de Árvore de Falhas para
detectar pontos vulneráveis do sistema. Porém, em sistemas mais detalhados e
críticos, a utilização desse método ajuda a esclarecer os pontos vulneráveis muitas
vezes não claramente visíveis dentro do sistema, ajudando assim a tornar confiáveis
sistemas altamente complexos.
Identificando-se os pontos fracos do sistema pode-se prioriza-los no projeto quanto a
investimento de melhoria da confiabilidade aplicando-se redundância de módulos.
25

2.5.2. Redes de Petri

As Redes de Petri têm sido usadas para modelar e analisar sistemas bem como suas
propriedades como deadlocks, alcançabilidade, confiabilidade e tolerância a falhas
(LEVESON, 1987).

P1 Aproximação
o

t1
P5
t4 Cancela aberta
P9

Antes de cruzar P11


P2 t6
P6
t7
P12

t2
Cancela fechada

P7
P3
P10
Cruzando

t3 P8
t5

P4 Passou computador

Fig. 2.9 – Exemplo gráfico de uma Rede de Petri.

As Redes de Petri são compostas de um conjunto de locais Pi , simbolizados por


círculos, similares aos estados no diagrama de estados em modelos de Markov; um
conjunto de transições ti , uma função de entrada I, uma função de saída O, e uma
marca inicial µ 0. A função de entrada I é um mapeamento de transições ti para um
pacote de locais I (ti), onde um pacote de locais é uma generalização de um conjunto
que permite múltiplas ocorrências de um elemento. Similar a função de saída O
26

mapeia uma transição ti para um pacote de locais O(ti). O local inicial da marca
(token) na rede é especificado por µ 0.

A figura 2.9 mostra um exemplo de rede de Petri para um sistema de controle de


cancela em um cruzamento de uma rodovia com uma ferrovia (LEVESON, 1987).

O conjunto de lugares P, o conjunto de transições T, a representação inicial dos


tokens µ 0 e as funções de Entrada e Saída referente a figura 2.9 são apresentados

respectivamente a seguir:

P= {P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12}
T={t1, t2, t3, t4, t5, t6, t7}
µ 0 ={1,0,0,0,0,1,0,0,0,0,1,0}

I(t1)={P1} O(t1)={P2,P3}
I(t2)={P2} O(t2)={P3}
I(t3)={P3} O(t3)={P4,P8}
I(t4)={P5,P6} O(t4)={P7,P9}
I(t5)={P7,P8} O(t5)={P6,P10}
I(t6)={P10,P12} O(t6)={P11}
I(t7)={P9,P11} O(t7)={P12}

Tabela 2.2 – Conjunto de entradas e saídas das transições da Rede de Petri

Para cada ocorrência dos eventos, os tokens mudam de locais após a ocorrência de
cada transição. Uma vez que todos os locais que alimentam uma transição possuem
um token, a transição subseqüente pode ocorrer passando por sua vez os tokens que
estão adiante a transição, até que o token atinge o local final.

O local inicial P1 recebe o token, e representa a aproximação do trem. Há também no


estado inicial um token no local P6 que é uma das condições no software de controle
que roda no computador, e um outro no local P11 que representa que a cancela está
aberta.
27

A transição t1 alimenta os locais subseqüentes P2 e P5, portanto, após a transição t1


(o trem já aproximou-se do cruzamento), os tokens passam aos locais P2, antes de
cruzar, e P3, segunda condição para o software de controle ordenar o fechamento da
cancela. Existem agora os tokens em P9, P2 e P7. P9 por sua vez autoriza o
fechamento da cancela através de t7 já que P11 está com um token. Ao mesmo tempo
(não na prática, t2 pode não ser igual a t7), o token de P2 pode passar para P3 através
da transição t2, que representa a passagem do trem de estado de aproximação antes
de cruzar, para o estado de estar dentro do cruzamento. Quando o trem passar
(transição t3), os tokens passam para os locais P4 (trem passou) e P8 (condição de
abertura para o software de controle). O token no computador passa ao local P10 que
por sua vez autoriza a cancela subir, através da transição t6. Os tokens retornam aos
seus locais iniciais, P1, P6 e P11.

Nesse exemplo percebe-se que a condição de perigo no sistema é que se em algum


momento os tokens estejam em P3, o trem está dentro do cruzamento, e P11, a
cancela está em cima.

Na rede de Petri se t2 for menor que t7, há um estado crítico. Portanto, para reduzir
os riscos, é necessário tomar cuidado no projeto para que t2 seja muito maior que t7,
e em nenhum momento os tokens estarão em P11 e P3 simultaneamente, reduzindo-
se assim os riscos do projeto.

Após esta revisão dos conceitos teóricos para avaliação da confiabilidade de


sistemas, são apresentados nos 2 próximos capítulos os conceitos envolvidos no
armazenamento de dados, inicialmente com o armazenamento magnético dos dados e
em seguida com as técnicas de implementação de matrizes redundantes de discos
magnéticos, objeto principal desta dissertação.
28

CAPÍTULO 3. DISCOS MAGNÉTICOS E INTERFACES

Os dispositivos de armazenamento secundário ou armazenamento em massa são


predominantemente memórias não voláteis, ou seja, que não perdem os dados
armazenados mesmo na falta de energia elétrica. Existem diversos tipos de memórias
não voláteis, sendo que as mais utilizadas são as memórias magnéticas e as memórias
ópticas.

As memórias magnéticas utilizam as propriedades eletromagnéticas de alguns


materiais como ferrite, cobalto e bário para armazenamento de dados em discos ou
fitas. Esses dispositivos são classificados conforme seu encapsulamento e sua
finalidade. Os mais utilizados atualmente são :

• discos removíveis de baixa capacidade: também conhecidos como discos


flexíveis (do inglês floppy disk) pois a superfície magnética é implementada
sobre um material flexível. São relativamente lentos e de capacidade limitada
(entre 360KB a 2.88MB). São portáteis, universais, de baixo custo e pouco
confiáveis devido a seu frágil encapsulamento;
• discos rígidos (do inglês hard disks): mais rápidos e com capacidades bem
maiores que a dos discos flexíveis, hoje alcançando centenas de gigabytes. São os
dispositivos de armazenamento em massa mais utilizados, podendo ser
removíveis, em formato de cartucho ou, na sua maioria, fixos. São mais
confiáveis pois são encapsulados em envólucros resistentes e totalmente livres
de poeira;
• discos removíveis de alta capacidade: com capacidades e taxas de transferência
inferiores às dos discos rígidos e superiores às dos discos flexíveis. Os mais
comuns são o Zip Drive, Jaz Drive, Super Drive e o HiFD;
• fitas magnéticas: com grandes capacidades de armazenamento e baixa
velocidade. Ao contrário dos demais dispositivos, que permitem acesso aleatório
aos dados, as operações de E/S são realizadas através de acesso seqüencial, e por
esse motivo são utilizados principalmente para o armazenamento de cópias de
29

segurança de discos rígidos. São conhecidos também como dispositivos de


armazenamento terciário dentro da hierarquia de memória.

As memórias do tipo óptico utilizam laser para ler e escrever dados e são
normalmente mais lentas do que as que utilizam o meio eletromagnético para
armazenamento. Os dispositivos de armazenamento óptico mais comuns são os
CDROMs e os DVDs e são a melhor alternativa em alta capacidade de
armazenamento em discos removíveis portáteis de baixo custo (LOBATO, 2000).

3.1. Os Discos Rígidos

Um HDD (acrônimo para hard disk drive) ou drive de disco rígido é um dispositivo
mecânico, compacto, eletronicamente controlado. Sua operação muitas vezes é
comparada a uma vitrola (MCKENDRICK et al., 2000).

A figura 3.1 apresenta um esquema das partes mais importantes de um disco rígido.
Ele consiste em um ou mais pratos circulares (esses pratos são feitos de um material
rígido como o alumínio, o que dá ao disco rígido o seu nome), cada um com uma ou
ambas as faces cobertas por uma substância magnética usada para a gravação de
dados. Para cada face, há uma cabeça de leitura e gravação. As cabeças de leitura e
gravação movem-se radialmente sobre a superfície dos pratos através da ação de um
motor pivô (SIERRA, 1990). Os pratos giram em um eixo comum com velocidades
angulares superiores a 3600 rotações por minuto, sendo que discos de alto
desempenho atingem velocidades maiores, de até 15000 RPM (IBM, 2002). As
cabeças de leitura e gravação têm forma aerodinâmica e flutuam em um colchão de
ar gerado pela rotação dos pratos (TANEMBAUM, 1990), evitando assim, atrito da
cabeça com a superfície magnética.

Na composição dos pratos existem várias camadas sobre o material rígido, listadas a
seguir da mais interna a mais externa:

• Níquel e fósforo
30

• Cromo
• Camada magnética onde são efetivamente armazenados os dados, normalmente
um composto de cobalto;
• Camada de proteção a superfície magnética contra atritos da cabeça de
leitura/gravação, carbono;
• Lubrificante, para reduzir os danos a superfície caso haja fricção entre a cabeça
de leitura/gravação e o prato

A dimensão do dispositivo é dada pelo diâmetro dos pratos utilizados. Em 2002, a


maioria dos microcomputadores utilizam discos rígidos de 3,5 polegadas, mas ainda
é possível encontrar os de 5 ¼ polegadas em microcomputadores de mesa, e os de
2,5 e 1,8 polegadas, em microcomputadores portáteis (MCKENDRICK et al, 2000).

O primeiro disco rígido, fabricado pela IBM em 1956, utilizava 50 discos de 24


polegadas e tinha a capacidade de 5MB. Também foram fabricados discos com as
dimensões de 40 e 36 polegadas. Em 1989, surgiram os discos de 14 polegadas, em
1991, os de 8 polegadas, e em 1993 os de 5 ¼ polegadas (SIERRA, 1990). Em 2002
encontram-se discos com capacidades superiores a 150GB em invólucros de 3 ½
polegadas (IBM, 2002).

Fig. 3.1 – Mecanismo de acesso aos dados dos discos magnéticos


31

A diminuição dos dispositivos foi possível com o desenvolvimento da tecnologia


para tornar o armazenamento magnético mais denso. A capacidade de
armazenamento de um disco rígido é determinada por quantos bits podem ser
armazenados em uma polegada quadrada na superfície magnética. Essa métrica é
chamada densidade de área (MCKENDRICK, 2000).

Até 1991, a densidade de área magnética aumentava em uma taxa anual de 30% e no
período compreendendo os anos de 1992 e 1997, esta taxa de crescimento passou a
60%/ano, muito maior que a taxa de progresso observada para os semicondutores. Já
em 1999, a densidade de área cresceu 125%. Dados da IBM e Fugitsu (IBM, 1998;
FUGITSU, 1998 apud MCKENDRICK et. al, 2000) mostram que em 1982 a
densidade de alocação estava por volta de 10Mbits/polegada quadrada. Em 1997,
esta métrica passou a marca de 1Gbit/polegada quadrada.

O aumento da densidade de alocação em discos magnéticos influenciou


drasticamente no custo por megabyte armazenado. Em 1982, o custo por megabyte
era de aproximadamente US$ 80. Em 1998, passou a US$ 0,04.

O grande aumento da capacidade dos discos podendo armazenar grandes quantidades


de dados a um baixo custo foi um dos adventos fundamentais para a explosão da
Internet possibilitando que usuários e Empresas ofereçam e acessem bilhões de
páginas WEB. Em um futuro próximo discos rígidos poderão ser utilizados em
grande escala em outras aplicações, incluindo armazenamento de programas de TV
(em substituição aos Video Cassetes), em eletrodomésticos e em automóveis
(MCKENDRICK et al, 2000).

3.1.1. Organização Lógica dos Discos Rígidos

A superfície dos pratos é normalmente dividida em anéis concêntricos, chamados


trilhas e estes por sua vez estão divididos em setores. Todos os pratos possuem a
mesma organização de trilhas e setores em ambas as faces. Quando uma cabeça está
sobre uma trilha, as cabeças das outras faces estão na mesma trilha correspondente.
32

Os conjuntos destas trilhas formam os cilindros. Esta divisão é utilizada para


especificar as localizações dentro do disco estabelecendo uma organização para o
armazenamento de arquivos de dados.

Normalmente o número de setores é o mesmo para todas as trilhas, mas alguns discos
rígidos possuem um número maior de setores nas trilhas mais externas. Tipicamente
um setor comporta 512 bytes de dados, embora alguns sistemas específicos permitem
a alteração do tamanho dos setores. Os discos magnéticos não podem manipular
quantidades menores de dados que um setor. A organização lógica em discos
magnéticos é ilustrado na figura 3.2 (PATTERSON, 1996).

Pratos

Trilhas

Setores
Prato

Trilha

Fig. 3.2 - Organização lógica de discos magnéticos (Adaptado de PATTERSON, 1996)

“Para especificar uma transferência, o programa deve fornecer as seguintes


informações: o cilindro e a cabeça (ou face), que juntos definem uma única trilha, o
número do setor onde começa a informação, o número de palavras a serem
transferidas, o endereço na memória principal de onde a informação vem ou para
33

onde ela vai, e se a informação é para ser lida do disco ou se é para ser escrita
nele”(TANEMBAUM, 1990).

Nos discos em que as trilhas mais externas possuem mais setores que as mais
internas e conseqüentemente armazenam maior quantidade de dados, alguns
fabricantes empregam a técnica de zoneamento ou ZBR, acrônimo para Zone-Bit
Recording para aumentar o desempenho de certas aplicações, como vídeo sob
demanda.

Como os discos rígidos rotacionam a uma velocidade angular constante, as trilhas


mais externas possuem taxas de transferências de dados maiores que as trilhas mais
internas, portanto discos com essas características possuem taxas de transferência
variáveis. A idéia básica de ZBR é particionar a superfície do disco em várias regiões
denominadas zonas físicas, cada zona com uma particular taxa de transferência de
dados. Dessa forma pode-se escolher uma região do disco que atenda a demanda
específica de taxa de transferência para cada aplicação (TONG, 1998).

3.1.2. Parâmetros de Desempenho dos Discos Rígidos

O desempenho de um disco rígido está associado a uma série de tempos estimados


pelos fabricantes. São métricas de desempenho em discos rígidos o tempo médio de
busca (average seek time), o atraso rotacional ou latência de rotação (rotational delay
ou rotation latency), o tempo de transferência (transfer time), o tempo de controlador
ou sobretaxa de controladora (controller time) e o atraso por fila (queueing delay)
(PATTERSON, 1996).

O tempo de busca é o tempo necessário para que o conjunto de cabeças de


leitura/escrita esteja posicionado no cilindro correto movimentando-se sobre a
superfície dos pratos. Quando as cabeças estão posicionadas na primeira trilha e
precisam alcançar a última trilha configura-se o pior caso do tempo de busca,
chamado tempo máximo de busca (maximum seek time). O melhor dos casos do
tempo de busca é quando as cabeças já estão posicionadas no cilindro ao qual deseja-
34

se executar a próxima instrução de E/S, e nesse caso o tempo de posicionamento da


cabeça é chamado de tempo mínimo de busca (minimum seek time). A maioria dos
fabricantes determina o tempo médio de busca como sendo a soma do tempo de
busca para todas as possíveis movimentações do conjunto de cabeças de
leitura/escrita dividido pelo número de possíveis buscas.

O atraso rotacional ou latência de rotação é o tempo em que o setor correto passa sob
a cabeça de leitura/escrita uma vez que o conjunto de cabeças já está posicionado no
cilindro correto. O atraso rotacional é menor quanto maior for a velocidade angular
da unidade de disco magnético. Em média, a latência para alcançar o setor correto é a
metade do tempo em que o disco realiza uma volta completa. Se a velocidade angular
de um disco rígido é de 3600 RPM, o tempo médio de latência de rotação é portanto:

Tempo médio de latência de rotação = 0,5 / 3600 = 8,3 ms

O tempo de busca e o atraso rotacional representam vários milisegundos em média


pois estão associados a acessos que dependem de componentes mecânicos.

Já o tempo de transferência é o tempo necessário para transferir um bloco de bits,


normalmente um setor, através da cabeça de leitura/escrita. Este tempo é função do
tamanho do bloco lido ou escrito, a velocidade angular de rotação, a densidade de
alocação de uma trilha e a velocidade do barramento que interconecta o disco ao
computador.

Entre o controlador de disco e a memória principal existe uma hierarquia de


controladoras e barramentos de dados. Essas controladoras, também conhecidas
como interfaces de E/S, controlam o fluxo de dados entre os discos e a memória
principal e a UCP e são detalhados no item 3.2. Para exemplificar uma função dessas
controladoras, sempre que o tempo de transferência é uma porção muito pequena do
tempo total de acesso, o controlador de E/S desconecta o disco envolvido do
barramento liberando este para outras transferências. Tais controles do barramento
introduzem uma sobretaxa de tempo para realizar uma instrução de E/S, e esse tempo
35

é chamado de tempo de controladora. Quando o disco a ser acessado por uma


instrução de E/S está ocupado realizando uma prévia instrução de E/S, a instrução de
E/S entra em uma fila aguardando a liberação do disco. Esse atraso é chamado de
tempo médio em fila.

Para exemplificar, supõe-se um disco rígido cujo tempo médio de busca seja de 9 ms,
a taxa de transferência 4MB/s, a velocidade de rotação de 7200 RPM e o tempo de
controladora de 1ms e assume-se que o disco está ocioso e portanto não há atraso por
espera em fila. Para determinar o tempo médio estimado para ler ou escrever um
setor de 512 bytes, somam-se os tempos: médio de busca, média do atraso rotacional,
tempo de transferência e a sobretaxa de controladora.

0,5 0,5
9ms + + + 1ms = 14,3ms
7200 4.1024
60

3.1.3. Detecção e Correção de Erro em Discos Rígidos

Os discos rígidos dos computadores podem cometer erros tanto no processo de


gravação quanto na recuperação de dados na mídia magnética, ocasionalmente
devido a picos de tensão, desgaste do material magnético onde são gravadas as
informações com ou sem interferência externas, falhas de componentes eletrônicos
bem como as cabeças de leitura e gravação ou ainda devido a impactos no
dispositivo provocando danos na superfície magnética (ARCO, 2001).

Para evitar ou pelo menos minimizar tais erros, os discos magnéticos utilizam
códigos de detecção e correção de erro. Quando estes códigos são utilizados,
juntamente com os dados em cada setor são armazenados bits extras que possibilitam
detectar erros de inconsistência dos dados.

Um código que praticamente tornou-se padrão para detecção de erros em discos


rígidos é o código CRC, visto a seguir.
36

3.1.3.1. CRC

O código CRC (que é o acrônimo para Cyclic Redundancy Check) ou verificação


redundante cíclica, também conhecido como polinômio CRC, é um algorítimo
polinomial para detectar erros em dados armazenados ou transmitidos em um canal
de comunicação.

O polinômio CRC permite detectar pequenas mudanças em blocos de dados.


Detecção de erros é especialmente importante quando dados são gravados ou
transmitidos, por causa que um erro, mesmo que 1 bit é suficiente para fazer um
programa falhar. Embora poucos erros em um arquivo texto possa ser aceitável
(desde que o texto possa ser reeditado quando recebido ou recuperado) um arquivo
livre de erros é desejável.

A IBM utilizava um polinômio CRC de grau 16 para detecção de erros em unidades


de discos flexíveis de 8 polegadas e este polinômio, chamado CRC-CCITT está hoje
presente em quase todas as controladoras de discos existentes.

O controlador de disco computa um código CRC sempre que escreve um setor no


disco rígido, e então anexa esse código aos dados. Quando os dados são lidos, um
novo CRC é computado a partir dos dados recuperados e comparado ao CRC
originalmente anexado aos dados. Se o novo valor CRC difere do original, um erro é
detectado e a controladora repete a operação tentando ler novamente os dados
(RITTER, 1986).

Um código polinomial é baseado em tratar cadeias de bits como representações


polinomiais com coeficientes 0 e 1. Um quadro de k-bits é representado por uma lista
de coeficientes de um polinômio com k termos, desde xk-1 a x0. O polinômio é
portanto de grau k-1. Por exemplo, a cadeia de bits 110001 tem 6 bits e portanto
representa um polinômio de 6 termos com coeficientes 1, 1, 0, 0, 0 e 1: x5 + x4 + x0.
37

Quando o código polinomial é aplicado em um dispositivo de armazenamento,


ambos os processo de escrita e leitura de setores devem utilizar o mesmo polinômio
gerador G(x). Ambos bits mais e menos significativos de G(x) devem ser 1. Para
calcular o código de verificação de m bits de dados, que correspondem ao polinômio
M(x), G(x) deve ser menor que M(x). Quanto maior o grau do polinômio G(x), maior
será a sobretaxa de redundância do código.

A idéia é anexar ao final da cadeia de m bits de dados um conjunto de r bits de


verificação fazendo com que o novo polinômio representado por m+r bits T(x) seja
divisível em base 2 por G(x). O polinômio G(x) deve ser de grau r. No processo de
leitura, a divisão do polinômio pelo polinômio gerador G(x) é refeita, e se houver
resto da divisão, é detectada inconsistência nos dados.

O polinômio CRC-CCITT, de grau 16, usa o polinômio gerador G(x) = x16 + x12 +x5
+1. Esse polinômio CRC-CCITT é capaz de detectar erros simples e duplos de bits,
todos erros com um número ímpar de bits, qualquer erro de bits consecutivos desde
que menor ou igual ao grau do polinômio, nesse caso 16 erros de bits consecutivos,
99,998 % de erros de bits consecutivos acima de 18 bits (TANEMBAUM, 1996).

Para um polinômio que utiliza 16 bits de verificação, como é o caso do CRC-CCITT,


são recomendados palavras de dados que não ultrapassem 2^15 –1 bits, que resulta
em 1 bit a menos que 4Kbytes. Como nos discos rígidos cada bloco de dados
corresponde a um setor de 512 bytes, o grau desse polinômio é perfeitamente
aceitável (RITTER, 1986).

A figura 3.3, adaptada de [], mostra um formato típico de gravação de uma trilha e a
seqüência de setores em um disco magnético, com as respectivas áreas reservadas a
gravação do código CRC.
38

Setor Físico Setor Físico 1 Setor Físico 29

gap ID gap da gap gap ID gap da gap gap ID gap da gap


dos dos dos
1 0 2 0 3 1 1 2 1 3 1 29 2 29 3

Tam. bytes 17 7 41 515

byte de Trilha # Cabeça # Setor # CRC byte de Dados CRC


sincronism sincronism
o o

1 2 1 1 2 1 512 2

Fig. 3.3 – Formato de gravação de trilha em discos rígidos padrão ST-506

3.1.3.2. S.M.A.R.T.

Em 1992, a IBM incorporou um mecanismo de predição de falhas na fabricação de


seus discos rígidos de 3 ½ polegadas. A este mecanismo deu-se inicialmente o nome
de PFA (acrônimo para Predictive Failure Analysis) ou Análise de Falhas
Previsíveis, uma tecnologia desenvolvida pela IBM que periodicamente faz a
medição de certos atributos do dispositivo, como por exemplo distância entre a
cabeça e a superfície magnética, e envia uma mensagem de alerta ao sistema quando
limites predefinidos a esses atributos sejam excedidos. Posteriormente, em 1995, esta
tecnologia tornou-se um padrão ANSI e recebeu o nome de S.M.A.R.T. (acrônimo
para Self-Monitoring, Analysis and Reporting Technology), Tecnologia de Auto-
Monitoração, Análise e Geração de Relatórios (IBM, 1998).

Existem dois tipos de falhas de discos rígidos: as previsíveis, que podem ser pré-
detectadas antes mesmo de haver alguma perda de dados, possibilitando uma
intervenção antes que ocorra a falha e as imprevisíveis.

As falhas imprevisíveis são aquelas que ocorrem ocasionalmente e de forma rápida


incapacitando a sua prévia detecção, normalmente não associada ao desgaste natural
39

dos componentes do disco. Falhas causadas por interferência externa, como


eletricidade estática, impactos ou submissão a temperaturas inadequadas enquadram-
se como falhas imprevisíveis.

As falhas previsíveis são falhas que a tecnologia S.M.A.R.T. tenta detectar com
predição. Estas falhas são normalmente resultado de uma degradação do desempenho
do dispositivo. As falhas mecânicas nos discos rígidos representam 60% do total de
falhas, e se a tecnologia S.M.A.R.T. conseguir detectar tal falha e houver uma
adequada intervenção, uma parcela muito próxima de 60% de casos de falhas de
discos podem ser antecipadas às perdas de dados.

Abaixo estão listados os atributos mais comuns monitorados pela tecnologia


S.M.A.R.T.:

• distância entre a cabeça de leitura/escrita e a superfície do disco: se a cabeça


de leitura/escrita que flutua sobre a superfície do disco ultrapassar um
predeterminado limite de altura de vôo, pode significar um presságio da
ocorrência de uma aterrisagem da cabeça sobre a superfície do disco o que
danifica a mídia magnética;
• número de setores remapeados: se o drive está realocando muitos setores em
decorrência de erros internamente detectados, pode significar que em breve o
disco sofrerá uma pane;
• tempo de rotação: se o tempo de rotação estiver alterado, pode significar falha
futura no motor de rotação;
• controle da temperatura;
• taxa de transferência de dados: redução na taxa de transferência pode ser um
sinal para vários problemas internos.

Através de análises estatísticas, os valores aceitáveis para as várias características do


disco são programadas dentro do dispositivo. Se as medições dos atributos estiverem
fora do range aceitável, uma condição de alerta é escrita dentro dos registradores de
estado do disco para alertar que um problema com o disco rígido pode ocorrer.
40

S.M.A.R.T. requer um disco rígido que suporte esta tecnologia e um conjunto de


softwares que checam o estado do disco é requerido para prever falhas. Em 2001, a
maioria dos fabricantes de disco incorporam essa tecnologia em seus modelos e a
maioria dos novos PCs suportam a leitura dos atributos do S.M.A.R.T. (KOZIEROK,
2001).

3.2. Interfaces

A seguir serão descritas as principais características e aspectos das interfaces de


acesso a memória secundária, bem como as interfaces SCSI (Small Computer
Systems Interface) e ATA / IDE (AT Attachment / Integrated Device Eletronics) que
são as que dominam a indústria de armazenamento magnético.

3.2.1. SCSI

SCSI é um acrônimo para Small Computer Systems Interface ou Interface de Sistema


de Pequenos Computadores, e é uma das alternativas de conectar periféricos de
armazenamento de dados usando padronização universal de hardware e comandos de
controle (WESTERGREN, 1998).

Em 1980, apenas 20 páginas descreviam as especificações dessa interface


comparadas as 600 páginas de hoje definidas pela ANSI. Em 1985, um grupo de
fabricantes reuniram-se e iniciaram uma certa pressão para que a ANSI defini-se o
padrão SCSI. Em 1986, a ANSI publicou o primeiro padrão SCSI, hoje referenciado
como SCSI-1. Este padrão de interface consiste de um cartão controlador,
freqüentemente chamado adaptador de host (host adapter), que estabelece a interface
entre o PC e um barramento capaz de acoplar até 8 dispositivos considerando a
controladora também como um dispositivo (vide figura 3.4), cada um sendo
endereçado usando uma das 8 linhas de dados.
41

Controlador
de E/S

barramento PCI

canal 0
Controlador
SCSI
ID0 ID1 ID2 ID16
canal 1

ID0 ID1 ID2 ID16

Fig. 3.4. – Controlador SCSI como interface entre discos e o computador (adaptado de DELL, 1999 e
KRINGS, 1999)

O padrão original SCSI definiu também o cabeamento, conjunto de comandos e


modos de transferência. Ele utiliza uma largura de barramento de apenas 8 bits onde
a transferência de dados é feita a um ciclo de 5 MHz, o que resulta na taxa máxima
de transferência em 5Mbytes/s.

O padrão SCSI-2 foi aprovado pela ANSI em 1990. Este novo padrão removeu
algumas das instruções do padrão SCSI-1 trocando-as por um conjunto avançado de
instruções e aprimoramentos em baixo nível. O conceito Wide SCSI bus (barramento
SCSI largo) foi introduzido permitindo 16 ou 32 bits no barramento de dados entre o
adaptador de host e a matriz de dispositivos de armazenamento que foi extendida,
passando a acoplar até 15 dispositivos por canal. Juntamente com o barramento
Wide, o Fast SCSI (SCSI Rápido) permitiu aumentar a velocidade do barramento em
até 20Mbytes/s usando os 32 bits de largura de barramento. A adição de terminações
ativas ao barramento permitiram uma melhor integridade no tráfego dos dados
(CARDENAS, 2000).

O novo padrão definiu o conceito de fila de comandos (Command Queueing). Este


mecanismo permite que até 256 comandos independentes sejam armazenados no
controlador de interface. O adaptador de host pode então enviar várias requisições
para o mesmo dispositivo mesmo durante o processamento da primeira requisição.
42

Novos aprimoramentos ao SCSI-2 foram introduzidos pelos fabricantes que não


necessariamente tornaram-se um padrão ANSI, mas tem sido considerado gerações
intermediárias entre o atual padronizado SCSI-2 e um futuro SCSI-3. A essas normas
estabelecidas deu-se o prefixo Ultra. Ultra SCSI, Ultra/Wide SCSI, Ultra2 SCSI,
Ultra3/Ultra160 SCSI são denominações encontradas nos drives de disco rígido e
controladoras de host fabricados em 2002. A tabela 3.1 mostra os diversos padrões
existentes e seus respectivos números de dispositivos suportados, tamanho máximo
de cabo, velocidade de barramento, largura de barramento e taxa máxima de
transferência de dados.

Em 2002, o Ultra3 SCSI é o estado da arte em tecnologia de interfaces SCSI. A


norma Ultra3 SCSI foi definida no SPI-3 (SCSI Parallel Interface specification 3)
(DELL, 1999). Dentre as inovações dessa especificação estão:

• LVD e dupla transição do relógio do sistema: LVD é um acrônimo para Low


Voltage Diferential (Diferencial de Baixa Voltagem) que foi introduzido na
especificação Ultra2 SCSI e foi aprimorado no Ultra3 SCSI e é um padrão de
sinalização em baixo nível que permite aumentar as taxas de transferências no
barramento, que no Ultra3 SCSI pode chegar a 160Mbytes/s utilizando as
duas bordas de transição do relógio do sistema;
• CRC: capacidade de correção de erro em transmissão de dados aumentando a
confiabilidade dos tráfego no barramento;
• Validação de domínio: verifica a interoperabilidade da conexão de hardware
entre o controlador SCSI e os dispositivos periféricos SCSI no barramento;
• Empacotamento: reduz a sobretaxa com cabeçalhos transformando os
comandos e transferências de dados de 7 para 3 fases;
• QAS (Quick Arbitration and Selection): controle arbitrário do barramento
para reduzir o seu tempo de ociosidade.
43

Padrão SCSI Qtde de discos Tamanho Velocidade do Largura de Taxa de


suportados máximo de Barramento Barramento Transf.
cabo
SCSI-1 8 6m 5 MHz 8 5MB/s
Fast SCSI 8 3m 10 MHz 8 10 MB/s
SCSI-2 8 3m 5 MHz 8 5 MB/s
Fast/Wide Scsi-2 16 3m 10 MHz 16 20 MB/s
Ultra SCSI 8 1,5 m 20 MHz 8 20 MB/s
Ultra/Wide SCSI 16 1,5 m 20 MHz 16 40 MB/s
Ultra2 SCSI 16 12 m 40 MHz 16 80 MB/s
(LVD)
Ultra3/160 SCSI 16 12 m 40 MHz 16 160 MB/s

Tabela 3.1. – Versões da interface SCSI (adaptada de DELL, 1999)

3.2.2. IDE / ATA

ATA (acrônimo de AT Attachment) e IDE (Integrated Device Eletronics) são


especificações para integrar dispositivos periféricos de armazenamento, como discos
rígidos e CDROMs em sistemas de computadores. Em 1980, a Western Digital
integrou a interface lógica de controle dos computadores IBM AT juntamente com a
fabricação de discos rígidos, eliminando a necessidade de prover cartões de
expansão. Esta combinação IDE / ATA tornou-se de fato a implementação ATA
(DELL, 1999; WESTERGREN, 1998).

Como IDE é uma extensão lógica do barramento de E/S ISA presente nos
computadores de arquitetura PC seu uso fica restrito a essa arquitetura não sendo
encontrado em outras arquiteturas de computadores como Macintosh e estações
RISC. Como conseqüência dessa extensão, a largura do barramento de transferência
de dados de uma interface IDE / ATA fica limitada a largura do barramento de E/S
ISA, que é de 16 bits.
44

A interface de discos rígidos IDE / ATA é a opção mais amplamente utilizada em


computadores PC por sua relativa simplicidade e baixo custo. Como a interface IDE /
ATA é essencialmente uma extenção do barramento nativo ISA, o controle lógico
para um sistema IDE é mínimo. Discos IDE também extendem o antigo conjunto de
comandos das interfaces ST506, que foram desenvolvidas em 1980 pela Seagate Inc.
(CARDENAS, 2000; GILBERT, 1995; RISLEY, 2002).

O barramento ATA é independente do microprocessador e do barramento do sistema.


Até 2 dispositivos IDE podem ser conectados a um cabo ATA e somente um cabo
pode ser conectado a um canal ATA. Normalmente existem 2 canais ATA por PC.
Se 2 dispositivos IDE são anexados ao mesmo canal, um é designado Dispositivo 0
ou Mestre, e o outro, Dispositivo 1 ou Escravo (vide figura 3.5). Na maioria das
transações de dados, ambos dispositivos são iguais, contudo, pelo fato do barramento
ATA não ser arbitrário, o Dispositivo 0 tem responsabilidades adicionais em
diagnosticar transações, reinicialização de sistema, e certos sinais de controle.

Controlador Canal ATA


de E/S Primário
Mestre Escravo

Canal ATA
Secundário
Mestre Escravo

Fig. 3.5 – Configuração ATA com dois periféricos por canal (adaptado de DELL, 1999)

A especificação proibe a utilização de cabos maiores que 18 polegadas, que


restringem discos rígidos IDE serem apenas de conexão interna.

Uma extensão da interface IDE, chamada EIDE (Enhanced IDE), possibilitou


acessos mais rápidos e permitiu endereçar discos rígidos com capacidades superiores
a 524MB, uma limitação anteriormente existente.
45

O protocolo ATAPI (Advanced Technology Attachment Packet Interface) foi


adicionado ao protocolo ATA como uma extensão permitindo que outros tipos de
periféricos de armazenamento que não os discos rígidos, como CDROMs e drives de
fitas magnéticas, pudessem compartilhar o barramento ATA (DELL, 1999).

A interface ATA tornou-se um padrão ANSI em 1994 e desde então sua taxa de
transferência de dados tem sido aprimorada. No barramento de 16 linhas de dados, o
barramento ATA pode fazer a transferência de dados em diversas velocidades usando
modos PIO (Programmed Input/Output), modos DMA (Direct Memory Access) e
modos Ultra DMA. A tabela 3.2 mostra os diversos modos e as respectivas taxas de
transferência, versão ATA, número de pinos por conector, e número de linhas de
condução por conector.

Modo de Transferência de Taxa máxima de Pinos por Quantidade de Versão ATA


Dados Transferência de Conector Condutores
Dados
PIO Modo 0 3,33 MB/s 40 40 ATA-1
PIO Modo 1 5,22 MB/s 40 40 ATA-1
PIO Modo 2 8,33 MB/s 40 40 ATA-1
PIO Modo 3 11,1 MB/s 40 40 Fast ATA
PIO Modo 4 16,7 MB/s 40 40 ATA-3
DMA Modo 1 11,1 MB/s 40 40 Fast ATA
DMA Modo 1 (Multiword) 13,3 MB/s 40 40 ATA-2
DMA Modo 2 (Multiword) 16,6MB/s 40 40 ATA-3
Ultra ATA DMA Modo 2 33,3 MB/s 40 40 ATA-4
Ultra ATA DMA Modo 3 44,4 MB/s 40 80 ATA-5
Ultra ATA DMA Modo 4 66,6 MB/s 40 80 ATA-5
Ultra ATA 100 DMA 99,9 MB/s 40 80 ATA-5
Modo 5

Tabela 3.2 – Modos de Transferência da interface ATA (adaptada de DELL, 1999)

No modo PIO a transferência de dados entre o disco rígido e a memória do sistema


requer a intervenção do microprocessador do sistema, o que não ocorre no modo
DMA. O modo Ultra DMA introduziu alguns avanços ao modo DMA, como a
46

utilização de relógio de sistema considerando dupla transição para aumentar a


velocidade na transferência de dados, introdução de CRC para detecção e correção de
erros no tráfego do barramento aumentando a integridade dos dados .

3.2.3. Outras Interfaces

Destacando-se como alternativas mais recentes de interfaces de acesso a dispositivos


de armazenamento estão os barramentos USB (Universal Serial Bus), as interfaces
FireWire IEEE-1394 e as interfaces de Canais de Fibra Ótica (Fiber Channel
Interface). As duas primeiras interfaces citadas são utilizadas em micromputadores
com características de estação de trabalho, e a última utilizada em
microcomputadores servidores (ADAPTEC, 2002; CLARK, 1999).

O USB trata-se de um barramento de transmissão serial em alta velocidade que foi


desenvolvido para substituir as portas seriais dos computadores Macintosh e as
portas paralelas dos PCs, que possuem menor desempenho. O desempenho de uma
porta USB é cerca de 40 vezes mais rápido que uma porta serial de um computador
Macintosh (12Mbits/s do USB contra 256Kbits do serial Mac), e ainda tem o
benefício de permitir que dispositivos sejam conectados ao barramento sem a
necessidade do sistema ser desligado, característica conhecida por hot-plugable.

O barramento USB suporta até 127 dispositivos periféricos de diversas naturezas


(não apenas de armazenamento) no mesmo barramento. USB tornou-se uma
alternativa de conectividade viável para outros dispositivos que utilizam baixas taxas
de transferência como impressoras, drives de disco flexíveis, zip drives e scanners.

A interface ou porta Firewire é um nome comercial dado pela Apple a especificação


de interface IEEE-1394. Como USB, Firewire é hot-plugable e seu modo de
transmissão é serial, pode suportar até 63 dispositivos no mesmo barramento sendo
que cada dispositivo constitui um nó separado.
47

Firewire suporta transferência de dados isócrona. O modo isócrono de transferência


de dados difere do modo assíncrono usado nas portas seriais convencionais pois há
uma garantia de entrega de dados entre os nós em um exato intervalo de tempo. Esta
característica possibilita por exemplo conectar dispositivos para transferência de
áudio e vídeo digital sem perdas pois a largura de banda é fixa e garantida.

O barramento automaticamente aloca 20% do total da largura de banda do


barramento, que vai de 12 a 50 Mbytes/s (ADAPTEC, 2002).

A especificação Fiber Channel pode ser melhor classificada como uma arquitetura do
que simplesmente uma interface, devido a sua robustês de topologia, sendo que
verdadeiras redes de comunicação fazem a interconexão dos dispositivos de
armazenamento a servidores de alto desempenho e capacidade. Sua grande diferença
para as demais interfaces é o meio físico, como o próprio nome diz, utiliza fibra
óptica ao invés de sinal elétrico para transferência de dados, o que garante altas taxas
de transferência podendo alcançar 2Gbits/s de dados mais controle, ou 200MBytes/s
efetivo. Em termos de topologia existem 3 tipos ilustradas na figura 3.6: ligação
ponto a ponto, loop arbitrário e comutação de malha (fabric switching).

Os cabos podem ser desde 30m (usando coaxial, que também é possível ser utilizado
apesar dessa tecnologia receber o nome “fibra”) até 10 Km por meio de fibras
ópticas. Os canais de fibra possibilitam até 126 dispositivos por porta que podem ser
hot-plugable e há compatibilidade para conexões de dispositivos SCSI (CLARK,
2002; HOWE, 1999).
48

Servidor
Servidor
Tx Rx
Discos

Tx
Rx Tx

Tx Rx
Rx Tx
a) Ponto a Ponto

b) Loop Arbitrário
Comutador

c) Comutação de Malha

Servidores Matrizes de Disco

Fig. 3.6 – Topologias de Canais de Fibra (adaptado de CLARK, 2000)


49

CAPÍTULO 4. RAID, MATRIZES REDUNDANTES DE DISCOS


MAGNÉTICOS

Nas duas últimas décadas, a capacidade computacional cresceu alavancada pelo


desenvolvimento tecnológico dos diversos componentes dos sistemas. A velocidade
dos computadores monoprocessados e o tamanho de memória cache crescem a uma
taxa de 40%-100%/ano, sendo que no mesmo período observou-se que a memória
principal ou memória do tipo RAM quadriplica em capacidade a cada 2 ou 3 anos
(Bell e Joy apud Chen, 1996).

Os tempos de acesso em discos magnéticos não avançaram na mesma proporção,


ficando muito aquém dos demais componentes dos sistemas computacionais. Para
exemplificar, o tempo de busca aumenta apenas 7% por ano (Harker apud Chen,
1996) enquanto que a taxa de transferência observou-se um aumento efetivo de
20%/ano (Patterson apud Lobato, 2000). O lento avanço de desempenho em discos
magnéticos é ocasionado por limitações mecânicas que dificilmente serão superadas
nesse tipo de mídia.

A capacidade de armazenamento em discos magnéticos está relacionada com a sua


densidade. Em 1999, a densidade de armazenamento magnético era de 20 bilhões de
bits por polegada quadrada. Em 2000, a IBM anunciou ter alcançado 35,3 bilhões de
bits por polegada quadrada, podendo dessa forma manufaturar discos que atingem
512 Gbytes em discos de 3 1/2” (IBM apud Lobato, 2000).

No aspecto de confiabilidade, densidades maiores proporcionam perdas maiores em


caso de falhas, uma vez que consegue-se armazenar mais informações em discos de
maior capacidade.

No aspecto de desempenho, densidades maiores proporcionam a construção de


discos menores e dessa forma mais velozes. Porém, devido a aspectos mecânicos, os
discos possuem limitações quanto a seu tamanho físico, hoje podendo ser no mínimo
50

de 1,3” (Seagate, 2002). Por outro lado, alta densidade exige maior desempenho em
operações de E/S, uma vez que mais informações são trafegadas nos barramentos.

Em 2002 observa-se que os discos magnéticos de maior capacidade possuem baixo


desempenho em relação aos discos de menor densidade e conseqüentemente menor
capacidade. A IBM manufatura discos de 15000 RPM com capacidade máxima de
36GB. Os discos de maior capacidade, como o de 146GB, são disponíveis em
10000 RPM (IBM, 2002).

A utilização de outros tipos de mídia mais eficientes para armazenamento secundário


seria uma saída para suprir o desbalanceamento de desempenho entre os
componentes dos sistemas computacionais. A Lucent (Lucent apud Lobato, 2000)
está trabalhando no desenvolvimento de discos holográficos onde as informações
possam ser armazenadas não apenas na superfície, mas ao longo de todo meio
transparente que recobre a superfície, chegando a 125 Gbytes de capacidade
armazenada oferecendo um desempenho maior que os atuais discos magnéticos.

Em 1984, surgiu a fragmentação de dados em matrizes de discos magnéticos para


melhorar o desempenho de armazenamento secundário. A fragmentação de dados
melhora o desempenho do sistema uma vez que múltiplas instruções de E/S são
executadas em paralelo em discos distintos (Kim e Salem apud Chen, 1990).

O aumento de desempenho em matrizes de disco pode ser observado também quando


existem múltiplos canais de transferência de dados entre disco e memória principal,
já que não só as instruções podem ser executadas em paralelo como também
múltiplas transferências de dados podem ocorrer simultaneamente (Compaq, 1998).

Resumindo, a fragmentação de dados em uma matriz de discos proporciona aumento


da taxa de operações de E/S/segundo e também a taxa de transferência de dados do
sistema de E/S (throughput) mensurado em Mbytes/segundo. Quanto maior o número
de discos, maior o paralelismo e conseqüentemente maior o seu desempenho.
51

Uma matriz de discos armazena os dados de forma ortogonal, ou seja, os dados são
divididos em N partes iguais e alocados em cada um dos N discos.

Para recuperar os dados armazenados, todos os N discos são consultados


paralelamente e o sucesso da leitura de um dado completo depende do sucesso da
leitura de cada fragmento dos N discos.

Sendo assim, a utilização da fragmentação de dados em múltiplos discos introduz um


novo problema aos sistemas de armazenamento secundário, a baixa confiabilidade
(Chen, 1990). A probabilidade de falha de um disco isolado é menor que a
probabilidade de falha de um disco entre N discos sendo N maior que 1.

Para suprir essa deficiência, foram propostas 5 técnicas de armazenamento


redundante em matrizes de discos. A essas técnicas deu-se o nome de RAID
(Redundant Array of Inexpensive Disks) ou matriz redundante de discos de baixo
custo (Patterson et al. apud Lobato, 2000).

As matrizes de disco RAID são uma série de discos magnéticos logicamente


endereçados como um único disco lógico, cuja capacidade é a soma da capacidade
individual de cada disco físico subtraída da parcela reservada ao armazenamento
redundante (Compaq, 1998).

O propósito das matrizes RAID é manter o alto desempenho adquirido com a


fragmentação de dados, expandir a capacidade de armazenamento e prover altos
níveis de tolerância a falhas.

As vantagens da implementação de um RAID são:

• maiores taxas de transferência de dados, devido a possibilidade de execuções de


múltiplas requisições de E/S simultâneas em múltiplos discos físicos;
• aumentar a capacidade de armazenamento individual dos discos através da
composição de discos lógicos de alta capacidade como conseqüência do
52

agrupamento de vários discos físicos de menor capacidade individual (vide figura


4.1);
• prover flexibilidade na configuração dos dados, uma vez que em alguns casos, é
possível redimensionar o tamanho de uma matriz adicionando-se ou retirando-se
discos sem haver perda de dados;
• alta confiabilidade/integridade das informações.

Fig. 4.1 - Discos físicos organizados em matriz são endereçados como um único disco lógico

Como mostra a figura 4.1 (Compaq, 1998), vários discos físicos são agrupados para
constituir um disco lógico. No exemplo existem sete discos magnéticos que podem
ser configurados e vistos pelo sistema como um único drive lógico quando conectado
a um controlador de matriz de discos. A capacidade total da matriz corresponde a
soma da capacidade de todos os discos subtraído do armazenamento redundante, que
no exemplo utilizado, corresponde a capacidade de um disco.

É recomendável que todos os discos que compõe a matriz possuam a mesma


capacidade de armazenamento uma vez que os dados são fragmentados em partes
iguais em todos os discos.

Na existência de discos de tamanhos diferentes, tomando-se como referência o disco


de menor capacidade, a capacidade excedente dos discos maiores não é aproveitada
na matriz. O exemplo da figura 4.1 mostrou uma matriz composta de 7 discos de
53

9GB, e nesse caso a capacidade de todos os discos é aproveitada. Caso um dos 7


discos tivesse a capacidade de 5GB e os demais 9GB, a matriz seria composta como
se todos os discos fossem de 5GB, sendo que os 4GB de cada um dos demais discos
não seria utilizada. A capacidade total da matriz passaria a ser de 35 GigaBytes,
como mostra a figura 4.2.

Fig. 4.2 – Matriz utilizando discos de diferentes capacidades

O método de organização dos dados em uma matriz de disco é chamado de


entrelaçamento de dados (Data striping). Cada unidade de fragmentação é chamada
de stripe e varia de tamanho de acordo com a técnica de RAID utilizada, podendo ser
de um bit, um byte ou blocos de Kbytes (Gibson, 1991).

O custo associado para implementação de cada técnica de RAID está diretamente


relacionado ao espaço adicional necessário ao armazenamento redundante sobre uma
matriz não redundante. Quanto maior esse espaço, maior o custo, já que são
necessários mais discos magnéticos para compor a matriz.

Embora RAID seja fortemente recomendado para aumentar o desempenho de E/S,


essa técnica tem como principal benefício aumentar a confiabilidade dos dados
armazenados em comparação a utilização de um disco magnético isolado.
54

Antes do surgimento das técnicas RAID, os métodos para armazenamento


redundante eram apenas baseados em cópias de segurança normalmente armazenadas
em fitas magnéticas. Como as cópias de segurança são dados não atualizados em
tempo real, como é o caso do RAID, não são salvas as informações que tenham sido
modificadas ou criadas após o procedimento da cópia de segurança mais recente uma
vez que o disco tenha sido danificado.

Além disso, em muitos casos, o tempo para o procedimento de uma cópia de


segurança pode ser significativo para um sistema, caso tenha que ser desativado para
garantir a integridade da cópia, como é o caso de muitos bancos de dados. Em outros
casos o desempenho dos sistemas é afetado quando estão ativos durante o
procedimento da cópia de segurança. O tempo de restauração dos dados perdidos por
algum incidente também pode ser bem significativo e custoso.

Os sistemas que utilizam RAID não necessariamente isentaram os sistemas


computacionais do uso de processos de cópias de segurança. O armazenamento
redundante em tempo real não salva informações apagadas por falha de software ou
erros humanos, que podem apenas ser recuperadas caso o sistema possua cópias de
segurança periódicas.

4.1. Os Níveis de RAID

As 5 técnicas de organização de matrizes redundantes de discos magnéticos


propostas pelos pesquisadores da Universidade da Califórnia, Berkeley, também são
conhecidas como Níveis de RAID ou Taxonomia RAID. (Courtright, 1997).

São elas: RAID 1, conhecida como técnica de espelhamento, RAID 2, que usa
código de Hamming para correção de erros, RAID 3 e RAID 4, que usam a técnica
de paridade entrelaçada, em nível de bit e de bloco respectivamente, e o RAID 5,
com a técnica de paridade distribuída em nível de bloco.
55

4.1.1. Raid Nível 1 - Espelhamento

Uma forma simples de proteger dados armazenados em discos contra perda é a


duplicação completa de todos os dados. Este método recebeu várias denominações,
como duplicação de dados (duplexing), sombreamento (shadowing) ou espelhamento
de dados (mirroring) (Compaq, 1998).

Neste método, os discos são organizados aos pares, e sendo N o número de discos da
matriz, N é maior que 1 e é sempre par.

Em operações de escrita, cada dado a ser armazenado é copiado em seu respectivo


par. Em operações de leitura, os discos podem receber acessos simultâneos de forma
independente. Em alguns sistemas, para ganho de desempenho, em cada leitura
escolhe-se o disco com o menor tempo de busca estimado, ou seja, o disco que esteja
com o conjunto de cabeças de E/S posicionado mais próximo do cilindro destino da
próxima instrução de leitura (Patterson, 1989).

No RAID 1, um par de bits idênticos é armazenado em discos distintos e recebe o


nome de palavra de código (codeword). O primeiro bit é o bit que carrega a
informação (data bit), e o segundo é o bit de correção, também conhecido como bit
de verificação ou bit de paridade (parity bit), como mostra a figura 4.3.

A simplicidade da implementação dessa técnica traz grandes benefícios quando


analizado sobre o aspecto de confiabilidade e tolerância a falhas. Em caso de falha
de um dos discos, a metade de cada codeword é perdido, e através da outra metade
armazenada no disco par que não falhou, nenhuma operação adicional é necessária
para recuperar os dados. Os dados não são perdidos desde que o seu respectivo par
não falhe.

Como desvantagens, implementar o espelhamento tem alto custo comparando-se


com as demais técnicas, pois 50% do tamanho total da matriz é destinado a
56

redundância. A sobretaxa de redundância sobre a matriz não redundante é chamada


de overhead, e no caso de espelhamento é de 100% (Gibson, 1991).

O espelhamento é usado principalmente em soluções onde a disponibilidade dos


dados é mais importante que o custo de implementação e o desempenho.

O ganho de desempenho adquirido com essa técnica fica limitado as requisições de


leitura, já que as requisições de escrita não podem ser independentes uma vez que
cada dado armazenado deve ser imediatamente copiado em seu respectivo par. O
paralelismo de execução das instruções de leitura também ficam limitadas pois cada
matriz é composta no máximo por apenas 2 discos.

Fig. 4.3 - Espelhamento

4.1.2. Raid Nível 2 - Correção de erro por Hamming

O RAID nível 2 é a única técnica de implementação de matriz redundante com


correção de erro. As demais técnicas, apenas detectam a existência de erro na matriz,
porém não permitem saber qual disco na matriz falhou. Nesse caso, cada disco é
responsável por detectar falha em operações de E/S através de um mecanismo de
detecção de erro chamado código CRC (vide item 3.1.3.1), que é implementado no
armazenamento de dados em cada disco individualmente (Gibson, 1991).
57

Na técnica RAID 2 é introduzida mais sobretaxa de redundância para permitir a


correção de erro, embora, em matrizes acima de 7 ou mais discos, o custo ou o
overhead com redundância é menor que na duplicação.

A utilização de códigos de Hamming para a correção de erros dá origem ao RAID 2.


O código de Hamming prevê paridades para subconjuntos sobrepostos de
componentes distintos. A figura 4.4 mostra o exemplo mais comum de um RAID
nível 2 com 7 discos, sendo que 4 discos são de dados e os outros 3 correspondem ao
armazenamento redundante dos subconjuntos formados pelos discos de dados. A
técnica de código de correção de erro ECC (Error Correction Code) utilizado nos
discos de redundância é o algorítmo de Hamming, que é descrito no próximo item. O
overhead nessa configuração é de 75%.

Fig. 4.4 – Matriz de discos do RAID nível 2

4.1.2.1. Código de Hamming

O número de posições nas quais duas palavras de código diferem é chamado de


distância Hamming. O código no qual um bit de paridade é adicionado ao bloco de
dados constitui um código com distância Hamming 2 (d=2). A tabela 4.1 mostra um
exemplo de uma palavra de 2 bits que ao ser sobretaxada de 1 bit, a cada codificação
sucessiva válida, alteram-se 2 bits, por isso diz-se distância Hamming 2. O bit
redundante é calculado pela paridade par dos bits da palavra original, ou seja, o bit
redundante é 1 quando o número de bits 1 da palavra não redundante é impar, e 0 se
58

for par. Na tabela verdade, os casos em que o bit de paridade não confere, indica a
detecção de erro em 1 dos 2 bits da palavra original.

Para detectar d erros, é necessário um código com distância d+1 (TANEMBAUM,


1996). Para permitir detecção e correção de erro de um único bit na palavra, é
necessário no mínimo distância Hamming 3, como mostra o exemplo da tabela 4.2,
onde foi adicionado mais 4 bits de sobretaxa a palavra original de 2 bits (2 bits antes
e 2 bits após a palavra original). As mensagens válidas sucessivas alteram 3 bits de
codificação, portanto diz-se distância Hamming 3. Uma vez detectada a existência de
erro através da leitura de uma mensagem inválida, o bit errado pode ser detectado (e
corrigido) verificando-se a codificação válida mais próxima da codificação inválida
na tabela verdade. Nessa configuração, não há a possibilidade de correção de erro de
2 bits em uma mesma palavra.

Distâncias de Hamming maiores permitem detecção e correção de mais de um bit e


são aplicados em sistemas de confiabilidade muito baixa. Nesse caso, o custo com
sobretaxa é elevado quando aplicado a matriz de disco, já que são necessários muitos
discos para a implementação.

Distância Hamming 2, como do exemplo da tabela 4.1, possibilita apenas detecção


sem correção de erro, enquanto que distância Hamming 1 não possibilita sequer a
detecção de erros.

Palavra sem redundância Redundância Mensagem


00 0 Msg 0 válida
00 1 Msg inválida
01 1 Msg 1 válida
10 0 Msg inválida
10 1 Msg 2 válida
11 1 Msg inválida
11 0 Msg 3 válida
01 0 Msg inválida
Tabela 4.1 – Distância Hamming 2
59

Palavra de código (2 bits de dados e Mensagem


4 de redundância)
000000 Msg válida 0
000001 Msg inválida
000010 Msg inválida
000011 Msg inválida
000100 Msg inválida
000101 Msg inválida
000110 Msg inválida
000111 Msg válida 1
... Msgs inválidas
111000 Msg válida 2
... Msgs inválidas
111111 Msg válida 3

Tabela 4.2 – Distância Hamming 3

Supondo que um bloco de dados ou uma palavra com m bits são armazenadas e a ela
são acrescentados r bits de redundância ou verificação, cuja principal finalidade é
permitir a detecção e/ou correção de erros. O tamanho total da palavra é igual a n
sendo n=m+r, e n é chamado de palavra de código ou codeword, como visto no
espelhamento.

Como o espelhamento de dados implica em sobretaxa de 100% de informação


redundante, m é sempre igual a r. Com o código de hamming, para m maior ou igual
a 4, a sobretaxa é menor com a vantagem de não apenas permitir detecção como
também correção de erro. Quanto maior o valor de m, menor a sobretaxa, como
mostra a inequação que calcula o limite inferior de bits de verificação necessários
para corrigir erros em 1 bit (TANEMBAUM, 1990).

(m + r + 1) <= 2 r

Utilizando um exemplo onde m=2, para satisfazer a inequação acima, r deve ser no
mínimo igual a 3, ou seja, sobretaxa de 150%, maior que no espelhamento. Para
60

m=4, r=3. Nesse caso, a sobretaxa é de 75%. Para valores de m maiores, menor a
sobretaxa, como mostra a tabela 4.3.

Tamanho mensagem Número de bits de Tamanho da palavra de Percentual de


em bits (m) redundância (r) código em bits (n) sobretaxa
4 3 7 75
8 4 12 50
16 5 21 31
32 6 38 19
64 7 71 11
128 8 136 6
256 9 265 4
512 10 522 2
1024 11 1035 1

Tabela 4.3 – Bits de redundância e sobretaxas para m bits usando


código de Hamming para correção de erros simples

O limite inferior teórico para implementação de um sistema usando correção de erro


estabelecido por Hamming é aplicado a palavras de 4 bits, com 3 bits de
redundância. A técnica utilizada por Hamming faz uso dos diagramas de Venn-Euler
empregando 3 círculos A, B e C, resultando 7 regiões combinando as respectivas
intersecções conforme a figura 4.5 (Leal, 2000).

Fig. 4.5 – Diagrama de Venn-Euler


61

Cada região corresponde a um dos 7 bits (n=7) necessários para a codificação de b1 a


b7, sendo b1 o bit menos significativo e b7 o mais significativo (vide figura 4.6-a).
Os bits de verificação ou redundância devem necessariamente ocupar as posições
cujo índice é potência de 2. Nesse exemplo, b1, b2 e b4 são os bits de verificação, e
ocupam as regiões mais externas do diagrama de Venn-Euler conforme a figura 4.6-
b.

Fig. 4.6 – Técnica de cálculo da paridade por subconjuntos

Cada 1 dos 3 bits de verificação é codificado conforme o resultado da soma em base


2 dos bits compreendidos nos respectivos círculos, o mesmo processo usado para
determinar o bit de paridade par. A codificação de Hamming de uma palavra de 4
bits é portanto, conforme a figura 4.6-c, 0110011.

O processo para detecção de erro é feito arranjando os bits da mesma forma que na
codificação e determinando se os bits de verificação correspondem a paridade par de
seus respectivos círculos. Para determinar qual bit está codificado errado, e dessa
forma poder corrigi-lo, somam-se os índices dos bits de verificação inválidos.

Para exemplificar, supondo que tenha sido gravado em uma matriz de 7 discos, cada
disco armazenando um bit de cada palavra codificada, a palavra n do exemplo
anterior, 0110011, que codifica a palavra m 1011. Em um acesso posterior, leu-se a
palavra 0110111, e como percebe-se o bit 5 foi lido errado. Arranjando os bits lidos
no diagrama de Venn-Euler, nota-se que os bits de verificação b1 e b4 não
correspondem a paridade par de seus respectivos círculos conforme figura 4.7. Dessa
forma, somando-se os índices dos respectivos bits de paridade inválidos, 4 e 1,
obtêm-se o bit errado b5.
62

Fig. 4.7 – Verificação dos bits de paridade para detecção e correção de erro

4.1.3. RAIDs níveis 3, 4 e 5 - Paridade N+1

Os níveis de RAID que utilizam a técnica de codificação de paridade são chamados


de paridade N+1 pois cada palavra de código é dividida em N discos, e a paridade da
palavra que contém a informação é armazenada em um disco adicional (Patterson,
1989).

Como visto no código de Hamming, a detecção de erro só é possível em codificações


com distância Hamming 2, e 3 é o número de bits mínimo necessários para esse tipo
de codificação.

Da mesma forma, a paridade N+1 utiliza no mínimo 3 discos magnéticos para


compor uma matriz redundante com detecção de erro e sem correção, adicionando 1
bit de paridade a mais a palavra não redundante obtendo assim um sistema de
codificação com distância Hamming 2.

O bit de paridade corresponde a paridade par de todos os bits da palavra não


redundante (vide figura 4.8). A paridade par é obtida tanto pela soma em base 2
quanto pela operação XOR dos bits da palavra não redundante, ou ainda o resultado é
0 se o número de bits 1 for ímpar, e 1 se for par (Courtright, 1997).
63

P 0 − 5 = D 0 ⊗ D1 ⊗ D 2 ⊗ D 3 ⊗ D 4 ⊗ D 5
Fig. 4.8 - Xor dos bits do codeword para formar a paridade

A sobretaxa de redundância nessa técnica é a menor dentre todas as técnicas de


RAID. Sendo N ≥ 3, o número de discos que formam a matriz redundante, a
sobretaxa de redundância da matriz é dada por (Gibson, 1991):

1
Sobretaxa =
N −1

Observa-se que quanto mais discos na matriz, menor a sobretaxa, já que apenas 1 bit
ou um disco é necessário para armazenar a redundância de dados independentemente
do tamanho da palavra não redundante. A composição mínima de uma matriz de
paridade N+1, com 3 discos, possui uma sobretaxa de redundância de 50%. Já uma
matriz com 17 discos, por exemplo, possui uma sobretaxa de apenas 6,25%.

A perda total de um disco de uma matriz de paridade N+1 não compromete os dados
gravados, uma vez que a recomposição do disco defeituoso em um novo disco é
obtida pela paridade par dos demais discos da matriz.

A falha de 2 discos implica na perda total dos dados armazenados em uma matriz de
paridade N+1. Matrizes com muitos discos são mais susceptíveis a perda total dos
dados e conseqüentemente são pouco confiáveis, uma vez que a probabilidade de
falha de 2 discos entre N discos é maior que a falha de 2 discos entre N-1 discos
(Holland, 1993).
64

Fig. 4.9 – Entrelaçamento de paridade com disco dedicado

Na paridade N+1 os bits de uma palavra de código podem ser armazenados de forma
consecutiva, regularmente separados ou ainda arbitrariamente separados no espaço
de endereçamento do sistema de arquivos.

O tamanho do barramento de dados da interface utilizada para acesso a matriz


determina o tamanho mínimo da unidade de fragmentação das palavras de código no
disco. Por exemplo, caso o barramento permita a transferência de 1 byte por tempo
de máquina, cada disco da matriz agrupa os bits referentes a 8 palavras de código
consecutivas. A unidade de fragmentação armazenada em cada disco é chamada de
stripe. O tamanho do stripe nas figuras 4.9, 4.10 e 4.12, é respectivamente de 1 bit, 1
byte e 512 bytes (Gibson, 1991) (Compaq, 1998).
65

Fig. 4.10 – RAID nível 3, entrelaçamento de paridade em nível de byte.

Para fins de desempenho, em alguns casos os bytes consecutivos de dados são


armazenados em um mesmo disco formando blocos de tamanhos iguais em todos os
discos da matriz. A organização tradicional, que armazena os bytes consecutivos em
discos diferentes, é chamado de entrelaçamento de paridade a nível de byte, enquanto
que o armazenamento em blocos correspondendo a bytes consecutivos em um
mesmo disco, é chamado de entrelaçamento de paridade a nível de bloco.

Fig. 4.11 – Entrelaçamento de paridade por blocos de 16KB


66

O RAID nível 3 é uma matriz de paridade N+1 com entrelaçamento de paridade em


nível de byte, enquanto que o RAID nível 4 e 5 utilizam entrelaçamento de paridade
em nível de bloco.

Fig. 4.12 – RAID Nível 4 em nível de bloco e disco de paridade dedicado

O ganho potencial de desempenho em matrizes de paridade N+1, aparentemente, é


proporcional ao número de discos que compõe a matriz, uma vez que o paralelismo
de instruções de E/S aumenta quanto maior for o número de discos empregados.

Em sistemas onde há maior predominância de instruções de leitura, matrizes com


muitos discos beneficia o desempenho já que instruções consecutivas de leitura são
independentes e podem ser executadas paralelamente em discos diferentes, uma vez
que os fragmentos estejam em discos diferentes.

Porém, sistemas com predominância de pequenas escritas, ou seja, escritas de poucos


bytes consecutivos, são comprometidos quanto a seu desempenho, já que para cada
instrução desse tipo, são geradas outras 3 instruções de E/S para manter a
consistência da paridade: a escrita do novo dado em seu respectivo disco, a leitura
dos dados já gravados pertinentes ao mesmo conjunto de blocos de paridade nos
67

outros discos, inclusive o bloco de paridade, e a escrita da nova paridade calculada


apenas no disco que armazena a paridade.

Quando um disco é dedicado ao armazenamento dos blocos de paridade, pode tornar-


se um gargalo de desempenho para o sistema, já que sempre recebe uma instrução de
E/S a mais que os demais discos da matriz em operações de pequenas escritas. Para
minimizar esse problema, ou utiliza-se um disco dedicado a paridade com melhor
desempenho que os demais discos de dados ou distribui-se a paridade em todos os
discos.

A diferença entre o RAID nível 5 (figura 4.13) e o RAID nível 4 (figura 4.12) se dá
na forma em que os blocos de paridade são armazenados. No RAID 4, os blocos de
paridade são armazenados em um disco dedicado enquanto que no RAID 5, os
blocos de paridade consecutivos são armazenados em discos distintos nas matrizes e
distribuído uniformemente em todos os discos.

Fig. 4.13 – RAID 5 – paridade distribuída com entrelaçamento em nível de bloco

Para sistemas com grandes requisições de leitura e escrita, ou seja, que acessam
blocos inteiros de dados em todos os discos, é importante para o desempenho que
exista uma sincronização das cabeças de leitura/escrita e o atuador (que movimenta
as cabeças) para todos os discos da matriz e também que seja utilizado o
68

entrelaçamento por bloco (RAID 4 ou RAID 5) em lugar do entrelaçamento por byte


(RAID 3).

Os stripes de um mesmo conjunto de paridade são posicionados na mesma locação


angular de todos os discos, se utilizados discos de mesma geometria, evitando assim,
diferentes tempos de respostas em função do posicionamento de suas cabeças ou das
diferentes localizações dos stripes.

4.2. RAID Derivados

Algumas outras técnicas de organização de dados em matrizes de disco são


apresentadas a seguir, todas derivadas dos 5 níveis de RAID publicados por Patterson
et al já discutidos no item 4.1.

Essas derivações foram resultado de contribuições de outros pesquisadores na área


com o objetivo de aumentar ainda mais a confiabilidade e/ou desempenho das
técnicas anteriores.

4.2.1. RAID com dados e paridade não entrelaçados

As matrizes redundantes de paridade N+1 quando utilizadas em sistemas que


envolvem banco de dados apresentam baixo desempenho (Gray et al. apud Gibson,
1991)

Os sistemas de banco de dados não exploram os benefícios de desempenho das


matrizes de paridade N+1 já que as requisições de E/S, em sua maioria, são pequenas
e não consecutivas. Como visto no item 4.1.3, o RAID de paridade N+1 tem melhor
desempenho que um disco individual em operações com grande volume de dados
que envolvem vários blocos consecutivos.
69

Uma alternativa para Banco de Dados seria utilizar um sistema de espelhamento


RAID 1, porém a sobretaxa de 100% com redundância traz um custo nem sempre
desejável.

Gray et al propuseram então um código de paridade N+1 que não entrelaça os dados
sobre os discos. A figura 4.14 mostra um exemplo utilizando 3 discos não
entrelaçados. Como no RAID 5, a paridade é distribuída e os dados são organizados
em blocos, porém o armazenamento de dados não é fragmentado através dos discos.

Diferente dos RAIDs apresentados anteriormente, essa técnica não agrupa vários
discos em um único disco lógico sendo que cada disco corresponde a um sistema de
arquivos individual e o armazenamento de blocos de paridade em áreas reservadas
em cada disco garante a tolerância a falhas do conjunto de discos.

A capacidade total de armazenamento nos discos é a mesma de uma matriz N+1.


conseqüentemente a sobretaxa de redundância também é igual da matriz de paridade
N+1, 1/(N-1).

Fig. 4.14 – Exemplo de RAID sem entrelaçamento de dados


70

4.2.2. RAID com Matriz bi-dimensional de discos

No item 4.1.2.1 foi visto que utilizando código de Hamming é possível correção de
múltiplas falhas de discos, dependendo da distância Hamming utilizada. Quanto
maior a distância Hamming, mais discos são necessários para implementar o código
de redundância.

Quando a confiabilidade é mais importante que o desempenho e o custo, a matriz de


duas dimensões é a solução mais indicada. A figura 4.15 mostra um exemplo
utilizando 9 discos de dados e 6 dedicados ao armazenamento da paridade, 3 para
cada dimensão da matriz. Essa solução também possibilita a distribuição da paridade
através dos discos em ambas dimensões (Gibson, 1991).

Fig. 4.15 – Matriz bi-dimensional

As matrizes bi-dimensionais de disco, também conhecidas como matrizes de


paridade cruzada, são implementadas a partir de 8 discos, sendo 4 de dados e 4 de
paridade. Como uma matriz bi-dimensional não pode ser formada por um número
primo de elementos, a quantidade de discos de dados não pode ser um número
primo. Para cada linha e cada coluna da matriz bi-dimensional é acrescentado um
disco de paridade correspondente aos discos de sua linha ou coluna. Essa
organização garante a recuperação de dados mesmo que 2 discos falhem
simultaneamente, ou ainda mesmo que uma linha ou coluna inteira de uma matriz de
discos falhe.
71

No exemplo da figura 4.15, o disco A armazena a paridade dos discos


correspondentes a sua linha, 0, 1 e 2, enquanto o disco D armazena a paridade
correspondente aos discos de sua coluna, 0, 3, 6. Os demais discos de verificação
seguem a mesma regra, de forma que qualquer disco de dados da matriz possui dois
caminhos de recuperação, seja pela linha, seja pela coluna.

Na dedução da sobretaxa e a avaliação de múltiplas falhas de disco em matrizes bi-


dimensionais feita a seguir, já se pode notar parte da contribuição desta dissertação,
tendo em vista que essa forma de dedução não é encontrada nas referências.

Sendo L o número de linhas e C o número de colunas de uma matriz bi-dimensional


de discos não redundantes, propõe-se o cálculo da sobretaxa de redundância
resultante quando adicionados L+C discos de paridade.

A sobretaxa é calculada dividindo-se o número de discos reservados para


redundância pelo número de discos sem redundância. O número total de discos não
redundantes é o número de linhas multiplicado pelo número de colunas. Como para
cada linha e para cada coluna é adicionado um disco de paridade, são necessários
mais L+C discos de paridade. A sobretaxa é portanto:

L+C
Sobretaxa % = .100 | L > 1 e C > 1
L.C

A disposição da matriz influi na sobretaxa. Por exemplo, uma matriz não redundante
de 12 discos, quando organizada em 6x2 usa um disco a mais para paridade que
quando organizado em 4x3. A sobretaxa no primeiro caso é de 66,66% e no segundo
caso é de 58,33%.

Comparando-se com Hamming, as matrizes bi-dimensionais tem melhor desempenho


porém maior custo dependendo do número de discos utilizados. O custo está
associado a alta sobretaxa de redundância das matrizes bidimensionais, observado na
tabela 4.4 (Gibson, 1991).
72

A sobretaxa das matrizes bi-dimensionais é reduzida em matrizes com grande


quantidade de discos, mas perde para a técnica de Hamming. Como na prática
matrizes de centenas de disco é pouco aplicado, o ganho com Hamming torna-se
irrelevante.

Sobre o aspecto de desempenho, as matrizes bi-dimensionais atualizam sempre no


máximo 2 discos de verificação (1 de cada dimensão da matriz) em cada operação de
escrita. Código de Hamming atualiza na maioria das operações de escrita todos os
discos de verificação para manter a paridade, afetando seu desempenho.

A simplicidade da implementação comparado a Hamming torna as matrizes bi-


dimensionais mais confiáveis.

Além disso, falhas múltiplas incluindo mais que 2 discos em alguns casos são
reparáveis, não necessariamente se estarem na mesma linha ou coluna. Por exemplo,
na figura 4.15 se falharem os discos 0, 1, 5 e 2 simultâneamente, podem ser
recuperados pelos dados armazenados nos discos D, 6 e 3; E, 7 e 4; 3, 4 e B; F, 8 e 5
respectivamente. Note que foi respeitado uma ordem para recuperar os dados dos
discos 2 e 5. Para recuperar o disco 2, foi necessário antes recuperar o disco 5.

A tripla falha de disco só não é suportada em um entre todos os casos de falha.


Observando-se a matriz genérica da figura 4.16, a única tripla falha não suportada é a
falha dos discos DM,N, DM,N+1 e DM+1,N.
73

Fig. 4.16 – Matriz bi-dimensional de discos genérica

Essa falha passa a ser suportada se adicionado um disco a mais para armazenar a
paridade dos discos da linha M+1 ou da coluna N+1 (disco DM+1,N+1 pontilhado na
figura 4.16), com a penalidade de atualizar um terceiro disco a cada operação de
escrita. O desempenho é potencialmente afetado pois o disco adicionado passa a ser
o gargalo do sistema, pois esse disco deve ser atualizado em operações de escrita
envolvendo qualquer outro disco da matriz. O custo com sobretaxa é ligeiramente
afetado pois é adicionado mais um disco de redundância, mas é irrelevante quando
utilizado matrizes de muitos discos.

Discos Discos de Total de discos (N) Sobretaxa Sobretaxa usando


de Dados (D) Paridade (P) Hamming / N discos
4 4 8 100% 75% / 7
6 5 11 83,33% 50% / 12
8 6 14 75% -
9 6 15 66,66% -
10 7 17 70% -
12 7 19 58,33% 31% / 21
25 10 35 40% 19% / 32
100 20 120 20% 6% / 128
1000 110 1110 11% 1% / 1024

Tabela 4.4 – Sobretaxa de matrizes bi-dimensionais comparado a Hamming


74

4.2.3. RAID Ortogonal

O RAID Ortogonal é o nome dado a uma forma particular de implementação de


matrizes bi-dimensionais onde são designados controladores de cadeia independente
para cada linha da matriz.

Sabe-se que uma falha de controlador de disco pode ocasionar falha simultânea de
todos os discos da cadeia controlada e se não for utilizado uma técnica que suporte
múltiplas falhas, todos os dados da matriz podem ser perdidos. Esse tipo de falha
recebe o nome de falha em modo comum, que é a falha de múltiplos componentes
simultâneamente em decorrência da falha de um outro componente no qual são
dependentes (JOHNSON, 1989).

Utilizando controladores independentes para cada linha de uma matriz bi-


dimensional aumenta ainda mais a confiabilidade do RAID, e mesmo que seja muito
remota a possibilidade de uma falha de uma controladora que resulte a falha de todos
os discos correlatos, tal possibilidade será totalmente tolerável e passível de
recuperação.

Fig. 4.17 – RAID Ortogonal


75

O RAID Ortogonal pode ainda ser utilizado para implementar vários grupos de
paridade de correção simples de forma que a falha de um controlador não cause
falhas simultâneas em um mesmo grupo de paridade. Na figura 4.17, a opção 2 de
agrupamento utiliza um disco de cada controlador para compor o grupo de paridade,
mais confiável que se utilizar a opção 1, onde os discos de um mesmo controlador
fazem parte de um mesmo grupo de paridade de correção simples, totalmente
vulnerável a falha correlata de discos pela falha do controlador (Lobato, 2000).

A opção 2 ainda benefícia o desempenho reduzindo a disputa pela cadeia ou


barramento quando múltiplos discos de um mesmo grupo transferem dados ao
mesmo tempo aumentando o desempenho de todo o sistema com a possibilidade de
maior paralelismo de transferência de dados.

4.2.4. RAID com código não-binário

Cada palavra de código no sistema de paridade binário é formado por cada bit dos N
discos da matriz mais o bit de paridade par dos N bits, como já visto. Uma palavra de
código não binário utiliza de cada disco um conjunto de bits que formam um
símbolo, como o equivalente decimal de um byte, e o dado de verificação é o
resultado de uma equação aplicada aos N símbolos (Gibson, 1991).

As vantagens dessa técnica podem ser observadas no exemplo da figura 4.18. No


primeiro caso, a figura 4.18-a, a paridade C1 e C2 resultam da mesma equação.
Nesse caso, dupla falha simultânea não é admitida caso A e B sejam os afetados, já
que C1 é igual a C2 originados da mesma função binária (a equação aplicada aos
símbolos tem o mesmo efeito do cálculo OU exclusivo dos bits de cada palavra de
código).

No exemplo da figura 4.18-b, dupla falha simultânea é admitida em qualquer dos


casos usando equações diferentes para cálculo dos símbolos de verificação C1 e C2.
Para exemplificar, uma determinada palavra de código armazenou no disco A o
símbolo de valor 1 e no disco B o símbolo de valor 3. Então o disco de verificação
76

C1 será 0=(1+3)mod 4 e C2 será 3=(1+(2.3))mod 4. Se A e B falharem


simultaneamente, então os símbolos de A e B podem ser recuperados a partir dos
símbolos C1 e C2, conforme as funções da figura 4.18. A e B então são recuperados
sendo 1=((2.0)-3))mod 4 e 3=(3-0) mod 4 respectivamente.

Fig. 4.18 – Código de verificação não binário

4.2.5. RAID 0 – Sem redundância

Uma matriz de disco RAID 0 utiliza simplesmente o conceito de fragmentação de


dados sem armazenamento redundante e conseqüentemente sem tolerância a falha e
sem custo adicional com sobretaxas. Cada dado a ser gravado é dividido em blocos
que são armazenados em discos separados para aumentar o desempenho do sistema
(Jim, 2000).

Também chamados de conjunto de fragmentos sem paridade (no-parity strip set),


essa técnica é utilizada em sistemas onde o desempenho tem prioridade e a baixa
confiabilidade é aceitável. Com a distribuição de carga de E/S ao longo de vários
canais e discos, e ainda sem a penalidade de cálculo de paridade, essa técnica de
RAID tem o melhor desempenho entre todas as técnicas, perdendo apenas para o
RAID 1 no “quesito” pequenas leituras, já que no RAID 0 não é aproveitado o
paralelismo de instruções nesse tipo de operação e no RAID 1 pode ser escalonado
requisições para o disco com menor previsão de tempo de busca e atraso rotacional.
77

4.2.6. RAID em camadas

Cada grupo de paridade RAID é visto pelo sistema como um único sistema de
arquivos ou um único disco de grande capacidade, conforme já visto. Dessa forma, é
possível que seja utilizado um conjunto de RAIDs para formarem um outro RAID,
do mesmo ou de outro nível e número de discos, criando-se uma estrutura em
camadas, os chamados RAIDs em camadas. O uso de camadas pode oferecer
melhora de desempenho e disponibilidade.

4.2.6.1. RAID 0+1

O RAID 0+1 combina o alto índice de desempenho do RAID 0 para escrita e leituras
de vários blocos consecutivos ao alto índice de desempenho do RAID 1 em pequenas
e espacialmente aleatórias leituras, além de oferecer maior confiabilidade com a
tolerância a falhas do RAID 1 o que não existe quando utiliza-se apenas o RAID 0
(Jim, 2000).
Existem duas possibilidades de organização do RAID 0+1, conforme as figuras 4.19-
a e 4.19-b.

No primeiro caso 3 discos (D0, D1 e D2) são agrupados para formar uma matriz não
redundante RAID 0 e outros 3 discos (D3, D4 e D5) são também agrupados da
mesma forma. As duas matrizes, idênticas em tamanho, são então espelhadas. Essa
forma de organização é também conhecida como RAID 1+0 a considerar-se que o
nível de RAID 0 foi aplicado antes do nível de RAID 1.

No segundo caso os discos são agrupados 2 a 2 formando 3 pares espelhados de


discos. Os 3 pares então são agrupados em uma matriz de fragmentação de dados
RAID 0. Ambos os casos possuem a sobretaxa do RAID 1, 100%.
78

A opção da figura 4.19-b é intuitivamente mais confiável que a da figura 4.19-a.


Supõe-se que tenha falho o disco D0 em ambas configurações, na figura 4.19-a e na
figura 4.19-b.

Fig. 4.19 – RAID 0+1

Na configuração da figura 4.19-a, com a perda do disco D0 automaticamente a


matriz sem redundância D0’ é perdida, sendo que os dados podem ser recuperados a
partir da matriz espelho de D0’, a matriz D1’. Durante o processo de reparo (troca de
D0 e reespelhamento de D1’ em D0’) a probabilidade de perda total dos dados é a
probabilidade de perda da matriz sem redundância D1’, ou seja, é a probabilidade de
falha de qualquer disco entre os 3 discos que compõe D1’, os discos D3, D4 e D5.

Na configuração da figura 4.19-b, a probabilidade de perda total dos dados é a


probabilidade
de um dos 3 pares espelhados (D0’, D1’ e D2’) falharem. Nesse caso, durante o
reparo (troca de D0 e reespelhamento de D1 em D0), a perda total dos dados só
acontece se D1 falhar.
79

Conclui-se portanto que o caso da figura 4.19-a é mais confiável que o da figura
4.19-b uma vez que a probabilidade de falha de 1 entre 3 discos é maior que a
probabilidade de falha de um disco isolado.

4.2.6.2. RAID 0+3

A mesma tolerância a falhas e sobretaxa de redundância do RAID 3 é aplicado ao


RAID 0+3. Essa combinação aumenta o desempenho da matriz sendo capaz de
atingir altas taxas de transferência e E/S graças aos fragmentos do RAID 0. Essa
técnica é exemplificada na figura 4.20, onde pode ser observado um RAID 0 cujos
discos na verdade são grupos de paridade que usam a técnica do RAID 3 (Lobato,
2000).

Fig. 4.20 – RAID 0+3

Diversas propostas combinando os níveis de RAID através de diferentes arranjos dos


fragmentos com alguma finalidade em ganhar desempenho e/ou confiabilidade são
encontrados na literatura mas não são estudados nesta dissertação. O SMDA
(Stripped Mirroring Disk Array) e o OSM (Orthogonal Striping and Mirroring) são
combinações de RAID 0 e 1 com arranjos em partições que possibilitam aumentar o
desempenho dessas matrizes tanto em pequenas como grandes escritas, que é uma
grande limitação das matrizes de paridade (HWANG, 2000; HWANG, 2002; JIN,
80

2000). Já o RAID-x combina os níveis de RAID 0 e 5 e propõe um novo mecanismo


para aumentar o desempenho de operações de leitura em matrizes no modo
degradado (com 1 disco falho) (JIN, 1999; HWANGb, 2000).

4.2.6.3. RAID RM2

Um eficiente esquema de alocação de dados chamado RM2 (Redundant Matrix 2)


possibilita a recuperação de uma dupla falha de disco em uma matriz de paridade
com uma razoável sobretaxa sem grandes perdas com desempenho. A figura 4.21-a e
4.21-b mostra como os dados são distribuídos dentro da matriz RM2 quando
utilizando 4 e 7 discos respectivamente (PARK, 1995; PARK, 1996; BLAUM,
1995).

Para o exemplo da figura 4.21-b cada disco da matriz é dividido em 3 partições de


tamanhos iguais. Uma das partições é usada para armazenar somente unidades de
paridade e as outras duas são usadas para armazenar unidades de dados. Assumindo
que o tamanho de uma partição é M e o número de discos é N, a parcela de espaço
em disco usada para armazenar a redundância será 1/M e deve ser satisfeita a
equação N=2M+1. No exemplo da figura 4.21-a, a taxa de redundância é de 1/3, e da
figura 4.21-b, que é uma exceção onde N=2M, a taxa de redundância é 1/2.

Pi representa a iésima unidade de paridade (representando o iésimo grupo de


paridade) e Di,j representa a unidade de dados que é incluída em ambos iésimo e
jésimo grupo de paridade. Por exemplo, para computar a unidade de paridade P4 da
figura 4.21-b, as unidades de dados D1,4, D3,4, D4,5 e D4,0 são consideradas.

Para entender como esse esquema suporta uma dupla falha de disco, utiliza-se o
exemplo mais simples, o da figura 4.21-a.

Supõe-se que os discos D0 e D1 falhem. O dado D23 pode ser recuperado a partir de
P3 e D30 contidos nos discos que não falharam D3 e D2 respectivamente. D12 por
sua vez pode ser recuperado a partir de D23, recuperado no processo anterior, e P2.
81

Fig. 4.21 – RAID RM2

4.3. Comparação de RAID por Software e RAID por Hardware

Implementações RAID dependem de alguns componentes como tabelas de


configuração da matriz RAID, estrutura de dados que armazenam os descritores de
dados em memórias temporárias (caches), mecanismos para cálculos de paridade e
lógica de controle do fluxo de E/S das matrizes de disco. Estes componentes podem
ser implementados por software, normalmente em modo de núcleo do sistema
operacional (kernel mode) ou embutido em controladores dos dispositivos de
armazenamento secundário onde as matrizes são configuradas e controladas de forma
transparente ao sistema operacional da máquina (ADAPTEC, 2002).
82

RAID por software são implementados a nível de blocos dos dispositivos e por isso a
necessidade de fazerem parte do núcleo do sistema operacional. A grande vantagem
de implementar RAID por software é o baixo custo comparado às implementações
por hardware, uma vez que controladoras dedicadas e chassis de discos hot-plugable,
que são parte de hardware relativamente caros, não são requeridos. Outra grande
vantagem é a não dependência do tipo de controlador e do tipo de discos utilizado no
sistema, podendo ser implementado tanto com controladoras e discos SCSI quanto
ATA/IDE. Como desvantagens dessa implementação estão as limitações com relação
à portabilidade, uma vez que cada sistema operacional possui uma particular forma
de implementação das matrizes, e a exposição de uma tarefa delicada de sistema a
erros de algorítmos e quedas de sistema que reduzem a confiabilidade e integridade
das matrizes. Outra desvantagem é a redução de desempenho, ocasionado a carga
excessiva de UCP, pois como o cálculo de paridade das matrizes fica a cargo do
sistema operacional e conseqüentemente utiliza o processador para este fim, o
desempenho do subsistema de discos fica limitado a este componente (ADAPTEC,
2002; REDHAT, 2002; MENON, 1995).

Alguns dos níveis de RAID descritos nos itens 4.1 e 4.2 são possíveis de ser
implementados por software, conforme a disponibilização do fabricante do sistema
operacional. A distribuição da Red Hat do sistema operacional Linux para
plataformas Intel oferece os níveis de RAID 0, 1 e 5 implementados no núcleo do
sistema (RED HAT, 2002). A Microsoft também disponibiliza a opção de RAID 0, 1
e 5 em suas versões de sistemas operacionais de servidores, Windows NT e
Windows 2000 Server (MICROSOFT, 2003).

RAID baseado em hardware gerencia o subsistema RAID independentemente da


arquitetura de máquina e apresenta a matriz de discos ao sistema como um disco
simples. Toda a inteligência de controle das matrizes são incorporadas aos
controladores de interface no subsistema externo de discos. A adição de
processadores dedicados para cálculos de paridade e controle de fluxo das matrizes e
memórias temporárias (caches) possibilitam a liberação do sistema antes mesmo que
83

os dados sejam escritos e também a execução de instruções de E/S de forma paralela,


aumentando significativamente o desempenho do subsistema de disco em
comparação com as implementações feitas por software. Como desvantagens estão o
custo relativamente alto com controladoras adicionais e ainda a não possibilidade de
utilizar diferentes tipos de protocolos e interfaces de E/S (ADAPTEC, 2002,
REDHAT, 2002).

Pelo fato das controladoras RAID serem principalmente empregadas em servidores


de missão crítica, as arquiteturas de maior desempenho são preferidas pelos
fabricantes de hardware para implementação dessas controladoras, como as
arquiteturas SCSI e Fiber Channel. Historicamente, a arquitetura SCSI tem
apresentado níveis de desempenho melhores que seu principal concorrente, o
ATA/IDE, e conseqüentemente maiores custos. Com os avanços da arquitetura
ATA/IDE através dos modos DMA, o desempenho dessas interfaces têm sido
similares aos das interfaces SCSI, possibilitando a implementação de controladoras
RAID para aplicação em sistemas menos críticos com a vantagem de redução de
custo com os discos (CHEN, 2001).

RAID baseado em software e RAID baseado em hardware podem ser utilizados em


conjunto como mostra a figura 4.22. Nesse exemplo, pares de discos espelhados por
hardware podem, em um segundo nível, fazer parte de uma matriz de discos sem
paridade (RAID 0), essa por sua vez implementada por software, formando um
RAID 0+1 (AKOM, 2002).
84

Controladora c/ Controladora c/ Controladora c/


2 canais 2 canais 2 canais

RAID 1 RAID1 RAID1 RAID 1 RAID 1 RAID 1

Nível de Hardware

RAID 0 Nível de Software

Fig. 4.22 – RAID Híbrido em nível de Software e Hardware (adapatado de AKOM, 2002)

Outra implementação por software mais complexa envolvendo múltiplas máquinas


utiliza uma rede de computadores como barramento de transferência de dados,
conforme a figura 4.23. Matrizes de paridade N+1 são implementadas utilizando os
subsistemas de disco de cada host. A matriz é organizada de forma ortogonal
dividindo-se os dados em fragmentos que são distribuídos entre os hosts e a paridade
dos fragmentos em um host adicional (KIM, 1997).

Barramento de Rede
1 2 3 ^ P1

Host 1 Host 2 Host 3 Host 4

cache cache cache cache

1 2 3 P1
4 5 P2 6

Fig. 4.23 – Organização de um RAID por Software com múltiplos hosts (KIM, 1997)
85

No próximo Capítulo é feita a modelagem de algumas das técnicas RAID descritas


neste Capítulo. Não faz parte do escopo deste trabalho a modelagem RAID por
software, e portanto não são consideradas falhas de software para a análise de
confiabilidade das matrizes.
86

CAPÍTULO 5. ANÁLISE DE CONFIABILIDADE DOS


SISTEMAS RAID

Neste capítulo são avaliadas as técnicas de armazenamento RAID descritas no


Capítulo 4 utilizando os conceitos e métodos de análise de confiabilidade citados no
Capítulo 3.

A abstração dos sistemas para modelos de Markov e a resolução das equações para
determinar o tempo médio de perda de dados são extraídas do trabalho realizado por
Gibson (Gibson, 1991). Alguns modelos e considerações aqui desenvolvidos não são
apresentados no trabalho de Gibson. Esses modelos representam parte significativa
da contribuição desta dissertação e são úteis no ambiente parametrizado proposto no
Capítulo posterior.

5.1. Considerações Gerais

A confiabilidade de uma matriz de discos magnéticos está diretamente associada ao


tempo médio estimado de vida de cada disco individualmente. Em um exemplo
desastroso, suponha que os discos falham muito próximo do prazo de garantia do
fabricante. Isto significaria que se todos os discos fossem comprados de um mesmo
lote de um determinado fabricante e aplicados em uma matriz de discos, todos os
discos falhariam em um mesmo período muito curto de tempo (Gibson, 1991).

Se a probabilidade de múltiplos discos falharem em um pequeno período de tempo é


alta, a paridade ou mesmo a completa duplicação torna-se inútil. Se realmente isso
ocorresse, seria mais barato e mais eficiente trocar os discos próximo do prazo da
garantia e não mais investir em redundância.

Felizmente, na prática, somente uma eventualidade causaria essa distribuição real do


tempo de vida dos discos. A verdadeira distribuição do tempo de vida dos discos
rígidos não é bem conhecida, e alguns estudos (Patterson apud Gibson, 1991)
87

apontam o tempo médio de falhas de discos como um processo estocástico e de


distribuição exponencial, o que será adotado neste trabalho.

A taxa de falhas instantânea dos discos num instante t e dt é a probabilidade de falhas


entre o tempo t e t+dt para os dispositivos que estão ainda operacionais em tempo t.
A função que descreve a taxa de falhas instantânea no tempo é chamada função de
falhas ou hazard (risco), h(x).

A curva de bathub, visto no item 2.2, é utilizada para descrever o tempo de vida de
diversos sistemas e é adequada para caracterizar o tempo médio de vida dos discos
magnéticos. Uma aproximação muito comum feita para a distribuição do tempo de
vida dos discos é adotar uma taxa de falhas constante (MTTF), medida a partir do
período de estabilidade da curva, que exclui o período de mortalidade infantil e pós-
desgaste.

A confiabilidade de um disco em um instante t, que é a probabilidade de estar


operacional no instante t dado que inicialmente, em t=0, estava operacional (Gibson,
1991), pode ser escrita como:
1

R(t ) = P(Operacional > t ) = e ∫0


− h ( x ) dx
= e −t MTTF

A igualdade acima é verdadeira adotando-se distribuição do tempo de vida dos


discos exponencial e taxa de falhas constante.

5.1.1. Principais Parâmetros

Os fabricantes de disco preferem utilizar a função de taxa de falhas em lugar da


função de confiabilidade para descrever a distribuição de tempo de vida dos discos
porque estes fabricantes alegam ter mais intuição sobre as mudanças na taxa de
falhas no tempo do que se eles calculassem a probabilidade de falhas em ou antes de
um determinado tempo (Gibson, 1991). Normalmente os fabricantes fornecem o
MTBF=MTTF nas especificações de confiabilidade dos discos, pois não consideram
88

que um disco individual seja um sistema reparável, e nesse caso, o MTTR=0. Como
uma matriz de disco redundante é reparável uma vez que tolera falha de disco e o
MTTR é considerável, nesta dissertação é utilizado o parâmetro MTTF para o tempo
médio de falha de disco.

Até 1989, o MTTF dos discos era especificado pelos fabricantes ficando entre 20.000
e 40.000 horas. Após a segunda metade de 1989, esses números cresceram
radicalmente, estimados em 150.000 horas, e em alguns casos passavam das 200.000
horas (GIBSON, 1991). Atualmente, em 2002, a Seagate fabrica discos com MTTF
de 600.000 horas a 1.200.000 horas, parâmetros muito questionáveis e incondizentes
com a realidade prática (SEAGATE, 2002).

Gibson investigou o ocorrido em 1989, observando-se que os resultados mais


favoráveis de tempo médio de vida dos discos foram obtidos a partir de metodologias
diferenciadas.

Antes de 1989 o MTBF dos discos era estimado a partir de testes práticos
submetendo-se os diversos componentes ao estresse. A partir de 1989 os fabricantes
passaram a estimar o MTBF pelos discos defeituosos retornados. Esse método tornou
os números mais otimistas visto que nem todos discos defeituosos retornavam ao
fabricante, já que os discos podem falhar após o prazo de garantia (GIBSON, 1991).

Outro importante fator a ser considerado é a freqüência em que os discos são ligados
e desligados. Quando um disco é desligado, as cabeças de leitura/escrita aterrissam
sobre a superfície de seus respectivos pratos. O problema mecânico mais freqüente
que ocorre com discos magnéticos é quando as cabeças de leitura/escrita não
conseguem flutuar sobre os pratos no processo de inicialização do sistema mecânico,
comprometendo a mídia magnética.

A partir de 1989, os fabricantes passaram a calcular o MTBF dos discos estimando-


se serem desligados com menor freqüência, e como os componentes mecânicos e
eletrônicos sofrem menor estresse, a confiabilidade estimada tornou-se maior.
89

O critério para avaliação do MTTF de um disco é muito subjetivo e pode variar seus
resultados em função das metodologias e amostras utilizadas. Normalmente, os
fabricantes tentam utilizar métodos que tendem a obter resultados mais otimistas,
mas para análises de confiabilidade mais apuradas, técnicas mais condizentes com a
realidade devem ser utilizadas. Muitos fabricantes pararam de fornecer o MTTF nas
especificações técnicas dos discos passando a fornecer métricas mais específicas,
como taxa de erros de leitura recuperáveis (por CRC), taxa de erros de leitura
irrecuperáveis, erros de busca (seek errors) e tempo de serviço (service life). Esse
último parâmetro não é muito explícito e normalmente é vinculado ao prazo de
garantia dos discos.

Como exemplo, a tabela 5.1 especifica os parâmetros de confiabilidade de 2 modelos


de disco fabricados pela Seagate. O ST1181677LCV de nome comercial Barracuda
180 é de interface SCSI Ultra Wide 160 e capacidade de 180GB. O ST380020A é de
interface ATA/IDE e sua capacidade é de 80GB.

Modelo ST1181677LCV ST380020A


Capacidade 180GB 80GB
Erro de leitura recuperável (por bits lidos) 1 por 1011 n/c
15
Erro de leitura não recuperável (por bits lidos) 1 por 10 1 por 1013
Erro de busca (por buscas realizadas) 1 por 108 n/c
Tempo de Serviço/Prazo de garantia (em anos) 3/5 n/c
MTBF 1.200.000 horas 600.000 horas

Tabela 5.1 – Especificações técnicas da Seagate, referente ao disco ST1181677LCV (SEAGATE,


2002)

Uma matriz não redundante RAID 0, descrito no item 4.2.5, apresenta menor
confiabilidade que um disco isolado uma vez que seu MTTF é dado pela expectativa
de vida de todo um conjunto de discos, sendo que a falha individual de um disco
provoca a perda total dos dados armazenados na matriz. Se todos os discos da matriz
possuem mesmo MTTF, o MTTF da matriz é dado por (Schulze, 1989):
90

MTTFdisco
MTTFmatriz =
Número Dis cos

Quanto mais discos na matriz, se não utilizada redundância, menor a confiabilidade e


menor a expectativa de vida da matriz. Uma matriz com 100 discos Seagate
ST1181677LCV cujo MTTF especificado na tabela 5.1 é de 1.200.000 horas, teria
um MTTF teórico estimado aproximadamente de apenas 12000 horas, o que
corresponde a 1 ano e 4 meses. Se fossem utilizados discos do modelo ST380020A,
também especificado na tabela 5.1 cuja especificação de MTTF é de 600.000 horas,
o MTTF da matriz é reduzido para 6000 horas, o correspondente a 250 dias. Esses
números, mesmo que teóricos, mostram a importância da adição de redundância para
tolerar falhas em uma matriz de discos.

A confiabilidade de uma matriz é maior quanto maior for a expectativa de vida dos
discos utilizados. Para uma avaliação mais simples de confiabilidade de uma matriz,
recomenda-se utilizar discos com a mesma expectativa de vida, não necessariamente
de mesmo modelo e fabricante, o que facilita os cálculos estimados. O texto
introdutório do Capítulo 4 descreve as vantagens de utilizar discos de mesmo
tamanho para compor uma matriz para evitar desperdícios do espaço armazenado e
também, dependendo da organização da matriz, a importância de utilizar discos de
mesma geometria para ganho de desempenho. Conclui-se que, teoricamente, utilizar
discos de mesmo fabricante, mesmo modelo e mesmo lote é o ideal, já que é
garantido que os discos possuem mesmo tamanho, mesma geometria e mesma
confiabilidade. Normalmente as empresas fazem contratos de reposição de discos
junto aos fabricantes ou mantêm discos em estoque, garantindo assim a substituição
de discos falhos por equivalentes, mesmo que tais modelos estejam obsoletos ou fora
de linha de produção.

Recomenda-se que uma matriz de discos de mesmo lote e modelo seja submetida a
um estresse inicial antes de entrar em produção para avaliar se o lote é confiável. As
especificações dos fabricantes não prevêem erros de projeto, e se um lote está
comprometido, vários discos podem falhar em um curto período de funcionamento,
reduzindo drasticamente a confiabilidade da matriz.
91

Os modelos de previsão teórica de MTTF são incapazes de levar em conta fatores


como erros de projeto de dispositivos e controladores, defeitos induzidos durante a
produção, elementos humanos e o ambiente onde os discos são instalados, que
podem não estar adequados quanto a temperatura e umidade, por exemplo (Gibson,
1991).

Para não confundir o MTTF individual de um disco com o MTTF de uma matriz
redundante, este trabalho referenciará o MTTF da matriz como MTTDL, que
significa tempo médio estimado para perda de dados (Mean Time to Data Loss).

5.1.2. Caracterização do Processo de Reparo

As matrizes de disco redundantes são reparáveis e portanto, diferente de um disco


individual que não prevê reparos, sua expectativa de vida é influenciada pelo MTTR
do sistema.

Em um sistema de paridade de correção simples, ou seja, que suporta a falha de um


único disco, como é o caso das arquiteturas RAID 3, 4 e 5 descritas no item 4.1.3, o
tempo médio de reposição e reconstrução de um disco da matriz que eventualmente
tenha falhado é o MTTR da matriz. Caso um segundo disco falhe durante o processo
de reposição do primeiro disco, todos os dados da matriz são perdidos.

Sendo assim, quanto menor o tempo de reparo, menor a probabilidade de perda total
dos dados pois minimiza a possibilidade de 2 falhas simultâneas de disco.

Outra contribuição desta dissertação, vem no sentido de propor que o processo de


reparo de um disco falho seja dado pela soma do tempo de 2 procedimentos também
estocásticos: o primeiro é o tempo gasto para troca do dispositivo e o segundo é o
tempo para reconstituição dos dados do disco falho no novo disco a partir das
informações redundantes dos demais discos. Em seu trabalho, Gibson não considera
o MTTR como sendo resultado de 2 procedimentos.
92

O tempo médio para troca do disco aqui denominado MTTCD, é o tempo médio
estimado para troca do disco após falha (Mean Time to Change Disk). O tempo de
reconstrução do disco é obtido por 2 parâmetros, o TD (tamanho do disco), dado em
Gigabytes dividido pelo TR (taxa de reconstrução), dado em Gigabytes/hora. O TR é
maior quanto maior o desempenho dos discos utilizados. Os acrônimos MTTCD, TD
e TR não são encontrados na literatura tendo sido incorporados exclusivamente nesta
dissertação.

Sendo assim, o MTTR de uma matriz de paridade simples é dado por:

TD
MTTR = MTTCD +
TR

O tempo para reconstrução dos dados do disco falho depende não só do tamanho do
disco e sua taxa de transferência mas também do mecanismo utilizado para fazer
redundância. Por exemplo, se foi utilizado espelhamento, o processo de reconstrução
não envolve processamento, mas sim uma cópia fiel do disco que não falhou. No
caso de utilização de paridade para correção simples, o processo envolve
reprocessamento da informação a partir da redundância contida nas palavras de
código dos demais discos.

O tempo para troca do disco pode ser minimizado a frações de segundo quando são
adicionados ao sistema discos isolados dedicados que assumem automaticamente o
lugar de um disco da matriz no caso de falha. Esses discos dedicados são chamados
Spares ou OLS (Online Spare) e a figura 5.1 ilustra a utilização de um disco OLS em
um par de discos espelhado RAID 1. Não existindo discos “reservas” no sistema, o
tempo de troca do disco fica totalmente dependente da intervenção humana.
Normalmente sistemas críticos são monitorados por softwares agentes que emitem
alarmes alertando a existência de falha no sistema ao seu administrador.

Muitos sistemas ainda permitem que um disco seja trocado sem a necessidade de
parar o equipamento., aumentando ainda mais a confiabilidade e a disponibilidade do
93

sistema. Essa característica de hardware é conhecida como troca quente, ou Hot-


Plugged-in (Compaq, 1998).

Fig. 5.1 – Espelhamento (RAID 1) com OLS

A utilização do OLS faz possível tempos de reparo médios praticamente constantes e


pequenos, ficando dependente apenas do tempo de reconstrução do disco falho. A
troca do disco falho se dá com uma simples detecção de falha e acionamento do
disco spare sem a necessidade de intervenção humana.

O sucesso de reparo de um disco falho em uma matriz de paridade redundante


depende do sucesso da leitura total dos demais discos que compõe o grupo de
paridade, e portanto, a taxa de erros irrecuperáveis é uma métrica importante pois
quanto maior, maior a probabilidade de perda parcial dos dados quando um grupo de
paridade é submetido a um processo de reparo.

Como exemplo, são utilizados os discos especificados na tabela 5.1 sendo


submetidos a leituras em média de 50% da capacidade diariamente, o que é razoável
quando empregados em servidores de alta utilização. O tempo médio estimado de
falha de leitura de 1 bit será a taxa de erros de leitura não recuperável dividido pela
metade da capacidade do disco em bits.

1015 = 1389 dias (p/ modelo ST1181677LCV)


(90.109.8)
1013 = 31dias (p/ modelo ST380020A)
(40.109.8)
94

Para o tempo médio estimado de falha de 1 bit sendo de 31 dias, que é o resultado do
exemplo anterior utilizando discos de modelo ST380020A, se o reparo demandar 24
horas, a probabilidade de um código de paridade ficar inconsistente é a não
confiabilidade do processo:

−24

(1 − R(24)).100 = (1 − e 31.24
).100 = 3,174%

A perda de múltiplos códigos de paridade durante um processo de reparo é pouco


provável pois trata-se de um processo estocástico, e mesmo que 2 ou 3 códigos
fossem afetados, implicaria em uma perda parcial muito pequena dos dados perto do
volume total dos dados armazenados em uma matriz. Baseado nesse fato, essa taxa
não será considerada no cálculo da confiabilidade das matrizes de disco redundantes.

5.1.3. Falhas de Sistema

Considera-se falha de sistema para a análise de confiabilidade de matrizes de disco


em questão qualquer evento que implique na não acessabilidade dos discos pela
indisponibilidade de algum componente do sistema o qual o subsistema de E/S é
dependente.

Exemplos deste tipo de falha são falta de tensão de alimentação, falha operacional
humana, falha de controladora de disco, falha no cabo de comunicação de dados
entre discos e controladora e qualquer falha de hardware que indisponibilize o acesso
aos discos. Tais falhas podem interromper operações de escrita, resultando em
estados onde o dado é atualizado e a paridade não, ou vice-versa. A inconsistência de
paridade pode resultar na impossibilidade de recuperação de um disco falho.

As falhas de sistema podem ser mais críticas que as falhas individuais de disco. Uma
falha de uma controladora pode resultar na falha de múltiplos discos e
conseqüentemente, dependendo da organização da matriz, a perda total dos dados de
um ou mais grupos de paridade.
95

Técnicas de redundância de hardware são aplicadas a sistemas de missão crítica para


reduzir a incidência desse tipo de falha, mas nenhuma técnica pode evitar a falha em
100% dos casos. Em caso de falha de um componente isolado, havendo redundância
de hardware, ele pode ser suprido por um sobresalente ao sistema. Isso ocorre com a
alimentação do sistema, controladoras e barramentos.

A figura 5.2 caracteriza o MTTF dos componentes o qual o subsistema de E/S é


dependente (Schulze, 1989).

Fig. 5.2 – MTTF dos componentes que o subsistema de E/S é dependente

A seguir, na figura 5.3, propõe-se a utilização de Árvore de Falhas para representar


os componentes da figura 5.2 e fazer uma análise qualitativa do sistema (Ferreira,
2000). A metodologia para modelagem de sistema por Árvore de Falhas é
apresentada no item 2.5.1 e considera que a matriz de discos da figura 5.2 é de
paridade simples, ou seja, pode recuperar apenas a falha de 1 disco por vez.
96

Sistema
Indisponível

Dados não podem


ser acessados

+2 discos sem
acesso Falha de
Falha de
Suprimento
de energia controlador

Disco N1 sem Disco N2 sem


acesso acesso

Falha no Falha no Falha cabo


Falha cabo disco N2 disco N2
disco N1 disco N1

Fig. 5.3 - Árvore de Falhas do sub-sistema de E/S

Sendo:
DN1 = 1o disco aleatório da matriz
DN2 = 2o disco aleatório da matriz
CN1 = cabo de comunicação do 1o disco
CN2 = cabo de comunicação do 2o disco
PS = Alimentação (Power Supply)
CS = controlador SCSI
97

O shortcut do sistema é definido por:

T = ((DN1 + CN1).(DN2 + CN2)) + PS + CS


T= DN1.DN2 + DN1.CN2 + CN1.DN2 + CN1.CN2 + PS + CS

A análise qualitativa da árvore de falhas mostra que a disponibilidade do sistema em


uma matriz de discos redundante depende muito da alimentação e da controladora de
E/S, uma vez que o topo da Árvore é atingido se qualquer 1 dos dois componentes
falhar. Para reduzir o problema, o sistema deve utilizar redundância de fonte de
alimentação e controladora. Em muitos casos o subsistema de E/S é comum a 2 ou
mais hospedeiros, de forma que qualquer falha de sistema em um hospedeiro, seja
suprida por um outro conectado ao subsistema, como mostra a figura 5.4.

Barramento de Rede

Servidor Servidor
A B
Canal de E/S

Controladora Controladora
A B

Fig. 5.4 - Sistema com redundância de controladoras, canais e hosts

5.2. Avaliação de Confiabilidade dos RAID 3, 4 e 5

Neste item é feita a modelagem de um grupo de paridade simples que foi descrito no
item 4.1.3, os chamados níveis de RAID 3, 4 e 5. Para efeito de avaliação de
confiabilidade essas 3 técnicas se equivalem e portanto apresentam os mesmos níveis
de confiabilidade, diferenciando-se apenas no aspecto de desempenho e
98

características de aplicação. Nesse caso, não havendo a necessidade de avaliação de


cada técnica separadamente, serão referenciadas nesta avaliação como sendo uma
única técnica, a técnica de paridade N+1 ou de paridade simples.

Nesta primeira análise, não são consideradas falhas de sistema. Para representar uma
matriz redundante com simples correção de erro, uma matriz de paridade N+1 é
utilizado um modelo de Markov, técnica de modelagem descrita no item 2.4.

O modelo de 3 estados é mostrado na figura 5.5, onde a distribuição do tempo de


vida dos discos é independente e exponecial e a duração de reparos também
exponencial (Gibson, 1991).

O modelo da figura 5.5 representa um grupo de paridade de N+1 discos, cujos discos
falham exponencialmente a uma taxa MTTFdisco = 1/λ (sendo λ a taxa de falhas) e
taxa de reparo exponencial MTTRdisco = 1/µ (sendo µ a taxa de reparo).

O estado 0 representa que todos N+1 discos da matriz estão operacionais, o estado 1
representa que o grupo de paridade opera com a falha de um disco (falha tolerada
sem perda de dados) e o estado 2 representa o estado indesejável, ou seja, quando
pelo menos 2 discos falham significando perda total de dados do grupo de paridade.

Inicialmente no estado 0, a falha de um dos discos (transição estado 0 para 1) ocorre


a uma taxa de falha (N+1)λ. A falha de um segundo disco antes da recuperação do
primeiro (transição do estado 1 para o 2) ocorre a uma taxa Nλ. A recuperação dos
dados de um disco falho a partir dos demais N discos (transição do estado 1 para o 0)
ocorre com taxa de reparo µ..

(N+1)λ

0 1 2
µ

Fig. 5.5 - Modelo de Markov para sistema de discos redundantes com único grupo de paridade
99

Dado que um sistema iniciando no estado i, o tempo estimado de transição para um


estado j é dado por:

E[estado i para estado j ] = E[tempo no estado i por visita ] +


∑ P(transição estado i para estado k ) . E[estado k para estado j ]
k ≠i

A probabilidade de transição do estado i para o estado k é expressa como:

taxa de transição para estado k


P (transição estado i para estado k ) =
∑ taxas de saída do estado i

e o tempo estimado por visita no estado i é :

1
E[tempo no estado i por visita ] =
∑ taxas de saída do estado i

O tempo médio para perda de dados (MTTDL) é o tempo estimado em que o sistema
atinge o estado 2, inicialmente no estado 0.

MTTDL = E[estado 0 para estado 2]

Sendo assim, MTTDL é o resultado do sistema de equações lineares abaixo:

1 ( N + 1)λ
E[estado 0 para estado 2] = + .E[estado1 para estado 2]
( N + 1)λ ( N + 1)λ
1 µ
E[estado1 para estado 2] = + .E[estado 0 para estado 2]
µ + Nλ µ + N λ

+ .E[estado 2 para estado 2]
µ + Nλ
E[estado 2 para estado 2] = 0

(2 N + 1)λ + µ
MTTDL = ∫ R(t )dt =E[estado 0 para estado 2] =
t =0 N ( N + 1)λ2
100

(2 N + 1) 1
Em razão de (2 N + 1)λ = ser muito menor que µ = , uma vez
MTTFdisco MTTR
que MTTF é da ordem de centenas de milhares de horas e MTTR desejado da ordem
de unidade de horas, Gibson faz uma aproximação para simplificar o MTTDL:

µ MTTFdisco
2
MTTDL1 grupo de paridade simples = =
N ( N + 1)λ2
N ( N + 1) MTTRdisco

A confiabilidade de uma matriz de discos de paridade simples no instante t, em


função de MTTDL é análoga a confiabilidade de um disco isoladamente avaliado em
função de seu MTTF estimado. Portanto:

Rgrupo de paridade (t ) = e − t / MTTDL

5.2.1. Avaliação para Múltiplos Grupos de Paridade Simples

Na prática, uma matriz de discos pode ser composta por mais que um simples grupo
de paridade. Se cada grupo falha independentemente, o tempo estimado para que
dados sejam perdidos em uma matriz de discos contendo múltiplos grupos de
paridade é o tempo até que o primeiro grupo falhe. Dado que o tempo de vida de um
único grupo de paridade possa ser modelado exponencialmente, conforme descrito
no capítulo anterior, o tempo de vida de uma matriz de múltiplos grupos de paridade
tem a mesma distribuição que o grupo que possui a menor expectativa de vida.

Uma das propriedades das variáveis exponenciais é que o resultado da soma de


múltiplas variáveis exponenciais é também uma variável exponencial (Gibson,
1991). Sendo assim, uma matriz de G grupos de paridade simples, cada grupo
contendo N+1 discos, pode ser expressa:

2
MTTFdisco
MTTDLG Grupos Paridade Simples =
GN ( N + 1) MTTRdisco
101

A função da confiabilidade da matriz de múltiplos grupos de paridade simples é igual


a 1 grupo de paridade simples, para o novo MTTDL:

− t / MTTDLindep
R grupo de paridade (t ) = e

5.2.2. Avaliação de Múltiplos Grupos de Paridade Simples Considerando Falhas


de Sistema

No Modelo de Markov apresentado anteriormente que resultou no cálculo do


MTTDL foi feita uma consideração otimista assumindo-se que as falhas de discos
são independentes. Contudo, o subsistema de E/S requer suporte de hardware que é
compartilhado por múltiplos discos muitas vezes mais suceptíveis a falhas do que os
próprios discos, como fonte de alimentação, controladoras de cadeias ou barramentos
de E/S, cabos de dados e controle, e sistema de refrigeração, conforme visto no item
5.1.3 que abordou as falhas de sistema.

Na figura 5.2 do item 5.1.3 há um exemplo de um subsistema de E/S e as taxas de


falhas associadas aos componentes do subsistema. O exemplo apresentado assume
que os discos compartilham o mesmo cabo, fonte de alimentação e ventilação.
Gibson assume que um conjunto de discos que compartilham o mesmo conjunto de
hardware de suporte é denominado uma cadeia. A cadeia pode falhar se qualquer
hardware de suporte falhe e a falha de cadeia indisponibiliza os discos associados
para o sistema, não necessariamente representando falha de disco. Se um grupo de
paridade simples compartilhar uma mesma cadeia, a falha da cadeia pode representar
a perda total dos dados pois a falha da cadeia resulta em falha de múltiplos discos.

A taxa de falhas de uma matriz RAID 1 / MTTDLRAID considerando a taxa de falhas


de cadeias com distribuição no tempo exponencial ( Gcadeia / MTTFcadeia ) e o MTTDL
estimado no item 5.2.1 passa a ser:
102

1 G ( N + 1)( N + 2) MTTRdisco Gcadeia


= 2
+
MTTDLRAID ( MTTFdisco ) MTTFcadeia

onde Gcadeia é o número de cadeias do subsistema de E/S, e MTTFcadeia é o tempo


médio estimado para falha da cadeia (GIBSON, 1991).

5.2.3. Avaliação do RAID Ortogonal Considerando Falhas de Sistema

Para minimizar a perda de dados causado pela falha de cadeia pode-se duplicar os
componentes envolvidos, como por exemplo o uso de fontes de alimentação e
ventilação redundantes e duplicação de controladoras de barramento, aumentando
assim o MTTFcadeia .

Outra solução para minimizar as perdas por falha de cadeia seria aumentar o número
de discos envolvidos dividindo-os em cadeias independentes, e formando as matrizes
de paridade utilizando um disco de cada cadeia, conforme a figura 5.6. Esse conceito
de implementação é conhecido por RAID Ortogonal, e foi descrito no item 4.2.3.

Fig. 5.6 – RAID com organização ortogonal da paridade e suporte de hardware


103

Essa organização evita a perda de dados quando há uma falha de cadeia e


conseqüentemente os discos da cadeia, implicando nesse caso o reparo da cadeia (do
componente do sistema ou ainda da troca de todos os discos da cadeia) e a
reconstrução dos grupos de paridade ortogonais as cadeias.

O Modelo de Markov para uma matriz ortogonal de discos é apresentado na figura


5.7 e simplificado em 2 modelos para diminuir a complexidade de resolução do
MTTDL na figura 5.8.

Fig. 5.7 – Modelo de Markov para RAID de paridade e suporte de hardware ortogonais

No modelo da figura 5.7, o estado 0 representa nenhuma falha de cadeia ou de disco.


O estado CR representa que houve uma falha de cadeia e que está sob reparo. Nos
estados i, onde i ∈ {1,..., G} representa que diferentes i grupos de paridade estão
em processo de reparo de uma falha simples de disco. Quando uma cadeia falha o
sistema entra no estado SR se todos discos que por ventura estiverem sobre processo
de reparo estão contidos na cadeia que falhou, caso contrário, dados são perdidos,
representado pelo estado DP. Dados são perdidos também no caso de durante o
processo de reparo de uma cadeia qualquer outro disco não envolvido na cadeia
falhe, ou ainda se 2 discos de um mesmo grupo de paridade falhem simultaneamente.
104

Fig. 5.8 – Submodelos para Perda de Dados do RAID Ortogonal

A simplificação em 2 modelos de Markov mais fáceis de serem resolvidos assume


que diferentes tipos de perda de dados são mutuamente exclusivos e somam suas
taxas (Gibson, 1991). Cada modelo representado pelas figuras 5.8-a e 5.8-b
representa um tipo de perda de dados em uma matriz ortogonal de disco, falha de
componente durante o reparo de um disco e falha de componente durante o reparo de
uma string, respectivamente.

O primeiro submodelo é idêntico ao modelo analisado no item 5.2 representando os


estados de um grupo de paridade, com uma diferença, a perda de dados durante o
reparo de um disco (estado 1) depende não só da taxa de falha de um segundo disco
N.λd do grupo de paridade como também da taxa de falha de uma cadeia sem ser a
cadeia do disco que estiver sendo reparado N.λs.

O segundo submodelo representa a perda de dados causado por uma segunda falha
durante o reparo de uma cadeia. NF representa o estado inicial sem falha de cadeia, o
estado CR representa que o reparo de uma cadeia que falhou está em andamento. DR
representa que os G discos da cadeia que falhou estão em processo de reconstrução
uma vez que a cadeia tenha sido reparada. DP representa a perda de dados.
105

A transição NF para CR ocorre na taxa de falha das N+1 cadeias do sistema:


(N+1).λs. A transição CR para DP ocorre na taxa de falha de uma segunda cadeia
falhar, N. λs e também se qualquer dos demais discos não pertinentes a cadeia em
reparo falhe, N.G.λd. A transição de CR para DR ocorre na taxa de reparo da cadeia
µs e retorna de DR para CR na taxa de falha da cadeia reparada λs.
Para evitar perda de dados após o reparo de uma cadeia todos G discos devem
completar a recuperação. A taxa de transição do estado DR para o estado NF é a
recíproca do máximo de G reparos de discos esperado (Gibson, 1991):

MTTRGdis cos = φ / µdr onde φ = 1 / 1 + 1 / 2 + ... + 1 / G e


µdr é a taxa de reparo de um disco, µdr = 1 / MTTRdisco recup.

A resolução do MTTDL da matriz ortogonal é obtida pela soma do tempo estimado


de transição iniciando no estado 0 e terminando no estado DP do primeiro modelo
com o tempo estimado de transição inicialmente no estado NF para o estado DP do
segundo modelo.

O resultado dessa complexa resolução é:

MTTDLortogonal =
( MTTFdisco ) 2
GN ( N + 1) MTTRdisco
1+αF 1 + α F φ / G + (1 + α F / G )(α R / α RD + GNε ds + ( N + 1)φε ss )
+αF.
1 + (2 N + 1)ε dd + Nε ds (( N + 1) / MTTFcadeia + (2 N + 1)ε ss + GNε sd )ψ ( N + 1) + ψ ( N )

MTTFdisco MTTR disco MTTR disco


onde α F = , αR = , α RD =
MTTFcadeia MTTRcadeia MTTRdisco recup.

MTTRdisco MTTRcadeia MTTRcadeia MTTRdisco


ε dd = , ε ss = , ε sd = , ε ds =
MTTFdisco MTTFcadeia MTTFdisco MTTFcadeia

1 1 1 1
ψ ( g ) = α RD + GNε dd + gφε ds , φ = + + + ... +
1 2 3 G
106

Gibson simplificou o MTTDL para matriz ortogonal considerando que os valores


ε dd , ε ss e ε sd e ε ds são valores pequenos e desprezíveis, uma vez que o MTTR é
muito menor que o MTTF esperado. Essa simplificação resulta no MTTDL da matriz
ortogonal:

( MTTFdisco ) 2
GN ( N + 1)( N + 2) MTTRdisco
MTTDLortogonal =
  1 1  αF
2
 φ 1 
1 + α F 1 + +  +  + 
  α RD α R  G  α RD α R 

5.3. Avaliação de Confiabilidade do RAID 1

Utilizando o modelo de Markov para o esquema de paridade simples onde Gibson


define o MTTDL (item 5.2), propõe-se nesta dissertação que o modelo de Markov
para um disco espelhado RAID nível 1, descrito no item 4.1.1, seja idêntico ao de um
grupo de paridade simples, com uma particularidade que ajuda a simplificar o
MTTDL de um grupo espelhado. N é sempre igual a 1, uma vez que no
espelhamento necessariamente um grupo espelhado consta de apenas 1 disco de
dados e 1 disco de verificação.

Como no exemplo anterior, 3 estados são relevantes. O estado 0 representa que os 2


discos estão operacionais, o estado 1 representa que um dos dois discos falhou e o
estado 2 significando a falha simultânea dos dois discos, ou seja, perda total dos
dados. As taxas de transição dos estados são as mesmas.

O MTTDL estimado de um disco espelhado portanto é:

2
MTTFdisco
MTTDLEspelhamento =
2MTTRdisco

Da mesma forma, para G discos espelhados, estima-se:


107

2
MTTFdisco
MTTDLEspelhamento =
G.2.MTTRdisco

5.4. Avaliação de Confiabilidade do RAID RM2

O RAID RM2 foi descrito no item 4.2.6.3 onde foi verificado que essa configuração
permite dupla falha de discos e nesse item é proposta sua avaliação de confiabilidade
utilizando modelo de Markov.

Dado que N discos compõe uma matriz com M partições RAID RM2, sendo M
inteiro e maior que 1 e N = 2M se M = 2 ou N = 2M+1 quaisquer M>2, a taxa de
falhas do primeiro disco é de N.λ, do segundo disco após a primeira falha é de (N-
1).λ e do terceiro disco após a dupla falha, ou seja, perda total dos dados, é de (N-
2).λ. A taxa de reparo quando um disco falhou é µ e a taxa de reparo quando há 2
discos falhos é de 2.µ.

Dadas estas taxas, o modelo equivalente de Markov que representa os estados de


uma matriz de redundância RM2 é apresentado na figura 5.9.

Nλ (N-1)λ
(N-2)λ
0 1 2 3
µ 2µ

Fig. 5.9 – Modelo de Markov para o RAID RM2

O estado 0 representa que a matriz não possui nenhum disco falho e os estados 1 e 2
representam 1 disco falho e 2 discos falhos respectivamente. O estado 3 representa a
ocorrência de 3 ou mais falhas, ou seja, condição em que não há a possibilidade de
recuperação dos dados.

Para equacionar o MTTDL equivalente ao modelo de Markov apresentado é utilizado


o mesmo método do item 5.2.
108

MTTDL = E[0 → 3]

1 transição i → k
E[i → j ] = +∑ .E[k → j ]
∑ saída i k ≠i ∑ saída i
1 Nλ.E[1 → 3]
E[0 → 3] = +
Nλ Nλ
1 µ .E[0 → 3] ( N − 1)λ.E[2 → 3]
E[1 → 3] = + +
( N − 1)λ + µ ( N − 1)λ + µ ( N − 1)λ + µ
1 2 µ .E[1 → 3] ( N − 2)λ .E[3 → 3]
E[2 → 3] = + +
( N − 2)λ + 2 µ ( N − 2)λ + 2 µ Nλ + 2 µ
E[3 → 3] = 0

Resolvendo o sistema de equações acima, o MTTDL do RAID RM2 é portanto:

λ2 (3 N 2 − 6 N + 2) + µ (3Nλ + 2µ − 2λ )
MTTDL =
Nλ3 ( N 2 − 3N + 2)

como λ2 (3 N 2 − 6 N + 2) é muito menor que µ (3 Nλ + 2 µ − λ ) o MTTDL pode ser reduzido :

µ (3Nλ + 2µ − 2λ )
MTTDL =
Nλ3 ( N 2 − 3N + 2)

O MTTDL para múltiplos grupos RM2 recebe o número de grupos G multiplicado


no denominador:

µ (3Nλ + 2µ − 2λ )
MTTDL =
G.N .λ3 ( N 2 − 3 N + 2)

5.5. Rede de Petri para Modelagem de Falhas em RAID

Outra contribuição deste trabalho está na utilização de Redes de Petri para a


modelagem de falhas em sistemas redundantes de armazenamento em disco.
109

Como exemplo, é feita a modelagem de um grupo de paridade simples (RAID 3, 4 e


5) com falhas independentes de disco utilizando Redes de Petri em confronto a
modelagem direta por Markov de Gibson apresentado no item 5.2.

O modelo leva em consideração o reparo como sendo 2 estados distintos: o


procedimento de troca do disco e o procedimento de reconstrução dos dados do disco
falho a partir dos demais discos.

Sendo N o número de discos do grupo de paridade (sem a paridade), λ a taxa de


falhas individual de cada disco, θ a taxa de troca do disco, θ=1/MTTCD e α a taxa de
reconstrução de disco α=TR/TD, a Rede de Petri que representa o sistema de
paridade N+1 é mostrada na figura 5.10.

A descrição dos lugares e transições da Rede de Petri da figura 5.10 vem a seguir.

P1 = N+1 discos ok
P2 = 1 disco defeituoso
P3 = Troca ou chaveamento do disco defeituoso para um disco ok
P4 = Reconstruindo o espelhamento
P5 = Disco corrigido
P6 = Falhou um segundo disco (perda total dos dados)
T1 = Tempo de falha de 1 dos N+1 discos
T2 = Tempo de reparo (troca do disco defeituoso)
T3 = Tempo de falha de 1 disco dos N discos (falha do segundo disco)
T4 = Tempo para reconstrução do disco defeituoso (resincronização do RAID)
T5 = Retorno instantâneo a P1 após resincronização do RAID
T6 = Término da Rede quando P6 é alcançado
110

P1
o

T1

(N+1).λ

P2
P3

T2

T3 P4
N.λ

P6
T4

P5

T5

Fig. 5.10 – Rede de Petri para um grupo de paridade N+1 com falha de disco independente

A Rede inicia em P1 quando todos N+1 discos não apresentam falhas. O token é
passado para P2 e P3 através da transição T1 a uma taxa de (N+1)λ caso 1 dos N+1
discos falhe. Na sequência, o processo de reparo é realizado primeiro no lugar P3,
que representa a troca do disco falho a uma taxa θ, e depois em P4 representando a
reconstrução do disco a uma taxa α. Se durante o processo de reparo ocorrer a falha
de um segundo disco, simbolizado pela transição T3 que ocorre a uma taxa Nλ, P6
recebe o token finalizando a execução da Rede. Se o reparo ocorrer antes da falha de
um segundo disco, o token retorna ao lugar inicial P1.
111

O lugar indesejado é portanto P6, que representa a perda total dos dados. Um sistema
hipotético perfeito apresentaria T2+T4=0 e T3>0. Na prática, o sistema apresenta
maior confiabilidade quanto maior for T3 e menor for T2 e T4.

A árvore de alcançabilidade da Rede de Petri corresponde a cada mudança de estado


da rede, representado por Mn (figura 5.11). Cada Mn representa 1 das combinações
de estados possíveis dos lugares da Rede de Petri. Quando o lugar é representado por
1, significa que o lugar detém o token, caso contrário, é representado por 0. O
Modelo de Markov é obtido a partir da árvore de alcançabilidade na figura 5.12,
eliminando-se os estados repetidos e as transições instantâneas.

O estado M3 da árvore de alcançabilidade foi absorvido já que t5=0. O estado M4 da


árvore de alcançabilidade corresponde ao 3 do modelo de Markov.

Para determinar o MTTDL do sistema é preciso apenas resolver o modelo de Markov


apresentado, determinando o tempo estimado para atinjir o estado 3, partindo do
estado 0.
112

M0={1,0,0,0,0,0}

T1

M1={0,1,1,0,0,0}

T2
T3

M4={0,0,0,0,0,1} M2={0,1,0,1,0,0}

T3
T4

M3={0,1,0,0,1,0} M4

T5
M0

Fig. 5.11 – Árvore de Alcançabilidade da Rede de Petri

0 1 2
(N+1)λ θ

N.λ N.λ

Fig. 5.12 – Modelo de Markov equivalente a Árvore de Alcançabilidade

A resolução do modelo de Markov da Fig. 43 é baseado na resolução do modelo no


item 5.2. O MTTDL do grupo de paridade N+1 é:

MTTDL = E[0 → 3]
113

1 transição i → k
E[i → j ] = +∑ .E[k → j ]
∑ saída i k ≠ i ∑ saída i
1 ( N + 1)λ
E[0 → 3] = + .E[1 → 3]
( N + 1)λ ( N + 1)λ

1 θ N .λ
E[1 → 3] = + .E[2 → 3] + .E[3 → 3]
N .λ + θ N .λ + θ N .λ + θ

1 α N .λ
E[2 → 3] = + .E[0 → 3] + .E[3 → 3]
N .λ + α N .λ + α N .λ + θ

E[3 → 3] = 0

2 Nλ.( Nλ + α + λ / 2 + θ ) + α .(θ + λ ) + θλ
MTTDL =
Nλ2 .( N 2λ + Nθ + Nα + Nλ + θ + α )

5.6. Resumo

A tabela 5.2 apresenta o resultado do MTTDL das técnicas RAID avaliadas neste
Capítulo. Alguns destes resultados (RAIDs 1, 3, 4, 5 e RM2) serão utilizados no
ambiente parametrizado descrito no próximo Capítulo onde serão levantados os
gráficos da confiabilidade em função dos parâmetros que determinam o MTTDL.
Lembrando que a confiabilidade, independente da técnica avaliada é sempre:

−t

R (t ) = e MTTDL da técnica RAID


114

Técnica MTTDL
RAID
RAID 0 1 MTTFdisco
=
λ .N N
RAID 1
µ MTTFdisco
2
=
2λ2 2MTTRdisco
RAID 3,4,5
µ MTTFdisco
2

(Gibson) =
N ( N + 1)λ2
N ( N + 1) MTTRdisco
RAID 3,4,5 2 Nλ .( Nλ + α + λ / 2 + θ ) + α .(θ + λ ) + θλ
MTTDL =
(por Petri) Nλ2 .( N 2λ + Nθ + Nα + Nλ + θ + α )
RAID µ (3 Nλ + 2µ − 2λ )
MTTDL =
RM2 Nλ3 ( N 2 − 3N + 2)
RAID ( MTTFdisco ) 2
Ortogonal e GN ( N + 1) MTTRdisco
Cadeias 1 + αF
+
independentes 1 + (2 N + 1)ε dd + Nε ds
1 + α F φ / G + (1 + α F / G )(α R / α RD + GNε ds + ( N + 1)φε ss )
αF .
(( N + 1) / MTTFcadeia + (2 N + 1)ε ss + GNε sd )ψ ( N + 1) + ψ ( N )

MTTFdisco MTTRdisco MTTRdisco


onde α F = , αR = , α RD =
MTTFcadeia MTTRcadeia MTTRdisco recup.
MTTRdisco MTTRcadeia
ε dd = , ε ss = ,
MTTFdisco MTTFcadeia
MTTRcadeia MTTRdisco
ε sd = , ε ds =
MTTFdisco MTTFcadeia
1 1 1 1
ψ ( g ) = α RD + GNε dd + gφε ds , φ = + + + ... +
1 2 3 G

Tabela 5.2 – MTTDL das técnicas RAID


115

CAPÍTULO 6 - SIMULAÇÃO

Como uma forma de complementar o estudo do Capítulo 5, um ambiente


parametrizado é proposto para determinar de forma quantitativa a confiabilidade em
função dos diversos parâmetros de entrada do sistema fornecidos pelo usuário.

No Capítulo 5 foram modeladas algumas das técnicas de organização de dados em


matrizes de discos magnéticos descritas no Capítulo 3, utilizando a teoria de análise
de confiabilidade vista no Capítulo 2, bem como os modelos de Markov e Rede de
Petri.

Cada modelo foi equacionado de forma a determinar o tempo médio estimado de


vida do sistema (MTTDL) e a confiabilidade em função do tempo é a mesma
equação para todas as técnicas.

Um ambiente parametrizado de simulação é proposto nesse Capítulo. Esse ambiente,


denominado SimuRAID, possibilita a avaliação quantitativa de arquiteturas RAID
através da geração de gráficos baseados nas equações extraídas do Capítulo 5, sendo
que os parâmetros que determinam o tempo médio de vida da arquitetura RAID são
parâmetros fornecidos pelo usuário.

6.1. O SimuRAID

A figura 6.1 ilustra o esboço do ambiente parametrizado SimuRAID, que é dividido


em dois módulos.

O primeiro módulo explora as arquiteturas que suportam 1 falha de disco, e


independentemente da técnica escolhida ser RAID 1, 3, 4 ou 5, em termos de
confiabilidade, apresentam os mesmos números e por isso, com uma pequena
exceção do RAID 1, não há distinção na abordagem entre essas técnicas. Para o
RAID 1, o N, parâmetro que representa o número de discos sem redundância por
116

grupo de paridade fornecido pelo usuário, deve necessariamente ser igual a 1, e para
os demais RAIDs 3, 4 ou 5, N deve ser igual ou maior que 2.

O segundo módulo abrange arquiteturas que suportam dupla falha simultânea de


disco por grupo de paridade, como a técnica RAID RM2, única arquitetura RAID
com essa funcionalidade descrita e modelada neste trabalho.

Fig. 6.1 – Entradas e Saídas do SimuRAID

Como entrada, em cada módulo são solicitados os parâmetros que determinam o


MTTDL. Os parâmetros solicitados ao usuário são o MTTF dos discos utilizados (em
horas), o tamanho dos discos TD (em Gigabytes), a taxa de reconstrução de disco
durante o processo de reparo (em Gigabytes/hora), o intervalo médio estimado entre
uma falha de disco e sua troca MTTCD (em horas), o número de discos por grupo de
paridade N e o número de grupos de paridade G. Na técnica RAID RM2 N
representa o número total de discos e nas técnicas que suportam a recuperação de 1
falha de disco, N representa o número de discos excluindo o disco de paridade.

Deve ainda ser informado 3 instantes de tempo determinados a partir do tempo


estimado em que o sistema ficará em operação (tn={t1, t2, t3}) e a confiabilidade
mínima esperada (Rmin) quando o sistema atingir esses instantes. Dessa forma pode
ser determinada por exemplo, a confiabilidade estimada da técnica avaliada quando
estiver em operação há 3 anos, 5 anos ou 10 anos.
117

Como saída, o SimuRAID calcula o MTTDL utilizando a respectiva equação do


módulo e apresenta os resultados da confiabilidade do sistema quando atinge os
instantes tn, além do gráfico da confiabilidade em função do tempo de operação do
sistema R(t). Com o gráfico da confiabilidade em função do MTTDL, R(MTTDL), o
usuário pode ainda observar 3 curvas de resposta da confiabilidade, uma para cada
instante tn, com a variação do MTTDL, juntamente com o resultado do MTTDL
mínimo requerido para que o sistema atinja os instantes tn (Mn={M1, M2, M3}) com
a confiabilidade Rmin.

Vários gráficos, apresentando a confiabilidade em função de cada parâmetro são


resultados do SimuRAID que visa ajudar o projetista a sintonizar os parâmetros para
alcançar a confiabilidade desejada do sistema. Para cada parâmetro avaliado, são
traçados 3 gráficos um para cada instante de operação do sistema fornecido pelo
usuário. Em cada gráfico, um dos parâmetros recebe uma variação e o gráfico mostra
o comportamento da confiabilidade em função dessa variação. Os demais parâmetros
são mantidos conforme informado inicialmente pelo usuário. Acompanhado com
cada gráfico, são calculados e fornecidos pelo SimuRAID os valores mínimos do
respectivo parâmetro avaliado para que o sistema atinja tn com a confiabilidade
Rmin. Se forem apresentados valores negativos, significa que não há valores do
parâmetro avaliado juntamente com os inicialmente informados suficientes para
atingir a confiabilidade desejada. Nesse caso outros parâmetros devem ser
sintonizados em conjunto.

O SimuRAID apresenta os gráficos da confiabilidade em função dos seguintes


parâmetros: MTTF dos discos R(MTTF), tamanho dos discos R(TD), taxa de
reconstrução de disco R(TR), intervalo médio estimado entre uma falha de disco e
sua troca R(MTTCD), número de discos por grupo de paridade R(N) e número de
grupos de paridade R(G).

Para exemplificar a funcionalidade desse ambiente, se o usuário pretende deixar o


sistema operante durante 10 anos e estabelece uma confiabilidade mínima desejada
quando o sistema atingir o final de seu tempo de operação, é possível verificar se os
118

parâmetros do sistema são adequados ao projeto. A adequação envolve alterar os


parâmetros do sistema impactando no resultado da confiabilidade, como por exemplo
mudar o MTTF dos discos utilizados (trocando-se os discos por mais confiáveis ou
menos confiáveis) ou ainda mudando-se a técnica de organização da matriz (suporte
para 1 ou 2 falhas de disco).

O SimuRAID não se caracteriza como um simulador completo, mas dá subsídios


para a implementação de um simulador orientado a eventos servindo como uma
ferramenta complementar.

A ferramenta utilizada para implementação e operação do ambiente de simulação é o


MathCad (MATHSOFT, 2002), que é um utilitário fornecido pela Mathsoft que
auxilia em cálculos matemáticos e implementações de gráficos e animações entre
outras funções.

6.2. Aplicação do Simulador

A tabela 6.1 e 6.2 apresentam respectivamente os dados fornecidos pelo usuário e os


resultados obtidos pelo SimuRAID de um estudo de caso.

Parâmetros Fornecidos Pelo Usuário


MTTF 600.000 horas (68,5 anos)
MTTCD 96 horas
TD 100 GigaBytes
TR 0,5 Gigabytes/hora
N 15
G 7
Rmin 0,90
Tn t1=43800 horas (5 anos), t2=87600 (10 anos), t3=175200 horas(20 anos)

Tabela 6.1 – Parâmetros de um estudo de caso no SimuRAID


119

Resultados do SimuRAID
RAID N+1 (1, 3, 4 e 5) RAID RM2
MTTDL 723.938,22 horas 260.748.486,62 horas
t1 t2 t3 t1 t2 t3
R(t) 0,94129 0,88603 0,78505 0,999832 0,999664 0,999328
5 5 6 5 5
MTTDLmin 4,16.10 h 8,31.10 h 1,66. 10 h 4,16.10 h 8,31.10 h 1,66. 106 h
MTTFmin 455.000 h 643.000 h 909.000 h 69.000 h 87.000 h 110.000 h
MTTCDmin 315 h 58 h -71 h 8.212 h 5.524 h 3.738 h
TDmax 210 GB 81 GB 16,5 GB 4.158 GB 2.814 GB 1.921 GB
TRmin 0,24 GB/h 0,62 GB/h 3,04 GB/h 0,013 GB/h 0,018 GB/h 0,027 GB/h
Nmax 19 13 9 123 97 77
Gmax 12 6 3 4390 2195 1097

Tabela 6.2 – Síntese de resultados do SimuRAID para um estudo de caso

Pelo fato do RAID RM2 suportar a correção de duas falhas simultâneas contra uma
da técnica RAID N+1, os resultados do RAID RM2 apresentam números mais
convidativos na tabela 6.2 demonstrando ser a melhor solução. É importante salientar
que esta técnica apresenta uma carga maior de redundância, e conseqüentemente um
maior custo, e também o processo de escrita com dupla paridade, utilizado nessa
arquitetura, afeta drasticamente o desempenho. Se há uma preocupação no projeto
com desempenho e a confiabilidade do RAID N+1 determinada pelos parâmetros do
sistema for adequado, recomenda-se não utilizar o RAID RM2.

A tabela de resultados 6.2, extraída do ambiente SimuRAID, mostra o MTTDL


equivalente de cada técnica de acordo com os parâmetros informados e apresenta a
confiabilidade R(t) quando o sistema atingir os 3 instantes informados, 5, 10 e 20
anos, nas duas técnicas. Observa-se que se for utilizado a técnica RAID N+1, quando
o sistema atingir t2 ou t3, 10 ou 20 anos respectivamente, a confiabilidade ficará
abaixo da confiabilidade mínima desejada Rmin=0,90, ficando em 0,88603 para 5
anos e 0,78505 para 20 anos.
120

Ajustando os parâmetros, o usuário pode melhorar a confiabilidade nesses casos


melhorando os valores informados. Valores limites para cada parâmetro são
sugeridos para ajustar a confiabilidade para o Rmin desejado. Por exemplo, aumentar
o MTTF dos discos utilizados de 600.000 horas para 643.000 horas e mantendo-se os
valores dos demais parâmetros faria com que a confiabilidade em t2 atingisse o
mínimo esperado. Ou ainda aumentar a taxa de recuperação de disco TR de 0,5
GB/hora para 3,04 GB/hora também resolveria o problema da confiabilidade para 20
anos de operação do sistema.

O valor negativo do MTTCDmin para t3 representa que não há valores, mesmo que o
tempo médio de troca de disco seja o mais otimista, ou seja, nulo, para que a
confiabilidade do sistema após 20 anos fique em ou acima do informado Rmin.
Nesse caso, outros parâmetros devem ser ajustados em conjunto com o MTTCD para
adequar a confiabilidade.

Da mesma forma, os parâmetros podem ser “piorados” para adequar-se a realidade


do projeto. Isso pode significar redução de custo, uma vez que a qualidade dos
parâmetros normalmente são diretamente proporcionais ao custo dos componentes do
sistema. Para exemplificar, observa-se que o RAID RM2 apresenta confiabilidades
bem acima do Rmin para qualquer das 3 estimativas de vida informadas, 0,999832
para 5 anos, 0,999664 para 10 anos e 0,999328 para 20 anos. Ao invés de utilizar
discos com MTTF de 600.000 horas, discos com MTTF de 110.000 horas seriam
suficientes para que após 20 anos de operação o sistema apresente a confiabilidade
próxima de Rmin. A utilização de discos menos confiáveis e mais baratos reduz o
custo do projeto sem afetar a confiabilidade esperada.
121

CAPÍTULO 7 - CONCLUSÕES

Os discos rígidos são dispositivos de armazenamento secundário, não volátil, cuja


capacidade de armazenar dados é determinada por sua densidade de área magnética.

A evolução tecnológica da densidade de área de armazenamento na superfície dos


discos possibilitou um aumento considerável de sua capacidade de armazenamento
em comparação a outras alternativas de memórias não voláteis, e como
consequencia, o custo por MegaByte baixou drasticamente e esses dispositivos
tornaram-se de fato um padrão em armazenamento secundário.

O desempenho dos discos rígidos é limitado aos seus componentes mecânicos. A


taxa de transferência dos discos fica limitada aos tempos de posicionamento de
cabeça e rotação dos discos, que dependem de motores, e mesmo com grandes
avanços tecnológicos, ainda são medidos na ordem de milisegundos, muito acima das
memórias principal RAM, que são da ordem de nanosegundos. Uma UCP de 1,5GHz
pode executar mais de 20 milhões de instruções durante um acesso em disco de 15
milisegundos, o que mostra o quanto o desempenho dos discos pode afetar o
desempenho do sistema.

Como tentativa de minimizar o problema de desempenho em discos magnéticos,


surgiram as matrizes de discos. As matrizes de discos introduziram o conceito de
paralelização de instruções de E/S com a utilização de fragmentação de dados em
múltiplos discos. A utilização de matrizes de disco introduziu um novo problema, o
da confiabilidade, que é inversamente proporcional ao número de discos da matriz e
conseqüentemente ao desempenho.

As 5 técnicas de organização em matrizes de discos redundantes introduzidas em


1985 por Patterson, também chamados de níveis RAID, buscaram dar um equilíbrio
ao desempenho, confiabilidade e custo do armazenamento secundário. Outras
técnicas de organização foram propostas por outros autores baseadas nos 5 níveis de
RAID originais de Patterson, e o que se observa é que cada técnica procura suprir
122

limitações de desempenho, confiabilidade e custo de técnicas anteriormente


propostas.

Como em qualquer outro sistema, há um paradigma entre essas 3 características: alto


desempenho em detrimento a confiabilidade; alta confiabilidade em detrimento ao
desempenho e custo; baixo custo em detrimento a confiabilidade.

O desempenho das matrizes RAID é proporcional ao nível de paralelizaçao de


instruções de E/S. Por exemplo, quanto maior o nível de fragmentação de dados ou
maior o número de discos da matriz, maior o desempenho. Dependendo da técnica de
RAID utilizada, instruções de diferentes características são favorecidas em
detrimento a outras quanto ao desempenho. Por exemplo, os RAID de paridade
simples apresentam um bom desempenho em instruções de leitura e escrita quando o
bloco de dados envolvido na operação abrange todos os fragmentos armazenados em
cada disco da matriz. Operações envolvendo blocos menores, que abrangem parte de
um fragmento, não se beneficiam do paralelismo de operação em múltiplos discos e
apresentam baixo desempenho, sendo que no caso das instruções de escrita, podem
apresentar um menor desempenho comparado a um disco isolado. Nos casos de
sistemas onde as operações e E/S são pequenas em sua maioria, o RAID 1 é mais
indicado apresentando um melhor desempenho.

A confiabilidade de uma matriz de discos RAID é associada ao número de falhas


supridas no sistema, como por exemplo, matrizes que recuperam a falha simultânea
de 2 discos são mais confiáveis que matrizes que recuperam apenas 1 falha.
Redundância em outros componentes do sistema, como controladoras de interface,
suprimento de energia e ventilação também aumentam a confiabilidade do
subsistema de E/S.

O custo é associado principalmente a parcela de armazenamento redundante na


matriz, denominada sobretaxa. Quanto maior a sobretaxa de redundância, maior o
custo envolvido uma vez que mais discos são utilizados na matriz.
123

A tabela 7.1 sintetiza os aspectos de confiabilidade, desempenho e custo de cada


técnica. Para cada característica avaliada, cada técnica recebe uma classificação
comparada as demais técnicas. Pequenas leituras e pequenas escritas significam
instruções que abrangem parte ou no máximo 1 fragmento de 1 disco na matriz.
Grandes leituras e grandes escritas representam instruções de E/S que abrangem pelo
menos um bloco de dados completo, ou seja, todos os fragmentos em todos os discos
que compõem um bloco de dados. Nesta comparação, o custo considera 16 discos
por grupo de paridade.

Desempenho
Peq. Peq. Gdes. Gdes. Confiabilidade Custo / Sobretaxa
leituras escritas leituras escritas p/ N≈16
Técnica Class. Class. Class. Class. Class. Recup. Class. %
Falhas sobretaxa
o o o
s/ RAID 2o 1o 9o 9 8 0 1 0
0 2o 2o 1o 1o 9o 0 de N 1o 0
o o o o
1 1o 3o 3 3 3 1 de 2 9 100%
2 4o 4o 7o 4o 4o 1 de N 7o 31-50%
o o o o o o
3 4 4 7 8 4 1 de N 3 6,25%
o o o o o o
4 6 7 4 5 4 1 de N 3 6,25%
o o o o o o
5 6 6 2 2 4 1 de N 3 6,25%
o o o o o o
RM2 6 8 5 6 2 2 de N 6 14,29%
Bi-Dim. 6o 9o 6o 7o 1o 3 de N 8o 66,66%

Tabela 7.1 – Relação Custo x Desempenho x Confiabilidade das técnicas RAID

Os RAIDs 1 e 5 são as técnicas preferidas quando as Empresas fazem seus projetos


em armazenamento de dados (COMPAQ, 1998). Tanto que as soluções por software
encontradas nos sistemas operacionais, como no Red Hat Linux e Microsoft
Windows 2000 Server, exploram apenas essas 2 técnicas RAID e não há disponível
nas atuais versões as demais técnicas (RED HAT, 2002; MICROSOFT, 2002).
124

A tabela 7.1 aponta o RAID 1 e o RAID 5 como sendo as técnicas de melhor relação
custo x desempenho x confiabilidade. O RAID 1 é mais indicado se o custo com
redundância 100% é tolerável no projeto, caso contrário, o RAID 5 é mais indicado.

Antes da escolha da melhor técnica, é preciso avaliar qual a característica do sistema


para poder determinar a técnica mais adequada. Se o sistema caracterizar-se por
operações de leitura grandes em sua maioria, como por exemplo servidores de áudio
e vídeo, recomenda-se utilizar o RAID 5 ou combinar o RAID 1 ao RAID 0 (RAID
0+1) para melhorar o desempenho. Se o sistema apresenta características inversas,
como E/S pequenas em sua maioria, o RAID 1 é mais indicado.

Se aumentar a confiabilidade dos dados em detrimento ao desempenho e custo é


preferível, técnicas que possibilitam a recuperação de múltiplas falhas de discos
como o RM2 e as matrizes bi-dimensionais são as mais recomendadas.

7.1. Contribuições

A seguir são citadas as contribuições deste trabalho.

No item 4.2.2 onde é descrito o RAID bi-dimensional há uma dedução da sobretaxa


envolvida na matriz em função do número de linhas L e colunas C da matriz não
redundante que complementa a referência. O equacionamento da sobretaxa em
matrizes bi-dimencsionais resulta em:

L+C
Sobretaxa % = .100 | L > 1 e C > 1
L.C

Como proposta para aumentar ainda mais a confiabilidade dessa organização de


matrizes, um disco adicional de paridade é proposto correspondendo a paridade dos
discos de paridade das linhas e colunas, e dessa forma, é mostrado que qualquer
tripla falha de disco é possível ser recuperada nesse método de RAID.
125

Considerações adicionais que caracterizam o processo de reparo foram as


contribuições do item 5.1.2. A influência da taxa de erros de bit dos discos na
reconstrução de discos falhos pode ser calculada através do cálculo da não-
confiabilidade do processo, e este por sua vez é determinado pela estimativa de
utilização diária do disco, da própria taxa de erro de leitura de bit e o tempo estimado
para reconstrução de matriz após a troca de um disco.

No mesmo item, a divisão do tempo estimado de reparo MTTR, cujo comportamento


obedece a uma distribuição exponencial no estudo de Gibson, é proposto como sendo
2 processos cujos tempos médio estimados também são caracterizados como sendo
distribuições exponenciais. Esses 2 processos são o tempo para troca do disco e o
tempo para reconstrução do disco. O tempo para troca do disco é denominado
MTTCD (Mean Time to Change Disk) e o tempo de reconstrução é função de dois
parâmetros, o tamanho dos discos usado na matriz dado em GigaBytes, chamado de
TD e a taxa de reconstrução, dada em GigaBytes/hora, denominada TR. Apesar de
parecer uma constante, o tempo de reconstrução é apenas estimado em sendo TD/TR,
mas depende de outras características como carga de máquina, instruções de E/S de
usuários concorrendo com a reconstrução da matriz, entre outros, que levam o tempo
resultante desse processo a ser considerado uma distribuição exponencial.

Dessa forma, uma nova avaliação da confiabilidade dos RAIDs 3, 4 e 5 é proposta no


item 5.5 em confronto a de Gibson do item 5.2. Nessa avaliação é utilizada uma
Rede de Petri, que após a avaliação do Modelo de Markov equivalente, resultou no
MTTDL de:

2 Nλ.( Nλ + α + λ / 2 + θ ) + α .(θ + λ ) + θλ
MTTDL =
Nλ2 .( N 2λ + Nθ + Nα + Nλ + θ + α )

onde N é o número de discos sem o de paridade, λ=1/MTTFdisco, α=1/MTTCD e


θ=TR/TD.
126

Baseado na resolução de Gibson do item 5.2, como contribuição são avaliados os


RAIDs 1 (espelhamento) e RM2 (que suporta dupla falha de discos) nos itens 5.3 e
5.4 respectivamente.

O MTTDL resultante do equacionamento nas avaliações de confiabilidade de cada


uma dessas técnicas é:
2
MTTFdisco
MTTDLRAID1 =
2MTTRdisco

µ (3Nλ + 2µ − 2λ )
MTTDLRAID RM 2 =
Nλ3 ( N 2 − 3N + 2)

O ambiente parametrizado proposto no Capítulo 6 e demonstrado no Anexo A,


denominado SimuRAID, avalia de forma quantitativa a confiabilidade das técnicas
RAID em função dos diversos parâmetros de entrada do sistema fornecidos pelo
usuário.

A confiabilidade da arquitetura RAID, independentemente da técnica utilizada, é


diretamente proporcional aos parâmetros MTTF e TR e inversamente proporcional
aos parâmetros N, G, TD e MTTCD, como pode ser observado na utilização do
SimuRAID.

O SimuRAID não representa um simulador completo, mas dá subsídios para a


implementação de um simulador orientado a eventos e pode ser utilizado como uma
ferramenta na elaboração de projetos em armazenamento secundário. Baseado no
tempo estimado de vida do sistema e da confiabilidade que se deseja quando o
sistema atingir esse tempo de vida, o projetista pode determinar valores apropriados
para o número de grupos de paridade e discos por grupo de paridade, o MTTF,
tamanho e taxa de reconstrução dos discos e o tempo estimado de troca de disco após
a ocorrência de uma falha.
127

Este ambiente pode ainda ajudar na escolha da técnica mais apropriada de acordo
com a confiabilidade esperada; utilizar os RAIDs 1,3,4 e 5, que suportam
recuperação de 1 falha de disco, ou RM2, que suporta a recuperação de duas falhas
simultâneas de disco.

7.2. Trabalhos Futuros

Como propostas para trabalhos futuros, dando continuidade ao ambiente


parametrizado proposto, o SimuRAID, os modelos aqui desenvolvidos e avaliados
dos RAIDs Ortogonal considerando falhas de sistema e N+1 modelado por Rede de
Petri poderão ser incluídos como novas opções de técnicas RAID do ambiente.

O ambiente pode também em um estudo futuro prever os aspectos de desempenho e


custo/sobretaxa, possibilitando o ajuste dessas características através da comparação
entre técnicas RAID e valores de parâmetros envolvidos.

Outras arquiteturas RAID que não foram abordadas neste trabalho poderão ser
modeladas para avaliação de confiabilidade. Dentre as técnicas aqui apenas descritas
e não avaliadas, podem ser exploradas as arquiteturas RAID 2, que utiliza código de
Hamming, o RAID bi-dimensional, que suporta 3 ou mais falhas dependendo da
localização dos discos falhos na matriz e os RAIDs em camada, como os RAIDs 0+1
e o 0+3. Essas arquiteturas poderão ser previstas também no ambiente SimuRAID ou
seu predecessor.

Algumas considerações referentes a implementações de RAID por software poderão


ser exploradas em um trabalho futuro. A avaliação de confiabilidade que envolve
software deve considerar outros aspectos que não foram previstos neste trabalho.
128

REFERÊNCIAS BIBLIOGRÁFICAS

ADAPTEC. I/O Technology Comparison. Site Corporativo da Adaptec, 2001.


Disponível em
<http://www.adaptec.com/worldwide/product/markeditorial.html?prodkey=io_comp
arison>. Acesso em 13 Dez 2002.

ADAPTEC. Software RAID vs. Hardware RAID. Site Corporativo da Adaptec,


2002. Disponível em
<http://www.adaptec.com/worldwide/product/markeditorial.html?prodkey=raid_soft
_v_hard>. Acesso em 14 nov 2002.

AKOM Technology Corporation. Integrate Hardware and Software RAID. Site


Corporativo, 2003. Disponível em:
<http://www.akom.com/htm/RAID%20Features6.htm>. Acesso em: 19/1/2003.

ARCO Data Protection Systems. The Impact of Data Loss. Hollywood, Florida.
2001. Disponível em <www.arcoide.com/products/pdf/datarecovery.pdf>. Acesso
em 12 fev 2002.

BLAUM, Mario et al. EVENODD: An Efficient Scheme for Tolerating Double


Disk Failures in RAID Architectures. IEEE Transactions on Computers, fevereiro
de 1995.

CAMARGO, João Batista. Metodologia de Análise de Risco em Sistemas


Computacionais de Aplicação Crítica. Tese Livre Docência pela Escola
Politécnica da Universidade de São Paulo, 2002. p. 145-146.

CARDENAS, D. Glen; CATENA, Jose-Maria. SCSI vs. IDE. A Complete


Assessment. Site ProRec.com, 2000. Disponível em
<http://www.prorec.com/prorec/articles.nsf/articles/1A37C1C69674D6D786256950
005D2C39>. Acesso em 13 dez 2002.
129

CWRU - Case Western Reserve University. Protection of Information Assets. Site


Internet, 1997. Disponível em
<http://mvs-tcp4.cwru.edu/CWRUbackup/protect.htm>. Acesso em 28 fev. 2000.

CHEN, Peter M., GIBSON, Garth, KATZ, Randy H., PATTERSON, David. An
Evaluation of Redundant Arrays of Disks Using an Amdahl 5890. Proceedings of
the 1990 ACM Sigmetrics Conference on Measurement and Modeling of Computer
Systems. Maio de 1990.

CHEN, Shenze. A Performance Evaluation of RAID Architectures. IEEE


Transactions on Computers, V. 45, N. 10. Outubro de 1996.

CHEN, Qiong. EIDE Disk Arrays and Its Implement. Turku, Finlândia: Turku
Center for Computer Science, ABO Akademi University, 2001. Disponível em
<http://www.tucs.fi/Publications/techreports/TR426.pdf>. Acesso em 14 maio 2002.

CLARK, Tom. Designing Storage Area Networks. A Practical Reference for


Implementing Fibre Channel SANs. Addison- Wesley. 1999.

COMPAQ. System Technologies Student Guide. Compaq Computer Brasil: IPT


Instituto de Pesquisas Tecnológicas. Março de 1998.

COURTRIGHT, William V. A Transactional Approach to Redundant Disk


Array Implementation. A Dissertation submitted to the Department of Electrical
and Computer Engineering in Partial Fulfillment of the Requirements for the Degree
of Doctor of Philosophy. Pittsburgh: Carnegie Mellon University. Maio de 1997.

DOMINGUEZ, Ricardo; COLLIGAN, Tom. SCSI vs. ATA: Interface


Comparison. Site da Dell Computer Corporation: Vectors Technology Information
Center, 1999. Disponível em <http://www.dell.com/us/en/gen/topics/vectors_1999-
atascsi.htm>. Acesso em 8 ago 2002.
130

FACULDADE ESTÁCIO DE SÁ. Dispositivos de Armazenamento de Dados.


Disciplina de Microcomputadores, Site da Faculdade, Campo Grande, MS, 2000.
Disponível em <www.fes.br/ftp/tpd/mic/Aposc7p1s.pdf>. Acesso em 14 Dez 2002.

FENG, Dan; ZHOU, Xinrong; JIN, Hai; ZHANG, Jiangling. Utilization of Disk
Drives for RAID. IEEE Advances in Parallel and Distributed Computing, P. R.
China, 1997.

FERREIRA, Enderson. RAID – Redundant Array of Inexpensive Disks.


Monografia da Disciplina Confiabilidade e Segurança de Sistemas do curso de Pós
Graduação do Dep. de Eng. Computação da Escola Politécnica da Universidade de
São Paulo. 1999

GIBSON, Garth A. Redundant Disk Arrays - Reliable, Parallel Secondary


Storage. The MIT Press. 1991.

GIBSON, Garth, PATTERSON David. Designing Disk Arrays for High Data
Reliability. Carnegie Mellon University. 1992.

GILBERT, H. IDE and SCSI Disks. Das Boot, PC Lube and Tune, 1995.
Disponível em <http://www.yale.edu/pclt/BOOT/DISKDEV.HTM>. Acesso em 16
jan 2003.

HASSAN, Jeff e HUMMEL, Kristi. A Study of the RAID Architecture for Fault
Tolerance and Performance. Illinois University. Dezembro de 2001.

HELLERSTEIN et al. Coding Techniques for Handling Failures in Large Disk


Arrays. Third International Conference on Architectural Support for Programmin
Languages and Operating Systems (ASPLOS III). Boston. Março de 1989.
131

HOLLAND, Mark, GIBSON, Garth A., SIEWIORECK, Daniel P. Fast, On-Line


Failure Recovery in Redundant Disk Arrays. Proccedings of the 23rd Annual
International Symposium on Fault-Toleran Computing. Pittsburgh: Carnegie Mellon
University. 1993.

HOWE, Denis. The Free Online Dictionary of Computing. Londres: Imperial


College, 1999. Disponível em <http://foldoc.doc.ic.ac.uk>. Acesso em 16 jan 2003.

HWANG, Kai; JIN, Hai; HO, Roy. RAID-x: A New Distributed Disk Array for
I/O-Centric Cluster Computing. IEEE Proceedings of High-Performance
Distributed Computing. The 19th International Simposium, 2000.

HWANG, Kai; JIN, Hai; HO, Roy S. C. Orthogonal Striping and Mirroring in
Distributed RAID for I/O-Centric Cluster Computing. IEEE Transactions on
Parallel and Distributed Systems, Janeiro de 2002.

IBM. Especificações Técnicas Storage. Site da IBM Corporation na Internet


<http://www.storage.ibm.com/hdd/index.htm>. 2002.

IBM. Self-Monitoring, Analysis and Reporting Technology. How S.M.A.R.T are


your hard disk drives? Site da IBM: IBM Personal Systems Group, 1998.
Disponível em <http://www.pc.ibm.com/us/infobrf/ibsmart.html>. Acesso em 12 dez
2002.

JAIN, Raj. The Art of Computer Systems Performance Analysis. Techniques for
Experimental Design, Measurement, Simulation, and Modeling. New York, EUA:
John Wiley & Sons, Inc., 1991. p.488-489.

JIN, Hai; HWANG, Kai; ZHANG, Jiangling. A RAID Reconfiguration Scheme for
Gracefully Degraded Operations. IEEE Proceedings of the 17th Parallel and
Distributed Processing, 1999.
132

JIN, Hai, HWANG, Kai. Stripped Mirroring RAID Architecture. Journal of


Systems Architecture 46. 2000.

JOHNSON, Barry W. Design and Analysis of Fault-Tolerant Digital Systems.


Pags. 1 a 44; 169 a 185; 186 a 199; 200 a 226. Addison-Wesley. 1989.

KECECIOGLU, Dimitri. Reliability Engineering Handbook. Vol. 2. Pags. 207 a


247. Prentice Hall. 1991.

KRINGS, A. W. Fault Tolerant Systems Lecture. University of Idaho, Department


of Computer Science, 1999. Disponível em
<www.cs.uidaho.edu/~krings/CS449/Notes.S01/2k449-33.pdf >. Acesso em 20 jan
2001.

LEE, Nam-Kyu et al. High Performance RAID system by using Dual Head Disk
Structure. IEEE High Performance Computing on the Information Super Highway,
MPC Asia, 1997.

KIM, Jong Hoon; NOH, Sam H.; WOH, Yoo-Hun. An Efficient Caching Scheme
for Software RAID File Systems in Workstation Clusters. IEEE High
Performance Computing on the Information Super Highway. HPC, Asia, 1997.

KOZIEROK, Charles M. Self-Monitoring Analysis and Reporting Technoloty


(SMART). Versão 2.2.0. Site The PC Guide, Abril de 2001. Disponível em
<http://pcguide.com/ref/hdd/perf/qual/featuresSMART-c.html. Acesso em 14 jan
2003.

LEAL, Aquilino R.. Uma Rápida Abordagem do Código de Hamming. Revista


Saber Eletrônica N. 330. Julho de 2000.
133

LEVESON, Nancy G. e STOLZY, Janice L. Safety Analysis Using Petri Nets.


IEEE Transaction on Software Engineering - V. 13, N. 3. Pags. 386 a 397. Março de
1987.

LEVESON, Nancy G. Safeware: System Safety and Computers. Pags. 287 a 393.
Addison-Wesley. 1995.

LLOYD, Owain D. Constant Transfer Rate RAID Striping for QoS. Goinville &
Caius College. 2002.

LOBATO, Daniel Corrêa. Proposta de um Ambiente de Simulação e


Aprendizado Inteligente para RAID. Dissertação apresentada ao Instituto de
Ciências Matemáticas e de Computação ICMC-USP. Abril de 2000.

MASON, Harry. SCSI, the Industry Workhorse, Is Still Working Hard. SCSI
Trade Association. IEEE Standards, Dezembro de 2002.

MCKENDRICK, David G. et al. From Silicon Valley to Singapore. Standford,


California, EUA: Standford University Press., 2000. p. 17-34.

MENON, Jai; RIEGEL, Jeff; WYLLIE, Jim. Algorithms for Software and Low-
cost Hardware RAIDs. IEEE Technologies for the Information Super Highway,
1995.

MATHSOFT. Mathcad 2000 Professional for Windows . 2002.

MICROSOFT Corporation. Optimizing Database Performance. RAID. MSDN


Library, 2003. Disponível em
<http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/optimsql/odp_tunovw_9mxz.asp>. Acesso em 19 jan 2003.
134

MIU, Danny K.; TAI, Yu-Chong. Silicon Microstructure and Microactuators for
Compact Computer Disk Drives. IEEE Fourteenth Symposium on Mass Storage
Systems, 1995.

MORE, Sachin Suresh. High Performance I/O Techniques for Parallel Object-
Relational Databases. Northwestern University. Dezembro de 2000.

MORIMOTO, Carlos E. Discos Rígidos: Desempenho x Capacidade. Site


GuiadoHardware.net, 2002. Disponível em
<http://www.guiadohardware.net/analises/hds/hds.asp>. Acesso em 13 Dez. 2002.

PARK, Chen-lk. Efficient Placement of Parity and Data to Tolerate Two Disk
Failures in Disk Array Systems. IEEE Transactions on Parallel and Distributed
Systems, v.6, n.11. Novembro de 1995.

PARK, Chen-lk, CHOE, Tae-Young. Striping in Disk Array RM2 Enabling the
Tolerance of Double Disk Failures. Pohang, Korea: Department of Computer
Science and Engineering/PIRL. 1996.

PATTERSON, David A., CHEN, Peter, GIBSON, Garth, KATZ, Randy H.


Introduction to Redundant Arrays of Inexpensive Disks (RAID). Berkeley:
University of California. 1989.

PATTERSON, David A.; HENNESSY, John L. Computer Architecture a


Quantitative Approach. 2.ed. San Francisco, EUA: Morgan Kaufmann Publishers,
Inc, 1996.

REDHAT. Hardware RAID versus Software RAID. Manual Online do Red Hat
Linux, 2002. Disponível em <http://www.redhat.com/docs/manuals/linux/RHL-7.3-
Manual/custom-guide/s1-raid-approaches.html>. Acesso em 19 jan 2003.
135

RISLEY, David. ST-506/412 & ESDI Interface. HardwareCentral Tutorials Site,


2002. Disponível em <http://hardwarecentral.com/hardwarecentral/tutorials/40/1>.
Acesso em 16 jan 2003.

RITTER, Terry. The Great CRC Mystery. Dr. Dobb’s Journal of Software Tools,
1986. Disponível em <http://www.ciphersbyritter.com/ARTS/CRCMYST.HTM>.
Acesso em 23 jul 2002.

SCHULZE, Martin, GIBSON, Garth, KATZ, Randy, PATTERSON, David. How


Reliable is a RAID? . Berkeley: University of California. 1989.

SEAGATE. Especificações Técnicas HDs. Site da Seagate Technology LLC


<http://www.seagate.com/cda/products/discsales/index>. 2002

SIERRA, Hugh M. An Introduction to Direct Access Storage Devices. Londres,


Inglaterra: Academic Press Limited, 1990.

SIEWIOREK, Daniel P. e SWARZ, Robert S. The Theory and Practice of Reliable


Systems Design. Pags. 3 a 16; 201 a 211; 212 a 217; 234 a 235; 255 a 269; 275 a
280. Digital Press. 1982.

SPENCER, W. Ng. Advances in Disk Technology: Performance Issues. IBM


Almaden Research Center. IEEE Research Feature, Março de 1998.

TANEMBAUM, Andrew S. Structured Computer Organization. 3a ed. New


Jersey, EUA: Prentice-Hall PTR, 1990.

TANEMBAUM, Andrew S. Computer Networks. 3ed. New Jersey, EUA: Prentice-


Hall PTR, 1996. p.183-190.

TONG, Sheau-Ru et al. Study on Disk Zonning for Video Servers. IEEE
International Conference on Multimedia Computing and Systems, 1998. p. 86-95.
136

UMEA University. SCSI & IDE. Overview and Comparison. Umeå University,
Northern Sweden, 2002. Disponível em: <http://www.acc.umu.se/~sagge/scsi_ide/>.
Acesso em 10 nov 2002.

UNIVERSIDADE DE SÃO PAULO. Escola Polítecnica. Serviço de Bibliotecas.


Diretrizes para Apresentação de Dissertações e Teses. 2.ed. São Paulo, 2001.

WADLEIGH, Jay. Online Documentation for RAID levels. Julho de 1999.


Disponível em <http://cronos.rutgers.edu/~jayw/docs/raid.html>. Acesso em 15 nov.
1999.

WESTERGREN, Markus; SANDGREN, Mattias. SCSI & IDE. Overview &


Comparison. Suécia: Umea University, 1998. Disponível em
<http://www.acc.umu.se/~sagge/scsi ide>. Acesso em 13 dez 2002.

ZABBACK, Peter; MENON, Jain; RIEGEL, Jeff. The RAID Configuration Tool.
IEEE 3° International Conference on High Performance Computing, 1996.
137

ANEXO A – APRESENTAÇÃO DO SIMURAID

A seguir são apresentadas as telas do ambiente parâmetrizado SimuRAID, com os resultados


numéricos e gráficos do estudo de caso discutido no item 6.2.

SimuRAID
Entre com 3 instantes relevantes de operação do sistema
(em horas de funcionamento), t1<t2<t3

t1 := 43800 t2 := 87600 t3 := 175200

Entre com a confiabilidade mínima esperada quando


o sistema atingir tn, 0.1<Rmin<0.99

Rmin := 0.90

Confiabilidade em Função do MTTDL

Mn é o MTTDL min. requerido para que o sistema atinja tn com confiabilidade Rmin

5 5 6
M1 = 4.16 × 10 M2 = 8.31 × 10 M3 = 1.66 × 10

0.9

0.8

0.7

R1 ( MTTDL ) 0.6

R2 ( MTTDL ) 0.5

R3 ( MTTDL ) 0.4

0.3

0.2

0.1

0
4.25 .10 8.39 .10 1.25 .10
4 4 5
1.67 .10 2.08 .10 2.5 .10
5 5 5
2.91 .10 3.33 .10 3.74 .10 4.16 .10
5 5 5 5
1000
MTTDL
138

RAID 1, 3, 4 e 5

Entre com os parâmetros do Sistema:


MTTF= tempo médio de falha individual dos discos (horas),
N= qtde. de discos s/ paridade, N >=2 p/ RAID 3, 4 e 5 e N=1 p/ RAID 1
TD= Tamanho do disco (GB), TR= Taxa Reconstrução (GB/hora)
MTTCD= Tempo médio para troca de disco falho (horas)
G= Número de Grupos de Paridade (1 se não serão avaliados múltiplos Grupos)

MTTF := 600000 N := 15 TD := 100 TR := 0.5 MTTCD := 96 G := 7

MTTDL

MTTDL = 723938.22

Rn(MTTDL)
Rn(MTTDL) é a confiabilidade da matriz quando atingir tn

R1( MTTDL) = 0.94129 R2( MTTDL) = 0.88603 R3( MTTDL) = 0.78505

R(t)

0.9

0.8

0.7

0.6

R( t) 0.5

0.4

0.3

0.2

0.1

0
5 5 6 6 6 6 6 6 6 6
0 3.33 .10 6.67 .10 1 .10 1.33 .10 1.67 .10 2 .10 2.33 .10 2.67 .10 3 .10 3.33 .10
t
139

R(MTTF)

MTTFn é o MTTF requerido para que o sistema atinja tn com confiabilidade Rmin

MTTF1 = 454672.42

MTTF2 = 643003.9

MTTF3 = 909344.83

0.9

0.8

0.7
R1 ( MTTF ) 0.6

R2 ( MTTF ) 0.5

R3 ( MTTF ) 0.4

0.3

0.2

0.1

0
5 5 5 5 5 5 5 5 5 6
0 1 .10 2 .10 3 .10 4 .10 5 .10 6 .10 7 .10 8 .10 9 .10 1 .10
MTTF

R(MTTCD)
MTTCDn é o MTTCD maxrequerido para que o sistema atinja tn com confiabilidade Rmin

MTTCD1 = 315.46

MTTCD2 = 57.73

MTTCD3 = −71.13

0.9

0.8

0.7

R1 ( MTTCD ) 0.6

R2 ( MTTCD ) 0.5

R3 ( MTTCD )
0.4

0.3

0.2

0.1

0
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
MTTCD
140

R(TD)
TDn é o TD max. requerido para que o sistema atinja tn com confiabilidade Rmin

TD1 = 209.73

TD2 = 80.87

TD3 = 16.43

0.9

0.8

0.7

R1 ( TD ) 0.6

R2 ( TD ) 0.5

R3 ( TD )
0.4

0.3

0.2

0.1

0
0 200 400 600 800 1000 1200 1400 1600 1800 2000
TD

R(TR)
TRn é o TR min. requerido para que o sistema atinja tn com confiabilidade Rmin

TR1 = 0.24

TR2 = 0.62

TR3 = 3.04

0.9

0.8

0.7

R1 ( TR ) 0.6

R2 ( TR ) 0.5

R3 ( TR )
0.4

0.3

0.2

0.1

0
0 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4 2.7 3
TR
141

R(N)
Nn é o N max. requerido para que o sistema atinja tn com confiabilidade Rmin

N1 = 19.95

N2 = 13.96

N3 = 9.73

0.9

0.8

0.7

R1( N) 0.6

R2( N) 0.5

R3( N)
0.4

0.3

0.2

0.1

0
0 20 40 60 80 100 120 140 160 180 200
N

R(G)
Gn é o G max. requerido para que o sistema atinja tn com confiabilidade Rmin

G1 = 12.19

G2 = 6.09

G3 = 3.05

0.9

0.8

0.7

R1 ( G) 0.6

R2 ( G) 0.5

R3 ( G)
0.4

0.3

0.2

0.1

0
0 20 40 60 80 100 120 140 160 180 200
G
142

RAID RM2

Entre com os parâmetros do Sistema:


MTTF= tempo médio de falha individual dos discos (horas),
N= qtde. total de discos, N >=4
TD= Tamanho do disco (GB), TR= Taxa Reconstrução (GB/hora)
MTTCD= Tempo médio para troca de disco falho (horas)
G= Número de Grupos de Paridade (1 se não serão avaliados múltiplos Grupos)

MTTF := 600000 N := 15 TD := 100 TR := 0.5 MTTCD := 96 G := 7

MTTDL

MTTDL = 260748486.62

Rn(MTTDL)
Rn(MTTDL) é a confiabilidade da matriz quando atingir tn

R1( MTTDL) = 0.999832 R2( MTTDL) = 0.999664 R3( MTTDL) = 0.999328

R(t)

0.9

0.8

0.7

0.6

R ( t) 0.5

0.4

0.3

0.2

0.1

0
8 8 8 8 8 8 8 8 9 9
0 1.2 .10 2.4 .10 3.6 .10 4.8 .10 6 .10 7.2 .10 8.41 .10 9.61 .10 1.08 .10 1.2 .10
t
143

R(MTTF)

0.9

0.8

0.7
R1( MTTF ) 0.6

R2( MTTF ) 0.5

R3( MTTF ) 0.4

0.3

0.2

0.1

0
4 5 5 5 5 5 5 5 5 5
0 5 .10 1 .10 1.5 .10 2 .10 2.5 .10 3 .10 3.5 .10 4 .10 4.5 .10 5 .10
MTTF

R(MTTCD)

0.9

0.8

0.7

R1 ( MTTCD ) 0.6

R2 ( MTTCD ) 0.5

R3 ( MTTCD )
0.4

0.3

0.2

0.1

0
4
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 1 .10
MTTCD
144

R(TD)
1

0.9

0.8

0.7

R1( TD ) 0.6

R2( TD ) 0.5

R3( TD )
0.4

0.3

0.2

0.1

0
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
TD

R(TR)

0.9

0.8

0.7

R1( TR ) 0.6

R2( TR ) 0.5

R3( TR )
0.4

0.3

0.2

0.1

0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
TR
145

R(N)

0.9

0.8

0.7

R1 ( N) 0.6

R2 ( N) 0.5

R3 ( N)
0.4

0.3

0.2

0.1

0
0 20 40 60 80 100 120 140 160 180 200
N

R(G)
1

0.9

0.8

0.7

R1 ( G) 0.6

R2 ( G) 0.5

R3 ( G)
0.4

0.3

0.2

0.1

0
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
G

Vous aimerez peut-être aussi