web-dev-qa-db-ja.com

大きなファイルに対するrsync--block-sizeの効果は何ですか?

数テラバイトの大きなファイル(それぞれ500mbから1500mb)をrsync経由でバックアップサーバー(BULKストレージ)にバックアップしたいと思います。

このために、私は次のコマンドを使用します(@Gillesからの提案で更新されました):

rsync --stats --progress --ignore-existing --recursive --exclude ".*" /from/ /to

rsync --stats --progress  --archive --update --exclude ".*" /from/ /to 

私の転送速度は約40MB /秒です。この速度は、回線の他のサイトのBULKストレージシステムによって制限されていると思います。 (SSD-> 1000mbits/s->バルクストレージ)

主に大きなファイルをrsyncすることはわかっていますが、転送を高速化するためにブロックサイズを指定すると便利ですか?転送が高速化される場合、それはかなり多くなりますか?

3
CousinCocaine

--block-sizeは、rsyncのデルタ転送アルゴリズム、つまりブロックチェックサムに基づく部分転送アルゴリズムのパラメーターです。ローカルコピーを実行しているため、デルタ転送アルゴリズムは使用されないため、--block-sizeは無視されます。差分転送アルゴリズムは、rsyncが宛先側のすべてのファイルを読み取る必要があるため、ローカルコピーでより悪い結果をもたらします(これがデフォルトでオフになっている理由です)。これは、どちらかの側のディスクアクセスが、2つの側の間のネットワーク接続よりも大幅に高速である場合に役立ちます。

40MB /秒のファイルI/Oは、ファイルシステムのオーバーヘッドを考慮すると、約400Mb /秒のrawディスクI/Oです。双方がそれ以上のことを維持できると確信していますか?

通常、すべてのファイルモードを保持するには、rsync -aを使用する必要があります。バックアップには、必ず-aを使用してください。変更されていないファイルのコピーに時間を浪費しないように、-uフラグを追加します(-aに加えて:-uは、時間を保存しない場合は役に立ちません) 。