メインコンテンツにスキップ ナビゲーションにスキップ フッターにスキップ
期間限定:デザインパートナープログラム。BUSINESSプランはずっと無料

デルタ転送

別のマシンへの最初のプッシュはすべてを転送します。以降のプッシュは変更されたブロックのみを転送します。自動的に。

デルタ転送

リポジトリを別のマシンへ2回プッシュします。最初のプッシュはすべてを転送します。2回目は変更分だけを転送します。同じコマンド、フラグなし、管理不要。そして信じなくていいように、プッシュの出力に転送量がそのまま表示されます。

チュートリアル動画

バイトではなくブロック

バイトではなくブロック

最初のプッシュの後、CLI は両マシンに同一の不変ベースイメージを保持します。次のプッシュはそのベースに対してブロックを比較し、差分だけを送信します。

ステップ1: ベースラインのプッシュ

rdc repo push --name my-app --machine <machine-name> --to <target-machine>

repositoryを2台目のマシンにプッシュします。最初のプッシュはイメージ全体を転送し、出力にその内容が表示されます。2 GB転送済み、(full)とマーク。デルタベースが両側に保持されます。

出力に明確に表示されます:2.0 GB transferred in 44.4s (full)。イメージ全体が転送され、両側に同じデルタベースが保持されました。

ステップ2: 少し変更する

rdc term connect --machine <machine-name> --repository my-app --command 'dd if=/dev/urandom of=delta-test.bin bs=1M count=50 status=none && ls -lh delta-test.bin'

repositoryに少量の新しいデータを書き込みます。

ステップ3: 差分をプッシュする

rdc repo push --name my-app --machine <machine-name> --to <target-machine>

同じコマンドで再度プッシュします。出力には、2 GBのイメージのうち共有ベースに対するdeltaとして約50 MBが転送されたと表示されます。変更されたブロックだけが転送されました。

同じコマンドで、まったく異なる出力:50.8 MB transferred in 5.7s (delta vs base ..., image 2.0 GB)。50メガバイト変更されたので、2ギガバイトのイメージのうち約50メガバイトが転送されました。

ステップ4: 数秒で同期完了

rdc repo list --machine <target-machine>

ターゲットマシンには更新されたrepositoryが保持されています。deltaのコストだけで同期されました。

両マシンが同じリポジトリを保持し、サイズではなく変更分のコストで更新されています。毎時間のマシン間バックアップが現実的になります。

明示的な制御が必要ですか?--delta-base <guid> で比較ベースを固定し、--strategy でブロックデルタアルゴリズムを選択できます。デフォルトは両方を自動で判断します。


次: ストレージ管理