セグメントサイズとは何ですか?
セグメントは、あるドライブに格納されるデータの量(KiB)です。この量に達すると、ストライプ(RAIDグループ)内の次のドライブへと進みます。セグメントサイズはボリュームグループにのみ該当し、プールには該当しません。
セグメントサイズは、セグメントに含まれるデータブロックの数で定義されます。例:
-
64KiBセグメント=128個のデータブロック
-
512KiBセグメント=1024個のデータブロック
セグメントサイズを決定する際には、ボリュームに格納するデータのタイプを把握しておく必要があります。アプリケーションが一般にスモールランダムリードとスモールランダムライト(IOPS)を使用する場合は、一般に小さなセグメントサイズが適しています。アプリケーションがラージシーケンシャルリードとラージシーケンシャルライト(スループット)を使用する場合は、一般に大きなセグメントサイズが適しています。
アプリケーションがスモールランダムリード/ライトとラージシーケンシャルリード/ライトのどちらを使用するかに関係なく、セグメントサイズが標準的なデータブロックのチャンクサイズより大きい場合、ストレージアレイのパフォーマンスが向上します。これはドライブがより簡単かつ高速にデータにアクセスできるようにするためであり、ストレージアレイのパフォーマンス向上にとって重要です。
IOPSパフォーマンスが重視される環境の場合
IOPS(1秒あたりのI/O処理数)環境では、ドライブに対して読み書きされる標準的なデータブロックサイズ(「チャンク」)よりもセグメントサイズを大きくすると、ストレージアレイのパフォーマンスが向上します。こうすることで、各チャンクが確実に1つのドライブに書き込まれます。
スループットが重視される環境の場合
スループットを重視する環境では、標準的なデータチャンクサイズ(I/Oサイズ)をデータ用ドライブの総数で割った値にセグメントサイズを設定します。こうすることで、データが単一のストライプとしてボリュームグループの複数のドライブに分散されるため、読み取りと書き込みが高速になります。
たとえば、5ドライブのRAID 5ボリュームグループ(4+1)では、通常の読み取り/書き込み「チャンク」サイズが2 MiBの場合、セグメントサイズは512KiB(チャンクの合計サイズの1 / 4の割合)です。 各読み取り/書き込みがボリュームグループドライブの単一のストライプとして確実に書き込まれるようにするため、アプリケーションのボリュームセグメントサイズにはこの方法が最適です。