metassist コマンドを使用すれば、1 つのコマンドで Solaris ボリュームマネージャのトップレベルのボリューム構成を作成できます。 たとえば、ディスクをパーティションに分割し、RAID 0 ボリュームを (サブミラーとして) 作成し、ホットスペア集合やホットスペアを作成し、最後にミラーを作成する、といった処理をわざわざ手動で行う必要はありません。metassist コマンドを使用すれば、1 つのコマンドを実行してボリュームを作成するだけで、あとは Solaris ボリュームマネージャが処理してくれます。
次の作業マップは、metassist コマンドを使って Solaris ボリュームマネージャのボリュームを作成するための手順を示しています。このコマンドを実行するだけで、サービス品質特性に基づくボリュームを指定し、階層化されたボリューム群を作成することができます。
作業 |
説明 |
---|---|
ボリュームの自動作成 | metassist コマンドを使って、1 つまたは複数の Solaris ボリュームマネージャのボリュームを作成します。 |
ボリュームの作成過程で metassist コマンドから出力される情報量を制御します。この情報は障害追跡や診断のために使用されます。 |
|
metassist コマンドを使って、ボリュームを生成するためのシェルスクリプトを作成します。 |
|
前の手順で作成したシェルスクリプトに指定されている Solaris ボリュームマネージャのボリュームを metassist コマンドを使って作成します。 |
|
作成するボリュームの特性を定義したボリューム構成ファイルを作成します。 |
|
デフォルトのボリューム特性を設定して、 metassist コマンドの動作をカスタマイズします。 |
metassist コマンドを使用すれば、1 つのコマンドで Solaris ボリュームマネージャのトップレベルのボリューム構成を作成できます。 metassist コマンドには、ボリュームのサイズや、冗長性レベル (ボリュームにおけるデータコピーの数)、ボリュームに対するデータパスの数 (ボリュームにアクセスするコントローラの数)、ホットスペアパーティションを使用するかどうか、を指定します。この場合、ボリュームに使用するハードウェアコンポーネントを指定する必要はありません。 ボリュームの指定は、コマンド行オプションや、コマンド行に指定する入力ファイルを使って、サービス品質に基づいて行うことができます。 ボリュームの名前、サイズ、およびコンポーネントを詳細に指定したい場合は、入力ファイルを使用します。
metassist コマンドでは、ボリュームの特性をサービス品質に基づいて指定できます。 指定できるサービス品質特性は次のとおりです。
サイズ
冗長性 (データコピーの数)
データパス
障害回復 (ボリュームとホットスペア集合を関連付けるかどうか)
ボリュームのタイプ (たとえば、RAID 0 (連結方式) または RAID 0 (ストライプ方式))
特定のボリュームで使用するコンポーネント
使用できるコンポーネントと使用できないコンポーネント
使用するコンポーネントの数
作成するボリュームのタイプに特有の特性 (ストライプの飛び越し値やミラーの読み取りポリシーなどの特性)
metassist コマンドは、Solaris ボリュームマネージャ のディスクセットを使って、トップダウン作成に使用するボリュームや使用可能なディスクを管理します。 トップダウン作成では、構成要素となるすべてのディスクが、ディスクセットに属しているか、ディスクセットに追加可能であることが必要です。 トップダウン処理では複数のディスクセットに複数のボリュームを作成できますが、使用可能なディスクやコンポーネントの数はディスクセットの機能に依存します。
ボリュームのトップダウン作成処理は柔軟で、完全に自動化されたエンドツーエンドの処理と、よりきめ細かでブレークポイントを持つ処理とが可能です (図 23–1を参照)。前者の処理では、必要な制約を指定すれば、コマンドの終了時に必要なボリュームが作成されます。後者のブレークポイントでは、XML ベースのファイルを出力できます。
介入が不要な自動ボリューム作成では、コマンド行から必要なサービス品質属性を指定すれば、 metassist コマンドが必要なボリュームを作成してくれます。 次に簡単な例を示します。
# metassist create -s storagepool -S 10Gb |
あるいは、ボリューム要求ファイルにボリュームの特性を定義し、metassist コマンドを実行してこれを実装することもできます。
図 23–1 でわかるように、システム管理者は、ボリューム仕様ファイルを出力することによって、意図する実装になっているかどうかを確認したり、必要に応じてこのファイルを編集したりできます。 このボリューム仕様ファイルは以後、metassist コマンドへの入力として使用できます。
図 23–1 に示すコマンドファイルは、 metassist コマンドで指定した Solaris ボリュームマネージャのデバイス構成を実装するシェルスクリプトです。 システム管理者は、このファイルを使って同じ特性のボリュームを繰り返し作成したり、必要に応じてこのファイルを編集したりすることができます。あるいは、この手順を完全にスキップして、ボリュームを直接、作成することもできます。
metassist コマンドを使ってボリュームやボリューム構成を自動的に作成するためには、正しい Solaris ボリュームマネージャ構成が正常に動作していなければなりません。 少なくとも、次のものが必要です。
ルートのアクセス権、またはこれと同等の役割。 詳細は、『Solaris のシステム管理 (基本編)』の「スーパーユーザー (ルート) になるか役割を引き受ける」を参照してください。
使用するシステム上に適切に分散された状態データベースの複製。 詳細は、Solaris ボリュームマネージャの状態データベースと状態データベースの複製についてを参照してください。
作成するボリューム用に使用可能なディスク。 metassist コマンドは、ディスクセットに基づいて記憶領域を管理します。したがって、metassist コマンドを使って新しいボリュームを作成するためには、完全なディスク (または既存のディスクセット) が必要です。
metassist コマンドは、未使用と思われるディスクをチェックし、使用可能なディスクを慎重に判断します。 すでに使用されていると判断したディスクやスライスは、metassist コマンドが使用できないものと見なします。 コマンドでは、ディスクが次の条件に合致するかどうかがチェックされます。
ほかのディスクセットで使用されているディスク
マウントされているスライス
ファイルシステムスーパーブロックをもつスライス (マウント可能なファイルシステム)
ほかの Solaris ボリュームマネージャのボリュームで使用されているスライス
Solaris ボリュームマネージャの metassist コマンドでは、Solaris ボリュームマネージャのボリュームを個別に作成することもできますし、サービス品質条件に基づいて一連のボリュームを同時に作成することもできます。どちらの場合も、コマンドの数は、従来の Solaris ボリュームマネージャのコマンド数よりも少なくてすみます。
metassist コマンドでは、RAID 1 (ミラー) ボリュームを直接、作成できます。したがって、RAID 1 (ミラー) ボリュームの構成部分となるサブミラー (連結方式またはストライプ方式) を前もって作成する必要はありません。
ボリュームのトップダウン作成 (metassist コマンド) の実行に必要な前提条件が揃っているか確認します。
ミラーの作成に使用する記憶領域を特定します。
記憶領域を明示的に指定しないと、システムにある未使用の記憶領域を Solaris ボリュームマネージャが特定し、必要に応じて使用します。 記憶領域を指定すると、この記憶領域を Solaris ボリュームマネージャが必要に応じて使用します。記憶領域の指定は、広義に (たとえば、コントローラ 1 のすべての記憶領域) 行う場合もあれば、狭義に (たとえば、c1t4d2 は使用し、c1t4d1 は使用しない) 行う場合もあります。
次の形式の metassist コマンドを使って 2 面ミラーを作成します。
metassistcreate -s diskset-name [-r redundancy] -S sizecreate は、ボリュームの作成を指示するサブコマンドです。
-s diskset-name には、ボリュームの作成に使用するディスクセットの名前を指定します。
-r redundancy には、作成する冗長性レベル (データコピーの数) を指定します。
-S size には、作成するボリュームのサイズを KB (キロバイト)、MB (メガバイト)、 GB (ギガバイト)、または TB (テラバイト) 単位で指定します。
詳細は、以下の例と metassist(1M) のマニュアルページを参照してください。
metastat コマンドを使って、新しいボリューム (2 つのサブミラー (ストライプ方式) と 1 つのミラー) が作成されているか確認します。
metastat -s diskset-name
# metassist create -s myset -r 2 -S 10mb |
この例では、metassist コマンドを使って、サイズが 10M バイトの 2 面ミラーを作成します。 metassist コマンドは、未使用のディスクを特定し、これらのディスクを使ってできるだけ条件の良いミラーを作成します。 -s myset 引数は、ボリュームを myset ディスクセット上に作成することを意味します。必要ならこのディスクセットが作成されます。
# metassist create -s myset -f -r 2 -S 10mb |
この例では、metassist コマンドを使って、サイズが 10M バイトの 2 面ミラーと、障害耐性を強化するホットスペアを作成します。障害耐性は -f オプションで指定します。
# metassist create -s myset -a c1 -S 10mb |
この例では、metassist コマンドを使って、コントローラ 1 上の使用可能なディスクからストライプを作成します。使用可能なコントローラを -a オプションで指定します。
metassist コマンドでは、いくつかの手順を行うことによって、metassist コマンドの実行内容や判断理由を知ることができます。 この情報は、以下のような問題の解決に役立ちます。
ボリュームがなぜある方法で作成されたのか。
ボリュームがなぜ作成されなかったのか。
metassist コマンドがどのようなボリュームを作成するのか (ボリュームを実際に作成するわけではない)。
metassist コマンドを実行する際には、出力の詳細度を指定できます。 出力が詳細になれば、それだけ問題の診断に役立ちます。たとえば、あるディスクがボリュームの作成になぜ選択されたのか、あるいは選択されなかったのかを判別したり、特定のコマンドがなぜ失敗したのかを判別したりすることが容易になります。 出力の詳細度を下げれば、ユーザーに不必要な情報の出力を減らすことができます。
ボリュームのトップダウン作成 (metassist コマンド) の実行に必要な前提条件が揃っているか確認します。
ボリュームの作成に使用する記憶領域を特定します。
次の形式の metassist コマンドを使ってストライプを作成し、出力の詳細度を指定します。
metassistcreate -s diskset-name -S size[-v verbosity]create は、ボリュームの作成を指示するサブコマンドです。
-s diskset-name には、ボリュームの作成に使用するディスクセットの名前を指定します。
-S size には、作成するボリュームのサイズを KB (キロバイト)、MB (メガバイト)、 GB (ギガバイト)、または TB (テラバイト) 単位で指定します。
-v verbosity では、出力の詳細度を指定します。 デフォルトレベルは 1 です。指定できる値は、0 (出力がほとんどない) から 2 (出力が多い) です。
詳細は、以下の例と metassist(1M) のマニュアルページを参照してください。
metastat コマンドを使って新しいボリュームの状態を確認します。
metastat -s diskset-name
# metassist create -s myset -f -r 2 -S 10mb -v 2 |
この例では、metassist コマンドを使って、サイズが 10M バイトの 2 面ミラーと、障害耐性を強化するホットスペアを作成します。障害耐性は -f オプションで指定します。 最後の引数 (-v) では、出力の詳細度として最も大きな値である 2 を指定しています。これによって、metassist コマンドの実行結果が最も詳細に出力されます。
# metassist create -s myset -f -r 2 -S 10mb -v 0 |
この例では、metassist コマンドを使って、サイズが 10M バイトの 2 面ミラーと、障害耐性を強化するホットスペアを作成します。障害耐性は -f オプションで指定します。 最後の引数 (-v 0) では、出力の詳細度として最も小さな値である 0 を指定しています。コマンドを実行しても、出力はほとんどありません。
metassist コマンドに - c 引数を指定すると、ボリューム構成の作成に使用できるコマンドを含んだ Bourne シェルスクリプトが生成されます。 この方法を使用すれば、ボリュームを実際に作成する前にコマンドを確認したり、場合によっては、必要に応じてスクリプトを微調整することができます。
ボリュームのトップダウン作成 (metassist コマンド) の実行に必要な前提条件が揃っているか確認します。
ボリュームの作成に使用する記憶領域を特定します。
ストライプを作成する metassist コマンドを次の形式で使用します。このコマンドでは、このボリュームを実際には作成せず、ボリュームの作成に使用するコマンドシーケンス (シェルスクリプト) を標準出力に送信します。
metassistcreate -s diskset-name -S size [-c]create は、ボリュームの作成を指示するサブコマンドです。
-s diskset-name には、ボリュームの作成に使用するディスクセットの名前を指定します。
-S size には、作成するボリュームのサイズを KB (キロバイト)、MB (メガバイト)、 GB (ギガバイト)、または TB (テラバイト) 単位で指定します。
-c は、ボリュームを実際には作成しないことを意味します。 その代わりに、指定した構成を作成するためのシェルスクリプトが、標準出力に送信されます。
詳細は、以下の例とmetassist(1M) のマニュアルページを参照してください。
-c 引数によって生成されるシェルスクリプトは標準出力に送信されますが、 metassist コマンドのその他の出力は標準エラーに送信されます。したがって、これらの出力ストリームの送信先は自由に変更できます。
# metassist create -s myset -f -r 2 -S 10mb -c |
この例では、metassist コマンドを使って、サイズが 10M バイトの 2 面ミラーと、障害耐性を強化するホットスペアを作成します。障害耐性は -f オプションで指定します。 最後の引数 (-c) は、ボリュームを実際には作成しないことを意味します。その代わりに、指定した構成を作成するためのシェルスクリプトが、標準出力に送信されます。
# metassist create -s myset -f -r 2 -S 10mb -c > /tmp/metassist-shell-script.sh |
この例では、metassist コマンドを使って、サイズが 10M バイトの 2 面ミラーと、障害耐性を強化するホットスペアを作成します。障害耐性は -f オプションで指定します。 最後の引数 (-c) は、ボリュームを実際には作成しないことを意味します。その代わりに、指定した構成を作成するためのシェルスクリプトが、標準出力に送信されます。 コマンドの最後の部分では、標準出力をリダイレクトして /tmp/metassist-shell-script.sh シェルスクリプトを作成することを指定します。このファイルはあとで、指定したボリュームを作成するために使用できます。
metassist コマンドでシェルスクリプトを作成したら、このスクリプトを使ってボリュームを作成できます。ボリュームは、シェルスクリプトの作成時に指定したとおりに作成されます。
metassist コマンドで作成したコマンドスクリプトは、スクリプトを作成したシステムのその時点の構成に大きく依存しています。 したがって、このスクリプトを別のシステムで使用したり、このスクリプトをシステム構成の変更後に使用したりすると、データが壊れたり失われたりすることがあります。
ボリュームのトップダウン作成 (metassist コマンド) の実行に必要な前提条件が揃っているか確認します。
シェルスクリプトの作成後にシステム構成が変更されていないことを確認します。さらに、スクリプトを実行するシステムが、このスクリプトを作成したシステムであることを確認します。
保存されたシェルスクリプトを実行します。
sh ./metassist-shell-script-namemetastat コマンドを使って新しいボリュームの状態を確認します。
metastat -s diskset-namemetassist コマンドに -d 引数を指定すると、XML ベースのボリューム構成ファイルが生成されます。このファイルには、ボリュームに関連するすべてのオプションや情報など、ボリュームとそのコンポーネントの詳細が含まれています。 このファイルを調べることによって、metassist コマンドが推奨する構成を知ることができます。 さらに、このボリューム構成ファイルを慎重に変更して構成を微調整したあと、実際のボリューム作成の際に metassist コマンドへの入力として使用することもできます。
ボリュームのトップダウン作成 (metassist コマンド) の実行に必要な前提条件が揃っているか確認します。
ボリュームの作成に使用する記憶領域を特定します。
ストライプを作成する metassist コマンドを次の形式で使用します。このコマンドでは、このボリュームを実際には作成せず、作成しようとするボリュームを定義したボリューム構成ファイルを標準出力に送信します。
metassist create -s diskset-name -S size [-d]create は、ボリュームの作成を指示するサブコマンドです。
-s diskset-name には、ボリュームの作成に使用するディスクセットの名前を指定します。
-S size には、作成するボリュームのサイズを KB (キロバイト)、MB (メガバイト)、 GB (ギガバイト)、または TB (テラバイト) 単位で指定します。
-d は、ボリュームを実際には作成しないことを意味します。 その代わりに、指定した構成を作成するために使用できる XML べースのボリューム構成ファイルが、標準出力に送信されます。
詳細は、以下の例とmetassist(1M) のマニュアルページを参照してください。
-d 引数によって生成される XML ベースのボリューム構成ファイルは標準出力に送信されますが、metassist コマンドのその他の出力は標準エラーに送信されます。したがって、これらの出力ストリームの送信先は自由に変更できます。
# metassist create -s myset -f -r 2 -S 10mb -d |
この例では、metassist コマンドを使って、サイズが 10M バイトの 2 面ミラーと、障害耐性を強化するホットスペアを作成します。障害耐性は -f オプションで指定します。 最後の引数 (-d) は、ボリュームを実際には作成しないことを意味します。その代わりに、指定した構成を作成するためのボリューム構成ファイルが、標準出力に送信されます。
# metassist create -s myset -f -r 2 -S 10mb -d > /tmp/metassist-volume-config.xml |
この例では、metassist コマンドを使って、サイズが 10M バイトの 2 面ミラーと、障害耐性を強化するホットスペアを作成します。障害耐性は -f オプションで指定します。 最後の引数 (-d) は、ボリュームを実際には作成しないことを意味します。その代わりに、指定した構成を作成するためのボリューム構成ファイルが、標準出力に送信されます。 コマンドの最後の部分では、標準出力をリダイレクトして /tmp/metassist-volume-config.xml シェルスクリプトを作成することを指定します。このファイルはあとで、指定したボリュームを作成するために使用できます。
ボリュームデフォルトファイル (/etc/defaults/metassist.xml ) は、metassist コマンドのデフォルト動作を設定するためのものです。 デフォルトファイルを変更すれば、ディスクやコントローラを明示的に除外したり包含したりできるだけでなく、metassist コマンドで使用するボリューム設定の大半に、条件を追加指定できます。
/etc/defaults/metassist.xml の形式は /usr/share/lib/xml/dtd/volume-defaults.dtd の文書型定義 (DTD) で指定されています。詳細は、volume-defaults(4) のマニュアルページを参照してください。
ボリュームデフォルトファイル (/etc/defaults/metassist.xml ) を編集して、metassist コマンドの動作を指定します。
ファイルを編集する際には、ファイルが /usr/share/lib/xml/dtd/volume-defaults.dtd の文書型定義を逸脱しないように注意してください。 XML ファイルが DTD に準拠していないと、metassist コマンドはエラーメッセージを出して異常終了します。
ボリュームを作成する前に、/etc/default/metassist.xml ファイルを編集してデフォルト設定を指定します。この設定は、metassist コマンドを使って作成するすべてのボリュームに適用されます。 この例に示す metassist コマンドでは、ボリュームをコントローラ c1 上にだけ作成します。さらに、ストライプを作成する際には必ず、4 つのコンポーネントと飛び越し値 512KB からなるストライプを作成します。 /etc/default/metassist.xml ファイルが再び変更されない限り、これらの制約はすべての metassist コマンドに適用されます。
# cat /etc/default/metassist.xml <!DOCTYPE volume-defaults SYSTEM "/usr/share/lib/xml/dtd/volume-defaults.dtd"> <volume-defaults> <available name="c1" /> <stripe mincomp="4" maxcomp="4" interlace="512KB" ></stripe> </volume-defaults> # metassist create -s myset -S 10Gb |
この metassist コマンドの実行例では、/etc/default/metassist.xml ファイルの指定に従って、4 つのスライスと 512KB の飛び越し値からなる 10G バイトのストライプが作成されます。