Примерно год назад у меня возникла «острая» необходимость перевести систему резервного копирования данных в корпоративной сети на бесплатные рельсы. До этого использовался платный продукт от Symantec, по нему, конечно, много нареканий, но он работал, хоть и не всегда справлялся. Как обычно, все надо было сделать «вчера», и я приступил к поиску вариантов.

Для начала начал искать решение для резервного копирования файлов, очевидным решением было простая настройка скриптов на Linux по cron, но это не очень удобное и надежное решение, если серверов более одного(а у меня их около 50-ти) и структура достаточно динамична. Тем более если инфраструктура смешанная, Linux + Windows. Хотелось что-нибудь простое в дальнейшем обслуживании и извлечении самих копий, например, переложить восстановление пользовательских файлов на группу поддержки. Порывшись пару часов в интернете, я наткнулся на интересный проект UrBackup, он удовлетворял всем моим условиям.

Как операционную систему я выбрал CentOS 6 в конфигурации minimal, взять можно тут. Подробно на установке и первичной настройке останавливаться не будут, т.к. манулов по этой процедуре уже достаточно на Хабре. Перейдем к установке виновника топика UrBackup.

Предыдущие версии UrBackup приходилось собирать из исходников, но слава разработчикам, для последних версий появились репозитории для большинства популярных систем. Хотя собрать из исходников проблем не составляло, репозиторий сильно упрощает жизнь, особенно при обновлениях.

Итак, приступим:

yum install wget nano -y
cd /etc/yum.repos.d/
wget http://download.opensuse.org/repositories/home:kot1grun/CentOS_6/home:kot1grun.repo
yum install urbackup-server -y

Тут мы подключаем репозиторий и устанавливаем собственно сервер. Далее, чтобы мы могли подключится к серверу из вне, нам необходимо поправить iptables:

# nano /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# правило для urbackup
-A INPUT -m state --state NEW -m tcp -p tcp --dport 55414 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Перезагружаем iptables:

service iptables restart

Так же для серверов внутри сети отключаем selinux:

# nano /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Отключаем selinux без перезагрузки:

# setenforce 0

Устанавливаем сервис в автозагрузку и запускаем:

chkconfig urbackup-server on
service urbackup-server restart

Готово. Можно подключаться и настраивать.

Заходим по адресу
http://my-server-ip:55414
. При желании выбираем язык и идем в настройки:



Тут для первичной настройки нам необходимо указать только путь для хранения бекапов. Не забываем нажать кнопку «сохранить» и мы можем переходить к настройке клиентов.

Для начала нам необходимо установить клиент на сервер, который мы хотим копировать. Клиент для Windows систем можно скачать с сайта разработчиков, но так как мы в данный момент рассматриваем linux-системы, рассмотрим установку на тот же CentOS 6:

cd /etc/yum.repos.d/
wget http://download.opensuse.org/repositories/home:kot1grun/CentOS_6/home:kot1grun.repo
yum install urbackup-client-nogui -y
chkconfig urbackup-client on
service urbackup-client start

Добавляем правила в iptables:

# nano /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# правила для urbackup
-A INPUT -m state --state NEW -m tcp -p tcp --dport 35621 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 35622 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 35623 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Перегружаем iptables:

service iptables restart

Не забываем отключить selinux, если, конечно, в нем нет необходимости. И можно добавлять клиента на сервер. Возвращаемся на сервер
http://my-server-ip:55414
. Идем в раздел «статус»:



Вбиваем в поле «Имя/IP» IP-адрес сервера, с которого мы хотим бекапить данные, и нажимаем добавить. Ждем пару минут, пока клиент появится в списке.

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

Идем в настройки:



Выбираем наш сервер из списка и настраиваем «каталоги по умолчанию для бекапа».

Сохраняем.

Готово. Сервер настроен и работает. Во время работы мы видим нечто подобное:



Сервер работает на удивление быстро и очень компактно использует место на диске, используя подобие дедубликации на основе симлинков.

Это минимальная настройка сервера, при желании можно настроить авторизацию, архивацию, создание образов систем (Windows), резервное копирование через интернет и т.д. В дальнейших статьях планирую рассказать, как на этот же сервер настроить резервное копирование MSSQL и Exchange, если это, конечно, будет интересно читателям.
Продолжать ли дальнейшие статьи?

Проголосовало 220 человек. Воздержалось 33 человека.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Комментарии (11)


  1. Suncheez
    14.07.2015 03:42
    +3

    <Надеваю шапку КО>
    А что насчёт восстановления?
    А что насчёт масс-деплоя?
    <снимаю шапку>


    1. augin Автор
      14.07.2015 09:47

      В одну статью просто не уместилось, надеюсь описать все подробнее в следующих.


  1. xlin
    14.07.2015 20:18

    Бекап серверов на Linux предусмотрена? Или мне самому нужно будет указать какие папки забекапить?


    1. augin Автор
      14.07.2015 20:28

      Не совсем понятно что вы имеете в виду под «бекапом серверов на Linux». Если образ диска, то нет, необходимо указать папки для копирования или указать "/" и в исключение добавить не нужные директории. Если просто резервное копирование систем Linux, то без проблем, но папки указывать все равно придется при первичной настройке. Лично я не использую данное средство для резервного копирования образов, т.к. использую виртуализацию на базе ESXi, а там есть средства создания резервных копий дисков. Так же есть бесплатные которые я успешно использую. И когда-нибудь я дойду и до статьи о них.


      1. xlin
        14.07.2015 20:30

        Спасибо. Именно это и хотел узнать.


  1. abvgd
    14.07.2015 20:25
    -1

    А почему отключаем SELinux?


    1. xlin
      14.07.2015 20:32

      Потому что 99% админов не хотят с ним заморачиваться и доверяют полностью iptables + ipset + fail2ban


    1. augin Автор
      14.07.2015 20:33

      Предвкушал конечно такие вопросы, но все же решил не включать его настройку. Чтобы не засорять статью отдельной статьей о настройке SELinux. Те кто очень хочет его использовать на своем сервере но не знают как это делается, вполне могут найти материалы на Хабре.


    1. augin Автор
      14.07.2015 20:36

      Вам просто интересно почему отключаем или вы намекаете на не безопасность данного метода настройки?


  1. ka3ax
    14.07.2015 20:58

    Интересно было бы почитать про бакап и восстановление Exchange. Можно ли восстановить отдельный почтовый ящик?
    И про бакап виртуальных машин из-под Hyper-V тоже интересно.
    Как проходит bare metal восстановление Windows серверов с RAID контроллерами? Можно ли в restore CD/USB поместить драйвера?


    1. augin Автор
      14.07.2015 21:17

      Метод резервного копирования Exchange очень бюджетный, и делается по средствам PowerShell в PST файлы, поэтому можно восстановить, не только отдельный ящик, но и отдельное письмо. Но эта статья будет после статьи о резервном копировании MS SQL. Виртуализацию я использую на основе vSphere, поэтому не было задач с резервным копированием Hyper-V и Parallels, но я посмотрю на эту тему. По драйверам, думаю без проблем, если умеете работать с squashfs, можно пересобрать livecd. Ну и я не разрабатываю и не пиарю данный сервер, просто мне понравилась реализация которая удволетворяет мои потребности. Так что я смогу помочь только тем, в чем сам уже разобрался.