ここでは、ミラーの作成に関する指針を示します。さらに、作成したミラーの性能に関する指針も示します。
ミラーを作成する前に、そのミラーを構成する RAID-0 (ストライプ方式または連結方式) ボリュームを作成する必要があります。
ミラーを作成するときは、最初に 1 面ミラーを作成し、その後で 2 番目のサブミラーを接続します。この手順によって、再同期動作が開始されます。また、データが損傷しないという保証も得られます。1 面のミラーを作成しておけば、後でそれを 2 面または多面のミラーとして使用することもできます。
1 つのコマンドで、1 面ミラーから 2 面ミラー、3 面ミラー、または4 面ミラーを作成できます。1 つのコマンドですべてのサブミラーを作成することによって、作成プロセスを短時間で完了することもできます。この手順を使用するのは、既存データをミラー化しない場合で、なおかつすべてのサブミラー上のデータが壊れても問題がない場合に限られます。
スライス上に構築された既存のファイルシステムから RAID-1 ボリュームを作成できます。基本 RAID-0 ボリューム (サブミラー) に含めることのできるスライスは 1 つだけです。ルートなど、システムにとって重要なファイルシステムをミラー化する場合は、すべてのサブミラーが単一のスライスで構成されていなければなりません。
swap -l コマンドを使ってすべての swap デバイスを確認します。swap として指定されたスライスは、他のスライスとは別個にミラー化しなければなりません。
Solaris 管理コンソール内の「拡張ストレージ」は、ルート ( /)、/opt、/usr、または swapのミラー化解除をサポートしません。このツールは事実上、システムの稼働中にマウント解除できないあらゆるファイルシステムについて、ミラー化解除をサポートしません。これらのファイルシステムに対しては、コマンド行ユーティリティーを使用してください。
同じサイズのサブミラーを使用します。サイズが異なるサブミラーを使用すると、ディスク領域がむだになります。
ミラーには、構成が同じサブミラーだけを使用します。たとえば、ディスクラベルのないサブミラーでミラーを作成すると、ラベルがあるサブミラーをミラーに追加できなくなります。
最初に追加したサブミラーがシリンダ 0 から始まらない形式でも、ファイルシステムをミラー化できます。この場合、それ以後追加するすべてのサブミラーについても、シリンダ 0 から始まらないようにしなければなりません。シリンダ 0 から始まるサブミラーを追加しようとすると、次のようなエラーメッセージが表示されます。
can't attach labeled submirror to an unlabeled mirror |
特定のミラーの中で使用するすべてのサブミラーがシリンダ 0 から始まるようにするか、すべてのサブミラーがシリンダ 0 から始まらないようにするか、どちらかでなければなりません。
開始シリンダをすべてのサブミラーで一致させる必要はありません。しかし、すべてのサブミラーにシリンダ 0 を含めるか、すべてのサブミラーにシリンダ 0 を含めないか、どちらかにしなければなりません。
ミラーを作成する前に状態データベースの複製を追加すると、ミラーの性能を向上させることができます。一般的な指針として、ミラーを追加するたびに 2 つの状態データベースの複製をシステムに追加する必要があります。Solaris ボリュームマネージャは、追加されたこれらの複製に、最適化された再同期を実行する際に使用するダーティリージョンログ (DRL) を格納します。十分な数の複製を用意することによって、RAID-1 ボリュームの性能に対する入出力の影響を最小限に抑えられます。複製がログを記録するミラーと同じディスクまたはコントローラに 2 つ以上の複製を使用すると、全体の性能も向上します。
直接マウントできるのはミラーデバイスだけです。オフライン状態のサブミラーを読み取り専用でマウントする場合を除き、サブミラーを直接マウントしてはなりません。また、サブミラーの一部であるスライスをマウントしてはなりません。データが壊され、システムが異常を起こすおそれがあります。
サブミラーのスライスは、異なるディスクとコントローラに配置します。同じミラーの 2 つまたはそれ以上のサブミラーのスライスを同じディスクに置くと、データの保護機能が大幅に低下します。同じように、サブミラーは、別個のコントローラに配置します。これは、コントローラやそのケーブルでは、ディスクよりも障害が発生する確率が高いためです。これにより、ミラーの性能も向上します。
1 つのミラーでは、同じタイプのディスクとコントローラを使用します。特に、古いタイプの SCSI 記憶装置では、ディスクやコントローラの性能がモデルやブランドによって大幅に異なることがあります。1 つのミラーで性能レベルの異なるディスクやコントローラを使用すると、性能が大幅に低下する可能性があります。
ミラー化によって読み取り性能が向上することはありますが、書き込み性能は常に低下します。ミラー化によって読み取り性能が向上するのは、スレッド化された入出力や非同期の入出力の場合だけです。ボリュームからの単一スレッド読み取りによって、性能が向上することはありません。
ミラーの読み取りオプションの設定を変えてみると、性能が向上することがあります。たとえば、デフォルトの読み取りモードでは、各ディスクが巡回的に 1 つずつ読み取られます。ラウンドロビンは UFS マルチユーザー、マルチプロセッサ動作に最適なことが多いので、このポリシーがデフォルトです。
場合によっては、geometric 読み取りオプションを使用すると、ヘッドの移動とアクセス時間が最小になり、性能が向上することがあります。このオプションは、次の場合にもっとも有効です。
1 つのディスクでスライスを 1 つだけ使用する
1 時点で 1 つのプロセスだけがスライスまたはファイルシステムを使用する
きわめて順次性の強い入出力パターンであるか、またはすべて読み取りアクセスである
サービスの中断を伴わずにサブミラーをミラーに接続できます。サブミラーを接続することによって、2 面、3 面、4 面のミラーを作成できます。
サブミラーをオフラインにすると、ミラーはそのサブミラーに対して読み書きできなくなります。しかし、サブミラーとミラー間の論理的な結びつきは維持されます。サブミラーがオフライン状態の間、Solaris ボリュームマネージャはミラーに対するすべての書き込みを追跡管理します。書き込みは、サブミラーがオンラインに戻ったときに、サブミラーに書き込まれます。Solaris ボリュームマネージャは、最適化された再同期を行うことによって、サブミラー全体ではなく、変更されたデータの再同期だけを行います。一方、サブミラーを切断すると、サブミラーとミラーの論理的な関連付けも断ち切られます。一般には、保守を行うときはサブミラーをオフラインにし、取り外すときはサブミラーを切断します。
ミラーの性能を最適化するには、次のオプションを使用します。
ミラーからの読み取りポリシー
ミラーへの書き込みポリシー
ミラーを再同期する順序 (パス番号)
ミラーオプションは、ミラーを最初に作成するときに定義できます。ミラーが設定されて稼働したあとで、ミラーオプションを変更することもできます。これらのオプションの変更に関連する作業については、「RAID-1 ボリュームオプションを変更するには」を参照してください。
Solaris ボリュームマネージャでは、RAID-1 ボリュームに対してさまざまな読み取りおよび書き込みポリシーを設定できます。構成に合わせて、読み取りおよび書き込みポリシーを適切に設定すると、性能が向上することがあります。
表 10–1 RAID-1 ボリュームの読み取りポリシー
読み取りポリシー |
説明 |
---|---|
ラウンドロビン (デフォルト) |
すべてのサブミラーの負荷を均一にします。ミラーに属するすべてのサブミラーの読み取りは、ラウンドロビン方式で (1 つずつ順次に) 行われます。 |
ジオメトリック |
読み取りを論理的なディスクブロックアドレスに基づいて個々のサブミラーに分割します。たとえば、2 面サブミラーの場合は、ミラーのディスク領域が、論理アドレスに基づいて同じサイズの 2 つの領域に分割されます。一方のサブミラーからの読み取りは、論理的な領域の半分に限定されます。他方のサブミラーからの読み取りは、残りの半分に限定されます。ジオメトリック読み取りポリシーでは、読み取りに必要なシーク時間が減少します。この読み取りポリシーによって得られる性能の向上は、システムの入出力負荷やアプリケーションのアクセスパターンによって異なります。 |
先頭のデバイスから読み取る |
すべての読み取りを最初のサブミラーに送る。このポリシーは、先頭のサブミラーを構成するデバイスが 2 番目のサブミラーのデバイスよりも高速な場合にのみ使用します。 |
表 10–2 RAID-1 ボリュームの書き込みポリシー
書き込みポリシー |
説明 |
---|---|
並列 (デフォルト) |
ミラーへの書き込みは複製され、すべてのサブミラーに対して同時に実行される。 |
順次 |
サブミラーへの書き込みは順次実行される (つまり、最初のサブミラーへの書き込みが終わってから、次のサブミラーへの書き込みが始まる)。このポリシーでは、1 つのサブミラーへの書き込みが終わらないと、次のサブミラーへの書き込みは開始されない。このポリシーは、電源の障害などによってサブミラーが読み取り不能になるのを防止するために使用する。 |
パス番号 (0 から 9 の数字) は、システムのリブート時にミラーを再同期する順序を決定します。デフォルトのパス番号は 1 です。再同期は、パス番号の小さいミラーから行われます。ゼロを指定すると、ミラーの再同期はスキップされます。パス番号 0 は、読み取り専用としてマウントされているミラーに対してのみ設定します。同じパス番号をもつミラーの再同期は同時に実行されます。
Solaris ボリュームマネージャの metastat コマンドによって、RAID-1 ボリュームとサブミラーの状態情報が報告されます。この状態情報に基づいて、RAID-1 ボリュームに対して保守作業が必要かどうかを判断できます。次の表で、RAID-1 ボリュームに対して metastat コマンドを実行したときに表示される、サブミラーの状態について説明します。
表 10–3 サブミラーの状態
状態 |
意味 |
---|---|
正常 (Okay) |
サブミラーにはエラーがなく正常に動作しています。 |
再同期中 (Resyncing) |
サブミラーで再同期処理が実行されている。エラーが発生したが、すでに訂正され、オンラインに戻されたか、あるいは、新しいサブミラーが接続されています。 |
保守が必要 (Needs Maintenace) |
サブミラー内のスライスに入出力エラーまたはオープンエラーが発生しました。スライスに対するすべての読み取りと書き込みはすでに停止されています。 |
metastat コマンドはさらに、サブミラーのスライスごとに次の情報を提供します。
ストライプ内のスライスのデバイス名
スライスの開始ブロック
スライスに状態データベースの複製が含まれているかどうか
スライスの状態
スライスは障害スライスのホットスペアとして使用中
サブミラーの状態が伝えるのは、サブミラーの総合的な状態情報だけです。ミラーのエラーに対処する場合は、通常、スライスの状態がもっとも重視しなければならない情報です。サブミラーが「保守が必要 (Needs Maintenance)」の状態になっている場合、スライスの状態を参照して詳細を調べる必要があります。
スライスの状態が「保守 (Maintenance)」の場合と「最後にエラー (Last Erred)」の場合では、障害から回復するための処置が異なります。「保守 (Maintenance)」状態のスライスだけが複数ある場合は、どのような順序でスライスを修理してもかまいません。しかし、「保守 (Maintenance)」状態のスライスと「最後にエラー (Last Erred)」状態のスライスの両方が混在する場合は、先に「保守 (Maintenance)」状態のスライスを修理する必要があります。「保守 (Maintenance)」状態のスライスを修理したあとで、「最後にエラー (Last Erred)」状態のスライスを修理します。詳細については、「RAID-1 および RAID-5 ボリューム内のコンポーネントの交換と有効化の概要」を参照してください。
次の表に、サブミラーのスライスの状態と実行可能な処置を示します。
表 10–4 サブミラーのスライスの状態
状態 |
意味 |
処置 |
---|---|---|
正常 (Okay) |
スライスはエラーがなく正常に動作しています。 |
必要ない |
再同期中 (Resyncing) |
スライスの再同期処理が進行しています。エラーが発生したが、すでに訂正され、オンラインに戻されたか、あるいは、新しいサブミラーが接続されています。 |
必要であれば、再同期処理が終了するまでサブミラーの状態を監視します。 |
保守 (Maintenance) |
スライスで 入出力エラーかオープンエラーが発生しました。このコンポーネントに対するすべての読み取りと書き込みはすでに停止されています。 |
障害が発生したスライスを有効にするか、交換します。「サブミラー内のスライスを有効にするには」または「サブミラー内のスライスを交換するには」を参照してください。metastat コマンドを実行すると、metareplace コマンドを使って行うべき処置を示す invoke 回復メッセージが表示されます。metareplace -e コマンドを使用することもできます。 |
最後にエラー (Last Erred) |
スライスで 入出力エラーかオープンエラーが発生しました。しかし、別のスライスに障害があるため、データは他のスライスには複製されません。したがって、入出力は引き続きこのスライスに対して行われます。この入出力がエラーになると、ミラー入出力は失敗します。 |
まず、「保守 (Maintenance)」状態のスライスを有効にするか、交換します。「サブミラー内のスライスを有効にするには」または 「サブミラー内のスライスを交換するには」を参照してください。通常は、このエラーがあるとデータが失われるため、ミラーの修復後にミラーを検証する必要があります。ファイルシステムの場合は、fsck コマンドを実行してからデータをチェックします。アプリケーションやデータベースでは、独自の方法でデバイスを検証できなければなりません。 |