バックアップシナリオでrsnapshotと比較してbtrfsスナップショットを使用すると、どのような利点がありますか? [閉じる]

バックアップシナリオでrsnapshotと比較してbtrfsスナップショットを使用すると、どのような利点がありますか? [閉じる]

現在私はrsnapshotを使用して暗号化されたext4ドライブから別のドライブにデータをバックアップします。私のシステムは各ドライブでLUKSコンテナを開き、毎時間スケジュールに従ってrsnapshotを実行します。私はbtrfsの組み込みスナップショット機能に興味があり、それが私の現在の設定の代わりに使用できるかどうか疑問に思います(もちろんドライブを再フォーマットすると仮定します)。私が認識していない明らかな問題はありますか? btrfsを使用して現在の設定を改善できますか?たとえば、より速いですか?

ベストアンサー1

btrfsは、従来のファイルシステムよりも遅くする多くの機能(エラー検出と修正、透明な圧縮、スナップショット、サブボリュームなど)を備えた記録中のコピーファイルシステムです。

ただし、btrfsスナップショットは非常に軽量で、作成に時間がかかりません。 (または)を使用することは、btrfs send ... | btrfs receive送信者と受信者のファイルを比較する必要があるか、または他の方法を使用するよりもはるかに高速ですbtrfs send | ssh remote_host btrfs receiversyncrsnapshot

あるスナップショットと別のスナップショットとの間の正確な違いがわかっているので(スナップショットに固有の)、変更されたブロックを連続バイナリストリームとして受信者に送信できるため、スナップショットを送信するときにこれらのファイルを比較する必要はありません。 - 比較する必要はありません。ファイルタイムスタンプまたは内容。

つまり、ファイルシステム全体のパフォーマンスは遅くなりますが、バックアップも遅くなります。たくさん急いで。

私が使っているのzfsは、btrfsスナップショットと送受信メカニズムが非常に似ていることです。バックアップからバックアップrsyncに切り替えたとき、増分zfs sendバックアップの実行時間が数時間から数分に短縮されました。

ローカルネットワーク上のすべてのコンピュータをプライマリファイルサーバーの「バックアップ」プールにバックアップします。rsynccronが翌日バックアップをトリガするまで、バックアップは完了しません。複数のバックアップが常に実行され、サーバーのパフォーマンスが悪く、利用可能な状態に戻すには、継続的な手動介入(主にrsyncプロセスの終了)が必要でした。利用可能なファイルサーバーへの切り替えとzfs send使用できないファイルサーバーへの切り替えの違い今、それについてほとんど考える必要はありません。ただ働きます。最大1〜2年間、バックアッププールから古いスナップショットを削除します(バックアップしているホストではスナップショットを積極的に自動的に期限切れにしますが、バックアッププールではそれほど積極的ではありません)。これを許可する場合は、バックアッププールが必要な場合があります。長い間、百万または二つのスナップショットを撮影しました。

現在の設定を上書きできるかどうかについては、2つのbtrfsプールを持つbtrfsテストVMを作成し、スナップショットを撮って1つのプールから別のプールに送信することをお勧めします。または、複数のテスト仮想マシンをbtrfs send通過することもできますssh

btrfsスナップショットとbtrfsの送受信の仕組みに非常に慣れて慣れるまで、移行はお勧めできません。

実際にZFS VMもいくつか作り、違いを感じてみてください。

仮想マシンは、使用するかどうかを決定する前に新しいものを試すのに適しています。文書を読むことは不可欠ですが、何がどのように機能するのかを本当に理解したい場合は、手を汚すのと同じくらい良いことはありません。


しかし、ワークロードによっては、透明な圧縮は、btrfsやZFSなどのファイルシステムを使用することと、ext4やxfsなどのより伝統的なファイルシステムを使用することとの間のパフォーマンスの低下を大幅に相殺する可能性があります。

  • fs パフォーマンスが唯一または最も重要なものである場合は、使用してくださいxfs。これまではこれが確かな勝者です。

  • スナップショット、スナップショットの送受信、圧縮、ECC、サブボリュームなどが必要な場合は、ZFSまたはbtrfsを使用してください。

  • IMO、ZFSの代わりにbtrfsを使用する唯一の実際の理由は、btrfsがメインラインLinuxカーネルにある一方、ZFSはCDDLとGPL間のライセンスの競合のために光を見ることができないからです。 ZFSの場合は、カーネルモジュールをコンパイルしてインストールする必要があります。これは zfs-dkms モジュールを使うととても簡単です。

  • Ubuntuを使用している場合は、すぐにZFSを使用でき、ライセンスの問題はそれほど大きな問題ではないと思います。 IMOではそれについて間違っていましたが、Oracleが訴える可能性はほとんどありません。

  • また、LUKSを使用しているので、興味があるのは、ZFSにすべてのデータセット(btrfs用語の「サブボリューム」。LVM用語の組み合わせLV +ファイルシステムに似ている)を暗号化するオプションがあることです。私はLUKSやZFSで暗号化を使ったことがないので、どのように比較されるのかお話できません。

  • 今ext4を使用する理由はあまりありません。ただし、ほとんどのディストリビューションでこれがデフォルト値である点を除けばです。利点もなく、あえて使用する理由もありません。

  • 最後に、ZFS重複排除の誘惑に陥らないでください。これは理論的には良い考えのようですが、実際には重複排除テーブルをRAMに保存する必要があるため、より安価なドライブの必要性を減らし、高価なRAMに置き換えることができます。いくつかの特別なユースケース(例:数百または数千の同じ仮想マシンイメージの実行)の場合、これは悪い取引です。 RAMは、プログラムの実行やディスクのキャッシュによく使用されます。

おすすめ記事