Бэкап сервера, баз данных, виртуальных машин. В статье описываются принципы и понятия, возможности и процессы по резервному копированию и восстановлению сервера с нуля, баз данных MS SQL Server, виртуальных машин в среде Hyper-V.

 

Даже в крупных предприятиях не для всех серверов применяются средства резервного копирования. С одной стороны - за ненадобностью, а с другой – ограниченный бюджет, поэтому особое внимание уделяется только архиважным сервисам и файлам. Для них системный администратор настраивает бэкапы с помощью встроенных или дополнительно установленных программ, экспорт данных и другое. Таким образом производится подстраховка, защита сервера от непредвиденных явлений. Однако не всегда получается возобновить работу сервера за короткий промежуток времени, а выход из строя операционной системы как минимум заберёт несколько часов на её переустановку и донастройку. Сроки постоя серверов заставляют задуматься о способах их минимизации.  

В нашем случае применяется System Center Data Protection Manager 2012 R2, который является очень полезным инструментом для резервирования и восстановления потерянной или искажённой информации на предприятии. Централизованное и удобное управление бэкапами, разделение резервных копий по группам, настройка индивидуального расписания для хранения относятся к ключевым факторам при первоначальном выборе продукта и дальнейшей повседневной работе в большой ИТ-инфраструктуре. Этот архивариус великолепно справляется с задачей по возврату в предаварийное состояние баз данных, серверов, содержимого пользовательских компьютеров. За счёт автоматизации процессов DPM позволяет сократить массу времени, избегая долгих донастроек Microsoft-продуктов вручную при полной их переинсталляции.

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

Для защиты серверов имеются несколько вариантов:

  • целиком виртуальную машину – наиболее выгодно используется, когда имеются не поддерживаемые версии ОС;
  • базы данных – подходит, если интересуют только содержимое СУБД;
  • состояние сервера – если интересует только состояние операционной системы;
  • содержимое физического сервера – можно сделать копии информации локальных дисков или сетевых папок.

 

О виртуальных машинах

Первым делом необходимо ознакомиться с требованиями [http://technet.microsoft.com/ru-ru/library/hh758184.aspx] для виртуальной среды, выполнить инсталляцию нескольких системных обновлений для Windows Server с ролью Hyper-V, подготовить дисковое пространство. Затем на требуемых серверах проверить наличие NetFramework 4.0, Microsoft Visual C++ 2008 Redistributable, отключить или настроить брандмауэр и приступить к инсталляции агента (процесс такой же, как и на пользовательские ПК). Кстати, консоль управления агентом здесь не предусмотрена.

DPM выполняет резервное копирование виртуальных машин без выключения, по-горячему, что является большим преимуществом перед экспортом их вручную, которое можно ощутить только при установленном гипервизоре на Windows 2012 Server. Начиная только с данной версии ОС получила поддержку протокола SMB 3.0, что позволяет напрямую использовать сетевой ресурс для расположения бэкапов виртуальных машин на другом сервере. То есть, если DPM установлен на Windows 2008 R2, то архивы можно размещать только локально или на специально выделенное хранилище. А при настроенном протоколе SMB 3.0 на 2х серверах второй из них может выступать в качестве файлового хранилища.

 

Некоторые расчёты

Express Full Backup - означает копирование только изменившихся данных (а не всю ВМ) при этом создается точка восстановления для данных приложений [ https://technet.microsoft.com/ru-ru/system-center-docs/dpm/get-started/how-does-dpm-work-?f=255&MSPPError=-2147217396 ].

Бэкапы можно делать, положившись на автоматический расчёт занимаего места в хранилище. Есть, конечно, и формула с описанием, по которой производится расчёт [ https://technet.microsoft.com/ru-ru/library/hh758007(v=sc.12).aspx?f=255&MSPPError=-2147217396 ].

Если места в хранилище предостаточно, то беспокоиться не о чем, то можно создавать и 3, и 5, копий (реплик). Например, ВМ занимает 42,7 Гб. Если Retention Range=10, то места под копии будет требоваться 64 Гб, а на точку восстановления - 23 Гб. В результате необходимо выделить 87 Гб.

Если же имеется дефицит свободного места, то приходится делать всё по минимуму. Например, при ВМ равной 42,7 Гб, Express Full Backup=1 раз в неделю, Retention Range=1. В этом случае копия будет храниться до следующего бэкапа, место для неё потребуется 64 Гб, а для точки восстановления - 3.7 Гб. Общий объём = 67,7 Гб.

 

Бэкапы виртуальных машин

У нас имеются в немалом количестве виртуальные сервера с Windows 2003 Server, официальная поддержка которых уже окончена. Поэтому для них будем использовать первый вариант – бэкап целиком виртуальной машины. В этом случае агент устанавливается на хост Hyper-V и защите подлежит полностью всё содержимое виртуального сервера (ОС, программы, базы данных, файлы).

            Далее необходимо создать группу защиты. Заходим в раздел “Protection” и нажимаем кнопку «New». На первом шаге «Select protection group» определяемся с типом защищаемой группы – это серверы. Далее, в “Select group members” находим нужный хост-сервер, в котором выбираем необходимый виртуальный сервер (см. рис. 1). Следующий шаг – “Select data protection method” – позволяет задать имя группе защиты и указать устройство сохранения файла. В “Select short-term goals” по умолчанию указан диапазон хранения 5 дней и Express Full Backup (быстрый полный бэкап) ежедневно в 18-00. Далее в “Review disk allocation” будет отображено автоматическое разбиение (выделение) дискового пространства, значения которого можно изменить вручную по нажатию на кнопку “Modify”. Шаг “Choose consistency check options” (Выбор опций проверок на целостность) предлагает проверку целостности данных. 

                      

Рисунок 1. Выбор виртуальной машины для защиты.

 

Восстановление виртуальной машины

После создания группы защиты появляется точка восстановления, происходит синхронизация реплики с исходными данными, а значит имеется возможность вернуть утерянную информацию, в чём нам поможет мастер. Заходим в раздел “Recovery”, на выбранном архиве нажимаем на правую кнопку мыши, выбираем “Recover”, и следуем подсказкам мастера.

Шаг “Select recovery type” (Выбор типа восстановления) предлагает 4 варианта действий:

  • “Recover to original instance” (Восстановить в исходное положение);
  • “Recover as virtual machine to any host” (Восстановить на любой хост);
  • “Copy to a network folder” (Копировать в сетевую папку);
  • “Copy to tape” (Копировать на ленту).

Здесь нам подходит пункт 3.

Затем в “Select destination” (Указать получателя) выбираем место хранения в локальной сети – это сервер и путь к нужной папке. Шаг “Specify recovery options” (Указать настройки восстановления) предлагается выбрать, как будут применены настройки безопасности, урезать полосу пропускания, включить восстановление на SAN и оповещение на почту. Затем Next->Recover и наблюдаем за процессом восстановления.

Выбрав 3й пункт, нужно иметь ввиду, что при восстановлении виртуальной машины в сетевую папку, копировании файлов на другой хост и запуске её на новом месте, можно получить ошибку о неожиданном выключении сервера. Это означает, что DPM не может пометить файлы для восстановления в качестве ожидаемого завершения работы. Когда VHD-файл хранится в корневом разделе, и при попытке запуска виртуальной машины в другом месте, VHD-файлы будут восстановлены с атрибутами каталогов, установленные как скрытые и системные. Эти атрибуты каталогов нужно удалить.

 

Об MS SQL Server

В нашем случае имеем MS SQL Server 2012, перед резервным копированием баз данных которого нужно узнать о немалом количестве особенностей [http://technet.microsoft.com/ru-ru/library/hh780998.aspx]. Сначала в СУБД внесём учетную запись NTAuthoritySystem в группу Sysadmin, воспользовавшись консолью MS SQL Server Management Studio.

Рассмотрим некоторые распространённые вынужденные действия системных администраторов, ведь невозможно сразу всё предусмотреть, поэтому иногда приходится вмешаться в работу сервера баз данных. Как же DPM реагирует на различные изменения внутри и снаружи СУБД?

При замене старого диска на сервере баз данных новому диску необходимо назначить ту же букву.

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

Если было произведено переименование базы данных, то её необходимо добавить в существующую либо в новую группу защиты, а несоответствующую БД удалить.

Новая добавленная в экземпляр SQL Server база данных будет автоматически включена в резервирование, но не мгновенно. Если нет времени ждать, то можно обнаружение ускорить вручную с помощью командлета Start-AutoProtection.

 

Защита баз данных

В консоли DPM переходим в раздел “Protection”. По нажатию на кнопку “New” в появившемся мастере создания группы защиты заполним требуемую информацию, пройдя несколько шагов.

На первом шаге “Select protection group” определяемся с типом защищаемой группы – это серверы. Далее, в “Select group members” находим нужный сервер, заходим в ветку “All SQL Servers” и активируем галочку с базой данных, например, сделаем резервирование БД CM_D продукта SCCM (см. рис. 2). Затем в “Select data protection method” задаём место расположения бэкапа, для нас это диск, но можно использовать ещё облако или ленточный носитель.

Рисунок 2. Выбор базы данных для резервирования.

Третий шаг “Select short-term goals” отвечает за синхронизацию бэкапа. Для приложений, поддерживающих инкрементное копирование, точки восстановления создаются с указанным периодом синхронизации, а иначе делается “Express Full backup” (Полный бэкап) по расписанию. Тут предлагается редактировать настройки по умолчанию или оставить как есть – “Retention range” составляет 5 дней, “Recovery points” – 20:00 ежедневно и “Express full backup” тоже в 20:00 ежедневно.

В “Review disk allocation” (Пересмотреть распределение диска) выводится размер защищаемых данных и сколько под них выделено места. При необходимости размер копии и тома для точек восстановления можно подкорректировать вручную, нажав кнопку “Modify” (см. рис. 3). Здесь поле “Data Size” (Размер данных) показывает исходный размер данных, в полях “Replica Volume” (Том реплики) и “Recovery Point Volume” (Том точки восстановления) отображаются размеры выделенного дискового пространства под резервирование. Активация галочки “Automatically grow the volumes” разрешает автоматическое увеличение архива. В результате получилось, что для БД объёмом 5,5 Гб под реплику отводится 10 Гб, а 4.6 Гб – для точки восстановления.

Рисунок 3. Изменение размера бэкапа.

На шаге “Choose replica creation method” (Выбор метода создания копии) предлагается выбрать автоматический или ручной тип создания копии. В “Choose сonsistency сheck options” можно задать проверку целостности копий только при несоответствии либо по расписанию. Затем Next → Create Group (Создать группу).

 

Восстановление базы данных

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

  • восстановлению не подлежат базы данных между экземплярами SQL Server на ОС Windows Server 2008 и ОС Windows Server 2003;
  • не получится восстановить БД между экземплярами Server 2008 и SQL Server 2005 даже при наличии одинаковой версии ОС.
  • при одновременном резервном копировании двух баз данных, находящихся в одном экземпляре и одной версии SQL Server, операции будут выполнены последовательно.

Итак, заходим в раздел “Recovery”, выбираем необходимую дату и время и жмём кнопку “Recover”. Появится мастер, состоящий из 4х шагов. На первом шаге “Review recovery selection” предлагается удостовериться в выбранном действии. Далее в “Select recovery type” нужно выбрать 1 из 4х вариантов:

  • “Recover to original instance of SQL Server” (Восстановить в исходный экземпляр SQL Server) означает перезапись существующей базы данных;
  • “Recover to any instance of SQL Server” (Восстановить в любой экземпляр SQL Server) – говорит о том, что можно восстановить и переименовать БД на том же или любом другом доступном экземпляре СУБД;
  • “Copy to a network folder” (Копировать в сетевую папку);
  • “Copy to tape” (Копировать на ленту).

Нам подходит 2-й пункт. На следующем шаге “Specify alternate recovery location” (Указать альтернативное место размещения) выбираем сервер с СУБД, при необходимости переименовываем БД.

Затем мастер на шаге “Specify database state” (Указать состояние базы данных) предложит выбрать:

  • “Leave database operational” (Оставить рабочую базу данных) – эта означает, что после полного восстановления база данных будет готова к использованию;
  • “Leave database non-operational but able to restore additional transaction logs” (Оставить базу данных в нерабочем состоянии, но сохранить возможность восстановления дополнительных журналов транзакций) – в этом случае БД не будет сразу работать, но её можно будет включить в любой удобный момент.

Мы выбираем 2-й пункт и на следующем шаге “Specify destination” (Указать расположение) определяем место сохранения на нашем сервере. 

 

Описание Bare Metal Recovery

Чтобы вернуться в исходное состояние, DPM использует встроенные средства Windows и включает в себя 2 типа защиты. Рассмотрим каждый из них и разберёмся в отличительных особенностях:

  • System State (Состояние системы) означает возврат состояния системы, включает в себя создание резервных копий реестра, базу данных регистрации классов COM+, информацию о лицензировании ОС, объекты WMI, загрузочные и защищенные (скрытые) системой файлы, Windows Scheduler (Задания планировщика), Performance Counters (Счетчики производительности), базу данных служб сертификации (CA) (если сервер является сервером CA). Если это контроллер домена, то Active Directory (Службу каталогов) и содержимое директории SYSVOL, если установлены службы, то метакаталог IIS, DHCP, WINS, информацию кластерных служб (если сервер является узлом кластера). Это большой список жизненно необходимых системе файлов [http://ystartsev.wordpress.com/2010/08/18/dpm2010bmr/] в разных её версиях может отличаться, но основные будут неизменными.
  • Bare Metal Recovery (BMR) – это полное восстановление сервера, состоит из всего перечня предыдущего пункта + всё содержание критических томов (критический – том, включающий в себя любой компонент от System state). Если приложения попали в архив, то после восстановления они будут работоспособны. Базы данных и необходимые для программ компоненты, расположенные не на критических разделах, требуют отдельного внимания, так как в состав бэкапа они не войдут.
  • не может использоваться без System State.

В основе создания архива BMR лежит работа утилиты wbadmin [http://technet.microsoft.com/en-us/library/cc754015%28v=ws.10%29.aspx], но передавать данные по сети она не умеет. Для этих целей используется встроенная в Windows служба Server (Сервер), которая обеспечивает поддержку общего доступа к файлам, принтерам, именованным каналам через сетевое подключение.

Data Protection Manager имеет и некоторые ограничения по восстановлению машин с нуля:

  • для Windows Server 2003, а также для самого сервера DPM доступно только System State;
  • вся линейка клиентских ОС получила полное игнорирование;
  • невозможна архивация BMR сразу на ленту, а только через диск.

Получение актуальной резервной копии Bare Metal Recovery (Восстановление на голое железо) защищаемого сервера происходит с помощью запускаемого по расписанию скрипта BmrBackup.cmd (C:Program FilesMicrosoft System Center 2012 R2DPMDPMin). В нём основная команда (start /WAIT %SystemRoot%system32wbadmin.exe start backup -allcritical -quiet -backuptarget:%1) передает в сценарий путь к репликам на сервере DPM.

Чтобы просчитать количество занимаемого (выделяемого) места на диске, нужно сложить объемы загрузочного и системного диска, а также всех критических томов.

 

Восстановление на другое железо

Конечно же, у всех системных администраторов имеется желание восстанавливать ОС на другое аппаратное обеспечение, отличное от исходного, чтобы не быть привязанным к конкретной архитектуре. Но для этого необходимо учесть немалое количество условий [http://support.microsoft.com/kb/249694/en-us , http://ystartsev.wordpress.com/2011/10/11/dpm2010bmr-3/], иначе все старания окажутся провальными:

  • HAL (слой аппаратных абстракций) серверов должен совпадать (кроме ACPI);
  • должно быть соответствие версий ОС, а разрядность позволена x86->x86x64, а с х64 - только на х64 и IA-64 (Itanium) на IA-64;
  • нужно удалить сторонние драйверы-фильтры на первоначальном сервере;
  • объём жёсткого диска должен быть не меньше, чем на исходном сервере.

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

 

Бэкап сервера

Создаём группу защиты для полного восстановления контроллера домена, выбираем “System Protection” (Защиту операционной системы), активируем обе галочки (см. рис. 4). Далее проверяем, удовлетворяют ли параметры по умолчанию, это выделенное место на диске, увеличивать ли автоматически размер архива, диапазон хранения - 5 дней, полный бэкап - ежедневно в 20-00, включать ли проверку целостности данных. При необходимости значения по умолчанию можно модифицировать.

                      

  Рисунок 4. Выбор сервера для полного восстановления

Следует упомянуть и возможности исключить нежелательные папки из бэкапа [http://ystartsev.wordpress.com/2013/03/18/dpm-bare-metal-recovery-p4-how-to-use-exclude-switch-with-bmr/ . https://social.technet.microsoft.com/Forums/ru-RU/ee01a44d-72ff-4f7c-838d-3bea1bb79153/dpm-2012-?forum=msdpmru], хоть до автоматизма это ещё не доведено.

После того, как созданы группы защиты, можно посмотреть на разметку диска, открыв “Disk Management” сервера (см. рис. 5).

Рисунок 5. Автоматическое разбиение диска.

 

Восстановление сервера

В разделе “Recovery” на папке “System Recovery” требуется нажать по правой кнопке мыши и выбрать пункт “Recovery”. В появившемся мастере (опять же 4-5 шагов) установить точку на “Copy to a network folder” и указать путь, принять решение о восстановлении безопасности, урезании полосы пропускания, восстановлении на SAN, отправке уведомлений.

В папке WindowsImageBackup в текстовом файле BMRSystemRequirements.txt можно увидеть базовые требования к восстанавливаемому серверу:

WinRE OS Version: 6.1.7601 Server

WinRE Architecture: AMD64

Minimum Number of Disks: 1

Minimum Disk Sizes:

Disk 0: 42949017600 bytes (Boot)

 

Допустим, что контроллер домена “потерпел крушение” и мы опередили это явление. Теперь нужно сделать вышестоящую папку для общего доступа, в которой находится архив WindowsImageBackup.

Пол пути уже прошли, осталось возобновить работу проблемного сервера. Запускаем установку Windows Server, жмём на ссылку “Recovery System” (Восстановление системы) и следуем подсказкам помощника, указываем расположение архива в сети (см. рис. 6).

Рисунок 6. Удалённый образ восстановления ОС.

Тут всплывает 1 нюанс. Если на сервере была установлена роль DHCP, то мы получим ошибку, которая говорит о невозможности подключиться к сетевой папке. В этом случае необходимо сетевому интерфейсу присвоить IP-адрес вручную. Для этого жмём Shift+F10 и используем команду “netsh” со следующими параметрами:

netsh interface ip set address <имя подключения> static <маска> <метрика шлюза>.

Здесь же для удобства можно прописать IP адрес DNS-сервера, но это не является обязательным. Шаблон команды выглядит так:

netsh interface ip set dns <имя подключения> static .

Готовый результат будет иметь следующий вид:

netsh interface ip set address “Подключение по локальной сети” static 192.168.15.15 255.255.255.0

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

 

Резервное копирование файлов

Для физических серверов Data Protection Manager позволяет защищать и отдельные папки локальных дисков. Для этого, как и раньше, создаётся группа защиты. Только для нужного сервера требуется выбрать “All Volumes”, внутри которого производится выбор необходимых папок. А дальше по аналогии с ранее описанными действиями. 

 

Отчёты

В разделе “Reporting” будут доступны для сформирования и вложения в электронные письма 6 видов отчётности. Сводные отчёты создаются на основании имеющихся сведений о всех защищаемых машинах и группах защиты, а подробные – по отдельности.

 

Troubleshooting

При возникновении сбоев или каких-то внештатных ситуаций большую помощь окажут лог-файлы, которые хранятся на сервере DPM в папке C:Program FilesMicrosoft System Center 2012 R2DPMDPMLogs (логи об установке) и в папке Temp (логи о сервере DPM). А на защищаемом сервере файлы-журналы располагаются в C:Program FilesData Protection ManagerDPMTemp. Также помогут справиться с проблемой рекомендации Microsoft [http://technet.microsoft.com/ru-ru/library/hh872921.aspx].