ETERNUS SF AdvancedCopy Manager 運用手引書 13.0 -AIX-
目次 索引 前ページ次ページ

付録B レプリケーションの前後処理

本章では、AdvancedCopy Managerのレプリケーションの前後処理を行うシェルスクリプトについて説明します。

B.1 概要 

レプリケーションの前後処理のシェルスクリプトは、レプリケーション(複製)処理の前後で起動されます。

これらのシェルスクリプトには、AdvancedCopy Managerが、複製元ボリュームおよび複製先ボリュームに必要な処理を記述します。

この章では、前後処理の設定について説明します。

B.2 レプリケーションの前後処 

AdvancedCopy Managerでのレプリケーションの前後処理は、複製元/複製先ボリュームの双方に対して実施する必要がありますが、その目的は異なります。

前後処理で行う具体的な処理は、そのボリュームのデータ内容によって異なります。次章では、ファイルシステムとデータベースの前後処理についてそれぞれ説明します。

B.2.1 ファイルシステムの前後処理 

ファイルシステムの前後処理とは、ファイルシステムのアンマウント/マウント処理です。複製元ボリュームに対する前後処理は、複製元データを保証するためのものです。複製先ボリュームに対する前後処理は、同期処理実行中やスナップショットコピー時に他プロセスからのアクセスを不可能にするためのものです。ボリュームがマウントされていなく、かつ非活性の場合は、前後処理は実施されません。

ファイルシステムの前後処理の実施状況を以下に示します。この表は、前後処理が実行されるかどうかは、コマンド種別によって異なり、さらに、そのコマンドを実行したときのコピー状態によっても異なることを示しています。ただし,論理ボリューム(ボリュームグループ)の場合はカスタマイズしていない状態ではアンマウント/マウント処理動作しません。ボリュームグループの場合は,必ず前後処理スクリプトをカスタマイズしてください。

[表 B.1 ファイルシステムの前後処理(○:実施する、×:実施しない)]

コマンド

コピー状態

複製元/複製先

前処理

後処理

複製開始コマンド
(swsrpstartsync)

未コピー状態または

複製確立状態

複製元

×

×

複製先

○--(1)

×

複製作成コマンド
(swsrpmake)

等価性維持状態

複製元

複製先

×

○--(2)

複製解除コマンド
(swsrpcancel)

等価性維持状態

複製元

複製先

×

○--(2)

複製確立状態

複製元

×

×

複製先

×

×

コピー中

複製元

×

×

複製先

×

×

スナップショット複製作成コマンド
(swsrpmake)

未コピー状態

複製元

複製先


(1)で行った前処理に対する後処理は(2)で行われます。(2)の後処理では、(1)の前処理でアンマウントしたマウントポイントに再マウントを行います。

ファイルシステムの前後処理は、カスタマイズ可能なようにスクリプトになっています。レプリケーション管理コマンドを実施した際に、上の表にしたがって起動されます。また、サーバ間レプリケーションの場合、接続されていないボリュームの前後処理は、TCP/IPによるリモート実行でこれらのスクリプトが実行されます。

図 B.1 に前後処理の動作イメージを示します。

[図 B.1 同期型レプリケーションの処理方法]

前後処理で標準の前後処理以外で必要な処理がある場合はそれぞれのスクリプトをカスタマイズしてください。

スクリプトをカスタマイズする場合、エラーコードは以下の規約に従ってください。

エラーコード

用途

0-99

使用不可(AdvancedCopy Managerが予約)

100-255

使用可能

レプリケーション対象がファイルシステムが構築された論理ボリュームを含むボリュームグループの場合は、本マニュアルの『レプリケーション対象がボリュームグループの場合』を参照し、ファイルシステムが構築された全ての論理ボリュームに対してアンマウント/マウントが実施されるように前後処理スクリプトをカスタマイズする必要があります。

データベースの前後処理については、AdvancedCopy Managerでは機能を提供しませんので、AdvancedCopy Managerコマンド実行の前後で独自に実施する必要があります。

B.2.2 レプリケーション実行時の前処

前処理スクリプトには複写元ボリューム(RepSrc.Pre)と複写先ボリューム(RepDst.Pre)を用意し、以下のディレクトリ配下に格納されています。処理の必要性に応じてスクリプトをカスタマイズしてください。

非クラスタ運用の場合

/etc/opt/FJSVswsrp/shディレクトリ配下

クラスタ運用の場合

/etc/opt/FJSVswsrp/<論理ノード名>/shディレクトリ配下

B.2.3 レプリケーション実行時の後処

後処理スクリプトには複写元ボリューム(RepSrc.Post)と複写先ボリューム(RepDst.Post)を用意し、以下のディレクトリ配下に格納されています。処理の必要性に応じてスクリプトをカスタマイズしてください。

非クラスタ運用の場合

/etc/opt/FJSVswsrp/shディレクトリ配下

クラスタ運用の場合

/etc/opt/FJSVswsrp/<論理ノード名>/shディレクトリ配下

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

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

スクリプトに対して必要な修正を実施後,複写元ボリューム前処理スクリプトの60行目及び複写先ボリューム前処理スクリプトの64行目のexit文をコメント("#")化してください。

また、ファイルシステムが構築されていない論理ボリュームを含むボリュームグループがレプリケーション対象の場合は、上記修正に加えて、複写先ボリューム後処理スクリプトの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/***** '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/***** '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


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2002-2006