[recovery mode] “А шо эта ваш бэкап такой уставший?”*

* А что это ваш бэкап такой несвежий? (Одесск.)

4f9a545c1be64b17882576ef440d19b7.jpg

Даже самые дорогие системы, выполняющие периодическое резервное копирование (например, каждую ночь), обладают одним существенным ограничением: всё, что было сделано на компьютере после последнего резервного копирования, никак не защищено, и будет безвозвратно потеряно, если компьютер выйдет из строя.

Пусть, например, вчера была написана первая часть «Мёртвых Душ», и ночью сделана резервная копия. А сегодня написана вторая часть, и в эмоциональном порыве уничтожена ещё до того, как настало время очередного резервного копирования.

Бороться с такими ситуациями призвана технология непрерывного резервного копирования (Continuous Data Protection, CDP). Всё, что записывается на диск, одновременно отправляется в резервную копию.

Рассмотрим подробнее, как это делается в продукте Arcserve RHA (Replication and High Availability) на реальных примерах в средах Windows и Linux.

Содержание

Введение
1. Архитектура
2. Установка программного обеспечения
2.1. Установка управляющих компонентов
2.2. Установка управляемых компонентов
3. Эксперименты по восстановлению данных
3.1. Восстановление файлов на заданный момент времени
3.2. Восстановление базы данных MS SQL на заданный момент времени
4. Заключение и реклама


Введение


Пусть мы имеем два сервера.

Боевой сервер (Master) содержит постоянно обновляющиеся данные. Мы следим за изменениями и ведём ведомость (журнал) изменений в виде «было → стало», например:

Время Содержимое файла «мытьё» Журнал изменений
10:30:51 МАМА МЫЛА РАМУ
10:30:52 МАМА МЫЛА ПАПУ Файл «мытьё», смещение 10, «РАМ» → «ПАП»

Журнал изменений постоянно пересылается на резервный сервер (Replica) и применяется к его файлам. Таким образом файлы боевого и резервного серверов становятся идентичными.

Некоторые детали:

  • Изменения отслеживаются на уровне байтов, то есть при изменении одного байта журнал будет содержать информацию только об этом байте, а не о всём блоке данных;
  • Журнал изменений пересылается по обычной IP-сети, то есть разнести боевой и резервный серверы можно на значительные расстояния, в том числе, в разные города;
  • При разрыве соединения данные накапливаются в буфере и, как только связь восстановится, будут переданы и применены к резервному серверу;
  • История изменений (в заданном объёме, например, последние 500 Мегабайт) сохраняется на резервной машине и может быть применена в обратной последовательности, вернув содержимое файлов в состояние на определённый момент времени.


1. Архитектура


962d33341b2343fc86d0a0d766b61514.gif

Для того, чтобы описанная выше схема заработала, нам потребуется установить на машины Master и Replica компонент, именуемый Engine, который берёт на себя основную работу по отслеживанию изменений в файлах и репликации данных с одной машины на другую.

Для того, чтобы сконфигурировать работу этих двух Engine, установим на ещё одну машину (Manager) сервис управления (Control Service). Эта машина требуется только для конфигурации, получения отчётов и запуска отдельных действий на управляемых машинах. Она не должна быть постоянно включенной.

Наконец, пользовательский интерфейс мы получим, соединившись интернет-браузером с сервисом управления, и скачав оттуда windows-приложение.


2. Установка программного обеспечения


Скачаем Arcserve RHA (iso или zip) с сайта разработчика (как указано на странице arcserve.zendesk.com/hc/en-us/articles/205009209-RHA-R16–5-SP5-ARCSERVE-RHA-16–5-SP5):

Продукт работает 30 дней без лицензионных ключей.


2.1. Установка управляющих компонентов


Начнём с того, что установим Control Service на управляющую машину (Manager).

Для его работы требуется .NET Framework 3.5.

В Windows 2012R2 .NET Framework 3.5 устанавливается так.
В Server Manager выбираем Manage → Add Roles and Features. Отмечаем галочкой ».NET Framework 3.5 Features».

1b4d1af28f334c719af5e48e698686aa.png

Важно! Нужно явно указать, где на дистрибутиве Windows находится этот компонент. Для этого на следующем экране нажать «Specify an alternate source path»:

0d90124715024deeaba7cb29484b353e.png

В моём случае путь выглядит вот так (D: — DVD c дистрибутивом Windows):

9d7ee7c71dc7443e9cb132aa539bca5d.png

Теперь запускаем Setup.exe с дистрибутива Arcserve RHA и выбираем «Install Components»:

41cedc91b211469aae2be55d79069382.png

На следующем экране выбираем «Install Arcserve RHA Control Service». (Особенность: на слова «Install Arcserve RHA…» кликнуть не получается, а на »… Control Service» — получается):

3893529d565f4ea6ad94a7d45b919167.png

Потом прощёлкаем несколько экранов, пока не дойдём до конфигурации SSL. Для тестирования включать SSL не будем, а при рабочем применении можете добавить здесь ваш сертификат или использовать самоподписанный:

85e212351fd548b6be206f32234b452c.png

Будем запускать сервис от имени Local System:

e1a495c18e614b9ba7dacb42cb67760b.png

Следующий экран касается возможности иметь две управляющих машины для повышения отказоустойчивости. Мы для целей тестирования ограничимся одной:

6a0136fc8c2a4010951d2c586b0981af.png

После завершения установки соединимся интернет-браузером с машиной Manager на порту 8088. Войти можно под пользователем, у которого есть права локального администратора на машине Manager:

14f83850e3f44ded879e09238b1fda1f.png

Мы получим доступ к странице, на которой будет публиковаться статистика работы различных машин. Но для реального управления нам потребуется скачать с этого сайта и запустить windows-утилиту «Arcserve RHA Manager». Её можно запускать уже не на сервере, а на рабочей станции (например, Windows 7 или 10). Для скачивания нажмём на ссылку «Scenario Management»:

c6f5feff083e43eda95af5002a71be3e.png

После предупреждений безопасности должна запуститься программа «Arcserve RHA Manager»:

7f4819dc547e42baae01386d5b829ed4.png

Эта программа и в дальнейшем будет запускаться только с веб-страницы.


2.2. Установка управляемых компонентов


На машины Master и Replica установим рабочие компоненты — Engine.

Можно установить их локально с дистрибутива, а можно — удалённо. Для удалённой установки на сервер требуется, чтобы у сервера была установлена роль «File Server»:

97e1a7788d0a44ccb25d3cd5e9c0ccc5.png

Если роль «File Server» установлена на машинах master и replica, то на машине Manager мы можем обратиться к »\\master\C$» и »\\replica\C$».

Из утилиты Arcserve RHA Manager, о которой шла речь в предыдущем разделе, запустим удалённую установку через меню «Tools → Launch Remote Installer».

0256665908cd47db85cfb82302f2bc0d.png

На следующем экране нажимаем кнопку «Start host discovery» (1) и получаем список машин из кэша Active Directory.

Выделяем машины master и replica и добавляем их в список кандидатов на установку Engine при помощи кнопки «Add» (3)

f6b1be6fd58b4ad5ae72ed238ee6c0ed.png

На следующем экране введём пользователя (администратора домена), под которым будет выполняться удалённая установка:

b73f9dcade08458796aa772e38c02122.png

Далее убеждаемся, что оба сервера (master и replica) позволяют выполнить удалённую установку и помечены галочками:

680457b703184f008bc197e96b9ab029.png

На следующем экране введём пользователя, под которым будет запускаться служба Engine.

Для целей непрерывного резервного копирования достаточно пользователя с правами локального администратора (Local System). А вот если мы хотим использовать функционал High Availability, когда резервная машина сможет изображать из себя вышедшую из строя основную машину, то нам нужно запускать сервис под доменным администратором. Описанный ниже пример из раздела () требует именно таких полномочий:

aa8c8005f0c844e49d6300ba3a60ed0c.png

Нажимаем всякие Next → Install → Yes и ждём завершения установки:

edbfeaf99dfe4a6db23b194b93421fcc.png


3. Эксперименты по восстановлению данных



3.1. Восстановление файлов на заданный момент времени

Создадим на машине Master каталог «C:\Ax-уехала-жена\» и положим туда файлы:

Таня.jpg

Лена.jpg

Джоконда.jpg

Создадим сценарий репликации этого каталога на машину Replica. В меню «Arcserve RHA Manager» выберем Scenario → New
Первый экран мастера создания сценариев оставляем без изменений:

4eaac678d3c54bcc8a34aa06c0a88c23.png

На втором экране также ничего не меняем — там должен быть выбран сценарий репликации файлов (File Server):

a698f30572134492afb89add1cd95b6b.png

Выберем в качестве основной машины сервер Master, а в качестве резервной — Replica:

eb88f896a35b4d48be43317423d35149.png

На следующем экране видим подтверждение того, что служба Engine установлена на обеих машинах. Если мы не установили её ранее, то можем сделать это удалённо отсюда.

На следующем экране выберем исходный каталог «C:\Ax-уехала-жена\» на машине Master:

6252de2011a147e6b8f4bd113afa6ca9.png

На следующем экране нам предложат реплицировать этот каталог в каталог с таким же именем на машине Replica. Согласимся:

9c594471f3534d8f91fe6153820b6734.png

На следующем экране ничего не меняем:

527d663baaa74825adaf11aa375525c1.png

А вот здесь нам нужно выставить параметр «Data Rewind» в «On», чтобы иметь возможность восстанавливать данные на произвольный момент времени в прошлом:

5ebd401c391547d9b8d557c24a0726b6.png

Наконец, нам скажут, что сценарий не содержит ошибок:

23524634ac9543f0a4654fc29132b7fc.png

Запустим сценарий, нажав кнопку «Run Now»:

c6f0d1d3fee34d71968fc74ea4d908ed.png

На главном экране мы увидим, как работает сценарий. Заданный каталог быстро синхронизируется (станет одинаковым на основной и резервной машине), и теперь любое изменение в каталоге на машине Master приведёт к аналогичному изменению его копии на машине Replica.

be352b6b8f374bb185ba2e8b4cd3b87d.png

Выполним три действия на машине Master:
1. Изменим файл Джоконда.jpg

a3ec2d832135464b81de0e9525331a4b.jpg

2. Сотрём файл Таня.jpg

3. Добавим файл Маша.jpg

Убедимся, что на машине Replica с файлами произошло то же самое.

Теперь мы хотели бы вернуть Джоконде прежний облик. Для этого отмотаем время назад на машине Replica, воспользовавшись инструментом Data Recovery.

Сначала мы должны остановить сценарий (меню Tools → Stop)

Затем щёлкнуть мышью на машине Replica и вызвать меню Tools → Data Recovery:

cfe0cf12ca46452bb9035272dfdca8b7.png

Нажав в следующем окне кнопку «Select Recovery Point», попадаем вот в такое окно, где нужно:

(1) Установить просмотр всех временных точек, на которые возможен откат по времени
(2) Нажать кнопку Apply
(3) Выделить самую первую точку, когда Джоконда ещё не была повреждена
(4) Нажать на кнопку «OK»

eb2465bf28494857aa36e64ea7712fb2.png

Затем нажимаем кнопку «Run»:

57fffaa65803426a81550f987ea19a40.png

Проверяем, что произошло с файлами на машине Replica.

— Джоконда.jpg снова вернулась в начальное состояние
 — Маша.jpg исчезла
 — Лена.jpg появилась

Именно для того, чтобы не потерять Машу.jpg, мы не стали восстанавливать данные на обеих машинах. Теперь достаточно переписать файл «Джоконда.jpg» на машину Master, и мы снова получим в работу неиспорченный файл, не затрагивая все остальные.


3.2. Восстановление базы данных MS SQL на заданный момент времени


Предположим, что MS SQL установлен на машине Master. На машину Replica можно MS SQL не ставить, тогда она будет служить лишь хранилищем копии каталога DATA:

459969ba8bf0465980099055a33342c9.png

Сценарий репликации MS SQL похож на сценарий репликации файлов, но добавляются две вещи, которые облегчают нам жизнь:

1. нам не придётся явно указывать, где находятся файлы базы данных, эта информация автоматически подтянется:
d5366f579bb64579b24bb2517ee1ee5e.png

2. при восстановлении данных на основную машину (Master) сервисы MS SQL будут автоматически потушены и переведены в режим ручного запуска. После восстановления всё вернётся на место:
1873a9449821440d8357ae61d26249cb.png

Предположим, что кто-то забыл написать «where» в команде «update»:

begin transaction;
update dbo.Table_1 set name='Сидоров';
commit;

(кто сам такое делал — поймёт глубину падения).

Так же, как и в предыдущем случае, останавливаем сценарий репликации, запускаем «Tools→Data Recovery», но выбираем восстановление не только на резервную машину, но и на основную:

418e590671314bd5837418e9fa751bc7.png

Остаётся только выбрать точку во времени, предшествующую моменту порчи данных, и провести восстановление:

29c2a5ae61c54d65ab8ca6477c53cab1.png


4. Заключение и реклама


В этой статье мы рассмотрели только основные возможности продукта Arcserve RHA, направленные на восстановление данных на заданный момент времени в прошлом. То есть, расшифровали только половину названия «Replication and High Availability». В следующей статье вы увидите, как реализуется вторая часть названия — High Availability. Мы посмотрим, как вышедшая из строя машина (физическая или виртуальная) будет подменятся резервной машиной, содержащей актуальную копию данных.

[Реклама] В настоящее время, до конца сентября 2016 года, вы можете бесплатно получить продукт Arcserve RHA, приобретая продукт Arcserve UDP Premium Plus по цене Arcserve UDP Premium.
Подробнее можете узнать у партнеров компании Arcserve.

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

  • 22 июля 2016 в 13:35 (комментарий был изменён)

    0

    Чем оно лучше чем два сервера с каким DRBD + HA? Если надо на любой момент времени — + Bacula еще. Абсолютно бесплатно.
    • 22 июля 2016 в 14:16

      0

      Навскидку: больше поддерживаемых платформ (windows, linux, aix, solaris) + возможность копировать отдельные файлы, а не тома целиком.
  • 22 июля 2016 в 13:49

    0

    А как оно отслеживает изменения файлов? inotify в linux и его аналог в win? Как определяет дифф? Полностью сканирует файл?
    • 22 июля 2016 в 14:11

      0

      В документации указано: filter driver для Windows и filtering file system для linux.

© Habrahabr.ru