PRIMECLUSTER Global Disk Services 説明書 4.2 (Linux版)
目次 前ページ次ページ

付録F トラブルシューティング> F.1 トラブルへの対処方法

F.1.3 ボリューム状態に関する異常

ボリュームの状態が以下に該当する場合は、それぞれに記載されている対処を行ってください。

(1) ミラーボリュームがINVALID状態である。

[説明]

ボリュームの状態は次の方法で確認できます。

# sdxinfo -V -o Volume1
OBJ    NAME    CLASS   GROUP   SKIP JRM 1STBLK   LASTBLK  BLOCKS   STATUS
------ ------- ------- ------- ---- --- -------- -------- -------- --------
volume *       Class1  Group1  *    *          0    65535    65536 PRIVATE
volume Volume1 Class1  Group1  off  on     65536 17596415 17530880 INVALID

この例では、最上位グループ Group1 に存在するボリューム Volume1 が、STATUSフィールドに示されているとおりINVALID状態になっています。

ミラーボリュームを構成するミラースライスのなかに、データが正当な状態(ACTIVEまたはSTOP)のミラースライスがなくなると、ミラーボリュームはINVALID状態になります。INVALID状態のボリュームは起動できません。

ミラーボリュームがINVALID状態となる原因として、次の2つが考えられます。

(原因a)
ディスクがDISABLE状態である。
(原因b)
マスタからプロキシへのコピー処理中に、マスタとプロキシの関係を強制解除した。

 

[対処]

1) ボリュームが属しているグループ内に、DISABLE状態のディスクが存在しているかどうかを次の方法で確認してください。

(例A1)

# sdxinfo -G -o Volume1
OBJ    NAME    CLASS   DISKS               BLKS     FREEBLKS SPARE
------ ------- ------- ------------------- -------- -------- -----
group  Group1  Class1  Disk1:Disk2         17596416        0     0
# sdxinfo -D -o Volume1
OBJ    NAME    TYPE   CLASS   GROUP   DEVNAM  DEVBLKS  DEVCONNECT       STATUS
------ ------- ------ ------- ------- ------- -------- ---------------- -------
disk   Disk1   mirror Class1  Group1   sda    17596416 node1:node2      ENABLE
disk   Disk2   mirror Class1  Group1   sdb    17596416 node1:node2      DISABLE

 

この例では、最上位ミラーグループ Group1 にディスク Disk1, Disk2 が接続されていて、STATUSフィールドに示されているとおり、Disk2 がDISABLE状態となっています。

 

(例B1)

# sdxinfo -G -o Volume1
OBJ    NAME    CLASS   DISKS               BLKS     FREEBLKS SPARE
------ ------- ------- ------------------- -------- -------- -----
group  Group1  Class1  Group2:Group3       35127296 17530880     0
group  Group2  Class1  Disk1:Disk2         35127296 *            0
group  Group3  Class1  Disk3:Disk4         35127296 *            0
# sdxinfo -D -o Volume1
OBJ    NAME    TYPE   CLASS   GROUP   DEVNAM  DEVBLKS  DEVCONNECT       STATUS
------ ------- ------ ------- ------- ------- -------- ---------------- ------
disk   Disk1   stripe Class1  Group2   sda    17596416 node1:node2      ENABLE
disk   Disk2   stripe Class1  Group2   sdb    17596416 node1:node2      DISABLE
disk   Disk3   stripe Class1  Group3   sdc    17682084 node1:node2      ENABLE
disk   Disk4   stripe Class1  Group3   sdd    17682084 node1:node2      ENABLE

 

この例では、最上位ミラーグループ Group1 に下位ストライプグループGroup2, Group3 が接続されていて、Group2 に接続されているディスクDisk2 が、STATUSフィールドに示されているとおり DISABLE 状態となっています。

 

2) (原因a)に該当する場合は、まず、「ディスク状態に関する異常」の手順にしたがって、ディスクの状態を復旧させてください。

 

3) ミラーボリュームのデータを復元するために、最上位ミラーグループに接続されているディスクまたは下位グループの中から、復元元にするミラースライスが属しているディスクまたは下位グループを選び、sdxfixコマンドを実行します。

 

(例A3)

# sdxfix -V -c Class1 -d Disk1 -v Volume1

この例では、ディスク Disk1 に存在するスライスをもとに Volume1 を復旧します。

 

(例B3)

# sdxfix -V -c Class1 -g Group3 -v Volume1

この例では、下位ストライプグループ Group3 に存在するスライスをもとに Volume1 を復旧します。

 

4) ボリュームを起動してください。

# sdxvolume -N -c Class1 -v Volume1 -e nosync

 

5) Volume1 にアクセスして内容を確認してください。必要に応じて、バックアップデータのリストアやfsckなどによる整合性回復処理を行ってください。

 

6) ボリュームの等価性コピーを実行してください。

# sdxcopy -B -c Class1 -v Volume1

 

(2) シングルボリュームが INVALID状態である。

[説明]

ボリュームの状態は次の方法で確認できます。

# sdxinfo -V -o Volume1
OBJ    NAME    CLASS   GROUP   SKIP JRM 1STBLK   LASTBLK  BLOCKS   STATUS
------ ------- ------- ------- ---- --- -------- -------- -------- --------
volume *       Class1  Disk1   *    *          0    32767    32768 PRIVATE
volume Volume1 Class1  Disk1   off  on     32768    65535    32768 INVALID
volume *       Class1  Disk1   *    *      65536  8421375  8355840 FREE

この例では、シングルディスク Disk1 に存在するシングルボリューム Volume1 が、STATUSフィールドに示されているとおりINVALID状態になっています。

INVALID状態のボリュームは起動できません。

シングルボリュームがINVALID状態となる原因として、次の2つが考えられます。

(原因a)
シングルディスクがDISABLE 状態である。この場合、シングルスライスはNOUSE 状態です。
(原因b)
マスタからプロキシへのコピー処理中に、マスタとプロキシの関係を強制解除した。

 

[対処]

1) シングルディスクがDISABLE状態かどうかを次の方法で確認します。

# sdxinfo -D -o Volume1
OBJ    NAME    TYPE   CLASS   GROUP   DEVNAM  DEVBLKS  DEVCONNECT       STATUS
------ ------- ------ ------- ------- ------- -------- ---------------- -------
disk   Disk1   single Class1  *        sda    8355840 node1:node2      DISABLE

この例では、シングルディスク Disk1 が、STATUSフィールドに示されているとおり DISABLE状態になっています。

2) (原因a)に該当する場合は、まず、「ディスク状態に関する異常」の手順にしたがって、ディスクの状態を復旧させてください。

3) シングルボリュームのデータを復元するために、sdxfixコマンドを実行します。

# sdxfix -V -c Class1 -d Disk1 -v Volume1

4) ボリュームを起動します。

# sdxvolume -N -c Class1 -v Volume1

5) Volume1 にアクセスして内容を確認してください。必要に応じて、バックアップデータのリストアやfsckコマンドなどによる整合性回復処理を行ってください。

 

(3) ストライプボリュームまたはコンカチネーショングループ内のボリュームがINVALID状態である。

[説明]

ボリュームの状態は次の方法で確認できます。

# sdxinfo -V -o Volume1
OBJ    NAME    CLASS   GROUP   SKIP JRM 1STBLK   LASTBLK  BLOCKS   STATUS
------ ------- ------- ------- ---- --- -------- -------- -------- --------
volume *       Class1  Group1  *    *          0    65535    65536 PRIVATE
volume Volume1 Class1  Group1  off  on     65536 17596415 17530880 INVALID

この例では、最上位グループ Group1 に存在するボリューム Volume1 が、STATUSフィールドに示されているとおりINVALID状態になっています。

ボリュームに関連するディスクのなかに、DISABLE状態のディスクがあると、ボリュームを構成するスライスはNOUSE状態になり、ボリュームはINVALID状態になります。INVALID状態のボリュームは起動できません。

 

[対処]

1) ボリュームに関連するディスクの状態は、次の方法で確認できます。

# sdxinfo -G -o Volume1 -e long
OBJ    NAME    CLASS   DISKS               BLKS     FREEBLKS SPARE MASTER TYPE   WIDTH
------ ------- ------- ------------------- -------- -------- ----- ------ ------ -----
group  Group1  Class1  Group2:Group3       70189056 65961984     * *      stripe 32
group  Group2  Class1  Disk1:Disk2         35127296 *            * *      concat *
group  Group3  Class1  Disk3:Disk4         35127296 *            * *      concat *
# sdxinfo -D -o Volume1
OBJ    NAME    TYPE   CLASS   GROUP   DEVNAM  DEVBLKS  DEVCONNECT       STATUS
------ ------- ------ ------- ------- ------- -------- ---------------- -------
disk   Disk1   concat Class1  Group2   sda    17596416 node1:node2      ENABLE
disk   Disk2   concat Class1  Group2   sdb    17596416 node1:node2      DISABLE
disk   Disk3   concat Class1  Group3   sdc    17682084 node1:node2      ENABLE
disk   Disk4   concat Class1  Group3   sdd    17682084 node1:node2      ENABLE

 

この例では、最上位ストライプグループ Group1 に下位コンカチネーショングループ Group2, Group3 が接続されていて、Group2 に接続されているディスク Disk2 が、STATUSフィールドに示されているとおりDISABLE状態となっています。

 

2) 「ディスク状態に関する異常」の手順にしたがって、ディスクの状態を復旧させてください。

 

3) ボリュームのデータを復元するために、sdxfixコマンドを実行します。-gオプションでは、最上位グループのグループ名(この例では Group1 )を指定します。

# sdxfix -V -c Class1 -g Group1 -v Volume1

 

4) ボリュームを起動します。

# sdxvolume -N -c Class1 -v Volume1

 

5) Volume1 にアクセスして内容を確認してください。必要に応じて、バックアップデータのリストアやfsckコマンドなどによる整合性回復処理を行ってください。

 

(4) マスタボリュームがINVALID状態である。

[説明]

プロキシボリュームからマスタボリュームへのコピー処理中にI/Oエラーが発生するなどしてコピー処理が失敗した場合に、コピー先のボリュームがINVALID状態になります。

[対処]

1) ボリュームが属しているグループ内に、DISABLE状態のディスクが存在しているかどうかを次の方法で確認してください。

# sdxinfo -D -o Volume1
OBJ    NAME    TYPE   CLASS   GROUP   DEVNAM  DEVBLKS  DEVCONNECT       STATUS
------ ------- ------ ------- ------- ------- -------- ---------------- -------
disk   Disk1   mirror Class1  Group1   sda     8421376 *                ENABLE
disk   Disk2   mirror Class1  Group1   sdb     8421376 *                DISABLE

 

この例では、Disk2 がDISABLE状態となっています。

DISABLE状態のディスクが存在する場合は、「ディスク状態に関する異常」の「(1)ディスクがDISABLE状態である。」の(原因a)、(原因b)、(原因c)のうちのどれに該当するかを確認してください。(原因a)または(原因b)に該当する場合は、まず、手順にしたがってディスクの状態を復旧させてください。

 

2) 「スライス状態に関する異常」の「(1)ミラーボリュームを構成するミラースライスがINVALID状態である。」の手順にしたがって、ディスクのハードウェア異常の有無を確認し、異常がある場合は、故障または不良箇所を特定してください。

故障箇所がディスク以外の部品であった場合は、まず、手順にしたがって故障箇所を修復してください。

 

3) 以下の場合分けにしたがって復旧を行ってください。

a) プロキシボリュームをもとにマスタボリュームのデータを復元する手順

 

a1) データの復元元とするプロキシボリュームが、マスタボリュームから分離されているかどうかを、sdxinfo -V -e longコマンドで表示されるPROXYフィールドで確認します。

 

a2) 復元元とするプロキシボリュームが分離されていない場合は、分離します。

# sdxproxy Part -c Class1 -p Volume2

 

a3) 復元元とするプロキシボリュームにアクセスしているアプリケーションがあれば、停止します。プロキシボリュームをファイルシステムとして使用している場合は、アンマウントします。

 

a4) 復元元とするプロキシボリュームが起動されている場合は、停止します。

# sdxvolume -F -c Class1 -v Volume2

 

a5) プロキシボリュームのデータをもとに、マスタボリュームのデータを復元します。

# sdxproxy RejoinRestore -c Class1 -p Volume2

 

b) バックアップデータをもとにデータを復元する手順

 

b1) ボリュームがINVALID状態の場合は、STOP状態に変更するため、データの復元元にするディスク(スライス)を決めて、sdxfixコマンドを実行します。

# sdxfix -V -c Class1 -d Disk1 -v Volume1

 

この例では、Disk1 に存在するスライスをもとに Volume1 を復旧します。

 

b2) 復元するボリュームが停止している場合は、起動します。

# sdxvolume -N -c Class1 -v Volume1 -e nosync

 

b3) 復元するボリュームにアクセスして内容を確認してください。必要に応じて、バックアップデータのリストアやfsckなどによる整合性回復処理を行ってください。

 

b4) ミラーリング構成のボリュームの場合は、等価性コピーを実行します。

# sdxcopy -B -c Class1 -v Volume1

 

c) グループに接続されている一部のディスクを交換する手順

 

c1) INVALID状態のマスタボリュームに結合されているプロキシボリュームのデータをもとにマスタボリュームを復旧したい場合や、マスタボリュームを復旧した後もプロキシボリュームのデータを利用したい場合は、sdxproxy Partコマンドを使ってプロキシボリュームを分離します。

# sdxproxy Part -c Class1 -p Volume2

c2) グループにINVALID状態のボリュームが存在する場合は、sdxfix -Vコマンドを使ってSTOP状態に変更します。-dオプションでは、故障していないディスクを指定します。

# sdxfix -V -c Class1 -d Disk1 -v Volume1

 

c3) 手順にしたがってディスクを交換します。ディスク交換の手順については、「sdxswap - ディスクの交換」または「ディスク交換」を参照してください。

 

c4) マスタボリュームのデータを復元します。プロキシボリュームをもとに復元する場合は手順a)、テープなどのバックアップデータをもとに復元する場合は手順b)にしたがって復元を行います。

 

d) グループに接続されているすべてのディスクを交換する手順

 

d1) マスタボリューム、およびデータの復元元とするプロキシボリュームにアクセスしているアプリケーションがあれば、停止します。マスタボリューム、プロキシボリュームをファイルシステムとして使用している場合は、アンマウントします。

 

d2) d1)のマスタボリュームおよびプロキシボリュームを停止します。

# sdxvolume -F -c Class1 -v Volume1
# sdxvolume -F -c Class1 -v Volume2

 

d3) sdxproxy RejoinRestoreコマンドを使って、d1)のプロキシボリュームをもとにマスタボリュームのデータの復元を試みます。コマンドが正常終了してマスタボリュームがINVALID状態でなくなれば、復旧処理は完了しており、手順d4)以降を実施する必要はありません。

# sdxproxy RejoinRestore -c Class1 -p Volume2  

 

d4) sdxproxy Swapコマンドを使って、d1)のマスタボリュームとプロキシボリュームのスライスを入れ換えます。

# sdxproxy Swap -c Class1 -p Volume2

 

d5) 手順d4)により、マスタボリュームはINVALID状態ではなくなり、プロキシボリュームがINVALID状態になります。「ボリューム状態に関する異常」の「(5)プロキシボリュームがINVALID状態である。」の手順にしたがって、INVALID状態のプロキシボリュームを復旧してください。

 

d6) sdxproxy Swapコマンドを使って、d4)で入れ換えたマスタボリュームとプロキシボリュームのスライスを再度入れ換えます。

# sdxproxy Swap -c Class1 -p Volume2

 

e) マスタグループに接続されているディスクを交換する手順

 

e1) マスタグループ、およびデータの復元元とするプロキシグループに存在するボリュームにアクセスしているアプリケーションがあれば、停止します。ボリュームをファイルシステムとして使用している場合は、アンマウントします。

 

e2) e1)のマスタグループおよびプロキシグループに存在するすべてのボリュームを停止します。

# sdxvolume -F -c Class1 -v Volume1
# sdxvolume -F -c Class1 -v Volume2

 

e3) sdxproxy RejoinRestoreコマンドを使って、e1)のプロキシグループをもとにマスタグループのデータの復元を試みます。コマンドが正常終了してすべてのマスタボリュームがINVALID状態でなくなれば、復旧処理は完了しており、手順e4)以降を実施する必要はありません。

# sdxproxy RejoinRestore -c Class1 -p Volume2  

 

e4) sdxproxy Swapコマンドを使って、e1)のマスタグループとプロキシグループのスライスを入れ換えます。

# sdxproxy Swap -c Class1 -p Group2

 

e5) 手順e4)により、マスタボリュームはINVALID状態ではなくなり、プロキシボリュームがINVALID状態になります。「ボリューム状態に関する異常」の「(5)プロキシボリュームがINVALID状態である。」の手順にしたがって、INVALID状態のプロキシボリュームを復旧してください。

 

e6) sdxproxy Swapコマンドを使って、(e4)で入れ換えたマスタグループとプロキシグループのスライスを再度入れ換えます。

# sdxproxy Swap -c Class1 -p Group2

 

(5) プロキシボリュームがINVALID状態である。

[説明]

マスタボリュームからプロキシボリュームへのコピー処理中にI/Oエラーが発生するなどしてコピー処理が失敗した場合に、コピー先のプロキシボリュームがINVALID状態になります。

[対処]

1) ボリュームが属しているグループ内に、DISABLE状態のディスクが存在しているかどうかを次の方法で確認してください。

# sdxinfo -D -o Volume1
OBJ    NAME    TYPE   CLASS   GROUP   DEVNAM  DEVBLKS  DEVCONNECT       STATUS
------ ------- ------ ------- ------- ------- -------- ---------------- -------
disk   Disk1   mirror Class1  Group1   sda     8421376 *                ENABLE
disk   Disk2   mirror Class1  Group1   sdb     8421376 *                DISABLE

 

この例では、Disk2 がDISABLE状態となっています。

DISABLE状態のディスクが存在する場合は、「ディスク状態に関する異常」の「(1)ディスクがDISABLE状態である。」の(原因a)、(原因b)、(原因c)のうちのどれに該当するかを確認してください。(原因a)または(原因b)に該当する場合は、まず、手順にしたがってディスクの状態を復旧させてください。

 

2) 「スライス状態に関する異常」の「(1)ミラーボリュームを構成するミラースライスがINVALID状態である。」の手順にしたがって、ディスクのハードウェア異常の有無を確認し、異常がある場合は、故障または不良箇所を特定してください。故障箇所がディスク以外の部品であった場合は、まず、手順にしたがって故障箇所を修復してください。

 

3) 以下の場合分けにしたがって復旧を行ってください。

a) マスタボリュームをもとにプロキシボリュームのデータを復元する手順

 

a1) プロキシボリュームがマスタボリュームから分離されているかどうかを、sdxinfo -V -e longコマンドで表示されるPROXYフィールドで確認します。

 

a2) プロキシボリュームが分離されていない場合は、分離します。

# sdxproxy Part -c Class1 -p Volume2

 

a3) プロキシボリュームを、マスタボリュームに再度結合します。

# sdxproxy Rejoin -c Class1 -p Volume2

 

b) グループに接続されている一部のディスクを交換する手順

 

b1) sdxproxy Breakコマンドを使ってマスタボリュームとの関係を解除します。

# sdxproxy Break -c Class1 -p Volume2

 

b2) グループに存在するINVALID状態のボリュームを、sdxfix -Vコマンドを使ってSTOP状態に変更します。-dオプションでは、故障していないディスクを指定します。

# sdxfix -V -c Class1 -d Disk1 -v Volume2

 

b3) 手順にしたがってディスクを交換します。ディスク交換の手順については、「sdxswap - ディスクの交換」または「ディスク交換」を参照してください。

 

b4) マスタとプロキシを、sdxproxy Joinコマンドを使って再度関連づけます。

# sdxproxy Join -c Class1 -m Volume1 -p Volume2

 

c) グループに接続されているすべてのディスクを交換する手順

 

c1) sdxproxy Breakコマンドを使ってマスタとの関係を解除します。

# sdxproxy Break -c Class1 -p Volume2

 

c2) グループに存在するボリュームにアクセスしているアプリケーションがあれば、停止します。ボリュームをファイルシステムとして使用している場合は、アンマウントします。

 

c3) グループに存在するすべてのボリュームを停止します。

# sdxvolume -F -c Class1 -v Volume2

 

c4) グループのボリューム構成(ボリューム名、サイズなど)をsdxinfoコマンドで確認し、記録しておきます。

 

c5) グループに存在するすべてのボリュームを削除します。

# sdxvolume -R -c Class1 -v Volume2

 

c6) 手順にしたがってディスクを交換します。ディスク交換の手順については、「sdxswap - ディスクの交換」または「ディスク交換」を参照してください。

 

c7) c5)で削除したボリュームを再度作成します。

# sdxvolume -M -c Class1 -g Group1 -v Volume2 -s サイズ

 

c8) c7)で作成したボリュームを停止します。

# sdxvolume -F -c Class1 -v Volume2

 

c9) 解除したマスタボリュームとプロキシボリュームを、sdxproxy Joinコマンドを使って再度関連づけます。

# sdxproxy Join -c Class1 -m Volume1 -p Volume2

 

d) プロキシグループに接続されているディスクを交換する手順

 

d1) sdxproxy Breakコマンドを使ってマスタとの関係を解除します。

# sdxproxy Break -c Class1 -p Group2

 

d2) グループに存在するボリュームにアクセスしているアプリケーションがあれば、停止します。ボリュームをファイルシステムとして使用している場合は、アンマウントします。

 

d3) グループに存在するすべてのボリュームを停止します。

# sdxvolume -F -c Class1 -v Volume2

 

d4) グループに存在するすべてのボリュームを削除します。

# sdxvolume -R -c Class1 -v Volume2

 

d5) 手順にしたがってディスクを交換します。ディスク交換の手順については、「sdxswap - ディスクの交換」または「ディスク交換」を参照してください。

 

d6) 解除したマスタグループとプロキシグループを、sdxproxy Joinコマンドを使って再度関連づけます。

# sdxproxy Join -c Class1 -m Group1 -p Group2 -a Volume1=Volume2:on

 

(6) ボリュームがSTOP状態である。

[説明]

ボリュームは、通常、システム起動時に自動的に起動されてACTIVE状態になります。GDS運用管理ビューのボリューム停止メニュー、または、sdxvolume -Fコマンドを使用してボリュームを停止した場合に、ボリュームはSTOP状態になります。

クラスタシステムでは、クラスタアプリケーションに登録されているGDSの共用クラス内のボリュームのうち、プロキシボリューム以外のボリュームは、クラスタアプリケーションの状態遷移と連動して起動および停止されます。クラスタアプリケーションがOffline状態の場合、プロキシボリューム以外のボリュームはSTOP状態です。

STOP状態のボリュームへのアクセスは、EIO (I/O error)またはENXIO (No such device or address)のエラーになります。


クラスタシステムにおいて、クラスタアプリケーションに登録されていない共用クラスのボリュームがノード起動時に起動されないトラブルについては、「クラスタシステムに関する異常」の「(4) GFS共用ファイルシステムが、ノード起動時にマウントされない。」を参照してください。

[対処]

必要に応じて、GDS運用管理ビューのボリューム起動メニュー、または、sdxvolume -Nコマンドを使用して、ボリュームを起動してください。

クラスタアプリケーションに登録されているGDSの共用クラス内のボリュームを起動する場合は、クラスタアプリケーションをOnline状態にしてください。

 

(7) ACTIVE状態のミラーボリュームでI/Oエラーが発生する。

[説明]

ミラーボリュームは複数のスライスから構成されていて、1つのスライスでI/Oエラーが発生したとしても、エラーが起きたスライスだけを切り離してボリュームへのアクセスは正常に完了します。

ボリュームを構成するスライスの中に、ACTIVE状態のスライスが1つだけになってしまった場合、ACTIVE状態である最後のスライスでI/Oエラーが発生すると、ボリュームへのアクセスはエラーとなります。このとき、スライスおよびボリュームの状態はACTIVEのままで変更されません。

グループにディスクまたは下位グループが2つ接続されている、2多重のミラーリング構成を例として、こうしたトラブルが発生する主な状況について説明します。また、トラブルをできるだけ防止するための手段を回避策として示します。

 

(状況1)
ボリュームデータのバックアップを採取するために、sdxslice -M コマンドにより一方のスライスを切り離した後、ボリュームをアクセスし続けていて、もう一方のスライスでI/Oエラーが発生しました。

 

(回避1)
sdxslice -Mコマンドの前に、予備のディスクをグループに接続して、一時的に3多重のミラーリング状態にします。または、ミラーリングされたボリュームをそのままバックアップの対象とします。

 

(状況2)
一方のスライスでI/Oエラーが発生した後に、復旧を完了するまでの間にもう一方のスライスでI/Oエラーが発生しました。

 

(回避2)
クラスにスペアディスクを定義しておくことによって、復旧作業の遅れによる影響をある程度回避できます。

 

[対処]

ACTIVE状態である最後のスライスでI/Oエラーが発生した原因をディスクドライバのログメッセージなどをもとにして調査してください。

以下では、次の3つの場合に分けて、対処方法を説明します。

  1. 原因がディスク部品の故障で、バックアップデータを使って復旧する場合

  2. 原因がディスク部品の故障で、INVALID状態のスライスからデータを復旧する場合

  3. 原因がディスク以外の部品の故障あるいは不良である場合

     

a. 原因がディスク部品の故障で、バックアップデータを使って復旧する場合

a1) 原因がディスク部品の故障であった場合、データが正当な状態であるスライスは存在しません。以下の手順にしたがって、バックアップデータからのリストアによりデータを復旧させてください。

 

a2) ボリュームをアクセスしているアプリケーションを停止します。ファイルシステムとして使用している場合は、アンマウントを実行してください。アンマウント実行時に入出力エラーが発生する場合は、アンマウントコマンドの-fオプションを指定してください。

 

a3) sdxvolumeコマンドによって、ボリュームを停止させます。

# sdxvolume -F -c Class1 -v Volume1

 

a4) ボリューム内に、TEMP状態のスライスが存在する場合は、「スライス状態に関する異常」の手順にしたがって復旧してください。

 

a5) ボューム内に、NOUSE状態のスライスが存在する場合は、「スライス状態に関する異常」の手順にしたがって復旧してください。

 

a6) ボリュームのサイズを記録してください。ボリュームのサイズは、以下の方法で確認できます。

# sdxinfo -V -o Volume1
OBJ    NAME    CLASS   GROUP   SKIP JRM 1STBLK   LASTBLK  BLOCKS   STATUS
------ ------- ------- ------- ---- --- -------- -------- -------- --------
volume *       Class1  Group1  *    *          0    32767    32768 PRIVATE
volume Volume1 Class1  Group1  off  on     32768  4161535  4128768 STOP

 

この例では、Volume1 の BLOCKSフィールドに表示されている4128768ブロックです。

 

a7) sdxvolumeコマンドによって、ボリュームを削除します。

# sdxvolume -R -c Class1 -v Volume1

 

a8) 「ディスク交換」またはsdxswapコマンドのマニュアル手順にしたがって、ディスクを交換してください。

 

a9) sdxvolumeコマンドによってボリュームを再度作成してください。ブロック数 には、a6)で記録したサイズ、この例では4128768を指定します。

# sdxvolume -M -c Class1 -g Group1 -v Volume1 -s ブロック数

 

a10) 最後に、Volume1 に対してバックアップデータをリストアしてください。

 

b. 原因がディスク部品の故障で、INVALID状態のスライスからデータを復旧する場合

b1) 原因がディスク故障であり、バックアップデータがない、あるいは古すぎるため、やむを得ずすでに切り離されていたINVALID状態のスライスからデータを復旧させたい場合は、次の手順で復旧します。

 

b2) ボリュームをアクセスしているアプリケーションを停止します。ファイルシステムとして使用している場合は、アンマウントを実行してください。アンマウント実行時に入出力エラーが発生する場合は、アンマウントコマンドの-f オプションを指定してください。

 

b3) sdxvolumeコマンドによって、ボリュームを停止させます。

# sdxvolume -F -c Class1 -v Volume1

 

b4) ボリューム内に、TEMP状態のスライスが存在する場合は、「スライス状態に関する異常」の手順にしたがって復旧してください。

 

b5) ボリューム内に、NOUSE状態のスライスが存在する場合は、「スライス状態に関する異常」の手順にしたがって復旧してください。

 

b6) 復元元にするミラースライスを決めて、sdxfixコマンドを使ってボリュームを復旧してください。

(例1)

# sdxfix -V -c Class1 -d Disk2 -v Volume1

この例では、最上位ミラーグループに接続されているディスク Disk2 に存在するミラースライスを復元元にします。

 

(例2)

# sdxfix -V -c Class1 -g Group2 -v Volume1

この例では、最上位ミラーグループに接続されている下位グループ Group2 に存在するミラースライスを復元元にします。

 

b7) ボリュームを起動してください。

# sdxvolume -N -c Class1 -v Volume1 -e nosync

 

b8) 必要に応じて、Volume1 のバックアップ採取、およびfsckコマンドなどによるデータの整合性回復を行ってください。

 

b9) 最後に、「ディスク交換」またはsdxswapコマンドのマニュアル手順にしたがって、ディスクを交換してください。

 

c. 原因がディスク以外の部品の故障あるいは不良である場合

データが正当なスライスはディスク内に存在しているため、いったんシステムをシャットダウンして、故障箇所を修復した後にブートしてください。自動的に等価性コピーが行われてミラーリング状態を復旧します。

 

(8) シングルボリュームでI/Oエラーが発生する。

[説明]

シングルボリュームは1つのスライスからのみ構成されているので、I/Oエラーが発生した場合、ボリュームへのアクセスはエラーとなりますが、スライスおよびボリュームの状態はACTIVEのままで変更されません。

 

[対処]

I/Oエラーが発生した原因をディスクドライバのログメッセージなどをもとにして調査してください。

以下では、次の2つの場合に分けて対処方法を説明します。

  1. 原因がディスク部品の故障で、バックアップデータを使って復旧する場合

  2. 原因がディスク以外の部品の故障あるいは不良である場合

     

a. 原因がディスク部品の故障で、バックアップデータを使って復旧する場合

a1) 原因がディスク部品の故障であった場合、データが正当な状態であるスライスは存在しません。以下の手順にしたがって、バックアップデータからのリストアによりデータを復旧させてください。ここでは、Disk1(sda)が故障した場合を例にとって説明します。

# sdxinfo -D -o Disk1
OBJ    NAME    TYPE   CLASS   GROUP   DEVNAM  DEVBLKS  DEVCONNECT       STATUS
------ ------- ------ ------- ------- ------- -------- ---------------- -------
disk   Disk1   single Class1  *        sda    8493876 node1:node2      ENABLE

 

a2) sdxinfoコマンドによって、故障したディスクに存在するボリュームを探し、ボリュームのサイズを記録します。

# sdxinfo -V -o Disk1
OBJ    NAME    CLASS   GROUP   SKIP JRM 1STBLK   LASTBLK  BLOCKS   STATUS
------ ------- ------- ------- ---- --- -------- -------- -------- --------
volume *       Class1  Disk1   *    *          0    32767    32768 PRIVATE
volume Volume1 Class1  Disk1   off  on     32768    65535    32768 ACTIVE
volume Volume2 Class1  Disk1   off  on     65536  4194303  4128768 ACTIVE
volume *       Class1  Disk1   *    *    4194304  8421375  4227072 FREE

 

この例では、故障した Disk1 に Volume1 と Volume2 が存在します。 Volume1 のサイズはBLOCKSフィールドに表示されている32768ブロックで、Volume2 のサイズはBLOCKSフィールドに表示されている4128768ブロックです。

 

a3) ボリュームをアクセスしているアプリケーションを停止します。ファイルシステムとして使用している場合は、アンマウントを実行します。アンマウント実行時に入出力エラーが発生する場合は、アンマウントコマンドの-fオプションを指定してください。

 

a4) sdxvolumeコマンドによって、ボリュームを停止させます。

# sdxvolume -F -c Class1 -v Volume1,Volume2

 

a5) sdxvolumeコマンドによって、ボリュームを削除します。

# sdxvolume -R -c Class1 -v Volume1
# sdxvolume -R -c Class1 -v Volume2

 

a6) ディスク交換前に下記のコマンドを実行してください。

# sdxswap -O -c Class1 -d Disk1

 

ただし、ディスククラスの最後のディスクであった場合、以下のエラーとなります。この場合は下記のa6')、a7')、a8')を実施してください。
SDX:sdxswap: ERROR: Disk1: The last ENABLE disk in class cannot be swapped

 

a7) ディスクの交換を行ってください。

 

a8) ディスク交換後に下記のコマンドを実行してください。

# sdxswap -I -c Class1 -d Disk1

 

a6') ディスク交換前に下記のコマンドを実行してください。

a6)でエラーが出ていない場合は、a6')、a7')、a8')を実施する必要はありません。

# sdxdisk -R -c Class1 -d Disk1

 

a7') ディスクの交換を行ってください。

 

a8') ディスク交換後に下記のコマンドを実行してください。

# sdxdisk -M -c Class1 -d sda=Disk1:single

 

a9) sdxvolumeコマンドによってボリュームを再度作成してください。-s オプションでは、a2)で記録したサイズを指定します。

# sdxvolume -M -c Class1 -d Disk1 -v Volume1 -s 32768
# sdxvolume -M -c Class1 -d Disk1 -v Volume2 -s 4128768

 

a10) 最後に、Volume1、Volume2 に対してバックアップデータをリストアしてください。

 

b. 原因がディスク以外の部品の故障あるいは不良である場合

いったんシステムをシャットダウンして、故障箇所を修復した後にブートしてください。スライスのデータは正当なので、データを復旧する必要はありません。

 

(9) ストライプボリュームまたはコンカチネーショングループ内のボリュームでI/Oエラーが発生する。

[説明]

ストライプボリュームおよびコンカチネーショングループ内のボリュームは1つのスライスのみから構成されているので、I/Oエラーが発生した場合、ボリュームへのアクセスはエラーとなりますが、スライスおよびボリュームの状態はACTIVEのままで変更されません。

[対処]

I/Oエラーが発生した原因をディスクドライバのログメッセージなどをもとにして調査します。

ボリュームに関連するディスクのエラー状態と物理ディスク名は、次の方法で確認できます。

# sdxinfo -D -o Volume1 -e long
OBJ    NAME    TYPE   CLASS   GROUP   DEVNAM  DEVBLKS  FREEBLKS DEVCONNECT       STATUS  E
------ ------- ------ ------- ------- ------- -------- -------- ---------------- ------- -----
disk   Disk1   concat Class1  Group2   sda    17596416 *        node1:node2      ENABLE  0
disk   Disk2   concat Class1  Group2   sdb    17596416 *        node1:node2      ENABLE  1
disk   Disk3   concat Class1  Group3   sdc    17682084 *        node1:node2      ENABLE  0
disk   Disk4   concat Class1  Group3   sdd    17682084 *        node1:node2      ENABLE  0

この例では、Eフィールドに示されているとおり、Disk2 でI/Oエラーが発生しています。Disk2 に対応する物理ディスク名は、DEVNAMフィールドに示されているとおりsdbです。

以下では、次の2つの場合に分けて、対処方法を説明します。

  1. 原因がディスク部品の故障で、バックアップデータを使って復旧する場合

  2. 原因がディスク以外の部品の故障あるいは不良である場合

     

a. 原因がディスク部品の故障で、バックアップデータを使って復旧する場合

a1) 原因がディスク部品の故障であった場合、データが正当な状態であるスライスは存在しません。以下の手順にしたがって、バックアップデータからのリストアによりデータを復旧させてください。

 

a2) sdxinfoコマンドを使って、故障したディスクに関連するグループの構成の情報を記録します。

# sdxinfo -G -o Disk2 -e long
OBJ    NAME    CLASS   DISKS               BLKS     FREEBLKS SPARE MASTER TYPE   WIDTH
------ ------- ------- ------------------- -------- -------- ----- ------ ------ -----
group  Group1  Class1  Group2:Group3       70189056 65961984     * *      stripe 32
group  Group2  Class1  Disk1:Disk2         35127296 *            * *      concat *
group  Group3  Class1  Disk3:Disk4         35127296 *            * *      concat *

この例では、最上位ストライプグループ Group1 に下位コンカチネーショングループ Group2, Group3 が接続されていて、Group2 にはディスク Disk1, Disk2、Group3 にはディスク Disk3, Disk4 が接続されています。また、Group1 のストライプ幅は32ブロックです。

 

a3) sdxinfoコマンドを使って、故障したディスクに関連する最上位グループに存在するボリュームを探します。

# sdxinfo -V -o Disk2
OBJ    NAME    CLASS   GROUP   SKIP JRM 1STBLK   LASTBLK  BLOCKS   STATUS
------ ------- ------- ------- ---- --- -------- -------- -------- --------
volume *       Class1  Group1  *    *          0    65535    65536 PRIVATE
volume Volume1 Class1  Group1  *    *      65536    98303    32768 ACTIVE
volume Volume2 Class1  Group1  *    *      98304  4227071  4128768 ACTIVE
volume *       Class1  Group1  *    *    4227072 70189055 65961984 FREE

この例では、故障した Disk2 に関連する最上位グループ Group1 に、Volume1 と Volume2 が存在します。Volume1 のサイズはBLOCKSフィールドに表示されている32768ブロックで、Volume2 のサイズはBLOCKSフィールドに表示されている4128768ブロックです。

 

a4) ボリュームをアクセスしているアプリケーションを停止します。ファイルシステムとして使用している場合は、アンマウントを実行します。アンマウント実行時に入出力エラーが発生する場合は、アンマウントコマンドの-fオプションを指定してください。

 

a5) sdxvolumeコマンドを使って、ボリュームを停止させます。

# sdxvolume -F -c Class1 -v Volume1,Volume2

 

a6) sdxvolumeコマンドを使って、ボリュームを削除します。

# sdxvolume -R -c Class1 -v Volume1
# sdxvolume -R -c Class1 -v Volume2

 

a7) 故障したディスクを、グループから切断します。グループが階層化されている場合は、上位グループから順に切断します。

# sdxgroup -D -c Class1 -h Group1 -l Group2
# sdxdisk -D -c Class1 -g Group2 -d Disk2

この例では、故障したディスク Disk2 は Group2 に接続されていて、Group2 は Group1 に接続されているため、Group2, Disk2 の順に切断します。

 

a8) ディスク交換前に下記のコマンドを実行してください。

# sdxswap -O -c Class1 -d Disk2


ディスククラスの最後のディスクであった場合、以下のエラーとなります。この場合は、下記のa8'), a9'), a10')を実施してください。

SDX:sdxswap: ERROR: Disk2: The last ENABLE disk in class cannot be swapped

 

a9) ディスクの交換を行ってください。

 

a10) ディスク交換後に下記のコマンドを実行してください。

# sdxswap -I -c Class1 -d Disk2

 

a8') ディスク交換前に下記のコマンドを実行してください。


a8)でエラーが出ていない場合は、a8'), a9'), a10')を実施する必要はありません。

# sdxdisk -R -c Class1 -d Disk2

 

a9') ディスクの交換を行ってください。

 

a10') ディスク交換後に下記のコマンドを実行してください。

# sdxdisk -M -c Class1 -d sdb=Disk2

 

a11) a2)で記録したグループ情報を元に、交換したディスクをグループに接続します。グループが階層化されていた場合は、下位から順に接続します。

# sdxdisk -C -c Class1 -g Group2 -d Disk2
# sdxgroup -C -c Class1 -h Group1 -l Group2 -a type=stripe,width=32

 

a12) sdxvolumeコマンドによってボリュームを再度作成します。-sオプションでは、a3)で記録したサイズ、この例では32768、4128768を指定します。

# sdxvolume -M -c Class1 -g Group1 -v Volume1 -s 32768 -a pslice=off
# sdxvolume -M -c Class1 -g Group1 -v Volume2 -s 4128768 -a pslice=off

 

a13) 最後に、Volume1, Volume2 に対してバックアップデータをリストアします。

 

b. 原因がディスク以外の部品の故障あるいは不良である場合

いったんシステムをシャットダウンして、故障箇所を修復した後にブートしてください。スライスのデータは正当なので、データを復旧する必要はありません。



目次 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2006