Panoramica dei BLOB di pagine di AzureOverview of Azure page blobs

Archiviazione di Azure offre tre tipi di archivio BLOB: BLOB in blocchi, BLOB di accodamento e BLOB di pagine.Azure Storage offers three types of blob storage: Block Blobs, Append Blobs and page blobs. I BLOB in blocchi sono costituiti da blocchi e sono ideali per l'archiviazione di file di testo o binari e per il caricamento di file di grandi dimensioni in modo efficiente.Block blobs are composed of blocks and are ideal for storing text or binary files, and for uploading large files efficiently. Anche i BLOB di accodamento sono costituiti da blocchi, ma sono ottimizzati per le operazioni di accodamento e per questo sono ideali per gli scenari di registrazione.Append blobs are also made up of blocks, but they are optimized for append operations, making them ideal for logging scenarios. I BLOB di pagine sono costituiti da pagine da 512 byte fino a 8 TB di dimensione totale e sono progettati per operazioni frequenti di lettura/scrittura casuali.Page blobs are made up of 512-byte pages up to 8 TB in total size and are designed for frequent random read/write operations. I BLOB di pagine sono alla base dei dischi IaaS di Azure.Page blobs are the foundation of Azure IaaS Disks. Questo articolo descrive le funzionalità e i vantaggi dei BLOB di pagine.This article focuses on explaining the features and benefits of page blobs.

I BLOB di pagine sono una raccolta di pagine da 512 byte, che offrono la possibilità di leggere/scrivere intervalli arbitrari di byte.Page blobs are a collection of 512-byte pages, which provide the ability to read/write arbitrary ranges of bytes. I BLOB di pagine sono quindi ideali per l'archiviazione di strutture di dati di tipo sparse e basati sull'indice, ad esempio i dischi del sistema operativo e di dati per le macchine virtuali e i database.Hence, page blobs are ideal for storing index-based and sparse data structures like OS and data disks for Virtual Machines and Databases. Il database SQL di Azure, ad esempio, usa i BLOB di pagine come risorsa di archiviazione permanente sottostante per i database.For example, Azure SQL DB uses page blobs as the underlying persistent storage for its databases. I BLOB di pagine vengono spesso usati anche per i file con aggiornamenti basati su intervalli.Moreover, page blobs are also often used for files with Range-Based updates.

Le funzionalità principali dei BLOB di pagine di Azure sono l'interfaccia REST, la durabilità della risorsa di archiviazione sottostante e le funzionalità di migrazione senza problemi in Azure.Key features of Azure page blobs are its REST interface, the durability of the underlying storage, and the seamless migration capabilities to Azure. Queste funzionalità sono illustrate in modo più dettagliato nella sezione successiva.These features are discussed in more detail in the next section. I BLOB di pagine di Azure sono inoltre attualmente supportati in due tipi di risorsa di archiviazione: Archiviazione Premium e Archiviazione Standard.In addition, Azure page blobs are currently supported on two types of storage: Premium Storage and Standard Storage. Archiviazione Premium è progettata specificamente per i carichi di lavoro che richiedono prestazioni elevate e bassa latenza coerenti, rendendo i BLOB di pagine Premium ideali per scenari di archiviazione ad alte prestazioni.Premium Storage is designed specifically for workloads requiring consistent high performance and low latency making premium page blobs ideal for high performance storage scenarios. Gli account di archiviazione standard sono più convenienti per l'esecuzione di carichi di lavoro non sensibili alla latenza.Standard storage accounts are more cost effective for running latency-insensitive workloads.

RestrizioniRestrictions

I BLOB di pagine possono usare solo il livello di accesso frequente , non possono usare i livelli di accesso sporadico o Archivio .Page blobs can only use the Hot access tier, they cannot use either the Cool or Archive tiers. Per altre informazioni sui livelli di accesso, vedere livelli di accesso per l'archiviazione BLOB di Azure: frequente,accesso sporadico e archivio.For more information on access tiers, see Access tiers for Azure Blob Storage - hot, cool, and archive.

Caso d'uso di esempioSample use cases

Verrà ora esaminato qualche caso d'uso per i BLOB di pagine a partire dai dischi IaaS di Azure.Let's discuss a couple of use cases for page blobs starting with Azure IaaS Disks. I BLOB di pagine di Azure sono alla base della piattaforma di dischi virtuali per il servizio IaaS di Azure.Azure page blobs are the backbone of the virtual disks platform for Azure IaaS. Sia i dischi dati che quelli del sistema operativo di Azure vengono implementati come dischi virtuali in cui i dati vengono resi persistenti nella piattaforma di archiviazione di Azure e quindi recapitati alle macchine virtuali per ottenere prestazioni ottimali.Both Azure OS and data disks are implemented as virtual disks where data is durably persisted in the Azure Storage platform and then delivered to the virtual machines for maximum performance. I dischi di Azure vengono resi persistenti nel formato VHD di Hyper-V e archiviati come BLOB di pagine in Archiviazione di Azure.Azure Disks are persisted in Hyper-V VHD format and stored as a page blob in Azure Storage. Oltre a usare i dischi virtuali per le VM IaaS di Azure, i BLOB di pagine abilitano anche scenari PaaS e DBaaS, ad esempio il servizio database SQL di Azure, che usa attualmente i BLOB di pagine per l'archiviazione dei dati SQL, consentendo operazioni casuali rapide di lettura/scrittura per il database.In addition to using virtual disks for Azure IaaS VMs, page blobs also enable PaaS and DBaaS scenarios such as Azure SQL DB service, which currently uses page blobs for storing SQL data, enabling fast random read-write operations for the database. Un altro esempio è quello in cui si ha un servizio PaaS per l'accesso multimediale condiviso per applicazioni di collaborazione per la modifica di video e i BLOB di pagine consentono di accedere rapidamente a percorsi casuali nei file multimediali.Another example would be if you have a PaaS service for shared media access for collaborative video editing applications, page blobs enable fast access to random locations in the media. Consente anche a più utenti di modificare e unire in modo rapido ed efficiente gli stessi file multimediali.It also enables fast and efficient editing and merging of the same media by multiple users.

I servizi forniti da Microsoft, ad esempio Azure Site Recovery e Backup di Azure, e molti sviluppatori di terze parti hanno implementato le innovazioni leader del settore usando l'interfaccia REST del BLOB di pagine.First party Microsoft services like Azure Site Recovery, Azure Backup, as well as many third-party developers have implemented industry-leading innovations using page blob's REST interface. Di seguito sono elencati alcuni degli scenari univoci implementati in Azure:Following are some of the unique scenarios implemented on Azure:

  • Gestione degli snapshot incrementali controllata dell'applicazione: le applicazioni possono sfruttare gli snapshot dei BLOB di pagine e le API REST per il salvataggio dei checkpoint dell'applicazione senza dover sostenere la costosa duplicazione dei dati.Application-directed incremental snapshot management: Applications can leverage page blob snapshots and REST APIs for saving the application checkpoints without incurring costly duplication of data. Archiviazione di Azure supporta gli snapshot locali per i BLOB di pagine, che non richiedono la copia dell'intero BLOB.Azure Storage supports local snapshots for page blobs, which don't require copying the entire blob. Queste API snapshot pubbliche consentono anche l'accesso e la copia dei valori differenziali tra gli snapshot.These public snapshot APIs also enable accessing and copying of deltas between snapshots.
  • Migrazione in tempo reale dell'applicazione e dei dati dall'ambiente locale al cloud: copiare i dati locali e usare le API REST per scrivere direttamente in un BLOB di pagine di Azure mentre la macchina virtuale locale continua a essere eseguita.Live migration of application and data from on premises to cloud: Copy the on premises data and use REST APIs to write directly to an Azure page blob while the on premises VM continues to run. Dopo l'aggiornamento della destinazione, è possibile effettuare rapidamente il failover nella VM di Azure usando tali dati.Once the target has caught up, you can quickly failover to Azure VM using that data. In questo modo, è possibile eseguire la migrazione delle VM e dei dischi virtuali da locale a cloud con tempi di inattività minimi, perché la migrazione dei dati avviene in background mentre si continua a usare la VM e il tempo di inattività necessario per il failover sarà breve (in minuti).In this way, you can migrate your VMs and virtual disks from on premises to cloud with minimal downtime since the data migration occurs in the background while you continue to use the VM and the downtime needed for failover will be short (in minutes).
  • Accesso condiviso basato sulla firma di accesso condiviso, che consente scenari come quelli con più lettori e un singolo writer con il supporto per il controllo della concorrenza.SAS-based shared access, which enables scenarios like multiple-readers and single-writer with support for concurrency control.

PrezziPricing

Entrambi i tipi di archiviazione offerti con i BLOB di pagine hanno un proprio modello di determinazione dei prezzi.Both types of storage offered with page blobs have their own pricing model. I BLOB di pagine Premium seguono il modello di determinazione dei prezzi di Managed disks, mentre i BLOB di pagine standard vengono fatturati sulle dimensioni usate e ogni transazione.Premium page blobs follow the managed disks pricing model, while standard page blobs are billed on used size and with each transaction. Per altre informazioni, vedere la pagina dei prezzi di BLOB di pagine di Azure.For more information, see the Azure Page Blobs pricing page.

Funzionalità dei BLOB di paginePage blob features

API RESTREST API

Per un'introduzione, vedere il documento relativo allo sviluppo con i BLOB di pagine.Refer to the following document to get started with developing using page blobs. Come esempio, verrà esaminato l'accesso ai BLOB di pagine tramite la libreria client di archiviazione per .NET.As an example, look at how to access page blobs using Storage Client Library for .NET.

Il diagramma seguente illustra le relazioni generali tra account, contenitori e BLOB di pagine.The following diagram describes the overall relationships between account, containers, and page blobs.

Screenshot che mostra le relazioni tra l'account, i contenitori e i BLOB di pagine

Creazione di un BLOB di pagine vuoto di una dimensione specificataCreating an empty page blob of a specified size

Per prima cosa, ottenere un riferimento a un contenitore.First, get a reference to a container. Per creare un BLOB di pagine, chiamare il metodo GetPageBlobClient e quindi chiamare il metodo PageBlobClient. Create .To create a page blob, call the GetPageBlobClient method, and then call the PageBlobClient.Create method. Passare le dimensioni massime per il BLOB da creare.Pass in the max size for the blob to create. Tale dimensione deve essere un multiplo di 512 byte.That size must be a multiple of 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);

Ridimensionamento di un BLOB di pagineResizing a page blob

Per ridimensionare un BLOB di pagine dopo la creazione, usare il metodo Resize .To resize a page blob after creation, use the Resize method. Le dimensioni richieste devono essere un multiplo di 512 byte.The requested size should be a multiple of 512 bytes.

pageBlobClient.Resize(32 * OneGigabyteAsBytes);

Scrittura di pagine in un BLOB di pagineWriting pages to a page blob

Per scrivere le pagine, usare il metodo PageBlobClient. UploadPages .To write pages, use the PageBlobClient.UploadPages method.

pageBlobClient.UploadPages(dataStream, startingOffset);

In questo modo è possibile scrivere un set sequenziale di pagine con dimensioni massime pari a 4 MB.This allows you to write a sequential set of pages up to 4MBs. L'offset in cui si scrive deve iniziare da un limite di 512 byte (startingOffset % 512 == 0) e terminare con un limite di 512 - 1.The offset being written to must start on a 512-byte boundary (startingOffset % 512 == 0), and end on a 512 boundary - 1.

Non appena una richiesta di scrittura per un set sequenziale di pagine ha esito positivo nel servizio BLOB e viene replicata per la durabilità e la resilienza, viene effettuato il commit della scrittura e l'esito positivo viene restituito al client.As soon as a write request for a sequential set of pages succeeds in the blob service and is replicated for durability and resiliency, the write has committed, and success is returned back to the client.

Il diagramma seguente mostra 2 operazioni di scrittura separate:The below diagram shows 2 separate write operations:

Diagramma che mostra le due opzioni di scrittura separate.

  1. Un'operazione di scrittura che inizia dall'offset 0 di lunghezza pari a 1024 byteA Write operation starting at offset 0 of length 1024 bytes
  2. Un'operazione di scrittura che inizia dall'offset 4096 di lunghezza pari a 1024 byteA Write operation starting at offset 4096 of length 1024

Lettura di pagine da un BLOB di pagineReading pages from a page blob

Per leggere le pagine, usare il metodo PageBlobClient. download per leggere un intervallo di byte dal BLOB di pagine.To read pages, use the PageBlobClient.Download method to read a range of bytes from the page blob.

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

In questo modo è possibile scaricare l'intero BLOB o un intervallo di byte a partire da un offset nel BLOB.This allows you to download the full blob or range of bytes starting from any offset in the blob. Durante la lettura, non è necessario che l'offset inizi da un multiplo di 512.When reading, the offset does not have to start on a multiple of 512. Quando si leggono byte da una pagina NUL, il servizio restituisce zero byte.When reading bytes from a NUL page, the service returns zero bytes.

Nella figura seguente viene illustrata un'operazione di lettura con un offset di 256 e una dimensione di intervallo pari a 4352.The following figure shows a Read operation with an offset of 256 and a range size of 4352. I dati restituiti vengono evidenziati in arancione.Data returned is highlighted in orange. Per le pagine NUL vengono restituiti zeri.Zeros are returned for NUL pages.

Diagramma che mostra un'operazione di lettura con un offset di 256 e una dimensione di intervallo pari a 4352

Se si ha un BLOB scarsamente popolato, potrebbe essere necessario scaricare solo le aree della pagina valide per evitare addebiti per l'uscita di zero byte e per ridurre la latenza di download.If you have a sparsely populated blob, you may want to just download the valid page regions to avoid paying for egressing of zero bytes and to reduce download latency.

Per determinare le pagine supportate dai dati, usare PageBlobClient. GetPageRanges.To determine which pages are backed by data, use PageBlobClient.GetPageRanges. È quindi possibile enumerare gli intervalli restituiti e scaricare i dati in ogni intervallo.You can then enumerate the returned ranges and download the data in each range.

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

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

Leasing di un BLOB di pagineLeasing a page blob

L'operazione Lease BLOB stabilisce e gestisce un blocco su un BLOB per le operazioni di scrittura e di eliminazione.The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. Questa operazione è utile negli scenari in cui più client accedono a un BLOB di pagine, per assicurarsi che un solo client per volta possa scrivere nel BLOB.This operation is useful in scenarios where a page blob is being accessed from multiple clients to ensure only one client can write to the blob at a time. Dischi di Azure, ad esempio, sfrutta questo meccanismo di leasing per assicurare che il disco venga gestito da una singola VM.Azure Disks, for example, leverages this leasing mechanism to ensure the disk is only managed by a single VM. La durata del blocco può variare da 15 a 60 secondi o può essere infinita.The lock duration can be 15 to 60 seconds, or can be infinite. Per altri dettagli, vedere la documentazione qui.See the documentation here for more details.

Oltre alle API REST avanzate, i BLOB di pagine forniscono anche accesso condiviso, durabilità e sicurezza avanzata.In addition to rich REST APIs, page blobs also provide shared access, durability, and enhanced security. Tali vantaggi verranno illustrati in modo più dettagliato nei paragrafi successivi.We will cover those benefits in more detail in the next paragraphs.

Accesso simultaneoConcurrent access

L'API REST BLOB di pagine e il relativo meccanismo di leasing consentono alle applicazioni di accedere ai BLOB di pagine da più client.The page blobs REST API and its leasing mechanism allows applications to access the page blob from multiple clients. Si supponga, ad esempio, di dover compilare un servizio cloud distribuito che condivide gli oggetti di archiviazione con più utenti.For example, let's say you need to build a distributed cloud service that shares storage objects with multiple users. Potrebbe trattarsi di un'applicazione Web che gestisce un raccolta di immagini di grandi dimensioni per più utenti.It could be a web application serving a large collection of images to several users. Un'opzione per l'implementarla consiste nell'usare una VM con dischi connessi.One option for implementing this is to use a VM with attached disks. Tra gli svantaggi di tale opzione è incluso il vincolo che un disco possa essere connesso a una singola VM, limitando così la scalabilità e la flessibilità e aumentando i rischi.Downsides of this include, (i) the constraint that a disk can only be attached to a single VM thus limiting the scalability, flexibility, and increasing risks. Se si verifica un problema con la VM o il servizio in esecuzione nella VM, dovuto quindi al lease, l'immagine non è accessibile fino a quando il lease scade o viene interrotto. Un altro svantaggio è il costo aggiuntivo di una VM IaaS.If there is a problem with the VM or the service running on the VM, then due to the lease, the image is inaccessible until the lease expires or is broken; and (ii) Additional cost of having an IaaS VM.

Un'opzione alternativa consiste nell'usare i BLOB di pagine direttamente tramite le API REST di Archiviazione di Azure.An alternative option is to use the page blobs directly via Azure Storage REST APIs. Questa opzione elimina la necessità di costose VM IaaS, offre la flessibilità completa derivante dall'accesso diretto da più client, semplifica il modello di distribuzione classica non essendo più necessario connettere/disconnettere i dischi ed elimina il rischio di problemi nella VM.This option eliminates the need for costly IaaS VMs, offers full flexibility of direct access from multiple clients, simplifies the classic deployment model by eliminating the need to attach/detach disks, and eliminates the risk of issues on the VM. Offre anche lo stesso livello di prestazioni di un disco per le operazioni casuali di lettura/scritturaAnd, it provides the same level of performance for random read/write operations as a disk

Durabilità e disponibilità elevateDurability and high availability

Le archiviazioni Standard e Premium sono risorse di archiviazione durevoli in cui i dati dei BLOB di pagine vengono sempre replicati per garantire la durabilità e la disponibilità elevata.Both Standard and premium storage are durable storage where the page blob data is always replicated to ensure durability and high availability. Per altre informazioni sulla ridondanza di Archiviazione di Azure, vedere questa documentazione.For more information about Azure Storage Redundancy, see this documentation. Azure ha fornito in modo coerente una durabilità di livello aziendale per i dischi IaaS e i BLOB di pagine, con una percentuale di errori annualedi percentuale pari allo zero per il settore.Azure has consistently delivered enterprise-grade durability for IaaS disks and page blobs, with an industry-leading zero percent Annualized Failure Rate.

Migrazione senza problemi ad AzureSeamless migration to Azure

Per i clienti e gli sviluppatori interessati a implementare la propria soluzione di backup personalizzata, Azure offre anche snapshot incrementali che includono solo valori differenziali.For the customers and developers who are interested in implementing their own customized backup solution, Azure also offers incremental snapshots that only hold the deltas. Questa funzionalità elimina il costo della copia iniziale completa, riducendo considerevolmente il costo del backup.This feature avoids the cost of the initial full copy, which greatly lowers the backup cost. Si tratta di un'altra caratteristica avanzata, che si aggiunge alla possibilità di leggere e copiare in modo efficiente i dati differenziali e che consente agli sviluppatori di realizzare sempre più innovazioni e offre un'esperienza all'avanguardia di backup e ripristino di emergenza in Azure.Along with the ability to efficiently read and copy differential data, this is another powerful capability that enables even more innovations from developers, leading to a best-in-class backup and disaster recovery (DR) experience on Azure. È possibile configurare la propria soluzione di backup o ripristino di emergenza per le VM in Azure usando Blob Snapshot con l'API Get Page Ranges e l'API Incremental Copy Blob, che è possibile usare per copiare facilmente i dati incrementali per il ripristino di emergenza.You can set up your own backup or DR solution for your VMs on Azure using Blob Snapshot along with the Get Page Ranges API and the Incremental Copy Blob API, which you can use for easily copying the incremental data for DR.

Diverse aziende hanno inoltre carichi di lavoro critici già in esecuzione in data center locali.Moreover, many enterprises have critical workloads already running in on-premises datacenters. Per la migrazione del carico di lavoro al cloud, due delle principali preoccupazioni sono il tempo di inattività necessario per copiare i dati e il rischio che si verifichino problemi imprevisti dopo il cambio.For migrating the workload to the cloud, one of the main concerns would be the amount of downtime needed for copying the data, and the risk of unforeseen issues after the switchover. In diversi casi, il tempo di inattività può essere un ostacolo per la migrazione al cloud.In many cases, the downtime can be a showstopper for migration to the cloud. Usando l'API REST BLOB di pagine, Azure risolve questo problema consentendo la migrazione cloud con un'interruzione minima per i carichi di lavoro critici.Using the page blobs REST API, Azure addresses this problem by enabling cloud migration with minimal disruption to critical workloads.

Per esempi di come creare uno snapshot e ripristinare un BLOB di pagine da uno snapshot, vedere l'articolo Configurare un processo di backup usando snapshot incrementali.For examples on how to take a snapshot and how to restore a page blob from a snapshot, please refer to the setup a backup process using incremental snapshots article.