[Linux] btrfs Development: Year in Review

原文はこちら
https://blogs.oracle.com/linuxkernel/btrfs-development%3a-year-in-review

このbtrfs開発のアップデートはLiu Bo(Oracle Linux Kernel開発者であり、主要なアップストリームbtrfsコントリビュータ)によるものです。

btrfsコミュニティは引き続き繁栄しています。2017年、btrfsには富士通、Facebook、Oracle、SuSEの主要開発者といくつかのNAS企業の貢献がありました。btrfsの主な使用例は2つのカテゴリに分類されます、 すなわち、'/'と '/ home'のための1個のディスクでのbtrfsの利用と、NASタイプのワークロードのための複数のディスクでのbtrfsの利用です。

過去1年間で、btrfsを安定させることを最優先課題とし、 "btrfs: fix ..."で始まる117個のコミットがありますので、基本的に全ての領域でbtrfsを修正しています。

BTRFSの主な特長は以下の通りです。
  • Linux kernel v4.13
    新しい圧縮アルゴリズム 'zstd'がbtrfsに導入されました。これはlzoと同じくらい速く、zlibと同等の圧縮率を提供します。ベンチマークの詳細は「btrfs: Add zstd support」で入手できます。
    btrfs: Add zstd support
    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5c1aab1dd5445ed8bdcdbb575abc1b0d7ee5b2e7
  • Linux kernel v4.14
    圧縮ヒューリスティックサポートがbtrfsに導入されました。圧縮前にデータにいくつかのヒューリスティックを適用して、スペースを節約できるかどうかを判断できます。
  • Linux kernel v4.15
    内部の遅延参照に対するデバッグ機能を提供するため、新しいマウントオプションref-verifyと新しいconfig CONFIG_BTRFS_FS_REF_VERIFYが追加されました。
  • 将来的には、ホットスペア、DAXによる永続メモリのサポート、RAID 56ジャーナル(ライトホールを塞ぐため)、iomapインフラストラクチャへの変換の作業を継続する予定です。これらの作業すべてにはすでに少なくともRFCパッチがありますので、メーリングリストで上がっている懸念やフィードバックに対処するために、それらを改訂し改善する必要があります。
これらの特長に加え、不具合も修正してきました。
  • ENOSPC : チケット予約メカニズムをbtrfsが採用した後でさえも、初期のno spaceエラーが発見されており、改善のための修正が行われてきました。問題はほぼすべてがbtrfsファイルシステムでのみ発生します。この変更により、ファイルシステムのサイズが増えても全体のパフォーマンスが向上します。
  • send : btrfs sendは、インクリメンタルアップデートをサポートするためによく使われており、いくつかのNASソリューションに統合されていますが、rmdirを送信する際の誤った動作や、NO_HOLE機能とインライン・エクステントが協調する際のその他の不具合を発見し、修正しました。
  • (オフライン重複排除のための)backref巡回(backref walking): オフライン重複排除は、多数の共有エクステントを生成する可能性があります。これにより、複数のファイル(または同じファイル内でも)が共有されるかどうかをチェックする際にFIEMAPを使用するツールが遅くなることがあります。これらの変更により、メモリ内のbackrefは、リストではなくrb-treeに格納されるようになりました。これにより、挿入マージが可能になり、共有エクステントを簡単に発見し、backrefを挿入しながら即座に返すことができるようになりました。
  • raid6 とスクラブ(scrub) :  btrfsのマウントを妨げるraid6再構成プロセスにある不具合を確認しました。アップストリームとstableカーネルの両方で修正を提供済みです。さらに、コミュニティはraid6でのスクラブのサポートで不具合を見つけて修正しました。この不具合は、特定のデータストライプで誤ったパリティを引き起こす可能性があります。
上記に加えて、btrfs-progsをpythonライブラリ(libbtrfsutil)として書き換え、ライセンスをGPLからLGPLに変更するというbtrfs-progsへの変更提案もあります。このライセンスの変更により、単体テストやサードパーティのツールとの統合が容易になることでしょう。
これは、btrfsの多くの優れた機能のちょっとした例です。btrfsの現在の機能を引き続き改善していきます。

0 件のコメント:

コメントを投稿