JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Solaris Volume Manager 管理ガイド     Oracle Solaris 10 1/13 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  Solaris Volume Manager の使用開始

2.  ストレージ管理の概念

3.  Solaris Volume Manager の概要

4.  Solaris Volume Manager for Sun Cluster (概要)

5.  Solaris Volume Manager の構成と使用 (シナリオ)

6.  状態データベース (概要)

7.  状態データベース (タスク)

8.  RAID-0 (ストライプと連結) ボリューム (概要)

9.  RAID-0 (ストライプおよび連結) ボリューム (タスク)

10.  RAID-1 (ミラー) ボリューム (概要)

11.  RAID-1 (ミラー) ボリューム (タスク)

12.  ソフトパーティション (概要)

13.  ソフトパーティション (タスク)

14.  RAID-5 ボリューム (概要)

15.  RAID-5 ボリューム (タスク)

16.  ホットスペアプール (概要)

17.  ホットスペアプール (タスク)

18.  ディスクセット (概要)

19.  ディスクセット (タスク)

20.  Solaris Volume Manager の保守 (タスク)

21.  Solaris Volume Manager のベストプラクティス

22.  トップダウンボリューム作成 (概要)

23.  ボリュームのトップダウン作成 (タスク)

24.  モニタリングとエラー報告 (タスク)

25.  Solaris Volume Manager のトラブルシューティング (タスク)

Solaris Volume Manager のトラブルシューティング (タスクマップ)

システムのトラブルシューティングの概要

システムのトラブルシューティングの前提条件

Solaris Volume Manager のトラブルシューティングの一般的なガイドライン

一般的なトラブルシューティング方法

ディスクの交換

不良ディスクを交換する方法

ディスク移動の問題からの回復

ディスク移動とデバイス ID の概要

名前のないデバイスに関するエラーメッセージの解決

Solaris 10 リリースにアップグレードしたあとのデバイス ID の不一致

ブートの問題からの回復

ブートの問題の背景情報

/etc/vfstab 内の不適切なエントリを修正する方法

ルート (/) RAID-1 (ミラー) ボリュームを回復する

ブートデバイスの障害から回復する方法

状態データベース複製の障害からの回復

状態データベースの複製数の不足から回復する方法

ソフトパーティションの問題からの回復

ソフトパーティションの構成データを回復する方法

別のシステムからのストレージの回復

ローカルディスクセットからストレージを回復する方法

既知のディスクセットからのストレージの回復

インポートに使用可能なディスクセットに関するレポートを出力する方法

ディスクセットをあるシステムから別のシステムにインポートする方法

ディスクセットの問題からの回復

ディスクセットの所有権を取得できないときには

ディスクセットを削除する方法

ufsdump コマンドによるマウント済みファイルシステムのバックアップの実行

RAID-1 ボリューム上のマウント済みファイルシステムのバックアップを実行する方法

システム回復の実行

Solaris Volume Manager 構成を使用してシステムを回復する方法

A.  重要な Solaris Volume Manager ファイル

B.  Solaris Volume Manager のクイックリファレンス

C.  Solaris Volume Manager CIM/WBEM API

索引

ブートの問題からの回復

Solaris Volume Manager ではルート (/)、swap、および /usr ディレクトリをミラー化できるので、システムのブート時に特殊な問題が発生することがあります。このような問題の原因は、ハードウェア障害またはオペレータエラーのどちらかです。このセクションでは、このような問題に対処するための手順について説明します。

次の表に、そのような問題の説明と適切な解決方法を示します。

表 25-1 Solaris Volume Manager での一般的なブートの問題

ブートの問題の原因
参照先
/etc/vfstab ファイルの情報が正しくありません。
十分な数の状態データベースの複製が定義されていません。
ブートデバイス (ディスク) に障害が発生しました。

ブートの問題の背景情報

/etc/vfstab 内の不適切なエントリを修正する方法

ルート (/) ファイルシステムをミラー化するときなどに、/etc/vfstab ファイルに不適切なエントリを作成した場合、システムは一見、正常にブートしているように見えます。その後、システムに障害が発生します。この状況を修正するためには、シングルユーザーモードで /etc/vfstab ファイルを編集する必要があります。

/etc/vfstab ファイル内の不適切なエントリを修正する大まかな手順は次のとおりです。

  1. シングルユーザーモードでシステムをブートする

  2. ミラーボリュームに対して fsck コマンドを実行する

  3. 読み取り/書き込みオプションを有効にして、ファイルシステムを再マウントする

  4. オプション: ルート (/) ミラーに対して metaroot コマンドを実行する

  5. /etc/vfstab ファイルで、ファイルシステムのエントリがこのボリュームを正しく参照していることを確認する

  6. システムをリブートする

ルート (/) RAID-1 (ミラー) ボリュームを回復する

次の例では、ルート (/) ファイルシステムが 2 面ミラー d0 でミラー化されています。/etc/vfstab ファイルのルート (/) エントリは、何らかの理由でファイルシステムの元のスライスに戻っています。しかし、/etc/system ファイルの情報は、ミラー d0 からブートすることを示したままです。この状況は通常、metaroot コマンドを使用しないで /etc/system ファイルと /etc/vfstab ファイルを保守した場合に発生します。または、/etc/vfstab ファイルの古いコピーを現在の /etc/vfstab ファイルにコピーしたことが原因になる場合もあります。

不適切な /etc/vfstab ファイルの例を次に示します。

#device        device          mount          FS      fsck   mount    mount
#to mount      to fsck         point          type    pass   at boot  options
#
/dev/dsk/c0t3d0s0 /dev/rdsk/c0t3d0s0  /       ufs      1     no       -
/dev/dsk/c0t3d0s1 -                   -       swap     -     no       -
/dev/dsk/c0t3d0s6 /dev/rdsk/c0t3d0s6  /usr    ufs      2     no       -
#
/proc             -                  /proc    proc     -     no       -
swap              -                  /tmp     tmpfs    -     yes      -

エラーがあるために、システムは、ブート時に自動的にシングルユーザーモードになります。

ok boot
...
configuring network interfaces: hme0.
Hostname: host1
mount: /dev/dsk/c0t3d0s0 is not this fstype.
setmnt: Cannot open /etc/mnttab for writing

INIT: Cannot create /var/adm/utmp or /var/adm/utmpx

INIT: failed write of utmpx entry:"  "

INIT: failed write of utmpx entry:"  "

INIT: SINGLE USER MODE

Type Ctrl-d to proceed with normal startup,
(or give root password for system maintenance): <root-password>

この時点で、ルート (/) ファイルシステムと /usr ファイルシステムは、読み取り専用としてマウントされています。次の手順に従ってください。

  1. ルート (/) ミラーに対して fsck コマンドを実行します。

    注 - ルート (/) ミラーの正しいボリュームを使用するように注意してください。


    # fsck /dev/md/rdsk/d0
    ** /dev/md/rdsk/d0
    ** Currently Mounted on /
    ** Phase 1 - Check Blocks and Sizes
    ** Phase 2 - Check Pathnames
    ** Phase 3 - Check Connectivity
    ** Phase 4 - Check Reference Counts
    ** Phase 5 - Check Cyl groups
    2274 files, 11815 used, 10302 free (158 frags, 1268 blocks,
    0.7% fragmentation)
  2. ルート (/) ファイルシステムを読み取り/書き込みファイルシステムとしてマウントし直し、/etc/vfstab ファイルを編集できるようにします。
    # mount -o rw,remount /dev/md/dsk/d0 /
    mount: warning: cannot lock temp file </etc/.mnt.lock>
  3. metaroot コマンドを実行します。
    # metaroot d0

    このコマンドは、ルート (/) ファイルシステムが現在はボリューム d0 上にあることを示すように、/etc/system ファイルと /etc/vfstab ファイルを編集します。

  4. /etc/vfstab ファイルに正しいボリュームのエントリが含まれていることを確認します。

    /etc/vfstab ファイル内のルート (/) ファイルシステムのエントリは次のようになり、RAID-1 ボリュームを正しく参照しているはずです。

    #device           device              mount    FS      fsck   mount   mount
    #to mount         to fsck             point    type    pass   at boot options
    #
    /dev/md/dsk/d0    /dev/md/rdsk/d0     /        ufs     1      no      -
    /dev/dsk/c0t3d0s1 -                   -        swap    -      no      -
    /dev/dsk/c0t3d0s6 /dev/rdsk/c0t3d0s6  /usr     ufs     2      no      -
    #
    /proc             -                  /proc     proc    -      no      -
    swap              -                  /tmp      tmpfs   -      yes     -
  5. システムをリブートします。

    システムは通常の動作に戻ります。

ブートデバイスの障害から回復する方法

ルート (/) がミラー化されているシステムのブートデバイスに障害がある場合は、代替ブートデバイスを設定する必要があります。

このタスクの大まかな手順は次のとおりです。

ブートデバイスに障害が発生すると、最初に次のようなメッセージが表示されます。このメッセージは、アーキテクチャーによって異なる場合があります。

Rebooting with command:
Boot device: /iommu/sbus/dma@f,81000/esp@f,80000/sd@3,0   
The selected SCSI device is not responding
Can't open boot device
...

このメッセージが表示された場合は、そのデバイスを書き留めておきます。その後、次の手順に従ってください。

  1. ルート (/) の別のサブミラーからブートします。

    この例では、6 つの状態データベースの複製のうち 2 つだけがエラー状態なので、まだブートは可能です。そうでない場合は、アクセスできない状態データベースの複製をシングルユーザーモードで削除する必要があります。この手順については、「状態データベースの複製数の不足から回復する方法」を参照してください。

    ルート (/) ファイルシステムのミラーを作成したときに、その手順の中で代替ブートデバイスを書き留めてあるはずです。この例では、disk2 が代替ブートデバイスになります。

    ok boot disk2
    SunOS Release 5.9 Version s81_51 64-bit
    Copyright 1983-2001 Sun Microsystems, Inc.  All rights reserved.
    Hostname: demo
    ...
    demo console login: root
    Password: <root-password>
    Dec 16 12:22:09 host1 login: ROOT LOGIN /dev/console
    Last login: Wed Dec 12 10:55:16 on console
    Sun Microsystems Inc.   SunOS 5.9       s81_51  May 2002
    ...
  2. metadb コマンドを使用して、障害のある状態データベース複製の数を調べます。
    # metadb
           flags         first blk    block count
        M     p          unknown      unknown      /dev/dsk/c0t3d0s3
        M     p          unknown      unknown      /dev/dsk/c0t3d0s3
        a m  p  luo      16           1034         /dev/dsk/c0t2d0s3
        a    p  luo      1050         1034         /dev/dsk/c0t2d0s3
        a    p  luo      16           1034         /dev/dsk/c0t1d0s3
        a    p  luo      1050         1034         /dev/dsk/c0t1d0s3

    この例では、不良ディスクの一部であるスライス /dev/dsk/c0t3d0s3 上の状態データベースの複製は、システムから認識されなくなっています。

  3. metastat コマンドを使用して、ルート (/)、swap、および /usr の各ミラーの半分に障害があることを確認します。
    # metastat
    d0: Mirror
        Submirror 0: d10
          State: Needs maintenance
        Submirror 1: d20
          State: Okay
    ...
     
    d10: Submirror of d0
        State: Needs maintenance
        Invoke: "metareplace d0 /dev/dsk/c0t3d0s0 <new device>"
        Size: 47628 blocks
        Stripe 0:
        Device              Start Block  Dbase State        Hot Spare
        /dev/dsk/c0t3d0s0          0     No    Maintenance 
     
    d20: Submirror of d0
        State: Okay
        Size: 47628 blocks
        Stripe 0:
        Device              Start Block  Dbase State        Hot Spare
        /dev/dsk/c0t2d0s0          0     No    Okay  
     
    d1: Mirror
        Submirror 0: d11
          State: Needs maintenance
        Submirror 1: d21
          State: Okay
    ...
     
    d11: Submirror of d1
        State: Needs maintenance
        Invoke: "metareplace d1 /dev/dsk/c0t3d0s1 <new device>"
        Size: 69660 blocks
        Stripe 0:
        Device              Start Block  Dbase State        Hot Spare
        /dev/dsk/c0t3d0s1          0     No    Maintenance 
     
    d21: Submirror of d1
        State: Okay
        Size: 69660 blocks
        Stripe 0:
        Device              Start Block  Dbase State        Hot Spare
        /dev/dsk/c0t2d0s1          0     No    Okay        
     
    d2: Mirror
        Submirror 0: d12
          State: Needs maintenance
        Submirror 1: d22
          State: Okay
    ...
     
    d12: Submirror of d2
        State: Needs maintenance
        Invoke: "metareplace d2 /dev/dsk/c0t3d0s6 <new device>"
        Size: 286740 blocks
        Stripe 0:
        Device              Start Block  Dbase State        Hot Spare
        /dev/dsk/c0t3d0s6          0     No    Maintenance 
     
     
    d22: Submirror of d2
        State: Okay
        Size: 286740 blocks
        Stripe 0:
        Device              Start Block  Dbase State        Hot Spare
        /dev/dsk/c0t2d0s6          0     No    Okay  

    この例では、次のサブミラーの保守が必要であることが metastat コマンドで示されています。

    • サブミラー d10、デバイス c0t3d0s0

    • サブミラー d11、デバイス c0t3d0s1

    • サブミラー d12、デバイス c0t3d0s6

  4. システムを停止し、ディスクを交換します。format コマンドまたは fmthard コマンドを使用して、障害の発生前と同じようにディスクをパーティション分割します。

    ヒント - 新しいディスクが既存ディスク (この例では、ミラーの変更のない側) とまったく同じ場合は、新しいディスクを簡単にフォーマットできます。それには、prtvtoc /dev/rdsk/c0t2d0s2 | fmthard -s - /dev/rdsk/c0t3d0s2 コマンド (この例では c0t3d0) を使用します。


    # halt
    ...
    Halted
    ...
    ok boot
    ...
    # format /dev/rdsk/c0t3d0s0
  5. システムをリブートします。

    ルート (/) ミラーの他方の半分からリブートする必要があります。この代替ブートデバイスは、ミラーを作成したときに書き留めておいたものです。

    # halt
    ...
    ok boot disk2
  6. metadb コマンドを使用して、障害のある状態データベース複製を削除してから、再び追加します。
    # metadb
           flags         first blk    block count
        M     p          unknown      unknown      /dev/dsk/c0t3d0s3
        M     p          unknown      unknown      /dev/dsk/c0t3d0s3
        a m  p  luo      16           1034         /dev/dsk/c0t2d0s3
        a    p  luo      1050         1034         /dev/dsk/c0t2d0s3
        a    p  luo      16           1034         /dev/dsk/c0t1d0s3
        a    p  luo      1050         1034         /dev/dsk/c0t1d0s3
    # metadb -d c0t3d0s3
    # metadb -c 2 -a c0t3d0s3
    # metadb
           flags         first blk    block count
         a m  p  luo     16           1034         /dev/dsk/c0t2d0s3
         a    p  luo     1050         1034         /dev/dsk/c0t2d0s3
         a    p  luo     16           1034         /dev/dsk/c0t1d0s3
         a    p  luo     1050         1034         /dev/dsk/c0t1d0s3
         a        u      16           1034         /dev/dsk/c0t3d0s3
         a        u      1050         1034         /dev/dsk/c0t3d0s3
  7. metareplace コマンドを使用して、サブミラーを再び有効にします。
    # metareplace -e d0 c0t3d0s0
    Device /dev/dsk/c0t3d0s0 is enabled
     
    # metareplace -e d1 c0t3d0s1
    Device /dev/dsk/c0t3d0s1 is enabled
     
    # metareplace -e d2 c0t3d0s6
    Device /dev/dsk/c0t3d0s6 is enabled

    しばらくすると、再同期が完了します。これで、また元のデバイスからブートできるようになります。