Vue d’ensemble des blobs de pages Azure

Stockage Azure offre trois types de stockage d’objets blob : Objets blob de blocs, d’ajout et de pages. Les objets blob de blocs sont constitués de blocs et sont parfaitement adaptés pour stocker des fichiers texte ou binaires, et pour charger efficacement des fichiers volumineux. Les objets blob d’ajouts sont également constitués de blocs, mais ils sont optimisés pour les opérations d’ajout, ce qui les rend idéaux pour les scénarios de journalisation. Les blobs de pages sont constitués de pages de 512 octets, pour une taille totale maximale de 8 To, et sont conçus pour des opérations fréquentes de lecture/écriture aléatoires. Les objets blob de pages constituent la base des disques IaaS Azure. Cet article porte sur l’explication des fonctionnalités et des avantages des blobs de pages.

Les blobs de pages sont une collection de pages de 512 octets qui permettent de lire et d’écrire n’importe quelle plage d’octets. Par conséquent, les blobs de pages sont idéaux pour stocker des structures de données indexées et creuses, telles que les disques de système d’exploitation et de données pour les machines virtuelles et les bases de données. Par exemple, Azure SQL DB utilise des objets blob de pages comme stockage permanent sous-jacent pour ses bases de données. Les objets blob de pages sont également souvent utilisés pour les fichiers avec des mises à jour basées sur une plage.

Les principales fonctionnalités des objets blob de pages Azure résident dans son interface REST, la durabilité du stockage sous-jacent et les fonctionnalités de migration parfaite vers Azure. Ces fonctionnalités sont abordées plus en détail dans la section suivante. De plus, les objets blob de pages Azure sont actuellement pris en charge sur deux types de stockage : Stockage Premium et Standard. Stockage Premium est plus particulièrement conçu pour les charges de travail nécessitant de hautes performances et une faible latence, ce qui rend les objets blob de pages premium idéaux pour des scénarios de stockage hautes performances. Les comptes de stockage Standard sont plus économiques pour l’exécution de charges de travail insensibles à la latence.

Restrictions

Les blobs de page peuvent uniquement utiliser le niveau d’accès Hot ; ils ne peuvent utiliser ni le niveau Cool ni le niveau Archive. Pour plus d’informations sur les niveaux d’accès, consultez Niveaux d’accès chaud, froid et archive pour les données d’objet blob.

Exemples de cas d’utilisation

Voici quelques cas d’usage des blobs de pages, en commençant par les disques IaaS Azure. Les blobs de pages Azure sont au cœur de la plateforme de disques virtuels d’Azure IaaS. Le système d’exploitation Azure et les disques de données sont implémentés en tant que disques virtuels dans lesquels les données sont conservées durablement dans la plateforme Stockage Azure, puis remises aux machines virtuelles pour des performances optimales. Les disques Azure sont conservés au format VHD Hyper-V et stockés en tant qu’objet blob de pages dans Stockage Azure. En plus des disques virtuels pour machines virtuelles IaaS Azure, les objets blob de pages permettent également des scénarios PaaS et DBaaS tels que le service Azure SQL DB qui utilise actuellement des objets blob de pages pour stocker des données SQL, permettant ainsi des opérations de lecture/écriture aléatoires rapides pour la base de données. Dans un autre exemple, si vous disposez d’un service PaaS pour accéder aux fichiers multimédias partagés d’applications collaboratives d’édition vidéo, les objets blob de pages permettent un accès rapide à des emplacements aléatoires dans le média. Cela permet également à plusieurs utilisateurs de modifier et de fusionner rapidement et efficacement un même média.

Des services Microsoft internes comme Azure Site Recovery et Sauvegarde Azure, ainsi que de nombreux développeurs tiers, ont implémenté des innovations de pointe à l’aide de l’interface REST des objets blob de pages. Voici quelques-uns des scénarios uniques implémentés sur Azure :

  • Gestion des captures instantanées incrémentielle orientée application : Les applications peuvent exploiter les instantanés d’objet blob de pages et les API REST pour enregistrer les points de contrôle d’application sans duplication coûteuse de données. stockage Azure prend en charge les instantanés locaux pour les blobs de pages, qui ne nécessitent pas la copie du blob entier. Ces API d’instantané publiques permettent également d’accéder à et de copier des deltas entre deux instantanés.
  • Migration dynamique d’application et de données locales vers le cloud : Copiez les données locales et utilisez les API REST pour écrire directement dans l’objet blob de pages Azure pendant l’exécution de la machine virtuelle locale. Une fois la cible rattrapée, vous pouvez basculer rapidement vers une machine virtuelle Azure à l’aide de ces données. De cette façon, vous pouvez migrer vos machines virtuelles et disques virtuels locaux vers le cloud avec un temps d’arrêt minime, car la migration des données se produit en arrière-plan pendant que vous utilisez la machine virtuelle. Le temps d’arrêt nécessaire pour le basculement est donc relativement court (quelques minutes).
  • Accès partagé basé sur SAS, qui permet des scénarios tels que plusieurs lecteurs et un auteur unique avec prise en charge du contrôle d’accès concurrentiel.

Les disques non managés sont mis hors service. Pour plus d’informations, consultez Migrer vos disques non managés Azure d’ici le 30 septembre 2025.

Tarifs

Les deux types de stockage associés aux blobs de pages ont chacun leur propre modèle de tarification. Les objets blob de pages Premium suivent le modèle de tarification des disques managés, tandis que les objets blob de pages standard sont facturés en fonction de la taille utilisée et à chaque transaction. Pour plus d’informations, consultez la page de tarification des objets blob de pages Azure.

Fonctionnalités des blobs de pages

API REST

Pour commencer à développer à l’aide d’objets blob de pages, consultez Développer à l’aide d’objets blob de pages. Par exemple, consultez comment accéder aux objets blob de type page à l’aide de la bibliothèque cliente de stockage pour .NET.

Le diagramme suivant décrit les relations d’ensemble entre le compte, les conteneurs et les blobs de pages.

Capture d’écran montrant les relations entre compte, conteneurs et objets blob de pages

Création d’un blob de page vide de la taille spécifiée

Commencez par obtenir une référence à un conteneur. Pour créer un objet blob de pages, appelez la méthode GetPageBlobClient, puis la méthode PageBlobClient.Create. Spécifiez la taille maximale du blob à créer. Cette taille doit être un multiple de 512 octets.

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);

Redimensionnement d’un objet blob de pages

Pour redimensionner un objet blob de pages après sa création, utilisez la méthode Redimensionner. La taille demandée doit être un multiple de 512 octets.

pageBlobClient.Resize(32 * OneGigabyteAsBytes);

Écriture de pages dans un blob de pages

Pour écrire des pages, utilisez la méthode PageBlobClient.UploadPages.

pageBlobClient.UploadPages(dataStream, startingOffset);

Cela vous permet d’écrire un ensemble séquentiel de pages jusqu’à 4 Mo. Le décalage écrit doit commencer sur une limite de 512 octets (startingOffset % 512 == 0) et se terminer sur une limite de 512 - 1.

Dès qu’une requête d’écriture pour un ensemble séquentiel de pages réussit dans le service blob et est répliquée à des fins de durabilité et de résilience, l’écriture est validée et sa réussite est signalée au client.

Le diagramme suivant montre deux opérations d’écriture distinctes :

Diagramme montrant les deux options d’écriture distinctes.

  1. Une opération d’écriture commençant au décalage 0, d’une longueur de 1 024 octets
  2. Une opération d’écriture commençant au décalage 4096 d’une longueur de 1 024

Lecture de pages d’un objet blob de pages

Pour lire des pages, utilisez la méthode PageBlobClient.Download pour lire une plage d’octets à partir de l’objet blob de pages.

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

Cela vous permet de télécharger le blob complet ou une plage d’octets commençant à un décalage quelconque dans le blob. Lors de la lecture, le décalage ne doit pas nécessairement commencer sur un multiple de 512. Lors de la lecture d’octets d’une page NUL, le service retourne zéro octet.

La figure suivante montre une opération de lecture avec un décalage de 256 et une taille de plage de 4352. Les données retournées sont mises en surbrillance en orange. Des zéros sont retournés pour les pages NUL.

Diagramme montrant une opération de lecture avec un décalage de 256 et une taille de plage de 4 352.

Si vous disposez d’un objet blob peu rempli, vous pouvez vous contenter de télécharger les régions de page valides pour éviter les coûts d’entrée de zéro octet et pour réduire la latence du téléchargement.

Pour déterminer quelles pages sont soutenues par des données, utilisez PageBlobClient.GetPageRanges. Vous pouvez alors énumérer les plages retournées et télécharger les données dans chaque plage.

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

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

Location d’un objet blob de pages

L’opération Lease Blob établit et gère un verrou sur un blob pour les opérations d’écriture et de suppression. Cette opération est utile dans les scénarios où un objet blob de pages est accessible à partir de plusieurs clients, pour faire en sorte qu’un seul client à la fois puisse écrire dans l’objet blob. Les disques Azure, par exemple, utilisent ce mécanisme de leasing pour garantir que le disque n’est géré que par une seule machine virtuelle. La durée du verrou peut être de 15 à 60 secondes, ou peut être infinie. Consultez la documentation ici pour plus de détails.

En plus des API REST riches en fonctionnalités, les objets blob de pages offrent également un accès partagé, une durabilité et une sécurité renforcée. Nous aborderons ces avantages plus en détail dans les paragraphes suivants.

Accès simultané

L’API REST des blobs de pages et son mécanisme de location permettent aux applications d’accéder à un blob de pages depuis plusieurs clients. Par exemple, supposons que vous devez créer un service cloud distribué qui partage des objets de stockage avec plusieurs utilisateurs. Il pourrait s’agir d’une application web proposant une collection d’images importante à plusieurs utilisateurs. Une option d’implémentation consiste à utiliser une machine virtuelle avec des disques attachés. Ceci implique des inconvénients, notamment (i) la contrainte qu’un disque ne peut être attaché qu’à une seule machine virtuelle, limitant ainsi l’évolutivité, la flexibilité et augmentant les risques. En cas de problème lié à la machine virtuelle ou au service exécuté sur la machine virtuelle, et ensuite dû au bail, l’image est inaccessible jusqu’à ce que le bail expire ou qu’il soit interrompu ; et (ii) le coût supplémentaire lié à une machine virtuelle IaaS.

Une autre option consiste à utiliser directement les blobs de pages via les API REST d’stockage Azure. Cette option supprime la nécessité de machines virtuelles IaaS coûteuses, offre la flexibilité maximale d’accès direct à partir de plusieurs clients, simplifie le modèle de déploiement classique en supprimant la nécessité de joindre et de détacher des disques, et élimine le risque de problèmes sur la machine virtuelle. Elle offre également le même niveau de performances pour les opérations de lecture/écriture aléatoires qu’un disque

Durabilité et haute disponibilité

Les stockages standard et premium sont des stockages durables dans lesquels les données de blobs de pages sont toujours répliquées afin d’assurer la durabilité et une haute disponibilité. a fourni de façon cohérente une durabilité de classe Entreprise pour les disques IaaS et les objets blob de pages, avec un taux de défaillance annuel inégalé dans le secteur de zéro pour cent.

Pour plus d’informations sur la redondance du stockage Azure pour les comptes de stockage Standard et Premium, consultez Redondance du Stockage Azure, en particulier ces deux sections :

Migration parfaite vers Azure

Pour les clients et développeurs qui souhaitent implémenter leur propre solution de sauvegarde personnalisée, Azure propose également des instantanés incrémentiels ne contenant que les deltas. Cette fonctionnalité permet d’éviter le coût de la copie initiale complète, ce qui réduit considérablement le coût de sauvegarde. Avec la possibilité de lire et de copier efficacement des données différentielles, il s’agit d’une autre fonctionnalité puissante qui permet encore plus d’innovations plus les développeurs, offrant ainsi la meilleure expérience de sauvegarde et de reprise après sinistre sur Azure. Vous pouvez configurer votre propre solution de sauvegarde ou de reprise après sinistre pour vos machines virtuelles sur Azure à l’aide d’un instantané d’objet blob, de l’API Get Page Ranges et de l’API Incremental Copy Blob, que vous pouvez utiliser pour copier facilement les données incrémentielles pour la reprise après sinistre.

Nombre d’entreprises disposent en outre des charges de travail critiques déjà en cours d’exécution dans les centres de données locaux. Pour migrer la charge de travail vers le cloud, un des principales préoccupations serait liée au temps d’arrêt nécessaire pour copier les données et au risque de problèmes imprévus après le basculement. Dans de nombreux cas, le temps d’arrêt peut être un frein à la migration vers le cloud. Grâce à l’API REST des objets blob de pages, Azure résout ce problème en permettant une migration vers le cloud avec une interruption minimale des charges de travail critiques.

Pour obtenir des exemples montrant comment créer un instantané et restaurer un blob de pages à partir d’un instantané, consultez Configurer un processus de sauvegarde à l’aide d’instantanés incrémentiels.