[recovery mode] “А шо эта ваш бэкап такой уставший?”*
Даже самые дорогие системы, выполняющие периодическое резервное копирование (например, каждую ночь), обладают одним существенным ограничением: всё, что было сделано на компьютере после последнего резервного копирования, никак не защищено, и будет безвозвратно потеряно, если компьютер выйдет из строя.
Пусть, например, вчера была написана первая часть «Мёртвых Душ», и ночью сделана резервная копия. А сегодня написана вторая часть, и в эмоциональном порыве уничтожена ещё до того, как настало время очередного резервного копирования.
Бороться с такими ситуациями призвана технология непрерывного резервного копирования (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. Архитектура
Для того, чтобы описанная выше схема заработала, нам потребуется установить на машины 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 находится этот компонент. Для этого на следующем экране нажать «Specify an alternate source path»:
В моём случае путь выглядит вот так (D: — DVD c дистрибутивом Windows):
Теперь запускаем Setup.exe с дистрибутива Arcserve RHA и выбираем «Install Components»:
На следующем экране выбираем «Install Arcserve RHA Control Service». (Особенность: на слова «Install Arcserve RHA…» кликнуть не получается, а на »… Control Service» — получается):
Потом прощёлкаем несколько экранов, пока не дойдём до конфигурации SSL. Для тестирования включать SSL не будем, а при рабочем применении можете добавить здесь ваш сертификат или использовать самоподписанный:
Будем запускать сервис от имени Local System:
Следующий экран касается возможности иметь две управляющих машины для повышения отказоустойчивости. Мы для целей тестирования ограничимся одной:
После завершения установки соединимся интернет-браузером с машиной Manager на порту 8088. Войти можно под пользователем, у которого есть права локального администратора на машине Manager:
Мы получим доступ к странице, на которой будет публиковаться статистика работы различных машин. Но для реального управления нам потребуется скачать с этого сайта и запустить windows-утилиту «Arcserve RHA Manager». Её можно запускать уже не на сервере, а на рабочей станции (например, Windows 7 или 10). Для скачивания нажмём на ссылку «Scenario Management»:
После предупреждений безопасности должна запуститься программа «Arcserve RHA Manager»:
Эта программа и в дальнейшем будет запускаться только с веб-страницы.
2.2. Установка управляемых компонентов
На машины Master и Replica установим рабочие компоненты — Engine.
Можно установить их локально с дистрибутива, а можно — удалённо. Для удалённой установки на сервер требуется, чтобы у сервера была установлена роль «File Server»:
Если роль «File Server» установлена на машинах master и replica, то на машине Manager мы можем обратиться к »\\master\C$» и »\\replica\C$».
Из утилиты Arcserve RHA Manager, о которой шла речь в предыдущем разделе, запустим удалённую установку через меню «Tools → Launch Remote Installer».
На следующем экране нажимаем кнопку «Start host discovery» (1) и получаем список машин из кэша Active Directory.
Выделяем машины master и replica и добавляем их в список кандидатов на установку Engine при помощи кнопки «Add» (3)
На следующем экране введём пользователя (администратора домена), под которым будет выполняться удалённая установка:
Далее убеждаемся, что оба сервера (master и replica) позволяют выполнить удалённую установку и помечены галочками:
На следующем экране введём пользователя, под которым будет запускаться служба Engine.
Для целей непрерывного резервного копирования достаточно пользователя с правами локального администратора (Local System). А вот если мы хотим использовать функционал High Availability, когда резервная машина сможет изображать из себя вышедшую из строя основную машину, то нам нужно запускать сервис под доменным администратором. Описанный ниже пример из раздела () требует именно таких полномочий:
Нажимаем всякие Next → Install → Yes и ждём завершения установки:
3. Эксперименты по восстановлению данных
3.1. Восстановление файлов на заданный момент времени
Создадим на машине Master каталог «C:\Ax-уехала-жена\» и положим туда файлы:
Таня.jpg
Лена.jpg
Джоконда.jpg
Создадим сценарий репликации этого каталога на машину Replica. В меню «Arcserve RHA Manager» выберем Scenario → New
Первый экран мастера создания сценариев оставляем без изменений:
На втором экране также ничего не меняем — там должен быть выбран сценарий репликации файлов (File Server):
Выберем в качестве основной машины сервер Master, а в качестве резервной — Replica:
На следующем экране видим подтверждение того, что служба Engine установлена на обеих машинах. Если мы не установили её ранее, то можем сделать это удалённо отсюда.
На следующем экране выберем исходный каталог «C:\Ax-уехала-жена\» на машине Master:
На следующем экране нам предложат реплицировать этот каталог в каталог с таким же именем на машине Replica. Согласимся:
На следующем экране ничего не меняем:
А вот здесь нам нужно выставить параметр «Data Rewind» в «On», чтобы иметь возможность восстанавливать данные на произвольный момент времени в прошлом:
Наконец, нам скажут, что сценарий не содержит ошибок:
Запустим сценарий, нажав кнопку «Run Now»:
На главном экране мы увидим, как работает сценарий. Заданный каталог быстро синхронизируется (станет одинаковым на основной и резервной машине), и теперь любое изменение в каталоге на машине Master приведёт к аналогичному изменению его копии на машине Replica.
Выполним три действия на машине Master:
1. Изменим файл Джоконда.jpg
2. Сотрём файл Таня.jpg
3. Добавим файл Маша.jpg
Убедимся, что на машине Replica с файлами произошло то же самое.
Теперь мы хотели бы вернуть Джоконде прежний облик. Для этого отмотаем время назад на машине Replica, воспользовавшись инструментом Data Recovery.
Сначала мы должны остановить сценарий (меню Tools → Stop)
Затем щёлкнуть мышью на машине Replica и вызвать меню Tools → Data Recovery:
Нажав в следующем окне кнопку «Select Recovery Point», попадаем вот в такое окно, где нужно:
(1) Установить просмотр всех временных точек, на которые возможен откат по времени
(2) Нажать кнопку Apply
(3) Выделить самую первую точку, когда Джоконда ещё не была повреждена
(4) Нажать на кнопку «OK»
Затем нажимаем кнопку «Run»:
Проверяем, что произошло с файлами на машине Replica.
— Джоконда.jpg снова вернулась в начальное состояние
— Маша.jpg исчезла
— Лена.jpg появилась
Именно для того, чтобы не потерять Машу.jpg, мы не стали восстанавливать данные на обеих машинах. Теперь достаточно переписать файл «Джоконда.jpg» на машину Master, и мы снова получим в работу неиспорченный файл, не затрагивая все остальные.
3.2. Восстановление базы данных MS SQL на заданный момент времени
Предположим, что MS SQL установлен на машине Master. На машину Replica можно MS SQL не ставить, тогда она будет служить лишь хранилищем копии каталога DATA:
Сценарий репликации MS SQL похож на сценарий репликации файлов, но добавляются две вещи, которые облегчают нам жизнь:
1. нам не придётся явно указывать, где находятся файлы базы данных, эта информация автоматически подтянется:
2. при восстановлении данных на основную машину (Master) сервисы MS SQL будут автоматически потушены и переведены в режим ручного запуска. После восстановления всё вернётся на место:
Предположим, что кто-то забыл написать «where» в команде «update»:
begin transaction;
update dbo.Table_1 set name='Сидоров';
commit;
(кто сам такое делал — поймёт глубину падения).
Так же, как и в предыдущем случае, останавливаем сценарий репликации, запускаем «Tools→Data Recovery», но выбираем восстановление не только на резервную машину, но и на основную:
Остаётся только выбрать точку во времени, предшествующую моменту порчи данных, и провести восстановление:
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.