Solstice DiskSuite 4.2.1 リファレンス

第 7 章 構成のガイドライン

この章では、構成を設定するためのガイドラインを示します。次の表を参考にして、必要な箇所を探してください。

構成計画の概要

構成の計画を行う際に留意しなければならないことは、どのようなアプリケーションでもパフォーマンス可用度ハードウェアコストとの間にはトレードオフの関係がある (同時にすべてを満足させることはできない) ということです。いろいろな要素を変えてみて、構成に最も適した組み合わせを探してください。

構成計画のガイドライン

この節では、単純連結、ストライプ、ミラー、RAID5 メタデバイス、状態データベースの複製、およびメタデバイス上のファイルシステムを構築するためのガイドラインを示します。

単純連結のガイドライン


注 -

ゾーンビット記録 (ZBR) 方式を使用しているディスクでは、スピンドルからの距離によって各シリンダのデータ量が異なるため、ディスクジオメトリの違いは問題にはなりません。現在では、ほとんどのディスクが ZBR 方式を使用しています。


ストライプのガイドライン

ミラーのガイドライン

図 7-1 ミラーのパフォーマンスマトリックス

Graphic

RAID5 のガイドライン

状態データベースの複製のパフォーマンスに関するガイドライン

ファイルシステムのガイドライン

一般的なパフォーマンスのガイドライン

RAID5 メタデバイスとストライプ方式メタデバイス

この節では、RAID5 メタデバイスとストライプ方式メタデバイスのパフォーマンスを比較します。

ランダム入出力と順次入出力

この節では、ランダム入出力と順次入出力の違いと、特定の構成に対する DiskSuite の最適化戦略について解説します。

ランダム入出力

順次入出力


注 -

順次入出力では、シーク時間と回転時間は存在しないことになります。順次入出力を最適化する場合には、ディスクの内部転送レートが最も重要になります。


まず最初に、max-io-size / #-disks-in-stripe (最大入出力サイズ/ストライプのディスク数) の値を調整することをお勧めいたします。UFS ファイルシステムでは、maxcontig パラメータによってファイルシステムのクラスタサイズが制御されます (デフォルトは 56 K バイト) 。一部の順次アプリケーションでは、このクラスタサイズを大きくすることによってパフォーマンスを向上させることができます。たとえば、maxcontig を 12 に設定すると、ファイルシステムのクラスタサイズは 96 K バイト (12 * 8 K バイトブロック) になります。飛び越し値が 24 K バイトの 4 方向ストライプを使用すると、ストライプ幅は 96 K バイト (= 4 * 24 K バイト) になり、パフォーマンスを向上させることになります。

例:順次アプリケーションでは、通常の入出力要求サイズは大きくなります (128 K バイト、場合によっては 1 M バイト以上) 。通常の入出力要求サイズが 256 K バイトで、4 つのディスクスピンドルに渡ってストライプする場合には、256 K バイト / 4 = 64 K バイトですから、最適な飛び越し値は 32 〜 64 K バイトになります。

ストライプ数:ストライプの場合には、先にパフォーマンス条件を決めてしまうというアプローチもあります。たとえば、あるアプリケーションで 10.4 M バイト/秒のパフォーマンスが要求され、各ディスクのパフォーマンスが約 4 M バイト/秒であるとします。この場合には、ストライプすべきディスクスピンドル数は、次のように計算されます。

10.4 M バイト/秒 / 4 M バイト/秒 = 2.6

したがって、3 つのディスクが必要になります。

ストライプに関するトレードオフ

要約すると、ストライプは大規模な順次入出力と不均一な入出力分散のパフォーマンスを向上させますが、データの冗長性は提供しないということです。

書き込みの多いアプリケーション:

RAID5 は「読み取り−修正−書き込み」という性質を持っていますので、書き込みが 20% を超えるアプリケーションでは、RAID5 を使用しない方がよいでしょう。データの保護が必要であれば、ミラー化を使用します。

RAID5 は、ミラーより書き込みパフォーマンスが低くなりますので、当然のことながら、データを保護しないメタデバイスより低くなります。SPARCstorage Array に搭載されている NVRAM キャッシュにより、RAID5 とミラーのギャップはなくなります。

ストライプ幅単位の書き込み:

RAID5 は、 (ディスク障害が発生して低パフォーマンスモードで動作している場合を除いて) 高い読み取りパフォーマンスを提供しますが、「読み取り−修正−書き込み」という性質のため、書き込みパフォーマンスは低くなります。

特に、書き込みサイズがストライプ幅より小さい場合、つまりストライプと整合がとれていない場合には、複数の入出力 (読み取り−修正−書き込みシーケンス) が必要になります。最初にデータとパリティをバッファに読み込み、次にパリティを修正して (データとパリティの排他的論理和を取ってから新しいパリティを計算して) 新しいパリティとデータをログに書き込み、最後に新しいパリティとデータをデータストライプユニットに書き込みます (この場合、排他的論理和とは古いデータをパリティから論理的に差し引いてから新しいデータをパリティに論理的に加えることをさします)。

ストライプ幅単位の書き込みでは、読み込み−修正−書き込みシーケンスが必要ないため、パフォーマンスはさほど低下しません。この場合には、新しいすべてのデータストライプの排他的論理和を取ってパリティを生成し、新しいデータとパリティをログに書き込んでから、新しいデータとパリティを 1 回の操作でストライプユニットに書き込みます。

ストライプ幅単位の書き込みは、入出力要求がストライプと整合がとれていて、入出力サイズが正確に一致している場合に使用されます。

interlace_size * (num_of_columns -1)

たとえば、RAID5 構成を 4 つのコラムでストライプ化した場合、各ストライプでは、3 つのチャンクにデータが格納され、残りの 1 つのチャンクにパリティが書き込まれます。この例では、入出力要求がストライプの先頭から始まっていて、入出力サイズが stripe_unit_size * 3 に等しければ、ストライプ幅単位の書き込みが使用されます。ストライプユニットサイズが 16 K バイトで、整列している入出力要求のサイズが 48 K バイトであれば、ストライプ幅単位の書き込みが使用されます。

パフォーマンス低下モード:

RAID5 メタデバイスのスライスが故障すると、パリティを使用してデータが再構築されます。この操作では、RAID5 メタデバイスの各カラムからの読み取りを行います。RAID5 メタデバイスに割り当てられているスライス数が多いほど、故障したデバイスに向けられた入出力 (RAID5 メタデバイスの再同期を含む) に掛かる時間が長くなります。

ログデバイスに関するトレードオフ

状態データベースの複製


注 -

状態データベースの複製は、ルート (/) 、swap/usr、および既存のファイルシステムやデータが格納されているスライスには格納できません。


状態データベースの複製の要約


注 -

ディスクが 2 つの構成で各ディスクに状態データベースの複製を 2 つずつ作成した場合、片方のディスクが故障しても DiskSuite は動作を続行できます。しかしながら、リブートには過半数の複製が必要であるため、システムをリブートすることはできません。