この章では,$MOUNT および $DISMOU のシステム・サービスを使って,
シャドウ・セットを,作成,マウント,ディスマウント,
解除する方法を説明します。また,$GETDVI システム・サービスを使って,
シャドウ・セットの現在の状態を取得する方法も説明します。
これらの OpenVMS システム・サービスについての詳細は,『HP OpenVMS System Services Reference Manual』を参照してください。
5.1 $MOUNT を使ってシャドウ・セットを作成しマウントする
ユーザが作成するプログラムの中で $MOUNT システム・サービスを使ってシャドウ・セットを作成し管理することができます。 シャドウ・セットの作成,マウント,デバイスの追加を行う $MOUNT の呼び出しには, 同じ構文を使います。システムにマウント操作を行わせるためには, $MOUNT 項目リストを作成する必要があります。 この項目リストでは,シャドウ・セットに対応する仮想ユニットとこのシャドウ・セットに含まれるメンバ (物理デバイス) を指定します。
$MOUNT システム・サービス呼び出しの形式は,次のとおりです。
SYS$MOUNT itmlst
例 5-1
では,シャドウ・セットを作成してマウントするための $MOUNT 項目リストを作成する MACRO-32 文を示します。
例 5-1: シャドウ・セットを作成してマウントするための項目リスト
DSA23: .ASCID /DSA23:/
MEMBER001: .ASCID /$4$DUA9:/
MEMBER002: .ASCID /$4$DUA5:/
VOLUME_LABEL: .ASCID /MYVOLUME/
VOLUME_LOGNM: .ASCID /DISK$MYVOLUME/
.MACRO .ITEM, SIZE, CODE, BUFFER, RETURN=0
.WORD SIZE, CODE
.ADDRESS BUFFER, RETURN
.ENDM .ITEM
ITMLST: .ITEM 6, MNT$_SHANAM, DSA23
.ITEM 8, MNT$_SHAMEM, MEMBER001
.ITEM 8, MNT$_SHAMEM, MEMBER002
.ITEM 8, MNT$_VOLNAM, VOLUME_LABEL
.ITEM 13, MNT$_LOGNAM, VOLUME_LOGNM
.LONG 0
以下のリストで,例 5-1 の要点を説明します。
仮想ユニット項目記述子が最初にあることに注意してください。 この項目記述子では,DSA23 を仮想ユニットの名前として指定しています。 仮想ユニットとシャドウ・セット・メンバに名前を付けるための構文については, 4.2 節 を参照してください。
仮想ユニット項目記述子の後に,2 つのメンバ・ユニット項目記述子が続きます。 Volume Shadowing for OpenVMS はディスクをシャドウ・セットに追加するときに必要な操作のタイプ (コピーかマージ) を自動的に判断するため, すべてのデバイスが MNT$_SHAMEM 項目記述子でマウントされます。 これらの項目記述子は物理デバイス $4$DUA9 と $4$DUA5 が, DSA23 で表されたシャドウ・セットに追加されることを指定しています。
メンバ項目記述子の後には,MYVOLUME をシャドウ・セットのボリューム・ラベルとして指定する項目記述子が続きます。
最後の項目記述子では, DISK$MYVOLUME をシャドウ・セットの論理名として指定しています。
シャドウ・セットに別のデバイスを後で追加する場合は,
仮想ユニットの名前とシャドウ・セットに追加したいデバイスの名前を含む項目リストを指定して,$MOUNT 呼び出しを実行します。
例 5-2
には,
例 5-1
で作成されたシャドウ・セットに物理デバイス $4$DUA10: を追加する方法を示します。
例 5-2: シャドウ・セットにメンバを追加する項目リスト
DSA23: .ASCID /DSA23:/
MEMBER003: .ASCID /$4$DUA10:/
VOLUME_LABEL: .ASCID /MYVOLUME/
VOLUME_LOGNM: .ASCID /DISK$MYVOLUME/
.MACRO .ITEM, SIZE, CODE, BUFFER, RETURN=0
.WORD SIZE, CODE
.ADDRESS BUFFER, RETURN
.ENDM .ITEM
ITMLST: .ITEM 6, MNT$_SHANAM, DSA23
.ITEM 9, MNT$_SHAMEM, MEMBER003
.ITEM 8, MNT$_VOLNAM, VOLUME_LABEL
.ITEM 13, MNT$_LOGNAM, VOLUME_LOGNM
.LONG 0
5.2 節
では,$MOUNT シャドウ・セット項目コードを簡単に説明し,正しい$MOUNT 項目リストを作成する方法を説明します。
$MOUNT サービスと項目コードの詳細は,『HP OpenVMS System Services Reference Manual』を参照してください。
5.2 $MOUNT シャドウ・セット項目コード
この節では,シャドウ・セット管理に役に立つ SYS$MOUNT 項目コードについて簡単に説明します。
SYS$MOUNT,項目コード,その他のシステム・サービスの詳細は,『HP OpenVMS System Services Reference Manual』を参照してください。
5.2.1 MNT$_FLAGS 項目コード
MNT$_FLAGS 項目コードは,各々のビットでマウント操作のオプションを指定する,ロングワードのビット・ベクタを指定します。 バッファには,ビット・ベクタのロングワードが必要です。
$MNTDEF マクロでは,ビット・ベクタ内の各々のオプション (ビット) の記号名を定義しています。 ビット・ベクタは,必要なオプションの記号名を論理和演算で結合して作ります。 以下のリストは, 各々のシャドウ・セット・オプションの記号名の説明です。
MNT$M_INCLUDE は,シャドウ・セットをディスマウントやシステム障害の直前の状態に自動的に再構築します。 完全なシャドウ・セットをマウントするときにこのオプションを使います。
MNT$M_NOCOPY は,各物理デバイスをシャドウ・セットにマウントしたり追加したりするときの自動コピー操作を無効にします。 このオプションによって,意図していないデバイスをシャドウ・セットに追加したときに発生する,不注意によるデータ喪失を避けることができます。
MNT$M_MINICOPY_REQUIRED を指定すると,そのディスクでミニコピーが無効になっているときに,$MOUNT が失敗します。
MNT$M_MINICOPY_OPTIONAL を指定すると,そのディスクでミニコピーが有効になっていなくても,$MOUNT が続行されます。
MNT$M_OVR_SHAMEM を指定すると,以前シャドウ・セットのメンバであったディスクを, シャドウ・セットとしてではなく単独のディスクとしてマウントできます。 このオプションを指定しないと,$MOUNT は不慮のデータ削除を避けるために, ボリュームを自動的に書き込み保護にしてマウントします。 このオプションを指定するためには, ユーザはそのボリュームの所有者であるか VOLPRO 特権を持っている必要があります。
このオプションを使うと,シャドウ・セット世代番号はボリュームから削除されます。 その後再びそのボリュームを以前のシャドウ・セットにマウントすると, $MOUNT はそれを無関係なボリュームであるとみなし,コピー操作をマークします。
MNT$M_REQUIRE_MEMBERS は,$MOUNT システム・サービスを有効にするために MOUNT コマンドが発行されたときに,/SHADOW 修飾子で指定した すべての物理デバイスが,アクセス可能である必要があるかどうかを制御します。
MNT$M_VERIFY_LABELS は,シャドウ・セットに追加されるすべてのメンバが, SCRATCH_DISK というボリューム・ラベルを持っていることを要求します。 これにより,間違ったディスクがシャドウ・セットに追加されないことが保証されます。 VERIFY_LABELS を使う予定がある場合は, 最初にディスクにラベルを割り当てる必要があります。 これは,セットに追加するディスクを SCRATCH_DISK というラベルで初期化するか, SET VOLUME/LABEL コマンドでディスクにラベルを指定するかのどちらかで行います。 デフォルトは NOVERIFY_LABEL です。これは,コピーのターゲットのラベルを確認しないことを意味します。 このデフォルト動作は, このオプションが導入される前の動作と同じです。
マウントする仮想ユニットの名前を指定します。 バッファは,DSAn の形式の仮想ユニット名を格納する 1 〜 64 文字の文字列型です。 この文字列には,論理名を指定することもできます。 論理名の場合は,仮想ユニット名に変換できなければなりません。 項目リストには,少なくとも 1 つの MNT$_SHANAM 項目記述子が必要です。
複数のシャドウ・セットを含むボリューム・セットをマウントする場合は,
ボリューム・セットに含まれる各々の仮想ユニットには 1 つの MNT$_SHANAM 項目記述子がなければなりません。
5.2.3 MNT$_SHAMEM 項目コード
シャドウ・セットにマウントする物理デバイスの名前を指定します。シャドウイング・ソフトウェアは, MNT$_SHANAM 項目記述子で指定される仮想ユニットに対応するシャドウ・セットにこのデバイスを追加します。 MNT$_SHANAM 記述子は, デバイス名を持つ 1 〜 64 文字の文字列型です。この文字列は物理デバイス名でも, 論理名でも構いませんが, 論理名の場合は物理デバイス名に変換できなくてはなりません。
項目リストには,メンバを指定する項目記述子が,少なくとも 1 つ必要です。
この項目記述子は MNT$_SHANAM 項目記述子の後になくてはなりません。
5.2.4 $MOUNT 項目リスト作成時の要点
$MOUNT 項目リストを作成する場合に,覚えておかなくてはならない要点がいくつかあります。
シャドウ・セットをマウントするすべての項目リストには, 仮想ユニットを指定する少なくとも 1 つの項目記述子と, メンバを指定する少なくとも 1 つの項目記述子が必要です。
仮想ユニットを指定する項目記述子は,シャドウ・セットに含まれるメンバを指定する項目記述子より前になければなりません。 その後に,MNT$_SHAMEM 項目コードを使って,その仮想ユニットに対応するメンバをいくつでも指定することができます。
ボリューム・セットをマウントする場合, 項目リストには各々の仮想ユニットの項目記述子が入っている必要があります。 仮想ユニットの項目記述子の後には, その仮想ユニットに対応するメンバを指定する項目記述子が続きます。
シャドウ・セットをマウントするとき,デバイスをシャドウ・セットに追加する前にコピー操作やマージ操作が必要かどうかをシステムが判断します。 したがって,デバイスがこれらの操作を必要としているかどうかにかかわらず, MNT$_SHAMEM 項目コードを使って,任意のメンバを指定することができます。
5.3 $MOUNT を使ってボリューム・セットをマウントする
ボリューム・セットをマウントするときは,必ず最大のストレージ容量を持つボリュームが最初になるように並べます。 最大のボリュームを最初に指定する理由は,MOUNT コマンド行に並べられた最初のボリュームに, ボリューム・セットとディレクトリの情報が書き込まれるからです。 小容量のディスクではボリューム・セットとディレクトリの情報を記録するためのストレージが十分確保できないときがあります。
例 5-3
では,2 つのシャドウ・セットを持つボリューム・セットをマウントするための $MOUNT システム・サービス
項目リストを作成する MACRO-32 文を示します。
例 5-3: ボリューム・セットを作成してマウントするための項目リスト
DSA23: .ASCID /DSA23:/
DSA51: .ASCID /DSA51:/
MEMBER009: .ASCID /$4$DUA9:/
MEMBER005: .ASCID /$4$DUA5:/
MEMBER010: .ASCID /$4$DUA10:/
MEMBER012: .ASCID /$4$DUA12:/
MEMBER003: .ASCID /$4$DUA3:/
MEMBER034: .ASCID /$4$DUA34:/
VOLUME_WORK1: .ASCID /WORK1/
VOLUME_WORK2: .ASCID /WORK2/
VOLUME_LOGNM: .ASCID /WRKD$/
.MACRO .ITEM, SIZE, CODE, BUFFER, RETURN=0
.WORD SIZE, CODE
.ADDRESS BUFFER, RETURN
.ENDM .ITEM
ITMLST: .ITEM 6, MNT$_SHANAM, DSA23
.ITEM 8, MNT$_SHAMEM, MEMBER009
.ITEM 8, MNT$_SHAMEM, MEMBER005
.ITEM 9, MNT$_SHAMEM, MEMBER010
.ITEM 5, MNT$_VOLNAM, VOLUME_WORK1
.ITEM 6, MNT$_SHANAM, DSA51
.ITEM 9, MNT$_SHAMEM, MEMBER012
.ITEM 8, MNT$_SHAMEM, MEMBER003
.ITEM 9, MNT$_SHAMEM, MEMBER034
.ITEM 5, MNT$_VOLNAM, VOLUME_WORK2
.ITEM 5, MNT$_LOGNAM, VOLUME_LOGNM
.LONG
以下のリストで,例 5-3 の要点を説明します。
ボリューム・セットの最初のボリュームの仮想ユニット項目記述子が最初にあることに注意してください。この項目記述子では, ボリューム・セットの最初の仮想ユニットの名前として DSA23 を指定しています。
仮想ユニット項目記述子の後には,最初の仮想ユニットに対応する各々のデバイス, すなわちメンバ $4$DUA9,$4$DUA5,および $4$DUA10 の項目記述子が続きます。
メンバ項目記述子の後には,ボリューム・セット内の最初のシャドウ・セットのボリューム・ラベルが WORK1 であることを指定する項目記述子が続きます。
ボリューム・セット内の最初のシャドウ・セットの記述子の後には, ボリューム・セット内の 2 番目のシャドウ・セットについて同様の項目記述子が続きます。 これらの項目記述子では,2 番目の仮想ユニットが DSA51,デバイスが $4$DUA12,$4$DUA3,および$4$DUA34,ボリューム・ラベルが WORK2 であることを指定しています。
最後の項目記述子では, ボリューム・セット全体の論理名を WRKD$ とすることを指定しています。
5.4 $DISMOU を使ってシャドウ・セットをディスマウントする
$DISMOU システム・サービスを使うと,以下の 4 つのシャドウ・セット 操作を行うことができます。
シャドウ・セットからメンバを削除する
ミニコピー操作のためにシャドウ・セットからメンバを削除する (7.12 節 を参照)。
クラスタ内の 1 つのノードから, クラスタにまたがるシャドウ・セットをディスマウントする
シャドウ・セットをディスマウントし解除する
$DISMOU システム・サービス呼び出しの形式は,次のとおりです。
SYS$DISMOU devnam, flags
$DISMOU の動作は,シャドウ・セット仮想ユニットとシャドウ・セット・メンバのどちらを devnam 引数に指定するかに依存します。
$DISMOU サービスとその引数についての詳細は,『HP OpenVMS System Services Reference Manual』を参照してください。
5.4.1 シャドウ・セットからのメンバの削除
シャドウ・セットから 1 つのメンバを削除するには, $DISMOU を呼び出す必要があります。devnam 引数では, 削除したいシャドウ・セット・メンバの名前を指定します。指定したメンバは, flags 引数に DMT$M_NOUNLOAD オプションを指定しない限り, ディスクの回転が止められます。
例 5-4
の MACRO-32 コードは,
シャドウ・セットからメンバ $2$DUA9 を削除する $DISMOU 呼び出しを示しています。
例 5-4: シャドウ・セットからのメンバの削除
$DMTDEF
FLAGS: .LONG DMT$M_NOUNLOAD
MEMBER001: .ASCID /$2$DUA9:/
.
.
.
$DISMOU_S -
devnam = MEMBER001, -
flags = FLAGS
.
.
.
.END
シャドウ・セットを 1 つのノードからディスマウントするには, $DISMOU を呼び出す必要があります。devnam 引数では, ディスマウントしたいシャドウ・セットに対応する仮想ユニットの名前を指定します。 シャドウ・セットをクラスタ単位でディスマウントするには, この呼び出しの flags 引数で DMT$M_CLUSTER オプションを指定します。
シャドウ・セットを OpenVMS Cluster システムの 1 つのノードからディスマウントしても,OpenVMS Cluster システムの別のノードでマウントしたままだと,DMT$M_NOUNLOAD フラグを指定しなくても, シャドウ・セット内のどのシャドウ・セット・メンバもディスクの回転が止まりません。 この呼び出しが完了したとき,この呼び出しを実行したノードではシャドウ・セットは使えなくなりますが,シャドウ・セットをマウントしているクラスタ内の他のノードでは,シャドウ・セットは相変わらず使える状態になっています。
シャドウ・セットをディスマウントするノードが,シャドウ・セットをマウントしている唯一のノードの場合には,シャドウ・セットは解除されます。 シャドウ・セット・メンバ・デバイスは, DMT$M_NOUNLOAD フラグを指定していない限り,回転が止められます。
例 5-5
の MACRO-32 コードは,
$DISMOU システム・サービスを使って,仮想ユニット DSA23 に対応するシャドウ・セットをディスマウントする方法を示しています。
例 5-5: シャドウ・セットをローカルにディスマウントして解除する
$DMTDEF
FLAGS: .LONG 0
DSA23: .ASCID /DSA23:/
.
.
.
$DISMOU_S -
devnam = DSA23, -
flags = FLAGS
.
.
.
.END
シャドウ・セットが解除されると,以下の状況になります。
シャドウ・セットのメンバだった各々のディスクは, 別の目的で単一ディスクとしてマウントできます。
ただし,各々のボリュームには,シャドウ・セットの一部であったことがマークされています。シャドウ・セットを解除した後も,各々のボリュームには, 以前にシャドウ・セット・メンバであったことを示すボリューム・シャドウイング世代番号が残ります (シャドウ・セットの外部でマウントし直していない場合)。 シャドウ・セットの一部であったことがマークされているボリュームは,不慮のデータ抹消を防ぐために, 自動的にソフトウェアによる書き込み保護が行われます。 これらのボリュームは,システム・サービスの MNT$_FLAGS 項目コードで MNT$M_OVR_SHAMEM オプションを指定しない限り, シャドウ・セットの外部では,書き込み用にマウントすることはできません。
仮想ユニットは,オフライン状態になります。
例 5-6
の MACRO-32 コードは,
クラスタにまたがってディスマウントを行う $DISMOU システム・サービス呼び出しを示しています。
シャドウ・セットが最後のノードからディスマウントされたとき,
シャドウ・セットは解除されます。
例 5-6: クラスタにまたがるシャドウ・セットのディスマウントと解除
$DMTDEF
FLAGS: .LONG DMT$M_CLUSTER
DSA23: .ASCID /DSA23:/
.
.
.
$DISMOU_S -
devnam = DSA23, -
flags = FLAGS
.
.
.
.END
クラスタ内のすべてのノードからシャドウ・セットをディスマウントする場合には,
flags
引数で DMT$M_CLUSTER オプションを指定する必要があります。
クラスタ内の各々のノードからシャドウ・セットをディスマウントしたら (つまり,シャドウ・セットをマウントしているホストの数が 0 になったら),
ボリューム・シャドウイング・ソフトウェアは,そのシャドウ・セットを解除します。
5.4.3 シャドウ・セット操作での $DISMOU フラグの設定
表 5-1
は,$DISMOU の
flags
引数のオプションと,これらのオプションが指定された場合のシャドウ・セットの動作を説明しています。
これらのフラグ・オプションの詳細は,『HP OpenVMS System Services Reference Manual』の $DISMOU サービスの説明を参照してください。
表 5-1: $DISMOU フラグ・オプション
| オプション | 説明 |
DMT$M_MINICOPY_REQUIRED |
ミニコピーが有効になっていない ディスクでは,$DISMOU は失敗します。 |
DMT$M_MINICOPY_OPTIONAL |
ディスク上でミニコピーが有効になっているかどうかにかかわらず,$DISMOU が実行されます。 |
DMT$M_FORCE |
デバイスの接続が失われ,シャドウ・セットがマウント検査の状態になったときに,このフラグが設定されていると, 指定されたシャドウ・セット・メンバをシャドウ・セットから即座に削除します。 |
DMT$M_UNLOAD |
すべてのシャドウイング関連の要求に対して有効。 |
DMT$M_CLUSTER |
すべてのシャドウイング関連の要求に対して有効。 |
DMT$M_ABORT |
仮想ユニットでは有効,メンバでは無視。 |
DMT$M_UNIT |
仮想ユニットとメンバで無視。 |
5.5 $DISMOU と $MOUNT で返される状態値を評価する
この節では,$DISMOU と $MOUNT のシステム・サービスを使って, シャドウ・セットをマウントしたり,使ったりした場合に, 返される状態値について説明します。 これらのサービスから返される状態値の完全なリストについては,『HP OpenVMS System Services Reference Manual』を参照してください。
$MOUNT で状態値 SS$_BADPARAM が返された場合, 指定した項目リストに以下のエラーのいずれかが含まれている可能性があります。
MNT$_SHANAM 項目記述子のいずれかで指定した仮想ユニットが, DSAn: 以外の名前になっています。
項目リスト内で,MNT$_SHAMEM 項目記述子が, MNT$_SHANAM 項目記述子よりも前に置かれています。
項目リスト内に MNT$_SHANAM 項目記述子がありますが, その後に MNT$_SHAMEM 項目記述子が続いていません。
単一のシャドウ・セットを指定している一連の項目記述子からなる項目リストの中ほどに MNT$_DEVNAM 項目記述子があります。 シャドウ・セットと同時に,シャドウ化しないディスクを含むボリューム・セットを構築することは可能ですが,シャドウ化しないディスクを指定する MNT$_DEVNAM 項目記述子を使う場合には, これを,仮想ユニットを指定する MNT$_SHANAM 項目記述子と, 仮想ユニットに対応するシャドウ・セットのメンバを指定する項目記述子との間に置くことはできません。
以下のリストは,シャドウ・セットをマウントして使うときに, $MOUNT が返す可能性のあるステータス・メッセージです。
SS$_VOLINV (ラベルの不一致)
SS$_SHACHASTA (マウント操作中に,シャドウ状態が変化した)
SS$_MEDOFL (物理ユニットにアクセスできない)
SS$_INCSHAMEM (物理ディスクが,シャドウ・セットと互換性がない)
シャドウイング関連のステータス・メッセージについては,付録 Aも参照してください。
5.6 $GETDVI を使ってシャドウ・セットの情報を取得する
$GETDVI システム・サービスは,システム上のシャドウ・セット・デバイスの 情報の取得に役立ちます。指定するシャドウ・セット項目コードに従って, 以下のタイプの情報を調べることができます。
デバイスが,シャドウ・セット仮想ユニットとシャドウ・セット・メンバのどちらか
デバイスが,コピー操作やマージ操作のターゲットかどうか
特定のデバイスをメンバとするシャドウ・セットに対応する仮想ユニットの名前
仮想ユニットとすべてのメンバを含む,シャドウ・セット全体のメンバ構成
メンバがシャドウ・セットから削除されているかどうか
$GETDVI 呼び出しの形式は,次のとおりです。
SYS$GETDVI [efn],[chan],[devnam],itmlst,[iosb],[astadr],[astprm],[nullarg]
$GETDVI サービスと $GETDVIW サービス,それらの引数についての詳細は,『HP OpenVMS System Services Reference Manual』を参照してください。
注意
$GETDVI システム・サービスでファイル・システム関連の項目コードを使って, シャドウ・セットの (FREEBLOCK 情報のような) 意味のあるシステム情報を 取得するためには,$GETDVI サービスに仮想ユニット名を指定する必要があります。 シャドウ・セットの 1 つのメンバのデバイス名を指定すると, $GETDVI サービスは値 0 を返すだけです。
表 5-2
は,$GETDVI シャドウ・セット項目コードと返される情報です。
表 5-2: SYS$GETDVI 項目コード
| 項目コード | 機能 |
DVI$_SHDW_CATCHUP_COPYING |
論理型のロングワードを返します。 値が 1 の場合,デバイスがコピー操作のターゲットであることを示します。 |
DVI$_SHDW_COPIER_NODE |
コピー操作またはマージ操作をアクテフィブに実行しているノードの名前を,文字列として返します。 |
DVI$_SHDW_DEVICE_COUNT |
仮想ユニット内のデバイスの総数 (コピー・ターゲットとして追加されているデバイスも含む) を,ロングワードとして返します。 |
DVI$_SHDW_GENERATION |
仮想ユニットの現在の内部リビジョン番号を,クォドワードとして返します。 |
DVI$_SHDW_MASTER |
論理型のロングワードを返します。 値が 1 の場合,デバイスが仮想ユニットであることを示します。 |
DVI$_SHDW_MASTER_MBR |
マージ/コピー修復操作,およびシャドウ・セット回復操作に使用されるマスタ・メンバ・ユニットの名前を,文字列として返します。 |
DVI$_SHDW_MASTER_NAME |
指定されたデバイスがシャドウ・セット・メンバの場合,$GETDVI はそれが属しているシャドウ・セットの仮想ユニット名を返します。 シャドウ・セットのデバイス名は,最大 64 文字まで許されるので, この項目記述子のバッファ・フィールド長には 64 (バイト) を指定してください。 仮想ユニットやシャドウ・セットのメンバでないデバイスを指定すると, $GETDVI は空文字列を返します。 |
DVI$_SHDW_MBR_COPY_DONE |
現在のメンバ・ユニットで完了しているコピー操作の割合 (パーセント) を,ロングワードとして返します。 |
DVI$_SHDW_MBR_COUNT |
仮想ユニット内のフル・ソース・メンバの数を,ロングワードとして返します。 コピー・ターゲットとして追加されるデバイスは,フル・ソース・メンバではありません。 |
| DVI$_SHDW_MBR_MERGE_DONE | メンバで完了しているマージ操作の割合 (パーセント) を,ロングワードとして返します。 |
DVI$_SHDW_MBR_READ_COST |
メンバ・ユニットの現在の値のセットを,ロングワードとして返します。 この値は,ユーザ指定の値を使用するように変更することができます。 |
DVI$_SHDW_MEMBER |
論理型のロングワードを返します。 値が 1 の場合,デバイスがシャドウ・セット・メンバであることを示します。 |
DVI$_SHDW_MERGE_COPYING |
論理型のロングワードを返します。 値が 1 の場合, デバイスがシャドウ・セットのマージ・メンバであることを示します。 |
DVI$_SHDW_MINIMERGE_ENABLE |
論理値として解釈されるロングワードを返します。 値が TRUE の場合,クラスタ内のシステムに障害が発生したときに,仮想ユニットに対してフル・マージではなく,ミニマージが実行されることを示します。 |
DVI$_SHDW_NEXT_MBR_NAME |
シャドウ・セットの次のメンバのデバイス名を返します。 仮想ユニットを指定すると,$GETDVI はシャドウ・セットのメンバ・デバイス名を返します。 仮想ユニットでもシャドウ・セット・メンバでもないデバイス名を指定すると,$GETDVI は空文字列を返します。 シャドウ・セットのデバイス名は,最大 64 文字まで許されるので, この項目記述子のバッファ・フィールド長には 64 (バイト) を指定してください。 |
DVI$_SHDW_READ_SOURCE |
この時点で読み込みに使用されるメンバ・ユニットの名前を,ロングワードとして返します。 DVI$_SHDW_READ_SOURCE は,待ち行列の長さと読み込みコスト値の合計が最も小さいユニットを読み込みに使用します。 この値は,動的な値です。 |
DVI$_SHDW_SITE |
指定された値のサイト値を,ロングワードとして返します。 この値は,SET DEVICE コマンドまたは SET SHADOW コマンドで設定されます。 |
DVI$_SHDW_TIMEOUT |
デバイスに設定されている,ユーザ指定のタイムアウト値を,ロングワードとして返します。 SETSHOWSHADOW ユーティリティを使用して値を設定していない場合,SYSGEN のパラメータ SHADOW_MBR_TMO の値はメンバ・ユニット用に使用され,MVTIMEOUT の値は仮想ユニット用に使用されます。 |
シャドウ・セットのメンバすべてのデバイス名を取得するには,$GETDVI を繰り返し呼び出す必要があります。
最初の $GETDVI 呼び出しでは,
シャドウ・セットを代表する仮想ユニットとシャドウ・セットのメンバのデバイス名のいずれでも指定することができます。
5.6.2.1 仮想ユニット名
最初の呼び出しで仮想ユニット名を指定する場合,項目リストには,
DVI$_SHDW_NEXT_MBR_NAME 項目記述子を含める必要があります。
この項目記述子内には,$GETDVI がシャドウ・セットの最小番号のメンバの名前を返します。
次の $GETDVI 呼び出しの
devnam
引数では,
その前の呼び出しで DVI$_SHDW_NEXT_MBR_NAME 項目記述子に返されたデバイス名を指定する必要があります。
この 2 番目の呼び出しの項目リストには,
シャドウ・セット内で次に大きな番号のユニットの名前を受け取るために,
DVI$_SHDW_NEXT_MBR_NAME 項目記述子を含める必要があります。
この $GETDVI 呼び出しは,シャドウ・セットにもうメンバがないことを意味する,
空文字列を $GETDVI が返すまで繰り返す必要があります。
5.6.2.2 シャドウ・セット・メンバ名
最初の呼び出しでシャドウ・セット・メンバのデバイス名を指定する場合, シャドウ・セットに含まれるすべてのメンバのデバイス名を取得する前に, そのシャドウ・セットに対応する仮想ユニット名を調べる必要があります。 そのため,最初の呼び出しでメンバを指定する場合, DVI$_SHDW_MASTER_NAME 項目記述子を含む項目リストも指定する必要があります。 $GETDVI はこの記述子にシャドウ・セットに対応する仮想ユニットの名前を返します。 この後,5.6.2.1 項 で説明した一連の $GETDVI 呼び出しを実行します。 各々の呼び出しの devnam 引数では, 前の呼び出しの DVI$_SHDW_NEXT_MBR_NAME 項目記述子に返されたデバイスの名前を指定します。 この呼び出しを,シャドウ・セットにもうメンバがないことを意味する,空文字列を $GETDVI が返すまで繰り返します。