Borg: 帯域幅制限のサポートを追加

作成日 2016年02月14日  ·  5コメント  ·  ソース: borgbackup/borg

この問題は、#5のチェックボックスリストに表示されます。 屋根裏部屋の問題です: https://github.com/jborg/attic/issues/103。 そこにコメントを追加するべきか、ここにコメントを追加するべきかわかりませんでした。


元の問題は、帯域幅を制限するためにサポートを追加することを要求しています。 trickleがオプションとして言及されました。 人々は、borgがsshを通るパイプを使用しているのに対し、trickleはソケットで機能するため、機能しない/機能しないと述べました。

sshfsでborgを使用している場合(つまり、rsync.netにバックアップしている場合)、trickleを使用すると正しく機能することを報告したいと思います。 sshマウントを実行するときは、トリクルを呼び出す必要があります。 したがって、帯域幅を5 Mbpsに制限するには、次を使用します。

trickle -u 5000 sshfs username<strong i="11">@hostname</strong>: /path/to/mountpoint
borg create ...
documentation

最も参考になるコメント

帯域幅の制限は、pipeviewerとラッパースクリプトを使用して実行できます。
私の考えでは、pvは必要なことを実行し、コードでレート制限を行うのは必ずしも簡単ではないため、borgに帯域幅サポートを追加するよりもpvを文書化する方が望ましいです(+すでに複雑なセットアップに複雑さが加わります)。 UNIX哲学では、1つのことを実行し、それをうまく実行します(そして、パイプ、私はパイプが好きです...;)

パイプビューアー(pv)をubuntuにインストールし、おそらくdebianをインストールします。 sudo apt-get install pv

ラッパースクリプトを作成します:( /usr/local/bin/pv-wrapperに作成します)

#!/bin/bash
     ## -q, --quiet              do not output any transfer information at all
     ## -L, --rate-limit RATE    limit transfer to RATE bytes per second
export RATE=307200
pv -q -L $RATE  | "$@"

これで、BORG_RSHenvを追加します
export BORG_RSH='/usr/local/bin/pv-wrapper.sh ssh '

これで、borgの帯域幅が制限されます。 pvの良いところは、レート制限をその場で変更できることです。
pv -R $(pidof pv) -L 102400

私はrsyncで同じセットアップを使用しました。ここでは、数テラバイトのデータセットを移動し、営業時間中に帯域幅を調整する必要がありました。

# example cron setup:
00 09 * * 1-5 root ( pidof pv > /tmp/.pv-pid && pv -R $(cat /tmp/.pv-pid ) -L  307200)
00 18 * * * root ( pidof pv > /tmp/.pv-pid && pv -R $(cat /tmp/.pv-pid ) -L  819200)

テスト:
各テストの前にリモートリポジトリが削除されました

出典:合計3億2000万
パイプビューアなし:
時間: 5分8.50秒
ファイル数:60

## wrapper:
pv -q -L 307200 | "$@"
時間: 18分7.00秒

pv -q -L 102400 | "$@"
40分後に実行を停止し、実行時間は約54分と予想され、borg--progressの出力は見積もりと一致していました。

pipeviewerを使用した元のテストですが、レート制限はありません。
時間: 6分29.38秒
このテストは実験室の条件では実行されなかったため、他のユーザーが帯域幅の可用性に影響を与えることに注意してください。

全てのコメント5件

帯域幅の制限は、pipeviewerとラッパースクリプトを使用して実行できます。
私の考えでは、pvは必要なことを実行し、コードでレート制限を行うのは必ずしも簡単ではないため、borgに帯域幅サポートを追加するよりもpvを文書化する方が望ましいです(+すでに複雑なセットアップに複雑さが加わります)。 UNIX哲学では、1つのことを実行し、それをうまく実行します(そして、パイプ、私はパイプが好きです...;)

パイプビューアー(pv)をubuntuにインストールし、おそらくdebianをインストールします。 sudo apt-get install pv

ラッパースクリプトを作成します:( /usr/local/bin/pv-wrapperに作成します)

#!/bin/bash
     ## -q, --quiet              do not output any transfer information at all
     ## -L, --rate-limit RATE    limit transfer to RATE bytes per second
export RATE=307200
pv -q -L $RATE  | "$@"

これで、BORG_RSHenvを追加します
export BORG_RSH='/usr/local/bin/pv-wrapper.sh ssh '

これで、borgの帯域幅が制限されます。 pvの良いところは、レート制限をその場で変更できることです。
pv -R $(pidof pv) -L 102400

私はrsyncで同じセットアップを使用しました。ここでは、数テラバイトのデータセットを移動し、営業時間中に帯域幅を調整する必要がありました。

# example cron setup:
00 09 * * 1-5 root ( pidof pv > /tmp/.pv-pid && pv -R $(cat /tmp/.pv-pid ) -L  307200)
00 18 * * * root ( pidof pv > /tmp/.pv-pid && pv -R $(cat /tmp/.pv-pid ) -L  819200)

テスト:
各テストの前にリモートリポジトリが削除されました

出典:合計3億2000万
パイプビューアなし:
時間: 5分8.50秒
ファイル数:60

## wrapper:
pv -q -L 307200 | "$@"
時間: 18分7.00秒

pv -q -L 102400 | "$@"
40分後に実行を停止し、実行時間は約54分と予想され、borg--progressの出力は見積もりと一致していました。

pipeviewerを使用した元のテストですが、レート制限はありません。
時間: 6分29.38秒
このテストは実験室の条件では実行されなかったため、他のユーザーが帯域幅の可用性に影響を与えることに注意してください。

よくある質問に追加できます。

pr#705を統合しました。

ここで古い問題をぶつけて、私は知っていますが、それはおそらくボルグに住むべきである何かのためのかなり複雑な回避策です。 さらに、ネットワーク、I / O、およびコンピューティングに個別のスロットリングオプションがあると便利です。

@ddevaultこれに関連する特定の問題がある場合は、新しい問題で説明してください。

このページは役に立ちましたか?
0 / 5 - 0 評価