Даступная сістэма рэзервовага капіявання restic 0.13

Пасля года распрацоўкі прадстаўлены выпуск сістэмы рэзервовага капіявання restic 0.13, якая прадстаўляе інструментар для захавання рэзервовых копій у версіяваным рэпазітары, які можа размяшчацца на знешніх серверах і ў хмарных сховішчах. Дадзеныя захоўваюцца ў зашыфраваным выглядзе. Магчыма азначэнне гнуткіх правіл для ўключэння і выключэнні файлаў і каталогаў пры стварэнні рэзервовай копіі. Падтрымліваецца праца ў Linux, MacOS, Windows, FreeBSD і OpenBSD. Код праекту напісаны на мове Go і распаўсюджваецца пад ліцэнзіяй BSD.

Асноўныя магчымасці:

  • Падтрымка захоўвання рэзервовых дзід у лакальнай ФС, на вонкавым серверы з доступам па SFTP/SSH або HTTP REST, у аблоках Amazon S3, OpenStack Swift, BackBlaze B2, Microsoft Azure Blob Storage і Google Cloud Storage, а таксама ў любых сховішчах для якіх маюцца бэкэнды rclone. Для арганізацыі захоўвання таксама можа быць скарыстаны адмысловы rest server, які забяспечвае больш высокую прадукцыйнасць у параўнанні з іншымі бэкендамі і здольны працаваць у рэжыме толькі для дадатку, які не дазволіць выдаліць або змяніць рэзервовыя копіі ў выпадку кампраметацыі зыходнага сервера і доступу да ключоў шыфравання.
  • Падтрымка вызначэння гнуткіх правіл для выключэння файлаў і каталогаў пры стварэнні рэзервовых копій (напрыклад, для выключэння з рэзервовай копіі логаў, часавых файлаў і лёгка якія прайграваюцца дадзеных). Фармат правіл ігнаравання звыклы і нагадвае rsync ці gitignore.
  • Прастата ўстаноўкі, выкарыстання і аднаўлення інфармацыі. Для працы з рэзервовымі копіямі дастаткова скапіяваць адзін выкананы файл, які можна выкарыстоўваць без дадатковых налад. Для самага выкананага файла забяспечваецца паўтараная зборка, якая дазваляе самастойна пераканацца, што бінарная зборка сфарміравана з якія прадстаўляюцца зыходных тэкстаў.
  • Падтрымліваюцца снапшоты, якія адлюстроўваюць стан вызначанага каталога са ўсімі файламі і ўкладзенымі каталогамі ў вызначаны момант часу. Пры кожным стварэнні новай рэзервовай копіі ствараецца асацыіраваны з ёй снапшот, які дазваляе аднавіць стан у дадзены момант. Магчыма капіраванне снапшотаў паміж рознымі рэпазітарамі.
  • Для эканоміі трафіку падчас стварэнняў рэзервовых копій капіююцца толькі якія змяніліся дадзеныя. Для забеспячэння эфектыўнага захоўвання дадзеныя ў рэпазітары не дублююцца, а дадатковыя снапшоты ахопліваюць толькі якія змяніліся дадзеныя. Сістэма маніпулюе не цэлымі файламі, а блокамі які плавае памеру, выбіранымі з выкарыстаннем подпісу Рабіна. Інфармацыя захоўваецца ў прывязцы да змесціва, а не імёнам файлаў (звязаныя з дадзенымі імёны і аб'екты вызначаюцца на ўзроўні метададзеных блока). На падставе SHA-256 хэша ад змесціва выконваецца дэдуплікацыя і выключэнне лішняга капіявання дадзеных.
  • Для нагляднай адзнакі змесціва рэпазітара і спрашчэнні ўзнаўлення, снапшот з рэзервовай копіяй можа быць прымантаваны ў форме віртуальнай часткі (мантаванне ажыццяўляецца пры дапамозе FUSE). Таксама прадастаўляюцца каманды для аналізу змен і выбарачнай вымання файлаў.
  • Інфармацыя на знешніх серверах захоўваецца ў зашыфраваным выглядзе (для кантрольных сум выкарыстоўваецца SHA-256, для шыфравання AES-256-CTR, а для гарантавання цэласнасці – коды аўтэнтыфікацыі на аснове Poly1305-AES). Сістэма першапачаткова разлічана на тое, што рэзервовыя копіі захоўваюцца ў асяроддзі не вартыя даверу і трапленне рэзервовай копіі ў чужыя рукі не павінна скампраметаваць сістэму. Шыфраванне можа забяспечвацца як па ключах доступу, так і па паролях.
  • Прадугледжана магчымасць верыфікацыі рэзервовай копіі па кантрольных сумах і кодах аўтэнтыфікацыі для пацверджання, што цэласнасць файлаў не парушана і неабходныя файлы могуць быць адноўлены і не ўключаюць утоеных мадыфікацый.

У новай версіі:

  • Дададзена падтрымка негатыўных шаблонаў выключэння. Напрыклад, "—exclude '/home/user/*' —exclude '!/home/user/.config'" для выключэння ўсяго змесціва /home/user акрамя каталога /home/user/.config.
  • У каманду "backup" дададзены рэжым "-dry-run", які пры запуску з опцыяй "-verbose" дазваляе без фактычных змен адсачыць, якія файлы будуць уключаныя ў рэзервовую копію.
  • У розныя бэкенды захоўвання дададзена падтрымка кантрольных сум для дадатковай праверкі загружаных дадзеных.
  • Праведзена аптымізацыя каманды «restore», якая стала працаваць у два разы хутчэй. Таксама падвышаная прадукцыйнасць каманды copy.

Крыніца: opennet.ru

Дадаць каментар