この章の手順および「ボリューム管理の計画」の計画情報に従って、Solaris ボリュームマネージャー ソフトウェア用のローカルディスクと多重ホストディスクを構成してください。詳細については、Solaris ボリュームマネージャー のマニュアルを参照してください。
Solaris 管理コンソールの拡張ストレージモジュールは、Sun Cluster ソフトウェアと互換性がありません。コマンド行インタフェースまたは Sun Cluster ユーティリティーを使用して、Solaris ボリュームマネージャー ソフトウェアを構成します。
この章の内容は、次のとおりです。
次の表に、Sun Cluster 構成用の Solaris ボリュームマネージャー ソフトウェアの構成を行う作業を示します。ここに示す順に従って手順を実行します。
表 4–1 作業マップ: Solaris ボリュームマネージャー ソフトウェアの構成
作業 |
参照先 |
---|---|
Solaris ボリュームマネージャー 構成のレイアウトを計画 | |
(Solaris 9 のみ) 構成に必要なボリューム名とディスクセットの数を計算し、/kernel/drv/md.conf ファイルを変更 | |
ローカルディスクに状態データベースの複製を作成 | |
(省略可能) ルートディスクのファイルシステムをミラー化 |
この手順が必要なのは、Solaris 9 OS の場合だけです。クラスタが Solaris 10 OS 上で動作する場合は、「状態データベースの複製を作成するには」に進んでください。
Solaris 10 リリースで、Solaris ボリュームマネージャー はボリュームを動的に構成するように拡張されました。/kernel/drv/md.conf ファイルの nmd パラメータと md_nsets パラメータを編集しなくてすみます。新しいボリュームは必要に応じて作成されます。
この手順では、構成に必要な Solaris ボリュームマネージャー ボリューム名およびディスクセットの数を決める方法について説明します。また、/kernel/drv/md.conf ファイルを変更して、これらの数を指定する方法についても説明します。
ボリューム名のデフォルトの数は、ディスクセットごとに 128 ですが、多くの構成ではこれ以上の数が必要になります。構成を実装する前にこの数を増やしておくと、後で管理時間の節約になります。
nmd フィールドおよび md_nsets フィールドには、できるだけ小さい値を使用してください。デバイスを作成していなくても nmd および md_nsets によって指定された値に基づいて、可能性のあるすべてのデバイス分をメモリー構造上に確保します。最適なパフォーマンスを得るには、nmd と md_nsets の値を、使用するボリュームの数よりもわずかに高く維持します。
必要事項を記入した「デバイスグループ構成のワークシート」を用意します。
クラスタ内のディスクセットに必要なディスクセットの合計数を計算して、ディスクセットをもう 1 つプライベートディスク管理に追加します。
クラスタは最大 32 個のディスクセットを持つことができます。一般的な使用のために 31 個 と、プライベートディスク管理のために 1 個です。ディスクセットのデフォルト数は 4 です。この値は、手順 3 の md_nsets フィールドで指定します。
クラスタ内のディスクセットに必要なボリューム名の最大数を計算します。
各ディスクセットは、最大 8192 個のボリューム名を持つことができます。この値は、手順 3 の nmd フィールドで指定します。
各ディスクセットに必要なボリューム名の数を判定します。
ローカルのボリューム名を使用する場合は、グローバルデバイスファイルシステム /global/.devices/node@ nodeid がマウントされる各ローカルボリューム名がクラスタ全体で一意であり、クラスタ内のどのデバイス ID 名とも異なる名前を使用していることを確認します。
デバイス ID 名として排他的に使用する番号の範囲と、各ノードのローカルボリューム名として排他的に使用する範囲を選択します。たとえば、DID は、d1 から d100 までの範囲の名前を使用します。ノード 1 上のローカルボリュームは、d100 から d199 までの範囲の名前を使用します。また、ノード 2 上のローカルボリュームは、d200 から d299 までの範囲の名前を使用します。
ディスクセットに必要なボリューム名の最大数を計算します。
設定するボリューム名の個数は、実際の量ではなく、ボリューム名の値に基づいています。たとえば、ボリューム名が d950 から d1000 の場合、Solaris ボリュームマネージャー ソフトウェアは、50 ではなく 1000 個の名前を必要とします。
各ノードでスーパーユーザーになり、/kernel/drv/md.conf ファイルを編集します。
すべてのクラスタノード (クラスタペアトポロジの場合はクラスタペア) の /kernel/drv/md.conf ファイルの内容は、それぞれのノードがサービスを提供するディスクセット数に関係なく、同一である必要があります。このガイドラインに従わないと、重大な Solaris ボリュームマネージャー エラーが発生し、データが失われることがあります。
各ノードで再構成再起動を行います。
phys-schost# touch /reconfigure phys-schost# shutdown -g0 -y -i6 |
/kernel/drv/md.conf ファイルに対する変更は、再起動後に有効になります。
ローカルの状態データベースの複製を作成します。「状態データベースの複製を作成するには」」に進みます。
グローバルクラスタ内の各ノード上で次の手順を実行します。
スーパーユーザーになります。
各クラスタノードの 1 つ以上のローカルデバイス上で状態データベースレプリカを作成します。
使用するスライスを指定するには、デバイス ID 名 (dN) ではなく、物理名 (cNtXdY sZ) を使用してください。
phys-schost# metadb -af slice-1 slice-2 slice-3 |
Solaris ボリュームマネージャー ソフトウェアの実行に必要な状態データを保護するには、各ノードごとに少なくとも 3 つの複製を作成します。また、複数のデバイスに複製を配置することによって、いずれかのデバイスに障害が発生した場合に対する保護も提供できます。
詳細については、metadb(1M)のマニュアルページと Solaris ボリュームマネージャー ドキュメントを参照してください。
複製を検査します。
phys-schost# metadb |
metadb コマンドは複製の一覧を表示します。
以下に、状態データベースの複製の例を 3 つ示します。各複製は、異なるデバイス上に作成されています。
phys-schost# metadb -af c0t0d0s7 c0t1d0s7 c1t0d0s7 phys-schost# metadb flags first blk block count a u 16 8192 /dev/dsk/c0t0d0s7 a u 16 8192 /dev/dsk/c0t1d0s7 a u 16 8192 /dev/dsk/c1t0d0s7 |
ルートディスク上のファイルシステムをミラー化する場合は、「ルートディスクのミラー化」に進みます。
それ以外の場合は、「クラスタ内でのディスクセットの作成」に進んで、Solaris ボリュームマネージャー ディスクセットを作成します。
ルートディスクをミラー化することによって、システムディスクの障害のためにクラスタノード自体が停止することを防止します。ルートディスクには、4 種類のファイルシステムを配置できます。ファイルシステムは、各種類ごとに異なる方法でミラー化します。
各のファイルシステムは、次の手順でミラー化します。
ローカルディスクをミラー化する場合は、ディスク名を指定する際のパスに /dev/global を使用しないでください。クラスタファイルシステム以外にこのパスを指定すると、システムを起動できなくなります。
次の手順を使用し、ルート (/) ファイルシステムをミラー化します。
グローバルデバイス名前空間が lofi が作成されたフィルにある場合、この手順にはグローバルデバイス名前空間のミラー化を含みます。
スーパーユーザーになります。
ルートスライスを単一スライス(1 方向) 連結にします。
ルートディスクスライスの物理ディスク名を指定します (cNtXdY sZ)。
phys-schost# metainit -f submirror1 1 1 root-disk-slice |
2 番目の連結を作成します。
phys-schost# metainit submirror2 1 1 submirror-disk-slice |
1 つのサブミラーを使用して 1 方向のミラーを作成します。
phys-schost# metainit mirror -m submirror1 |
このデバイスがグローバルデバイスファイルシステム /global/.devices/node@nodeid をマウントするのに使用されるローカルのデバイスである場合、このミラーのボリューム名は、クラスタ全体で一意である必要があります。
ルート (/) ディレクトリのシステムファイルを設定します。
phys-schost# metaroot mirror |
このコマンドは、ルート (/) ファイルシステムがメタデバイスまたはボリュームに配置された状態でシステムを起動できるように、/etc/vfstab および /etc/system ファイルを編集します。詳細は、metaroot(1M) のマニュアルページを参照してください。
ファイルシステムをすべてフラッシュします。
phys-schost# lockfs -fa |
このコマンドを実行すると、マウントされているすべての UFS ファイルシステム上で、すべてのトランザクションがログからフラッシュされ、マスターファイルシステムに書き込まれます。詳細は、lockfs(1M) のマニュアルページを参照してください。
リソースグループまたはデバイスグループをノードから移動させます。
phys-schost# clnode evacuate from-node |
リソースグループまたはデバイスグループを退避させるノード名を指定します。
ノードをリブートします。
このコマンドは、新しくミラー化されたルート (/) ファイルシステムを再マウントします。
phys-schost# shutdown -g0 -y -i6 |
2 番目のサブミラーをこのミラーに接続します。
phys-schost# metattach mirror submirror2 |
詳細は、metattach(1M) のマニュアルページを参照してください。
ルートディスクのミラー化に使用するディスクが複数のノードに物理的に接続 (マルチホスト化) されている場合は、そのディスクのフェンシングを無効にします。
デバイスの保護を無効にすると、起動デバイスが複数のノードに接続されている場合に、不意にノードが起動デバイスに誤って保護される状態を防止できます。
phys-schost# cldevice set -p default_fencing=nofencing submirror-disk |
デバイスのプロパティーを指定します。
指定したデバイスの保護を無効にします。
default_fencing プロパティーの詳細については、cldevice(1CL) のマニュアルページを参照してください。
主起動デバイスで起動に失敗した場合は、この代替起動デバイスから起動できます。代替起動デバイスについての詳細は、『Solaris Volume Manager Administration Guide』の「Special Considerations for Mirroring root (/)」、または『Solaris ボリュームマネージャの管理』の「RAID-1 ボリュームの作成」を参照してください。
phys-schost# ls -l /dev/rdsk/root-disk-slice |
クラスタ内の残りの各ノードで、手順 1 から手順 11 までを繰り返します。
グローバルデバイスファイルシステム /global/.devices/node@nodeid がマウントされるミラーのボリューム名はそれぞれ、クラスタ全体で一意になるようにする必要があります。
次の例に、パーティション c0t0d0s0 上のサブミラー d10 とパーティション c2t2d0s0 上のサブミラー d20 で構成されているノード phys-schost-1 上に、ミラー d0 を作成する方法を示します。デバイス c2t2d0 は多重ホストディスクのため、 フェンシングは無効になります。次の例は、記録用の代替ファイルパスも示しています。
phys-schost# metainit -f d10 1 1 c0t0d0s0 d11: Concat/Stripe is setup phys-schost# metainit d20 1 1 c2t2d0s0 d12: Concat/Stripe is setup phys-schost# metainit d0 -m d10 d10: Mirror is setup phys-schost# metaroot d0 phys-schost# lockfs -fa phys-schost# clnode evacuate phys-schost-1 phys-schost# shutdown -g0 -y -i6 phys-schost# metattach d0 d20 d0: Submirror d20 is attachedphys-schost# cldevice set -p default_fencing=nofencing c2t2d0 phys-schost# ls -l /dev/rdsk/c2t2d0s0 lrwxrwxrwx 1 root root 57 Apr 25 20:11 /dev/rdsk/c2t2d0s0 –> ../../devices/node@1/pci@1f,0/pci@1/scsi@3,1/disk@2,0:a,raw |
グローバルデバイスの名前空間 /global/.devices/node@nodeid をミラー化する場合は、「グローバルデバイス名前空間をミラー化する」に進みます。
マウント解除できないファイルシステムをミラー化する場合は、「マウント解除できないルート (/) 以外のファイルシステムをミラー化する」に進みます。
ユーザー定義のファイルシステムをミラー化する場合は、「マウント解除できるファイルシステムをミラー化する」に進みます。
それ以外の場合は、「クラスタ内でのディスクセットの作成」に進んで、ディスクセットを作成します。
このミラー化のいくつかの手順で、metainit: dg-schost-1: d1s0: not a metadevice のようなエラーメッセージが出力されることがあります。このようなエラーメッセージは危険ではなく、無視してもかまいません。
次の手順を使用し、グローバルデバイス名前空間 /global/.devices/node@nodeid/ をミラー化します。
グローバルデバイス名前空間が lofi ベースファイル上にある場合、この手順を使用しないでください。 代わりに、 「ルート (/) ファイルシステムをミラー化する」 に進みます。
スーパーユーザーになります。
グローバルデバイス名前空間を単一スライス (1 方向) 連結にします。
ディスクスライスの物理ディスク名を使用します (cNtXdYsZ)。
phys-schost# metainit -f submirror1 1 1 diskslice |
2 番目の連結を作成します。
phys-schost# metainit submirror2 1 1 submirror-diskslice |
1 つのサブミラーを使用して 1 方向のミラーを作成します。
phys-schost# metainit mirror -m submirror1 |
グローバルデバイスファイルシステム /global/.devices/node@nodeid がマウントされるミラーのボリューム名は、クラスタ内で一意にする必要があります。
2 番目のサブミラーをこのミラーに接続します。
このように接続することで、サブミラーの同期が開始されます。
phys-schost# metattach mirror submirror2 |
/global/.devices/node@nodeid ファイルシステム用に /etc/vfstab ファイルエントリを編集します。
device to mount および device to fsck 列の名前を実際のミラー名に変更してください。
phys-schost# vi /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # /dev/md/dsk/mirror /dev/md/rdsk/mirror /global/.devices/node@nodeid ufs 2 no global |
手順 5 で開始したミラーの同期が完了するまで待機します。
metastat(1M) コマンドを使用して、ミラー状態を参照し、ミラーの同期が完了していることを確認します。
phys-schost# metastat mirror |
グローバルデバイス名前空間のミラー化に使用するディスクが複数のノードに物理的に接続 (マルチホスト化) されている場合は、そのディスクのフェンシングを無効にします。
デバイスの保護を無効にすると、起動デバイスが複数のノードに接続されている場合に、不意にノードが起動デバイスに誤って保護される状態を防止できます。
phys-schost# cldevice set -p default_fencing=nofencing submirror-disk |
デバイスのプロパティーを指定します。
指定したデバイスの保護を無効にします。
default_fencing プロパティーの詳細については、cldevice(1CL) のマニュアルページを参照してください。
次の例に、パーティション c0t0d0s3 上のサブミラー d111 と パーティション c2t2d0s3 上のサブミラー d121 で構成されているミラー d101 を作成する方法を示します。/global/.devices/node@1 用の /etc/vfstab ファイルエントリは、ミラー名 d101 を使用するように更新されます。デバイス c2t2d0 は多重ホストディスクのため、フェンシングは無効になります。
phys-schost# metainit -f d111 1 1 c0t0d0s3 d111: Concat/Stripe is setup phys-schost# metainit d121 1 1 c2t2d0s3 d121: Concat/Stripe is setup phys-schost# metainit d101 -m d111 d101: Mirror is setup phys-schost# metattach d101 d121 d101: Submirror d121 is attached phys-schost# vi /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # /dev/md/dsk/d101 /dev/md/rdsk/d101 /global/.devices/node@1 ufs 2 no global phys-schost# metastat d101 d101: Mirror Submirror 0: d111 State: Okay Submirror 1: d121 State: Resyncing Resync in progress: 15 % done … phys-schost# cldevice show phys-schost-3:/dev/rdsk/c2t2d0 === DID Device Instances === DID Device Name: /dev/did/rdsk/d2 Full Device Path: phys-schost-1:/dev/rdsk/c2t2d0 Full Device Path: phys-schost-3:/dev/rdsk/c2t2d0 … phys-schost# cldevicegroup show | grep dsk/d2 Device Group Name: dsk/d2 … Node List: phys-schost-1, phys-schost-3 … localonly: false phys-schost# cldevicegroup remove-node -n phys-schost-3 dsk/d2 phys-schost# cldevice set -p default_fencing=nofencing c2t2d0 |
ルート (/) 以外でマウント解除できないファイルシステムをミラー化する場合は、「マウント解除できないルート (/) 以外のファイルシステムをミラー化する」に進みます。
ユーザー定義のファイルシステムをミラー化する場合は、「マウント解除できるファイルシステムをミラー化する」に進みます。
それ以外の場合は、「クラスタ内でのディスクセットの作成」に進んで、ディスクセットを作成します。
このミラー化のいくつかの手順において、metainit: dg-schost-1: d1s0: not a metadevice のようなエラーメッセージが出力されることがあります。このようなエラーメッセージは危険ではなく、無視してもかまいません。
次の手順を使用し、/usr、/opt、swap などの、通常のシステム使用時にはマウント解除できないルート (/) 以外のファイルシステムをミラー化します。
スーパーユーザーになります。
マウント解除できないファイルシステムが存在しているスライスを単一スライス (1 方向) 連結にします。
ディスクスライスの物理ディスク名を指定します (cNtXdYsZ)。
phys-schost# metainit -f submirror1 1 1 diskslice |
2 番目の連結を作成します。
phys-schost# metainit submirror2 1 1 submirror-diskslice |
1 つのサブミラーを使用して 1 方向のミラーを作成します。
phys-schost# metainit mirror -m submirror1 |
このミラーのボリューム名はクラスタ全体で一意である必要はありません。
各ノードで 、ミラー化したマウント解除できない各ファイルシステムの /etc/vfstab ファイルエントリを編集します。
device to mount および device to fsck 列の名前を実際のミラー名に変更してください。
phys-schost# vi /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # /dev/md/dsk/mirror /dev/md/rdsk/mirror /filesystem ufs 2 no global |
リソースグループまたはデバイスグループをノードから移動させます。
phys-schost# clnode evacuate from-node |
リソースグループまたはデバイスグループを移動させるノード名を指定します。
ノードをリブートします。
phys-schost# shutdown -g0 -y -i6 |
2 番目のサブミラーを各ミラーに接続します。
このように接続することで、サブミラーの同期が開始されます。
phys-schost# metattach mirror submirror2 |
手順 9 で開始したミラーの同期が完了するまで待機します。
metastat(1M) コマンドを使用して、ミラー状態を参照し、ミラーの同期が完了していることを確認します。
phys-schost# metastat mirror |
マウントできないファイルシステムのミラー化に使用するディスクが複数のノードに物理的に接続 (マルチホスト化) されている場合は、そのディスクのフェンシングを無効にします。
デバイスの保護を無効にすると、起動デバイスが複数のノードに接続されている場合に、不意にノードが起動デバイスに誤って保護される状態を防止できます。
phys-schost# cldevice set -p default_fencing=nofencing submirror-disk |
デバイスのプロパティーを指定します。
指定したデバイスの保護を無効にします。
default_fencing プロパティーの詳細については、cldevice(1CL) のマニュアルページを参照してください。
次の例に、ノード phys-schost-1 上にミラー d1 を作成し、c0t0d0s1 上に存在する /usr をミラー化するための方法を示します。ミラー d1 は、パーティション c0t0d0s1 上のサブミラー d11 とパーティション c2t2d0s1 上のサブミラー d21 で構成されています。/usr 用の /etc/vfstab ファイルエントリは、ミラー名 d1 を使用するように更新されます。デバイス c2t2d0 は多重ホストディスクのため、フェンシングは無効になります。
phys-schost# metainit -f d11 1 1 c0t0d0s1 d11: Concat/Stripe is setup phys-schost# metainit d21 1 1 c2t2d0s1 d21: Concat/Stripe is setup phys-schost# metainit d1 -m d11 d1: Mirror is setup phys-schost# vi /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # /dev/md/dsk/d1 /dev/md/rdsk/d1 /usr ufs 2 no global … phys-schost# clnode evacuate phys-schost-1 phys-schost# shutdown -g0 -y -i6 phys-schost# metattach d1 d21 d1: Submirror d21 is attached phys-schost# metastat d1 d1: Mirror Submirror 0: d11 State: Okay Submirror 1: d21 State: Resyncing Resync in progress: 15 % done … phys-schost# cldevice show phys-schost-3:/dev/rdsk/c2t2d0 … DID Device Name: /dev/did/rdsk/d2 phys-schost# cldevicegroup show dsk/d2 Device Group Name: dsk/d2 … Node List: phys-schost-1, phys-schost-3 … localonly: false phys-schost# cldevicegroup remove-node -n phys-schost-3 dsk/d2 phys-schost# cldevice set -p default_fencing=nofencing c2t2d0 |
ユーザー定義のファイルシステムをミラー化する場合は、「マウント解除できるファイルシステムをミラー化する」に進みます。
それ以外の場合は、「クラスタ内でのディスクセットの作成」に進んで、ディスクセットを作成します。
このミラー化のいくつかの手順において、metainit: dg-schost-1: d1s0: not a metadevice のようなエラーメッセージが出力されることがあります。このようなエラーメッセージは危険ではなく、無視してもかまいません。
次の手順を使用し、マウント解除できるユーザー定義ファイルシステムをミラー化します。この手順では、ノードを再起動する必要はありません。
スーパーユーザーになります。
ミラー化するファイルシステムをマウント解除します。
そのファイルシステム上で実行中のプロセスがないことを確認します。
phys-schost# umount /mount-point |
詳細は、umount(1M) のマニュアルページおよび『Solaris のシステム管理 (デバイスとファイルシステム)』の第 18 章「ファイルシステムのマウントとマウント解除 (手順)」を参照してください。
マウント解除できるユーザー定義ファイルシステムが存在するスライスを、単一スライス(1 方向) 連結にします。
ディスクスライスの物理ディスク名を指定します (cNtXdYsZ)。
phys-schost# metainit -f submirror1 1 1 diskslice |
2 番目の連結を作成します。
phys-schost# metainit submirror2 1 1 submirror-diskslice |
1 つのサブミラーを使用して 1 方向のミラーを作成します。
phys-schost# metainit mirror -m submirror1 |
このミラーのボリューム名はクラスタ全体で一意である必要はありません。
各ノードで 、ミラー化した各ファイルシステムの /etc/vfstab ファイルエントリを編集します。
device to mount および device to fsck 列の名前を実際のミラー名に変更してください。
phys-schost# vi /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # /dev/md/dsk/mirror /dev/md/rdsk/mirror /filesystem ufs 2 no global |
2 番目のサブミラーをこのミラーに接続します。
このように接続することで、サブミラーの同期が開始されます。
phys-schost# metattach mirror submirror2 |
手順 8 で開始したミラーの同期が完了するまで待機します。
metastat(1M) コマンドを使用してミラー状態を参照します。
phys-schost# metastat mirror |
ユーザー定義のファイルシステムのミラー化に使用するディスクが複数のノードに物理的に接続 (マルチホスト化) されている場合は、そのディスクのフェンシングを無効にします。
デバイスの保護を無効にすると、起動デバイスが複数のノードに接続されている場合に、不意にノードが起動デバイスに誤って保護される状態を防止できます。
phys-schost# cldevice set -p default_fencing=nofencing submirror-disk |
デバイスのプロパティーを指定します。
指定したデバイスの保護を無効にします。
default_fencing プロパティーの詳細については、cldevice(1CL) のマニュアルページを参照してください。
ミラー化したファイルシステムをマウントします。
phys-schost# mount /mount-point |
詳細はmount(1M)のマニュアルページおよび『Solaris のシステム管理 (デバイスとファイルシステム)』の第 18 章「ファイルシステムのマウントとマウント解除 (手順)」を参照してください。
次の例に、ミラー d4 を作成し、c0t0d0s4 上に存在する /export をミラー化する方法を示します。ミラー d4 は、パーティション c0t0d0s4 上のサブミラー d14 とパーティション c2t2d0s4 上のサブミラー d24 で構成されています。/export 用の /etc/vfstab ファイルエントリは、ミラー名 d4 を使用するように更新されます。デバイス c2t2d0 は多重ホストディスクのため、フェンシングは無効になります。
phys-schost# umount /export phys-schost# metainit -f d14 1 1 c0t0d0s4 d14: Concat/Stripe is setup phys-schost# metainit d24 1 1 c2t2d0s4 d24: Concat/Stripe is setup phys-schost# metainit d4 -m d14 d4: Mirror is setup phys-schost# vi /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # # /dev/md/dsk/d4 /dev/md/rdsk/d4 /export ufs 2 no global phys-schost# metattach d4 d24 d4: Submirror d24 is attached phys-schost# metastat d4 d4: Mirror Submirror 0: d14 State: Okay Submirror 1: d24 State: Resyncing Resync in progress: 15 % done … phys-schost# cldevice show phys-schost-3:/dev/rdsk/c2t2d0 … DID Device Name: /dev/did/rdsk/d2 phys-schost# cldevicegroup show dsk/d2 Device Group Name: dsk/d2 … Node List: phys-schost-1, phys-schost-2 … localonly: false phys-schost# cldevicegroup remove-node -n phys-schost-3 dsk/d2 phys-schost# cldevice set -p default_fencing=nofencing c2t2d0 phys-schost# mount /export |
ディスクセットを作成するには、 「クラスタ内でのディスクセットの作成」 に進みます。あるいは、 Oracle Real Application Clusters,で使用する複数所有者のディスクセットを作成する場合、『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」 を参照してください。
必要十分なディスクセットを持っている場合は、次のうちの1 つに進みます。
クラスタに正確に 2 つのディスク格納装置と 2 つのノードがある場合は、二重列メディエータを追加する必要があります。「二重列メディエータの構成」に進みます。
クラスタ構成が二重列メディエータを必要としない場合は、「クラスタファイルシステムを追加する」に進みます。
このミラー化のいくつかの手順において、metainit: dg-schost-1: d1s0: not a metadevice のようなエラーメッセージが出力されることがあります。このようなエラーメッセージは危険ではなく、無視してもかまいません。
この節では、クラスタ構成向けにディスクセットを作成する方法を説明します。Sun Cluster 環境で Solaris ボリュームマネージャー ディスクセットを作成する場合は、ディスクセットは自動的にタイプ svm のデバイスグループとして Sun Cluster ソフトウェアに登録されます。svm デバイスグループを作成または削除するには、Solaris ボリュームマネージャー コマンドおよびユーティリティーを使用して、デバイスグループの基盤となるディスクセットを作成または削除する必要があります。
次の表に、ディスクセットを作成するときに実行する作業を示します。ここに示す順に従って手順を実行します。
表 4–2 作業マップ: Solaris ボリュームマネージャー ソフトウェアのインストールと構成
作業 |
参照先 |
---|---|
metaset コマンドを使用してディスクセットを作成 | |
ディスクセットにドライブを追加 | |
(省略可能) ディスクセット内のドライブのパーティションを再分割して、さまざまなスライスに空間を割り当てる | |
デバイス ID 擬似デバイスのマッピングを表示し、/etc/lvm/md.tab ファイルにボリュームを定義 | |
md.tab ファイルを初期化 |
この手順を実行して、ディスクセットを作成します。
SPARC: (Solaris 9) 新しいディスクセットを作成したあと、グローバルクラスタのディスクセットが 3 つを超えるかどうかを判定します。
クラスタの任意のノードで、/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 のシステム管理 (基本編)』の「GRUB を使用して x86 システムをブートする (作業マップ)」を参照してください。
クラスタの各ノードで 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 ボリュームマネージャー ソフトウェア用に予約します。ボリュームの目次 (Volume Table of Contents、VTOC) ラベル付きデバイスでは、スライス 7 が使われます。拡張可能ファームウェアインターフェース (Extensible Firmware Interface、EFI) ラベル付きデバイスでは、スライス 6 が使われます。各ドライブの残りの領域は、スライス 0 に配置されます。
ディスクセットにディスクドライブが追加されると、ターゲットスライスが正しく構成されていない場合にのみ、ドライブのパーティションが再分割されます。
パーティションの再分割によって、ドライブ上の既存のデータはすべて失われます。
ターゲットスライスがシリンダ 0 から始まり、ドライブのパーティションに状態データベースの複製を格納するための十分な領域がある場合、ドライブの再分割は行われません。
ディスクセットが作成済みであることを確認します。手順については、「ディスクセットを作成するには」を参照してください。
スーパーユーザーになります。
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# cldevicegroup switch -n node devicegroup |
デバイスグループの所有権を取得するノードを指定します。
デバイスグループ名を指定します。これはディスクセット名と同じです。
ディスクセットにドライブを追加します。
完全な DID パス名を使用します。
phys-schost# metaset -s setname -a /dev/did/rdsk/dN |
デバイスグループ名と同じである、ディスクセット名を指定します。
ディスクセットにドライブを追加します。
ディスクセットにドライブを追加するときは、下位デバイス名 ( cNtX dY) は使用しないでください。下位レベルデバイス名はローカル名であり、クラスタ全体で一意ではないため、この名前を使用するとディスクセットがスイッチオーバーできなくなる可能性があります。
新しいディスクセットとドライブの状態を検査します。
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) コマンドは、ディスクセット内のドライブのパーティションを再分割し、各ドライブの小さな領域を Solaris ボリュームマネージャー ソフトウェア用に予約します。ボリュームの目次 (Volume Table of Contents、VTOC) ラベル付きデバイスでは、スライス 7 が使われます。拡張可能ファームウェアインターフェース (Extensible Firmware Interface、EFI) ラベル付きデバイスでは、スライス 6 が使われます。各ドライブの残りの領域は、スライス 0 に配置されます。ドライブの使用効率を向上させるためには、この手順を使ってディスクのレイアウトを変更して下さい。VTOC スライス 1 から 6 または EFI スライス 1 から 5 に領域を割り当てることで、Solaris ボリュームマネージャー ボリュームを設定するときにこれらのスライスを使用できるようになります。
スーパーユーザーになります。
format コマンドを使用し、ディスクセット内の各ドライブのディスクパーティションを変更します。
ドライブのパーティションを再分割する際は、次の条件を満たすことで、metaset(1M) コマンドでドライブのパーティションを再分割できないようにする必要があります。
状態データベースの複製を維持するのに十分な大きさの、シリンダ 0 で始まるスライス 7 (VTOC の場合) またはスライス 6 (EFI の場合) を作成します。Solaris ボリュームマネージャー の管理者ガイドを参照して、使用のバージョンのボリューム管理ソフトウェア用の状態データベース複製のサイズを判定します。
ターゲットスライスの Flag フィールドを wu (読み書き可能、マウント不可) に設定します。読み取り専用には設定しないでください。
ターゲットスライスがドライブ上のほかのスライスとオーバーラップしないでください。
詳細については、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 の 2 番目のサブミラーであるボリューム 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 つのノードがある場合は、二重列メディエータを追加します。「二重列メディエータの構成」に進みます。
それ以外の場合は、「クラスタファイルシステムを追加する」に進んでクラスタファイルシステムを作成します。
この節では、二重列メディエータホストを構成するための情報と手順について説明します。二重列メディエータは、2 つの列と 2 つのクラスタノードだけで構成されているすべての Solaris ボリュームマネージャー ディスクセットに必要です。メディエータを使用することで、Sun Cluster ソフトウェアは、二重列構成の単一の列に障害が発生した場合に、最新のデータを提示できるようになります。
二重列メディエータ、またはメディエータホストとは、メディエータデータを格納するクラスタノードのことです。メディエータデータは、その他のメディエータの場所に関する情報を提供するもので、データベースの複製に格納されているコミット数と同一のコミット数が含まれています。このコミット数は、メディエータデータがデータベースの複製内のデータと同期しているかどうかを確認するために使用されます。
「ディスク列」は、ディスク格納装置、その物理ドライブ、格納装置から 1 つまたは複数のノードへのケーブル、インタフェースアダプタカードで構成されます。
次の表は、二重列メディエータホストを構成するために実行する作業の一覧を示してします。ここに示す順に従って手順を実行します。
表 4–3 作業マップ: Solaris ボリュームマネージャー ソフトウェアのインストールと構成
作業 |
参照先 |
---|---|
二重列メディエータホストを構成します。 | |
メディエータデータの状態を確認します。 | |
必要に応じて、不正なメディエータデータを修復します。 |
メディエータを使用した二重列構成には、次の規則が適用されます。
ディスクセットは、2 つのメディエータホストのみで構成する必要があります。これら 2 つのメディエータホストは、ディスクセットに使用されているものと同じクラスタノードにする必要があります。
ディスクセットには 3 つ以上のメディエータホストを使用できません。
メディエータは、2 つの列と 2 つのホストという基準を満たさないディスクセットでは構成できません。
上記の規則では、クラスタ全体で 2 つのノードを使用する必要はありません。むしろ、2 つの列を持つディスクセットを 2 つのノードに接続する必要があることだけが規定されています。この規則の下では、N+1 クラスタやその他の多くのトポロジを利用できます。
構成に二重列メディエータが必要な場合は、以下の手順を実行します。
メディエータホストを追加するディスクセットを現在マスターしているノードのスーパーユーザーになります。
ディスクセットに接続されている各ノードを、そのディスクセットのメディエータホストとして追加します。
phys-schost# metaset -s setname -a -m mediator-host-list |
ディスクセット名を指定します。
ディスクセットに追加します。
ディスクセットのメディエータホストとして追加するノードの名前を指定します。
metaset コマンドのメディエータ固有のオプションの詳細については、mediator(7D) のマニュアルページを参照してください。
次の例では、ノード phys-schost-1 と phys-schost-2 をディスクセット dg-schost-1 のメディエータホストとして追加します。どちらのコマンドも、ノード phys-schost-1 から実行します。
phys-schost# metaset -s dg-schost-1 -a -m phys-schost-1 phys-schost# metaset -s dg-schost-1 -a -m phys-schost-2 |
メディエータデータの状態を確認します。「メディエータデータの状態を確認する」に進みます。
「メディエータホストを追加する」の手順に従って、メディエータホストを追加したことを確認します。
メディアエータデータの状態を表示します。
phys-schost# medstat -s setname |
ディスクセット名を指定します。
詳細については、medstat(1M) のマニュアルページを参照してください。
medstat 出力の状態フィールドの値がBad になっている場合は、影響のあるメディエータホストを修復します。
「不正なメディエータデータを修復する」に進みます。
「クラスタファイルシステムを追加する」に進んでクラスタファイルシステムを作成します。
次の手順を実行し、不正なメディエータデータを修復します。
「メディエータデータの状態を確認する」の手順を実行して、不正なメディエータデータを持つすべてのメディエータホストを特定します。
関連するディスクセットを所有しているノードのスーパーユーザーになります。
関連するすべてのディスクセットから、不正なメディエータデータを持つすべてのメディエータホストを削除します。
phys-schost# metaset -s setname -d -m mediator-host-list |
ディスクセット名を指定します。
ディスクセットから削除します。
削除するノードの名前をディスクセットのメディエータホストとして指定します。
手順 3 で削除した各メディエータホストを復元します。
phys-schost# metaset -s setname -a -m mediator-host-list |
ディスクセットに追加します。
ディスクセットのメディエータホストとして追加するノードの名前を指定します。
metaset コマンドのメディエータ固有のオプションの詳細については、mediator(7D) のマニュアルページを参照してください。
次のリストから、ご使用のクラスタ構成に次に適用するタスクを決めます。このリストから複数のタスクを実行する必要がある場合は、このリストのそれらのタスクのうち最初のタスクに進みます。
クラスタファイルシステムを作成するには、「クラスタファイルシステムを追加する」に進みます。
ノード上に非大域ゾーンを作成する場合は、「グローバルクラスタノードに非大域ゾーンを作成する」を参照してください。
SPARC:Sun Management Centerをクラスタを監視するように設定する場合は、「SPARC: Sun Cluster モジュールを Sun Management Center 用にインストールする」を参照してください。
Sun 以外のアプリケーションをインストールし、リソースタイプを登録し、リソースグループを設定し、データサービスを構成します。アプリケーションソフトウェアに付属のドキュメント、および『Sun Cluster Data Services Planning and Administration Guide for Solaris OS』 を参照してください。