CVM を使用するために、次のユーティリティやデーモンが作成または変更されています。
vxclust
vxconfigd
vxdg
vxdisk
vxrecover
vxdctl
vxstat
次の各節では、クラスタ環境でのこれらの各ユーティリティの使用法を説明します。これらのユーティリティの詳細については、該当するマニュアルページを参照してください。
ほとんどのボリュームマネージャのコマンドは、スーパーユーザーで実行する必要があります。
vxclust は移植性のあるユーティリティではありません。vxclust は SSVM と同じか類似した機能を実行しますが、特定のクラスタマネージャを使用するための修正または書き直しが必要です。
vxclust は、ボリュームマネージャクラスタ再構成ユーティリティです。クラスタのメンバーの変更を調整し、クラスタマネージャと CVM との間の通信を提供します。クラスタの再構成が発生すると、クラスタマネージャによって vxclust が呼び出されます。vxclust はボリュームマネージャカーネルと vxconfigd デーモンに、クラスタの再構成が発生したことを通知します。
クラスタの再構成が発生するたびに、クラスタに現在結合中のすべてのノードが vxclust ユーティリティの一連の手順を実行します。クラスタマネージャの機能により、すべてのノードで同じ手順が同時に実行されることが保証されます。1 つの手順がすべてのノードで完了してから、次の手順が開始されます。再構成の各手順で、vxclust は CVM が次に何をすべきかを判定します。vxclust は、CVM に次の動作を指示した後、その結果 (成功、失敗、再試行) を待ち、それをクラスタマネージャに通知します。
ノードが特定のタイムアウト期間内に vxclust の要求に応答しない場合、そのノードはアボートします。次に vxclust は状況に応じて、再構成を再開するか、放棄するかを決定します。再構成の原因がローカルな、訂正不可能なエラーの場合には、vxclust は動作を停止します。他のノードが切り離されたためにノードが処理を完了できなかった場合には、残ったノードはタイムアウトします。この場合、vxclust は他のノードが切り離されることを予測して再構成を要求します。切り離されるノードがなかった場合は、vxclust はローカルノードから切り離されます。
再構成手順が失敗すると、vxclust はクラスタマネージャにエラーを返します。クラスタマネージャはノードをアボートし、クラスタから即時に切り離されるよう決定することができます。共有ディスクに対して進行中の入出力は失敗し、共有ディスクへのアクセスは停止されます。
vxclust は、クラスタの変更を通知されたときに実行すべき動作を決定します。(以前のマスターが故障したために) 新しいマスターノードが必要になった場合は、vxclust はどのノードが新しいマスターになるかを決定します。
ボリュームマネージャ構成デーモン vxconfigd は、ボリュームマネージャオブジェクトの構成を管理します。vxconfigd は、vxclust ユーティリティからクラスタ関連の命令を受信します。ノードごとに vxconfigd の個別のコピーが存在し、これらのコピーがネットワーク機能を通じて相互に通信します。ボリュームマネージャユーティリティは、クラスタ内のノードごとに動作中の vxconfigd と通信します。ボリュームマネージャユーティリティは、それ以外のノード上の vxconfigd デーモンとの接続は試みません。クラスタの起動時には、vxclust は vxconfigd にクラスタ動作の開始を指示し、そのノードがマスターとスレーブのどちらかを通知します。
ノードがクラスタ動作のため初期化されると、vxclust はカーネルと vxconfigd に対し、そのノードがクラスタに結合しつつあることを通知し、vxconfigd に (クラスタマネージャ構成データベースから) 次の情報を提供します。
クラスタ ID
ノード ID
マスターノード ID
ノードの役割
各ノード上の vxconfigd のネットワークアドレス
マスターノードでは、vxconfigd は共有構成を設定し (つまり、共有ディスクグループをインポートし)、スレーブが結合できる状態になると vxclust に通知します。
スレーブノードでは、そのスレーブノードがクラスタに結合できる状態になると、vxclust はカーネルと vxconfigd に通知します。スレーブノードがクラスタに結合すると、vxconfigd とボリュームマネージャカーネルはマスター上のそれらのコピーと通信して、共有構成を設定します。
ノードがクラスタから切り離されると、vxclust はカーネルと他のすべてのノード上の vxconfigd に通知します。次にマスターノードは必要なクリーンアップを実行します。マスターノードがクラスタから切り離されるときは、vxclust は新しいマスターノードを選び、カーネルと他のすべてのノード上の vxconfigd にその選択を通知します。
vxconfigd はボリュームの再構成にも関与します。ボリュームの再構成における vxconfigd の役割については、「ボリュームの再構成」を参照してください。
ボリュームマネージャの vxconfigd デーモンは、任意の時点で停止および再開できます。vxconfigd の停止中はボリュームの再構成は行えず、vxconfigd が再開するまで他のノードはクラスタに結合できません。クラスタでは、スレーブ上の vxconfigd デーモンは常にマスター上の vxconfigd デーモンに接続されています。したがって、クラスタ編成されたノードで vxconfigd デーモンを停止することは推奨できません。
vxconfigd が何らかの理由で停止された場合、どのノードでデーモンが停止されたかに応じて、以下のように異なる動作が実行されます。
スレーブで vxconfigd が停止された場合、マスターは何の動作も行いません。スレーブで vxconfigd が再開されると、そのスレーブの vxconfigd はマスターの vxconfigd との再接続と共有構成に関する情報の再取得を試みます。(共有構成のカーネルの表示は影響されず、また共有ディスクへのアクセスも影響されません。) スレーブの vxconfigd がマスターに正常に再結合するまで、共有構成に関する情報は少ししかなく、共有構成を表示または変更しようとする試みは失敗する可能性があります。特に、共有ディスクグループを (vxdg list により) 一覧表示すると、それらのディスクグループは「disabled」と示されます。再結合が正常に終了すると、これらは「enabled」に変化します。
マスターで vxconfigd が停止された場合、スレーブ上の vxconfigd はマスターに定期的に再結合を試みます。この試みは、マスターで vxconfigd が再起動されるまで成功しません。この場合、スレーブの共有構成に関する vxconfigd 情報は消失してはいないので、構成は正確に表示されます。
マスターとスレーブの両方で vxconfigd が停止された場合、両方のノードで vxconfigd が再起動され、それらが再接続されるまで、スレーブでは正確な構成情報が表示されません。
あるノードで vxconfigd が停止されたことを vxclust が検知すると、vxclust は vxconfigd を再起動します。
SSVM と同様、vxconfigd に -r reset オプションを指定すると、vxconfigd が再起動され、すべての状態が初めから作成されます。ノードがクラスタに結合しているときは、このオプションは使用できません (使用するとクラスタ情報が消失するため)。このような状況でこのオプションを使用すると、vxconfigd は起動しません。
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 -s -f import diskgroup |
ディスクグループ内のディスクが接続しているいくつかのノードが、現在クラスタに結合しておらず、そのためディスクグループがそのすべてのディスクにアクセスできない。この場合、強制インポートを実行するとミラーが不整合になる可能性があるので、避けるべきです。
ディスクがディスクグループ内の他のディスクと同じノードに接続していないために、CVM が既存のディスクグループにディスクを追加しない場合は、次のようにディスクを強制的に追加できます。
vxdg -f adddisk -g diskgroup [medianame=]accessname |
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 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 ユーティリティは、この状態のすべてのボリュームに対して回復を実行します。-c オプションを指定すると、クラスタ共有可能ディスクグループのすべてのボリュームの回復が行われます。vxclust は必要に応じて vxrecover -c を自動的に呼び出します。
vxrecover の実行中は、システム性能が低下する場合があります。
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 は、特定のオブジェクトに関する統計情報を返します。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 -b は 300 を返します。