ストライピングでは既存のファイルシステムをカプセル化することはできません。
ストライピングは、大規模な逐次 I/O や I/O が不均等に分散している場合に効果を発揮します。
ストライピングは連結よりも CPU サイクルが多くなりますが、通常はトレードオフの価値があります。
ストライピングではデータは冗長化されません。
トレードオフをまとめると、ストライピングは特に大規模な逐次 I/O や I/O が不均等に分散している場合にパフォーマンスがよくなりますが、データは冗長化されません。
書き込みの集中するアプリケーションの作成:RAID 5 はその性質上、読み取り - 修正 - 書き込みを行うため、書き込みが 20 パーセント以上あるメタデバイスは RAID 5 を使用しない方がいいでしょう。 データ保護が必要であれば、ミラーリングを行ってください。
RAID 5 の書き込みはミラー化による書き込みほど高速ではありません。 このため、保護されていない書き込みほど高速になることはありません。 SPARCstorage Array の NVRAM キャッシュを使うと、RAID 5 とミラー構成の差を埋めることができます。
ストライプ全体の書き込み:RAID 5 の読み取りパフォーマンスは常に良好です (メタデバイスにディスク障害が発生して縮退モードで動作している場合を除く) が、RAID 5 には読み取り - 変更 - 書き込みという性質があるため、書き込みパフォーマンスは影響を受けます。
特に、書き込みがフルストライプ幅ではない場合やストライプと一列にならない場合は、読み取り - 変更 - 書き込み処理を行う複数の I/O が必要となります。まず、古いデータとパリティがバッファに読み取られます。次にパリティが変更され (データとパリティ間で XOR を実行して新しいパリティが計算されます -- まず古いデータがパリティから論理的に減算され、次に新しいデータがパリティに論理加算される)、新しいパリティとデータがログに保存されます。最後に、新しいパリティと新しいデータがデータストライプ単位に書き込まれます。
フルストライプ幅の書き込みには一連の読み取り - 修正 - 書き込みが不要であるという利点があります。 このためパフォーマンスがあまり低下しません。フルストライプ書き込みを使うと、パリティを作成するために新しいデータストライプはすべてまとめて XOR 化され、新しいデータとパリティがログに保存されます。次に、新しいパリティと新しいデータがデータストライプ単位に 1 回で書き込まれます。
フルストライプ書き込みは、I/O 要求がストライプと揃っていて I/O のサイズが次と一致する場合に使用します。
interlace_size * (num_of_columns - 1)
たとえば、RAID 5 設定が 4 列にストライプ化されている場合、どのストライプでも 3 チャンクを使ってデータを保存し、1 チャンクで対応するパリティを保存します。この例では、フルストライプ書き込みは、I/O 要求がストライプの最初に開始し、さらに I/O サイズが stripe_unit_size * 3 と同じ場合に使用します。たとえば、ストライプのサイズが 16K バイト単位であれば、48K バイトの整列 I/O 要求にはフルストライプ書き込みが使用されます。
縮退モードのパフォーマンス:RAID 5 メタデバイスのスライスに障害が発生するとパリティを使ってデータが再構築されます。 これには、RAID 5 メタデバイスの列をすべて読み取ることが必要です。 RAID 5 メタデバイスに割り当てたスライスが多いほど、障害が発生したデバイスに I/O が割り当てる場合は、読み取り動作と書き込み操作が長くなり、これには RAID 5 メタデバイスの再同期も含まれます。