Время на прочтение

В данной заметке будут рассматриваться различные «большие» программные средства для резервного копирования, включая коммерческие. Список кандидатов: Veeam Agent для Linux, Bacula.
Будет проверяться работа именно с файловой системой, чтобы было удобно сравнивать с предыдущими кандидатами.

4 года назад наша команда Nixys рассказывала, почему мы решили сделать собственный инструмент для резервного копирования и почему другие инструменты нам не подошли. Сегодня хочу рассказать, какие проблемы и недостатки в старой версии нам мешали, почему мы решили всё переписать и что у нас в итоге получилось. Добро пожаловать под кат.
Бэкап (backup) или дополнительное копирование на персональных компьютерах или серверах Linux всегда важно для предотвращения потери этих. Поэтому ознакомление с различными инструментами резервного копирования очень важно, особенно для целых администраторов, которые работают с большими объемами данных уровня предприятия или же даже на личных компьютерах. Как известно, «пользователи компьютера делятся на тех, кто делает бэкапы, и тех, кто будет их делать». В данной статье мы рассмотрим различные способы резервного копирования (бэкапа) всей системы и, сообразно, восстановления из резервной копии.
Имейте в виду, что это не инструкция к программе, поэтому не стоит бессознательно копировать приведенные здесь примеры; и это не исчерпывающее перечисление существующих программ для резервного копирования и образцов их использования. Также это и не пошаговая инструкция. Этот текст предназначен для тех, кто уже в достаточной степени понимится в Unix-подобных системах. Тем не менее, важно полностью читать документацию конкретных инструментов, так как это выручит учитывать детали, которые иначе можно не принять во внимание.
Существует много возможностей организации в linux бэкапа всей системы на CentOS/Debian/Ubuntu серверах — это даровые утилиты, самописные скрипты с использованием tar, система бэкапа bacula и много другое. Все это в той или некоторой мере я использовал или использую в своей работе. Сегодня я хочу с вами поделиться собственным методом организации простого, удобного и быстрого способа настройки инкрементного backup с внедрением популярной утилиты rsync на серверах под управлением CentOS/Debian/Ubuntu. Способ идиентично работает на этих истемах, небольшие отличия только в самой установке rsync, о чем я раздельно упомяну для каждой системы.
- Дополнительное копирование Linux с помощью back in time
- Backup Linux системы sbackup
- Бэкап всей Linux системы flyback
- Бэкап всей Linux системы rsync
- Пара слов про подводные камни
- Утечка памяти или неоптимальный алгоритм
- Такой разный ftp
- Nxs-backup 3
- Тестирование производительности
- Backup Linux с помощью amanda
- Бэкап grsync системы Linux
- Backup Linux с помощью duplicity
- Mondorescue – программа резервного копирования Linux
- Time Vault – программа резервного копирования Linux
- Backup всей Linux системы fwbackups
- Восстановление бэкапа на другом железе
- Резервное копирование всей Linux системы bacula
- Поиск решения
- Box Backup Tool – программа резервного копирования Linux
- Резервное копирование Linux с помощью clonezilla
- Бэкап всей Linux системы areca
- Бэкап deja dup всей системы в Linux
- Backup всей Linux системы bareos data protection
- Backup всей Linux системы cloudberry backup
- Luckybackup – прога резервного копирования Linux
- Бэкап Linux с помощью backuppc
- Бэкап backupninja системы Linux
- Ожидаемые результаты
- Обзор Veeam Agent для Linux
- Обзор Bacula
- Анонс
- Выводы
- Что дальше?
Дополнительное копирование Linux с помощью back in time
Back in Time — простая утилита для дополнительного копирования для Linux, вдохновленная идеями, заложенными в Flyback и Timevault. Версия root трудится с разрешениями root, необходимыми для доступа и резервного копирования определенных системных файлов. Версия non-root нужна для резервного копирования личных файлов. Одной из главных целей данного проекта стало слияние в одной программе лучших возможностей Flyback и Timevault. При первом запуске Back In Time аппарат дает вам возможность импортировать файл настроек, если вы создавали таковой раньше, или продлить с настройкой по умолчанию. « Back In Time» устанавливает два ярлыка — «Back In Time» и «Back In Time (root).» Это несложный в использовании инструмент резервного копирования для операционной системы Linux.
Для того, чтобы случать снимки и резервные копии системы, Back In Time служит объединяющим звеном для rsync, diff и cron. Она обладает графический интерфейс, доступный для GNOME и KDE4. При использовании GNOME установка пакета «nautilus-actions» дозволяет интегрировать Back In Time в файловый менеджер и сделать ее функции доступными из контекстного меню. Кабы не его узкая документация, вы были бы поражены этим инструментом. Он устанавливает две версии. Приложение «Back In Time» общедоступно в центре программ Ubuntus Software Center. В отличие от Deja Dup, в «Back In Time» вдобавок есть графический интерфейс, который интегрирован с KDE. Если вы пользуетесь рабочим столом Unity, то ставьте версию для GNOME.
Backup Linux системы sbackup
SBackup (Simple Backup Suite) — спокойное решение для резервного копирования. Это решение для рабочего стола Gnome, где пользователи могут заполучить доступ ко всей конфигурации через интерфейс Gnome. Пользователи могут использовать постоянное выражение для указания путей файлов и каталогов в процессе резервного копирования. Программа дополнительного копирования Simple Backup Suite (sbackup) рассчитана для рабочего стола Gnome. В ассоциации с прошедшим праздником Дня защитника Отечества, с которым я и поздравляю читателей блога, хочется говорить о безопасности.
Фундаментом надёжной обороны является резервное копирование, позволяющее даже в варианте успешных действий потенциального противника (будь то авария железа или деструктивные последствия вмешательства неискусных рук) вернуть систему в работоспособное состояние, а, главное, восстановить пользовательские данные. Среди специальных возможностей стоит выделить: возможность создавать сжатые и несжатые копии; поддерживаются контурные профили резервного копирования; возможность регистрации и уведомлений по почте; возможность запланировать резервное копирования и случать копирование вручную; разделение несжатых копий на пару частей; поддерживается локальное и далёкое резервное копирования.
Бэкап всей Linux системы flyback
FlyBack основывится на использовании Rsync и является приблизительной моделью Apple Time Machine. Как и многие утилиты дополнительного копирования, базирующиеся на Rsync, пакет использует инкрементные резервные копии файлов, какие позже могут использоваться для восстановления. Создан на основе Rsync. Он создает инкрементные дополнительные копии файлов, как и другие резервные копии на основе Rsync, которые могут быть реконструированы позже. Хронологическое представление файловой системы, которое позволяет просматривать или извлекать раздельные файлы или каталоги по одному.
Они представляют вид стандартного файлового менеджера, который позволяет добавочным элементам управления перемещаться вперед и назад. FlyBack предоставляет хронологический взгляд на файловую систему, что случит возможным просматривать или искать в резервных копиях даже отдельные файлы. Flyback даётся пользователю в виде стандартного файл менеджера, учитывающей особенности конкретной файловой системы, но с добавочными возможностями двигаться во времени вперед или назад.
Бэкап всей Linux системы rsync
Это средство резервного копирования командной строчки, популярное среди пользователей Linux, особенно системных администраторов. Оно обладает богатыми способностями, включая инкрементное резервное копирование, обновление всего дерева каталогов и файловой системы, как местных, так и удаленных резервных копий, сохранение прав доступа к файлам, ссылок и многое иное. В rsync есть возможность на самом деле проверять, изменился ли файл, но это очень длинный процесс. Например, сканирование моего каталога /home на наличие измененных файлов берёт больше времени, чем создание полной резервной копии без сжатия с помощью dar. Более детальную информацию вы найдете в разделе 6.4 ниже.
Также имеет графический пользовательский интерфейс Grsync, но основное преимущество с Rsync заключается в том, что резервные копии могут быть автоматизированы с использованием сценариев и поручений cron системными администраторами прямо в командной строке. Rsync — быстрая и универсальная консольная утилита используемая при резервировании, зеркалировании и копировании файлов (локально и удалённо). Утилита имеет большое число опций контролирующих все аспекты её работы.
Пара слов про подводные камни
На самом деле, мы ожидали, что нам придётся столкнуться с определёнными сложностями. Было бы глупо думать иначе. Но две проблемы вызвали наиболее сильный butthurt.

Утечка памяти или неоптимальный алгоритм
Ещё в предыдущей версии nxs‑backup мы использовали собственную реализацию архивации файлов. Логика такого решения была в том, чтобы попробовать отказаться от использования внешних утилит для создания бэкапов, и работа с файлами была самым простым шагом из возможных.
На практике решение оказалось рабочим, хотя и не особо эффективным на большом количестве файлов, как можно было увидеть из тестов. Но тогда мы списывали это на особенности Python и надеялись увидеть существенную разницу при переходе на Go.
Когда наконец мы добрались до нагрузочного тестирования новой версии, то получили удручающие результаты. Прироста производительности не наблюдалось, а потребление памяти оказалось даже больше, чем было раньше.
Мы искали решение. Прочли кучу статей и исследований на эту тему, но все они говорили, что использование «filepath. Walk» и «filepath. WalkDir», является оптимальным вариантом. Причём производительность этих методов только растёт с выходом новых версий языка.
В попытке оптимизировать потребление памяти мы даже наделали ошибок при создании инкрементных копий. Правда, поломанные варианты действительно были эффективнее. По очевидным причинам, мы не стали их использовать.
В конечном итоге всё упёрлось в количество файлов, которые требуется обработать. Мы тестировали 10 миллионов. Garbage Collector, похоже, просто не успевает очищать такой объём порождаемых переменных.
В итоге, поняв, что можем похоронить тут слишком много времени, решили пока отказаться от своей реализации в пользу проверенного временем и по‑настоящему эффективного решения — использовать GNU tar.
Возможно, мы вернёмся к идее собственной реализации позже, например с релизом Go 1.20, где можно будет работать с выделенной областью памяти напрямую, или когда придумаем более эффективное решение для обработки десятков миллионов файлов.
Такой разный ftp
Ещё одна неприятность всплыла при работе с ftp. Оказалось, что разные сервера ведут себя по-разному при одних и тех же запросах.
И это по-настоящему серьёзная проблема, когда на один и тот же запрос ты получаешь либо нормальный ответ, либо ошибку, которая, казалось бы, никак не связана с твоим запросом, либо не получаешь ошибку, когда ожидаешь этого.
Так, нам пришлось отказаться от использования библиотеки “prasad83/goftp” в пользу более простой “jlaffaye/ftp”, т.к. первая не могла корректно работать с сервером Selectel. Ошибка заключалась в том, что при подключении первая пытается получить список файлов в рабочем каталоге и получает ошибку прав доступа на вышестоящий каталог. С “jlaffaye/ftp” такой проблемы нет, т.к. она проще и сама никаких запросов к серверу не отправляет.
Следующей проблемой оказались обрывы коннектов при отсутствии запросов. Так ведут себя далеко не все серверы, но некоторые это делают. Поэтому пришлось перед каждым запросом проверять, не отвалился ли коннект и переподключаться.
Вишенкой на торте оказалась проблема получения файлов с сервера, вернее, попытка получить несуществующий файл. Одни серверы отдают ошибку при попытке обратиться к такому файлу, другие возвращают корректный объект интерфейса io. Reader, который даже можно читать, только вы получите пустой срез байт.
Все эти ситуации были обнаружены эмпирическим путём и их приходится обрабатывать на своей стороне.
Nxs-backup 3
Итогом нашей работы стала новая версия nxs-backup.
Ключевые особенности новой версии:
Теперь бэкапы просто работают на вашем Linux начиная с ядра 2.6. Это очень упростило работу с нестандартными системами и ускорило сборку образов Docker. Сам образ при этом удалось уменьшить до 23Мб (учитывая дополнительные клиенты mysql и psql).
Мы постарались сохранить большую часть конфигов и логику работы приложения, но некоторые изменения всё же присутствуют. Все они связаны с оптимизацией и исправлением недочётов предыдущей версии.
Например, мы вынесли параметры подключения к удалённым хранилищам в основной конфиг, чтобы не прописывать их для различных типов бэкапов каждый раз.
Ниже приведу примеры основного конфига для бэкапа и конфиги заданий различных типов.
Использовать бэкапы в кубе стало намного удобней. В нашем GitHub вы можете увидеть примеры values файлов для универсального чарта. Сгенерировать манифесты можно следующей командой:
Тестирование производительности
Конечно, нас интересовал полученный результат с точки зрения производительности. Тестировались инкрементный и дискретный файловые бэкапы каталога с данными, содержащего 10 миллионов файлов.
Пара слов о Restic
Restic — это достаточно интересный инструмент, использующий нестандартный подход к хранению копий в виде репозитория снапшотов. По сути, инструмент из коробки реализует инкрементное копирование, при этом позволяя восстанавливаться в необходимое состояние максимально легко.
Результаты тестирования вы можете видеть ниже.


* Особенность Restic — он потребляет всю доступную в системе память.
Как можно увидеть, мы получили существенный прирост в производительности, сделав наш инструмент менее требовательным к объёму оперативной памяти и сохранив логику работы и простоту работы с ним.
Как многие могли догадаться, теперь nxs‑backup всего лишь удобная обертка над привычными инструментами. К сожалению, пока нам пришлось отказаться от собственной реализации архивирования файлов в пользу штатного tar. Подробнее об этом расскажу дальше.
Backup Linux с помощью amanda
Amanda (Advanced Maryland Automatic Network Disk Archiver) представляется решением бэкапа, которое позволяет ИТ-администратору настраивать один главный сервер дополнительного копирования для восстановления нескольких хостов по сети на ленточные накопители, чейнджеры или диски или зрительные носители. Amanda — название системы, которая позволяет организовать процедуру резервного копирования на одном сервере для большого колличества компьютеров в сети. Система имеет архитектуру клиент-сервер. Клиент — это машина, которая бедствуется в резервном копировании; сервер — это машина, где находятся внешние системы памяти для хранения дополнительных копий. Amanda является удобной надстройкой к стандартным UNIX-программам dump/restore, GNU tar и отдельным другим.
Поэтому ее основные характеристики следует рассматривать исходя из возможностей базовых утилит. А dump понимает только файловые системы ext2/3, с ReiserFS, Reiser4 и XFS он не дружит. В сети сможет быть большое число клиентов и много серверов. Эта система вполне может применяться в качестве инструмента для резервного копирования масштаба предприятия. Система резервирования информации AMANDA сообразовывается одной из лучших среди бесплатных. Но многих удерживают от ее использования два фактора: мнимая сложность в опциях и то, что она работает только с ленточными накопителями. Попробуем доказать необоснованность таких заблуждений.
Бэкап grsync системы Linux
KBackup — простое C++ / KDE графическое прибавление для резервного копирования. Следующая программа резервного копирования в нашем списке Kbackup. Прога может работать на Linux, Windows и MacOS. Может работать на высоконагруженных серверах и обыкновенных пользовательских ПК. Среди особенностей программы стоит выделить: возможность сжатия файлов для убавления размера; нет потребности в клиентской части программы; гибкие настройки резервного копирования; наладка уведомление о необходимости провести резервное копирование. K Backup имеет интуитивно понятный пользовательский интерфейс и минимум опций, позволяя делать резервные копии файлов и каталогов (включая подкаталоги). Основное предназначение приложения быть достаточно простым для использования людьми, далёкими от компьютеров.
KBackup удерживает полное и инкрементное резервное копирование, для хранения резервных копий используется формат TAR, этые можно сжимать (с помощью gzip или bzip2), файлы сжимаются перед оберткой и затем добавляются в несжатый TAR-файл. При создании архива на локальной файловой системе возможно разбить архив на тома, в зависимости от размера используемых для хранения носителей. Это простой в применении инструмент резервного копирования для операционной системы Unix и может использоваться в Linux. Он сможет создавать архивы и сжимать их, используя утилиты tar и gzip.
Backup Linux с помощью duplicity
Duplicity делает копии директориев, творя зашифрованные тома в формате tar и загружает их на удаленный или локальный файл-сервер. Поскольку Duplicity утилизирует librsync, инкрементные архивы экономно используют место и записывают только те части файлов, какие были изменены с предыдущего резервного копирования. Большинство инструментов в нашем обзоре созданы на мощных и многофункциональных инструментах командной строки, таких как Rsync и Duplicity. Создает дополнительные копии каталогов, создавая зашифрованные тома в формате tar. Он загружает их на удаленный или локальный файловый сервер.
Duplicity утилизирует librsync, который постепенно архивируется. Это довольно продвинутые инструменты, и многие из них позволяют при творении резервных копий указать дополнительные операции для выполнения. Поскольку Duplicity использует GnuPG для кодирования и / или подписывания этих архивы, они защищены от шпионажа и / или изменения их на сервере. Он хранит только записи долей файлов, которые изменились с момента последнего резервного копирования. Duplicity использует GnuPG для кодирования и / или подписи этого архива.
Mondorescue – программа резервного копирования Linux
Эта статья посвящена особенно последним. Для клонирования системы и ее экстренного восстановления существуют простые специальные программы типа MondoRescue. Прога Mondorescue – бесплатная утилита, которую используют для выполнения резервного копирования и восстановления. Исполняет бэкапы ПК, серверов, жестких дисков и много другого. Дополнительная функция приложения – возобновления данных после возникновения каких либо проблем. Одна из лучших и бесплатных прог для резервного копирования с открытым исходным кодом. Очень надежен, потому что обладает пространным набором функций. Он может выполнять резервное копирование с персональных компьютеров, рабочих станций или сервов.
Time Vault – программа резервного копирования Linux
Time Vault представляется Linux-эквивалентом Time Machine от Apple, базирующимся на GNOME. Как и многие другие утилиты дополнительного копирования, этот пакет создает инкрементные резервные копии файлов (сохраняет лишь изменения относительного некоторого первоначального состояния — прим.пер.), которые позже смогут быть использованы для восстановления. Он может делать снимки, и они могут храниться в каталоге в некоторый момент времени. Эти снимки очень малы, поэтому Вам не нужны целые файлы дополнительных копий. Это программное обеспечение для резервного копирования с открытым исходным кодом для Linux. Оно раносильно Time Machine от Apple.
Time Vault создает файлы инкрементной резервной копии, какие можно восстановить позднее. Его мгновенные снимки являются копиями директория в определенный момент времени. Копии, сделанные для файлов, которые не изменились с момента предыдущего снимка, занимают очень малюсенько места. Это связано с тем, что вместо создания резервной копии всего файла без его изменения, в снимках утилизируется жесткая связь с существующей резервной копией файла в ее первоначальном состоянии.
Backup всей Linux системы fwbackups
Это еще одно даровое ПО для резервного копирования с открытым исходным кодом для Linux, которое поддерживает кроссплатформенность. Одна из примечательных особенностей Fwbackups заключается в том, что пользователь может принять участие в разработке этого программного обеспеченья и использовать его только в качестве тестера. Он имеет очень удобный интерфейс, который возможно использовать в качестве безопасного резервного копирования. Инструмент с открытым исходным кодом, какой можно запускать как в Windows, так и в Linux. У программы простой и интуитивно понятный интерфейс, потому пользователи могут очень просто настроить и делать резервные копии.
Очень упругий в настройке резервного копирования, fwbackups — мощное Python / GTK графическое приложение для создания дополнительных копий файлов и каталогов. Работа приложения основана на возможностях Rsync. fwbackups делает отличное предложение простой и интуитивно понятный пользовательский интерфейс дающий доступ к большинству базовых (более востребованных) возможностей консольной утилиты Rsync, что позволяет легко выполнять резервное копирование файлов и каталогов, а вдобавок их восстановление.
Восстановление бэкапа на другом железе
Грузимся с live-флэшки, у меня все та же debian-live-7.8.0.
Переключаемся на root:
Размечаем диск. Мне понравилась утилита с псевдографическим интерфейсом cfdisk. Там все просто и понятно.
Удаляем все имеющиеся разделы. Я создал два новых раздела, один на 490 Gb под / (sda1) и 10 Gb под swap (sda2) в конце диска, т.к. он практически не будет задействован. Проверим типы разделов. Который под систему должен иметь тип 83 Linux, второй — 82 Linux swap / Solaris. Помечаем системный раздел загрузочным (bootable), сохраняем изменения и выходим.
Cоздаем файловую систему на первом разделе.
Распаковываем архив.
Монтируем отформатированный раздел
mount /dev/sda1 /mnt
Распаковываем архив прямо с флэшки
tar —same-owner -xvpf /lib/live/mount/medium/backupYYYYMMDD.tgz -C /mnt/
Параметр —same-owner — сохраняет владельцев у распаковываемых файлов, x — извлекаем из архива, v — выводить информацию о процессе, p — сохраняем права доступа, f — указываем файл, который распаковываем, C — распаковываем в категорию.
Создаем MBR на новом диске.
Чтобы корректно создать загрузочную запись, монтируем рабочие каталоги к нашему будущему root-каталогу, у меня это /mnt. Каталоги /dev и /proc сейчас используются live-системой, используем параметр bind, чтобы они были доступны сразу в двух местах:
mount —bind /dev /mnt/dev
mount —bind /proc /mnt/proc
Переключаемся на новую систему используя chroot:
Делаем swap-раздел для новой системы:
Подключаем его же:
Чтобы grub работал, нужно указать ему правильные UUID разделов в fstab, сейчас там прописаны разделы предыдущей системы:
Открываем второй терминал (Alt+F2) под root:
И видим текущие UUID разделов.
Вручную переписываем их в fstab переключаясь между Alt+F1 и Alt+F2. Да, муторно, но попытки копировать занимали у меня больше времени, чем переписывание. Сохраняем fstab.
Устанавливаем grub2. У меня один физический диск, поэтому ставим его на sda:
На чистый диск должно встать без ошибок. Обновляем информацию из fstab:
Возвращаемся в Live-систему:
Размонтируем все каталоги:
umount /mnt/dev
umount /mnt/proc
umount /mnt
Все, поехали. Грузимся с жесткого диска:
Тестирование и устранение неполадок.
Показывет интерфейсы eth1 и lo, гугление сказало, что gateway можно прописать только подключению eth0, остальные рассчитаны только на работу внутри сети.
Похоже, отсутствие eth0 вызвано способом переноса системы. Находим файл, который отвечает за нумерацию интерфейсов, смотрим туда:
Действительно, там два активных интерфейса, определенных MAC’ами. Комментируем первый, второму прописываем eth0.
Перезапуск /etс/init.d/networking не помог, поэтому перезагружаемся:
Подключаем донглы, проверяем, все работает.
Спасибо за внимание.
Резервное копирование всей Linux системы bacula
Bacula Backup Enterprise Edition воображает собой надежное сетевое корпоративное резервное копирование. Корпоративное резервное копирование Bacula выделяется высокой масштабируемостью и гибкостью приспособления к растущим нуждам вашей компании. Ниже Вы сможете найти подробное описание функциональности Bacula Backup System и плагинов к ней, а также детали терминологии Bacula Job, FD, SD, Client и другие. Также Вы можете воспользоваться услугами настройки и тренинга по Bacula Enterprise.
Это программное обеспеченье для резервного копирования, восстановления и проверки данных с открытым исходным кодом, предназначенное для этого, чтобы быть готовым к работе с определенными сложностями, хотя эти сложности фактически и оприделяют его мощные функции, такие как резервные конфигурации, удаленное резервное копирование и многое иное. Bacula — это решение для резервного копирования с открытым исходным кодом, которое позволяет основывать резервные копии и выполнять восстановление данных ваших компьютерных систем. Он очень упругий и надежный, что делает его, хотя и немного громоздким для настройки, подходит для резервного копирования во многочисленных ситуациях.
Поиск решения
Все вышеперечисленные проблемы в большей или меньшей степени доставляли вполне ощутимую боль IT‑блоку, заставляя тратить драгоценное время на, безусловно, важные вещи, но этих затрат можно было бы избежать. Более того, в определённых ситуациях создавались определённые риски и для владельцев бизнеса — вероятность остаться без данных за определённый день хоть и крайне низкая, но ненулевая. Мириться с положением дел мы отказались.
Возможно, за 4 года что‑то поменялось и в сети появились новые инструменты, — подумали мы. Нужно было это проверить, и посмотреть, вдруг что изменилось в тех, что мы уже рассматривали?
Итог наших изысканий был неутешителен. Мы провели ревизию и изучили пару новых инструментов, которые не рассматривали раньше. Вот они:
Но, как и рассмотренные ранее, эти нам также не подошли, т.к. не полностью удовлетворяли нашим требованиям.

Выбор у нас был непростой. С одной стороны — уже работающая утилита на Python, с другой — она нас не устраивает по ряду параметров.
После жарких споров в команде разработки мы решили, что нам придётся всё переписать, т.к. архитектура старого приложения не позволяла легко реализовать наши потребности и требовала кардинальных изменений. А поскольку нам всё равно нужно было менять архитектуру и практически всё писать с нуля, встал вопрос: оставаться на Python или перейти на Go?
Конечно, мы выбрали Go!
Во первых, Go из коробки имеет AOT‑компилятор, и даёт собрать универсальный бинарник без зависимостей, который можно запускать на любом дистрибутиве и не испытывать проблем из‑за разных версий библиотек. Приятным бонусом в комплекте шла встроенная кросс‑компиляция под другие архитектуры процессоров.
Во вторых, Go — язык изначально заточенный под многопоточность и должен быть существенно быстрее.
Ну и в третьих, на Go у нас полноценно пишет больше народа, чем на Python.
Box Backup Tool – программа резервного копирования Linux
ПО с открытым исходным кодом и абсолютно автоматическое резервное копирование для Linux. Резервные данные могут храниться на сервере и смогут быть восстановлены очень быстро. Это инструмент резервного копирования с открытым исходным кодом какой может быть настроен для автоматической работы. Вы можете хранить по две недельные копии или по одной, в связи от ваших предпочтений или принятых в вашей компании стандартов. Процедура восстановления файлов оборотна процедуре их занесения в архив. Это бесплатный, мощный, быстрый, надежный и простой в использовании аппарат для резервного копирования и синхронизации на основе rsync.
Вышеперечисленные программные и аппаратные составляющие кликнуты обеспечить возможность восстановления файлов в случае их утраты по тем или иным причинам. Как правило, нужда инкрементного резервного копирования объясняется огромными объёмами той информации, которая постоянно обменивается и нуждается в резервировании. Возможности: Резервное копирование онлайн, Демон для автоматического резервного копирования, Сохранение резервных копий в файлах, Сжатие данных и шифрование, Выбор файлов и папок для копирования.
Резервное копирование Linux с помощью clonezilla
Основной механизм данного программного обеспечения включает в себя разделы изображений, частичное клонирование, UDPcast и остальное для создания резервной копии и восстановления Udpcast. Clonezilla является клоном Symantec Ghost Corporate Edition с приоткрытым исходным кодом. Пакет базируется на использовании DRBL, образов разделов, ntfsclone, partclone и udpcast, что дозволит вам получать слепок данных для резервного копирования и восстановления. В наличии есть два варианта пакета Clonezilla: Clonezilla live и Clonezilla SE (Server Edition — серверная редакция). Clonezilla live то что надо для резервной копирования и восстановления одной машины. Clonezilla — универсальное средство для бэкапа разделов или цельных дисков с гибкой настройкой процесса.
Бэкап всей Linux системы areca
Areca Backup вдобавок может запускать дополнительные действия, такие как сохранение отчета резервного копирования на вашем твердом диске, отправка его по электронной почте, запуск сценариев оболочки до или после резервного копирования. Это лекарство резервного копирования с открытым исходным кодом, предназначенное для личного использования, и позволяет юзеру выбирать набор файлов или каталогов для резервного копирования и выбирать способ резервного копирования и пространство хранения. Areca Backup — программа для резервного копирования файлов под Windows и Linux, диссеминируемая по свободной лицензии (GPL v2).
Работает в среде виртуальной машины Java. Управление процессом дополнительного копирования в программе возможно как из командной строки, так и в графическом интерфейсе. Обеспечивает полное сохранение, инкрементальное резервирование, дифференциальное резервирование, реализован механизм транзакций для критичных операций сохранения. Это программа для резервного копирования с открытым исходным кодом, ориентированная на использование обычными юзерами. Она позволяет выбрать нужные файлы для копирования, выбрать метод и место хранения.
Бэкап deja dup всей системы в Linux
Deja Dup — графический интерфейс Duplicity, и для обеспеченья основных функций безопасности использует этот мощный инструмент. Deja Dup не выполняет дополнительного копирования файлов и работает только с папками. Более того, в качестве пункта предназначения для ваших резервных копий он по умолчанию настроен на NextCIoud. Кроме Deja Dup, все инструменты дают возможность задать профили или наборы резервных копий. Для каждого такого профиля, который вдобавок может иметь индивидуальную настройку, можно отвести разные файлы/папки для дополнительного копирования. В данном случае утилита Deja Dup является особенно полезной. Она кардинально выделяется от множества других инструментов своим минималистичным интерфейсом, который не смущает неопытных юзеров.
При этом данная утилита основывается на мощном инструменте Duplicity с интерфейсом командной строчки и предоставляет ранее не использовавшим инструменты резервного копирования данных пользователям лишь те способности, которые будут востребованы ими. В некоторых дистрибутивах, таких, как Ubuntu, утилита Deja Dup предустановлена по умолчанию, при данном она находится в официальных репозиториях большинства других дистрибутивов. Вы можете настроить данный аппарат за считанные минуты без чтения большого объема документации. Deja Dup имеется в репозиториях многих дистрибутивов, но, за исключением Fedora, все остальные держат в репозиториях более старую версию. Репозитории Fedora вдобавок приютили самые последние версии всех остальных инструментов. Вы должны указать данные о своей учетной записи, чтобы сохранить свои копии на этом сервисе, или подать альтернативный пункт назначения.
Backup всей Linux системы bareos data protection
Bareos (лицензия GNU GPL) форк Bacula, по предложениям разработчиков содержит полезные отличия от Bacula Open Source. Основные функциональные способности доступны бесплатно, но для использования профессиональных функций требуется платить. Bareos Data Protection — это комплект программ, который позволяет пользователям создавать резервные копии, а также восстанавливать и отстаивать данные в операционных системах семейства Linux. Программа реализована на основе Bacula и трудится как сеть клиент — сервер. Bareos Data Protection – набор специальных программ для творения резервных копий.
Приложение также дает возможность восстанавливать и обеспечивать безопасность данных на ОС Линукс. Программа работает на основе сети клиент-сервер. Основные возможности Bareos Data Protection вразумительны бесплатно, но также есть много дополнительных функций, за которые придется заплатить. Это комплект программ с открытым исходным кодом, который позволяет пользователям создавать резервные копии, возрождать и защищать данные в системах Linux. Это идея, взяла свои истоки из проекта дополнительного копирования Bacula. Основные функции бесплатны, но для использования профессиональных функций резервного копирования спрашивается оплата.
Вы можете выбрать один из выше рассмотренных инструментов, просто выберите что для вас то что надо лучше. Если вы используете другую программу, не описанную здесь, напишите в комментариях. Постоянно помните, что резервное копирование очень важно и помогает предотвратить потерю данных, и вы сможете использовать различные инструменты резервного копирования для Linux для регулярного резервного копирования ваших этих.
Backup всей Linux системы cloudberry backup
Когда вы используете для хранения данных сервис Amazon S3, вы, вероятно, сталкивались с CloudBerry Explorer, програмкой для управления вашими данными. Это бесплатное кроссплатформенное облачное решение для резервного копирования, какое обеспечивает достойное резервное копирование вашего компьютера или сервера. Он имеет расширенные функции опции резервного копирования и поддерживает Linux, Ubuntu, Debian, Red Hat, Fedora, CentOS, а также Windows и Mac OS.
Сейчас команда CloudBerry Lab сделала следующий шаг и выпустила новый продукт, который называется CloudBerry Online Backup, воображающую собой настольный клиент для Amazon S3. Это программное обеспечение для резервного копирования оснащено консолью инструктивной строки, графическим интерфейсом и веб-интерфейсом. CloudBerry Online Backup это программа для автоматизации дополнительного копирования и восстановления данных на базе облачных технологий. CloudBerry Backup — это программа для автоматизации дополнительного копирования и восстановления данных на базе облачных технологий.
Luckybackup – прога резервного копирования Linux
Luckybackup – бесплатный и надежный инструмент для бэкапирования и синхронизации на базе rsync. Это бесплатный мощный, быстрый, надежный и простой в использовании инструмент резервного копирования и синхронизации, какой работает на инструменте резервного копирования rsync. Особенности программы: возможность сохранить преимущества собственности файлов; функция создание пары резервных копий файлов; мощные функции для файлов/каталогов; возможно пользоваться необходимыми опциями rsync. Как и в других инструментах, предлагающих эту функцию, в IuckyBackup возможно создавать профили нажатием на кнопку Плюс (новый) на панели инструментов. Профиль возможно выбрать из выпадающего списка в верхней левой части окна. У каждого профиля обязана быть как минимум одна задача резервного копирования.
Это бесплатный, мощный, быстрый, верный и простой в использовании инструмент для резервного копирования и синхронизации на основе rsync. Помимо данной панели, проект предлагает ряд кнопок — но никакого текста под ними. Хотя значки на клавишах намекают на их функции, вы можете навести на каждую из них мышь, чтобы узнать, что они делают: дают возможность ли они сохранить, создать или удалить профиль. Функциональность: Сохранение прав собственности файлов, Творение нескольких резервных копий файлов, Продвинутые опции для файлов и каталогов, Позволяет утилизировать опции rsync.
Бэкап Linux с помощью backuppc
BackupPC поставляется с верным веб-интерфейсом, который позволяет вам собирать и управлять централизованным образомрезервными копированиями других далёких хостов. Программа BackupPC настраивается и управляется через веб-интерфейс, поэтому для ее работы необходим установленный веб-сервер apache (Linux Debian). BackupPC — свободное ПО (распространяется под GNU General Public License) для дополнительного копирования данных с управлением через веб-интерфейс. Нет необходимости в клиентской части, так как сервер сам по себя является клиентом для нескольких протоколов, которые поддерживаются родными службами клиентской ОС.
BackupPC — система дополнительного копирования, ориентированная на диски. В этом сообщение я представлю вам BackupPC, программный кросс-платформенный бэкап сервер, какой через сеть может вытянуть резервное копирование клиентов Linux, Windows и MacOS. В BackupPC прибавлено ряд функций, которые делают резервное копированиче чуть ли не приятной вещью. Это программное обеспеченье для кросс-платформенной резервной копии, которое может работать в Unix/Linux, Windows и Mac OS X. Оно нужно для использования на уровне предприятия с высокой производительностью. BackupPC может использоваться на серверах, необходимых и портативных компьютерах. Кроссплатформенный программный сервер может работать на любом сервере под правлением GNU/Linux, Solaris или UNIX.
Бэкап backupninja системы Linux
Backupninja — расширяемая система дополнительного копирования, удобная консольная обёртка для нескольких утилит резервного копирования (meta-backup system). Эта сильная программа для резервного копирования позволяет создавать резервные копии файлов конфигурации и хранить их в каталоге /etc/backup.d/. И МХО обертка в виде backupninja удобней. Backupninja является несложный и легкой в использовании системой резервного копирования. Вы можете просто добавить файлы конфигурации в /etc/backup.d/ для дополнительного копирования нескольких хостов.
Backupninja имеет приятный cli интерфейс на dialog. За полчаса возможно настроить rsync + mysql бекапы с версионированием. Backupninja – создает резервные копии файлов конфигураций и хранит их в специальном каталоге /etc/backup.d/. Возможности данной программы: настройка с помощью файлов ini; для отделки новых типов резервных копий используются сценарии; отправка сообщений по электронной почтовая конторе; простота выполнения резервных копий через терминал; возможность интеграции с Linux-Vservers.
Ожидаемые результаты
Поскольку оба кандидата — универсальные готовые решения, важнейшим результатом будет предсказуемость работы, а именно — одинаковое время работы при обработке одного и того же объема данных, а также одинаковой нагрузке при этом.
Обзор Veeam Agent для Linux
Данная программа для резервного копирования работает с блочными устройствами, для чего у нее имеется модуль для ядра Linux, который обеспечивает целостность резервной копии за счет отслеживания измененных блоков данных. Более детальное описание находится здесь.
Процесс создания файловой резервной копии работает на основе того же модуля ядра: создается слепок блочного устройства, который монтируется во временный каталог, после чего выполняется синхронизация данных пофайлово из слепка в другой локальный каталог, или удаленный по протоколу smb или nfs, где создается несколько файлов в проприетарном формате.
Процесс создания файловой резервной копии так и не получилось довести до конца. Примерно на 15-16% выполнения скорость падала до 600 кбсек и ниже, при 50% использовании cpu, что потенциально приводило к 6-7 часам работы процесса резервного копирования, поэтому процесс был остановлен.
Была создана заявка в техническую поддержку Veeam, сотрудники которой в качестве решения предложили использовать поблочный режим.
Результаты работы при поблочном режиме создания резервных копий таковы:

Время работы программы в этом режиме — 6 минут на 20 гб данных.
В целом достаточно неплохие впечатления от работы программы, но в общем обзоре она не будет учитываться из-за сильно большой медлительности файлового режима работы.
Обзор Bacula
Bacula — клиент-серверное ПО для создания резервных копий, логически состоит из нескольких частей, каждая из которых выполняет свою часть работы. Есть Director, который служит для управления, FileDaemon — сервис, отвечающий за резервное копирование, StorageDaemon — сервис хранения резервных копий, Console — интерфейс к Director (есть TUI, GUI, Web варианты). Данный комплекс включен в обзор еще и потому, что несмотря на ощутимо большой порог вхождения, он является достаточно популярным средством организации резервного копирования.
В режиме создания полных резервных копий
В этом режиме Bacula показала себя достаточно предсказуемо, выполняя создание резервной копии в среднем за 10 минут,
профиль нагрузки получился такой:

Размер резервных копий составил примерно 30 гб, как и ожидалось при работе в данном режиме работы.
При создании инкрементальных резервных копий результаты не особо отличались, кроме размера репозитория, разумеется (порядка 14 гб).
В целом видно равномерную нагрузку на одно процессорное ядро, а также то, что показатели похожи на обычный tar с активированным сжатием. Ввиду того, что настройки bacula для резервного копирования весьма и весьма обширны — показать явное преимущество не получилось.
В целом ситуация неблагоприятная для обоих кандидатов, вероятнее всего из-за того, что используется файловый режим создания резервных копий. В следующей части будет рассмотрен также процесс восстановления из резервных копий, общие выводы можно будет сделать по суммарному времени.
Анонс
Резервное копирование, часть 1: Зачем нужно резервное копирование, обзор методов, технологий
Резервное копирование, часть 2: Обзор и тестирование rsync-based средств резервного копирования
Резервное копирование, часть 3: Обзор и тестирование duplicity, duplicati
Резервное копирование, часть 4: Обзор и тестирование zbackup, restic, borgbackup
Резервное копирование, часть 5: Тестирование Bacula и Veeam Backup for Linux
Резервное копирование: часть по просьбам читателей: обзор AMANDA, UrBackup, BackupPC
Резервное копирование, часть 6: Сравнение средств резервного копирования
Резервное копирование, часть 7: Выводы
Выводы
Самое главное — мы исправили проблемы старой версии, то, что влияло на работу инженеров и создавало определённые риски для бизнеса.
Что дальше?

У нас ещё от прошлой версии остались не реализованными «хотелки», такие как:
Теперь этот список дополняется новыми:
И, конечно, мы будем рады узнать мнение сообщества. Какие ещё возможности для развития вы видите? Какие опции вы бы добавили?
Найти исходный код и закинуть issue можно в нашем репозитории на GitHub. Также есть форма для обратной связи на нашем сайте.

