top of page

Hardware - HDDs (PARTE 3)

  • Foto do escritor: Drano Rauteon
    Drano Rauteon
  • 1 de mai.
  • 40 min de leitura

Este artigo foi escrito a partir de trechos do livro "Hardware - O Guia Definitivo" publicado no antigo site hardware.com, do Carlos E. Morimoto, cujas páginas que o compunham foram alegremente recuperadas através do Waybach Machine. A intenção é utilizar estes antigos textos para criar algo atualizado, mas com uma certa nostalgia, e baseando-se numa fonte muito respeitada na primeira década deste século.


Caso queira ler ou reler o primeiro capítulo, CLIQUE AQUI!

Caso queira ler ou reler o segundo capítulo, CLIQUE AQUI!

Neste terceiro capítulo, vamos desbravar a parte de formatação, confiabilidade e durabilidade de tais mídias, além de fatores que determinam o desempenho.

Formatação

Para podermos usar o HDD, primeiro devemos formatá-lo. Formatar significa dividir logicamente o disco em setores endereçáveis, permitindo que os dados possam ser gravados e posteriormente lidos de maneira organizada.

A primeira coisa a se compreender sobre isto, é que existem dois tipos de formatação: a formatação física (ou formatação de baixo nível) e a formatação lógica.

A divisão do disco em trilhas, setores e cilindros é chamada de formatação de baixo nível, ou formatação física. Os discos mais antigos, padrão ST-506 e ST-412 (que desde os anos 1990 deixaram de ser usados, sendo substituídos pelos discos padrão IDE e SCSI), eram muito mais simples que os atuais, permitindo que a formatação física fosse feita pelo próprio usuário através do Setup. Inclusive, estes discos precisavam ser periodicamente reformatados fisicamente. Isso acontecia por um problema simples: quando lidos pela cabeça de leitura, os setores do disco esquentavam e se expandiam, esfriando e contraindo-se logo em seguida.

Esta expansão e contração térmica da superfície do disco acabava por alterar a posição das trilhas, causando desalinhamento e dificultando a leitura dos dados pela cabeça magnética, sendo necessária uma nova formatação física para que as trilhas, setores e cilindros, voltassem às suas posições iniciais.

Para piorar, nesses discos obsoletos era utilizado um motor de passo para movimentar as cabeças eletromagnéticas que, por não ser completamente preciso, sempre acabava causando algum desalinhamento também.

Os HDs IDE e SCSI, usados atualmente, já são muito mais complexos que os discos antigos, sendo quase impossível determinar sua disposição de trilhas, setores e cilindros para possibilitar uma formatação física. Eles também não possuem o problema de desalinhamento, de modo que neles a formatação física é feita somente uma vez na fábrica. Em suma, todos os HDs do padrão IDE, SATA, SAS e SCSI não precisam ser formatados fisicamente, não sendo aconselhada qualquer tentativa.


CURIOSIDADE: Existem (ou existiam) alguns programas, como o Ontrack Disk Manager ou o Maxtor Low Level Format, que são usados por alguns usuários como formatadores físicos. Na verdade, em sua maioria estes programas são simplesmente ferramentas de diagnóstico e correção de erros, na mesma linha do Scandisk, apenas com alguns recursos a mais, que checam o disco marcando setores defeituosos, permitindo também visualizar muitos outros erros lógicos no disco e corrigi-los. De qualquer maneira, a ação destes programas é apenas a nível lógico.


Outros programas como o 'Zero Fill", fazem um tipo de formatação irreversível, preenchendo todos os setores do disco com bits 0. A única diferença deste tipo de formatação, para a feita pelo comando "Format", é que (pelo menos em teoria) não é possível recuperar nenhum dos dados anteriormente gravados no disco.

Finalmente, temos alguns programas antigos, assim como a opção de "Low Level Format" encontrada no Setup de placas-mãe antigas, destinada a formatar fisicamente os antigos drives que utilizam o padrão MFM e RLL. Quando usado em um HD IDE ou SCSI, este tipo de formatação simplesmente não funciona. Quando muito é apagado o Defect Map e o setor de Boot do HD, desfazendo a formatação lógica do disco e causando a perda dos dados gravados, entretanto, sem alterar a formatação física.

Algumas pessoas tentam usar placas mãe mais antigas, que possuem no Setup a opção de formatação de baixo nível para "formatar fisicamente" seus discos rígidos IDE afim de eliminar setores danificados no disco. Este procedimento, além de poder causar danos ou mesmo a inutilização do disco rígido, não traz nenhuma vantagem.

Um setor danificado é uma falha em uma minúscula região da superfície magnética do platter, onde não se pode gravar dados com segurança. Estes danos na superfície do HD podem surgir devido a algum impacto forte, ou mesmo ao desgaste da mídia magnética, o que costuma ocorrer em HDs com muito uso. Quando rodamos algum utilitário de diagnóstico do HDD, como o Scandisk, que acompanha o Windows, são testados todos os setores da unidade, e aqueles que estão danificados, são marcados como defeituosos numa área reservada do disco chamada de "Defect Map", para que não sejam mais usados. Os setores danificados são comumente chamados de "bad-blocks".

Estes setores são marcados como defeituosos justamente por apresentarem tendência à corrupção dos dados gravados. Tentar apagar o Defect Map, faria apenas com que estes setores fossem novamente vistos como bons pelo sistema operacional. Esta tentativa desesperada não soluciona o problema, simplesmente faria com que as áreas danificadas do disco, antes marcadas, voltem a ser utilizadas, diminuindo a confiabilidade da mídia.


Após a formatação física, feita pelo próprio fabricante do disco rígido nas etapas finais da produção, temos um HD dividido em trilhas, setores e cilindros, toda a infra-estrutura básica para permitir que a cabeça de leitura possa ler e gravar dados.

Porém, para que este disco possa ser reconhecido e utilizado pelo sistema operacional, é necessária uma nova formatação, a chamada formatação lógica. A formatação lógica consiste em escrever no disco a estrutura do sistema de arquivos utilizado pelo sistema operacional.

Um sistema de arquivos é um conjunto de estruturas lógicas e de rotinas, que permitem ao sistema operacional controlar o acesso ao HDD. Diferentes SOs usam diferentes sistemas de arquivos.

Diferentes sistemas operacionais existem com diferentes propósitos. O Windows 98 ou o Windows 10, por exemplo, são destinados basicamente para uso doméstico, tendo como prioridade a facilidade de uso e a compatibilidade. Sistemas baseados no Unix já têm como prioridade a estabilidade e segurança.

Claro que com propósitos tão diferentes, estes sistemas usam de diferentes artifícios para organizar os dados no disco, de modo a melhor atender seus objetivos.

Os sistemas de arquivos mais usados atualmente, são FAT16, FAT32, NTFS (usado também pelo Linux, assim como o EXT) e o HPFS. Os mais comuns são os três primeiros.


Resumindo tudo, existem dois processos de formatação, e são eles:

-> a formatação de baixo nível, também chamada formatação física. O processo de formatação de baixo nível consiste em dividir a superfície magnética do disco em trilhas e setores. No caso de discos rígidos, este processo é feito na fábrica e atualmente não há como o usuário efetuar esta formatação. A formatação de baixo nível (com exceção dos primeiros discos rígidos para computadores, da década de 1980, do padrão ST-506 / ST412) destrói o disco rígido permanentemente, pois apaga os sinais de orientação das cabeças que estão gravados na superfície do platter, chamados servos.


Hoje em dia, a "formatação física" sobrevive apenas como um vício de linguagem. Muitos dizem que "fizeram uma formatação física" ao reparticionar o HD ou ao usar um programa que apaga os dados gravados (como o "zero-fill", ou o "dd" do Linux), embora uma coisa não tenha nada a ver com a outra.


-> Formatação de alto nível, ou formatação lógica. Nestes, temos três padrões comuns:


FAT16 e FAT32

O sistema FAT16 é uma espécie de "pau pra toda obra", já que é compatível com praticamente todos os sistemas operacionais e também dispositivos como câmeras, palmtops, celulares e mp3players. Ele é o sistema de arquivos usado por padrão nos cartões SD e também nos pendrives de até 2 GB. Só recentemente os cartões passaram a utilizar FAT32, com a introdução do padrão SDHC.

No sistema FAT, o HD é dividido em clusters, que são a menor parcela do HD vista pelo SO. Cada cluster possui um endereço único, que permite ao sistema localizar os arquivos armazenados. Um grande arquivo pode ser dividido em vários clusters, mas não é possível que dois arquivos pequenos sejam gravados dentro do mesmo cluster. Cada cluster pode ser composto por de 1 a 64 setores (ou seja, de 512 bytes a 32 kB), de acordo com o tamanho da partição.

A principal limitação é que, como o nome sugere, o FAT16 usa endereços de 16 bits para endereçar os clusters dentro da partição, permitindo um máximo de 65536 clusters, que não podem ser maiores que 32 kB. Isso resulta num limite de 2 GB para as partições criadas.

No caso de HDs (e também pendrives ou cartões) maiores que 2 GB, é possível criar várias partições de 2 GB cada uma, até utilizar todo o espaço disponível. Esta pode ser uma solução no caso de dispositivos com 4 ou 5 GB, por exemplo, mas, naturalmente, não é uma opção realística no caso de um HD de 60 GB, por exemplo, onde seria necessário criar 30 partições!

Numa partição de 2 GB, cada cluster possui 32 kB, o que acaba resultando num grande desperdício de espaço ao gravar uma grande quantidade de arquivos pequenos. Imagine que gravássemos 10.000 arquivos de texto, cada um com apenas 300 Bytes. Como um cluster não pode conter mais do que um arquivo, cada arquivo iria ocupar um cluster inteiro, ou seja, 32 kB. No total, os 10.000 arquivos ocupariam um total de 10.000 clusters, ou seja, um total de 320 MB!

O tamanho dos clusters em partições FAT16 varia de acordo com o tamanho da partição. Quanto maior o tamanho da partição, maior o tamanho dos clusters:

Tabela 1 - Tamanhos de partição x tamanhos de cluster no FAT16


Como em toda regra, existe uma exceção. O Windows NT permitia criar partições FAT de até 4 GB usando clusters de 64 kB, mas este foi um recurso pouco usado, devido ao desperdício de espaço.

A versão original do Windows 95 suportava apenas o FAT16, obrigando quem possuía HDs maiores que 2 GB a dividi-los em duas ou mais partições e lidar com o desperdício de espaço causado pelos clusters de 32 kB. A solução foi a criação do sistema FAT32, que foi incorporado no Windows 95 OSR/2 e continuou sendo usado nas versões seguintes.

A principal evolução foi o uso de endereços de 32 bits para o endereçamento dos clusters, o que possibilita a criação de partições muito maiores, de até 2 TB. Isso foi possível pois o Windows 95 era um sistema de 32 bits, ao contrário do MS-DOS e do Windows 3.1, que eram sistemas de 16 bits.

A princípio, o uso de endereços de 32 bits permitiu o uso de clusters de 4 kB mesmo em partições muito grandes, todavia, por questões de desempenho, ficou estabelecido que por default os clusters de 4 kB seriam usados apenas em partições de até 8 GB. Acima disto, o tamanho dos clusters varia de acordo com o tamanho da partição:

Tabela 2 - Tamanhos de partição x tamanhos de cluster no FAT32


Usando clusters de 4 kB, os 10.000 arquivos do exemplo anterior ocupariam apenas 40 MB, uma economia considerável. De fato, ao converter uma partição FAT16 para FAT32 é normal conseguir de 10 a 20% de redução no espaço ocupado, devido à redução do espaço desperdiçado.

A grande limitação do sistema FAT32 está relacionada ao tamanho máximo dos arquivos. Mesmo usando uma grande partição, não é possível armazenar arquivos com mais de 4 GB, o que é um grande problema para quem trabalha com arquivos grandes, como vídeos em formato RAW (sem compressão). Não é possível sequer armazenar um ISO de DVD, já que a cópia ou transferência será sempre abortada depois de transferidos os primeiros 4 GB.

Apesar da limitação, o formato exFAT (Extended File Allocation Table, em português "Tabela de Alocação de Arquivos Estendida") foi lançado em meados de 2006 resolvendo isso, entretanto, a Microsoft vinha recomendando o uso do NTFS desde a primeira versão do Windows XP.


CURIOSIDADE: A exFAT (também conhecido como FAT64) é um formato de sistema de arquivos utilizado principalmente em discos de memória flash, introduzido pela Microsoft em 2006 com o Windows Embedded CE 6.0. O exFAT foi um sistema de arquivos proprietário até 28 de agosto de 2019, quando a Microsoft trouxe à público a especificação dele.

O exFAT pode ser usado quando o sistema de arquivos NTFS não for uma solução viável (devido à sobrecarga de estrutura de dados), e o limite de tamanho do arquivo no FAT32 padrão ser inaceitável. Um exemplo disso é a adoção por parte da SD Card Association como sistema de arquivos padrão para cartões SDXC maiores que 32 GB.


Outra limitação é que o particionador usado durante a instalação do Windows XP se recusa a formatar partições FAT32 maiores do que 32 GB. Este é um limite do software e não do sistema de arquivos em si. A solução para criar partições FAT maiores era utilizar o PartitionMagic, Gparted ou outro particionador para criar a partição e em seguida apenas instalar o sistema na partição criada.


CURIOSIDADE: ntes do FAT16, existiu o FAT12, um sistema ainda mais primitivo, utilizado em disquetes e também nas primeiras versões do MS-DOS. Nele, são usados endereços de apenas 12 bits para endereçar os clusters, permitindo um total de 4096 clusters de até 4 kB, o que resultava em partições de até 16 MB.

Em 1981, quando o IBM PC foi lançado, 16 MB parecia ser uma capacidade satisfatória, já que naquela época os discos rígidos tinham apenas 5 ou 10 MB.


Claro que, em se tratando de informática, por maior que seja um limite, ele jamais será suficiente por muito tempo. Um excelente exemplo é a célebre frase "Por que alguém iria precisar de mais de 640 kB de memória RAM?" dita por Bill Gates em uma entrevista, no início da década de 1980.


Logo começaram a ser usados discos de 40, 80 ou 120 MB, obrigando a Microsoft a criar a FAT 16, e incluí-la na versão 4.0 do MS-DOS.

Apesar de obsoleto, o FAT12 ainda continua vivo para os disquetes. Por ser mais simples, o FAT12 é o sistema padrão para a formatação dos disquetes de 1.44", onde são usados clusters de apenas 512 Bytes.


Todos os vários sistemas de arquivos são constituídos de um conjunto de estruturas lógicas, que permitem ao sistema operacional organizar os dados gravados e acessá-los com a maior velocidade e confiabilidade possíveis.

Tudo começa com o setor de boot, que é lido pelo BIOS da placa-mãe no início do boot, logo após a contagem de memória e outros procedimentos executados durante o POST.

O setor de boot, também chamado de MBR ou trilha zero, contém dois componentes essenciais. O primeiro é um bootstrap, o software responsável por iniciar o carregamento do sistema operacional. Tipicamente, é utilizado um gerenciador de boot, como o NTLDR (usado pelo Windows XP) ou o Grub (usado pela maior parte das distribuições Linux). A função do gerenciador de boot é mostrar uma lista com os sistemas operacionais instalados no início do boot e carregar o sistema escolhido.

O bootstrap ocupa os primeiros 446 bytes do MBR. Os 66 bytes restantes são usados para armazenar a tabela de partições, que guarda informações sobre onde cada partição começa e termina. Alguns vírus, além de acidentes em geral, podem danificar os dados armazenados na tabela de partição, fazendo com que pareça que o HD foi formatado. Mas, na maioria dos casos, os dados continuam lá, intactos, e podem ser recuperados.

Depois que o drive foi formatado e dividido em clusters, mais alguns setores são reservados para guardar a FAT ("file allocation table" ou "tabela de alocação de arquivos"). A função da FAT é servir como um índice, armazenando informações sobre cada cluster do disco. Através da FAT, o sistema sabe se uma determinada área do platter está ocupada ou livre e pode localizar qualquer arquivo armazenado.

Cada vez que um novo arquivo é gravado ou apagado, o sistema operacional altera a FAT, mantendo-a sempre atualizada. A FAT é tão importante que, além da tabela principal, é armazenada também uma cópia de segurança, que é usada sempre que a tabela principal é danificada de alguma maneira.

Todos os demais sistemas de arquivos utilizam algum tipo de índice, similar à FAT. Quando o HD é reformatado, este índice é apagado e substituído por uma tabela em branco. Apesar disso, os arquivos continuam gravados nas mesmas posições, embora inacessíveis. Enquanto eles não forem realmente sobrescritos por outros, é possível recuperá-los usando um programa de recuperação de dados.


Em seguida, temos o diretório raiz. Se fôssemos comparar um disco rígido, formatado em FAT16 ou FAT32, com um livro, as páginas seriam os clusters, a FAT serviria como as legendas e numeração das páginas, enquanto o diretório raiz seria o índice, com o nome de cada capítulo e a página onde ele começa.


O diretório raiz ocupa mais alguns setores no disco, logo após os setores ocupados pela FAT. Cada arquivo ou diretório do disco rígido possui uma entrada no diretório raiz, com o nome do arquivo, a extensão, a data de quando foi criado ou quando foi feita a última modificação, o tamanho em bytes e o número do cluster onde o arquivo começa.

Um arquivo pequeno pode ser armazenado em um único cluster, enquanto um arquivo grande é "quebrado" e armazenado ocupando vários clusters. Nesse caso, haverá no final de cada cluster uma marcação, indicando o próximo cluster ocupado pelo arquivo. No último cluster ocupado, temos um código que marca o fim do arquivo.

Quando um arquivo é deletado, simplesmente é removida sua entrada no diretório raiz, fazendo com que os clusters ocupados por ele pareçam vagos para o sistema operacional. Ao gravar um novo arquivo no HD, o sistema simplesmente procura o primeiro setor livre, continuando a gravá-lo nos setores livres seguintes, mesmo que estejam muito distantes uns dos outros. Surge então o problema da fragmentação, que reduz consideravelmente a velocidade de acesso, já que dados espalhados significam mais movimentos da cabeça de leitura.

Ao contrário de outros sistemas de arquivos mais modernos, o sistema FAT (tanto o FAT16 quanto o FAT32) não possui nenhum mecanismo que impeça (ou pelo menos diminua) a fragmentação, daí a necessidade de rodar o defrag ou outro programa desfragmentador periodicamente. A função deles é mover os arquivos, de forma que eles fiquem gravados em clusters sequenciais.


CURIOSIDADE: A fragmentação é um problema apenas nos HDDs, já que eles trabalham com tempos de acesso muito altos. Nos cartões de memória, o tempo de acesso é comparativamente muito baixo, de forma que a fragmentação possui um impacto muito pequeno sobre a performance.


NTFS

O NTFS é um sistema de arquivos mais antigo do que muitos acreditam. Ele começou a ser desenvolvido no início da década de 1990, quando o projeto do Windows NT dava os seus primeiros passos.

Já que o grande problema do sistema FAT16 era o fato de serem usados apenas 16 bits para o endereçamento de cada cluster, permitindo apenas 65 mil clusters por partição, o NTFS incorporou desde o início a capacidade para endereçar os clusters usando endereços de 64 bits. A única limitação agora passa a ser o tamanho dos setores do HD. Como cada setor possui 512 Bytes, o tamanho de cada cluster usando NTFS também poderá ser de 512 bytes, independentemente do tamanho da partição.

É sem dúvida um grande avanço sobre os clusters de 32 kB e as partições de até 2 GB do sistema FAT16. Mas, existe um pequeno problema em endereçar partições muito grandes usando clusters de 512 bytes: o desempenho. Com um número muito grande de clusters, o processamento necessário para encontrar os dados desejados passa a ser muito grande, diminuindo a performance.

Assim como na FAT32, ficou estabelecido que o tamanho mínimo de clusters seria usado por default apenas em partições de um certo tamanho:

Tabela 3 - Tamanhos de partição x tamanhos de cluster no NTFS


A continuação da tabela acima retirada do fórum da Microsoft pode ser vista abaixo:

Tabela 4 - Tamanho de clusters x tamanho de partição


Mais uma vantagem do sistema NTFS é que os nomes de arquivos e pastas utilizam caracteres em Unicode, em vez de ACSII. O ASCII é o sistema onde cada caracter ocupa 1 byte de dados, mas são permitidas apenas letras, números e alguns caracteres especiais. No Unicode, cada caracter ocupa dois bytes, o que permite 65 mil combinações, o suficiente para armazenar caracteres de diversos idiomas. Isso permite que usuários do Japão, China, Taiwan e outros países que não utilizam o alfabeto ocidental, possam criar arquivos usando caracteres do seu próprio idioma, sem a necessidade de instalar drivers e programas adicionais.

Outro ponto importante onde o NTFS é superior ao sistema FAT é na tolerância a falhas. No sistema FAT, sempre que o sistema trava ou é desligado enquanto estão sendo atualizados arquivos e diretórios no HD, existe uma possibilidade muito grande do sistema tornar-se inconsistente, com arquivos interligados, agrupamentos perdidos e outros problemas. Surge, então, a necessidade de rodar o scandisk depois de cada desligamento incorreto.

No NTFS, o sistema mantém um log de todas as operações realizadas, uma cópia do Master File Table (MFT). Com isto, mesmo que o micro seja desligado bem no meio da atualização de um arquivo, o sistema poderá, durante o próximo boot, examinar este log e descobrir exatamente em que ponto a atualização parou, tendo a chance de automaticamente corrigir o problema. Além de reduzir a perda de tempo, a possibilidade de perda de dados é muito menor.

Clusters contendo setores defeituosos também são marcados automaticamente conforme são detectados, sem a necessidade de usar o scandisk ou qualquer outro utilitário. Nesse caso, a marcação é feita na tabela de endereçamento da partição, de forma que a lista de setores defeituosos é perdida ao reparticionar o HDD. Antigamente, os HDDs eram menos confiáveis e o aparecimento de setores defeituosos era um fenômeno muito mais comum, de forma que muitos aplicativos de formatação realizavam um teste de superfície durante a formatação da partição (como no caso do format usado no Windows 95/98, onde formatar uma partição podia demorar mais de uma hora). Atualmente, a maioria dos programas realiza uma formatação rápida, presumindo que o drive não possua setores defeituosos.

Existiram diversas versões do NTFS, que acompanharam a evolução do Windows NT. A partir do Windows 2000, por exemplo, foi introduzido o NTFS 5, que trouxe diversos aperfeiçoamentos, incluindo o suporte ao Active Directory.

Outro recurso interessante é a possibilidade de encriptar os dados gravados, de forma a impedir que sejam acessados por pessoas não autorizadas, mesmo caso o HDD seja removido e instalado em outro micro. Este recurso de encriptação é interessante, por exemplo, para profissionais de campo, que levam dados secretos em seus laptops. É possível tanto criptografar o disco inteiro quanto pastas ou arquivos individuais.

Também é possível compactar pastas e arquivos individuais, economizando espaço em disco. Com a possibilidade de compactar pastas individuais, você pode comprimir apenas as pastas contendo um grande volume de arquivos que suportam um bom nível de compressão, deixando de lado pastas com fotos, músicas e arquivos de vídeo, arquivos que já estão comprimidos.

A compactação de arquivos exige uma carga adicional de processamento, já que o sistema tem o trabalho de descompactar os arquivos antes de acessá-los. Antigamente, usar compactação reduzia muito o desempenho do sistema, já que os processadores eram mais lentos. Num micro atual, a redução é muito menos significativa e, em muitos casos, o uso da compactação pode até mesmo melhorar o desempenho, já que arquivos compactados ocupam menos espaço e, consequentemente, são lidos mais rapidamente pela cabeça de leitura.


OBSERVAÇÃO: Como o assunto é o funcionamento dos HDDs, não vamos nos estender ao sistema de arquivos EXT (Extended File System) introduzido em 1992 no Linux (por uma genérica questão de que o Windows é mais comum neste planeta :v), muito menos no exFAT (FAT64), que é mais comum em outras mídias de armazenamento. A questão é exatamente esta: Os sistemas de arquivos são inerentes à mídia estudada, entretanto, existem formatos de mídia que conviveram por décadas com os mesmos sistemas de organização de ficheiros (como é o caso do FAT16, FAT32 e EXT para os discos rígidos), e aí vale a pena trazer alguns parágrafos sobre o assunto para nos situarmos. E já foram parágrafos demais, convenhamos.

Particionamento


Até agora, vimos que existem vários sistemas de arquivos, e que geralmente os sistemas operacionais são compatíveis com apenas um ou no máximo dois sistemas diferentes. Como então instalar o Windows 10 e uma ditro Linux no mesmo HDD?

Para resolver este impasse, podemos dividir o disco rígido em unidades menores, chamadas de partições, cada uma passando a ser propriedade de um sistema operacional. Poderíamos então dividir o disco em duas partições, uma em FAT 16 (para o Windows 95) e uma em NTFS (para o Windows NT), poderíamos até mesmo criar mais uma partição em HPFS e instalar também OS/2. Do ponto de vista do SO, cada partição é uma unidade separada, quase como se houvessem dois ou três drives instalados na máquina.

Cada partição possui seu próprio diretório raiz e sua própria FAT. As informações sobre o número de partições, sua localização no disco, e o espaço ocupado por cada uma, são armazenadas na tabela de partição, que compartilha o primeiro setor do disco com o setor de boot.

Antes de formatar a unidade, é necessário particioná-lo. O mais comum (e também o mais simples) é estabelecer uma única partição englobando todo o disco, mas dividir o disco em duas ou mais partições traz várias vantagens, como a possibilidade de instalar vários sistemas operacionais no mesmo disco, permitir uma melhor organização dos dados gravados e diminuir o espaço desperdiçado (slack), já que com partições pequenas, os clusters também serão menores (desde que seja utilizada FAT 16 ou 32, claro).


Outra coisa a considerar ao se dividir o disco em várias partições, é a velocidade de acesso aos dados. Como o disco rígido gira a uma velocidade fixa, o acesso às trilhas mais externas, que são mais extensas, é muito mais rápido do que às trilhas internas, que são mais curtas. Na prática, a velocidade de acesso à primeira trilha do disco (a mais externa) é cerca de duas vezes mais rápido que o acesso à última.

Como as partições são criadas sequencialmente, a partir do início do disco, o acesso à primeira partição será sempre bem mais rápido do que o acesso à segunda ou terceira partição. Por isso, prefira instalar na primeira partição o sistema operacional que você utilizará com mais frequência. Também é válido dividir o disco em duas partições, deixando a primeira para o SO e programas e a segunda para arquivos em geral.

Detecção de erros e bad blocks


Por melhor que seja sua qualidade, nenhuma mídia magnética é 100% confiável (como pode confirmar quem já teve o desprazer de trabalhar com disquetes). Pequenas falhas na superfície da mídia podem levar a erros de leitura, sobretudo quando ela possui uma densidade de gravação de mais de 100 gigabits por polegada quadrada e gira a 7200 RPM ou mais, como nos HDs atuais.

Isso não significa que o seu HD vá pifar amanhã, mas que são comuns erros na leitura de um setor ou outro. Obviamente, como todos os nossos dados importantes são guardados no disco rígido, a possibilidade de erros na leitura de "um setor ou outro" não seria aceitável, principalmente no caso de máquinas destinadas a operações críticas. Imagine se, nesse "setor ou outro" do servidor de um grande banco, estivessem gravados os dados referentes à conta bancária de um cliente importante, por exemplo.

De modo a tornar os HDs uma forma de armazenamento confiável, os fabricantes utilizam sistemas de ECC para detectar e corrigir erros de leitura eventualmente encontrados. O ECC é o mesmo sistema aplicado em módulos de memória destinados a servidores e também em CD-ROMs, onde são usados nada menos do que 276 Bytes de códigos de correção de erros para cada setor de 2048 bytes.

Em um HD, cada setor armazena, além dos 512 Bytes de dados, mais algumas dezenas de Bytes contendo os códigos ECC. A criação dos bytes de ECC, assim como sua utilização posterior é feita pela placa lógica, um processo automático que executado de forma completamente transparente ao sistema operacional.

Quando um setor é lido pela cabeça de leitura, juntamente com os dados são lidos alguns dos códigos ECC, que visam apenas verificar se os dados que estão sendo lidos são os mesmos que foram gravados, uma técnica que lembra o sistema de paridade antigamente usado na memória RAM. Caso seja verificado um erro, são usados os demais códigos para tentar corrigir o problema. Na grande maioria dos casos, esta primeira tentativa é suficiente. Estes erros transitórios, que são corrigidos com a ajuda dos códigos ECC são chamados de "soft errors" e não causam nenhum efeito colateral além de um delay de alguns milissegundos na leitura.

Caso não seja possível corrigir o erro usando o ECC, a controladora faz uma nova tentativa de leitura do setor, pois é grande a possibilidade do erro ter sido causado por alguma interferência ou instabilidade momentânea. Caso o erro persista, ela fará várias tentativas sucessivas, reduzindo a velocidade de rotação dos discos e comparando o resultado de várias leituras, de forma a tentar recuperar os dados gravados no setor. Esse processo gera aquele ruído característico de HD sendo "mastigado" e quase sempre indica o aparecimento de um badblock.

Por serem defeitos físicos na mídia magnética, não existe muito o que fazer com relação a eles. O jeito é marcar os badblocks, de forma que eles não sejam mais usados.

Os HDs atuais são capazes de marcar automaticamente os setores defeituosos. A própria placa controladora faz isso, independentemente do sistema operacional. Existe uma área reservada no início do disco chamada "defect map" (mapa de defeitos) com alguns milhares de setores que ficam reservados para alocação posterior. Sempre que a controladora do HD encontra um erro ao ler ou gravar num determinado setor, ela remapeia o setor defeituoso, substituindo-o pelo endereço de um setor "bom", dentro do defect map. Como a alocação é feita pela própria placa, o HD continua parecendo intacto para o sistema operacional.


De fato, é normal que os HDs já venham de fábrica com alguns setores remapeados, causados por pequenas imperfeições na superfície da mídia. Como eles não são visíveis para o sistema operacional, nem causam problemas no uso normal e acabam passando despercebidos.


Naturalmente, o Defect Map é uma área limitada, que corresponde normalmente a uma única trilha. Caso o HD possua algum problema crônico, eventualmente os endereços se esgotarão e os badblocks realmente passarão a se tornar visíveis.

Deste ponto em diante, entram em cena utilitários como o scandisk (no Windows) e o badblocks (no Linux), que permitem realizar um exame de superfície, marcando os setores defeituosos encontrados. Estes setores não são marcados no defect map, mas sim em uma área reservada da partição.

Um grande número de setores defeituosos são indício de problemas graves, como envelhecimento da mídia, defeitos no mecanismo de leitura ou mesmo contaminação do HD por partículas provenientes do ambiente. O ideal nesses casos é fazer backup de todos os dados e substituir o HD o mais rápido possível.

Entretanto, mesmo para estes HDs condenados, às vezes existe uma solução. É comum a maioria dos setores aparecerem mais ou menos agrupados, englobando uma área relativamente pequena do disco. Se houver muitos badblocks em áreas próximas, você pode reparticionar o disco, isolando a área com problemas.

Se, por exemplo, você percebesse que a maioria dos defeitos se encontra nos últimos 20% do disco, bastaria abrir o particionador, deletar a partição atual e criar uma nova, englobando apenas 80% do disco. Neste caso, você perderia uma boa parte da área útil, mas pelo menos teria a possibilidade de continuar usando a parte "boa" do HD (em algum micro usado para tarefas secundárias, sem dados importantes), até que ele desse seus derradeiros suspiros.

Confiabilidade e durabilidade


Duas informações que constam nas especificações dos HD e que são frequentemente mal entendidas: o MTBF e o service life.

Ambos 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 HDD é composto por componentes mecânicos, um certo desgaste é acumulado durante o uso, culminando em falhas graves. 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 mil drives iguais, um deles pifaria em média a cada 600.000 horas somadas (somando os 1000 HDs), isto é, a cada 25 dias, ao longo dos primeiros 5 anos de uso. Depois isso, você pode esperar que a taxa de mortalidade seja cada vez maior nos anos seguintes, embora um pequeno número dos HDs possa 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 (68.4 anos) para que você perdesse os dados por causa de falha em um dos HDs.

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 precisa realizar um esforço maior que o habitual para acelerar os discos (sair da inérica), o que acentua o desgaste. Nas unidades antigas, 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 drive entra em modo de economia de energia. Os HDDs 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 mais cedo ou mais tarde.

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 HDDs, 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 substitui o backup, mas evita que seu servidor ou máquina de trabalho fique fora do ar enquanto você restaura os dados.


Já que o assunto é confiabilidade e durabilidade, podemos nos extender às especificidades da tecnologia S.M.A.R.T.:


S.M.A.R.T

Uma tecnologia de monitoramento de disco rígido inicial foi introduzida pela IBM em 1992 em seus IBM 9337 Disk Arrays para servidores AS/400 usando unidades de disco IBM 0662 SCSI-2. Mais tarde, foi chamada de tecnologia Predictive Failure Analysis (PFA). Ela media vários parâmetros-chave de integridade do dispositivo e os avaliava dentro do firmware da unidade. As comunicações entre a unidade física e o software de monitoramento eram limitadas a um resultado binário: ou seja, "o dispositivo está OK" ou "a unidade provavelmente falhará em breve".

Mais tarde, outra variante, que foi chamada de IntelliSafe, foi criada pelo fabricante de computadores Compaq e pelos fabricantes de unidades de disco Seagate , Quantum e Conner. As unidades de disco mediam os "parâmetros de saúde" do disco, e os valores seriam transferidos para o sistema operacional e o software de monitoramento do espaço do usuário. Cada fornecedor de unidade de disco era livre para decidir quais parâmetros seriam incluídos para monitoramento e quais deveriam ser seus limites. A unificação estava no nível do protocolo com o host.

A Compaq submeteu o IntelliSafe ao comitê Small Form Factor (SFF) para padronização no início de 1995. Foi apoiado pela IBM, pelos parceiros de desenvolvimento da Compaq (Seagate, Quantum e Conner), e pela Western Digital, que não tinha um sistema de previsão de falhas na época. O Comitê escolheu a abordagem do IntelliSafe, pois ela fornecia mais flexibilidade. A Compaq colocou o IntelliSafe em domínio público em 12 de maio de 1995. O padrão desenvolvido em conjunto resultante foi denominado SMART (Self-Monitoring Analysis and Reporting Technology).

Esse padrão SFF descreveu um protocolo de comunicação para um host ATA usar e controlar o monitoramento e a análise em uma unidade de disco rígido, mas não especificou nenhuma métrica ou método de análise em particular. Mais tarde, "SMART" passou a ser entendido (embora sem nenhuma especificação formal) como se referindo a uma variedade de métricas e métodos específicos e se aplicando a protocolos não relacionados ao ATA para comunicar os mesmos tipos de coisas.


Um único disco rígido ATA pode ter até 30 valores medidos, que são chamados de atributos. Alguns deles afetam direta ou indiretamente o status de saúde do disco rígido e outros fornecem informações estatísticas.

Hoje, todos os HDDs IDE(PATA), SATA, ou SAS/SCSI modernos têm o recurso SMART. Não é realmente um padrão - então o significado dos atributos pode ser diferente de fabricante para fabricante. Neste tópico, discutimos apenas discos rígidos ATA (IDE e SATA). Os drives SCSI funcionam de forma diferente: os dados de previsão de falhas são padrão e há regras rígidas sobre os sensores e softwares. Por exemplo, a diferença entre a temperatura real e o resultado medido pelo sensor deve ser menor que +/- 3 graus Celsius.

Muitos atributos são usados ​​por todos os fabricantes e da mesma (ou quase da mesma) maneira. É por isso que, por exemplo, é possível detectar a temperatura de muitos discos rígidos. Aplicativos mais novos são capazes de detectar, processar e exibir essas informações.

De acordo com as especificações SMART, quando um problema é detectado (falha prevista), a unidade deve funcionar por pelo menos 24 horas para executar o backup dos dados. Mas em muitos casos esse tempo não é suficiente - é por isso que é importante reconhecer os problemas e se preparar antes que seja tarde demais.


Muitas placas-mãe exibem uma mensagem de aviso na inicialização quando uma unidade de disco está se aproximando da falha. Embora exista um padrão da indústria entre a maioria dos principais fabricantes de HDDs, problemas permanecem devido a atributos intencionalmente deixados sem documentação ao público. De uma perspectiva legal, o termo "SMART" se refere apenas a um método de sinalização entre sensoriamento interno da unidade e o computador host. Por causa disso, as características são inteiramente específicas do fornecedor e, embora muitos desses atributos tenham sido padronizados entre os fabricantes, outros permanecem 'obscuros'. As implementações SMART ainda diferem e, em alguns casos, podem não ter recursos "comuns" ou esperados, como um sensor de temperatura ou incluir apenas alguns atributos selecionados, embora ainda permitam que o fabricante anuncie o produto como "compatível com SMART".

Abaixo, trago uma lista de atributos SMART catalogados:

Tabela 5 - Note que faltam diversos valores. Esta lista foi feita pelo site "hdsentinel.com"


Apesar de os itens de status S.M.A.R.T. variarem conforme o software, o mais importante é a "Integridade". Esse item é um indicador geral do nível de resolução de erros e de manutenção. Normalmente, os detalhes são mencionados depois da pontuação de integridade, indicando áreas que precisam de atenção. Em geral, as informações fornecidas são:

-> Raw Read Error Rate (Taxa de erros de leitura bruta) – número de erros ao ler dados;

-> Retired Blocks (Blocos isolados) – blocos que deixaram de ser seguros para o armazenamento de dados durante a vida útil do disco;

-> Power On Hours (Horas ligado) – total de horas que o disco ficou ativo;

-> Power Cycles (Ciclos de energia) – número de vezes que o disco foi desligado e religado;

-> Device Temperature (Temperatura do dispositivo) – temperatura interna atual do disco;

-> Total LBAs Written (Total de endereçamentos de blocos lógicos gravados) – número de endereços de bloco lógico gravados;

-> Total LBAs Read (Total de endereçamentos de blocos lógicos lidos) – número de endereços de bloco lógico lidos.


Leia o seguinte complemento para entender melhor algumas inconsistências envolvendo o funcionamento do S.M.A.R.T.:

Complemento 1 - Texto retirado do site hdsentinel


O complemento acima foi formulado de acordo com o "AT Anexo 8 - Conjunto de comandos ATA/ATAPI (ATA8-ACS)" da Revisão 3f de 11 de Dezembro de 2006, logo, serve apenas como exemplo prático de como o S.M.A.R.T. pode avaliar o HDD de uma forma não tão objetiva.

O desempenho do HD é determinado basicamente pela densidade dos discos, velocidade de rotação e 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 nesses 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 a mesma quantidade de cache, tendem a possuir um desempenho muito parecido.

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 platters, 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 dessa 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. Outro exemplo é o Dell Cheetah15.6, com apenas 146 GB:

Imagem 1 - Um Dell Cheetah 15.6K com dois platters de 2,5"


Como você pode ver na foto a seguir, embora o Cheetah seja um HD de 3.5″, internamente ele utiliza discos de 2.5″, similares aos usados em notebooks. O menor diâmetro dos discos reduz a capacidade de armazenamento, mas permitiu os 15000 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 é menor). São estes fatores que também permitiram ao Atlas 15K II (combinado com outras melhorias, obviamente) resultsse num HD Ultra 320 SCSI com tempo de acesso de apenas 5.5 ms e taxa de leitura sequencial (nas trilhas externas) de 98 MB/s.


O problema é que, além de caro, a capacidade de armazenamento é pequena, mesmo para os padrões da época. O modelo com 1 platter armazenava apenas 37 GB, enquanto o modelo com 4 discos armazena 147 GB. Ou seja, você pagaria até US$ 1000 para ter uma capacidade equivalente à de um HD low-end.

De uma forma geral, o melhor em termos de custo-benefício é comprar drives 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. Dessa 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 disco rígido”, 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 a pena gastar mais se o ganho de desempenho realmente for lhe trazer um retorno plausível ao longo desse período.

Em um 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 diárias, ao longo de alguns anos, poderia corresponder a um prejuízo equivalente a várias vezes o valor investido nos drives, 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 em um banco de dados com dezenas e dezenas, ou até centanas de GBs, contendo uma infinidade de pequenas mensagens de texto e ter milhares de visitantes simultâneos em determinados períodos.

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. Nesse cenário, qualquer redução no tempo de acesso representa um grande ganho de desempenho.

Em um 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 item mais importante. A única operação que se aproxima um pouco do que acontece nos servidores é o uso intensivo de swap, onde a unidade também precisa realizar um grande número de pequenas leituras. Entretanto, nesses casos o problema não seria o drive, mas sim a falta de memória RAM.

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 de mais memória RAM (já que mais memória significa menor uso de swap e mais cache de disco). 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. Nesses 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 um 'teco' a 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.


Seek Time

Ao comparar dois HDs fabricados na mesma época, com o mesmo RPM 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 atuator usado no drive. 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 StrokeTrack-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, e que pode ficar na casa das dezenas de milissegundos. Como é o maior dos três, este valor não costuma ser divulgado muito abertamente pelos fabricantes.

O Track-to-Track é justamente o oposto, isto é, 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 milissegundo. 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 nas especificações, procure justamente se informar sobre o valor Average, já que ele é o mais indicativo dos três.

Abaixo, as especificações de um Samsung HD300LJ, um HD de 300 GB e 7200 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


Agora, as de um Western Digital Raptor X, um “topo de linha” de 10000 RPM, que utiliza platters 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 nomeclaturas 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, esses 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.


Latency Time

Dentro do disco rígido, os platters giram continuamente. Por isso, dificilmente os setores a serem lidos estarão sob a cabeça de leitura/gravação no exato momento de executar a operação. No pior dos casos, pode ser necessária uma volta completa do disco até o setor desejado passar novamente sob a cabeça de leitura.

O tempo de latência é tão importante quanto o tempo de busca. Felizmente, ele é fácil de ser calculado, bastando dividir 60 segundos pela velocidade de rotação do(s) platter(s) em RPM (rotações por minuto), e multiplicar o resultado por 1000. Teremos então o tempo de latência em milissegundos.

Um HD de 5400 RPM, por exemplo, terá um tempo de latência de 11.11 milissegundos (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 7200 RPM de 4.15 ms e um de 10000 RPM de apenas 3 ms.

Há fabricantes que 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.


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 ou menos), 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 7200 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 WD Raptor X tem apenas 4.6 ms de tempo de busca e, por ser um drive de 10000 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 e o 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 é lida uma grande quantidade de arquivos pequenos, espalhados pelo HD, mas não afeta muito a taxa de transferência sequencial, que é o que você vê ao carregar um programa pesado ou copiar uma grande quantidade de arquivos, por exemplo.


Head Switch Time

Um disco rígido é composto internamente por (na grande maioria dos casos) de 1 a 4 discos, sendo que cada disco possui duas faces e temos uma cabeça de leitura / gravação para cada face. Mesmo possuindo várias cabeças de leitura, apenas uma delas pode ser usadade 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 do 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 o Head Switch Time não seja um fator tão significativo quanto o tempo de acesso, ele acaba sendo um fator importante para a taxa de leitura sequencial do HD, já que a controladora lê um cilindro por vez, chaveando entre todas as cabeças antes de ir para o próximo.


Internal Transfer Rate

A taxa de transferência interna é a velocidade “real” do HD ao ler arquivos gravados em setores sequenciais. 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.

Em um 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, por exemplo, 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 milissegundos para cada rotação completa do disco, que corresponde à leitura de cada trilha.

Como o disco tem 2 platters, 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 o 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 disco rígido, pode ter certeza de tratar-se da velocidade “máxima”, atingida quando são lidos setores sequenciais 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 em vez de 1/2.

O grande problema é que os fabricantes raramente divulgam o número de setores por trilha, nem o Head Switch Time, 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, 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.


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. Isso significaria que ele teria modelos de 200, 400, 600 e 800 GB, de acordo com o número de platters usados em cada modelo. 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, 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 externas é bem menor que nos outros modelos. O tempo de acesso médio tende também a ser um pouco menor, já que a cabeça de leitura precisa se deslocar por uma área menor do disco.


NCQ

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.

A próxima ilustração fornecida pela nVidia mostra como o sistema funciona. O HD à esquerda não possui suporte a NCQ, de forma que, ao realizar 4 leituras a setores aleatórios do disco ele precisa realizá-las em ordem, fazendo com que sejam necessários um número maior de rotações do disco, À direita, o HD com NCQ usa um atalho para realizar a mesma seqüência de leitura em menos tempo, lendo os setores fora de ordem:

Imagem 2 - HD sem NCQ (à esquerda) e com NCQ


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 e não tem contra indicações.

Este é o último capítulo da série sobre HDDs. Como eles ainda estão em alta e os únicos três fabricantes do mercado (Seagate, Western Digital e Toshiba) permanecem investindo muito no setor, com certeza teremos pelo menos mais uma década de evolução nestes equipamentos e muitos motivos para revisitar este texto!


Caso queira contribuir com mais informações ou correções, fique à vontade para entrar em contato conosco pelo e-mail hardwarecentrallr@gmail.com.

FONTES e CRÉDITOS:


Texto: Leonardo Ritter; livro de hardware do Carlos E. Morimoto (recuperado através do Waybach Machine).

Imagens, diagramas e gráficos: Leonardo Ritter; Enciclopédia Magnética; Google Imagens; Wikipedia.

Fontes: Desmonte de HDDs; outros conteúdos do próprio HC; Patentes relacionadas à Western Digital recuperadas do Google Patents; Site da Seagate e Blog da Western Digital; Sasaki Informatica; Enciclopédia Magnética; Crucial (Micron Technology); datasheets de chips utilizados em HDDs; Clube do Hardware; livro de hardware do Gabriel Torres (edição de 2022); www.hdsentinel.com/smart/ (sobre o S.M.A.R.T); Microsoft (visão geral do sistema de arquivos NTFS); Wikipedia (somente artigos com fontes verificadas!).

Comments


O Hardware Central abandonou de vez o Facebook. Não temos mais fanpage e a caixa de comentários que aqui habitava foi chutada pra longe! Não somos Mainstream! Redes socias não combinam com nós! Somos a galera dos livros!

Como também repassamos conteúdo de terceiros, não é justo restringir a cópia! O uso do conteúdo do HC e de toda a internet deve ser livre!

Para relatar erros, incongruências ou sugerir conteúdo, nos chame pelo hardwarecentrallr@gmail.com! Não somos perfeitos, mas sempre é possível melhorar!

© 2024 Hardware Central Tecnologia Entretenimento e Comunicação do Brasil Ltda. Todos os direitos reservados.

Wix Editor / Revisão da web page: 3.2/2022 (20/03/22)

bottom of page