私が持っているいくつかの新しいサーバーで使用するOSとファイルシステムを検討しており、ZFSを備えたFree BSD、またはBTRFSを備えたLinuxを検討しています。
私が両方のシステムで実行したプログラムなので、唯一の問題はファイルシステムの信頼性とパフォーマンスなどです。
2010年4月の時点で、Btrfsはまだ開発中であり、本番で使用する準備ができていません(実際にはそうではありません-私はカーネル2.6.32を試してみました)。機能ごとのbtrfsには、ZFS機能のすべてではなく一部が含まれています。最も注目すべきは、RAID-Zとデータ重複排除が欠落していることです。
Btrfsで機能するのは、スナップショット、コピーオンライト、チェックサム、および複数のディスクを単一のボリュームとして使用することです。 GNU cpは最近、ファイルをコピーオンライト複製としてコピーするための、きちんとした "reflink"関数を取得しました。
ZFS-Fuseはbtrfsよりも安定しているように見えるので、Linuxを使用する場合はオプション( http://zfs-Fuse.net/ )にすることができます。 Solaris ZFSのほとんどの機能が実装されています。ただし、最新のパフォーマンスベンチマークは見つかりません。
確かな解決策としては、LinuxとXFSを使用することをお勧めします。スナップショットが必要な場合は、LVM2を追加します。ソフトウェアRAIDが必要な場合は、mdadmを追加します。
今日(2012-02-01)の時点では、btrfsにはfsckユーティリティがまだありません。つまり、システムがクラッシュすると、すべてのデータが危険にさらされます(カーネルパニック、電力損失、その他多くのシナリオを考えてください)。私はこのデータ損失を直接経験しました。あなたがデータセキュリティを探しているなら(そして誰がそうでないのですか?)、btrfsを避けてください。現在のところ、BTRFSはファイルシステムのジャンキーや重要でないデータを実験するためのものです。
もちろん、とにかく貴重なデータのバックアップをとっておくべきですよね?
PC/FreeBSD 9でZFSを使用して超安定した代替を行うには、ZFSは長年にわたって信頼されているエンタープライズファイルシステムです。 RAIDZ2は命の恩人です。
私はまだ(SolarisとLinuxの両方で)ZFSユーザーですが、後者の場合、btrfsを最新(2012年3月)のリリースと見なします 新機能、パフォーマンスの改善、バグ修正、および修復機能を備えたbtrfsfsckのリリース予定 。
それによると プレスリリース で、Btrfsファイルシステムは本番環境で使用できるようになりました。
他の人が述べたように、Btrfsはまだ実験的なので、おそらくまだBtrfsに依存したくないでしょう。
人々は一般にBSDでZFSに満足しているように見えますが、SolarisでZFSを実行することも検討してください。
ZFSのBSDポートはおそらく最も成熟したポートですが、いくつかのバージョンはSolarisのZFSよりも遅れているため、最新の機能をすべてすぐに入手することはできません。 FreeBSD 8.0以降では、ZFSバージョン13のみがサポートされています。たとえば、重複排除は行われません(これはZFSバージョン21で導入されました)。また、FreeBSD 8.0ではiSCSIを取得できません。
導入されている最新のZFS機能が必要な場合は、OpenSolarisまたはOracle Solaris、またはNexenta(GNU userlandを含むSolarisの派生物))を選択できます。
他の人がすでに指摘したように、BTRFSはまだ本番品質ではありません。そのため、今日機能するものが必要な場合は、ZFSの方が適しています。
BTRFSの背景、およびZFSとの違いについては、 このLWN記事 を参照してください。
この質問はほぼ10年前に尋ねられましたが、それでも検索エンジンで出てくるので、おそらく更新された回答を追加する価値があります。 Linux上のZFSはかなり成熟しています。Ubuntuは2015年に基本サポートを追加し、2019年後半には installationをZFSルートに追加しました 。つまり、これをLinuxとFreeBSDの議論に変えることなく、同じOSでZFSとbtrfsを比較する方が簡単です。 (Linuxを使用していない場合、btrfsはおそらくオプションではありません。)
私は昨年、いくつかのミラーリングされたディスクを備えた基本的なホームLinuxサーバーでZFSを使用してきました。ただし、ZFSカーネルモジュールをインストールする必要があるため、Linuxに組み込まれているbtrfsを使用する場合と比べて、状況が多少複雑になります。 ZFSルートからのブートは一般的ではなく、ZFSをインストールすると、ローリングリリースディストリビューションでの頻繁なカーネルアップデートの管理が 困難になります 。ローカルストレージの一部にbtrfsを使用しているので、サーバーもbtrfsに移行して、外部カーネルモジュールなしですべての問題を解決しようと思いました。
ZFSは全体としてより成熟した製品です。最初のZFSシステムのセットアップは驚くほど簡単です。追加の構成が必要なように見えますが、これは「バッテリーを含む」ファイルシステムです。 ZFSは暗号化のネイティブサポートを提供しますが、btrfsはdm-cryptなどを使用して独自のブロックデバイスを暗号化する必要があります。 ZFSは、NFSまたはSMBを介してファイルシステムをエクスポートすることもできます。 ZFSのドキュメントは、カーネルハッカーやシングルブートディスクを実行しているカジュアルユーザーには売り込まれていませんが(ZFSはこれが可能です)、リーダーがユーザー、冗長性、稼働時間を備えた本格的なファイルサーバーを構築していると想定しています。
対照的に、 btrfsは一般的に安定 であり、多くの人々が何年もそれを楽しく使っていますが、不安定なRAID56実装などのいくつかの危険な機能がまだあり、そのドキュメントは困難です見つけて理解する。 FAQ page の質問の圧倒的なリストは、btrfsのドキュメントエクスペリエンスの典型です。ニーズが単純であれば、おそらく警告の多くを安全に無視しますが、ファイルシステムを信頼するために必要な理解のレベルに到達するまでには、さらに時間がかかります。ニーズが何であるかまだわからない場合は、btrfsを使用すると、後で計画を簡単に変更できます。マウントされているデバイスの削除またはファイルシステムのサイズ変更。
ZFSとbtrfsはsnapshotという用語を非常に異なる方法で使用します。これは、2つのシステムを評価する初期段階で混乱する可能性があります。 2つのアプローチは同等に強力ですが、次のいずれかがより直感的である場合があります。
ZFSでは、ブロックデバイスは zpool を形成し、任意の数のマウント可能な datasets をホストできます。各データセットには多数の snapshots があり、特定の時間におけるそのデータセットの状態の効率的なコピーを表します。
Btrfsでは、ブロックデバイスは filesystem を形成します。これには、任意の数のマウント可能な subvolumes が含まれます。サブボリュームの snapshot は、それ自体が別のサブボリュームです。 「 スナップショットは(フル)コピーに似ていますが、共有ストレージのために経済的です 」。このアプローチの柔軟性は、スナップショットを使用して増分バックアップを管理する場合は、何らかの レイアウト規則 を決定する必要があることを意味します。
LinuxでZFSとbtrfsの両方を検討していて、より最先端のEdgeの代替策に興味がある場合は、 bcachefs も参照できます。
同じことを探していたときに、FreeBSD WikiのFreeBSDでのZFSのステータスに関するこの情報を偶然見つけました。 FreeBSDが追いついているようです。
出典: http://wiki.freebsd.org/ZFSTuningGuide
ZFSを使用したFreeBSDリリースの履歴は次のとおりです。