ブロック BLOB、追加 BLOB、およびページ BLOB についてUnderstanding block blobs, append blobs, and page blobs

ストレージ サービスには、3 種類の BLOB 、ブロック BLOB、**追加 BLOB、およびページ BLOB が用意されていますThe storage service offers three types of blobs, block blobs, append blobs, and page blobs. BLOB のタイプは、BLOB の作成時に指定します。You specify the blob type when you create the blob. BLOB が作成されると、その型を変更することはできず、その BLOB 型に適した操作(ブロックまたはブロックのリストをブロック BLOB に書き込む)、ブロックを追加 BLOB に追加し、ページ BLOB にページを書き込む方法によってのみ更新できます。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.

すべての BLOB では、コミットされた変更は直ちに反映されます。All blobs reflect committed changes immediately. BLOB には、ETag と呼ばれる一意のタグがバージョンごとに割り当てられます。このタグとアクセス条件を組み合わせることで、変更の対象を BLOB の特定のインスタンスに限定することができます。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.

排他的書き込みアクセスの際には、BLOB をリースすることができます。Any blob can be leased for exclusive write access. BLOB がリースされているときは、現在のリース ID を含んだ呼び出しだけが、対応する BLOB またはそのブロック (ブロック BLOB の場合) を変更できます。When a blob is leased, only calls that include the current lease ID can modify the blob or (for block blobs) its blocks.

すべての BLOB はスナップショットとして複製することができます。Any blob can be duplicated in a snapshot. スナップショットの詳細については、「BLOB のスナップショットの作成」を参照してください。For information about snapshots, see Creating a Snapshot of a Blob.

注意

Azure ストレージ エミュレーターの BLOB は、最大サイズは 2 GB に制限されます。Blobs in the Azure storage emulator are limited to a maximum size of 2 GB.

ブロック BLOB についてAbout Block Blobs

大きな BLOB は、ブロック BLOB を使用すると効率的にアップロードできます。Block blobs let you upload large blobs efficiently. ブロック BLOB を構成する各ブロックは、ブロック ID で識別されます。Block blobs are comprised of blocks, each of which is identified by a block ID. ブロック BLOB の作成や変更を行うには、一連のブロックを書き込んで、対応するブロック ID によってそれらのブロックをコミットします。You create or modify a block blob by writing a set of blocks and committing them by their block IDs. 各ブロックのサイズは最大 100 MB (2016-05-31 より前の REST バージョンを使用する要求の場合は 4 MB)、ブロック BLOB には最大 50,000 ブロックを含めることができます。Each block can be a different size, up to a maximum of 100 MB (4 MB for requests using REST versions before 2016-05-31), and a block blob can include up to 50,000 blocks. ブロック BLOB の最大サイズは 4.75 TB (100 MB X 50,000 ブロック) をわずかに上回ります。The maximum size of a block blob is therefore slightly more than 4.75 TB (100 MB X 50,000 blocks). 2016-05-31 より前の REST バージョンでは、ブロック BLOB の最大サイズは 195 GB (4 MB X 50,000 ブロック) を少し上回ります。For REST versions before 2016-05-31, the maximum size of a block blob is a little more than 195 GB (4 MB X 50,000 blocks). ブロック BLOB のサイズが 256 MB 以下 (2016-05-31 以前の REST バージョンを使用する要求の場合は 64 MB) を作成する場合は、1 回の書き込み操作で全体をアップロードできます。「BLOB を入れる」を参照してください。If you are writing a block blob that is no more than 256 MB (64 MB for requests using REST versions before 2016-05-31) in size, you can upload it in its entirety with a single write operation; see Put Blob.

ストレージ クライアントは、既定で 128 MB の最大単一 BLOB アップロードを使用して、BlobRequestOptionsオブジェクトのシングル BlobUploadThresholdInBytesプロパティを使用して設定可能です。Storage clients default to a 128 MB maximum single blob upload, settable using the SingleBlobUploadThresholdInBytes property of the BlobRequestOptions object. アップロードするブロック BLOB がこのプロパティに指定された値を超える場合、ストレージ クライアントによってファイルが複数のブロックに分割されます。When a block blob upload is larger than the value in this property, storage clients break the file into blocks. オブジェクトの ParallelOperationThreadCountプロパティを使用して、要求ごとに並列でブロックをアップロードするために使用するスレッドの数を設定できます。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.

ストレージ アカウント内の BLOB にブロックをアップロードすると、そのブロックは、指定されたブロック BLOB に関連付けられます。ただし、その新しいブロックの ID を含んだ一連のブロックがコミットされるまでは、そのブロックは BLOB に追加されません。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. 実際にコミットされるか破棄されるまで、新しいブロックはコミットされていない状態のままになります。New blocks remain in an uncommitted state until they are specifically committed or discarded. コミットされていないブロックは最大 100,000 個まで存在します。There can be a maximum of 100,000 uncommitted blocks. ブロックを書き込むだけでは、既存の BLOB の最終更新時刻は更新されません。Writing a block does not update the last modified time of an existing blob.

ブロック BLOB には、大きなファイルをネットワーク経由で効率よく管理できるという特徴があります。Block blobs include features that help you manage large files over networks. ブロック BLOB を使用すると、複数のブロックを並列的にアップロードでき、アップロード時間を短縮することができます。With a block blob, you can upload multiple blocks in parallel to decrease upload time. すべてのブロックには、転送結果を検証するための MD5 ハッシュが含まれているため、アップロードの進行状況を追跡したり、必要に応じてブロックを送信し直したりすることができます。Each block can include an MD5 hash to verify the transfer, so you can track upload progress and re-send blocks as needed. ブロックをアップロードする順序は任意であり、最後に一連のブロックをコミットする段階で確認することができます。You can upload blocks in any order, and determine their sequence in the final block list commitment step. 新しいブロックをアップロードして、同じブロック ID を持つ、まだコミットされていない既存のブロックを置き換えることもできます。You can also upload a new block to replace an existing uncommitted block of the same block ID. BLOB にコミットされないまま 1 週間が経過すると、そのブロックは破棄されます。You have one week to commit blocks to a blob before they are discarded. また、一連のブロックのコミット操作が実行されたときも、その対象に含まれていない未コミットのブロックはすべて破棄されます。All uncommitted blocks are also discarded when a block list commitment operation occurs but does not include them.

既存のブロック BLOB に変更を加える手段としては、挿入、置換、削除があります。You can modify an existing block blob by inserting, replacing, or deleting existing blocks. 変更済みのブロック (複数可) をアップロードした後、保存しておく必要のある既存のブロックと併せて新規のブロックをコミットすることによって、BLOB の新しいバージョンをコミットできます。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. コミット済みの BLOB の、異なる 2 つの場所に同じバイト範囲を挿入する場合、2 か所にある同じブロックを 1 回のコミット操作でコミットできます。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. コミット操作でいずれのブロックも検出されなかった場合、エラーが発生してコミット操作全体が失敗します。BLOB は変更されません。For any commit operation, if any block is not found, the entire commitment operation fails with an error, and the blob is not modified. ブロックコミットメントは、BLOB の既存のプロパティとメタデータを上書きし、コミットされていないすべてのブロックを破棄します。Any block commitment overwrites the blob's existing properties and metadata, and discards all uncommitted blocks.

ブロック ID は、同じ長さを持つ文字列です。BLOB 内に存在します。Block IDs are strings of equal length within a blob. 通常、ブロックのクライアント側のコードが、Base 64 エンコード形式を使用して、文字列を同じ長さに正規化します。Block client code usually uses base-64 encoding to normalize strings into equal lengths. Base 64 エンコード形式を使用する場合、エンコード前の文字列長が 64 バイト以下であることが必要です。When using base-64 encoding, the pre-encoded string must be 64 bytes or less. ブロック ID の値は、BLOB が異なれば重複してもかまいません。Block ID values can be duplicated in different blobs.

存在しない BLOB のブロックを作成すると、長さが 0 バイトの新しいブロック BLOB が作成されます。If you write a block for a blob that does not exist, a new block blob is created, with a length of zero bytes. この BLOB は、コミット前の BLOB を含んだ BLOB 一覧に反映されます。This blob will appear in blob lists that include uncommitted blobs. この BLOB にブロックをコミットしない場合、そのブロックとコミットされていないブロックは、最後に成功したブロックのアップロードの 1 週間後に破棄されます。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. 同じ名前の新しい BLOB を (ブロックのアップロード後にコミットするという 2 段階プロセスではなく) 1 回のステップで作成した場合も、コミットされていないブロックがすべて破棄されます。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).

ページ BLOB についてAbout Page Blobs

ページ BLOBは、ランダムな読み取りと書き込みの操作用に最適化された 512 バイトのページのコレクションです。Page blobs are a collection of 512-byte pages optimized for random read and write operations. ページ BLOB を作成するには、ページ BLOB を初期化し、ページ BLOB の最大サイズを指定します。To create a page blob, you initialize the page blob and specify the maximum size the page blob will grow. ページ BLOB の内容を追加または更新するには、512 バイトのページ境界に揃える形で、オフセットと範囲を指定してページ (複数可) を書き込みます。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. ページ BLOB への書き込みでは、1 ページのみ、複数ページ、または最大 4 MB のページ BLOB を上書きできます。A write to a page blob can overwrite just one page, some pages, or up to 4 MB of the page blob. ページ BLOB への書き込みはインプレースで行われ、BLOB に即座にコミットされます。Writes to page blobs happen in-place and are immediately committed to the blob. ページ BLOB の最大サイズは 8 TB です。The maximum size for a page blob is 8 TB.

Azure 仮想マシン のディスクは、ページ BLOB によってサポートされます。Azure virtual machine disks are backed by page blobs. Azure には、Premium と Standard という 2 種類の耐久性のあるディスク ストレージが用意されています。Azure offers two types of durable disk storage: premium and standard. ページ BLOB のプレミアム ストレージは、一貫した高パフォーマンスと低待機時間を必要とする Azure 仮想マシンワークロード用に設計されています。Premium storage for page blobs is designed for Azure virtual machine workloads that require consistent high performance and low latency. 詳細については、「IaaS VM のディスクの種類を選択する 」の「Premium ソリッド ステート ドライブ (SSD)」 セクションを参照してください。For detailed information, see the Premium solid-state drives (SSD) section of the article Select a disk type for IaaS VMs. ページ BLOB のプレミアム ストレージのスケーラビリティ ターゲットについては、「Azure Storage のスケーラビリティとパフォーマンス ターゲット」を参照してください。For information about the scalability targets for premium storage for page blobs, see Azure Storage Scalability and Performance Targets.

追加 BLOB についてAbout Append Blobs

追加 BLOB はブロックで構成され、追加操作用に最適化されています。An append blob is comprised of blocks and is optimized for append operations. 追加 BLOB を変更すると、ブロックの追加操作を使用して、ブロックが BLOB の末尾にのみ追加されます。When you modify an append blob, blocks are added to the end of the blob only, via the Append Block operation. 既存のブロックの更新または削除はサポートされていません。Updating or deleting of existing blocks is not supported. ブロック BLOB とは異なり、追加 BLOB はブロック ID を公開しません。Unlike a block blob, an append blob does not expose its block IDs.

追加 BLOB の各ブロックは、最大 4 MB のサイズが異なり、追加 BLOB には最大 50,000 ブロックを含めることができます。Each block in an append blob can be a different size, up to a maximum of 4 MB, and an append blob can include up to 50,000 blocks. よって追加 BLOB の最大サイズは 195 GB (4 MB X 50,000 ブロック) よりも少し大きくなります。The maximum size of an append blob is therefore slightly more than 195 GB (4 MB X 50,000 blocks).

参照See Also

BLOB ストレージ サービスの使用方法 How to Use the Blob Storage Service
キュー Storage Service を使用する方法How to Use the Queue Storage Service