
Linuxを使うなかでファイルシステムの選択は根幹を決める重大な判断だ。データの読み書き速度、信頼性、バックアップ手法まで、システム全体の性能と安定性に大きな影響を与える。
Arch Linuxは豊富なファイルシステムをサポートする。ext4やXFS、Btrfsなど、各ファイルシステムには独自の特徴があり、用途に応じて使い分けることでシステムを最大限に活用できる。
データベースサーバーには書き込み性能に優れたXFS、開発環境では、スナップショット機能を持つBtrfs、家庭用NASならext4、というように目的によって最適なファイルシステムは異なる。
選択の幅が広いぶん、どのファイルシステムを採用するかの判断は慎重に行いたいところだ。この記事では各ファイルシステムの実力を解説していく。
ファイルシステムとは
ファイルシステムは、データの保存方法や管理方法を定める仕組みである。ストレージ上でのデータ配置、アクセス権限の管理、ファイル名とデータの対応付けなどを制御する。
Arch Linuxのインストール時に選択したファイルシステムは、後から変更することが難しい。パーティションごとに異なるファイルシステムを採用できるものの、ルートパーティション(/)のファイルシステムを変更する場合は、再インストールになる。
ext2からext3への移行のように、データを移行せずに変更できるケースもあるが、それ以外のファイルシステム間の変更では、バックアップと復元作業が不可欠である。データ消失を防ぐため、重要な情報は事前に必ずバックアップを取っておく。
システムの用途やハードウェア構成を踏まえ慎重に決める。
基本的なファイルシステムの特徴
ext2
ext2はGNU/Linux向けに開発された最初の標準ファイルシステムである。構造が単純で安定しており、20年以上にわたり利用されている。ジャーナリング機能を持たないため、システムが突然停止するとデータの復旧に時間がかかる。一方で書き込み回数が少なくて済むため、SDカードやUSBメモリなどのフラッシュメモリに適している。/bootパーティションにも広く採用されている。
ext3
ext3はext2にジャーナリング機能を追加したファイルシステムである。ジャーナリングとはデータの書き込み履歴を記録し、システム障害からの復旧を速くする機能である。ext2との互換性が完全に保たれており、ext2からext3への移行も簡単である。最大ファイルサイズは2TBに制限される。中規模のサーバーやデスクトップPCで安定した性能を発揮する。
ext4
ext4は現在のLinuxで標準的に使われるファイルシステムである。最大ファイルサイズは16TBで、ファイルシステム全体では1エクサバイトまで対応する。エクステント機能により大容量ファイルの読み書きを効率化する。遅延割り当てによりディスクの断片化を抑えられる。ディレクトリには64,000個までのサブディレクトリを作成できる。マルチブロック割り当てやオンラインデフラグ機能も備え、現代のハードウェア性能を十分に引き出せる。
これら3世代のextファイルシステムは、GNU/Linuxの発展とともに進化してきた。互いの互換性を保ちながら、時代のニーズに合わせて機能を拡張している。用途や環境に応じて使い分けることで、それぞれの長所を活かせる。
高性能ファイルシステム群の実力
JFS
JFSはIBMのAIXで培われた技術を基に開発されたファイルシステムである。最大の強みはCPU負荷が低いことである。システムリソースを最小限に抑えながら安定して動作する。デッドラインI/Oスケジューラとの相性も良く、フォーマット、マウント、fsck処理がいずれも高速である。ノートPCなど、リソースが限られた環境に向いている。ext4やXFSと比べるとツールの充実度は劣るが、堅牢性は高い。
XFS
XFSはSilicon Graphics社が大規模システム向けに開発したファイルシステムである。大容量ファイルの読み書きに優れ、最大ファイルサイズは8エクサバイトに達する。B-treeインデックスによりディレクトリ操作を効率化する。遅延ログでメタデータの書き込みを最適化できる。動的なinode割り当てやリアルタイムデバイスのサポートなど先進的な機能も備える。オンラインでのデフラグやパーティション拡張にも対応する。ファイルサーバーや動画編集ワークステーションなど、大容量データを扱う環境で力を発揮する。
ReiserFS
ReiserFSは小さなファイルの処理に優れたファイルシステムである。tail packingと呼ばれる技術で小容量ファイルを効率よく格納できる。メールサーバーやウェブサーバーなど、多数の小容量ファイルを扱う環境で真価を発揮する。ディレクトリ内のファイル検索も高速で、/varディレクトリに向いている。フォーマットは速いが、マウント速度は他のファイルシステムより遅い。
現在、ReiserFSの開発は積極的に行われていない。Linux 5.19以降のカーネルで完全に削除されたわけではないが、多くのディストリビューションで標準サポートは提供されていない。ユーザー自身でパッチやモジュールを用意する必要があるため、一般ユーザーには推奨できない。
これらの高性能ファイルシステムには、それぞれ得意分野がある。JFSは省リソース動作、XFSは大容量ファイル処理と、用途に応じて使い分けることで最大の効果を引き出せる。縮小や移行には一部制約があるため、導入時に十分な検証が求められる。
最新のファイルシステム技術と実務での活用
Btrfs
Btrfsはコピーオンライト方式を採用した次世代のファイルシステム。スナップショット機能によりシステムの状態を瞬時に保存でき、障害発生時の復旧を容易にする。複数のストレージプールをまとめてRAID構成を組むことも可能で、柔軟にストレージを管理できる。データの圧縮や重複排除も可能で、容量を効率よく使える。サブボリュームを作成すれば、単一のパーティション内で異なる設定を使い分けられる。
ファイルシステムの整合性チェック機能も搭載し、破損の検出と修復を自動で行う。ext4やXFSと比べて新しい技術であるため、本番環境で採用する際は慎重なユーザーも多い。しかし開発は活発に進められている。
ZFS
ZFSはSun Microsystemsが開発した高機能なファイルシステムである。強力なデータ保護機能を備え、チェックサムで破損を検出し、self-healing機能で自動的に修復する。スナップショットやクローン機能もあり、バックアップやテスト環境の構築を効率化できる。
ストレージプールの概念を導入し、物理デバイスを論理的なプールとして管理する。圧縮、暗号化、重複排除など、エンタープライズ向けの機能を標準で備える。ライセンスの制約によりLinuxカーネルに標準統合されておらず、利用には追加パッケージのインストールが必要である。
両ファイルシステムとも従来にない革新的な機能を提供し、データ管理の新たな可能性を広げている。システムの用途や運用方針に基づいて、これらの新技術を取り入れるかを判断することになる。
ユースケース別の最適なファイルシステム構成
デスクトップ環境ではext4が最も適している。日常的な読み書きや一般的なアプリケーションで十分な性能を発揮する。/homeディレクトリをext4で構築すれば、安定した動作とデータの信頼性を両立できる。
サーバー環境では用途に応じてファイルシステムを使い分けることが重要である。大規模なファイルサーバーやストリーミングサーバーにはXFSが最適である。データベースサーバーではXFSまたはext4を採用し、ジャーナリング設定を調整することで性能を引き出せる。
開発環境ではBtrfsのスナップショット機能が役立つ。コードの変更履歴を簡単に保存でき、実験的な変更も安全に行える。仮想マシンのイメージファイルを扱うときはXFSが優れた性能を示す。テスト環境の構築にはBtrfsのサブボリューム機能が便利である。
パフォーマンスとデータ保護の両立
ジャーナリングはファイルシステムの信頼性を高める基本機能である。データ書き込みの履歴を保持し、システム停止時のデータ破損を防ぐ。ext3以降の標準ファイルシステムはすべてジャーナリングを備えている。ジャーナリングにはデータモードとメタデータモードの2種類があり、ext4では書き込み速度と信頼性のバランスを調整できる。
バックアップはファイルシステムの選択と密接に関係する。Btrfsのスナップショット機能を使えば、システム全体のバックアップを瞬時に取得できる。増分バックアップにはrsyncとext4の組み合わせが実績を残している。XFSはダンプ/リストアツールが充実しており、大容量データの保護に向く。世代管理やオフサイトバックアップなど、複数の保護手段を組み合わせることで、データの安全性を高められる。






