RU2436149C2 - Мигрирование виртуальной машины, которая владеет ресурсом, таким, как аппаратное устройство - Google Patents
Мигрирование виртуальной машины, которая владеет ресурсом, таким, как аппаратное устройство Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution 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, и сохранение или мигрирование могут после этого быть завершены.
ресурс для предоставления службы ресурса; и
вычислительное устройство, имеющее первую и вторую виртуальные машины (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.
ресурс для предоставления службы ресурса; и
вычислительное устройство, имеющее первую и вторую виртуальные машины (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.
ресурс для предоставления службы ресурса; и
вычислительное устройство, имеющее первую и вторую виртуальные машины (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, в котором ресурс является ресурсом устройства хранения.
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)
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2398267C2 (ru) * | 2005-08-30 | 2010-08-27 | Майкрософт Корпорейшн | Иерархическая виртуализация посредством многоуровневого механизма виртуализации |
Family Cites Families (30)
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 |
-
2006
- 2006-02-28 US US11/363,897 patent/US7788665B2/en not_active Expired - Fee Related
-
2007
- 2007-02-13 JP JP2008557282A patent/JP5214473B2/ja not_active Expired - Fee Related
- 2007-02-13 RU RU2008135084/08A patent/RU2436149C2/ru not_active IP Right Cessation
- 2007-02-13 AU AU2007221339A patent/AU2007221339A1/en not_active Abandoned
- 2007-02-13 CA CA002638765A patent/CA2638765A1/en not_active Abandoned
- 2007-02-13 BR BRPI0708338A patent/BRPI0708338A8/pt not_active Application Discontinuation
- 2007-02-13 EP EP07750855.4A patent/EP1989635B1/en active Active
- 2007-02-13 WO PCT/US2007/004047 patent/WO2007100508A1/en active Application Filing
- 2007-02-13 CN CN2007800068178A patent/CN101390079B/zh active Active
- 2007-02-13 KR KR1020087020464A patent/KR20080106908A/ko not_active Application Discontinuation
-
2008
- 2008-07-28 NO NO20083314A patent/NO20083314L/no not_active Application Discontinuation
-
2010
- 2010-08-26 US US12/869,628 patent/US8769530B2/en active Active
-
2014
- 2014-06-30 US US14/320,430 patent/US9535745B2/en active Active
-
2016
- 2016-11-18 US US15/355,689 patent/US10552208B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2398267C2 (ru) * | 2005-08-30 | 2010-08-27 | Майкрософт Корпорейшн | Иерархическая виртуализация посредством многоуровневого механизма виртуализации |
Cited By (4)
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 |