現在私はrsnapshotを使用して暗号化されたext4ドライブから別のドライブにデータをバックアップします。私のシステムは各ドライブでLUKSコンテナを開き、毎時間スケジュールに従ってrsnapshotを実行します。私はbtrfsの組み込みスナップショット機能に興味があり、それが私の現在の設定の代わりに使用できるかどうか疑問に思います(もちろんドライブを再フォーマットすると仮定します)。私が認識していない明らかな問題はありますか? btrfsを使用して現在の設定を改善できますか?たとえば、より速いですか?
答え1
btrfsは、従来のファイルシステムよりも遅くする多くの機能(エラー検出と修正、透明な圧縮、スナップショット、サブボリュームなど)を備えた記録中のコピーファイルシステムです。
ただし、btrfsスナップショットは非常に軽量で、作成に時間がかかりません。 (または)を使用することは、btrfs send ... | btrfs receive
送信者と受信者のファイルを比較する必要があるか、または他の方法を使用するよりもはるかに高速ですbtrfs send | ssh remote_host btrfs receive
。rsync
rsnapshot
あるスナップショットと別のスナップショットとの間の正確な違いがわかっているので(スナップショットに固有の)、変更されたブロックを連続バイナリストリームとして受信者に送信できるため、スナップショットを送信するときにこれらのファイルを比較する必要はありません。 - 比較する必要はありません。ファイルタイムスタンプまたは内容。
つまり、ファイルシステム全体のパフォーマンスは遅くなりますが、バックアップも遅くなります。たくさん急いで。
私が使っているのzfs
は、btrfs
スナップショットと送受信メカニズムが非常に似ていることです。バックアップからバックアップrsync
に切り替えたとき、増分zfs send
バックアップの実行時間が数時間から数分に短縮されました。
ローカルネットワーク上のすべてのコンピュータをプライマリファイルサーバーの「バックアップ」プールにバックアップします。rsync
cronが翌日バックアップをトリガするまで、バックアップは完了しません。複数のバックアップが常に実行され、サーバーのパフォーマンスが悪く、利用可能な状態に戻すには、継続的な手動介入(主に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は、プログラムの実行やディスクのキャッシュによく使用されます。
答え2
私は明らかな質問があると思います...
RSnapshotの理想的な構成は、あるディスクから別のディスクにコピーすることです。したがって、データディスクに問題が発生した場合は、別のバックアップから復元できます。また、バックアップボリューム(別のディスクなど)が同じサーバー上にある必要はなく、ネットワーク接続を介してRSnapshotを実行できます。
btrfsはすべて同じディスクまたはボリュームで発生します。すべてがfubarで発生し、それがすべてである場合はsolです。すべてが1つのディスクにあるのは良いことではありません。 raid5またはraid6を使用するのは良いスタートですが、火災、洪水、または特定の場所の他の「災害」だけでなく、raidで保護できない単純なファイルシステムの破損に対しても脆弱です。
rsnapshotがデータボリュームからデータを読み取り、どの接続方法でバックアップボリュームにデータを書き込むのにかかる時間ではなく、スナップショットプロセスが自動的に発生するため、btrfsは本質的に速いと思います。バックアップボリュームのディスクに配置されます。別のディスクですが、同じサーバー上にある場合は非常に高速ですが、RSnapshotがネットワーク経由で別の場所に転送されると、かなりの損失が発生する可能性があります。
Synology NASを使用すると、ファイルシステムの選択としてext4またはbtrfsが提供され、デフォルトではext4がより高速であると言われます。私は一般的にext4がbtrfsよりも速いと思いますが、重要なことは、違いが大きいかどうかにかかわらず、ファイルシステムをどのように使用するかです。