ミラーとは、サブミラーと呼ばれるシンプルメタデバイスのデータを他のメタデバイスにコピーできるメタデバイスです。このコピー操作をデータのミラー化と呼びます (ミラー化は、RAID レベル 1 としても知られています) 。
ミラーは、データの冗長なコピーを持ちます。これらのコピーは、デバイスの障害に備えて、別の物理デバイスに格納しなければなりません。
ミラーはディスク資源を多く必要とします。少なくとも、ミラー化するデータ量の 2 倍のディスク領域が必要になります。DiskSuite は、すべてのサブミラーにデータを書き込むため、書き込み要求の処理時間も長くなります。
構成したミラーは、物理スライスと同じように使用できます。
ミラーはオンラインバックアップ用に使用することもできます。すべてのサブミラーには、同じデータが入っているため、サブミラーをオフラインにして他のメディアに内容をバックアップすれば、ミラーメタデバイスの動作を妨げることなくバックアップ作業が行えます。3 面ミラーなら、バックアップ中も他の 2 つのサブミラーにデータが書き込まれます。バックアップ用に使用したサブミラーをオンラインに戻すと、他の 2 つのサブミラーとの間で同期を取ってから、サブミラーとしての機能を再開します。
既存のファイルシステムを含むすべてのファイルシステムをミラー化することができます。また、データベースなど、どのようなアプリケーションに対してでもミラー化を行えます。1 面のミラーを作成しておいて、後でサブミラーを追加することもできます。
DiskSuite のホットスペア機能をミラーと併用することで、データの安全性と可用度が高まります。ホットスペアについての詳細は、第 3 章「ホットスペア集合」を参照してください。
ミラーには、他のメタデバイスと同じような名前 (d0、d1 など) が付けられます。メタデバイス名についての説明は、表 1-4 を参照してください。各サブミラー (それぞれがメタデバイスでもあります) にも、固有のデバイス名が付けられます。
ミラーは、1 つ以上のストライプまたは単純連結から構成されます。ミラーを構成するストライプや単純連結は、サブミラーと呼ばれます (ミラーを RAID5 メタデバイスで構成することはできません) 。
ミラーは最大 3 つのサブミラーで構成することができます (実際には 2 面ミラーで十分です。3 番目のサブミラーは、データのミラー化を停止せずにオンラインバックアップを取るために使用します) 。
サブミラーは、通常はミラーからしかアクセスできないという点で、シンプルメタデバイスとは異なっています。サブミラーは、ミラーに接続されている状態では、ミラーからしかアクセスできません。
サブミラーをオフラインにすると、ミラーはそのサブミラーへの読み書きを停止します。この時点で、そのサブミラーへのアクセスが可能になり、バックアップなどを実行することができます。しかし、オフラインのサブミラーは読み取り専用になります。サブミラーがオフラインの間は、DiskSuite がミラーへのすべての書き込みを記録します。サブミラーがオンラインに戻ると、書き込み対象の部分 (再同期領域) のみが再同期されます。サブミラーは、エラーが発生した物理デバイスの障害を追跡したり修理したりする目的でもオフラインにできます。
サブミラーには、他のメタデバイスと同じような名前 (d0、d1 など) が付けられます。メタデバイス名についての説明は、表 1-4 を参照してください。
サブミラーは、いつでもミラーに接続したり、ミラーから切断したりすることができます。ただし、1 つ以上のサブミラーが接続されていて動作していることが必要です。サブミラーを強制的に切断するには、metadetach(1M) コマンドで -f オプションを使用します。DiskSuite ツールは、常にサブミラーを強制的に切断するため、専用のオプションはありません。通常は、 1 つのサブミラーのみで構成されるミラーを作成してから、2 番目のサブミラーを追加します。
ミラーによっては、データの可用度は最大となります。その反面、ミラー化するデータ量の 2 倍のスライス (ディスク) 容量が必要になります。
DiskSuite では、3 面 (サブミラーが 3 つ) までのミラーを構成することができます。ほとんどのアプリケーションでは、2 面ミラーで十分で、ディスクドライブのコストも低く抑えることができます。
ミラーの構築手順
ミラーを構築する場合には、必ず 1 面ミラーを作成してから、サブミラーを追加するようにします。こうすることによって、ミラーの再同期が実行され、すべてのサブミラーにおいてデータの整合性が保たれます。
図 2-4 に、d20 および d21 の 2 つのメタデバイス (サブミラー) で構成されるミラーの例を示します。
DiskSuite は、複数の物理ディスクを 1 つの仮想ディスクとしてアプリケーションに提供します。データの書き込みはすべて複製されます。データの読み取りは、ミラーを構成するいずれかのサブミラーからのみ行います。ミラー d2 の容量は (サブミラーのサイズが異なる場合には) 小さいほうのサブミラーのサイズと同じになります。
ミラーのパフォーマンスを最適化するため、以下のオプションを利用できます。
ミラーからの読み取りオプション
ミラーへの書き込みオプション
ミラーを再同期する順序 (パス番号)
ミラーオプションは、最初にミラーを作成するとき、またはミラーを作成した後で設定できます。これらのオプションの変更方法についての説明は、『Solstice DiskSuite 4.2.1 ユーザーズガイド』を参照してください。
ミラーの再同期とは、サブミラー障害やシステムクラッシュが発生した場合、サブミラーをオフラインにしてからオンラインに戻した場合、もしくは新しいサブミラーを追加した場合に、サブミラーから別のサブミラーに有効なデータをコピーする処理のことです。
ミラーの再同期の実行中も、ユーザーはミラーを読み書きできます。
ミラーの再同期は、すべてのサブミラーに (書き込みが進行中のデータを除いて) 同じデータを書き込むことによって、ミラーデータの有効性を保証するものです。
注 - ミラーの再同期は必須の作業で、省略することはできません。ミラーの再同期は自動的に実行されるため、手動で実行する必要はありません。
ミラーに新しいサブミラーを接続 (追加) すると、別のサブミラーから新しいサブミラーにすべてのデータが自動的にコピーされます。ミラーの再同期が完了すると、新しいサブミラーが読み取り可能になります。サブミラーは、切断されるまで接続されたままになります。
再同期の実行中にシステムがクラッシュした場合には、システムがリブートして復旧してから、再同期が実行されます。
システム障害後のリブート中や、オフラインになっていたサブミラーがオンラインに戻ったときには、DiskSuite は最適化されたミラーの再同期を実行します。メタデバイスドライバは、サブミラーの領域を管理しており、障害後にどの領域の同期が取れていないかを判断します。最適化された再同期は、同期が取れていない領域でのみ、データを再同期させます。リブート中にミラーを再同期させる順序 (パス番号) を指定したり、パス番号を 0 に設定することによってそのミラーの再同期を省略したりすることができます (「パス番号」を参照) 。
パス番号の 0 は、読み取り専用としてマウントされているミラーに対してのみ設定してください。
サブミラーを構成するスライスを交換すると、DiskSuite はデータの部分的な再同期を実行します。DiskSuite は、別のサブミラーで機能しているスライスから、新しいスライスにデータをコピーします。
0 〜 9 のパス番号は、システムリブート中にミラーを再同期させる順序を指定します。デフォルトのパス番号は 1 です。パス番号が小さいミラーほど先に再同期されます。0 を指定すると、そのミラーの再同期は省略されます。パス番号の 0 は、読み取り専用としてマウントされているミラーに対してのみ設定してください。同じパス番号のミラーは同時に再同期されます。
DiskSuite では、1 つのミラーに対して異なる読み取りオプションと書き込みオプションを設定することができます。これらのオプションをミラー構成に合わせて適切に設定することにより、読み書きのパフォーマンスを向上させることができます。
表 2-1 ミラーの読み取りオプション
読み取りオプション |
説明 |
---|---|
ラウンドロビン (巡回的) (デフォルト) |
サブミラー間で負荷を均一にします。すべての読み取りは、ミラーのすべてのサブミラーからラウンドロビンで (巡回的に) 実行されます。 |
ジオメトリック (幾何学的な配置順) |
論理ディスクブロックアドレスに基づいて、読み取りをサブミラー間で分割します。たとえば、2 面サブミラーであれば、ミラーのディスク領域を 2 つの等しいサイズの論理アドレス範囲に分割します。片方のサブミラーからの読み取りは論理アドレス範囲の前半に限定され、他方のサブミラーからの読み取りは後半に限定されます。この方針に従うと、読み取りに必要なシーク時間を効率よく短縮できます。パフォーマンスがどの程度向上するかは、システムの入出力負荷とアプリケーションのアクセスパターンによって異なります。 |
先頭のディスクから |
すべての読み取りを先頭のサブミラーに向けます。この方針は、先頭のサブミラーが他のサブミラーより高速である場合にのみ使用します。 |
表 2-2 ミラーの書き込みオプション
書き込みオプション |
説明 |
---|---|
並列 (デフォルト) |
ミラーへの書き込みを複製して、すべてのサブミラーに対して同時に実行します。 |
直列 |
サブミラーへの書き込みを直列に実行します (先頭のサブミラーへの書き込みが完了してから、次のサブミラーへの書き込みを開始します)。 直列オプションは、1 つのサブミラーへの書き込みが完了するまで次のサブミラーへの書き込みを開始してはならないことを指定します。直列オプションは、停電などのためにサブミラーが読み取り不能になった場合に備えて提供されています。 |
複数のスライスで障害が発生した場合には、ミラーが正常に動作を続けられるかどうかは保証されません。しかし、ミラーの構成によっては、複数のスライスで障害が発生した場合にも耐えられる場合があります。ミラー内で障害が発生した複数のスライスに同じ論理ブロックが含まれていなければ、ミラーは動作を続けられます (サブミラーがすべて同じ構成であることが必要です) 。
次の例を見てみましょう。
ミラー d1 は 2 つのストライプ (サブミラー) から構成されています。各ストライプは、構成と飛び越し値が同じ 3 つの物理ディスクから構成されています。ここで、ディスク A、B、および F で障害が発生しても、ミラーの範囲全体にわたり、1 つ以上のディスクによって保証されているため、ミラーは正常な動作を続けることができます。
しかし、ディスク A とディスク D で障害が発生した場合には、それらのディスクに対応する論理アドレス範囲のデータは利用できなくなり、その論理アドレス範囲へのアクセスはエラーとなります。
複数スライスの障害によってミラーのデータが利用できなくなっても、データが利用できる領域へのアクセスは正常に行われます。この場合にミラーは、不良ブロックを含むディスクのように機能します。つまり、破損している部分へはアクセスできませんが、その他の部分へはアクセスできます。