この節では、システム構成にもとづいて初期状態データベースを作成する方法について説明します。
状態データベースの複製には、DiskSuite の構成と状態情報が格納されます。DiskSuite を使用するには、その前に状態データベースの複製を作成しなければなりません。
状態データベースの複製は、少なくとも 3 つ作成します。状態データベースの複製が任意の時点で半分以上使用できる場合、システムは実行を継続します。使用できる状態データベースの複製の数が半分を割ると、システムはパニック状態になります。使用できる状態データベースの複製の数が全体の半分以上でないとシステムはリブートせず、代わりに管理操作用のシングルユーザーモードになります。
要求された状態データベースの複製の概算値は、システムのハードドライブの数にもとづいて、表 1-1 の概算値を使用します。必要に応じて調整してください。
表 1-1 要求された状態データベースの複製の概算値
ハードドライブの数 |
作成する状態データベースの複製の数 |
---|---|
1 |
3 つ、すべて 1 つのスライスで1 |
2 〜 4 |
各ドライブに 2 つ |
5 以上 |
各ドライブに 1 つ |
この構成では、システムのアキレス腱となる部分が生まれるため、好ましくない。
2 ドライブ構成では、各ドライブに状態データベースの複製を必ず 2 つ作成してください。その理由は、たとえば一方のスライスには状態データベースの複製を 2 つ作成し、他方のスライスには状態データベースの複製を 1 つしか作成しなかったとすると、状態データベースの複製を 2 つもつスライスに障害が発生した場合、残りのスライスには状態データベースの複製が 1 つしかないため、DiskSuite は機能できないからです。状態データベースの複製の操作については、『Solstice DiskSuite 4.2.1 リファレンス』を参照してください。
状態データベースの複製を作成できるのは、専用のスライス上、あるいはシンプルメタデバイス、RAID5 メタデバイス、トランスメタデバイスの一部として使用されるスライス上です。状態データベースの複製の位置を計画する際のガイドラインについては、『Solstice DiskSuite 4.2.1 リファレンス』を参照してください。
初期状態データベースの複製を作成するには、次の 3 つの方法のいずれかを使用します。これらの方法は、システム上のスライスの構成方法によって決まります。システムに使用できるスライスが存在しない場合、または既存スライスのパーティションを再分割できない場合には、DiskSuite ソフトウェアを使用することはできません。
最初から始める : 新しいシステムがある場合、状態データベースの複製を作成する最も簡単な方法としては、シンプルメタデバイス (ストライプ / 連結)、RAID5 メタデバイス、またはトランスメタデバイスの一部となるスライス上に、状態データベースの複製を置く方法があります。状態データベースの複製は、ルート (/)、swap、/usr、既存のファイルシステム、およびデータを含んだスライスの一部となることはできません。
新しいシステムの場合は、「初期状態データベースの複製を最初から作成する方法 (DiskSuite ツール)」を参照してください。
状態データベースの複製とメタデバイスを同じスライス上にあわせもつ場合、DiskSuite が状態データベースの複製を検出し、それに応じてメタデバイスのサイズと開始アドレスを調節します。この方法のメリットは、スライスのパーティション再分割など余分な操作が不要になり、スライス上の領域を状態データベースの複製のためにだけ確保することによる領域のムダを心配する必要がないことです。
既存の未使用スライスを使用して始める : 既存の構成に未使用の専用スライスがある場合、状態データベースの複製をこれらのスライス上に置きます。
しかし、状態データベースの複製は比較的に小さい (517K バイト、または 1034 セクター) ため、小さな状態データベースの複製を保持するために必要以上に大きなスライスを確保することはありません。スライスによっては、現在よりも小さくした方がよいこともあります。
既存の未使用スライスがある場合、「既存の未使用スライスに初期状態データベースの複製を作成する方法 (DiskSuite ツール)」を参照してください。
未使用スライスのないところから始める : 既存の構成に使用できるスライスがない場合、状態データベースの複製用の領域は、swap など他のスライスから「奪取する」必要があります。この場合、「swap パーティションから領域を割り当て、状態データベースの複製を作成する方法」を参照してください。
ファイルシステムやデータベースによって使用されているスライスには、状態データベースの複製を置かないでください。そのスライス上にあるデータがすべて破壊されます。
このセクションで説明する作業の前提条件を次に示します。
現在のデータをすべてバックアップしている。
Solstice DiskSuite 4.2.1 ソフトウェアをインストールしている (DiskSuiteのインストールについては、『Solstice DiskSuite 4.2.1 ご使用にあたって』を参照)。
ルート (スーパーユーザー) 権限を持っている。
この作業では、DiskSuite ツールの 3 つのウィンドウを使用して構成を識別および表示し、状態データベースの複製をスライス上に置く方法を示します。
前提条件 (「状態データベースの複製の前提条件」) を満たし、予備情報 (「状態データベースの複製を作成するための予備情報」) を読んでいることを確認する。
表 1-1の表にもとづいて、必要となる状態データベースの複製の数を決定する。
スーパーユーザーになって DiskSuite ツールを起動し、構成の識別と表示を行う。
# metatool & |
DiskSuite を初めて実行すると、次のメッセージが表示される。「了解」をクリックして続行する。
オブジェクトリストから、MetaDB オブジェクトをキャンバスにドラッグする。
オブジェクトのドラッグには、マウスの ADJUST ボタン (デフォルトでは中央ボタン) を使用します。
この MetaDB オブジェクトは、ご使用の構成に含まれるすべての状態データベースの複製を表わします (含みます)。最初から始めるため、MetaDB オブジェクトには、状態データベースの複製を追加する必要があることを示すために、「重大な障害」ラベルが付いています。
「ディスク表示」をクリックして、「ディスク表示」ウィンドウを表示する。
「ディスク表示」ウィンドウの「表示」メニューから「すべてのコントローラを表示」を選択する。
これにより、記憶領域の構成 (コントローラ、ディスク、スライス) が表示されます。「ディスク表示」ウィンドウの「表示」メニューを使用して、50%、100%、200% の表示を設定できます。デフォルトは 100% です。
スライスをクリックして、「スライスブラウザ」ウィンドウを表示する。
このウィンドウは、スライスの状態と現在の使用状況を表示します (スライスの上にカーソルを置くと、「ディスク表示」ウィンドウのメッセージ行 (最下行) にこの情報が表示されます)。
「ディスク表示」ウィンドウに表示されたディスクまたは「スライスブラウザ」ウィンドウから、使用できるスライスをキャンバス内の MetaDB オブジェクトにドラッグすることによって、MetaDB オブジェクトを構築 (状態データベースの複製を作成) する。
「ディスク表示」ウィンドウを開いたときに MetaDB オブジェクトが選択されている限り、スライスが MetaDB オブジェクトの中に置かれると、「ディスク表示」ウィンドウでは、状態データベースの複製が収められているスライスが着色されます (カラー画面では青色、モノクロ画面では黒色)。この機能は、たとえば、複数のコントローラにまたがって状態の複製を探す場合に役立ちます。
冗長性を確保するためには、コントローラ全体にわたって状態データベースの複製をバランスよく配分することが大切です。多数のディスクを備えた構成の場合、状態データベースの複製を各ディスクに置きます (「ディスク表示」ウィンドウの「フィルタの設定」ボタンをクリックすれば、現在使用されていないスライスを選別できます)。
[オプション] 複数の状態データベースの複製を同じスライスに追加する、MetaDB オブジェクトの「情報」ウィンドウを表示する、「スライス」フィールドにスライス名を入力する、「複製」フィールドに追加する複製の数を入力する、「接続」をクリックしてから「閉じる」をクリックする。
この方法では、スライス上の状態データベースの複製の数を「変更」することはできません。最初に指定できるだけです。
MetaDB オブジェクトを選択してから、「確定」をクリックする。
コンフィグレーションログを表示して、MetaDB オブジェクトが確定されたことを確認する。
「ブラウズ」メニューから「コンフィグレーションログ」を選択します。
この例では、6 つのスライスから成る確定済みの MetaDB オブジェクトを示します。それぞれのスライスには、1 つの状態データベースの複製が含まれます。MetaDB オブジェクトの状態は「正常」であり、状態データベースの複製がとりあえず 3 つのコントローラに分散されていることを示します。
この作業は前のものと同等のものです。ここでは、コマンド行ユーティリティを使用して、状態データベースの複製を作成する方法を示します。
「状態データベースの複製の前提条件」の前提条件と 「状態データベースの複製を作成するための予備情報」の予備情報を確認した後で、metadb(1M) コマンドを使用して、状態データベースの複製を作成します。詳細については、metadb(1M) のマニュアルページを参照してください。
metadb(1M) コマンドを初めて実行すると、システムは、このホストには状態データベースの複製が存在しないことを示す警告メッセージを表示します。このメッセージは無視してください。このメッセージが表示されるのは、状態データベースの複製を初めて作成するときだけです。
# metadb -a -f c0t1d0s3 c1t1d0s3 c2t1d0s3 c3t1d0s3 c4t1d0s3 # metadb flags first blk block count a u 16 1034 /dev/dsk/c0t1d0s3 a u 16 1034 /dev/dsk/c1t1d0s3 a u 16 1034 /dev/dsk/c2t1d0s3 a u 16 1034 /dev/dsk/c3t1d0s3 a u 16 1034 /dev/dsk/c4t1d0s3 |
-a と -f のオプションは、初期状態データベースの複製を作成するために、一緒に使用されます。5 つの初期状態データベースの複製が、5 つの各スライスに 1 つずつ作成されます。状態データベースの複製をコントローラ全体に分散させることによって、メタデバイスのパフォーマンスと信頼性を向上させることができます。metadb コマンドは、-a フラグで示されるように、複製がアクティブであることをチェックします。
# metadb -a -f -c 2 c0t1d0s3 c1t1d0s3 c2t1d0s3 # metadb flags first blk block count a u 16 1034 /dev/dsk/c0t1d0s3 a u 1050 1034 /dev/dsk/c0t1d0s3 a u 16 1034 /dev/dsk/c1t1d0s3 a u 1050 1034 /dev/dsk/c1t1d0s3 a u 16 1034 /dev/dsk/c2t1d0s3 a u 1050 1034 /dev/dsk/c2t1d0s3 |
-a と -f のオプションは、初期状態データベースの複製を作成するために、一緒に使用されます。-c 2 オプションは、2 つの状態データベースの複製を指定された各スライスに置き、合計で 6 つの複製を作成します。状態データベースの複製をコントローラ全体に分散させることによって、メタデバイスのパフォーマンスと信頼性を向上させることができます。metadb コマンドは、-a フラグで示されるように、複製がアクティブであることをチェックします。
# metadb -a -f -c 3 c0t0d0s3 # metadb flags first blk block count a u 16 1034 /dev/dsk/c0t0d0s3 a u 1050 1034 /dev/dsk/c0t0d0s3 a u 2084 1034 /dev/dsk/c0t0d0s3 |
この例に示すシステムは、1 つのディスクだけで構成されています (DiskSuite は、その UFS ロギング機能を実現するためにインストールされています)。-a と -f のオプションは、初期状態データベースの複製を作成するために、一緒に使用されます。-c 3 オプションは、システムの唯一のディスクの同じスライスに、状態データベースの複製を 3 つ作成します。metadb コマンドは、-a フラグで示されるように、複製がアクティブであることをチェックします。
この 1 ディスク構成では、システムのアキレス腱となる部分が生まれるため、他に選択肢のない場合にのみ使用します。
この作業では、状態データベースの複製を保持するスライスのサイズを変更します。たいていのスライスでは、状態データベースの複製に必要とされるサイズよりも、はるかに大きいことが多いようです。大量のディスク領域を浪費しないために、1 つのスライスから領域を取り出し、それを未使用スライス名や新しいスライスに割り当てることができます。
前提条件 (「状態データベースの複製の前提条件」) を満たし、予備情報 (「状態データベースの複製を作成するための予備情報」) を読んでいることを確認する。また、構成の中に含まれるスライスと現在使用されていないスライスの名前を確認する。
表 1-1の表にもとづいて、必要とする状態データベースの複製の数を決定する。
新しい「小さな」スライスを少なくとも 1 つ作成する。
format(1M) コマンド、 fmthard(1M) コマンド、またはストレージマネージャを使用できます。ディスクとスライスの管理の詳細については、『Solaris のシステム管理 (第 1 巻)』を参照してください。
メタデバイスの状態データベース用に作成しているスライスに割り当てられたディスク領域は、他のスライスと共有されていないことを確認してください。
リブートする。
「初期状態データベースの複製を最初から作成する方法 (DiskSuite ツール)」の 手順 3 〜 手順 12 に従う。
この作業は、状態データベースの複製を置くための未使用スライスがない場合に実行します。たとえ未使用スライスがない場合でも、swap パーティションの最後尾の領域を未使用スライス名に割り当てることによって、新しいスライス名を作成できます。
新しいスライスに対して領域を再割り当てする手法は、swap パーティションの場合にのみ実行できます。この操作をファイルシステムで行うと、そのファイルシステムのデータが失われます。
スーパーユーザーになってシステムを停止し、シングルユーザーモードでブートする。
# halt ... ok boot -s ... INIT: SINGLE USER MODE Type Ctrl-d to proceed with normal startup, (or give root password for system maintenance):<パスワードを入力> Entering System Maintenance Mode Mar 12 16:52:38 su: 'su root' succeeded for root on /dev/syscon Sun Microsystems Inc. SunOS 5.5 Generic November 1995 |
swap -l コマンドを使用して、システムのスワップ領域を識別する。
swapfile カラムの下には、起動されたスワップデバイスやファイルが一覧表示されます。
# swap -l swapfile dev swaplo blocks free /dev/dsk/c0t2d0s1 32,17 8 205624 192704 |
スワップをオフにし、swap に使用されているスライスが存在しないことを確認する。
# swap -d /dev/dsk/<スライス名> # swap -l |
format(1M) コマンド、fmthard(1M) コマンド、またはストレージマネージャを使用してディスクのパーティション再分割を行なってから、システムをリブートする。
swap スライスからシリンダを削除し、現在使用されていない新しいスライス名にそれらのシリンダを追加します。
システムに再びログインし、prtvtoc(1M) コマンドを使用することによって、この新しいスライスが存在することを確認する。
# prtvtoc /dev/rdsk/<スライス名> |
「初期状態データベースの複製を最初から作成する方法 (DiskSuite ツール)」の 手順 3 〜 手順 12 に従う。
「メタデバイス状態データベース情報」ウィンドウを使用して、swap のパーティション再分割によって作成したスライスに、状態データベースの複製を 3 つ作成します。
この例では、同じスライス上に状態データベースの複製を 3 つ備えた、確定済み MetaDB オブジェクトを示します。このオブジェクトは、1 つのスライスしか含まないにもかかわらず、3 つの状態データベースの複製を示していることに注目してください。これらの複製は、少なくとも 3 つのコントローラに分散されていないため、MetaDB オブジェクトの状態は「注意」です。