SPARCstorage Array の 1 つが停電すると、I/O オペレーションはボリューム管理ソフトウェアによって検出されるエラーを生成します。これらのエラーは、そのディスクに対して I/O トランザクションが行われるまでは報告されません。影響を受けたデバイスにホットスペアが設定されている場合は、ホットスペアアクティビティを開始できます。
これらのイベントについては、構成の監視が必要です。構成の監視については、第 2 章「Sun Cluster の管理ツール」を参照してください。
次に、Solstice DiskSuite 構成で SPARCstorage Array に電力損失が発生した場合の回復手順の概略を示します。
エラーが発生した複製を特定する
エラーが発生した複製を稼動状態にする
エラーが発生したデバイスを特定する
エラーが発生したデバイスを稼動状態にする
ディスクの同期をとり直す
次に、Solstice DiskSuite 構成で SPARCstorage Array に電力損失が発生した場合の詳しい回復手順を示します。
電力が戻った時点で、metadb(1M) コマンドを実行してエラーが発生した複製を特定します。
# metadb -s diskset |
複製を稼動状態にします。
停電後、影響を受けた SPARCstorage Array すべてのメタデバイス状態データベースの複製がエラー状態になります。メタデバイス状態データベースの複製は自動回復しないため、SPARCstorage Array がサービスに戻った直後に回復させるのが最も安全です。回復が遅れると障害がさらに発生し、複製のほとんどがサービス不能になり、カーネルの障害を引き起こす場合があります。これは、Solstice DiskSuite 構成で使用できる複製が少なすぎる場合によく起きる現象です。
エラーが発生したこれらの複製は次のテイクオーバー (haswitch(1M) または reboot(1M)) で修復されますが、まずこれらを削除して追加し直すことにより手動で稼動状態にするのが最善の解決策です。
各スライスで削除した複製と同じ数の複製を追加してください。複製は、metadb(1M) コマンドを 1 回実行することでまとめて削除できます。1 つのスライスに複製のコピーを複数格納する必要がある場合は、-c フラグを指定した metadb(1M) を 1 度呼び出し、まとめて追加します。
metstat(1M) コマンドを実行して、エラーが発生したメタデバイスを特定します。
# metastat -s diskset |
metareplace(1M) コマンドを使用して、エラーが発生したメタデバイスを稼動状態に戻します。これにより、ディスクの同期がとり直されます。
# metareplace -s diskset -e mirror component |
-e オプションは、コンポーネント (スライス) を Available 状態に変え、同期を取り直します。
ホットスペアに置き換えられているコンポーネントは、metareplace(1M) コマンドを使用して最後に交換してください。ホットスペアを最初に交換すると、ホットスペアが使用できる状態になったとたんに、エラーが発生したほかのサブミラーが交換される可能性があります。
一度に同期を取り直すことができるのは、サブミラー (メタデバイス) の 1 つのコンポーネントだけです。サブミラーのすべてのコンポーネントが停電の影響を受けた場合は、各コンポーネントを個々に交換する必要があります。1.05G バイトディスクの同期をとり直すには約 10 分かかります。
停電で複数のディスクセットが影響を受けた場合は、各ディスクセットの影響を受けたサブミラーの同期を同時にとり直すことができます。各ホストに個別にログインし、metareplace(1M) コマンドを各ホストで実行してホストのディスクセットを回復させてください。
サブミラーの数とサブミラー内のコンポーネントの数によっては、再同期に相当な時間がかかる場合があります。たとえば、コンポーネントが 5 つしかない管理が容易なサブミラーは、50 分ほどで完了する場合がありますが、1.05G バイトのドライブが 30 個あるようなサブミラーの場合、完了までに約 5 時間かかる可能性があります。
停電が起きると、ディスクドライブが切り離されると同時に、プレックスが切り離されて使用できなくなります。ミラー化されていると、ボリューム内のほかのプレックスはそのまま使用できるため、ボリュームはアクティブに保たれます。クラスタ内のノードを停止せずにディスクドライブを再接続してこの状況を回復させることができます。
次に、VxVM 構成で SPARCstorage Array を電力損失から回復させる手順の概略を示します。
vxprint と vxdisk コマンドを使用して、エラーが発生したプレックスを確認する
電力損失の原因となった障害を修復する
drvconfig と disks コマンドを実行して、/devices と /dev エントリを作成する
現在のディスク構成を走査する
一時的な障害が発生したディスクを再接続する
障害がほかにないことを確認する
(省略可能) 共有ディスクグループでは、停電したディスクごとに vxdg コマンドを実行する
ボリュームの回復を開始する
次に、VxVM 構成で SPARCstorage Array を電力損失から回復させる詳しい手順を示します。
vxprint コマンドを実行して、エラーが発生したプレックスを表示します。
必要に応じて、-g diskgroup オプションを使用してディスクグループを指定してください。
vxdisk コマンドを実行して、エラーが発生したディスクを確認します。
# vxdisk list DEVICE TYPE DISK GROUP STATUS .. - - c1t5d0 toi failed was:c1t5d0s2 ... |
障害が発生したすべてのディスクに電力が戻るように、障害の原因を修復します。
修復を行う前に、ディスクが起動していることを確認してください。
クラスタ内のすべてのノードで、次のコマンドを入力します。
場合によっては、ノード別にドライブを確認し直す必要があります。
# drvconfig # disks |
クラスタ内のすべてのノードで、次のコマンドを入力します。
VxVM によって、現在のディスク構成の走査が再度行われます。
# vxdctl enable # vxdisk -a online |
クラスタ内のすべてのノードで、次のコマンドを入力します。
VxVM クラスタ機能 (Oracle Parallel Server で使用される) を使用している場合は、このコマンドを最初にマスターノードで実行してから、各スレーブノードで実行してください。
このコマンドにより、一時的な障害が発生していたディスクが接続し直されます。
# vxreattach |
vxdisk コマンドの出力を検証し、ほかにエラーがないかどうかを確認します。
# vxdisk list |
まだエラーがある場合は、手順 6 の説明に従って vxreattach コマンドを再実行します。
(VxVM のみ) 共有ディスクグループが存在し、メディアがマスターノードから切り離された場合は、切り離されたディスクごとに次のコマンドを繰り返します。
このコマンドにより、物理ディスクとそのディスクのボリュームマネージャのアクセス名が再結合されます。
# 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 |
ディスクの再接続には、vxdiskadm コマンドまたは GUI も使用できます。
ノード、または共有ディスクグループのマスターノードから、ボリュームの回復を開始します。
# vxrecover -bv [-g diskgroup] |
(省略可能) vxprint -g コマンドを実行して、変更を表示します。