Isilon:CLIでSyncIQをフェールオーバーおよびフェールバックする手順
Summary: CLIでポリシーのフェールオーバー/フェールバックを実行する手順。
Symptoms
CLIでSyncIQフェールオーバーおよびフェールバックを実行する手順を教えてください。
UI向けプロセスには詳細ガイドがありますが、CLI向けに同様のガイドを提供してください。
Cause
FOFBの実行に関する詳細手順, Detailed steps on doing FOFB
Resolution
フェールオーバーとフェールバックに関するCLIガイド:
- PowerScale OneFS 9.5.0.0 CLI管理ガイド
9.5の場合は271ページ - PowerScale OneFS 9.7.0.0 CLI管理ガイド
9.7の場合は288ページ - PowerScale OneFS 9.8.0.0 CLI管理ガイド
9.8の場合は295ページ - PowerScale OneFS 9.9.0.0 CLI管理ガイド
9.9の場合は296ページ - PowerScale OneFS 9.10.0.0 CLI管理ガイド
299の場合は9.10ページ
上記のドキュメントには有用な情報がいくつか記載されていますが、CLIを使用してフェールオーバーとフェールバックを実行する場合の手順については、以下で詳しく説明します。
以下の手順では、これら2つの用語にSyncIQの用語を使用します。
- ソース クラスター = プライマリー
- ターゲット クラスター = セカンダリー
フェールオーバー:
-
これがクラスターでの最初のフェールオーバーの試行である場合は、プライマリー クラスターで、数日または数週間前に、
domainmarkこれがクラスターの最初のフェールオーバー試行である場合、数日または数週間前のジョブ。データセットが大きい場合は、domainmarkジョブ フェーズを高速化するのに役立ちます。注:新しい「フェールバックの高速化」オプションを使用すると、この手順は不要になります。この手順は1回のみ実行する必要があります。一度マークすると、将来domainmarkジョブは (以下の手順 7 を参照)、何も処理しません。# isi job jobs start domainmark --root=<path> --dm-type=synciq
これにより、フェールオーバー ジョブですべてを実行するのではなく、すべてのLINに適切な保護ドメインIDが事前にマークされます(手順7を参照)。「
domainmarkジョブは、データセットのサイズによって長時間かかる場合があります。 -
PRIMARYポリシーのパスへのすべての書き込みを停止します。
注:この手順以降に発生するプライマリー ポリシー パスへの書き込みは保持されず、DLが発生する可能性があります。プライマリー上のそのパスへのすべての書き込みが停止したことを確認します。 -
プライマリー クラスターで、ポリシー スケジュールをバックアップしてから、ポリシーを手動に設定してすべてのスケジュールを無効にします。
スケジュールのバックアップ コピーを保存するには、次の手順を実行します。
# cat /ifs/.ifsvar/modules/tsm/config/siq-policies.gc|egrep 'common.name|schedule ' >> /ifs/.ifsvar/modules/tsm/config/policy-schedules.txt
次に、ポリシーを手動に設定して、すべてのスケジュールを無効にします。
注:同期ジョブとフェールオーバー ジョブは、設計上同時に実行できず、フェールオーバーの試行が失敗する原因となります。この状態を回避するには、すべてのポリシーを手動に設定します。# isi sync policies modify --policy=[POLICY] --schedule=""
-
プライマリー クラスターで、最後の同期ジョブを実行し、正常に完了したことを確認します。
注:この手順は、FOFB機能をテストする場合にのみ推奨されます。プライマリー クラスターですでに障害イベントが発生しており、セカンダリー クラスターが書き込みを許可するように設定されている場合は、この手順を実行しないでください。# isi sync jobs start [POLICY]
次のコマンドを実行して、正常に完了したことを確認します。
# isi sync reports list --reports-per-policy=1 *Confirm the End time and State=finished
プライマリー クラスターで、最後の同期ジョブを実行します。
# isi sync jobs start [POLICY]
-
セカンダリー クラスターで、「書き込みを許可」アクションを実行し、ローカル ジョブがそのアクションを完了していることを確認します。
# isi sync recovery allow-write --policy-name=[POLICY] # isi sync target list Name Source Target Path Last Job State FOFB State ----------------------------------------------------------------------------------- qtestsync primary_clust /ifs/data/siq_quota_test finished writes_enabled ----------------------------------------------------------------------------------- Total: 1メモ: 必要に応じて、両方のクラスターでSmartLockディレクトリー設定をリバースします。
https://infohub.delltechnologies.com/en-us/l/dell-powerscale-smartlock-best-practices/synciq/ -
クライアント(SMB、NFS、HTTP、FTPなど)をセカンダリー クラスターにリダイレクトします。
注:この手順の詳細は、この記事の範囲外であり、SMB共有の作成、Active Directoryドメインへの参加、マシン アカウント/SPN、NFSのエクスポート、SmartConnect DNSのリダイレクト、認証プロバイダーの追加が必要です。 -
resync-prepに進む前に、両方のクラスターでリカバリー スナップショットを作成します。
ソース上
# isi snapshot snapshots create --path=[SOURCE_PATH] --name=SIQ-recovery-policy-[POLICY_NAME] --expires=2W
ターゲット上
# isi snapshot snapshots create --path=[TARGET_PATH] --name=SIQ-recovery-policy-[POLICY_NAME] --expires=2W
-
プライマリー クラスターで、再同期の準備を使用してフェールオーバー ジョブを実行し、resync_prep_finalizeフェーズが完了していることを確認します。
# isi sync recovery resync-prep --policy-name=[POLICY] # isi sync reports list --policy-name=qtestsync --sort job_id Policy Name Job ID Start Time End Time Action State --------------------------------------------------------------------------------------------- qtestsync 1 2015-02-11T08:31:27 2015-02-11T08:31:34 run finished qtestsync 2 2015-02-11T08:41:19 2015-02-11T08:41:31 resync_prep finished qtestsync 3 2015-02-11T08:41:31 2015-02-11T08:41:34 resync_prep_domain_mark finished qtestsync 4 2015-02-11T08:41:34 2015-02-11T08:41:42 resync_prep_restore finished qtestsync 5 2015-02-11T08:41:42 2015-02-11T08:41:45 resync_prep_finalize finished
フェールバック
ls -l /ifs/.ifsvar/modules/tsm/config/source_records/7da67596f099b75ad687a05f6b11781d*
-
セカンダリー クラスターで新しい[POLICY]_mirrorポリシーを実行して、プライマリーへの同期を開始できます。
# isi sync jobs start --policy-name=[POLICY]_mirror
-
セカンダリー ポリシーのパスへのすべての書き込みを停止します。
注:この手順以降に発生するセカンダリー ポリシー パスへの書き込みは保持されず、DLが発生する可能性があります。セカンダリ上のそのパスへのすべての書き込みが停止したことを確認します。 -
ポリシーを手動に設定して、すべてのスケジュールを無効にします。
# isi sync policies modify --policy=[POLICY]_mirror --schedule=""
-
セカンダリー クラスターで、最後の同期ジョブを実行します。
# isi sync jobs start --policy-name=[POLICY]_mirror
-
プライマリー クラスターで、「書き込みを許可」アクションを実行し、ローカル ジョブがそのアクションを完了していることを確認します。
# isi sync recovery allow-write --policy-name=[POLICY]_mirror # isi sync target list Name Source Target Path Last Job State FOFB State ----------------------------------------------------------------------------------- qtestsync_mirror secondary_clust /ifs/data/siq_quota_test finished writes_enabled ----------------------------------------------------------------------------------- Total: 1
メモ: 必要に応じて、両方のクラスターでSmartLockディレクトリー設定をリバースします。
https://infohub.delltechnologies.com/en-us/l/dell-powerscale-smartlock-best-practices/synciq/ -
クライアント(SMB、NFS、HTTP、FTPなど)をプライマリー クラスターにリダイレクトします。
注:この手順の詳細は、この記事の範囲外であり、SMB共有の作成、NFSのエクスポート、SmartConnect DNSのリダイレクトが必要です。 -
resync-prepに進む前に、両方のクラスターでリカバリー スナップショットを作成します。
ソース上
# isi snapshot snapshots create --path=[SOURCE_PATH] --name=SIQ-recovery-policy-[POLICY_NAME] --expires=2W
ターゲット上
# isi snapshot snapshots create --path=[TARGET_PATH] --name=SIQ-recovery-policy-[POLICY_NAME] --expires=2W
-
セカンダリー クラスターで、prepare resyncを使用してフェールバック ジョブを実行し、resync_prep_finalizeが成功したことを確認します
# isi sync recovery resync-prep --policy-name=[POLICY]_mirror # isi sync reports list --policy-name=[POLICY]_mirror --sort job_id --reports-per-policy=5 Policy Name Job ID Start Time End Time Action State --------------------------------------------------------------------------------------------- qtestsync_mirror 1 2015-02-12T08:31:27 2015-02-12T08:31:34 run finished qtestsync_mirror 2 2015-02-12T08:41:19 2015-02-12T08:41:31 resync_prep finished qtestsync_mirror 3 2015-02-12T08:41:31 2015-02-12T08:41:34 resync_prep_domain_mark finished qtestsync_mirror 4 2015-02-12T08:41:34 2015-02-12T08:41:42 resync_prep_restore finished qtestsync_mirror 5 2015-02-12T08:41:42 2015-02-12T08:41:45 resync_prep_finalize finished
セカンダリーが読み取り専用になり、セカンダリーの[POLICY]_mirrorポリシーが無効になります。
注:ミラー ポリシーは削除しないでください。 -
これで、プライマリーの元のポリシーが有効になります。フェールオーバーの手順3のバックアップ ファイルを使用して、ポリシー スケジュールをリストアします。
プライマリーの場合:
保存されたポリシー スケジュールのコピーを表示します。# cat /ifs/.ifsvar/modules/tsm/config/policy-schedules.txt
ポリシー スケジュールをリストアします。
# isi sync policies modify --policy=[POLICY] --schedule=[schedule]
- 元のセカンダリでは、フェールバックが成功した後にSIQ-<mirrorpolID>-latestスナップショットが残ります。セカンダリー上の既存のスナップショットへのCOW書き込みを回避するには、SIQ-<mirrorpolID>-latestスナップショットを手動でクリーンアップします。
# isi snapshot snapshots list ID Name Path ----------------------------------------------------------------------- 16 SIQ-recovery-policy-Test /ifs/data/failovertest 18 SIQ-005056ac0655f7f5e267a71dae70c997-latest /ifs/data/failovertest <-- pol_mirror-latest 24 SIQ-ps9715x1-Test-2025-03-25_19-20-52 /ifs/data/failovertest ----------------------------------------------------------------------- Total: 3 # isi snapshot snapshots delete --id=<id>
Additional Information
以下に、フェールオーバーおよびフェールバック後のセカンダリー クラスターでの変更を無視するテスト手順の例を示します。ミラー ポリシーは、セカンダリーからプライマリーへの通常の同期ジョブではなく、RESYNC PREPとしてのみ実行され、変更がプライマリー クラスターに送り返されない点を除き、同じ手順に従います。次の手順に進む前に、各手順が完了していることを確認してください。
フェールオーバー:
-
これがクラスターでの最初のフェールオーバーの試行である場合は、プライマリー クラスターで、数日または数週間前に、
domainmarkこれがクラスターの最初のフェールオーバー試行である場合、数日または数週間前のジョブ。データセットが大きい場合は、domainmarkジョブ フェーズを高速化するのに役立ちます。注:これが有効なのは、初めてフェールオーバーを試行する場合のみです。これ以降のフェールオーバーの試行では、このメリットが得られなくなります。# isi job jobs start domainmark --root=<path> --dm-type=synciq
これにより、フェールオーバー ジョブですべてを実行するのではなく、すべてのLINに適切な保護ドメインIDが事前にマークされます(手順7を参照)。そうすると、
domainmarkジョブは、データセットのサイズによって長時間かかる場合があります。 -
PRIMARYポリシーのパスへのすべての書き込みを停止します。
注:この手順以降に発生するプライマリー ポリシー パスへの書き込みは保持されず、DLが発生する可能性があります。プライマリー上のそのパスへのすべての書き込みが停止したことをお客様に確認してください。 -
プライマリー クラスターで、ポリシー スケジュールをバックアップしてから、ポリシーを手動に設定してすべてのスケジュールを無効にします。
スケジュールのバックアップ コピーを保存するには、次の手順を実行します。
# cat /ifs/.ifsvar/modules/tsm/config/siq-policies.gc|egrep 'common.name|schedule ' >> /ifs/.ifsvar/modules/tsm/config/policy-schedules.txt
次に、ポリシーを手動に設定して、すべてのスケジュールを無効にします。
注:同期ジョブとフェールオーバー ジョブは、設計上同時に実行できず、フェールオーバーの試行が失敗する原因となります。この状態を回避するには、すべてのポリシーを手動に設定します。# isi sync policies modify --policy=[POLICY] --schedule=""
-
プライマリー クラスターで、最後の同期ジョブを実行し、正常に完了したことを確認します。
注:この手順は、FOFB機能をテストする場合にのみ推奨されます。プライマリー クラスターですでに障害イベントが発生しており、セカンダリー クラスターが書き込みを許可するように設定されている場合は、この手順を実行しないでください。# isi sync jobs start [POLICY]
次のコマンドを実行して、正常に完了したことを確認します。
# isi sync reports list --reports-per-policy=1 *Confirm the End time and State=finished
プライマリー クラスターで、最後の同期ジョブを実行します。
# isi sync jobs start [POLICY]
-
セカンダリー クラスターで、「書き込みを許可」アクションを実行し、ローカル ジョブがそのアクションを完了していることを確認します。
# isi sync recovery allow-write --policy-name=[POLICY] # isi sync target list Name Source Target Path Last Job State FOFB State ----------------------------------------------------------------------------------- qtestsync primary_clust /ifs/data/siq_quota_test finished writes_enabled ----------------------------------------------------------------------------------- Total: 1
-
クライアント(SMB、NFS、HTTP、FTPなど)をセカンダリー クラスターにリダイレクトします。
注:この手順の詳細は、この記事の範囲外であり、SMB共有の作成、Active Directoryドメインへの参加、マシン アカウント/SPN、NFSのエクスポート、SmartConnect DNSのリダイレクト、認証プロバイダーの追加が必要です。 -
プライマリー クラスターで、「prepare re-sync」を使用してフェールオーバー ジョブを実行し、resync_prep_finalizeフェーズが完了したことを確認します。
# isi sync recovery resync-prep --policy-name=[POLICY]
# isi sync reports list --policy-name=qtestsync --sort job_id Policy Name Job ID Start Time End Time Action State --------------------------------------------------------------------------------------------- qtestsync 1 2015-02-11T08:31:27 2015-02-11T08:31:34 run finished qtestsync 2 2015-02-11T08:41:19 2015-02-11T08:41:31 resync_prep finished qtestsync 3 2015-02-11T08:41:31 2015-02-11T08:41:34 resync_prep_domain_mark finished qtestsync 4 2015-02-11T08:41:34 2015-02-11T08:41:42 resync_prep_restore finished qtestsync 5 2015-02-11T08:41:42 2015-02-11T08:41:45 resync_prep_finalize finished
フェールバック
テストのために変更をプライマリーに送り返さない場合は、ステップ1と4(以下で削除)をスキップします。
セカンダリー クラスターで新しい[POLICY]_mirrorポリシーを実行して、プライマリーへの同期を開始できます。
-
セカンダリー ポリシーのパスへのすべての書き込みを停止します。
-
ポリシーを手動に設定して、すべてのスケジュールを無効にします。
# isi sync policies modify --policy=[POLICY]_mirror --schedule=""
-
プライマリー クラスターで、「書き込みを許可」アクションを実行し、ローカル ジョブがそのアクションを完了していることを確認します。
# isi sync recovery allow-write --policy-name=[POLICY]_mirror # isi sync target list Name Source Target Path Last Job State FOFB State ----------------------------------------------------------------------------------- qtestsync_mirror secondary_clust /ifs/data/siq_quota_test finished writes_enabled ----------------------------------------------------------------------------------- Total: 1
-
クライアント(SMB、NFS、HTTP、FTPなど)をプライマリー クラスターにリダイレクトします。
注:この手順の詳細は、このKBの範囲外であり、SMB共有の作成、NFSのエクスポート、SmartConnect DNSのリダイレクトが必要です。 -
セカンダリー クラスターで、「prepare re-sync」を使用してフェールバック ジョブを実行し、resync_prep_finalizeが成功したことを確認します。
# isi sync recovery resync-prep --policy-name=[POLICY]_mirror # isi sync reports list --policy-name=qtestsync_mirror --sort job_id Policy Name Job ID Start Time End Time Action State --------------------------------------------------------------------------------------------- qtestsync_mirror 1 2015-02-12T08:31:27 2015-02-12T08:31:34 run finished qtestsync_mirror 2 2015-02-12T08:41:19 2015-02-12T08:41:31 resync_prep finished qtestsync_mirror 3 2015-02-12T08:41:31 2015-02-12T08:41:34 resync_prep_domain_mark finished qtestsync_mirror 4 2015-02-12T08:41:34 2015-02-12T08:41:42 resync_prep_restore finished qtestsync_mirror 5 2015-02-12T08:41:42 2015-02-12T08:41:45 resync_prep_finalize finished
セカンダリーが読み取り専用になり、セカンダリーの[POLICY]_mirrorポリシーが無効になります。
注:ミラー ポリシーは削除しないでください。 -
これで、プライマリーの元のポリシーが有効になります。フェールオーバーの手順3のバックアップ ファイルを使用して、ポリシー スケジュールをリストアします。プライマリーの場合:
保存されたポリシー スケジュールのコピーを表示します。
# cat /ifs/.ifsvar/modules/tsm/config/policy-schedules.txt
ポリシー スケジュールをリストアします。
# isi sync policies modify --policy=[POLICY] --schedule=[schedule]