本文に進む 日本−日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫ お問い合わせ
日本HPホーム
HP OpenVMS: Volume Shadowing for OpenVMS 説明書

第6章 シャドウセットの整合性の保証

≫ 

OpenVMSドキュメント・ライブラリ

タイトルページ/目次
まえがき
第1章:Volume Shadowingの紹介
第2章:システムに高度な可用性を構成する
第3章:ボリューム・シャドウイングを使うための準備
第4章:DCLコマンドによるシャドウセットの作成と管理
第5章:システムサービスによるシャドウセットの作成と管理
第6章:シャドウセットの整合性の保証
第7章:ミニコピーによるデータのバックアップ
第8章:ホストベース・ミニマージ
第9章:シャドウ化されたシステムでのシステム管理作業
第10章:ボリュームシャドウイングの性能
付録A:メッセージ
用語集
索引
PDF
OpenVMS ホーム
ここから本文が始まります

ボリューム・シャドウイングは,4 つの基本機能を実行します。 どのディスク入出力サブシステムでも同じですが,最も重要な 2 つの機能は, 読み取り書き込みの要求を満たすことです。残りの 2 つの機能は, コピーとマージであり,これらの機能はシャドウセットの管理に必要です。

コピー操作とマージ操作は,データの高可用性を実現するための基盤です。 ある種の状況のもとでは,Volume Shadowing for OpenVMS は, すべてのシャドウセット・メンバの対応する LBN が同じ情報を持つことを保証するために,コピー操作やマージ操作を行う必要があります。 ボリューム・シャドウイングではこれらの操作は自動的に実行されますが, この章ではこれらの操作の概要を説明します。

コピー操作とマージ操作は,アプリケーションやユーザ・プロセスがアクティブな シャドウセット・メンバに対して読み書きを実行している最中に行われます。 このため,現在のアプリケーションの処理には最小の影響しか与えません。

6.1 シャドウセットの整合性

シャドウセットの存続期間に,あるシャドウセット・メンバと他のシャドウセット・メンバとの関係が,変化することがあります。 シャドウセットは,すべてのメンバが同じデータを持っていると考えられるときは,安定状態だと見なされます。 シャドウセットの構成が変化するのは,以下の理由で避けられません。

  • ディスク・ドライブの修理が必要になるときがある。

  • 新しいディスクを追加して古いディスクを置き換える。

  • システム障害が発生し,シャドウセット内でマージ操作を実行する必要が生ずる。

  • コントローラが故障し,保守が必要になる。

  • バックアップのようなシステム保守作業を実行する必要がある。

たとえば,オペレータがシャドウセットのメンバをディスマウントし, シャドウセットにそのメンバ・ディスクをマウントし直す場合を考えます。 メンバが欠けている間に,シャドウセットの残りのメンバに, 書き込み操作が行われたかもしれません。したがって, シャドウセットにマウントし直すメンバの中の情報は, シャドウセットの残りのメンバとは異なっている可能性があります。 このような場合に,コピー操作 (あるいは,ミニコピー操作) が必要になります。

別の例として,OpenVMS Cluster 構成のいくつかのシステムにシャドウセットが マウントされている状況を考えます。システムの 1 つが障害を起こすと, シャドウセットのメンバのデータは, 障害を起こしたシステムが実行していた未完了の書き込み操作のために, 不一致が発生しているかもしれません。 シャドウイング・ソフトウェアは,マージ操作を実行してこの状況を解消します。

ボリューム・シャドウイングでは,どのような状況でも, コピー操作やマージ操作によって,シャドウセットに書き込まれたデータの整合性が保証されます。 シャドウセットは,いくつかのメンバでコピー操作やマージ操作が行われているときは,遷移状態 であると見なされます。

また,ボリューム・シャドウイングでは, 以下の方法によってもシャドウセットの整合性を維持します。

  • シャドウセット・メンバの不良ブロックを自動的に検出して置き換え, そのブロックを他のシャドウセット・メンバの正しいデータで書き換えることにより,シャドウセット・メンバ上のデータ整合性を維持します。

  • シャドウセットでのメンバの追加や削除をすべてのノードに通知し, シャドウセットのメンバ構成にクラスタ単位で整合性があることを保証します。

ボリューム・シャドウイングでは,シャドウセットの整合性を維持するために,2 つの内部メカニズムを使います。

  • ストレージ制御ブロック (SCB)

    ボリューム・シャドウイングは,シャドウセットのメンバ構成を制御するために, SCB を主なメカニズムとして使います。各々の物理ディスクには, シャドウイング・ソフトウェアが現在のシャドウセットのすべてのメンバの名前を記録している SCB があります。 シャドウセットの構成が変化するたびに, すべてのメンバの SCB はアップデートされます。 この機能によってクラスタ単位でのメンバ構成の同期が単純化しますが, この機能はシャドウセットを再構築する MOUNT の /INCLUDE 修飾子でも使われています。

  • シャドウセット世代番号

    ボリューム・シャドウイングは,シャドウセット・メンバの正当性とステータスを調べるために,シャドウセット世代番号を主なメカニズムとして使います。 シャドウセット世代番号は,シャドウセットの各々のメンバに格納されているカウントアップされる値です。 シャドウセットでメンバ構成の変更 (メンバのマウント,ディスマウント,故障) が発生するたびに, 残っているメンバの世代番号がカウントアップされます。 たとえば,シャドウセットの世代番号が 100 のときに, あるメンバがセットからディスマウントされると,残りのメンバの世代番号は 101 にカウントアップされます。 削除されたメンバの世代番号は,100 のままです。 シャドウセットをマウントすると,シャドウイング・ソフトウェアは, 物理ユニットの SCB に格納されている世代番号を調べ, コピー操作の必要性とコピー方向を判断します。

表 6-1 「ストレージ制御ブロック (SCB) 内の情報」 は,SCB に含まれる情報の一部です。

表 6-1 ストレージ制御ブロック (SCB) 内の情報

SCB 情報

機能

ボリューム・ラベル

ボリュームを一意に識別するための名前です。 1 つのシャドウセットでは, どのメンバも同じボリューム・ラベルを持つ必要があります。

BACKUP リビジョン番号

BACKUP/IMAGE による復旧では, ボリューム上でのデータの位置が再調整されるので,この変化を記録するためにリビジョン番号を設定します。 マウント・ユーティリティ (MOUNT) は, 要求されたシャドウセット・メンバのリビジョン番号を, 現在のメンバまたは別に要求されたシャドウセット・メンバのリビジョン番号と比べます。 リビジョン番号が違っている場合, シャドウイング・ソフトウェアは古いメンバのデータを最新にするために, コピー操作やマージ操作が必要かどうかを判断します。

ボリューム・シャドウイング世代番号

メンバがシャドウセットに加わったときに,ボリューム・シャドウイング世代番号がマークされます。 MOUNT コマンドの /OVERRIDE=SHADOW_MEMBERSHIP 修飾子によって, この世代番号を 0 にすることができます。

マウントとディスマウントのステータス

SCB のマウント・ステータス・フィールドは,そのボリュームがマウントされたときに設定され,ディスマウントされたときに設定解除されるフラグとして使われます。 シャドウセットを書き込み可能でマウントしているノードの数のカウントもあります。 MOUNT コマンドはボリュームをマウントするときにこのフィールドを調べます。 フラグが設定されている場合,このディスク・ボリュームが正しくディスマウントされていないことを意味します。 これはシステム障害の場合に発生します。 正しくディスマウントされていないシャドウセットをマウントするとき, または書き込みカウント・フィールドが正しくない場合, シャドウイング・ソフトウェアは自動的にマージ操作を開始します。

 

ボリューム・シャドウイング・ソフトウェアは,シャドウセットをマウントするコマンドを受け取ると,即座にコピー操作やマージ操作が必要かどうかを判断します。 いずれかが必要な場合,このソフトウェアはデータの不一致を無くすために操作を実行します。 どちらのディスクがコピー操作のターゲットになるか不明の場合は, MOUNT コマンドを使うときに,/CONFIRM または /NOCOPY の修飾子を指定します。 すべてのコピー操作を禁止する場合は,/NOCOPY 修飾子を使います。 シャドウセットを対話型でマウントするときは, /CONFIRM 修飾子を指定して MOUNT がコピー操作のターゲットを表示し, 操作を開始する前に許可を得るようにします。

シャドウセット・メンバを個別にディスマウントする際, ハード・ディスク障害のときと似た状況になります。 仮想ユニット上のファイルがオープンされたままなので,削除された物理ユニットは不正にディスマウントされたとマークされます。

シャドウセットから 1 つのデバイスを削除すると, 残りのシャドウセット・メンバの世代番号がカウントアップされ, 以前のシャドウセット・メンバより新しくなったことがわかるようにされます。 この世代番号によって,メンバをシャドウセットに再びマウントするときに, 正しいコピー操作が行えるようになります。

6.2 コピー操作

コピー操作の目的は,ソース・ディスクのデータをターゲット・ディスクに複製することです。 コピー操作が終われば,両方のディスクの内容は同じになり, ターゲット・ディスクもシャドウセットの完全なメンバになります。 シャドウセットに対する読み取り書き込みのアクセスは, ディスクのコピー操作が行われている間も中断されません。

DCL コマンドの MOUNT は,ディスクが既存のシャドウセットにマウントされる際に, コピー操作を開始します。コピー操作は本質的には単純です。 ソース・ディスクから読み取りが行われ,データがターゲット・ディスクに書き込まれるだけです。 この操作は通常,LBN レンジと呼ばれる複数ブロックの単位で実行されます。 OpenVMS Cluster 環境では, シャドウセットをマウントしているすべてのシステムは, ターゲット・ディスクを認識しており,それをシャドウセットの一部として持っています。 ただし,実際には ただ 1 つの OpenVMS システムだけが, コピー操作を管理しています。

コピー操作には,次の 2 つの複雑な問題があります。

  • コピー操作を実行している際のユーザ入出力要求の処理

  • 現在コピーしている領域での書き込みを, 新しい書き込みデータを失うことなく処理すること

Volume Shadowing for OpenVMS では,オペレーティング・システムのバージョン番号やハードウェア構成に従ってこれらの状況を処理します。 OpenVMS バージョン 5.5–2 より前のソフトウェアを実行しているシステムでは, コピー操作は OpenVMS ノードで 補助なし コピー操作として実行されます (6.2.1 項 参照)。

バージョン 5.5–2 以降では,新しいコピー機能が実装されたコントローラ上に構成されたシャドウセット・メンバへのコピー操作が機能強化されています。 この機能強化によって,コントローラがコピー操作を実行できるようになりました。 この操作は,補助付きコピーと呼ばれます (6.2.2 項 参照)。

OpenVMS バージョン 7.3 で,ホストベースのミニコピー操作が導入されました。 ミニコピーとその実現技術 (書き込みビットマップ) は,OpenVMS Alpha システム上で完全に実装されています。 OpenVMS VAX システムでは,この機能を使用したシャドウセットに書き込みを行うことができます。 ミニコピー操作についての詳細は,第7章 「ミニコピーによるデータのバックアップ (Integrity および Alpha)」を参照してください。

Volume Shadowing for OpenVMS は,同じクラスタで,補助付きシャドウセットと補助なしシャドウセットの両方をサポートします。シャドウセットを作成したり, 既存のシャドウセットにメンバを追加したり,システムをブートするときは, いつでもシャドウイング・ソフトウェアが,変化した構成に含まれるデバイスを調べ, デバイスが補助付きコピーをサポート可能かどうかを判断します。

6.2.1 補助なしコピー操作

補助なしコピー操作は,OpenVMS システムによって実行されます。 ソース・メンバからターゲットへの実際のデータ転送は, ホスト・ノードのメモリを経由して行われます。 補助なしコピー操作は CPU をそれほど使用しませんが,入出力を多用し, コピーを管理しているノードの CPU リソースを少し消費します。 補助なしコピー操作は,インターコネクトの転送能力も消費します。

コピー操作を管理するシステムでは,ユーザとコピー入出力処理が, 利用可能な入出力転送能力を平等に取り合います。 クラスタ内の別のノードでは,ユーザの入出力処理が通常どおりに実行され, 他のすべてのノードとの間でコントローラのリソースを取り合います。 コピー操作はユーザの入出力処理の負荷が増えるにつれ, 時間がかかるようになることに注意してください。

ボリューム・シャドウイング・ソフトウェアは, 補助付きコピー操作機能 (6.2.2 項 参照) を使うことができない場合,補助なしコピー操作を実行します。 補助なしコピー操作になる場合の多くの理由は,ソース・ディスクとターゲット・ディスクが同じコントローラ・サブシステムに接続されていないことです。 補助なしコピー操作では,2 つのメンバを 1 つコマンド行で指定してシャドウセットに追加した場合,2 つのディスクを同時に補助なしコピー操作のターゲットにすることができます。 補助なしコピー操作の対象となるディスクは, クラスタ内のどのコントローラに接続されていても構いません。

コピー操作の際には,ディスク全体を移動する, コピー済み LBN レンジと未コピーの LBN 領域を区切る論理的な垣根が作成されます。 この垣根を コピー・フェンス と呼びます。コピー操作を管理しているノードはコピー・フェンスの正確な位置を認識しており, クラスタ内の別のノードに定期的にコピー・フェンスの位置を通知します。 それにより,コピー操作を実行しているノードがシャットダウンしても, 他のノードが,コピー操作を最初からやり直すのではなく途中から引き継ぐことができます。 コピー操作の際,I/O 要求は次のように処理されます。

  • コピー・フェンスのどちら側でも,読み取り入出力要求は, ソース・シャドウセット・メンバだけからサービスされます。

  • コピー・フェンスの位置とそれより前への書き込み要求は, シャドウセットのすべてのメンバに並列に発行されます。

  • コピー・フェンスより後への書き込み要求は,まずソース・メンバに対して実行され,その後,コピー・ターゲットのメンバに実行されます。

補助なしコピー操作を完了するために必要な入出力処理の時間と量は, ソース・ディスクとターゲット・ディスクのデータがどれだけ似ているかに大きく依存します。 データが類似していないメンバをコピーする場合は,データが類似しているメンバをコピーする場合と比べて, 少なくとも 2.5 倍の時間がかかります。

6.2.2 補助付きコピー操作 (Alpha)

補助付きコピー操作は,ホスト・ノードのメモリを経由するデータ転送は行いません。 実際のデータ転送はコントローラ内で, 直接,ディスク間のデータ転送として行われ, データがホスト・ノードのメモリを通過することはありません。 したがって,補助付きコピー操作では,システムへのインパクト, 入出力転送能力の消費,コピー操作に要する時間が少なくなります。

補助付きコピー操作の利点を得るためには,シャドウセット・メンバは同じコントローラからアクセスできる必要があります。 シャドウイング・ソフトウェアは,DCD (ディスク・コピー・データ) コマンドという特別な MSCP コピー・コマンドを使って, コントローラに特定の LBN レンジをコピーすることを指示することで, コピー操作を制御します。補助付きコピーの場合, コピーのアクティブ・ターゲットになるのは,一時期に 1 つのディスクだけです。

OpenVMS Cluster 構成では,コピー操作を管理しているノードが, LBN レンジごとに,コントローラに MSCP DCD コマンドを発行します。 そうするとコントローラがディスク間コピーを実行するので, インターコネクトの転送能力を消費することはありません。

デフォルトでは,Volume Shadowing for OpenVMS ソフトウェア (OpenVMS バージョン 5.5–2 以降) とコントローラは, ソース・ディスクとターゲット・ディスクが同じ HSC または HSJ のコントローラを通してアクセスできる場合, 自動的に補助付きコピーを有効にします。

以下の場合には,シャドウイングは補助付きコピーを自動的に無効にします。

  • ソース・ディスクとターゲット・ディスクが, 同じコントローラを使ってアクセスできない。

    デュアル・ポート・ディスクの場合,両方のディスクを同じコントローラを通してアクセスできるようにするため,$QIO SET PREFERRED PATH 機能を使います。 優先パスの設定についての詳細は,SYS$EXAMPLES の PREFER プログラムと,『HP OpenVMS I/O User’s Reference Manual』を参照してください。

  • シャドウセットがコピー補助機能をサポートしていないコントローラにマウントされている。

  • シャドウセット・メンバが, コピー補助機能が無効になっている HSC コントローラにマウントされている (HSC コントローラは,補助付きコピーを無効にできる唯一のコントローラです)。

  • 補助付きコピーの数が DCD 接続制限数 (HSC コントローラのみ) に達したため, その後のコピーは補助なしで行われる。

補助付きコピー機能を無効にしたり,再び有効にする方法については, 6.4 項 を参照してください。

6.3 マージ操作

フルマージ操作やミニマージ操作の目的は,シャドウセット・メンバのデータを比較し,すべてのメンバが各論理ブロック (各ブロックは,その論理ブロック番号 [LBN] によって識別されます) に同じデータを持つようにすることです。 フルマージ操作やミニマージ操作は,次のイベントのいずれかが発生したときに開始されます。

  • システム障害によって,書き込みが完了していない可能性がある。

    たとえば,書き込み要求がシャドウセットに対して行われ, すべてのシャドウセット・メンバから完了ステータスが返される前に, システム障害が発生したような状況では,以下の可能性があります。

    • すべてのメンバが新しいデータを持っている。

    • すべてのメンバが古いデータを持っている。

    • いくつかのメンバは新しいデータを持っており, 残りのメンバは古いデータを持っている。

    オリジナルの書き込み要求の処理中に障害が発生したタイミングによって, これらの 3 つのシナリオのいずれかになります。 システムの回復時,Volume Shadowing for OpenVMS は,各シャドウセット・メンバ上の対応する LBN に同じデータ (古いデータまたは新しいデータ) が格納された状態にします。 アプリケーションから見てデータに一貫性があるかどうかを確認するのは,アプリケーションの責任です。 障害が発生した時期によって,ボリュームには最後の書き込み要求のデータが格納されている場合と格納されていない場合があります。 アプリケーションは,このどちらの場合でも適切に機能するように設計されていなければなりません。

  • ドライバの内部待ち行列内に処理待ち書き込み I/O がある状態でシャドウセットがマウント検査に入り,マウント検査がタイムアウトになるまでに障害が直らない場合,タイムアウトが発生したシステムは,マージ移行状態にするためにシャドウセットをマウントしている他のシステムを必要とする。

    たとえば,シャドウセットが 8 つのシステムにマウントされていて,マウント検査がそのうちの 2 つでタイムアウトになった場合,これらの 2 つのシステムは,それぞれの内部待ち行列で書き込み I/O をチェックします。 書き込み I/O が見つかった場合,シャドウセットはマージ移行状態になります。

マージ操作は,シャドウセットをマウントしている OpenVMS システムの 1 つで 管理されます。シャドウセットのメンバは, 同じデータを持っているか確認するために,互いに物理的に比較されます。 これはボリューム全体にわたるブロックごとの比較で行われます。 マージが進むにつれ,内容が異なるブロックはコピー操作によって (古いまたは新しいデータで) 同じ内容にされます。 シャドウイング・ソフトウェアには,どのメンバが新しいデータを持っているかわからないので, 完全なメンバであればどれでもマージ操作の ソース・メンバになります。

フルマージ操作は,非常に時間のかかる処理です。 操作中も,アプリケーションの I/O は続行されますが,速度は遅くなります。

ミニマージ操作では,速度が大幅に速くなります。 揮発性のコントローラ・ストレージに記録されている書き込み操作の情報を使用して,ミニマージは,書き込み操作が行われたと分かっているシャドウセット・エリアだけをマージすることができます。 これにより,フルマージ操作で必要とされるボリューム全体の走査が不要となり,システム I/O リソースの消費を減らすことができます。

シャドウイング・ソフトウェアは, 常に 1 つのメンバを (OpenVMS Cluster にまたがる) マージ操作の論理マスタとして選択します。 データの違いは,マージ・マスタから すべての ほかのメンバへ 情報を伝えることで解消されます。

あるシャドウセットでマージ操作に責任を持つシステムは,LBN レンジの整合を取った後,このシャドウセットの マージ・フェンス をアップデートします。このフェンスはディスク全体にわたって「移動」し, シャドウセットのマージが終わった部分と終わっていない部分を区切ります。

フェンスのマージ済みの側へのアプリケーションからの読み取り入出力要求は, シャドウセットのどのソース・メンバによっても対応が行えます。 フェンスの未マージの側へのアプリケーションからの読み取り入出力要求も, シャドウセットのどのソース・メンバによっても対応が行えますが, データが異なっている (データを比較して検出される) 場合は, 要求したユーザまたはアプリケーションにデータが返される 前に, シャドウセットのすべてのメンバで訂正されます。

このように読み取り要求のときにデータの非整合を動的に訂正する方式によって, マージ操作のどの時点でシャドウセット・メンバが障害を起こしても, データ可用性に影響を与えないようになっています。

Volume Shadowing for OpenVMS は,同じクラスタ内で補助付きマージ操作と補助なしマージ操作の両方をサポートします。 シャドウセットの作成, 既存シャドウセットへのメンバの追加,またはシステムのブートのとき, シャドウイング・ソフトウェアは,変更された構成の各々のデバイスがマージ補助機能をサポートしているかどうかを調べます。

6.3.1 補助なしマージ操作

OpenVMS バージョン 5.5–2 より前のソフトウェアを実行しているシステムでは, マージ操作はシステムによって行われます。 これは,補助なしマージ操作と呼ばれます。

ユーザの入出力要求へ与える影響を最小にするために, ボリューム・シャドウイングでは,ユーザやアプリケーションの入出力要求がマージ操作より優先されるようなメカニズムを採用しています。

シャドウ・サーバ・プロセスはマージ操作をバックグラウンド・プロセスとして実行し,障害が発生した場合のユーザ入出力処理への影響を少なくしています。 このため,ユーザの入出力要求が多い場合は,補助なしマージ操作は完了までの時間が長くなります。 また,マージ操作が完了する前に別のノードで障害が発生すると,進行中のマージは中断され,新しいマージが最初から行われます。

このような遅れがありますが,マージ操作中のデータ可用性と整合性は完全に保たれることに注意してください。 すべてのシャドウセット・メンバは同程度に正しいデータを保持しています。

6.3.2 補助付きマージ操作 (Alpha)

OpenVMS バージョン 5.5–2 から,補助付き マージ機能を備えたコントローラ上に構成されたシャドウセット・メンバでのマージ操作が機能強化されています。 補助付きマージ操作は,ミニマージ とも呼ばれます。 ミニマージ機能は,マージ操作に必要な時間を著しく短縮します。 通常,ミニマージは数分で完了します。 HSC コントローラと HSJ コントローラはミニマージをサポートしています。 ホストベース・ミニマージは,OpenVMS Alpha Version 7.3-2 以降および OpenVMS Integrity Version 8.2 以降でサポートされます。 詳細については 第8章を参照してください。

ミニマージは,コントローラのメモリに記録されている書き込み操作の情報を使うことで,シャドウセットで書き込み動作が実際に行われていた領域だけを,マージします。 これにより,補助なしマージでは必要になる全体の読み取りと比較スキャンが不要になり,システムの入出力リソースの消費が減少します。

コントローラ・ベースの書き込みログには,シャドウセットのどの LBN に (故障したノードからの) 未完了の書き込み入出力要求があるかについて, 正確な情報が記録されています。 補助付きマージ操作を実行するノードは, シャドウセットの中で整合が取れていない可能性のある LBN をマージするために, この書き込みログを使います。1 メンバのシャドウセットでは, コントローラ・ベースの書き込みログは行われません。 1 つの OpenVMS システムでシャドウセットをマウントしているだけなら, コントローラ・ベースの書き込みログは行われません。

注意:

シャドウイング・ソフトウェアはシステム・ディスクでのミニマージを自動的に有効にすることはありません。 これは,クラッシュ・ダンプ・ファイルを非システム・ディスク上に統合する必要があるからです。

DOSD (ダンプを行わないシステム・ディスク) は, OpenVMS VAX と OpenVMS Alpha で,OpenVMS VAX バージョン 6.2 と OpenVMS Alpha バージョン 7.1 からサポートされています。 DOSD が有効になっていると,システム・ディスクでもミニマージが行えます。

ミニマージ操作は,OpenVMS バージョン 5.5–2 以降が稼働しているノードで使えます。ボリューム・シャドウイングは, シャドウセットの物理メンバへのアクセスを行うコントローラがミニマージをサポートしていれば,自動的にミニマージを有効にします。 サポートしているコントローラのリストについては,『『HP Volume Shadowing for OpenVMS Software Product Description (SPD 27.29.xx)』』を参照してください。 ミニマージ操作はシャドウセット・メンバが異なるコントローラに接続されていても行えることに注意してください。 これは,書き込みログのエントリが,コントローラ単位でシャドウセット・メンバごとに管理されているからです。

Volume Shadowing for OpenVMS は, 以下の状況で,自動的にミニマージを無効にします。

  • シャドウセットが,OpenVMS のバージョン 5.5–2 より前のリリースを実行しているクラスタ・ノードにマウントされている。

  • シャドウセット・メンバが,ミニマージをサポートしていないバージョンのファームウェアで動作しているコントローラにマウントされている。

  • シャドウセット・メンバが,性能補助機能が無効になっているコントローラにマウントされている。

  • シャドウセットをマウントしているクラスタ内のノードが, ミニマージを行えないバージョンのボリューム・シャドウイングで動作している。

  • シャドウセットが,スタンドアロン・システムにマウントされている (ミニマージ操作は,スタンドアロン・システムでは使えません)。

  • シャドウセットが,OpenVMS Cluster 内の 1 つのノードにだけ, マウントされている。

以下の遷移状態の場合も,ミニマージ操作が無効になります。

  • ノードで障害が発生したときに,補助なしマージ操作が既に進行中の場合。

    この状況では,シャドウイング・ソフトウェアは補助なしマージ操作を中断してミニマージを行うことはできません。

  • コントローラに十分な書き込みログ・エントリがない場合。

    使用できる書き込みログ・エントリの数は,コントローラの能力によって決まります。 シャドウイング・ソフトウェアは,書き込み入出力情報をうまく管理するために十分なエントリがあるかどうかを,動的に判断します。 使用できる書き込みログ・エントリの数が少なすぎるときは, シャドウイング機能は一時的にそのシャドウセットのログ機能を無効にし, そのノードとクラスタ内のすべてのノードの既存の使用可能なエントリを返します。 一定の時間が経過した後,シャドウイング機能はこのシャドウセットについて書き込みログを再度有効にします。

    コントローラは,各々の書き込み入出力要求に対する書き込みログ・エントリを, エントリがシャドウイング機能によって削除されるか, コントローラが再起動されるまで,保持しています。

    複数ユニットのコントローラは,複数のディスクで書き込みログ・エントリを共有します。 書き込みログ・エントリのプールはシャドウイング・ソフトウェアが管理します。 コントローラが書き込みログ・エントリを使い切った場合, シャドウイング機能はミニマージを無効にし,補助なしマージ操作を実行します。 シャドウセットをディスマウントしないでノードがクラスタから離れた可能性があります。 書き込みログを使い切ることは, 書き込みログを共有しないディスクでは通常起きないことに注意してください。

  • コントローラの書き込みログが以下の理由のいずれかでアクセスできなくなった場合, ミニマージ操作は行えません。

    • コントローラの故障によって書き込みログが失われたか,削除された。

    • 複数のコントローラにデュアル・ポートで接続されているデバイスが, 2 番目のコントローラにフェールオーバした。 この場合,2 番目のコントローラに書き込みログを管理する機能があれば, ミニマージ操作はすぐに有効になります。

6.4 HSC の補助付きコピーとミニマージ操作の制御

この節では,HSC コントローラで補助付きコピーとミニマージの操作を制御する方法を説明します。 HSJ コントローラではこれらの操作を制御することはできません。

HSC コントローラのマージとコピーの性能補助機能を無効にするには, 補助機能を無効にしたい各々の HSC コントローラで,以下の手順を実行します。

  1. [Ctrl/C] を入力し,HSC プロンプトを表示します。

  2. HSC> プロンプトが端末画面に表示されたら,以下のコマンドを入力します。

    HSC> RUN SETSHO
    SETSHO> SET SERVER DISK/NOHOST_BASED_SHADOWING 
    SETSHO-I Your settings require an IMMEDIATE reboot on exit.
    SETSHO> EXIT
    SETSHO-Q Rebooting HSC.  Press RETURN to continue, CTRL/Y to abort: 
    

これらのコマンドを入力し終わると,HSC コントローラは自動的にリブートします。

INIPIO-I Booting...

補助機能を再び有効にするには,HSC コントローラで同様の手順を実行しますが, SET SERVER DISK コマンドには,/HOST_BASED_SHADOWING 修飾子を指定します。

補助機能が有効か無効かを調べるには,HSC コマンドの SHOW ALL を使います。 以下の例は,シャドウイング補助ステータスを示す,SHOW ALL 表示の一部です。

HSC> SHOW ALL

.
.
.
      5-Jun-1997 16:42:51.40 Boot:  21-Feb-1997 13:07:19.47   Up: 2490:26
Version: V860           System ID: %X000011708247     Name: HSJNOT
Front Panel:  Secure                                  HSC Type: HSC90
	.
	.
	.
Disk Server Options:
        Disk Caching: Disabled
        Host Based Shadowing Assists: Enabled
        Variant Protocol: Enabled
        Disk Drive Controller Timeout: 2 seconds
        Maximum Sectors per Track: 74 sectors
        Disk Copy Data connection limit: 4      Active:0
.
.
.

6.5 システムで障害が発生したときのシャドウセットの状態

システム,コントローラ,あるいはディスクに障害が発生した場合, シャドウイング・ソフトウェアは,適切なコピー,マージ, あるいはミニマージの操作を行ってデータ可用性を維持します。 以下の節では,障害が発生したときに実行される一連の動作を説明します。 この動作は,障害の種類と, シャドウセットが安定状態にあったか遷移状態にあったかによって異なります。

安定状態からの遷移

シャドウセットが安定状態のときは,以下の遷移がおきます。

  • 新しいディスクを安定状態のシャドウセットにマウントすると, シャドウイング・ソフトウェアは新しいディスクを完全なシャドウセット・ソース・メンバにするため,コピー操作を実行します。

  • スタンドアロン・システムで障害が発生した (システム・クラッシュ) 場合, 安定状態のシャドウセットでは,シャドウセットの SCB にシャドウセットが不正にディスマウントされたことが記録されます。 システムがリブートされ,シャドウセットがマウントし直されたときには, コピー操作は必要はありませんが,マージ操作は必要なので開始されます。

  • クラスタで障害が発生した場合,シャドウセットはシャドウセットをマウントしている残りのノードでマージされます。

    • 性能補助機能が有効で,コントローラ・ベースの書き込みログが使える場合, シャドウイング・ソフトウェアはミニマージを実行します。

    • 性能補助機能が無効の場合, シャドウイング・ソフトウェアはマージ操作を実行します。

遷移が完了すると,ディスクは同じ情報を持つようになり, シャドウセットは安定状態に戻ります。

コピーおよびミニコピー操作中の遷移

以下のリストは,コピーおよびミニコピー操作が行われているシャドウセットに起きる遷移を説明しています。 特に明記されない限り,遷移は両方のコピー操作に適用されます。

  • コピー操作が既に開始されているシャドウセットに追加ディスクをマウントする場合,シャドウイング・ソフトウェアは最初のコピー操作を完了させ, その後新しくマウントされたディスクに対する別のコピー操作を開始します。

  • スタンドアロン・システムのシャドウセットでコピー操作が実行されているときに, システム障害が発生すると,コピー操作は中断され,シャドウセットはオリジナルのメンバのままになります。 スタンドアロン・システムでは, システムをリブートしてシャドウセットのコピー操作を MOUNT コマンドによって再開しないかぎり,コピー操作は再開されません。

  • シャドウセットがクラスタ内の複数のノードにマウントされていて, コピー操作がおこなわれていた場合に,コピー操作を実行していたノードで仮想ユニットがディスマウントされると,そのシャドウセットをマウントしているクラスタ内の別のノードでコピー操作が自動的に継続されます。

    ミニコピー操作を実行中のシャドウセットで仮想ユニットがディスマウントされた場合には,ミニコピーは継続されません。 代わりに,ミニコピーが停止したポイントからフルコピーが継続され, 残りのすべてのブロックがコピーされます。

  • シャドウセットがクラスタ内の複数のノードにマウントされていて, コピー操作がおこなわれていた場合に,コピー操作を実行していたノードで障害が発生すると,そのシャドウセットをマウントしているクラスタ内の別のノードでコピー操作が自動的に継続されます。

シャドウセットのコピー操作の最中にノード障害が発生すると, マージの動作は,シャドウイング性能補助機能が有効か無効かで異なります。

  • ミニマージが有効になっていて実行できる場合, シャドウイング・ソフトウェアはコピー操作を中断してミニマージを実行し, その後コピー操作を再開します。

  • ミニマージが有効になっていない場合, シャドウイング・ソフトウェアはセットにマージ操作が必要であることをマークし, コピー操作を完了させた後にマージ操作を開始します。

ミニマージ操作中の遷移

シャドウセットがミニマージの操作中だった場合,以下の遷移がおきます。

  • ミニマージ操作の最中に新しいメンバがシャドウセットにマウントされると, ミニマージを完了してから,コピー操作を開始します。

  • 実行中のミニマージが完了する前に別のシステム障害が発生すると, シャドウイング性能補助機能が有効かどうかと, コントローラ・ベースの書き込みログが使えるかどうかによって, 動作が異なります。

    • 性能補助機能が有効で,最後のノード障害に関するコントローラ・ベースの書き込みログが使える場合,シャドウイング・ソフトウェアはミニマージを最初から再開し,障害を起こしたノードから取得したエントリに基づいて書き込みログ・ファイルに新しい LBN を追加します。

    • 性能補助機能が無効になっている場合,シャドウイング・ソフトウェアはマージ操作に切り替えます。コントローラが書き込みログを使い切るか, 書き込みログ機能を持ったコントローラから,持っていないコントローラへのフェールオーバが行われた場合,性能補助機能は無効になります。

マージ操作中の遷移

以下のリストでは,性能補助機能が使えない場合に, マージ操作を実行しているシャドウセットにおきる遷移を説明しています。

  • マージ操作を実行しているシャドウセットに新しいディスクを追加すると, シャドウイング・ソフトウェアはマージ操作を中断してコピー操作を実行します。 マージ操作はコピー操作が完了してから再開されます。

  • シャドウセットがマージ操作を実行しているときにノード障害が発生すると, シャドウイング・ソフトウェアは現在のマージ操作を終了し, 新しいマージ操作を開始します。

6.6 コピー操作とマージの操作の例

例 6-1 「新しいシャドウセットを作成する際のコピー操作」 は, シャドウセットのメンバではなかった 2 つのディスク・ボリュームをマウントしてシャドウセットを作成したときに,何が起きるかを示しています。 いずれのディスク・ボリュームもシャドウセットに属していなかったので, マウント・ユーティリティ (MOUNT) は,MOUNT コマンドに指定された最初のディスクがソース・メンバであると見なします。 マウント・ユーティリティがディスクのボリューム・ラベルをチェックしたとき, それらのディスクが互いに異なっていることを検出し, このユーティリティは自動的にコピー操作を実行します。

この例で,DSA0 は仮想ユニット名,$1$DUA8 と $1$DUA89 はディスク・ボリューム名,そして SHADOWDISK はボリューム・ラベルです。

例 6-1 新しいシャドウセットを作成する際のコピー操作

$ MOUNT DSA0: /SHADOW=($1$DUA8:,$1$DUA89:) SHADOWDISK
%MOUNT-I-MOUNTED, SHADOWDISK    mounted on _DSA0: 
%MOUNT-I-SHDWMEMSUCC, _$1$DUA8: (FUSS) is now a valid member
                      of the shadow set
%MOUNT-I-SHDWMEMCOPY, _$1$DUA89: (FUSS) added to the shadow
                      set with a copy operation

$ SHOW DEVICE DSA0:

Device                  Device           Error    Volume         Free  Trans Mnt
 Name                   Status           Count     Label        Blocks Count Cnt
DSA0:                   Mounted              0  SHADOWDISK      890937     1   1
$1$DUA8:        (FUSS)  ShadowSetMember      0  (member of DSA0:) 

$1$DUA89:       (FUSS)  ShadowCopying        0  (copy trgt DSA0:  1% copied) 

例 6-1 「新しいシャドウセットを作成する際のコピー操作」 の SHOW DEVICE の表示は, コピー操作中 (遷移状態) のシャドウセットを示しています。 $1$DUA8 と $1$DUA89 の SCB 情報は,これらのデバイスがシャドウセットに属していなかったことを示しているので,シャドウイング・ソフトウェアはコマンド行に指定された最初のデバイス ($1$DUA8) をコピー操作のソースとして使います。 デバイス・ステータスの「ShadowSetMember」は,$1$DUA8 デバイスがソース・シャドウセット・メンバであることを示し,「ShadowCopying」は物理デバイス $11$DUA89 がコピー操作のターゲットであることを示しています。

新しいメンバを既存のシャドウセットにマウントするときに,その追加するデバイスが以前は同じシャドウセットのメンバであった場合を考えます。 この場合は,新しいメンバのボリューム・ラベルは, 現在のシャドウセット・メンバのボリューム・ラベルに一致していますが, 新しいメンバの MOUNT 世代番号が,現在のメンバの世代番号に比べると, 古くなっています。したがって,マウント・ユーティリティはこのメンバに対し, 自動的にコピー操作を実行します。

例 6-2 「既存のシャドウセットへメンバを追加する際のコピー操作」 は MOUNT コマンドの形式と, DSA9999 仮想ユニットで表わされるシャドウセットへ $3$DIA12 デバイスを追加するときに返される MOUNT ステータス・メッセージを示しています。 MOUNT コマンド行では現在シャドウセットにあるメンバ・ユニットをリストする必要がないことに注意してください。

例 6-2 既存のシャドウセットへメンバを追加する際のコピー操作

$ MOUNT /SYSTEM DSA9999: /SHADOW=$3$DIA12: AXP_SYS_071
%MOUNT-I-MOUNTED, AXP_SYS_071 mounted on _DSA9999: 
%MOUNT-I-SHDWMEMCOPY, _$3$DIA12: (SHAD03) added to the shadow
                      set with a copy operation

$ SHOW DEVICE DSA9999:

Device                  Device           Error    Volume         Free  Trans Mnt
 Name                   Status           Count     Label        Blocks Count Cnt
DSA9999:                Mounted              0  AXP_SYS_071     70610     1   1
$3$DIA7:      (BGFUSS)  ShadowSetMember      0  (member of DSA9999:) 
$3$DIA5:      (SHAD03)  ShadowSetMember      0  (member of DSA9999:) 

$3$DIA12:     (SHAD03)  ShadowCopying        0  (copy trgt DSA9999:  0% copied) 

例 6-3 「シャドウセットの再構築でコピー操作を行わない場合」 は,あるノードで 3 メンバのシャドウセットを解除し, その後すぐに別のノードにマウントし直すときに,何が起きるかを示しています。 マウント・ユーティリティが各々のメンバのボリューム情報を調べると, ボリューム情報がシャドウセット内で統一されていることがわかります。 したがって,シャドウセットをマウントする際に,コピー操作は不要です。

例 6-3 「シャドウセットの再構築でコピー操作を行わない場合」 では,DSA10 が仮想ユニットで,$3$DUA10,$3$DUA11, $3$DUA12 がメンバ・ボリュームです。例の最初の部分には, SHOW DEVICE コマンドの出力が表示されていますが, これはシャドウセットがマウントされ,安定状態にあることを示しています。 その後,ユーザは,DSA10 シャドウセットをディスマウントし, すぐにマウントし直しています。

例 6-3 シャドウセットの再構築でコピー操作を行わない場合

$ SHOW DEVICE D

Device                  Device           Error    Volume         Free  Trans Mnt
 Name                   Status           Count     Label        Blocks Count Cnt
DSA10:                 Mounted              0  VAX_SYS_071      292971     1   1
$3$DUA10:    (MYNODE)  ShadowSetMember      0  (member of DSA10:) 
$3$DUA11:    (MYNODE)  ShadowSetMember      0  (member of DSA10:) 
$3$DUA12:    (MYNODE)  ShadowSetMember      0  (member of DSA10:) 

$ DISMOUNT /NOUNLOAD DSA10:
%%%%%%%%%%%  OPCOM  24-MAR-1997 20:26:41.40  %%%%%%%%%%%
$3$DUA10: (MYNODE) has been removed from shadow set.
%%%%%%%%%%%  OPCOM  24-MAR-1997 20:26:41.69  %%%%%%%%%%%
$3$DUA11: (MYNODE) has been removed from shadow set.
%%%%%%%%%%%  OPCOM  24-MAR-1997 20:26:41.69  %%%%%%%%%%%
$3$DUA12: (MYNODE) has been removed from shadow set.
%%%%%%%%%%%  OPCOM  24-MAR-1997 20:26:41.69  %%%%%%%%%%%

$ MOUNT /SYSTEM DSA10: /SHADOW=($3$DUA10:, $3$DUA11:, $3$DUA12:) VAX_SYS_071
%MOUNT-I-MOUNTED, VAX_SYS_071 mounted on _DSA10: 
%MOUNT-I-SHDWMEMSUCC, _$3$DUA10: (MYNODE) is now a valid member of 
                      the shadow set 
%MOUNT-I-SHDWMEMSUCC, _$3$DUA11: (MYNODE) is now a valid member of
                      the shadow set 
%MOUNT-I-SHDWMEMSUCC, _$3$DUA12: (MYNODE) is now a valid member of 
                      the shadow set 
$  

例 6-4 「シャドウセットの再構築の際のマージ操作」 は, マージ操作の際の SHOW DEVICE コマンドの出力を示しています。

システム障害が発生すると,ボリューム情報は各々のシャドウセット・メンバが正常にディスマウントされなかったことを示す状態になります。 ノードをリブートした後で再び MOUNT コマンドを発行すると, シャドウイング・ソフトウェアはそのシャドウセットで自動的にマージ操作を実行します。

例 6-4 シャドウセットの再構築の際のマージ操作

$ SHOW DEVICE DSA42:
Device                  Device           Error    Volume         Free  Trans Mnt
 Name                   Status           Count     Label        Blocks Count Cnt
DSA42:                  Mounted              0    ATHRUZ        565997     1   1

$4$DUA2:     (MYNODE)   ShadowMergeMbr       0  (merging DSA42: 0% merged) 
$4$DUA42:    (YRNODE)   ShadowMergeMbr       0  (merging DSA42: 0% merged) 

プライバシー 本サイト利用時の合意事項
© 2011 Hewlett-Packard Development Company, L.P.