Solaris ボリュームマネージャの管理

エラー発生時のトランザクションボリュームの回復

Procedureパニックした場合のトランザクションボリュームを回復するには

手順

    fsck コマンドでファイルシステムを修復できない場合は、そのログデバイスを共有するファイルシステムが格納されているすべてのトランザクションボリュームに対して fsck コマンドを実行する必要があります。


例 1911 トランザクションボリュームを回復する


# fsck /dev/md/rdsk/trans

fsck コマンドは、関連するすべてのトランザクションボリュームをチェックし、修復してから、障害のあるトランザクションボリュームを「正常 (Okay)」状態にします。


Procedureハードウェアエラー状態のトランザクションボリュームを回復するには

この手順は、トランザクションボリュームを「正常 (Okay)」状態に戻すときに使用します。

トランザクションボリュームの状態をチェックする方法については、「トランザクションボリュームの状態をチェックするには」を参照してください。

ロギングデータの処理中にマスターデバイスまたはログデバイスにエラーがあると、デバイスは「正常 (Okay)」状態から「ハードウェアエラー (Hard Error)」状態に移行します。 デバイスが「ハードウェアエラー (Hard Error)」状態か「エラー (Error)」状態になると、デバイスエラーまたは異常が発生します。 どちらの場合でも、回復方法は同じです。


ログ (ログデバイス) が共有されている場合に、トランザクションボリューム内のどれかのスライスに異常が発生すると、そのトランザクションボリュームに関連しているすべてのスライスまたはボリュームが異常状態に切り換わります。


手順
  1. 「Solaris ボリュームマネージャコンポーネントを作成するための前提条件 」「トランザクションボリュームの背景情報」を確認します。

  2. 「トランザクションボリュームの背景情報」を確認します。

  3. lockfs コマンドを実行して、ロックされているファイルシステムを調べます。


    # lockfs
    

    該当するファイルシステムはロックタイプが hard と表示されます。 同じログデバイスを共有するファイルシステムはすべてハードロックされます。

  4. 該当するファイルシステムのマウントを解除します。

    ロックされているファイルシステムがエラー発生時に使用されていても、そのファイルシステムのマウントを解除できます。 関連するプロセスが、ハードロックまたはマウント解除されているファイルシステム上の開かれたファイルまたはディレクトリにアクセスすると、エラーが返されます。

  5. (省略可能) アクセス可能なデータのバックアップをとります。

    デバイスエラーを修復する前に、通常は、できるだけ多くのデータを回復するようにします。 tarcpio コマンドを使用する場合のように、バックアップ手順を実行するためにはファイルシステムがマウントされていなければならない場合は、ファイルシステムを読み取り専用でマウントできます。 dumpvolcopy コマンドを使用する場合のように、ファイルシステムがマウントされている必要がない場合は、トランザクションボリュームに直接アクセスできます。

  6. デバイスエラーを修復します。

    この時点で、読み書き操作のためにトランザクションボリュームを開くかマウントすると、ログデバイス上にあるアクセス可能なすべてのデータが適切なマスターデバイスに転送されます。 読み取りまたは書き込みできないデータは破棄されます。 しかし、トランザクションボリュームを読み取り専用で開くかマウントすると、ログは再びスキャンされるだけでマスターデバイスに転送されません。したがって、エラーは修復されません。 つまり、マスターデバイスとログデバイスのデータは、読み取りおよび書き込み操作のために最初に開かれるかマウントされるまで、変更されません。

  7. fsck コマンドを実行してファイルシステムを修復します。あるいは、データを復元する場合は、newfs コマンドを実行します。

    同じログデバイスを共有するすべてのトランザクションボリュームに対して fsck コマンドを実行します。 fsck コマンドですべてのトランザクションボリュームが修復されると、各ボリュームは「正常 (Okay)」状態に戻ります。

    newfs コマンドを使用しても、ファイルシステムは「正常 (Okay)」状態に戻ります。しかし、この場合には、ファイルシステムのすべてのデータが破棄されます。 newfs コマンドは、通常、バックアップからファイルシステムを復元したいときに使用します。

    同じログデバイスを共有するすべてのトランザクションボリュームに対して fsck または newfs コマンドを実行しないと、デバイスは「正常 (Okay)」状態に戻されません。

  8. metastat コマンドを実行して、関連するデバイスが「正常 (Okay)」状態になっていることを確認します。


例 1912 ロギングデバイスのエラーを修復する


# metastat d5
d5: Trans
    State: Hard Error  
    Size: 10080 blocks
    Master Device: d4
    Logging Device: c0t0d0s6
 
d4: Mirror
    State: Okay
...
c0t0d0s6: Logging device for d5
    State: Hard Error
    Size: 5350 blocks
...
# fsck /dev/md/rdsk/d5
** /dev/md/rdsk/d5
** Last Mounted on /fs1
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
WARNING: md: log device: /dev/dsk/c0t0d0s6 changed state to
Okay
4 files, 11 used, 4452 free (20 frags, 554 blocks, 0.4%
fragmentation)
# metastat d5
d5: Trans
    State: Okay
    Size: 10080 blocks
    Master Device: d4
    Logging Device: c0t0d0s6
 
d4: Mirror
    State: Okay
...
 
c0t0d0s6: Logging device for d5
    State: Okay
...

この例では、「ハードウェアエラー(Hard Error)」状態のログデバイスを含むトランザクションボリューム d5 を修復します。 このトランザクションボリュームに対して fsck コマンドを実行すると、トランザクションボリュームは「正常 (Okay)」状態に戻されます。 metastat コマンドを実行して、「正常 (Okay)」状態になっていることを確認します。