Armazenamento de dados da zona


A Western Digital anunciou recentemente sua iniciativa de armazenamento zonal, uma iniciativa voltada para uma infraestrutura de dados abertos projetada para tirar proveito dos dispositivos de armazenamento zonal.

O Zoned Storage é um novo paradigma de armazenamento motivado por um incrível crescimento de dados. Nossa sociedade é cada vez mais dependente de dados na vida cotidiana, e o gerenciamento de dados em escala extrema está se tornando cada vez mais necessário. Atualmente, em infraestruturas de processamento de dados em larga escala, dezenas de milhares de discos rígidos e unidades de estado sólido são usadas. Porém, mesmo assim, dos mais de 30 dados ZB criados por ano, menos de 20% permanece em armazenamento. O objetivo do nosso setor é garantir que o consumidor possa se dar ao luxo de não descartar dados que possam ser benéficos.

Neste artigo, discutiremos:

  • O que são dispositivos de armazenamento zonal e por que essa tecnologia está sendo implementada
  • Discos rígidos SMR e unidades de estado sólido ZNS
  • Infraestrutura de dados - o que é necessário para implementar o armazenamento de dados zonais

O que são dispositivos de armazenamento de zona?


Na sua forma mais simples, os dispositivos de armazenamento de zona são dispositivos de armazenamento em bloco cujo espaço de endereço é dividido em zonas. O ZSD impõe regras de gravação não convencionais: as zonas podem ser gravadas sequencialmente, apenas a partir do início da zona. Além disso, os dados dentro de uma zona não podem ser substituídos arbitrariamente.


A única maneira de substituir uma zona já gravada é redefinir o ponteiro de registro da zona, que na verdade exclui todos os dados da zona e sobrescreve-o desde o início da zona. Por outro lado, a leitura de dados é praticamente ilimitada e pode ser lida da mesma maneira que nos dispositivos de armazenamento tradicionais.

O conceito de dispositivos de armazenamento zonal é padronizado:

  • Para dispositivos com interface SAS, o trabalho com zonas é prescrito no padrão Z10 T10
  • SATA também padronizada sob T13 ZAC
  • Para SSDs NVMe, está em desenvolvimento uma proposta técnica chamada ZNS

Por que armazenamento zonal?


A motivação para aplicar a tecnologia de armazenamento zonal é a alta eficiência da infraestrutura de armazenamento. Graças a essa tecnologia, dispositivos de maior capacidade podem ser usados ​​de maneira mais econômica. Mais detalhes sobre como essa eficiência econômica é alcançada para cada tipo de dispositivo de zona serão explicados mais adiante neste artigo.

Tudo começou com o SMR


Nos últimos anos, a tecnologia de gravação magnética em mosaico (SMR) foi introduzida nos discos rígidos, o que aumentou a densidade de gravação, aumentou a capacidade e a eficiência econômica dos discos rígidos. Na SMR, diferentemente da gravação convencional, as faixas são gravadas sobrepostas, como telhas no telhado de uma casa. Isso permite que você agrupe faixas mais densamente e, portanto, fornece uma densidade de gravação mais alta. De fato, o uso de SMR nos fornece terabytes de capacidade “gratuitos”: você pode criar uma unidade SMR de 14 ou 15 TB com base em uma unidade normal de 12 TB, sem aumentar o custo de produção.


A principal limitação dessa tecnologia é a incapacidade de gravar dados em faixas em ordem aleatória. Como não podemos substituir blocos arbitrários no telhado da casa, também com os dados no SMR, não podemos substituir arbitrariamente vários blocos sem conectar os trilhos adjacentes. Para controlar a gravação, a superfície do disco é dividida em zonas com um espaço entre elas. Isso permite gravar e apagar cada zona independentemente uma da outra (o tamanho da zona na geração atual de discos geralmente é de 256 MB).

Várias abordagens podem ser usadas para controlar a restrição de gravação. A abordagem tradicional (gerenciada por unidade - controlada pela própria unidade) pressupõe que o dispositivo processe as restrições internas de gravação por conta própria, usando algoritmos em microcódigo e buffers, e forneça uma interface normal para o host. Esse tipo de SMR é comumente usado em dispositivos clientes, como HDDs para laptops. No entanto, para sistemas corporativos ou de nuvem em larga escala, nos quais o desempenho e a utilização do espaço devem ser previsíveis, não é possível contar com o próprio disco para controlar a gravação seqüencial - o desempenho "flutua" demais, dependendo da estrutura e intensidade da carga e da capacidade do buffer.

A SMR gerenciada por host é um requisito quase obrigatório para grandes sistemas de armazenamento de dados e é a opção preferida para data centers.

O controle SMR do host é padronizado no INCITS T10 / T13 como parte dos padrões de dispositivo Zone Block Command (ZBC) e Zone ATA (ZAC) para SAS e SATA, respectivamente.

Namespace de região e NVMe em unidades de estado sólido


Para unidades de estado sólido (SSDs), a restrição na presença de regiões que podem ser gravadas apenas sequencialmente (páginas NAND) e devem ser excluídas antes que novos dados sejam gravados (blocos NAND) sejam uma propriedade integral da operação de memória flash NAND.

Quando os SSDs foram introduzidos pela primeira vez, eles introduziram um sistema de gerenciamento interno, chamado Flash Translation Layer (FTL), que tratava dessa limitação de gravação. O FTL permitiu o uso de unidades de estado sólido em vez de discos rígidos sem a necessidade de reescrever imediatamente a pilha de software. Para o usuário final, o SSD parece um disco rígido com rápido acesso aleatório às informações - e esse é o mérito do FTL.

No entanto, o controle local dentro de um SSD está longe de ser ideal em termos de eficiência. Em particular, existem fatores como:

  • Amplificação de gravação: para lidar com as limitações de não sobrescrever dados, o SSD deve mover os dados por conta própria para limpar áreas de armazenamento não utilizadas chamadas Garbage Collection (GC). O processo de coleta de lixo, quando o FTL "toca tag" com blocos de dados, causa várias gravações da mesma informação (daí o termo "gravação em excesso"), o que leva a um aumento no desgaste da memória flash e diminui a vida útil da unidade de estado sólido. O coeficiente WA mostra quantas operações de gravação devem ser realizadas dentro da unidade para uma operação de gravação recebida do host.



  • (overprovisioning — OP): ( 28% ) .
  • DRAM : FTL - DRAM. , DRAM . — 1 SSD. , SSD 15.36 — 16 «» . , !
  • QoS, . FTL , , , .

Essas deficiências foram aceitáveis ​​na primeira onda da introdução de unidades de estado sólido, uma vez que as pilhas e interfaces de software foram projetadas para discos rígidos e o tempo de resposta ao disco rígido foi muito maior. Para o usuário final, a mudança do HDD para o SSD ainda era uma aceleração perceptível.

Com o tempo, no entanto, o setor passou a criar interfaces e pilhas de software mais eficientes que podem tirar proveito de menor latência e maior largura de banda do flash. Em particular, a especificação da interface NVMe (Non-Volatile Memory Express) foi criada e a pilha de software de baixo custo correspondente desenvolvida.

O estado atual do setor é tal que as otimizações locais que ocorreram no SSD da FTL agora são prejudiciais à implantação da infraestrutura de dados. Em particular, muitos clientes desejam criar uma carga de trabalho sequencial orientada a host que corresponda ao tamanho dos blocos flash NAND. Em resposta, o NVMe padroniza os namespaces de zona (ZNSs), o que permite ao host direcionar E / S para compartilhar cargas de trabalho, além de melhorar a latência, largura de banda e economia, movendo o controle principal para o host.

Se falarmos sobre eficiência econômica, a transição para o ZNS SSD reduzirá o custo da unidade usando uma quantidade menor de NAND (redução de redundância), a possibilidade de usar o QLC em unidades de servidor, reduzindo a quantidade de DRAM nos controladores SSD.

Infraestrutura de dados - Implementando um data warehouse zonal


Já descobrimos que os dispositivos de blocos zonais aumentam a eficiência do armazenamento; no entanto, para tirar proveito desses novos dispositivos, são necessários alguns esforços, pois eles não têm compatibilidade com a pilha de programas de blocos usual. Embora os dispositivos de armazenamento tradicionais não tenham restrições de gravação, os dispositivos de bloqueio de zona têm restrições de gravação que devem ser consistentes dentro da zona. A principal consequência disso é a necessidade de atualizar a pilha de software.

O primeiro componente que precisa ser atualizado é o sistema operacional. Essa não é uma tarefa trivial nos sistemas operacionais modernos de multitarefa em execução em servidores com vários núcleos e soquetes, típicos dos datacenters. A comunidade Linux fez esforços significativos para oferecer suporte a dispositivos de bloco de zona em geral e SMR em particular.

Além de oferecer suporte ao kernel do Linux, existem vários utilitários e aplicativos que suportam dispositivos de bloqueio de zona, como fio, Blktests e util-linux.

Kernel Linux e dispositivos de bloqueio de zona


O trabalho de suporte ao armazenamento de zona no kernel do Linux começou em 2014 com a menor quantidade de suporte incorporada no kernel 3.18. A primeira versão do kernel com suporte funcional aos comandos ZBC / ZAC foi o kernel 4.10 no início de 2017. O suporte continua a melhorar e os kernels mais recentes têm suporte para exibir dispositivos de zona na forma de bloco / dev / sd, além de suporte para alguns sistemas de arquivos (f2fs, btrfs).

A figura abaixo mostra uma imagem de alto nível da estrutura do kernel Linux e como os dispositivos de zona podem ser integrados aos dispositivos de bloco tradicionais. O suporte no kernel Linux foi implementado modificando alguns componentes existentes, introduzindo novas interfaces, como a interface ZBD no nível do bloco, e introduzindo novos componentes, como o mapeador de dispositivos dm-zoned.


Conforme mostrado na figura, existem várias maneiras pelas quais a implantação de uma infraestrutura de dados pode usar dispositivos de bloco de zona. Por exemplo (i) Usando o sistema de arquivos antigo no topo do volume LVM com zona dm, (ii) usando o sistema de arquivos habilitado para ZBC, (iii) usando aplicativos habilitados para ZBD que interagem diretamente com dispositivos de bloco por meio de bibliotecas de usuários, como libzbc, e etc.

Iniciativa de armazenamento em área - Promovendo suporte e implementação mais amplos de tecnologias de aplicativos


Apesar dos sucessos da comunidade de desenvolvedores de código aberto no suporte a Zone Block Devices, os engenheiros de tecnologia da informação e os desenvolvedores de aplicativos ainda estão se esforçando para usar essa tecnologia, por exemplo, descobrindo qual nível de suporte existe em cada versão do kernel Linux, quais versões de aplicativos têm o suporte necessário e qual versão do kernel é necessária para o seu trabalho.

A iniciativa de armazenamento zonal foi lançada em parte para solucionar esse problema e promover um suporte mais amplo a aplicativos para tecnologias de armazenamento zonal. Você pode visitar o site ZonedStorage.iopara saber mais sobre as tecnologias de armazenamento zonal e o uso de ZNS SSDs e ZBC / ZAC SMRs. Lá você encontrará informações sobre os seguintes problemas:

  • Dispositivos de bloqueio de zona
  • Guias de Introdução
  • Suporte e recursos do kernel Linux
  • Aplicativos e Bibliotecas
  • Emulação de dispositivo de zona regularmente
  • Teste de performance
  • Testes de conformidade do sistema

Usando essa plataforma, os engenheiros de infraestrutura e os desenvolvedores de aplicativos de armazenamento agora têm um local centralizado para obter todas as informações e recursos necessários para usar as tecnologias de armazenamento na área.

Você está pronto


Visite ZonedStorage.io e veja se seus servidores estão prontos para trabalhar com unidades de zona. Tente implantar a emulação de software em um dispositivo comum e pode resultar que a estrutura de carga do seu aplicativo se adapte bem ao conceito de armazenamento zonal e considere implantar um ambiente de teste.

All Articles