この節では、ミラー化されたファイルシステムを作成する利点について説明します。ミラー化されたファイルシステムの作成に必要な Solaris ボリュームマネージャコンポーネントについても説明します。
この章の内容は次のとおりです。
ミラー化されたファイルシステムの作成に Solaris Live Upgrade を使用する方法については、ミラー化されたファイルシステムを作成するための一般的な指針を参照してください。
ミラー化されたファイルシステムの作成にカスタム JumpStart インストールを使用する方法については、filesys プロファイルキーワード (ミラー化されたファイルシステムの作成) およびmetadb プロファイルキーワード (状態データベースの複製の作成) を参照してください。
インストール時またはアップグレード時に、ミラー化されたファイルシステムを作成して、システムデータを複数の物理ディスクに複製できます。複数のディスクにデータを複製することにより、ディスクの破壊やディスク障害の際にデータを保護することができます。
Solaris カスタム JumpStart および Solaris Live Upgrade インストールでは、ミラー化されたファイルシステムの作成に Solaris ボリュームマネージャを使用します。Solaris ボリュームマネージャでは、ボリュームを使って確実にディスクやデータを管理できます。Solaris ボリュームマネージャでは、連結、ストライプなどの複雑な構成が可能です。カスタム JumpStart および Solaris Live Upgrade インストールでは、これらの作業の一部が実行できます。たとえば、ルート (/) ファイルシステムの RAID-1 ボリュームを作成できます。ミラー化されたファイルシステムを、インストール時またはアップグレード時に作成すれば、インストール後に作成する必要はなくなります。
カスタム JumpStart および Solaris Live Upgrade インストールでは、RAID-0 ボリュームと RAID-1 ボリュームの作成だけがサポートされます。その他の Solaris ボリュームマネージャコンポーネント、たとえば RAID-5 ボリュームは、サポートされません。
カスタム JumpStart インストールでは、初期インストール時のみ、ミラー化されたファイルシステムの作成がサポートされます。Solaris Live Upgrade では、アップグレード時のミラー化されたファイルシステムの作成がサポートされます。
Solaris ボリュームマネージャのソフトウェアとコンポーネントについては、『Solaris ボリュームマネージャの管理』を参照してください。
Solaris ボリュームマネージャは、仮想ディスクを使用して、物理ディスクとその関連データの管理を行います。Solaris ボリュームマネージャでは、仮想ディスクを「ボリューム」と呼びます。「ボリューム」とは、システム上で単一の論理デバイスとみなされる物理スライスの集まりの名前です。実際には、ボリュームは標準 UNIX® の擬似または仮想デバイスと同義です。
アプリケーションやファイルシステム (UFS など) から見ると、ボリュームは物理ディスクと同じように機能します。Solaris ボリュームマネージャは、ボリュームに対する入出力要求を、そのボリュームを構成するメンバーディスクに対する入出力要求に変換します。
Solaris ボリュームマネージャのボリュームは、スライス (ディスクパーティション) または他の Solaris ボリュームマネージャボリュームから作成されます。
ボリュームを使用して、パフォーマンスとデータ可用性を向上させることができます。場合によっては、ボリュームの使用により入出力パフォーマンスも向上します。ボリュームの機能は、スライスと同じです。ボリュームはスライスとよく似ていますが、エンドユーザー、アプリケーション、およびファイルシステムに対して透過的です。物理デバイスと同様に、Solaris ボリュームマネージャを使用して、ブロックデバイス名または raw デバイス名からボリュームにアクセスできます。ボリューム名は、使用しているのがブロックデバイスなのか raw デバイスなのかによって異なります。
カスタム JumpStart インストールおよび Solaris Live Upgrade では、ミラー化されたファイルシステムの作成用としてブロックデバイスがサポートされます。ボリューム名の詳細は、カスタム JumpStart と Solaris Live Upgrade を行うときの RAID ボリューム名の要件とガイドラインを参照してください。
ミラー化されたファイルシステムを作成すると、RAID-0 ボリューム (単一スライスの連結) と RAID-1 ボリューム (ミラー) が作成されます。Solaris ボリュームマネージャは、連結 (サブミラー) 上にデータを複製し、これらのサブミラーを 1 つのミラーボリュームとして処理します。
図 10–1 は、ルート (/) ファイルシステムを 2 つの物理ディスクに複製するミラーを示しています。
図 10–1 のシステムの構成は次のとおりです。
hdisk0 上のルートファイルシステム (/) は、d31 という名前の単一スライスの連結に含まれています。
hdisk1 という名前のハードディスク上に、d32 という名前の単一スライスの連結が作成されています。
d30 という名前のミラーは、d31 および d32 という名前のサブミラーで構成されています。
このミラーは、ルートファイルシステム内のデータを 2 つのサブミラーに複製しています。
カスタム JumpStart インストールおよび Solaris Live Upgrade では、ファイルシステムのミラー化に必要な次のコンポーネントを作成できます。
状態データベースと状態データベースの複製 (metadbs)
単一スライスの連結 (サブミラー)
RAID-1 ボリューム (ミラー)
この節では、これらのコンポーネント 1 つ 1 つについて簡単に説明します。これらのコンポーネントの詳細は、『Solaris ボリュームマネージャの管理』を参照してください。
「状態データベース」は、Solaris ボリュームマネージャ構成の状態に関する情報を物理ディスクに格納するデータベースです。状態データベースは、構成に対して加えられた変更を記録および管理します。Solaris ボリュームマネージャは、構成や状態に変化があると、状態データベースを自動的に更新します。新しいボリュームの作成は、構成の変更の一例です。サブミラーの障害は、状態の変化の一例です。
状態データベースは、実際には、複製された複数のデータベースコピーの集まりです。各コピーは、「状態データベースの複製」と呼ばれ、データベース内のデータが常に有効であることを保証します。 状態データベースのコピーを複数持つことにより、単一点障害からデータを保護することができます。状態データベースは、既知の状態データベースの複製の格納場所と状態をすべて記録しています。
状態データベースとその状態データベースの複製が作成されるまで、Solaris ボリュームマネージャは動作できません。Solaris ボリュームマネージャ構成には、正常に動作する状態データベースが必要です。
構成を設定するときは、状態データベースの複製を次のどちらかに配置できます。
専用のスライス
(Solaris Live Upgrade のみ) あとでボリュームの一部になるスライス
複数の状態データベースのコピーを 1 つのスライス上に置くこともできます。しかし、複数の状態データベースの複製を 1 つのスライスに置くと、システムが単一点障害に対してより脆弱になる可能性があります。
状態データベースの複製は、状態データベースのデータが常に有効であることを保証します。状態データベースが更新されると、個々の状態データベースの複製も更新されます。ただし、システムクラッシュによってすべての更新が失われるのを防ぐために、更新は一度に 1 つずつ行われます。
システムから 1 つの状態データベースの複製が失われると、Solaris ボリュームマネージャは、どの状態データベースの複製に有効なデータが格納されているかを判断する必要があります。そのために、Solaris ボリュームマネージャは「多数決アルゴリズム」を使用します。このアルゴリズムでは、過半数 (半数 + 1) の複製が使用可能であり、一致していれば、それらの複製を有効であるとみなします。この多数決アルゴリズムがあるため、ディスク構成を設定するときに、3 つ以上の状態データベースの複製を作成する必要があります。3 つの状態データベースの複製のうち少なくとも 2 つが使用可能であれば、コンセンサスが得られたことになります。
個々の状態データベースの複製には、デフォルトで 4M バイト (8192 ディスクセクタ) のディスク領域が使用されます。複製は、次のデバイスに格納できます。
専用のローカルディスクスライス
(Solaris Live Upgrade のみ) あとでボリュームの一部になるローカルスライス
(Solaris Live Upgrade のみ) あとで UFS ロギングデバイスの一部になるローカルスライス
複製は、ルート (/)、 swap、/usr スライス、およびファイルシステムやデータがすでに格納されているスライスには格納できません。ただし、複製を格納した後で、同じスライスにボリュームやファイルシステムを置くことができます。
状態データベースと状態データベースの複製の要件の計画については、状態データベースの複製のガイドラインと要件を参照してください。
状態データベースと状態データベースの複製の詳細は、『Solaris ボリュームマネージャの管理』を参照してください。
カスタム JumpStart および Solaris Live Upgrade インストールでは、RAID-0 ボリュームを作成できます。RAID-0 ボリュームの単一スライス連結は、個々のコンポーネント内にデータを順番に隣接して配置し、1 つの論理記憶ユニットを構成します。カスタム JumpStart インストールおよび Solaris Live Upgrade では、ストライプの作成や、その他の複雑な Solaris ボリュームマネージャボリュームは作成できません。
インストール時またはアップグレード時に RAID-1 ボリューム (ミラー) を作成し、これらのミラーに RAID-0 ボリュームを接続することができます。「ミラー化された」RAID-0 ボリュームを「サブミラー」と呼びます。 ミラーは 1 個以上の RAID-0 ボリュームで構成されます。インストール後、Solaris ボリュームマネージャを使用して RAID-1 ミラーボリュームを管理することにより、個々の RAID-0 サブミラーボリューム上のデータを管理できます。
カスタム JumpStart インストールでは、最大 2 つのサブミラーで構成されるミラーを作成できます。Solaris Live Upgrade では、最大 3 つのサブミラーで構成されるミラーを作成できます。実際には 2 面ミラーで十分です。3 つ目のサブミラーを構成すると、オンラインでバックアップをとることができます。この場合、バックアップのために 1 つのサブミラーがオフラインになっていても、データの冗長性は失われません。
RAID-0 ボリュームの要件の計画については、ミラーとサブミラーの要件およびガイドラインを参照してください。
RAID-0 ボリュームの詳細は、『Solaris ボリュームマネージャの管理』を参照してください。
RAID-1 ボリューム (「ミラー」) とは、同じデータのコピーを複数の RAID-0 ボリューム (単一スライスの連結) で保持しているボリュームのことです。ミラー化するためには、より多くのディスク容量が必要です。少なくとも、ミラー化するデータ量の 2 倍のディスク容量が必要になります。また、ミラー化ではデータがすべてのサブミラーに書き込まれるため、書き込み要求の処理時間が長くなります。
RAID-1 ボリュームでは、両方の RAID-0 ボリュームから同時にデータを読み取ることができるので (どちらのボリュームもすべての要求に応じることができる)、パフォーマンスが向上します。1 つの物理ディスクに障害が発生しても、パフォーマンスの低下やデータの損失なしにミラーを引き続き使用できます。
構成したミラーは、物理スライスと同じように使用できます。
既存のファイルシステムを含め、どのようなファイルシステムでもミラー化できます。また、ミラーは、データベースなど、どのようなアプリケーションにも使用できます。
RAID-1 ボリュームの要件の計画については、ミラーとサブミラーの要件およびガイドラインを参照してください。
RAID-1 ボリュームの詳細は、『Solaris ボリュームマネージャの管理』を参照してください。
次の図に、ルートファイルシステム (/) を 2 つの物理ディスクに複製したミラーを示します。状態データベースの複製 (metadb) は、両方のディスクに配置されています。
図 10–2 のシステムの構成は次のとおりです。
hdisk0 上のルートファイルシステム (/) は、d31 という名前の単一スライスの連結に含まれています。
hdisk1 という名前のハードディスク上に、d32 という名前の単一スライスの連結が作成されています。
d30 という名前のミラーは、d31 および d32 という名前のサブミラーで構成されています。
このミラーは、ルートファイルシステム内のデータを 2 つのサブミラーに複製しています。
hdisk0 と hdisk1 の両方のスライスに状態データベースの複製が作成されています。
カスタム JumpStart インストールを使用してこの構成を作成するプロファイル例については、例 26–10を参照してください。
Solaris Live Upgrade を使用してミラー化されたファイルシステムを作成する方法については、RAID-1 ボリューム (ミラー) を持つブート環境の作成 (コマンド行インタフェース)を参照してください。