Red Hat Enterprise Linux 7(RHEL7)でデフォルトのファイルシステムとなった「XFS」は、米SGI(Silicon Graphics International)社が同社のUNIX系OS「IRIX」用に開発したファイルシステムである*1。1993年の開発開始から20年以上の歴史を持つ。Linuxには2000年ごろから移植され、ストレージ製品などで使われてきた。現在ではXFSの主要な開発者の何人かは米Red Hat社の社員となっており、開発の中心はRed Hat社が担っている。

*1 XFSの開発者によるwikiが公開されている。

 Red Hat製品においても、XFSは2009年からRHEL5およびRHEL6のアドオン製品「Scalable Filesystem Add-on」として販売されている。また、RHELベースのSoftware Defined Storageである「Red Hat Storage」の基盤技術の一つとなっている。

 RHEL5およびRHEL6では、デフォルトのファイルシステムはそれぞれ「ext3」と「ext4」だったが、RHEL7ではデフォルトのファイルシステムがXFSとなった。またサポート上の制限もRHEL6のXFSでは100Tバイトであったのに対し、RHEL7では500Tバイトへ増加した*2。ext2、ext3、ext4も引き続き利用可能だが、これからはXFSを利用する機会が増えるだろう。

XFSのパフォーマンス

 XFSは現在も進化を続けており、その一つが性能の向上である。一時はext4に最速の座を譲ったものの、その後また返り咲いた。2012年のlinux.conf.auでの講演によると、ジャーナル処理に必要なIOPS(I/O Per Second)を削減する工夫により並列性が高いケースでbtrfsやext4に比較してメタデータ(inodeやディレクトリーエントリなど)の操作で非常に良い性能を出している*3

*3 2012年のlinux.conf.auでの発表スライド「XFS:Adventures in Metadata Scalability」を参照。メタデータ操作の改善について紹介している。

 このメタデータ操作の性能は、特に小さなファイルの操作を大量に行う場合に影響が大きい。近年のサーバーは多数のCPUコアを備えるため、ファイルシステムでは並列度が高いワークロードで性能が高いことがより重要になっている。

 RHEL7(Release Candidate時点)に含まれる各種ファイルシステムのベンチマークテストにおいて、XFSは最も高いI/Oスループット性能を記録している(図1*4。このI/Oスループットは、ファイル内のデータの読み書き量である。XFSはデータおよびメタデータのどちらでも優秀な成績を収めている。

図1●ファイルシステムごとのI/Oスループット比較
図1●ファイルシステムごとのI/Oスループット比較
[画像のクリックで拡大表示]
*4 2014年のRed Hat SummitでのRHEL7パフォーマンス評価「Performance Analysis and Tuning – Part 2」を参照。XFS関連は7~8ページに記述されている。

XFSの技術上の特徴

 XFSの技術上の特徴は、(1)複数ブロックにまたがるメタデータのB+ treeデータ構造、(2)エクステントを単位としたブロック管理、(3)遅延アロケーションによるブロック割り当て、(4)ジャーナリングによる障害からの高速な復旧、──などが挙げられる。

 これらの特徴や機能により、XFSは前述した高い性能や、可用性の高さといった大きな利点を持つ。そしてこれらXFSの特徴や機能は、ext3やext4といった他のファイルシステムにも徐々に取り込まれてきた。そのため現在では、XFSはごくオーソドックスなファイルシステムといえる。

 次回は、XFSが備えるこれらの特徴を詳しく見ていこう。

森若 和雄(もりわか かずお)
レッドハット プラットフォームソリューション統括部 ソリューションアーキテクト部 ソリューションアーキテクト
「ソースコードを読んだり、書いたりしないのならオープンソースの意味なんかない」と言いながら、ソースコード読み放題の会社で日々いろいろなプログラムを読んでいる。それなりに手間はかかるものの、仕組みや振る舞いを検証できるというOSSの特性は、今後ますます重要になると思っている。