btrfsをバックアップするだけ

さまざまなメディアデータを含むディスクでも、1年ほど使用していましたが、この素晴らしいファイルシステムの拡張機能は使用しませんでした。



しかし、更新がありました-2つの真新しいSSD、それはbtrfsへの切り替えと同時にシステムの転送中に決定されました。

ファイルシステムツールを使用したメタデータのRAID1データのRAID0、オンザフライ圧縮、1つのサブボリューム(サブボリューム)のルート、別のサブボリュームのホームフォルダー、3番目のWebサイトなど、すべてが正常です。 これらはすべて、GRUBやその他のブートローダーなしでUEFIからLinux EFIスタブに直接ロードされるため、迅速かつ便利に機能します。

それでスナップショットになったので、同じbtrfsドライバーを使用してバックアップサブボリュームにスナップショットを使用したかったのです。



検索により、いくつかの関連するソリューションが得られますが、一部のソリューションは扱いにくい(ネットワークを介したバックアップの同期、ある種のリポジトリ、ネストされたストリームなどの作成)ため、アーキテクチャを課し、他のソリューションでは適切なバックアップローテーションがありません(1つのみ指定できます)間隔とコピー数))。



決定が下された-新しいツールになる!



そして何が起こったのですか?



結果は、起動時に次の形式の単純なJSONファイルから構成を読み取る小さなPHPスクリプトです。



[ { "source_mounted_volume" : "/", "destination_within_partition" : "/backup/root", "date_format" : "Ym-d_H:i:s", "keep_snapshots" : { "hour" : 60, "day" : 24, "month" : 30, "year" : 48 } }, { "source_mounted_volume" : "/home", "destination_within_partition" : "/backup/home", "date_format" : "Ym-d_H:i:s", "keep_snapshots" : { "hour" : 120, "day" : 48, "month" : 60, "year" : 96 } } ]
      
      





また、指定されたパスにスナップショットを作成します。また、再起動すると、スナップショットの数を制御し、古いスナップショットを削除します。



指定された構成例では、/バックアップフォルダーを取得します。このフォルダー内には、ルートフォルダーとホームフォルダーのスナップショット用の個別のフォルダーがあります。 写真は読み取り専用に作成されているため、アクセス権が保持され、作成された写真を損傷する危険性のない写真に直接アクセスできます。



btrfsはCoW(書き込み時コピー)をサポートしているため、スナップショットが取得する場所は、最後のスナップショットから変更されたファイルの数とボリュームによって決まります。 スナップショットを削除すると、スナップショット内にのみ存在するすべてのファイルが削除され、空きスペースが解放されます。



合計すると、任意のイメージに即座にアクセスしてスペースを節約できます(ファイルシステムの圧縮が存在する場合、これは二重に当てはまります)。



計画



最後のスナップショットのダンプを(増分的に)別のbtrfsパーティションに追加します。そうしないと、完全バックアップではなく、タイムマシンになります。



パッケージをインストール/削除/更新する前に、スナップショットを作成するための設定をreadmeに追加する必要があります(ここでは、Ubuntuを使用しているため、コミュニティヘルプが必要になりますが、RPMなどのシステムでこれを行う方法はわかりません)。



deb / rpm /を作成するといいでしょうか? 人気のある(そうではない)ディストリビューション用のパッケージですが、以前にこれを行う必要はありませんでした。



何か他のことを教えてください:)



入手先



https://github.com/nazar-pc/just-backup-btrfs



記事と解決策が役立つことを願って、コメントでbtrfsを使用するためのレシピを共有してください。



All Articles