web-dev-qa-db-ja.com

btrfs対応のバックアップソリューション

今月は、Oracle ELでbtrfsが本番環境で14番(Linux 3.2からのfsckとスクラブの作業と合わせて)ヒットし、現在のバックアップソリューションを再利用して利用することを考えていました。 10TB未満の少量のデータに対してそれを行うことを考えていることに注意してください。これはかなり静的です(毎日1%未満しか変更されません)。つまり、SMB/SOHOバックアップソリューションです。

バックアップが行うべきこと:

  1. 本番サーバーでext [234]/XFS/JFSのLVMスナップショットを実行します
  2. rsync /バックアップサーバー上のbtrfsに変更されたデータを転送する
  3. btrfsファイルシステムのスナップショット
  4. 空き容量が少なくなったら古いスナップショットを削除する

長所:

  • すべてのファイルを簡単に利用でき、解凍やループマウントは不要
  • 過去のスナップショットも簡単に利用できます...
  • ...読み取り専用のSamba共有として共有できるようにする(シャドウコピーをサポート)
  • コピーオンライトのおかげで、スナップショットは最小限のスペースしか必要としません(変更のないスナップショットは、文字通りディスク上で数KiBしかかかりません)
  • 高いバックアップ整合性:ファイルのチェックサム、すべてのデータのスクラブ、組み込みの冗長性

質問:

  • コピーオンライトファイルシステムを認識している、または簡単に作成できるバックアップソリューション(Bacula、BackupPCなどの形式)はありますか?
  • または、自宅でrsyncソリューションを使用する必要がありますか?
  • バックアップ専用のZFSボックスを持つ人々は、Linuxマシンをバックアップするために何をしますか?
14
Hubert Kario

私は先週、似たようなものを探すために大規模な検索を行いました。 4つの手順すべてを実行する解決策は見つかりませんでした。 「 rsync to btrfs 」タイプのバックアップを試すホームユーザーからのブログが多数あり、主要なBtrfsウィキのすべてがBtrfsスナップショットの実行方法をカバーしています。

ローテーションBtrfsスナップショット のさまざまな方法を試みている人もかなりいます。ただし、ディスク容量に基づいてスナップショットをローテーションしたい最初の人はあなたです。私は btrfs-snap myselfを使って遊んでいます。これは、毎時、毎週、および毎月のスナップショットのセットを作成します。それはとても簡単です。

Dirvish プロジェクトは、多くの要件を満たしているようです。一部の開発者は DirvishとBtrfsを統合する を試みています。ただし、 Dirvishプロジェクトは少し行き詰まっているようです

この時点で、あなたは時代遅れです。

5

Avi Miller(彼のLinuxConf.AUでの話)によると、btrfsの送受信が行われています。ファイル内の変更を見つけるためにディレクトリを走査する必要がないため、rsyncよりも高速になります。ただし、まだリリース予定日があるかどうかはわかりません。

ただし、スナップショットなどの間で変更されたすべてのファイルを一覧表示するユーティリティがbtrfs-progsに組み込まれています。btrfsサブボリュームfind-new

3
borring

私はBackupPCと同様のOSバックアップシステムに取り組んでいます。私はこれについて考えました。私が実際にそれを実装するのを妨げているのは、サブボリューム間でハードリンクできないことです。サブボリュームのスナップショットのみを作成することもできます->バックアップクライアントごとに1つのサブボリューム。したがって、ファイルレベルの重複排除機能はこのアプローチと共存できません。そして、そのファイルレベルの重複排除は通常、多くのスペースを節約します。 1つのサーバーのみをバックアップしますか?

Btrfsにブロックレベルの重複排除があった場合、この問題はおそらく回避できますが、それでも通常は十分に遅いです...

その場合、そのようなアプローチはもちろん1つのファイルシステム(btrfs)との緊密な統合を伴うため、これはオプション機能である必要があります。

私はそのような牛の機能を追加することを考えているので質問しますが、上記の欠点があるため、どうすべきかわかりません。

編集: UrBackup は、Linuxカーネル> = 3.6(クロスボリュームreflinkサポートあり)での質問で説明されているようにバックアップをサポートします。 設定方法をご覧ください。

2
UrOni

私も同じような不満を抱えていたので、結局 snazzer と呼ぶスクリプトをいくつか作成しました。これらは共に、sshを介してスナップショット、プルーニング、測定、および転送を提供します(ただし、現在のところ、ローカルファイルシステムとの間で送受信することもできます)。測定値は、スナップショットパスのsha512sumおよびPGP署名のレポートにすぎません。まだリリースの準備ができていませんが、この早い段階でレビューする時間があれば、フィードバックをお待ちしています。

この時点ではCLIのみですが、多くのbtrfsサブボリュームがあるシステムで使いやすくするために少し時間がかかりました。通常、/var/cache/homeなどのサブボリュームが必要になる場合があります。スナップショットから除外するか、より積極的な剪定スケジュールを設定します。

プルーニングアルゴリズムは、一連のスナップショットとその日付の存在について純粋に判断を下すのではないかと思います。ディスク使用量の制約が満たされるまでプルーニングを続けるものは何もありません。どちらを最初に削除しますか?最初の1時間ごと、または1日ごとの数を減らしますか?おそらく、最も古いものを落とすでしょう。毎年ですか?デプロイメントが異なれば、優先順位も異なります。これが唯一のバックアップ階層(この場合、法的/保険の義務がある場合は、最も古いバックアップを削除しないでください)か、中間のバックアップ階層(この場合、年間のアーカイブを安全な場所にアーカイブしている可能性があります)かどうかはわかりません他の場所)。

いつかZFSサポートや相互運用性を追加する予定です。現時点で「ゼロ」の依存関係を強く望んでいるため、主にposix風のシェルとPerlで書かれています。ある時点で、よりクリーンなpython代替実装が維持されます。

1
csirac2

Btrfs wikiページ " 使用例 "はいくつかのツールをリストします: SnapBtr 、Snapper、btrfs-time-machine、UrBackup。

autosnap と呼ばれる組み込みツールの提案があります:

自動スナップ機能を使用すると、btrfsを構成して、定期的なスナップショットまたはイベントベースのスナップショットを取得し、さらにスナップショットを自動的に管理できます。

Autosnapは、スナップショットを取得するだけでなく、作成されたスナップショットの管理も行います。現時点では、autosnapを構成して、ファイルシステムの使用済みスペースに基づいてスナップショットを削除できます。

ただし、2013年10月の時点で、wikiは それについて述べています 「現在、autosnap機能はbtrfsのアップストリームバージョンには含まれていません。」

1
ignis