ページの先頭行へ戻る
PRIMECLUSTER Global Disk Services 説明書 4.5
FUJITSU Software

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 c1t1d0 17596416 node1 ENABLE disk Disk2 mirror Class1 Group1 c2t3d0 17596416 node1 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 c1t1d0 17596416 node1 ENABLE disk Disk2 stripe Class1 Group2 c1t2d0 17596416 node1 DISABLE disk Disk3 stripe Class1 Group3 c2t3d0 17682084 node1 ENABLE disk Disk4 stripe Class1 Group3 c2t4d0 17682084 node1 ENABLE

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


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


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 * c1t11d0 8355840 node1 DISABLE

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


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


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 c1t1d0 17596416 node1 ENABLE disk Disk2 concat Class1 Group2 c1t2d0 17596416 node1 DISABLE disk Disk3 concat Class1 Group3 c2t3d0 17682084 node1 ENABLE disk Disk4 concat Class1 Group3 c2t4d0 17682084 node1 ENABLE

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


2) 「F.1.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 c1t1d0 8421376 * ENABLE disk Disk2 mirror Class1 Group1 c1t2d0 8421376 * DISABLE

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

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


2) 「F.1.1 スライス状態に関する異常」の「(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) 手順に従ってディスクを交換します。ディスク交換の手順については、「D.8 sdxswap - ディスクの交換」または「5.3.4 ディスク交換」を参照してください。

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 状態になります。「F.1.3 ボリューム状態に関する異常」の「(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 状態になります。「F.1.3 ボリューム状態に関する異常」の「(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 c1t1d0 8421376 * ENABLE disk Disk2 mirror Class1 Group1 c1t2d0 8421376 * DISABLE

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

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


2) 「F.1.1 スライス状態に関する異常」の「(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) 手順に従ってディスクを交換します。ディスク交換の手順については、「D.8 sdxswap - ディスクの交換」または「5.3.4 ディスク交換」を参照してください。

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) 手順に従ってディスクを交換します。ディスク交換の手順については、「D.8 sdxswap - ディスクの交換」または「5.3.4 ディスク交換」を参照してください。

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

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

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

# sdxvolume -F -c Class1 -v Volume2

注意

ボリュームがINVALID状態の場合、“ERROR: disk: volume in INVALID status”のメッセージが出力されますが、無視して次の手順に進んでください。

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

注意

ボリュームがINVALID状態の場合、“ERROR: disk: volume in INVALID status”のメッセージが出力されますが、無視して次の手順に進んでください。

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

# sdxvolume -R -c Class1 -v Volume2

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

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) のエラーになります。

参照

クラスタシステムにおいて、クラスタアプリケーションに登録されていない共用クラスのボリュームがノード起動時に起動されないトラブルについては、「F.1.9 クラスタシステムに関する異常」の「(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 状態のスライスが存在する場合は、「F.1.1 スライス状態に関する異常」の手順に従って復旧してください。

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

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) 「5.3.4 ディスク交換」または 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 状態のスライスが存在する場合は、「F.1.1 スライス状態に関する異常」の手順に従って復旧してください。

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

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) 最後に、「5.3.4 ディスク交換」または sdxswap コマンドのマニュアル手順に従って、ディスクを交換してください。


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

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


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

説明

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

対処

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

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

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

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


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

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

# sdxinfo -D -o Disk1
OBJ NAME TYPE CLASS GROUP DEVNAM DEVBLKS DEVCONNECT STATUS ------ ------- ------ ------- ------- ------- -------- ---------------- ------- disk Disk1 single Class1 * c1t11d0 8493876 node1 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 c1t11d0=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. 原因がディスク以外の部品の故障あるいは不良である場合

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

ただし、I/O エラーが発生したことにより、sdxinfo -e long コマンドで表示されるディスク情報の E フィールドが 1 となるため、sdxfix -D コマンドを実行して、I/O エラー状態を解除してください。

# sdxfix -D -c クラス名 -d ディスク名 -e online -x NoRdchk

(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 c1t1d0 17596416 * node1 ENABLE 0 disk Disk2 concat Class1 Group2 c1t2d0 17596416 * node1 ENABLE 1 disk Disk3 concat Class1 Group3 c2t3d0 17682084 * node1 ENABLE 0 disk Disk4 concat Class1 Group3 c2t4d0 17682084 * node1 ENABLE 0

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

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

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

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


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

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

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

# sdxinfo -G -o Disk2 -e long
OBJ NAME CLASS DISKS BLKS FREEBLKS SPARE MASTER TYPE WIDTH ACTDISK ------ ------- ------- ------------------- -------- -------- ----- ------ ------ ----- ------- 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 c1t2d0=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. 原因がディスク以外の部品の故障あるいは不良である場合

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

ただし、I/O エラーが発生したことにより、sdxinfo -e long コマンドで表示されるディスク情報の E フィールドが 1 となるため、sdxfix -D コマンドを実行して、I/O エラー状態を解除してください。

# sdxfix -D -c クラス名 -d ディスク名 -e online -x NoRdchk