この章では、ディスクセットに関連する作業について説明します。 これらの作業に関連する概念については、第20章「ディスクセット (概要)」を参照してください。
次の作業マップに、Solaris ボリュームマネージャのディスクセットとSolaris Volume Manager for Sun Cluster マルチオーナーディスクセットを管理するために必要な手順を示します。 特に注記していない限り、すべてのコマンドは両方のディスクセットに使用できます。 マルチオーナーディスクセットに関連する作業には、Solaris ボリュームマネージャ GUI は使用できません。
作業 |
説明 |
参照先 |
---|---|---|
ディスクセットを作成する |
Solaris ボリュームマネージャの GUI か metaset コマンドを使ってディスクセットを作成します。 metaset -M コマンドを使用して、マルチオーナーディスクセットを作成します。 | |
ディスクセットにディスクを追加する |
Solaris ボリュームマネージャの GUI か metaset コマンドを使用して、ディスクセットにディスクを追加します。 | |
ディスクセットにホストを追加する |
Solaris ボリュームマネージャの GUI か metaset コマンドを使ってディスクセットにホストを追加します。 | |
ディスクセットに Solaris ボリュームマネージャのボリュームを作成する |
Solaris ボリュームマネージャの GUI か metainit コマンドを使ってディスクセットにボリュームを作成します。 | |
ディスクセットの状態をチェックする |
Solaris ボリュームマネージャの GUI か metastat コマンドを使ってディスクセットの状態をチェックします。 | |
ディスクセットからディスクを削除する |
Solaris ボリュームマネージャの GUI か metaset コマンドを使用して、ディスクセットからディスクを削除します。 | |
ディスクセットを取得する |
Solaris ボリュームマネージャの GUI か metaset コマンドを使ってディスクセットを取得します。 | |
ディスクセットを解放する |
Solaris ボリュームマネージャの GUI か metaset コマンドを使ってディスクセットを解放します。 | |
ディスクセットからホストを削除する |
Solaris ボリュームマネージャの GUI か metaset コマンドを使ってディスクセットからホストを削除します。
| |
ディスクセットを削除する |
Solaris ボリュームマネージャの GUI か metaset コマンドを使ってディスクセットから最後のホストを削除し、ディスクセットを削除します。 | |
ディスクセットをインポートする |
metaimport コマンドを使用して、ディスクセットについてのレポートを取得することによって、どのディスクセットをインポートできるかを判断したり、あるシステムから別のシステムにディスクセットをインポートしたりします。 |
「ディスクセットを使用するときの指針」を確認します。
次のどちらかの方法でディスクセットを作成します。
Solaris 管理コンソール内の「拡張ストレージ」から「ディスクセット (Disk Sets)」ノードを開きます。 「アクション (Action)」、「ディスクセットを作成 (Create Disk Set)」の順に選択し、ウィザードの指示に従います。 詳細は、オンラインヘルプを参照してください。
コマンド行から次の形式の metaset コマンドを実行して、ディスクセットを最初から作成します。
metaset -s diskset-name -a -h -M hostname |
metaset コマンドが使用するディスクセットの名前です。
ディスクセットにホストを追加することを意味します。 Solaris ボリュームマネージャは、共有ディスクセットごとに 8 つまでのホストをサポートします。マルチオーナーディスクセットは、アプリケーションがサポートするホストの数によって制限されます。
マルチオーナーディスクセットを作成することを意味します。
マルチオーナーディスクセットは、Sun Cluster および Oracle9i Real Application Clusters で機能します。 Sun Cluster の互換性のあるリリースについては、http://wwws.sun.com/software/clusterを参照してください。
ディスクセットに追加する 1 つまたは複数のホストを指定します。 最初のホストを追加すると、ディスクセットが作成されます。 2 つめのホストはあとで追加できます。ただし、ディスクセット内のすべてのディスクが指定した hostname 内に存在しなければなりません。 hostname は、/etc/nodename ファイルに指定されている名前と同じでなければなりません。
詳細は、metaset(1M) のマニュアルページを参照してください。
metaset コマンドを実行して新しいディスクセットの状態をチェックします。
# metaset |
# metaset -s blue -a -h lexicon # metaset Set name = blue, Set number = 1 Host Owner lexicon |
この例では、blue という共有ディスクセットをホスト lexicon から作成します。 metaset コマンドは状態を表示します。 この時点ではディスクセットの所有者はいません。 ディスクセットにディスクを追加するホストがデフォルトで所有者になります。
# metaset -s red -a -M -h nodeone # metaset Multi-owner Set name = red, Set number = 1, Master = Host Owner Member nodeone Yes |
この例では、red というマルチオーナーディスクセットを nodeone というホストから作成します。 追加される各ホストは、このディスクセットのメンバーになります。 ディスクセットに最初にディスクを追加するホストがデフォルトでマスターノードになります。
32 ビットカーネルの Solaris ソフトウェア、または Solaris 9 4/03 より前のバージョンの Solaris オペレーティングシステムを実行する予定がある場合は、1T バイトを超えるディスクをディスクセットに追加しないでください。Solaris ボリュームマネージャでの大容量ボリュームのサポートについては、「Solaris ボリュームマネージャの大容量ボリュームのサポートについての概要」を参照してください。
ディスクセットに追加されるディスクは、次の条件を満たしている必要があります。
ディスクがボリュームやホットスペア集合内で使用されていたり、ディスクに状態データベースの複製が含まれていたりしてはなりません。
ディスクがマウントされていたり、スワップされていたり、アプリケーションによって開かれていたりしてはなりません。
「ディスクセットを使用するときの指針」を確認します。
次のどちらかの方法でディスクセットにディスクを追加します。
Solaris 管理コンソール内の「拡張ストレージ」から「ディスクセット (Disk Sets)」ノードを開きます。 変更するディスクセットを右クリックして、「プロパティ (Properties)」を選択します。 「ディスク (Disks)」タブを選択し、「ディスクを追加 (Add Disk)」をクリックして、ウィザードの指示に従います。 詳細は、オンラインヘルプを参照してください。
コマンド行から次の形式の metaset コマンドを実行して、ディスクセットにディスクを追加します。
metaset -s diskset-name -a disk-name |
metaset コマンドが使用するディスクセットの名前です。
ディスクセットにディスクを追加することを意味します。
ディスクセットに追加するディスクの名前です。 ディスク名の形式は、cxtxdx です。名前の最後にスライス識別子「sx」は付けません。 ドライブ名は、ディスクセットを共有するすべてのホストで共通でなければなりません。
詳細は、metaset のマニュアルページ (metaset(1M)) を参照してください。
ディスクセットに最初にディスクを追加するホストがディスクセットの所有者になります。
データが格納されているディスクを追加しないでください。このようなディスクをディスクセットに追加すると、その過程でディスクのパーティションが再分割され、データが破壊されることがあります。 詳細は、「例 2 つの共有ディスクセット」を参照してください。
metaset コマンドを使用して、ディスクセットとディスクの状態を確認します。
# metaset |
# metaset -s blue -a c1t6d0 # metaset Set name = blue, Set number = 1 Host Owner lexicon Yes Drive Dbase c1t6d0 Yes |
この例では、ホスト名は lexicon です。 共有ディスクセットの名前は blue です。 この時点でディスクセット blue に追加されているドライブは 1 つだけです。
コマンド行から複数のドライブを指定すれば、同時に複数のドライブを追加することもできます。 たとえば、次のように指定します。
# metaset -s blue -a c1t6d0 c2t6d0 |
Solaris ボリュームマネージャは、ディスクセット当たり最大で 4 つのホストをサポートします。 この手順では、1 つのホストがすでに接続されているディスクセットに別のホストを追加する手順について説明します。
「ディスクセットを使用するときの指針」を確認します。
次のどちらかの方法でディスクセットにホストを追加します。
Solaris 管理コンソール内の「拡張ストレージ」から「ディスクセット (Disk Sets)」ノードを開き、変更するディスクセットを選択します。 変更するディスクセットを右クリックして、「プロパティ (Properties)」を選択します。 「ホスト (Hosts)」タブを選択し、「ホストを追加 (Add Host)」をクリックして、ウィザードの指示に従います。 詳細は、オンラインヘルプを参照してください。
コマンド行から次の形式の metaset コマンドを実行して、ディスクセットにホストを追加します。
metaset -s diskset-name -a -h hostname |
metaset コマンドが使用するディスクセットの名前です。
ディスクセットにディスクを追加することを意味します。
ディスクセットに追加する 1 つまたは複数のホスト名を指定します。 最初のホストを追加すると、ディスクセットが作成されます。 ホスト名は、/etc/nodename ファイルに指定されている名前と同じである必要があります。
詳細は、metaset のマニュアルページ (metaset(1M)) を参照してください。
オプションを指定せずに metaset コマンドを実行して、ホストがディスクセットに追加されていることを確認します。
# metaset |
# metaset -s blue -a -h idiom # metaset -s blue Set name = blue, Set number = 1 Host Owner lexicon Yes idiom Drive Dbase c1t6d0 Yes c2t6d0 Yes |
この例では、ホスト idiom をディスクセット blue に追加します。
ディスクセットを作成したら、ディスクセットに追加したディスクを使ってボリュームやホットスペア集合を作成できます。 この操作には、Solaris 管理コンソール内の「拡張ストレージ」かコマンド行ユーティリティを使用します。
次のどちらかの方法で、ボリュームなどの Solaris ボリュームマネージャのデバイスをディスクセット内に作成します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」、「状態データベースの複製 (State Database Replicas)」、または「ホットスペアプール (Hot Spare Pools)」ノードを選択します。 「アクション (Action)」、「作成 (Create)」の順に選択し、ウィザードの指示に従います。 詳細は、オンラインヘルプを参照してください。
コマンド行ユーティリティを使ってディスクセット内にコンポーネントを作成します。この構文は、コマンドのすぐ後に -s diskset-name を指定することを除き、ディスクセットを使用しない場合の基本構文と同じです。
# metainit -s blue d11 1 1 c1t6d0s0 blue/d11: Concat/Stripe is setup # metainit -s blue d12 1 1 c2t6d0s0 blue/d12: Concat/Stripe is setup # metainit -s blue d10 -m d11 blue/d10: Mirror is setup # metattach -s blue d10 d12 blue/d10: submirror blue/d12 is attached # metastat -s blue blue/d10: Mirror Submirror 0: blue/d11 State: Okay Submirror 1: blue/d12 State: Resyncing Resync in progress: 0 % done Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Size: 17674902 blocks blue/d11: Submirror of blue/d10 State: Okay Size: 17674902 blocks Stripe 0: Device Start Block Dbase State Reloc Hot Spare c1t6d0s0 0 No Okay blue/d12: Submirror of blue/d10 State: Resyncing Size: 17674902 blocks Stripe 0: Device Start Block Dbase State Reloc Hot Spare c2t6d0s0 0 No Okay |
この例では、ディスクセット blue にミラー d10 を作成します。ミラーは、サブミラー (RAID 0 デバイス) d11 と d12 からなります。
red# metaset -s blue Set name = blue, Set number = 1 Host Owner idiom Yes Drive Dbase c1t6d0 Yes c2t6d0 Yes |
metaset コマンドに -s オプションを指定して、その後に blue というディスクセットの名前を指定すると、そのディスクセットの状態情報が表示されます。 metaset コマンドを所有者側ホスト idiom から実行すると、idiom が実際にこのディスクセットの所有者であることがわかります。 metaset コマンドでは、ディスクセットに属するディスクも表示されます。
オプション指定せずに metaset コマンドを実行すると、すべてのディスクセットの状態が表示されます。
ディスクセットを削除するためには、まず、ディスクセットからすべてのディスクを削除する必要があります。
Solaris 管理コンソール内の「拡張ストレージ」から「ディスクセット (Disk Sets)」ノードを開きます。 解放するディスクセットを右クリックし、メニューから「プロパティ (Properties)」を選択します。 「ディスク (Disks)」タブをクリックし、オンラインヘルプの指示に従います。
metaset -s diskset-name -d drivename |
metaset コマンドが使用するディスクセットの名前です。
ディスクセットから削除するディスクの名前です。 ディスク名の形式は、cxtxdx です。名前の最後にスライス識別子「sx」は付けません。
詳細は、metaset(1M) のマニュアルページを参照してください。
metaset -s diskset-name コマンドを使用して、ディスクがディスクセットから削除されていることを確認します。
# metaset -s blue |
lexicon# metaset -s blue -d c1t6d0 lexicon# metaset -s blue Set name = blue, Set number = 1 Host Owner lexicon idiom Drive Dbase c2t6d0 Yes |
この例では、ディスクセット blue からディスクを削除します。
このオプションはマルチオーナーディスクセットには使用できません。
次のどちらかの方法でディスクセットを取得します。
Solaris 管理コンソール内の「拡張ストレージ」から「ディスクセット (Disk Sets)」ノードを開きます。 取得するディスクセットを右クリックし、メニューから「所有権を取得 (Take Ownership)」を選択します。 詳細は、オンラインヘルプを参照してください。
次の形式の metaset コマンドを実行します。
metaset -s diskset-name -t |
metaset コマンドが使用するディスクセットの名前です。
ディスクセットを取得することを意味します。
ディスクセットを強制的に取得することを意味します。
詳細は、metaset(1M) のマニュアルページを参照してください。
ディスクセットのあるホストがそのディスクセットを取得すると、このディスクセットのほかのホストは、このディスクセットのディスクのデータにアクセスできません。
metaset コマンドのデフォルト動作では、 他方のホストがディスクセットを解放できなければ、このホストからディスクセットを取得することはできません。
ディスクセットを強制的に取得する場合は、-f オプションを指定します。 このオプションを指定すると、ディスクセットは、別のホストが所有しているか否かにかかわらず、このホストによって取得されます。 この方法は、通常、ディスクセットを共有するホストの 1 つが停止したり、通信していないときに使用されます。 ディスクセットを強制的に取得させられた他のホストは、このディスクセットの入出力操作を試みたときにパニック状態になります。
ディスクセットの所有権は、ディスクセットを所有するホストだけに表示されます。
lexicon# metaset ... Set name = blue, Set number = 1 Host Owner lexicon idiom ... lexicon# metaset -s blue -t lexicon# metaset ... Set name = blue, Set number = 1 Host Owner lexicon Yes idiom ... |
この例では、ホスト lexicon がホスト idiom と通信し、idiom がディスクセットを解放したことを確認してから、ディスクセットを取得します。
この例の場合、ホスト idiom がディスクセット blue を所有していたとしても、出力の「所有者 (Owner)」欄はブランクになります。 metaset コマンドは、このコマンドを実行したホスト (ほかのホストとは関係なく) がディスクセットを所有しているかどうかだけを表示します。
# metaset -s blue -t -f |
この例では、ホストがほかのホストと通信せずに、ディスクセットを取得します。 つまり、このディスクセットのディスクは警告なしに取得されます。 他のホストがディスクセットを所有していた場合には、そのホストが、ディスクセットの入出力操作を試みたときにパニックを引き起こします。
ディスクセットの物理ディスクを保守する場合は、ディスクセットをあらかじめ解放しておくと便利です。 ディスクセットを解放すると、そのディスクセットはホストからアクセスできなくなります。 ディスクセットを共有する両方のホストがディスクセットを解放すると、そのディスクセットに設定されているボリュームやホットスペア集合にはどちらのホストからもアクセスできなくなります。ただし、c*t*d* という名前を使えば、どちらのホストからでもディスクに直接アクセスできます。
このオプションはマルチオーナーディスクセットには使用できません。
「ディスクセットを使用するときの指針」を確認します。
次のどちらかの方法でディスクセットを解放します。
Solaris 管理コンソール内の「拡張ストレージ」から「ディスクセット (Disk Sets)」ノードを開きます。 解放するディスクセットを右クリックし、メニューから「所有権を開放 (Release Ownership)」を選択します。 詳細は、オンラインヘルプを参照してください。
次の形式の metaset コマンドを実行して、ディスクセットの所有権を解放します。
metaset -s diskset-name -r |
metaset コマンドが使用するディスクセットの名前です。
ディスクセットを解放することを意味します。 ディスクセット内のすべてのディスクの予約が取り消されます。 ディスクセット内のボリュームにはアクセスできなくなります。
詳細は、metaset(1M) のマニュアルページを参照してください。
ディスクセットの所有権は、ディスクセットを所有するホストだけに表示されます。
オプションを指定せずに metaset コマンドを実行して、ディスクセットがこのホストから解放されていることを確認します。
# metaset |
lexicon# metaset -s blue -r lexicon# metaset -s blue Set name = blue, Set number = 1 Host Owner lexicon idiom Drive Dbase c1t6d0 Yes c2t6d0 Yes |
この例では、ディスクセット blue を解放します。 この時点では、ディスクセットの所有者がいないことに注意してください。 ホスト lexicon から状態を調べると、誤解を招くおそれがあります。 これは、ホストが調査できるのは、そのホストがディスクセットを所有しているかどうかだけだからです。 たとえば、ホスト idiom がディスクセットを取得したとしても、ホスト lexicon からそのことを知ることはできません。 この場合、取得していることを知ることができるのは、ホスト idiom だけです。
ディスクセットを削除する場合は、ディスクセットにディスクが含まれていたり、ディスクセットにほかのホストが接続していたりしてはなりません。 最後のホストを削除すると、ディスクセットは削除されます。
次のどちらかの方法でディスクセットからホストを削除し、そのホストが最後のホストである場合は、ディスクセットも削除します。
Solaris 管理コンソール内の「拡張ストレージ」から「ディスクセット (Disk Sets)」ノードを開きます。 解放するディスクセットを右クリックし、メニューから「削除 (Delete)」を選択します。 詳細は、オンラインヘルプを参照してください。
次の形式の metaset コマンドを実行してディスクセットからホストを削除し、 そのホストが最後のホストである場合は、ディスクセットも削除します。
metaset -s diskset-name -d -h hostname |
metaset コマンドが使用するディスクセットの名前です。
ディスクセットからホストを削除することを意味します。
削除するホストの名前を指定します。
# metaset -s blue -d idiom |
詳細は、metaset(1M) のマニュアルページを参照してください。
metaset コマンドを実行して、このホストがディスクセットから削除されていることを確認します。 出力には、現在の (所有者側) ホストだけが表示され、 他のホストがすでに削除されていることがわかります。
# metaset -s blue Set name = blue, Set number = 1 Host Owner lexicon Yes Drive Dbase c1t2d0 Yes c1t3d0 Yes c1t4d0 Yes c1t5d0 Yes c1t6d0 Yes c2t1d0 Yes |
lexicon# metaset -s blue -d lexicon lexicon# metaset -s blue metaset: lexicon: setname "blue": no such set |
この例では、ディスクセット blue から最後のホストを削除します。
metaimport コマンドを使用すると、あるシステムから別のシステムにディスクセットをインポートできます。
このオプションはマルチオーナーディスクセットには使用できません。
スーパーユーザーになります。
インポートに利用できるディスクセットについてのレポートを取得します。
# metaimport -r -v |
システム上にあってインポートに利用できる未構成のディスクセットのレポートを提供します。
状態データベースの複製の場所についての詳細な情報と、システム上にあってインポートに利用できる未構成のディスクセットのディスクの状態についての詳細な情報を提供します。
次の例では、インポートに利用できるディスクセットについてのレポートを出力する方法を示します。
# metaimport -r Drives in diskset including disk c1t2d0: c1t2d0 c1t3d0 c1t8d0 More info: metaimport -r -v c1t2d0 Import: metaimport -s newsetname> c1t2d0 # metaimport -r -v c1t2d0 Import: metaimport -s newsetname> c1t2d0 Last update: Mon Dec 29 14:13:35 2003 Device offset length replica flags c1t2d0 16 8192 a u c1t3d0 16 8192 a u c1t8d0 16 8192 a u |
スーパーユーザーになります。
ボリューム名が nmd 値の範囲内であるかどうかを確認します。 必要であれば、/kernel/drv/md.conf 内の nmd フィールドを変更します。 詳細は、「デフォルトのボリューム数を増やすには」を参照してください。
ディスクセットがインポートに利用できることを確認します。
# metaimport -r -v |
利用できるディスクセットをインポートします。
# metaimport -s diskset-name drive-name |
作成するディスクセットの名前です。
インポートするディスクセットの状態データベースの複製を含むディスク (c#t#d#) を指定します。
ディスクセットがインポートされたことを確認します。
# metaset -s diskset-name |
次の例では、ディスクセットをインポートする方法を示します。
# metaimport -s red c1t2d0 Drives in diskset including disk c1t2d0: c1t2d0 c1t3d0 c1t8d0 More info: metaimport -r -v c1t2d0 # metaset -s red Set name = red, Set number = 1 Host Owner lexicon Yes Drive Dbase c1t2d0 Yes c1t3d0 Yes c1t8d0 Yes |