ZFSとXFS


62

〜16TBのストレージサーバーの構築を検討しています。現時点では、ファイルシステムとしてZFSとXFSの両方を検討しています。長所と短所は何ですか?何を探す必要がありますか?3番目のより良いオプションはありますか?


7
それらを比較することさえしないでください。ZFSは、jfs2、waflなどの最新のエンタープライズレベルのファイルシステムです。XFSは10年前は良かったのですが、今日は単なる石器時代です。
博士論文

いくつかの点で、それらを比較することはできません。XFSはファイルシステムです。ZFSはファイルシステムであり、その他にもファイルシステム、ボリュームマネージャー(LVMなど)、およびRAIDを置き換えます。ただし、メモリが機能する場合、JFSは維持されなくなります。ただし、XFSはアクティブで維持され、堅牢です。いずれにせよ-ZFSまたはXFS-あなたは私の意見では間違いはありません。
メイ

1
私はまだこの質問が関連していると思うので、ここで私たちの経験を書きましょう:XFSは簡単で、インストールして、実行して、素早く、動作します。(以下のHWレイド)。ZFSは保存されており、圧縮されていますが、XFSと同じ速度で動作するように調整するには多くの作業が必要です。そのため、サーバーの実行が予想される状況にも依存します。(クラスターのバックエンド。ユーザーストレージ、アーカイブ、...)
SvennD

Hammer2のもありdragonflybsd.org/hammer
SKAN

回答:


44

XFSは、多くの大きなファイルを含む非常に大きなファイルシステムにより適していることがわかりました。私は2年以上機能する3.6TB XFSファイルシステムを問題なく使用してきました。そのサイズでext3などよりも確実に機能します(特に、多くの大きなファイルと大量のI / Oを処理する場合)。

ZFSで得られるのは、ファイルシステム自体に組み込まれたデバイスプーリング、ストライピング、およびその他の高度な機能です。詳細について話すことはできません(他の人にコメントさせていただきます)が、私が伝えることができることから、Solarisをここで最大限に活用したいと思います。既にハードウェアRAIDを使用している場合(私と同じように)、ZFSがどれだけ役立つかはわかりません。


33
ZFSの重要な機能は(通常)他の場所では取得できないもので、ブロックレベルのCRCです。これは、サイレントデータの破損を検出する(できれば防止する)はずです。ほとんどのファイルシステムは、書き込みが正常に完了した場合、データは実際にディスクに書き込まれたと想定します。特にセクターが「限界」になり始めている場合は、必ずしもそうとは限りません。ZFSは、結果の書き込みに対してCRCをチェックすることでこれを検出します。
エイブリーペイン

3
そして、はい、私はXFSが好きです。:)念頭に置いておく必要がある唯一の落とし穴は、ジャーナルの回復中に「不良」だったセクターをゼロにする傾向です。一部の(まれな)場合、データの損失が発生する可能性があります... Googleの検索用語「xfsは復旧時にセクターをゼロにします」pages.cs.wisc.edu/~vshree/xfs.pdf
Averyペイン

3
XFSで私が気に入っているものの1つは、xfs_fsr「最適化」プログラムです。
クリスチャン・シウピトゥ2009年

1
ZFSブロックレベルCRCの有用性には疑問があります。ハードドライブとSSDは、ハミングコードECCを使用してシングルビットエラーを修正し、2ビットエラーを報告します。ECCが物理的な読み取りエラーを透過的に修正できない場合、データはとにかく失われ、読み取りエラーがOSに報告されます。CRCはエラーを修正しません。この機能はZFSの主な利点としてプッシュされていますが、実際には冗長であり、価値がありません。XFSの停電後ゼロバグに関しては、かなり前に修正されており、今日は関係ありません。
ジョディリーブルション

@JodyLeeBruchonの記述は誤りです。ストレージデバイスには既にデータにパリティコードが付加されているのは事実ですが、エンドツーエンドのデータ保護が可能なわけではありません。chechsummingファイルシステムなしでこの目標を達成するには、a)SAS T10 / DIF / DIXストレージスタック、またはb)devicemapper dm-integrityを使用する必要があります
shodanshok

75

ZFSは、ソフトウェアRAIDを超える利点を提供します。コマンド構造は非常に思慮深くレイアウトされ、直感的です。また、メタデータのインデックス作成を高速化するために、圧縮、スナップショット、クローン作成、ファイルシステムの送受信、およびキャッシュデバイス(新しいSSDドライブ)を備えています。

圧縮:

#zfs set compression=on filesystem/home

ライブマウント可能なコピーオンライトスナップショットの簡単な作成をサポートしています。

# zfs snapshot filesystem/home/user@tuesday
# cd filesystem/home/user/.zfs/snapshot/tuesday

ファイルシステムのクローン作成:

# zfs clone filesystem/home/user@tuesday filesystem/home/user2

ファイルシステムの送受信:

# zfs send filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

増分送信/受信:

# zfs send -i filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

キャッシングデバイス:

# zpool add filesystem cache ssddev

これは氷山の一角にすぎません。OpenSolarisのインストールを試してみることを強くお勧めします。

http://www.opensolaris.org/os/TryOpenSolaris/

編集:これは非常に古く、Open Solarisは廃止されました。ZFSを使用する最良の方法は、おそらくLinuxまたはFreeBSD上です。


完全な開示:私はかつてSunストレージアーキテクトでしたが、1年以上働いていませんでした。この製品に興奮しています。


このリンクは、wwwでは機能しませんでした。使用http://opensolaris.org/os/TryOpenSolaris/
aggregate116​​6877

実際、zfsの最善策はまだFreeBSDであると言っています。それはかなりの数年間システムの一部でした。だから、私の予想では、厄介なサプライズの可能性は最小限です。それはちょうど私の$ 0.02ですが。
フォックス

18

ライブファイルシステムでlvmスナップショットとxfsを使用することは、特に非常に大規模なファイルシステムを使用する場合の災害のレシピです。

私は自分のサーバーで過去6年間LVM2とxfsのみを実行しています(zfs-fuseが非常に遅いために自宅でも)...

ただし、スナップショットを使用しているときに発生したさまざまな障害モードをカウントできなくなりました。私はそれらの使用を完全に止めました-それはあまりにも危険です。

私は今、作ってあげる唯一の例外は、私は一時的なスナップショットを使用して、一晩のバックアップをやる私自身の個人的なメールサーバ/ Webサーバのバックアップ、である、それはソースfsの大きさを常に等しく、そして右の後に削除されます。

留意すべき最も重要な側面:

  1. スナップショットを持つ大きな(ish)ファイルシステムがある場合、書き込みパフォーマンスはひどく低下します
  2. スナップショットを持つ大きな(ish)ファイルシステムがある場合、ボリュームグループのインポート中にディスクがチャーニングおよびチャーニングする間、文字通り数十分でブート時間が遅延します。メッセージは表示されません。ルートがlvm2にある場合、この効果は特に恐ろしいです(ルートデバイスの待機がタイムアウトし、システムが起動しないため)
  3. スナップショットがある場合は、スペース不足が非常に簡単です。スペースがなくなると、スナップショットは破損し、修復できなくなります。
  4. 現時点ではスナップショットをロールバック/マージすることはできません(http://kerneltrap.org/Linux/LVM_Snapshot_Mergingを参照)。つまり、スナップショットからデータを復元する唯一の方法は、実際にコピー(rsync?)することです。危険危険:スナップショットの容量が少なくともソースfsのサイズではない場合、これを行いたくありません。そうしないと、すぐにレンガの壁にぶつかり、ソースfsとスナップショットの両方が破損してしまいます。(そこに行ったことがある!)

1
たまたま今日、誰かがスナップショット-ブートできないLinuxのvgがまだ最新であることを確認しました:bugs.launchpad.net/lvm2/+bug/360237
sehe

このバグを再訪、彼らはまだsnaphotsと最悪起動時の問題は、「LVMの正常な動作」であることを考える:bugs.launchpad.net/lvm2/+bug/360237/comments/7(2012-01-07上)
sehe

1
更新:同じ状態。わずか7年が経過しました。
-sehe

14

考慮すべきいくつかの追加事項。

  • ドライブがその上にあるファイルシステムに関係なくハードウェアRAIDアレイで停止した場合、デバイス上のすべてのブロックを再構築する必要があります。データを保持していないものでさえも。一方、ZFSはボリュームマネージャー、ファイルシステムであり、データの冗長性とストライピングを管理します。そのため、データを含むブロックのみをインテリジェントに再構築できます。これにより、ボリュームが100%いっぱいになったとき以外の再構築時間が短縮されます。

  • ZFSにはバックグラウンドスクラブ機能があり、ディスク上でデータの一貫性を維持し、データが失われる前に見つかった問題を修復します。

  • ZFSファイルシステムは常に一貫した状態にあるため、fsckは必要ありません。

  • ZFSは、LVMが提供するスナップショットと比較して、スナップショットとクローンの柔軟性と機能も提供します。

Linux、LVM、XFSスタックでの大判ビデオ制作のために大規模なストレージプールを実行している。私の経験では、ストレージをマイクロ管理するのは簡単です。これにより、使用されていない大量のスペースと、論理ボリュームの管理に関する時間/問題が発生する可能性があります。フルタイムのストレージ管理者がストレージのマイクロ管理を担当している場合、これは大した問題ではないかもしれません。しかし、ZFSのプールストレージアプローチにより、これらの管理の問題が解消されることがわかりました。


8

ZFSは本当に素晴らしいです。5 x 1 TBのHDファイルサーバー用のホームファイルサーバーとして使用しています。また、ほぼ32 TBのハードドライブ容量がある実稼働環境でも使用しています。高速で使いやすく、データ破損に対する最良の保護が含まれています。

特に、このサーバーでOpenSolarisを使用しているのは、新しい機能へのアクセスを望み、新しいパッケージ管理システムとアップグレード方法を提供したからです。


7

どのOSを実行する予定ですか?それとも、考慮事項の別の部分ですか?Solarisを実行している場合、XFSは私が知る限りオプションではありません。Solarisを実行していない場合、ZFSの使用をどのように計画していますか?他のプラットフォームではサポートが制限されています。

Linuxサーバーについて話している場合は、Ext3に個人的なこだわりがありますが、それは、それが最も多くのテストを受けているからです。zfs-fuseはまだ非常に若いです。また、カーネルの更新後にバグが原因でデータが破損したXFSで問題が発生しました。Ext3に対するXFSの利点は、リモートデータセンターにあるマシンの復元に伴うコストを上回るものではありませんでした。


6
FreeBSDにはZFSの成熟したネイティブポートがあります
ブライアンジャンフォルカロ2009

7
wiki.freebsd.org/ZFSKnownProblems成熟の定義は私のものとは異なるかもしれないと思う:-)たぶん、8.0がリリースされた後にそれを検討するだろう。
KjetilLimkjær2009

9
16TBのext3?ダメダメダメ。それをしません。あなたは泣きます。私の意見では、ZFSまたはXFSが最高のファイルシステムです。可能であればZFSを使用します(Linuxで実行しないでください)。これは、LinuxおよびSolarisでの5年以上にわたる大量の経験でこれを言います。
トーマス

3
20090601以降のFreeBSD 7.2は、ZFSKnownProblemsのほとんどを議論の対象にしています。OSのAMD64バージョンを実行している場合、現在は安定しています。8.0では、FreeBSDはZFSを本番環境に十分安定しているとマークしました。
ウォルター

3
Linux上のZFSが利用可能になりました(zfsonlinux.org
ジェームズムーア

7

パフォーマンスに集中すべきだとは思わない。XFS、ext4などでデータは安全ですか?いいえ。これらの博士論文と研究論文を読んでください。

XFSはデータ破損に対して安全ではありません:pages.cs.wisc.edu/~vshree/xfs.pdf

ext3、JFS、ReiserFSなどもありません:zdnet.com/blog/storage/how-microsoft-puts-your-data-at-risk/169?p=169&tag=mantle_skin%3bcontent「魅力的な博士論文に出会いましたIRON File SystemsのVijayan Prabhakaranが、NTFS、ext3、ReiserFS、JFS、XFSの5つのコモディティジャーナリングファイルシステムがストレージの問題をどのように処理するかを分析します。

一言で言えば、彼はすべてのファイルシステムが

. . . failure policies that are often inconsistent, sometimes buggy, and generally inadequate in their ability to recover from partial disk failures. "

しかし、ZFSはデータを正常に保護します。これに関するリサーチペーパーを次に示します。zdnet.com/blog/storage/zfs-data-integrity-tested/811


5

FS向けの回答ではありませんが、多くのディスクコントローラーが2 TBを超えるLUN /論理ディスクを処理しないことに注意してください。これにより、ストレージの編成方法がかなり制限される可能性があります。エンドツーエンドでシステムをチェックして、全体で16TBを処理できることを確認できるように注意してください。


1

それはあなたが望む機能に依存します...、あなたが言ったように2つの合理的な選択肢はxfsとzfsです、xfsコードはかなりよくテストされています8年前にIRIXで最初に使用しました

xfsからスナップショットを取得することが可能です(lvmとxfs_freezeを使用)

SSDなどの別のログデバイスを使用することもできます。

mkfs.xfs -l logdev=/dev/sdb1,size=10000b /dev/sda1

従来、大規模なxfsはチェックするために大量のメモリを必要とします

ゼロが現れる問題は「セキュリティ」機能でしたが、これは少し前に消えたと思います。


1

すでに述べたものとは別に、パフォーマンスの観点からは、MDベースRAIDのxfsはストリーミングメディアのzfsよりもパフォーマンスが優れています。私は、xfsで半年間同じハードウェアを使用し、メディアサーバー上のzfsでほぼ同じ時間を使用しました。Intel Atom 330でxfsを使用していると、スタッターは発生しません。複雑なシーンのzfsでは、同じハードウェアが追いつかず、フレームをドロップし始めます。


0

独自に構築するのではなく、代わりにSun 7410(別名Toro)を使用できます。このソリューションには、非常に便利なソフトウェアがバンドルされています。


0

皆さん、zfsへの最新の追加:重複排除を忘れないでください。そして、iscsi、nfs、またはsmb共有について、その場で話しましょう。他の人がすでに言ったように、zfsファイルシステムのエクスポート、スナップショット、raidz(= raid5)ブロックのチェックサム、動的なストライプ幅、キャッシュ管理など。私はzfsに投票します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.