23.6. パーティションおよびファイルシステムツール
本セクションでは、さまざまなパーティションツールおよびファイルシステム管理ツールがデバイスの I/O パラメーターと相互作用する方法を説明します。
util-linux-ng の libblkid と fdisk
util-linux-ng
パッケージで提供される libblkid
ライブラリーには、デバイスの I/O パラメーターにアクセスするためのプログラム API が含まれています。libblkid
を使用すると、アプリケーション、特に Direct I/O を使用するアプリケーションが、I/O 要求のサイズを適切に調整できます。util-linux-ng
の fdisk ユーティリティーは、libblkid
を使用して、すべてのパーティションの配置を最適化するためにデバイスの I/O パラメーターを決定します。fdisk ユーティリティーは、すべてのパーティションを 1MB の境界に合わせます。
parted と libparted
parted の
libparted
ライブラリーは、libblkid
の I/O パラメーター API も使用します。Red Hat Enterprise Linux 7 インストーラーである Anaconda は libparted
を使用します。つまり、インストーラーまたは parted のいずれかで作成されたすべてのパーティションが適切に調整されます。I/O パラメーターを提供していないように見えるデバイスで作成されたすべてのパーティションの場合、デフォルトの調整は 1MB になります。
parted が使用するヒューリスティックは次のとおりです。
- 報告された alignment_offset は、常に最初のプライマリーパーティションの開始オフセットとして使用します。
- optimal_io_size が定義されている場合( 0ではない)は、すべてのパーティションを optimal_io_size 境界に合わせます。
- optimal_io_size が定義されていない場合( 0など)、alignment_offset は 0 で、minimum_io_size は 2 の累乗で、1MB のデフォルトアライメントを使用します。これは、I/O ヒントを提供していないように見えるレガシーデバイスのキャッチオールです。このため、デフォルトでは、すべてのパーティションは 1MB の境界にアライメントされます。注記Red Hat Enterprise Linux 7 は、I/O ヒントを提供しないデバイスと、alignment_offset=0 および optimal_io_ size=0 でこれを行うデバイスを区別できません。このようなデバイスは、SAS 4K デバイスが 1 つだけの場合があります。そのため、最悪の場合はディスクの起動時に 1MB の領域が失われます。
ファイルシステムツール
異なる mkfs.filesystem ユーティリティーも、デバイスの I/O パラメーターを使用するように強化されています。これらのユーティリティーでは、ファイルシステムをフォーマットして、基礎となるストレージデバイスの logical_block_size よりも小さいブロックサイズを使用することができません。
mkfs.gfs2 を除き、その他すべての mkfs.filesystem ユーティリティーは I/O ヒントを使用して、ディスク上のデータ構造と、基盤となるストレージデバイスの minimum_io_size および optimal_io_size に関連するデータ領域をレイアウトします。これにより、ファイルシステムを、さまざまな RAID (ストライプ化) レイアウトに合わせて最適にフォーマットできます。