レプリケーションの前後処理のシェルスクリプトについて、カスタマイズ方法を以下に説明します。
マウントされているがアンマウントしたくない複写元ボリュームに対しては、以下のカスタマイズ例を参考にしてシェルスクリプトをカスタマイズしてください。
アンマウントしたくない複写元ボリュームについて
複写元ボリューム前処理のシェルスクリプト(RepSrc.pre)の76~81、85、121行目のコメント(“#”)をエディタ等で消去し、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)のアンマウント処理変更
[89、99行目]
(変更前) | /usr/sbin/umount $mount_point |
(変更後) | /opt/VRTSvcs/bin/hares -offline リソース名 -sys システム名 |
[例] 複写元ボリューム前処理のシェルスクリプト(RepSrc.pre)のアンマウント待ち処理の追加
[118行目]
(追加) | 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 リソース名 -sys システム名 |
[例] 複写先ボリューム前処理のシェルスクリプト(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 リソース名 -sys システム名 |
[例] 複写元ボリューム後処理のシェルスクリプト(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 リソース名 -sys システム名 |
[例] 複写先ボリューム後処理のシェルスクリプト(RepDst.post)のマウント待ち処理追加
[197行目]
(追加) | until /usr/sbin/df -l "$device">/dev/null 2>&1; do :; done |