この章では、DiskSuite 全体の構造について解説します。次の表を参考にして、必要な箇所を探してください。
DiskSuite は多数のディスクと格納されているデータを管理するためのソフトウェア製品です。DiskSuite にはいろいろな使用方法がありますが、そのほとんどの目的は次の 2 つです。
ディスク容量を増やす
データの可用度を高める
DiskSuite によって入出力のパフォーマンスが向上する場合もあります。
DiskSuite は、仮想ディスクを使用して、物理ディスクとディスク上のデータを管理します。DiskSuite では、この仮想ディスクをメタデバイスと呼びます。
メタデバイスは、使用する側からは物理ディスクと同じです。DiskSuite は、メタデバイスに送られた入出力要求を、メタデバイスを構成するメンバーディスクに送ります。
DiskSuite のメタデバイスは、スライス (ディスクパーティション) から構築されます。メタデバイスは、 DiskSuite に付属しているグラフィカルユーザーインタフェースの DiskSuite ツールを使用すれば簡単に構築できます。DiskSuite ツールは、利用できるすべてのスライスの情報を表示します。スライスをメタデバイスオブジェクトまでドラッグするだけで、そのスライスをメタデバイスに割り当てることができます。DiskSuite ツールのかわりに、コマンド行ユーティリティを使用してメタデバイスを構築および修正することもできます。
たとえば、記憶容量を増やしたい場合には、小さなスライスからなる集合を 1 つの大きなスライス (デバイス) として扱うように、DiskSuite でシステムに指示することができます。これらのスライスから大きなメタデバイスを作成したら、すぐに「本物の」スライス (デバイス) と同じように使用することができます。
メタデバイスについての詳しい説明は、「メタデバイス」を参照してください。
DiskSuite は、ミラー化 (データのコピー) と RAID5 メタデバイスを使用して、データの信頼性と可用度を向上させます。DiskSuite のホットスペアは、ミラーや RAID5 メタデバイスに対して、さらに別のレベルのデータ可用度を提供します。
構成を設定したら、DiskSuite ツールを使用して動作の状況を調べることができます。また、DiskSuite の SNMP トラップ生成デーモンを使用すれば、ネットワーク監視コンソールで DiskSuite のエラーメッセージを自動的に受け取ることができます。
DiskSuite ツールは、DiskSuite の構成を設定および管理するためのグラフィカルユーザーインタフェースです。DiskSuite ツールを起動するためのコマンドは次のとおりです。
# metatool & |
DiskSuite ツールは、DiskSuite オブジェクト (メタデバイス、ホットスペア集合、およびメタデバイス状態データベースの MetaDB オブジェクト) をグラフィカルに表示します。DiskSuite ツール上で DiskSuite オブジェクトをドラッグ&ドロップ操作することによって、すばやくディスクを構成したり、既存の構成を変更したりすることができます。
DiskSuite ツールは、物理デバイスとメタデバイスの両方をグラフィカルに表示して、ディスクの管理を容易にします。また、SPARCstorageTM Array 特有の管理手続きも DiskSuite ツールで行えます。
DiskSuite ツールでは、DiskSuite の管理手続きをすべて行えるわけではありません。一部の操作 (ディスクセットの作成と管理など) は、コマンド行インタフェースを使用して実行しなければなりません。
DiskSuite ツールについての詳しい説明は、第 4 章「DiskSuite ツール」を参照してください。
DiskSuite ツールを管理するためのコマンドを表 1-1 に示します。詳しい説明は、各コマンドのマニュアルページを参照してください。
表 1-1 コマンド行インタフェースのコマンド
DiskSuite のコマンド |
説明 |
---|---|
UFS ファイルシステムを安全に拡張する。 |
|
mdlogd デーモンと mdlogd.cf 構成ファイルにより、一般 SNMP トラップメッセージを送信する。 |
|
アクティブなメタデバイスとホットスペア集合を削除する。 |
|
メタデバイス状態データベースの複製を作成および削除する。 |
|
メタデバイスをミラーから切断する。もしくは、トランスメタデバイスからロギングデバイスを切断する。 |
|
ホットスペアおよびホットスペア集合を管理する。 |
|
メタデバイスを構成する。 |
|
サブミラーをオフラインにする。 |
|
サブミラーをオンラインにする。 |
|
メタデバイスのパラメータを変更する。 |
|
デバイス名を変更、もしくは交換する。 |
|
サブミラーまたは RAID5 メタデバイスのスライスを交換する。 |
|
ルート (/) のミラー化用にシステムファイルを設定する。 |
|
ディスクセットを管理する。 |
|
メタデバイスまたはホットスペア集合の状態を表示する。 |
|
リブート時にメタデバイスを再同期処理する。 |
|
DiskSuite ツールを起動する。 |
|
ミラーにメタデバイスを接続するか、トランスメタデバイスにロギングデバイスを接続する。 |
DiskSuite では、メタデバイス、状態データベースの複製、およびホットスペア集合の 3 種類の基本オブジェクトを作成します。表 1-2 に、これらの DiskSuite オブジェクトの概要を示します。
表 1-2 DiskSuite オブジェクトの概要
DiskSuite オブジェクト |
概要 |
目的 |
参照先 |
---|---|---|---|
物理スライスの集まりで、システムからは 1 つの論理デバイスとして認識される。 |
ディスク容量を上げて、データの可用度を高めるため。 | ||
DiskSuite 構成の状態に関するディスク情報を格納するデータベース。 |
メタデバイス状態データベースの複製を作成しなければ、DiskSuite は動作できない。 | ||
サブミラーまたは RAID5 メタデバイスのスライス障害時に自動的に交換されるように予約されているスライス (ホットスペア) の集まり。 |
ミラーおよび RAID5 メタデバイスにおけるデータの可用度を高めるため。 |
DiskSuite のグラフィカルユーザーインタフェースである DiskSuite ツールでは、メタデバイス、メタデバイス状態データベース、ホットスペア集合のグラフィカル表現も「オブジェクト」と呼びます。
メタデバイスとは、システムから 1 つの論理デバイスとして認識される物理スライスの集まりを意味します。DiskSuite のメタデバイスは、標準 UNIX の疑似 (仮想) デバイスと同じです。
メタデバイスを作成するには、単純連結、ストライプ、ミラー化、RAID レベル 5、UFS ロギングのいずれかの方式を使用します。したがって、作成できるメタデバイスの種類は、連結方式メタデバイス、ストライプ方式メタデバイス、ストライプ方式で連結されたメタデバイス、ミラー、RAID5 メタデバイス、トランスメタデバイスとなります。
DiskSuite では、メタディスクドライバという特殊なドライバを使用します。このドライバは、アプリケーションがメタデバイスを物理デバイスとして扱えるように、物理デバイスとメタデバイスとの間の入出力を管理します。このようなドライバは、論理 (または疑似) ドライバと呼ばれます。
メタデバイスの作成と管理は、グラフィカルユーザーインタフェースの DiskSuite ツールか、もしくはコマンド行インタフェースを使用して行います。
メタデバイスの種類を表 1-3 に要約します。
表 1-3 メタデバイスの種類
メタデバイス |
説明 |
---|---|
そのままメタデバイスとして使用するか、ミラーやトランスデバイスの基本構築ブロックとして使用します。シンプルメタデバイスには、ストライプ方式、連結方式、ストライプ方式の連結の 3 種類があります。シンプルメタデバイスは、物理スライスのみから構成されます。シンプルメタデバイスだけでは、データの冗長性は提供しません。 |
|
複数のコピーを取ることによってデータを複製します。1 つのミラーは、1 つまたは複数のシンプルメタデバイスから構成されます。ミラーを構成するメタデバイスはサブミラーと呼ばれます。 |
|
パリティ情報を使用してデータを複製します。データが欠落している場合には、利用できるデータとパリティ情報から、欠落しているデータが再生成されます。RAID5 メタデバイスは、スライスから構成されます。1 つのスライスの領域がパリティ情報用に割り当てられ、RAID5 メタデバイスを構成するすべてのスライスに分配されます。 |
|
UFS ファイルシステムのログを記録するために使用します。トランスメタデバイスは、1 つのマスターデバイスと1 つのロギングデバイスから構成されます。これらのデバイスとしては、スライス、メタデバイス、ミラー、または RAID5 メタデバイスを使用できます。UFS ファイルシステムは、マスターデバイスに格納されます。 |
メタデバイスを使用すると、ディスクの容量を増やしたり、データの可用度を高めたりすることができます。メタデバイスを使用することで、入出力のパフォーマンスが向上する場合もあります。機能的に見れば、メタデバイスはスライスと同じように動作します。メタデバイスはスライスと似ているため、一般ユーザー、アプリケーション、ファイルシステムからはスライスと同じように見えます。物理デバイスと同じように、メタデバイスもブロック型デバイス名または raw デバイス名によってアクセスされます。メタデバイス名は、ブロック型デバイスと raw デバイスのどちらが使用されるかによって変化します。メタデバイス名についての詳しい説明は、「メタデバイスの規約」を参照してください。
メタデバイスに対しては、ほとんどのファイルシステム関連コマンド (mount(1M)、 umount(1M)、ufsdump(1M)、ufsrestore(1M) など) を使用できますが、 format(1M) コマンドは使用できません。メタデバイスにファイルシステムがマウントされていれば、メタデバイスとの間でファイルの読み取り、書き込み、コピーを行えます。
SPARC および x86 システムでは、次のディスクドライブ上にメタデバイスを作成することができます。
SPARC − IPI、SCSI デバイス、および SPARCstorage Array ドライブ
x86 − SCSI および IDE デバイス
メタデバイス名は d で始まり、その次に数字がきます (表 1-4 の d0 など) 。
DiskSuite はデフォルトで、d0 〜 d127 までの 128 個のメタデバイス名を用意しています。メタデバイス名の例を表 1-4 に示します。
/dev/md/dsk/d0 |
ブロック型メタデバイス d0 |
/dev/md/dsk/d1 |
ブロック型メタデバイス d1 |
/dev/md/rdsk/d126 |
raw メタデバイス d126 |
/dev/md/rdsk/d127 |
raw メタデバイス d127 |
メタデバイス名の省略型
/dev/md/dsk/d1 のようにメタデバイス名を完全に指定する代わりに、単に d1 と指定することもできます。メタデバイスに名前を付けるには、コマンド行インタフェースまたは DiskSuite ツールを使用します。
デフォルトの設定では最大 128 個のメタデバイスを作成できますが、この数を 1,024 個まで増やすことができます。メタデバイスの最大数を変更するには、 /kernel/drv/md.conf ファイルを編集します。このファイルについての説明は、「システムファイルと起動ファイル」を参照してください。
メタデバイス名の格納場所
物理スライスと同じように、メタデバイスにも、ファイルシステムで表示される論理名が与えられます。論理メタデバイス名は、/dev/md/dsk (ブロック型デバイスの場合) または /dev/md/rdsk (raw デバイスの場合) に格納されます。
メタデバイス名の変更
新しい名前が他のメタデバイスで使用されていない場合や、名前を変更しようとしているメタデバイスが使用中でなければ、いつでもメタデバイス名を変更することができます。ファイルシステムでは、対象となるメタデバイスがマウントされていたり、スワップとして使用されていないことを確認してください。raw デバイスを使用するアプリケーション (データベースなど) では、指定された方法でデータのアクセスを停止してください。
メタデバイス名の変更は、DiskSuite ツール (メタデバイスの情報ウィンドウ) を使用するか、コマンド行 (metarename(1M) コマンド) を使用して行います。
metarename(1M) コマンドで -x オプションを指定すると、親子関係を持つメタデバイスを切り替えることができます。詳しい説明は、『Solstice DiskSuite 4.2.1 ユーザーズガイド』を参照してください。
図 1-1 に、ディスク A とディスク B からの 2 つのスライスから構成されるメタデバイスの例を示します。アプリケーションや UFS は、これら 2 つのスライスを、1 つの物理ディスクと同じように扱います。さらに多くのスライスを追加すれば、メタデバイスの容量を増やすことができます。
メタデバイス状態データベース (または単に状態データベース) は、DiskSuite 構成の状態に関するディスク情報を格納するデータベースです。DiskSuite 構成への変更は、すべてメタデバイス状態データベースに記録されます。構成や状態が変化すると、DiskSuite はメタデバイス状態データベースを自動的に更新します。構成の変化とは、新しくメタデバイスを作成した場合などを意味します。状態の変化とは、サブミラーに障害が発生した場合などを意味します。
メタデバイス状態データベースは、複数のデータベースコピーの集まりです。各コピーは状態データベースの複製と呼ばれ、データベースのデータが常に有効であることを保証します。メタデバイス状態データベースのコピーを持つことにより、データベースのあるディスクの 1 つが障害を起こしてもデータを保護できます。メタデバイス状態データベースは、既知の状態データベースの複製の位置と状態をすべて記録しています。
メタデバイス状態データベースと状態データベースの複製が作成されるまで、 DiskSuite は動作することができません。DiskSuite で設定するためには、動作しているメタデバイス状態データベースが必要です。
メタデバイス構成を設定する際には、状態データベースの複製を専用のスライスに格納するか、もしくは後でメタデバイスの一部となるスライスに格納するか、のどちらかを選択できます。スライスがメタデバイスで使用される場合、DiskSuite は状態データベースの複製用に割り当てられているスライス領域を認識して、その領域を自動的にスキップします。状態データベースの複製用に割り当てられているスライス領域は、他の目的のために使用してはいけません。
1 つのスライスに複数の状態データベースの複製を格納しておくこともできますが、そうしておくと、システムはその部分に起こる障害に対して脆弱となります。
状態データベースの複製は、メタデバイス状態データベースのデータが常に正しいものであることを保証します。メタデバイス状態データベースの内容が更新されると、それぞれの複製も更新されます。この更新は、それぞれの複製に対して 1 つずつ行われます (システムがクラッシュした場合に、すべての更新内容が破壊されるのを防ぐためです) 。
システムが状態データベースの複製を消失した場合、DiskSuite は、どの複製に破壊されていないデータが格納されているかを判断しなければなりません。DiskSuite では、多数決アルゴリズムによって、この判断を行います。このアルゴリズムは、過半数 (半数 + 1) の複製が利用できれば、それらの内容は破壊されていないと判断します。このアルゴリズムを有効にするために、ディスク構成を設定する際には 3 つ以上の状態データベースの複製を作成しなければなりません。3 つの複製のうちの 2 つが利用できれば、多数決による意見の一致が得られることになります。
データを保護するため、すべての状態データベースの複製の過半数が利用できない限り、DiskSuite は機能しません。このように、このアルゴリズムはデータを破壊から守ります。
多数決アルゴリズムによって、次のように動作することが保証されます。
システムは、常に過半数以上の状態データベースの複製とともに動作する。
過半数の状態データベースの複製が利用できない場合、システムはパニックを起こす。
過半数の状態データベースの複製が利用できない場合、システムはリブートできない。
状態データベースの複製の数が奇数であれば、その値を 2 で割って小数点以下を切り捨てた整数値に 1 を足した値が過半数値となります。たとえば、複製が 7 個であれば、過半数値は 4 になります (7 を 2 で割って小数点以下を切り捨てると3 になり、それに 1 を足すと 4 になります) 。
ブート中は、DiskSuite は破壊された状態データベースの複製を無視します。破壊された複製を DiskSuite が作成しなおす場合もありますが、そうでない場合には、管理者が複製を修復するまで、その複製は無視されます。スライスのエラーによって複製が不良になった場合には、スライスを修復または交換してから、複製を使用可能にします。
すべての状態データベースの複製を消失した場合には、ディスク上のすべてのデータを失なってしまうことになります。したがって、多数の複製を別々のドライブやコントローラに分散させて作成しておき、最悪の事態を避けるようにしてください。最初の DiskSuite 構成情報とディスクパーティション情報を保存しておくのも良い方法です。
状態データベースの複製を追加する方法や、状態データベースの複製を消失した場合の復旧方法については、『Solstice DiskSuite 4.2.1 ユーザーズガイド』を参照してください。
状態データベースの複製のサイズは、デフォルトでは 517 K バイト (スライスの 1,034 ディスクブロック) に設定されています。ディスクスライスのサイズが大きい場合には、状態データベースの複製を格納できるように、スライスサイズを変更することができます (スライスサイズの変更方法については、『Solstice DiskSuite 4.2.1 ユーザーズガイド』を参照してください) 。
状態データベースの複製は、3 つ以上 (特定箇所の障害に備えて) の異なるディスクに分散させてください。有効な状態データベースの複製が過半数を割ると、DiskSuite は動作しません。
状態データベースの複製は最大で 50 個まで作成できます。
状態データベースの複製は、使用していないスライス上に作成することができます。
既存のファイルシステム、ルート (/) 、/usr、および swap には、状態データベースの複製を作成することはできません。必要であれば (スライス名が利用できれば) 、swap からの領域を割り当てて新しいスライスを作成し、そのスライス上に状態データベースの複製を作成することもできます。詳しい説明は、『Solstice DiskSuite 4.2.1 ユーザーズガイド』を参照してください。
メタデバイスの一部であるスライス上での状態データベースの複製の作成
メタデバイスの一部となるスライス上に状態データベースの複製を作成することもできますが、そのスライスをメタデバイスに追加する前に複製を作成しておかなければなりません。ロギングデバイス上に状態データベースの複製を作成することもできます。DiskSuite は、スライスの最初の部分を状態データベースの複製用に予約します。
同じディスクドライブに複数の状態データベースの複製を配置することもできますが、一般的には、特定箇所の障害に備えて、異なるスライス、ドライブ、およびコントローラに、状態データベースの複製を分散させておきます。
2 台のディスクを使用しているのであれば、各ディスク上に状態データベースの複製を 1 つずつ作成します。
状態データベースの複製が格納されているスライスで障害が発生した場合
状態データベースの複製が格納されているスライスで障害が発生しても、過半数の状態データベースの複製が有効であれば、DiskSuite は動作を続けます。
状態データベースの複製を修復した場合
状態データベースの複製を手動で修復して利用可能にすると、DiskSuite は最新の有効データでその複製を更新します。
ホットスペア集合とは、サブミラーまたは RAID5 メタデバイスでスライス障害が発生した場合に DiskSuite が自動的に交替させるように予約してあるスライス (ホットスペア) の集まりです。ホットスペアにより、ミラーおよび RAID5 メタデバイスのデータ可用度が高まります。ホットスペア集合は、DiskSuite ツールとコマンド行インタフェースのどちらでも作成できます。
エラーが発生すると、DiskSuite はホットスペア集合をチェックして、交換対象のスライスと同じかそれより大きいサイズを持つホットスペアを探します。該当するホットスペアが見つかると、DiskSuite はデータを自動的に再同期させます。適当なサイズのホットスペアが利用できない場合には、交換対象のサブミラーまたは RAID5 メタデバイスのエラーとなります。詳しい説明は、第 3 章「ホットスペア集合」を参照してください。
DiskSuite では、スライスを追加することによってメタデバイスを拡張することができます。
メタデバイスに含まれるマウントまたはマウント解除されている UFS ファイルシステムは、停止したりシステムをバックアップしたりすることなく、拡張することができます (ただし、どんな場合でもデータをバックアップしておくべきでしょう) 。メタデバイスを拡張したら、growfs(1M) コマンドでファイルシステムを拡張してください。
一度拡張したファイルシステムを縮小することはできません。これは UFS 側の制限によります。
raw メタデバイスを使用するアプリケーションやデータベースから、新たに追加されたスライスを認識するためには、それぞれ指定の方法で領域を拡張しなければなりません。DiskSuite では、アプリケーションやデータベース用の領域を拡張する機能は提供していません。
メタデバイスの領域を拡張するには、次のような方法があります。
ストライプまたは単純連結にスライス 1 つを追加する。
ストライプまたは単純連結に複数のスライスを追加する。
ミラーのすべてのサブミラーに 1 つまたは複数のスライスを追加する。
既存のメタデバイスへのスライスの追加は、DiskSuite ツールまたはコマンド行インタフェースを使用して行います。
DiskSuite ツールを使用して UFS ファイルシステムを含むメタデバイスを拡張すると、growfs(1M) コマンドが自動的に実行されます。コマンド行インタフェースを使用してメタデバイスを拡張する場合には、growfs(1M) コマンドを手動で実行します。
growfs(1M) コマンドは、サービスやデータを消失することなく UFS ファイルシステムを拡張します。ただし、growfs(1M) コマンドの実行中は、メタデバイスへの書き込みアクセスはできません。ファイルシステムのサイズは、そのファイルシステムが格納されているスライスまたはメタデバイスのサイズまで拡張できます。
growfs(1M) コマンドで -s <サイズ> オプションを使用すると、追加したディスク領域の一部のみを使用するようにファイルシステムのサイズを拡張することができます。
ミラーを拡張すると、ミラーのサブミラーに領域が追加されます。同じように、トランスメタデバイスを拡張すると、マスターデバイスに領域が追加されます。その後で、ミラーまたはトランスメタデバイスに対して growfs(1M) コマンドを実行します。つまり、領域は構成するデバイスに追加され、growfs(1M) コマンドはトップレベルのデバイスに対して実行されることになります。
この節では、DiskSuite が正常に機能するために必要なファイルについて説明します。ほとんどの場合は、DiskSuite がこれらのファイル (md.tab ファイルを除く) を自動的にアクセス (更新) しますので、これらのファイルについて考える必要はありません。
状態データベースの複製の位置を記録するファイルです。状態データベースの複製の位置が変更されると、DiskSuite は、すべての状態データベースの位置を記録したエントリを mddb.cf ファイルに書き込みます。/etc/system ファイルにも、同じ情報が書き込まれます。
metainit(1M)、metadb(1M)、または metahs(1M) コマンドでそれぞれメタデバイス、状態データベースの複製、またはホットスペアを作成する際に使用する入力ファイルです。メタデバイス、状態データベースの複製のグループ、ホットスペアは、このファイルに対応するエントリを持つことができます。
/etc/lvm/md.tab ファイルの構成情報は、実際に使用しているメタデバイス、ホットスペア、および状態データベースの複製の情報と異なる場合があります。このファイルはメタデバイスなどの作成時にのみ使用されます。ブート時に、DiskSuite の構成情報を、このファイルに反映することがありません。
「ローカル」ディスクセット構成のバックアップファイルです。このファイルは、復旧用に用意されています。DiskSuite の構成 (ホットスペア以外) を変更すると、DiskSuite はこのファイルを自動的に更新します。
mddb.cf または md.cf ファイルを直接編集してはいけません。
DiskSuite は、この構成ファイルを起動時に使用します。このファイルでは、nmd フィールドと md_nsets フィールドを編集することができます。nmd には、構成ファイルがサポートするメタデバイス数を設定します。md_nsets には、ディスクセット数を設定します。nmd のデフォルト値は 128で、最大 1,024 まで増やすことができます。md_nsets のデフォルト値は 4 で、32 まで増やすことができます。md_nsets の数にはローカルセットも含まれているため、ディスクセットの合計は、常に md_nsets の値より 1 つ少なくなります。
DiskSuite は、このファイルを使用して、DiskSuite の mdlogd SNMP トラップ作成デーモンの動作を制御します。mdlogdg.cf は編集可能な ASCII ファイルで、DiskSuite のドライバが指定された条件を検出したときに SNMP トラップデータを送信する先を指定します。
ブート時にメタデバイス構成情報を自動的に再ロードするために使用されます。
メタデバイスを自動的に再同期させるために使用されます。
DiskSuite のシステムファイルについては、マニュアルページを参照してください。
共有ディスクセット (または単にディスクセット) とは、排他的に共有できる (同時に 1 台のホストのみが使用できる) メタデバイスやホットスペアを含む共有ディスクドライブの集まりです。現時点では、SPARCstorage Array ディスクに対してのみ、ディスクセットをサポートしています。
ディスクセットは、データの冗長性と可用度を高めます。1 台のホストが故障しても、他のホストが故障したホストのディスクセットを引き継ぐことができます 。
詳しい説明は、第 5 章「ディスクセット」を参照してください。