Compaq OpenVMS
Volume Shadowing for OpenVMS 説明書


前へ 次へ 目次 索引



第 4 章
DCL コマンドによるシャドウ・セットの作成と管理

この章では,対話型の DCL コマンドを使って,シャドウ・セットを作成,マウント,ディスマウント,そして 解除する 方法を説明します。また,DCL コマンドの SET DEVICE を使って,マルチサイトの OpenVMS Cluster システムの複数のサイトに配置されたシャドウ・セット・メンバの管理属性を指定する方法も説明します。さらに,DCL コマンドの SET DEVICE とレキシカル関数の F$GETDVI を使ってシャドウ・セットの状態に関する現在の情報にアクセスする方法も説明します。

Volume Shadowing for OpenVMS は,複数のディスク・ボリュームの同じ論理ブロック番号 (LBN) の位置に同じ情報を格納することで,データ可用性を改善しています。ボリューム・シャドウイング・ソフトウェアは,シャドウ・セット内のディスクをマウントしたりディスマウントするコマンドを受け取ると,データの違いを突き合わせ,同じ LBN の位置に同じ情報が格納されるようにします。

データの突き合わせで使われるコピーやマージの操作を理解することが,この章の主題です。したがって,シャドウ・セット・メンバシップが変更された際に, Volume Shadowing for OpenVMS がデータ可用性と整合性を保証する方法を理解するには, 第 6 章 を参照することをお勧めします。

4.1 デバイスの割り当て

別のユーザによるデバイスのマウントとの競合を防ぐために, MOUNT コマンドを入力する前に,デバイスの割り当てを行うことができます。デバイスの割り当てを解除するか,プロセスを停止させるまで,プロセスが物理デバイスに排他的にアクセスできるようにするために, DCL コマンドの ALLOCATE を使ってください。また,デバイスに論理名を対応させることもできます。 ALLOCATE コマンドの形式は次のとおりです。


ALLOCATE device-name[:] logical-name[:] 

4.2 シャドウ・セットの作成

シャドウ・セットを作成するには,シャドウ・セットに最低 1 台の物理ディスクをマウントし,そのセットに仮想ユニット名を割り当てるために, 例 4-1 に示すように MOUNT コマンドに /SHADOW 修飾子をつけて実行する必要があります。

例 4-1 シャドウ・セットの作成

$  MOUNT DSA23:(1) /SHADOW(2) =$4$DUA9:(3) volume-label(4) logical-name(5)

この例では,仮想ユニット DSA23 で表現され, 1 つのシャドウ・セット・メンバ $4$DUA9 を含むシャドウ・セットを構成しています。

  1. シャドウ・セット仮想ユニットの指定では,DSAn: 形式を使います。ここで,n は 0〜9999の一意の番号です。 DSA の接頭辞の後に数字をつけなかった場合, MOUNT は自動的に使用可能な最大のユニット番号を割り当てます。番号の割り当ては 9999 から始まり,0 まで減っていきます。つまり,最初にマウントされる仮想ユニットの番号は 9999 になり,次のユニットの番号は,9998,のようになっていきます。

    各々の仮想ユニットの番号は,そのユニットがパブリック・アクセスのためにマウントされていても (/SYSTEM 修飾子をつけてマウント),プライベート・アクセスのためにマウントされていても,システム全体で一意でなければなりません。仮想ユニットには,収容しているコントローラとは独立に名前が付けられます。

  2. /SHADOW 修飾子は,物理デバイスを指定するときに必要です。 /SHADOW 修飾子には,パラメータとして最低 1 台の物理デバイスを指定する必要があります。1 メンバのシャドウ・セットでも有効ですが,シャドウイング・ソフトウェアでデータを多重化するためには, 1 台か 2 台のディスクを追加する必要があります。既存のシャドウ・セットにディスクを追加する方法は, 第 4.5 節 で説明しています。

  3. シャドウ・セット内の各々の物理デバイスには,0 以外の割り当てクラスを使う必要があります。$allocation-class$ddcu という形式の割り当てクラス命名形式を使ってください。各構成要素の意味は次のとおりです。

    割り当てクラスの詳細は,『OpenVMS Cluster システム』を参照してください。

  4. 仮想ユニットには,1〜12文字のボリューム・ラベルを指定します。

  5. オプションとして,シャドウ・セットには,1〜255 文字の英数字の論理名文字列が指定できます。

また,/SYSTEM,/GROUP,/CLUSTER を指定して,シャドウイングを有効にしている,システムのすべてのユーザ,グループのすべてのメンバ,クラスタのすべてのノードで,シャドウ・セットを使えるようにすることができます。

3 メンバのシャドウ・セットを作成するために,既存の 1 メンバのシャドウ・セットに対し, 1 回の MOUNT コマンドで 2 つのメンバを追加することができます。この方法では,2 つのメンバが同時にコピーされるので,入出力操作が最適化されます ( 第 4.4.4 項 の例を参照 )。

第 4.3 節 に示すように, INITIALIZE/SHADOW/ERASE を使って,複数のデバイスを 1 つのコマンドで初期化することにより,シャドウ・セットの作成プロセスを単純化することもできます。

ボリューム・シャドウイング・ソフトウェアは,シャドウ・セットを作成するコマンドを受け取ると,データの違いを無くすために,コピー操作やマージ操作を実行します。ディスクをマウントするときに,どのディスクがコピー操作のターゲットになるか不明な場合は,重要なデータが書き換えられる前に警告を受け取るために, /CONFIRM または /NOCOPY の修飾子を指定することができます。これら,およびその他の MOUNT コマンドの修飾子については, 第 4.4 節 で説明します。

4.3 INITIALIZE/SHADOW/ERASE によるシャドウ・セットの構成の単純化

シャドウ・セットとして構成する予定の複数のメンバを初期化するために, /SHADOW および /ERASE のコマンド修飾子をつけた DCL コマンドの INITIALIZE を使うことができます。この方法で複数のメンバを初期化すると,後でシャドウ・セットを作成するときに,全体をコピーする必要がなくなります。

/SHADOW および /ERASE の修飾子をつけた INITIALIZE コマンドは,以下の操作を実行します。

このように初期化したデバイスは,新しいホスト・ベースのシャドウ・セットのメンバとして 3 台までマウントできます。

4.3.1 /ERASE を使う利点と副作用

弊社では,/ERASE 修飾子を使うことをお勧めします。 /ERASE 修飾子を使用すると,その後のマージ操作が著しく少なくなります。

/ERASE 修飾子を省略すると,ボリューム内のファイル・システム・データ構造を持たない部分には,不確定なデータが格納された状態になります。このデータはシャドウ・セット・メンバごとに異なります。シャドウ・セット・メンバ間ですべての LBN を比較するユーティリティを使う場合には,これを念頭に置いてください。

全体のマージ操作が次に必要になった場合,不確定なデータが存在しているため, INITIALIZE/SHADOW/ERASE コマンドを使った場合に比べると,マージにはるかに多くの時間がかかります。この全体のマージが完了すると, LBN は同じデータを持つようになり,SCB (storage control block) からは INITIALIZE/SHADOW コマンドで /ERASE 修飾子が省略されていたことを示す情報がなくなります。

ただし,/ERASE 修飾子を使うことにより,ERASE ボリューム属性が設定されることに注意してください。つまり,ボリューム内の各ファイルは,削除と同時に実際に消去されます。また,通常,INITIALIZE/ERASE 操作は, INITIALIZE/NOERASE 操作よりも時間がかかります。

ERASE ボリューム属性は,SET VOLUME/NOERASE_ON_DELETE コマンドの実行で設定解除できます。DCL コマンドと修飾子に関する詳細は,『OpenVMS DCL ディクショナリ』を参照してください。

4.3.2 INITIALIZE/SHADOW を使うための必要条件

すべてのデバイスは,Total Blocksの値が 0 でなく,同じでなければなりません。Total Blocksの値は, SHOW DEVICE/FULL コマンドを入力して確認できます。デバイスがこのシステムにマウントされたことがなく,初期化もされていない場合は,このデバイスに対する SHOW DEVICE/FULL コマンドでは,Total Blocksの値として何も表示されません。この状態を修復するためには,デバイスをマウントしてディスマウントするか,デバイスの初期化を行います。このようにすると,SHOW DEVICE/FULL でTotal Blocksの値が表示されるようになります。

INITIALIZE/SHADOW を使うためには,VOLPRO 特権が必要です。

INITIALIZE/SHADOW コマンドは,既存の シャドウ・セットに追加するディスクを初期化する際には使わないでください。そのようにしても,効果が何も得られないからです。

このコマンド形式は,次のとおりです。


INITIALIZE/SHADOW=(device_name1, device_name2, device_name3) label

4.3.3 INITIALIZE/SHADOW の例

次の例では,このコマンドの 正しい 使い方を示しています。このコマンドでは複数のデバイスを同一行で指定していることに注意してください。


$ INITIALIZE /ERASE /SHADOW=($4$DKA1300, $4$DKA1301) NONVOLATILE 
 
$ MOUN/SYS DSA42 /SHAD=( $4$DKA1300 , $4$DKA1301 ) NONVOLATILE 
%MOUNT-I-MOUNTED, NONVOLATILE MOUNTED ON _DSA42: 
%MOUNT-I-SHDWMEMSUCC, _$4$DKA1300: (WILD3) IS NOW A VALID MEMBER OF THE SHADOW SET 
%MOUNT-I-SHDWMEMSUCC, _$4$DKA1301: (WILD4) IS NOW A VALID MEMBER OF THE SHADOW SET 
$ SHO DEV DSA42: 
 
DEVICE               DEVICE           ERROR    VOLUME         FREE  TRANS MNT 
 NAME                STATUS           COUNT     LABEL        BLOCKS COUNT CNT 
DSA42:               MOUNTED              0  NONVOLATILE    5799600     1   1 
$4$DKA1300: (WILD3)  SHADOWSETMEMBER      0  (MEMBER OF DSA42:) 
$4$DKA1301: (WILD4)  SHADOWSETMEMBER      0  (MEMBER OF DSA42:) 

次の例では,このコマンドの 正しくない 使い方を示しています。各々のデバイスを初期化するのに,別々のコマンドを指定しないようにしてください。


$ INITIALIZE /ERASE /SHADOW=  $4$DKA1300 NONVOLATILE 
$ INITIALIZE /ERASE /SHADOW=  $4$DKA1301 NONVOLATILE 
 
$ MOUN/SYS DSA42 /SHAD=( $4$DKA1300 , $4$DKA1301 ) NONVOLATILE 
%MOUNT-I-MOUNTED, NONVOLATILE MOUNTED ON _DSA42: 
%MOUNT-I-SHDWMEMSUCC, _$4$DKA1300: (WILD3) IS NOW A VALID MEMBER OF THE SHADOW SET 
%MOUNT-I-SHDWMEMSUCC, _$4$DKA1301: (WILD4) IS NOW A VALID MEMBER OF THE SHADOW SET 
$ SHO DEV DSA42: 
 
DEVICE               DEVICE           ERROR    VOLUME         FREE  TRANS MNT 
 NAME                STATUS           COUNT     LABEL        BLOCKS COUNT CNT 
DSA42:               MOUNTED              0  NONVOLATILE    5799600     1   1 
$4$DKA1300:    (WILD3)  ShadowSetMember      0  (member of DSA42:) 
$4$DKA1301:    (WILD4)  ShadowCopying        0  (copy trgt DSA42:   0% copied) 

4.4 シャドウイング用の MOUNT コマンド修飾子

この節では,シャドウ・セットの管理に便利な MOUNT コマンド修飾子を簡単に説明します。DCL コマンドについての詳細は,『OpenVMS システム管理ユーティリティ・リファレンス・マニュアル』を参照してください。

新しくシャドウ・セットを作成したり,既存シャドウ・セットにメンバを追加するときには,/SHADOW 修飾子を使う必要があります。また,表 4-1表 4-2 のオプションの修飾子も使うことができます。 これらの修飾子を使うためには,VOLPRO および OPER の特権を持つか,ユーザの UIC (user identification code) が,マウントするボリュームの所有者 UIC と一致している必要があります。システム全体にシャドウ・セットをマウントするためには,SYSNAM 特権も必要です。

これらの修飾子の使い方の詳しい例と説明は,第 4.5 節 にあります。 表 4-1 で説明したシャドウイング用修飾子の他に,表 4-2第 4.4.2 項 で説明するように,シャドウ・セットをマウントするときには,/NOASSIST, /SYSTEM,/GROUP,および /CLUSTER の修飾子も良く使われます。

4.4.1 シャドウイングに特有の MOUNT コマンド修飾子

表 4-1 に示す MOUNT コマンドの修飾子は,シャドウイングに特有のものです。

表 4-1 MOUNT コマンドの修飾子 (シャドウイングに特有)
修飾子 機能
/[NO]CONFIRM シャドウ・セットをマウントするときに,マウント・ユーティリティがコピー操作の確認を要求するかどうかを制御します。デフォルトは,/NOCONFIRM です。
/[NO]COPY 物理デバイスをシャドウ・セットにマウントもしくは追加するときに,コピー操作を有効にするか,無効にするかを指定します。デフォルトは,/COPY です。
/[NO]INCLUDE シャドウ・セットが解除される前の状態に,自動的にマウントして戻します。デフォルトは,/NOINCLUDE です。
/OVERRIDE=NO_FORCED_ERROR デバイスやコントローラが強制エラー処理をサポートしていなくても,マウント・ユーティリティがシャドウイングで動作するように指示します。サポートされていない SCSI ディスクを使うと,訂正できないエラー条件が発生した場合に,メンバがシャドウ・セットから削除されることがあります。 SCSI ディスクによっては,ディスクの不良ブロックの修復をサポートする, READL コマンドと WRITEL コマンドを実装していないものがあるからです。 SCSI デバイスが READL コマンドと WRITEL コマンドをサポートしていない場合,SCSI ディスク・クラスのドライバは,System Dump Analyzer の表示に NOFE (no forced error) のビットを設定します。詳細は, 第 4.9.4.1 項 を参照してください。
/OVERRIDE=SHADOW_MEMBERSHIP 以前のシャドウ・セット・メンバをマウントし,そのディスクがシャドウ・セットのメンバだったことを示さないように,そのディスクのシャドウ・セット世代番号を 0 にします。
/POLICY= [NO]MINICOPY [=OPTIONAL] シャドウイング・ミニコピー機能の設定と使い方を制御します。 [NO]MINICOPY[=OPTIONAL] の意味はシャドウ・セットのステータスに依存します。シャドウ・セットがマウントされていない場合,スタンドアロン・システムとクラスタ・メンバのいずれであっても, MINICOPY=OPTIONAL が指定されると,シャドウ・セットがマウントされ,書き込みビットマップが作成されます (書き込みビットマップがあると,シャドウイング・ミニコピー操作が有効になります)。シャドウイング・ミニコピー操作を有効にするためには,スタンドアロン・システムとクラスタのいずれであっても,シャドウ・セットの初期マウントで,MOUNT/POLICY=MINICOPY[=OPTIONAL] を指定する必要があります。

OPTIONAL キーワードを指定すると,システムが書き込みビットマップを開始できない場合でも,マウント作業が継続されます。不適切にディスマウントされたシャドウ・セット,マージ操作が必要なシャドウ・セット,またはさまざまなリソースの問題で書き込みビットマップが正しく開始されないことがあります。 OPTIONAL キーワードが省略されていると,システムが書き込みビットマップを開始できない場合には,シャドウ・セットはマウントされません。

シャドウ・セットがクラスタ内の別のノードにより,この修飾子とキーワードなしで既にマウントされていたときには, /POLICY=MINICOPY=OPTIONAL を指定した場合,MOUNT コマンドは成功しますが,書き込みビットマップは作成されません。

NOMINICOPY を指定すると,シャドウ・セットはマウントされますが,書き込みビットマップは作成されません。

シャドウ・セットの以前のメンバを,ミニコピーが有効になっているシャドウ・セットに戻す場合,フル・コピーの代わりにミニコピーが開始されます。これがデフォルトの動作であり,/POLICY=MINICOPY[=OPTIONAL] を省略していても同じです。ミニコピーが正常に開始され,何らかの理由で失敗した場合は,フル・コピーが行われます。

ミニコピーが開始できない場合に,OPTIONAL キーワードが省略されていると,マウントは失敗します。

NOMINICOPY が指定されていると,ミニコピーは,実行できる状況でも,実行されません。

/POLICY=REQUIRE_MEMBERS MOUNT コマンドが成功するためには, MOUNT コマンドが発行されたときに,/SHADOW 修飾子で指定されたすべての物理デバイスが,アクセス可能である必要があるかどうかを制御します。指定するメンバはコマンド行で指定することも /INCLUDE 修飾子を指定してディスク内で見つけさせることもできます。この修飾子を指定しないと,接続障害などの何らかの理由で 1 つ以上のメンバがアクセスできない場合に,アクセス可能なメンバの仮想ユニットが作成されます。このオプションでは,イベントが発生した後に適切なメンバシップが確実に選択されるため,ディザスタ・トレラント・クラスタを復旧する際に特に便利です。
/POLICY=VERIFY_LABEL シャドウ・セットに追加するメンバが, SCRATCH_DISK というボリューム・ラベルを持っている必要があることを指定します。

これは間違ったディスクが不注意でシャドウ・セットに追加されないようにするものです。VERIFY_LABEL を使う場合,この修飾子を使う前に,セットに追加するディスクを SCRATCH_DISK というラベルで初期化するか, SET VOLUME/LABEL コマンドでディスクにラベルを書き込むかのいずれかを行う必要があります。

デフォルトの動作は,NOVERIFY_LABEL であり,これは,コピーのターゲットのボリューム・ラベルがチェックされないことを意味します。これはこの修飾子が導入される前の動作と同じです。

/SHADOW=(physical-device-name[:][,...]) マウント・ユーティリティに対し,このコマンドで指定する仮想ユニット名で示されるシャドウ・セットに,指定した物理デバイスを追加することを,指示します。

警告

シャドウ・セットをマウントするときは,/OVERRIDE=IDENTIFICATION や /NOMOUNT_VERIFICATION の修飾子は使わないでください。これらの修飾子を使うと,データが失われることがあります。

/OVERRIDE=IDENTIFICATION 修飾子を使ってシャドウ・セットをマウントすると,個々のシャドウ・セット・メンバが異なるボリューム・ラベルでマウントされ,それがデータが失われる原因になります。

/NOMOUNT_VERIFICATION 修飾子を指定すると,シャドウ・セットは初めてステータス変更が起きた時点で使えなくなります。

4.4.2 シャドウイングで使われるその他の MOUNT コマンド修飾子

この節で説明する MOUNT コマンド修飾子は,シャドウイングに特有のものではありませんが,シャドウ・セットを作成するときに,非常に役に立ちます。これらの修飾子は,以下の 表 4-2 と例で説明します。

表 4-2 MOUNT コマンドのその他の修飾子(シャドウイングに特有ではない)
修飾子 機能
/NOASSIST MOUNT コマンドで指定するデバイスの少なくとも 1 つがマウント可能ならば,シャドウ・セットのマウントを成功させます。この修飾子を使わないと,マウントを指定したデバイスのうちの 1 つがマウント可能ではない場合,シャドウ・セットがマウントされなくなります
/SYSTEM システム上のすべてのユーザがボリュームを使えるようにします。この修飾子は既存のシャドウ・セットにディスクを追加するときに使います。このシャドウ・セットが作成されたときに /CLUSTER 修飾子が使われていた場合は,/SYSTEM を使うことでシャドウ・セットの新しいメンバは,既にシャドウ・セットをマウントしているクラスタ内のすべてのノードで使うことが可能になります。
/GROUP UIC のグループ番号が,MOUNT コマンドを実行したユーザと同じすべてのユーザが,このボリュームを使えるようにします。グループ・ボリュームとシステム・ボリュームのマウントには,GRPNAM と SYSNAM のユーザ特権が必要です。
/CLUSTER シャドウイングが有効になっているクラスタ内のすべてのノードに,自動的に仮想ユニットを作成します。この修飾子はシャドウ・セットがクラスタにまたがってアクセスされる場合に使ってください。この修飾子を使うためには,SYSNAM 特権が必要です。 /CLUSTER を使うと,/SYSTEM 修飾子が自動的に使われ,システムのすべてのユーザがシャドウ・セットを使えるようになります。

4.4.3 /NOASSIST でシャドウ・セットを作成する

MOUNT コマンドで /NOASSIST 修飾子を使うと有効な場合があります。たとえば,起動ファイルで MOUNT/NOASSIST コマンドを使うと,このコマンドで指定したデバイスが使えないときに MOUNT コマンドが失敗するのを避けることができます。起動時にはオペレータが介入できないため,/NOASSIST 修飾子を起動ファイルで使うことができます。

MOUNT/NOASSIST 修飾子では,MOUNT コマンドで指定するデバイスの少なくとも 1 つがマウント可能であれば,シャドウ・セットのマウントが成功します。 例 4-2 には,/NOASSIST 修飾子の例と,コマンドで指定したメンバの 1 つがマウント不可能だった場合のメッセージを示します。

例 4-2 /NOASSIST 修飾子を使う

$ MOUNT/SYS DSA65:/SHADOW=($4$DIA6,$4$DIA5) GALEXY/NOASSIST
%MOUNT-I-MOUNTED, GALEXY mounted on _DSA65:
%MOUNT-I-SHDWMEMSUCC, _$4$DIA6: (READY) is now a valid member of the shadowset
%MOUNT-I-SHDWMEMFAIL, $4$DIA5 failed as a member of the shadow set
-SYSTEM-F-VOLINV, volume is not software enabled

デバイス $4$DIA5 はマウント不可能ですが,MOUNT コマンドは $4$DIA6 を唯一のメンバとするシャドウ・セットを作成しています。このコマンドに /NOASSIST 修飾子がなかった場合,MOUNT コマンドはシャドウ・セットをマウントしません。

4.4.4 /SYSTEM と /CLUSTER でシャドウ・セットを作成する

シャドウ・セットを作成するときに,単一システムまたはクラスタのすべてのユーザがアクセスできるようにするためには,/SYSTEM 修飾子か /CLUSTER 修飾子,もしくは両方 ( 表 4-2 参照) を指定する必要があります。

例 4-3 では,(仮想ユニット名DSA2で指定される) シャドウ・セットが現在マウントされていないときに,最初のコマンドで 1 シャドウ・セット・メンバのシャドウ・セットを作成し, 2 番目のコマンドで 同じ シャドウ・セットに 2 つのメンバを追加しています。シャドウ・セット・メンバの追加で自動的にコピー操作が行われ,2 番目と 3 番目のボリュームのデータは,書き換えられます。

2 番目の MOUNT のコマンドでは,シャドウ・セットに $6$DIA5 と $6$DIA6 のデバイスを追加するときに,/SYSTEM だけを指定する必要があります。 /CLUSTER は使わないでください。これらのディスクはシャドウ・セットが現在持っているステータスと同じステータスで追加されるため,この場合はクラスタ単位でのアクセスになります。

例 4-3 /CLUSTER 修飾子を使う

$ MOUNT DSA2: /CLUSTER /SHADOW=$6$DIA4: PEAKSISLAND DISK$PEAKSISLAND
$ MOUNT DSA2: /SYSTEM/SHADOW=($6$DIA5:,$6$DIA6:) PEAKSISLAND DISK$PEAKSISLAND

4.5 シャドウ・セット・メンバの追加

シャドウ・セットが作成されると,物理ディスク・デバイスをマウントしたり,ディスマウントして,個々のメンバの追加や削除ができます。シャドウイング・ソフトウェアを使えば,シャドウ・セット・メンバの追加削除は任意の時点で可能で,システムで実行されているユーザ・プロセスやアプリケーションに影響を与えません。

4.5.1 既存のシャドウ・セットへディスクを追加する

例 4-4 は,DSA23 シャドウ・セットにディスク $4$DUA3 を追加する方法を示しています。

例 4-4 既存のシャドウ・セットへのディスクの追加

$  MOUNT/CONFIRM/SYSTEM DSA23: /SHADOW=($4$DUA9,$4$DUA3) volume-label 

例 4-4 のコマンドでは,現在アクティブなシャドウ・セット・メンバ ($4$DUA9) と新しいメンバ ($4$DUA3) の両方を指定しています。現在アクティブなシャドウ・セット・メンバは,追加物理デバイスをマウントするときには指定する必要はありませんが,指定してもメンバシップのステータスには影響を与えません。

OpenVMS Cluster システムにまたがってマウントされている既存のシャドウ・セット・メンバにボリュームを追加する場合は,シャドウイング・ソフトウェアが新しいメンバを OpenVMS Cluster の各ノードに自動的に追加することに注意してください。

4.5.2 2 メンバのシャドウ・セットを作成し,3 番目のメンバを追加する

例 4-5 では 2 つのコマンドを示しています。最初のコマンドは 2 メンバのシャドウ・セットを作成し, 2 番目のコマンドではシャドウ・セットに 3番目のメンバを追加します。

例 4-5 シャドウ・セットを作成し,3 番目のメンバを追加する

$ MOUNT/SYSTEM DSA4: /SHADOW = ($3$DIA7:, $3$DIA8:) 
FORMERSELF(1)
%MOUNT-I-MOUNTED, FORMERSELF   mounted on DSA4:
%MOUNT-I-SHDWMEMSUCC, _$3$DIA7: (DISK300) is now a valid member of
                      the shadow set
%MOUNT-I-SHDWMEMSUCC, _$3$DIA8: (DISK301) is now a valid member of
                      the shadow set
 
$ MOUNT/SYSTEM DSA4: /SHADOW = $3$DIA6:  FORMERSELF(2)
 
%MOUNT-I-SHDWMEMCOPY, _$3$DIA6: (DISK302) added to the shadow set
                      with a copy operation

  1. 仮想ユニット名が DSA4 のシャドウ・セットが作成されます。メンバ・ディスクは,$3$DIA7 と $3DIA8 です。

  2. 仮想ユニット DSA4 で識別されるシャドウ・セットに,ディスク $3$DIA6 がシステム単位でマウントされます。シャドウ・セットはこの段階で 3 つのシャドウ・セット・メンバ,$3$DIA6,$3$DIA7,$3$DIA8 を持ちます。この例では,既存のシャドウ・セットに $3$DIA6 を追加したときに,その追加ボリュームが,コピー操作のターゲットになります。

4.5.3 /CONFIRM でシャドウ・セット・メンバ候補のステータスを確認する

既存のシャドウ・セットにディスクを追加すると,必ずコピー操作が行われます。/CONFIRM 修飾子または /NOCOPY 修飾子を指定しないかぎり,ボリューム・シャドウイングはコピー操作を自動的に行います。 /CONFIRM 修飾子を指定すると, 例 4-6 に示すように, MOUNT コマンドはコピー操作を行う前に,操作のターゲットを表示し許可を求めます。この予防策で重要なデータを消去することが防げます。コピー操作の詳細は, 第 6 章 を参照してください。

例 4-6 /CONFIRM 修飾子を使う

 
$ MOUNT/CONFIRM DSA23: /SHADOW=($1$DUA4:,$1$DUA6:) SHADOWVOL (1)
%MOUNT-F-SHDWCOPYREQ, shadow copy required
Virtual Unit - DSA23 Volume Label - SHADOWVOL (2)
     Member                    Volume Label Owner UIC (3)
     $1$DUA6: (LOVE)           SCRATCH      [100,100]
Allow FULL shadow copy on the above member(s)? [N]: NO (4)
$ 

  1. このコマンドでは,指定したデバイスでシャドウ・セットを構築することと,コピー操作を実行するための許可を得るためのプロンプトを出力することを MOUNT に指示しています。

  2. コピー操作が必要なので,仮想ユニット名とボリューム・ラベルが表示されます。

  3. 表示には,コピー操作が必要になるシャドウ・セット・メンバ候補の物理デバイス名,ボリューム・ラベル,およびボリューム所有者も含まれます。

  4. No と応答すると,マウントもコピーもしないで,MOUNT が終了します。

4.5.4 /NOCOPY でシャドウ・セット・メンバ候補のステータスをチェックする

複数のディスクを指定すると,シャドウ・セット・メンバが互いに矛盾しないようにするため,シャドウイング・ソフトウェアは自動的に正しいコピー操作を決定します (詳細は, 第 6.2 節 を参照)。マウント・ユーティリティは各々のメンバに記録されている情報を解釈し,メンバに,コピーが必要か,マージが必要か,あるいはコピー操作は一切不要かを判断します。どのディスクがコピー操作のターゲットになるか不明の場合は,ディスクをマウントするときに重要なデータが書き換えられないように予防するために,/CONFIRM 修飾子または /NOCOPY 修飾子を指定することができます。/NOCOPY 修飾子を指定すると,コピー操作が無効になります。

例 4-7 は,データが消去される前にシャドウ・セット・メンバ候補のステータスをチェックするために, /NOCOPY 修飾子を使う方法を示しています。

例 4-7 /NOCOPY 修飾子を使う

$ MOUNT/NOCOPY DSA2: /SHADOW=($1$DUA4:,$1$DUA6:,$1$DUA7:) -
_$ SHADOWVOL DISK$SHADOWVOL (1)
%MOUNT-F-SHDWCOPYREQ, shadow copy required
%MOUNT-I-SHDWMEMFAIL, DUA7: failed as a member of the shadow set
%MOUNT-F-SHDWCOPYREQ, shadow copy required (2)
$  MOUNT/COPY(3) DSA2: /SHADOW=($1$DUA4:,$1$DUA6:,$1$DUA7:) -
_$ SHADOWVOL DISK$SHADOWVOL 
%MOUNT-I-MOUNTED, SHADOWVOL    mounted on _DSA2: 
%MOUNT-I-SHDWMEMSUCC, _$1$DUA4: (VOLUME001) is now a valid member of
                      the shadow set
%MOUNT-I-SHDWMEMSUCC, _$1$DUA6: (VOLUME002) is now a valid member of
                      the shadow set
%MOUNT-I-SHDWMEMCOPY, _$1$DUA7: (VOLUME003) added to the shadow set
                      with a copy operation (4)
 

  1. このコマンドは,指定したデバイスで,コピーやマージが不要の場合にだけ,シャドウ・セットを構築するように MOUNT に指示しています。

  2. デバイス $1$DUA7 にロードされているディスクがコピー操作を必要としているため, MOUNT はシャドウ・セットを構築しませんでした。この段階で,デバイス $1$DUA7 が有用なデータを含んでいないことが確認できます。

  3. デバイスが重要なデータを持っていない場合,再び MOUNT コマンドを入力し,/COPY 修飾子を指定します。このコマンドはシャドウ・セットをマウントすることと必要なコピーかマージを実行するように MOUNT に指示しています。

  4. シャドウ・セットが正常にマウントされました。$1$DUA7 デバイスは,現在コピー操作のターゲットになっています。コピー操作が完了すると,このデバイスは完全なシャドウ・セット・メンバになります。

4.6 クラスタ内の別のノードへのシャドウ・セットのマウント

シャドウ・セットが OpenVMS Cluster システムのノードで既にマウントされている場合,クラスタ内の別のノードに,このシャドウ・セットをマウントするときは /SHADOW 修飾子は不要です。たとえば,DSA42 がクラスタ内で既にマウントされていれば,新しいノードをクラスタに追加する際に,この新しいノードに DSA42 をマウントするには,次のコマンドを使います。


$ MOUNT/SYS DSA42:  volume-label logical-name

このコマンドを受け取ると,ボリューム・シャドウイング・ソフトウェアは,クラスタに既に存在するのと同じメンバ構成で,新しいノードに仮想ユニットを作成します。

4.6.1 /INCLUDE でシャドウ・セットを再構築する

例 4-8 はシャドウ・セットを再構築する方法を示しています。ボリューム・シャドウイング・ソフトウェアは,以前にどのディスク・ボリュームがシャドウ・セットのメンバだったかを調べます。

例 4-8 /INCLUDE でシャドウ・セットを再構築する

$ MOUNT /SYSTEM DSA4/SHAD=($4$DIA1,$4$DIA2,$4$DIA3) NEWDISK(1)
%MOUNT-I-MOUNTED, NEWDISK   mounted on _DSA4:
%MOUNT-I-SHDWMEMSUCC, _$4$DIA1: (DISK01) is now a valid member 
                          of the shadow set
%MOUNT-I-SHDWMEMCOPY, _$4$DIA2: (DISK02) added to the shadow set 
                          with a copy operation
%MOUNT-I-SHDWMEMCOPY, _$4$DIA3: (DISK03) added to the shadow set 
                          with a copy operation
$ DISMOUNT DSA4(2)
$ 
$ MOUNT DSA4:/SYSTEM/SHAD=$4$DIA1 NEWDISK/INCLUDE(3)
%MOUNT-I-MOUNTED, NEWDISK   mounted on _DSA4:
%MOUNT-I-SHDWMEMSUCC, _$4$DIA1: (DISK01) is now a valid member (4)
                          of the shadow set
%MOUNT-I-AUTOMEMCOPY, _$4$DIA2: (DISK02) automatically added (4)
                          to the shadow set
%MOUNT-I-AUTOMEMCOPY, _$4$DIA3: (DISK03) automatically added (4)
                          to the shadow set
 

  1. これは,DSA4 で表されるシャドウ・セットを作成したオリジナルの MOUNT コマンドです。このシャドウ・セットは 3 つのシャドウ・セット・メンバ,$4$DIA1,$4$DIA2,$4$DIA3 で構成されています。

  2. すべてのコピー操作が完了した後, DISMOUNT コマンドでシャドウ・セットを解除します。

  3. /INCLUDE 修飾子によって,MOUNT コマンドに,シャドウ・セットが解除されたときと同じ状態でシャドウ・セットを再構築することを指示します。 MOUNT コマンドには,オリジナルの仮想ユニット名 (DSA4) と,少なくとも 1 つのオリジナルのシャドウ・セット・メンバ ($4$DIA1) を指定する必要があります。マウント・ユーティリティは,(MOUNT コマンドで指定された) $4$DIA1 のメンバシップ・リストを読み込み,$4$DIA2 と $4$DIA3 もシャドウ・セットのメンバであると判断します。

  4. シャドウ・セットは正しくディスマウントされていたので,シャドウ・セット・メンバは矛盾のない状態になっています。 MOUNT ステータス・メッセージは,コピー操作を行うことなく,シャドウ・セット・デバイスがシャドウ・セットに戻されたことを示しています。

4.6.2 以前のシャドウ・セット・メンバをシャドウ化しないディスクとしてマウントする

物理的なシャドウ・セット・メンバを,シャドウ化しないディスクとしてマウントする必要が生じることがあります。シャドウ・セット・メンバをシャドウ・セットではないところにマウントする場合は,デフォルトでは,マウント・ユーティリティはそのディスクを書き込み保護にします。これにより,不注意な変更を防ぐことができ,後でシャドウ・セットに再度マウントすることが可能になります。

このデフォルトの動作を変更するには,次の例に示すように, MOUNT コマンドに /OVERRIDE=SHADOW_MEMBERSHIP 修飾子を指定します。


$ MOUNT/OVERRIDE=SHADOW_MEMBERSHIP $4$DUA20: WORKDISK

このコマンドは,シャドウ・セット・メンバシップのステータスを無視し,以前のシャドウ・セット・メンバを書き込みアクセス可能なシャドウ化しないディスクとして $4$DUA20 にマウントします。

4.7 ディザスタ・トレラント管理属性の指定 (Alpha のみ)

OpenVMS Alpha バージョン 7.3 から,DCL コマンドの SET DEVICE に,異なるサイトにあるシャドウ・セット・メンバに対する管理属性を指定する修飾子が追加されました。これらの修飾子を使うことによって,システム管理者は,ディザスタ・トレラント OpenVMS Cluster 構成の 1 つのサイトのシステムが障害をおこした場合のデフォルトのボリューム・シャドウイングの動作を変更することができます。これらの修飾子は,サイト間ストレージ・インターコネクトに Fibre Channel を使う構成で使うように設計されていますが,他の構成でも使うことができます。

また,DCL コマンドの DISMOUNT も /FORCE_REMOVAL ddcu: 修飾子を追加して,強化されました。この修飾子も同じ目的で追加されました。すなわち,異なるサイトにあるシャドウ・セット・メンバをシステム管理者が容易に制御できるようにするために追加されました。この修飾子についての詳細は, 第 4.8.1 項 を参照してください。

表 4-3 マルチサイト・シャドウ・セットのメンバのための SET DEVICE コマンド修飾子
修飾子 機能
/FORCE_REMOVAL ddcu: デバイスへの接続が切れて,シャドウ・セットがマウント検査の状態になったときに,そのメンバをシャドウ・セットから即時に切り離します。

シャドウ・セットがマウント検査の状態でなければ,即時の動作は行われません。デバイスの接続が切れても,シャドウ・セットがマウント検査の状態でないときには,このメンバがマウント検査の状態になったときに,シャドウ・セットから即座に切り離すためのフラグが設定されます。指定するデバイスは,このコマンドを発行するノードにマウントされているシャドウ・セットのメンバである必要があります。

/MEMBER_TIMEOUT = xxxxxx ddcu: シャドウ・セットのメンバに適用されるタイムアウトの値を指定します。

この修飾子で指定する値は,このデバイスについて,SYSGEN パラメータの SHADOW_MBR_TMO より優先されます。シャドウ・セットの各々のメンバには,異なる MEMBER_TIMEOUT の値が設定できます。

xxxxxx の正しい値の範囲は,1〜16,777,215 秒です。

指定するデバイスは,このコマンドを発行するノードにマウントされているシャドウ・セットのメンバである必要があります。

あるメンバにこの修飾子を適用すると,その設定は,そのメンバがシャドウ・セットに留まる限り,維持されます。メンバがシャドウ・セットから削除されて,後で戻された場合は,この修飾子をもう一度指定しなくてはなりません。

/MVTIMEOUT = yyyyyy DSA nnnn: 仮想ユニット名 DSA nnnn で指定されるシャドウ・セットで使われるマウント検査のタイムアウト値を指定します。

この修飾子で指定される値は,このシャドウ・セットについて, SYSGEN パラメータの MVTIMEOUT より優先されます。

yyyyyy の正しい値の範囲は,1〜16,777,215 秒です。指定するシャドウ・セットは,このコマンドを発行するノードにマウントされているシャドウ・セットである必要があります。

この修飾子を適用すると,その設定は,そのシャドウ・セットがマウントされている間,維持されます。シャドウ・セットがディスマウントされて,再びマウントされた場合は,この修飾子をもう一度指定しなくてはなりません。

/READ_COST = zzz ddcu: zzz の正しい値の範囲は,1〜65,535 単位です。

指定するデバイスは,このコマンドを発行するノードにマウントされているシャドウ・セットのメンバである必要があります。

この修飾子によって,各々のシャドウ・セット・メンバに割り当てられているデフォルトの「コスト」を変更できます。割り当てを変更すると, 2 メンバ・シャドウ・セットの場合,一方のメンバを優先させて読み込むことになり,3 メンバ・シャドウ・セットの場合は,1 つ,または 2 つのメンバを,残りのメンバより優先させて読み込むことになります。

シャドウイング・ドライバは,各々のシャドウ・セット・メンバが最初にマウントされたとき,メンバにデフォルトの READ_COST 値を割り当てます。デフォルト値はデバイス・タイプとそれをマウントしているシステムとの構成上の関係で決まります。DECRAM デバイス,物理的に同じ場所にある直接接続のデバイス,遠隔地にある直接接続のデバイス, DECram がサービスされているデバイス,その他のサービスが行われているデバイスの各々にはデフォルト値があります。

この修飾子で指定される値は,デフォルトの割り当てより優先されます。シャドウイング・ドライバはシャドウ・セット・メンバの待ち行列の長さの値を,READ_COST 値に加え,値が最も小さいメンバから読み込みます。

あるメンバにこの修飾子を適用すると,その設定は,メンバがシャドウ・セットに留まる限り,維持されます。メンバがシャドウ・セットから削除されて,後で戻された場合は,この修飾子をもう一度指定しなくてはなりません。

クラスタ内の別のシステムでは,各々のシャドウ・セット・メンバに異なるコストを割り当てることができます。

/SITE コマンド修飾子が指定されると,シャドウイング・ドライバは,デフォルトの READ_COST 値を割り当てるときに,サイト値を考慮に入れます。シャドウイング・ソフトウェアが,デバイスが「遠隔地にある直接接続のデバイス」というカテゴリに属しているかどうかを判断するために,/SITE コマンド修飾子はシャドウ・セットと DSA デバイスの両方に適用する必要があることに,注意してください。

サイト 1 にあるシステムからシャドウ・セットの読み込み要求が発生すると,サイト 1 のシャドウ・セット・メンバからの読み込みが実行されます。同じシャドウ・セットに対する読み込み要求がサイト 2 から発生すると,サイト 2 のメンバからの読み込みが実行されます。

/READ_COST = y DSA nnnn y の正しい値は, 任意の 数です。この値には固有の意味はありません。この修飾子の目的は,すべてのシャドウ・セット・メンバの読み込みコスト設定を,シャドウイング・ソフトウェアが自動的に設定したデフォルトの読み込みコスト設定に戻すことです。DSA nnnn は,このコマンドを発行するノードにマウントされているシャドウ・セットである必要があります。
/SITE = ( nnn, logical_name) ( ddcu:, DSA nnnn:) この修飾子は,シャドウ・セット・メンバまたは ( 仮想ユニット名で表現される ) シャドウ・セットのサイトの場所をシャドウイング・ドライバに指示します。この修飾子を使う前に,使用を簡単にするために,SYLOGICALS.COM コマンド・プロシージャの中で,サイトの場所を定義しておくことができます。

nnn の正しい値の範囲は,1〜255 です。

この修飾子を適用すると,その設定は,メンバがシャドウ・セットに留まる限り,維持されます。メンバがシャドウ・セットから削除されて,後で戻された場合は,この修飾子をもう一度指定しなくてはなりません。

以下の例では,サイトの場所の定義と, /SITE 修飾子の使い方を示しています。

$ DEFINE/SYSTEM/EXEC ZKO 1

$ DEFINE/SYSTEM/EXEC LKG 2
$!
$! At the ZKO site ...
$ MOUNT/SYSTEM DSA0/SHAD=($1$DGA0:,$1$DGA1:) TEST
$ SET DEVICE/SITE=ZKO DSA0:
$!
$! At the LKG site ...
$ MOUNT/SYSTEM DSA0/SHAD=($1$DGA0,$1$DGA1) TEST
$ SET DEVICE/SITE=LKG DSA0:
$!
$! At both sites, the following would be used:
$ SET DEVICE/SITE=ZKO $1$DGA0:
$ SET DEVICE/SITE=LKG $1$DGA1:
/COPY_SOURCE ( ddcu:, DSA nnnn:) 3 番目のメンバがシャドウ・セットに追加される際に,シャドウ・セットの両方のソース・メンバが,フル・コピー操作でデータを読み込むソースとして使われるかどうかを制御します。これは,DCD 操作を使わないコピー操作にだけ影響します。

HSG80 のような一部のストレージ・コントローラには先読みキャッシュがあり,それによって単一ディスクの読み込み性能は大幅に向上しています。コピー操作では,通常,読み込み先を 2 つのソース・メンバに交互に切り替えますが,このようにすると先読みキャッシュの利点が失われます。この修飾子を指定することで,コピー操作の読み込み先を 1 つのソース・メンバに固定することができます。

シャドウ・セットが指定されると,フル・コピー操作のすべての読み込み先は,ディスクの物理的な場所とは無関係に,現在の「マスタ」メンバのディスクになります。

シャドウ・セットのメンバが指定されると,そのメンバがすべてのコピー操作のソースとして使われます。これにより,リモートのマスタ・メンバでなく,ローカルのソース・メンバを選択することができます。

/ABORT_VIRTUAL_UNIT DSA nnnn: この修飾子を使うためには,シャドウ・セットはマウント検査状態である必要があります。この修飾子を指定すると,このコマンドが発行されたノード上でのシャドウ・セットのマウント検査状態が即座に解除されます。この修飾子はユニットが回復不能と判明しているときに使います。このコマンドが完了した後は,シャドウ・セットはディスマウントの状態のままにしておく必要があることに,注意してください。シャドウ・セットをディスマウントするには,次のコマンドを使います。
$ DISMOUNT/ABORT DSA
nnnn

4.7.1 マルチサイトの SET DEVICE および DISMOUNT コマンド修飾子の使用方法

図 4-1 に, Fibre Channel を使用する典型的なマルチサイト・クラスタを示します。この図では,サイト間ストレージ・インターコネクトに障害が発生したときに, 1 つのサイトを手動で復旧するために必要な手順を示しています。以下のバージョンを稼働しているマルチサイト OpenVMS Cluster システムでは,この手順を実行しなければなりません。

図 4-1 FC および LAN インターコネクトを備えたマルチサイト OpenVMS Cluster システム


シャドウイング・ドライバが接続関連の障害からシャドウ・セットを自動的に復旧させるのを防ぐには,障害が発生する前に,以下の 3 つの手順を実行する必要があります。

  1. マルチサイト・シャドウ・セットのメンバであるすべてのデバイスで,以下のコマンドを使用して各々の MEMBER_TIMEOUT 設定を高い値に引き上げる必要があります。


    $ SET DEVICE /MEMBER_TIMEOUT= x  ddcu: 
    


    このコマンドは SHADOW_MBR_TMO 値より優先されます。通常は,SHADOW_MBR_TMO がシャドウ・セット・メンバに使用されています。 x の値に 259200 を指定すると,待機時間は 72 時間になります。

  2. マルチサイトにまたがるシャドウ・セットでは,各々のマウント検査タイムアウト設定を非常に高い値に引き上げる必要があり,その値を,シャドウ・セットの各メンバに対する MEMBER_TIMEOUT 設定よりも高くしなければなりません。

    シャドウ・セットのマウント検査タイムアウト設定を増やすには,以下のコマンドを使用します。


    $ SET DEVICE /MVTIMEOUT = y  DSAnnnn
    


    このコマンドの y の値は, SET DEVICE/MEMBER_TIMEOUT= x ddcu: コマンドの x の値よりも必ず大きくしてください。
    SET DEVICE /MVTIMEOUT = y コマンドは,通常シャドウ・セットに使用される MVTIMEOUT 値より優先されます。 y の値に 262800 を指定すると,73 時間の待機になります。

  3. 各シャドウ・セットおよび各シャドウ・セット・メンバには,サイト修飾子が必要です。既に説明したように,サイト修飾子によって,読み込みコストが正しく設定されることが確実になります。他の重要な要素としては,3 メンバ・シャドウ・セットがあります。 3 メンバ・シャドウ・セットを使用する場合は,シャドウ・セットのマスタ・メンバが適切に維持されることをサイト修飾子が確実にします。

図 4-1 はシャドウ・セット DSA42 を示しており,そのメンバは,デバイス $1$DGA1000 とデバイス $1$DGA2000 です。サイト A またはサイト B にあるシステムは,Fibre Channel 接続経由で両方のサイトにあるすべてのデバイスに直接アクセスします。 XYZZY はこの 2 つのサイト間の理論的なポイントです。このポイントで Fibre Channel 接続が切れたとしても,どちらのサイトもエラーなく DSA42 のさまざまな "ローカル" ・メンバにアクセスできます。

この例では,サイト A はシャドウ・セットへのアクセスを維持する唯一のサイトになります。

サイト A でシャドウ・セットを復旧するには,以下の手順を実行する必要があります。

  1. サイト A で以下のコマンドを実行します。


    $ DISMOUNT /FORCE_REMOVAL= $1$DGA2000: 
    


    コマンドの実行が完了すると,シャドウ・セットはサイト A だけでの使用が可能になります。

  2. サイト B で以下のコマンドを実行します。


    $ SET DEVICE /ABORT_VIRTUAL_UNIT DSA42: 
    


    コマンドの実行が完了すると,シャドウ・セットの状態は MntVerifyTimeoutになります。

  3. 次に,以下のコマンドを実行してシャドウ・セットを解除します。


    $ DISMOUNT/ABORT DSA42: 
    


    この手順は,影響を受けたマルチサイト・シャドウ・セットすべてに対して実行する必要があります。

4.8 メンバの削除とシャドウ・セットの解除

DCL コマンドの DISMOUNT で,シャドウ・セット・メンバを削除し,シャドウ・セットを解除できます。グループおよびシステムのボリュームをディスマウントするには,GRPNAM と SYSNAM のユーザ特権が必要です。 DISMOUNT コマンドの形式は次のとおりです。


DISMOUNT {device-name[:] virtual-unit-name} 

DISMOUNT コマンドで個々のシャドウ・セット・メンバを指定するか, (仮想ユニット名で) シャドウ・セットを指定するかで,動作が異なります。

OpenVMS Cluster システムにまたがってマウントされているシャドウ・セットをディスマウントするためには,DISMOUNT コマンドで /CLUSTER 修飾子を指定します。シャドウ・セットを /CLUSTER 修飾子なしでディスマウントすると,コマンドを発行したノードだけでシャドウ・セットがディスマウントされ,シャドウ・セットがマウントされている他の OpenVMS Cluster ノードでは,シャドウ・セットは動作したままになります。

システムのディスクが SCSI ディスクでも Fibre Channel ディスクでもない場合,ディスク・ボリュームの回転が止まるのを避けるために, DISMOUNT コマンドに /NOUNLOAD 修飾子を指定します。そのようにすると,そのデバイスはレディ状態を維持します。仮想ユニットをディスマウントするときに /UNLOAD 修飾子を指定すると,ディスク・ボリュームは,シャドウ・セットが解除された後,物理的に回転が止まります。 DISMOUNT コマンドと修飾子の使い方の詳細は,『OpenVMS DCL ディクショナリ』を参照してください。

4.8.1 シャドウ・セットからのメンバの削除

シャドウ・セットから個々のメンバを削除するためには,DISMOUNT コマンドで物理デバイスの名前を指定します。たとえば,次のとおりです。


$ DISMOUNT $5$DUA7:

シャドウ・セット・メンバを個別にディスマウントすると,すべての未完了の入出力要求が終了した後に,メンバがセットから削除されます。

OpenVMS Alpha バージョン 7.3 からは,/FORCE_REMOVAL ddcu: 修飾子が使えるようになりました。デバイス接続が失われ,シャドウ・セットがマウント検査の状態になると,指定したシャドウ・セット・メンバ (ddcu:) をシャドウ・セットから即座に削除するために,/FORCE_REMOVAL ddcu:を使うことができます。この修飾子を省略すると,デバイスはマウント検査が完了するまでディスマウントされません。この修飾子は /POLICY=MINICOPY (=OPTIONAL) 修飾子と同時には使えません。

指定するデバイスは,コマンドを実行したノードにマウントされているシャドウ・セットのメンバである必要があります。

この修飾子によって,システム管理者は,メンバが OpenVMS Cluster 構成の異なるサイトにあるシャドウ・セットを容易に制御することができます。 第 4.7 節 で説明しているように,SET DEVICE 修飾子もシャドウ・セット・メンバのディザスタ・トレラント管理属性を指定するために,使うことができます。

注意

デバイスがシャドウ・セットの唯一のソース・メンバである場合,ディスマウントすることはできません。すべてのシャドウ・セットには,少なくとも 1 つの正しいソース・メンバが必要です。唯一のソース・メンバ・デバイスをディスマウントしようとすると, DISMOUNT コマンドは失敗し,次のメッセージが表示されます。


%DISM-F-SRCMEM, Only source member of shadow set cannot be dismounted 

シャドウ・セットの最後のソース・メンバを削除する唯一の方法は, DISMOUNT コマンドで仮想ユニット名を指定して,シャドウ・セットを解除することです。

4.8.2 シャドウ・セットの解除

DISMOUNT コマンドで仮想ユニット名を指定して,シャドウ・セットを 解除する ことができます。仮想ユニット名を指定すると,シャドウ・セットのすべてのメンバがディスマウントされ, DISMOUNT コマンドを発行したノードのシャドウ・セットが解除されます。 例 4-9 に示すコマンドには, OpenVMS Cluster システムにまたがって DSA36 シャドウ・セットを解除するための /CLUSTER 修飾子が含まれています。

例 4-9 シャドウ・セットの解除

$ DISMOUNT /CLUSTER DSA36:

仮想ユニットの解除は,すべてのファイルがクローズされた後で行われ,ディスマウントするディスクがファイル・システム全体で矛盾がないことを保証します。ディスマウント操作では,正しくディスマウントされたとシャドウ・セット・メンバにマークし,次回にディスクをマウントするときの再構築を不要にします。ただし,マージ操作が保留中か進行中であった場合は,ディスマウント操作では,シャドウ・セット・メンバが正しくディスマウントされていないとマークし,マージ操作が必要になります。

注意

シャドウ・セットのコピー操作中に仮想ユニットをディスマウントすると,コピー操作は中断し,シャドウ・セットは解除されます。そして,次の例に示すような,OPCOM メッセージが表示されます。


$ DISMOUNT DSA9999:
%%%%%%%%%%%  OPCOM  24-MAR-1990 20:29:57.52  %%%%%%%%%%%
$7$DUA6:  (WRKDSK) has been removed from shadow set.
%%%%%%%%%%%  OPCOM  24-MAR-1990 20:29:57.68  %%%%%%%%%%%
$7$DUA56: (PLADSK)  has been removed from shadow set.
%%%%%%%%%%%  OPCOM  24-MAR-1990 20:29:57.88  %%%%%%%%%%%
Message from user SYSTEM on SYSTMX

4.8.3 バックアップ用にメンバを 1 つ減らしてディスマウントと再マウントを行う

第 4.8.2 項 で説明したように,仮想ユニットをシステムあるいは OpenVMS Cluster システムからディスマウントできます。仮想ユニットが正しくディスマウントされたことを確認するには,以下の手順を実行します。

  1. MOUNT/NOWRITE コマンドを実行し,その後,SHOW DEVICE コマンドを実行します。たとえば,次のように実行します。


    $ MOUNT/NOWRITE DSA42: /SHADOW=($4$DUA3,$4$DUA4,$4$DUA5) volume-label 
    $ SHOW DEVICE DSA42: 
    

  2. 仮想ユニットが,安定した状態であることを確認してください。つまり,すべてのメンバが矛盾なく,コピーやマージの操作が進行中でないことを確認します。コピーやマージの操作が進行中であれば,操作の完了を待ってください。

  3. 仮想ユニットが安定状態であれば,次の例のように, DISMOUNT コマンドでシャドウ・セットからメンバを削除します。


    $ DISMOUNT $4$DUA5 
    

  4. 仮想ユニットをディスマウントし,次のコマンドのように, 1 つ少ないメンバで再マウントします。


    $ MOUNT/SYS DSA42: /SHADOW=($4$DUA3,$4$DUA4) volume-label 
    


    削除されたメンバはその仮想ユニットのバックアップ操作で使えるようになります。

注意

アプリケーションを連続的に稼働させる必要があっても (すなわち,業務を中断してディスマウントすることができない場合でも),後でシャドウ・セットに戻す予定のシャドウ・セット・メンバを削除することができます。アプリケーションや回復手順は, 第 7.12 節 で説明するように,データの整合性を保証するように設計されている必要があります。

4.9 シャドウ・セットの情報の表示

DCL コマンドの SHOW DEVICE や F$GETDVI レキシカル関数を使うと,シャドウ・セット仮想ユニットとメンバとして使われている物理ボリュームの情報を取得することができます。SDA (System Dump Analyzer) を使って,シャドウ・セットの詳細情報を取得することもできます。

以下の項では,これらのツールを使ってボリューム・シャドウイング仮想ユニットとシャドウ・セット・メンバを検査する方法を説明します。SHOW DEVICE コマンドや F$GETDVI レキシカル関数の使い方の詳細は,『OpenVMS DCL ディクショナリ』を参照してください。 OpenVMS Alpha システムや OpenVMS VAX システムで SDA を使う方法の詳細は,それぞれ,『OpenVMS Alpha System Analysis Tools Manual』と『OpenVMS VAX System Dump Analyzer Utility Manual』を参照してください。

(シャドウ・セットの仮想ユニット名を指定して) シャドウ・セットやシャドウ・セット・メンバを検査するときは, SHOW DEVICE の任意の修飾子が使えます。

注意

シャドウ・セットは OpenVMS Cluster の各々のノードで独立して作成され維持されるので,SHOW DEVICE では,リモート・ノードだけで作成されたシャドウ・セットは表示されません。

4.9.1 シャドウ・セットの表示

シャドウ・セットの情報を表示するには,次の形式の SHOW DEVICE を使います。


SHOW DEVICE [virtual-unit-name[:]] 

シャドウ・セットに対する SHOW DEVICE コマンドのパラメータでは,変数 device-namevirtual-unit-name に置き換えます。仮想ユニット名には,DSAn: の形式を使います。

他の SHOW DEVICE コマンドと同様に,コロンはオプションです。デバイス名の場合と同様に,完全な仮想ユニット名か,仮想ユニット名の一部を指定できます。仮想ユニット番号を省略すると, SHOW DEVICE は,指定したタイプのシャドウ・セット・メンバ・ディスクで表されるすべてのシャドウ・セット仮想ユニットを表示します。 (D のように ) デバイス名を短縮した場合は,SHOW DEVICE は,入力した文字 ( この場合は,D) で始まるすべてのデバイスと仮想ユニットを表示します。

仮想ユニット番号を指定すると,SHOW DEVICE は,それに対応しているシャドウ・セット・メンバの名前を表示します。/FULL 修飾子を使うと, SHOW DEVICE は,シャドウ・セットとそれに対応するシャドウ・セット・メンバに関する完全な情報を表示します。

システム単位またはクラスタ単位でアクセスできるようにマウントされた個々のシャドウ・セット・メンバは従来の方法では割り当てたりマウントすることができないため,/ALLOCATED 修飾子や /MOUNTED 修飾子が指定された SHOW DEVICE コマンドは,仮想ユニットだけを表示します。

4.9.2 シャドウ・セット・メンバの表示

シャドウ・セット・メンバに対する SHOW DEVICE コマンドの形式は,他の物理デバイスの場合の形式と同じです。このコマンドでは,指定したデバイス名のすべてのシャドウ・セット・メンバが表示されます。

シャドウ・セット・メンバは従来の方法ではマウントされず,すべてのメンバは同じデバイス特性を持つため,SHOW DEVICE では,対応する仮想ユニットとともに有用なデータの大部分が表示されます。シャドウ・セット・メンバの表示には,現在のメンバシップ・ステータスの情報も含まれます。

シャドウ・セットでコピーやマージの操作が行われている最中であれば, SHOW DEVICE コマンドの表示には,コピーやマージの済んだディスクの割合も表示されます。SHOW DEVICE 情報は,シャドウ・セットがマウントされているすべてのノードで,表示することができます。

SHOW DEVICE の表示では,コピーされたディスクの正確な割合が表示されます。コピー操作を管理しているノードでは,コピーやマージの操作の進み具合を正確に把握することができるので,OpenVMS Cluster の別のノードに定期的にその進み具合を通知します。このようにして,クラスタ内の他のノードは,コピーの割合を概略で知ることができます。コピーやマージの操作を行っていないノードで SHOW DEVICE コマンドを実行すると, SHOW DEVICE の出力で表示されるコピーの割合は,実際にコピーされている割合よりも少なめに表示されます。

コピーとマージの操作が同じシャドウ・セットで同時に行われると,マージの割合は,コピーが完了するまで変化しないことに注意してください。コピーが完了した後,マージ操作が再開されます。

4.9.3 SHOW DEVICE でのシャドウ・セット情報の表示例

SHOW DEVICE コマンドの出力を示す以下の例では,シャドウ・セットのメンバ構成や,コピーやマージの操作中の各々のシャドウ・セット・メンバのステータスなど,取得可能な種々のシャドウ・セット情報を示しています。ミニコピー操作で使われる書き込みビットマップの例については, 第 7.10 節 を参照してください。


#1

$ SHOW DEVICE D
Device               Device        Error    Volume         Free  Trans Mnt
 Name                Status        Count     Label        Blocks Count Cnt
DSA0:                Mounted           0  SHADOWDISK        8694   151   1
DSA9999:             Mounted           0  APPARITION      292971     1   1
$4$DUA0:   (SYSTMX)  Online            0
$4$DUA8:   (HSJ001)  ShadowSetMember   0  (member of DSA0:)
$4$DUA10:  (SYSTMX)  ShadowSetMember   0  (member of DSA9999:)
$4$DUA11:  (SYSTMX)  ShadowSetMember   0  (member of DSA9999:)
$4$DUA12:  (SYSTMX)  ShadowSetMember   0  (member of DSA9999:)
$4$DUA89:  (HSJ002)  ShadowSetMember   0  (member of DSA0:)

デバイス名を短縮した場合は, SHOW DEVICE コマンドは,入力した文字 (この場合は,D) で始まるローカル・ノード上のすべてのデバイスと仮想ユニットを表示します。この例では 2 つの仮想ユニット DSA0 と DSA9999 がアクティブであることを示しています。どちらのシャドウ・セットも安定状態です。「ShadowSetMember」というデバイス・ステータスはシャドウ・セットが安定状態であることを示しています。つまり,シャドウ・セット・メンバは互いに整合が取れています。

#2

$ SHOW DEVICE DSA8
Device               Device        Error    Volume         Free  Trans Mnt
 Name                Status        Count     Label        Blocks Count Cnt
DSA8:                Mounted           0  APPARITION      890937     1   1
$11$DUA8:   (SYSTMX)   ShadowSetMember   0  (member of DSA8:)
$11$DUA89:  (SYSTMY)   ShadowSetMember   0  (member of DSA8:)

この例では,DSA8 仮想ユニットで示されるシャドウ・セットのメンバ構成とステータスを表示しています。SHOW DEVICE の表示では,仮想ユニット DSA8 の情報だけでなく,そのシャドウ・セットのメンバである物理デバイス $11$DUA8 と $11$DUA89 の情報も表示されています。「ShadowSetMember」というデバイス・ステータスは,シャドウ・セットが安定状態であることを示しています。つまり,シャドウ・セット・メンバは互いに整合が取れています。シャドウ・セット・メンバは, OpenVMS Cluster ノードの SYSTMX と SYSTMY でサービスされています。

#3

$ SHOW DEVICE DSA
Device               Device        Error    Volume         Free  Trans Mnt
 Name                Status        Count     Label        Blocks Count Cnt
DSA7:                Mounted           0  PHANTOM          27060    35   7
DSA8:                Mounted           0  APPARITION      890937     4   6
 

ローカル・ノードのすべてのシャドウ・セットに関する情報が必要な場合は, SHOW DEVICE コマンドで DSA と指定します。パラメータとして DSA のような,汎用的な仮想ユニット名を入力すると,ローカル・システムにマウントされているシャドウ・セットに対応するすべての仮想ユニットに関する情報が表示されます。この例ではローカル・ノードに 2 つのシャドウ・セットがマウントされており,仮想ユニット DSA7 と DSA8 として表されています。

#4

$ SHOW DEVICE $11$DUA8:
Device               Device        Error    Volume         Free  Trans Mnt
 Name                Status        Count     Label        Blocks Count Cnt
DSA8:                Mounted           0  APPARITION      890937     1   1
$11$DUA8:   (HSJ001) ShadowSetMember   0  (member of DSA8:)
$11$DUA89:  (HSJ002) ShadowSetMember   0  (member of DSA8:)

SHOW DEVICE コマンドではデバイス名を 1 つだけ指定していますが,結果の表示は,$11$DUA8 デバイスが属する DSA8 仮想ユニットに対応するシャドウ・セットのメンバ構成とステータスの情報を含んでいます。「ShadowSetMember」というデバイス・ステータスは,シャドウ・セットが安定状態であることを示しています。つまり,シャドウ・セット・メンバは互いに整合が取れています。シャドウ・セット・メンバは,HSJ001 という名前のノードからアクセスされています。

#5

$ SHOW DEVICE $11$DUA8:
Device               Device        Error    Volume         Free  Trans Mnt
 Name                Status        Count     Label        Blocks Count Cnt
DSA8:                Mounted           0  APPARITION      890937     1   1
$11$DUA8:  (HSJ001)  ShadowSetMember   0  (member of DSA8:)
 
$11$DUA89: (HSJ002)  ShadowCopying     0  (copy trgt DSA8:  48% copied)
 

この SHOW DEVICE コマンドの出力は,シャドウ・セットが遷移状態であることを示しています。「ShadowCopying」というデバイス・ステータスは,物理デバイス $11$DUA89 がコピー操作のターゲットになっていて,ディスクの 48% がコピーされたことを示しています。デバイス $11$DUA8 がコピー操作のソース・メンバです。

#6

$ SHOW DEVICE DSA8
Device               Device        Error    Volume         Free  Trans Mnt
 Name                Status        Count     Label        Blocks Count Cnt
DSA8:                Mounted           0  APPARITION      890937     1  12
 
$11$DUA8:  (HSJ001)  ShadowCopying     0  (copy trgt DSA8: 5% copied)
$11$DUA89: (HSJ002)  ShadowMergeMbr    0  (merging DSA8:   0% merged)
 

この例では,OpenVMS Cluster システムのノードが障害を起こした後,コピー操作を行っているシャドウ・セットが,SHOW DEVICE コマンドでどのように表示されるかを示しています。この例では,シャドウ・セット・メンバはクラスタ内の異なるノードにあり,シャドウ・セットがマウントされているノードの 1 つで障害が発生しています。障害が発生したときにシャドウ・セットは遷移状態にあり,$11$DUA8 デバイスではコピー操作が行われていました。この SHOW DEVICE コマンドでは,マージ操作が行われる前の,コピー操作中のシャドウ・セットの状態を示しています。

$11$DUA89 シャドウ・セット・メンバは,コピー操作のソース・メンバになっている最中も,OpenVMS Cluster システム上で実行されているアプリケーションからの入出力要求を受け付け,実行できます。コピー操作が完了すると,マージ操作が自動的に開始されます。マージ操作についての詳細は,第 6 章 を参照してください。

次の例では,マージ操作中のシャドウ・セットが SHOW DEVICE コマンドでどのように表示されるかを示しています。

#7

$ SHOW DEVICE DSA8
Device               Device        Error    Volume         Free  Trans Mnt
 Name                Status        Count     Label        Blocks Count Cnt
DSA8:                Mounted           0  APPARITION      890937     1   1
 
$11$DUA8:   (HSJ001) ShadowMergeMbr    0  (merging DSA8: 78% merged)
$11$DUA89:  (HSJ002) ShadowMergeMbr    0  (merging DSA8: 78% merged)
 

SHOW DEVICE コマンドは,マージ操作で遷移状態にあるシャドウ・セットを,この例のように表示します。マージ操作は 78% 完了しています。

#8

$ SHOW DEV D
Device               Device        Error    Volume         Free  Trans Mnt
 Name                Status        Count     Label        Blocks Count Cnt
DSA456:      (FUSS)  Mounted           0  AUDITINGDISK    123189   225  17
$11$DIA1:  (LISBEN)  Online            0
$11$DJA16: (GALEXI)  Online            0
$11$DJA128:(GALEXI)  Mounted wrtlck    0  CORPORATEVOL    164367     1  18
$11$DJA134:(GALEXI)  Mounted           0  WORKVOLUME      250344     1  16
$11$DUA1:    (FUSS)  Mounted           0  MAR24DISKVOL    676890     1  18
$11$DUA2:    (FUSS)  ShadowSetMember   0  (member of DSA456:)
$11$DUA7:   (BLISS)  Online            0  (remote shadow member)
$11$DUA11: (LISBEN)  Mounted           0  RMSFILES        621183     1  18
$11$DUA13:  (BLISS)  Mounted           0  RESIDENTVOL     525375     1  18
 

この例では,SHOW DEVICE コマンドでリモート・シャドウ・セット・メンバがどのように表示されるかを示しています。この表示の中で,説明が「remote shadow member」になっているデバイス $11$DUA7 は,このシステムにマウントされていないシャドウ・セット・メンバです。

#9

$ SHOW DEVICE/FULL DSA80
Disk DSA80:, device type MSCP served SCSI disk, is online, mounted, file- 
oriented device, shareable, available to cluster, error logging is enabled.
 
Error count                    0    Operations completed               138
Owner process                 ""    Owner UIC                      [SHADOW]
Owner process ID        00000000    Dev Prot    S:RWED,O:RWED,G:RWED,W:RWED
Reference count                1    Default buffer size                512
Total blocks              891072    Sectors per track                   51
Total cylinders             1248    Tracks per cylinder                 14
Volume label         "SHADTEST1"    Relative volume number               0
Cluster size                   3    Transaction count                    1
Free blocks               890937    Maximum files allowed           111384
Extend quantity                5    Mount count                          4
Mount status              System    Cache name         "_DSA2010:XQPCACHE"
Extent cache size             64    Maximum blocks in extent cache   89093
File ID cache size            64    Blocks currently in extent cache     0
Quota cache size               0    Maximum buffers in FCP cache       216
Volume status:  subject to mount verification, file high-water marking,write-
  through caching enabled.
Volume is also mounted on BLASTA, CNASTA, SHASTA.
Disk $255$DUA56:, device type MSCP served SCSI disk, is online, member of 
shadow set DSA80:, error logging is enabled.
Error count                    0    Shadow member operation count      301
Host name               "SHASTA"    Host type, avail      VAX 6000-320,yes
Allocation class             255
  Volume status:  volume is a merge member of the shadow set.
Disk $255$DUA58:, device type MSCP served SCSI disk, is online, member of 
shadow set DSA80:, error logging is enabled.
Error count                    0    Shadow member operation count      107
Host name               "SHASTA"    Host type, avail      VAX 6000-320,yes
Allocation class             255
Volume status:  volume is a merge member of the shadow set.

この例は SHOW DEVICE/FULL コマンドでシャドウ・セットとそのメンバの詳細情報がどのように表示されるかを示しています。両方のメンバ, $255$DUA56 と $255$DUA58 が,マージ・メンバであることに注意してください。 第 4.9.4 項 では,このシャドウ・セットを System Dump Analyzer で検査したときにどのように表示されるかを示しています。

4.9.4 SDAによるシャドウ・セット情報の表示

SDA (System Dump Analyzer) は OpenVMS オペレーティング・システムに用意されているユーティリティです。SDA の主な機能はクラッシュ・ダンプを分析することですが,シャドウ・セットなどの,実行中のシステムを検査するツールとしても役に立ちます。また,SDA は,他社の SCSI デバイスがシャドウイング・データの (不良ブロックの) 修復機能を持っているかどうかを調べるためにも使えます。この例は, 第 4.9.4.1 項 にあります。

SDA コマンドの SHOW DEVICE は,システム構成内のデバイスを記述しているシステム・データ構造の情報を表示します。シャドウ・セットを検査するには,まず DCL プロンプトから,ANALYZE/SYSTEM を入力して System Dump Analyzer を起動します。その後,SDA> プロンプトから,仮想ユニット名を指定して SHOW DEVICE コマンドを入力します。

以下の例では,仮想ユニット DSA80 に対応するシャドウ・セットの情報を取得する方法を示しています。以下に示す SDA の出力例を, 第 4.9.3 項 の最後の例に示す DCL の SHOW DEVICE 出力と比較してください。


$ ANALYZE/SYSTEM
VAX/VMS System analyzer
SDA> SHOW DEVICE DSA80
I/O data structures
-------------------
DSA80                                   HSJ00              UCB address:  810B7F50
Device status:   00021810 online,valid,unload,lcl_valid
Characteristics: 1C4D4008 dir,fod,shr,avl,mnt,elg,idv,odv,rnd
                 00082021 clu,mscp,loc,vrt
Owner UIC [004000,000015]   Operation count        138   ORB address    810B8080
      PID        00000000   Error count              0   DDB address    813F49F0
Alloc. lock ID   009C2595   Reference count          1   DDT address    810BEBB8
Alloc. class            0   Online count             1   VCB address    810BE3F0
Class/Type          01/15   BOFF                  0000   CRB address    8129EB10
Def. buf. size        512   Byte count            0200   PDT address    810121A0
DEVDEPEND        04E00E33   SVAPTE            81FDE55C   CDDB address   813F4360
DEVDEPND2        00000000   DEVSTS                0004   SHAD address   8111D460
FLCK index             34   RWAITCNT              0000   I/O wait queue    empty
DLCK address     00000000                                                      
Shadow Device status:   0004 nocnvrt
  ----- Shadow Descriptor Block (SHAD) 8111D460 -----
Virtual Unit status:              0041 normal,merging
Members                2    Act user IRPs          0    VU UCB          810B7F50
Devices                2    SCB LBN         0006CC63    Write log addr  00000000
Fcpy Targets           0    Generation Num  28D47C20    Master FL          empty
Mcpy Targets           2                    00935BC7    Restart FL         empty
Last Read Index        1    Virtual Unit Id 00000000                           
Master Index           0                    12610050                           
     ----- SHAD Device summary for Virtual Unit  DSA80  -----
Device $255$DUA56
 Index 0 Device Status    A6 merge,cip,src,valid
 UCB 810510D0     VCB 81400A00      Unit Id. 12A10038 000000FF
 Merge LBN 0004B94D
Device $255$DUA58
 Index 1 Device Status    A6 merge,cip,src,valid
 UCB 81051260     VCB 81439800      Unit Id. 12A1003A 000000FF
 Merge LBN 0004B94D
SDA> exit

SDA ユーティリティの SHOW DEVICE コマンドは,最初に DSA80 仮想ユニットのデバイス特性とデータ構造のアドレスを表示します。その後 SDA は DSA80 仮想ユニットのステータスと個々のシャドウ・セット・メンバのステータスを表示します。ユニットのマージ状態が,各々のメンバのデバイス・ステータスに反映される様子を見てください。たとえば, $255$DUA56 には,次のようなデバイス・ステータスが表示されています。


Device $255$DUA56 
 Index 0 Device Status    A6 merge (1), cip (2), src (3), valid (4)
 UCB 810510D0     VCB 81400A00      Unit Id. 12A10038 000000FF 
 Merge LBN 0004B94D 

この情報の意味は次のとおりです。

  1. merge---$255$DUA56 には,マージ操作がマークされています。

  2. cip---コピーが進行中です。この例では,マージ操作が進行中です。

  3. src---$255$DUA56 は読み取り操作のソース・メンバになっています。

  4. valid---$255$DUA56 の SCB 情報は,正しい状態です。

SDA がこのシャドウ・セットの「スナップショット」を取ったときに,マージ操作で LBN 0004B94D がマージ中だったことが,両方のデバイス $255$DUA56 と $255$DUA58 でどのように表示されているかにも注意してください。

以下の例では,同じシャドウ・セットの, $255$DUA56 がマージ・メンバで $255$DUA58 がコピー操作のコピー先になっている場合の SDA 表示を示します。シャドウ・セットがマウントされているノードが,シャドウ・セットのメンバのコピー操作中にクラッシュすると,シャドウ・セットはマージ/コピー状態になることがあります。ボリューム・シャドウイングではコピー操作中だったシャドウ・セットを自動的にマークし,コピー操作が完了したときにマージ操作が行われるようにします。これによりシャドウ・セット全体での整合性が保証されます。

この例では,最初に DCL コマンド SHOW DEVICE $255$DUA58 による 1 つのシャドウ・セット・メンバの出力を示し,次に SDA コマンド SHOW DEVICE DSA80 を使った場合のシャドウ・セット全体の出力を示しています。 SDA は ANALYZE/SYSTEM コマンドで起動しています。


$ SHOW DEVICE $255$DUA58
Device                  Device           Error    Volume         Free  Trans Mnt
 Name                   Status           Count     Label        Blocks Count Cnt
DSA80:                  Mounted              0  SHADTEST1       890937     1   3
 
$255$DUA56:   (SHASTA)  ShadowMergeMbr       0  (merging DSA80:   0% merged)
$255$DUA58:   (SHASTA)  ShadowCopying        0  (copy trgt DSA80: 9% copied )
 
$ ANALYZE/SYSTEM
VAX/VMS System analyzer
SDA> SHOW DEVICE DSA80
I/O data structures
-------------------
DSA80                                   RA81              UCB address:  810B7F50
Device status:   00021810 online,valid,unload,lcl_valid
Characteristics: 1C4D4008 dir,fod,shr,avl,mnt,elg,idv,odv,rnd
                 00082021 clu,mscp,loc,vrt
Owner UIC [004000,000015]   Operation count        130   ORB address    810B8080
      PID        00000000   Error count              0   DDB address    813F49F0
Alloc. lock ID   009C2595   Reference count          1   DDT address    810BEBB8
Alloc. class            0   Online count             1   VCB address    810BE3F0
Class/Type          01/15   BOFF                  0000   CRB address    8129EB10
Def. buf. size        512   Byte count            0000   PDT address    810121A0
DEVDEPEND        04E00E33   SVAPTE            00000000   CDDB address   813F4360
DEVDEPND2        00000000   DEVSTS                0004   SHAD address   8111D460
FLCK index             34   RWAITCNT              0000   I/O wait queue    empty
DLCK address     00000000                                                      
Shadow Device status:   0004 nocnvrt
  ----- Shadow Descriptor Block (SHAD) 8111D460 -----
Virtual Unit status:              0061 normal,copying,merging
Members                1    Act user IRPs          0    VU UCB          810B7F50
Devices                2    SCB LBN         0006CC63    Master FL         empty
Fcpy Targets           1    Generation Num  7B7BE060    Restart FL         empty
Mcpy Targets           0                    00935BC4    
Last Read Index        0    Virtual Unit Id 00000000                           
Master Index           0                    12610050                           
     ----- SHAD Device summary for Virtual Unit  DSA80  -----
Device $255$DUA56
 Index 0 Device Status    A2 merge,src,valid
 UCB 810510D0     VCB 81400A00      Unit Id. 12A10038 000000FF
 Merge LBN FFFFFFFF
Device $255$DUA58
 Index 1 Device Status    87 fcpy,merge,cip,valid
 UCB 81051260     VCB 81439800      Unit Id. 12A1003A 000000FF
 Copy LBN 00033671

この例のSHAD Device summary for Virtual Unit DSA80の表示では,$255$DUA58 のデバイス・ステータス (fcpy) が,このデバイスがフル・コピー操作のターゲットであることを示しています。コピー操作のソースは $255$DUA56 です。$255$DUA56 のMerge LBNの行に,一連の F (FFFFFFFF) が表示されていることに注意してください。この表示は,コピー操作が完了した後にマージ操作が必要なことを示しています。ターゲット・ディスク $255$DUA58 のCopy LBNの行は,現在 LBN 00033671 でコピー操作が行われていることを示しています。

4.9.4.1 SDA による他社製 SCSI デバイスの情報取得

SCSI ディスクをマウントしたとき, SCSI ディスク・クラス・ドライバの DKDRIVER は,デバイス固有のパラメータをチェックして,そのディスクが READL/WRITEL コマンドをサポートしているかどうかを確認します。

SCSI ディスクが,READL/WRITEL コマンドをサポートしていない場合, DKDRIVER は NOFE (no forced error) ビットを設定し,そのディスクがシャドウイング・データの (ディスク不良ブロックの) 修復機能をサポートしていないことを表示します。SDA コマンドの SHOW DEVICE を使って, SDA 表示の Characteristics フィールドの NOFE フラグを調べることができます。


$ ANALYZE/SYSTEM
SDA> SHOW DEVICE DKA300:(1) 
I/O data structures 
------------------- 
COLOR$DKA300              Generic_DK        UCB address:  80A665E0 
 
Device status:   00000010 online 
Characteristics: 1C454008 dir,fod,shr,avl,elg,idv,odv,rnd 
                 05010281 clu,srv,nnm,scsi,nofe(2) 
   .
   .
   .

  1. 物理デバイス名を指定して,SHOW DEVICE コマンドを入力します。

  2. デバイス DKA300 には NOFE が設定されているので,このデバイスではシャドウイング・データ修復機能がサポートされていないことがわかります。

READL/WRITEL 操作をサポートしている SCSI デバイスでは, SDA は,次の例のように,NOFE フラグを含まない Characteristics フィールドを表示します。


SDA> SHOW DEVICE DKA200:
I/O data structures 
------------------- 
COLOR$DKA200             Generic_DK        UCB address:  806EEAF0 
 
Device status:   00021810 online,valid,unload,lcl_valid 
Characteristics: 1C4D4008 dir,fod,shr,avl,mnt,elg,idv,odv,rnd 
                 01010281 clu,srv,nnm,scsi

Characteristics フィールドには NOFE フラグが表示されていません。したがって,デバイス DKA200 がシャドウイング・データの修復機能をサポートしていることがわかります。

4.9.5 F$GETDVI によるシャドウ・セット情報の取得

F$GETDVI レキシカル関数は,シャドウ・セットにマウントされているデバイス情報を取得するための別の手段を提供します。F$GETDVI を使うと,一般的なデバイスおよびボリューム情報と,そのデバイスやボリュームのシャドウ・セット・ステータスに関する個別の情報を取得することができます。たとえば,以下のような情報を調べることができます。

F$GETDVI レキシカル関数は,DCL コマンド・レベルで対話型で使用することも, DCL コマンド・プロシージャ内で使うこともできます。さらに,$GETDVI システム・サービスを使ってボリューム・シャドウイングの情報を取得することもできます ( 第 5.6 節 参照 )。

F$GETDVI レキシカル関数の形式は次のとおりです。


F$GETDVI (device-name,item) 

F$GETDVI レキシカル関数には,2 つの引数が必要です。物理デバイス名と,取得したい情報のタイプを指定する項目名です。

注意

$GETDVI システム・サービスにファイル・システム関連の項目コードを指定して,シャドウ・セットに関して (FREEBLOCK 情報のような) 意味のあるシステム情報を取得するためには,$GETDVI サービスで仮想ユニット名を指定する必要があります。シャドウ・セット・メンバの 1 つのデバイス名を指定すると, $GETDVI サービスは値 0 を返します。

『OpenVMS DCL ディクショナリ』には,F$GETDVI の引数として使える項目コードの一覧があります。 表 4-4 には, F$GETDVI レキシカル関数の引数として指定できる項目の中で,ボリューム・シャドウイングに特有の項目を示します。この表では各々の項目で返される情報のタイプと返される値のデータ・タイプを示しています。

表 4-4 ボリューム・シャドウイング用の F$GETDVI 項目コード
項目 返される
タイプ
返される情報
SHDW_CATCHUP_COPYING 文字列 デバイスがコピー操作のターゲットとなっているメンバである場合は TRUE。そうでない場合は FALSE。
SHDW_MASTER 文字列 デバイスが仮想ユニットである場合は TRUE。そうでない場合は FALSE。
SHDW_MASTER_NAME 文字列 指定されたデバイスがメンバとして属しているシャドウ・セットに対応する仮想ユニットの名前。指定されたデバイスがメンバでない,またはデバイスが仮想ユニットである場合, F$GETDVI 関数は空文字列 ("") を返す。
SHDW_MEMBER 文字列 デバイスがシャドウ・セット・メンバである場合は TRUE。そうでない場合は FALSE。
SHDW_MERGE_COPYING 文字列 デバイスがシャドウ・セットのマージ・メンバである場合は TRUE。そうでない場合は FALSE。
SHDW_NEXT_MBR_NAME 文字列 シャドウ・セット内の次のメンバのデバイス名。仮想ユニットを指定した場合, F$GETDVI 関数はシャドウ・セットのメンバのデバイス名を返す。シャドウ・セット・メンバの名前をデバイス名と項目引数とともに指定した場合,「次」のメンバの名前を返す。それ以上メンバがいなければ空文字列を返す。

シャドウ・セットのすべてのメンバを調べるには,まず F$GETDVI に仮想ユニットを指定する。それ以降の呼び出しでは,空文字列が返される ( すべてのメンバを取り出し終わる ) まで,前の F$GETDVI で返されたメンバ名を指定する。


デバイスがシャドウ・セットに属しているかどうかを確認するには,コマンド・プロシージャ内で次のような DCL コマンドを記述します。


$  IF F$GETDVI("WRKD$:","SHDW_MEMBER") THEN GOTO SHADOW_MEMBER 

WRKD$( ディスクの論理名 ) がシャドウ・セット・メンバならば, F$GETDVI は文字列 TRUE を返し,プロシージャは SHADOW_MEMBER というラベルの付いたボリュームへ飛びます。

F$GETDVI レキシカル関数についての詳細は,『OpenVMS DCL ディクショナリ』を参照してください。


前へ 次へ 目次 索引