Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 4: ΠžΠ±Π·ΠΎΡ€ ΠΈ тСстированиС zbackup, restic, borgbackup

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 4: ΠžΠ±Π·ΠΎΡ€ ΠΈ тСстированиС zbackup, restic, borgbackup

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ срСдства для Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡƒΡ‚Π΅ΠΌ разбиСния ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (chunks), Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ рСпозитория ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π° самоС Π³Π»Π°Π²Π½ΠΎΠ΅ β€” ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… процСссах Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования β€” ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ.

РСзСрвная копия Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ β€” имСнованная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° связанных Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° основС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… hash-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π•ΡΡ‚ΡŒ нСсколько ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, я ΠΎΡΡ‚Π°Π½ΠΎΠ²Π»ΡŽΡΡŒ Π½Π° 3: zbackup, borgbackup ΠΈ restic.

ΠžΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄Π΅Π½Ρ‚Ρ‹ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ создания рСпозитория, ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ†Π΅Π½ΠΊΠ° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° рСпозитория. Π’ идСальном случаС Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 13 Π³Π± согласно принятой ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ΅, Π° Ρ‚ΠΎ ΠΈ мСньшС β€” ΠΏΡ€ΠΈ условии Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π’Π°ΠΊΠΆΠ΅ ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π±Π΅Π· примСнСния Π°Ρ€Ρ…ΠΈΠ²Π°Ρ‚ΠΎΡ€ΠΎΠ² Ρ‚ΠΈΠΏΠ° tar, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ssh/sftp Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… срСдств Π²Ρ€ΠΎΠ΄Π΅ rsync ΠΈ sshfs.

ПовСдСниС ΠΏΡ€ΠΈ создании Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ:

  1. Π Π°Π·ΠΌΠ΅Ρ€ рСпозитория Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΈΠ»ΠΈ мСньшС.
  2. ΠžΠΆΠΈΠ΄Π°Π΅Ρ‚ΡΡ большая Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° процСссор ΠΏΡ€ΠΈ использовании сТатия ΠΈ/ΠΈΠ»ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, Π° Ρ‚Π°ΠΊΠΆΠ΅ вСроятна достаточно большая Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° ΡΠ΅Ρ‚ΡŒ ΠΈ Π΄ΠΈΡΠΊΠΎΠ²ΡƒΡŽ подсистСму, Ссли процСсс Π°Ρ€Ρ…ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΈ/ΠΈΠ»ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° сСрвСрС хранСния Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ.
  3. Если ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ β€” вСроятна отлоТСнная ошибка ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ создании Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ восстановлСния. Надо ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ цСлостности рСпозитория ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС срСдства ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΅Π³ΠΎ цСлостности.

Π’ качСствС эталонного значСния принята Ρ€Π°Π±ΠΎΡ‚Π° с tar, ΠΊΠ°ΠΊ это Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… статСй.

ВСстированиС zbackup

ΠžΠ±Ρ‰ΠΈΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ zbackup Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ΄Π°Π²Π°Π΅ΠΌΠΎΠΌ Π½Π° Π²Ρ…ΠΎΠ΄Π΅, области, содСрТащиС ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π·Π°Ρ‚Π΅ΠΌ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΈΡ… сТимаСт, ΡˆΠΈΡ„Ρ€ΡƒΠ΅Ρ‚, сохраняя ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 Ρ€Π°Π·.

Для Π΄Π΅Π΄ΡƒΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 64-битная ΠΊΠΎΠ»ΡŒΡ†Π΅Π²Π°Ρ hash-функция со ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰ΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ для ΠΏΠΎΠ±Π°ΠΉΡ‚Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° совпадСниС с ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌΡƒ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² rsync).

Для сТатия примСняСтся lzma ΠΈ lzo Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΌ исполнСнии, Π° для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ β€” aes. Π’ послСдних вСрсиях присутствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ старыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· рСпозитория.
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° написана Π½Π° C++ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ зависимостями. Автор ΠΏΠΎ всСй видимости вдохновлялся unix-way, поэтому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° stdin ΠΏΡ€ΠΈ создании Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ, выдавая Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π² stdout ΠΏΡ€ΠΈ восстановлСнии. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, zbackup ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ вСсьма Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠΉ «ΠΊΠΈΡ€ΠΏΠΈΡ‡ΠΈΠΊ» ΠΏΡ€ΠΈ написании собствСнных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования. НапримСр, Ρƒ Π°Π²Ρ‚ΠΎΡ€Π° ΡΡ‚Π°Ρ‚ΡŒΠΈ эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° являСтся основным срСдством Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования для Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… машин ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ с 2014 Π³ΠΎΠ΄Π°.

Π’ качСствС ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ tar, Ссли Π½Π΅ сказано ΠΈΠ½Π°Ρ‡Π΅.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡŒ Π² 2 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Ρ…:

  1. создаСтся Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ запускаСтся zbackup Π½Π° сСрвСрС с исходными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΏΠΎΡ‚ΠΎΠΌ содСрТимоС рСпозитория пСрСдаСтся Π½Π° сСрвСр хранСния Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ.
  2. создаСтся Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° сСрвСрС хранСния Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ, запускаСтся zbackup Ρ‡Π΅Ρ€Π΅Π· ssh Π½Π° сСрвСрС хранСния Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ, Π΅ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· pipe Π²Ρ‹Π΄Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π±Ρ‹Π»ΠΈ Ρ‚Π°ΠΊΠΈΠ΅: 43m11s β€” ΠΏΡ€ΠΈ использовании Π½Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ рСпозитория ΠΈ компрСссора lzma, 19m13s β€” ΠΏΡ€ΠΈ Π·Π°ΠΌΠ΅Π½Π΅ компрСссора Π½Π° lzo.

Нагрузка Π½Π° сСрвСрС с исходными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π±Ρ‹Π»Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ (ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с lzma, с lzo Π±Ρ‹Π»Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ такая ΠΆΠ΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°, Π½ΠΎ доля rsync Π±Ρ‹Π»Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΡŒ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ):

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 4: ΠžΠ±Π·ΠΎΡ€ ΠΈ тСстированиС zbackup, restic, borgbackup

Ясно Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ процСсс Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования годится лишь ΠΏΡ€ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π΄ΠΊΠΈΡ… ΠΈ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… измСнСниях. Π’Π°ΠΊΠΆΠ΅ ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ zbackup Π² 1 ΠΏΠΎΡ‚ΠΎΠΊ, ΠΈΠ½Π°Ρ‡Π΅ Π±ΡƒΠ΄Π΅Ρ‚ вСсьма высокая Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΠΎ процСссору, Ρ‚.ΠΊ. ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° вСсьма Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Нагрузка Π½Π° диск Π±Ρ‹Π»Π° нСбольшой, Ρ‡Ρ‚ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ ΠΏΡ€ΠΈ соврСмСнной дисковой подсистСмС Π½Π° основС ssd Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ. Π’Π°ΠΊΠΆΠ΅ Ρ‡Π΅Ρ‚ΠΊΠΎ Π²ΠΈΠ΄Π½ΠΎ запуск процСсса синхронизации Π΄Π°Π½Π½Ρ‹Ρ… рСпозитория Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сравнима с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ rsync ΠΈ упираСтся Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дисковой подсистСмы сСрвСра хранСния Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ. ΠœΠΈΠ½ΡƒΡΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° являСтся Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ локального рСпозитория ΠΈ, ΠΊΠ°ΠΊ слСдствиС, β€” Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

Π‘ΠΎΠ»Π΅Π΅ интСрСсным ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ являСтся Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ с запуском zbackup сразу Π½Π° сСрвСрС хранСния Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ.

Для Π½Π°Ρ‡Π°Π»Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π±Π΅Π· использования ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ c компрСссором lzma:

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 4: ΠžΠ±Π·ΠΎΡ€ ΠΈ тСстированиС zbackup, restic, borgbackup

ВрСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ тСстового запуска:

Запуск 1
Запуск 2
Запуск 3

39m45s
40m20s
40m3s

7m36s
8m3s
7m48s

15m35s
15m48s
15m38s

Если Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ aes, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ достаточно Π±Π»ΠΈΠ·ΠΊΠΈ:

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 4: ΠžΠ±Π·ΠΎΡ€ ΠΈ тСстированиС zbackup, restic, borgbackup

ВрСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° Ρ‚Π΅Ρ… ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, с ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ:

Запуск 1
Запуск 2
Запуск 3

43m40s
44m12s
44m3s

8m3s
8m15s
8m12s

15m0s
15m40s
15m25s

Если ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ с сТатиСм Π½Π° lzo, Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ‚Π°ΠΊ:

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 4: ΠžΠ±Π·ΠΎΡ€ ΠΈ тСстированиС zbackup, restic, borgbackup

ВрСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹:

Запуск 1
Запуск 2
Запуск 3

18m2s
18m15s
18m12s

5m13s
5m24s
5m20s

8m48s
9m3s
8m51s

Π Π°Π·ΠΌΠ΅Ρ€ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ рСпозитория Π±Ρ‹Π» ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ² ΠΈ составлял 13Π³Π±. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ дСдупликация Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. Π’Π°ΠΊΠΆΠ΅ Π½Π° ΡƒΠΆΠ΅ сТатых Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ lzo Π΄Π°Π΅Ρ‚ ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΡ‹ΠΉ эффСкт, ΠΏΠΎ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ zbackup Π²ΠΏΠ»ΠΎΡ‚Π½ΡƒΡŽ приблиТаСтся ΠΊ duplicity/duplicati, ΠΎΠ΄Π½Π°ΠΊΠΎ отставая ΠΎΡ‚ основанных Π½Π° librsync Π² 2-5 Ρ€Π°Π·.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ β€” экономия дискового пространства Π½Π° сСрвСрС хранСния Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ. Π§Ρ‚ΠΎ касаСтся инструмСнтов ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ рСпозитория β€” Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ zbackup ΠΎΠ½ΠΈ Π½Π΅ прСдусмотрСны, рСкомСндуСтся ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ отказоустойчивый дисковый массив ΠΈΠ»ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€.

Π’ Ρ†Π΅Π»ΠΎΠΌ вСсьма Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠ΅ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 3 Π³ΠΎΠ΄Π° стоит Π½Π° мСстС (послСдний feature request Π±Ρ‹Π» ΠΎΠΊΠΎΠ»ΠΎ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄, Π½ΠΎ Π±Π΅Π· ΠΎΡ‚Π²Π΅Ρ‚Π°).

ВСстированиС borgbackup

Borgbackup являСтся Ρ„ΠΎΡ€ΠΊΠΎΠΌ attic, Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ, схоТСй с zbackup систСмы. Написан Π½Π° python, ΠΈΠΌΠ΅Π΅Ρ‚ схоТий с zbackup список возмоТностСй, Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚:

  • ΠœΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· fuse
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ содСрТимоС рСпозитория
  • Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ компрСссоры для Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ эвристичСскоС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈ Π΅Π³ΠΎ компрСссии.
  • 2 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, aes ΠΈ blake
  • ВстроСнноС срСдство для

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

borgbackup benchmark crud ssh://backup_server/repo/path local_dir

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Ρ‚Π°ΠΊΠΈΠ΅:

C-Z-BIG 96.51 MB/s (10 100.00 MB all-zero files: 10.36s)
R-Z-BIG 57.22 MB/s (10
100.00 MB all-zero files: 17.48s)
U-Z-BIG 253.63 MB/s (10 100.00 MB all-zero files: 3.94s)
D-Z-BIG 351.06 MB/s (10
100.00 MB all-zero files: 2.85s)
C-R-BIG 34.30 MB/s (10 100.00 MB random files: 29.15s)
R-R-BIG 60.69 MB/s (10
100.00 MB random files: 16.48s)
U-R-BIG 311.06 MB/s (10 100.00 MB random files: 3.21s)
D-R-BIG 72.63 MB/s (10
100.00 MB random files: 13.77s)
C-Z-MEDIUM 108.59 MB/s (1000 1.00 MB all-zero files: 9.21s)
R-Z-MEDIUM 76.16 MB/s (1000
1.00 MB all-zero files: 13.13s)
U-Z-MEDIUM 331.27 MB/s (1000 1.00 MB all-zero files: 3.02s)
D-Z-MEDIUM 387.36 MB/s (1000
1.00 MB all-zero files: 2.58s)
C-R-MEDIUM 37.80 MB/s (1000 1.00 MB random files: 26.45s)
R-R-MEDIUM 68.90 MB/s (1000
1.00 MB random files: 14.51s)
U-R-MEDIUM 347.24 MB/s (1000 1.00 MB random files: 2.88s)
D-R-MEDIUM 48.80 MB/s (1000
1.00 MB random files: 20.49s)
C-Z-SMALL 11.72 MB/s (10000 10.00 kB all-zero files: 8.53s)
R-Z-SMALL 32.57 MB/s (10000
10.00 kB all-zero files: 3.07s)
U-Z-SMALL 19.37 MB/s (10000 10.00 kB all-zero files: 5.16s)
D-Z-SMALL 33.71 MB/s (10000
10.00 kB all-zero files: 2.97s)
C-R-SMALL 6.85 MB/s (10000 10.00 kB random files: 14.60s)
R-R-SMALL 31.27 MB/s (10000
10.00 kB random files: 3.20s)
U-R-SMALL 12.28 MB/s (10000 10.00 kB random files: 8.14s)
D-R-SMALL 18.78 MB/s (10000
10.00 kB random files: 5.32s)

ΠŸΡ€ΠΈ тСстировании Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ эвристика ΠΏΡ€ΠΈ компрСссии с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»Π° (compression auto), Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚Π°ΠΊΠΈΠ΅:

Для Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π±Π΅Π· ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ:

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 4: ΠžΠ±Π·ΠΎΡ€ ΠΈ тСстированиС zbackup, restic, borgbackup

ВрСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹:

Запуск 1
Запуск 2
Запуск 3

4m6s
4m10s
4m5s

56s
58s
54s

1m26s
1m34s
1m30s

Если Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ рСпозитория (Ρ€Π΅ΠΆΠΈΠΌ authenticated), Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ получатся Π±Π»ΠΈΠ·ΠΊΠΈΠΌΠΈ:

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 4: ΠžΠ±Π·ΠΎΡ€ ΠΈ тСстированиС zbackup, restic, borgbackup

ВрСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹:

Запуск 1
Запуск 2
Запуск 3

4m11s
4m20s
4m12s

1m0s
1m3s
1m2s

1m30s
1m34s
1m31s

ΠŸΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ aes Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π½Π΅ сильно ΡƒΡ…ΡƒΠ΄ΡˆΠΈΠ»ΠΈΡΡŒ:

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 4: ΠžΠ±Π·ΠΎΡ€ ΠΈ тСстированиС zbackup, restic, borgbackup

Запуск 1
Запуск 2
Запуск 3

4m55s
5m2s
4m58s

1m0s
1m2s
1m0s

1m49s
1m50s
1m50s

А Ссли ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ aes Π½Π° blake, ситуация вовсС ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡΡ:

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 4: ΠžΠ±Π·ΠΎΡ€ ΠΈ тСстированиС zbackup, restic, borgbackup

ВрСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹:

Запуск 1
Запуск 2
Запуск 3

4m33s
4m43s
4m40s

59s
1m0s
1m0s

1m38s
1m43s
1m40s

Как ΠΈ Π² случаС с zbackup, Ρ€Π°Π·ΠΌΠ΅Ρ€ рСпозитория составил 13Π³Π± ΠΈ Π΄Π°ΠΆΠ΅ Ρ‡ΡƒΡ‚ΡŒ мСньшС, Ρ‡Ρ‚ΠΎ, Π² Ρ†Π΅Π»ΠΎΠΌ, ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎ. Π’Π΅ΡΡŒΠΌΠ° ΠΏΠΎΡ€Π°Π΄ΠΎΠ²Π°Π»ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΎΠ½ΠΎ сравнимо с Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ Π½Π° основС librsync, обСспСчивая Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ€Π°Π΄ΠΎΠ²Π°Π»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ задания Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ вСсьма ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠ΅ прСимущСство ΠΏΡ€ΠΈ использовании borgbackup Π² автоматичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ€Π°Π΄ΠΎΠ²Π°Π»Π° Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΡ€ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΌ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ: судя ΠΏΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ процСссора β€” borgbackup Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² 1 ΠΏΠΎΡ‚ΠΎΠΊ.

ΠžΡΠΎΠ±Ρ‹Ρ… минусов ΠΏΡ€ΠΈ использовании Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΎΡΡŒ.

ВСстированиС restic

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ restic достаточно Π½ΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ (ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 2 ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π° Π±Ρ‹Π»ΠΈ извСстны Π΅Ρ‰Π΅ с 2013 Π³ΠΎΠ΄Π° ΠΈ ΡΡ‚Π°Ρ€ΡˆΠ΅), ΠΎΠ½ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ достаточно Π½Π΅ΠΏΠ»ΠΎΡ…ΠΈΠΌΠΈ характСристиками. Написан Π½Π° Go.

Если ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ с zbackup, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π°Π΅Ρ‚:

  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ цСлостности рСпозитория (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΏΠΎ частям).
  • ΠžΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ список ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² для хранСния Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ rclone β€” rsync для «ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ…» Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.
  • Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ 2 Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ собой.
  • ΠœΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСпозитория Ρ‡Π΅Ρ€Π΅Π· fuse.

Π’ Ρ†Π΅Π»ΠΎΠΌ список возмоТностСй достаточно Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ borgbackup, мСстами большС, мСстами мСньшС. Из особСнностСй β€” отсутствиС возмоТности ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ всСгда. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΆΠ°Ρ‚ΡŒ ΠΈΠ· этого ПО:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Ρ‚Π°ΠΊΠΎΠ²Ρ‹:

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 4: ΠžΠ±Π·ΠΎΡ€ ΠΈ тСстированиС zbackup, restic, borgbackup

ВрСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹:

Запуск 1
Запуск 2
Запуск 3

5m25s
5m50s
5m38s

35s
38s
36s

1m54s
2m2s
1m58s

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ сравнимы с Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ Π½Π° основС rsync ΠΈ, Π² Ρ†Π΅Π»ΠΎΠΌ, вСсьма Π±Π»ΠΈΠ·ΠΊΠΈ ΠΊ borgbackup, Π½ΠΎ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° процСссор Π±ΠΎΠ»Π΅Π΅ высокая (Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²) ΠΈ пилообразная.

ВСроятнСС всСго, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° упираСтся Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дисковой подсистСмы Π½Π° сСрвСрС хранСния Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ это ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ с rsync. Π Π°Π·ΠΌΠ΅Ρ€ рСпозитория составил 13Π³Π±, ΠΊΠ°ΠΊ ΠΈ Ρƒ zbackup ΠΈΠ»ΠΈ borgbackup, явных минусов ΠΏΡ€ΠΈ использовании этого Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΎΡΡŒ.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

По Ρ„Π°ΠΊΡ‚Ρƒ Ρƒ всСх ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Π±Π»ΠΈΠ·ΠΊΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ€Π°Π·Π½ΠΎΠΉ Ρ†Π΅Π½ΠΎΠΉ. Π›ΡƒΡ‡ΡˆΠ΅ всСх ΠΏΠΎΠΊΠ°Π·Π°Π» сСбя borgbackup, Ρ‡ΡƒΡ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ β€” restic, zbackup, вСроятно, Π½Π΅ стоит Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ,
Π° Ссли ΠΎΠ½ ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ β€” ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π° borgbackup ΠΈΠ»ΠΈ restic.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

НаиболСС пСрспСктивным Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ выглядит restic, Ρ‚.ΠΊ. ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ΠΌ возмоТностСй ΠΊ скорости Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ‚ΠΎΡ€ΠΎΠΏΠΈΡ‚ΡŒΡΡ с ΠΎΠ±Ρ‰ΠΈΠΌΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌΠΈ.

Borgbackup Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ Ρ…ΡƒΠΆΠ΅, Π° Π²ΠΎΡ‚ zbackup вСроятно Π»ΡƒΡ‡ΡˆΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. ΠŸΡ€Π°Π²Π΄Π°, для обСспСчСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»Π° 3-2-1 zbackup всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ. НапримСр, Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ срСдствам Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π½Π° основС (lib)rsync.

Анонс

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 1: Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΠ±Π·ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ
Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 2: ΠžΠ±Π·ΠΎΡ€ ΠΈ тСстированиС rsync-based срСдств Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования
Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 3: ΠžΠ±Π·ΠΎΡ€ ΠΈ тСстированиС duplicity, duplicati
Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 4: ΠžΠ±Π·ΠΎΡ€ ΠΈ тСстированиС zbackup, restic, borgbackup
Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 5: ВСстированиС bacula ΠΈ veeam backup for linux
Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 6: Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ срСдств Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования
Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 7: Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Автор ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ: ПавСл Π”Π΅ΠΌΠΊΠΎΠ²ΠΈΡ‡

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ