Queira o Sr. Perito fazer breves considerações sobre os discos de estado sólido – Parte 2

No último post tratamos sobre alguns conceitos e os pontos positivos dos discos SSD. Continuando nossa série sobre os discos de estado sólido, vamos tratar dos pontos negativos da utilização desse tipo de dispositivo em comparação com os tradicionais discos rígidos.

Apesar de todas as qualidades, os discos de estado sólido ainda possuem alguns pontos negativos. Além do preço mais elevado e menor capacidade, o desempenho de um SSD não é sempre melhor do que um disco rígido. Podemos citar, por exemplo – o fato que ficou comprovado em alguns estudos – que ao lidar com leituras aleatórias, os SSDs mostram largura de banda (bandwidth) maior do que um típico disco rígido de 7200 RPM.

Pontos Negativos

Além de ainda não possuirmos um padrão de indústria, o que dificulta maiores análises e comparações, outros pontos devem ser considerados. Os problemas mais notáveis incluem: a incapacidade de modificar dados in loco, assimetria do desempenho de leitura/gravação, e funcionalidade de “delete” lenta e restrita. Abaixo citamos outros dos principais pontos negativos:

Desempenho com o tempo e desperdício de recursos

Diferente dos HDD, o desempenho dos SSD praticamente não é afetado pela fragmentação, já que não faz muita diferença para o controlador se os endereços a serem lidos estão em setores adjacentes ou espalhados pelo disco.

Entretanto, particularidades na maneira como os setores são acessados fazem com que em muitas situações o desempenho decaia com o uso, conforme dados são gravados e apagados. À primeira vista, o efeito pode parecer similar à perda de desempenho causada pela fragmentação, mas as razões são diferentes. Em um disco rígido os dados são gravados em setores de 512 bytes, que podem ser apagados e sobrescritos de maneira independente. Nos SSD, por outro lado, os endereços são organizados em páginas de 4 KB, que são então agrupadas em blocos de 512 KB. As páginas funcionam de maneira muito similar aos clusters dos HD magnéticos. Cada página pode armazenar um arquivo ou fragmento de arquivo. Dois arquivos não podem compartilhar a mesma página, o que faz com que arquivos com menos de 4 KB ocupem uma página inteira, desperdiçando espaço. Assim como em um HD, a controladora é capaz de acessar as páginas de forma independente, lendo e gravando dados.

O grande problema é que as páginas na memória flash não podem ser simplesmente regravadas, como os setores em um HD. Sempre que se precisam gravar dados em uma página já ocupada, a controladora primeiro precisa apagar os dados anteriores – levando a célula ao seu estado original – para só então executar a nova operação de escrita. Os SSDs atuais não podem manipular solicitações menores do que um único setor, resultando em maior consumo de energia e tráfego de dados desnecessários.

Quanto mais níveis uma célula suporta, menor e mais preciso os pulsos de voltagem precisarão ser. Para tornar esses pulsos de voltagem mais precisos há um retardamento da programação do flash e redução da performance de gravação. Um fator ainda mais prejudicial é que não é possível apagar as páginas de forma independente. Sempre que se é necessário apagar algo, a controladora precisa limpar todo o bloco (128 páginas) que leva 1 ms ou mais. O processo passa a demorar, então, 1000 vezes mais tempo que a escrita de uma página vazia. Se já houver outros dados válidos dentro do bloco a ser apagado, a operação se torna ainda mais demorada, já que a controladora precisa ler todo o conteúdo do bloco, copiá-lo para o buffer, executar o comando de limpeza, fazer a modificação dos dados no buffer e em seguida gravar todo o bloco novamente. Essa sequência de passos demora muito tempo, o que explica como o desempenho de muitos SSD pode ser tão baixo em algumas situações.

Para reduzir o número de vezes em que precisa arcar com essa penalidade, a controladora procura sempre que possível usar blocos vazios, em vez de regravar o conteúdo de blocos existentes. Nesse caso, um novo bloco é usado para armazenar a versão modificada e a tabela de alocação do sistema de arquivos é atualizada, com a entrada apontando para o novo endereço. Essa abordagem funciona de forma aceitável no início, mas a partir do momento em que todos os blocos se dão como utilizados pelo menos uma vez, a controladora passa a ser obrigada a voltar e reciclar os blocos anteriormente utilizados, executando todos os passos já citados. Esse processo é demorado e o desempenho do drive novo é consideravelmente melhor que o do drive já utilizado levando a um sintoma similar ao ocorrido em discos rígidos fragmentados, porém com uma causa diferente.

Na figura 1 a seguir temos uma ilustração do problema apresentado. Presume-se que um bloco é composto de oito páginas. Se os dados são registrados em um bloco vazio como 1-(b), a página seguinte para gravação é 1-(c). Nessa ocasião, os dados não podem ser gravados, enquanto as páginas de “zero” a “dois” estão vazias. Dessa forma, o bloco pode perder três páginas que poderiam ser utilizadas:

Figura 1: Restrição das memórias de tipo FLASH. (Fonte: HA et al, 2011)

TRIM/UNMAP

Especialmente importante para a computação forense, uma característica vem ganhando mais atenção: o recurso TRIM. Uma operação de gravação nos discos SSD deve ser precedida por uma operação de “delete”, o que torna esse processo muito mais lento. Para compensar essa deficiência é utilizado a característica denominada TRIM. O TRIM é uma função que permite ao sistema operacional agendar a limpeza das páginas cujo conteúdo foi deletado ou movido pelo usuário ou pelo próprio sistema operacional (em vez de simplesmente marcá-las como vagas). Isso faz com que as páginas livres do SSD realmente estejam prontas para receber novos dados, sem depender unicamente de algum sistema de reciclagem executado pela controladora.

Durante o processo de “delete” o sistema operacional não irá apenas marcar os setores como livres, mas também enviar o comando TRIM para o SSD com as Logical Block Addressing (LBAs) associadas para serem marcadas como não válidas. O TRIM permite o SSD limpar os LBAs na FTL fornecendo mais espaço para utilizar. Após esse ponto, não é mais necessário para o SSDs realocar os dados nas LBAs durante o processo da “Garbage Collection”. Esse processo irá resultar em menos gravações no Flash habilitando uma amplificação de gravação menor e maior vida útil.

Outro problema segundo estudo apresentado por Jung et al, 2013 é que os processos de TRIM podem gerar sobrecarga nas controladoras, mesmo sendo um processo que “roda em background”. Além disso, ficou comprovado que o TRIM não apaga todos os dados disponíveis, mostrando a relação dos padrões de submissão do TRIM.

Outro grande problema com o TRIM é que ainda nem todos os sistemas operacionais utilizam a tecnologia (Atualmente OS/X, MS Windows e Linux vem implementando a tecnologia). Os sistemas de arquivo NTFS e o Ext4 já dão suporte à tecnologia.

Outro ponto negativo é que com as características de gravação “aleatória”, ou seja, sem a interação do usuário; fica muito mais difícil atuar em casos de recuperação de dados para situações de exclusão acidental, ou mesmo investigação utilizando técnicas de computação forense para identificar fragmentos ou arquivos apagados em espaços não-alocados dos discos. Com isso, fontes importantes de informações para órgãos policiais, consultorias ou investigações internas são perdidas.

Vida útil

Falando sobre a longevidade dos SSD, aqueles que utilizam MLC[1] podem regravar em média apenas 10.000 (dez mil) vezes se comparados com os discos rígidos que passam da casa dos milhões de vezes.

Para evitar que algumas áreas (como no caso de áreas usadas como swap) falhem prematuramente, inutilizando o disco, os fabricantes utilizam sistemas de distribuição de uso (Wear Leveling), que alteram os setores usados cada vez que arquivos são criados ou alterados. Sempre que o conteúdo de um bloco é modificado, o controlador simplesmente lê os dados, faz a alteração e grava o conteúdo em um novo bloco. Isso faz com que o bloco anterior seja novamente utilizado apenas depois que todos os outros blocos do SSD forem utilizados pelo menos uma vez o que evita as penalidades de escrita através de seus algoritmos.

Com 10.000 operações de escrita por bloco, um SSD de 80 GB teria uma vida útil estimada em 800 terabytes (TB) de gravações, o que é um número difícil de atingir em situações normais, já que seria necessário gravar 40 GB de dados todos os dias por 60 anos para atingir a marca.

Entretanto, na prática a vida útil é menor devido a outro fator, conhecido como write amplification, que é causado pela dificuldade de gerenciamento dos blocos. Enquanto o controlador está gravando grandes arquivos isso não é um problema, já que eles serão quebrados em pedaços de 512 KB e cada um ocupará um bloco inteiro.

O grande problema é a gravação de arquivos pequenos, onde existe a possibilidade de ter que apagar e em seguida regravar um bloco inteiro para salvar um arquivo de apenas 4 KB (ou menos). No pior caso possível o write amplification seria de 128 (cento e vinte e oito) vezes – gravar um bloco inteiro para alterar uma única página – mas em situações reais ele é estimado em de 20 (vinte) a 40 (quarenta) vezes.

Nos drives atuais, porém, o cenário não é tão complexo, pois graças ao uso de sistemas inteligentes de redução (combinação de escritas e outras técnicas) os controladores são capazes de reduzir bastante este número.

Como são obrigados a levar vários fatores em conta e oferecer uma estimativa mínima do quanto os SSD vão durar, os fabricantes adotam posturas bem mais conservadoras, estimando a vida útil do SSD em de 5 a 10 anos de uso intenso, o que é de qualquer forma bem mais que a média dos HDD. As células de memória flash são também capazes de preservar os dados por pelo menos 10 (dez) anos sem receberem alimentação elétrica.

Os ciclos limitados de leitura

Alguns pesquisadores comprovaram que os ciclos de leitura podem reduzir a vida útil dos SSDs mais do que as gravações. Isso é muito importante, pois muitos sistemas e aplicações atuais utilizam os SSD como cache, memória virtual ou em aplicações com leitura intensiva.

Além disso, ficou comprovado nesse mesmo estudo que os processos de leitura randômicos perdem performance com o tempo. É um fato curioso já que em tese os processos de leitura não exigem processos adicionais de “delete” como os de gravação.

No próximo post dessa série trataremos sobre o futuro da armazenagem de dados e as novas formas de tratar os problemas apresentados.

Referências

1)     HA, Byungmin; CHO Hyunjim; EOM Young IK. A Study on the Block Fragmentation Problem of SSD based on NAND Flash Memory. ICUIMC’11, February 21–23, 2011, Seoul, Korea, ACM,2011

2)     JUNG, Myoungsoo; KANDEMIR Mahmut; Revisiting Widely Held SSD Expectations and Rethinking System-Level Implications; Department of Computer Science and Engineering;The Pennsylvania State University, University Park, PA 16802, USA, ACM, 2013

3)     KIM, Giryoung; SHIN, Dongkun; Performance Analysis of SSD write using TRIM in NTFS and EXT4; Mobile Communication Engineering, Sungkyunkwan University; Suwon, Korea. IEEE.

4)     CORNWELL, Michael; Anatomy of a Solid State Drive; Communications of the ACM, dezembro 2012, Vol.55 No.12, pag.59-63; ACM.

[1] Os SSD utilizam duas tecnologias: Multi Level Cell (MLC) e Single Level Cell (SLC).

Diferentes tipos de flash utilizam diferentes tipos de entradas para determinar os valores em uma célula. Os do tipo “MLC” – tipo mais barato, de maior densidade e mais amplamente usado – são empregadas em dispositivos eletrônicos de uso corrente, como “pen-drives” e cartões de memória. São mais compactos (uma única “célula” pode armazenar dois bits através da variação dos níveis de corrente que conduz em quatro intensidades identificáveis), mas em contrapartida apresentam um desempenho duas vezes menor que o das memórias SLC.

2 comentários sobre “Queira o Sr. Perito fazer breves considerações sobre os discos de estado sólido – Parte 2

  1. oi. muito interessante seu site. eu estou fazendo pos em segurança da inf. posso perguntar uma coisa que eu nao vi em nenhum lugar? como é feita a recuperação de dados que dispositivos que nao funcionam? por exemplo: um hd que nao funciona mais (nao funciona o motor da agulha do disco). um hd que nao é mais lido pelo computador. é possivel retirar o disco da carcaça do hd e colocar em outra carcaça? (como se eu tirasse o banco de um carro e colocasse em outro carro). sei que o processo de fabricação de um hd é de um laboratorio que alto grau de controle de impurezas. mas fico pensando como isso poderia ser feito numa investigação forense digital.

    • Caro Roni,

      Obrigado por acompanhar o nosso blog.

      Em alguns casos, quando um HD pára de funcionar, pode ser possível a sua recuperação. Nesse contexto, não estamos falando de recuperação de dados, já que, em tese, os dados não foram apagados. Ao invés disso, trata-se do conserto do disco.

      Para consertar discos, obviamente, você irá precisar de apoio de um profissional especializado, pois, de fizer qualquer coisa errada, pode piorar ainda mais a situação.

      Um disco pode parar de funcionar por várias razões, uma delas é por defeito na placa lógica. Essa teoria é bastante tentadora, pois nos leva a querer simplesmente trocar a placa e ver o que acontece. Sugiro muito cuidado, pois quando você coloca uma placa nova num disco, ela pode recodificar os setores e atrapalhar muito mais do que ajudar, mesmo que a placa seja idêntica.

      Outro problema comum é com a parte mecânica interna do disco, essa muito mais difícil de se manipular. Nesse caso, apenas locais que possuem câmaras de isolamento e equipamentos apropriados poderão consertar o disco fazendo a substituição das peças ruins por peças novas.

      Ainda existe a possíbilidade de se retirar os discos e fazer a leitura em máquinas específicas para essa finalidade. Elas funcionam com canhões de íons, o que já nos indica que seu preço é bastante elevado e que você não encontrará esse tipo de tecnologia em qualque esquina. Mas foi com procedimentos desse tipo que HDs destruidos com o ataque de 11 de setembro tiveram seus dados exportados para outros discos.

      Espero ter ajudado.

      Grande abraço.

      Everson Probst

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s