レプリケーションの前後処理シェルスクリプトのカスタマイズ方法を、以下に説明します。
複写元ボリュームをアンマウントしたくない場合
マウントされているがアンマウントしたくない複写元ボリュームに対しては、以下の例を参考にカスタマイズしてください。
アンマウントしたくない複写元ボリュームについて
複写元ボリューム用の前処理シェルスクリプト(RepSrc.pre)の76~79、83、119行目のコメント("#")をエディタなどで消去し、76行目のif文で対象となる複写元ボリューム名を指定してください。
アンマウントしたくない複写元ボリュームに対する複写先ボリュームについて
複写先ボリューム用の後処理シェルスクリプト(RepDst.post)の84~136行目のコメント("#")をエディタなどで消去し、84行目のif文で対象となる複写先ボリューム名を指定してください。
この操作は、ファイルシステムが以下の場合だけ可能です。
ufs
SafeFILE(シングルパーティション構成)
カスタマイズしたシェルスクリプトによる複写元ボリュームの前後処理は、以下のように動作します。
複写元ボリュームの状態 | 複写元前処理 | 複写元後処理 |
---|---|---|
マウントされている | 複写元ボリュームへの更新を抑止します。 | 複写元ボリュームへの更新抑止を解除します。 |
カスタマイズしたシェルスクリプトによる複写先ボリュームの後処理は、以下のように動作します。
複写先後処理 |
---|
複写先ボリュームの整合性を確認します。 |
注意
標準のシェルスクリプトを使用した運用では、アドバンスト・コピー(EC/OPC)の前にファイルシステムをアンマウントすることで、ファイルシステムのキャッシュの書出しと、そのあとの更新が抑止されるため、ファイルシステム全体のデータの整合性が保証されます。
シェルスクリプトをカスタマイズしてファイルシステムをアンマウントしない場合は、lockfs -wを使用してファイルシステムのキャッシュのフラッシュとそのあとの更新を抑止しますが、Write Open中のファイル(オンラインバックアップをサポートしているOracleのデータベーススペースは除きます)は、ファイル内容が保証されません。また、メタデータ更新中のプロセスがある場合は、lockfsの仕様上、ファイルシステム自体のデータ整合性も保証されません。
したがって、ファイルシステムをアンマウントしない場合は、運用でデータ整合性を考慮・対処する必要があります。
SDXオブジェクトをスライス単位で運用する場合、複写元ボリューム用の前処理シェルスクリプト(RepSrc.pre)の76行目、複写先ボリューム用の後処理シェルスクリプト(RepDst.post)の84行目にはスライス名(/dev/sfdsk/(クラス名)/dsk/(ボリューム名):(sdxinfoのDEVNAMの値))でなく、論理ボリューム名(/dev/sfdsk/(クラス名)/dsk/(ボリューム名))を指定してください。
VERITAS Cluster Serverでクラスタ運用する場合
VERITAS Cluster Serverでクラスタ運用する場合で、複写先/複写元のボリュームのマウントポイントがクラスタ業務に登録されているときは、前後処理シェルスクリプトのカスタマイズが必要です。
前後処理シェルスクリプト内のアンマウント/マウント処理を、マウントポイントリソースのオフライン/オンライン処理に変更してください。
また、マウントポイントリソースのオフライン/オンラインを行ってから実際にボリュームがアンマウント/マウントされるまでに時間差があります。そのため、実際にアンマウント/マウントされるまで待ち合わせる処理(sleepやdfコマンドの結果を監視するなど)をオフライン/オンラインの成否を判定する箇所のうしろに追加してください。
以下に、前後処理シェルスクリプトのカスタマイズ例を示します。
[例] 複写元ボリューム用の前処理シェルスクリプト(RepSrc.pre)の、アンマウント処理変更
[87、97行目]
(変更前) | /usr/sbin/umount $mount_point |
(変更後) | /opt/VRTSvcs/bin/hares -offline resourceName -sys systemName |
[例] 複写元ボリューム用の前処理シェルスクリプト(RepSrc.pre)の、アンマウント待ち処理の追加
[116行目]
(追加) | while /usr/sbin/df -l "$device">/dev/null 2>&1; do :; done |
[例] 複写先ボリューム用の前処理シェルスクリプト(RepDst.pre)の、アンマウント処理変更
[74、84行目]
(変更前) | /usr/sbin/umount $mount_point |
(変更後) | /opt/VRTSvcs/bin/hares -offline resourceName -sys systemName |
[例] 複写先ボリューム用の前処理シェルスクリプト(RepDst.pre)の、アンマウント待ち処理追加
[103行目]
(追加) | while /usr/sbin/df -l "$device">/dev/null 2>&1; do :; done |
[例] 複写元ボリューム用の後処理シェルスクリプト(RepSrc.post)の、マウント処理変更
[99、103、105、118、122、124行目]
(変更前) | /usr/sbin/mount $device $mount_pointまたは |
(変更後) | /opt/VRTSvcs/bin/hares -online resourceName -sys systemName |
[例] 複写元ボリューム用の後処理シェルスクリプト(RepSrc.post)の、マウント待ち処理追加
[144行目]
(追加) | until /usr/sbin/df -l "$device">/dev/null 2>&1; do :; done |
[例] 複写先ボリューム用の後処理シェルスクリプト(RepDst.post)の、マウント処理変更
[153、160、172、179行目]
(変更前) | /usr/sbin/mount $device $mount_point または |
(変更後) | /opt/VRTSvcs/bin/hares -online resourceName -sys systemName |
[例] 複写先ボリューム用の後処理シェルスクリプト(RepDst.post)の、マウント待ち処理追加
[197行目]
(追加) | until /usr/sbin/df -l "$device">/dev/null 2>&1; do :; done |