O disco rígido lê a verificação ao mesmo tempo em que grava dados?

3

Como todos sabemos, os discos rígidos modernos fazem o gerenciamento interno de setores defeituosos dentro de seu firmware, ou seja, quando a unidade detecta um setor físico fisicamente incorreto ou não confiável, substitui a ruim por uma boa do setor reservado. . Esse mecanismo elimina a necessidade de o sistema operacional executar a própria gestão do setor. Os usuários podem conhecer o desenvolvimento da contagem de substituição do setor do item S.M.A.R.T chamado "contagem de setor realocado".

Um disco rígido de amostra com muitos setores realocados (o índice 133 cai abaixo do limite 140):

Agora,minhaperguntaé:QuandoofirmwaredoHDDdeterminaqueumsetordevesersubstituído?Euimaginoessasituaçãoideal:

WhenHDDwritesasector,itdoesreadverificationimmediately(verifyCRCchecksumandemployECCtorecoverthesofterrorbits).Incasetheverificationfailsorthesectorisdeemedunreliablebythefirmware,thefirmwarecanimmediatelyreplacethesectorsonouserdataislost(atleastnotlostatthemomentitiswrittentodisksurface).Thisisanicemomenttodosectorreplacementbecausetheto-be-writtendatanowsurelyremainsinharddrive'sinternalcache.Thedrivecantryasmany"hot spare" sectors as he will until he finds a good one.

Se a minha ideia não é o fato, o HDD só pode verificar o setor escrito na próxima vez que o usuário o procurar; mas no caso de a próxima busca falhar CRC e ECC, e seu cache correspondente tiver sido descartado, não podemos fazer nada além de saber que os dados gravados anteriormente foram permanentemente perdidos.

Qual comportamento é a verdade? Existe algum artigo na web esclarecendo isso?

Disco SSD deve enfrentar a mesma situação, então o que acontece com SSD? O caso do SSD parece mais fácil de entender, porque eu posso facilmente imaginar que o SSD pode fazer uma verificação de leitura rápida após a gravação, muito rapidamente; No entanto, esse esquema é prático para um disco rígido de fuso? Parece que a cabeça HHD pode ler ou escrever em um determinado momento, então, para verificar a escrita, ela tem que esperar por outra rodada até que o setor escrito seja posicionado novamente sob a cabeça - o que diminuiria drasticamente o throughput de dados. - Estou tão confusa.

    
por Jimm Chen 02.09.2015 / 05:46

1 resposta

2

Drives para executar uma forma de verificação de gravação, e tem feito isso há algum tempo. Nos velhos tempos dos drives altos, você podia dizer quando uma unidade estava se movendo em um bloco ruim do som dela. Não consigo explicar o mecanismo exato, e tenho quase certeza de que a maneira exata mudou um pouco, já que passou pelas várias tecnologias magnéticas . Mas a falha pode ser detectada em write , e o setor será retirado do pool de realocação.

Ele também pode ser detectado em leitura, com o caso de falha que você já identificou. Alguns dos arrays RAID mais avançados (e, é claro, o ZFS) têm rotinas de verificação em segundo plano para ler o armazenamento durante os tempos ociosos, especificamente para localizar esses erros. Em paridade ou RAID espelhado, teoricamente você tem uma boa cópia em outro lugar, o que facilita a recuperação.

Uma célula SSD que falha em programar retornará um estado de falha semelhante e um novo bloco será retirado do pool de realocação. Células SSD gastas tendem a ir somente leitura, portanto, os dados são recuperáveis. Células quebradas de verdade são outra história, mesmo que um pouquinho de areia aterrissando em um disco rígido.

    
por 02.09.2015 / 06:17

Tags