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

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

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

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

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

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

  1. 新しいディスクセットの作成後、クラスタに 4 つ以上のディスクセットがあるかどうかを調べます。

    • クラスタが 4 つ以上のディスクセットを持たない場合は、手順 2に進みます。

    • クラスタが 4 つ以上のディスクセットを持つ場合は、以下の手順を実行して、クラスタを準備します。

      この作業は、初めてディスクセットをインストールするか、あるいは、完全に構成されたクラスタにより多くのディスクセットを追加するかに関わらず行います。

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

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

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

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


      注意 – 注意 –

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


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

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


        # scshutdown -g0 -y
        

      2. クラスタの各ノードを再起動します。


        ok> boot
        

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

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

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

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

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


      % ps -ef | grep scgdevs
      

  2. 作成する予定のディスクセットが次の条件の 1 つに適合することを確認します。

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

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

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

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

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

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

    次のコマンドは、ディスクセットを作成し、そのディスクセットを 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 版)』の「ディスクデバイスグループの管理」を参照してください。


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


    # metaset -s setname
    

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

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

例 — ディスクセットを作成する

次のコマンドでは、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

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

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

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

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

  2. ディスクセットが作成済みであることを確認します。

    手順については、「ディスクセットを作成するには」を参照してください。

  3. 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
    …

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


    # metaset -s setname -t
    
    -s setname

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

    -t

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

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

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


    # metaset -s setname -a drivename
    

    -a

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

    drivename

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


    注 –

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


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


    # metaset -s setname
    

  7. (省略可能) メタデバイスまたはボリュームで使用するためにドライブを再分割するには、「ディスクセット内のドライブのパーティションを再分割する」に進みます。

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

例 — ディスクセットへのドライブの追加

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

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

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

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

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

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

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

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

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

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

  3. md.tab ファイルを使用してメタデバイスまたはボリュームを定義します。

    md.tab ファイルを作成する」に進みます。

md.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 には d100 〜 d199 の名前を選択し、ノード 2 には d200 〜 d299 を使用します。


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

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

    下位デバイス名の (cNtXdY) の代わりに、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 ファイルを作成し、エディタを使用して手作業で編集します。

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


    注 –

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


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

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

例 — サンプル 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 ファイルで定義した Solstice DiskSuite メタデバイスまたは Solaris ボリュームマネージャ ボリュームを起動する場合に行います。

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

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

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

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


    # metaset -s setname -t
    
    -s setname

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

    -t

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

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


    # metainit -s setname -a
    
    -a

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

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

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


    # metattach mirror submirror2
    

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

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

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


    # metastat -s setname
    

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

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

    「二重列メディエータの構成」に進みます。

  10. 「クラスタファイルシステムを追加する」に進んでクラスタファイルシステムを作成します。

例 — 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