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

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

Info

Publication number
RU2436149C2
RU2436149C2 RU2008135084/08A RU2008135084A RU2436149C2 RU 2436149 C2 RU2436149 C2 RU 2436149C2 RU 2008135084/08 A RU2008135084/08 A RU 2008135084/08A RU 2008135084 A RU2008135084 A RU 2008135084A RU 2436149 C2 RU2436149 C2 RU 2436149C2
Authority
RU
Russia
Prior art keywords
resource
port
ability
computing device
stack
Prior art date
Application number
RU2008135084/08A
Other languages
English (en)
Other versions
RU2008135084A (ru
Inventor
Джейкоб ОШИНС (US)
Джейкоб ОШИНС
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2008135084A publication Critical patent/RU2008135084A/ru
Application granted granted Critical
Publication of RU2436149C2 publication Critical patent/RU2436149C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Information Transfer Between Computers (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

Область техники
Настоящее изобретение относится к способу и механизму, которые могут применяться, чтобы переместить виртуальную машину, которая владеет ресурсом, таким как аппаратное устройство или другое физическое устройство, с первой машины или платформы на вторую машину или платформу. В частности, настоящее изобретение относится к такому способу и механизму, которые позволяют перемещение такой виртуальной машины без потери какой-либо информации о состоянии, относящейся к ресурсу.
Уровень техники
Следует принимать во внимание, виртуальная машина является программной конструкцией или т.п., работающей на вычислительном устройстве или т.п. с целью эмуляции аппаратной системы. В типичном варианте, хотя и не обязательно, виртуальная машина является приложением и т.п. и выполняется на вычислительном устройстве, чтобы размещать пользовательское приложение или т.п., и в то же самое время такое пользовательское приложение изолируется от такого вычислительного устройства или других приложений на таком вычислительном устройстве. Другая вариация виртуальной машины, например, может быть написана для каждого из множества разных вычислительных устройств, так что любое пользовательское приложение, написанное для виртуальной машины, может работать на любом из других вычислительных устройств. Таким образом, другая вариация пользовательского приложения для каждого другого вычислительного устройства не является необходимой.
Новые архитектуры вычислительных устройств и новое программное обеспечение в настоящее время позволяют одному вычислительному устройству создавать и подключать множество разделов, каждый из которых может применяться, чтобы создавать виртуальную машину, чтобы, в свою очередь, размещать экземпляр операционной системы, в которой могут быть созданы одно или более приложений. В типичном варианте, хотя не обязательно, вычислительное устройство включает в себя уровень виртуализации с монитором виртуальной машины и т.п., который функционирует как приложение-надсмоторщик или "гипервизор", где уровень виртуализации следит и/или иным образом управляет контролирующими аспектами каждой виртуальной машины и функционирует как возможная линия связи между каждой виртуальной машиной и внешним миром такой виртуальной машины.
Помимо прочего отдельная виртуальная машина на вычислительном устройстве может требовать доступ к ресурсу, ассоциированным связанному с вычислительным устройством. Следует понимать, что такой ресурс может быть ресурсом любого вида, который может быть ассоциирован с вычислительным устройством. Например, ресурс может быть устройством хранения, чтобы хранить и извлекать данные, а, в целом, предназначаться для любой цели, которую будет выполнять устройство хранения. Также ресурс может быть любым другим средством, таким как сеть, принтер, сканер, сетевой накопитель, виртуальный накопитель, сервер и т.п. Соответственно, каким бы ресурс ни был, виртуальная машина может в действительности иметь доступ к службам, предоставленным таким ресурсом.
В вычислительном устройстве с множеством созданных разделов любой отдельный ресурс вычислительного устройства может динамически назначаться отдельному разделу/виртуальной машине (далее "виртуальной машине" или "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, все без отступления от духа и объема настоящего изобретения. Следует понимать, что данное изобретение не ограничено конкретными раскрытыми вариантами осуществления, а предназначено для того, чтобы охватывать модификации в рамках духа и объема настоящего изобретения, определенного прилагаемой формулой изобретения.

Claims (15)

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, в котором ресурс является ресурсом устройства хранения.
RU2008135084/08A 2006-02-28 2007-02-13 Мигрирование виртуальной машины, которая владеет ресурсом, таким, как аппаратное устройство RU2436149C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/363,897 US7788665B2 (en) 2006-02-28 2006-02-28 Migrating a virtual machine that owns a resource such as a hardware device
US11/363,897 2006-02-28

Publications (2)

Publication Number Publication Date
RU2008135084A RU2008135084A (ru) 2010-03-10
RU2436149C2 true RU2436149C2 (ru) 2011-12-10

Family

ID=38445496

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2008135084/08A RU2436149C2 (ru) 2006-02-28 2007-02-13 Мигрирование виртуальной машины, которая владеет ресурсом, таким, как аппаратное устройство

Country Status (11)

Country Link
US (4) US7788665B2 (ru)
EP (1) EP1989635B1 (ru)
JP (1) JP5214473B2 (ru)
KR (1) KR20080106908A (ru)
CN (1) CN101390079B (ru)
AU (1) AU2007221339A1 (ru)
BR (1) BRPI0708338A8 (ru)
CA (1) CA2638765A1 (ru)
NO (1) NO20083314L (ru)
RU (1) RU2436149C2 (ru)
WO (1) WO2007100508A1 (ru)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2573733C1 (ru) * 2013-01-24 2016-01-27 Хуавэй Текнолоджиз Ко., Лтд. Способ и устройство для регулировки канала i/о на виртуальной платформе
RU2644126C2 (ru) * 2016-05-31 2018-02-07 Некоммерческое Партнерство "Центр Прикладных Исследований Компьютерных Сетей" Способ оптимального планирования использования виртуальных сетевых ресурсов центров обработки данных
RU2653292C2 (ru) * 2013-01-09 2018-05-07 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Перенос служб через границы кластеров

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7788665B2 (en) 2006-02-28 2010-08-31 Microsoft Corporation Migrating a virtual machine that owns a resource such as a hardware device
CA2547047A1 (en) * 2006-05-15 2007-11-15 Embotics Corporation Management of virtual machines using mobile autonomic elements
US7823152B2 (en) * 2006-06-06 2010-10-26 International Business Machines Corporation System and method for collaborative hosting of applications, virtual machines, and data objects
US8819242B2 (en) * 2006-08-31 2014-08-26 Cisco Technology, Inc. Method and system to transfer data utilizing cut-through sockets
US7673113B2 (en) * 2006-12-29 2010-03-02 Intel Corporation Method for dynamic load balancing on partitioned systems
JP5246388B2 (ja) * 2007-03-08 2013-07-24 日本電気株式会社 仮想装置構成システム、及びその方法
US20080244574A1 (en) * 2007-03-26 2008-10-02 Vedvyas Shanbhogue Dynamically relocating devices between virtual machines
WO2009039375A2 (en) * 2007-09-20 2009-03-26 C & S Operations, Inc. Computer system
US8468521B2 (en) * 2007-10-26 2013-06-18 Netapp, Inc. System and method for utilizing a virtualized compute cluster as an execution engine for a virtual machine of a storage system cluster
CA2645716C (en) * 2007-11-21 2017-05-30 Datagardens Inc. Adaptation of service oriented architecture
US8910152B1 (en) * 2007-11-30 2014-12-09 Hewlett-Packard Development Company, L.P. Migrating a virtual machine by using a hot-plug event
US8370833B2 (en) * 2008-02-20 2013-02-05 Hewlett-Packard Development Company, L.P. Method and system for implementing a virtual storage pool in a virtual environment
US8201166B2 (en) * 2008-04-30 2012-06-12 Hewlett-Packard Development Company, L.P. Virtualization platform configured with virtual connect control
US8145471B2 (en) * 2008-04-30 2012-03-27 International Business Machines Corporation Non-destructive simulation of a failure in a virtualization environment
US9032397B2 (en) * 2008-05-28 2015-05-12 Hewlett-Packard Development Company, L.P. Virtual machine migration with direct physical access control
US7917617B1 (en) * 2008-08-14 2011-03-29 Netapp, Inc. Mitigating rebaselining of a virtual machine (VM)
US8307177B2 (en) 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
US8321878B2 (en) 2008-10-09 2012-11-27 Microsoft Corporation Virtualized storage assignment method
US8266618B2 (en) * 2008-11-21 2012-09-11 International Business Machines Corporation Graphics hardware resource usage in a fully virtualized computing environment
US7996484B2 (en) * 2008-12-11 2011-08-09 Microsoft Corporation Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory
US20100161922A1 (en) * 2008-12-19 2010-06-24 Richard William Sharp Systems and methods for facilitating migration of virtual machines among a plurality of physical machines
US8190769B1 (en) * 2008-12-30 2012-05-29 Juniper Networks, Inc. Methods and apparatus for provisioning at a network device in response to a virtual resource migration notification
US8054832B1 (en) 2008-12-30 2011-11-08 Juniper Networks, Inc. Methods and apparatus for routing between virtual resources based on a routing location policy
US8255496B2 (en) * 2008-12-30 2012-08-28 Juniper Networks, Inc. Method and apparatus for determining a network topology during network provisioning
US8565118B2 (en) * 2008-12-30 2013-10-22 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8331362B2 (en) * 2008-12-30 2012-12-11 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8224885B1 (en) 2009-01-26 2012-07-17 Teradici Corporation Method and system for remote computing session management
US8813048B2 (en) * 2009-05-11 2014-08-19 Accenture Global Services Limited Single code set applications executing in a multiple platform system
US8832699B2 (en) 2009-05-11 2014-09-09 Accenture Global Services Limited Migrating processes operating on one platform to another platform in a multi-platform system
US8826269B2 (en) * 2009-06-15 2014-09-02 Microsoft Corporation Annotating virtual application processes
US8429652B2 (en) * 2009-06-22 2013-04-23 Citrix Systems, Inc. Systems and methods for spillover in a multi-core system
US8953603B2 (en) * 2009-10-28 2015-02-10 Juniper Networks, Inc. Methods and apparatus related to a distributed switch fabric
US8442048B2 (en) * 2009-11-04 2013-05-14 Juniper Networks, Inc. Methods and apparatus for configuring a virtual network switch
US9645857B2 (en) * 2009-12-17 2017-05-09 Hewlett Packard Enterprise Development Lp Resource fault management for partitions
US20110161495A1 (en) * 2009-12-26 2011-06-30 Ralf Ratering Accelerating opencl applications by utilizing a virtual opencl device as interface to compute clouds
US9110702B2 (en) * 2010-06-02 2015-08-18 Microsoft Technology Licensing, Llc Virtual machine migration techniques
US8719847B2 (en) * 2010-09-27 2014-05-06 Microsoft Corp. Management and marketplace for distributed home devices
US9384029B1 (en) 2010-09-30 2016-07-05 Amazon Technologies, Inc. Managing virtual computing nodes
WO2012045021A2 (en) * 2010-09-30 2012-04-05 Commvault Systems, Inc. Efficient data management improvements, such as docking limited-feature data management modules to a full-featured data management system
US9183028B1 (en) 2010-09-30 2015-11-10 Amazon Technologies, Inc. Managing virtual computing nodes
US9104458B1 (en) 2010-09-30 2015-08-11 Amazon Technologies, Inc. Managing virtual computing nodes using isolation and migration techniques
JP5594049B2 (ja) * 2010-10-18 2014-09-24 富士通株式会社 仮想計算機移動方法、コンピュータ及びプログラム
JP5681465B2 (ja) * 2010-12-02 2015-03-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体
US8891406B1 (en) 2010-12-22 2014-11-18 Juniper Networks, Inc. Methods and apparatus for tunnel management within a data center
US8924965B2 (en) * 2011-01-07 2014-12-30 Red Hat Israel, Ltd. Memory state transfer of virtual machine-controlled peripherals during migrations of the virtual machine
US9104459B2 (en) 2011-01-07 2015-08-11 Red Hat Israel, Ltd. Memory change tracking during migration of virtual machine (VM) with VM-controlled assigned peripherals
US8490092B2 (en) * 2011-07-06 2013-07-16 Microsoft Corporation Combined live migration and storage migration using file shares and mirroring
US10042656B2 (en) * 2011-08-01 2018-08-07 Avocent Corporation System and method for providing migrateable virtual serial port services
JP5718525B2 (ja) * 2011-08-15 2015-05-13 エンパイア テクノロジー ディベロップメント エルエルシー マルチモーダルコンピューティングデバイス
US9372827B2 (en) 2011-09-30 2016-06-21 Commvault Systems, Inc. Migration of an existing computing system to new hardware
US9461881B2 (en) 2011-09-30 2016-10-04 Commvault Systems, Inc. Migration of existing computing systems to cloud computing sites or virtual machines
US9280380B2 (en) * 2012-02-29 2016-03-08 Red Hat Israel, Ltd. Management of I/O reqeusts in virtual machine migration
ES2439803B1 (es) * 2012-04-19 2014-10-29 Universitat Politècnica De Catalunya Procedimiento, sistema y pieza de código ejecutable para controlar el uso de recursos de hardware de un sistema informático
CN103577265A (zh) * 2012-07-25 2014-02-12 田文洪 一种云计算数据中心离线节能调度的方法与装置
US9600206B2 (en) 2012-08-01 2017-03-21 Microsoft Technology Licensing, Llc Request ordering support when switching virtual disk replication logs
US9740702B2 (en) 2012-12-21 2017-08-22 Commvault Systems, Inc. Systems and methods to identify unprotected virtual machines
CN103051479B (zh) * 2012-12-24 2016-01-20 北京启明星辰信息技术股份有限公司 虚拟机网络控制策略的迁移处理方法及系统
US9378035B2 (en) 2012-12-28 2016-06-28 Commvault Systems, Inc. Systems and methods for repurposing virtual machines
KR102083289B1 (ko) 2013-01-29 2020-03-02 삼성전자주식회사 마이크로서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치
CN103226496B (zh) * 2013-03-15 2016-05-25 杭州华三通信技术有限公司 业务同步处理方法和多核设备
US9720712B2 (en) * 2013-06-03 2017-08-01 Red Hat Israel, Ltd. Physical/virtual device failover with a shared backend
US9530000B2 (en) * 2013-06-14 2016-12-27 Microsoft Technology Licensing, Llc Secure privilege level execution and access protection
US9674105B2 (en) * 2013-06-19 2017-06-06 International Business Machines Corporation Applying a platform code level update to an operational node
CN103473139B (zh) * 2013-09-26 2016-06-01 四川中电启明星信息技术有限公司 虚拟机集群资源分配调度方法
CN103699389B (zh) * 2013-12-30 2016-11-16 北京大学 一种基于编译选项的Linux内核模块关系提取方法
US9772876B2 (en) * 2014-01-06 2017-09-26 International Business Machines Corporation Executing an all-to-allv operation on a parallel computer that includes a plurality of compute nodes
US10140112B2 (en) * 2014-03-28 2018-11-27 Ntt Docomo, Inc. Update management system and update management method
US10013276B2 (en) * 2014-06-20 2018-07-03 Google Llc System and method for live migration of a virtualized networking stack
US9367414B2 (en) 2014-06-27 2016-06-14 Vmware, Inc. Persisting high availability protection state for virtual machines stored on distributed object-based storage
US9513946B2 (en) 2014-06-27 2016-12-06 Vmware, Inc. Maintaining high availability during network partitions for virtual machines stored on distributed object-based storage
US9495259B2 (en) * 2014-06-27 2016-11-15 Vmware, Inc. Orchestrating high availability failover for virtual machines stored on distributed object-based storage
WO2016003454A1 (en) * 2014-07-02 2016-01-07 Hewlett-Packard Development Company, L.P. Managing port connections
CN104158868B (zh) * 2014-08-06 2017-12-08 新华三技术有限公司 一种文件传输方法和管理服务器
US10296320B2 (en) * 2014-09-10 2019-05-21 International Business Machines Corporation Patching systems and applications in a virtualized environment
US9811367B2 (en) * 2014-11-13 2017-11-07 Nsp Usa, Inc. Method and apparatus for combined hardware/software VM migration
CN105677441B (zh) * 2014-11-21 2019-07-09 华为技术有限公司 虚拟机迁移方法、虚拟设施管理器及协调器
US9959157B1 (en) * 2014-12-02 2018-05-01 Amazon Technologies, Inc. Computing instance migration
US10698607B2 (en) * 2015-05-19 2020-06-30 Netapp Inc. Configuration update management
US9563514B2 (en) 2015-06-19 2017-02-07 Commvault Systems, Inc. Assignment of proxies for virtual-machine secondary copy operations including streaming backup jobs
US10084873B2 (en) 2015-06-19 2018-09-25 Commvault Systems, Inc. Assignment of data agent proxies for executing virtual-machine secondary copy operations including streaming backup jobs
US9804873B2 (en) 2015-08-14 2017-10-31 Red Hat Israel, Ltd. Guest management of devices assigned to a virtual machine
US10430221B2 (en) 2015-09-28 2019-10-01 Red Hat Israel, Ltd. Post-copy virtual machine migration with assigned devices
US9639388B2 (en) 2015-09-30 2017-05-02 Red Hat, Inc. Deferred assignment of devices in virtual machine migration
US10136247B2 (en) * 2015-10-20 2018-11-20 Microsoft Technology Licensing, Llc Physical and virtual phone mobility
US9933957B1 (en) * 2015-12-30 2018-04-03 EMC IP Holding Company LLC Non-disruptively migrating virtual disks using virtualization appliance
CN105718310B (zh) * 2016-01-13 2018-09-18 上海应用技术学院 一种云平台下io密集型应用的虚拟机调度方法
US9954958B2 (en) 2016-01-29 2018-04-24 Red Hat, Inc. Shared resource management
US10061528B2 (en) * 2016-05-22 2018-08-28 Vmware, Inc. Disk assignment for multiple distributed computing clusters in a virtualized computing environment
US10210326B2 (en) * 2016-06-20 2019-02-19 Vmware, Inc. USB stack isolation for enhanced security
US10423444B2 (en) 2016-08-09 2019-09-24 Red Hat Israel, Ltd. Routing table preservation for virtual machine migration with assigned devices
US10949308B2 (en) 2017-03-15 2021-03-16 Commvault Systems, Inc. Application aware backup of virtual machines
US11108858B2 (en) 2017-03-28 2021-08-31 Commvault Systems, Inc. Archiving mail servers via a simple mail transfer protocol (SMTP) server
US11074138B2 (en) 2017-03-29 2021-07-27 Commvault Systems, Inc. Multi-streaming backup operations for mailboxes
US10853195B2 (en) 2017-03-31 2020-12-01 Commvault Systems, Inc. Granular restoration of virtual machine application data
US11221939B2 (en) 2017-03-31 2022-01-11 Commvault Systems, Inc. Managing data from internet of things devices in a vehicle
US11294786B2 (en) 2017-03-31 2022-04-05 Commvault Systems, Inc. Management of internet of things devices
US10552294B2 (en) 2017-03-31 2020-02-04 Commvault Systems, Inc. Management of internet of things devices
US10191911B2 (en) * 2017-05-27 2019-01-29 Plesk International Gmbh Permanent website hosting on mobile devices
WO2019100014A1 (en) * 2017-11-17 2019-05-23 Duke Manufacturing Co. Food preparation apparatus having a virtual data bus
US10740479B2 (en) * 2018-01-24 2020-08-11 International Business Machines Corporation Controlling access to removable non-volatile memory device using instruction file
US10904330B2 (en) 2018-07-10 2021-01-26 Vmware, Inc. Systems, methods and apparatus to manage services in distributed systems
US11385909B2 (en) * 2020-01-06 2022-07-12 International Business Machines Corporation Cascading data configuration and data migration
US11656951B2 (en) 2020-10-28 2023-05-23 Commvault Systems, Inc. Data loss vulnerability detection

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2398267C2 (ru) * 2005-08-30 2010-08-27 Майкрософт Корпорейшн Иерархическая виртуализация посредством многоуровневого механизма виртуализации

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3653159B2 (ja) * 1997-04-01 2005-05-25 株式会社日立製作所 仮想計算機システム間の仮想計算機移動制御方法
US6854115B1 (en) * 2000-06-02 2005-02-08 Sun Microsystems, Inc. Process persistence in a virtual machine
US6934755B1 (en) * 2000-06-02 2005-08-23 Sun Microsystems, Inc. System and method for migrating processes on a network
JP3877519B2 (ja) * 2000-12-15 2007-02-07 株式会社日立製作所 システム回復方法およびその実施計算機システム並びにその処理プログラムを記録した記録媒体
JP3426216B2 (ja) * 2001-01-19 2003-07-14 三菱電機株式会社 フォールトトレラント計算機システム
US7065549B2 (en) * 2002-03-29 2006-06-20 Illinois Institute Of Technology Communication and process migration protocols for distributed heterogeneous computing
US7313793B2 (en) * 2002-07-11 2007-12-25 Microsoft Corporation Method for forking or migrating a virtual machine
DE20215241U1 (de) * 2002-10-02 2003-02-27 Wang Huo Pia Bürste mit einer austauschbaren Borsteneinheit
US7484208B1 (en) * 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
US7424710B1 (en) * 2002-12-18 2008-09-09 Vmware, Inc. TCP/IP offloading for virtual machines
JP4256693B2 (ja) * 2003-02-18 2009-04-22 株式会社日立製作所 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法
US7114153B2 (en) * 2003-09-10 2006-09-26 Qualcomm Inc. Method and apparatus for continuation-passing in a virtual machine
US7552436B2 (en) * 2003-11-25 2009-06-23 International Business Machines Memory mapped input/output virtualization
US7467381B2 (en) 2003-12-16 2008-12-16 Intel Corporation Resource partitioning and direct access utilizing hardware support for virtualization
US7971203B2 (en) * 2004-03-05 2011-06-28 Intel Corporation Method, apparatus and system for dynamically reassigning a physical device from one virtual machine to another
US20050216920A1 (en) 2004-03-24 2005-09-29 Vijay Tewari Use of a virtual machine to emulate a hardware device
US8156490B2 (en) * 2004-05-08 2012-04-10 International Business Machines Corporation Dynamic migration of virtual machine computer programs upon satisfaction of conditions
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US7383405B2 (en) 2004-06-30 2008-06-03 Microsoft Corporation Systems and methods for voluntary migration of a virtual machine between hosts with common storage connectivity
US7464019B1 (en) * 2004-07-14 2008-12-09 Unisys Corporation Method of resolving conflicts of virtualized disks between two operating environments
US7660910B2 (en) * 2004-08-30 2010-02-09 Lantronix, Inc. Secure communication port redirector
US20060184938A1 (en) 2005-02-17 2006-08-17 Intel Corporation Method, apparatus and system for dynamically reassigning memory from one virtual machine to another
US7730486B2 (en) * 2005-02-28 2010-06-01 Hewlett-Packard Development Company, L.P. System and method for migrating virtual machines on cluster systems
US7797707B2 (en) * 2005-03-02 2010-09-14 Hewlett-Packard Development Company, L.P. System and method for attributing to a corresponding virtual machine CPU usage of a domain in which a shared resource's device driver resides
US7581229B2 (en) * 2005-03-11 2009-08-25 Microsoft Corporation Systems and methods for supporting device access from multiple operating systems
CN100367210C (zh) * 2005-06-16 2008-02-06 武汉理工大学 构建单机环境下的分布式应用系统的方法
US20070039050A1 (en) * 2005-08-15 2007-02-15 Vladimir Aksenov Web-based data collection using data collection devices
US20070143315A1 (en) * 2005-12-21 2007-06-21 Alan Stone Inter-partition communication in a virtualization environment
US7984438B2 (en) * 2006-02-08 2011-07-19 Microsoft Corporation Virtual machine transitioning from emulating mode to enlightened mode
US7788665B2 (en) * 2006-02-28 2010-08-31 Microsoft Corporation Migrating a virtual machine that owns a resource such as a hardware device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2398267C2 (ru) * 2005-08-30 2010-08-27 Майкрософт Корпорейшн Иерархическая виртуализация посредством многоуровневого механизма виртуализации

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2653292C2 (ru) * 2013-01-09 2018-05-07 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Перенос служб через границы кластеров
US10116735B2 (en) 2013-01-09 2018-10-30 Microsoft Technology Licensing, Llc Service migration across cluster boundaries
RU2573733C1 (ru) * 2013-01-24 2016-01-27 Хуавэй Текнолоджиз Ко., Лтд. Способ и устройство для регулировки канала i/о на виртуальной платформе
RU2644126C2 (ru) * 2016-05-31 2018-02-07 Некоммерческое Партнерство "Центр Прикладных Исследований Компьютерных Сетей" Способ оптимального планирования использования виртуальных сетевых ресурсов центров обработки данных

Also Published As

Publication number Publication date
EP1989635A4 (en) 2012-05-09
AU2007221339A1 (en) 2007-09-07
CA2638765A1 (en) 2007-09-07
KR20080106908A (ko) 2008-12-09
RU2008135084A (ru) 2010-03-10
US20070204265A1 (en) 2007-08-30
US20170161103A1 (en) 2017-06-08
WO2007100508A1 (en) 2007-09-07
BRPI0708338A2 (pt) 2011-05-24
US8769530B2 (en) 2014-07-01
US20140317621A1 (en) 2014-10-23
CN101390079B (zh) 2010-12-08
BRPI0708338A8 (pt) 2016-12-13
NO20083314L (no) 2008-07-31
US7788665B2 (en) 2010-08-31
US9535745B2 (en) 2017-01-03
JP2009528620A (ja) 2009-08-06
EP1989635A1 (en) 2008-11-12
JP5214473B2 (ja) 2013-06-19
EP1989635B1 (en) 2016-07-13
CN101390079A (zh) 2009-03-18
US10552208B2 (en) 2020-02-04
US20100325282A1 (en) 2010-12-23

Similar Documents

Publication Publication Date Title
RU2436149C2 (ru) Мигрирование виртуальной машины, которая владеет ресурсом, таким, как аппаратное устройство
US7984438B2 (en) Virtual machine transitioning from emulating mode to enlightened mode
US9367947B2 (en) Remote rendering of three-dimensional images using virtual machines
JP4942966B2 (ja) パーティションバス
US8707417B1 (en) Driver domain as security monitor in virtualization environment
US20150074663A1 (en) Virtual environment manager
US7761578B2 (en) Communicating in a virtual environment
US8006254B2 (en) Bequeathing privilege to a dynamically loaded module
US7941800B2 (en) Transferring data between virtual machines by way of virtual machine bus in pipe mode
EP1667019A2 (en) Improving operating system performance
US20170272546A1 (en) Blocking an interface of a redirected usb composite device
US11635970B2 (en) Integrated network boot operating system installation leveraging hyperconverged storage
US7587722B2 (en) Extending operating system subsystems
US7409691B2 (en) Extending operating system subsystems
US10862757B2 (en) Isolating a redirected biometric device to a remote session

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150526

MM4A The patent is invalid due to non-payment of fees

Effective date: 20190214