Azure Elastic SAN ボリュームを複数のコンピューティング クライアントに同時に接続できるため、クラスター アプリケーションを Azure にデプロイまたは移行できます。 Windows Server フェールオーバー クラスター (WSFC) や Pacemaker などのエラスティック SAN ボリュームを共有するには、クラスター マネージャーを使用する必要があります。 クラスター マネージャーは、クラスター ノードの通信と書き込みロックを処理します。 Elastic SAN は、SMB または NFS 経由でアクセスできるフル マネージド ファイルシステムをネイティブに提供していません。
共有ボリュームとして使用する場合、エラスティック SAN ボリュームは可用性ゾーンまたはリージョン間で共有できます。 ゾーン間でローカル冗長ストレージ SAN 内のボリュームを共有すると、ボリュームとクライアント間の待機時間が長くなるため、パフォーマンスが低下します。
制限事項
- エラスティック SAN 接続スクリプトを使用して、仮想マシン スケール セットの仮想マシンまたは可用性セット内の仮想マシンに共有ボリュームをアタッチできます。 障害ドメインの配置はサポートされていません。
- 共有ボリュームでサポートされるセッションの最大数は 128 です。
- 個々のクライアントは、パフォーマンスを向上させるために、個々のボリュームに対して複数のセッションを作成できます。 たとえば、各クライアントで 32 個のセッションを作成した場合、1 つのボリュームに接続できるクライアントは 4 つだけです。
Elastic SAN のその他の制限事項については、 Azure Storage 機能のサポート に関するページを参照してください。
動作方法
エラスティック SAN 共有ボリュームでは 、SCSI-3 永続予約 を使用して、イニシエーター (クライアント) が共有エラスティック SAN ボリュームへのアクセスを制御できるようにします。 このプロトコルにより、イニシエーターは、エラスティック SAN ボリュームへのアクセスを予約し、他のイニシエーターによる書き込み (または読み取り) アクセスを制限し、セッションの有効期間を超えてボリュームの予約を既定で保持できます。
SCSI-3 PR は、クラスター シナリオで共有ボリューム内でデータの整合性と整合性を維持する上で極めて重要な役割を果たします。 クラスター内のコンピューティング ノードは、クラスター アプリケーションによって選択された予約に基づいて、接続されているエラスティック SAN ボリュームの読み取りまたは書き込みを行うことができます。
永続的な予約フロー
次の図は、SCSI-3 PR を使用してノード間のフェールオーバーを有効にする 2 ノード クラスター化データベース アプリケーションの例を示しています。
フローは次のとおりです。
- Azure VM1 と VM2 の両方で実行されているクラスター化されたアプリケーションは、エラスティック SAN ボリュームに対する読み取りまたは書き込みの意図を登録します。
- VM1 上のアプリケーション インスタンスは、ボリュームに書き込む排他予約を受け取ります。
- この予約がボリュームに適用され、データベースはボリュームに排他的に書き込むことができるようになります。 VM2 上のアプリケーション インスタンスからの書き込みはすべて失敗します。
- VM1 上のアプリケーション インスタンスがダウンした場合、VM2 上のインスタンスはデータベース フェールオーバーを開始し、ボリュームの制御を引き継ぎます。
- この予約はボリュームに適用され、VM1 からの書き込みは受け入れられません。 VM2 からの書き込みのみを受け入れます。
- クラスター化されたアプリケーションは、データベースのフェールオーバーを完了し、VM2 からの要求を処理できます。
次の図は、機械学習モデルのトレーニングなど、並列プロセスを実行するためにエラスティック SAN ボリュームからデータを読み取る複数のノードで構成される、もう 1 つの一般的なクラスター化ワークロードを示しています。
フローは次のとおりです。
- すべての VM で実行されているクラスター化されたアプリケーションは、エラスティック SAN ボリュームに対する読み取りまたは書き込みの意図を登録します。
- VM1 上のアプリケーション インスタンスは、他の VM からのボリュームへの読み取りを開くときに、ボリュームに書き込む排他的予約を受け取ります。
- この予約がボリュームに適用されます。
- クラスター内のすべてのノードがボリュームから読み取れるようになりました。 クラスター内のすべてのノードに代わって、ボリュームに結果を書き戻すノードは 1 つだけです。
サポートされている SCSI PR コマンド
Elastic SAN ボリュームでは、次のコマンドがサポートされています。
ボリュームを操作するには、適切な永続的な予約アクションから開始します。
- PR_REGISTER_KEY
- PR_REGISTER_AND_IGNORE
- PR_GET_CONFIGURATION
- PR_RESERVE
- PR_PREEMPT_RESERVATION
- PR_CLEAR_RESERVATION
- PR_RELEASE_RESERVATION
PR_RESERVE、PR_PREEMPT_RESERVATION、またはPR_RELEASE_RESERVATIONを使用する場合は、次のいずれかの永続的な予約の種類を指定します。
- PR_NONE
- PR_WRITE_EXCLUSIVE
- PR_限定アクセス
- PR_WRITE_EXCLUSIVE_REGISTRANTS_ONLY
- PR_EXCLUSIVE_ACCESS_REGISTRANTS_ONLY
- PR_WRITE_EXCLUSIVE_ALL_REGISTRANTS
- PR_EXCLUSIVE_ACCESS_ALL_REGISTRANTS
永続的な予約の種類は、クラスター内の各ノードからボリュームへのアクセスを決定します。
永続的な予約の種別 | 予約者 | 登録済み | その他 |
---|---|---|---|
予約なし | なし | 読み取り/書き込み | 読み取り/書き込み |
排他的書き込み | 読み取り/書き込み | 読み取り専用 | 読み取り専用 |
排他アクセス | 読み取り/書き込み | アクセス許可なし | アクセス許可なし |
書き込み専用 - 登録者のみ | 読み取り/書き込み | 読み取り/書き込み | 読み取り専用 |
排他アクセス - 登録者のみ | 読み取り/書き込み | 読み取り/書き込み | アクセス許可なし |
書き込み専用 - すべての登録者 | 読み取り/書き込み | 読み取り/書き込み | 読み取り専用 |
排他アクセス - すべての登録者 | 読み取り/書き込み | 読み取り/書き込み | アクセス許可なし |
また、使用する際には、永続的な予約キーを指定する必要があります。
- PR_RESERVE
- PR_REGISTER_AND_IGNORE
- PR_REGISTER_KEY
- PR_PREEMPT_RESERVATION
- PR_CLEAR_RESERVATION
- PR_RELEASE-RESERVATION。