ファイルシステム reiserfs

あれこれ悩んで結局 reiserfs を使っています。
さまざまなファイルシステムの仕組みについては @IT連載記事 「Linuxファイルシステム技術解説」が詳しいです(やや古い記事ですが)。2chファイルシステムスレをまとめた詳解ファイルシステム Wikiも参考になります。

さて,ext3 との違いでとくに気になる(と思われている)のは

  • badblocks をサポートしているのか
  • SELinux と併用できるのか

の2点ではないでしょうか。

不良セクタについて

まず,最初の badblocks についてですが,reiserfs も昔はサポートしていませんでした。しかし開発元の namesys のドキュメント Namesys.com によると,

# reiserfsck --badblocks file device

という書式でサポートされるようになりました(パチパチ)。

しかし,そもそも badblocks 処理は必要なんでしょうか。XFS は現在もサポートしていないようですし,FreeBSD の ad ドライバでは bad144 はサポートされていません。なぜなら,今日日のドライブでは,不良セクタが存在した場合に自動的に再割り当てされ(元のセクタ番号で)透過的にアクセスできるようになっているからです。この再割り当ての状況は,ドライブの SMART を有効にしていて smartmontools がインストールされている場合,以下のようにして調べることができます。

# smartctl -a ハードディスクのドライブ名

このコマンド*1で表示される

  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0

という行に,すでに再割り当てされたセクタの総数が表示されます(このドライブではまだ 0 個)。その他このようにして調べられる SMART 情報の詳細は Wikipedia の SMART の項目に網羅されています。

ということで,基本的には badblocks イラネ,なのですが,個人的な経験からすると自動再割り当てされずにエラーが発生するケースがあるような感じです。そんな場合(や潔癖性の方)でも現在の reiserfs は badblocks をサポートしているので満足できるのではないでしょうか。

SELinux について

もともとは reiserfs(や XFS)では SELinux が使えないといわれていました。しかし,http://www.crypt.gen.nz/selinux/faq.html#I.4 によると,

For reiserfs, most recent kernels now have support for SELinux, but the patches are known to have bugs. So its best not to use ReiserFS for the root file system ( but it should have full support for other mount points ). Older kernels will require additional patches to support ReiserFS, available from Jeff Mahoney's repository. If you really need to use ReiserFS with SELinux and your kernel doesn't have these patches, then the "-o context=" mount option should do the job reasonably well for contained directories like mail spools.

ということで,最近のカーネルでは一応大丈夫,だそうです。でもルートファイルシステムでは使わないほうがいい,と。
なので,私は Fedora のインストール時には「linux selinux=0 reiserfs」として,SELinux を無効にしています。すいません。あと,怖いんで /boot パーティションext3 にしてます(さらに軟弱…)。

まとめ

reiserfs は日本語では古い記事が多いのですが,その頃と比べて様々な(足りないとおもわれていた)フィーチャーをサポートするようになってきています。Fedora の標準インストールオプションではサポートされないのが寂しいところですが,今後は選択肢の一つとして考えるのもよいのではないでしょうか。

  • 小さいファイルがたくさんある状況でも強い(ので Subversion の FSFS でも問題なし)
  • i-node がないので,pdumpfs のようなハードリンク利用の随時バックアップシステムでも i-node が枯渇する心配をする必要がない

などのメリットもありますし。

*1:ほんとは -a スイッチじゃなくて -A スイッチで十分なんですが