4 ポイント 投稿者 GN⁺ 2024-10-02 | 1件のコメント | WhatsAppで共有
  • 2.0.0b11 ベータは新しいリポジトリのテスト専用であり、本番利用は禁止
  • Borg 2.0 は既存リポジトリと互換性のない breaking release で、borg 1.2/1.4 リポジトリのアーカイブを新しい borg 2.0 リポジトリへ移すには borg transfer の使用が必要
  • borg transfer の使用前に borg >= 1.2.6 または CVE-2023-36811 修正が適用された borg へアップグレードし、manifest および archive TAM 関連のアップグレード手順を実施する必要
  • Borg リポジトリに rclone:// URL サポートを追加し、Amazon S3、Backblaze B2、Ceph、Dropbox、Google Cloud Storage、Google Drive、Microsoft Azure、Microsoft OneDrive、OpenStack Swift、sftp、SMB/CIFS、WebDAV など、70以上のクラウドストレージ製品 を利用可能
  • 同一クライアントの同一リポジトリで 並列処理 をサポート
  • Archive series 機能を追加し、NAME は同名アーカイブのシリーズを識別し、特定の単一アーカイブは aid:<archive hash> で識別
  • コマンドライン構文の変更により、スクリプトとラッパーの修正が必要: リポジトリは通常 BORG_REPO または borg -r <MYREPO> <COMMAND> で指定し、repo::archive 形式は未使用
  • scp スタイルのリポジトリ構文を削除し、ssh:// URL の使用が必要
  • 一部のリポジトリ/アーカイブ兼用コマンドは分離または改名: borg initborg repo-create、リポジトリ操作は borg repo-*、アーカイブ操作は borg create NAMEborg list IDborg extract ID などを使用
  • --glob-archives--match-archives に改名され、id:sh:re: パターンスタイルをサポートし、デフォルト値は同一文字列マッチの id:
  • platformdirs 3.x.x の使用により、macOS と Windows では XDG_*_HOME が適用されず、macOS のデフォルト config/cache ディレクトリは ~/Library/Application Support/borg/ に変更
  • --remote-ratelimit--numeric-owner--nobsdflags--noatime--save-space--bypass-lockborg config を削除
  • --list--progress の同時使用は --log-json の例外を除いて禁止
  • 高レイテンシのリポジトリで不要な repository.list() 呼び出しを削除したことで borg checkcompact の性能が改善し、リポジトリ内の chunks index キャッシュにより b10 比で大半のコマンドの高レイテンシリポジトリ性能が改善
  • ファイルキャッシュにおけるまれな データ損失の可能性がある race condition を修正
  • ファイルキャッシュ項目が ctimemtime の両方を保持し、同じ archive series の前のアーカイブからファイルキャッシュを再構築可能
  • ファイルキャッシュを archive series ごとに分離し、RAM 使用量を削減
  • 意味のない一部オプションの重複指定が禁止され、以前は動作していたスクリプトが失敗する可能性あり

1件のコメント

 
GN⁺ 2024-10-02
Hacker Newsの意見
  • BorgBackupを使っていて、かなり満足している
    一度設定しておけば忘れていてもいいレベルで、7年たった今でも重複排除バックアップが毎週問題なく動いている
    内部のBorgバックアップの複雑さを減らしてくれるborgmaticと一緒に使うのをおすすめする: https://github.com/borgmatic-collective/borgmatic

    • デスクトップ環境を使っていてGUIを好むなら、Vortaも相性がよかった
      https://vorta.borgbase.com/
    • こういうツールは学んで設定しておくと本当に忘れてしまい、後になって思い出すのが面倒でバックアップ検証を避けるようになる
      なので、だんだんrsyncやGUIフロントエンドのあるツールのほうに傾いている
    • 「設定して忘れた」が7年なら、ときどきはバックアップ復元の検証をしていることを願う
    • まともなAndroidクライアントがあるのか気になる
  • 今は単にrcloneだけで自分のリモートマシンにバックアップしているが、専門的な解決策ではないのは明らか
    Backblaze B2をリモート先として追加しようかと思ったが、rcloneだけを使うのは現代的なバックアップ方式とは言いにくそう
    rcloneは厳密にはバックアップツールではないし、暗号化機能もあるにはあるが少し粗い
    きちんとしたバックアップツールなら、データを適切なサイズのブロックに分割し、S3/B2 APIに合わせてファイル単位そのままにするのではなく必要に応じてディレクトリをtarでまとめてリンクを保持し、重複排除のような昔から確立されたベストプラクティスを処理すべきだと思う
    おすすめできるツールがあるのか気になる
    resticとduplicatiを少し見たが、専用バックアップツールなら期待するほど単純ではなかった
    GUIは不要で、むしろ望んでおらず、すべての設定が単一の設定ファイルに入り、他のデータのように別の場所へバックアップして新しいマシンで再現できるとよい
    さらに大きな問題は、こうしたツールがインデックスを壊してデータを復旧できなくなったという怖い事例を見た点で、バックアップツールならどんな状況でも絶対にそうなってはいけない中核領域なので納得しがたい

    • 設定を単一ファイルのように扱いたいなら、kopiaを見る価値がある
      resticと同じ役割を果たすが、設定の扱い方がより気に入るかもしれない
      追加参考: https://news.ycombinator.com/item?id=34154052
      duplicatiはあえて試さないほうがよい
      何度もちゃんと使おうとしたが、いつも失敗するバグだらけで、インターフェースは気に入っていたのでなおさら残念
    • rpiでバックアップを試そうとしてBorgが遅すぎて使えないと感じて以来、bupstashを使っている
      その後ホームサーバーをちゃんとした機材にアップグレードしたが、概してよりうまく動くのでbupstashを使い続けている
      ただし最後のリリースが2年前で、作者がまだベータと表示している点は考慮すべき
      それでも作者の品質基準は、他の「ベータではない」プロジェクトより高いほうに思える
      有用なバックアップツール比較: https://github.com/deajan/backup-bench
    • 単純かどうかはユースケース次第だが、borgは素晴らしかった
      ドキュメントのクイックスタート案内に沿ってみることをおすすめする
      重複排除と暗号化に対応し、機能ははるかに多いが、必要なければ使わなくてもよい
      borgmaticと併用して、データ損失リスクを減らすバックアップおよび災害復旧手順を構成している
      borgbaseも良いサービスだが、borgbaseの付加機能が不要なら、rclone対応を活用してB2のようなところを使うほうが安くなるかもしれない
      個人プロジェクトと有償の仕事の両方でかなり長く使ってきており、経験は良好だった
    • restic + autorestic/resticprofileの組み合わせを使っている
      Borg 2はまだベータで、Kopiaも似たような位置にある
      Kopiaはより新しいツールなので、同じマシン上の別の重複バックアップでテスト中で、容量もあるのであえてやらない理由もない
      ときどきデータも含めて整合性チェックを走らせ、メタデータとデータが問題ないと信頼できるようにしている
    • ResticでBackBlaze B2にバックアップしていて非常に満足している
      「設定ファイル」は実際には、リポジトリの場所などの環境を設定し、必要なバックアップを実行し、保持ポリシーに沿ったpruneコマンドを実行するシェルスクリプト
      この構成を数年にわたってうまく使っている
      全体復元はしたことがないが、個別のファイルとディレクトリの復元は問題なかった
      インデックス破損問題に関連するリンクがあるのか気になる
      自分で経験したことはないが、サンプル1件だけでは当然大きな意味はない
  • Borg用rcloneバックエンドを以前からずっと作りたかった
    しかしv1ではバックエンド抽象化が十分うまくできておらず、簡単に作るのは難しかった
    v2ではThomas Waldmannが良い抽象インターフェースを作ってくれていて、rcloneコードはPython 300行未満で済み、1日か2日の午後で作れた
    https://github.com/borgbackup/borgstore/blob/master/src/borg...

  • 非常に興味深い
    特にオブジェクトストレージの人気が高まりコストが下がる中で、長らく要望されていた機能
    Borgがオブジェクトストレージと一緒に動くことは公式サポートではなかったが、一部ではそう使っていた
    理解している限りでは、多くの場合Borgに直接書かせたり操作させたりするより、リポジトリを複製してからアップロードしていたが、元のリポジトリが破損しているとその破損まで複製される可能性があり問題になる
    今回の対応ではるかに簡単になり、ワークフローも単純になりそう
    特定のサービスではなくrclone対応を選んだのは、より賢く将来志向の選択に見える

  • 関連記事
    Borg 2.0 beta (deduplicating backup program with compression and encryption) - https://news.ycombinator.com/item?id=40990425 - 2024年7月
    Borgctl – borgbackup without bash scripts - https://news.ycombinator.com/item?id=39289656 - 2024年2月
    BorgBackup: Deduplicating archiver with compression and encryption - https://news.ycombinator.com/item?id=34152369 - 2022年12月
    Emborg – Front-End to Borg Backup - https://news.ycombinator.com/item?id=30035308 - 2022年1月
    Deduplicating Archiver with Compression and Encryption - https://news.ycombinator.com/item?id=27939412 - 2021年7月
    BorgBackup: Deduplicating Archiver - https://news.ycombinator.com/item?id=21642364 - 2019年11月
    Borg – Deduplicated backup with compression and authenticated encryption - https://news.ycombinator.com/item?id=13149759 - 2016年12月
    BorgBackup (short: Borg) is a deduplicating backup program - https://news.ycombinator.com/item?id=11192209 - 2016年2月

  • BorgとResticの最新の比較があるのか、あるいはResticからBorgへ移るだけの説得力のある理由があるのか気になる
    以前はBorgを使っていたが、ローカルファイルやssh以外のバックエンドを使えない点が問題だった
    Resticが圧縮をサポートし始めた頃にResticへ移行した
    複数のサーバーをS3互換ストレージプロバイダーへバックアップする自分の用途では、今ではResticとBorgはほぼ同等に見える
    壊れていないものを直したいわけではないが、Resticを使うことでBorgと比べて何を逃しているのかも知りたい

    • resticのほうが理解しやすく使いやすいので好んでいる
      そのほうが実際にバックアップが行われる
      絶えず変わっている感じも少ない。バックアップソリューションに、途切れない新機能の流れを求めたことはない
  • 安価なオンラインバックアップストレージを探しているなら、Microsoft 365 SingleのサブスクリプションにOneDrive 1TBが含まれる点は知っておく価値がある
    Familyサブスクリプションは1人あたり1TB
    ここ数年、restic + rcloneの組み合わせで問題なく使っている
    速くはないが動作する

    • Hetznerのstorage box製品も見てみる価値がある
      SSHでアクセス可能な1TBストレージが月4ユーロなので、なかなか勝てない
  • 個人用途で通常のrsyncの代わりにBorgを勧めるべきタイミングはいつなのか気になる
    今はドライブ上のディレクトリ群を別のドライブとリモートサービス(rsync.net)にrsyncでバックアップしている
    うまく動作しているが、自分の用途が単純だからこの解決策で十分なのか、Borgの大きな利点を見逃しているのか確信が持てない
    Borgの暗号化はうらやましいが、新しいツールの複雑さと、もしかすると自分がデータを壊してしまうかもしれないという不安のせいで、簡単には移行できない
    バックアップ対象のデータは現在約5TB程度で、それほど多くはない

    • 自分の場合、重複排除と圧縮でストレージ容量を大きく節約できている
      メールバックアップは直近6か月分の17個のバックアップが元は837GBだったが、圧縮後は312GB、重複排除後は19GBになった
      Postgresも25GBから7GB、さらに900MBまで減った
      メールバックアップはrsyncのハードリンクでも容量を節約できるだろうが、特別な手入れなしでここまで小さくなるかは分からない
    • よくある問題は、ファイルを削除または破損させてから2日後にようやく気づいた場合、日次バックアップ1つでは役に立たないということ
      複数のスナップショットを持つことは非常に重要
      http://www.taobackup.com/ のような資料も参考になる
      rsyncはファイル数が多いと非常に遅く、名前が変わったファイルも処理できず再転送する
    • rsyncでは最後の状態だけを複製する
      Borgを使えば、作成されたすべてのバックアップを見られ、以前のスナップショットの任意の時点へ戻せる
      多くのバックアップソリューションにも当てはまる利点
      具体的には、誤ってファイルを削除し、その状態がrsyncされると、そのバックアップからはファイルを復元できない
      Borgなら可能
  • Borg の暗号化を rclone crypt より使うべき理由があるのか、あるいはその逆なのかが気になる

    1. https://borgbackup.readthedocs.io/en/2.0.0b11/quickstart.htm...
    2. https://rclone.org/crypt/
    • rclone crypt は Borg とあまり関係がない
      あるマシンから別のマシンへファイルをコピーするツールで、この場合はコピー前に暗号化する方式
      クラウドと一緒に使う rsync に近い
      Borg はバックアップのための別種のツール
      元のディレクトリを 1 つのリポジトリとして重複排除、暗号化、スナップショット、チェックサム、圧縮する
      ファイル単位ではなく データブロック 単位で動作する
      リポジトリ管理コマンドも含まれており、データ検索、スナップショットの整理やマージなどができる
      その後、リポジトリを任意の場所へ転送または同期するときに rsync/SSH や rclone のようなツールを使えばよい
      今では rclone がネイティブにサポートされているため、リポジトリをローカルとリモートの両方に置く必要なく、リモート先へ直接バックアップできる
    • このパッケージと Restic の違いも気になる
      効率性と暗号化の面でどう違うのか知りたい
    • 暗号化を有効にしたとき、重複排除がどれくらいうまく効くのか気になる
      rsync.net を見てみたが、妥当な方式の暗号化をサポートしていない点が残念だった
  • ここ数年 rsync.net に Borg バックアップを使っていて満足している
    force-command で ssh セッションに Borg を強制する機能をサポートしており、Borg にはバックアップ用 ssh キーが盗まれても削除を防げるオプションがある
    全体として、設定がそれほど苦痛ではないうえに堅牢な解法

    • 侵害されたホストが自分のバックアップを削除できないようにする解法を探していた
      言われているようにコマンドを強制すれば rsync.net で可能で、rsync.net のスナップショットも誤って削除してしまう状況を防ぐ保護策になる