GRSの可用性について

可用性という観点で以下のようなイメージを持っていた。

LRS<ZRS<GRS

実際は「可用性」という言葉だけで考えるとGRSよりZRSの方が優れている場合がある。

LRS

1つのデータセンターで3回レプリケートされる。データセンターが災害にあった場合は全てなくなる可能性がある。

ZRS

1つのリージョン内で3つのゾーンにレプリケートされる。

データセンターレベルの障害でも可用性を確保できるが、リージョンレベルの大災害には対応できない。

GRS

2つのリージョンでレプリケートされる。

この時、それぞれのリージョン内ではLRSで構成される。

プライマリリージョンで障害が発生した際、フェールオーバーが発生するまでセカンダリリージョンへのアクセスはできない

プライマリ リージョンで障害が発生した場合、フェールオーバーが発生しない限り、セカンダリ リージョンのデータにはユーザーやアプリケーションから直接アクセスできなくなります。 

データの冗長性 - Azure Storage
Azure Storage でのデータ冗長性について説明します。 Microsoft Azure Storage アカウント内のデータは、持続性と高可用性を保証するため、レプリケートされます。

つまり、GRSで構成している場合において、プライマリリージョンのデータセンターで障害が発生した際は可用性を保てない期間が発生する。

RA-GRSとGZRS

高可用性オプションとしてRA-GRS(読み取り専用ジオ冗長ストレージ)がある。

これを使うと、構成自体は各リージョンLRSのジオ冗長構成のままだが、プライマリリージョンの障害に対してセカンダリリージョンの読み取りができるようになる。

セカンダリ リージョンへの読み取りアクセスを有効にすると、プライマリ リージョンが使用できなくなる状況を含め、読み取りにおいてセカンダリからのデータを使用することができます。 

それと他に、プライマリリージョンのみZRSでセカンダリリージョンをLRSで構成するGZRSがある。

こちらもZRSと同等の可用性を確保できる。

まとめ

データが失われる「持続性」という指標においては

LRS<ZRS<GRS=RA-GRS=GZRS=RA-GZRS

という認識で問題ないが、

高可用性という観点では

LRS<GRS<ZRS=GZRS<RA-GRS=RA-GZRS

になる。

※雰囲気だけで覚えてた・・・

コメント