複製のフェイルオーバー
レプリカ・ファイル共有へのフェイルオーバーにより、ソース・ファイル共有が使用不可になった場合にデータが使用可能な状態に維持されます。 フェイルオーバーによってレプリケーション関係が切り替わり、レプリカファイル共有がソースファイル共有に、ソース共有が読み取り専用のレプリカファイル共有になります。
複製フェイルオーバーの概念
レプリカファイル共有を作成すると、レプリカはレプリケーションスケジュールに基づいてソースファイル共有からデータを取得します。 レプリカ・ファイル共有上のデータは読み取り専用に設定されます。 フェイルオーバーにより、複製関係が切り替えられます。 読み取り専用レプリカ・ファイル共有は読み取り/書き込みソース・ファイル共有になり、元の共有は読み取り専用になります。 これで、アクティブ・ファイル共有をマウントし、通常のファイル共有として管理することができます。
フェイルオーバーを開始するときに、フェイルオーバー操作が失敗またはタイムアウトになった場合の動作を選択できます。 デフォルトのタイムアウトは5分。
-
複製関係を保持することにした場合、システムはソース共有に「フォールバック」します。 操作が失敗しても、システムは次の予定時刻に再度データの複製を試みる。 このオプションは、1 次サイトが 定期保守 用にスケジュールされている場合に使用できます。 保守が完了し、サイトが再び安定したら、元の共有にフォールバックできます。 複製を再開できます。
-
複製関係を削除することにした場合、システムは 2 つのファイル共有を分割し、それらのファイル共有は独立した読み取り/書き込みファイル共有になります。 このオプションは、アプリケーションをできるだけ迅速に始動することがより重要な場合に、 災害復旧 状況でのフェイルオーバーに使用できます。 そのため、レプリカ・サイトでは通常の操作を継続できますが、元のサイトの将来は不確定です。
フェイルオーバー操作またはレプリカ分割は、ソースまたはレプリカのファイル共有で別の操作が実行されているときは実行できません(たとえば、ファイル共有サイズが拡張されているときなど)。 スプリット操作またはフェイルオーバー操作は、もう一方の操作が完了するまでペンディングし続ける。
フェイルオーバー状況 には、操作の進行中、またはサービスが別の操作の完了を待機している間、 failover_pending
が表示されます。
定期保守のフェイルオーバー
フェイルオーバーは、プライマリ・サイトの定期的なメンテナンス、またはサイトに問題がある場合に使用します。 このプロセスは、以下のように機能します。
- ゾーン A のソース・ファイル共用は、すべての読み取りおよび書き込み操作を拒否します。 次に、システムは、共有のデータの最終コピーをゾーン B のレプリカ共有にプルしようとします。
- データはレプリカ・ファイル共有にコピーされます。レプリカ・ファイル共有は読み取り/書き込みになり、新しいソース・サイトと見なされます。 (複製関係は逆になります。)
- サービスは、スケジュールに従って、ゾーン B のアクティブ・ソースからゾーン A の元の共有にデータを複製しようとします。 データ転送が失敗した場合、システムはスケジュールされた次の複製時刻に再試行します。
- 保守が完了し、サイトが再び安定したら、元の共有にフォールバックできます。 あるいは、ソース共有としてレプリカ共有を保持することもできます。
災害復旧状態でのフェイルオーバー
フェイルオーバーは、災害復旧のオプションでもあります。 元のサイトが利用できないことが確認され、レプリカの場所でアプリケーションをできるだけ早く開始する必要がある場合は、レプリケーション関係を削除することを選択します。 レプリケーション関係の削除は、フェイルオーバーを開始するときのフォールバック・ポリシーのオプションです。 災害復旧のフェイルオーバーは、以下のように機能します。
- ソース・サイトのファイル共有はすべての読み取りおよび書き込み操作を拒否し、システムは共有のデータの最終コピーをレプリカ・ファイル共有にプルしようとします。
- データ・プルがタイムアウトになって失敗すると、ファイル・サービスは複製関係を中断します。 レプリカ・ファイル共有は読み取り/書き込みになり、独立ファイル共有として動作します。 通常のファイル共有としてマウントおよび管理することができます。
- 複製関係を再確立できません。 ただし、サイトが再び操作可能になった場合は、元のサイトに新しいレプリカをセットアップすることができます。
災害復旧フェイルオーバーの性質上、最新のデータ・セットがコピーされなかった可能性があります。 その場合は、ソース・ファイル共有が再び使用可能になったときに、アプリケーションの状態を手動で調整することが必要になる可能性があります。 ソースファイル共有ゾーンが再び利用可能になった場合、インシデント発生時点からリカバリポイントまでの整合性を取るために、レプリカ共有からデータを利用できる。
制約事項
これらの制限は、フェイルオーバーの実行時に適用されます。
-
正常なフェイルオーバーのデフォルトのタイムアウトは 5 分です。 この値は、 フェイルオーバーの開始 時に変更できます。
-
共有サイズの拡張など、ソース・ファイル共有で他の操作が実行されている場合、フェイルオーバーは保留されたままになります。 操作が完了すると、フェイルオーバーが再開されます。
コンソールでフェイルオーバーを開始する
-
すべてのファイル共有のリストにナビゲートします。 IBM Cloudコンソール」で、「ナビゲーションメニューアイコン「
「> インフラストラクチャー「
「> ストレージ > ファイル共有」をクリックする。
-
レプリカファイル共有の名前をクリックすると、その詳細ページが開きます。
-
「アクション」 メニュー
から、 「フェイルオーバーの実行」 を選択します。 フェイルオーバーの前に、ファイルの最終同期が実行され、フェイルオーバー共有に最新のコンテンツがあることが確認されます。 フェイルオーバーが完了すると、レプリカ・ファイル共有が新しいソース・ファイル共有になります。 以前のソース共有は、新しい読み取り専用レプリカ共有になります。
-
タイムアウト値を設定するには、 「タイムアウト (オプション)」 の下のボックスにチェック・マークを付け、時間値を指定します。 この値は、フェイルオーバーが完了するまでの絶対時間制限を指定します。 ファイル共有をオフラインにできる期間に基づいてタイムアウトを設定します。
-
フェイルオーバー・ポリシーで、フェイルオーバー操作が成功しないかタイムアウトになる場合は、複製関係を保持するか変更するかを選択します。
- 複製関係の維持 - レプリカ・ファイル共有またはソース・ファイル共有は変更されません。
- レプリケーション関係を削除する - このアクションは、2つの別々の読み取り/書き込みファイル共有を作成します。 関係が壊れているため、一方のファイル共有に対する変更が他方のファイル共有に影響を与えることはありません。
関係を壊した後、再び関係を築くことはできない。
-
フェイルオーバーの実行をクリックします。 フェイルオーバーが要求され、実行中であることを示すメッセージが表示されます。
ファイル共有の詳細ページが更新され、レプリケーション関係はレプリカファイル共有を新しいソースファイル共有として表示します。
CLI からのフェイルオーバーの開始
CLI を使用する前に、IBM Cloud CLI および VPC CLI プラグインをインストールする必要があります。 詳しくは、CLI の前提条件を参照してください。
-
ibmcloud is shares
コマンドを使用してリージョン内のすべてのファイル共有をリストすることにより、フェイルオーバー先のレプリカ・ファイル共有を見つけます。$ ibmcloud is shares Listing shares in all resource groups and region us-south under account Test Account as user test.user@ibm.com... ID Name Lifecycle state Zone Profile Size(GB) Resource group Replication role r006-dc6a644d-c7da-4c91-acf0-d66b47fc8516 my-replica-file-share stable us-south-1 dp2 1500 Default replica r006-e4acfa9b-88b0-4f90-9320-537e6fa3482a my-source-file-share stable us-south-2 dp2 1500 Default source
-
ibmcloud is share-replica-failover
コマンドを実行し、fallback-policy
プロパティーを指定します。 このプロパティーには、fail
またはsplit
を指定できます。- 以下の例では、
fallback-policy
プロパティーにfail
を指定しています。 フェイルオーバー操作が失敗するか、タイムアウトに達すると、フェイルオーバー操作は失敗となる。 ソース共有はアクティブのままで、複製はスケジュールされたとおりに再開されます。
$ ibmcloud is share-replica-failover r006-dc6a644d-c7da-4c91-acf0-d66b47fc8516 --fallback-policy fail The file share r006-dc6a644d-c7da-4c91-acf0-d66b47fc8516 failover request was accepted under account Test Account as user test.user@ibm.com... The file share failover request was accepted.
- 以下の例では、
fallback-policy
プロパティーにsplit
を指定しています。 フェイルオーバー操作が失敗した場合、レプリカ共有はソース・ファイル共有から分割されます。 フェイルオーバーが失敗した場合、結果は 2 つの独立した読み取り/書き込みファイル共有になります。
ibmcloud is share-replica-failover my-source-file-share --fallback-policy split The file share r006-e4acfa9b-88b0-4f90-9320-537e6fa3482a failover request was accepted under account Test Account as user test.user@ibm.com... The file share failover request was accepted.
- 以下の例では、
コマンド・オプションについて詳しくは、「 ibmcloud is share-replica-failover
」を参照してください。
API を使用したフェイルオーバーの開始
POST /shares/{share_id}/failover
要求を作成し、timeout
プロパティーと fallback_policy
プロパティーを指定します。 最小のタイムアウトは 300 秒で、最大のタイムアウトは 3600 秒です。 この要求は、レプリカ・ファイル共有 ID で指定されたレプリカ共有へのソース・ファイル共有のフェイルオーバーを開始します。
fallback_policy
プロパティーの値は、 split
または fail
のいずれかです。 fail
が指定された場合、フェイルオーバー操作が失敗するか、タイムアウトに達すると、フェイルオーバー操作は失敗となる。 複製関係は変更されません。
fallback_policy
プロパティーに split
を指定すると、フェイルオーバー操作が失敗するたびに、レプリカ共有がソース共有から分割されます。 その結果、2つの独立した読み書き可能なファイル共有ができる。 この場合、最終的なファイルの同期が完了していないため、レプリカ共有にはソースファイル共有のすべてのデータが含まれていない可能性があります。 このオプションは、ソース・ファイル共有が到達不能であることが分かっている場合に災害復旧に使用します。
要求に fallback_policy
プロパティーが指定されていない場合、フェイルオーバー操作が失敗すると、システムはデフォルトで split
になります。
この例では、 fallback_policy
プロパティーに fail
を指定しています。 timeout
プロパティーはオプションです。 デフォルトのタイムアウトを使うことができる。
curl -X POST \
"$vpc_api_endpoint/v1/shares/$replica_id?/failover?version=2023-08-08"\
-H "Authorization: $iam_token"\
-d '{
"fallback_policy": "fail",
"timeout": 600
}'
正常な応答は、ファイル共有フェイルオーバー要求が受け入れられたことを示します。
APIを使用して、レプリケーション・フェイルオーバーが成功したか、保留中か、失敗したかを確認できます。 GET /shares/{replica_id}
呼び出しを行います。 latest_job
プロパティーを確認します。 詳しくは、API を使用した複製の検証を参照してください。
Terraform を使用したフェイルオーバーの開始
フェイルオーバーが実行されると、レプリカ共有がソースになり、ソース共有がレプリカになります。 この変更に合わせて Terraform 構成を変更する必要があります。 fallback_policy
は、フェイルオーバー要求が受け入れられたが、実行できなかったりタイムアウトした場合に取るべきアクションを定義する。 受け入れられる値は、 split
または fail
です。 split
を指定した場合、フェイルオーバーが失敗すると、システムは複製関係を中断し、2 つのファイル共有は相互に独立した状態になります。
resource "ibm_is_share_replica_operations" "test" {
share_replica = ibm_is_share.replica.id
fallback_policy = "split"
timeout = 500
}
引数および属性について詳しくは、 ibm_is_share_replica_operationsを参照してください。