Sun Cluster 2.2 Cluster Volume Manager ガイド

Cluster Volume Manager ユーティリティとデーモン

CVM を使用するために、次のユーティリティやデーモンが作成または変更されています。

vxclust コマンド


注 -

vxclust は移植性のあるユーティリティではありません。vxclust は SSVM と同じか類似した機能を実行しますが、特定のクラスタマネージャを使用するための修正または書き直しが必要です。


vxclust は、ボリュームマネージャクラスタ再構成ユーティリティです。クラスタのメンバーの変更を調整し、クラスタマネージャと CVM との間の通信を提供します。クラスタの再構成が発生すると、クラスタマネージャによって vxclust が呼び出されます。vxclust はボリュームマネージャカーネルと vxconfigd デーモンに、クラスタの再構成が発生したことを通知します。

クラスタの再構成が発生するたびに、クラスタに現在結合中のすべてのノードが vxclust ユーティリティの一連の手順を実行します。クラスタマネージャの機能により、すべてのノードで同じ手順が同時に実行されることが保証されます。1 つの手順がすべてのノードで完了してから、次の手順が開始されます。再構成の各手順で、vxclust は CVM が次に何をすべきかを判定します。vxclust は、CVM に次の動作を指示した後、その結果 (成功、失敗、再試行) を待ち、それをクラスタマネージャに通知します。

ノードが特定のタイムアウト期間内に vxclust の要求に応答しない場合、そのノードはアボートします。次に vxclust は状況に応じて、再構成を再開するか、放棄するかを決定します。再構成の原因がローカルな、訂正不可能なエラーの場合には、vxclust は動作を停止します。他のノードが切り離されたためにノードが処理を完了できなかった場合には、残ったノードはタイムアウトします。この場合、vxclust は他のノードが切り離されることを予測して再構成を要求します。切り離されるノードがなかった場合は、vxclust はローカルノードから切り離されます。

再構成手順が失敗すると、vxclust はクラスタマネージャにエラーを返します。クラスタマネージャはノードをアボートし、クラスタから即時に切り離されるよう決定することができます。共有ディスクに対して進行中の入出力は失敗し、共有ディスクへのアクセスは停止されます。

vxclust は、クラスタの変更を通知されたときに実行すべき動作を決定します。(以前のマスターが故障したために) 新しいマスターノードが必要になった場合は、vxclust はどのノードが新しいマスターになるかを決定します。

vxconfigd コマンド

ボリュームマネージャ構成デーモン vxconfigd は、ボリュームマネージャオブジェクトの構成を管理します。vxconfigd は、vxclust ユーティリティからクラスタ関連の命令を受信します。ノードごとに vxconfigd の個別のコピーが存在し、これらのコピーがネットワーク機能を通じて相互に通信します。ボリュームマネージャユーティリティは、クラスタ内のノードごとに動作中の vxconfigd と通信します。ボリュームマネージャユーティリティは、それ以外のノード上の vxconfigd デーモンとの接続は試みません。クラスタの起動時には、vxclustvxconfigd にクラスタ動作の開始を指示し、そのノードがマスターとスレーブのどちらかを通知します。

ノードがクラスタ動作のため初期化されると、vxclust はカーネルと vxconfigd に対し、そのノードがクラスタに結合しつつあることを通知し、vxconfigd に (クラスタマネージャ構成データベースから) 次の情報を提供します。

vxconfigd による回復

ボリュームマネージャの vxconfigd デーモンは、任意の時点で停止および再開できます。vxconfigd の停止中はボリュームの再構成は行えず、vxconfigd が再開するまで他のノードはクラスタに結合できません。クラスタでは、スレーブ上の vxconfigd デーモンは常にマスター上の vxconfigd デーモンに接続されています。したがって、クラスタ編成されたノードで vxconfigd デーモンを停止することは推奨できません。

vxconfigd が何らかの理由で停止された場合、どのノードでデーモンが停止されたかに応じて、以下のように異なる動作が実行されます。

vxdg コマンド

vxdg ユーティリティは、ボリュームマネージャディスクグループを管理します。vxdg を使用することにより、ディスクグループをクラスタ共有可能なものとして指定できます。vxdg-s オプションを指定すると、ディスクグループを「共有済み」として初期化またはインポートすることができます。

クラスタを設定するためにクラスタソフトウェアを実行中のときは、次のコマンドを使用して共有ディスクグループを作成します。


vxdg -s init diskgroup [medianame=]accessname

ここで diskgroup はディスクグループ名です。medianame はディスクに対して選択した管理名です。accessname はディスクアクセス名 (またはデバイス名) です。

ディスクグループを共有済みとしてインポートするには、vxdg -s import を使用します。クラスタソフトウェアを実行する前にディスクグループが設定されていた場合は、次のコマンドを使用して、そのディスクグループをクラスタ構成にインポートできます。


vxdg -s import diskgroup

ここで diskgroup はディスクグループ名または ID です。後でクラスタを再起動するときに、このディスクグループは自動的に共有済みとしてインポートされます。このコマンドを呼び出す前に、(vxdg deport diskgroup を使用して) ディスクグループのデポートが必要な場合があります。

ディスクグループを共有から個人用に切り替えるには、vxdg deport を使用してディスクグループをデポートし、次に vxdg import diskgroup を使用してインポートします。


注 -

システムはディスクが共有されるかどうかを判断できません。複数のシステムがアクセスする可能性のあるディスクを取り扱う際にデータの整合性を守るには、システム管理者がディスクグループにディスクを追加するとき、正しい指定を行うよう注意する必要があります。物理的に共有されていないディスクを共有ディスクグループに追加しようとした場合、クラスタ内にノードが 1 つしかなく、そのノードでそのディスクがアクセス可能であれば、ボリュームマネージャはこの操作を許容してしまいます。しかし、他のノードはクラスタに結合できなくなります。さらに、同じディスクを 2 つのノードで同時に別のディスクグループに追加しようとすると、予測不可能な結果が生じます。このような理由から、1 つのノードだけですべての構成を取り扱う必要があります。


vxdg には、ディスクグループを強制的にインポートする、またはディスクグループにディスクを強制的に追加するための強制オプション (-f) があります。


注 -

強制オプション (-f) は、予測される結果をシステム管理者が完全に理解したうえで、注意して使用する必要があります。


クラスタを再起動した時点で、CVM は次のいずれかの理由でディスクグループの自動インポートを拒絶する場合があります。

vxdg を使用して、共有ディスクグループを一覧表示することもできます。次のコマンドを実行すると、ディスクグループごとに 1 行ずつ情報が表示されます。


vxdg list

このコマンドによる出力は次のようになります。


NAME         STATE             ID
rootdg       enabled           774215886.1025.teal
group2       enabled,shared    774575420.1170.teal
group1       enabled,shared    774222028.1090.teal 

共有ディスクグループには、フラグ shared が付きます。

次のコマンドを実行すると、共有ディスクグループごとに 1 行ずつ情報が表示されます。


vxdg -s list

このコマンドによる出力は次のようになります。


NAME         STATE            ID
group2       enabled,shared   774575420.1170.teal
group1       enabled,shared   774222028.1090.teal 

次のコマンドを実行すると、特定のディスクグループに関する情報 (共有済みかどうかも含めて) が表示されます。


vxdg list diskgroup

ここで diskgroup はディスクグループ名です。

ディスクグループ group1 のマスターで vxdg list group1 コマンドを実行すると、出力は次のようになります。


Group:     group1
dgid:      774222028.1090.teal
import-id: 32768.1749
flags:     shared
copies:    nconfig=default nlog=default
config:    seqno=0.1976 permlen=1456 free=1448 templen=6 loglen=220
config disk c1t0d0s2 copy 1 len=1456 state=clean online
config disk c1t1d0s2 copy 1 len=1456 state=clean online
log disk c1t0d0s2 copy 1 len=220
log disk c1t1d0s2 copy 1 len=220 

flags:」フィールドが「shared」に設定されている点に注意してください。同じコマンドをスレーブで実行すると、出力は異なります。

vxdisk コマンド

vxdisk ユーティリティは、ボリュームマネージャディスクを管理します。次のように vxdisk を使用して、ディスクがクラスタ共有可能ディスクグループに属するかどうかを調べることができます。


vxdisk list accessname

ここで accessname はディスクアクセス名 (またはデバイス名) です。

このコマンドのデバイス c1t0d0s2 に関する出力は、次のようになります。


Device:    c1t0d0s2
devicetag: c1t0d0
type:      sliced
clusterid:    cvm
disk:      name=disk01 id=774215890.1035.teal
group:     name=group1 id=774222028.1090.teal
flags:     online ready private autoconfig shared imported
pubpaths:  block=/dev/dsk/c1t0d0s4 char=/dev/rdsk/c1t0d0s4
privpaths: block=/dev/dsk/c1t0d0s3 char=/dev/rdsk/c1t0d0s3
version:   2.1
iosize:    min=512 (bytes) max=248 (blocks)
public:    slice=4 offset=0 len=2050272
private:   slice=3 offset=1 len=2015
update:    time=778564769 seqno=0.1614
headers:   0 248
configs:   count=1 len=1456
logs:      count=1 len=220
Defined regions:
 config   priv 000017-000247[000231]: copy=01 offset=000000 enabled
 config   priv 000249-001473[001225]: copy=01 offset=000231 enabled
 log      priv 001474-001693[000220]: copy=01 offset=000000 enabled 

clusterid:」フィールドが「cvm」(クラスタ名) に設定され、「flags:」フィールドに「shared」というエントリが表示される点に注意してください。ノードがクラスタに結合していないときは、「flags:」フィールドには「imported」の代わりに「autoimport」フラグが表示されます。

vxrecover コマンド

vxrecover ユーティリティは、ディスク交換後にプレックスとボリュームを回復します。

ノードがクラスタから切り離されるとき、一部のミラーが不整合な状態のまま残される場合があります。vxrecover ユーティリティは、この状態のすべてのボリュームに対して回復を実行します。-c オプションを指定すると、クラスタ共有可能ディスクグループのすべてのボリュームの回復が行われます。vxclust は必要に応じて vxrecover -c を自動的に呼び出します。


注 -

vxrecover の実行中は、システム性能が低下する場合があります。


vxdctl コマンド

vxdctl ユーティリティは、ボリューム構成デーモン vxconfigd の一部の機能を管理します。-c オプションを使用して、クラスタ情報を表示できます。vxdctl を次のように使用して、vxconfigd が使用可能かどうか、および動作中かどうかを判定できます。


vxdctl -c mode

このコマンドの出力は、状況に応じて次のようになります。


mode: enabled: cluster active - MASTER

mode: enabled: cluster active - SLAVE

mode: enabled: cluster inactive

mode: enabled: cluster active - role not set 

注 -

vxconfigd が使用不可のときは、クラスタ情報は表示されません。


vxstat コマンド

vxstat は、特定のオブジェクトに関する統計情報を返します。CVM 環境では、vxstat はクラスタ内のすべてのノードから統計情報を収集します。この統計情報では、すべてのノードによる指定したオブジェクトの総合的な使用状況が示されます。ローカルオブジェクトを指定した場合は、ローカルでの使用状況が返されます。

vxstat では、呼び出し元がノードのサブセットを任意に指定できます。


vxstat -g diskgroup -n node[,node...]

ここで node は整数です。コンマで区切ったノードのリストを指定すると、そのリストのノード群に関する統計の和が表示されます。

次の例は、ノード 2、ボリューム vol1 に関する統計情報を取得します。


vxstat -g rootdg -n 2 vol1

この場合、次のような出力が生成されます。


OPERATIONS           BLOCKS         AVG TIME(ms)
TYP  NAME          READ     WRITE      READ     WRITE    READ  WRITE
vol  vol1          2421         0    600000         0    99.0    0.0 

vxstat を次のように使用して、クラスタ全体に関する統計情報を取得し表示することもできます。


vxstat -b

すべてのノードに関する統計が加算されます。たとえば、ノード 1 が 100 回、ノード 2 が 200 回の入出力をそれぞれ行なった場合には、vxstat -b300 を返します。