O que é armazenamento em bloco?

O armazenamento em bloco é a tecnologia que controla o armazenamento de dados e os dispositivos de armazenamento. Ele pega todos os dados, como um arquivo ou entrada de banco de dados, e os divide em blocos de tamanhos iguais. Em seguida, o sistema de armazenamento em blocos armazena o bloco de dados no armazenamento físico subjacente de uma maneira otimizada para acelerar o acesso e a recuperação. Os desenvolvedores preferem o armazenamento em bloco para aplicações que exigem acesso eficiente, rápido e confiável aos dados. Pense no armazenamento em bloco como um canal mais direto para os dados. Por outro lado, o armazenamento de arquivos tem uma camada extra que consiste em um sistema de arquivos (NFS, SMB) para processar antes de acessar os dados.

Quais são os benefícios do armazenamento em blocos?

As organizações usam armazenamento em nível de bloco devido às seguintes vantagens.

Performance

Metadados são dados adicionais que descrevem os dados primários contidos no sistema de armazenamento. O armazenamento em bloco usa metadados limitados, mas depende de identificadores exclusivos atribuídos a cada bloco para operações de leitura/gravação. Isso reduz a sobrecarga de transferência de dados e permite que o servidor acesse e recupere dados com eficiência no armazenamento em bloco. Como os metadados de armazenamento em blocos são limitados, o armazenamento em blocos oferece latência ultrabaixa necessária para workloads de alta performance. Isso é necessário para aplicações sensíveis à latência, como bancos de dados. Por exemplo, a Viasat usa o Amazon Elastic Block Store (Amazon EBS) para capturar dados de alto throughput (altamente transacionais) e otimizar os custos de armazenamento. As organizações usam o Amazon EBS para otimização de performance e custo, escala e agilidade, e para proteção de dados com snapshots do EBS.

A arquitetura de armazenamento em blocos fornece vários caminhos para os dados, enquanto o armazenamento de arquivos fornece apenas um caminho, é por isso que o armazenamento em blocos é preferido para aplicações de alta performance.

Flexibilidade e escalabilidade

Os dispositivos de armazenamento em bloco não estão restritos a ambientes de rede específicos. Os blocos individuais podem ser configurados para diferentes sistemas operacionais, como Windows ou Linux. Os desenvolvedores podem compartilhar dados em vários ambientes para garantir alta disponibilidade. A arquitetura de armazenamento em blocos também é altamente escalável. Os desenvolvedores podem adicionar novos blocos aos existentes para atender às crescentes necessidades de capacidade.

Modificação frequente

O armazenamento em bloco suporta gravações frequentes de dados sem afetar a performance. Em vez de reescrever o arquivo inteiro, o sistema identifica o bloco específico que precisa ser alterado. Em seguida, ele reescreve o bloco selecionado com os novos dados. Isso torna o armazenamento em bloco muito eficiente para gerenciar arquivos grandes que exigem atualizações frequentes.

Controle granular

Os desenvolvedores ganham um alto grau de controle sobre o armazenamento de dados no armazenamento em bloco. Por exemplo, eles podem otimizar a performance agrupando dados que mudam rapidamente em blocos específicos e armazenando arquivos estáticos em outros. Isso melhora a performance do sistema, pois as atualizações contínuas afetam apenas um pequeno número de blocos de dados em vez de um arquivo inteiro. Por exemplo, o armazenamento em bloco oferece a flexibilidade de classificar dados que mudam rapidamente em camadas no disco de estado sólido (SSD) para obter o mais alta performance e armazenar dados quentes ou frios em discos rígidos (HDD) de menor custo.

Quais são os casos de uso do armazenamento em bloco?

As características exclusivas do armazenamento em blocos o tornam a opção preferida para aplicações transacionais, essenciais à missão e com uso intenso de E/S. O armazenamento em blocos é usado para várias aplicações, incluindo bancos de dados relacionais ou transacionais, bancos de dados de séries temporais, contêineres, discos de inicialização e sistemas de arquivos de hipervisor.

Redes de área de armazenamento

Os desenvolvedores geralmente implantam o armazenamento em bloco como uma rede de área de armazenamento (SAN). A SAN é uma tecnologia de rede complexa que apresenta o armazenamento em bloco a vários sistemas em rede como se esses blocos fossem dispositivos conectados localmente. As SANs normalmente usam interconexões de canal de fibra. Por outro lado, um armazenamento conectado à rede (NAS) é um único dispositivo que serve arquivos pela Ethernet.

A arquitetura SAN consiste em três camadas:

  • A camada de host consiste nos servidores que gerenciam o acesso ao armazenamento
  • A camada de armazenamento consiste em dispositivos físicos de armazenamento em bloco, como fita magnética, unidades de disco ou mídia óptica
  • A camada de malha une servidores SAN e armazenamento SAN com dispositivos como switches SAN, pontes de protocolo, roteadores, cabos e dispositivos de gateway

É importante observar que as SANs empregam redundância usando replicação síncrona ou assíncrona em longas distâncias. Isso reduz o tempo de inatividade caso uma localização geográfica não possa ser acessada.

A arquitetura SAN pode funcionar com vários tipos de armazenamento em um ambiente unificado, incluindo armazenamento em bloco. O armazenamento em blocos fornece uma alternativa de alta eficiência ao armazenamento de arquivos em SANs.

Contêineres

Os desenvolvedores usam o armazenamento em bloco para armazenar aplicações em contêiner na nuvem. Os contêineres são pacotes de software que contêm a aplicação e seus arquivos de recursos para implantação em qualquer ambiente de computação. Assim como os contêineres, o armazenamento em bloco é igualmente flexível, escalável e eficiente. Com o armazenamento em bloco, os desenvolvedores podem migrar os contêineres sem problemas entre servidores, locais e ambientes operacionais.

Workloads transacionais

As workloads transacionais são sequências de dados gerados em pontos específicos dos processos de negócios. Por exemplo, registros de vendas, registros de operação e alertas de login são workloads transacionais. As organizações que processam transações urgentes e de missão crítica armazenam essas workloads em um banco de dados de baixa latência, alta capacidade e tolerante a falhas.

O armazenamento em bloco permite que os desenvolvedores configurem um banco de dados transacional robusto, escalável e altamente eficiente. Como cada bloco é uma unidade independente, o banco de dados tem um desempenho ideal, mesmo quando os dados armazenados aumentam. Além disso, blocos de armazenamento individuais podem ser hospedados em servidores diferentes, evitando gargalos de acesso.

Em aplicações de missão crítica, o armazenamento em blocos é protegido por uma Redundant Array of Independent Disks (RAID – Matriz redundante de discos independentes) para garantir a redundância de dados. O sistema RAID faz backup dos arquivos de dados no armazenamento secundário e recupera a cópia se o disco principal falhar. Isso garante que a aplicação permaneça ininterrupta ao armazenar e recuperar workloads transacionais no armazenamento em blocos.

Análise e data warehousing

O armazenamento em blocos é usado com a arquitetura Hadoop Distributed File System (HDFS) do Hadoop para armazenar dados como unidades distribuídas independentemente, permitindo performance para aplicações de análise Hadoop e Kafka.

Máquinas virtuais

Uma máquina virtual (VM) é uma tecnologia que permite que um computador execute um ambiente operacional separado com recursos de computação definidos por software. Por exemplo, você pode executar um sistema operacional Linux em uma área de trabalho do Windows com uma VM. Um hipervisor é uma camada de abstração responsável por alocar os serviços de memória, unidade e computação necessários para executar o ambiente operacional secundário.

O armazenamento em bloco é compatível com hipervisores de VM populares. Os usuários podem instalar o sistema operacional, o sistema de arquivos e outros recursos de computação em um volume de armazenamento em blocos. Eles fazem isso formatando o volume de armazenamento em bloco e transformando-o em um sistema de arquivos VM. Isso permite que eles aumentem ou diminuam facilmente o tamanho da unidade virtual e transfiram o armazenamento virtualizado de um host para outro. 

Como o armazenamento em blocos funciona?

Em um sistema de armazenamento em bloco, você pode dividir os dados em blocos ou partes independentes de tamanho fixo. Cada bloco é uma parte individual do armazenamento de dados. Uma informação completa, como um arquivo de dados, é armazenada em vários blocos não sequenciais.

O sistema de armazenamento em blocos não mantém metadados de alto nível, como tipo de arquivo, propriedade e carimbo de data/hora. Os desenvolvedores devem projetar uma tabela de pesquisa de dados no sistema de aplicações para gerenciar o armazenamento de dados nos respectivos blocos. A aplicação pode armazenar dados em diferentes ambientes operacionais para aumentar a eficiência de leitura/gravação.

Gravação de dados

Durante uma sequência de gravação, a aplicação divide os dados em várias seções de tamanho de bloco. Ele grava os dados em vários blocos e registra o identificador do bloco em uma tabela de pesquisa de dados. A tabela de pesquisa permite que o servidor calcule o endereço relativo dos dados armazenados no bloco.

Leitura de dados

Quando os usuários solicitam um arquivo específico do sistema de armazenamento em blocos, o servidor usa a tabela de pesquisa de dados para determinar onde partes dos dados são armazenadas. Em seguida, a aplicação recupera os dados de vários blocos e os mescla na sequência original.

Quais outros tipos de armazenamento estão disponíveis?

Além do armazenamento em bloco, também há opções de armazenamento de objetos e arquivos. Cada tipo oferece suas próprias vantagens exclusivas.

Armazenamento de objetos

O armazenamento de objetos é uma tecnologia que armazena e gerencia dados em um formato não estruturado chamado objetos. Cada objeto é marcado com um identificador exclusivo e contém metadados que descrevem o conteúdo subjacente. Por exemplo, o armazenamento de objetos para fotos contém metadados relacionados ao fotógrafo, resolução, formato e tempo de criação. Os desenvolvedores usam o armazenamento de objetos para armazenar dados não estruturados, como texto, vídeo e imagens. 

Comparação entre o armazenamento em blocos e o armazenamento em objetos

Ambas as soluções de armazenamento são benéficas, dependendo do caso de uso. O armazenamento em bloco fornece valores de baixa latência e alta performance em vários casos de uso. Seus recursos são úteis principalmente para armazenamento de banco de dados estruturado, volumes de sistemas de arquivos de VM e altos volumes de cargas de leitura e gravação. O armazenamento de objetos é mais usado para grandes volumes de dados não estruturados, especialmente quando durabilidade, armazenamento ilimitado, escalabilidade e gerenciamento complexo de metadados são fatores relevantes para a performance geral.

Armazenamento de arquivos

O armazenamento de arquivos armazena dados em uma estrutura hierárquica de arquivos e pastas. Em ambientes de rede, o armazenamento baseado em arquivos geralmente usa uma tecnologia de rede conectada como armazenamento (NAS). O NAS permite que os usuários acessem dados de armazenamento em rede de maneira semelhante a um disco rígido local. O armazenamento de arquivos é fácil de usar e permite que os usuários gerenciem o controle de compartilhamento de arquivos.

Comparação entre o armazenamento em blocos e o armazenamento de arquivos

O sistema de armazenamento de arquivos armazena dados em um ambiente específico, enquanto os sistemas de armazenamento em bloco podem ser integrados a diferentes sistemas operacionais. O armazenamento de arquivos fornece uma interface intuitiva para a computação do usuário final. Enquanto isso, você pode adicionar novos blocos de dados ao sistema de armazenamento em blocos sem aumentar a latência operacional. 

Armazenamento de instâncias

Um armazenamento de instâncias oferece armazenamento temporário no nível de bloco para sua instância. Esse armazenamento está localizado em discos conectados fisicamente ao computador host. O armazenamento de instâncias é ideal para o armazenamento temporário de informações que são alteradas com frequência, como buffers, caches, dados temporários e outros conteúdos temporários, ou para dados replicados em uma frota de instâncias, como um grupo de servidores Web com balanceamento de carga.

Um armazenamento de instâncias consiste em um ou mais volumes de armazenamento de instâncias expostos como dispositivos de blocos. O tamanho de um armazenamento de instâncias, bem como o número de dispositivos disponíveis, varia de acordo com o tipo de instância

Como a AWS pode atender às suas necessidades de armazenamento em bloco?

O Amazon EBS é uma solução de armazenamento em blocos fácil de usar para workloads em nuvem. Os desenvolvedores usam o Amazon EBS para fornecer um serviço de armazenamento persistente para workloads do Amazon Elastic Compute Cloud (Amazon EC2).

  • O Amazon EBS fornece uma solução de armazenamento altamente escalável para aplicações essenciais à missão e com uso intenso de E/S.
  • Os snapshots do Amazon EBS fornecem um método fácil e seguro para proteção de dados de armazenamento em blocos.
  • Os desenvolvedores podem instalar vários tipos de bancos de dados no Amazon EBS, incluindo SAP HANA, Oracle, Microsoft SQL Server, MySQL, Cassandra e MongoDB.

 

Comece a usar o armazenamento em bloco criando uma conta gratuita da AWS hoje mesmo.

Próximas etapas para armazenamento em blocos na AWS

Confira outros recursos relacionados a produtos
Veja ofertas gratuitas de serviços de armazenamento na nuvem 
Cadastre-se para obter uma conta gratuita

Obtenha acesso instantâneo ao nível gratuito da AWS. 

Cadastre-se 
Comece a criar no console

Comece a criar no Console de Gerenciamento da AWS.

Faça login