この節では、クラスタ構成向けにディスクセットを作成する方法を説明します。Sun Cluster 環境で Solaris ボリュームマネージャー ディスクセットを作成する場合は、ディスクセットは自動的にタイプ svm のデバイスグループとして Sun Cluster ソフトウェアに登録されます。svm デバイスグループを作成または削除するには、Solaris ボリュームマネージャー コマンドおよびユーティリティーを使用して、デバイスグループの基盤となるディスクセットを作成または削除する必要があります。
Oracle RAC で使用する Solaris Volume Manager for Sun Cluster ディスクセットを作成する場合は、これらの手順を使用しないでください。代わりに、『Sun Cluster Data Service for Oracle RAC Guide for Solaris OS』の「How to Create a Multi-Owner Disk Set in Solaris Volume Manager for Sun Cluster for the Oracle RAC Database」の手順を実行します。
次の表に、ディスクセットを作成するときに実行する作業を示します。
表 4–2 作業マップ: Solaris ボリュームマネージャー ソフトウェアのインストールと構成
作業 |
参照先 |
---|---|
1. metaset コマンドを使用してディスクセットを作成 | |
2. ディスクセットにドライブを追加 | |
3. (省略可能) ディスクセット内のディスクドライブのパーティションを再分割して、さまざまなスライス に空間を割り当てる | |
4. デバイス ID 擬似デバイスのマッピングを表示し、/etc/lvm/md.tab ファイルにボリュームを定義 | |
5. md.tab ファイルを初期化 |
この手順を実行して、ディスクセットを作成します。
この手順では、長い形式の Sun Cluster コマンドを紹介します。ほとんどのコマンドには、短い形式もあります。これらのコマンドは、コマンド名の形式以外は同一です。コマンドの一覧および短い形式については、『Sun Cluster のシステム管理 (Solaris OS 版)』の付録 A「Sun Cluster オブジェクト指向コマンド」を参照してください。
SPARC: (Solaris 9) 新しいディスクセットを作成したあと、クラスタのディスクセットが 4 つ以上になるかどうかを調べます。
クラスタの任意のノードで、/kernel/drv/md.conf ファイルの md_nsets 変数の値を検査します。
クラスタ内に作成する予定のディスクセットの合計数が md_nsets の値から 1 を引いた数より大きい場合、md_nsets の値を希望の値まで増やします。
作成できるディスクセットの最大数は、md_nsets の構成した値から 1 を引いた数です。md_nsets で可能な最大の値は 32 なので、作成できるディスクセットの最大許容数は 31 です。
クラスタの各ノードの /kernel/drv/md.conf ファイルが同じであるかを確認します。
このガイドラインに従わないと、重大な Solaris ボリュームマネージャー エラーが発生し、データが失われることがあります。
いずれかのノードで、md.conf ファイルに変更を加えた場合、次の手順を実行して、これらの変更をアクティブにしてください。
1 つのノードで、スーパーユーザーになります。
ノードのどれか 1 つでクラスタを停止します。
phys-schost# cluster shutdown -g0 -y |
クラスタの各ノードを再起動します。
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 のシステム管理 (基本編)』の第 11 章「GRUB ベースのブート (手順)」を参照してください。
クラスタの各ノードで devfsadm(1M) コマンドを実行します。
このコマンドは、すべてのノードで同時に実行できます。
クラスタの 1 つのノードから、グローバルデバイス名前空間を更新します。
phys-schost# cldevice populate |
詳細については、cldevice(1CL) のマニュアルページを参照してください。
ディスクセットを作成する前に、各ノードでコマンドが処理を完了したことを確認します。
このコマンドは、1 つのノードからのみ実行されても、リモートからすべてのノードで実行されます。コマンドが処理を終了したかどうかを確認するには、クラスタの各ノードで次のコマンドを実行します。
phys-schost# ps -ef | grep scgdevs |
作成する予定のディスクセットが次の条件の 1 つに適合することを確認します。
ディスクセットが正確に 2 つのディスク列で構成されている場合、そのディスクセットは、正確に 2 つのノードに接続して、正確に 2 つのメディエータホストを使用する必要があります。これらのメディエータホストは、ディスクセットに使用されるものと同じ 2 つのホストでなければなりません。二重列メディエータを構成する方法の詳細は、「二重列メディエータの構成」を参照してください。
ディスク列を 3 つ以上構成する場合、任意の 2 つのディスク列 S1 と S2 のディスク数の合計が 3 番目のディスク列 S3 のドライブ数よりも多いことを確認します。この条件を式で表すと、count(S1) + count(S2) > count(S3) となります。
ローカル状態データベースの複製が存在することを確認します。
手順については、「状態データベースの複製を作成するには」を参照してください。
ディスクセットをマスターする予定のクラスタノード上でスーパーユーザーになります。
ディスクセットを作成します。
次のコマンドは、ディスクセットを作成し、そのディスクセットを Sun Cluster デバイスグループとして登録します。
phys-schost# metaset -s setname -a -h node1 node2 |
ディスクセット名を指定します。
ディスクセットを追加 (作成)します。
ディスクセットをマスターとする主ノードの名前を指定します。
ディスクセットをマスターとする二次ノードの名前を指定します。
クラスタ上に Solaris ボリュームマネージャー デバイスグループを構成する metaset コマンドを実行すると、デフォルトで 1 つの二次ノードが指定されます。デバイスグループの二次ノードの希望数は、デバイスグループが作成されたあと、clsetup ユーティリティーを使用して変更できます。numsecondaries プロパティーを変更する方法の詳細は、『Sun Cluster のシステム管理 (Solaris OS 版)』の「デバイスグループの管理」を参照してください。
複製された Solstice DiskSuite または Solaris ボリュームマネージャデバイスグループを構成している場合は、デバイスグループの複製プロパティーを設定します。
phys-schost# cldevicegroup sync device-group-name |
データの複製の詳細は、『Sun Cluster のシステム管理 (Solaris OS 版)』の第 4 章「データ複製のアプローチ」を参照してください。
新しいディスクセットの状態を確認します。
phys-schost# metaset -s setname |
必要に応じて、デバイスグループのプロパティーを設定します。
phys-schost# cldevicegroup set -p name=value devicegroup |
デバイスグループのプロパティーを指定します。
プロパティーの名前を指定します。
プロパティーの値または設定を指定します。
デバイスグループの名前を指定します。デバイスグループ名は、ディスクセット名と同じです。
デバイスグループのプロパティーの詳細については、cldevicegroup(1CL) を参照してください。
次のコマンドでは、2 つのディスクセット dg-schost-1 と dg-schost-2 が作成され、ノード phys-schost-1 と phys-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 |
ディスクセットにドライブを追加します。「ディスクセットへのドライブの追加」に進みます。
ディスクセットにドライブを追加すると、ボリューム管理ソフトウェアは、次のようにパーティションを再分割して、ディスクセットの状態データベースをドライブに置くことができるようにします。
各ドライブの小さな領域を Solaris ボリュームマネージャー ソフトウェア用に予約します。ボリュームの目次 (VTOC) とラベルが付けられたデバイスの場合、スライス 7 が使用されます。拡張可能ファームウェアインターフェース (EFI) とラベルが付けられたデバイスの場合、スライス 6 が使用されます。各ドライブの残り領域はスライス 0 に組み込まれます。
ディスクセットにディスクドライブが追加されると、ターゲットスライスが正しく構成されていない場合にのみ、ドライブのパーティションが再分割されます。
パーティションの再分割によって、ドライブ上の既存のデータはすべて失われます。
ターゲットスライスがシリンダ 0 から始まり、ドライブのパーティションに状態データベースの複製を格納するための十分な領域がある場合、ドライブの再分割は行われません。
ディスクセットが作成済みであることを確認します。手順については、「ディスクセットを作成するには」を参照してください。
スーパーユーザーになります。
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 … |
ディスクセットの所有者になります。
phys-schost# cldegivegroup switch -n node devicegroup |
デバイスグループの所有権を取得するノードを指定します。
デバイスグループ名を指定します。これはディスクセット名と同じです。
ディスクセットにドライブを追加します。
完全な DID パス名を使用します。
phys-schost# metaset -s setname -a /dev/did/rdsk/dN |
ディスクセット名を指定します。ディスクセット名はデバイスグループ名と同じです。
ディスクセットにドライブを追加します。
ディスクセットにドライブを追加するときは、下位デバイス名 (cNtXdY) は使用しないでください。下位レベルデバイス名はローカル名であり、クラスタ全体で一意ではないため、この名前を使用するとディスクセットがスイッチオーバーできなくなる可能性があります。
新しいディスクセットとドライブの状態を検査します。
phys-schost# metaset -s setname |
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 ファイルでメタデバイスまたはボリュームを定義します。
metaset(1M) コマンドは、ディスクセット内のドライブのパーティションを再分割し、各ドライブの小さな領域をスライス 7 として Solstice DiskSuite ソフトウェア用に予約します。ボリュームの目次 (VTOC) とラベルが付けられたデバイスの場合、スライス 7 が使用されます。拡張可能ファームウェアインターフェース (EFI) とラベルが付けられたデバイスの場合、スライス 6 が使用されます。各ドライブの残り領域はスライス 0 に組み込まれます。ドライブをより効果的に利用するために、この手順に従ってディスクの配置を変更してください。 VTOC スライス 1 から 6 または EFI スライス 1 から 5 に領域を割り当てることで、Solaris ボリュームマネージャー ボリュームを設定するときにこれらのスライスを使用できるようになります。
スーパーユーザーになります。
format コマンドを使用し、ディスクセット内の各ドライブのディスクパーティションを変更します。
ドライブのパーティションを再分割する際は、次の条件を満たすことで、metaset(1M) コマンドでドライブのパーティションを再分割できないようにする必要があります。
状態データベースのレプリカを維持するのに十分な大きさの、シリンダ 0 で始まるスライス 7 (VTOC の場合) またはスライス 6 (EFI の場合)を作成します。Solaris ボリュームマネージャー の管理者ガイドを参照して、ご使用のバージョンのボリューム管理ソフトウェア用の状態データベースレプリカのサイズを調べます。
ターゲットスライスの Flag フィールドを wu (読み書き可能、マウント不可) に設定します。読み取り専用には設定しないでください。
the target slice がドライブ上の他のスライスとオーバーラップしないようにします。
詳細については、format(1M) のマニュアルページを参照してください。
md.tab ファイルを使用してボリュームを定義します。「md.tab ファイルを作成する」に進みます。
クラスタ内の各ノードごとに /etc/lvm/md.tab ファイルを作成します。md.tab ファイルを使用して、作成したディスクセット用のSolaris ボリュームマネージャー ボリュームを定義します。
ローカルボリュームを使用する場合は、ディスクセットの構成に使用したデバイス ID 名とは別の名前をローカルボリュームに付けるようにしてください。たとえば、ディスクセットで /dev/did/dsk/d3 というデバイス ID 名が使用されている場合は、ローカルボリュームに /dev/md/dsk/d3 という名前は使用しないでください。この要件は、命名規約 /dev/md/setname/{r}dsk/d# を使用する共有ボリュームには適用されません。
スーパーユーザーになります。
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 … |
/etc/lvm/md.tab ファイルを作成し、エディタを使用して編集します。
サブミラーに使用するドライブにデータがすでに存在している場合は、ボリュームを設定する前にデータのバックアップを作成する必要があります。その後、データをミラーに復元します。
クラスタ環境内で、異なるノード上のローカルボリューム間の混乱を避けるため、クラスタ全体で各ローカルボリューム名が固有となるような命名規則を使用してください。たとえば、ノード 1 については、d100 から d199 の間で名前を選択します。ノード 2 については、d200 から d299 の間の名前を使用します。
md.tab ファイルを作成する方法の詳細については、Solaris ボリュームマネージャー のマニュアルおよび md.tab(4) のマニュアルページを参照してください。
次の 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 ファイルは、次のように構築されています。
先頭行では、デバイス d0 を、ボリューム d10 と d20 のミラーとして定義しています。-m は、このデバイスがミラーデバイスであることを示します。
dg-schost-1/d0 -m dg-schost-1/d0 dg-schost-1/d20 |
2 行目では、d0 の最初のサブミラーであるボリューム d10 を一方向のストライプとして定義しています。
dg-schost-1/d10 1 1 /dev/did/rdsk/d1s0 |
3 行目では、d0 の最初のサブミラーであるボリューム d20 を一方向のストライプとして定義しています。
dg-schost-1/d20 1 1 /dev/did/rdsk/d2s0 |
md.tab ファイルで定義したボリュームを起動します。「ボリュームを起動する」に進みます。
md.tab ファイルで定義されたSolaris ボリュームマネージャー ボリュームを起動するには、次の手順を実行します。
スーパーユーザーになります。
md.tab ファイルが /etc/lvm ディレクトリに置かれていることを確認します。
コマンドを実行するノードで、ディスクセットの所有権を持っていることを確認します。
ディスクセットの所有権を取得します。
phys-schost# cldevicegroup switch -n node devicegroup |
所有権を取得するノードを指定します。
ディスクセット名を指定します。
md.tab ファイルで定義した、ディスクセットのボリュームを起動します。
phys-schost# metainit -s setname -a |
ディスクセット名を指定します。
md.tab ファイルで定義されているすべてのボリュームを起動します。
クラスタ内のディスクごとに、手順 3から 手順 5 を繰り返します。
必要に応じて、ドライブに接続できる別のノードから metainit(1M) コマンドを実行します。クラスタ化ペアトポロジでは、すべてのノードがドライブにアクセスできるわけではないため、この手順が必要になります。
ボリュームの状態チェック
phys-schost# metastat -s setname |
詳細は、metastat(1M) のマニュアルページを参照してください。
(省略可能) あとで参考にするために、ディスクのパーティション分割情報をとっておきます。
phys-schost# prtvtoc /dev/rdsk/cNtXdYsZ > filename |
このファイルをクラスタ外の場所に保存します。ディスク構成を変更する場合は、このコマンドをもう一度実行して、変更した構成をキャプチャします。ディスクに障害が発生し、交換が必要な場合は、この上方を使用してディスクパーティション構成を復元できます。詳細は、prtvtoc(1M) のマニュアルページを参照してください。
(省略可能) クラスタ構成のバックアップを取ります。
クラスタ構成のバックアップを保存しておけば、クラスタ構成の回復がより簡単になります。
詳細は、『Sun Cluster のシステム管理 (Solaris OS 版)』の「クラスタ構成をバックアップする」を参照してください。
次の例では、md.tab ファイルでディスクセット dg-schost-1 に対して定義されているすべてのボリュームを起動します。
phys-schost# metainit -s dg-schost-1 -a |
クラスタに正確に 2 つのディスク格納装置と 2 つのノードがある場合は、二重列メディエータを追加します。「二重列メディエータの構成」に進みます。
それ以外の場合は、「クラスタファイルシステムを追加する」に進んでクラスタファイルシステムを作成します。