azure

【図解/Azure】ストレージアカウントの概要 ~冗長性,ディスクとの違い~

ストレージアカウントとは

Azure の提供するストレージサービスを収容するコンピュータアカウントです。

Azure では以下 4 つのストレージサービスを提供しています。

  • Blob ストレージ : http(s) の REST-API がインタフェースとなるオブジェクトストレージ
  • File ストレージ : SMB/CIFS プロトコル経由で提供されるファイルストレージ
  • Queue ストレージ : 疎結合を実現する目的でよく使われるメッセージキュー用ストレージ
  • Table ストレージ : NoSQL (Not Only SQL) がインタフェースとなるオブジェクトストレージ

これらのストレージサービスを使う前に、まず『ストレージアカウント』という箱が必要になります。その中で上記 4 つのうちのいずれか、もしくは複数のサービスを有効化します。

ストレージアカウントでは「ロケーション」がセットされますので、別のロケーションでストレージサービスを使いたいとき等は別途ストレージアカウントを用意する必要があります。

ストレージアカウントとストレージの種類のマッピング

ストレージアカウント作成時にはまず、「パフォーマンス」を Standard にするか Premium にするかの 2 択を決める必要があります。

Standard は「汎用ストレージ」とも呼ばれ、HDD が使われます。一方、Premium は SSD が使われ、主に BLOB サービスやファイル共有サービスに特化した設定です。

汎用はデフォルトでは v2 のみが選択肢として表示されます。v1 も作成することは可能ですが、過去の互換性のためにあり、現在は非推奨です。

Standard の汎用ストレージはアカウント作成後に 4 つのサービスの中から任意の複数サービスを動作させることができます。1 つでもよいですし 4 つのサービス全てを動作させることもできます。

一方、Premium は作成時にどのサービスを動作させるか決めます。ページ BLOB は後述しますが現在ほぼ使われることが無いため、現状は実質 BLOB かファイル共有かの 2 択です。

ストレージの冗長性の種類

ストレージのデータは冗長性を持たせることができますが、その選択肢は 6 つあります。また、その選択肢はストレージアカウントの種類によって異なります。

汎用 (Standard) はどの冗長性もサポートしていますが、Premium は LRS か ZRS の 2 択です。

以下にストレージアカウントの種類と冗長性の選択肢のマッピングを示します。

  • [ Local Redundancy Storage ] : 同一データセンター内の 3 つのノードにデータを同期して保存し、障害時は自動で切り替わり
  • [ Zone Redundancy Storage ] : 同一リージョンの 3 つのデータセンターにデータを同期して保存し、障害時は自動で切り替わり
  • [ (Read-Access) Geo Redundancy Storage ] : プライマリリージョンとセカンダリリージョンにそれぞれ LRS でデータを非同期で保存し、障害時は手動で切り替え可。RA (Read Access) が付く場合は平常時も障害時も読み取り専用アクセス可。
  • [ (Read-Access) Geo Zone Redundancy Storage ] : プライマリリージョンに ZRS, セカンダリリージョンに LRS でデータを非同期で保存し、障害時は手動で切り替え可。RA (Read Access) が付く場合は平常時も障害時も読み取り専用アクセス可。

LRS/ZRS が同期 (即時に冗長コピー作成) であるのに対し、GRS/GZRS は非同期 (15 分未満の適当なタイミングで冗長コピー作成) です。

そのため、GRS/GZRS においては障害時や切り替え時にデータ損失 (プライマリリージョンで行った直近 15 分未満の変更がセカンダリリージョンに反映されない) の可能性があります。また、手動切替後は LRS に変更されるため、再度 GRS/GZRS にするためには手動で再設定が必要になります。

Geo での冗長性においては、『ペアリージョン』というものが存在します。例えば East-US に作成したストレージアカウントで Geo 冗長性を設定した場合、East-US がプライマリリージョンとなり、そのペアリージョンである『West-US』がセカンダリリージョンとなります。

GRS/GZRS においては「リージョンが利用できなくなった場合に、データへの読み取りアクセスを行えるようにします。」と言うオプションがあります。これが Read-Access の設定です。この説明だと障害時にだけ Read 可能であるように見えますが、平常時でも Read が可能です。

Read-Access オプション有効時には、プライマリ用の URL に加え、セカンダリ用の URL も作成され、セカンダリ用は常に読み取り専用でのアクセスが可能です。これは以下の通り、「データ管理」の「geo レプリケーション」にて「ストレージエンドポイント」の「すべてを表示」で確認できます。

手動で切り替え (フェイルオーバー) を実行すると、先の通り LRS に変更になり、セカンダリ用の URL (-secondary) は無くなります。

冗長性設定の変更は無停止で可能ですが、GZRS/RA-GZRS を設定するには ZRS を経由する必要があります。

マネージドディスクとの違い

ページ BLOB は主に VM のディスク用途と各所で説明がありますが、これはいわゆる「アンマネージドディスク」で、Azure VM の第一世代 (Gen1) でのみサポートされるディスクです。

Azure VM の Gen2 では「マネージドディスク」のみが使われます。ストレージアカウントとは別の「ディスク」というリソースが存在していますので、ストレージアカウントを作成することなく、Azure VM を使うことができます。

Append BLOB (追加ブロブ) について

Append BLOB (追加ブロブ) という仕組みがありますが、これは Azure Portal の作成時には選択肢として出てきません。

REST API のドキュメントがありますので、おそらく、ブロック BLOB ストレージサービスを作成し、そのストレージサービスを指定した API 操作のみ提供しているものと思われます。

追加 BLOB (REST API) に対する操作 - Azure Storage
追加 BLOB に対する操作。

コメント

タイトルとURLをコピーしました