セールス: 1-800-867-1380

ブロック BLOB およびページ BLOB について

更新日: 2015年2月

ストレージ サービスが提供する BLOB には、ブロック BLOBページ BLOB の 2 種類があります。BLOB のタイプは、BLOB の作成時に指定します。BLOB の作成後にそのタイプを変更することはできません。また、更新には、BLOB のタイプに適した操作を使用する必要があります (たとえば、ブロック BLOB にはブロックまたはブロックのリストを書き込み、ページ BLOB にはページを書き込むなど)。

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

排他的書き込みアクセスの際には、BLOB をリースすることができます。BLOB がリースされているときは、現在のリース ID を含んだ呼び出しだけが、対応する BLOB またはそのブロック (ブロック BLOB の場合) を変更できます。

すべての BLOB はスナップショットとして複製することができます。スナップショットの詳細については、「BLOB のスナップショットの作成」を参照してください。

noteメモ
Azure ストレージ エミュレーターの BLOB は、2 GB に制限されています。

大きな BLOB は、ブロック BLOB を使用すると効率的にアップロードできます。ブロック BLOB は、ブロック ID でそれぞれ識別される複数のブロックで構成されます。ブロック BLOB を作成または変更するには、一連のブロックを書き込み、それらのブロック ID を指定してまとめてコミットします。ブロックのサイズは異なっていてもかまいませんが、各ブロックのサイズは最大 4 MB です。ブロック BLOB の最大サイズは 200 GB、ブロック BLOB に格納できるブロック数は最大 50,000 ブロックです。書き込むブロック BLOB のサイズが 64 MB 以下の場合は、1 回の書き込み操作で BLOB 全体をアップロードすることができます。ストレージ クライアントが 1 回にアップロードできるブロックのサイズは、既定では 32 MB です。この値は、 SingleBlobUploadThresholdInBytes プロパティで設定できます。アップロードするブロック BLOB がこのプロパティに指定された値を超える場合、ストレージ クライアントによってファイルが複数のブロックに分割されます。複数のブロックを並列アップロードする際のスレッド数は、 ParallelOperationThreadCount プロパティで設定できます。

ストレージ アカウント内の BLOB にブロックをアップロードすると、そのブロックは、指定されたブロック BLOB に関連付けられます。ただし、その新しいブロックの ID を含んだ一連のブロックがコミットされるまでは、そのブロックは BLOB に追加されません。実際にコミットされるか破棄されるまで、新しいブロックはコミットされていない状態のままになります。ブロックを書き込むだけでは、既存の BLOB の最終更新時刻は更新されません。

ブロック BLOB には、大きなファイルをネットワーク経由で効率よく管理できるという特徴があります。ブロック BLOB を使用すると、複数のブロックを並列的にアップロードでき、アップロード時間を短縮することができます。すべてのブロックには、転送結果を検証するための MD5 ハッシュが含まれているため、アップロードの進行状況を追跡したり、必要に応じてブロックを送信し直したりすることができます。ブロックをアップロードする順序は任意であり、最後に一連のブロックをコミットする段階で確認することができます。新しいブロックをアップロードして、同じブロック ID を持つ、まだコミットされていない既存のブロックを置き換えることもできます。BLOB にコミットされないまま 1 週間が経過すると、そのブロックは破棄されます。また、一連のブロックのコミット操作が実行されたときも、その対象に含まれていない未コミットのブロックはすべて破棄されます。

既存のブロック BLOB に変更を加える手段としては、挿入、置換、削除があります。変更済みのブロック (複数可) をアップロードした後、保存しておく必要のある既存のブロックと併せて新規のブロックをコミットすることによって、BLOB の新しいバージョンをコミットできます。コミット済みの BLOB の、異なる 2 つの場所に同じバイト範囲を挿入する場合、2 か所にある同じブロックを 1 回のコミット操作でコミットできます。コミット操作でいずれのブロックも検出されなかった場合、エラーが発生してコミット操作全体が失敗します。BLOB は変更されません。いずれかのブロックがコミットされると、対象の BLOB の既存のプロパティとメタデータが上書きされ、コミットされていないブロックはすべて破棄されます。

ブロック ID は、同じ長さを持つ文字列です。BLOB 内に存在します。通常、ブロックのクライアント側のコードが、Base 64 エンコード形式を使用して、文字列を同じ長さに正規化します。Base 64 エンコード形式を使用する場合、エンコード前の文字列長が 64 バイト以下であることが必要です。ブロック ID の値は、BLOB が異なれば重複してもかまいません。BLOB が保持できるコミット前のブロックの最大数は 100,000 個です。ただし、そのサイズの合計が 400 GB を超えることはできません。

存在しない BLOB に対してブロックを書き��んだ場合、長さ 0 バイトの新しいブロック BLOB が作成されます。この BLOB は、コミット前の BLOB を含んだ BLOB 一覧に反映されます。この BLOB を 1 つのブロックもコミットせずに放置した場合、BLOB と、その未コミットのブロックは、最後に正常完了したブロック アップロードの 1 週間後に破棄されます。同じ名前の新しい BLOB を (ブロックのアップロード後にコミットするという 2 段階プロセスではなく) 1 回のステップで作成した場合も、コミットされていないブロックがすべて破棄されます。

ページ BLOB は、ランダムな読み取り/書き込み操作を想定して最適化された 512 バイトのページの集合です。ページ BLOB を作成するには、ページ BLOB を初期化し、ページ BLOB の最大サイズを指定します。ページ BLOB の内容を追加または更新するには、512 バイトのページ境界に揃える形で、オフセットと範囲を指定してページ (複数可) を書き込みます。ページ BLOB への書き込みでは、1 ページのみ、複数ページ、または最大 4 MB のページ BLOB を上書きできます。ページ BLOB への書き込みはインプレースで行われ、BLOB に即座にコミットされます。ページ BLOB の最大サイズは 1 TB です。

新しい Premium Storage の導入に伴い、Microsoft Azure では 2 つのタイプの永続的なストレージ (Premium Storage および Standard Storage) が提供されるようになりました。Premium Storage は、一貫した高パフォーマンスと低待機時間が求められる Azure Virtual Machine のワークロードに特化した設計になっています。Premium Storage は現在、Azure Virtual Machines によって使用されているディスクにデータを格納する場合にのみ使用できます。これらのディスクは Azure Storage 内のページ BLOB によってサポートされます。詳細については、「Premium Storage: Azure Virtual Machine ワークロード用の高パフォーマンス ストレージ」を参照してください。Premium Storage のスケーラビリティ ターゲットについては、「Azure ストレージのスケーラビリティおよびパフォーマンスのターゲット」を参照してください。

関連項目

この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました
表示:
© 2015 Microsoft