ページの先頭行へ戻る
ETERNUS SF AdvancedCopy Manager 15.3 運用ガイド
ETERNUS

C.2.4 シェルスクリプトのカスタマイズ

レプリケーションの前後処理シェルスクリプトのカスタマイズ方法を、以下に説明します。

レプリケーション対象がボリュームグループの場合

ファイルシステムが構築された論理ボリュームを含むボリュームグループがレプリケーション対象の場合は、前後処理シェルスクリプトの修正が必要です。

シェルスクリプトに対して必要な修正を実施後、複写元ボリューム用の前処理シェルスクリプト(RepSrc.pre)の60行目、および複写先ボリューム用の前処理シェルスクリプト(RepDst.pre)の64行目のexit文をコメント(“#”)化してください。

また、ファイルシステムが構築されていない論理ボリュームを含むボリュームグループがレプリケーション対象の場合は、上記修正に加えて、複写先ボリューム用の後処理シェルスクリプト(RepDst.post)の212~217行目の処理をコメント(“#”)化してください。

注意

  • カスタマイズしていない状態では、ボリュームグループに対する前処理がエラーになります。

  • mountコマンドなどのOSコマンドのパラメーターやオプションは、運用に合わせて適宜修正してください。

  • 複写先のボリュームグループを活性化する運用を行っている場合、複写先ボリューム用の後処理シェルスクリプトにおいてLVM管理情報の書換え(recreatevg)を実施します。この処理は、時間のかかる場合があります。

VERITAS Cluster Serverでクラスタ運用する場合

VERITAS Cluster Serverでクラスタ運用する場合で、複写先/複写元のボリュームのマウントポイントがクラスタ業務に登録されているときは、前後処理シェルスクリプトのカスタマイズが必要です。

前後処理シェルスクリプト内のアンマウント/マウント処理を、マウントポイントリソースのオフライン/オンライン処理に変更してください。

また、マウントポイントリソースのオフライン/オンラインを行ってから実際にボリュームがアンマウント/マウントされるまでに時間差があります。そのため、実際にアンマウント/マウントされるまで待ち合わせる処理(sleepやdfコマンドの結果を監視するなど)をオフライン/オンラインの成否を判定する箇所のうしろに追加してください。

以下に、前後処理シェルスクリプトのカスタマイズ例を示します。

[例] 複写元ボリューム用の前処理シェルスクリプト(RepSrc.pre)の、アンマウント処理変更

[70、79、100、109行目]

(変更前)

/usr/sbin/umount $mount_point

(変更後)

/opt/VRTSvcs/bin/hares -offline リソース名 -sys システム名

[例] 複写元ボリューム用の前処理シェルスクリプト(RepSrc.pre)の、アンマウント待ち処理の追加

[98、128行目]

(追加)

mount_status="mounted"
while [ $mount_status = "mounted" ]
do
mount_status=`/usr/sbin/mount | /usr/bin/nawk -v lv=/dev/XXXXX 'lv==$1{flag=1; exit;} END{if(flag==1) print "mounted"; else print "not_mounted";}'`
done

[例] 複写先ボリューム用の前処理シェルスクリプト(RepDst.pre)の、アンマウント処理変更

[74、83、104、113行目]

(変更前)

/usr/sbin/umount $mount_point

(変更後)

/opt/VRTSvcs/bin/hares -offline リソース名 -sys システム名

[例] 複写先ボリューム用の前処理シェルスクリプト(RepDst.pre)の、アンマウント待ち処理追加

[102、132行目]

(追加)

mount_status="mounted"
while [ $mount_status = "mounted" ]
do
mount_status=`/usr/sbin/mount | /usr/bin/nawk -v lv=/dev/XXXXX 'lv==$1{flag=1; exit;} END{if(flag==1) print "mounted"; else print "not_mounted";}'`
done

[例] 複写元ボリューム用の後処理シェルスクリプト(RepSrc.post)の、マウント処理変更

[77、86、110、119行目]

(変更前)

/usr/sbin/mount $lvname $lv_mount_point

(変更後)

/opt/VRTSvcs/bin/hares -online リソース名 -sys システム名

[例] 複写元ボリューム用の後処理シェルスクリプト(RepSrc.post)の、マウント待ち処理追加

[104、137行目]

(追加)

mount_status="not_mounted"
while [ $mount_status = "not_mounted" ]
do
mount_status=`/usr/sbin/mount | /usr/bin/nawk -v lv=$lvname 'lv==$1{flag=1; exit;} END{if(flag==1) print "mounted"; else print "not_mounted";}'`
done

[例] 複写先ボリューム用の後処理シェルスクリプト(RepDst.post)の、マウント処理変更

[72、81行目]

(変更前)

/usr/sbin/mount $lvname $lv_mount_point

(変更後)

/opt/VRTSvcs/bin/hares -online リソース名 -sys システム名

[例] 複写先ボリューム用の後処理シェルスクリプト(RepDst.post)の、マウント待ち処理追加

[99行目]

(追加)

mount_status="not_mounted"
while [ $mount_status = "not_mounted" ]
do
mount_status=`/usr/sbin/mount | /usr/bin/nawk -v lv=$lvname 'lv==$1{flag=1; exit;} END{if(flag==1) print "mounted"; else print "not_mounted";}'`
done