80Gハードドライブを1日1Gずつバックアップ

80Gハードドライブを1日1Gずつバックアップ

80G の HD を安全にバックアップしたいのですが、完全なバックアップには時間がかかり、マシンの速度も低下するため、1 日あたり 1G だけバックアップしたいと思っています。詳細:

% 最初のハードル: 初日に、ハード ドライブの「最初の」 1G をバックアップします。もちろん、ハード ドライブに「最初の」 1G は実際には存在しません。

% 80 日後には、HD 全体のバックアップが完了することになります...ただし、ファイルはまったく変更されないと仮定した場合ですが、もちろん変更されることもあります。したがって、バックアップ プラン/プログラムは、ファイルの作成/変更も随時捕捉する必要があります。

% バックアップは、バックアップを順番に復元することでシステムを復元できるという点で、一貫性がなければなりません。つまり、「dd if=/harddrive」はおそらく機能しません。

% バックアップではファイルの内容と名前を暗号化する必要がありますが、これは大きな障害とは考えていません。

% バックアップが完了したらすべて(変更されたファイルであっても)、ハード ドライブの最初の 1G を再バックアップできます。このバックアップは冗長ですが、常に何かをバックアップしておきたいので問題ありません (たとえば、光学メディアにバックアップする場合、古いメディアが破損し始める可能性があります)。

これを実行する魔法のバックアップ プラン/プログラムはありますか?

実際には、複数のドライブを搭載した複数のマシンに対してこれを実行したいのですが、上記の問題を解決すれば一般的なケースは解決されると思います。

答え1

問題

私は rsync に精通しており、他のツールと一緒に rsync を使用して、必要な機能を実行する Perl スクリプトを作成しようとしました。ただし、rsync だけでは必要な機能を実行できません。残念ながら、ファイルがわずかに変更されると、ファイルの暗号化バージョンが大きく変更されるため、rsync は単一のファイルに対してもうまく機能しません。

解決?

rsynccrypto は、rsync に適した方法でファイルを暗号化するユーティリティです。rsynccrypto アルゴリズムにより、ほぼ同じ 2 つのファイルを rsynccrypto と同じキーで暗号化すると、ほぼ同じ暗号化ファイルが生成されます。これにより、rsync によってオーバーヘッドの少ないデータ転送が実現され、機密データを安全に転送してリモート ロケーションに保存するための暗号化が提供されます。

(からウィキペディア

また

Rsync と AES を使用したオフサイト暗号化バックアップ

答え2

クラッシュプラン無料で、必要なことはすべてできると思います。

答え3

使ってみる同期. 完全なバックアップを 1 回実行する必要がありますが、その後は変更されたファイルの圧縮された tarball を毎日移動するだけで済みます。Google で少し検索すると、これを実現するためのシェル スクリプトが多数見つかります。また、Windows で Rsync を実装したものも非常にうまく機能します。

答え4

サポートされているファイルシステムを使用している場合(または切り替えても構わない場合)、スナップショット(*) 1日あたり1GBのバックアップは非常に簡単です。

  • ローカルディスクの現在の状態のスナップショットを取得する
  • 毎日、そのスナップショットの 1 GB をオフサイトのリモート マシンにバックアップします (「--encrypt」オプションと「--split-size 1g」オプションを指定した「zip」を使用することもできます)
  • 完全なスナップショットがバックアップされたら、ローカル スナップショットを破棄します。

最初のスナップショットをバックアップした後は、まったく同じ方法で新しいスナップショットを作成し続けることができます。しかし、次の方法の方がより短時間でまったく同じ結果が得られると思います。

  • リモート マシンでコピー コマンドを実行し、最新の完全なスナップショットをコピーして、新しいスナップショットの下書きを作成します。
  • ローカルディスクの現在の状態の最新のスナップショットを取得します
  • --bwlimit を 1 GB/日に設定した rsyncryto (RedGrittyBrick さん、ありがとうございます) を使用すると、リモートの下書きを新しいスナップショットの正確なコピーに変更できるようになります。

(*) 「スナップショットをサポートする」とは、(a) システムスナップショットをサポートする仮想マシン内で実行するか、(b) ext3cow、btrfs、ZFS、またはスナップショットをサポートするその他のファイルシステムを使用することを意味します。私が知っているものはすべて、「ファイルシステムの比較" 記事。

関連情報