Управление дублированным виртуальным хранилищем на сайтах восстановления



Управление дублированным виртуальным хранилищем на сайтах восстановления
Управление дублированным виртуальным хранилищем на сайтах восстановления
Управление дублированным виртуальным хранилищем на сайтах восстановления
Управление дублированным виртуальным хранилищем на сайтах восстановления
Управление дублированным виртуальным хранилищем на сайтах восстановления
Управление дублированным виртуальным хранилищем на сайтах восстановления
Управление дублированным виртуальным хранилищем на сайтах восстановления
Управление дублированным виртуальным хранилищем на сайтах восстановления
Управление дублированным виртуальным хранилищем на сайтах восстановления
Управление дублированным виртуальным хранилищем на сайтах восстановления
Управление дублированным виртуальным хранилищем на сайтах восстановления
Управление дублированным виртуальным хранилищем на сайтах восстановления

 


Владельцы патента RU 2619894:

МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи (US)

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

 

УРОВЕНЬ ТЕХНИКИ

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

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

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

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

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

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

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

Фиг. 2A и 2B изображают иллюстративные вычислительные среды, в которых может быть реализовано дублирование в соответствии с раскрытием;

Фиг. 3 показывает иллюстративный способ, посредством которого среда первичного компьютера/сервера может обеспечить возможность своего аварийного восстановления и дублирования своих данных, когда они изменяются со временем;

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

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

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

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

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

Фиг. 9 иллюстрирует пример соединения и модификации соединения дублированных разностных дисков при доступе к цепочке дисков;

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

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

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

ПОДРОБНОЕ ОПИСАНИЕ

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

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

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

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

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

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

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

Фиг. 1 в общих чертах показывает иллюстративный вариант осуществления для дублирования виртуальных машин с использованием разностных дисков. Первый сайт 100 может включать в себя одну или более базовых вычислительных систем 102-104, которые могут разместить одну или более виртуальных машин (VM) 106. Вычислительная система 102 имеет соответствующее хранилище, и в примере на фиг. 1 виртуальная машина 106 имеет соответствующее виртуальное хранилище (VS) 108. Виртуальное хранилище может представлять, например, виртуальный жесткий диск, который в общем представляет логическое хранилище, обычно обеспечиваемое как файл(ы) образа диска. Виртуальная машина 106 рассматривает виртуальное хранилище 108 как свой жесткий диск или другое подобное устройство хранения.

В одном варианте осуществления дублирование сохраненных данных или другой информации в виртуальном хранилище 108 включает в себя использование цепочки или дерева состояния хранилища, причем вершина цепочки (также называемая здесь "верхушкой дерева") обеспечивает возможность чтения и записи для записи изменений, записанных в виртуальное хранилище. Например, виртуальное хранилище 108 может представлять виртуальный жесткий диск, имеющий формат файла виртуального жесткого диска (VHD). Дерево хранения может включать в себя базовый виртуальный диск 110 и один или более разностных дисков 112A-112n, которые соответствуют базовому виртуальному диску 110. Разностный диск 112A, который является дочерним элементом базового виртуального диска 110, захватывает изменения в виртуальном хранилище 108. Как описано более полно ниже, разностный диск, такой как разностный диск 112A, может быть предохранен посредством защиты от записи, и новый разностный диск, такой как разностный диск 112B, может быть создан, чтобы принимать изменения виртуального хранилища 108 с того момент. Это может продолжаться для любого количества разностных дисков 112n, тем самым создавая цепочку сохраненных виртуальных дисков и разностного диска 112n для захвата новых изменений.

Обеспечен по меньшей мере один второй сайт 150, который включает в себя одну или более базовых вычислительных систем 152, 153, 154, где дублированная информация от первого сайта 100 может быть принята и сохранена, и где вычислительные операции восстановления могут быть инициированы в случае аварийной ситуации или другого события, приводящих первый сайт 100 к неспособности продолжать свои вычислительные обязанности. Первый сайт 100 и второй сайт 150 взаимодействуют посредством линий 130 связи, которые могут включать в себя любой тип интерфейса электронной связи, такой как прямые кабельные соединения, проводные сети, беспроводные сети и т.п. и любая их комбинация. Дублирование виртуальной машины 106 может быть обеспечено для второго сайта 150 посредством электронных средств и т.п. для обеспечения дублированной виртуальной машины 156. Аналогичным образом, разностные диски 112A-112n или другие части виртуального хранилища 108, выполненные с возможностью захватывать изменения виртуального хранилища 108, могут быть переданы, когда данные были защищены от дальнейших операций записи, как описано более полно ниже. Дублированное виртуальное хранилище 158, таким образом, соответствует тому, которое было передано от виртуального хранилища 108 на первичном сайте 100.

Хранилище, такое как виртуальное хранилище 108 на первом сайте 100, может выполнить потоковую передачу своих данных на второй сайт асинхронно. Однако в такой конфигурации, если первый сайт 100 перестал работать, второму сайту 150 будет трудно узнать, что было успешно передано, и является ли хранилище непротиворечивым. Настоящее раскрытие описывает, что моментальные снимки данных (или другие фиксированные образы) разностных дисков 112A-112n первого сайта 100 создаются и передаются второму сайту 150. Использование функции создания моментальных снимков данных обеспечивает возможность для асинхронного дублирования хранилища 108 виртуальной машины 106 с одного места на другое. Таким образом, если первичный сервер (серверы) на первом сайте 100 имеет сбой или иным образом перестает работать, не будет никаких различий между моментальными снимками данных и данными, которые были дублированы. Следовательно, будет известно, какие данные были приняты на втором сайте 150. Раскрытие, таким образом, предусматривает, что первый сайт 100 передает моментальные снимки данных или другие образы разностных дисков в конкретные моменты времени на второй сайт 150.

Например, когда получено дублирование виртуального хранилища 108, оно может дополнительно включать в себя передачу данных разностного диска на второй сайт 150 и создание нового разностного диска. В качестве более конкретного примера, моментальный снимок 114 данных или другое дублирование/копия могут быть взяты с разностного диска 112B, чтобы обеспечить образ (например, файл образа AVHD) базовой вычислительной системе 152 на втором сайте 150. В одном варианте осуществления разностный диск 112B, моментальный снимок 114 данных которого был сделан, будет изменен как защищенный от записи, и новый разностный диск 112n будет создан как файл виртуального хранилища для чтения/записи.

Некоторые варианты осуществления включают в себя различные типы копий разностных дисков или других образов виртуального хранилища. Фиг. 1 изображает множество таких разных типов дублирования или "копий", в том числе тип-A 116 копии, тип-B 118 копии и до типа-n 120 копии. Например, первый тип копии, такой как тип-B 118 копии, может представлять копию или моментальный снимок данных разностного диска 112A-112n с малым воздействием, который происходят без существенных усилий для увеличения непротиворечивости данных. Один способ получения такой копии состоит в том, чтобы дать конкретному разностному диску метку "только для чтения" в любое требуемое время и создать новый разностный диск для захвата записанных после этого данных. Например, моментальный снимок данных виртуальной машины может быть получен с использованием программного обеспечения виртуализации, гипервизора, функциональных средств операционной системы и т.д., которые могут захватывать состояние, данные и аппаратную конфигурацию работающей виртуальной машины. Этот тип копии или другой подобной копии с малым воздействием может упоминаться в этом раскрытии как соответствующая отказу копия, поскольку то, что сохранено на разностном диске, обычно соответствует тому, что было бы на диске после отказа системы или отключения электричества. В этих случаях могут работать прикладные программы, которые временно хранят данные в кэше или памяти, которые не были сохранены в памяти. Не все метаданные файловой системы могли быть обработаны для их помещения на диск, прежде чем он был помечен как защищенный от записи. Для этого типа копии возможно, что попытка вернуть к жизни копию на сайте восстановления не будет полностью успешна, поскольку данные могут не являться полностью непротиворечивыми. Однако, этот тип копии не вызывает прерывания выполняющихся программ, и поэтому имеет очень низкую цену, поскольку это имеет отношение к системной производительности вычислительных систем 102-104 на первом сайте 100.

Другой тип копии, такой как тип-A 116 копии, может представлять копию/моментальный снимок данных с более высокой непротиворечивостью разностного диска 112A-112n, которые происходят с некоторым усилием для увеличения непротиворечивости данных до того, как будет взят моментальный снимок 114 данных. Например, такой моментальный снимок 114 данных может быть получен с использованием службы операционной системы, такой как служба теневой копии (VSS) корпорации MICROSOFT®, которая выполняет координацию между функциональными средствами резервного копирования и прикладными программами пользователя, которые обновляют данные на диске. Работающее программное обеспечение (то есть, средства записи данных) может быть уведомлено относительно предстоящего резервного копирования и привести свои файлы к согласованному состоянию. Этот тип копии обеспечивает более высокую вероятность надлежащего возврата к жизни на втором сайте 150. Однако поскольку работающие прикладные программы, возможно, должны подготовиться к резервному копированию посредством сброса ввода/вывода, сохранения своего состояния и т.д., рабочая нагрузка прерывается и подвергается задержкам и низкой пропускной способности. Разные типы копии могут использоваться в разное время или в разных расписаниях для обеспечения требуемого баланса между прерыванием рабочей нагрузки и непротиворечивостью данных.

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

Фиг. 2A и 2B изображают иллюстративные вычислительные среды, в которых может быть реализовано дублирование в соответствии с раскрытием. Иллюстративные системы на фиг. 2A и 2B являются лишь примерами и не представляют исключительные конфигурации. Вычислительная среда на фиг. 2A иллюстрирует первый сайт, такой как сайт 200 первичного сервера. В этом примере сайт 200 первичного сервера включает в себя один или более серверов 202A-202n или другие вычислительные устройства. Каждый из серверов 200A-200n может соответственно включать в себя вычислительные возможности, такие как один или более физических или логических процессоров 204A, 204n, память 206A, 206n, хранилище 208A, 208n и т.д. Хранилище 208A, 208n может дублироваться, с тем чтобы копии 210A, 210n хранилища, такие как моментальные снимки данных хранилища, могли быть обеспечены для сайта (сайтов) 212 восстановления в целях аварийного восстановления. Фиг. 2A иллюстрирует, что описанные здесь методики применимы к любому хранилищу, соответствующему процессору, а также применимы к виртуальному хранилищу и виртуальным машинам. Следует отметить, что сайт восстановления 212 может включать в себя серверы или другие вычислительные устройства, имеющие подобные возможности обработки, памяти и хранилища.

Фиг. 2B иллюстрирует пример, включающий в себя одну или более виртуальных машин. В этом примере сайт 220 первичного сервера и сайт 250 сервера восстановления соответственно включают в себя один или более серверов 222A-222n, каждый из которых может включать в себя вычислительные возможности, такие как один или более физических или логических процессоров 224A, 224n, память 226A, 226n, хранилище 228A, 228n и т.д. Один или более серверов могут включать в себя гипервизор 230A, 230n или другой модуль управления виртуальной машиной, который представляет виртуальную операционную платформу, на которой могут работать операционные системы 232A, 232n и виртуальные машины 234A-236A, 234n-236n. Функции гипервизора 230A, 230n и/или операционной системы 232A, 232n могут быть использованы, приспособлены или добавлены для обеспечения такой функциональности, как модуль 238A, 238n управления дублированием (RMM). В соответствии с настоящим раскрытием модуль 238A, 238n управления дублированием может обеспечить такую функциональность, как хранилище, изменения которого (например, разностный диск) были последними изменениями, которые передаются от первичного сайта 220 на сайт 250 восстановления, запрос этих копий в ответ на расписания или другие сигналы инициализации событий, подготовка информации для передачи на сайт 250 восстановления, слияние разностных дисков в их соответствующие родительские диски и т.д. Виртуальное хранилище (не показано) соответствует каждой виртуальной машине, которая может быть сохранена в файлах в памяти 226A, 226n серверов 222A, 222n, локальном хранилище 228A, 228n, кластеризованном хранилище (не показано), если серверы 222A, 222n сконфигурированы в кластере, и т.д. Виртуальное хранилище может быть дублировано, таким образом, моментальные снимки данных хранилища или другие копии, 242A, 242n обеспечиваются для сайта (сайтов) 250 восстановления для аварийного восстановления или других целей. Таким образом, фиг. 2B иллюстрирует, что описанные здесь методики применимы к виртуальному хранилищу, соответствующему виртуальной машине. Следует отметить, что сайт 250 восстановления может включать в себя серверы или другие вычислительные устройства, имеющие аналогичные возможности обработки, памяти, хранилища, виртуальной машины и управления виртуальной машиной, как описано на фиг. 2A и/или 2B.

Фиг. 3 показывает иллюстративный способ, посредством которого среда первичного компьютера/сервера может обеспечить возможность своего аварийного восстановления и дублирования своих данных, когда они изменяются со временем. Фиг. 4A изображает первое состояние дисковой цепочки 404A, и фиг. 4B изображает второе состояние дисковой цепочки 404B. В последующем примере фиг. 3, 4A и 4B упоминаются все вместе.

Базовый образ 406 виртуального диска или другой начальный базис хранилища виртуального диска 402 виртуальной машины 400 сохраняется, как изображено на этапе 300. Как описано далее ниже, этот базовый образ 406 виртуального диска может служить базисом для дублирования виртуального хранилища на сайте восстановления. Базовый образ 406 виртуального диска может быть представлен как файл, например, такой как файл виртуального жесткого диска (VHD).

Как показано на этапе 302, изменения виртуального диска 402 могут быть записаны на текущий разностный диск 410A (фиг. 4A), на который может быть выполнена запись в дополнение к чтению. В одном варианте осуществления текущий разностный диск 410A логически находится сверху дисковой цепочки 404A, которая включает в себя базовый образ 406 виртуального диска и любые промежуточные разностные диски 408. Если текущий разностный диск 410A будет первым дочерним разностным диском родительского базового виртуального диска 406, то промежуточных разностных дисков не будет. Кроме того, если промежуточные разностные диски 408 уже были объединены с базовым образом 406 виртуального диска, то промежуточных разностных дисков не будет.

С другой стороны, могут быть разностные диски 408, которые предназначены только для чтения, например, когда моментальный снимок данных или другая копия того разностного диска должны быть сохранены. Чтобы данные моментального снимка данных (который может быть передан для дублирования) соответствовали разностному диску, разностный диск может быть защищен от записи вместе с моментальным снимком данных. В этих случаях может быть один или более разностных дисков 408 только для чтения между базовым образом 406 виртуального диска и текущим разностным диском 410A чтения/записи. Как описано более подробно ниже, цепочка дисков по меньшей мере только для чтения на первичном сайте будет дублироваться на сайте (сайтах) восстановления, и тем самым изображение данных дублированной виртуальной машины поддерживается синхронизированным с соответствующим сервером (серверами) на первичном сайте.

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

Разностный диск, который был наверху цепочки, помечается как защищенный от записи, как изображено разностным диском 410B только для чтения на фиг. 4B. С этим защищенным от записи диском 410B этап 306 показывает, что новый разностный диск 420 может быть создан как новая вершина дисковой цепочки 404B для замены разностного диска 410B, который только что был скопирован. Этот новая "верхушка дерева" разностного диска 420 примет на себя ответственность обработки операций чтения и записи. В одном варианте осуществления любые необъединенные промежуточные разностные диски 408, 410B и базовый виртуальный диск 406 снизу них остаются защищенными от записи.

В одном варианте осуществления базовый виртуальный диск 406 только для чтения и любые промежуточные разностные диски 408, 410B только для чтения передаются сайту восстановления, где дисковая цепочка будет воссоздана в целях восстановления. Это отмечено на этапе 308, когда разностный диск 410B, который был только что скопирован и защищен от записи, может быть передан для дублированного хранения, например, передан на адрес дублированной виртуальной машины. Таким образом, когда копия 416 получена, она может быть передана сайту восстановления передатчиком, приемопередатчиком, сетевым интерфейсом и/или другим механизмом, изображенным посредством устройства 418 передачи. Пока первичный сайт является рабочим, и больше копий должно быть дублировано, как определено на этапе 310 принятия решения, процесс создания копий и защиты от записи 304, создания новых разностных дисков 306 и передачи моментальных снимков данных 308 может продолжаться. Например, может быть установлена политика дублирования или правила дублирования, чтобы определить, когда должна быть сделана копия, а в случае нескольких типов копии, копия какого типа должна быть сделана.

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

Как показано на этапе 500, дублированная виртуальная машина 600 обеспечена на сайте восстановления, причем дублированная виртуальная машина 600 в значительной степени соответствует первичной виртуальной машине, которая должна быть дублирована. Она может быть передана в электронном виде или доставлена другими средствами. Дублированный виртуальный диск 602 или другое дублированное виртуальное хранилище обеспечиваются, как показано на этапе 502. Дублированный виртуальный диск 602 может включать в себя дублированный базовый виртуальный диск 604, в значительной степени соответствующий первичному базовому виртуальному диску, который должен быть дублирован (например, базовый виртуальный диск 400 на фиг. 4).

Копия разностного диска 606, который соответствует первичному базовому виртуальному диску, например, является дочерним или более дальним потомком первичного базового виртуального диска, принимается, как показано на этапе 504. В одном варианте осуществления принятая копия имеет один из множества возможных типов копий или дублирований. Как показано на этапе 506, принятая копия разностного диска 606 расположена относительно дублированного базового виртуального диска 604 таким образом, как она была расположена относительно первичного базового виртуального диска на первичном сайте. Например, если один или более промежуточных разностных дисков будут существовать на первичном сайте, то копии/моментальные снимки данных этих разностных дисков 608 будут приняты и расположены в цепочке 610 дублированных дисков, как сохраненные разностные диски расположены в первичной цепочке дисков (например, в цепочке 404A/B дисков на фиг. 4A, 4B). Хотя один или более промежуточных разностных дисков 608 могут быть объединены в свой базовый виртуальный диск 604 на первичных серверах и/или серверах восстановления, информационные содержания должны оставаться синхронизированы с цепочкой дисков на первичном сайте.

Если другие разностные диски приняты на сайте восстановления, как определено на этапе 508 принятия решения, больше разностных дисков может быть принято 504 и размещено 506 в синхронизации с первичным сайтом. Эти дублированные разностные диски, например, моментальные снимки данных или другие копии, могут быть приняты приемником 612, который может представлять дискретный приемник, приемопередатчик, сетевой интерфейс или любой механизм приема. Модуль 614 управления дублированием может быть обеспечен как исполняемый процессором модуль на сервере (серверах) восстановления, например, на гипервизоре сервера, базовой операционной системе, операционной системе родительского раздела и т.д. Модуль 614 управления дублированием может выполнять такие задачи, как поддержание информации, относительно которой последнее множество изменений (например, разностный диск) было принято от первичного сайта, поддержание типа копии (например, соответствующая отказу, согласованная с приложениями и т.д.), определение, с которого из множества дублированных разностных дисков следует начать обработку, если инициируются операции восстановления, размещение моментальных снимков данных или других копий в цепочке, соответствующей первичному сайту, и другие описанные здесь функции.

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

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

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

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

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

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

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

Теперь представлен пример изображения нескольких из этих точек, который формулирует иллюстративный пример последовательности событий дублирования в соответствии с раскрытием. Фиг. 7A-7F показывают иллюстративный пример для асинхронного дублирования хранилища виртуальной машины или другого вычислительного объекта из первой вычислительной среды по меньшей мере в одну другую вычислительную среду. Где необходимо, аналогичные номера для ссылок используются на всех фиг. 7A-7F для обозначения аналогичных элементов.

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

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

Когда базовый виртуальный диск 702 защищен от записи и скопирован на сайт 750 восстановления, первый разностный диск D1 704 создается для захвата любых новых записей, затрагивающих виртуальный диск. Другими словами, любые изменения виртуального диска будут затем произведены на разностном диске 704 на первичном сайте 700, в то время как в этой точке сайт восстановления сохранил виртуальный диск в состоянии дублированного базового виртуального диска. В одном варианте осуществления дублирование (например, модуль управления дублированием) и на первичном сайте 700, и на сайте 750 восстановления сохранит информацию статуса, указывающую, что передача базового виртуального диска 702 на дублированный базовый виртуальный диск 752 является наиболее недавним множеством изменений, которые будут переданы. Если соответствующая виртуальная машина (или другая вычислительная система) на первичном сайте 700 перестала работать или иным образом стала неспособна выполнить свои обязанности в этой точке, аппаратные средства на сайте 750 восстановления могут начать функционировать от состояния виртуального хранилища, соответствующего дублированному базовому виртуальному диску 752.

Копии хранилища могут потребоваться в любое время, в том числе по расписанию. Например, управление дублированием на первичном сайте 700 может сделать запрос копии виртуального хранилища после некоторого промежутка времени, в определённое время, в результате возникновения события и т.д. Настоящее раскрытие рассматривает несколько типов копий, которые могут быть созданы и переданы на сайт 750 восстановления, каждый из которых может иметь свое собственное расписание или другие критерии времени запуска.

На фиг. 8 показан пример планирования моментальных снимков данных или других копий базового или разностного диска. Политика 800 может быть сохранена в памяти или хранилище 802, которое может являться хранилищем, соответствующим базовой вычислительной системе, или иным. В одном варианте осуществления политика 800 включает в себя правила для запроса копии разностного диска для дублирования для сервера восстановления. В проиллюстрированном варианте осуществления учтены два типа копий, хотя могут быть реализованы меньше или больше типов копий. В этом примере политика 800 включает в себя команды копии для соответствующих отказу копий 804, таких как одно или более заданное время 806, в которое копия должна быть получена, фиксированный или изменяющийся временной интервал 808 между получением соответствующих отказу копий, другой инициатор 810 события, который инициирует запрос соответствующей отказу копии, и т.п. Также политика 800 может включать в себя аналогичные возможности 816, 818, 820 для согласованных с приложениями копий 814, хотя заданные времена 816, интервалы 818 и/или инициаторы 820 события могут отличаться от таковых для другого типа (типов) копии. Контроллер 824, который может включать в себя процессор и исполняемое программное обеспечение, может исполнять политику 800. Например, контроллер может исполнять программу (программы), такую как ранее описанный модуль управления дублированием, для исполнения функций таймера 826, отслеживания 828 событий и/или моментального снимка 830 данных на основе политики 800. В других вариантах осуществления моментальные снимки данных могут быть обеспечены другими исполняемыми контроллером программами, такими как ранее описанная служба теневой копии тома (VSS).

Теперь вернемся к примеру на фиг. 7A-7F, где фиг. 7B предполагает, что управление дублированием запросило первый тип копии, упоминаемый в этом примере как соответствующая отказу копия. Такая копия может представить копию виртуального хранилища в любой заданный момент. Например, соответствующая отказу копия может быть сделана посредством остановки действий записи на разностный диск D1 704 в любое время. В одном варианте осуществления, когда запрошена соответствующая отказу копия виртуального диска, виртуальный диск закрывается для дальнейших операций записи, и создается новый разностный диск D2 706 для захвата любых новых записей, затрагивающих виртуальный диск. Когда разностный диск D1 704 закрывается для новых записей (например, помечается как защищенный от записи) в любой запланированный или произвольный момент без подготовки, рабочая нагрузка виртуальной машины (или другой вычислительной системы) не прерывается. Хотя этот тип копии обеспечивает возможность для продолжения работы без прерывания и на обычной скорости, возможное последствие заключается в том, что последующие попытки возвратить к жизни копию на сайте 750 восстановления потенциально могут потерпеть неудачу вследствие того, что копия разностного диска D1 704 получена в произвольный момент.

Как отмечено выше, другой разностный диск D2 706 создается для обеспечения возможности записи информации на виртуальный диск, когда диск D1 704 был сохранен для окончательной передачи на сайт 750 восстановления. Разностный диск D1 704 сделан доступным для управления дублированием для передачи на один или более серверов восстановления на сайте 750 восстановления, как изображено посредством дублированного разностного диска D1 754 на сайте 750 восстановления. Обновления виртуального диска первичного сайта 700 начиная с этого момента захватываются на новом разностном диске D2 706.

В одном варианте осуществления информация, сохраненная на разностном диске D1 704, защищается от записи, чтобы она больше не могла быть изменена записью данных. Напротив, новый разностный диск D2 706 сконфигурирован с возможностью записи на виртуальный диск. Управление дублированием на первичном сайте 700 может выполнить слияние разностного диска D1 704 только для чтения с его родительским диском, который является базовым виртуальным диском 702 в этом примере. Пример такого слияния показан на фиг. 7C, где диск D1 704 был слит с базовым виртуальным диском 702, чтобы обеспечить новый объединенный виртуальный диск 708.

Одна цель для выполнения функции слияния состоит в том, чтобы сократить количество связей, которые могут потребоваться для операции чтения для определения местоположения сохраненных данных на виртуальном диске. На фиг. 9 описан пример таких связей. Предполагается, что копия 901 базового виртуального диска 902 была обеспечена для серверов 950 восстановления, как изображено посредством дублированного базового виртуального диска 952. Недавно созданный разностный диск (например, разностный диск 904) будет включать в себя указатель 906 или связь с его родительским диском, который также является предыдущей "верхушкой дерева". В этом примере разностный диск 904 будет включать в себя указатель 906 на базовый виртуальный диск 902. Если на первичных серверах 900 была запущена операция 908 чтения для данных, не найденных на новом разностном диске 904, операция чтения 908 может получить данные в местоположении, находящемся дальше назад в цепочке дисков, которая определена указателем 906, связью или другим аналогичным механизмом указания направления. В этом примере операция 908 чтения получит данные из базового диска 902 на основе указателя 906 в разностном диске 904, если разностный диск 904 не будет иметь данных, соответствующих запросу чтения.

Копия 910 разностного диска 904 обеспечивается для серверов 950 восстановления, как изображено посредством дублированного разностного диска 954. Когда разностный диск 904 защищается от записи и копируется 910 на серверы 950 восстановления, создается новый разностный диск 912 для приема изменений виртуального диска, например, посредством операций 909 записи. Новый разностный диск 912 может включать в себя связь или указатель 914 на его родителя, который является разностным диском 904 в этом примере. Операция 908 чтения может быть запущена для данных, которые не найдены ни на разностном диске 912, ни на разностном диске 904, и в этом случае обеспечиваются связи или указатели 914, 906, которые указывают назад на базовый виртуальный диск 702, чтобы определить местоположение адресуемых данных.

В зависимости от количества разностных дисков, которые были сохранены в состоянии только для чтения, могут иметься многочисленные связи для определения местоположения данных вплоть до базового виртуального диска 702. Чтобы уменьшить накладные расходы, соответствующие таким связям, разностные диски на первичных серверах 900, которые предназначены только для чтения и переданы серверам 950 восстановления, могут быть объединены с их соответствующими родительскими дисками. Могут быть объединены любые требуемые разностные диски, вплоть до всех, которые были помечены как защищенные от записи или иным образом сохранены для дублирования и переданы. Как описано более полно ниже, такое слияние также может быть реализовано на сайте 950 восстановления.

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

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

Если управление дублированием на первичном сайте 700 делает запрос для такой предварительной подготовки или "согласованной с приложениями" копии, служба VSS или другой модуль управления для операционной системы могут быть использованы для формирования множества моментальных снимков данных. Когда моментальный снимок данных создается, разностный диск, D2 706, показанный на фиг. 7C, может быть преобразован в защищенный от записи, и может быть создан другой новый разностный диск D3 710 для чтения/записи, чтобы теперь захватывать данные, записываемые на виртуальный диск. Когда разностный диск D3 710 теперь записывает изменения виртуального диска, предшествующий разностный диск D2 706 "вершины дерева" передается сайту 750 восстановления, как изображено посредством дублированного разностного диска D2 758, показанного на фиг. 7D.

При передаче согласованной с приложениями копии разностного диска D2 706 на сайт 750 восстановления на первичном сайте 700 снова может произойти слияние. Это изображено на фиг. 7D, где объединенный виртуальный диск 708, показанный на фиг. 7C, теперь включает в себя D2, чтобы сформировать новый объединенный виртуальный диск 712. Управление дублированием на сайте 750 восстановления обращает внимание, который дублированный разностный диск D2 758, который был теперь принят от первичного сайта 700, является последней копией диска от первичного сайта 700. Поскольку диск D2 758 является согласованной с приложениями копией, а также предполагается соответствующим отказу, он служит и согласованной с приложениями копией, и соответствующей отказу копией диска от первичного сайта 700.

Фиг. 7D также иллюстрирует слияние дисков на сайте 750 восстановления. Дублированная соответствующая отказу копия D1 754 и дублированный базовый виртуальный диск 752 были объединены на фиг. 7D, чтобы сформировать объединенный дублированный виртуальный диск 756. По мере того, как моментальные снимки данных от первичного сайта 700 достигают сайта восстановления 750, моментальные снимки данных могут быть сопоставлены и приготовлены к работе. Посредством такого слияния и сопоставления принятых моментальных снимков данных, если происходит аварийная ситуация, когда будут полагаться на работу на сайте 750 восстановления, потенциальные операционные задержки могут быть смягчены или устранены посредством слияния выбранных (или всех) принятых копий на сайте 750 восстановления. Таким образом, один вариант осуществления включает в себя слияние и сопоставление по меньшей мере некоторых из моментальных снимков данных или других копий виртуального диска по мере того, как они прибывают, или по меньшей мере до тех пор, пока эти дублированные данные используются на сайте 750 восстановления.

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

Фиг. 7E иллюстрирует деревья виртуального хранилища на первичном сайте 700 и сайте 750 восстановления в ответ на другую соответствующую отказу копию, требуемую для передачи на сайт 750 восстановления. В этом примере разностный диск D3 710 (фиг. 7D) передается на сайт 750 восстановления, как показано посредством дублированного разностного диска 760 на фиг. 7E. Снова разностный диск D3 710 на первичном сайте 700 может быть объединен с виртуальным диском 712 для создания нового объединенного разностного диска 714, и другой новый разностный диск D4 716 чтения/записи может быть создан для захвата изменений виртуального диска.

На сайте 750 восстановления недавно принятая соответствующая отказу копия 760 является теперь новой копией (вершиной дерева). В этом варианте осуществления дублированная согласованная с приложениями копия D2 758 и дублированная соответствующая отказу копия D3 760 обе доступны в качестве точек восстановления. Например, предположим, что первичный сервер на первичном сайте 700 прекращает работу или иным образом становятся неспособным должным образом выполнять свои обязанности, и предположим, что этот отказ происходит в момент времени, в общем соответствующий тому, что изобразило на фиг. 7E. Виртуальная машина восстановления (или, в качестве альтернативы, физическая машина) на сайте 750 восстановления может быть вызвана, например, с использованием самой последней принятой дублированной согласованной с приложениями копии D3 760. Хотя согласованная с приложениями копия D3 760 была принята на сайте 750 восстановления раньше по времени, она является типом копии, который имеет более высокую вероятность возвращения к жизни должным образом на сайте 750 восстановления. Как отмечено выше, это происходит вследствие этого "типа" копии, который в этом примере включает в себя уведомление прикладных программ/программного обеспечения на первичном сайте 700 о предстоящем моментальном снимке данных перед его взятием, тем самым обеспечивая возможность для программного обеспечения подготовиться к моментальному снимку данных.

Таким образом, в одном варианте осуществления, виртуальная машина или другая вычислительная система на сайте 750 восстановления могут быть приведены в рабочее состояние с использованием одного из множества доступных разностных дисков, моментальных снимков данных или других состояний дублированного виртуального хранилища. В одном варианте осуществления разностный диск создается как дочерний элемент для конкретного разностного диска, от которого вызвана виртуальная машина. В примере на фиг. 7F разностный диск 762 создается с дублированным согласованным с приложениями разностным диском D2 758 в качестве его родителя. Этот разностный диск 762 затем выносится вверх, и тома, присутствующие на диске, возвращаются к множеству согласованных с приложениями моментальных снимков данных (например, VSS), соответствующих D2 758.

Как иллюстрирует фиг. 7F, при сохранении линии разностных дисков возможно иметь несколько разностных дисков, указывающих на одну и ту же точку только для чтения в дереве. Например, дублированный соответствующий отказу разностный диск D3 760 указывает на согласованный с приложениями разностный диск D2 758, как и разностный диск 762, который создавался на сайте 750 восстановления. Разностный диск D3 760 и разностный диск 762, таким образом, представляют два разных будущих состояния относительно состояния разностного диска D2 758 только для чтения. Например, пользователь может хотеть загрузить виртуальную машину на сайте 750 восстановления с использованием виртуального диска, включающего в себя разностный диск 762, разностный диск 758 только для чтения, на который указывает разностный диск 762, и объединенный диск 756, на который указывает разностный диск D2 758.

Таким образом, в проиллюстрированном примере автоматический или ручной выбор первого виртуального диска на сайте 750 восстановления может включать в себя диск 756 только для чтения (включающий в себя базовый виртуальный диск и D1), согласованный с приложениями разностный диск D2 758 только для чтения и соответствующий отказу разностный диск D3 760 чтения/записи. В качестве альтернативы, автоматический или ручной выбор второго виртуального диска может включать в себя диск 756 только для чтения (включающий в себя базовый виртуальный диск и D1), согласованный с приложениями разностный диск D2 758 только для чтения и разностный диск 762, который был создан на сайте 750 восстановления. Разные сценарии восстановления возможны ввиду разных "будущих состояний", обеспеченных при наличии нескольких разностных дисков чтения/записи, указывающих на общий родительский диск.

Любая из одной или более доступных цепочек виртуальных дисков может быть выбрана на сайте 750 восстановления. Например, пользователь может хотеть сохранить соответствующий отказу диск D3 760, поскольку виртуальная машина не имела требуемых данных, когда она была загружена с использованием согласованного с приложениями диска D2 758. В этом случае виртуальная машина может быть выполнена с использованием соответствующего отказу диска D3 760. Даже если виртуальная машина восстановления возвращена к жизни с использованием согласованного с приложениями диска D2 758, и создается новый разностный диск 762, который указывает обратно на согласованный с приложениями момент, соответствующий отказу диск D3 760 может быть сохранен в качестве другой возможности цепочки возвращения к жизни.

Разностный диск 762 в качестве альтернативы может быть создан из другого разностного диска. Например, если последняя соответствующая отказу копия D3 760 должна была использоваться для восстановления, то разностный диск 762 может быть создан с помощью соответствующей отказу копии D3 760 в качестве родительского диска. В одном варианте осуществления это может быть произведено посредством наличия указателя или другой связи, сохраненной в разностном диске 762 для указания или иной идентификации D3 760 в качестве его родителя. Пример был изображен на фиг. 9, где указатель 956 указывает на свой родительский диск 952. Состояние указателя 956, на первичных серверах 900, возможно, должно быть изменено, чтобы он указывал на корректный образ на серверах 950 восстановления. Решение, должна ли точка восстановления на фиг. 7F являться D2 758, D3 760 или другой точкой восстановления, может быть определено автоматически на основе конфигурации или определило вручную пользователем.

Теперь описывается пример создания и иллюстративное информационное содержание, соответствующее разностному диску 762 на сайте восстановления. В этом иллюстративном варианте осуществления разностный диск 762 на сайте 750 восстановления является пустым после его создания. Он может быть сконфигурирован для указания на его родительский диск, который представляет собой D2 758 в этом примере. Когда виртуальная (или физическая) машина начнет работу, информация, которая, возможно, должна быть записана, будет записана на новый разностный диск 762. Например, новый разностный диск 762 может быть соединен с дублированной виртуальной машиной на сайте 750 восстановления, имеющей те же самые или подобные характеристики, как первичная виртуальная машина на первичном сайте 700. Когда эта дублированная виртуальная машина загружается, она может рассматривать свои виртуальные диски как способные и к записи, и к чтению. На новый разностный диск 762 может выполняться запись, в то время как информация может считываться с нового разностного диска 762, его родителя или более ранних предков в зависимости от того, где информация находится.

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

В качестве примера предположим, что модуль управления дублированием на первичном сайте 700 запрашивает рабочую нагрузку виртуальной машины, чтобы сделать согласованную с приложениями копию виртуального хранилища или другой моментальный снимок данных, который включает в себя подготовку программного обеспечения к моментальному снимку данных. В ответ прикладное программное обеспечение может попытаться сделать себя непротиворечивым для моментального снимка данных, но может быть трудно скоординировать моментальный снимок данных, взятый на виртуальном диске, со "сбросами" информации, которые происходят в приложении. Когда оказывается, что прикладное программное обеспечение завершило сброс данных в хранилище, берется моментальный снимок данных виртуального диска. После этого, снятый разностный диск помечается защищенным от записи, и создается новый разностный диск. Между временем, когда взят моментальный снимок данных виртуального диска, и временем, когда соответствующий разностный диск был защищен от записи, одна или более случайных записей данных могли попасть на разностный диск, который подвергался моментальному снимку данных. Поэтому возможно, что разностный диск может точно не соответствовать моментальному снимку данных разностного диска 758, который был передан сайту 750 восстановления. В этом случае, даже без переключения при сбое на сайте 750 восстановления разностный диск 758 может быть смонтирован как живой виртуальный диск, чтобы определить местоположение этих случайных записей и вернуть эти случайные записи из разностного диска D2 758 на разностный диск 762, созданный на сайте 750 восстановления. Таким образом, если в конечном счете необходимо переключение при сбое, эта задача уже будет обработана. Эта функция возвращения случайных записей может быть выполнена с использованием виртуальной машины, которая была бы в конечном счете восстановлена, или, в качестве альтернативы, может быть сделана как часть службы, которая монтирует образ диска и управляет им, чтобы извлечь случайные записи.

Пример на фиг. 7A-7F изображает иллюстративные действия, предпринимаемые на каждом из первичных сайтов и сайтов восстановления. Фиг. 10 является блок-схемой последовательности операций, показывающей иллюстративные функции с точки зрения по меньшей мере одного первичного сервера на первичном сайте, у которого должно быть дублировано его виртуальное хранилище (или другое хранилище). Этот пример предполагает, что виртуальное хранилище дублируется, и что сделаны доступными несколько типов копий виртуального хранилища.

В этом примере базовый виртуальный диск обеспечивается для сайта восстановления, как изображено на этапе 1000. Как показано на этапе 1002, разностный диск или другая структура хранения создается на первичном сайте для записи изменений виртуального диска. В этом примере обеспечено некоторое количество "n" разных типов моментальных снимков данных/копий, в том числе тип-A копии, тип-B копии в вплоть до типа-n копии. Когда управление дублированием или другой управляющий модуль первичного сайта запрашивают копию виртуального хранилища, как определено на этапе 1004, он может определить, какой тип копии требуется. Идентификация типа копии может быть сделана пользователем через пользовательский интерфейс или быть сконфигурирована в аппаратных средствах или программном обеспечении как требуемая в соответствии с политикой, такой как описанная в связи с фиг. 8, или иным образом.

В этом примере, если управление дублированием запросило копию типа-A, как определено на этапе 1006, моментальный снимок данных или другая копия разностного диска получается без подготовки программного обеспечения к копии виртуального хранилища, как показано на этапе 1012. Например, это может быть моментальный снимок данных VSS или другой согласованный с приложениями моментальный снимок данных. Если запрашивается копия типа-B, как определено на этапе 1008, получается моментальный снимок данных или другая копия разностного диска, где по меньшей мере часть программного обеспечения подготовилась к копии виртуального хранилища, как показано на этапе 1014. Могут быть определены другие типы копий, посредством чего тип копии может быть определен на этапе 1010, и, как показано на этапе 1016, моментальный снимок данных или другая копия могут быть получены в соответствии с правилами для этого типа копии.

Когда соответствующий моментальный снимок данных или другая копия были получены, они могут быть переданы сайту восстановления, как показано на этапе 1018. Этап 1020 иллюстрирует, что разностный диск, который был скопирован на первичном сайте, защищен от записи, и этап 1022 показывает, что будет создан новый разностный диск для захвата изменений виртуального диска. По меньшей мере по причинам сокращения требований емкости хранилища и сокращения задержек при чтении данных через цепочку дисков промежуточные диски могут быть объединены с их образом их родительского диска, как показано на этапе 1024.

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

Фиг. 11 является логической блок-схемой последовательности операций, показывающей иллюстративные функции с точки зрения по меньшей мере одного сервера восстановления на сайте восстановления, который копирует виртуальную машину (машины). Этот пример предполагает, что виртуальное хранилище дублируется, и что первичным сайтом обеспечиваются несколько типов копий виртуальных дисков. Как показано на этапе 1100, базовый виртуальный диск, принятый как дублирование базового виртуального диска первичного сайта, обеспечивается как основа цепочки виртуальных дисков на сайте восстановления. Когда моментальный снимок данных или другая копия приняты от основного сервера, как определено на этапе 1102, тип принятой копии определяется на этапе 1104. Полученная в результате копия разностного диска на сайте восстановления может быть идентифицирована по типу копии, такому как согласованная с приложениями, соответствующая отказу и т.д. Указатель или другая связь в принятой копии могут быть изменены, как показано на этапе 1106, чтобы указатель указывал на своего родителя на сайте восстановления. При желании промежуточные разностные диски могут быть объединены с их соответствующими родительскими дисками, как показано на этапе 1110. Дополнительно этап 1108 показывает, что разностный диск может быть создан для указания на желаемую копию, чтобы возвратить случайные записи, как было описано в связи с фиг. 7F.

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

В одном варианте осуществления на дублированной виртуальной машине может быть выполнен тест. В этом случае дублированная виртуальная машина продолжает принимать изменения виртуального диска, как прежде (например, принимая копии разностных дисков первичного сайта), в то время как тестовая виртуальная машина переводится в рабочее состояние от точки созданного разностного диска. Таким образом, дублирование может продолжаться, пока выполняется тест на дублированной копии виртуальной машины, без копирования виртуальных жестких дисков дублированной виртуальной машины. Это обеспечивает способ формирования тестовой копии дублированной виртуальной машины с использованием двух множеств разностных дисков, указывающих на одни и те же родительские виртуальные жесткие диски. Записи, исполняемые от тестовой виртуальной машины, захватываются на одном множестве разностных дисков, и эти диски могут быть отброшены, как только тест завершается. Периодические синхронизированные копии разностных дисков, прибывающие от первичного сервера, собираются в другом множестве разностных дисков и могут быть объединен с родительским, как только тест завершается. Эта опция изображена на фиг. 11. Если тест должен быть выполнен, как определено на этапе 1112, создается 1114 разностный диск, который указывает на точку восстановления, которая будет протестирована, и дублированная виртуальная машина может быть загружена для выполнения теста.

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

Иллюстративная вычислительная система 1200 включает в себя процессор 1202, соединенный с многочисленными модулями через системную шину 1204. Изображенная системная шина 1204 представляет любой тип шинной структуры (структур), которая может быть прямо или косвенно присоединена к различным компонентам и модулям вычислительной среды. Среди различных компонентов имеются устройства хранения, любое из которых может хранить объект дублирования.

Постоянное запоминающее устройство (ROM) 1206 может быть обеспечено для хранения встроенных программ, используемых процессором 1202. Постоянное запоминающее устройство 1206 представляет любой тип постоянной памяти, такой как программируемое постоянное запоминающее устройство (PROM), стираемое программируемое постоянное запоминающее устройство (EPROM) и т.п. Базовая или системная шина 1204 может быть присоединена к контроллеру 1214 памяти, который в свою очередь соединен с памятью 1208 через шину 1216 памяти. Иллюстративная память 1208 может хранить, например, весь гипервизор 1210 или его части или другое программное обеспечение виртуализации, операционную систему 1218 и модуль, такой как модуль 1212 управления дублированием (RMM), который выполняет по меньшей мере описанные здесь функции. Модуль 1212 RMM может быть реализован как часть, например, гипервизора 1210 и/или операционной системы 1218.

Память также может хранить прикладные программы 1220 и другие программы 1222 и данные 1224. Дополнительно, все виртуальное хранилище 1226 или его часть может храниться в памяти 1208. Однако вследствие потенциального размера дисков виртуального хранилища один вариант осуществления включает в себя хранение дисков виртуального хранилища в устройства хранения, а не в памяти, как изображено посредством виртуального хранилища 1226B, соответствующего любому одному или более иллюстративным устройствам 1234, 1240, 1244, 1248 хранения. Виртуальное хранилище 1226A в памяти 1208 также может представлять любую часть виртуального хранилища, которое временно кэшировано или иным образом сохранено в памяти как промежуточный этап для обработки, передачи или сохранения в устройстве (устройствах) 1234, 1240, 1244, 1248 хранения данных.

Фиг. 12 иллюстрирует различные иллюстративные устройства хранения, в которых могут храниться данные и/или может храниться виртуальное хранилище. Например, системная шина может быть присоединена к интерфейсу 1230 внутренней памяти, который может быть присоединен к диску (дискам) 1232, такому как жесткий диск. Носители 1234 являются связанными или иным образом могут работать с приводами. Примеры такого хранилища включают в себя жесткие диски и другие магнитные или оптические носители, флэш-память и другие твердотельные устройства и т.д. Интерфейс 1230 внутренней памяти может использовать любой тип энергозависимой или энергонезависимой памяти. Данные, включающие в себя виртуальные жесткие диски (например, файлы VHD, файлы AVHD и т.д.), могут храниться на таких носителях 1234.

Аналогичным образом, интерфейс 1236 для съемных носителей также может быть присоединен к шине 1204. Приводы 1238 могут быть присоединены к интерфейсу 1236 съемного хранилища, чтобы принимать и работать со съемным хранилищем 1240, таким как, например, гибкие диски, оптические диски, карты памяти, флэш-память, внешние жесткие диски и т.д. Файлы виртуального хранилища и другие данные могут быть сохранены на таком съемном хранилище 1240.

В некоторых случаях хост-адаптер 1242 может быть обеспечен для доступа к внешнему хранилищу 1244. Например, хост-адаптер 1242 может взаимодействовать с внешними устройствами хранения через интерфейс малых компьютерных систем (SCSI), Fibre Channel, интерфейс SATA или eSATA и/или другие аналогичные интерфейсы, способные к соединению с внешним хранилищем 1244. Посредством сетевого интерфейса 1246 другое удаленное хранилище может быть доступно для вычислительной системы 1200. Например, проводные и беспроводные приемопередатчики, соответствующие сетевому интерфейсу 1246, обеспечивают возможность для связи с устройствами 1248 хранения данных через одну или более сетей 1250. Устройства 1248 хранения данных могут представлять дискретные устройства хранения или хранилища, соответствующие другой вычислительной системе, серверу и т.д. Связь с удаленными устройствами и системами хранения может быть выполнена через проводные локальные сети (LAN), беспроводные локальные сети и/или большие сети, в том числе глобальные сети (GAN), такие как Интернет. Файлы виртуального хранилища и другие данные могут быть сохранены на таких внешних устройствах 1244, 1248 хранения.

Как описано здесь, первичные серверы и серверы восстановления передают информацию, такую как моментальные снимки данных или другие копии. Связь между серверами может быть осуществлена посредством прямого проводного соединения, одноранговых сетей, сетей на основе локальной инфраструктуры (например, проводные и/или беспроводные локальные сети), сети вне сайта, такие как городские компьютерные сети и другие широкомасштабные сети, глобальные сети и т.д. Передатчик 1252 и приемник 1254 изображены на фиг. 12, чтобы изобразить структурную возможность вычислительного устройства передавать и/или принимать данные по любой из этих или других методологий связи. Передатчик 1252 и/или приемник, 1254 устройства могут быть автономными компонентами, могут быть интегрированы как приемопередатчик (приемопередатчики), могут быть интегрированы в уже существующую часть других устройств связи, таких как сетевой интерфейс 1246, и т.д. Когда вычислительная система, 1200 представляет сервер или другое вычислительное устройство на первичном сайте, весь виртуальный диск или его части или другие сохраненные данные, которые должны быть дублированы, могут быть передана через передатчик 1252, является ли это автономным устройством, интегрированным с приемником 1254, интегрированным с сетевым интерфейсом 1246 и т.д. Аналогичным образом, когда вычислительная система 1200 представляет сервер или другое вычислительное устройство на сайте восстановления, весь виртуальный диск или его части или другие сохраненные данные, которые должны быть дублированы, могут быть приняты через приемник 1254, является ли он автономным устройством, интегрирован с передатчиком 1252, интегрирован с сетевым интерфейсом 1246, и т.д. Поскольку вычислительная система 1200 может представлять сервер (серверы) либо на первичном сайте, либо на сайте восстановления, блок 1256 представляет первичный сервер (серверы) или сервер (серверы) восстановления, который взаимодействует с вычислительной системой 1200, представляющей другой первичный сервер (серверы) или сервер (серверы) восстановления.

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

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

1. Устройство для управления дублированным виртуальным хранилищем, содержащее:

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

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

модуль управления дублированием, выполненный с возможностью:

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

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

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

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

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

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

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

7. Устройство по п. 1, в котором модуль управления дублированием приспособлен для реализации в гипервизоре.

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

сохраняют образ базового виртуального диска, связанного с виртуальной машиной;

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

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

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

10. Компьютерно-реализуемый способ по п. 8, в котором при создании копии текущего разностного диска чтения/записи создают по меньшей мере два типа копий текущего разностного диска чтения/записи, включающие в себя по меньшей мере первый тип копии, полученный по данным приложения, которые были подготовлены для создаваемой копии, и включающие в себя по меньшей мере второй тип копии, полученный по данным приложения, которые не были подготовлены для создаваемой копии.

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

12. Компьютерно-реализуемый способ по п. 10, в котором при создании первого типа копии создают моментальный снимок службы теневой копии тома (VSS) текущего разностного диска чтения/записи.

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

14. Компьютерно-реализуемый способ по п. 10, в котором при создании по меньшей мере двух типов копий текущего разностного диска чтения/записи создают копии первого типа копии в связи с первым расписанием копирования и создают копии второго типа копии в связи со вторым расписанием копирования.

15. Компьютерно-реализуемый способ по п. 8, дополнительно содержащий этапы, на которых:

принимают операцию чтения в отношении первого разностного диска среди разностных дисков в цепочке дисков; и

получают данные, не найденные на первом разностном диске, с родительского диска первого разностного диска в соответствии с включенным в первый разностный диск указателем, который указывает родительский диск.

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

17. Машиночитаемый носитель, на котором сохранены команды, которые являются исполняемыми вычислительной системой для выполнения этапов, на которых:

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

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

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

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

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

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

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

20. Машиночитаемый носитель по п. 17, в котором по меньшей мере один из предназначенных только для чтения моментальных снимков является моментальным снимком VSS.



 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Группа изобретений относится к области хранения данных и может быть использована для тиражирования данных. Техническим результатом является повышение быстродействия.
Изобретение относится к вычислительной технике. Технический результат заключается в снижении вероятности потери «грязных» данных при отказе одного из контроллеров.

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

Изобретение относится к вычислительной технике а, именно к способу восстановления данных в системе управления базами данных - СУБД. Техническим результатом является повышение точности восстановления данных в базах данных (БД) СУБД до последнего по времени согласованного состояния БД, не требуя при восстановлении дополнительного объема оперативной и внешней памяти под журнализацию.

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

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

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

Группа изобретений относится к области электроники и может быть использована для управления временем обращения к памяти. Техническим результатом является уменьшение времени обращения к памяти.
Наверх