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

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

 

Предшествующий уровень техники

1. Область техники, к которой относится изобретение

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

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

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

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

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

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

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

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

Краткое изложение сущности изобретения

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

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

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

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

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

Перечень чертежей

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

Фиг.1A иллюстрирует общий схематический чертеж в соответствии с осуществлением настоящего изобретения, на котором приложение резервного копирования уровня хоста идентифицирует, с каких одной или более виртуальных машин могут быть сделаны резервные копии согласованным образом;

Фиг.1B иллюстрирует компоненты по фиг.1A, в которых хост-сервер инициирует процессы резервного копирования в связи с гостевым запросчиком уровня виртуальной машины в виртуальной машине в соответствии с осуществлением настоящего изобретения;

Фиг.1C иллюстрирует компоненты по фиг.1A-1B, в которых запросчик хост-сервера создает моментальные снимки томов хоста, в которых установлены одна или более виртуальных машин, так что моментальные снимки уровня хоста также содержат данные томов виртуальной машины, которые, в свою очередь, содержат моментальные снимки уровня виртуальной машины, выполненные ранее виртуальными машинами;

Фиг.1D иллюстрирует обзорный схематический чертеж в соответствии с осуществлением настоящего изобретения, в котором приложение резервного копирования, иллюстрированное на фиг.1A-1C, извлекает данные моментального снимка уровня хоста, имеющие данные моментального снимка уровня виртуальной машины, содержащиеся в них; и

Фиг.2 иллюстрирует блок-схемы способов, содержащих последовательности действий в соответствии с осуществлениями настоящего изобретения со стороны хост-сервера и виртуальной машины для предоставления согласованных с приложениями резервных копий виртуальных машин, установленных на одном или более томах хост-сервера.

Подробное описание

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

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

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

Соответственно, фиг.1A иллюстрирует примерный хост-сервер 100, выполненный с возможностью управлять томами 110 и 115. В томах 110 и 115 установлены виртуальные машины 120 и 130 соответственно. С целью объяснения, хотя каждая виртуальная машина 120, 130 может быть задумана как отдельная вычислительная система на одном уровне, каждая виртуальная машина 120, 130 может также быть задумана как набор "файлов" (например, файл конфигурации виртуальной машины или "VMC" и один или более файлов виртуального жесткого диска - "VHD"), при взгляде с уровня хоста 100. В любом случае, хотя фиг.1A иллюстрирует одну виртуальную машину в каждом томе, это не требуется, и может быть установлено несколько виртуальных машин на любом томе данного хост-сервера 100. Подобным образом, каждая виртуальная машина может охватывать множество томов на одном или более хост-серверах.

Кроме того, каждая виртуальная машина может управлять дополнительными логическими дисками, которые эффективно выполнят роль дополнительных распределений томов в распределении(ях) тома, на котором установлена данная виртуальная машина. Например, фиг.1A показывает, что виртуальная машина 120 также управляет одним или более виртуальными физическими дисками, которые, тем не менее, являются частью хост-тома 100. Как правило, каждый виртуальный физический диск может также быть представлен файлом, таким как файл виртуального жесткого диска (т.е. VHD 123, 127 и т.д.). В частности, VHD-файл показан как физический диск внутри виртуальной машины, которая может дополнительно содержать дополнительный один или более томов (не показаны), содержащиеся на нем, при этом каждый том имеет свой собственный глобальный уникальный идентификатор ("GUID"). Таким образом, VHD-файл 123 (который в этой иллюстрации содержит только один том для простоты) может, таким образом, иметь том, который показан как логический диск "m:\" - или некоторый другой уникальный идентификатор, подходящий для данной операционной системы, в то время как VHD 127 (который также в этом случае включает в себя только один том) может иметь том, который показан в сети как "n:\", и т.д.

Кроме того, фиг.1A показывает, что хост 100 содержит приложение 105 резервного копирования, которое может также называться как "хост-запросчик" или "запросчик уровня хоста". Как правило, приложение 105 резервного копирования содержит последовательности выполняемых компьютером инструкций, сконфигурированных, чтобы управлять событиями резервного копирования на хосте 100. В одном осуществлении, таком как, например, операционная среда фирмы MICROSOFT, приложение 105 резервного копирования содержит запросчик службы теневого копирования томов ("VSS"). Фиг.1A также показывает, что приложение 105 резервного копирования, в свою очередь, может быть сконфигурировано, чтобы направлять свои инструкции резервного копирования через средство 125 записи хоста, которое также может называться как "средство записи хоста", "средство записи уровня хоста" или "VSS-средство записи виртуального сервера уровня хоста".

Как правило, средство 125 записи хоста содержит последовательности исполняемых компьютером инструкций, сконфигурированных, чтобы осуществлять инструкции резервного копирования, принятые от приложения 105 резервного копирования. В одном осуществлении, таком как в среде MICROSOFT, например, средство 125 записи хоста может содержать VSS-средство записи, такое как VSS-средство записи, используемое с MICROSOFT VIRTUAL SERVER. С целью объяснения ссылка в данном документе на компоненты MICROSOFT является только иллюстративной. В частности, специалист поймет после прочтения этой спецификации и формулы, что компоненты, модули, системы и функции, описанные в данном документе, могут быть применены к широкому множеству компонентов, модулей и функций, используемых в других операционных средах.

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

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

Соответственно, фиг.1A показывает, что приложение 105 резервного копирования (т.е. "запросчик хоста") запускает службы резервного копирования по меньшей мере частично, отправляя запрос 103 средству 125 записи хоста. В этом случае запрос 103 предписывает средству 125 записи хоста идентифицировать, по каким виртуальным машинам могут быть созданы резервные копии "без простоя". Например, запрос 103 предписывает средству 125 записи хоста установить, какие из виртуальных машин 120, 130 и т.д. содержат соответствующие гостевые средства записи и/или запросчики для выполнения внутреннего согласованного с приложениями резервного копирования. В одном осуществлении в среде MICROSOFT, например, такие компоненты могут включать в себя совместимые с "VM-дополнениями", которые используются в инфраструктуре MICROSOFT VIRTUAL SERVER.

Эти и другие подобным образом сконфигурированные компоненты виртуальной машины сконфигурированы, чтобы взаимодействовать в виртуальной машине (и отвечать на инструкции от), например, с VSS-средством записи виртуального сервера уровня хоста. Фиг.1A также показывает, что при приеме запроса 103 средство 125 записи хоста может связываться через сообщение 111 (которое может быть, например, приватным интерфейсом прикладного программирования - "приватным API") с виртуальной машиной 120 и идентифицирует, что виртуальная машина 120 сообщает о компонентах в соответствии с "версией x". Например, фиг.1A показывает, что виртуальная машина 120 включает в себя "гостевой запросчик 140".

Фиг.1A также показывает, что средство 125 записи хоста дополнительно связывается (например, через сообщение 111) с виртуальной машиной 130 и что средство 125 записи хоста идентифицирует, что виртуальная машина 130 сообщает о компонентах согласно "версии y". В этом отдельном случае "версия y" означает, что виртуальная машина 130 не имеет соответствующих компонентов для процессов согласованного резервного копирования. В ответ на свои связи с виртуальными машинами (например, 120, 130 и т.д.) средство 125 записи хоста может отправить одно или более сообщений о своих собранных ответах обратно приложению 105 резервного копирования. Например, средство записи отправляет сообщение 113, которое указывает, что виртуальная машина 120 имеет версию "x", и сообщает о соответствующих компонентах и дополнительно указывает, что виртуальная машина 130 имеет версию "y", но не сообщает о соответствующих компонентах.

После приема фиг.1A показывает, что приложение 105 резервного копирования может получить сообщение 113 и сделать свои собственные определения о том, с каких виртуальных машин должны быть сделаны резервные копии, а с каких виртуальных машин не должны быть сделаны резервные копии. Например, фиг.1A показывает, что модуль 107 определения синтаксически разбирает информацию сообщения 113, помещает виртуальную машину 120 в категорию "VM для резервного копирования без простоя" и помещает виртуальную машину 130 в категорию "VM для резервного копирования с некоторым простоем" (или VM не для резервного копирования). В альтернативных осуществлениях средство 125 записи хоста просто делает свои собственные определения о том, для чего должно или не должно быть сделано резервное копирование (или резервное копирование с некоторым простоем), и затем сообщает такие категории обратно приложению 105 резервного копирования. В любом случае иллюстрированные категории сами по себе необязательно означают, что для виртуальной машины 130 не должно быть сделано резервное копирование. В большинстве случаев это просто означает, что с виртуальной машины 120 не может быть сделано резервное копирование соответственно согласованным образом, а виртуальная машина 130 может быть сконфигурирована, только чтобы сделать резервное копирование согласованным образом с некоторым простоем. После распределения по категориям каждой виртуальной машины приложение 105 резервного копирования начинает выполнение процессов резервного копирования.

Как показано на фиг.1B, например, приложение 105 резервного копирования отправляет инструкции 117a средству 125 записи хоста. Инструкции 117a, в свою очередь, говорят средству 125 записи хоста начать согласованные с приложениями процессы резервного копирования по меньшей мере относительно виртуальной машины 120. Средство 125 записи хоста затем подготавливает свое собственное сообщение 117b, которое говорит виртуальной машине начать "с участием средства записи" процессы резервного копирования. Средство 125 записи хоста затем отправляет сообщение 117b каждой виртуальной машине (например, 120), указанной приложением 105 резервного копирования, а каждая указанная виртуальная машина, в свою очередь, принимает сообщение 117b через свой соответствующий расположенный внутри гостевой запросчик.

Например, фиг.1B показывает, что гостевой запросчик 140 виртуальной машины 120 принимает сообщение 117b. В одном варианте осуществления средство 125 записи хоста может связываться (например, сообщение 111, 117b и т.д.) с гостевым запросчиком 140 через один или более приватных API, через вызовы удаленных процедур ("RPC") и т.п., хотя это не требуется во всех вариантах осуществления. В других осуществлениях, таких как, если средство 125 записи хоста и гостевой запросчик 140 расположены в раздельных местоположениях сети (или даже различных доменах), средство 125 записи хоста может связываться с другими соответствующими интерфейсами связи и/или компонентами. В частности, специалист поймет, что осуществления настоящего изобретения могут также быть применены на практике, даже когда необходимо сделать резервную копию виртуальной машины из удаленного местоположения через глобальную вычислительную сеть.

В любом случае и после запуска гостевой запросчик 140, таким образом, начинает процессы резервного копирования своих томов в соответствии с первоначальными инструкциями приложения 105 резервного копирования. Как показано на фиг.1B, например, гостевой запросчик 140 отправляет внутреннее сообщение 117c виртуальной машины приложениям, установленным на любых томах, управляемых виртуальной машиной 120. Сообщение 117c может включать в себя инструкции для каждого средства записи приложения (например, VSS-средства записи, не показано), чтобы подготовить для согласованных с приложениями процессов резервного копирования каждого тома, управляемого в нем, тома, содержащиеся на своих физических дисках (т.е. представленные VHD-файлами 123, 127). Как правило, каждое средство записи приложения может содержать исполняемые компьютером инструкции, которые могут быть включены в приложения и службы в виртуальной машине и которые помогают обеспечить согласованные с приложениями резервные копирования данных приложения.

Для приложений, которые работают при приеме запроса 117c, средство записи приложения может ответить, например, посредством подготовки своих хранилищ данных и гарантирования того, что в томе не будут выполняться записи (например, 123, 127), пока создается моментальный снимок. Чтобы сделать данные на диске согласованными, средство записи приложения может также сбросить свои буферы на диск или записать данные в памяти на диск. Кроме того, средство записи приложения может предоставлять информацию об имени приложения, иконках, файлах, которые включать или исключать, и стратегии восстановления файлов. Для приложений, которые не работают, соответствующее средство записи приложения может не отвечать на сообщение 117c, и гостевой запросчик 140 может, таким образом, предположить, что все данные, управляемые средствами записи приложений, в томе являются согласованными, базы данных закрыты и не требуется дополнительных действий для того, чтобы выполнить резервное копирование.

Как правило, средство записи приложения в соответствии с одним или более осуществлениями настоящего изобретения может быть ассоциировано с одним или более компонентами. Каждый компонент, в свою очередь, может содержать группу файлов (например, базу данных и набор журнальных файлов), которые должны быть скопированы как целое. Таким образом, каждому средству записи приложения не нужно предоставлять данные о каждом компоненте и каждом соответствующем файле компонента соответствующей службе резервного копирования (например, запросчику виртуальной машины, например гостевому запросчику 140). Каждое средство записи приложения может дополнительно предоставлять информацию о восстановлении данных на покомпонентной (и, следовательно, по каждому файлу каждого компонента) основе. В одном осуществлении, например, средство 125 записи хоста может предоставить список файлов, используемых, чтобы сохранить постоянную информацию об управляемых виртуальных машинах (например, 120, 130 и т.д.). Средство 125 записи хоста может сообщить, например, для каждой виртуальной машины путь файла конфигурации отдельной виртуальной машины, любые пути файла виртуального жесткого диска и т.д.

В любом случае и в ответ на инструкции 117c фиг.1B показывает, что соответствующие средства записи приложения в томах 123 и 127 создают согласованное с приложениями состояние данных своих томов. Данные тома, сообщенные релевантными приложениями для тома в соответствующем файле физического диска (например, VHD 123, 127), заключены в моментальные снимки тома. Например, фиг.1B показывает, что данные 145 тома в VHD 123 копируются как "чистовая копия данных" 155 и данные 150 в VHD 127 копируются как "чистовая копия данных" 160. Как правило, эти "чистовые" копии данных 155, 160 являются согласованными копиями (например, теневой копией тома) данных в моментальном снимке гостевого тома и, как правило, не составляют отдельные копии от самого моментального снимка. В частности, "чистовые копии" 155, 160, по существу, являются согласованными с приложениями копиями данных тома в моментальных снимках, содержащихся в файлах виртуального жесткого диска (VHD) 123 и 127 (фиг.1A) соответственно.

После того как каждая соответствующим образом сконфигурированная виртуальная машина (например, 120) сделала свою собственную внутреннюю, согласованную с приложениями (или "чистовую") копию томов своего физического диска (например, копия 155 данных 145), средство 125 записи хоста может предоставить возможность приложению 105 резервного копирования перейти к созданию моментальных снимков хост-томов (например, 110), на которых установлены соответствующим образом сконфигурированные виртуальные машины (например, 120). Данные тома виртуальной машины внутри этих моментальных снимков уровня хоста, однако, необязательно являются согласованными с приложениями (т.е. "черновыми" или "согласованными с аварийным отказом").

Как правило, "черновые" копии являются такими, что не могут быть гарантированы как согласованные с приложениями относительно данных тома виртуальной машины по меньшей мере частично, так как они не запускают процессы создания моментальных снимков приложения с участием средства записи в виртуальных машинах. Например, хост 100 может использовать средства записи приложения уровня хоста (например, средство 125 записи хоста), чтобы создавать резервную копию данных тома 110 с помощью процессов с участием средства записи, но, как упомянуто ранее, эти средства записи приложения уровня хоста будут только копировать файлы всей виртуальной машины, как они видимы хостом. Как результат, даже если использовать средства записи приложения уровня хоста, чтобы создавать согласованные с приложениями копии данных тома уровня хоста, каждая лежащая в основе виртуальная машина может подвергнуться различным изменениям данных в момент создания резервной копии тома 110 уровня хоста.

Например, фиг.1C показывает, что средство 125 записи хоста отправляет сообщение 157 приложению 105 резервного копирования, в котором сообщение 157 указывает, что резервное копирование виртуальной машины (например, 120) завершено. По существу, приложение 105 резервного копирования может приступить к созданию моментальных снимков уровня хоста тома 110 хоста (и также тома 115 и т.д., если подходит). В ответ фиг.1C показывает в этом примере, что приложение 105 резервного копирования инициирует (например, сигнал 135) процессы резервного копирования в томах 110, 115 и т.д. В одном осуществлении, например, хост-запросчик 105 инициирует процессы резервного копирования с участием средства записи и создает согласованный с приложениями моментальный снимок данных по томам 110, 115 уровня хоста (т.е. согласованные с приложениями помимо файлов виртуальной машины) через VSS-компонент уровня хоста (не показан).

Например, фиг.1C показывает, что хост 100 создает моментальный снимок 167, 173 томов 110, 115 хоста. Моментальные снимки 167, 173 также включают в себя копии VHD-файлов виртуальной машины, содержащиеся в ней (т.е. VHD-файл 123 внутри тома 110 и т.д.). Следовательно, во время моментального снимка уровня хоста виртуальные машины 120, 130 не имеют своих соответствующих средств записи, задействованных в процессах моментальных снимков, скорее, моментальные снимки уровня хоста включают в себя данные VHD-тома (например, 156, 161) для томов уровня виртуальной машины, которые не являются согласованными с приложениями. Тем не менее, так как релевантная виртуальная машина уже сделала согласованную с приложениями копию своих томов, VHD-данные 156 в моментальном снимке 167 уровня хоста включают в себя ранее созданный (т.е. созданный виртуальной машиной) согласованный с приложениями моментальный снимок 155. Подобным образом, VHD-данные 161 в моментальном снимке 167 уровня хоста включают в себя ранее созданный (т.е. созданный виртуальной машиной) согласованный с приложениями моментальный снимок 160. Как упомянуто выше, VHD-данные 156, 161 в моментальном снимке 167 (также 173) уровня хоста VHD-файлов 123, 127, как правило, в целом являются согласованными с аварийным отказом.

После создания моментальных снимков 167, 173 уровня хоста томов уровня хоста хосту 100 будет необходимо извлечь моментальный снимок уровня виртуальной машины из моментальных снимков 167, 173 томов уровня хоста. В одном осуществлении это затрагивает восстановление VHD-данных 156, 161 моментального снимка уровня хоста обратно в соответствующие данные 155, 160 моментального снимка уровня виртуальной машины. Чтобы выполнить это, средство 125 записи хоста может сначала смонтировать эти моментальные снимки уровня хоста и уровня виртуальной машины в файловой системе с помощью любого числа соответствующих компонентов, чтобы предоставить лежащие в основе данные. Например, приложение 105 резервного копирования может сконфигурировать средство 125 записи хоста, чтобы сделать моментальные снимки 167, 173 и т.д. хоста (и моментальные снимки лежащих в основе VHD-файлов) записываемыми (предпочтительнее, чем только читаемыми). Кроме того, средство 125 записи хоста может получить ID этих устройств для моментальных снимков уровня хоста и использовать их, чтобы идентифицировать различные "ID устройств", соответствующие инкапсулированным VHD-файлам (например, 123, 127).

При предоставлении VHD-файлов виртуальной машины из записываемых моментальных снимков 167, 173 уровня хоста хост-сервер 100 может затем установить ID каждого устройства, соответствующего VHD-файлу, так что каждый VHD-файл предстает как физический диск на уровне хоста. В частности, средство 125 записи хоста может использовать ID устройств для VHD-файлов 123 и 127 в моментальном снимке хоста в сочетании с компонентом-монтирования образа, чтобы идентифицировать каждый том в VHD-файлах 123 и 127. Например, фиг.1C показывает, что хост-сервер (например, через средство 125 записи хоста) отправляет инструкции 175, чтобы смонтировать ID устройств, включающие в себя в качестве аргументов ID устройства для VHD-файла 123 и VHD-файла 127. В одном осуществлении особенно относительно операционной среды MICROSOFT, например, хост 100 может использовать компонент "VHDImageMounter", чтобы принимать и выполнять инструкции 175 по монтированию.

Монтирование VHD-файлов 123, 127 из моментального снимка 167 хоста, в свою очередь, может предоставить операционные системы в этих VHD-файлах, которые, в свою очередь, предоставляют возможность предоставления на хост-сервере 100 моментальных снимков 155, 160 уровня виртуальной машины. В частности, монтирование VHD-файлов 123, 127 из моментального снимка 167 хоста тома 110 в этом случае предоставляет моментальные снимки 155, 160 уровня виртуальной машины внутри различных VHD-данных 156, 161 моментального снимка 167 хоста. Таким образом, фиг.1C также показывает, что хост 100 предоставляет VHD-файл 123 внутри моментального снимка 167 хоста как логический диск "х:\", который предоставляет VHD-данные 156; и дополнительно предоставляет ранее созданные данные 155 моментального снимка уровня виртуальной машины в нем; и дополнительно монтирует VHD-файл 127 из моментального снимка 167 хоста как логический диск "y:\", где моментальный снимок 167 хоста также включает в себя VHD-данные 161, в которых предоставляются данные 160 ранее созданного моментального снимка уровня виртуальной машины.

Теперь, когда приложение 105 резервного копирования смонтировало VHD-файлы 123, 127 из моментального снимка 167 хоста, приложение 105 резервного копирования может теперь вернуть VHD-данные 156, 161 моментального снимка 167 уровня хоста обратно в VHD-данные 155, 160 моментальных снимков тома уровня виртуальной машины. Как показано на фиг.1D, например, приложение 105 резервного копирования использует интерфейс 185 компонента (например, интерфейс VSS-компонента), чтобы вернуть к предшествующему состоянию данные чернового и чистового моментального снимка на логических дисках "x" и "y". В одном осуществлении приложение 105 резервного копирования использует интерфейс 185, чтобы просто удалить или перезаписать VHD-данные 156, 161 и заменить их соответствующими чистовыми VHD-данными 155, 160.

После этой замены приложение 105 резервного копирования не только корректирует или регулирует (т.е. возвращает, заменяет) данные моментального снимка VHD-файлов 123, 127, но также изменяет полный моментальный снимок 167 уровня хоста так, что лежащие в его основе данные тома уровня виртуальной машины теперь являются полностью согласованными. Т.е. все данные виртуальной машины в моментальных снимках уровня хоста могут теперь также рассматриваться как согласованные с приложениями. Кроме того, управление моментальными снимками 155, 160 уровня виртуальной машины помещено в управление процессами резервного копирования хоста 100. Таким образом, когда хост 100 делает свою собственную согласованную с приложениями резервную копию моментальных снимков своих томов, это резервное копирование уровня хоста может теперь включать в себя согласованное с приложениями резервное копирование каждой соответствующим образом сконфигурированной виртуальной машины.

Идентифицированные выше компоненты и процессы описаны, прежде всего, для случая, в котором идентифицированные виртуальные машины (например, 120) предоставляют ответ, который указывает конфигурацию с соответствующими программными компонентами для создания согласованной резервной копии. Конкретно, резервные копии таких виртуальных машин (например, 120) могут быть сделаны с небольшим простоем или без простоя. Как упомянуто ранее, однако, могут быть альтернативные случаи, в которых данная виртуальная машина не предоставляет ответ, так как она не работает, или предоставляет ответ, который указывает, что она не сконфигурирована, чтобы создавать согласованные резервные копии. Например, виртуальная машина 130 может быть запущенной операционной системой, которая не включает в себя определенные необходимые программные компоненты, например соответствующие приложения средства записи (например, текущая версия службы теневого копирования), соответствующий гостевой запросчик (например, 140) и т.п. В таких альтернативных случаях осуществления настоящего изобретения могут, тем не менее, предоставлять по меньшей мере согласованные с аварийным отказом резервные копии виртуальных машин (например, 130), которые могут требовать или не требовать по меньшей мере некоторый последующий простой, если позже необходимо гарантировать, чтобы данные были согласованными.

Например, средство 125 записи хоста может вызывать интерфейс связи (не показан) и инструктировать интерфейс, чтобы сохранить все состояние виртуальной машины 130 (и/или других подобным образом ограниченных виртуальных машин). В одном осуществлении, в частности, относительно операционной среды MICROSOFT, например, средство 125 записи хоста может вызвать интерфейс связи виртуального сервера (т.е. "VS COM API", не показан). Интерфейс связи может затем сообщить средству 125 записи хоста, когда он закончил сохранение состояния виртуальной машины 130. В частности, интерфейс связи может сообщать это средству 125 записи хоста, которое, в свою очередь, позволяет приложению 105 резервного копирования создавать моментальный снимок соответствующего тома хоста, в котором постоянно находится виртуальная машина 130 (т.е. том 115).

В дополнение к сохранению состояния виртуальной машины 130 интерфейс связи может также немедленно приостановить или остановить операции виртуальной машины с помощью любых соответствующих виртуальных и/или личных API. Если интерфейс связи идентифицирует, например, какие-либо изменения в состоянии виртуальной машины 130, интерфейс связи может сообщать эту информацию. Такое сообщение может, в свою очередь, отклонить операции резервного копирования и вызвать повторный запуск в более подходящее время. В частности, приложение 105 резервного копирования может продолжать повторять эти этапы до тех пор, пока приложение 105 резервного копирования не закончило создание моментальных снимков тома 115 в состоянии желаемой согласованности.

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

Еще в одном осуществлении компоненты в соответствии с настоящим изобретением могут дополнительно включать в себя использование драйвера аппаратных средств, чтобы предоставить многие из согласованных функций моментального снимка, описанных ранее. При использовании драйвера аппаратных средств, например "драйвера аппаратных средств VSS" (например, драйвера сети/зеркального копирования), накопитель тома 110, 115 может постоянно находиться в "дисковом массиве", который "зеркально копируется" в отдельное местоположение. В момент создания моментального снимка уровня хоста (т.е. несогласованного с приложениями для виртуальной машины) драйвер аппаратных средств может просто "разбить" зеркало между томом и его соответствующей зеркальной копией. Это может предоставить моментальный снимок уровня хоста как отдельное, автономное дисковое устройство. Приложение 105 резервного копирования может затем вызвать любое число служб виртуальных дисков ("VDS") и/или API сервера теневого копирования тома ("VSS"), чтобы сделать зеркальную копию тома записываемой, управлять зеркальной копией тома и затем предоставить и смонтировать лежащие в основе чистовые (т.е. согласованные с приложениями) данные 155, 160 моментального снимка. Этот тип аппаратного решения может также использоваться с томами на удаленно подключенном накопителе, таком как в среде сети устройств хранения данных ("SAN"), чтобы создавать согласованные с приложениями резервные копии виртуальных машин, распределенных по нескольким носителям хранения.

По этим направлениям осуществления настоящего изобретения могут дополнительно включать в себя использование, например, гостевого запросчика 140, чтобы создавать аппаратно-переносимый, согласованный с приложениями моментальный снимок внутри отдельной виртуальной машины (например, 120). Например, компонент внутри, например, виртуальной машины 120, сконфигурированный для моментальных снимков SAN-томов (например, соответствующим образом сконфигурированный VSS-компонент), может создавать с участием средства записи моментальный снимок (не показан) удаленного тома, присоединенного к гостевому компьютеру (например, виртуальной машине 120, 130), для которых, таким образом, не существует VHD-файла хост-сервера 100. Гостевой запросчик 140 может затем импортировать моментальный снимок и поверхность моментального снимка в качестве отдельного номера логического устройства ("LUN") на хост-сервере. Средство 125 записи хоста может затем попросить приложение 105 резервного копирования (т.е. хост-запросчик) создавать резервную копию LUN как часть резервного копирования виртуальной машины 120. Приложение 105 резервного копирования может, таким образом, создавать резервную копию всего LUN (т.е. гостевой или моментальный снимок уровня виртуальной машины), так что возвращение, например, моментального снимка уровня хоста тома виртуальной машины будет необязательным.

Соответственно, фиг.1A-1D и соответствующий текст предоставляют ряд систем, компонентов и интерфейсов для обеспечения эффективных резервных копий уровня хоста виртуальных машин согласованным образом. В дополнение к упомянутому выше, осуществления настоящего изобретения могут также быть описаны с точки зрения способов, содержащих одно или более действий для достижения отдельного результата. Например, фиг.2 иллюстрирует блок-схемы со стороны хоста 100 и виртуальной машины 120 для создания согласованных с приложениями резервных копий виртуальных машин уровня хоста. Способы и соответствующие действия на фиг.2 описаны ниже со ссылкой на системы и компоненты на фиг.1A-1D.

Например, фиг.2 показывает, что со стороны хоста 100 способ создания согласованной с приложениями резервной копии каждой из одной или более виртуальных машин без необязательной необходимости остановки или приостановки одной или более виртуальных машин содержит действие 210 идентификации одной или более виртуальных машин на хосте. Действие 210 включает в себя идентификацию по меньшей мере одной виртуальной машины, имеющей один или более компонентов для процессов резервного копирования с участием средства записи. Например, приложение 105 резервного копирования (т.е. "запросчик хоста" 105) запрашивает (через сообщение 103) средство 125 записи хоста о том, какие виртуальные машины присутствуют на хосте 100 и по каким из этих виртуальных машин могут быть сделаны резервные копии согласованным с приложениями образом (т.е. с небольшим простоем или без простоя).

Средство 125 записи хоста, например VSS-средство записи, отправляет соответствующий запрос 111 версии каждой виртуальной машине (например, 120, 130) и идентифицирует, какие программные компоненты существуют, чтобы помочь процессам резервного копирования (например, гостевой запросчик 140), например компоненты, которые могут использоваться для создания согласованных с приложениями резервных копий. Средство 125 записи хоста затем отправляет соответствующий ответ 113 приложению 105 резервного копирования. Приложение 105 резервного копирования затем определяет, например, через модуль 107 определения, по какой из идентифицированных виртуальных машин может быть создана резервная копия с помощью согласованных с приложениями способов (т.е. "VM для резервного копирования", которые включают в себя соответствующие компоненты), и те, по которым должны быть созданы резервные копии с помощью других способов (т.е. "VM для резервного копирования с некоторым простоем"), которые не включают в себя соответствующие компоненты или выключены.

Соответственно, фиг.2 дополнительно показывает, что со стороны виртуальной машины 120 способ создания согласованной резервной копии одного или более томов виртуальной машины содержит действие 210 приема запроса, чтобы идентифицировать компоненты. Действие 210 включает в себя прием запроса от средства записи хоста, чтобы идентифицировать доступные программные компоненты. Например, виртуальная машина 120 (например, через гостевой запросчик 140) принимает запрос 111 версии, который включает в себя запрос, чтобы идентифицировать, включает ли в себя виртуальная машина 120 гостевой запросчик и одну или более средств записи приложения (и/или их соответствующие версии), так как они будут соответствующими компонентами для создания согласованной с приложениями резервной копии. Виртуальная машина 120 затем возвращает соответствующий ответ, который средство 125 записи хоста форматирует как сообщение 113 и отправляет приложению 105 резервного копирования.

Кроме того, фиг.2 показывает, что со стороны хоста 100 способ содержит действие 220 отправки запроса резервного копирования набору виртуальных машин. Действие 220 включает в себя отправку инструкции каждой из одной или более виртуальных машин, чтобы подготовить один или более моментальных снимков уровня машины одного или более томов виртуальной машины. Как показано на фиг.1B, например, приложение 105 резервного копирования отправляет инструкции 117a, чтобы сделать резервную копию виртуальной машины 120, средству 125 записи хоста, при этом виртуальная машина 120 является частью набора виртуальных машин, которая имеет соответствующие компоненты для создания согласованных с приложениями моментальных снимков с небольшим простоем или без простоя. Средство 125 записи хоста, в свою очередь, отправляет инструкции 117b, чтобы инициировать приготовления к резервному копированию с участием средства записи, гостевому запросчику 140 на виртуальной машине 120.

Соответственно, фиг.2 показывает, что со стороны виртуальной машины 120 способ также содержит действие 230 приема запроса моментального снимка от средства записи хоста. Действие 230 включает в себя прием запроса от средства записи хоста, чтобы создавать моментальный снимок одного или более томов, вмещаемых виртуальной машиной, с помощью по меньшей мере одного из доступных программных компонентов. Например, гостевой запросчик 140 принимает сообщение 117b от средства 125 записи хоста, при этом сообщение 117b включает в себя запрос, чтобы начать процессы создания моментальных снимков с участием средства записи. По существу, виртуальная машина начнет подготовку моментального снимка своих томов, управляемых каждым VHD-файлом (например, 123, 127 и т.д.).

Кроме того, фиг.2 показывает, что со стороны виртуальной машины 120 способ содержит действие 240 отправки инструкций резервного копирования одной или более средствам записи приложения. Действие 240 включает в себя отправку инструкций одной или более средств записи приложения в виртуальной машине, чтобы подготовить соответствующие одно или более приложений виртуальной машины для моментального снимка. Например, фиг.1B показывает, что гостевой запросчик 140 отправляет сообщение 117c средствам записи приложения (не показаны) в томах в VHD-файлах 123, 127. В одном осуществлении это может подразумевать отправку запроса средствам записи, соответствующим таким приложениям, как база данных, электронная почта или другие подобные приложения, чтобы подготовить для моментального снимка релевантных данных тома.

Кроме того, фиг.2 показывает, что со стороны виртуальной машины 120 способ содержит действие 250 отправки сигнала, указывающего завершение моментальных снимков виртуальной машины. Действие 250 включает в себя отправку сигнала средству записи хоста, что операции создания моментальных снимков для каждого из одного или более томов, вмещаемых виртуальной машиной, завершены. Например, по завершении действий моментального снимка виртуальной машины гостевой запросчик отправляет сигнал завершения (не показан) средству 125 записи хоста. В соответствии с этим сигналом средство 125 записи хоста может затем отправить сообщение 157 приложению 105 резервного копирования, говорящее приложению 105 резервного копирования закончить операции создания моментальных снимков уровня хоста.

Соответственно, фиг.2 также показывает, что со стороны хоста 100 способ содержит действие 260 идентификации завершения создания моментальных снимков виртуальной машины. Действие 260 включает в себя идентификацию того, что операции создания моментального снимка в по меньшей мере одной виртуальной машине завершены. Например, как упомянуто ранее, средство 125 записи хоста отправляет сообщение 157, которое указывает, что создание моментальных снимков уровня виртуальной машины завершены.

Кроме того, фиг.2 показывает, что со стороны хоста 100 способ содержит действие 270 создания одного или более моментальных снимков уровня хоста. Действие 270 включает в себя создание одного или более моментальных снимков уровня хоста одного или более томов хоста, в которых установлена по меньшей мере одна виртуальная машина. Например, приложение 105 резервного копирования отправляет инструкции (например, 135), чтобы продолжить процессы резервного копирования в томах 110, 115 хоста. Как показано на фиг.1B, это может дать в результате моментальный снимок 167 хоста, который включает в себя несогласованные с приложениями данные 156, 161 VHD-файла 123, 127. Как обсуждается в данном документе, различные VHD-данные моментального снимка 167 уровня хоста, несмотря на то, что необязательно являются согласованными с приложениями для VHD-файлов 123, 127, тем не менее, включают в себя ранее созданные, согласованные с приложениями данные 155, 160 моментального снимка VHD. В частности, моментальный снимок 167 уровня хоста тома 110 может быть согласованным с приложениями во всех других отношениях кроме VHD-файлов 123, 127 и т.д.

В другом осуществлении, таком как с драйверами аппаратных средств, моментальные снимки уровня хоста могут быть сделаны в случае зеркалированных томов уровня хоста посредством "разрушения" зеркала между томом(ами) хоста, на котором установлена виртуальная машина, и соответствующим зеркальным томом. Зеркальный том, таким образом, содержит моментальный снимок тома хоста. Этот моментальный снимок также содержит ранее полученные моментальные снимки уровня виртуальной машины ее одного или более томов, при этом моментальные снимки уровня виртуальной машины являются согласованными с приложениями. Моментальный снимок уровня виртуальной машины может, таким образом, быть восстановлен с зеркального тома хоста.

Кроме того, фиг.2 показывает, что со стороны хоста 100 способ содержит действие 280 восстановления моментальных снимков уровня виртуальной машины, инкапсулированных внутри VHD-файлов моментального снимка хоста. Действие 280 включает в себя восстановление одного или более моментальных снимков уровня виртуальной машины одного или более томов виртуальной машины из одного или более моментальных снимков уровня хоста одного или более томов хоста. Например, как показано на фиг.1D, хост 100 может заменить (например, через VSS-компонент) данные 156 моментального снимка VHD уровня хоста в VHD 123 данными 155 моментального снимка VHD уровня виртуальной машины. Подобным образом хост 100 может заменить VHD-данные 161 уровня хоста в VHD 127 данными 160 моментального снимка VHD уровня виртуальной машины. Альтернативно, в случае драйвера аппаратных средств (т.е. "разрушения" зеркала между томом хоста и зеркальным томом) моментальный снимок уровня виртуальной машины может быть предоставлен и восстановлен из смонтированного зеркального тома, как описано ранее. В любом случае данные резервной копии уровня хоста (например, 195), таким образом, могут быть основаны по меньшей мере частично на данных моментального снимка уровня виртуальной машины.

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

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

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

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

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

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

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

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

4. Способ по п.1, в котором согласованный с приложениями моментальный снимок тома виртуальной машины включает в себя согласованные с приложениями моментальные снимки множества приложений.

5. Способ по п.1, в котором согласованный с приложениями моментальный снимок включает в себя данные, которые определяют текущее состояние приложения.

6. Способ по п.1, дополнительно содержащий этап, на котором монтируют том виртуальной машины в качестве логического диска в томе хоста.

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

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

9. Способ по п.1, в котором выполнение виртуальной машины приостанавливают, пока моментальный снимок тома виртуальной машины формируется.

10. Способ по п.1, дополнительно содержащий этап, на котором сохраняют состояние для виртуальной машины.

11. Способ по п.11, дополнительно содержащий этап, на котором на мгновение приостанавливают виртуальную машину.

12. Способ по п.1, в котором том хоста включает в себя множество томов виртуальных машин для множества виртуальных машин.

13. Способ по п.1, в котором виртуальная машина хранится во множестве файлов в томе хоста.

14. Способ по п.1, в котором виртуальная машина выполняется в удаленной компьютерной системе.

15. Способ по п.1, в котором виртуальная машина выполняется в компьютерной системе, которая включает в себя том хоста.

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

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

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

19. Система по п.18, в котором том хоста дополнительно содержит инструкции для монтирования тома виртуальной машины в качестве логического диска.

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



 

Похожие патенты:

Изобретение относится к области компьютерных средств высокопроизводительной обработки информации для разработки наноразмерных систем. .

Изобретение относится к качеству обслуживания ресурсов платформы. .

Изобретение относится к способу и системе модификации команд графики, представляющих визуальное дерево. .

Изобретение относится к вычислительной технике. .

Изобретение относится к области виртуальных машин. .

Изобретение относится к области конфигурирования и развертывания вычислительных систем. .

Изобретение относится к многопроцессорным архитектурам. .

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

Изобретение относится к области развертывания виртуальных машин на хостах

Изобретение относится к обмену HTTP-сообщениями между HTTP-клиентом и HTTP-сервером

Изобретение относится к области хранения данных в сети одноранговых узлов

Изобретение относится к способам и системам интерактивного электронного действия рабочего стола, в частности к использованию Интернет-браузера

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

Изобретение относится к области создания шаблонных копий автономных ресурсов

Изобретение относится к области вычислительной техники и может применяться для построения гибридных вычислительных систем

Изобретение относится к средствам связи пользователей посредством компьютерных устройств в режиме реального времени

Изобретение относится к способу, системе и архитектуре для обеспечения системы веб-конференций
Наверх