Grundlegendes zu blockblobs, anfügeblobs und seitenblobsUnderstanding block blobs, append blobs, and page blobs

Der Speicherdienst bietet drei Arten von BLOBs, blockblobs, anfügeblobsund seitenblobs.The storage service offers three types of blobs, block blobs, append blobs, and page blobs. Beim Erstellen des BLOB geben Sie an, welchen Typ Sie verwenden möchten.You specify the blob type when you create the blob. Nachdem das BLOB erstellt wurde, kann sein Typ nicht mehr geändert werden, und es kann nur mit den für diesen BLOB-Typ geeigneten Vorgängen aktualisiert werden . Dies bedeutet, dass ein Block oder eine Liste von Blöcken in ein blockblob geschrieben wird, Blöcke an ein anfügeblob angehängt werden und Seiten in ein seitenblob geschrieben werden.Once the blob has been created, its type cannot be changed, and it can be updated only by using operations appropriate for that blob type, i.e., writing a block or list of blocks to a block blob, appending blocks to a append blob, and writing pages to a page blob.

Alle BLOBs geben Änderungen, für die ein Commit ausgeführt wurde, sofort wieder.All blobs reflect committed changes immediately. Jede Version des BLOB verfügt über ein eindeutiges Tag, das ETag genannt wird und das Sie in Zugriffsbedingungen verwenden können, um zu gewährleisten, dass Änderungen nur in einer bestimmten Instanz des BLOB durchgeführt werden.Each version of the blob has a unique tag, called an ETag, that you can use with access conditions to assure you only change a specific instance of the blob.

Jedes BLOB kann für exklusiven Schreibzugriff geleast werden.Any blob can be leased for exclusive write access. Wenn ein BLOB geleast wurde, können nur Aufrufe, die die aktuelle Lease-ID enthalten, das BLOB oder (bei Block-BLOBs) dessen Blöcke ändern.When a blob is leased, only calls that include the current lease ID can modify the blob or (for block blobs) its blocks.

Jedes BLOB kann in einer Momentaufnahme dupliziert werden.Any blob can be duplicated in a snapshot. Informationen zu Momentaufnahmen finden Sie unter Erstellen einer Momentaufnahme eines BLOBs.For information about snapshots, see Creating a Snapshot of a Blob.

Hinweis

BLOB-Speicher im Azure-Speicher Emulator sind auf eine maximale Größe von 2 gib beschränkt.Blobs in the Azure storage emulator are limited to a maximum size of 2 GiB.

Informationen zu blockblobsAbout block blobs

Block-BLOBs sind für das effiziente Hochladen großer Datenmengen optimiert.Block blobs are optimized for uploading large amounts of data efficiently. Block-BLOBs bestehen aus Blöcken, von denen jeder durch eine Block-ID identifiziert wird.Block blobs are comprised of blocks, each of which is identified by a block ID. Ein blockblob kann bis zu 50.000 Blöcke enthalten.A block blob can include up to 50,000 blocks. Jeder Block in einem blockblob kann eine andere Größe aufweisen, bis zur maximalen Größe, die für die verwendete Dienst Version zulässig ist.Each block in a block blob can be a different size, up to the maximum size permitted for the service version in use. Wenn Sie ein blockblob erstellen oder ändern möchten, schreiben Sie einen Satz von Blöcken über den Put Block -Vorgang, und commitden Blöcke dann mit dem Vorgang Put Block List in ein BLOB.To create or modify a block blob, write a set of blocks via the Put Block operation and then commit the blocks to a blob with the Put Block List operation.

BLOBs, die kleiner als eine bestimmte Größe (durch Dienst Version bestimmt) sind, können vollständig mit einem einzigen Schreibvorgang über Put BLOBhochgeladen werden.Blobs that are less than a certain size (determined by service version) can be uploaded in their entirety with a single write operation via Put Blob.

In der folgenden Tabelle werden die maximal zulässigen Block-und BLOB-Größen für die Dienst Version beschrieben.The following table describes the maximum block and blob sizes permitted by service version.

Dienst VersionService version Maximale Blockgröße (über Put-Block)Maximum block size (via Put Block) Maximale BLOB-Größe (über Put-Block Liste)Maximum blob size (via Put Block List) Maximale BLOB-Größe über einen einzelnen Schreibvorgang (über Put BLOB)Maximum blob size via single write operation (via Put Blob)
Version 2019-12-12 und höherVersion 2019-12-12 and later 4000 MIB (Vorschau)4000 MiB (preview) Ungefähr 190,7 tib (4000 MIB X 50.000 Blöcke) (Vorschau)Approximately 190.7 TiB (4000 MiB X 50,000 blocks) (preview) 5000 MIB (Vorschau)5000 MiB (preview)
Version 2016-05-31 bis Version 2019-07-07Version 2016-05-31 through version 2019-07-07 100 MiB100 MiB Ungefähr 4,75 tib (100 MIB X 50.000 Blöcke)Approximately 4.75 TiB (100 MiB X 50,000 blocks) 256 MIB256 MiB
Versionen vor 2016-05-31Versions prior to 2016-05-31 4 MiB4 MiB Ungefähr 195 gib (4 MIB X 50.000 Blöcke)Approximately 195 GiB (4 MiB X 50,000 blocks) 64 MIB64 MiB

Speicher Clients haben standardmäßig einen 128-MIB-Upload, der in der Azure Storage-Client Bibliothek für .NET Version 11 festgelegt werden kann, mit der singleblobuploadationsoldinbytes -Eigenschaft des blobrequestoptions -Objekts.Storage clients default to a 128 MiB maximum single blob upload, settable in the Azure Storage client library for .NET version 11 by using the SingleBlobUploadThresholdInBytes property of the BlobRequestOptions object. Wenn ein Block-BLOB-Upload größer ist als der Wert in dieser Eigenschaft, wird die Datei von Speicherclients in mehrere Blöcke aufgeteilt.When a block blob upload is larger than the value in this property, storage clients break the file into blocks. Sie können die Anzahl der Threads, die zum parallelen Hochladen der Blöcke verwendet werden, auf Anforderungs Basis mithilfe der paralleloperationthreadcount -Eigenschaft des blobrequestoptions -Objekts festlegen.You can set the number of threads used to upload the blocks in parallel on a per-request basis using the ParallelOperationThreadCount property of the BlobRequestOptions object.

Wenn Sie einen Block in ein BLOB in Ihrem Speicherkonto hochladen, wird er dem angegebenen Block-BLOB zugeordnet. Der Block wird aber erst dann Teil des BLOB, wenn Sie für eine Liste von Blöcken, die die ID des neuen Blocks enthält, einen Commit ausführen.When you upload a block to a blob in your storage account, it is associated with the specified block blob, but it does not become part of the blob until you commit a list of blocks that includes the new block's ID. Neue Blöcke verbleiben ohne Commit, bis explizit ein Commit ausgeführt wird oder die Blöcke verworfen werden.New blocks remain in an uncommitted state until they are specifically committed or discarded. Es können maximal 100.000 Blöcke ohne ausgeführtes Commit ausgeführt werden.There can be a maximum of 100,000 uncommitted blocks. Durch das Schreiben eines Blocks wird die Uhrzeit der letzten Änderung eines vorhandenen BLOB nicht aktualisiert.Writing a block does not update the last modified time of an existing blob.

Block-BLOBs stellen Funktionen bereit, die Ihnen bei der Verwaltung großer Dateien im Netzwerk helfen.Block blobs include features that help you manage large files over networks. Mit einem Block-BLOB können Sie mehrere Blöcke parallel hochladen, um die Uploadzeit zu verkürzen.With a block blob, you can upload multiple blocks in parallel to decrease upload time. Jedem Block kann ein MD5-Hash hinzugefügt werden, mit dem die Übertragung überprüft und so der Uploadstatus nachverfolgt werden kann, um Blöcke bei Bedarf neu zu übermitteln.Each block can include an MD5 hash to verify the transfer, so you can track upload progress and re-send blocks as needed. Sie können Blöcke in beliebiger Reihenfolge hochladen und die endgültige Reihenfolge der Blöcke beim abschließenden Commit in der Blockliste festlegen.You can upload blocks in any order, and determine their sequence in the final block list commitment step. Sie können auch einen neuen Block hochladen, um einen vorhandenen Block mit derselben Block-ID zu ersetzen, wenn für den Block noch kein Commit ausgeführt wurde.You can also upload a new block to replace an existing uncommitted block of the same block ID. Sie haben eine Woche Zeit, den Commit für Blöcke in einem BLOB auszuführen, bevor die Blöcke verworfen werden.You have one week to commit blocks to a blob before they are discarded. Zudem werden alle Blöcke ohne Commit auch dann verworfen, wenn ein Commit ausgeführt wird und die Blöcke nicht in der Blockliste des Commitvorgangs enthalten sind.All uncommitted blocks are also discarded when a block list commitment operation occurs but does not include them.

Sie können ein vorhandenes Block-BLOB ändern, indem Sie Blöcke einfügen oder ersetzen oder vorhandene Blöcke löschen.You can modify an existing block blob by inserting, replacing, or deleting existing blocks. Nachdem Sie den oder die Blöcke hochgeladen haben, die sich geändert haben, bestätigen Sie die neue Version des BLOB, indem Sie in einem einzelnen Commitvorgang einen Commit für die neuen und für alle vorhandenen Blöcke ausführen, die erhalten bleiben sollen.After uploading the block or blocks that have changed, you can commit a new version of the blob by committing the new blocks with the existing blocks you want to keep using a single commit operation. Wenn Sie einen identischen Bytebereich an zwei verschiedenen Speicherorten in einem BLOB einfügen möchten, können Sie für einen Block in einem einzelnen Commitvorgang einen Commit an zwei Speicherorten ausführen.To insert the same range of bytes in two different locations of the committed blob, you can commit the same block in two places within the same commit operation. Wenn einer der Blöcke während eines Commitvorgangs nicht gefunden wird, schlägt der gesamte Commitvorgang fehl, und das BLOB wird nicht geändert.For any commit operation, if any block is not found, the entire commitment operation fails with an error, and the blob is not modified. Jede Block Verpflichtung überschreibt die vorhandenen Eigenschaften und Metadaten des BLOBs und verwirft alle Blöcke ohne ausgeführtes Commit.Any block commitment overwrites the blob's existing properties and metadata, and discards all uncommitted blocks.

Block-IDs sind Zeichenfolgen derselben Länge innerhalb eines BLOB.Block IDs are strings of equal length within a blob. Block-Clientcode verwendet üblicherweise die Base-64-Codierung, um eine normalisierte Version der Zeichenfolgen mit gleicher Länge zu erstellen.Block client code usually uses base-64 encoding to normalize strings into equal lengths. Bei Verwendung der Base-64-Codierung darf die Ausgangszeichenfolge nicht länger sein als 64 Bytes.When using base-64 encoding, the pre-encoded string must be 64 bytes or less. In unterschiedlichen BLOBs können dieselben Block-IDs verwendet werden.Block ID values can be duplicated in different blobs.

Wenn Sie einen Block für ein BLOB schreiben, das noch nicht vorhanden ist, wird ein neues Block-BLOB mit der Größe 0 Bytes erstellt.If you write a block for a blob that does not exist, a new block blob is created, with a length of zero bytes. Dieses BLOB wird in BLOB-Listen aufgeführt, die BLOBs ohne Commit enthalten.This blob will appear in blob lists that include uncommitted blobs. Wenn Sie keinen Block für dieses BLOB committet haben, werden diese und Ihre Blöcke ohne ausgeführten Commit eine Woche nach dem letzten erfolgreichen Hochladen von Blöcken verworfen.If you don't commit any block to this blob, it and its uncommitted blocks will be discarded one week after the last successful block upload. Alle Blöcke ohne Commit werden auch dann verworfen, wenn ein neues BLOB mit demselben Namen in einem einzelnen Schritt erstellt wird (statt in zwei Schritten Blöcke hochzuladen und dann einen Commit auszuführen).All uncommitted blocks are also discarded when a new blob of the same name is created using a single step (rather than the two-step block upload-then-commit process).

Informationen zu seitenblobsAbout page blobs

Seitenblobs stellen eine Sammlung von 512-Byte-Seiten dar, die für zufällige Lese- und Schreibvorgänge optimiert sind.Page blobs are a collection of 512-byte pages optimized for random read and write operations. Um ein Seiten-BLOB zu erstellen, initialisieren Sie zunächst das Seiten-BLOB und geben hierbei die maximale Größe an, die für das Seiten-BLOB verfügbar sein soll.To create a page blob, you initialize the page blob and specify the maximum size the page blob will grow. Um den Inhalt eines Seiten-BLOB zu erweitern oder zu aktualisieren, schreiben Sie unter Angabe eines Offsets und eines Bereichs, die an den Seitengrenzen von jeweils 512 Bytes ausgerichtet sind, eine oder mehrere Seiten in das BLOB.To add or update the contents of a page blob, you write a page or pages by specifying an offset and a range that align to 512-byte page boundaries. Ein Schreibvorgang in ein seitenblob kann nur eine Seite, einige Seiten oder bis zu 4 MIB des seitenblobs überschreiben.A write to a page blob can overwrite just one page, some pages, or up to 4 MiB of the page blob. Schreibvorgänge für ein Seiten-BLOB erfolgen direkt im BLOB und erfordern keinen zusätzlichen Commitvorgang.Writes to page blobs happen in-place and are immediately committed to the blob. Die maximale Größe für ein seitenblob beträgt 8 tib.The maximum size for a page blob is 8 TiB.

Datenträger virtueller Azure-Computer werden durch seitenblobs unterstützt.Azure virtual machine disks are backed by page blobs. Azure bietet zwei Arten von dauerhaftem Datenträger Speicher: "Premium" und "Standard".Azure offers two types of durable disk storage: premium and standard. Storage Premium für seitenblobs ist für Workloads virtueller Azure-Computer konzipiert, die eine konsistente hohe Leistung und geringe Latenz erfordern.Premium storage for page blobs is designed for Azure virtual machine workloads that require consistent high performance and low latency. Ausführliche Informationen finden Sie im Abschnitt Premium Solid State Drives (SSD) des Artikels Select a Disk type for IaaS VMS.For detailed information, see the Premium solid-state drives (SSD) section of the article Select a disk type for IaaS VMs. Informationen zu den Skalierbarkeits Zielen für Storage Premium für seitenblobs finden Sie unter Azure Storage Skalierbarkeits-und Leistungszielen.For information about the scalability targets for premium storage for page blobs, see Azure Storage Scalability and Performance Targets.

Informationen zu anfügeblobzeichenAbout append blobs

Ein Anfüge-BLOB besteht aus Blöcken und ist für Anfüge Vorgänge optimiert.An append blob is comprised of blocks and is optimized for append operations. Wenn Sie ein anfügeblob ändern, werden Blöcke nur am Ende des BLOBs hinzugefügt, über den Vorgang zum Anfügen eines Blocks .When you modify an append blob, blocks are added to the end of the blob only, via the Append Block operation. Das Aktualisieren oder Löschen vorhandener Blöcke wird nicht unterstützt.Updating or deleting of existing blocks is not supported. Anders als bei einem blockblob macht ein anfügeblob seine Block-IDs nicht verfügbar.Unlike a block blob, an append blob does not expose its block IDs.

Jeder Block in einem anfügeblob kann eine andere Größe aufweisen, maximal 4 MiB, und ein anfügeblob kann bis zu 50.000 Blöcke enthalten.Each block in an append blob can be a different size, up to a maximum of 4 MiB, and an append blob can include up to 50,000 blocks. Die maximale Größe eines anfügeblobs ist daher etwas größer als 195 gib (4 MIB X 50.000-Blöcke).The maximum size of an append blob is therefore slightly more than 195 GiB (4 MiB X 50,000 blocks).

Weitere InformationenSee Also