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

第22章 Solaris ボリュームマネージャの保守 (作業)

この章では、Solaris ボリュームマネージャの一般的な記憶領域管理に関連する保守作業について説明します。

この章の内容は次のとおりです。

Solaris ボリュームマネージャの保守 (作業マップ)

次の表に、Solaris ボリュームマネージャの保守に必要な作業を示します。

作業 

説明 

参照先 

Solaris ボリュームマネージャ構成の表示 

Solaris ボリュームマネージャの GUI か metastat コマンドを使ってシステム構成を表示します。

「Solaris ボリュームマネージャのボリューム構成を表示するには 」

ボリューム名の変更 

Solaris ボリュームマネージャの GUI か metarename コマンドを使ってボリューム名を変更します。

「ボリューム名を変更するには」

構成ファイルの作成 

metastat -p コマンドと metadb コマンドを使って構成ファイルを作成します。

「構成ファイルを作成するには」

構成ファイルを使用した Solaris ボリュームマネージャの初期化 

metainit コマンドを使って構成ファイルから Solaris ボリュームマネージャを初期化します。

「構成ファイルを使って Solaris ボリュームマネージャを初期化するには」

使用できるボリューム数の変更 

/kernel/drv/md.conf ファイルを編集して、使用できるボリューム数を増やします。

「デフォルトのボリューム数を増やすには」

使用できるディスクセット数の変更 

/kernel/drv/md.conf ファイルを編集して、使用できるディスクセット数を増やします。

「デフォルトのディスクセット数を増やすには」

ファイルシステムの拡張 

growfs コマンドを使ってファイルシステムを拡張します。

「ファイルシステムを拡張するには」

コンポーネントの有効化 

Solaris ボリュームマネージャの GUI か metareplace コマンドを使ってコンポーネントを有効にします。

「コンポーネントの有効化」

コンポーネントの交換 (置き換え) 

Solaris ボリュームマネージャの GUI か metareplace コマンドを使ってコンポーネントを交換します。(置き換える)

「コンポーネントを他の使用可能なコンポーネントで置き換える」

Solaris ボリュームマネージャ構成の表示


ヒント

metastat の出力はソートされていません。 構成リストを編集したい場合は、metastat -p コマンドの出力を入力して sort または grep コマンドを実行してください。


ProcedureSolaris ボリュームマネージャのボリューム構成を表示するには

手順

    次のどちらかの方法でボリューム構成を表示します。

    • Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開きます。 詳細は、オンラインヘルプを参照してください。

    • 次の形式の metastat コマンドを実行します。


      metastat -p -i component-name
      
      • -p は、md.tab ファイルの作成に適した要約を出力することを意味します。

      • -i は、すべてのデバイスがアクセス可能かどうかを検証することを意味します。

      • component-name は表示するボリュームの名前です。 ボリューム名を指定しないと、すべてのコンポーネントが表示されます。


例 221 Solaris ボリュームマネージャのボリューム構成を表示する

次に、metastat コマンドの出力例を示します。


# metastat
d50: RAID
    State: Okay         
    Interlace: 32 blocks
    Size: 20985804 blocks
Original device:
    Size: 20987680 blocks
        Device              Start Block  Dbase State        Reloc  Hot Spare
        c1t4d0s5                 330     No    Okay         Yes    
        c1t5d0s5                 330     No    Okay         Yes    
        c2t4d0s5                 330     No    Okay         Yes    
        c2t5d0s5                 330     No    Okay         Yes    
        c1t1d0s5                 330     No    Okay         Yes    
        c2t1d0s5                 330     No    Okay         Yes    

d1: Concat/Stripe
    Size: 4197879 blocks
    Stripe 0:
        Device              Start Block  Dbase  Reloc
        c1t2d0s3                   0     No     Yes

d2: Concat/Stripe
    Size: 4197879 blocks
    Stripe 0:
        Device              Start Block  Dbase  Reloc
        c2t2d0s3                   0     No     Yes


d80: Soft Partition
    Device: d70
    State: Okay
    Size: 2097152 blocks
        Extent              Start Block              Block count
             0                        1                  2097152

d81: Soft Partition
    Device: d70
    State: Okay
    Size: 2097152 blocks
        Extent              Start Block              Block count
             0                  2097154                  2097152

d70: Mirror
    Submirror 0: d71
      State: Okay         
    Submirror 1: d72
      State: Okay         
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 12593637 blocks

d71: Submirror of d70
    State: Okay         
    Size: 12593637 blocks
    Stripe 0:
        Device              Start Block  Dbase State        Reloc  Hot Spare
        c1t3d0s3                   0     No    Okay         Yes    
    Stripe 1:
        Device              Start Block  Dbase State        Reloc  Hot Spare
        c1t3d0s4                   0     No    Okay         Yes    
    Stripe 2:
        Device              Start Block  Dbase State        Reloc  Hot Spare
        c1t3d0s5                   0     No    Okay         Yes    


d72: Submirror of d70
    State: Okay         
    Size: 12593637 blocks
    Stripe 0:
        Device              Start Block  Dbase State        Reloc  Hot Spare
        c2t3d0s3                   0     No    Okay         Yes    
    Stripe 1:
        Device              Start Block  Dbase State        Reloc  Hot Spare
        c2t3d0s4                   0     No    Okay         Yes    
    Stripe 2:
        Device              Start Block  Dbase State        Reloc  Hot Spare
        c2t3d0s5                   0     No    Okay         Yes    

hsp010: is empty

hsp014: 2 hot spares
        Device              Status      Length          Reloc
        c1t2d0s1            Available    617652 blocks  Yes
        c2t2d0s1            Available    617652 blocks  Yes

hsp050: 2 hot spares
        Device              Status      Length          Reloc
        c1t2d0s5            Available    4197879 blocks Yes
        c2t2d0s5            Available    4197879 blocks Yes

hsp070: 2 hot spares
        Device              Status      Length          Reloc
        c1t2d0s4            Available    4197879 blocks Yes
        c2t2d0s4            Available    4197879 blocks Yes

Device Relocation Information:
Device              Reloc       Device ID
c1t2d0              Yes         id1,sd@SSEAGATE_ST39204LCSUN9.0G3BV0N1S200002103AF29
c2t2d0              Yes         id1,sd@SSEAGATE_ST39204LCSUN9.0G3BV0P64Z00002105Q6J7
c1t1d0              Yes         id1,sd@SSEAGATE_ST39204LCSUN9.0G3BV0N1EM00002104NP2J
c2t1d0              Yes         id1,sd@SSEAGATE_ST39204LCSUN9.0G3BV0N93J000071040L3S
c0t0d0              Yes         id1,dad@s53554e575f4154415f5f53543339313430412525415933
 

例 Solaris ボリュームマネージャの大容量ボリュームの表示

次に、大容量記憶ボリューム (11T バイト) に対する metastat コマンドの出力例を示します。


# metastat d0
 d0: Concat/Stripe
    Size: 25074708480 blocks (11 TB)
    Stripe 0: (interlace: 32 blocks)
        Device      Start Block  Dbase  Reloc
        c27t8d3s0          0     No     Yes
        c4t7d0s0       12288     No     Yes
    Stripe 1: (interlace: 32 blocks)
        Device      Start Block  Dbase  Reloc
        c13t2d1s0      16384     No     Yes
        c13t4d1s0      16384     No     Yes
        c13t6d1s0      16384     No     Yes
        c13t8d1s0      16384     No     Yes
        c16t3d0s0      16384     No     Yes
        c16t5d0s0      16384     No     Yes
        c16t7d0s0      16384     No     Yes
        c20t4d1s0      16384     No     Yes
        c20t6d1s0      16384     No     Yes
        c20t8d1s0      16384     No     Yes
        c9t1d0s0       16384     No     Yes
        c9t3d0s0       16384     No     Yes
        c9t5d0s0       16384     No     Yes
        c9t7d0s0       16384     No     Yes
    Stripe 2: (interlace: 32 blocks)
        Device      Start Block  Dbase  Reloc
        c27t8d2s0      16384     No     Yes
        c4t7d1s0       16384     No     Yes
    Stripe 3: (interlace: 32 blocks)
        Device      Start Block  Dbase  Reloc
        c10t7d0s0      32768     No     Yes
        c11t5d0s0      32768     No     Yes
        c12t2d1s0      32768     No     Yes
        c14t1d0s0      32768     No     Yes
        c15t8d1s0      32768     No     Yes
        c17t3d0s0      32768     No     Yes
        c18t6d1s0      32768     No     Yes
        c19t4d1s0      32768     No     Yes
        c1t5d0s0       32768     No     Yes
        c2t6d1s0       32768     No     Yes
        c3t4d1s0       32768     No     Yes
        c5t2d1s0       32768     No     Yes
        c6t1d0s0       32768     No     Yes
        c8t3d0s0       32768     No     Yes

次の作業

詳細は、metastat(1M) のマニュアルページを参照してください。

ボリューム名の変更

ボリューム名を変更するための背景情報

metarename コマンドに -x オプションを指定することによって、親子関係のあるボリュームの名前を交換できます。 詳細は、「ボリューム名を変更するには」metarename(1M) のマニュアルページを参照してください。

Solaris ボリュームマネージャでは、多少の制約はありますが、ほとんどのタイプのボリューム名をいつでも変更できます。

ボリューム名の変更や交換は、ボリューム名を管理する上で便利な機能です。 たとえば、ファイルシステムのすべてのマウントポイントをある範囲の数値内に収めることができます。 あるいは、論理ボリュームの命名規則に従ってボリューム名を変更したり、トランザクションボリュームの名前にそのボリュームを構成しているボリュームが使用している名前と同じものを使用することができます。

ボリューム名を変更するときは、ボリュームが使用中でないことを確認してください。 ファイルシステムとして使用されている場合は、マウントされていたり、swap として使用されていないことを確認してください。 データベースなど、raw デバイスを使用するその他のアプリケーションは、独自の方法でデータへのアクセスを停止できる必要があります。

ボリューム名の変更に伴う特別な考慮事項は、次のとおりです。

ボリューム名の変更は、Solaris 管理コンソール内の「拡張ストレージ」かコマンド行 (metarename(1M) コマンド) から行うことができます。

ボリューム名の交換

metarename コマンドの -x オプションを使用すれば、ボリュームの名前とそのボリュームを構成するデバイスの名前を交換できます。 たとえば、この交換は、ミラーとそのサブミラーの間や、トランザクションボリュームとそのマスターデバイスの間で行うことができます。


ボリューム名の交換には、コマンド行を使用する必要があります。 この機能は、現在のところ Solaris ボリュームマネージャの GUI にはありません。 ただし、ボリューム名の変更はコマンド行からでも GUI からでも行えます。


metarename -x コマンドを使用すれば、既存ボリュームを簡単にミラー化したりミラー解除したりできます。あるいは、既存ボリュームからトランザクションボリュームを簡単に作成したり削除したりできます。


注意  注意

Solaris ボリュームマネージャのトランザクションボリュームは大容量ボリュームをサポートしません。 どのような場合でも、UFS ロギング (mount_ufs(1M) を参照) はトランザクションボリュームよりも高い性能を示します。


Procedureボリューム名を変更するには

手順
  1. ボリューム名の要件 (「ボリューム名」) と 「ボリューム名を変更するための背景情報」を確認します。

  2. このボリュームを使用するファイルシステムのマウントを解除します。

  3. 次のどちらかの方法でボリューム名を変更します。

    • Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、名前を変更するボリュームを選択します。 そのアイコンを右クリックし、「プロパティ (Properties)」オプションを選択して、画面の指示に従います。 詳細は、オンラインヘルプを参照してください。

    • 次の形式の metarename コマンドを実行します。


      metarename old-volume-name new-volume-name
      
      • old-volume-name は既存のボリュームの名前です。

      • new-volume-name は既存のボリュームに指定する新しい名前です。

      詳細は、metarename(1M) のマニュアルページを参照してください。

  4. 必要であれば、エントリが新しいボリューム名を参照するように /etc/vfstab ファイルを編集します。

  5. ファイルシステムを再びマウントします。


例 222 ファイルシステムとして使用されているボリュームの名前を変更する


# umount /home
# metarename d10 d100
d10: has been renamed to d100
(ファイルシステムが新しいボリュームを参照するように /etc/vfstab ファイルを編集する)
# mount /home

この例では、ボリュームの名前 d10d100 に変更します。 d10 にはマウントされているファイルシステムが格納されているため、ボリューム名を変更するためには、このファイルシステムのマウントを解除する必要があります。 このファイルシステムのエントリが /etc/vfstab ファイル内に存在している場合は、そのエントリが新しいボリューム名を参照するように変更します。 たとえば、次の行を見てください。


/dev/md/dsk/d10 /dev/md/rdsk/d10 /docs ufs 2 yes -

上記の行を次のように変更します。


/dev/md/dsk/d100 /dev/md/rdsk/d100 /docs ufs 2 yes -

次に、ファイルシステムを再びマウントします。

既存のミラーやトランザクションボリュームが存在する場合、metarename -x コマンドでミラーやトランザクションボリュームを削除しても、そのボリュームを構成するボリュームのデータは保持できます。 たとえば、トランザクションボリュームの場合には、マスターデバイスが ボリューム (RAID 0、RAID 1、または RAID 5 ボリューム) である限り、そのボリュームのデータは保持されます。


構成ファイルの使用

Solaris ボリュームマネージャの構成ファイルには、Solaris ボリュームマネージャの基本情報の他に、構成を再設定するのに必要なほとんどのデータが含まれています。 次の各項では、構成ファイルに関連する作業について説明します。

Procedure構成ファイルを作成するには

手順

    Solaris ボリュームマネージャ環境用のすべてのパラメータを適切に設定したら、metastat -p コマンドで /etc/lvm/md.tab ファイルを作成します。


    # metastat -p > /etc/lvm/md.tab
    

    このファイルには、metainitmetahs コマンドで使用するすべてのパラメータが記述されています。このファイルは、類似した複数の環境を設定したり、障害発生時に構成を再作成するときに使用されます。

    md.tab ファイルの詳細については、md.tab ファイルの概要 」を参照してください。

Procedure構成ファイルを使って Solaris ボリュームマネージャを初期化するには


注意  注意

この手順は、Solaris ボリュームマネージャの構成が完全に失われた場合、あるいは、保存されている構成ファイルから新たな構成を作成する場合だけに使用してください。


状態データベースに保持されていた情報が失われた場合 (たとえば、すべての状態データベースの複製が削除された後にシステムを再起動した) でも、md.cf または md.tab ファイルを使って Solaris ボリュームマネージャ構成を復元できます。ただし、状態データベースが失われた後にボリュームがまったく作成されていない場合に限ります。


md.cf ファイルには、アクティブなホットスペアの情報は格納されません。 そのため、Solaris ボリュームマネージャ構成が失われたときにホットスペアが使用されていると、アクティブなホットスペアを使用していたボリュームの内容は破壊されていることがあります。


これらのファイルの詳細については、md.cf(4)md.tab(4) のマニュアルページを参照してください。

手順
  1. 状態データベースの複製を作成します。

    詳細は、「状態データベースの複製の作成 」を参照してください。

  2. /etc/lvm/md.tab ファイルを作成または更新します。

    • Solaris ボリュームマネージャ構成最後の状態を回復する場合は、md.cf ファイルを md.tab ファイルにコピーします。

    • 保存されている md.tab ファイルのコピーを使って新しい Solaris ボリュームマネージャ構成を作成する場合は、このコピーを /etc/lvm/md.tab に置きます。

  3. 「新しい」md.tab ファイルを編集してから次の作業を行います。

    • 新しい構成を作成している場合や、クラッシュの後で構成を回復している場合には、ミラーを 1 面ミラーとして構成します。 ミラーの各サブミラーのサイズが同じでない場合は、もっとも小さいサブミラーをこの 1 面ミラーのために使用する必要があります。 そうしないと、データを失うおそれがあります。

    • 既存の構成を回復している場合、Solaris ボリュームマネージャが正常に終了しているのであれば、ミラー構成を多面ミラーのままにして回復します。

    • RAID 5 ボリュームの場合は、デバイスの再初期化を防止するために -k オプションを指定します。 詳細は、metainit(1M) のマニュアルページを参照してください。

  4. 次の形式の metainit コマンドを使って、md.tab ファイルのエントリの構文だけをチェックします (実際の処理は行われない)。


    # metainit -n -a component-name
    

    metainit コマンドに -n オプションを付けて実行した場合、同じ実行中にすでに仮想的に作成されているデバイスを記憶しません。このため、md.tab 内に記述された別のボリュームに依存するボリュームを作成しようとすると、-n オプションを指定しなければ正常に実行される場合でも -n オプションを指定するとエラーになることがあります。

    • -n は、デバイスを実際には作成しないことを意味します。 このオプションでは、期待どおりの結果が得られるかどうかだけを確認します。

    • -a は、デバイスをアクティブにすることを意味します。

    • component-name は、初期化するコンポーネントの名前です。 コンポーネントを指定しないと、すべてのコンポーネントが作成されます。

  5. 前の手順で特に問題がなければ、md.tab ファイルを使ってボリュームとホットスペア集合を作成し直します。


    # metainit -a component-name
    
    • -a は、デバイスをアクティブにすることを意味します。

    • component-name は、初期化するコンポーネントの名前です。 コンポーネントを指定しないと、すべてのコンポーネントが作成されます。

  6. 必要であれば、metattach コマンドを使用して、1 面ミラーを多面ミラーに変更します。

  7. ボリューム上のデータが正しいこと確認します。

Solaris ボリュームマネージャのデフォルト値の変更

Solaris ボリュームマネージャ構成では、次のデフォルト値が使用されています。

ボリュームの合計、名前空間、およびディスクセットの数のデフォルト値は、必要に報じて変更できます。 この節では、これらの値を変更する作業について説明します。

Procedureデフォルトのボリューム数を増やすには

/kernel/drv/md.conf ファイルの nmd フィールドは、使用できるボリューム数と、ボリュームが利用できる名前空間を割り当てます。 この作業では、デフォルトのボリューム数である 128 と、名前空間の デフォルトの範囲である d0 から d127 までを増やす方法について説明します。 デフォルト値より大きなボリューム数を構成する必要がある場合、この値は 8192 まで増やすことができます。


注意  注意

この数を減らした場合、前の数と新しい数の間にあるボリュームは使用不能になり、データを失うおそれがあります。 「md: d200: not configurable, check /kernel/drv/md.conf」というメッセージが表示された場合は、md.conf ファイルを編集し、この手順に従ってボリュームの数を増やす必要があります。


始める前に

「障害追跡の前提条件」を確認します。

手順
  1. /kernel/drv/md.conf ファイルを編集します。

  2. nmd フィールドの値を変更します。 設定できる最大数は 8192 です。

  3. 変更を保存します。

  4. 再構成のために再起動を行なってボリューム名を作成します。


    # reboot -- -r
    

例 223 デフォルトのボリューム数を増やす

ボリューム数として 256 が設定されている md.conf ファイルの例を以下に示します。


#
#ident "@(#)md.conf   1.7     94/04/04 SMI"
#
# Copyright (c) 1992, 1993, 1994 by Sun Microsystems, Inc.
#
#
#pragma ident   "@(#)md.conf    2.1     00/07/07 SMI"
#
# Copyright (c) 1992-1999 by Sun Microsystems, Inc.
# All rights reserved.
#
name="md" parent="pseudo" nmd=256 md_nsets=4;

Procedureデフォルトのディスクセット数を増やすには

この手順では、デフォルトのディスクセット数 4 を増やします。


注意  注意

ディスクセットがすでに設定されている場合は、デフォルトのディスクセット数を減らさないでください。 この数を減らすと、既存のディスクセットが使用不能になるおそれがあります。


始める前に

「障害追跡の前提条件」を確認します。

手順
  1. /kernel/drv/md.conf ファイルを編集します。

  2. md_nsets フィールドの値を変更します。 設定できる最大数は 32 です。

  3. 変更を保存します。

  4. 再構成のために再起動を行なってボリューム名を作成します。


    # reboot  -- -r
    

例 224 デフォルトのディスクセット数を増やす

5 つの共有ディスクセットを使用できるように設定されている md.conf ファイルの例を以下に示します。 md_nsets の値が 6 であるため、5 つの共有ディスクセットと 1 つのローカルディスクセットを使用できます。


#
#
#pragma ident   "@(#)md.conf    2.1     00/07/07 SMI"
#
# Copyright (c) 1992-1999 by Sun Microsystems, Inc.
# All rights reserved.
#
name="md" parent="pseudo" nmd=128 md_nsets=6;
# Begin MDD database info (do not edit)
...
# End MDD database info (do not edit)

growfs コマンドによるファイルシステムの拡張

ファイルシステムが格納されているボリュームを拡張 (領域を追加) したときに、そのボリュームに UFS が格納されている場合は、ファイルシステムを拡張して新しい領域が認識されるようにする必要があります。 ファイルシステムの拡張は、growfs コマンドを使って手動で行う必要があります。 growfs コマンドは、マウントされているファイルシステムも拡張できます。 ただし、growfs コマンドの実行中は、ファイルシステムに書き込みアクセスを行うことはできません。

データベースなど、raw デバイスを使用するアプリケーションは、独自の方法で領域を拡張できなければなりません。 Solaris ボリュームマネージャには、この機能はありません。

growfs コマンドは、ファイルシステムを拡張する間、マウントされているファイルシステムを「書き込みロック」します。 ファイルシステムが書き込みロックされている時間を短縮する必要がある場合は、ファイルシステムを段階的に拡張できます。 たとえば、1G バイトのファイルシステムを 2G バイトに拡張する場合は、-s オプションを使って新しいファイルシステムの合計サイズを拡張処理の各段階で指定することによって、ファイルシステムを 16M バイト単位で拡張できます。

拡張処理の間はファイルシステムが書き込みロックされるため、このファイルシステムへの書き込みは実行できません。 書き込みアクセスは growfs コマンドがファイルシステムのロックを解除するまで自動的に中断され、ロックが解除されると再開されます。 読み取りアクセスには影響はありませんが、ロックが行われている間の読み取りアクセス時間は保証されません。

スライスやボリュームを拡張するための背景情報


Solaris ボリュームマネージャのボリュームは拡張することはできますが、縮小することはできません。


Procedureファイルシステムを拡張するには

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

  2. growfs コマンドを使ってローカルボリュームの UFS を拡張します。


    # growfs -M /mount-point /dev/md/rdsk/volumename
    

    詳細は、次の例と growfs(1M) のマニュアルページを参照してください。


例 225 ファイルシステムを拡張する


# df -k
Filesystem            kbytes    used   avail capacity  Mounted on
...
/dev/md/dsk/d10        69047   65426       0   100%    /home2
...
# growfs -M /home2 /dev/md/rdsk/d10
/dev/md/rdsk/d10:       295200 sectors in 240 cylinders of 15 tracks, 82 sectors
        144.1MB in 15 cyl groups (16 c/g, 9.61MB/g, 4608 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 19808, 39584, 59360, 79136, 98912, 118688, 138464, 158240, 178016, 197792,
 217568, 237344, 257120, 276896,
# df -k
Filesystem            kbytes    used   avail capacity  Mounted on
...
/dev/md/dsk/d10       138703   65426   59407    53%    /home2
...

この例では、新しいスライスがボリューム d10 にすでに追加されています。このボリュームには、マウントされているファイルシステム /home2 があります。 growfs コマンドでは、-M オプションを使ってマウントポイントに /home2 を指定し、これを raw ボリューム /dev/md/rdsk/d10 上に拡張します。 growfs コマンドが終了すると、このファイルシステムはボリューム全体を占めます。 拡張の前後で df -hk コマンドを使用すれば、全体のディスク容量を確認できます。

ミラーやトランザクションボリュームの場合は、サブミラーやマスターデバイスに領域を追加する場合でも、必ずトップレベルのボリューム (サブミラーやマスターデバイスではなく) に対して growfs コマンドを実行する必要があります。


RAID 1 および RAID 5 ボリューム内のコンポーネントの交換と有効化の概要

Solaris ボリュームマネージャには、RAID 1 (ミラー) ボリュームおよび RAID 5 ボリューム内のコンポーネントを交換したり有効にしたりする機能があります。

Solaris ボリュームマネージャでは、コンポーネントの交換は、サブミラーまたは RAID 5 ボリューム内のコンポーネントをシステム上で使用可能な他のコンポーネントと交換することを意味します。 このプロセスは、コンポーネントの物理的な交換ではなく論理的な交換です。 「コンポーネントを他の使用可能なコンポーネントで置き換える」を参照してください。

コンポーネントの有効化とは、コンポーネントをアクティブにする (または、コンポーネントをそれ自身で置き換える) ことを意味します。したがって、コンポーネント名は変わりません。 「コンポーネントの有効化」を参照してください。


ディスクエラーから回復するときは、 /var/adm/messages を調べ、どのような種類のエラーが発生したかを確認してください。 エラーが一時的なものであり、ディスク自体に問題がない場合は、コンポーネントを有効にしてみます。 また、format コマンドを使ってディスクをテストすることもできます。


コンポーネントの有効化

コンポーネントを有効にする必要があるのは次のような場合です。


交換対象のドライブ上に状態データベースの複製やホットスペアがないか必ずチェックしてください。 状態データベースの複製がエラー状態になっている場合は、ディスクを交換する前にその複製を削除し、 交換後にコンポーネントを有効にしてから同じサイズで作成し直す必要があります。 ホットスペアについても同じように処理してください。


コンポーネントを他の使用可能なコンポーネントで置き換える

既存のコンポーネントを他の未使用のコンポーネントで置き換える (または交換する) には、metareplace コマンドを使用します。

このコマンドを使用できるのは、次のような場合です。

「保守 (Maintenance)」状態と「最後にエラー (Last Erred)」状態

ミラーや RAID 5 ボリュームのコンポーネントにエラーが発生すると、Solaris ボリュームマネージャはそのコンポーネントを「保守 (Maintenance)」状態にします。 これ以降、「保守 (Maintenance)」状態のコンポーネントには読み書きは実行されません。 同じボリューム内の他のコンポーネントで次のエラーが発生した場合、そのエラーの処理方法は、ボリュームのタイプによって異なります。 RAID 1 ボリュームでは、多数のコンポーネントが「保守 (Maintenance)」状態になっても、読み取りや書き込みを継続できることがあります。 RAID 5 ボリュームは、その定義からして、「保守 (Maintenance)」状態のコンポーネントが 1 つだけであれば、引き続き動作します。

RAID 0 や RAID 5 ボリュームのコンポーネントにエラーが発生したときに、読み取りに使用できる冗長なコンポーネントが存在しない場合 (たとえば、RAID 5 ボリューム内の 1 つのコンポーネントが「保守 (Maintenance)」状態になった場合)、次に障害が発生したコンポーネントは「最後にエラー (Last Erred)」状態になります。ミラーまたは RAID 5 ボリュームに「最後にエラー (Last erred)」状態のコンポーネントがある場合、入出力はこれまでどおり「最後にエラー (Last erred)」に指定されたコンポーネントに対しても行われます。 これは、Solaris ボリュームマネージャからは「最後にエラー (Last Erred)」状態のコンポーネントに最新の正しいデータコピーが含まれているように見えるからです。 「最後にエラー (Last Erred)」状態のコンポーネントを含むボリュームは正常なデバイス (ディスク) のように動作し、アプリケーションに入出力エラーを返します。 通常、この時点では、データの一部がすでに失われています。

必ず「保守 (Maintenance)」状態のコンポーネントを先に交換してから、「最後にエラー (Last Erred)」状態のコンポーネントを交換します。 コンポーネントを交換して再同期を取ったら、metastat コマンドを使ってコンポーネントの状態を確認し、データが正しいことを検証します。

ミラー コンポーネントが「保守 (Maintenance)」状態である限り、データは失われていません。 コンポーネントをどのような順序で置き換え、有効にしてもかまいません。 コンポーネントが「最後にエラー (Last Erred)」状態の場合は、「保守 (Maintenance)」状態のほかのすべてのコンポーネントを置き換えてから、このコンポーネントを置き換えます。 「最後にエラー (Last Erred)」状態のコンポーネントを交換したり有効にすることは、通常、一部のデータがすでに失われていることを意味します。 ミラーを修復したら、必ずデータを検証してください。

RAID 5 ボリューム RAID 5 ボリュームは、1 つのコンポーネントの障害に耐えることができます。 「保守 (Maintenance)」状態のコンポーネントが 1 つである限り、そのコンポーネントを置き換えてもデータが失われることはありません。 ほかのコンポーネントに障害が発生すると、そのコンポーネントは「最後にエラー (Last Erred)」状態になります。 この時点で RAID 5 ボリュームは読み取り専用になります。 必要な回復処置を行なって、RAID 5 ボリュームを安定状態にし、データ損失の可能性を減らします。 RAID 5 ボリュームが「最後にエラー (Last Erred)」状態の場合には、データがすでに失われている可能性高くなります。 RAID 5 ボリュームを修復したら、必ずデータを検証してください。

RAID 1 および RAID 5 ボリューム内のスライスを交換または有効にするための背景情報

ミラーまたは RAID 5 ボリューム内のコンポーネントを交換する場合には、次の指針に従ってください。


サブミラーや RAID 5 ボリュームは、障害が発生したコンポーネントの代わりにホットスペアを使用していることがあります。 障害が発生したコンポーネントをこの手順で有効にしたり、交換すると、そのホットスペアはホットスペア集合で「使用可能 (Available)」状態に戻り、使用可能になります。