この章では、Solaris ボリュームマネージャの状態データベースの複製に関連する作業について説明します。これらの作業に伴う概念については、第 5 章「状態データベース (概要)」を参照してください。
次の表に、Solaris ボリュームマネージャの状態データベースの複製を管理するのに必要な作業を示します。
作業 |
説明 |
参照先 |
---|---|---|
状態データベースの複製の作成 | Solaris ボリュームマネージャの GUI か metadb -a コマンドを使って状態データベースの複製を作成します。 | 状態データベースの複製を作成するには |
状態データベースの複製の状態チェック | Solaris ボリュームマネージャの GUI か metadb -a コマンドを使って、既存の複製の状態をチェックします。 | 状態データベースの複製の状態をチェックするには |
状態データベースの複製の削除 | Solaris ボリュームマネージャの GUI か metadb -a コマンドを使って状態データベースの複製を削除します。 | 状態データベースの複製を削除するには |
Solstice DiskSuiteTMから Solaris ボリュームマネージャにアップグレードしたときに、スライスが、状態データベースの複製とファイルシステムまたは論理ボリュームの間で共有されている (それぞれが異なるスライス上に置かれていない) 場合は、既存の複製を削除して、同じ場所に新しいデフォルトの複製を作成しないでください。
Solaris ボリュームマネージャの状態データベースの複製のデフォルトサイズは 8192 ブロックですが、Solstice DiskSuite のデフォルトサイズは 1034 ブロックです。Solstice DiskSuite のデフォルトサイズの状態データベースの複製を削除し、Solaris ボリュームマネージャでデフォルトサイズの新しい複製を追加すると、共有スライスの残りの部分を占めているファイルシステムの先頭の 7158 ブロックが上書きされ、データが破壊されてしまいます。
ファブリックに接続された記憶領域、SAN などの、システムに直接接続されていない記憶領域に、状態データベースの複製を格納しないでください。複製は、従来の SCSI または IDE ドライブと同じ起動プロセス点で使用できる記憶領域に格納しなければなりません。
Solaris ボリュームマネージャ要素を作成するための前提条件をチェックします。
次のどちらかの方法で状態データベースの複製を作成します。
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 フラグを指定します。
オプションを指定しないと、 metadb コマンドはすべての複製の状態を表示します。
# metadb -a -f c0t0d0s7 # metadb flags first blk block count ... a u 16 8192 /dev/dsk/c0t0d0s7 |
-a オプションは状態データベースの複製をシステムに追加し、-f オプションは最初の複製を強制的に作成します。2 番目以後の複製を追加するときは、-f オプションは省略できます。
# 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) は、数千の論理ボリュームを持つ構成を含め、事実上すべての構成に適しています。
既存の状態データベースの複製を置き換える場合は、複製のサイズを指定しなければならない場合があります。特に、ファイルシステムとスライスを共有している状態データベースの複製がすでに存在している場合は (たとえば、Solstice DiskSuite からアップグレードした場合など)、既存の複製を同じサイズの複製で置き換えるか、別の場所に新しい複製を作成する必要があります。
Solstice DiskSuite のデフォルトサイズ (1034 ブロック) の状態データベースの複製がファイルシステムとスライスを共有している場合は、その複製を Solaris ボリュームマネージャのデフォルトサイズの複製で置き換えないでください。置き換えると、新しい複製がファイルシステムの先頭の部分を上書きしてしまうため、データが破壊されてしまいます。
# 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 オプションは、追加する複製のサイズをブロック数で指定します。
次のどちらかの方法で状態データベースの複製の状態をチェックします。
Solaris 管理コンソール内の「拡張ディスク」から「状態データベースの複製 (State Database Replicas)」ノードを開いて、存在するすべての状態データベースの複製の状態を表示します。詳細は、オンラインヘルプを参照してください。
metadb コマンドを実行して、状態データベースの複製の状態を表示します。-i オプションを指定すると、複製の状態と、すべての状態フラグについての説明が表示されます。詳細は、metadb(1M) のマニュアルページを参照してください。
# 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」状態を示します。
Solaris ボリュームマネージャ構成を保守するために、状態データベースの複製を削除しなければならない場合があります。たとえば、ディスクドライブを交換する場合には、Solaris ボリュームマネージャがエラーと認識しないように、ドライブを取り外す前に状態データベースの複製を削除します。
次のどちらかの方法で状態データベースの複製を削除します。
Solaris 管理コンソール内の「拡張ディスク」から「状態データベースの複製 (State Database Replicas)」ノードを開いて、存在するすべての状態データベースの複製の状態を表示します。次に、削除する複製を選択してから「編集 (Edit)」、「削除 (Delete)」の順に選択して複製を削除します。詳細は、オンラインヘルプを参照してください。
次の形式の metadb コマンドを使用します。
metadb -d -f ctds-of-slice |
-d は、状態データベースの複製を削除します。
-f は、複製が存在しなくても強制的に操作を実行します。
ctds-of-slice には、複製が格納されているコンポーネントの名前を指定します。
削除したい状態データベースの複製が格納されているすべてのスライスを指定する必要があります。詳細は、metadb(1M) のマニュアルページを参照してください。
# metadb -d -f c0t0d0s7 |
この例では、スライスから最後の複製を削除します。
システム上にある最後の複製を強制的に削除するには、-f オプションを指定する必要があります。