Linuxで一般的なファイルシステムの特徴を理解する

Linuxで一般的なファイルシステムの特徴を理解する

ファイルシステムは、ハードディスクなどの記憶装置のどこにどんなデータが記録されているかを管理する仕組みです。Windowsで言うところのFAT32やNTFSにあたります。

Linuxでは、標準ファイルシステムとしてext2が長く使われてきましたが、その後ext3、ext4へと進化し、最近のRedhat系のLinuxではXFSが標準ファイルシステムとして採用されています。

普段、LinuxやWindowsを使っていて、ファイルシステムについて気にすることはほとんどありませんが、Linuxのメジャーなファイルシステムについて、簡単にまとめてみました。

ext2(second extended filesystem)

ext2は、初期のLinuxから標準ファイルシステムとして長く使われていたファイルシステムです。

ext3(third extended file system)

ext3は、ext2と高い互換性を持つことを目指して作られたファイルシステムで、ext2からの追加機能のひとつにジャーナリング機能があります。

ジャーナリング機能は、ファイル操作を行なう際に、実際のデータ領域を更新する前に更新内容をジャーナルと呼ばれるログに記録しておき、その記録が完了してから、実際のデータを更新し、最後にジャーナルログを破棄するという手順を取ることで、データの一貫性を保つための機能です。

ext4(fourth extended file system)

ext4は、ext3の後継ファイルシステムで、より大きなボリュームサイズとファイルサイズを取り扱えるようになっています。

また、コンピュータの取り扱うデータ量の増加にしたがい、ext2やext3でのブロック単位の管理方式では効率が悪くなってきたことから「連続した任意の数のブロック(エクステント)」を単位としてデータを管理する方式が採用されています。これにより、大きなファイルに対するパフォーマンスが改善されています。

XFS

XFSは、もともと旧SGI(Silicon Graphics Inc.)社がIRIX上で動くハイエンド向けのファイルシステムとして開発していました。

ext2、ext3、ext4との大きな違いは、XFSは初期段階からスケーラビリティを考慮し、ハイエンドシステムをターゲットとしていたことです。XFSがRedHat系Linuxの標準ファイルシステムとして採用されたのは、ext系ファイルシステムではスケーラビリティの限界が見えつつあったことも一因としてあるようです。

なお、XFSに対して使用するコマンドは、多くがext系のファイルシステムとは異なるため注意が必要です。

ZFS

ZFSは、サン・マイクロシステムズ社が「Solaris」のために開発したファイルシステムで、現在ではオープンソース化され、多くのLinuxディストリビューションで利用できるようになっています。

ZFSでは、複数の記憶装置を統合し一つののストレージプールとして扱い、システムを稼働したまま記憶装置の取り付けや取り外しが可能で、RAID構成を組むこともでき、大容量ファイルの取り扱いにも適しています。

ZFSは、スナップショット機能やロールバック機能も備えており、とても高機能なファイルシステムですが、運用が難しく、スキルが要求される言われています。

あとがき

LinuxやWindowsを使っていて、クライアントやサーバーによらずファイルシステムについて気にすることはほとんどない思いますが、どんなファイルシステムがあるのかなど、ざっくりでも知っておくと、いざというときに役立つかもしれません。