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

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

この節では、クラスタ構成向けにディスクセットを作成する方法を説明します。Sun Cluster 環境で Solaris ボリュームマネージャー ディスクセットを作成する場合は、ディスクセットは自動的にタイプ svm のデバイスグループとして Sun Cluster ソフトウェアに登録されます。svm デバイスグループを作成または削除するには、Solaris ボリュームマネージャー コマンドおよびユーティリティーを使用して、デバイスグループの基盤となるディスクセットを作成または削除する必要があります。

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

表 4–2 作業マップ: Solaris ボリュームマネージャー ソフトウェアのインストールと構成

作業 

参照先 

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

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

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

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

(省略可能) ディスクセット内のドライブのパーティションを再分割して、さまざまなスライスに空間を割り当てる

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

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

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

md.tab ファイルを初期化

「ボリュームを起動する」

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

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

  1. SPARC: (Solaris 9) 新しいディスクセットを作成したあと、グローバルクラスタのディスクセットが 3 つを超えるかどうかを判定します。

    • クラスタのディスクセットが 3 つ以下になる場合は、手順 9 に進みます。

    • クラスタのディスクセットが 4 つ以上になる場合は、手順 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 ファイルが同じであるかを確認します。


    Caution – Caution –

    このガイドラインに従わないと、重大な Solaris ボリュームマネージャー エラーが発生し、データが失われることがあります。


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

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

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


      phys-schost# cluster shutdown -g0 -y
      
    3. クラスタの各ノードを再起動します。

      • SPARC ベースのシステムでは、次の操作を実行します。


        ok boot
        
      • x86 ベースのシステムでは、次の操作を実行します。

        GRUB メニューが表示された時点で、適切な Solaris エントリを選択し Enter キーを押します。GRUB メニューは次のようになっています。


        GNU GRUB version 0.95 (631K lower / 2095488K upper memory)
        +-------------------------------------------------------------------------+
        | Solaris 10 /sol_10_x86                                                  |
        | Solaris failsafe                                                        |
        |                                                                         |
        +-------------------------------------------------------------------------+
        Use the ^ and v keys to select which entry is highlighted.
        Press enter to boot the selected OS, 'e' to edit the
        commands before booting, or 'c' for a command-line.

        GRUB ベースのブートの詳細は、『Solaris のシステム管理 (基本編)』「GRUB を使用して x86 システムをブートする (作業マップ)」を参照してください。

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

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

  7. クラスタの 1 つのノードから、グローバルデバイス名前空間をアップデートします。


    phys-schost# cldevice populate
    

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

  8. ディスクセットを作成する前に、各ノードでコマンドが処理を完了したことを確認します。

    このコマンドは、1 つのノードからのみ実行されても、リモートからすべてのノードで実行されます。コマンドが処理を終了したかどうかを確認するには、クラスタの各ノードで次のコマンドを実行します。


    phys-schost# 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 デバイスグループとして登録します。


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

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

    -a

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

    -h node1

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

    node2

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


    注 –

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


  13. 複製された Solstice DiskSuite または Solaris ボリュームマネージャデバイスグループを構成している場合は、デバイスグループの複製プロパティーを設定します。


    phys-schost# cldevicegroup sync device-group-name
    

    データの複製の詳細については、『Sun Cluster のシステム管理 (Solaris OS 版)』の第 4 章「データ複製のアプローチ」を参照してください。

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


    phys-schost# metaset -s setname
    
  15. 必要に応じて、デバイスグループのプロパティーを設定します。


    phys-schost# cldevicegroup set -p name=value devicegroup
    
    -p

    デバイスグループのプロパティーを指定します。

    name

    プロパティーの名前を指定します。

    value

    プロパティーの値または設定を指定します。

    devicegroup

    デバイスグループの名前を指定します。デバイスグループ名は、ディスクセット名と同じです。

    デバイスグループのプロパティーの詳細については、cldevicegroup(1CL)を参照してください。


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

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


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

次の手順

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

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

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

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

始める前に

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

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

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


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

    • ディスクセットにドライブを追加する際は、/dev/did/rdsk/dN の形式の完全な DID デバイス名を使用してください。

    次の例では、DID デバイス /dev/did/rdsk/d3 のエントリは、ドライブが phys-schost-1 および phys-schost-2 によって共有されていることを示しています。


    === DID Device Instances ===                   
    DID Device Name:                                /dev/did/rdsk/d1
      Full Device Path:                               phys-schost-1:/dev/rdsk/c0t0d0
    DID Device Name:                                /dev/did/rdsk/d2
      Full Device Path:                               phys-schost-1:/dev/rdsk/c0t6d0
    DID Device Name:                                /dev/did/rdsk/d3
      Full Device Path:                               phys-schost-1:/dev/rdsk/c1t1d0
      Full Device Path:                               phys-schost-2:/dev/rdsk/c1t1d0
    …
  3. ディスクセットの所有者になります。


    phys-schost# cldevicegroup switch -n node devicegroup
    
    -n node

    デバイスグループの所有権を取得するノードを指定します。

    devicegroup

    デバイスグループ名を指定します。これはディスクセット名と同じです。

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

    完全な DID パス名を使用します。


    phys-schost# metaset -s setname -a /dev/did/rdsk/dN
    
    -s setname

    デバイスグループ名と同じである、ディスクセット名を指定します。

    -a

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


    注 –

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


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


    phys-schost# metaset -s setname
    

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

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


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

次の手順

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

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

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

metaset(1M) コマンドは、ディスクセット内のドライブのパーティションを再分割し、各ドライブの小さな領域を Solaris ボリュームマネージャー ソフトウェア用に予約します。ボリュームの目次 (Volume Table of Contents、VTOC) ラベル付きデバイスでは、スライス 7 が使われます。拡張可能ファームウェアインターフェース (Extensible Firmware Interface、EFI) ラベル付きデバイスでは、スライス 6 が使われます。各ドライブの残りの領域は、スライス 0 に配置されます。ドライブの使用効率を向上させるためには、この手順を使ってディスクのレイアウトを変更して下さい。VTOC スライス 1 から 6 または EFI スライス 1 から 5 に領域を割り当てることで、Solaris ボリュームマネージャー ボリュームを設定するときにこれらのスライスを使用できるようになります。

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

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

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

    • 状態データベースの複製を維持するのに十分な大きさの、シリンダ 0 で始まるスライス 7 (VTOC の場合) またはスライス 6 (EFI の場合) を作成します。Solaris ボリュームマネージャー の管理者ガイドを参照して、使用のバージョンのボリューム管理ソフトウェア用の状態データベース複製のサイズを判定します。

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

    • ターゲットスライスがドライブ上のほかのスライスとオーバーラップしないでください。

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

次の手順

md.tab ファイルを使って、ボリュームを定義します。md.tab ファイルを作成する」に進みます。

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

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


注 –

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


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

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

    下位デバイス名 (cN tXdY) の代わりに md.tab ファイル内では、完全な DID デバイス名を使用してください。DID デバイス名は、/dev/did/rdsk/dN の形式を取ります。


    phys-schost# cldevice show | grep Device
    

    === DID Device Instances ===                   
    DID Device Name:                                /dev/did/rdsk/d1
      Full Device Path:                               phys-schost-1:/dev/rdsk/c0t0d0
    DID Device Name:                                /dev/did/rdsk/d2
      Full Device Path:                               phys-schost-1:/dev/rdsk/c0t6d0
    DID Device Name:                                /dev/did/rdsk/d3
      Full Device Path:                               phys-schost-1:/dev/rdsk/c1t1d0
      Full Device Path:                               phys-schost-2:/dev/rdsk/c1t1d0
    …
  3. /etc/lvm/md.tab ファイルを作成し、エディタを使用して編集します。


    注 –

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


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

    md.tab ファイルを作成する方法の詳細については、Solaris ボリュームマネージャー ドキュメントおよび md.tab (4) のマニュアルページを参照してください。


例 4–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

サンプル 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 の 2 番目のサブミラーであるボリューム d20 を一方向のストライプとして定義しています。


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

次の手順

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

Procedureボリュームを起動する

この手順を実行して、md.tab ファイルで定義されている Solaris ボリュームマネージャー ボリュームを起動します。

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

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

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

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


    phys-schost# cldevicegroup switch -n node devicegroup
    
    -n node

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

    devicegroup

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

  5. md.tab ファイルで定義されたディスクセットのボリュームを起動します。


    phys-schost# metainit -s setname -a
    
    -s setname

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

    -a

    md.tab ファイル内のすべてのボリュームを起動します。

  6. クラスタ内のディスクごとに、手順 3 から手順 5 を繰り返します。

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

  7. ボリュームの状態を確認します。


    phys-schost# metastat -s setname
    

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

  8. (省略可能) あとで参考にするために、ディスクのパーティション分割情報を捕獲しておきます。


    phys-schost# prtvtoc /dev/rdsk/cNtXdYsZ > filename
    

    このファイルをクラスタ外の場所に保存します。ディスク構成を変更する場合は、このコマンドをもう一度実行して、変更した構成をキャプチャします。ディスクに障害が発生し、交換が必要な場合は、この上方を使用してディスクパーティション構成を復元できます。詳細については、prtvtoc(1M) のマニュアルページを参照してください。

  9. (省略可能) クラスタ構成のバックアップを取ります。

    クラスタ構成のバックアップを保存しておけば、クラスタ構成の回復がより簡単になります。詳細は、『Sun Cluster のシステム管理 (Solaris OS 版)』「クラスタ構成をバックアップする」を参照してください。


例 4–9 md.tab ファイル内のボリュームの起動

次の例では、md.tab ファイルでディスクセット dg-schost-1 で定義されているすべてのボリュームを起動します。


phys-schost# metainit -s dg-schost-1 -a

次の手順

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

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