Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第23章 ストレージ I/O アライメントとサイズ

SCSI および ATA 規格に対する最近の機能拡張により、ストレージデバイスが優先される(必要な場合は必須)の I/O 調整 I/O サイズ を示すことができます。この情報は、物理セクターサイズを 512 バイトから 4k バイトに増やす新しいディスクドライブで特に便利です。この情報は、RAID デバイスにも利点があります。この場合、チャンクサイズとストライプサイズがパフォーマンスに影響を及ぼす可能性があります。
Linux I/O スタックが強化され、ベンダー提供の I/O 調整と I/O サイズ情報を処理し、ストレージ管理ツール(partedlvmmkfs など)を処理し データの配置とアクセスを最適化できるようになりました。レガシーデバイスが I/O 調整データおよびサイズデータをエクスポートしない場合、Red Hat Enterprise Linux 7 のストレージ管理ツールは、4k(またはより大きな電源)の境界に集中します。これにより、必要な I/O 調整およびサイズを指定しなくても、4k-sector デバイスが正しく動作できるようになります。
デバイスから取得したオペレーティングシステムの情報を判断する方法は、「ユーザー空間アクセス」 を参照してください。このデータは、データの配置を決定するためにストレージ管理ツールによって使用されます。
Red Hat Enterprise Linux 7 の IO スケジューラーが変更されました。デフォルトの IO スケジューラーは Deadline (SATA ドライブを除く)になりました。CFQ は、SATA ドライブのデフォルト IO スケジューラーです。ストレージの速度を短縮するために、Deadline outperforms CFQ の使用時には、特別なチューニングなしにパフォーマンスが向上されます。
デフォルトが一部のディスク(SAS ローテーションディスクなど)に適切な場合は、IO スケジューラーを CFQ に変更します。このインスタンスはワークロードによって異なります。

23.1. ストレージアクセスのパラメーター

オペレーティングシステムは以下の情報を使用して、I/O 調整とサイズを決定します。
physical_block_size
デバイスが操作できる最小の内部単位。
logical_block_size
デバイスの場所を外部にアドレスするために使用します。
alignment_offset
Linux ブロックデバイスの開始(パーティション/MD/LVM デバイス)が下層の物理アライメントからのオフセットとなるバイト数
minimum_io_size
無作為な I/O に、デバイスの推奨最小単位
optimal_io_size
I/O ストリーミングにデバイスの優先単位
たとえば、特定の 4K セクターデバイスは、内部的に 4K physical_block_size を使用し、より粒度の 512 バイトの logical_block_size を Linux に公開します。この不一致により、不適切な I/O の可能性が発生します。これに対処するために、Red Hat Enterprise Linux 7の I/O スタックは、ブロックデバイスの開始点が基礎となる物理アライドからのオフセットである場合に alignment_offset の領域をすべて起動しようとします。
ストレージベンダーは、デバイスのランダム I/O(minimum _io_size)およびストリーミング I/O(optimal_io_size)に推奨される最小単位についての I/O ヒントを指定することもできます。たとえば、min _io_size および optimal_io_size は、それぞれ RAID デバイスのチャンクサイズとストライプのサイズに対応する場合があります。