μ΄ λ¬Έμ λ #5μ νμΈλ λͺ©λ‘μ λνλ©λλ€. λ€λ½λ°© λ¬Έμ μ λλ€: https://github.com/jborg/attic/issues/103. μ¬κΈ°μ μ견μ μΆκ°ν΄μΌ νλμ§ μλλ©΄ μ¬κΈ°μ μ견μ μΆκ°ν΄μΌ νλμ§ νμ μ΄ μμμ΅λλ€.
λμνμ μ ννκΈ° μν΄ μΆκ°λ μ§μμ μλ λ¬Έμ λ‘ μμ²ν©λλ€. trickle
μ΄(κ°) μ΅μ
μΌλ‘ μΈκΈλμμ΅λλ€. μ¬λλ€μ borgκ° sshλ₯Ό ν΅ν΄ νμ΄νλ₯Ό μ¬μ©νκΈ° λλ¬Έμ μλνμ§ μμ κ²μ΄λΌκ³ λ§νμ΅λλ€. λ°λ©΄μ λ¬Όλ°©μΈμ μμΌμμ μλν©λλ€.
sshfsμ ν¨κ» borgλ₯Ό μ¬μ©νλ κ²½μ°(μ¦, rsync.netμ λ°±μ ), λ¬Όλ°©μΈμ μ¬μ©νλ κ²μ΄ μ λλ‘ μλν κ²μ΄λΌκ³ λ³΄κ³ νκ³ μΆμμ΅λλ€. ssh λ§μ΄νΈλ₯Ό μνν λ νΈλ¦¬ν΄μ νΈμΆν΄μΌ ν©λλ€. λ°λΌμ λμνμ 5Mbpsλ‘ μ ννλ €λ©΄ λ€μμ μ¬μ©ν©λλ€.
trickle -u 5000 sshfs username<strong i="11">@hostname</strong>: /path/to/mountpoint
borg create ...
νμ΄ν λ·°μ΄μ λνΌ μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νμ¬ λμνμ μ νν μ μμ΅λλ€.
μ΄μ λν λμ 견ν΄λ pvκ° νμν μμ
μ μννκ³ μλ μ νμ΄ μ½λμμ νμ μ¬μ΄ κ²μ μλκΈ° λλ¬Έμ(+ μ΄λ―Έ 볡μ‘ν μ€μ μ λ λ§μ 볡μ‘μ±μ μΆκ°νκΈ° λλ¬Έμ) borgμ λμν μ§μμ μΆκ°νλ κ²λ³΄λ€ pvλ₯Ό λ¬Έμννλ κ²μ΄ λ°λμ§νλ€λ κ²μ
λλ€. μ λμ€ μ² νμΌλ‘: ν κ°μ§λ§ μνλ©΄ λ©λλ€(κ·Έλ¦¬κ³ νμ΄ν, λλ νμ΄νλ₯Ό μ’μν©λλ€... ;)
μ°λΆν¬μ pipeviewer(pv)λ₯Ό μ€μΉνκ³ λ°λΉμμΌ κ°λ₯μ±μ΄ κ°μ₯ λμ΅λλ€. 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_RSH νκ²½μ μΆκ°νμμμ€.
export BORG_RSH='/usr/local/bin/pv-wrapper.sh ssh '
μ΄μ 보그λ λμνμ΄ μ νλ©λλ€. 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μ΅ 2μ²λ§
νμ΄ν λ·°μ΄ μμ΄:
μ§μ μκ°: 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 μ΄μ κ΄λ ¨λ νΉμ λ¬Έμ κ° μλ κ²½μ° μ λ¬Έμ μ μ€λͺ νμΈμ.
κ°μ₯ μ μ©ν λκΈ
νμ΄ν λ·°μ΄μ λνΌ μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νμ¬ λμνμ μ νν μ μμ΅λλ€.
μ΄μ λν λμ 견ν΄λ pvκ° νμν μμ μ μννκ³ μλ μ νμ΄ μ½λμμ νμ μ¬μ΄ κ²μ μλκΈ° λλ¬Έμ(+ μ΄λ―Έ 볡μ‘ν μ€μ μ λ λ§μ 볡μ‘μ±μ μΆκ°νκΈ° λλ¬Έμ) borgμ λμν μ§μμ μΆκ°νλ κ²λ³΄λ€ pvλ₯Ό λ¬Έμννλ κ²μ΄ λ°λμ§νλ€λ κ²μ λλ€. μ λμ€ μ² νμΌλ‘: ν κ°μ§λ§ μνλ©΄ λ©λλ€(κ·Έλ¦¬κ³ νμ΄ν, λλ νμ΄νλ₯Ό μ’μν©λλ€... ;)
μ°λΆν¬μ pipeviewer(pv)λ₯Ό μ€μΉνκ³ λ°λΉμμΌ κ°λ₯μ±μ΄ κ°μ₯ λμ΅λλ€.
sudo apt-get install pv
λνΌ μ€ν¬λ¦½νΈ μμ±: (
/usr/local/bin/pv-wrapper
μ μμ±νκ² μ΅λλ€)μλ£λμμ΅λλ€. BORG_RSH νκ²½μ μΆκ°νμμμ€.
export BORG_RSH='/usr/local/bin/pv-wrapper.sh ssh '
μ΄μ 보그λ λμνμ΄ μ νλ©λλ€. pvμ μ’μ μ μ μλ μ νμ μ¦μμμ λ³κ²½ν μ μλ€λ κ²μ λλ€.
pv -R $(pidof pv) -L 102400
λ©ν° ν λΌλ°μ΄νΈ λ°μ΄ν° μΈνΈλ₯Ό μ΄λνκ³ κ·Όλ¬΄ μκ° λμ λμνμ μ‘°μ ν΄μΌ νλ rsyncμ λμΌν μ€μ μ μ¬μ©νμ΅λλ€.
ν μ€νΈ:
κ° ν μ€νΈ μ μ μ격 μ μ₯μκ° μ κ±°λμμ΅λλ€.
μΆμ²: μ΄ 3μ΅ 2μ²λ§
νμ΄ν λ·°μ΄ μμ΄:
μ§μ μκ°: 5λΆ 8.50μ΄
νμΌ μ: 60
## wrapper:
pv -q -L 307200 | "$@"
μ§μ μκ°: 18λΆ 7.00μ΄
pv -q -L 102400 | "$@"
40λΆ ν μ€νμ΄ μ€μ§λκ³ μμ μ€ν μκ°μ μ½ 54λΆμ΄λ©° borg --progress μΆλ ₯μ μμκ³Ό μΈλΌμΈλμμ΅λλ€.
pipeviewerλ‘ μλ ν μ€νΈνμ§λ§ μλ μ ν μμ:
μ§μ μκ°: 6λΆ 29.38μ΄
μ΄ ν μ€νΈλ μ€νμ€ μ‘°κ±΄μμ μ€νλμ§ μμμΌλ―λ‘ λ€λ₯Έ μ¬μ©μκ° λμν κ°μ©μ±μ μν₯μ λ―ΈμΉ©λλ€.