この章では、2 台以上の SPARCstorage Array ユニットでのディスクの初期化の例を説明します。これらの例を参考にして、Sun Cluster システムで Oracle7 または Oracle8 Parallel Server (OPS) ソフトウェアを実行するための共有ボリュームを作成できます。
このチュートリアルでは、次の条件を前提としています。システムの実際の条件がこれと異なっていてもかまいません。
システム構成
2 つの Enterprise サーバーシステム
SPARCstorage Array ユニット 2 台。各ユニットに 1G バイトディスクドライブ 30 基を搭載。
次のサイズのデータベース用領域を設定します。各領域をミラー化するので、各タイプとも 2 つずつとなります。
表 3-1 データベース仕様の例
領域 |
ディスク数 |
---|---|
アカウントテーブル |
2 |
ヒストリテーブル |
2 |
管理およびシステム領域 |
2 |
log_node1 |
2 |
log_node2 |
2 |
ルートディスクグループ rootdg は、システムの初期化時にすでに作成されています。したがって CVM は rootdg を認識します。
現時点では SPARCstorage Array 内のディスクはいずれも CVM の制御下にありません。したがって CVM は現在、これらのディスクを認識しません。
60 基の SPARCstorage Array ディスクは、図 3-1に示すように、コントローラ、ターゲット、ディスク番号 (それぞれ c#、t#、d#) 別に構成されています。
オペレーティング環境は 60 台のディスクをディスク (dsk) 名および raw ディスク (rdsk) 名の両方で認識します。表 3-2に、このチュートリアルで使用するディスク名および raw ディスク名の例を示します。これらの名前にはスライス番号が含まれます (s2 はディスク全体を表す) が、CVM 名にはスライス番号が含まれない点に注意してください。2 台のアレイユニットは両方のシステムで同じ物理位置に接続されているので、ノード 0 とノード 1 では各ディスクに同じ名前が使用されます。
表 3-2 ディスク名
|
ノード 0 |
ノード 0 |
ノード 1 |
ノード 1 |
---|---|---|---|---|
ディスク番号 |
ディスク名 |
raw ディスク名 |
ディスク名 |
raw ディスク名 |
1 |
/dev/dsk/c1t0d0s2 |
/dev/rdsk/c1t0d0s2 |
/dev/dsk/c1t0d0s2 |
/dev/rdsk/c1t0d0s2 |
2 |
/dev/dsk/c1t0d1s2 |
/dev/rdsk/c1t0d1s2 |
/dev/dsk/c1t0d1s2 |
/dev/rdsk/c1t0d1s2 |
3 |
/dev/dsk/c1t0d2s2 |
/dev/rdsk/c1t0d2s2 |
/dev/dsk/c1t0d2s2 |
/dev/rdsk/c1t0d2s2 |
|
... |
... |
... |
... |
60 |
/dev/dsk/c2t5d4s2 |
/dev/rdsk/c2t5d4s2 |
/dev/dsk/c2t5d4s2 |
/dev/rdsk/c2t5d47s2 |
練習 1: CVM の管理対象とするすべてのディスクを初期化します。
vxva ツール (GUI) またはコマンド行インタフェース (CLI) のどちらを使用しても構いません。
CLI を使用する場合、このコマンドの一般形式は次のとおりです。
# /etc/vx/bin/vxdisksetup -i devname |
devname は、コントローラ、ターゲット、ディスク番号で構成されます。たとえば最初のディスクについては、devname は c1t0d0 です。
CVM の制御下に置くディスクごとに、上記のコマンドを繰り返します。
練習 2: Sun Cluster ソフトウェアを起動します。
Sun Cluster ソフトウェアを 1 つのノードだけで実行してください。
# scadmin startcluster node_name cluster_name |
クラスタ名を省略した場合は、デフォルトの名前が使用されます。このコマンドを実行した時点では、クラスタ内に 1 つのノード (マスターノード) が存在することになります。
コマンドの構文は次のとおりです。
# vxdg -s init group_name device_name(s) |
1 つのコマンドに複数のデバイス名を指定できます。たとえば、グループ acct に 2 つのディスク (ミラー化ディスクと組み合わせたセット) を同時に追加できます。
# vxdg -s init acct c1t0d0 c2t0d0 |
上記のディスクは 2 台の SPARCstorage Array ユニットが同じ相対位置にあるため、このように選択すると便利です。
上記のようなディスク位置の組み合わせ以外を選択する場合は、それによってディスクの編成と保守作業が複雑にならないよう注意してください。
結果を検査します。
# vxdisk list |
acct ディスクグループは共有ディスクグループです。「共有」という用語は、他のノードがクラスタに結合した時点で、そのノードが自動的に acct ディスクグループをインポートすることを意味します。両方のノードからボリュームがアクセス可能になります。
コントローラ c2 の 2 番目のディスクのセットは、ミラー化ディスクとして使用されます。
1 つのコマンドにすべてのデバイスを指定する代わりに、共有可能ディスクグループ内の 1 つのデバイスを最初に指定し、次に、そのディスクグループの他のディスクを追加する方法もあります。たとえば、共有可能ディスクグループ acct の 1 台のデバイスを次のように初期化します。
# vxdg -s init acct c1t0d0 |
そして、acct ディスクグループに 2 番目のディスクを追加します。
# vxdg -g acct adddisk c2t0d0 |
練習 4: 続いて history、admin_system、log_node1、log_node2 の各ディスクグループを作成します。表 3-3に、各グループで使用するディスクの総数を示します。分かりやすくするため、(部分的ディスクではなく) ディスク全体を使用してください。
表 3-3 ディスクの総数
グループ名 |
最初のグループ |
ミラー化グループ |
合計 |
---|---|---|---|
acct |
ディスク 1 台 |
ディスク 1 台 |
ディスク 2 台 |
history |
ディスク 1 台 |
ディスク 1 台 |
ディスク 2 台 |
admin_system |
ディスク 1 台 |
ディスク 1 台 |
ディスク 2 台 |
log_node1 |
ディスク 1 台 |
ディスク 1 台 |
ディスク 2 台 |
log_node2 |
ディスク 1 台 |
ディスク 1 台 |
ディスク 2 台 |
システム内のディスクグループを一覧表示するには、vxdg list を使用します。
# vxdg list rootdg enabled acct enabled shared nnnnnnnnn.nnnn.node admin_system enabled shared nnnnnnnnn.nnnn.node history enabled shared nnnnnnnnn.nnnn.node log_node1 enabled shared nnnnnnnnn.nnnn.node log_node2 enabled shared nnnnnnnnn.nnnn.node |
ディスクグループを作成したら、CVM 構成レコードを表示します。
# vxprint |
このコマンドにより、システム内のすべてのボリュームレコードが一覧表示されます。
特定のグループを検証するには、-g オプションを使用します。
# vxprint -g group_name |
練習 5: 各ディスクグループにボリュームを作成します。
# vxassist -g group_name -U gen make volume_name volume_size disk_name |
たとえば、acct ディスクグループの最初のボリューム vol01 を作成するコマンドは次のとおりです。
# vxassist -g acct -U gen make vol01 500m c1t0d0 |
コマンドの構文は次のとおりです。
# vxassist -g group_name mirror volume_name disk_name |
たとえば、vol01 のミラーを作成するコマンドは次のとおりです。
# vxassist -g acct mirror vol01 c2t0d0 |
上記の例では、計算を簡略にするため 500M バイト (500m) のボリュームサイズを使用しています。CVM デバイスの実際のサイズは、ディスクドライブ全体のサイズよりやや小さくなります。CVM はプライベートに使用するため少量の領域 (プライベート領域と呼ばれる) を予約するからです。
練習 7: ディスクグループの各ボリュームについて同じ手順を繰り返します。
ディスクグループごとに 1 つのボリュームを作成します。作成が完了すると、次のミラー化ボリュームが作成されています。
表 3-4 ボリュームの総計
グループ |
ボリューム名 |
合計 |
---|---|---|
acct |
vol01 |
1 |
history |
vol01 |
1 |
admin_system |
vol01 |
1 |
log_node1 |
vol01 |
1 |
log_node2 |
vol01 |
1 |
この例では、5 つのボリュームにすべて同じ名前 vol01 を使用しています。異なるグループに属するボリュームには、同じ名前を使用することができます。
# vxassist -g group_name addlog volume_name disk_name |
たとえば、vol01 のログを作成するコマンドは次のとおりです。
# vxassist -g acct addlog vol01 c2t0d0 |
練習 9: 次のように入力して、別のノードで Sun Cluster ソフトウェアを起動します。
# scadmin startnode |
次のようにクラスタ名を指定することもできます。
# scadmin startnode cluster_name |
Sun Cluster ソフトウェアがクラスタ構成プロセスを完了すると、クラスタ内のどのノードからでも同じボリューム構成が見えるようになります。
ボリュームに関する情報を確認するには、vxprint を使用します。
CVM では非共有ディスクグループを使用することができます。非共有ディスクグループは各システムだけが限定的に使用するものです。このチュートリアルでは説明しません。
クラスタ型 Sun Cluster 環境で推奨されない、何種類かのミラー化構成があります。たとえば、同じディスク内または同じトレー内でのミラー化は、安全ではありません。
次に示す手順は、ディスクグループにディスクを追加する方法の一例です。
CVM ソフトウェアでは、同じ結果を達成するために多くの方法があります。最も使いやすい方法を選んでください。
この時点でクラスタシステムには 5 つのディスクグループがあり、各ディスクグループに 2 つのディスクがあります。
# vxdisk list |
このコマンドで、2 つの空きディスク c1t0d1 と c2t0d1 があることが分かったと仮定します。
ディスクを初期化します。
# /etc/vx/bin/vxdisksetup -i c1t0d1 # /etc/vx/bin/vxdisksetup -i c2t0d1 |
既存のディスクグループにディスクを追加します。
コマンドの構文は次のとおりです。
# vxdg -g disk_group_name adddisk devices ... |
この例の場合、次のコマンドを使用します。
# vxdg -g acct adddisk c1t0d1 c2t0d1 |
新しい拡張済みのディスクグループを表示します。
コマンドの構文は次のとおりです。
# vxprint -g disk_group_name |
# vxprint -g acct TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0 dg acct acct - - - - - - dm c1t0d0 c1t0d0s2 - 2050272 - - - - dm c1t0d1 c1t0d1s2 - 2050272 - - - - dm c2t0d0 c2t0d0s2 - 2050272 - - - - dm c2t0d1 c2t0d1s2 - 2050272 - - - - v vol01 gen ENABLED 1024000 - ACTIVE - - pl vol01-01 vol01 ENABLED 1024128 - ACTIVE - - sd c1t0d0-01 vol01-01 ENABLED 1024128 0 - - - pl vol01-02 vol01 ENABLED 1024128 - ACTIVE - - sd c2t0d0-01 vol01-02 ENABLED 1024128 0 - - - |
ミラー化ボリュームを作成します。
# vxassist make vol_name length disk_name # vxassist mirror vol_name disk_name |
# vxassist make newvol 100m c1t0d1 # vxassist mirror newvol c2t0d1 |
ディスクをディスクグループ間で移動する場合は、ディスクグループからディスクを削除し、他のディスクグループにそのディスクを追加します。
たとえば、物理ディスク c1t0d1 をディスクグループ acct からグループ log_node1 に移動する手順は次のとおりです。
ディスクが使用中でないことを確認します。
# vxprint -g acct TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0 dg acct acct - - - - - - dm c1t0d0 c1t0d0s2 - 2050272 - - - - dm c1t0d1 c1t0d1s2 - 2050272 - - - - dm c2t0d0 c2t0d0s2 - 2050272 - - - - dm c2t0d1 c2t0d1s2 - 2050272 - - - - v newvol gen ENABLED 204800 - ACTIVE - - pl newvol-01 newvol ENABLED 205632 - ACTIVE - - sd c1t0d1-01 newvol-01 ENABLED 205632 0 - - - pl newvol-02 newvol ENABLED 205632 - ACTIVE - - sd c2t0d1-01 newvol-02 ENABLED 205632 0 - - - v vol01 gen ENABLED 1024000 - ACTIVE - - pl vol01-01 vol01 ENABLED 1024128 - ACTIVE - - sd c1t0d0-01 vol01-01 ENABLED 1024128 0 - - - pl vol01-02 vol01 ENABLED 1024128 - ACTIVE - - sd c2t0d0-01 vol01-02 ENABLED 1024128 0 - - - |
ボリュームを削除して c1t0d1 ディスクを解放します。
# vxedit -g acct -fr rm newvol |
-f オプションを指定すると、強制的に操作が実行されます。-r オプションを指定すると、再帰的に操作が実行されます。
acct ディスクグループから c1t0d1 ディスクを削除します。
# vxdg -g acct rmdisk c1t0d1 |
log_node1 ディスクグループに c1t0d1 ディスクを追加します。
# vxdg -g log_node1 adddisk c1t0d1 |
この手順では、ディスク上の構成情報やデータは保存されません。
c1t0d1 ディスクの削除後の acct ディスクグループは、次のとおりです。
# vxprint -g acct TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0 dg acct acct - - - - - - dm c1t0d0 c1t0d0s2 - 2050272 - - - - dm c2t0d0 c2t0d0s2 - 2050272 - - - - dm c2t0d1 c2t0d1s2 - 2050272 - - - - v vol01 gen ENABLED 1024000 - ACTIVE - - pl vol01-01 vol01 ENABLED 1024128 - ACTIVE - - sd c1t0d0-01 vol01-01 ENABLED 1024128 0 - - - pl vol01-02 vol01 ENABLED 1024128 - ACTIVE - - sd c2t0d0-01 vol01-02 ENABLED 1024128 0 - - - |
c1t0d1 ディスクの追加後の log_node1 ディスクグループは、次のとおりです。
# vxprint -g log_node1 TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0 dg log_node1 log_node1 - - - - - - dm c1t0d1 c1t0d1s2 - 2050272 - - - - dm c1t3d0 c1t3d0s2 - 2050272 - - - - dm c2t3d0 c2t3d0s2 - 2050272 - - - - # |
ボリュームのアクセス権または所有者を変更するには、vxedit コマンドを使用する必要があります。
chmod や chgrp は使用しないでください。chmod や chgrp によって設定されたアクセス権や所有者は、再起動時に自動的に root にリセットされます。
変更前のディレクトリ /dev/vx/rdsk 内のボリューム vol01 と vol02 のアクセス権と所有者は、次のようになっているとします。
# ls -l crw------- 1 root root nnn,nnnnn date time vol01 crw------- 1 root root nnn,nnnnn date time vol02 ... |
vol1 のアクセス権と所有者を変更する例を次に示します。
# vxedit -g group_name set mode=755 user=oracle vol01 |
編集後のアクセス権と所有者の変化に注意してください。
# ls -l crwxr-xr-x 1 oracle root nnn,nnnnn date time vol01 crw------- 1 root root nnn,nnnnn date time vol02 ... |
この節では、定義済みの rootdg があり、完全なカプセル化に変換する必要がある既存の Sun Cluster システムを変換する手順を説明します。
この手順には 2 つの部分があります。最初の部分 (手順 A) では、カプセル化を実行する間、1 つのディスクスライスを使用して一時的に CVM データを収容します。2 番目の部分 (手順 B) では、ディスク全体を使用して一時的に CVM データを収容します。
既存の Sun Cluster ノードで次のいずれかの手順を使用して、起動ディスクをミラー化します。
「手順 A: ディスクスライスの使用」では、起動ディスクグループ用に単純パーティションを使用します。
「手順 B: ディスク全体の使用」では、起動ディスクグループ用にディスク全体を使用します。
これらの手順はどちらも、次の条件を前提としています。
起動ディスクには少なくとも 2 つの空きパーティションがある。
ディスクの先頭または最後には、空き領域として 2 つのシリンダがある。
rootdg は 1 つの単純パーティションから作成されている。
余分のディスクまたはパーティションを一時的な予備領域として使用できる。この領域は、カプセル化の対象となる起動ディスク以外のディスク上にあるものとする。
一時的な記憶領域として 1 つのパーティションしか使用できない場合には、この手順を使用して起動ディスクをカプセル化およびミラー化します。一時的な記憶域としてディスク全体を使用できる場合には、「手順 B: ディスク全体の使用」を参照してください。
起動ディスク (例: c0t0d0)
rootdg は起動ディスクの一部分の単純パーティション (例: c0t0d0s5 は rootdg の単純ディスク)
一時的に使用する 1 つの予備のパーティション (例: c0t3d0s7)
ミラーディスク (例: c0t2d0)
現在のノードで Sun Cluster ソフトウェアを停止します。
# scadmin stopnode |
起動ディスク上に rootdg の単純パーティションが存在する場合は、起動ディスク以外の場所に個別のパーティション (サイズは 2 シリンダ) を探します。起動ディスク上に rootdg の単純パーティションが存在しない場合は、手順 10 へ進んでください。
format コマンドを使用して、新しいパーティションを予約しラベルを付けます。
# format c0t3d0 |
c0t3d0s7 を、サイズが 2 シリンダの新しいパーティションにします。
CVM に対して新しいパーティションを定義します。
# vxdisk -f init c0t3d0s7 |
新しいパーティションを rootdg に追加します。
# vxdg adddisk c0t3d0s7 |
新しい rootdg パーティションを volboot ファイルに追加します。
# vxdctl add disk c0t3d0s7 |
format コマンドを使用して、古いディスクパーティションを解放します。
# format c0t0d0 |
パーティション c0t0d0s5 の領域が解放されます。
rootdg から元のディスクを削除します。
# vxdg rmdisk c0t0d0s5 # vxdisk rm c0t0d0s5 |
volboot ファイル内の rootdg の古いパーティションをクリーンアップします。
# vxdctl rm disk c0t0d0s5 |
vxdiskadm を入力して、起動ディスク (この例では c0t0d0) をカプセル化します。
# vxdiskadm -Select an operation to perform: 2 -Select disk devices to encapsulate: [,all,list,q,?] c0t0d0 -Continue operation? [y,n,q,?] (default: y) y -Which disk group [,list,q,?] (default: rootdg) rootdg -Use a default disk name for the disk? [y,n,q,?] (default: y) n -Continue with operation? [y,n,q,?] (default: y) y -Continue with encapsulation? [y,n,q,?] (default: y) y -Enter disk name for [,q,?] (default: disk01) disk01 -Encapsulate other disks? [y,n,q,?] (default: n) n -Select an operation to perform: q |
各手順を検証してください。
システムを再起動します。
# shutdown -g0 -y -i6 |
システムがもう一度再起動し、プロセスが完了します。
以上で起動ディスクがカプセル化され、CVM によって管理されるようになりました。
カプセル化を検証するには、次の手順に従います。
カプセル化したディスクをミラー化するために、ディスク (例: c0t2d0) とメディア名 (例: mirrorroot) を選択し、次のように入力します。
# /etc/vx/bin/vxdisksetup -i c0t2d0 # /usr/sbin/vxdg adddisk mirrorroot=c0t2d0 |
vxva の rootdg ディスクグループに新しいディスクが表示されます。
mirrorroot でカプセル化された起動ディスクをミラー化します。
# /etc/vx/bin/vxmirror disk01 mirrorroot |
vxmirror コマンドは、カプセル化された起動ディスク内の各ボリュームのミラー化に対応する一連のコマンドを出力します。
vxmirror コマンドが完了したら、vxva の rootdg ディスクグループ内のミラー化ボリュームを探して、プロセスが成功したことを確認します。
以上で起動ディスクのミラーから起動することが可能になりました。
rootdg ディスクグループ内の 2 シリンダの単純ディスクを削除します。
# vxdg rmdisk c0t3d0s7 # vxdisk rm c0t3d0s7 # vxdctl rm disk c0t3d0s7 |
Sun Cluster ソフトウェアを起動します。
# scadmin startnode |
他のシステムもミラー化する場合は、手順 A を繰り返します。
起動ディスクのカプセル化を解除します。
システムまたはボリュームマネージャをアップグレードする場合には、まず起動ディスクのカプセル化を解除する必要があります。/CD_path/CVM/scripts にある upgrade_start スクリプトを使用すると、ボリューム上のファイルシステムが自動的に通常のディスクパーティションに変換されます。システムを再起動して、通常のディスクパーティションへの変換を完了します。
一時的な記憶領域として 1 つのディスク全体を使用できる場合は、次の手順で起動ディスクをカプセル化およびミラー化します。ディスク全体が使用できない場合には、「手順 A: ディスクスライスの使用」を参照してください。
起動ディスク (例: c0t0d0)
rootdg は起動ディスクの一部分の単純パーティション (例: c0t0d0s5 は rootdg の単純ディスク)
一時的に使用する 1 つの予備のディスク (例: c1t0d0)
ミラーディスク (例: c0t2d0)
現在のノードで Sun Cluster ソフトウェアを停止します。
# scadmin stopnode |
予備のディスクを CVM で使用するために初期化します。
# /etc/vx/bin/vxdisksetup -i c1t0d0 |
新しいディスクを rootdg に追加します。
# vxdg adddisk c1t0d0 |
format コマンドを使用して、rootdg の起動ディスクの一部分である古いディスクパーティションを解放します。
# format c0t0d0 |
rootdg から元のディスクを削除します。
# vxdg rmdisk c0t0d0s5 # vxdisk rm c0t0d0s5 |
volboot ファイル内の rootdg の古いパーティションをクリーンアップします。
# vxdctl rm disk c0t0d0s5 |
vxdiskadm コマンドを使用して、起動ディスク (例: c0t0d0) をカプセル化します。
# vxdiskadm -Select an operation to perform: 2 -Select disk devices to encapsulate: [,all,list,q,?] c0t0d0 -Continue operation? [y,n,q,?] (default: y) y -Which disk group [,list,q,?] (default: rootdg) rootdg -Use a default disk name for the disk? [y,n,q,?] (default: y) n -Continue with operation? [y,n,q,?] (default: y) y -Continue with encapsulation? [y,n,q,?] (default: y) y -Enter disk name for [,q,?] (default: disk01) disk01 -Encapsulate other disks? [y,n,q,?] (default: n) n -Select an operation to perform: q |
システムを再起動します。
# shutdown -g0 -y -i6 |
システムがもう一度再起動し、プロセスが完了します。
以上で起動ディスクがカプセル化され、CVM によって管理されるようになりました。
カプセル化を検証するには、次の手順に従います。
カプセル化したディスクをミラー化するため、ディスク (例: c0t2d0) とメディア名 (例: mirrorroot) を選択し、次のように入力します。
# /etc/vx/bin/vxdisksetup -i c0t2d0 # /usr/sbin/vxdg adddisk mirrorroot=c0t2d0 |
vxva の rootdg ディスクグループに新しいディスクが表示されます。
mirrorroot でカプセル化された起動ディスクをミラー化します。
# /etc/vx/bin/vxmirror disk01 mirrorroot |
vxmirror コマンドは、カプセル化された起動ディスク内の各ボリュームのミラー化に対応する一連のコマンドを表示します。
vxmirror コマンドが完了したら、vxva の rootdg ディスクグループ内にミラー化ボリュームを探して、プロセスが成功したことを確認します。
以上で起動ディスクのミラーから起動することが可能になりました。
rootdg ディスクグループから一時的ディスクを削除します。
# vxdg rmdisk c1t0d0 # vxdisk rm c1t0d0 |
Sun Cluster ソフトウェアを起動します。
# scadmin startnode |
vxconfigd コマンドは、他のユーティリティからのボリュームやディスクの構成変更に関する要求を受け付け、それらの変更をカーネルに通知し、ディスクに格納された構成情報を変更します。vxconfigd は、システムの起動時における CVM の初期化も行います。
vxconfigd コマンドは、重大なエラーが発生すると終了する場合があります。vxconfigd はデフォルトではコンソールにエラーを出力しますが、デバッグ用の各種パラメータ付きでログファイルにエラーを記録するように構成することもできます。(詳細についてはマニュアルページを参照。)
デバッグ用パラメータを使用可能にし、メッセージをファイルに記録するためのコマンドの例を示します。
# vxdctl stop # vxconfigd -x 1 -x logfile=filename -x mstimestamp > /dev/null 2>&1 & |
オプションの意味は次のとおりです。
-x 1 は、トレース出力レベルを 1 に設定します。
-x logfile=filename は、指定したファイルにメッセージを記録します。
-x mstimestamp は、vxconfigd によってログファイルに書き込まれるすべてのメッセージに日付、時刻、ミリ秒単位のタイムスタンプを付けます。
定足数コントラーラに障害が発生した場合は、新しい定足数コントローラを選択する必要があります。
新しい定足数コントローラを選択してから、ノードを停止してください。そうしないと、クラスタ全体が停止します。
現在の SPARCstorage Array の Sun Cluster 構成を表示します。
# scconf cluster_name -p |
定足数コントローラのシリアル番号を調べます。最初のコントローラが定足数コントローラです (「Quorum Controller:」の行を検査します)。
両方のノードで新しい定足数コントローラのシリアル番号を選択して (SPARCstorage Array の LCD 表示と照らし合わせて確認する) 定足数コントローラを変更し、次のように入力します。
# scconf cluster_name -q -m host1 host2 ctlr |
両方のノードで変更を行わないと、データベースが破壊される可能性があります。
ctlr 2 の SPARCstorage Array が新しい定足数コントローラになったことを確認します。
# scconf cluster_name -p |
システムを停止せずに SPARCstorage Array ディスクを交換できます。
次の手順は、SPARCstorage Array 100 シリーズ内の不良ディスクを交換するための手順です。着脱式のディスク (RSM) を使用している場合は、『Sun Cluster 2.2 のシステム管理』および該当するハードウェアサービスマニュアルに記載された手順に従ってください。
不良ディスクの入ったトレー内のすべてのボリュームと対応するプレックスを確認します。
物理デバイスアドレス cNtNdN から、コントローラ番号とターゲット番号を確認します。
たとえばデバイスアドレスが c3t2d0 の場合、コントローラ番号は 3、ターゲットは 2 です。
vxdisk list の出力からデバイスを確認します。
ターゲットが 0 または 1 の場合は、cNt0 とcNt1 で始まる物理アドレスを持つすべてのデバイスを確認してください。ターゲットが 2 または 3 の場合は、cNt2 とcNt3 で始まる物理アドレスを持つすべてのデバイスを確認してください。ターゲットが 4 または 5 の場合は、cNt4 とcNt5 で始まる物理アドレスを持つすべてのデバイスを確認してください。
例:
# vxdisk -g diskgroup-q list | egrep c3t2¥|c3t3 | nawk '{print $3}' |
コマンドの出力から、不良ディスクのボリュームメディア名を記録します。ボリュームメディア名は、手順 8で使用されている device_media_name です。
次のコマンドの適切なバージョン (csh、ksh、または Bourne シェル) を使用して、上記のデバイス上のすべてのプレックスを確認します。
PLLIST=`vxprint -ptq -g diskgroup -e '(aslist.sd_dm_name in ("c3t2d0","c3t3d0","c3t3d1")) && (pl_kstate=ENABLED)' | nawk '{print $2}'` |
csh を使用する場合、構文は set PLLIST .... です。ksh を使用する場合、構文は export PLLIST= .... です。Bourne シェルでは、変数を設定した後、コマンド export PLLIST を使用する必要があります。
変数を設定したら、トレー内のすべてのプレックスを切り離します。
# vxplex det ${PLLIST} |
次のコマンドでも、トレー内の各プレックスを切り離せます。
# vxplex -g diskgroup -v volume det plex |
もう一方のミラーが依然として使用可能なので、ボリュームは依然としてアクティブです。
トレー内のディスクを停止します。
# ssaadm stop -t tray controller |
不良ディスクを交換します。
ドライブを起動します。
# ssaadm start -t tray controller |
交換ディスクを初期化します。
# vxdisksetup -i devicename |
現在のディスク構成をもう一度調べます。
クラスタ内の両方のノードで次のコマンドを入力します。
# vxdctl enable # vxdisk -a online |
ディスクグループに新しいディスクを追加します。
# vxdg -g diskgroup -k adddisk device_media_name=device_name |
ボリュームを再同期させます。
# vxrecover -b -o iosize=192K |
電源切断やケーブルまたはコントローラの故障などにより、ディスクドライブが切り離される場合があります。ディスクドライブが切り離されると、プレックスが切り離され、ドライブが使用不可能になります。ミラー化ボリューム内の残りのプレックスは依然として使用可能であり、したがってボリュームは依然としてアクティブです。どちらのノードも停止せずにディスクドライブを再接続し、この状況から回復できます。
次に示す構成例は、5 つのミラー化ボリュームから成り立っています。SPARCstorage Array c1 の電源が切断されたためミラーは破壊されましたが、残りのプレックスがまだ動作しているので、ボリュームは引き続きアクティブです。
# vxprint -g toi TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0 dg toi toi - - - - - - dm c1t5d0 - - - - NODEVICE - - dm c1t5d1 - - - - NODEVICE - - dm c1t5d2 - - - - NODEVICE - - dm c1t5d3 - - - - NODEVICE - - dm c1t5d4 - - - - NODEVICE - - dm c2t5d0 c2t5d0s2 - 2050272 - - - - dm c2t5d1 c2t5d1s2 - 2050272 - - - - dm c2t5d2 c2t5d2s2 - 2050272 - - - - dm c2t5d3 c2t5d3s2 - 2050272 - - - - dm c2t5d4 c2t5d4s2 - 2050272 - - - - v toi-1 gen ENABLED 61440 - ACTIVE - - pl toi-1-01 toi-1 DISABLED 65840 - NODEVICE - - sd c1t5d0-01 toi-1-01 DISABLED 13104 0 NODEVICE - - sd c1t5d1-01 toi-1-01 DISABLED 13104 0 NODEVICE - - sd c1t5d2-01 toi-1-01 DISABLED 13104 0 NODEVICE - - sd c1t5d3-01 toi-1-01 DISABLED 13104 0 NODEVICE - - sd c1t5d4-01 toi-1-01 DISABLED 13104 0 NODEVICE - - pl toi-1-02 toi-1 ENABLED 65840 - ACTIVE - - sd c2t5d0-01 toi-1-02 ENABLED 13104 0 - - - sd c2t5d1-01 toi-1-02 ENABLED 13104 0 - - - sd c2t5d2-01 toi-1-02 ENABLED 13104 0 - - - sd c2t5d3-01 toi-1-02 ENABLED 13104 0 - - - sd c2t5d4-01 toi-1-02 ENABLED 13104 0 - - - v toi-2 gen ENABLED 61440 - ACTIVE - - pl toi-2-01 toi-2 DISABLED 65840 - NODEVICE - - sd c1t5d0-02 toi-2-01 DISABLED 13104 0 NODEVICE - - sd c1t5d1-02 toi-2-01 DISABLED 13104 0 NODEVICE - - sd c1t5d2-02 toi-2-01 DISABLED 13104 0 NODEVICE - - sd c1t5d3-02 toi-2-01 DISABLED 13104 0 NODEVICE - - sd c1t5d4-02 toi-2-01 DISABLED 13104 0 NODEVICE - - pl toi-2-02 toi-2 ENABLED 65840 - ACTIVE - - sd c2t5d0-02 toi-2-02 ENABLED 13104 0 - - - sd c2t5d1-02 toi-2-02 ENABLED 13104 0 - - - sd c2t5d2-02 toi-2-02 ENABLED 13104 0 - - - sd c2t5d3-02 toi-2-02 ENABLED 13104 0 - - - sd c2t5d4-02 toi-2-02 ENABLED 13104 0 - - - v toi-3 gen ENABLED 61440 - ACTIVE - - pl toi-3-01 toi-3 DISABLED 65840 - NODEVICE - - sd c1t5d0-03 toi-3-01 DISABLED 13104 0 NODEVICE - - sd c1t5d1-03 toi-3-01 DISABLED 13104 0 NODEVICE - - sd c1t5d2-03 toi-3-01 DISABLED 13104 0 NODEVICE - - sd c1t5d3-03 toi-3-01 DISABLED 13104 0 NODEVICE - - sd c1t5d4-03 toi-3-01 DISABLED 13104 0 NODEVICE - - pl toi-3-02 toi-3 ENABLED 65840 - ACTIVE - - sd c2t5d0-03 toi-3-02 ENABLED 13104 0 - - - sd c2t5d1-03 toi-3-02 ENABLED 13104 0 - - - sd c2t5d2-03 toi-3-02 ENABLED 13104 0 - - - sd c2t5d3-03 toi-3-02 ENABLED 13104 0 - - - sd c2t5d4-03 toi-3-02 ENABLED 13104 0 - - - v toi-4 gen ENABLED 61440 - ACTIVE - - pl toi-4-01 toi-4 DISABLED 65840 - NODEVICE - - sd c1t5d0-04 toi-4-01 DISABLED 13104 0 NODEVICE - - sd c1t5d1-04 toi-4-01 DISABLED 13104 0 NODEVICE - - sd c1t5d2-04 toi-4-01 DISABLED 13104 0 NODEVICE - - sd c1t5d3-04 toi-4-01 DISABLED 13104 0 NODEVICE - - sd c1t5d4-04 toi-4-01 DISABLED 13104 0 NODEVICE - - pl toi-4-02 toi-4 ENABLED 65840 - ACTIVE - - sd c2t5d0-04 toi-4-02 ENABLED 13104 0 - - - sd c2t5d1-04 toi-4-02 ENABLED 13104 0 - - - sd c2t5d2-04 toi-4-02 ENABLED 13104 0 - - - sd c2t5d3-04 toi-4-02 ENABLED 13104 0 - - - sd c2t5d4-04 toi-4-02 ENABLED 13104 0 - - - v toi-5 gen ENABLED 61440 - ACTIVE - - pl toi-5-01 toi-5 DISABLED 65840 - NODEVICE - - sd c1t5d0-05 toi-5-01 DISABLED 13104 0 NODEVICE - - sd c1t5d1-05 toi-5-01 DISABLED 13104 0 NODEVICE - - sd c1t5d2-05 toi-5-01 DISABLED 13104 0 NODEVICE - - sd c1t5d3-05 toi-5-01 DISABLED 13104 0 NODEVICE - - sd c1t5d4-05 toi-5-01 DISABLED 13104 0 NODEVICE - - pl toi-5-02 toi-5 ENABLED 65840 - ACTIVE - - sd c2t5d0-05 toi-5-02 ENABLED 13104 0 - - - sd c2t5d1-05 toi-5-02 ENABLED 13104 0 - - - sd c2t5d2-05 toi-5-02 ENABLED 13104 0 - - - sd c2t5d3-05 toi-5-02 ENABLED 13104 0 - - - sd c2t5d4-05 toi-5-02 ENABLED 13104 0 - - - # vxdisk list DEVICE TYPE DISK GROUP STATUS c0t0d0s4 simple c0t0d0s4 rootdg online c1t5d0s2 sliced - - online c1t5d1s2 sliced - - online c1t5d2s2 sliced - - online c1t5d3s2 sliced - - online c1t5d4s2 sliced - - online c2t5d0s2 sliced c2t5d0 toi online shared c2t5d1s2 sliced c2t5d1 toi online shared c2t5d2s2 sliced c2t5d2 toi online shared c2t5d3s2 sliced c2t5d3 toi online shared c2t5d4s2 sliced c2t5d4 toi online shared - - c1t5d0 toi failed was:c1t5d0s2 - - c1t5d1 toi failed was:c1t5d1s2 - - c1t5d2 toi failed was:c1t5d2s2 - - c1t5d3 toi failed was:c1t5d3s2 - - c1t5d4 toi failed was:c1t5d4s2 |
切り離されたディスクを再接続するには、次の手順に従います。
問題の原因となった条件を修正します。
ディスクが起動されたことを確認してから次の手順に進んでください。
クラスタ内の両方のノードで次のコマンドを入力します。
場合によっては、ノードにドライブを再認識させる必要があります。
# drvconfig # disks |
クラスタ内の両方のノードで次のコマンドを入力します。
CVM が現在のディスク構成を再検査する必要があります。
# vxdctl enable # vxdisk -a online |
マスターノードから、切り離されたディスクごとに次のコマンドを繰り返し入力します。
物理ディスクとそのディスクの CVM アクセス名を再接続する必要があります。
# vxdg -g disk_group_name -k adddisk medianame=accessname |
medianame および accessname の値は、vxdisk list コマンドの出力の最後から確認できます。
この場合は、次のとおりです。
# vxdg -g toi -k adddisk c1t5d0=c1t5d0s2 # vxdg -g toi -k adddisk c1t5d1=c1t5d1s2 # vxdg -g toi -k adddisk c1t5d2=c1t5d2s2 # vxdg -g toi -k adddisk c1t5d3=c1t5d3s2 # vxdg -g toi -k adddisk c1t5d4=c1t5d4s2 |
マスターノードから、ボリューム回復を開始します。
# vxrecover -svc |
この場合は、次のとおりです。
# vxrecover -svc job 028125 dg toi volume toi-1: reattach plex toi-1-01 job 028125 done status=0 job 028126 dg toi volume toi-2: reattach plex toi-2-01 job 028126 done status=0 job 028127 dg toi volume toi-3: reattach plex toi-3-01 job 028127 done status=0 job 028129 dg toi volume toi-4: reattach plex toi-4-01 job 028129 done status=0 job 028130 dg toi volume toi-5: reattach plex toi-5-01 job 028130 done status=0 |
(省略可能) vxprint -g コマンドを入力して、変更を確認します。
# vxprint -g toi TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0 dg toi toi - - - - - - dm c1t5d0 c1t5d0s2 - 2050272 - - - - dm c1t5d1 c1t5d1s2 - 2050272 - - - - dm c1t5d2 c1t5d2s2 - 2050272 - - - - dm c1t5d3 c1t5d3s2 - 2050272 - - - - dm c1t5d4 c1t5d4s2 - 2050272 - - - - dm c2t5d0 c2t5d0s2 - 2050272 - - - - dm c2t5d1 c2t5d1s2 - 2050272 - - - - dm c2t5d2 c2t5d2s2 - 2050272 - - - - dm c2t5d3 c2t5d3s2 - 2050272 - - - - dm c2t5d4 c2t5d4s2 - 2050272 - - - - v toi-1 gen ENABLED 61440 - ACTIVE - - pl toi-1-01 toi-1 ENABLED 65840 - ACTIVE - - sd c1t5d0-01 toi-1-01 ENABLED 13104 0 - - - sd c1t5d1-01 toi-1-01 ENABLED 13104 0 - - - sd c1t5d2-01 toi-1-01 ENABLED 13104 0 - - - sd c1t5d3-01 toi-1-01 ENABLED 13104 0 - - - sd c1t5d4-01 toi-1-01 ENABLED 13104 0 - - - pl toi-1-02 toi-1 ENABLED 65840 - ACTIVE - - sd c2t5d0-01 toi-1-02 ENABLED 13104 0 - - - sd c2t5d1-01 toi-1-02 ENABLED 13104 0 - - - sd c2t5d2-01 toi-1-02 ENABLED 13104 0 - - - sd c2t5d3-01 toi-1-02 ENABLED 13104 0 - - - sd c2t5d4-01 toi-1-02 ENABLED 13104 0 - - - v toi-2 gen ENABLED 61440 - ACTIVE - - pl toi-2-01 toi-2 ENABLED 65840 - ACTIVE - - sd c1t5d0-02 toi-2-01 ENABLED 13104 0 - - - sd c1t5d1-02 toi-2-01 ENABLED 13104 0 - - - sd c1t5d2-02 toi-2-01 ENABLED 13104 0 - - - sd c1t5d3-02 toi-2-01 ENABLED 13104 0 - - - sd c1t5d4-02 toi-2-01 ENABLED 13104 0 - - - pl toi-2-02 toi-2 ENABLED 65840 - ACTIVE - - sd c2t5d0-02 toi-2-02 ENABLED 13104 0 - - - sd c2t5d1-02 toi-2-02 ENABLED 13104 0 - - - sd c2t5d2-02 toi-2-02 ENABLED 13104 0 - - - sd c2t5d3-02 toi-2-02 ENABLED 13104 0 - - - sd c2t5d4-02 toi-2-02 ENABLED 13104 0 - - - v toi-3 gen ENABLED 61440 - ACTIVE - - pl toi-3-01 toi-3 ENABLED 65840 - ACTIVE - - sd c1t5d0-03 toi-3-01 ENABLED 13104 0 - - - sd c1t5d1-03 toi-3-01 ENABLED 13104 0 - - - sd c1t5d2-03 toi-3-01 ENABLED 13104 0 - - - sd c1t5d3-03 toi-3-01 ENABLED 13104 0 - - - sd c1t5d4-03 toi-3-01 ENABLED 13104 0 - - - pl toi-3-02 toi-3 ENABLED 65840 - ACTIVE - - sd c2t5d0-03 toi-3-02 ENABLED 13104 0 - - - sd c2t5d1-03 toi-3-02 ENABLED 13104 0 - - - sd c2t5d2-03 toi-3-02 ENABLED 13104 0 - - - sd c2t5d3-03 toi-3-02 ENABLED 13104 0 - - - sd c2t5d4-03 toi-3-02 ENABLED 13104 0 - - - v toi-4 gen ENABLED 61440 - ACTIVE - - pl toi-4-01 toi-4 ENABLED 65840 - ACTIVE - - sd c1t5d0-04 toi-4-01 ENABLED 13104 0 - - - sd c1t5d1-04 toi-4-01 ENABLED 13104 0 - - - sd c1t5d2-04 toi-4-01 ENABLED 13104 0 - - - sd c1t5d3-04 toi-4-01 ENABLED 13104 0 - - - sd c1t5d4-04 toi-4-01 ENABLED 13104 0 - - - pl toi-4-02 toi-4 ENABLED 65840 - ACTIVE - - sd c2t5d0-04 toi-4-02 ENABLED 13104 0 - - - sd c2t5d1-04 toi-4-02 ENABLED 13104 0 - - - sd c2t5d2-04 toi-4-02 ENABLED 13104 0 - - - sd c2t5d3-04 toi-4-02 ENABLED 13104 0 - - - sd c2t5d4-04 toi-4-02 ENABLED 13104 0 - - - v toi-5 gen ENABLED 61440 - ACTIVE - - pl toi-5-01 toi-5 ENABLED 65840 - ACTIVE - - sd c1t5d0-05 toi-5-01 ENABLED 13104 0 - - - sd c1t5d1-05 toi-5-01 ENABLED 13104 0 - - - sd c1t5d2-05 toi-5-01 ENABLED 13104 0 - - - sd c1t5d3-05 toi-5-01 ENABLED 13104 0 - - - sd c1t5d4-05 toi-5-01 ENABLED 13104 0 - - - pl toi-5-02 toi-5 ENABLED 65840 - ACTIVE - - sd c2t5d0-05 toi-5-02 ENABLED 13104 0 - - - sd c2t5d1-05 toi-5-02 ENABLED 13104 0 - - - sd c2t5d2-05 toi-5-02 ENABLED 13104 0 - - - sd c2t5d3-05 toi-5-02 ENABLED 13104 0 - - - sd c2t5d4-05 toi-5-02 ENABLED 13104 0 - - - |
Oracle Parallel Server などのアプリケーションを実行するには、ボリュームの読み取り・書き込みアクセス権と所有者を変更しなければならない場合があります。アクセス権または所有者を変更するには、vxedit コマンドを使用します。vxedit によって CVM レコードの必要なフィールドが設定されます。