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

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

Сегодня любой системный администратор осознает важность сохранности не только файловых данных, но и данных приложений — Microsoft SQL Server, Exchange Server, Active Directory и подобные им приложения оперируют с данными, которые могут располагаться в одном файле с точки зрения файловой системы, но внутри представлять собой сложную структуру, сопоставимую по сложности с самой файловой системой. Логическая структура таких данных может быть нарушена при выполнении резервного копирования. На практике это означает, что такое копирование должно выполняться на уровне внутренней структуры данных приложений и одновременно на уровне файлов, папок файловой системы и диска виртуальной машины. Различные продукты резервного копирования используют разные подходы к решению этой задачи.

Наиболее распространенным способом обеспечения корректности резервного копирования на уровне приложений является использование механизма Volume Shadow Copy (VSS), позволяющего передать приложениям команду записи данных на диск (см. рисунок). Особую важность этот механизм приобрел для виртуальной среды, поскольку при создании резервной копии виртуальной машины необходимо обрабатывать ее целиком. Резервное копирование виртуальной машины на уровне образа диска требует создания копии файла диска виртуальной машины. При этом нужно принимать во внимание, что виртуальная машина по интенсивности работы с диском сопоставима с приложением базы данных, работающим со своим файлом. Для диска виртуальной машины в целом актуальны те же задачи, что и для приложений: создание снимков диска на заданный момент времени и своевременная запись данных, временно хранящихся в памяти.

 

VSS в среде vSphere
VSS в среде vSphere

 

От корректности реализации и надежности механизма работы с приложениями, заложенного в продукте резервного копирования, зависит, насколько надежно будут защищены данные. Например, в начале декабря 2012 года компания VMware обновила статьи своей базы знаний, указав на то, что из-за проблем в механизме работы VMware Tools VSS продукты резервного копирования VMware vSphere Data Protection и VMware Data Recovery не поддерживают копирование на уровне приложений на виртуальных машинах с Windows Server 2008 R2. В связи с вероятностью появления подобных проблем, в продукты резервного копирования обычно встраиваются собственные реализации механизма интеграции с Windows VSS.

Резервное копирование на уровне хоста позволяет разработчикам приложений воспользоваться возможностями, предоставляемыми виртуальной средой, например функциями программной платформы VMware vSphere APIs for Data Protection (VADP) в целом и, в частности, ее компонентом Changed Block Tracking (отслеживание изменений на уровне блоков). Это позволяет увеличить скорость работы специализированных продуктов резервного копирования по сравнению с традиционными за счет большей пропускной способности новых интерфейсов, эффективного способа определения изменившихся блоков информации и ряда других факторов. Иначе говоря, уменьшается окно резервного копирования, что означает сокращение времени простоя продуктивной сети; снижается RPO (максимальный период времени, в течение которого данные могут оставаться незарезервированными) за счет возможности компактной репликации изменений с периодом меньше получаса; сокращается RTO (максимальное время восстановления системы) благодаря работе с виртуальными машинами через специализированные интерфейсы виртуальной среды, изолирующие виртуальную машину от конкретного оборудования сервера.

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

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

Технология VMware vStorage API для создания резервных копий в ЦОД меняет саму модель резервного копирования — вместо копирования миллионов файлов администраторы работают с несколькими сотнями образов, которые копируются на уровне блоков данных. Однако от разработчиков приложений на любой платформе всегда требуется учет того факта, что какая-либо функция в платформе может работать некорректно. Это особенно важно учитывать для таких критически важных для бизнеса приложений, как продукты резервного копирования. Например, проблемы в последней версии vSphere, приводящие к сбоям выполнения программ резервного копирования и восстановления, могут быть устранены в случае использования продукта Veeam Backup & Replication или пакета Veeam Backup Management Suite, который работает корректно благодаря изначальной настройке на работу в нестабильных средах (отказы сетевых устройств и серверного оборудования, логические сбои файловой системы, нарушения целостности файлов, потери сетевых пакетов, искажение данных при передаче).

На практике иногда возникает ситуация, когда некоторые сетевые карты передают IP-пакет с искаженными данными (неверной контрольной суммой) в ОС как корректный. Эта проблема становится особенно актуальной при передаче большого объема данных через глобальные сети (например, при передаче резервных копий между географически разнесенными ЦОД). В результате можно получить искаженные резервные копии, которые будут считаться корректными, но в нужный момент окажутся бесполезными. В архитектуре Veeam Backup & Replication предусмотрена защита от передачи некорректных пакетов, благодаря чему гарантируется, что данные сессии резервного копирования будут эквивалентны оригиналу и с копий гарантированно может быть выполнено восстановление.

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

  • резервное копирование на уровне хоста, через слой виртуализации, — позволяет существенно повысить скорость работы, уменьшить окно резервного копирования, уменьшить RPO в режиме репликации данных и упростить процесс восстановления, а также сократить RTO;
  • резервное копирование на уровне приложений — позволяет гарантировать целостность данных и работоспособность приложений после восстановления за счет интеграции с Windows VSS;
  • автоматизированное регулярное тестирование резервных копий на уровне проверки работоспособности приложений после восстановления — обычно осуществляется путем тестового восстановления в изолированной среде («песочнице»), однако иногда в некоторых продуктах под тестированием резервных копий может подразумеваться лишь возможность формальной проверки целостности контрольных сумм блоков резервных копий на диске, без проведения моделирования восстановления на уровне приложений, что явно недостаточно для обеспечения гарантии восстановления;
  • дедупликация данных резервных копий — позволяет снизить затраты на системы хранилища данных;
  • техническая поддержка.

***

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

Александр Ширманов (inform@veeam.com) — директор по исследованиям и разработкам, Veeam Software (Москва).