この記事では、「failed」または「failed was」の状態が「vxdisk」によって報告された場合のトラブルシューティングの手順について説明します。
# vxdisk -o alldgs list
DEVICE TYPE DISK GROUP STATUS
disk_0 auto:cdsdisk - (vxfendg) online
disk_1 auto:cdsdisk - (vxfendg) online
disk_2 auto:cdsdisk - (vxfendg) online
disk_3 auto:cdsdisk datadg01 datadg online
disk_4 auto - - error
disk_5 auto:cdsdisk datadg03 datadg online
disk_6 auto:cdsdisk datadg04 datadg online
disk_7 auto:cdsdisk - (sambadg) online
disk_8 auto:cdsdisk - - online
disk_9 auto:cdsdisk - - online
sda auto:none - - online invalid
- - datadg02 datadg failed was:disk_4
1. はじめに
2. 「failed」ディスクと「failing」ディスクの違い
3. ディスクグループの設定の緊急バックアップを作成する
4. 当該のディスクは vxvm.exclude で除外されているか
5. 当該のディスクは別の論理ボリュームマネージャソリューションによって上書きされているか
6. ディスクを再接続できるかどうかを確認する
7. オペレーティングシステムがディスクを読み取ることが可能か確認する
8. ディスクへのパスは無効になっているか
9. vxconfigrestore を使用してディスクグループの設定を復元する
10. UDID およびディスク ID を使用して手動でディスクグループ設定を復元する
11. ボリュームを再起動する
(トップに戻る)
この記事では、「failed」または「failed was」の状態が「vxdisk」によって報告された場合のトラブルシューティングの手順について説明します。
「failed」の状態は、アクセスできなくなっているディスクの記録です。この状況の多くは、ディスクへの継続的な I/O エラーが原因で発生しており、これにより OS (オペレーティングシステム) がディスクを読み取ることができなります。また、プライベートリージョン内の破損が原因の場合もあります。
プライベートリージョンは、ディスクの一部分であり、ベリタス製品がディスク、ボリューム、サブディスク、プレックスなど、ディスクグループに関するレコードを保存する場所です。これと対照的なのがパブリックリージョンです。パブリックリージョンには、ユーザーデータを含む、実際のボリュームが格納されます。
(トップに戻る)
「failed」という状態と、「failing」という状態を混同しないでください。この記事では、「vxdisk」によって報告される「failed」の状態を中心に取り上げます。「failing」の状態のトラブルシューティングについて詳しくは、https://www.veritas.com/support/ja_JP/article.000034531 を参照してください。
(トップに戻る)
変更を行う前に、「vxconfigbackup」を使用して、影響を受けるディスクグループ内の残りのディスクを対象に、プライベートリージョンの緊急バックアップを作成します。
「vxconfigbackup」は、ボリューム内に含まれている実際のデータをバックアップするわけではありません。バックアップされるのはプライベートリージョンの設定データベースです。このデータベースは、ディスク自体に関する一部の情報とともにディスク内に存在しています。この設定データベースには、ディスクグループに含まれているディスク、ボリューム構造、プレックス、およびサブディスクについての情報が格納されています。
「vxconfigbackup」が使用できない場合は、「vxprivutil」を使用して設定データベースのコピーをダンプすることができます。
構文や例など、vxconfigbackup および vxprivutil について詳しくは、次の記事を参照してください:
「Using vxconfigbackup and vxprivutil to back up the disk group configuration of the Veritas private region」
https://www.veritas.com/support/ja_JP/article.000087431
/etc/vx/vxvm.exclude は除外されているパス、コントローラ、および製品の一覧を保持します。ディスクや、ディスクに関連付けられたパスやコントローラが、このファイルにあるかどうかを確認します。
「exclude_all」値が 1 の場合は、すべてのデバイスが除外されます。
図 1 - /etc/vx/vxvm.exclude のデフォルトのコンテンツ
|
exclude_all 0 paths
#
controllers
#
product
#
|
(トップに戻る)
「vxdisk」で、ディスクタイプに「LVM」または「ZFS」というワードが含まれている場合、そのディスクは別の論理ボリュームマネージャ (LVM) ソリューションによって上書きされている可能性があります。または、SAN のゾーニングに問題があり、この問題が原因でディスクが誤ったシステムに対して表示されている可能性もあります。変更を行う前に、当該のディスクが他のシステムにゾーニングされていないことを確認してください。
ディスクを元のディスクグループであるベリタスのディスクグループに戻すには、当該のディスクをまず別の LVM ソリューションの制御下から削除し、「vxdisksetup」を使用してベリタス製品用に初期化する必要があります。LVM ソリューションの制御下からのディスクの削除について詳しくは、該当するベンダーの資料を参照してください。
「vxreattach」は元のディスクメディア名を復元し、ディスクを該当するディスクグループに再接続するために使用されます。通常は、ディスクの状態が「オンライン」である場合にのみ使用されます (図 2 を参照)。
「-c」引数を使用して「vxreattach」を実行し、ディスクグループにディスクを再接続できるかどうかを確認します。
図 2 - 引数「-c」を指定して vxreattach を実行し、再接続が可能かどうかを確認する
構文: vxreattach -c <ディスクメディア名> 例と一般的な出力: # vxreattach -c disk_4
この場合、vxdisk によって示されているとおり「datadg」はディスクグループの名前であり、「datadg02」はディスクメディア名です。 # vxdisk -o alldgs list |
「vxreattach -c」がエラーを返すことなくディスクグループの名前およびディスクメディア名を返す場合は、ディスクの再接続へと進みます (図 3)。再接続できない場合は、V-5-2-238 エラーが表示されます。
図 3 - vxreattach を使用してディスクグループへディスクを再接続する
構文: vxreattach -br <ディスクメディア名> 例と一般的な出力: # vxreattach -br disk_4「vxdisk」が disk_4 のディスクメディア名「datadg02」を示していることに注意してください。 # vxdisk -o alldgs list |
(トップに戻る)
ネイティブの OS コマンドを使用して、OS がディスクラベルを含むディスクを読み取ることができることを確認します。
ベリタス製品では、ディスクとの通信を OS デバイスドライバに依存しています。OS がディスクを読み取れない場合、ベリタス製品もディスクを読み取ることができません。ディスクにラベルがない場合や、ラベルが破損している場合、ベリタス製品ではディスクが認識されません。これらの手順は、ディスク障害の原因を把握するのに役立ちます。
「vxdmpadm」を使用して、ディスクへのパスの状態を確認します (図 4)。
重大な、または継続的な I/O エラーが発生した場合、ベリタス製品ではパスが無効にされます。ディスクへのすべてのパスが無効化されている場合、サーバーはボリュームに対する読み取りまたは書き込みを行うことができません。1 つのパスが無効になっている場合は、「vxdmp」によって報告されるイベントの syslog、または I/O エラーの場合は「scsi」を確認してください。
「vxdmpadm enable」を使用してパスを再度有効化できたとしても、「vxdmp」では scsi inquiry を利用して、5 分間隔でパスの状態を自動的に評価する必要があります。クエリーが成功した場合、パスは自動的に再有効化されます。この間隔を経過してもパスが無効化されたままの場合は、I/O エラーが引き続き検出されており、さらに調査が必要である可能性があります。ディスクグループが無効になっている場合や、vxesd が停止している場合、パスが自動的に有効化されることはありません。無効化されたパスに対する「vxdmp」の動作は DMP チューニングパラメータによって変更することができます。これは、「vxmpadm gettune」を使用して表示できます。
図 4 - vxdmpadm の報告に従って無効化されたパスの例
構文: vxdmpadm getsubpaths 例: # vxdmpadm getsubpathsNAME STATE[A] PATH-TYPE[M] DMPNODENAME ENCLR-NAME CTLR |
(トップに戻る)
「vxreattach」を使用できない場合は「vxconfigrestore」を使用してディスクグループを復元します。
「vxconfigrestore」は、ボリューム内に含まれている実際のデータを復元するわけではありません。復元されるのはベリタス製品の設定データベースです。このデータベースは、ディスクのプライベートリージョン内にあります。この設定データベースには、ディスクグループに含まれているディスク、ボリューム構造、プレックス、およびサブディスクについての情報が格納されています。
(トップに戻る)
「vxconfigrestore」を使用できない場合、ディスクを復元するもう 1 つの方法は、ディスクの UDID またはディスク ID の属性と、プライベートリージョン設定データベースとともに含まれているレコードを比較する方法です。
(トップに戻る)
元のディスクがディスクグループに再度追加されたら、ボリュームを復元するためにはさらにいくつかの手順が必要です。「vxprint」を使用して、現在の状態を判断します (図 5)。
警告: ミラー化されたボリュームを単に強制的に起動しないでください。これによって、古いブロックまたは破損したブロックが含まれているプレックスが、最新のデータが含まれているプレックスを上書きする可能性があります。最新のミラープレックスを手動で確認する手順については、次の記事を参照してください。
「Manually determining which mirror plex contains the most recent data and then resynchronizing」
https://www.veritas.com/support/ja_JP/article.000087709
図 5 - vxprint を使用してボリュームの状態を判断する
構文: vxprint -g 例と一般的な出力: この場合、「vxprint」はボリューム「vol1」が無効化されていることを示しています。プレックスの状態は「IOFAIL」です。これは、ボリュームへの I/O の中断が継続的に発生していることを示しています。関連ディスクがディスクグループに再度追加されると、「vxvol」を使用して、手動でボリュームを再起動する必要があります。 #vxprint -g datadg -htdg datadg default default 1000 1336573086.38.Server101 |
図 6 - vxvol を使用してボリュームを起動し、vxprint を使用してボリュームの状態に変化があるかどうかを確認する
構文: vxvol -f 例と一般的な出力: # vxvol -g datadg -fa startall「vxprint」は、ボリュームが再起動されていることを示しています。 #vxprint -g datadg -htdg datadg default default 1000 1336573086.38.Server101 |
図 7 - vxrecover を使用してボリュームの復元を終了するか、再同期を開始する
構文: vxrecover -sb 例と一般的な出力: # vxrecover -sb vol1「vxprint」は、「vol1」が「ACTIVE」であることを示しています。 # vxprint -g datadg -ht |
キーワード: failed, failing, 「failed」ディスク, 複数の「failed」ディスク, 「failing」ディスク, 複数の「failing」ディスク