Descrição geral dos blobs de páginas do Azure

O Armazenamento do Azure oferece três tipos de armazenamento de blobs: Blobs de Blocos, Blobs de Acréscimo e blobs de páginas. Os blobs de blocos são compostos por blocos e são ideais para armazenar texto ou ficheiros binários e para carregar ficheiros grandes de forma eficiente. Os blobs de acréscimo também são compostos por blocos, mas são otimizados para operações de acréscimo, tornando-os ideais para cenários de registo. Os blobs de páginas são compostos por páginas de 512 bytes com um tamanho total de até 8 TB e foram concebidos para operações de leitura/escrita aleatórias frequentes. Os blobs de páginas são a base dos Discos IaaS do Azure. Este artigo centra-se em explicar as funcionalidades e os benefícios dos blobs de páginas.

Os blobs de páginas são uma coleção de páginas de 512 bytes, que permitem ler/escrever intervalos arbitrários de bytes. Por conseguinte, os blobs de páginas são ideais para armazenar estruturas de dados dispersas e baseadas em índices, como o SO e os discos de dados para Máquinas Virtuais e Bases de Dados. Por exemplo, SQL do Azure DB utiliza blobs de páginas como o armazenamento persistente subjacente para as respetivas bases de dados. Além disso, os blobs de páginas também são frequentemente utilizados para ficheiros com atualizações Range-Based.

As principais funcionalidades dos blobs de páginas do Azure são a interface REST, a durabilidade do armazenamento subjacente e as capacidades de migração totalmente integradas para o Azure. Estas funcionalidades são abordadas mais detalhadamente na secção seguinte. Além disso, os blobs de páginas do Azure são atualmente suportados em dois tipos de armazenamento: Armazenamento Premium e Armazenamento Standard. Armazenamento Premium foi concebido especificamente para cargas de trabalho que requerem um desempenho elevado consistente e baixa latência, o que torna os blobs de páginas premium ideais para cenários de armazenamento de elevado desempenho. As contas de armazenamento standard são mais económicas para executar cargas de trabalho não sensíveis à latência.

Restrições

Os blobs de páginas só podem utilizar a camada acesso frequente , não podem utilizar as camadas Esporádico ou Arquivo . Para obter mais informações sobre as camadas de acesso, veja Camadas de acesso Frequente, Esporádico e Arquivo para dados de blobs.

Exemplos de casos de utilização

Vamos abordar alguns casos de utilização para blobs de páginas a começar pelos Discos IaaS do Azure. Os blobs de páginas do Azure são a estrutura principal da plataforma de discos virtuais para o IaaS do Azure. Tanto o SO do Azure como os discos de dados são implementados como discos virtuais onde os dados persistem de forma duradoura na plataforma de Armazenamento do Azure e, em seguida, são entregues às máquinas virtuais para obter o máximo desempenho. Os Discos do Azure são mantidos no formato VHD do Hyper-V e armazenados como um blob de páginas no Armazenamento do Azure. Além de utilizar discos virtuais para VMs IaaS do Azure, os blobs de páginas também ativam cenários PaaS e DBaaS, como SQL do Azure serviço BD, que utiliza atualmente blobs de páginas para armazenar dados SQL, o que permite operações de leitura/escrita aleatórias rápidas para a base de dados. Outro exemplo seria se tivesse um serviço PaaS para acesso a suportes de dados partilhados para aplicações de edição de vídeo colaborativas, os blobs de páginas ativassem o acesso rápido a localizações aleatórias no suporte de dados. Também permite a edição e intercalação rápidas e eficientes dos mesmos suportes de dados por vários utilizadores.

Os serviços Microsoft originais, como o Azure Site Recovery, Azure Backup, bem como muitos programadores de terceiros, implementaram inovações líderes do setor com a interface REST do blob de páginas. Seguem-se alguns dos cenários exclusivos implementados no Azure:

  • Gestão de instantâneos incrementais direcionada para a aplicação: as aplicações podem tirar partido de instantâneos de blobs de páginas e APIs REST para guardar os pontos de verificação da aplicação sem incorrer numa duplicação dispendiosa de dados. O Armazenamento do Azure suporta instantâneos locais para blobs de páginas, que não requerem a cópia de todo o blob. Estas APIs de instantâneos públicos também permitem aceder e copiar deltas entre instantâneos.
  • Migração em direto da aplicação e dos dados do local para a cloud: copie os dados no local e utilize as APIs REST para escrever diretamente num blob de páginas do Azure enquanto a VM no local continua a ser executada. Depois de o destino ser apanhado, pode efetuar rapidamente a ativação pós-falha para a VM do Azure com esses dados. Desta forma, pode migrar as VMs e os discos virtuais do local para a cloud com um período de indisponibilidade mínimo, uma vez que a migração de dados ocorre em segundo plano enquanto continua a utilizar a VM e o tempo de inatividade necessário para a ativação pós-falha será curto (em minutos).
  • Acesso partilhado baseado em SAS , que permite cenários como múltiplos leitores e escritor único com suporte para controlo de simultaneidade.

Os discos não geridos estão a ser descontinuados. Para obter detalhes, veja Migrar os discos não geridos do Azure até 30 de setembro de 2025.

Preços

Ambos os tipos de armazenamento oferecidos com blobs de páginas têm o seu próprio modelo de preços. Os blobs de páginas Premium seguem o modelo de preços dos discos geridos, enquanto os blobs de páginas padrão são faturados com base no tamanho utilizado e em cada transação. Para obter mais informações, veja a página de preços dos Blobs de Páginas do Azure.

Funcionalidades de blob de página

API REST

Veja o seguinte documento para começar a programar com blobs de páginas. Por exemplo, veja como aceder a blobs de páginas com a Biblioteca de Cliente de Armazenamento para .NET.

O diagrama seguinte descreve as relações gerais entre a conta, os contentores e os blobs de páginas.

Captura de ecrã a mostrar as relações entre a conta, os contentores e os blobs de páginas

Criar um blob de páginas vazio de um tamanho especificado

Primeiro, obtenha uma referência a um contentor. Para criar um blob de páginas, chame o método GetPageBlobClient e, em seguida, chame o método PageBlobClient.Create . Transmita o tamanho máximo do blob a criar. Esse tamanho tem de ser um múltiplo de 512 bytes.

long OneGigabyteAsBytes = 1024 * 1024 * 1024;

BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);

var blobContainerClient =
    blobServiceClient.GetBlobContainerClient(Constants.containerName);

var pageBlobClient = blobContainerClient.GetPageBlobClient("0s4.vhd");

pageBlobClient.Create(16 * OneGigabyteAsBytes);

Redimensionar um blob de páginas

Para redimensionar um blob de páginas após a criação, utilize o método Redimensionar . O tamanho pedido deve ser um múltiplo de 512 bytes.

pageBlobClient.Resize(32 * OneGigabyteAsBytes);

Escrever páginas num blob de páginas

Para escrever páginas, utilize o método PageBlobClient.UploadPages .

pageBlobClient.UploadPages(dataStream, startingOffset);

Isto permite-lhe escrever um conjunto sequencial de páginas até 4 MBs. O desvio que está a ser escrito no tem de começar num limite de 512 bytes (começandoOffset % 512 == 0) e terminar num limite 512 - 1.

Assim que um pedido de escrita para um conjunto sequencial de páginas for bem-sucedido no serviço blob e for replicado para durabilidade e resiliência, a escrita foi consolidada e o sucesso é devolvido ao cliente.

O diagrama abaixo mostra 2 operações de escrita separadas:

Um diagrama que mostra as duas opções de escrita separadas.

  1. Uma operação de Escrita com início no desvio de 0 de comprimento de 1024 bytes
  2. Uma operação de Escrita a partir do desvio 4096 de comprimento 1024

Ler páginas a partir de um blob de páginas

Para ler páginas, utilize o método PageBlobClient.Download para ler um intervalo de bytes do blob de páginas.

var pageBlob = pageBlobClient.Download(new HttpRange(bufferOffset, rangeSize));

Isto permite-lhe transferir o blob completo ou o intervalo de bytes a partir de qualquer deslocamento no blob. Ao ler, o desvio não tem de começar num múltiplo de 512. Ao ler bytes a partir de uma página NUL, o serviço devolve zero bytes.

A figura seguinte mostra uma operação de Leitura com um desvio de 256 e um tamanho de intervalo de 4352. Os dados devolvidos estão realçados a laranja. São devolvidos zeros para páginas NUL.

Um diagrama a mostrar uma operação de Leitura com um desvio de 256 e um tamanho de intervalo de 4352

Se tiver um blob povoado de forma escassa, basta transferir as regiões de página válidas para evitar pagar a saída de zero bytes e reduzir a latência de transferência.

Para determinar que páginas são suportadas por dados, utilize PageBlobClient.GetPageRanges. Em seguida, pode enumerar os intervalos devolvidos e transferir os dados em cada intervalo.

IEnumerable<HttpRange> pageRanges = pageBlobClient.GetPageRanges().Value.PageRanges;

foreach (var range in pageRanges)
{
    var pageBlob = pageBlobClient.Download(range);
}

Alugar um blob de páginas

A operação De Concessão de Blobs estabelece e gere um bloqueio num blob para operações de escrita e eliminação. Esta operação é útil em cenários em que um blob de páginas está a ser acedido a partir de vários clientes para garantir que apenas um cliente pode escrever no blob de cada vez. Os Discos do Azure, por exemplo, tiram partido deste mecanismo de concessão para garantir que o disco só é gerido por uma única VM. A duração do bloqueio pode ser de 15 a 60 segundos ou pode ser infinita. Veja a documentação aqui para obter mais detalhes.

Além das APIs REST avançadas, os blobs de páginas também fornecem acesso partilhado, durabilidade e segurança melhorada. Abordaremos estas vantagens mais detalhadamente nos próximos parágrafos.

Acesso simultâneo

A API REST de blobs de páginas e o respetivo mecanismo de locação permitem que as aplicações acedam ao blob de páginas a partir de vários clientes. Por exemplo, digamos que precisa de criar um serviço cloud distribuído que partilhe objetos de armazenamento com vários utilizadores. Pode ser uma aplicação Web que serve uma grande coleção de imagens a vários utilizadores. Uma opção para implementar isto é utilizar uma VM com discos anexados. As desvantagens desta situação incluem(i) a restrição de que um disco só pode ser anexado a uma única VM, limitando assim a escalabilidade, a flexibilidade e os riscos crescentes. Se existir um problema com a VM ou o serviço em execução na VM, devido à concessão, a imagem fica inacessível até a concessão expirar ou estar quebrada; e (ii) Custo adicional de ter uma VM IaaS.

Uma opção alternativa é utilizar os blobs de páginas diretamente através das APIs REST do Armazenamento do Azure. Esta opção elimina a necessidade de VMs IaaS dispendiosas, oferece total flexibilidade de acesso direto de vários clientes, simplifica o modelo de implementação clássica ao eliminar a necessidade de anexar/desanexar discos e elimina o risco de problemas na VM. Além disso, fornece o mesmo nível de desempenho para operações aleatórias de leitura/escrita que um disco

Durabilidade e elevada disponibilidade

Tanto o armazenamento standard como o premium são armazenamento durável onde os dados do blob de páginas são sempre replicados para garantir a durabilidade e a elevada disponibilidade. O Azure tem proporcionado consistentemente durabilidade de nível empresarial para discos IaaS e blobs de páginas, com uma Taxa de Falhas Anualizada de zero por cento líder do setor.

Para obter mais informações sobre a redundância do Armazenamento do Azure para contas de armazenamento standard e premium, veja Redundância do Armazenamento do Azure e estas duas secções especificamente:

Migração totalmente integrada para o Azure

Para os clientes e programadores interessados em implementar a sua própria solução de cópia de segurança personalizada, o Azure também oferece instantâneos incrementais que apenas contêm os deltas. Esta funcionalidade evita o custo da cópia completa inicial, o que reduz consideravelmente o custo da cópia de segurança. Juntamente com a capacidade de ler e copiar dados diferenciais de forma eficiente, esta é outra capacidade avançada que permite ainda mais inovações por parte dos programadores, o que leva a uma melhor experiência de recuperação após desastre e cópia de segurança (DR) na classe no Azure. Pode configurar a sua própria solução de cópia de segurança ou DR para as suas VMs no Azure com o Instantâneo de Blobs , juntamente com a API Obter Intervalos de Páginas e a API de Blobs de Cópia Incremental , que pode utilizar para copiar facilmente os dados incrementais para DR.

Além disso, muitas empresas têm cargas de trabalho críticas já em execução em datacenters no local. Para migrar a carga de trabalho para a cloud, uma das principais preocupações seria a quantidade de tempo de inatividade necessário para copiar os dados e o risco de problemas imprevistos após a transição. Em muitos casos, o período de indisponibilidade pode ser um showstopper para migração para a cloud. Com a API REST de blobs de páginas, o Azure resolve este problema ao ativar a migração da cloud com interrupções mínimas para cargas de trabalho críticas.

Para obter exemplos sobre como tirar um instantâneo e como restaurar um blob de página a partir de um instantâneo, veja o artigo configurar um processo de cópia de segurança com instantâneos incrementais .