Создание резервных копий виртуальных машин. Как гарантировать согласованность данных резервной копии

Практическое знакомство с VMware converter - продуктом, позволяющим снять для последующей виртуализации точную копию реальной машины.

Многие уже оценили возможности программ вроде VMware или Virtual PC . В первую очередь, конечно, они полезны разработчикам, которые могут без проблем тестировать свои творения под разными операционными системами, в разном программном окружении или вообще на чистенькой, свежеустановленной системе. Но и простым смертным виртуальные машины могут пригодиться.

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

Если взять VMware, то создание новой машины - процесс простой и быстрый. Однако вы получите то, что получите - совершенно пустой "диск", на который еще придется устанавливать операционную систему. А если нужна определенная конфигурация? Если у вас уже настроен рабочий компьютер, и вы хотите поэкспериментировать именно с ним? Или восстановить из бэкапа старую конфигурацию и помедитировать на тему "почему же все накрылось"?

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

  • виртуальные машины как VMware, так и Microsoft Virtual PC (только если в качестве гостевой системы используется Windows);
  • образы Symantec Backup Exec System Recovery;
  • образы Norton Ghost (начиная с версии 9).

Установив и запустив VMware converter (beta 3.0 Starter Edition), вы увидите окно с пустым пока списком задач. Философия задач скорее зарезервирована для более мощной версии Enterprize, если вы вдруг захотите виртуализировать все 157 машин вашей локальной сети, но в любом случае создать задачу придется. Возьмем конвертацию реального компьютера, на котором конвертер и запущен, как наиболее общий случай. Учтите сразу, что вам потребуется где-нибудь место для виртуального диска размером, как минимум, совпадающим с занятым пространством на системном диске подопытной машины. Больше - лучше.

Итак, для создания задачи щелкните на кнопке Import Machine. Запустится "мастер", который поэтапно вытрясет из вас всю необходимую для работы информацию. Вы выбираете Physical computer, затем This local machine, а далее отмечаете диски, с которых надо снять образы и подключать впоследствии к виртуальной машине. Если у вас нет каких-либо особых требований, достаточно выбрать системный диск.

На следующих шагах требуется уточнить параметры машины и ее диска (они аналогичны настройкам VMware Workstation) и нажать кнопку "Готово". В главном окне программы появится ваша задача. Сварите себе кофе или убедите собаку, что ей пора гулять, и запускайте задачу на выполнение. Я лично успел неторопливо пройтись до магазина и обратно, но у меня и не самый мощный компьютер.

Когда работа будет закончена, открывайте созданный файл конфигурации в VMware Player и, - вуаля! Точная копия вашей системы со всеми настройками и приложениями крутится в своем окне. Прямо как матрешка.

Переустановка операционной системы или смена компьютерного устройства не означает конец работы с установленными гостевыми ОС в программе . Правда, исключением может быть случай, когда файлы жёстких дисков виртуальных машин находятся на системном диске компьютера, а саму систему невозможно восстановить после критического сбоя. Чтобы продолжить работу с имеющимися гостевыми ОС с сохранением их состояния, но уже на переустановленной Windows или на другом компьютере, в арсенале программы VirtualBox имеется инструмент экспорта конфигурации существующих виртуальных машин для его импорта в дальнейшем. Другая возможность продолжить работу с существующими гостевыми ОС — добавление новых виртуальных машин на базе имеющихся файлов их жёстких дисков. Все эти процессы и рассмотрим ниже.

1. Универсальный формат файла экспорта виртуальных машин

Конфигурация существующей виртуальной машины VirtualBox экспортируется в файл «.ova ». Файл «.ova» (Open Virtual Appliance) – это универсальный файл хранения данных виртуальной машины, который можно использовать в различных программах для виртуализации операционных систем. Это , . Экспортированная в этот файл виртуальная машина может быть затем импортирована как программой VirtualBox, так и VMware Workstation или Microsoft Hyper-V в рамках поддерживаемых этими программами гостевых систем.

Рассмотрим детальнее процесс экспорта и импорта конфигурации виртуальной машины VirtualBox в основной системе Windows.

2. Экспорт виртуальной машины

В окне VirtualBox выбираем конкретную виртуальную машину для экспорта, жмём меню «Файл » и выбираем «Экспорт конфигураций ».

В следующем окне жмём «Next ».

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

Далее появится окно параметров экспорта. Формат оставляем предустановленный, а вот папку файла экспорта «.ova», по умолчанию располагающуюся на системном диске, меняем на папку, например, как в нашем случае, специально созданную на несистемном диске D.

В следующем окне жмём «Экспорт ».

Дожидаемся завершения процесса экспорта.

Экспортированная виртуальная машина в файле «.ova» будет находиться в указанной папке, откуда её можно переместить на другой компьютер, съёмный носитель, в облачный сервис. Или можно оставить, как в нашем случае, на месте — на несистемном диске, где этот файл будет храниться во время переустановки Windows.

3. Импорт виртуальной машины

После инсталляции VirtualBox на новой Windows или на другом компьютере открываем программу и в меню «Файл » выбираем «Импорт конфигураций ».

В следующем окне указываем путь к файлу «.ova» с экспортированной виртуальной машиной. Жмём «Next ».

В самом конце окна будет указан путь, куда после импорта будет помещён файл жёсткого диска «.vdi». По умолчанию это системный диск, и чтобы не захламлять его и предотвратить потерю файла «.vdi» в случае сбоя системы, можно сменить путь, указав папку хранения на несистемном диске. Жмём «Импорт ».

Дожидаемся завершения процесса импорта.

После чего увидим импортированную виртуальную машину в списке машин VirtualBox. Что и осталось теперь, так это запустить машину.

Гостевая ОС запустится точно в том состоянии, в котором она была на момент экспорта виртуальной машины.

4. Добавление новой машины из существующего файла жёсткого диска VirtualBox

Альтернатива экспорту и импорту виртуальной машины – добавление новой машины из существующего файла жёсткого диска VirtualBox «.vdi ». Этот способ ничем не уступает процедуре экспорта и импорта виртуальной машины. Более того, если файл «.vdi» расположен на несистемном диске, при переустановке Windows на физическом компьютере можно даже и не тратить время на экспорт конфигурации. Хранящийся же на системном диске файл «.vdi» можем просто перенести на несистемный диск. По большому счёту, процесс экспорта и импорта виртуальной машины выигрывает только экономией занимаемого места файлом «.ova». Например, в нашем случае проводился экспорт виртуальной машины с установленной гостевой ОС Windows ХР, и вес файла «.ova» на выходе составил 4,11 Гб. В то время как размер файла жёсткого диска «.vdi» этой же системы составляет 10 Гб .

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

Запускаем VirtualBox и жмём «Создать ».

Задаём показатель оперативной памяти. Жмём «Next ».

В окне выбора жёсткого диска выбираем параметр «Использовать существующий жёсткий диск », с помощью кнопки обзора указываем путь хранения файла «.vdi». Жмём «Создать ».

Виртуальная машина появится в списке VirtualBox, можем её запускать.

Гостевая ОС запустится ровно в том состоянии, в котором была сохранена в последний раз работы с ней.

Добавление новой виртуальной машины из существующего файла «.vdi» – это также способ перенести файл жёсткого диска гостевой ОС на несистемный диск компьютера, если изначально таковой был создан на системном диске, и со временем занимаемое им место стало снижать производительность системы. Для этого необходимо удалить виртуальную машину из списка в главном окне VirtualBox. На выбранной машине вызываем контекстное меню и выбираем «Удалить ».

Затем в появившемся окошке жмём «Убрать из списка ».

После этого можно искать файл жёсткого диска «.vdi» на системном диске (как правило, по умолчанию это путь C:\Users\Имя_пользователя\VirtualBox VMs ), переносить его на несистемный диск и добавлять виртуальную машину заново.

Помогла ли Вам данная статья?

Пожалуй, начну с того, что если вы хотите бэкапы на VMWare, то готовьтесь платить. Бесплатный VMWare - это бесплатно до тех, пока речь не идет о миграциях, бэкапах и тому подобное. На этом месте можно начать бесконечный холивар, но без моего участия. Мои повествования будут только о Hyper-V на Windows Server 2012R2. Хотя часть статьи можно применить и к VMWare, но, вероятно, будут подводные камни.

Бэкапить на Hyper-V мы можем бесплатно, а точнее, теми средствами Windows, за которые мы уже заплатили, приобретая лицензии Windows Server. Для удобства работы с нашими бэкапами (к тому же за это мы тоже заплатили) будем использовать WDS и дедупликацию (может и групповые политики).

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

1.1. Бэкап сегодняшнего дня

Насколько мы знаем, любой Windows умеет делать бэкап. Причем, любые настройки бэкапа Windows через интерфейс сводятся, в конечном счете, к фоновому использованию утилиты wbadmin. А что, собственно, умеет wbadmin? А умеет она делать как бэкап образа с системным разделом, так и бэкап отдельных папок. В данной части статьи нас интересует только бэкап образ (системного раздела). Остальное - это специфичные данные виртуальных машин и бэкапить нужно отдельно. Отсюда вывод: Не храните на системном разделе виртуальных машин (и на обычных компьютерах тоже) никакой ценной информации и баз данных, отдельных приложений. MS SQL Server / MS Exchange / «Сервер приложений 1С» и другое ставим только на не системные разделы или на отдельные диски.

Итак, что же нужно, чтобы бэкап отработал? А нужна всего лишь одна команда:

Wbadmin.exe start backup -backupTarget:\\СерверБэкапа\ПапкаДляБэкапаВнутреннего -allCritical -quiet
На самом деле, для этой команды нужны особые права, но о них позже. Сейчас важно понять одну вещь. Данная команда делает не просто бэкап. Она делает инкрементальный бэкап. Причем, для серверных и настольных (клиентских) Windows бэкапы формируются разные. И разница заключается в том, что для серверных ОС у нас получатся снимки каждого бэкапа, а вот для настольных - снимок останется всегда только последний. Спросите, а что это за такой инкрементальный бэкап? А «инкрементальный» он остается, потому что бэкапим мы не весь образ, а только изменившуюся часть со времени последнего бэкапа (а значит и меньше трафика и быстрее создается бэкап).

Те, кто сталкивался с аналогичной ситуацией заметят, что бэкап всегда будет «инкрементальный» (полный). Так как бэкап происходит в нашем случае на сетевой диск. То есть для серверной Windows снимки остаются тоже только последние.

Позже, выявил, что нет никакой разницы в работе wbadmin на серверной и клиентской ОС. Разве, что разница есть в интерфейсе. wbadmin производит инкрементальный бэкап (кроме первого бэкапа), если указан жесткий диск в ключе -backupTarget (команда использует ключ по умолчанию -vssСopy). Или производит полный бэкап, если добавить ключ -vssFull.

1.2. Бэкап с историей предыдущих снимков

На данный момент, мы сделали бэкап образов виртуальных машин. Но это же у нас бэкап снимков только сегодняшнего дня. Завтра он будет совершенно другой… Но что будет, если бэкапить бэкапы? Да и ещё по-настоящему инкрементально. Так и поступим.

Wbadmin.exe start backup -backupTarget:e: -allCritical -include:d: -quiet #где диск D - бэкапы на сегодня, а диск E - бэкапы с историей
Но мне было этого недостаточно и я сделал так:

(echo select vdisk file="\\СерверБэкапа2\ПапкаДляБэкапа2\ИмяБэкапаДляЭтогоСервера2.vhdx" echo attach vdisk) | diskpart
Скрипт подключает виртуальный диск из сети. После бэкапа подобный же скрипт отключает диск. ОС помнит, что у диска определена буква E. Но не дай бог подсунуть чужой диск с той же буквой E, бэкап отработает уже по полной (не инкрементально и на чужой диск). Имейте это в виду и используйте, букву, ближе к концу алфавита (X, Y, Z)…

Замечу сразу, если бэкап сегодняшний будет производиться параллельно с бэкапом с историей, то получим в итоге бэкап, который невозможно поднять.

Чтобы достать бэкап предыдущих дней можно воспользоваться интерфейсом (GUI) сервера, на котором производятся бэкапы с историей. Более того, все запуски команды wbadmin в консоли Windows знает и помнит. Служба восстановления даст возможность вам выбрать нужный архив в бэкапах с историей.

2. Бэкап файлов vhdx виртуальных машин

Производится легко и непринужденно:

Wbadmin start backup -backupTarget:$BackupPath -hyperv:$VMList -Quiet
Но с некоторыми особенностями. Эта команда должна выполняться в PowerShell и с предварительным получением списка виртуальных машин в переменную. За подробным примером обращаемся в Google.

Бэкап виртуальных машин в Windows Server 2012 R2 идет с помощью моментальных снимков Hyper-V. Также замечу, что происходят приостановка работы виртуальных машин, если на них ядро Linux или отсутствуют Hyper-V драйвера. Я лично отказался бэкапить виртуальные машины таким способом. Причина в том, что на Windows Server 2012 (не R2) требовалось останавливать виртуальные машины до бекапа. Да и сейчас на Windows Server 2012 R2 приостановки Linux меня не устраивают, когда есть первый неплохой способ бэкапа. (в комментариях к данной статье есть замечание). После очередного обновления в Windows Server 2012 R2 бэкап любых виртуальных машин проходит без приостановок. ОС Linux также можно бэкапить «изнутри» с помощь Dump (CentOS, Ubuntu), но это отдельная тема с puppet"ами и другим ПО в моем случае.

3. Восстановление бэкапа и WDS

А теперь, по-моему мнению, самая полезная часть этой статьи про бэкапы.

WDS - это Windows Deployment Services (службы развертывания Windows) и часть функционала Windows Server 2012R2. Раньше эта служба называлась RIS, но я с ней не сталкивался. Вообщем, суть WDS проста. Прописались в DHCP (автоматически для DHCP Windows Server) в виде отдельных параметров и далее загружаем на компьютер по сети (такая настройка BIOS компьютера для загрузки по сети) через TFTP загрузчик WDS. Далее загрузчик WDS позволяет выбрать из доступных на ней образов «загрузчиков» Windows. Загрузчики бывают разные - это и образы загрузчиков установщика, и PE, и RE образы. Для загрузчика установщика ещё нужны образы самих Windows в WDS, но это в случае, если нужно установить Windows по сети. Нас интересуют RE образы, которые позволяют поднять машину из бэкапа.

Как и что работает в WDS подробно объяснять не буду. Но вот важные заметки:

  1. Если у вас загрузчик RE загружается на Hyper-V виртуальной машине по сети, но не работает клавиатура в ней. Поздравляю, ваш RE образ для WinXP или древнее и не знает о существовании Hyper-V драйверов.
  2. Если у вас система начинает восстанавливать бэкап, но останавливается. Удалите все разделы на жестком (на котором восстанавливается бэкап) и попробуйте заново. Только не забывайте, что бэкап может быть битый и после удаления всех разделов на жестком у вас может ничего не остаться от старой информации.
  3. Если бэкап с загрузкой UEFI, а вы хотите восстановить на комп без UEFI, то не стоит тратить время. Скорее всего развернуть бэкап не получится.
  4. Бэкап с загрузкой UEFI и разделами GPT можно восстанавливать на машины с другим процессором / материнкой, а вот с разделами MBR формата и с загрузкой обычного BIOS на другой машине развернуть вряд ли получится. Ну у меня точно не получалось.
  5. Если бэкап пытаться развернуть на диск с меньшим объемом, то сделать это не получится. Даже если диск в бэкапе был почти пуст. В этом случае помогает восстановление на виртуальную машину с динамическим диском. Далее уменьшение этого диска и создание нового бэкапа. Но такое можно только с загрузчиком UEFI в бэкапе (почему, читаем предыдущий пункт).
  6. Стоит перед восстановлением бэкапа отключить лишние диски, чтобы не затереть информацию на них.

4. Особенности дедупликации

Можно дедуплицировать работающие виртуальные машины. Можно дедуплицировать бэкапы сегодняшнего дня и можно дедуплицировать бэкапы с историей. Все это дает большой положительный плюс к объему жестких дисков (как для HDD, так и SSD). Но не стоит забывать о некоторых вещах:
  1. Если дедупликация будет работать с дисками с объемом более чем 1 ТБ, то оптимизатор дедупликации будет использовать очень много памяти.
  2. Если дедупликация будет работать с сжатыми данными, но с объемом сжатого более чем 10 ТБ, то длительность работы оптимизатора дедупликации будет слишком большим. Такое может получиться, если просто копировать данные ежедневно на дедуплицированный диск в разные папки.
  3. Бэкапы на HDD хранить можно и даже нужно, а вот рабочие виртуальные машины хранить на HDD в количестве больше 5-10 не стоит. К дедупликации это относиться с той лишь стороны, что дедупликация таких рабочих виртуальных машин сведет производительность HDD в ноль.

5. Групповые политики

Вот тут можно долго и по-разному реализовывать установку скрипта бэкапа с помощью GPO. Но хотелось бы обратить внимание на важные моменты:
  1. Бэкап проводить только от имени отдельной учетной записи пользователя.
  2. Не хранить скрипты с паролям в групповых политиках.
  3. Запускать скрипт с особыми правами на чтение всей информации системы.
Ну и, собственно, вывод : Бекап с помощью средств wbadmin возможен, вполне реализуем и главное жизнеспособен. Но только, если у вас есть время и много терпения на всякие мелочи. Так, например, в статье ничего не сказано, как проводить мониторинг успешно созданных бэкапов. Мне удалось сделать мониторинг на Zabbix, но об этом можно написать ещё пару статей… Надеюсь, статья будет вам полезна и сэкономит море бесценного времени.

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

Уровни согласованности файлов резервного копирования

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

  • тип системы (была ли сделана резервная копия «живой» или выключенной системы)
  • учет файлов (могут ли взаимозависимые файлы быть четко определены относительно друг друга)
  • учет приложений (была ли использована защита для предотвращения потерь данных на разных уровнях, в том числе уровне транзакций)

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

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

Первый и самый старый тип резервного копирования - использование несогласованных копий. Его можно представить как операцию копирования всех данных компьютера в процессе его работы на USB-флешку или сетевое хранилище. Если в течение копирования изменится хотя бы один файл, резервная копия станет несогласованной. Это значит, что сумма данных резервной копии будет отличаться от актуального состояния системы, а восстановление данных произойдет неточно или не полностью. Этот тип также не предполагает сохранение дампа оперативной памяти и может испытывать трудности с файлами, доступными «только для чтения».

Резервная копия без учета состояния приложений

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

Тем не менее, восстановление образа системы из такой копии приблизительно равносильно включению компьютера после сбоя в электропитании. Данные открытых на момент сбоя приложений и активные (на момент сбоя) операции ввода-вывода не могут быть восстановлены. В некоторых случаях при запуске приложений после восстановления нужно произвести специальные операции для восстановления их работоспособности. Особенно опасен такой случай для приложений баз данных. Например, Microsoft Exchange сервер может потребовать установки специальной группы восстановления и отдельной интеграции логов. Приложения Microsoft SQL или Oracle потребуют восстановления состояния баз данных с точностью до определенной транзакции, так как сбой в их работе нарушил последовательность операций, и некоторые транзакции нужно выполнить заново, чтобы они были зафиксированы системой.

Резервная копия, согласованная на уровне файлов

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

Резервная копия, согласованная на уровне транзакций

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

Для ВМ, работающих под управлением Windows, Veeam помогает сделать резервную копию полностью согласованной, используя службу теневых копий (VSS). Эта служба разработана компанией Microsoft и включена во все редакции операционных систем Windows, начиная с Windows Server 2003. Служба теневых копий координирует процессы, подготавливающие систему к заморозке. Она позволяет временно приостановить операции ввода-вывода на жесткий диск и, таким образом, помогает программному обеспечению для резервного копирования.

«Резервное копирование с учетом состояния приложений» (application-aware image processing) –технология Veeam, которая гарантирует успешное полное восстановление ВМ и данных приложений ВМ без потерь данных.

Veeam Backup & Replication не устанавливает программные агенты на ВМ. Вместо этого на гостевой машине запускается сервисное приложение для координации резервного копирования гостевой ОС. По окончании копирования приложение автоматически удаляется. Механизм разработан таким образом, чтобы предотвратить потенциальные трудности с предустановкой, поиском неисправностей и обновлением программных агентов.

Veeam Backup & Replication инициирует запуск службы теневых копий и посылает запрос на создание согласованного содержимого диска ВМ перед тем, как снять снимок ВМ. Затем провайдер службы теневых копий координирует подготовку приложений к резервному копированию. Так обеспечивается согласованность данных в точно определенный промежуток времени. Таким образом, гарантируется отсутствие незаконченных и неподтвержденных операций в базе данных или неполных файлов приложений в момент копирования содержимого ВМ.

Как убедиться, что резервная копия согласована?

На этапе конфигурирования задания резервного копирования или репликации нужно убедиться, что на вкладке “guest processing” активирована опция “enable application-aware processing” для ВМ, которые выбраны в это задание. Затем можно запускать задание в работу и проверять статус его выполнения.

Использование механизма «резервного копирования с учетом состояния приложений» для особенно критично в случае резервных копий SQL или Exchange серверов, так как позволяет контролировать рост логов транзакций и усекать их при необходимости. В противном случае контроль за ростом логов происходит в ручном режиме.

Служба теневых копий прекрасно работает для современных машин под управлением ОС Windows, но в случае Linux окружения необходимо использовать другой метод.

Функция заморозки (quiescence) от VMware

Например, для виртуальных машин, работающих на VMware ESXi серверах, VMware предоставляет опцию «заморозки» (quiescence). Эта функция позволяет заранее замораживать операции ввода-вывода гостевой ОС, когда сервер готовится снять копию виртуальной машины. Подробную инструкцию по работы с этой опцией можно прочитать в .

В заданиях резервного копирования Veeam можно использовать одновременно опции «Резервное копирование с учетом состояния приложений» и «заморозку» от VMware. В таком случае Veeam Backup & Replication по умолчанию будет использовать первую опцию, а в случае неудачи или невозможности её использования переключится на другую.

Проверить возможность восстановления данных из резервной копии можно с помощью .

Полезные ресурсы

  • Блог Veeam: (англ.яз)
  • Справочное руководство: « » (англ.яз)

GD Star Rating
a WordPress rating system

Как гарантировать согласованность данных резервной копии , 3.2 из 5 на основании 5 отзывов