障害の発生しているディスク、欠落したディスク、および「failed was」の状態をトラブルシューティングする

book

Article ID: 100040992

calendar_today

Updated On:

Description

問題

この記事では、「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. ボリュームを再起動する



 

1. はじめに

(トップに戻る)


この記事では、「failed」または「failed was」の状態が「vxdisk」によって報告された場合のトラブルシューティングの手順について説明します。

「failed」の状態は、アクセスできなくなっているディスクの記録です。この状況の多くは、ディスクへの継続的な I/O エラーが原因で発生しており、これにより OS (オペレーティングシステム) がディスクを読み取ることができなります。また、プライベートリージョン内の破損が原因の場合もあります。

プライベートリージョンは、ディスクの一部分であり、ベリタス製品がディスク、ボリューム、サブディスク、プレックスなど、ディスクグループに関するレコードを保存する場所です。これと対照的なのがパブリックリージョンです。パブリックリージョンには、ユーザーデータを含む、実際のボリュームが格納されます。




 

2. 「failed」ディスクと「failing」ディスクの違い

(トップに戻る)


「failed」という状態と、「failing」という状態を混同しないでください。この記事では、「vxdisk」によって報告される「failed」の状態を中心に取り上げます。「failing」の状態のトラブルシューティングについて詳しくは、https://www.veritas.com/support/ja_JP/article.000034531 を参照してください。




3. ディスクグループの設定の緊急バックアップを作成する

(トップに戻る)


変更を行う前に、「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


 

 

4. 当該のディスクは vxvm.exclude で除外されているか

(トップに戻る)


/etc/vx/vxvm.exclude は除外されているパス、コントローラ、および製品の一覧を保持します。ディスクや、ディスクに関連付けられたパスやコントローラが、このファイルにあるかどうかを確認します。

「exclude_all」値が 1 の場合は、すべてのデバイスが除外されます。


図 1 - /etc/vx/vxvm.exclude のデフォルトのコンテンツ

 

exclude_all 0
paths
#
controllers
#
product
#
 

 



5. 当該のディスクは別の論理ボリュームマネージャソリューションによって上書きされているか

(トップに戻る)


「vxdisk」で、ディスクタイプに「LVM」または「ZFS」というワードが含まれている場合、そのディスクは別の論理ボリュームマネージャ (LVM) ソリューションによって上書きされている可能性があります。または、SAN のゾーニングに問題があり、この問題が原因でディスクが誤ったシステムに対して表示されている可能性もあります。変更を行う前に、当該のディスクが他のシステムにゾーニングされていないことを確認してください。

ディスクを元のディスクグループであるベリタスのディスクグループに戻すには、当該のディスクをまず別の LVM ソリューションの制御下から削除し、「vxdisksetup」を使用してベリタス製品用に初期化する必要があります。LVM ソリューションの制御下からのディスクの削除について詳しくは、該当するベンダーの資料を参照してください。




6. ディスクを再接続できるかどうかを確認する

(トップに戻る)
 
 

「vxreattach」は元のディスクメディア名を復元し、ディスクを該当するディスクグループに再接続するために使用されます。通常は、ディスクの状態が「オンライン」である場合にのみ使用されます (図 2 を参照)。

「-c」引数を使用して「vxreattach」を実行し、ディスクグループにディスクを再接続できるかどうかを確認します。


図 2 - 引数「-c」を指定して vxreattach を実行し、再接続が可能かどうかを確認する


構文:

vxreattach -c <ディスクメディア名>


例と一般的な出力:

# vxreattach -c disk_4
datadg datadg02

この場合、vxdisk によって示されているとおり「datadg」はディスクグループの名前であり、「datadg02」はディスクメディア名です。

# 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:cdsdisk   -            (datadg)    online
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

 




「vxreattach -c」がエラーを返すことなくディスクグループの名前およびディスクメディア名を返す場合は、ディスクの再接続へと進みます (図 3)。再接続できない場合は、V-5-2-238 エラーが表示されます。


図 3 - vxreattach を使用してディスクグループへディスクを再接続する


構文:

vxreattach -br <ディスクメディア名>


例と一般的な出力:

# vxreattach -br disk_4
 

「vxdisk」が disk_4 のディスクメディア名「datadg02」を示していることに注意してください。

# 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:cdsdisk   datadg02     datadg      online
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

 




7. オペレーティングシステムがディスクを読み取ることが可能か確認する

(トップに戻る)


ネイティブの OS コマンドを使用して、OS がディスクラベルを含むディスクを読み取ることができることを確認します。

 

  • 「prtvtoc」、「fdisk」、「lspv」、「diskinfo」などのコマンドを使用して、ディスクラベルを読み取ります。
  • 「dd」を使用して、ディスクからブロックを 1 つ読み取ります。

ベリタス製品では、ディスクとの通信を OS デバイスドライバに依存しています。OS がディスクを読み取れない場合、ベリタス製品もディスクを読み取ることができません。ディスクにラベルがない場合や、ラベルが破損している場合、ベリタス製品ではディスクが認識されません。これらの手順は、ディスク障害の原因を把握するのに役立ちます。
 


構文や例などについて詳しくは、次の記事を参照してください。

「Verifying that a disk is readable by the OS」
https://www.veritas.com/support/ja_JP/article.000087435




8. ディスクへのパスは無効になっているか

(トップに戻る)

 

「vxdmpadm」を使用して、ディスクへのパスの状態を確認します (図 4)。

重大な、または継続的な I/O エラーが発生した場合、ベリタス製品ではパスが無効にされます。ディスクへのすべてのパスが無効化されている場合、サーバーはボリュームに対する読み取りまたは書き込みを行うことができません。1 つのパスが無効になっている場合は、「vxdmp」によって報告されるイベントの syslog、または I/O エラーの場合は「scsi」を確認してください。

「vxdmpadm enable」を使用してパスを再度有効化できたとしても、「vxdmp」では scsi inquiry を利用して、5 分間隔でパスの状態を自動的に評価する必要があります。クエリーが成功した場合、パスは自動的に再有効化されます。この間隔を経過してもパスが無効化されたままの場合は、I/O エラーが引き続き検出されており、さらに調査が必要である可能性があります。ディスクグループが無効になっている場合や、vxesd が停止している場合、パスが自動的に有効化されることはありません。無効化されたパスに対する「vxdmp」の動作は DMP チューニングパラメータによって変更することができます。これは、「vxmpadm gettune」を使用して表示できます。
 


注意: syslog で「vxdmp」が I/O エラーの原因であると示されている場合であっても、通常、「vxdmp」自体は原因ではありません。ベリタス製品では、ディスクとの通信を OS デバイスドライバに依存しています。I/O エラーが発生している場合、これらのエラーはデバイスドライバによってベリタス製品に報告されます。「vxdmp」は、デバイスドライバによって渡されているエラーを報告し、イベントに対応してパスを無効にすることができます。



図 4 - vxdmpadm の報告に従って無効化されたパスの例


構文:

vxdmpadm getsubpaths


例:

# vxdmpadm getsubpaths

NAME         STATE[A]   PATH-TYPE[M] DMPNODENAME  ENCLR-NAME   CTLR  
======================================================================
sdm          ENABLED(A)   -          disk_0       disk         c8    
sdp          ENABLED(A)   -          disk_0       disk         c3    
sdb          ENABLED(A)   -          disk_1       disk         c8    
sdc          ENABLED(A)   -          disk_1       disk         c3    
sdq          ENABLED(A)   -          disk_2       disk         c8    
sdt          ENABLED(A)   -          disk_2       disk         c3    
sdd          ENABLED(A)   -          disk_3       disk         c8    
sdf          ENABLED(A)   -          disk_3       disk         c3    
sdi          DISABLED      -          disk_4       disk         c8   
sdl          DISABLED      -          disk_4       disk         c3   

sde          ENABLED(A)   -          disk_5       disk         c8    
sdh          ENABLED(A)   -          disk_5       disk         c3   
sdk          ENABLED(A)   -          disk_6       disk         c8   
sdn          ENABLED(A)   -          disk_6       disk         c3   
sdr          ENABLED(A)   -          disk_7       disk         c8   
sdu          ENABLED(A)   -          disk_7       disk         c3   
sdg          ENABLED(A)   -          disk_8       disk         c8   
sdj          ENABLED(A)   -          disk_8       disk         c3   
sdo          ENABLED(A)   -          disk_9       disk         c8   
sds          ENABLED(A)   -          disk_9       disk         c3   
sda          ENABLED(A)   -          sda          disk  c2   

 

 



9. vxconfigrestore を使用してディスクグループの設定を復元する

(トップに戻る)

「vxreattach」を使用できない場合は「vxconfigrestore」を使用してディスクグループを復元します。

「vxconfigrestore」は、ボリューム内に含まれている実際のデータを復元するわけではありません。復元されるのはベリタス製品の設定データベースです。このデータベースは、ディスクのプライベートリージョン内にあります。この設定データベースには、ディスクグループに含まれているディスク、ボリューム構造、プレックス、およびサブディスクについての情報が格納されています。
 


構文や例など、vxconfigrestore について詳しくは、次の記事を参照してください。

「Restoring the disk group configuration using vxconfigrestore」
https://www.veritas.com/support/ja_JP/article.000087440

 



10. UDID およびディスク ID を使用して手動でディスクグループ設定を復元する

(トップに戻る)

「vxconfigrestore」を使用できない場合、ディスクを復元するもう 1 つの方法は、ディスクの UDID またはディスク ID の属性と、プライベートリージョン設定データベースとともに含まれているレコードを比較する方法です。
 

 


構文や例など、UDID およびディスク ID の比較については、次の記事を参照してください。

「Restoring the disk group configuration manually, using udids or disk IDs」
https://www.veritas.com/support/ja_JP/article.000087441




11. ボリュームを再起動する

(トップに戻る)


元のディスクがディスクグループに再度追加されたら、ボリュームを復元するためにはさらにいくつかの手順が必要です。「vxprint」を使用して、現在の状態を判断します (図 5)。

  • ミラー化されたボリュームの場合:
    • 少なくとも 1 つのプレックスが障害の影響を受けていない場合、他のプレックスを、ボリュームに再接続する際に再同期する必要があります。  このプロセスを開始するには「vxrecover」の使用が必要な場合があります (図 6)。
    • すべてのプレックスが障害の影響を受けている場合は、各プレックスを手動で確認して、最新の更新が含まれているプレックスを判別しなければならないことがあります。

警告: ミラー化されたボリュームを単に強制的に起動しないでください。これによって、古いブロックまたは破損したブロックが含まれているプレックスが、最新のデータが含まれているプレックスを上書きする可能性があります。最新のミラープレックスを手動で確認する手順については、次の記事を参照してください。

「Manually determining which mirror plex contains the most recent data and then resynchronizing」
https://www.veritas.com/support/ja_JP/article.000087709


  • ミラー化されていないボリュームの場合:
    • ディスクを再度ディスクグループに追加した後、「vxvol」を使用してボリュームを手動で再起動しなければならない場合があります (図 5)。



図 5 - vxprint を使用してボリュームの状態を判断する


構文:

vxprint -g -ht


例と一般的な出力:

この場合、「vxprint」はボリューム「vol1」が無効化されていることを示しています。プレックスの状態は「IOFAIL」です。これは、ボリュームへの I/O の中断が継続的に発生していることを示しています。関連ディスクがディスクグループに再度追加されると、「vxvol」を使用して、手動でボリュームを再起動する必要があります。


#vxprint -g datadg -ht

dg datadg       default      default  1000     1336573086.38.Server101

dm datadg01     disk_3       auto     65536    2027264  -
dm datadg02     disk_4       auto     65536    2027264  -
dm datadg03     disk_5       auto     65536    2027264  -
dm datadg04     disk_6       auto     65536    2027264  -

v  locks        -            ENABLED  ACTIVE   102400   SELECT    -        fsgen
pl locks-01     locks        ENABLED  ACTIVE   102400   CONCAT    -        RW
sd datadg04-01  locks-01     datadg04 0        102400   0         disk_6   ENA

v  vol1         -            DISABLED ACTIVE   6010880  SELECT    -        fsgen
pl vol1-01      vol1         DISABLED IOFAIL   6010880  CONCAT    -        RW

sd datadg01-01  vol1-01      datadg01 0        2027264  0         disk_3   ENA
sd datadg02-01  vol1-01      datadg02 0        2027264  2027264   disk_4   ENA
sd datadg03-01  vol1-01      datadg03 0        1956352  4054528   disk_5   ENA

 




図 6 - vxvol を使用してボリュームを起動し、vxprint を使用してボリュームの状態に変化があるかどうかを確認する


構文:

vxvol -f -fa startall


例と一般的な出力:

# vxvol -g datadg -fa startall


「vxprint」は、ボリュームが再起動されていることを示しています。

#vxprint -g datadg -ht
dg datadg       default      default  1000     1336573086.38.Server101

dm datadg01     disk_3       auto     65536    2027264  -
dm datadg02     disk_4       auto     65536    2027264  -
dm datadg03     disk_5       auto     65536    2027264  -
dm datadg04     disk_6       auto     65536    2027264  -

v  locks        -            ENABLED  ACTIVE   102400   SELECT    -        fsgen
pl locks-01     locks        ENABLED  ACTIVE   102400   CONCAT    -        RW
sd datadg04-01  locks-01     datadg04 0        102400   0         disk_6   ENA

v  vol1         -            ENABLED  ACTIVE   6010880  SELECT    -        fsgen
pl vol1-01      vol1         ENABLED  ACTIVE   6010880  CONCAT    -        RW

sd datadg01-01  vol1-01      datadg01 0        2027264  0         disk_3   ENA
sd datadg02-01  vol1-01      datadg02 0        2027264  2027264   disk_4   ENA
sd datadg03-01  vol1-01      datadg03 0        1956352  4054528   disk_5   ENA

 




図 7 - vxrecover を使用してボリュームの復元を終了するか、再同期を開始する


構文:

vxrecover -sb


例と一般的な出力:

# vxrecover -sb vol1


「vxprint」は、「vol1」が「ACTIVE」であることを示しています。

# vxprint -g datadg -ht
dg datadg       default      default  10000    1336408747.34.Server101

dm datadg01     disk_3       auto     65536    2027264  -
dm datadg02     disk_4       auto     65536    2027264  -
dm datadg03     disk_5       auto     65536    2027264  -
dm datadg04     disk_6       auto     65536    2027264  -

v  locks        -            ENABLED  ACTIVE   102400   SELECT    -        fsgen
pl locks-01     locks        ENABLED  ACTIVE   102400   CONCAT    -        RW
sd datadg04-01  locks-01     datadg04 0        102400   0         disk_6   ENA

v  vol1         -            ENABLED  ACTIVE   102400   SELECT    -        fsgen
pl vol1-01      vol1         ENABLED  ACTIVE   102400   CONCAT    -        RW
sd datadg01-01  vol1-01      datadg01 0        102400   0         disk_3   ENA
pl vol1-02      vol1         ENABLED  ACTIVE   102400   CONCAT    -        RW
sd datadg04-02  vol1-02      datadg04 102400   102400   0         disk_6   ENA
pl vol1-03      vol1         DISABLED ACTIVE   102400   CONCAT    -        RW
sd datadg03-01  vol1-03      datadg03 0        102400   0         disk_5   ENA

 

 

キーワード: failed, failing, 「failed」ディスク, 複数の「failed」ディスク, 「failing」ディスク, 複数の「failing」ディスク

Issue/Introduction

この記事では、「failed」または「failed was」の状態が「vxdisk」によって報告された場合のトラブルシューティングの手順について説明します。