Sun StorEdge A5000 の 1 台が停電すると、入出力オペレーションはボリューム管理ソフトウェアによって検出されるエラーを生成します。これらのエラーは、そのディスクに対して入出力トランザクションが行われるまでは報告されません。
これらのイベントについては、第 2 章「Sun Cluster の管理ツール」で説明しているコマンドを使用して構成を監視する必要があります。
次に、Solstice DiskSuite 環境でディスク格納装置に電力損失が発生した場合の回復手順の概略を示します。
エラーが発生した複製を確認 (特定) する
エラーが発生した複製を稼動状態に戻す
エラーが発生したデバイスを確認する
エラーが発生したデバイスを稼動状態に戻す
ディスクの同期をとり直す
次に、Solstice DiskSuite 環境でディスク格納装置に電力損失が発生した場合の詳しい回復手順を示します。
電力が戻った時点で、metadb(1M) コマンドを実行してエラーが発生した複製を確認します。
# metadb -s diskset |
複製を稼動状態に戻します。
停電後、影響を受けたディスク格納装置上のすべてのメタデバイス状態データベース複製がエラー状態になります。メタデバイス状態データベースの複製は自動回復しないため、ディスク格納装置が稼働状態に戻った直後に回復させるのが最も安全です。回復が遅れると障害がさらに発生し、複製のほとんどが動作不能になり、カーネルパニックを引き起こす場合があります。これは、Solstice DiskSuite 構成で使用できる複製が少なすぎる場合によく起きる現象です。
エラーが発生したこれらの複製は次のテイクオーバー (haswitch(1M) または reboot(1M)) で修復されますが、まずこれらを削除して追加し直すことにより手動で稼働状態に戻すこともできます。
各スライスで削除した複製と同じ数の複製を追加し直すように注意してください。複製は、metadb(1M) コマンドを一度発行してまとめて削除できます。1 つのスライスに複製のコピーを複数格納する必要がある場合は、-c フラグを指定した metadb(1M) を 1 度呼び出し、まとめて追加します。
metastat(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 構成でディスク格納装置を電力損失から回復させる手順の概略を示します。
vxprint と vxdisk コマンドを使用して、エラーが発生したプレックスを確認する
電力損失を引き起こした障害を修復する
drvconfig と disks コマンドを実行して、/devices と /dev エントリを作成する
現在のディスク構成を検査する
一時的な障害が発生したディスクを再接続する
障害がほかにないことを確認する
(省略可能) 共有ディスクグループでは、停電したディスクごとに vxdg コマンドを実行する
ボリューム回復を開始する
次に、VxVM 構成でディスク格納装置を電力損失から回復させる詳しい手順を示します。
vxprint コマンドを実行して、エラーが発生したプレックスを表示します。
必要に応じて、-g diskgroup オプションを使用してディスクグループを指定してください。
vxdisk コマンドを実行して、エラーが発生したディスクを確認します。
# vxdisk list DEVICE TYPE DISK GROUP STATUS .. - - c1t5d0 toi failed was:c1t5d0s2 ... |
障害が発生したすべてのディスクに電力が戻るように、障害の原因を修復します。
修復を行う前に、ディスクが起動していることを確認してください。
クラスタ内のすべてのノードで、次のコマンドを入力します。
場合によっては、ノード別にドライブを確認し直す必要があります。
# drvconfig # disks |
クラスタ内のすべてのノードで、次のコマンドを入力します。
ボリュームマネージャによって、現在のディスク構成の検査が再度行われます。
# vxdctl enable # vxdisk -a online |
次のコマンドをまずマスターノードで入力し、その後でクラスタ内のほかのノードで入力します。
このコマンドは、一時的な障害が発生したディスクを再接続します。
# vxreattach |
vxdisk コマンドの出力を検証し、ほかにエラーがないか確認します。
# vxdisk list |
メディアが交換された場合は、切断されたディスクごとにマスターノードから次のコマンドを入力します。
このコマンドにより、物理ディスクとそのディスクのボリュームマネージャアクセス名が再結合されます。
# vxdg -g diskgroup -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 コマンドに -svc オプションを指定してください。
# vxrecover -bv [-g diskgroup] |
(省略可能) vxprint -g コマンドを実行して、変更を表示します。