ソフト アップデートは、クラッシュや停電が発生した場合にファイル システム メタデータの整合性を維持するためのアプローチです。ソフト アップデートは、ファイル システム メタデータの更新間の依存関係を追跡して強制することによって機能します。ソフト アップデートは、より一般的に使用されているジャーナリング ファイル システムのアプローチの代替手段です。
操作方法
ソフト アップデートでは、ディスク上のファイル システムの不整合を生じさせない、または発生する不整合がストレージ スペースのリーク (どのファイルでも使用されていないときに割り当て済みとしてマークされるスペース) のみである、非同期メタデータ書き込みのみが許可されます。書き込み時に、フラッシュされていないか部分的にロールバックされている可能性のある別のブロックに依存するメタデータ ブロックの一部を一時的に「ロールバック」することで、順序付けられた同期メタデータ書き込みを行う必要がなくなります。
実際には、ブロックはいつでもフラッシュされる可能性があり、ソフト アップデート コードは常にディスクにメタデータの一貫性のあるバージョンを提供します (どのブロックが物理的にフラッシュされたかがわかっている限り)。その後のリカバリは、次にマウントされたときにファイル システムのバックグラウンド ウォークを実行して、孤立した割り当て済みスペースをガベージコレクションするだけです。これにより、ファイル システムは、すべてのメタデータ ブロックまたはすべてのレコードをフラッシュすることなく、特定のファイルを選択的にフラッシュすることもできます。
ディスクへの書き込みが開始される前にメタデータ依存関係グラフからリンクが解除されたデータは、ディスクに書き込む必要がありません。たとえば、ファイルを作成し、それを短期間使用してから削除すると、ディスク アクティビティがまったく発生しないことがあります。
ソフト アップデートでは、メタデータを不揮発性ストレージに定期的にフラッシュする必要があります。
実装
FreeBSDはUFSファイルシステムのソフトアップデートをサポートしており[1]、長年インストール時にデフォルトで有効になっています。ソフトアップデートは、ファイルシステムの作成時にnewfsコマンドのオプションを 使用して手動で有効または無効にできます。 [2]tunefsその後は、コマンドのオプションを使用していつでも無効または有効にできます。[3]fsck FreeBSD 9.0では、クラッシュ後のガベージコレクションの バックグラウンドをなくす目的で、ソフトアップデートにジャーナリングサプリメントが導入されました。 [4] [5]ただし、ソフトアップデートを含むファイルシステムでジャーナリングを有効にすると、ファイルシステムのスナップショットを作成できなくなります。[6]これにより、ファイルシステムが-Lオプションでダンプされたときに問題が発生する可能性があります。これは、スナップショットがダンプ中のファイルシステムの一貫性を保証するために使用されるためです。
OpenBSDはリリース7.4(2023)までFFSファイルシステムのソフトアップデートをサポートしていましたが、その時点で無効になりました。[7]
NetBSDは6.0リリース(2012年)までソフトアップデートをサポートしていましたが、その時点でWAPBLジャーナリングに取って代わられ、ソフトアップデートは非推奨となりました。[8]
ジャーナリングファイルシステムとの比較
ジャーナリングもソフトアップデートもデータが失われないことを保証するものではありませんが、ファイル システムの一貫性が維持されることは保証します。
ソフト アップデートを備えたファイル システムの利点は、ログの再生がないため、クラッシュ後すぐにマウントできることです。
注記
- Ganger, Gregory R.; Patt, Yale N. (1994 年 11 月)。「ファイル システムにおけるメタデータ更新のパフォーマンス」(PDF)。USENIXオペレーティング システムの設計と実装に関するシンポジウム (OSDI) の議事録: 49–60。
- McKusick、Marshall Kirk (2002)。「バックグラウンドで「fsck」を実行する」BSDCon 2002 の議事録。pp. 55–64。
- McKusick, Marshall Kirk; Ganger, Gregory R. (1999)。「ソフト アップデート: 高速ファイル システムでの同期書き込みのほとんどを排除する手法」。USENIX年次技術会議。pp. 1–18。
- Margo I. Seltzer 他 (2000)。「ジャーナリングとソフト アップデート: ファイル システムにおける非同期メタデータ保護」。USENIX年次技術会議。pp. 71–84。
外部リンク
- Marshall Kirk McKusick: ソフトアップデート、スナップショット、バックグラウンド fsck に関する情報
参考文献
- ^ McKusick, Marshall Kirk; Neville-Neil, George V. (2005). 「8.6」. FreeBSD オペレーティングシステムの設計と実装. Addison-Wesley . ISBN 978-0321968975。
- ^ "newfs(8)". FreeBSD . 2017-07-07 . 2019-02-02閲覧。
- ^ "tunefs(8)". FreeBSD. 2016-04-19 . 2019-02-02閲覧。
- ^ 「FreeBSD 9.0-RELEASE リリースノート」。FreeBSD。2012年1月12日。 2019年2月2日閲覧。
- ^ McKusick, Marshall Kirk; Roberson, Jeff (2010-01-23). 「Journaled Soft-updates」(PDF) . 2019-02-02に閲覧。
- ^ 「バグ 195485 - [ufs] mksnap_ffs(8) は、ジャーナル化されたソフトアップデートが有効になっているスナップショットを作成できません」。FreeBSD。2014-11-28。2019-02-02に取得。
- ^ 「将来の VFS 作業のためにソフト アップデートが無効化されました」。OpenBSD_Journal。2023年 7 月 5 日。2024年 3 月 9 日閲覧。
- ^ 「NetBSD 6.0 を発表」。NetBSD。2012年10 月 17 日。2019 年 2 月 2 日閲覧。
