UFS2
読み:ユーエフエス-トゥー
外語:UFS2: UNIX File System 2

 UNIX(特にFreeBSD)で使われるファイルシステム(ディスク管理方法)の一つ。
目次

概要
 元祖ufsからFFSFFFSと改良を重ね、64ビットファイルシステムのUFS2となった。
 とはいえ、ファイルサイズ以外は元祖ufsとそれほど大きくは変わらない。

特徴

由来と問題点
 FreeBSD 5.xから搭載され、NetBSD 2.0に移植された。FreeBSD界隈では、これを単にUFSと呼ぶので注意が必要である。
 UFS2は長い実績を持っているが、次のような問題が指摘されている。
 対策として、次のような技術の導入により改善は続けられている。
 しかし改善にも限度があることから、次世代のファイルシステムについても検討され始めている。ZFSの移植が注力されたが、HAMMERにも注目が集まった。そして、UTF2自体の拡張も行なわれることになった。

ジャーナリング

旧来の問題点
 2010(平成22)年4月28日(UTC)、UFS2にジャーナリング機能を追加するコードが追加された。Soft-Updates Journaling、略してSUJと呼ばれている。
 これは、FreeBSD UFSにおいて待望されていた機能であり、FreeBSD 9の目玉機能になるとみられている。
 UFSは長い実績があり、今なお使われ続けているシンプルなファイルシステムである。このUFS最大の問題点は、fsck(8)に要する時間の長さである。何らかの不具合でシステムが不測のシャットダウンないしフリーズをした場合、システムはUFSをマウントする前にファイルシステムの整合性を調査し、修復する処理としてfsck(8)が必要となる。
 しかし、ディスクの容量も増えファイル数も増えた現在においては、fsck(8)に膨大な時間を要するようになった。
 システム起動までに延々と待たされるようでは実用にならないため、UFSには様々なアプローチで改善が加えられたファイルシステムが作られている。

改善方法
 FreeBSDの場合はこれらと異なり、バックグラウンドfsck(8)を採用した。クラッシュ後の起動時にファイルシステムのスナップショットが取られ、バックグラウンドでfsck(8)を実施するという方法である。
 これにより、クラッシュしてもfsck(8)の終了を待つことなくUFSをマウントしシステムを起動できるようになった。但し、バックグラウンドfsck(8)の実行中はシステムが非常に重くなるという問題も残った。
 SUJの特徴は、他のジャーナリングファイルシステムと違い、fsck(8)のチェックに必要なメタデータ操作のみが記録される点にある。このため、他のジャーナル機能より消費リソースが少なく済む。
 さらに、UFS2の機構そのものには殆ど手を付けていないため、SUJによってファイルシステムの信頼性が大きく損なわれることが無いという点もメリットである。

再検索