[Artigo] HDs: Performance e RAID | ZWAME Fórum
[Artigo] HDs: Performance e RAID
Discussão em 'Dúvidas e Suporte Técnico PC' iniciada por Kayak, 16 de Abril de 2007. (Respostas: 1; Visualizações: 1697)
O desempenho do HD é determinado basicamente pela densidade dos discos, velocidade de rotação e, em menor grau, pelo tamanho do cache de leitura e suporte ao NCQ. Por ser um componente mecânico, não existe muito o que os fabricantes possam fazer para melhorar o desempenho de forma considerável sem mexer nestes fatores.
Outra questão é que o mercado de HDs é um ramo incrivelmente competitivo, de forma que tecnologias revolucionárias, como, por exemplo, a técnica de gravação perpendicular são rapidamente adotadas por todos os fabricantes já que, os que não são capazes de acompanhar a evolução tecnológica, simplesmente não conseguem se manter no mercado.
Em se tratando de HDs "normais", destinados ao mercado de consumo, dois HDs produzidos na mesma época, com a mesma velocidade de rotação e amesma quantidade de cache tendem a possuir um desempenho muito parecido.
Na hora da compra você deve ser preocupar mais em não levar para casa HDs antigos, baseados em tecnologias obsoletas que por algum motivo tenham ficado parados no estoque dos distribuidores. Um HD de 120 GB produzido em 2007, muito provavelmente possuirá um único platter e será mais rápido que um HD produzido um ano atrás, com a mesma capacidade, mas que utilize dois platers, mesmo que ambos sejam de 7200 RPM e sejam vendidos por mais ou menos o mesmo preço.
Existem ainda casos de HDs "premium", que utilizam tecnologias recentemente introduzidas ou mudanças radicais no design e desta forma conseguem ficar um passo à frente em termos de desempenho. Eles naturalmente ficam no topo das tabelas comparativas, mas em geral não são uma boa opção de compra fora de nichos muito específicos, pois sempre possuem um custo por megabyte muito mais alto.
Um bom exemplo são os Maxtor Atlas 15K II, uma série de HDs SCSI que até 2006 estavam entre os mais rápidos do mercado, em detrimento da capacidade de armazenamento.
Como você pode ver na foto abaixo, embora o Atlas 15K II fosse um HD de 3.5", internamente ele utilizava discos de 2.5", similares aos usados em notebooks. O menor diâmetro dos discos reduz a capacidade de armazenamento, mas permitiu que os discos girassem a 15.000 RPM. O menor diâmetro também permitiu reduzir o tempo de acesso (já que a distância a ser percorrida pelas cabeças de leitura era menor) o que, combinado com outras melhorias, resultou num HD Ultra 320 SCSI com tempo de acesso de apenas 5.5 ms e taxa de leitura seqüencial (nas trilhas externas) de 98 MB/s:
O problema é que além de caro, a capacidade de armazenamento era pequena, mesmo para os padrões da época. O modelo com 1 platter armazenava apenas 37 GB, enquanto o modelo com 4 armazenava 147 GB. Ou seja, você pagaria até US$ 1.000 para ter uma capacidade equivalente à de um HD low-end.
De uma forma geral, o melhor em termos de custo benefício é comprar HDs de geração atual, escolhendo entre os modelos de baixo custo e substituir o HD a cada 18 ou 24 meses, se possível revendendo o antigo (por algum motivo os HDs costumam ser um ítem valorizado no mercado de componentes usados, talvez por que todo mundo sempre precisa de mais espaço . Desta forma, você vai conseguir sempre manter o seu equipamento relativamente atualizado, gastando pouco.
Acaba sendo muito melhor do que gastar o dobro, tentando comprar "o melhor HD", que vai estar desatualizado da mesma forma daqui a dois anos. Tenha em mente que a vida útil de qualquer equipamento é limitada, então só vale à pena gastar mais se o ganho de desempenho realmente for lhe trazer um retorno tangível ao longo deste período.
Num servidor, o investimento em HDs topo de linha pode compensar em muitos casos, já que um melhor desempenho equivale a mais requisições e, consequentemente, mais clientes atendidos. A perda acumulada de algumas visitas, ao longo de alguns anos, poderia corresponder a um prejuízo equivalente várias vezes o valor investido nos HDs, por exemplo.
Mas, tenha em mente que o perfil de uso de disco em um servidor é bem diferente do uso em um desktop típico, sem contar que, dada a sua importância, pequenos ganhos de desempenho podem realmente compensar pequenas extravagâncias, o que não é o caso de um desktop típico.
Por mais que você mantenha vários programas abertos e realize muitas operações ao mesmo tempo, não vai conseguir chegar nem perto do que acontece num servidor web, por exemplo, que precisa responder a um grande volume de requisições simultâneas a cada segundo.
Num servidor típico, são realizadas um enorme número de pequenas leituras, que são usadas para montar as páginas ou arquivos que serão enviados aos clientes. Um fórum com um grande número de mensagens, pode facilmente resultar num banco de dados de 10 ou mesmo 20 GB, contendo uma infinidade de pequenas mensagens de texto e ter 300 ou 500 visitantes simultâneos.
Para cada página a ser exibida, o servidor precisa ler várias entradas dentro do banco de dados (o tópico propriamente dito, informações sobre os usuários e assim por diante). Mesmo com o uso de caches, não é difícil imaginar que tantas requisições simultâneas levam o desempenho dos HDs ao limite. Neste cenário, qualquer redução no tempo de acesso representa um grande ganho de desempenho.
Num desktop, o HD acaba sendo mais relacionado ao tempo de boot e carregamento dos programas, por isso a taxa de transferência acaba sendo o ítem mais importante. A única operação que se aproxima um pouco do que acontece nos servidores é o uso intensivo de swap, onde o HD também precisa realizar um grande número de pequenas leituras. Entretanto, nestes casos o problema não seria o HD, mas sim a falta de memória RAM. O único swap bom é o swap que não é feito .
Em casos onde você realmente faz questão do melhor desempenho, normalmente faz mais sentido usar 2 ou 4 HDs medianos em RAID 0 do que comprar um único HD topo de linha. Considere também a compra mais de mais memória RAM (já que mais memória significa menor uso de swap e mais cache de disco) e também o uso o ReadyBoost do Vista em conjunto com um Pendrive de 2 GB ou mais. Para a maioria das tarefas, o ganho de desempenho é maior do que o uso de um HD mais rápido.
Existem ainda casos onde o desempenho simplesmente não é um fator importante, como por exemplo no caso de HDs secundários, usados apenas para guardar arquivos ou fazer backup, onde você acessa os dados apenas esporadicamente. Nestes casos, o melhor negócio é simplesmente procurar os HDs com o menor custo por megabyte, dentro da capacidade de que você precisa e escolher um baseado na reputação do fabricante. Em casos como este, um HD mais lento, de 5400 RPM pode ser até desejável, já que eles consomem menos energia e geram menos calor que os de 7200 RPM.
De qualquer forma, é importante entender os fatores que determinam o desempenho dos HDs, de forma a não ser enganado pelas frases floridas usadas pelos fabricantes e não fazer feio nas rodas de amigos .
Tempo de Busca (Seek Time)
Ao comparar dois HDs fabricados na mesma época, que utilizam a mesma velocidade de rotação e possuem uma capacidade e número de discos similar (o que indica que possuem mais ou menos a mesma densidade), o tempo de busca é provavelmente o único fator que pode diferir de forma significativa entre os dois.
O tempo de busca indica o tempo que a cabeça de leitura demora para ir de uma trilha à outra do disco ou seja, indica a performance do actuator usado no HD. O tempo de busca é importante, pois ele é o fator que mais influencia no tempo de acesso e consequentemente na performance geral do HD.
Existem três índices diferentes para o cálculo do tempo de busca: Full Stroke, Track-to-Track e Average.
O primeiro (full stroke) indica o tempo que a cabeça de leitura demora para se deslocar da primeira até a última trilha do HD, o que normalmente demora entre 15 e 20 milessegundos. Como é o maior dos três, este valor não costuma ser divulgado muito abertamente pelos fabricantes.
O Track-to-Track é justamente o oposto; o tempo que a cabeça demora para mudar de uma trilha para a seguinte. Como a distância a ser percorrida é muito pequena, ele costuma ser muito baixo, inferior a 1 milessegundo. Como ele é o valor mais baixo dos três, muitos fabricantes divulgam o valor do Track-to-Track nas especificações, omitindo os outros dois.
Finalmente, temos o Average (valor médio), que é justamente um meio termo entre os dois. Ele indica o tempo médio que a cabeça demora para se locomover até um setor aleatório do HD. Ao pesquisar especificações, procure justamente se informar sobre o valor average, já que ele é o mais indicativo dos três.
Aqui temos as especificações de um Samsung HD300LJ, um HD de 300 GB e 7.200 RPM, que era um modelo de médio custo no início de 2007:
* Track to Track: 0.8 ms
* Average: 8.9 ms
* Full Stroke: 18 ms
Aqui temos as de um Western Digital Raptor X, um "topo de linha" de 10.000 RPM, que utiliza platers de 2.5". O menor diâmetro dos discos faz com que ele tenha apenas 150 GB de capacidade (2 discos), mas em troca permitiu obter tempos de acesso bem mais baixos:
* Read Seek Time: 4.6 ms
* Write Seek Time: 5.2 ms (average)
* Track-To-Track Seek Time: 0.4 ms (average)
* Full Stroke Seek: 10.2 ms (average)
Veja que as descrições usadas pela Samsung e pela Western Digital são ligeiramente diferentes.
Tanto o "Average" da Samsung, quanto o "Read Seek Time" da WD referem-se ao tempo de busca médio para operações de leitura. A WD incluiu também o Write Seek Time, que é o tempo de busca para operações de gravação, que é sempre um pouco mais alto e por isso nem sempre divulgado nas especificações.
Como você pode ver, estes são dois exemplos extremos. O Raptor possui tempos de busca quase 50% menores, mas em compensação é mais caro e possui menos da metade da capacidade do Samsung. Você acaba pagando muito mais caro pela maior performance.
Tempo de Latência (Latency Time)
O tempo de latência é tão importante quanto o tempo de busca. Felizmente, ele é fácil de ser calculado, bastando dividir 60 pela velocidade de rotação do HD em RPM (rotações por minuto), e multiplicar por 1000. Teremos então o tempo de latência em milessegundos. Um HD de 5400 RPM, por exemplo, terá um tempo de latência de 11.11 milessegundos (o tempo de uma rotação), já que 60 ÷ 5200 x 1000 = 11.11.
Geralmente é usado o tempo médio de latência, que corresponde à metade de uma rotação do disco, assumindo que os setores desejados estarão, em média, a meio caminho da cabeça de leitura. Um HD de 5400 RPM teria um tempo de latência médio de 5.55 ms, um de 7.200 RPM de 4.15 ms e um de 10.000 RPM de apenas 3 ms.
Muitos fabricantes publicam o tempo de latência médio nas especificações ao invés do tempo de busca ou o tempo de acesso (já que ele é menor), o que acaba confundindo os desavisados.
Tempo de Acesso (Access Time)
O tempo de acesso é a combinação do tempo de busca e do tempo de latência, o tempo médio necessário para realizar um acesso a um setor aleatório do HD.
Assim que o comando é processado, a cabeça de leitura é movida para a trilha especificada (tempo de busca) e aguarda até que a rotação dos discos a faça passar pelo setor especificado (tempo de latência). Aos dois, somamos também o settle time (o tempo que a cabeça de leitura demora para estabilizar depois de movimentada) e o command overhead time, que é o tempo que a placa controladora demora para processar o comando e iniciar ambas as operações. Estes dois valores são bem menos significantes (somam algo em torno de 0.5 ms), por isso nem sempre são divulgados pelos fabricantes, embora também entrem na conta.
Os fabricantes calculam o tempo de latência dos HDs de formas diferentes, tornando difícil uma comparação direta. O ideal é que você mesmo calcule o tempo de acesso médio com base nas informações anteriores.
Para isso, basta somar o tempo de busca médio (Average) e o tempo de latência, calculado com base na velocidade de rotação dos discos. Como é muito difícil encontrar o settle time e o command overhead time nas especificações, você pode adicionar 0.5 ms, que é um valor aproximado.
O Samsung HD300LJ tem tempo de busca de 8.9 ms e latência de 4.15 ms. Adicionando os 0.5 ms temos um total de 14.55 ms.
Um Seagate ST3200822A (um modelo IDE, de 200 GB) tem tempo de busca de 8.5 ms. Como ele também é um modelo de 7.200 RPM, a latência também é de 4.15 ms o que (incluindo os 0.5 ms) daria um total de 14.15 ms.
O Raptor X tem apenas 4.6 ms de tempo de busca e, por ser um HD de 10.000 RPM, tem latência de 3 ms. Somando os 0.5 ms, teríamos um total de 9.1 ms.
Veja que a diferença entre o HD300LJ ST3200822A é muito pequena. O Raptor consegue ser 35% mais rápido, mas em compensação é muito mais caro, como vimos.
Apesar de importante, o tempo de acesso é um fator que não deve ser superestimado. Ele afeta o desempenho do HD quando estão sido lidos uma grande quantidade de arquivos pequenos, espalhados pelo HD, mas não afeta muito a taxa de transferência seqüencial, que é o que você vê ao carregar um programa pesado ou copiar uma grande quantidade de arquivos, por exemplo.
Um disco rígido é composto internamente por (na grande maioria dos casos) de 1 a 4 discos, sendo que temos uma cabeça de leitura para cada face. Mesmo possuindo várias cabeças de leitura, apenas uma delas pode ser usada de cada vez, de forma que a controladora precisa constantemente chavear entre elas durante a leitura ou gravação dos dados.
Você poderia perguntar por que os dados não são organizados de forma que a controladora pudesse ler e gravar usando todas as cabeças simultaneamente, com cada uma armazenando parte dos arquivos, como em uma espécie de "RAID interno". O problema aqui é que é tecnicamente impossível manter as trilhas dos diferentes discos perfeitamente alinhadas entre si.
Quando a controladora chaveia de uma cabeça de leitura para a outra, é necessário executar o procedimento normal de posicionamento, onde ela verifica as marcações servo dos discos e o braço de leitura move-se para a posição apropriada.
Devido a isso, o chaveamento acaba demorando um pouco mais que poderíamos pensar inicialmente. Ele é apenas um pouco menor que o tempo de busca Track-to-Track e quase sempre proporcional a ele.
Embora ele não seja um fator tão significativo quanto o tempo de acesso, ele acaba sendo um fator importante para a taxa de leitura seqüencial do HD, já que a controladora lê um cilindro por vez, chaveando entre todas as cabeças antes de ir para o próximo.
Taxa de Transferência Interna (Internal Transfer Rate)
A taxa de transferência interna é a velocidade "real" do HD ao ler arquivos gravados em setores seqüenciais. Se tivéssemos à mão todas as especificações do HD, incluindo o número de setores por trilha, seria simples calcular a taxa de leitura real do HD.
Num HD que tivesse 1584 setores por trilha na área mais externa dos discos e 740 na área mais interna, com 2 patters, rotação de 7200 RPM, tempo de busca Track-to-Track de 0.8 ms e Head Switch Time de 0.6 ms, teríamos o seguinte:
Cada trilha externa possui 1584 setores, cada um com 512 bytes, de forma que temos 792 KB por trilha.
Os discos giram a 7200 RPM, de forma que temos 120 rotações por segundo. Dividindo um segundo por 120 rotações, temos 8.33 milessegundos para cada rotação completa do disco, que corresponde à leitura de cada trilha.
Como o disco tem 2 patters, temos um total de 4 trilhas por cilindro. Para ler cada cilindro, a cabeça de leitura precisa realizar 3 chaveamentos entre as cabeças (0.6 ms cada) e em seguida precisa mover o braço de leitura para o cilindro seguinte, o que demora mais 0.8 ms.
Somando tudo, a leitura de cada cilindro demora aproximadamente 36 ms, o que significa que temos a leitura de 27.7 cilindros por segundo.
Cada cilindro é composto por 4 trilhas, o que corresponde a 3.093 MB. Se o HD consegue ler 27.7 deles por segundo, significaria que nosso HD hipotético teria uma taxa de transferência interna (nas trilhas externas) de aproximadamente 85.9 MB/s.
Nas trilhas internas a densidade cai para apenas 1.44 MB por cilindro (já que cada trilha possui apenas 740 setores), de forma que a taxa de leitura cai para apenas 40.1 MB/s.
Ao ler pequenos arquivos, temos a interferência do cache de disco, mas ao ler uma grande quantidade de arquivos, ele deixa de ser eficaz (já que armazena apenas uma pequena quantidade de dados), de forma que a taxa real de transferência cai para os valores da taxa de transferência interna, variando entre 85.9 MB/s e 40.1 MB/s, de acordo com a parte do disco que estivesse sendo lida.
Quando houver referências à "Internal Transfer Rate" ou "Buffer to Disc" nas especificações de um HD, pode ter certeza de tratar-se da velocidade "máxima", atingida quando lidos setores seqüenciais nas bordas do disco. Tenha em mente que no centro do disco você obterá um pouco menos da metade do número divulgado.
No caso dos HDs de notebook, ou de HDs que utilizam platters de 2.5" (como o Raptor) a diferença entre a taxa de leitura nas trilhas internas e externas é menor, numa relação de aproximadamente 2/3 ao invés de 1/2.
O grande problema é que os fabricantes raramente divulgam o número de setores por trilha, nem o Head Switch Time dos HDs, de forma que acaba sendo impossível calcular diretamente a taxa de transferência interna com base nas especificações. Normalmente, você encontrará apenas o número de setores por trilhas visto pelo BIOS (64), que não tem nenhuma relação com o número real.
Resta então usar o método empírico, realizando um teste longo de leitura, como o teste realizado pelo HD Tach, onde são lidos grandes volumes de dados, começando pela borda e prosseguindo até o centro dos discos. O cache pode ajudar o início da leitura, mas os dados armazenados logo se esgotam, deixando apenas a taxa real.
Um bom lugar para pesquisar sobre as taxas de leitura (e outros índices) de diversos modelos é a tabela do Storage Review, disponível no: http://www.storagereview.com/comparison.html.
Outra tabela recomendada é a disponível no TomsHardware: http://www23.tomshardware.com/storage.html.
Outra curiosidade é que é comum que os fabricantes produzam alguns modelos de HDs onde não são utilizadas todas as trilhas dos discos, de forma a criar HDs com capacidades definidas, que se adaptem a determinados nichos do mercado. Imagine, por exemplo, que o fabricante X está produzindo todos os seus discos usando platters de 200 GB. Isto significaria que ele teria modelos de 200, 400, 600 e 800 GB, de acordo com o número de platters usados. Imagine agora, que o fabricante Y, que ainda usa uma técnica anterior de produção, lança um HD de 160 GB, que é mais barato que o de 200 GB do fabricante X e por isso começa a roubar mercado dele.
Ao invés de reduzir o custo do HD de 200 GB e perder dinheiro na venda de todos os HDs, o fabricante X pode criar um HD de 160 GB fazendo uma simples alteração no firmware do HD de 200 GB, que faça a controladora deixar de usar as trilhas mais externas do disco. Ele pode agora vender estes HDs de "160 GB" a um preço mais baixo, sem ter que mexer no preço do restante da linha. Por incrível que possa parecer, isto é bastante comum.
Ao medir o desempenho deste HD "castrado", você perceberia que a diferença entre o desempenho nas trilhas internas e internas é bem menor que nos outros modelos. O tempo de acesso médio tente também a ser um pouco menor, já que a cabeça de leitura precisa se deslocar por uma área menor.
A grande maioria dos HDs SATA atuais suporta o NCQ, onde a controladora utiliza o tempo ocioso, entre uma leitura e outra, para estudar e reorganizar a ordem das leituras seguintes, de forma que elas possam ser executadas na ordem em que seja necessário o menor movimento possível dos discos. É como no caso de um ônibus, que precisa fazer um itinerário passando por diversos pontos da cidade. Com o NCQ o motorista tem autonomia para fazer alterações na rota, de acordo com as condições do trânsito, escolhendo a rota mais rápida .
Na prática, o NCQ pode melhorar a taxa de transferência do HD em até 10% em situações específicas, onde são lidos diversos arquivos pequenos espalhados pelo HD, como durante o carregamento do sistema operacional, ou de um programa pesado, mas faz pouca diferença quando você está transferindo grandes arquivos. De qualquer forma, ele é uma otimização implementada via software, que não aumenta o custo de produção dos discos.
Embora não seja tão importante para o desempenho quanto geralmente se pensa, o cache permite à controladora executar um conjunto de operações úteis para melhorar o desempenho.
Geralmente ao ler um arquivo, serão lidos vários setores seqüenciais. A forma mais rápida de fazer isso é naturalmente fazer com que a cabeça de leitura leia de uma vez todos os setores da trilha, passe para a trilha seguinte, passe para a terceira e assim por diante. Isso permite obter o melhor desempenho possível.
O problema é que na prática não é assim que funciona. O sistema pede o primeiro setor do arquivo e só solicita o próximo depois de recebê-lo e certificar-se de que não existem erros.
Se não houvesse nenhum tipo de buffer, a cabeça de leitura do HD acabaria tendo que passar várias vezes sobre a mesma trilha, lendo um setor a cada passagem, já que não daria tempo de ler os setores seqüencialmente depois de todo tempo perdido antes de cada novo pedido.
Graças ao cache, este problema é resolvido, pois a cada passagem a cabeça de leitura lê todos os setores próximos, independentemente de terem sido solicitados ou não. Após fazer sua verificação de rotina, o sistema solicitará o próximo setor, que por já estar carregado no cache será fornecido em tempo recorde.
Nos HDs atuais, o cache pode ser usado também nas operações de escrita. Imagine, por exemplo, que a controladora está ocupada lendo um arquivo longo e o sistema solicita que ela atualize um pequeno arquivo de log. Ao invés de precisar parar o que está fazendo, a controladora pode armazenar a operação no cache e executá-la mais adiante, num momento de ociosidade.
Nos HDs SATA com NCQ, a controladora possui liberdade para reorganizar as operações, realizando-as de forma que sejam concluídas mais rápido. A controladora passa então a armazenar os dados no cache, de forma que, depois de concluídas as operações, possa organizar os dados e entregá-los na ordem correta para o sistema.
O espaço excedente é usado para armazenar os últimos arquivos acessados, de forma que eles possam ser fornecidos rapidamente caso requisitados novamente. A principal vantagem de usar um cache maior, seria justamente ter mais espaço para arquivos. A questão é que o sistema operacional também mantém um cache de leitura e gravação utilizando a memória RAM que, por ser maior que o cache do HD, acaba sendo mais eficiente e também mais rápido, já que o cache do HD tem sua velocidade de transferência limitada à velocidade da interface IDE ou SATA, enquanto o cache feito pelo sistema operacional está limitado apenas à velocidade de acesso da própria memória RAM.
Este é o principal motivo de um HD com mais cache não ser tão mais rápido quanto se pensa. Enquanto dobrar o tamanho do cache L2 de um processador aumenta seu desempenho em até 10%, aumentar o cache de um HD de 16 para 32 MB, por exemplo, acaba aumentando seu desempenho real em menos de 1% na maioria das aplicações. Uma pequena quantidade de cache é importante por causa de todos os recursos que vimos, mas a partir de um certo ponto, o tamanho do cache acaba fazendo pouca diferença.
No final das contas, a melhor forma de melhorar o desempenho do HD é comprando mais memória . No caso do Windows XP, verifique a configuração do cache de disco no Painel de Controle > Sistema > Avançado > Configurações > Avançado > Uso de memória, mudando de "Uso dos programas" para "Cache do sistema". No caso do Windows 98/ME a configuração fica no Painel de Controle > Sistema > Performance, onde a opção "Servidor de rede" é a que reserva mais memória para o cache. No caso do Linux, o cache é gerenciado de forma automaticamente pelo sistema, usando a memória disponível, de forma que não é necessária nenhuma configuração adicional.
Atualmente muito se fala nos HDs híbridos, onde é utilizado um cache maior, feito de memória flash. A principal vantagem neste caso é que os dados armazenados no cache são preservados mesmo ao desligar o micro, permitindo que sejam usados no boot seguinte. Muitos arquivos carregados durante o boot (sobretudo arquivos pequenos) podem então ficar permanentemente armazenados no cache, tornando mais rápido o boot e carregamento dos programas mais usados. Veremos mais detalhes sobre os HDs híbridos e outras tecnologias similares mais adiante.
MTBF e service life
Duas informações que constam nas especificações dos HD e que são freqüentemente mal entendidas são o MTBF e o service life, que se destinam a dar uma idéia estimada da confiabilidade do HD.
MTBF significa "Mean Time Between Failures" ou "tempo médio entre falhas". A maioria dos HDs de baixo custo, destinados ao mercado doméstico, possuem MTBF de 300.000 ou 600.000 horas, enquanto os modelos high-end, ou destinados a servidores normalmente ostentam um MTBF de 1.200.000 horas. Complementando temos o "service life" ou "component design life" que normalmente é de 5 anos.
Como era de se esperar, o service life indica o tempo de vida "recomendado" pelo fabricante. Como o HD é composto por componentes mecânicos, um certo desgaste é acumulado durante o uso, culminando na falha do HD. Um service life de 5 anos indica que o HD é projetado para durar 5 anos e que a grande maioria das unidades deve realmente resistir ao tempo especificado.
O MTBF, por sua vez, não é uma indicação do tempo de vida do HD, mas sim indica a percentagem de chance do HD apresentar defeito antes do final do service life. Se o service life é de 5 anos e o MTFB é de 600.000 horas, significa que existe uma possibilidade de 1.4% do seu HD apresentar defeito antes disso.
Parece complicado, mas na verdade não é tanto . A idéia é que se você tivesse um datacenter com 1.000 HDs iguais, um deles pifaria em média a cada 600.000 horas somadas (somando os 1.000 HDs), ou seja a cada 25 dias, ao longo dos primeiros 5 anos de uso. Após isso, você pode esperar que a taxa de mortalidade cada vez maior nos anos seguintes, embora um pequeno número dos HDs possam resistir a 10 anos de uso ou mais.
Outra forma de explicar seria que, se você substituísse seu HD por outro igual a cada 5 anos, aposentando os antigos, seriam necessárias (em média) 600.000 horas, ou seja, 68.4 anos para que você perdesse os dados por causa de falha num dos HDs.
Ou seja, tudo gira em torno de possibilidades. Se você for "sortudo", mesmo um HD com MTBF de 1.200.000 horas pode pifar no primeiro mês de uso, da mesma forma que o HD de 200 reais do vizinho pode resistir durante 10 anos e ainda voltar a funcionar depois de removido o pó acumulado . O MTBF apenas serve como um indicativo da possibilidade de qualquer um dos dois extremos ocorrer.
Outra questão interessante é sobre como o MTBF é calculado, já que obviamente o fabricante não tem como realizar um teste de 5 anos antes de colocar um novo HD no mercado. Normalmente o número é calculado com base nos materiais e tecnologia usados na fabricação, simulações, dados estatísticos sobre outros modelos similares lançados anteriormente e, em geral, também um teste piloto de curta duração, usando algumas dezenas de unidades.
Complementando, temos também o "Start/Stop Cycles", ou seja o número de ciclos de desligamento que o drive é projetado para suportar. Quando o HD é ligado, o motor de rotação precisa realizar um esforço maior que o habitual para acelerar os discos, o que acentua o seu desgaste. Nos HDs antigos, onde ainda não são utilizadas rampas para estacionar as cabeças de leitura, existe também o desgaste causado pelo atrito das cabeças ao tocar a landing zone a cada desligamento.
Contam não apenas o número de vezes em que o micro é desligado, mas também o número de vezes que o HD entra em modo de economia de energia. Os HDs atuais normalmente são projetados para suportarem 50.000 ciclos, de forma que este normalmente não é um problema dentro do uso normal.
Tenha apenas o cuidado de não configurar o tempo de desligamento do HD com valores muito agressivos, como de 1 em 1 minuto por exemplo. Se o HD precisar acelerar 30 vezes por hora, pode ter certeza de que isso poderá levar a uma falha prematura .
Como sempre, estamos falando sobre probabilidade e não sobre dados infalíveis. Um exemplo histórico são os IBM Deskstar 75GX, que devido a um conjunto de problemas de projeto, possuíam uma taxa de mortalidade assustadoramente alta, embora possuíssem um MTBF de 500.000 horas. O caso foi tão grave que acabou dando origem a uma ação coletiva por parte dos usuários afetados, que levou a um recall dos drives. Pouco depois a IBM decidiu sair do ramo de produção de HDs, vendendo toda a divisão para a Hitachi.
Como de praxe, a única forma de se proteger contra falhas é fazer backups regulares. Existe ainda a opção de utilizar um sistema RAID 1, onde temos dois HDs e o segundo armazena uma cópia atualizada do conteúdo do primeiro. O RAID não substituiu o backup, mas evita que seu servidor ou máquina de trabalho fique fora do ar enquanto você restaura os dados.
Devido à sua natureza mecânica, o HD é um dos componentes mais lentos em qualquer PC. Embora o desempenho venha crescendo de forma incremental a cada nova geração, os ganhos não tem acompanhado o aumento na capacidade de armazenamento. Ler todos os dados armazenados num HD atual, de 1 TB, demora muito mais tempo do que num HD antigo, de 40 GB, por exemplo.
Ao invés de criar HDs muito rápidos, ou com um número muito grande de discos (e consequentemente com uma maior capacidade), os fabricantes de HDs se especializaram em fabricar modelos padronizados, utilizando um único braço de leitura e de 1 a 4 platters, fabricados em grande quantidade e a um custo relativamente baixo.
Para quem precisa de HDs mais rápidos, ou com uma capacidade muito maior, a melhor opção é montar um sistema RAID, onde é possível somar a capacidade e o desempenho de vários HDs, ou então sacrificar parte do espaço de armazenamento em troca de mais confiabilidade.
O termo RAID significa "Redundant Array of Inexpensive Disks", indicando justamente o uso de HDs padronizados e baratos como "blocos de montagem" para a criação de sistemas que se comportam como um único disco, maior, mais rápido e mais confiável do que suas peças individuais.
Um dos grandes atrativos do RAID é a possibilidade de escolher entre diferentes modos de operação, de acordo com a relação capacidade/desempenho/confiabilidade que você pretende atingir. As opções básicas são:
RAID 0 (Striping): O RAID 0 é um "RAID pra inglês ver", onde o objetivo é unicamente melhorar o desempenho, sacrificando a confiabilidade.
Ao usar o RAID 0, todos os HDs usados a ser acessados como se fossem um único drive. Ao serem gravados, os arquivos são fragmentados nos vários discos, permitindo que os fragmentos possam ser lidos e gravados simultaneamente, com cada HD realizando parte do trabalho. Usando RAID 0 a performance um patamar próximo da velocidade de todos os HDs somada. Ao usar 4 HDs com uma taxa de transferência e 50 MB/s (em leituras seqüenciais) em RAID 0, você teria uma taxa de transferência total de quase 200 MB/s em muitas situações.
Na verdade, a distribuição dos dados nos drives não é completamente uniforme. Os arquivos são divididos em fragmentos de tamanho configurável ("chunk size", ou "stripe size"). Se você está utilizando 3 HDs em RAID 0, utilizando fragmentos de 32 KB, por exemplo, ao gravar um arquivo de 80 KB teríamos fragmentos de 32 KB gravados nos dois primeiros HDs e os 16 KB finais seriam gravados no terceiro, sendo que os 16 KB que "sobraram" no terceiro HD ficariam como espaço desperdiçado.
Ao criar um array com 4 HDs de 500 GB em RAID 0, você teria um espaço total de armazenamento de 2 TB, onde toda a capacidade é dedicada ao armazenamento de dados, sem redundância:
O problema é que cada HD armazena apenas fragmentos de cada arquivo e não arquivos completos. Por causa desta peculiaridade, caso qualquer um dos HDs apresente defeito, você simplesmente perde todos os dados.
O RAID 0 é possivelmente o mais usado em desktops e também em alguns servidores de alto desempenho. Ele é a melhor opção caso você queira o melhor desempenho possível e tenha como manter um backup atualizado dos dados gravados.
Assim como em outros modos RAID, não é realmente obrigatório usar HDs idênticos, mas isso é fortemente aconselhável, pois tanto a capacidade quanto o desempenho ficam limitados à capacidade do HD mais lento.
Ao utilizar um HD de 500 GB e outro de 300 GB em RAID 0, o sistema ignora os últimos 200 GB do HD maior, de forma que você acaba ficando com um total de 600 GB disponíveis. Os acessos também precisam ser sincronizados, de forma que ao utilizar um HD com taxa de transferência máxima de 50 MB/s, em conjunto com 30 MB/s, você acaba tendo um máximo de 60 MB/s. Ou seja, utilizar dois HDs diferentes é possível, mas geralmente não é um bom negócio.
RAID 1 (Mirroring): Este modo permite usar dois HDs, sendo que o segundo armazenará uma imagem idêntica do primeiro. Na pratica, será como se você tivesse apenas um disco rígido instalado, mas caso o disco titular falhe por qualquer motivo, você terá uma cópia de segurança armazenada no segundo disco. Este é o modo ideal se você deseja aumentar a confiabilidade do sistema.
Também é possível utilizar RAID 1 com quatro ou mais discos (desde que seja utilizado sempre um número par). Neste caso, um dos discos de cada par é visto pelo sistema como um HD separado e o outro fica oculto, guardado a cópia atualizada do primeiro. Ao utilizar 4 HDs de 500 GB em RAID 0, por exemplo, o sistema enxergaria 2 HDs, de 500 GB cada um:
Usar RAID 1 não proporciona qualquer ganho de desempenho. Pelo contrário, ele acaba causando uma pequena perda em comparação com usar um único drive, já que todas as alterações precisam ser duplicadas e realizadas em ambos os drives.
Caso um dos HDs titulares falhe, o segundo entra em ação automaticamente, substituindo-o até que você possa substituir o drive.
Uma dica é que, ao fazer RAID 1 utilizando discos IDE, procure colocar um em cada uma das duas interfaces IDE da placa, isto melhorará o desempenho. Outro ponto é que caso os dois discos estejam na mesma interface, como master e slave, você precisa reiniciar o micro caso o primeiro falhe. Usando um em cada interface, a controladora fará a troca automaticamente, sem necessidade de reset. Da próxima vez que inicializar o micro você receberá um aviso pedindo para substituir o HD defeituoso.
Este problema não afeta as controladoras SATA, já que nelas cada HD é ligado a uma porta separada, sem a divisão de master/slave como nos HDs IDE.
É importante ressaltar que o RAID 1 é um sistema dedicado a aumentar a disponibilidade, evitando que você tenha que desligar seu micro de trabalho ou servidor para restaurar um backup quando o HD falha. Ele não substitui os backups, pois protege apenas contra falhas mecânicas do HD e não contra vírus e arquivos deletados acidentalmente. Assim que os arquivos são apagados no primeiro, a alteração é automaticamente replicada no segundo, fazendo com que ambas as cópias sejam perdidas. Também não existe proteção contra roubo, falhas causadas por raios (os dois HDs podem ser danificados simultaneamente) e assim por diante.
Particularmente, não recomendo o uso de RAID 1 como proteção contra perda de dados fora dos servidores, pois ele acaba por criar um falso senso de segurança. O principal uso para o RAID 1, ou RAID 5, é aumentar a confiabilidade e o uptime de servidores de rede, já que o servidor continua funcionando como se nada tivesse acontecido mesmo que um dos HDs pife. Mas, mesmo nos servidores, nada substituiu os backups.
Ao invés de usar dois HDs em RAID 1, seus dados estarão mais seguros se você colocar o segundo HD numa gaveta USB e usá-lo para manter backups de todos os arquivos e dados pessoais. Deixe o HD desconectado do PC e, de preferência, guarde-o num local separado ou carregue-o com você.
Na maioria das controladoras RAID SCSI e SAS é possível realizar a troca do HD defeituoso "a quente", com o micro ligado, recurso ainda não disponível nas controladoras RAID IDE e SATA. Esta troca à quente não é tão importante nos PCs domésticos já que um reset não toma mais do que dois ou três minutos do seu tempo, mas, em um servidor de alta disponibilidade, este recurso é essencial para evitar uma pane na rede.
RAID 10 (Mirror/Strip): Este modo pode ser usado apenas caso você tenha a partir de 4 discos rígidos e o módulo total seja um número par (6, 8, etc.). Neste modo, metade dos HDs serão usados em modo striping (RAID 0), enquanto a segunda metade armazena uma cópia dos dados dos primeiros, assegurando a segurança.
Este modo é na verdade uma combinação do RAID 0 e RAID 1, daí o nome. O ponto fraco é que você sacrifica metade da capacidade total. Usando 4 HDs de 500 GB, por exemplo, você fica com apenas 1 TB de espaço disponível.
RAID 5: Este modo é muito utilizado em servidores com um grande número de HDs. Ele utiliza um método bastante engenhoso para criar uma camada de redundância, sacrificando apenas uma fração do espaço total, ao invés de simplesmente usar metade dos HDs para armazenar cópias completas, como no caso do RAID 1.
O RAID 5 usa um sistema de paridade para manter a integridade dos dados. Os arquivos são divididos em fragmentos de tamanho configurável e, para cada grupo de fragmentos, é gerado um fragmento adicional, contendo códigos de paridade.
Note que, ao invés de reservar um HD inteiro para a tarefa, os códigos de correção são espalhados entre os discos. Desta forma, é possível gravar dados simultaneamente em todos os HDs, melhorando o desempenho.
O RAID 5 pode ser implementado com a partir de 3 discos. Independentemente da quantidade de discos usadas, sempre temos sacrificado o espaço equivalente a um deles. Ou seja, quanto maior é a quantidade de discos usados no array, menor é a proporção de espaço desperdiçado.
Num sistema com 5 HDs de 500 GB, teríamos 2 TB de espaço disponível e 500 GB de espaço consumido pelos códigos de paridade. Usando 8 HDs teremos 3.5 TB para dados e os mesmos 500 GB para paridade, e assim por diante:
Graças à forma como os bits de paridade são dispostos, é possível recuperar os dados de qualquer um dos HDs que eventualmente falhe. Mais ainda, o sistema pode continuar funcionando normalmente, mesmo sem um dos HDs.
A idéia por trás desta aparente "mágica" é bastante simples. A paridade consiste em adicionar um bit adicional para cada grupo de bits. Ao usar 5 HDs, por exemplo, temos um bit extra para cada 4 bits de dados.
Veja que, graças ao bit de paridade é possível saber apenas que, dentro do grupo de 4 bits existe um número par ou ímpar de bits 1. Isso é o suficiente para recuperar qualquer um dos 4 bits que seja perdido, desde que sejam respeitadas duas condições:
No RAID 5 cada um dos bits dentro de cada grupo fica guardado em um dos HDs. Quando um deles é perdido, a controladora sabe exatamente quais bits foram perdidos e têm condições de recuperá-los com uma continha muito simples:
Como disse, a controladora pode manter o sistema funcionando mesmo sem um dos HDs, realizando estes cálculos em tempo real para obter os dados que estavam armazenados nele. Quando o HD é finalmente substituído, a controladora reescreve todos os dados (usando o mesmo processo) e o sistema volta ao estado original.
Existe também a possibilidade de adicionar um ou mais discos sobressalentes num array. Estes HDs "extra" são chamados de hot-spares, ou simplesmente de "spare disks" e são utilizados automaticamente caso algum dos HDs titulares falhe, permitindo que o array seja restaurado imediatamente.
Embora o uso de hot-spares não seja muito comum em configurações domésticas, eles são muito comuns em grandes arrays RAID 5 (ou RAID 6) usados em grandes servidores.
RAID 6: O ponto fraco do RAID 5 é que ele suporta a falha de um único HD. Se por ventura um segundo HD falhar antes que o primeiro seja substituído, ou antes que a controladora tenha tempo de regravar os dados, você perde tudo, assim como acontece ao perder um dos HDs num array RAID 0. O uso de hot-spares minimiza a possibilidade de um desastre acontecer, mas não a elimina completamente, pois de qualquer forma o sistema fica vulnerável enquanto a controladora está regravando os dados no spare.
O RAID 6 é um padrão relativamente novo, suportado por apenas algumas controladoras. Ele é semelhante ao RAID 5, porém usa o dobro de bits de paridade, garantindo a integridade dos dados caso até 2 dos HDs falhem ao mesmo tempo. Ao usar 7 HDs de 500 GB em RAID 6, por exemplo, teríamos 2.5 TB para dados mais 1 TB de códigos de paridade:
A percentagem de espaço sacrificado decai conforme são acrescentados mais discos, de forma que o uso do RAID 6 vai tornado-se progressivamente mais atrativo. No caso de um grande servidor, com 41 HDs, por exemplo, seria sacrificado o espaço equivalente a apenas dois discos, ou seja, menos de 5% do espaço total. Em troca, ganha-se proteção contra a possibilidade de um segundo HD falhar durante o processo de substituição e reconstrução dos dados do primeiro.
Tanto no caso do RAID 5, quanto no RAID 6, o servidor continua funcionando normalmente durante todo o processo de substituição do disco, embora a performance decaia, sobretudo logo depois da substituição do drive defeituoso, quando o sistema precisa regravar os dados, lendo as informações armazenados em todos os outros discos e fazendo os cálculos de paridade.
JBOD: Este não é um modo RAID, mas também é bastante usado, sobretudo em servidores de arquivos. No JBOD (Just a Bunch Of Disks) os HDs disponíveis são simplesmente concatenados e passam a ser vistos pelo sistema como um único disco, com a capacidade de todos somada. Os arquivos são simplesmente espalhados pelos discos, com cada um armazenando parte dos arquivos (neste caso arquivos completos, e não fragmentos como no caso do RAID 0).
Ao contrário dos outros modos RAID, não existe nenhum problema em utilizar em combinar HDs com capacidades e desempenho variados num sistema JBOD. Cada HD pode dar sua parcela de contribuição, independentemente de sua capacidade.
Existem três categorias de RAID. A primeira é a das controladoras que realizam todas as operações via hardware, o que inclui a maior parte das controladoras SCSI e SAS. Este modo é o ideal tanto do ponto de vista do desempenho, quanto do ponto de vista da compatibilidade e confiabilidade, já que a própria controladora executa todas as funções necessárias, de forma independente. O sistema operacional apenas acessa os dados, como se houvesse um único HD instalado.
Estas controladoras RAID "de verdade" são, quase que invariavelmente, SCSI ou SAS. Além de trabalharem via hardware, elas permitem o uso de um número maior de drives. Muitas permitem o uso de um ou mais pentes de memória (instalados na própria controladora) que funcionam como um cache adicional, ajudando a melhorar o desempenho do array. Outro recurso cada vez mais utilizado (sobretudo nas controladoras SAS) é o hot-swap, onde você pode substituir os discos defeituosos com o sistema rodando. Os servidores com controladoras que suportam hot-swap quase sempre utilizam baias removíveis, facilitando o acesso aos discos.
Nas controladoras que trabalham via hardware, toda a configuração é feita através do BIOS da placa RAID, que pode ser acessado pressionando uma combinação de teclas durante o boot. O mais comum é pressionar Ctrl+C pouco antes do início do carregamento do sistema.
Naturalmente, estas controladoras são caras, sem falar no custo dos discos, por isso elas não são o tipo de equipamento que você compraria para instalar no seu desktop.
Em seguida, temos o RAID via software, onde todas as funções são executadas diretamente pelo sistema operacional e os HDs são ligados diretamente às interfaces da placa mãe. Neste caso, temos um trabalho adicional de configuração, mas em compensação não é preciso gastar com uma controladora dedicada. É possível criar arrays RAID via software tanto no Linux, quanto no Windows 2000, XP, 2003 Server e Vista.
Clique com o botão direito sobre um dos HDs que farão parte do array e selecione a opção "Converter em disco dinâmico". Na tela seguinte, marque todos os HDs que serão usados.
Depois de converter os HDs para discos dinâmicos, clique novamente com o botão direito sobre um deles e selecione a opção "Novo Volume". É aberto o assistente que permite criar o array RAID.
O terceiro modo é o fake RAID utilizado pela maioria das controladoras baratas, incluídas nas placas para desktop. No fake RAID é utilizada uma combinação de funções adicionais no BIOS da placa e um driver que roda pelo sistema operacional. No final, tudo é processado via software, de forma que não existe ganho de desempenho em relação a utilizar RAID via software. Apenas a configuração é simplificada.
Na maioria das placas, a configuração segue uma lógica simples. Você começa indicando quais drives farão parte do array através do setup. Em seguida, usa a tecla F10, Ctrl+C, Ctrl+F, ou outra tecla de atalho para acessar as opções de configuração do array RAID, onde você pode escolher que tipo de array será criado, o tamanho dos fragmentos e assim por diante.
Na Asus K8N4-E, por exemplo, a opção para ativar o suporte a RAID e indicar quais drives serão usados, está escondida na seção "Advanced > Onboard Device Configuration > NVRAID Configuration":
A partir daí, o BIOS da controladora RAID passa a ser inicializado durante o boot e você pode acessar a configuração pressionando a tecla "F10" durante o boot.
Dentro da configuração, adicione os drives que serão usados no array na coluna da direita e escolha entre usar RAID 1 (Mirroring) ou RAID 0 (Stripping) na opção superior. Você pode ainda ajustar o tamanho dos fragmentos, através da opção "Stripping Block":
As controladoras fake RAID IDE suportam, via de regra, apenas os modos RAID 0, 1 e 10. Não é recomendável utilizar mais do que um HD por porta IDE, de forma que, numa controladora com duas portas, o ideal é utilizar apenas dois drives, escolhendo entre usar RAID 0 ou RAID 1.
Algumas controladoras SATA oferecem a opção de utilizar RAID 5, neste caso utilizando um mínimo de 3 drives. Também é possível criar um array RAID 5 via software no Linux (consulte o software RAID howto), neste caso tudo é feito via software, de forma que é possível utilizar tanto HDs IDE, quanto SATA ou SCSI.
Assim como nas controladoras via hardware, as controladoras fake RAID possuem um BIOS próprio (na verdade uma extensão que faz parte do BIOS principal), que permite criar os arrays. Muitas vezes, está disponível também um utilitário acessível através do Windows.
Como estas controladoras precisam de um driver adicional, você precisa copiar os arquivos do drive para um disquete e fornecê-lo durante a instalação (pressionando a tecla "F6" durante a mensagem "Pressione F6 se precisar instalar um driver SCSI ou RAID de TERCEIROS") ao instalar o Windows XP diretamente dentro do array RAID. No caso do Vista, os drivers podem ser carregados a partir de um pendrive. Tanto o XP SP2, quanto o Vista incluem drivers para diversas controladoras, mas naturalmente não para todas.
Outro problema é que muitas controladoras fake RAID não possuem suporte no Linux e muitas não possuem sequer drivers para o Vista. Neste caso, a solução é partir para o RAID via software.
Depois de configurar o RAID, é interessante simular a falha de um dos discos para ter certeza de que o sistema reagirá como esperado. A melhor forma é simplesmente desligar o micro e desconectar um dos drives. Se você está usando RAID 1, 10 ou 5, o sistema deverá continuar funcionando de forma normal, exibindo avisos durante o boot, ou incluindo entradas no log do sistema (ao utilizar RAID via software). Ao utilizar RAID 0 o sistema simplesmente deixará de dar boot, já que a falha de um dos drives implica na perda de todos os dados.
era simpatizo também disponibilizar (caso exista que eu não encontro) um comparativo de performance entre discos "sozinhos" e raid's. como por exemplo um seagate de 250Gs SATA2 16Mb cache (com escrita perpendicular) e entre 2 discos de por exemplo 160Gs SATA2 8Mb cache. acho que é um comparativo interessante.