ボリュームの状態が以下に該当する場合は、それぞれに記載されている対処を行ってください。
(1) ミラーボリュームが INVALID 状態である。
説明
ボリュームの状態は次の方法で確認できます。
# sdxinfo -V -o Volume1 |
この例では、最上位グループ Group1 に存在するボリューム Volume1 が、STATUS フィールドに示されているとおり INVALID 状態になっています。
ミラーボリュームを構成するミラースライスのなかに、データが正当な状態 (ACTIVE または STOP) のミラースライスがなくなると、ミラーボリュームは INVALID 状態になります。INVALID 状態のボリュームは起動できません。
ミラーボリュームが INVALID 状態となる原因として、次の 2 つが考えられます。
ディスクが DISABLE 状態である。
マスタからプロキシへのコピー処理中に、マスタとプロキシの関係を強制解除した。
対処
1) ボリュームが属しているグループ内に、DISABLE 状態のディスクが存在しているかどうかを次の方法で確認してください。
(例 A1)
# sdxinfo -G -o Volume1 # sdxinfo -D -o Volume1 |
この例では、最上位ミラーグループ Group1 にディスク Disk1、Disk2 が接続されていて、STATUS フィールドに示されているとおり、Disk2 が DISABLE 状態となっています。
(例 B1)
# sdxinfo -G -o Volume1 # sdxinfo -D -o Volume1 |
この例では、最上位ミラーグループ 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 |
この例では、シングルディスク Disk1 に存在するシングルボリューム Volume1 が、STATUS フィールドに示されているとおり INVALID 状態になっています。
INVALID 状態のボリュームは起動できません。
シングルボリュームが INVALID 状態となる原因として、次の 2 つが考えられます。
シングルディスクが DISABLE 状態である。この場合、シングルスライスは NOUSE 状態です。
マスタからプロキシへのコピー処理中に、マスタとプロキシの関係を強制解除した。
対処
1) シングルディスクが DISABLE 状態かどうかを次の方法で確認します。
# sdxinfo -D -o Volume1 |
この例では、シングルディスク 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 |
この例では、最上位グループ Group1 に存在するボリューム Volume1 が、STATUS フィールドに示されているとおり INVALID 状態になっています。
ボリュームに関連するディスクのなかに、DISABLE 状態のディスクがあると、ボリュームを構成するスライスは NOUSE 状態になり、ボリュームは INVALID 状態になります。INVALID 状態のボリュームは起動できません。
対処
1) ボリュームに関連するディスクの状態は、次の方法で確認できます。
# sdxinfo -G -o Volume1 -e long # sdxinfo -D -o Volume1 |
この例では、最上位ストライプグループ 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 |
この例では、Disk2 が DISABLE 状態となっています。
DISABLE 状態のディスクが存在する場合は、「F.1.2 ディスク状態に関する異常」の「(1) ディスクが DISABLE 状態である。」の(原因 a)、(原因 b)、(原因 c) のうちのどれに該当するかを確認してください。(原因 a) または (原因 b) に該当する場合は、まず、手順に従ってディスクの状態を復旧させてください。
2) 「F.1.1 スライス状態に関する異常」の「(1) ミラーボリュームを構成するミラースライスが INVALID 状態である。」の手順に従って、ディスクのハードウェア異常の有無を確認し、異常がある場合は、故障または不良箇所を特定してください。
故障箇所がディスク以外の部品であった場合は、まず、手順に従って故障箇所を修復してください。
3) 以下の場合分けに従って復旧を行ってください。
原因がディスク故障以外の場合
プロキシボリュームをもとにデータを復元する場合
→ 手順 a) に従って復旧を行います。
テープなどに退避されているバックアップデータをもとにデータを復元する場合
→ 手順 b) に従って復旧を行います。
ディスク故障が原因の場合
マスタグループに属していない場合
グループに接続されているディスクのうちの一部が故障している場合
→ 手順 c) に従って復旧を行います。
グループに接続されているすべてのディスクが故障している場合
→ 手順 d) に従って復旧を行います。
マスタグループに属している場合
→ 手順 e) に従って復旧を行います。
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 |
この例では、Disk2 が DISABLE 状態となっています。
DISABLE 状態のディスクが存在する場合は、「F.1.2 ディスク状態に関する異常」の「(1) ディスクが DISABLE 状態である。」の(原因 a)、(原因 b)、(原因 c) のうちのどれに該当するかを確認してください。(原因 a) または (原因 b) に該当する場合は、まず、手順に従ってディスクの状態を復旧させてください。
2) 「F.1.1 スライス状態に関する異常」の「(1) ミラーボリュームを構成するミラースライスが INVALID 状態である。」の手順に従って、ディスクのハードウェア異常の有無を確認し、異常がある場合は、故障または不良箇所を特定してください。故障箇所がディスク以外の部品であった場合は、まず、手順に従って故障箇所を修復してください。
3) 以下の場合分けに従って復旧を行ってください。
原因がディスク故障以外の場合
→ 手順 a) に従って復旧を行います。
ディスク故障が原因の場合
プロキシグループに属していない場合
グループに接続されているディスクのうちの一部が故障している場合
→ 手順 b) に従って復旧を行います。
グループに接続されているすべてのディスクが故障している場合
→ 手順 c) に従って復旧を行います。
プロキシグループに属している場合
→ 手順 d) に従って復旧を行います。
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 多重のミラーリング構成を例として、こうしたトラブルが発生する主な状況について説明します。また、トラブルをできるだけ防止するための手段を回避策として示します。
ボリュームデータのバックアップを採取するために、sdxslice -M コマンドにより一方のスライスを切り離した後、ボリュームをアクセスし続けていて、もう一方のスライスで I/O エラーが発生しました。
sdxslice -M コマンドの前に、予備のディスクをグループに接続して、一時的に 3 多重のミラーリング状態にします。または、ミラーリングされたボリュームをそのままバックアップの対象とします。
一方のスライスで I/O エラーが発生した後に、復旧を完了するまでの間にもう一方のスライスで I/O エラーが発生しました。
クラスにスペアディスクを定義しておくことによって、復旧作業の遅れによる影響をある程度回避できます。
対処
ACTIVE 状態である最後のスライスで I/O エラーが発生した原因をディスクドライバのログメッセージなどをもとにして調査してください。
以下では、次の 3 つの場合に分けて、対処方法を説明します。
原因がディスク部品の故障で、バックアップデータを使って復旧する場合
原因がディスク部品の故障で、INVALID 状態のスライスからデータを復旧する場合
原因がディスク以外の部品の故障あるいは不良である場合
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 |
この例では、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 つの場合に分けて対処方法を説明します。
原因がディスク部品の故障で、バックアップデータを使って復旧する場合
原因がディスク以外の部品の故障あるいは不良である場合
a. 原因がディスク部品の故障で、バックアップデータを使って復旧する場合
a1) 原因がディスク部品の故障であった場合、データが正当な状態であるスライスは存在しません。以下の手順に従って、バックアップデータからのリストアによりデータを復旧させてください。ここでは、Disk1(c1t11d0) が故障した場合を例にとって説明します。
# sdxinfo -D -o Disk1 |
a2) sdxinfo コマンドによって、故障したディスクに存在するボリュームを探し、ボリュームのサイズを記録します。
# sdxinfo -V -o Disk1 |
この例では、故障した 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 |
この例では、E フィールドに示されているとおり、Disk2 で I/O エラーが発生しています。Disk2 に対応する物理ディスク名は、DEVNAM フィールドに示されているとおり c1t2d0 です。
以下では、次の 2 つの場合に分けて、対処方法を説明します。
原因がディスク部品の故障で、バックアップデータを使って復旧する場合
原因がディスク以外の部品の故障あるいは不良である場合
a. 原因がディスク部品の故障で、バックアップデータを使って復旧する場合
a1) 原因がディスク部品の故障であった場合、データが正当な状態であるスライスは存在しません。以下の手順に従って、バックアップデータからのリストアによりデータを復旧させてください。
a2) sdxinfo コマンドを使って、故障したディスクに関連するグループの構成の情報を記録します。
# sdxinfo -G -o Disk2 -e long |
この例では、最上位ストライプグループ Group1 に下位コンカチネーショングループ Group2、Group3 が接続されていて、Group2 にはディスク Disk1、Disk2、Group3 にはディスク Disk3、Disk4 が接続されています。また、Group1 のストライプ幅は 32 ブロックです。
a3) sdxinfo コマンドを使って、故障したディスクに関連する最上位グループに存在するボリュームを探します。
# sdxinfo -V -o Disk2 |
この例では、故障した 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 |