Sun Cluster ソフトウェアのインストール (Solaris OS 版)

クラスタ内でのディスクセットの作成

この節では、クラスタ構成向けにディスクセットを作成する方法を説明します。以下のような状況では、ディスクセットを作成する必要がない場合があります。

次の表に、ディスクセットを作成するときに実行する作業を示します。

表 3–2 Task Map: Solstice DiskSuite または Solaris Volume Manager ソフトウェアのインストールと構成

作業 

参照先 

1. metaset コマンドを使用してディスクセットを作成

「ディスクセットを作成するには」

2. ディスクセットにドライブを追加 

「ディスクセットにドライブを追加するには」

3. (省略可能) ディスクセット内のドライブのパーティションを再分割して、スライス 1 から 6 に空間を割り当てる 

「ディスクセット内のドライブのパーティションを再分割する」

4. デバイス ID 擬似ドライバのマッピングを表示し、/etc/lvm/md.tab ファイルにメタデバイスまたはボリュームを定義

md.tab ファイルを作成する」

5. md.tab ファイルを初期化

「メタデバイスまたはボリュームを起動する」

Procedureディスクセットを作成するには

この手順を実行して、ディスクセットを作成します。

手順
  1. (Solaris 8 または Solaris 9) 新しいディスクセットを作成したあと、クラスタに 3 つより多いディスクセットがあるかどうかを判断します。

    • 3 つより多いディスクセットがクラスタにない場合は、手順 9 に進みます。

    • 3 つより多いディスクセットがクラスタにある場合は、手順 2 に進んで、クラスタを準備します。この作業は、初めてディスクセットをインストールするか、あるいは、完全に構成されたクラスタにより多くのディスクセットを追加するかに関わらず行います。

    • クラスタが Solaris 10 OS 上で動作している場合、 Solaris ボリュームマネージャーは自動的に必要な構成の変更を行います。手順 9 に進みます。

  2. クラスタの任意のノードで、/kernel/drv/md.conf ファイルの md_nsets 変数の値を検査します。

  3. クラスタ内に作成する予定のディスクセットの合計数が md_nsets の値から 1 を引いた数より大きい場合、md_nsets の値を希望の値まで増やします。

    作成できるディスクセットの最大数は、md_nsets の構成した値から 1 を引いた数です。md_nsets で可能な最大の値は 32 なので、作成できるディスクセットの最大許容数は 31 です。

  4. クラスタの各ノードの /kernel/drv/md.conf ファイルが同じであるかを確認します。


    注意 – 注意 –

    このガイドラインに従わないと、重大な Solstice DiskSuite または Solaris Volume Manager エラーが発生し、データが失われることがあります。


  5. いずれかのノードで、md.conf ファイルに変更を加えた場合、以下の手順を実行して、これらの変更をアクティブにしてください。

    1. ノードのどれか 1 つでクラスタを停止します。


      # scshutdown -g0 -y
      
    2. クラスタの各ノードを再起動します。


      ok> boot
      
  6. クラスタの各ノードで devfsadm(1M) コマンドを実行します。

    このコマンドは、すべてのノードで同時に実行できます。

  7. クラスタ内の 1 つのノードから、scgdevs(1M) コマンドを実行して、広域デバイス名前空間を更新します。

  8. ディスクセットの作成を行う前に、各ノード上で、scgdevs コマンドが終了しているかどうかを確認します。

    ノードの 1 つで scgdevs コマンドを実行すると、このコマンドはリモートから自分自身をすべてのノードで呼び出します。scgdevs コマンドが処理を終了したかどうかを確認するには、クラスタの各ノードで次のコマンドを実行します。


     % ps -ef | grep scgdevs
    
  9. 作成する予定のディスクセットが次の条件の 1 つに適合することを確認します。

    • ディスクセットが正確に 2 つのディスク列で構成されている場合、そのディスクセットは、正確に 2 つのノードに接続して、正確に 2 つのメディエータホストを使用する必要があります。これらのメディエータホストは、ディスクセットに使用されるものと同じ 2 つのホストでなければなりません。二重列メディエータを構成する方法の詳細については、「二重列メディエータの構成」を参照してください。

    • ディスク列を3 つ以上構成する場合、任意の 2 つのディスク列 S1 と S2 のディスク数の合計が 3 番目のディスク列 S3 のディスクドライブ数よりも多いことを確認します。この条件を式で表すと、count (S1) + count (S2) > count (S3) となります。

  10. ローカル状態データベースの複製が存在することを確認します。

    手順については、「状態データベースの複製を作成するには」を参照してください。

  11. ディスクセットをマスターする予定のクラスタノード上でスーパーユーザーになります。

  12. ディスクセットを作成します。

    次のコマンドは、ディスクセットを作成し、そのディスクセットを Sun Cluster ディスクデバイスグループとして登録します。


    # metaset -s setname -a -h node1 node2
    
    -s setname

    ディスクセット名を指定します。

    -a

    ディスクセットを追加 (作成)します。

    -h node1

    ディスクセットをマスターとする主ノードの名前を指定します。

    node2

    ディスクセットをマスターとする二次ノードの名前を指定します。


    注 –

    クラスタ上に Solstice DiskSuite または Solaris Volume Manager デバイスグループを構成する metaset コマンドを実行すると、デフォルトで 1 つの二次ノードが指定されます。デバイスグループの二次ノードの希望数は、デバイスグループが作成されたあと、scsetup(1M) ユーティリティーを使用して変更できます。numsecondaries プロパティーを変更する方法の詳細については、『Sun Cluster のシステム管理 (Solaris OS 版)』「ディスクデバイスグループの管理」を参照してください。


  13. 新しいディスクセットの状態を確認します。


    # metaset -s setname
    

例 3–6 ディスクセットを作成する

次のコマンドでは、2 つのディスクセット dg-schost-1dg-schost-2 が作成され、ノード phys-schost-1phys-schost-2 が潜在的主ノードとして指定されます。


# metaset -s dg-schost-1 -a -h phys-schost-1 phys-schost-2
# metaset -s dg-schost-2 -a -h phys-schost-1 phys-schost-2

次の手順

ディスクセットにドライブを追加します。「ディスクセットにドライブを追加する」に進みます。

ディスクセットにドライブを追加する

ディスクセットにドライブを追加すると、ボリューム管理ソフトウェアは、以下のようにパーティションを再分割して、ディスクセットの状態データベースをドライブに置くことができるようにします。

Procedureディスクセットにドライブを追加するには

始める前に

ディスクセットが作成済みであることを確認します。手順については、「ディスクセットを作成するには」を参照してください。

手順
  1. ノードのスーパーユーザーになります。

  2. DID マッピングの一覧を表示します。


    # scdidadm -L
    
    • ディスクセットをマスターする (またはマスターする可能性がある) クラスタノードによって共有されているドライブを選択します。

    • ディスクドライブをディスクセットに追加するときは、完全なデバイス ID パス名を使用します。

    出力の 1 列目は DID インスタンス番号、2 列目は完全パス (物理パス)、3 列目は完全なデバイス ID パス名 (疑似パス) になります。共有ドライブには、1 つの DID インスタンス番号に対して複数のエントリがあります。

    次の例では、DID インスタンス番号 2 のエントリは、phys-schost-1phys-schost-2 で共有されるドライブを示しており、完全なデバイス ID パス名は /dev/did/rdsk/d2 です。


    1       phys-schost-1:/dev/rdsk/c0t0d0 /dev/did/rdsk/d1
    2       phys-schost-1:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2
    2       phys-schost-2:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2
    3       phys-schost-1:/dev/rdsk/c1t2d0 /dev/did/rdsk/d3
    3       phys-schost-2:/dev/rdsk/c1t2d0 /dev/did/rdsk/d3
    …
  3. ディスクセットの所有者になります。


    # metaset -s setname -t
    
    -s setname

    ディスクセット名を指定します。

    -t

    ディスクセットの所有権を取得します。

  4. ディスクセットにドライブを追加します。

    完全なデバイス ID パス名を使用します。


    # metaset -s setname -a drivename
    
    -a

    ディスクセットにドライブを追加します。

    drivename

    共有ドライブの完全なデバイス ID パス名


    注 –

    ディスクセットにドライブを追加するときは、下位デバイス名 (cNtXdY) は使用しないでください。下位レベルデバイス名はローカル名であり、クラスタ全体で一意ではないため、この名前を使用するとディスクセットがスイッチオーバーできなくなる可能性があります。


  5. 新しいディスクセットとドライブの状態を検査します。


    # metaset -s setname
    

例 3–7 ディスクセットにドライブを追加する

metaset コマンドによって、ディスクドライブ /dev/did/rdsk/d1/dev/did/rdsk/d2 がディスクセット dg-schost-1 に追加されます。


# metaset -s dg-schost-1 -a /dev/did/rdsk/d1 /dev/did/rdsk/d2

次の手順

メタデバイスまたはボリューム用にドライブのパーティションを再分割する場合は、「ディスクセット内のドライブのパーティションを再分割する」に進みます。

それ以外の場合は、md.tab ファイルを作成する」に進んで、md.tab ファイルで、メタデバイスまたはボリュームを定義します。

Procedureディスクセット内のドライブのパーティションを再分割する

metaset(1M) コマンドは、ディスクセット内のドライブのパーティションを再分割し、各ドライブの小さな領域をスライス 7 として Solstice DiskSuite または Solaris Volume Manager ソフトウェア用に予約します。各ドライブの残り領域はスライス 0 に組み込まれます。ドライブをより効果的に利用するために、この手順に従ってドライブの配置を変更してください。スライス1 から 6 に領域を割り当てることで、Solstice DiskSuite メタデバイスまたは Solaris ボリュームマネージャー ボリュームを設定するときにこれらのスライスを使用できるようになります。

手順
  1. クラスタノードのスーパーユーザーになります。

  2. format コマンドを使用し、ディスクセット内の各ドライブのディスクパーティションを変更します。

    ドライブのパーティションを再分割する際は、以下の条件を満たすことで、metaset(1M) コマンドでドライブのパーティションを再分割できないようにする必要があります。

    • 状態データベースのレプリカを維持するのに十分な大きさのシリンダ 0 で始まるスライス 7 を作成します。Solstice DiskSuite または Solaris ボリュームマネージャー の管理者ガイドを参照して、ご使用のバージョンのボリューム管理ソフトウェア用の状態データベースレプリカのサイズを調べます。

    • スライス 7 の Flag フィールドを wu (読み書き可能、マウント不可) に設定します。読み取り専用には設定しないでください。

    • スライス 7 がドライブ上の他のスライスとオーバーラップしないようにします。

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

次の手順

md.tab ファイルを使用してメタデバイスまたはボリュームを定義します。md.tab ファイルを作成する」に進みます。

Proceduremd.tab ファイルを作成する

クラスタ内の各ノードごとに /etc/lvm/md.tab ファイルを作成します。md.tab ファイルを使用して、作成したディスクセット用に Solstice DiskSuite メタデバイスまたは Solaris ボリュームマネージャー ボリュームを定義します。


注 –

ローカルメタデバイスまたはボリュームを使用する場合は、ディスクセットの構成に使用したデバイス ID (DID) 名とは別の名前をローカルメタデバイスまたはボリュームに付けるようにしてください。たとえば、ディスクセットで /dev/did/dsk/d3 というデバイス ID 名が使用されている場合は、ローカルメタデバイスまたはボリュームに /dev/md/dsk/d3 という名前は使用しないでください。この必要条件は、命名規約 /dev/md/setname/{r}dsk/d# を使用する共有メタデバイスまたはボリュームには適用されません。


手順
  1. クラスタノードのスーパーユーザーになります。

  2. md.tab ファイルを作成するときの参照用として、DID マッピングの一覧を表示します。

    下位デバイス名 (cN tXdY) の代わりに、md.tab ファイルの完全なデバイス ID パス名を使用します 。


    # scdidadm -L
    

    次の出力例では、1 列目が DID インスタンス番号、2 列目が完全パス (物理パス)、3 列目が完全なデバイス ID パス名 (疑似パス) です。


    1       phys-schost-1:/dev/rdsk/c0t0d0 /dev/did/rdsk/d1
    2       phys-schost-1:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2
    2       phys-schost-2:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2
    3       phys-schost-1:/dev/rdsk/c1t2d0 /dev/did/rdsk/d3
    3       phys-schost-2:/dev/rdsk/c1t2d0 /dev/did/rdsk/d3
    …
  3. /etc/lvm/md.tab ファイルを作成し、エディタを使用して手作業で編集します。


    注 –

    サブミラーに使用するドライブにデータがすでに存在している場合は、メタデバイスまたはボリュームを設定する前にデータのバックアップを作成する必要があります。その後、データをミラーに復元します。


    クラスタ環境内のローカルメタデバイス間またはボリューム間での混乱を避けるため、クラスタ全体で各ローカルメタデバイス名またはボリューム名が固有となるような命名規則を使用してください 。たとえばノード 1 には d100 〜 d199 の名前を選択し、ノード 2 には d200 〜 d299 を使用します。

    md.tab ファイルを作成する方法の詳細については、Solstice DiskSuite または Solaris Volume Manager のマニュアルおよび md.tab(4) のマニュアルページを参照してください。


例 3–8 md.tab のサンプルファイル

次の md.tab のサンプルファイルでは、dg-schost-1 という名前でディスクセットを定義しています。md.tab ファイル内の行の順序は重要ではありません。


dg-schost-1/d0 -m dg-schost-1/d10 dg-schost-1/d20
    dg-schost-1/d10 1 1 /dev/did/rdsk/d1s0
    dg-schost-1/d20 1 1 /dev/did/rdsk/d2s0

次の例では、Solstice DiskSuite の用語が使用されています。Solaris ボリュームマネージャー では、トランスメタデバイスの代わりにトランザクショナルボリュームが使用され、メタデバイスの代わりにボリュームが使用されます。ほかの部分については、次の処理は両方のボリュームマネージャーに対して有効です。

サンプル md.tab ファイルは、以下のように構築されています。

  1. 先頭行では、デバイス d0 を、メタデバイス d10d20 のミラーとして定義しています。-m は、このデバイスがミラーデバイスであることを示します。


    dg-schost-1/d0 -m dg-schost-1/d0 dg-schost-1/d20
  2. 2 行目では、d0 の最初のサブミラーであるメタデバイス d10 を一方向のストライプとして定義しています。


    dg-schost-1/d10 1 1 /dev/did/rdsk/d1s0
  3. 3 行目では、d0 の最初のサブミラーであるメタデバイス d20 を一方向のストライプとして定義しています。


    dg-schost-1/d20 1 1 /dev/did/rdsk/d2s0

次の手順

md.tab ファイルで定義したメタデバイスまたはボリュームを起動します。「メタデバイスまたはボリュームを起動する」に進みます。

Procedureメタデバイスまたはボリュームを起動する

この作業は、md.tab ファイルで定義した Solstice DiskSuite メタデバイスまたは Solaris ボリュームマネージャーボリュームを起動する場合に行います。

手順
  1. クラスタノードのスーパーユーザーになります。

  2. md.tab ファイルが /etc/lvm ディレクトリに置かれていることを確認します。

  3. コマンドを実行するノードで、ディスクセットの所有権を持っていることを確認します。

  4. ディスクセットの所有権を取得します。


    # scswitch -z setname -h node
    
    -z setname

    ディスクセット名を指定します。

    -h node

    所有権を取得するノードを指定します。

  5. md.tab ファイルで定義されたディスクセットのメタデバイスまたはボリュームを有効化します。


    # metainit -s setname -a
    
    -s setname

    ディスクセット名を指定します。

    -a

    md.tab ファイルで定義されているすべてのメタデバイスを起動します。

  6. 各マスターおよびログデバイスに、2 番目のサブミラー (submirror2) を接続します。

    md.tab ファイル内のメタデバイスまたはボリュームを起動すると、マスターデバイスとログデバイスの最初のサブミラー (submirror1) だけが接続されるため、submirror2 は手作業で接続する必要があります。


    # metattach mirror submirror2
    
  7. クラスタ内の各ディスクセットで、手順 3 から手順 6 までを繰り返します。

    必要に応じて、ドライブに接続できる別のノードから metainit(1M) コマンドを実行します。クラスタ化ペアトポロジでは、すべてのノードがドライブにアクセスできるわけではないため、この手順が必要になります。

  8. メタデバイスまたはボリュームの状態を確認します。


    # metastat -s setname
    

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


例 3–9 md.tab ファイルのメタデバイスまたはボリュームの起動

次の例では、md.tab ファイルでディスクセット dg-schost-1 に対して定義されているすべてのメタデバイスを起動します。続いて、マスターデバイスの2 番目のサブミラー dg-schost-1/d1 とログデバイス dg-schost-1/d4 を起動します。


# metainit -s dg-schost-1 -a
# metattach dg-schost-1/d1 dg-schost-1/d3
# metattach dg-schost-1/d4 dg-schost-1/d6

次の手順

クラスタに正確に 2 つのディスク格納装置と 2 つのノードがある場合は、二重列メディエータを追加します。「二重列メディエータの構成」に進みます。

それ以外の場合は、「クラスタファイルシステムを追加する」に進んで、クラスタファイルシステムを作成します。