Skip to content

Estruturas SSD e boas práticas

6 de Abril, 2020

Nos últimos anos, os SSDs (Unidades de Estado Sólido) têm ganho uma popularidade imensa. Os SSDs possuem uma série de vantagens em relação aos HDDs (Discos Rígidos), que até há pouco tempo eram os dispositivos de armazenamento primário mais populares, uma vez que os SSDs eram muito mais caros. Atualmente, o custo dos SDDs caiu drasticamente, e ao mesmo tempo a sua capacidade de armazenamento cresceu imenso. Assim, utilizadores de todos os tipos têm agora acesso a altas velocidades de leitura e escrita, bem como à durabilidade destes equipamentos. No entanto, isto provocou também um aumento nas questões relacionadas com a operação e fiabilidade dos SSDs.

Como funcionam?

Para perceber as melhores práticas de utilização de um SSD, é importante saber como funcionam internamente. A estrutura básica de um SSD é constituída por células de memória flash NAND e um controlador, que se liga a um computador a partir de uma interface como SATA, NVMe ou SAS. O controlador é responsável por gerir a comunicação entre o computador e as células NAND, para além de tratar da GC (Recolha de Lixo) e correção de erros.

As células NAND consistem em FGTs (Transístores de Porta Flutuante). Se uma porta estiver carregada, então o seu valor lógico corresponde a 0, enquanto se estiver descarregada o seu valor lógico corresponde a 1. Uma célula pode também armazenar mais do que um único bit. Neste caso, é medida a quantidade de carga na porta, em vez de simplesmente se detetar a sua presença.

Valores lógicos de uma célula e os quatro Cs

Sabemos agora que o valor lógico de uma célula é determinado pelo seu estado de carga. As células que armazenam apenas um bit denominam-se por SLCs (Células de Nível Único). Mas também existem células que armazenam mais do que um bit: MLCs (Células Multinível). A maior parte dos SSDs atuais utilizam SLCs, MLCs (termo também usado para Células de Nível Duplo), TLCs (Células de Nível Triplo) ou QLCs (Células de Nível Quádruplo). Regra geral, quantos mais bits por célula menor o preço por gigabyte de armazenamento. No entanto, também menores as velocidades de leitura e escrita, e mais curto o tempo de vida.

Problemas com a longevidade dos SSDs

É de conhecimento geral que após um certo número de operações, as células NAND desgastam-se, mas o que é que isto significa exatamente?
Com operações de escrita e apagamento (cargas e descargas da porta flutuante) suficientes, a célula NAND deixa de suportar mais operações destas. Ao evitar escritas e apagamentos desnecessários, o tempo de vida das células NAND é prolongado.
Outro fenómeno através do qual as células NAND podem ser enfraquecidas é a retenção de carga. Com cada operação de escrita ou apagamento que é efetuada numa célula há a possibilidade de isto ocorrer, e se acontecer demasiadas vezes torna-se impossível ler a célula corretamente. Vários estudos sugerem que este processo pode ser revertido parcialmente com períodos de inatividade do SSD, especialmente a baixas temperaturas.

Estas duas maneiras de desgastar uma célula NAND são agravadas pela amplificação de escrita. Num SSD, as células NAND são divididas por páginas, que por sua vez são agrupadas em blocos. As células NAND só podem ser escritas depois de serem apagadas, e as operações de apagamento afetam blocos inteiros em vez de uma única página, o que significa que quando uma página é editada, todo o bloco tem de ser apagado, editado e reescrito. Este processo leva a um número superior de escritas físicas do que comandos de escrita enviados pelo computador, daí “amplificação de escrita”.

Tempo de vida de um SSD e como prolongá-lo

Uma questão importante que tudo isto levanta é: qual é o tempo de vida estimado do meu SSD? A resposta depende de vários fatores, como o tipo de célula usado e as funcionalidades do controlador e respetivo firmware, bem como a opção de caching de escrita do sistema operativo. As principais funcionalidades de prolongamento de tempo de vida que um SSD pode integrar são o nivelamento de desgaste e o sobreprovisionamento.

O nivelamento de desgaste refere-se à capacidade do controlador distribuir operações de escrita de forma equilibrada pelos blocos do SSD, garantindo que certos blocos não se desgastem demasiado em relação aos outros, danificando-se precocemente. Este processo pode ser dinâmico ou estático. No primeiro caso, as operações de escrita fazem-se comparando o número de ciclos de escrita/apagamento dos blocos livres e escolhendo aqueles com o valor menor. O segundo caso é semelhante ao primeiro, mas os blocos em uso com um baixo número de ciclos são periodicamente movidos para que possam ser reutilizados. O nivelamento de desgaste é mais eficaz quando há bastante espaço livre no SSD, uma vez que desta forma existem vários blocos livres cujos ciclos podem ser comparados.

O sobreprovisionamento aloca espaço no dispositivo que não é acessível pelo utilizador para operações do controlador. Este espaço permite ao controlador gerir tarefas como substituição de blocos danificados, recolha de lixo e nivelamento de desgaste, sem ser necessário encontrar espaço livre no próprio momento. Isto resulta em melhor desempenho e maior tempo de vida do SSD. Uma certa percentagem do armazenamento do SSD é alocada para sobreprovisionamento de fábrica, mas é possível alocar manualmente mais espaço de forma a aumentar estes benefícios.

As ferramentas S.M.A.R.T incluídas com o firmware da maior parte dos SSDs contêm informações sobre o dispositivo. Estas informações ajudam a monitorizar o seu estado, incluindo a quantidade de blocos disponíveis para sobreprovisionamento, temperatura interna e número de ciclos de escrita/apagamento dos blocos. Estas ferramentas variam de acordo com o fabricante do SSD. Quando os blocos dos SSDs começam a falhar, normalmente fazem-no em simultâneo, devido aos algoritmos de nivelamento de desgaste, e não a meio de operações, para reduzir o risco de perda de dados.

Para prolongar o tempo de vida do seu SSD, aconselhamos o seguinte:

  • Use o SSD com o maior número de ciclos de escrita/apagamento suportados por bloco que encontrar (regra geral, SLC > MLC > TLC > QLC);
  • Aumente o espaço de armazenamento alocado para o sobreprovisionamento do SSD, o que também melhora o seu desempenho;
  • Monitorize a temperatura interna do seu SSD, tendo em conta que a capacidade de retenção de dados é significativamente reduzida quanto maior esta for;
  • Periodicamente deixe o seu SSD inativo durante algum tempo, uma vez que isto pode reverter parcialmente a retenção de carga das células;
  • Deixe algum espaço livre no seu SSD para ajudar o nivelamento de desgaste;
  • Evite operações de escrita desnecessárias no seu SSD, como a desfragmentação.

A WhiteHat é a distribuidora em Portugal da Macrium Software, especializada em sistemas de backup e disaster recovery que auxiliam  consumidores e empresas a dar resposta aos diversos desafios na integridade e segurança da informação.