私はバックアップシステムをできるだけ効率的に機能させようとしています-バックアップが必要なシステムのほとんどはLinuxのフレーバーであり、現在Ubuntu16.04.3サーバーにダンプして/ディスクに保存しています。 Ubuntu VMはHyper-V内で実行されており、ルートディスク用に.vhdxがあります。UbuntuOSはrsyncを実行して各本番サーバーに接続します。
とにかく、ルートディスクに保存するのではなく、バックアップファイルを毎日のスナップショットで動作できる新しいディスクと新しいファイルシステムに保存したいと思います。 Hyper-V(シンプロビジョニング、現在)で900GBのボリュームを作成し、VMに接続しました。そのため、現在、ディスクは、900GBの容量を持つフォーマットされていない/ dev/sddとしてUbuntuに表示されます。
次の要件をサポートする方法に関する提案を探しています。
私が必要としないもの:
私は過去にNexentaStorの形でZFSを使用しましたが、それはかなり巧妙でした。 RAID管理に加えて、取得したスナップショットは「/primary_volume/.zfs/snapshot_name」として自動的に利用可能であり、X日前のファイルを取得するのは非常に簡単でした。
ここでBTRFSの実装、またはおそらくLVMの実装を見ていますか?それとも、私にとってこの空白を埋める、パッケージ化されたすぐに使えるソリューションは他にありますか?
すべての基本的なオプションがあるように思えますが、検討する必要があると思う別のオプションがあります。これについては、もう少し詳しく説明します。スナップショット(btrfsとZFS)とデバイスマッパー/ LVMスナップショットをサポートする2つの一般的なファイルシステムがあります。
btrfsスナップショットは、既に使い慣れているZFSスナップショットと同様に機能します。 btrfs subvolume snapshot -r /mountpoint/data "/mountpoint/snapshots/$(date -Is)"
などを実行して作成すると、/mountpoint/snapshots/$(date -Is)
の下に表示されます。ファイルシステムのルート(/mountpoint
)を実行することもできます。これは正しく機能します。 btrfsでの私の経験は、この使用法で安定しています。また、トリムもサポートします。トリムは(他のすべてがサポートしている場合—私は個人的にHyperVを使用したことがないので、言うことはできません)使用されますが、スペースを解放してハイパーバイザーのシンプールに戻します。
LVM(デバイスマッパー)スナップショットは異なります—ブロックデバイスのスナップショットを作成します。従来のLVMスナップショットは、(書き込み時にコピーするために)パフォーマンスの低下を引き起こし、バックアップの使用に問題がある場合とない場合があります。新しいシンプールスナップショットもあり、その問題を回避します。これらはブロックデバイスレベルで動作するため、スナップショットを作成すると、新しいブロックデバイスが作成されます。スナップショットファイルにアクセスするには、このデバイスをマウントする必要があります。
どちらの方法でも、スナップショットを必要なだけ保持したり(ディスク容量が許す限り)、任意の順序で削除したりできます。スナップショットのサイズを小さくするには、rsync --inplace
も検討することをお勧めします。それらの間の選択を考えると—私はそれらがすべてうまくいくと思います、そしてあなたはおそらくあなた/あなたのチームが精通しているものを選ぶべきです。
他のアプローチ:現在、独自のバックアップシステムを作成しています。このようなハードディスクへのスペース効率の良いバックアップを行うことを目的としたものを含め、多くのバックアップシステムがすでに存在します。例としては、BackupPC、Bacula/Bareos(テープに重点を置いていますが、ディスクにも重点を置いています)、BorgBackup、restic、ZBackupなどがあります。 Arch Wikiの 同期およびバックアッププログラムのリスト を確認することをお勧めします。