Настройка резервного копирования сервера

Data-lossВ одной из предыдущих статей мы рассказали как легко настроить резервное копирование сайтов на хостинге средствами панели Parallels Plesk v11, а сегодня будем говорить о том, как обеспечить создание резервных копий виртуальных машин и аппаратных серверов.

Конечно, есть специализированные инструменты создания полных резервных копий, которые позволяют при необходимости полностью восстановить всю систему, например, Acronis True Image, однако данные решения платные и не всегда доступны для использования. Мы рассмотрим бесплатные, свободные от ограничивающих лицензий инструменты, которые можно применять для обеспечения резервного копирования Ваших серверов.

В данной статье будем считать, что требуется обеспечить резервное копирование малого количества серверов (до 10), потому что для больших парков существуют другие инструменты, которые более подходят для централизованного резервного копирования.

Все инструменты, которые мы рассмотрим сегодня, можно поделить на три группы:

  1. готовые облачные продукты с оплатой за используемое дисковое пространство;
  2. бесплатные инструменты без графического интерфейса;
  3. бесплатные инструменты с графическим интерфейсом пользователя.

Важное свойство, которым должны обладать все инструменты резервного копирования — поддержка инкрементального или дифференциального резервного копирования, поскольку данные методики позволяют обеспечить эффективность резервного копирования как с точки зрения производительности так и с точки зрения занимаемого резервными копиями дискового пространства. В зависимости от задачи инкрементальное и дифференциальное копирование могут быть более или менее эффективными, но тем не менее данные способы являются стандартами де-факто для резервного копирования.

Инкрементальное резервное копирование работает по принципу сохранения изменений в текущей копии относительно предыдущей копии.

Дифференциальное резервное копирование работает по принципу сохранения изменений между основной (базовой) копией и текущей копией.

Начнем с третьей группы. В ней будет представлен бесплатный продукт Duplicati. Программное обеспечение работает в Linux/Windows/MacOS. Для работы необходима поддержка графического интерфейса пользователя. Программа позволяет гибко управлять резервным копированием, под Windows поддерживается теневое копирование для безостановочного резервного копирования, например, 1C. Мы уже продолжительное время работаем с Duplicati и этот продукт зарекомендовал себя с лучшей стороны. Для того, чтобы упростить русскоязычным пользователям работу с продуктом мы создали специальный сайт Duplicati.RU, где можно ознакомиться с процедурами установки и настройки программы в Windows. Мы не использовали Duplicati в MacOS, а для Linux есть более интересные инструменты, о которых мы поговорим позже, однако, если Вы используете Linux как рабочую станцию с графическим интерфейсом, то Вы можете использовать Duplicati для резервного копирования.

Для хранения резервных копий, созданных с помощью Duplicati мы рекомендуем использовать какое-нибудь облачное хранилище, например, хранилище NetPoint Pro-Stor.me, это позволит хранить резервные копии не только надежно, но и бюджетно.

Теперь перейдем ко второй группе средств резервного копирования, которая отлично подходит для серверов без графического интерфейса, работающих под управлением Linux, FreeBSD и прочих UNIX-подобных систем.

Небольшое замечание относительно корректности файлов в резервной копии. Бывает, что файлы, которые попадают в резервную копию оказываются некорректными, например, системный процесс писал в файл в то время, как он добавлялся в архив, в этом случае файл может быть поврежден. Для контента, как правило, это не сильно важно, но файлы различных СУБД, например, MySQL или PostgreSQL, а так же системы 1С должны быть в корректном состоянии на протяжении всего процесса резервного копирования. Для выполнения данного правила как правило осуществляют резервное копирование либо с помощью дампов данных (что не всегда возможно), либо с использованием так называемых снимков (snapshots) системы, которые отражают состояние файлов в момент создания снимка. Управление снимками отличается от системы к системе, например, в Linux снимки можно создавать с помощью LVM2 (для файловых систем поверх LVM2), с помощью встроенных снимков BTRFS, в FreeBSD, Linux и Solaris с помощью ZFS (если используется файловая система ZFS), в MS Windows существует механизм Shadow Copy и т.п.

В данной статье управление снимками рассматриваться не будет.

Итак, для резервного копирования из интерфейса командной строки мы рекомендуем использовать duplicity (кстати, именно эта утилита вдохновила создателей Duplicati на реализацию). Duplicity осуществляет инкрементное и полное резервное копирование, а так же позволяет гибко управлять планированием периодов хранения данных и восстанавливать файлы и деревья файлов на определенную дату. Подробно о том, как делать резервное копирование с помощью duplicity можно прочитать в статье в нашей базе знаний. В описании используется хранилище NetPoint Pro-Stor, однако данная настройка может применяться для любого FTP/SFTP хранилища.

Восстановление файлов с помощью duplicity так же производится очень просто, предлагаем ознакомиться с методикой восстановления файлов самостоятельно с помощью man duplicity.

В следующей части статьи мы рассмотрим готовый инструмент для осуществления резервного копирования данных.