Red Hat Training

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

22.6. パーティションとファイルシステムのツール

本セクションでは、 さまざまなパーティションツールやファイルシステム管理ツールがどのようにしてデバイスの入出力パラメータと相互作用するのかについて説明しています。

util-linux-ng の libblkid と fdisk

util-linux-ng パッケージに入っている libblkid ライブラリにはデバイスの入出力パラメータへアクセスするためのプログラム的な API が含まれています。 libblkid によってアプリケーション、 特にダイレクト入出力を使用するアプリケーションがその入出力要求を正しく区分できるようになります。 util-linux-ng に入っている fdisk ユーティリティーは libblkid を使ってデバイスの入出力パラメータを全パーティションで最適となる配置に定義します。 fdisk ユーティリティーによって 1MB の境界ですべてのパーティション調整が行われます。

parted と libparted

partedlibparted ライブラリも libblkid の入出力パラメータ API を使用します。Red Hat Enterprise Linux 7 のインストーラー (Anaconda) では libparted が使用されます。つまり、インストーラまたは parted のいずれかで作成されるパーティションはすべて正しく調整されることになります。入出力パラメータを提供しないようなデバイスで作成されるパーティションの場合、デフォルトのアライメントは 1MB になります。
経験的法則による parted では次を使用します。
  • 1 番目のプライマリーパーティションの開始のオフセットには常に報告された alignment_offset を使用します。
  • optimal_io_size を指定すると (つまり 0 以外を指定)、 optimal_io_size の境界にあるパーティションすべての調整を行います。
  • optimal_io_size を指定しないと (つまり 0)、 alignment_offset0 になります。 また、 minimum_io_size は 2 の累乗になり 1MB のデフォルトアライメントを使用します。
    これが I/O hints を提供しないようなレガシーなデバイスの汎用になります。 このようにデフォルトでは全パーティションが 1MB の境界で調整されます。

    注記

    Red Hat Enterprise Linux 7 では、I/O hints を提供するデバイスとしないデバイスとを alignment_offset=0optimal_io_size=0 で区別することはできません。 この様なデバイスには単一の SAS 4K デバイスなども含まれます。最悪の場合、ディスクの先頭にある 1MB の領域を失うことになります。

ファイルシステムのツール

各種の mkfs.filesystem ユーティリティーも拡張されデバイスの入出力パラメータを使用するようになっています。 こうしたユーティリティーでは、 基礎となるストレージデバイスの logical_block_size より小さいブロックサイズを使用したファイルシステムのフォーマットは行えません。
mkfs.gfs2 の場合を除き、 他の mkfs.filesystem ユーティリティーもすべて I/O hints を使って基礎となるストレージデバイスの minimum_io_sizeoptimal_io_size に応じたオンディスクデータ構造とデータエリアをレイアウトします。 これにより、 ファイルシステムを各種の RAID (ストライプ化) レイアウトに応じて最適にフォーマットできるようになります。