Мигрирование виртуальной машины, которая владеет ресурсом, таким, как аппаратное устройство

Изобретение относится к способу и механизму, которые могут применяться, чтобы переместить виртуальную машину, которая владеет ресурсом с первой машины или платформы на вторую машину или платформу. Техническим результатом является обеспечение сохранения информации о состоянии, относящейся к ресурсу при миграции. Система содержит: ресурс для предоставления службы ресурса; и вычислительное устройство, имеющее первую и вторую виртуальные машины (VM), созданные на вычислительном устройстве, первая VM первоначально владеет ресурсом и службой, предоставляемой им, вторая VM впоследствии связывается с возможностью передачи данных с ресурсом, а ресурс впоследствии назначается второй VM после того, как ресурс был удален из первой VM, так что вторая VM впоследствии владеет ресурсом и службой, предоставленной им. 3 н. и 12 з.п. ф-лы, 6 ил.

 

Область техники

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

Уровень техники

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

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

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

В вычислительном устройстве с множеством созданных разделов любой отдельный ресурс вычислительного устройства может динамически назначаться отдельному разделу/виртуальной машине (далее "виртуальной машине" или "VM"), так что отдельная VM может непосредственно управлять таким ресурсом и обслуживая запросы для ресурса от других VM на вычислительном устройстве. Такая отдельная VM затем, в сущности, является узлом, который предоставляет возможности ресурса в качестве VM-хоста ("VM-H") ресурса, которая "владеет" отдельным ресурсом. Подобным образом, такой VM-H предоставляет службы ресурса другой VM, которая, по существу, является клиентом, который использует такие возможности в качестве VM-клиента ("VM-C") ресурса. Таким образом, VM-C и VM-H вместе выполняют операции, которые требуют использования отдельного ресурса.

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

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

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

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

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

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

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

Сущность изобретения

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

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

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

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

Краткое описание чертежей

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

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

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

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

Фиг.4 является блок-схемой, показывающей VM-H на фиг.3 в дополнительных подробностях, как связанный с ресурсом, которым владеет такой VM-H;

Фиг.5 является блок-схемой, показывающей VM-H на фиг.3 в дополнительных подробностях, как связанный с ресурсом, которым владеет такой VM-H в соответствии с одним вариантом осуществления настоящего изобретения; и

Фиг.6 является блок-схемой, показывающей ключевые этапы, выполненные в связи с VM-H на фиг.5, чтобы выполнить сохранение и мигрирование VM-H при гарантировании того, что все запросы доступа к ресурсу правильно обрабатываются в соответствии с одним вариантом осуществления настоящего изобретения.

Подробное описание изобретения

Вычислительное окружение

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

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

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

Относительно фиг.1 примерная система для реализации изобретения включает в себя вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, но не в качестве ограничения, блок 120 обработки, системную память 130 и системную шину 121, которая соединяет различные компоненты системы, включая системную память, с блоком 120 обработки. Системная шина 121 может быть любой из нескольких типов шинных структур, включающих в себя шину памяти или контроллер памяти, периферийную шину и локальную шину, использующих любую из многообразия шинных архитектур. В качестве примера, но не ограничения, такие архитектуры включают в себя шину стандартной архитектуры для промышленного применения (ISA), шину микроканальной архитектуры (MCA), шину расширенной ISA (EISA), шину стандарта (VESA) локальной видеошины для ПК и шину соединения периферийных компонентов (PCI), также известную как мезонинная шина, и PCI Express.

Компьютер 110 в типичном варианте включает в себя многообразие машиночитаемых носителей. Машиночитаемыми носителями могут быть любые возможные носители, доступ к которым может быть осуществлен компьютером 110 и которые могут быть как энергозависимыми или энергонезависимыми, так и съемными или несъемными. В качестве примера, но не ограничения, машиночитаемые носители могут содержать компьютерные устройства хранения и среду передачи данных. Компьютерное устройство хранения включает в себя как энергозависимые и энергонезависимые носители, так и съемные и несъемные носители, реализованные в рамках любого способа или технологии для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерное устройство хранения включает в себя, но не в качестве ограничения, RAM, ROM, EEPROM, флэш-память, или другую технологию памяти, CD-ROM, цифровой универсальный диск (DVD) или другой оптический дисковый носитель, магнитные кассеты, магнитную ленту, магнитный дисковый накопитель или другие магнитные устройства хранения, или любой другой носитель, который может быть использован, чтобы хранить желаемую информацию и к которому может быть осуществлен доступ компьютером 110. Среда передачи данных обычно воплощает машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном информационном сигнале, таком как несущая волна, или другом транспортном механизме, и включает в себя любую среду доставки информации. Термин "модулированный информационный сигнал" означает сигнал, который обладает одной или несколькими характеристиками, заданными или измененными таким способом, как кодирование информации в сигнале. В качестве примера, а не ограничения, среда передачи включает в себя проводную среду, такую как проводная сеть или прямое кабельное соединение или волоконно-оптическое соединение, и беспроводную среду, такую как акустическая, RF, инфракрасная, оптическая, фазированная антенная решетка, функционирующая на любой длине волны, направленные и ненаправленные электромагнитные излучатели и приемники, работающие на любой длине волны, и другую беспроводную среду.

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

Системная память 130 включает в себя носитель хранения вычислительной машины в виде энергозависимого и/или энергонезависимого запоминающего устройства, такого как постоянное запоминающее устройство 131 (ROM) и оперативное запоминающее устройство 132 (RAM). Базовая система 133 ввода/вывода (BIOS), содержащая в себе базовые подпрограммы, которые помогают передавать информацию между элементами в рамках компьютера 110, к примеру, во время запуска, в типичном варианте сохранена в ROM 131. RAM 132 в типичном варианте содержит в себе данные и/или программные модули, которые непосредственно доступны и/или являются собственно выполняемыми блоком 120 обработки. В качестве примера, но не ограничения, фиг.1 иллюстрирует операционную систему 134, прикладные программы 135, другие программные модули 136 и программные данные 137.

Компьютер 110 также может включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные устройства хранения. Только в качестве примера, фиг.1 иллюстрирует накопитель 141 на жестком диске, который считывает с или записывает на несъемный энергонезависимый магнитный носитель, накопитель 151 на магнитных дисках, который считывает с или записывает на съемный энергонезависимый магнитный диск 152, и накопитель 155 на оптических дисках, который считывает с или записывает на съемный энергонезависимый оптический диск 156, такой как CD-ROM, или другой оптический накопитель. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие носители, которые могут быть использованы в примерном операционном окружении, включают в себя, но не в качестве ограничения, магнитные кассеты, карты флэш-памяти, цифровые универсальные диски, цифровую видеоленту, твердотельные RAM, твердотельные ROM. Накопитель 141 на жестком диске в типичном варианте подключен к системной шине 121 через интерфейс несъемной памяти, такой как интерфейс 140, а накопитель 151 на магнитных дисках и накопитель 155 на оптических дисках в типичном варианте подключены к системной шине 121 посредством интерфейса съемной памяти, такого как интерфейс 150.

Накопители и ассоциированные с ним компьютерные устройства хранения, обсужденные выше и проиллюстрированные на фиг.1, предоставляют хранение машиночитаемых инструкций, структур данных, программных модулей, и других данных для компьютера 110. На фиг.1, например, накопитель 141 на жестких дисках проиллюстрирован в качестве хранящего операционную систему 144, прикладные программы 145, другие программные модули 146 и программные данные 147. Заметим, что эти компоненты могут либо быть такими же, как, или отличными от операционной системы 134, прикладных программ 135, других программных модулей 136 и программных данных 137. Операционная система 144, прикладные программы 145, другие программные модули 146 и программные данные 147 даны здесь с разными номерами, чтобы проиллюстрировать, что, как минимум, они являются различными копиями. Пользователь может вводить команды и информацию в компьютер 110 через устройства ввода, например, клавиатура 162 и указательное устройство 161, обычно упоминаемое как мышь, трекбол или сенсорная панель. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковую антенну, сканер. Эти и другие устройства ввода данных часто подключены к блоку 120 обработки через пользовательский интерфейс 160 ввода данных, который соединен с системной шиной 121, однако могут подключаться через другие интерфейсы и структуры шин, такие как параллельный порт, игровой порт или универсальная последовательная шина (USB).

Монитор 191 или другой тип устройства отображения также подключен к системной шине 121 через интерфейс, например видеоинтерфейс 190. Графический интерфейс 182, такой как Северный мост, может быть также подключен к системной шине 121. Северный мост представляет собой набор микросхем, которые связываются с CPU или ведущим блоком 120 обработки, и несет ответственность за передачу данных через ускоренный графический порт (AGP). Один или более графических блоков 184 обработки (GPU) могут присоединяться к графическому интерфейсу 182. В этой связи GPU 184 в общем включают в себя размещенное на микросхеме устройство памяти, такое как регистровое хранилище, и GPU 184 связываются с видеопамятью 186. GPU 184, тем не менее, являются одним из примеров сопроцессоров, и такое разнообразие сопроцессорных устройств может быть включено в компьютер 110. Монитор 191 или другой тип устройства отображения также подключен к системной шине 121 через интерфейс, например видеоинтерфейс 190, который может в свою очередь связываться с видеопамятью 186. В дополнение к монитору 191 компьютер может также включать другие периферийные устройства вывода, такие как громкоговорители 197 и принтер 196, которые могут быть присоединены через интерфейс 195 вывода для периферийных устройств.

Компьютер 110 может работать в сетевом окружении, использующем логические соединения с одним или более удаленными компьютерами, такими как удаленный компьютер 180. Удаленным компьютером 180 может быть персональный компьютер, сервер, маршрутизатор, сетевой ПК, одноранговое устройство или другой общий узел сети, и он в типичном варианте включает в себя многие или все элементы, описанные выше относительно компьютера 110, хотя на фиг.1 проиллюстрировано только устройство 181 памяти. Логические соединения, показанные на фиг.1, включают в себя локальную вычислительную сеть (LAN) 171 и глобальную вычислительную сеть (WAN) 173, но могут также включать в себя другие сети. Такие сетевые среды являются обычными в офисах, корпоративных компьютерных сетях, сетях интранет и Интернете.

Когда используется в сетевом LAN-окружении, компьютер 110 подключен к LAN 171 через сетевой интерфейс или адаптер 170. Когда используется в сетевом WAN-окружении, компьютер 110 в типичном варианте включает в себя модем 172 или другое средство для установления связи по WAN 173, такой как Интернет. Модем 172, который может быть внутренним или внешним, может быть подключен к системной шине 121 через интерфейс 160 пользовательского ввода или с использованием другого подходящего механизма. В объединенном в сеть окружении программные модули, изображенные относительно компьютера 110, или их части, могут быть сохранены в удаленном устройстве памяти. В качестве примера, а не ограничения, фиг.1 иллюстрирует удаленные прикладные программы 185 как находящиеся на устройстве 181 памяти. Должно быть очевидно, что показанные сетевые соединения являются примерными, и может быть использовано другое средство установления линии связи между компьютерами.

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

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

Фиг.2 представляет блок-схему примерного сетевого или распределенного вычислительного окружения. Распределенное вычислительное окружение содержит в себе вычислительные объекты 10a, 10b и т.д. и вычислительные объекты или устройства 110a, 110b, 110c и т.д. Эти объекты могут содержать программы, способы, хранилища данных, программируемую логику и т.д. Объекты могут содержать части одних и тех же или разных устройств, таких как PDA, телевизоры, MP3-проигрыватели, телевизоры, персональные компьютеры и т.д. Каждый объект может связываться с другим объектом посредством сети 14 связи. Сеть сама может содержать другие вычислительные объекты и вычислительные устройства, которые предоставляют службы системе на фиг.2. В соответствии с аспектом изобретения каждый объект 10 или 110 может содержать приложение, которое может запрашивать технологии аутентификации настоящего изобретения для доверяемого графического конвейера(ов).

Следует также принимать во внимание, что объект, например, 110c может размещаться на другом вычислительном устройстве 10 или 110. Таким образом, хотя изображенное физическое окружение может показывать подключенные устройства как компьютеры, эта иллюстрация является просто примерной, и альтернативно может быть изображено или описано физическое окружение, содержащее различные цифровые устройства, например PDA, телевизоры, проигрыватели MP3 и т.д., программные объекты, такие как интерфейсы, COM-объекты и т.п.

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

В домашних сетевых окружениях существуют, по меньшей мере, четыре несопоставимых сетевых транспортных среды, которые, каждая, могут поддерживать уникальный протокол, такой как линия питания, среда передачи данных (как беспроводная, так и проводная), среда передачи голоса (например, телефон) и средства развлечения. Большинство домашних устройств управления, таких как переключатели света и приборы, могут использовать линию питания для связности. Службы данных могут входить в дом как широкополосный канал передачи (например, либо DSL, либо кабель-модем) и доступны в доме с помощью либо беспроводной (например, HomeRF или 802.11b), либо проводной (например, Home PNA, категория 5, даже линия питания) связи. Голосовой трафик может входить в дом, либо как проводной (например, категория 3), либо как беспроводной (например, сотовые телефоны), и может распределяться в доме с помощью проводки категории 3. Средства развлечения могут входить в дом либо через спутник, либо через кабель и в типичном варианте распределяются в доме с помощью коаксиального кабеля. IEEE 1394 и DVI также проявляются как цифровые межсоединения для групп мультимедийных устройств. Все из этих сетевых окружений и другие, которые могут возникнуть в качестве стандартов протоколов, могут быть связаны, чтобы сформировать интрасеть, которая может быть соединена с внешним миром посредством Интернета. Вкратце, множество несопоставимых источников существуют для хранения и передачи данных и, следовательно, двигаясь вперед, вычислительным устройствам потребуются способы защиты содержимого во всех частях конвейера обработки данных.

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

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

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

Клиент и сервер связываются друг с другом с использованием функциональности, предоставляемой уровнем протокола. Например, протокол передачи гипертекста (HTTP) является стандартным протоколом, который используется в связи с всемирной паутиной (WWW). В типичном варианте используется сетевой адрес компьютера, такой как унифицированный указатель ресурса (URL) или адрес Интернет протокола (IP), чтобы идентифицировать сервер или клиентский компьютер друг с другом. Сетевой адрес может упоминаться как адрес унифицированного указателя ресурса. Например, соединение может быть предоставлено через среду передачи данных. В частности, клиент и сервер могут быть соединены друг с другом через TCP/IP-соединения для высокопроизводительного обмена информацией.

Таким образом, фиг.2 иллюстрирует примерное сетевое или распределенное окружение с сервером на связи с клиентскими компьютерами через сеть/шину, в котором настоящее изобретение может быть реализовано. Более подробно, некоторое число серверов 10a, 10b и т.д. связаны через сеть связи/шину 14, которая может быть LAN, WAN, интрасетью, Интернетом и т.д., с некоторым числом клиентов или удаленных вычислительных устройств 110a, 110b, 110c, 110d, 110e и т.д., таких как переносной компьютер, карманный компьютер, тонкий клиент, подключенный к сети бытовой электроприбор или другое устройство, такое как VCR, TV, духовка, световой, нагревательный приборы и т.п., в соответствии с настоящим изобретением. Таким образом, предполагается, что настоящее изобретение может применяться к любому вычислительному устройству, в связи с которым желательно обработать, сохранить или воспроизвести защищенное содержимое из доверенного источника, и к любому вычислительному устройству, с помощью которого желательно визуализировать высокопроизводительную графику, сформированную виртуальной машиной.

В сетевом окружении, в котором сеть связи/шина 14 является Интернетом, например, серверы 10 могут быть веб-серверами, с которыми клиенты 110a, 110b, 110c, 110d, 110e и т.д. могут связываться через любое число известных протоколов, например, HTTP. Серверы 10 могут также служить в качестве клиентов 110, что может быть характеристикой распределенного вычислительного окружения. Соединения передачи данных могут быть проводными или беспроводными, где применимо. Клиентские устройства 110 могут связываться или могут не связываться через сеть связи/шину 14, и могут иметь независимые линии связи, ассоциированные с ними. Например, в случае TV или VCR может присутствовать или может не присутствовать сетевой аспект их управления. Каждый клиентский компьютер 110 и серверный компьютер 10 может быть оснащен различными прикладными программными модулями или объектами 135 и соединениями или доступом к различным типам запоминающих элементов или объектов, через которые файлы могут быть сохранены или в которые часть(и) файлов может быть загружена или перемещена. Таким образом, настоящее изобретение может использоваться в вычислительном сетевом окружении, имеющем клиентские компьютеры 110a, 110b и т.д., которые могут осуществлять доступ и взаимодействовать с вычислительной сетью/шиной 14 и серверными компьютерами 10a, 10b и т.д., которые могут взаимодействовать с клиентскими компьютерами 110a, 110b и т.д. и другими устройствами 111 и базами 20 данных.

Разделенное вычислительное устройство

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

Существенно, вычислительное устройство 10 было выполнено с возможностью подключать множество разделов, где каждый раздел может применяться для того, чтобы создать экземпляр виртуальной машины, чтобы, в свою очередь, разместить экземпляр операционной системы, в которой могут быть созданы экземпляры одного или более приложений. Как можно увидеть, в таком вычислительном устройстве 10 отдельный ресурс 12 вычислительного устройства 10 назначен отдельному разделу или виртуальной машине 14 (далее в данном документе, VM 14), так что отдельная VM 14 может непосредственно управлять таким отдельным ресурсом 12. Такая отдельная VM 14 затем является главным узлом, который предоставляет возможности ресурса (VM-H 14). Подобным образом такой VM-H 14 предоставляет службы ресурса одной или более другим VM 16, каждая из которых, в сущности, является клиентом, который использует эти службы ("VM-C 16"). В типичном варианте каждый VM-C 16 и VM-H 14 связываются посредством программного канала или канала, такого как шина 18 виртуальной машины (VM) или т.п., чтобы выполнить связанные с ресурсом операции.

VM-шина 18 может быть установлена как объект в и сам по себе на вычислительном устройстве 10 или может вместо этого быть установлена как концептуальный объект, который не существует сам по себе, без отступления от духа и объема настоящего изобретения. В последнем случае, следует принимать во внимание, такая концептуальная VM-шина 18 декларируется как канал связи между VM 14, 16, когда такие VM 14, 16 выбирают установление связи между собой. В частности, декларирование такой VM-шины 18 может рассматриваться для реализации, когда в направлении VM 14, 16, предпочитающих связаться между собой, такие VM 14, каждая, выполняют необходимые службы для такой связи и, в сущности, применяют такие службы, чтобы связаться таким образом. В таком случае связь может возникнуть по любой подходящей среде передачи в вычислительном устройстве 10 без отступления от духа и объема настоящего изобретения.

Вычислительное устройство 10 на фиг.3 и каждая его VM 14, 16 могут быть функционально задействованы так, чтобы включать в себя и пользовательский режим, и режим ядра, хотя такие режимы не воспринимаются как абсолютно необходимые для целей настоящего изобретения. Во всяком случае, и как следует принимать во внимание, пользовательский режим обычно является непривилегированным состоянием, где существующему коду аппаратными средствами запрещается выполнение определенных операций, таких как, например, запись в память, которая не выделена такому коду. Обычно такие запрещенные операции - это те, которые могут дестабилизировать работу системы VM 14, 16 или создать риск для безопасности. В условиях операционной системы пользовательский режим является аналогичным непривилегированным режимом выполнения, где работающему коду ядром запрещается выполнять потенциально опасные операции, такие как запись в системные конфигурационные файлы, уничтожение других процессов, перезагрузка системы и т.п.

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

Мигрирование VM-H 14, владеющей аппаратным ресурсом 12

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

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

В одном сценарии, где VM-H 14 может допускать прерывание в использовании аппаратного ресурса 12, информация о состоянии в ресурсе 12 является относительно безвредной по природе и, вероятно, может быть задействована и удалена из ресурса 12 перед остановкой VM-H 14 для его мигрирования. Например, если ресурс 12 является принтером, и информация о состоянии относится к заданию печати, заданию печати может быть разрешено завершиться так, что информация о состоянии потребляется принтером, после чего владение ресурсом 12 принтера может быть снято с VM-H 14, и такой VM-H 14 может быть мигрирован.

В другом сценарии, где VM-H 14 может допускать прерывание в использовании аппаратного ресурса 12, информация о состоянии в ресурсе 12 является чем-то менее безвредным по природе, но, вероятно, может быть перемещена в VM-H 14 перед остановкой VM-H 14 для его мигрирования. Например, если ресурс 12 является тем же принтером, что и прежде, а информация о состоянии относится к тому же заданию печати, что и прежде, но такое задание печати не может быть завершено в течение разумного количества времени, задание печати может быть остановлено, а оставшаяся информация о состоянии, относящаяся к заданию печати, может быть перемещена в VM-H 14 перед остановкой VM-H 14 для его мигрирования, после чего владение ресурсом 12 принтером может снова быть снято с VM-H 14, и такой VM-H 14 может быть мигрирован. После мигрирования, затем, и предполагая, что VM-H 14 снова владеет ресурсом 12 того же принтера, оставшаяся информация о состоянии, относящаяся к заданию печати, может быть перемещена из VM-H 14 в такой принтер, чтобы завершить задание печати.

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

Отметим также, что VM-H 14, который владеет ресурсом 12, может включать в себя информацию о состоянии в ресурсе, включающую в себя списки заданий, переменные внутреннего состояния машины и т.п. Если VM-H 14 произвольно останавливается и повторно запускается, информация о состоянии в ресурсе 12 вероятно будет другой и просроченные запросы будут, в лучшем случае, отброшены, что может вызвать аварийный отказ VM-H 14. На худой конец драйвер или т.п. для ресурса 12 неправильно поймет ситуацию и при программировании ресурса 12 испортит память в ресурсе 12, опять вызывая аварийный отказ VM-H 14, а также, возможно, вызывая аварийный отказ других VM 14, 16 в вычислительном устройстве 10.

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

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

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

Обращаясь теперь к фиг.4, видно, что типичный VM-H 14 осуществляет доступ к ресурсу 12, такому как ресурс 12 запоминающего устройства, посредством стека 22 запоминающего устройства, который может включать в себя драйвер файловой системы, драйвер раздела, драйвер тома, драйвер диска и т.п. Конечно настоящее изобретение не ограничивается ресурсом 12 запоминающего устройства, а вместо этого может быть любым другим типом ресурса 12 без отступления от духа и объема настоящего изобретения, в этом случае для доступа к нему может применяться подходящий соответствующий стек 22 или т.п.

Как показано, стек 22 запоминающего устройства на фиг.4 связывается с ресурсом 12 запоминающего устройства посредством драйвера 24 порта или т.п. (далее "порт 24" или эквивалент). Следует принимать во внимание, и что является типичным, порт 24 транслирует общие, идеализированные команды и запросы из стека 22 запоминающего устройства в команды или запросы, конкретные для ресурса 12 запоминающего устройства. Особенно если, например, ресурс 12 запоминающего устройства включает в себя часть памяти, в которой размещается операционная система VM-H 14, такой ресурс 12 запоминающего устройства должен находиться в непрерывной работе, чтобы принимать запросы подкачки страниц и подобные, или иначе операционная система VM-H 14 выйдет из строя. Проще говоря, в таком случае доступ к ресурсу 12 запоминающего устройства не может быть прерван, по меньшей мере, до такой степени, что VM-H 14 должна всегда быть способна направить информацию о состоянии в форме запросов доступа и т.п. такому ресурсу 12 запоминающего устройства.

Соответственно, и обращаясь теперь к фиг.5, в одном варианте осуществления настоящего изобретения один порт 24 на фиг.4 заменяется парой портов 24a, 24b, при этом порт 24a связывает с возможностью передачи данных стек 22 запоминающего устройства с ресурсом 12 запоминающего устройства, а порт 24b связывает с возможностью передачи данных стек 22 запоминающего устройства с альтернативным адресатом посредством среды передачи. Как показано, среда передачи является VM-шиной 18, а предположительно альтернативный адресат является другой VM 14, 16, работающей в вычислительном устройстве 10. Однако альтернативный адресат и среда передачи могут быть любыми подходящими альтернативным адресатом и средой передачи без отступления от духа и объема настоящего изобретения.

Важно, в одном варианте осуществления настоящего изобретения, и как видно на фиг.5, каждый порт 24a, 24b соединен со стеком 22 запоминающего устройства посредством редиректора 26 порта. Следует принимать во внимание, что редиректор 26 порта направляет каждый запрос доступа к ресурсу 12 запоминающего устройства либо такому ресурсу 12 запоминающего устройства посредством порта 24a, либо альтернативному адресату посредством порта 24b и среды передачи/VM-шины 18. Принципиально то, что редиректор 26 порта определяет, как направить каждый запрос доступа способом, изложенным ниже.

Обращаясь теперь к фиг.6, и в одном варианте осуществления настоящего изобретения, видно, что показана последовательность операций, которая может применяться, чтобы переместить VM-H 14, который владеет ресурсом 12, таким как ресурс 12 запоминающего устройства. Отметим также, что такая последовательность операций может также применяться, чтобы сохранить такой VM-H 14 без обязательного его перемещения. Мигрирование или сохранение, но во время обычной операции выполнения VM-H 14, ресурсом 12 устройства хранения владеет VM-H 14, редиректор 26 порта направляет запросы доступа и подобные из стека 22 устройства хранения VM-H 14 ресурсу 12 устройства хранения посредством порта 24a, и порт 24a и ресурс 12 устройства хранения ставят в очередь и обрабатывают такие запросы доступа и т.п. (этап 601). Однако, после того как сохранение или мигрирование VM-H 14 приведены в действие каким-либо соответствующим источником (этап 603), редиректор 26 перенаправления порта направляет запросы доступа и подобные из стека 22 устройства хранения VM-H 14 в порт 24b (этап 605).

Первоначально порт 24b ставит в очередь принятые запросы доступа и т.п., в то время как порт 24a и ресурс 12 устройства хранения обрабатывают любые оставшиеся запросы доступа и т.п. (этап 607). Таким образом, всем запросам доступа или т.п. в порту 24a и ресурсе 12 устройства хранения предоставляется возможность завершения, после чего с ресурсом 12 устройства хранения не остается информации о состоянии, относящейся к ним (этап 609). Критично, пока таким запросам доступа и т.п. в порту 24a и ресурсе 12 устройства хранения предоставляется возможность завершения, дополнительные запросы доступа или т.п. ставятся в очередь в порту 24b, и такие запросы доступа или т.п. не запрещаются, не игнорируются или иначе отвергаются каким-либо образом, что может вызвать аварийный отказ операционной системы VM-H 14.

Важно, после того как все запросы доступа или т.п. на порт 24a и ресурс 12 устройства хранения завершены и в ресурсе 12 устройства хранения не остается информации о состоянии, относящейся к нему, ресурс 12 устройства хранения удаляется из (первого) VM-H 14, так что (первый) VM-H 14 больше не владеет им, возможно, посредством извлечения или т.п. (этап 611), и такой ресурс 12 устройства хранения затем назначается другими VM 14, 16, такие другие VM 14, 16 теперь являются вторым VM-H 14, который владеет ресурсом 12 устройства хранения (этап 613). Следует принимать во внимание, что выполнение таких действий удаления и назначения может быть сделано любым подходящим образом и любым подходящим объектом без отступления от духа и объема настоящего изобретения.

Также важно, и в одном варианте осуществления настоящего изобретения, после того как ресурс 12 устройства хранения был назначен второму VM-H 14, порт 24b связывается с таким вторым VM-H 14 посредством VM-шины 18 или т.п. (этап 615), и размещаемые в очереди запросы доступа или т.п. на такой порт 24b затем перенаправляются к такому второму VM-H 14 для выполнения в ресурсе 12 устройства хранения, которым он теперь владеет (этап 617). Как будет теперь оценено, в некий момент все необходимые запросы доступа или т.п. были отправлены ресурсу 12 устройства хранения посредством стека 12 устройства хранения первого VM-H 14 в ходе задействованного его сохранения или мигрирования, либо посредством порта 24a или порта 24b, и ресурс 12 устройства хранения обработал все такие отправленные запросы доступа или т.п. (этап 619). Соответственно, сохранение или мигрирование первого VM-H 14 может быть завершено с уверенностью в том, что все запросы доступа от VM-H 14 для ресурса 12 устройства хранения были задействованы, либо непосредственно посредством порта 24a, либо косвенно посредством порта 24b и второго VM-H 14, и с уверенностью в том, что ресурс 12 устройства хранения был извлечен из первого VM-H 14 без сохранения какой-либо информации о состоянии такого первого VM-H 14 (этап 621).

Следует принимать во внимание, что переназначение ресурса 12 устройства хранения первого VM-H 14 после его мигрирования, по существу, противоположно удалению, которое выполнено на этапах 603-621. Соответственно, подробности такого переназначения не нужно излагать здесь в каких-либо деталях.

Отметим здесь, что порт 24b первого VM-H 14 должен преобразовать общие команды, принятые им, в специфические команды. По существу, не требуется, чтобы стек 22 устройства хранения второго VM-H 14 был чем-то большим, чем функциональным эквивалентом стека 22 устройства хранения первого VM-H 14. В частности, так как такие стеки 22 оба выдают общие команды, такие общие команды, когда принимаются портом 24 второго VM-H 14, могут быть сделаны им специфическими.

Заключение

Хотя настоящее изобретение, по меньшей мере, частично изложено в терминах главной и клиентской VM 14, 16, следует принимать во внимание, что настоящее изобретение направлено на любую ситуацию, где раздел или VM, которая владеет аппаратными средствами, должна быть мигрирована. В то время как такая мигрирующая VM является главной по отношению к другим клиентам, необязательно существует случай, что такая мигрирующая VM всегда является такой главной по отношению к другим клиентам. Более того, следует принимать во внимание, что в ходе мигрирования, VM-H 14, при отказе от владения аппаратным устройством, в действительности становится VM-C 16, по меньшей мере, согласно терминологии, используемой здесь. Следует принимать во внимание, что настоящее изобретение, хотя правильно раскрыто в контексте главной и клиентской VM 14, 16, должно более правильно рассматриваться безотносительно условий, таких как "главный" или "клиент", т.е. в условиях VM, владеющей аппаратными средствами, которая должна быть мигрирована, и, перед выполнением этого, передающей владение такими аппаратными средствами другой VM.

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

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

Следует принимать во внимание, что могут быть сделаны изменения в вышеописанные варианты осуществления без отступления от понятий изобретения. В качестве одного примера, хотя настоящее изобретение изложено в условиях аппаратного ресурса 12 с информацией о состоянии VM-H 14, такой ресурс 12 может также быть ресурсом другого типа с информацией о состоянии VM-H 14, например программным ресурсом 12, без отступления от духа и объема настоящего изобретения. В качестве другого примера, хотя настоящее изобретение изложено в условиях стека 22 и порта 24 для доступа к ресурсу 12, такой стек 22 и порт 24 подразумевают включение в себя не только стеков и портов, соответственно, но любые другие подходящие механизмы доступа для обращения к ресурсу 12, все без отступления от духа и объема настоящего изобретения. Следует понимать, что данное изобретение не ограничено конкретными раскрытыми вариантами осуществления, а предназначено для того, чтобы охватывать модификации в рамках духа и объема настоящего изобретения, определенного прилагаемой формулой изобретения.

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

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

3. Вычислительная система по п.1, в которой вычислительное устройство имеет ресурс.

4. Вычислительная система по п.1, в которой ресурс является аппаратным ресурсом.

5. Вычислительная система по п.1, в которой ресурс является ресурсом устройства хранения.

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

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

8. Способ по п.6, в котором вычислительное устройство имеет ресурс.

9. Способ по п.6, в котором ресурс является аппаратным ресурсом.

10. Способ по п.6, в котором ресурс является ресурсом устройства хранения.

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

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

13. Способ по п.11, в котором вычислительное устройство имеет ресурс.

14. Способ по п.11, в котором ресурс является аппаратным ресурсом.

15. Способ по п.11, в котором ресурс является ресурсом устройства хранения.



 

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

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

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

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

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

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

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

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

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

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

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

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

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

Изобретение относится к способам отображения графических объектов

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

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

Изобретение относится к области начальной загрузки операционной системы

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

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

Наверх