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

Nos dois primeiros posts dessa série (Parte 1 e Parte 2) trouxemos algumas características da tecnologia de armazenamento SSD e as comparamos com seu antecessor,  o HDD. Agora, vamos abordar novos modelos propostos por essa tecnologia e algumas formas de tratar os problemas, ou soluções – dependendo do ponto de vista, que insurgem com eles, tais como o Garbage Collection, armazenagem em cachê e paralelismo dos dispositivos Flash.

Como mostrado até aqui (não deixe de ler os posts anteriores), a tecnologia SSD possui alguns problemas e características negativas. Abordamos apenas alguns deles e é evidente que ainda há um longo percurso a ser trilhado até termos 100% dos problemas resolvidos, mas muito já foi feito. A seguir apresentamos algumas das soluções propostas:

SOLUÇÕES PROPOSTAS E NOVAS FORMAS DE TRATAR O TEMA

GARBAGE COLLECTION

Como as gravações somente acontecem em blocos vazios, a FTL[1] deve manter um estoque de blocos livres. Se a FTL estiver sem quaisquer blocos livres ou se o volume de blocos livres for pequeno e o SSD estiver inativo, o firmware inicia um processo em background para “coletar o lixo”, esse processo é conhecido como Garbage Collection (GC).

Cabe ao Garbage Collection selecionar o bloco apropriado, mover todas as páginas válidas para um bloco novo e apagar o bloco selecionado. Desta forma blocos livres se tornam disponíveis para uma nova operação de gravação.

Quando há uma instrução de gravação, o cachê funciona como um buffer entre o disco e o FTL. O “compromisso” real de gravações, que acontece em substituição do buffer, é a principal causa da latência de gravação. Em outras palavras, após uma solicitação de gravação, a FTL grava os novos dados em uma página flash limpa e marca os dados antigos como inválidos. Quando há insuficientes páginas limpas, a FTL executa esse processo (“GC”) para deixar livres as páginas flash com dados inválidos.

Esse processo é desencadeado em baixo nível como tarefa periódica e busca garantir que o sistema não tenha carência de blocos livres para escrever, prezando pela alta performance dos SSDs em blocos com estado inicial limpo.

Um ponto importante e negativo do Garbage Collection é que, com o tempo de uso dos SSDs e como resultado da escrita e atualização de dados nos SSDs por diversas vezes, algumas páginas tornam-se inválidas, gerando fragmentação ao longo do tempo por toda a memória. Ainda assim, essa solução tem grande valor.

A figura a seguir ilustra essa característica:

Figura 1: O processo de exclusão de dados em discos SSD (Adaptado de: http://www.thessdreview.com/daily-news/latest-buzz/garbage-collection-and-trim-in-ssds-explained-an-ssd-primer/)

NOVAS FORMAS DE ARMAZENAGEM EM CACHÊ

Um estudo proposto por WU, G, (2012) sugere um novo esquema de gerenciamento do cachê, chamado Block-Page Adaptive Cache (BPAC), para solicitações de gravação para o SSD na pequena parte RAM do disco. Em linhas gerais, as principais contribuições incluem o seguinte:

  • Uma nova estrutura de dados de cachê – “Dual-list”, que se propõe a particionar o espaço do cachê do SSD em listas de blocos e páginas para requisições de buffer. Essa metodologia utiliza o espaço de cachê de forma mais eficiente que as formas baseadas somente em blocos, que são comumente usadas nos esquemas existentes;
  • Uma nova métrica para avaliar a localidade espacial das cargas de entrada e saída (I/O) dos SSDs;
  • Uma nova abordagem adaptável para diferentes cargas de trabalho e dinamicamente diferenciar os clusters de localidade espacial baixa e os de alta. A nova política de arquitetura e substituição combinada atinge melhor desempenho em comparação com os regimes de reconhecimento de flash existentes. (Ganhos de até 79,6% e aumento médio da taxa de transferência para despejos do Cache em até 350%);

Esses resultados são animadores para a resolução desse tipo de problema.

OTIMIZAÇÃO DO PARALELISMO

Entre diferentes pesquisas de várias tecnologias para aumentar o desempenho dos SSDs, o método de paralelismo tem se mostrado o mais eficiente para melhoria de desempenho.

Park et al (2010) apresenta uma proposta para melhorar o desempenho do fluxo de dados nos dispositivos de armazenamento SSDs através de duas abordagens: reordenação de requisições e mapeamento dinâmico de escrita de requisições.

No estudo, fica demonstrado que cada pacote flash consiste em múltiplos blocos de dados (dies) e todas as partes desses blocos (planos) carregam o mesmo tipo de operação em um determinado tempo. Cada die tem uma capacidade relativamente baixa, chegando a 16gb /die. Um SSD padrão contém cerca de 8-256 dies para atender as necessidades de armazenamento computacional. (Entretanto, múltiplos dies podem causar problemas de aquecimento).

Assim, o paralelismo só apresenta o máximo desempenho quando as requisições são do mesmo tipo. Cada plano possui dois registradores cachê: um registrador de dados que armazena as requisições antes de distribuir comandos de leitura e escrita e outro que efetua um pipeline dos comandos que chegam.

As abordagens propostas pelos pesquisadores para aumentar a eficiência do paralelismo estão ilustradas na figura 2. A primeira abordagem, a reordenação de requisições, é divida em duas: reordenação multi-planos e reordenação de pipeline. A primeira reordena as requisições para atribuir as do mesmo tipo a cada bloco de dados o máximo possível. Já a segunda troca a ordem de requisições para que após uma requisição, todas as que possuem o mesmo tipo sejam executadas antes das que possuem tipos diferentes; mas quando há dependência de dados a ordem original é preservada.

Figura 2: Reordenação de requisições. Fonte: Park et al (2010)

FUTURO E MODELOS PROPOSTOS

Ainda há muitas dúvidas sobre suas reais vantagens e o futuro da armazenagem de dados. Os desafios são muitos. No futuro as memorias NAND terão limitações físicas. Os dies e outros componentes estão continuamente diminuindo custos e de tamanho e criando problemas de confiabilidade que não podem ser compensados pelas atuais controladoras e firmware. Novas abordagens e formas de analisar o problema são necessárias. A seguir apresentamos algumas delas:

Em trabalho recente [X. Zhang, K. Liu, K. Davis, and S. Jiang, 2013] pesquisadores propuseram um modelo hibrido chamado “HybridSwap” onde se utiliza os HDDs e SSDs aproveitando o melhor de cada um, reduzindo os ciclos de gravação do SSD e as trocas entre a memória e o disco (“swap in” e “swap-out”), e portanto sua vida útil.

Em linhas gerais o HybridSwap foi concebido para minimizar as gravações do SSD sem perda de desempenho indevida. O HybridSwap sequencialmente troca um conjunto de páginas de memória virtual no disco rígido, se eles são esperados para ser lidos juntos. Usando um histórico de padrões de acesso de página o HybridSwap cria dinamicamente um layout de página de memória virtual sobre o espaço de swap, abrangendo o SSD e disco rígido, de forma que as leituras são servidas pelo SSD e as leituras sequênciais são servidas de forma assíncrona pelo disco rígido com alta eficiência. Na prática, o HybridSwap efetivamente pode explorar a largura de banda agregada dos dois dispositivos para acelerar a troca de página. Ficou comprovado que essa solução proposta reduziu em até 40% os ciclos de gravação nos discos SSD.

Pode ser uma solução para os problemas desse tipo e um campo a aprofundar os estudos.

Em outro trabalho, [Kang et al, 2013] é apresentado o modelo de “Smart SSD” que permite que sistemas host explorem plenamente o desempenho dos SSDs sem exigir que o sistema operacional e os aplicativos entendam as características particulares desses SSDs. Isto é alcançado descarregando tarefas de utilização intensiva de dados de um aplicativo host para o “Smart SSD”. Cada Smart SSD tem um mecanismo de execução interna para processar dados armazenados localmente e a máquina host coordena as subtarefas de processamento, bem como diretamente algumas partes das tarefas. Ao isolar o tráfego de dados dentro de um dispositivo, o mecanismo de execução pode agendar as solicitações de I/O mais eficientemente. Ele pode ainda decidir utilizar totalmente o I/O quando o dispositivo está ocioso, ou pausar o processamento de dados, quando há muitas solicitações de usuários. Este modelo também permite um processamento de dados eficientes (pouco gasto de energia), porque não são utilizados recursos tradicionalmente “gastadores” de energia como DRAM e CPUs.

Há ainda algumas dúvidas sobre o comportamento dos discos SSD principalmente sobre os acessos randômicos, performance, ciclo de vida entre outros, mas não há como negar sua relevância para o atual estágio dos dispositivos de armazenamento de dados.

Novas tecnologias de memórias ainda promissoras como a “Phasechange Memory” (PCM) e “Resistive RAM” (ReRAM), mostram evoluções promissoras em superar as limitações do SSD.

É evidente que os sistemas de arquivos e as aplicações precisam ser reescritas para aproveitarmos os reais benefícios e performance que os discos SSD podem oferecer.

É o momento certo para trocarmos os discos rígidos pelo SSD? Quedas de desempenho substancial após testes de estresse nos mostram que ainda é muito cedo para chegar à uma conclusão firme se os HDD em breve serão substituídos pelos SSD; entretanto fica claro o potencial da tecnologia, seus impactos para o uso comercial e acadêmico; e os avanços que estamos vivenciando. Para os pesquisadores de armazenamento de dados e peritos forenses, os trabalhos apresentados mostram que os SSDs apresentam muitos desafios, mas também muitas oportunidades.

REFERÊNCIAS

  1. WU, G., HE, X., and ECKART, B. 2012. An adaptive write buffer management scheme for flash-based SSDs.ACM Trans. Storage 8, 1, Article 1 (February 2012), 24 pages.
  2. Park, E. Seo, J. Y. Shin, S. Maeng and J. Lee. Exploiting Internal Parallelism of Flash-based SSDs. IEEE Computer Architecture Letters, Volume 9, Número 1, Janeiro-Junho de 2010.
  3. Zhang, K. Liu, K. Davis, and S. Jiang. Synergistic Coupling of SSD and Hard Disk for QoS-aware Virtual Memory. In the IEEE International Parallel and Distributed Processing Symposium, 2013.
  4. KANG, Michael; Kee, Yang,; MILLER, Ethan; PARK, Chanik. Enabling Cost-effective Data Processing with Smart SSD. Storage Conference, 2013, Paper 25.

[1] A FTL (Flash Translation Layer), localizada entre o sistema operacional e a memória flash do tipo NAND, tem um papel fundamental no mapeamento de um endereço, requisitado pelo sistema operacional com um endereço físico na memória flash NAND. Existem basicamente três tipos quanto aos métodos de mapeamento de endereço: mapeamento de nível de página, mapeamento de nível de bloco e mapeamento híbrido.

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