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

第7章 状態データベース (作業)

この章では、Solaris ボリュームマネージャの状態データベースの複製に関連する作業について説明します。 これらの作業に関連する概念については、第6章「状態データベース (概要)」を参照してください。

状態データベースの複製 (作業マップ)

次の表に、Solaris ボリュームマネージャの状態データベースの複製を管理するのに必要な作業を示します。

作業 

説明 

参照先 

状態データベースの複製の作成 

Solaris ボリュームマネージャの GUI か metadb -a コマンドを使って状態データベースの複製を作成します。

「状態データベースの複製を作成するには 」

状態データベースの複製の状態チェック 

Solaris ボリュームマネージャの GUI か metadb -a コマンドを使って、既存の複製の状態をチェックします。

「状態データベースの複製の状態をチェックするには」

状態データベースの複製の削除 

Solaris ボリュームマネージャの GUI か metadb -a コマンドを使って状態データベースの複製を削除します。

「状態データベースの複製を削除するには」

状態データベースの複製の作成


注意  注意

Solstice DiskSuite から Solaris ボリュームマネージャにアップグレードしたときに、スライスが、状態データベースの複製とファイルシステムまたは論理ボリュームの間で共有されている (それぞれが異なるスライス上に置かれていない) 場合は、既存の複製を削除して、同じ場所に新しいデフォルトの複製を作成しないでください。

Solaris ボリュームマネージャの状態データベースの複製のデフォルトサイズは 8192 ブロックですが、Solstice DiskSuite のデフォルトサイズは 1034 ブロックです。 Solstice DiskSuite のデフォルトサイズの状態データベースの複製を削除し、Solaris ボリュームマネージャでデフォルトサイズの新しい複製を追加すると、共有スライスの残りの部分を占めているファイルシステムの先頭の 7158 ブロックが上書きされ、データが破壊されてしまいます。



注意  注意

Solstice DiskSuite のデフォルトサイズ (1034 ブロック) の状態データベースの複製がファイルシステムとスライスを共有している場合は、その複製を Solaris ボリュームマネージャのデフォルトサイズの複製 (8192 ブロック) で置き換えないでください。 置き換えると、新しい複製がファイルシステムの先頭の部分を上書きしてしまうため、データが破壊されてしまいます。



注意  注意

ファブリック接続型記憶領域 (FAS)、SAN などの、システムに直接接続されていない記憶領域に、状態データベースの複製を格納しないでください。 複製は、起動プロセス中の従来の SCSI または IDE ドライブと同じ時点で使用できる記憶デバイスに格納しなければなりません。


Procedure状態データベースの複製を作成するには

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

  2. 次のどちらかの方法で状態データベースの複製を作成します。

    • Solaris 管理コンソール内の「拡張ストレージ」から「状態データベースの複製」ノードを開きます。 「アクション (Action)」、「複製の作成 (Create Replicas)」の順に選択し、画面の指示に従います。 詳細については、オンラインヘルプを参照してください。

    • 次の形式の metadb コマンドを実行します。 詳細は、metadb(1M) のマニュアルページを参照してください。


      metadb -a -c n -l nnnn -f ctds-of-slice
      
      • -a は、状態データベースの複製を追加します。

      • -f は、複製が存在しなくても強制的に操作を実行します。

      • -c n には、指定したスライスに追加する複製の数を指定します。

      • -l nnnn には、新しい複製のサイズをブロック数で指定します。

      • ctds-of-slice には、複製を格納するコンポーネントの名前を指定します。

      最初の複製を強制的に追加するには、-f フラグを指定します。


例 71 最初の状態データベースの複製を作成する


# metadb -a -f c0t0d0s7
# metadb
        flags         first blk      block count
...
     a      u         16             8192            /dev/dsk/c0t0d0s7

-a オプションは状態データベースの複製をシステムに追加し、-f オプションは最初の複製を強制的に作成します。2 番目以後の複製を追加するときは、-f オプションは省略できます。



例 72 2 つの状態データベースの複製を同じスライスに追加する


# metadb -a -c 2 c1t3d0s1
# metadb
        flags         first blk      block count
...
     a        u         16              8192            /dev/dsk/c1t3d0s1
     a        u         8208            8192            /dev/dsk/c1t3d0s1

-a オプションは、状態データベースの複製をシステムに追加します。 -c 2 オプションは、指定したスライスに 2 つの複製を格納します。 metadb コマンドは、これらの複製が有効であるかどうかをチェックします (a フラグで示される)。

また、-l オプションでブロック数を指定すると、状態データベースの複製のサイズを指定できます。 ただし、デフォルトのサイズ (8192) は、数千の論理ボリュームを持つ構成を含め、事実上すべての構成に適しています。



例 73 指定したサイズの状態データベースの複製を追加する

既存の状態データベースの複製を置き換える場合は、複製のサイズを指定しなければならない場合があります。 特に、ファイルシステムとスライスを共有している状態データベースの複製がすでに存在している場合は (たとえば、Solstice DiskSuite からアップグレードした場合など)、既存の複製を同じサイズの複製で置き換えるか、別の場所に新しい複製を作成する必要があります。


# metadb -a -c 3 -l 1034 c0t0d0s7
# metadb
        flags         first blk      block count
...
     a      u         16             1034            /dev/dsk/c0t0d0s7
     a      u         1050           1034            /dev/dsk/c0t0d0s7
     a      u         2084           1034            /dev/dsk/c0t0d0s7

-a オプションは、状態データベースの複製をシステムに追加します。-l オプションは、追加する複製のサイズをブロック数で指定します。


状態データベースの複製の保守

Procedure状態データベースの複製の状態をチェックするには

手順

    次のどちらかの方法で状態データベースの複製の状態をチェックします。

    • Solaris 管理コンソール内の「拡張ストレージ」から「状態データベースの複製 (State Database Replicas)」ノードを開いて、存在するすべての状態データベースの複製の状態を表示します。 詳細については、オンラインヘルプを参照してください。

    • metadb コマンドを実行して、状態データベースの複製の状態を表示します。 -i オプションを指定すると、すべての状態フラグについての説明が表示されます (次の例を参照)。 詳細は、metadb(1M) のマニュアルページを参照してください。


例 74 すべての状態データベースの複製の状態をチェックする


# metadb -i
        flags           first blk       block count
     a m  p  luo        16              8192            /dev/dsk/c0t0d0s7
     a    p  luo        8208            8192            /dev/dsk/c0t0d0s7
     a    p  luo        16400           8192            /dev/dsk/c0t0d0s7
     a    p  luo        16              8192            /dev/dsk/c1t3d0s1
      W   p  l          16              8192            /dev/dsk/c2t3d0s1
     a    p  luo        16              8192            /dev/dsk/c1t1d0s3
     a    p  luo        8208            8192            /dev/dsk/c1t1d0s3
     a    p  luo        16400           8192            /dev/dsk/c1t1d0s3
 r - replica does not have device relocation information
 o - replica active prior to last mddb configuration change
 u - replica is up to date
 l - locator for this replica was read successfully
 c - replica's location was in /etc/lvm/mddb.cf
 p - replica's location was patched in kernel
 m - replica is master, this is replica selected as input
 W - replica has device write errors
 a - replica is active, commits are occurring to this replica
 M - replica had problem with master blocks
 D - replica had problem with data blocks
 F - replica had format problems
 S - replica is too small to hold current data base
 R - replica had device read errors

状態表示の後にすべてのフラグの説明が表示されます。 デバイス名の前の文字はデバイスの状態を示します。 大文字は障害状態を、 小文字は「Okay」状態を示します。


Procedure状態データベースの複製を削除するには

Solaris ボリュームマネージャ構成を保守するために、状態データベースの複製を削除しなければならない場合があります。 たとえば、ディスクドライブを交換する場合には、Solaris ボリュームマネージャがエラーと認識しないように、ドライブを取り外す前に状態データベースの複製を削除します。

手順

    次のどちらかの方法で状態データベースの複製を削除します。

    • Solaris 管理コンソール内の「拡張ストレージ」から「状態データベースの複製 (State Database Replicas)」ノードを開いて、存在するすべての状態データベースの複製の状態を表示します。 次に、削除する複製を選択してから「編集 (Edit)」、「削除 (Delete)」の順に選択して複製を削除します。 詳細については、オンラインヘルプを参照してください。

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


      metadb -d -f ctds-of-slice
      
      • -d は、状態データベースの複製を削除します。

      • -f は、複製が存在しなくても強制的に操作を実行します。

      • ctds-of-slice には、複製が格納されているコンポーネントの名前を指定します。

      削除したい状態データベースの複製が格納されているすべてのスライスを指定する必要があります。 詳細は、metadb(1M) のマニュアルページを参照してください。


例 75 状態データベースの複製を削除する


# metadb -d -f c0t0d0s7

この例では、スライスから最後の複製を削除します。

システム上にある最後の複製を強制的に削除するには、-f オプションを指定する必要があります。