BRPI0708338A2 - migração de uma máquina virtual que possui um recurso tal como um dispositivo de hardware - Google Patents
migração de uma máquina virtual que possui um recurso tal como um dispositivo de hardware Download PDFInfo
- Publication number
- BRPI0708338A2 BRPI0708338A2 BRPI0708338-6A BRPI0708338A BRPI0708338A2 BR PI0708338 A2 BRPI0708338 A2 BR PI0708338A2 BR PI0708338 A BRPI0708338 A BR PI0708338A BR PI0708338 A2 BRPI0708338 A2 BR PI0708338A2
- Authority
- BR
- Brazil
- Prior art keywords
- resource
- port
- computing device
- feature
- access request
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
- Storage Device Security (AREA)
- Exchange Systems With Centralized Control (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
MIGRAçãO DE UMA MáQUINA VIRTUAL QUE POSSUI UM RECURSO TAL COMO UM DISPOSITIVO DE HARDWARE Um dispositivo de computação tem primeira e segunda máquinas virtuais (VMs) e um recurso atribuido para a primeira VM. Cada solicitação de acesso pelo recurso é enviada para ele até que a primeira VM é para ser salva ou migrada. A seguir, cada solicitação de acesso é enviada para uma fila de sujeição. Quando o recurso tiver agido sobre todas as solicitações de acesso enviadas para ele, o recurso é novamente atribuído para a segunda VM, e cada solicitação de acesso na fila de sujeição é enviada para a segunda VM e a seguir o recurso. Assim, todas as solicitações de acesso pelo recurso são influenciadas pelo recurso mesmo depois que o recurso é removido da primeira VM e atribuído para a segunda VM, e o salvamento ou migração da primeira VM pode ser, a seguir, concluído.
Description
"MIGRAÇÃO DE UMA MÁQUINA VIRTUAL QUE POSSUI UM RECURSO TALCOMO UM DISPOSITIVO DE HARDWARE"
CAMPO TÉCNICO
A presente invenção refere-se a um método e mecanismo que podem ser utilizadospara migrar uma máquina virtual que possui um recurso tal como um dispositivo de hardwa-re ou um outro dispositivo físico de uma primeira máquina ou plataforma para uma segundamáquina ou plataforma. Em particular, a presente invenção refere-se a um tal método e me-canismo que permitem a migração tal como de uma máquina virtual sem perder qualquerinformação de estado relacionada com o recurso.
ANTECEDENTES
Como deve ser verificado, uma máquina virtual é uma construção de software ousemelhante operando em um dispositivo de computação ou semelhante com a finalidade deimitar um sistema de hardware. Tipicamente, embora não necessariamente, a máquina vir-tual é uma aplicação ou semelhante e é utilizada no dispositivo de computação para hospe-dar uma aplicação do usuário ou semelhante enquanto ao mesmo tempo isolando tal aplica-ção do usuário de tal dispositivo de computação ou de outras aplicações em tal dispositivode computação. Uma variação diferente de uma máquina virtual pode ser, por exemplo, es-crita para cada uma de uma pluralidade de dispositivos de computação diferentes de modoque qualquer aplicação do usuário escrita para a máquina virtual pode ser operada em qual-quer um dos dispositivos de computação diferentes. Assim, uma variação diferente da apli-cação do usuário para cada dispositivo de computação diferente não é necessária.
Novas arquiteturas para dispositivos de computação e novo software agora permi-tem que um dispositivo de computação único instancie e execute uma pluralidade de parti-ções, cada uma das quais pode ser utilizada para instanciar uma máquina virtual para, porsua vez, hospedar uma instância de um sistema operacional sobre o qual uma ou mais apli-cações podem ser instanciadas. Tipicamente, embora não necessariamente, o dispositivode computação inclui uma camada de virtualização com um monitor de máquina virtual ousemelhante que age como uma aplicação supervisora ou 'hipervisora', onde a camada devirtualização supervisiona e/ou de outra forma gerencia aspectos de supervisão de cadamáquina virtual, e age como uma ligação possível entre cada máquina virtual e o mundofora de tal máquina virtual.
Entre outras coisas, uma máquina virtual particular em um dispositivo de computa-ção pode exigir acesso a um recurso associado com o dispositivo de computação. Comopode ser verificado, tal recurso pode ser qualquer tipo de recurso que possa ser associadocom um dispositivo de computação. Por exemplo, o recurso pode ser um dispositivo de ar-mazenamento para armazenar e recuperar dados, e geralmente para qualquer finalidadeque um dispositivo de armazenamento seria utilizado. Da mesma forma, o recurso pode serqualquer outro bem tais como uma rede, uma impressora, um scanner, uma unidade de re-de, uma unidade virtual, um servidor e semelhantes. Dessa maneira, qualquer que possaser o recurso, a máquina virtual pode ser provida, na realidade, com acesso aos serviçosprovidos por tal recurso.
Em um dispositivo de computação com múltiplas partições instanciadas, qualquerrecurso particular do dispositivo de computação pode ser dinamicamente atribuído para umapartição particular / máquina virtual (a seguir 'máquina virtual' ou 'VM') de modo que a VMparticular pode controlar diretamente tal recurso e solicitações de serviço para o recurso deoutras VMs no dispositivo de computação. Tal VM particular, então, é na realidade um hos-pedeiro que prove capacidades de recurso como uma VM hospedeira de recurso ('VM-H')que 'possui' o recurso particular. Similarmente, tal VM-H provê serviços de recurso para umaoutra VM que é, na realidade, um cliente que consome tais capacidades como uma VM decliente de recurso ('VM-C'). Assim, a VM-C e a VM-H em combinação realizam operaçõesque exigem o uso do recurso particular.
Uma VM-C particular operando em um dispositivo de computação tipicamente éconstruída para operar como se uma máquina real. Isto é, a VM-C particular acessando umrecurso particular tipicamente age como se tal recurso particular fosse acessível por meio desolicitações diretas para ele. Dessa maneira, pode ser o caso em que a VM-C construiu umatrajetória ou pilha (a seguir, 'pilha') de acionadores para os quais tais solicitações são dire-cionadas, com a expectativa sendo que o recurso particular esteja no fim da pilha. Como foiestabelecido, entretanto, a VM-C não é, na realidade, uma máquina real e o recurso particu-lar não está, de fato, no fim da pilha.
Dessa maneira, pode ser o caso em que o recurso é imitado pela camada de virtua-lização / monitor da máquina virtual como estando no fim da pilha. Na realidade, a camadade virtualização envia uma solicitação pelo recurso para a VM-H que possui ou tem acessoa tal recurso. Similarmente, pode ser o caso em que a VM-C pode ser dotada com capaci-dades iluminadas nas quais tal VM-C está ciente da sua existência virtual, e envia as solici-tações para o recurso particular por meio de uma pilha 'iluminada' no fim da qual está umbarramento da VM ou outra trajetória de comunicações que conecta a VM-C com a VM-Hque possui ou tem acesso ao recurso, onde o barramento da VM desvia da camada de vir-tualização. Também similarmente, pode ser o caso em que a VM-C com capacidades ilumi-nadas envie solicitações para o recurso particular por meio de uma canalização virtual entrea VM-C e a VM-H como implementado com o barramento da VM. Qualquer que seja o pro-tocolo de comunicações utilizado, a VM-C acessa o recurso particular por meio da VM-H, edessa maneira, cada solicitação enviada pela VM-C para o recurso particular segue umatrajetória para o recurso particular por meio da VM-H correspondente.
Particularmente com relação à VM-H que possui o recurso particular, então, deveser verificado que tal VM-H pode acessar diretamente o recurso por meio de um adaptadorapropriado para o recurso que é atribuído para a VM-H. Tipicamente, embora não necessa-riamente, o adaptador é um pedaço de hardware ou software no dispositivo de computaçãoda VM-H, onde tal hardware ou software faz interface com o recurso para a VM-H. Por e-xemplo, tal adaptador pode ser uma placa de interface de rede ou uma placa de vídeo, ou osoftware equivalente. Com acesso direto a tal adaptador, então, a VM-H pode utilizar o re-curso com um grau de eficiência e desempenho relativamente alto. Observe aqui que umrecurso particular pode ter múltiplos adaptadores correspondentes, cada um potencialmenteatribuído para uma VM-H particular, e dessa maneira múltiplas VM-Hs podem possuir umrecurso particular. Entretanto, somente uma VM-H pode ser atribuída para ou 'possuir' umadaptador particular em qualquer momento, pelo menos tipicamente. Em qualquer taxa, po-de ser assumido tipicamente que a posse de um adaptador particular é igual à posse dorecurso do adaptador particular.
Uma marca registrada de uma VM é que a VM como uma construção virtual podeser parada e reiniciada à vontade, e também que a VM ao ser parada pode ser salva, recu-perada e reiniciada à vontade. Em particular, a VM quando instanciada em um dispositivo decomputação particular é uma construção de software singular que pode ser puramente colo-cada em pacote visto que a construção de software inclui todos os dados relacionados comtal VM, incluindo dados operacionais e informação de estado relacionada com a VM. Comoum resultado, uma VM em um primeiro dispositivo de computação pode ser movida ou 'mi-grada' para um segundo dispositivo de computação parando a VM no primeiro dispositivo decomputação, movendo a VM parada para o segundo dispositivo e reiniciando a VM movidano segundo dispositivo de computação ou semelhante. De forma mais geral, uma VM podeser migrada de uma primeira plataforma para uma segunda plataforma em uma maneirasimilar, onde as plataformas representam dispositivos de computação diferentes ou configu-rações diferentes do mesmo dispositivo de computação. No último caso, e como deve serverificado, um dispositivo de computação pode ter uma configuração diferente se, por e-xemplo, memória adicional é adicionada, um processador é alterado, um dispositivo de en-trada adicional é provido, um dispositivo de seleção é removido, etc.
Observe, contudo, que, às vezes, nem toda a informação de estado relacionadacom uma VM está incluída dentro da construção de software de tal VM. Em particular, umaVM-H que possui um recurso ou um adaptador da mesma pode ter a informação de estadoparticular relacionada com o recurso armazenada com tal recurso ou com tal adaptador damesma. Como apenas um exemplo, se uma VM-H possui um recurso que é uma rede e oadaptador correspondente como possuído pela VM-H é uma placa de interface de rede, po-de ser o caso em que a informação de estado, tal como certos comandos de leitura e escritapara a rede, seja armazenada na placa da interface de rede, pelo menos temporariamenteaté ser influenciada. Como um outro exemplo, se o recurso é uma unidade de leitura de dis-co ótico com um adaptador incluído, pode ser da mesma forma o caso em que a informaçãode estado, tal como certos comandos de leitura para a unidade, esteja armazenada em talunidade. Como ainda um outro exemplo, se o recurso é uma impressora e o adaptador cor-respondente inclui um spooler de impressão, também pode ser da mesma forma o caso emque a informação de estado, tal como certos comandos de escrita para impressora, estejaarmazenada em tal spooler.
Em qualquer taxa, é para ser entendido que quando uma porção da informação deestado de uma VM não está incluída dentro da construção de software da VM, tal como po-de ser o caso quando uma VM-H possui um recurso e armazena informação de estado como recurso, a migração da VM de uma primeira plataforma para uma segunda plataforma setorna mais difícil. Em particular, tal migração não deve acontecer até que a informação deestado no recurso seja manipulada tal que tal informação de estado no recurso não sejaperdida ou de outra forma permanentemente separada da VM.
Assim, existe uma necessidade de se lidar com a informação de estado de umaVM-H em um recurso possuído por ela quando a VM-H deve ser migrada de uma primeiraplataforma para uma segunda plataforma. Em particular, existe uma necessidade por ummétodo e mecanismo pelos quais a informação de estado no recurso pode ser deletada dorecurso na sua operação comum antes da migração, ou se não pode ser armazenada para arecuperação posterior pela VM-H depois da migração, ou se não pode ser processada poruma outra VM-H.
SUMÁRIO
As necessidades acima mencionadas são satisfeitas pelo menos em parte pelapresente invenção na qual um sistema de computação tem um recurso para prover um ser-viço de recurso e um dispositivo de computação tendo primeira e segunda máquinas virtuais(VMs) instanciadas nele. Cada VM hospeda uma instância de um sistema operacional noqual uma ou mais aplicações podem ser instanciadas. A primeira VM é inicialmente acopla-da de modo comunicativo no recurso e o recurso é inicialmente atribuído para a primeira VMtal que a primeira VM inicialmente possui o recurso e o serviço provido por esse. A primeiraVM é uma construção de software no dispositivo de computação que pode ser salva e mi-grada de uma primeira plataforma para uma segunda plataforma.
A primeira VM inclui uma pilha de recurso correspondendo com e acessando o re-curso de acordo com solicitações de acesso enviadas por meio de tal pilha de recurso, umaprimeira porta acoplada de modo comunicativo no recurso, uma segunda porta acoplada demodo comunicativo em um meio de comunicações e um mecanismo de redirecionamento deporta acoplado de modo comunicativo na pilha de recurso, na primeira porta e na segundaporta. O mecanismo de redirecionamento de porta envia cada solicitação de acesso da pilhade recurso para ser enfileirada em uma da primeira porta e da segunda porta.
Em particular, o mecanismo de redirecionamento de porta envia cada solicitação deacesso da pilha de recurso para ser enfileirada na primeira porta até que a primeira VM édirecionada para ser salva ou migrada. Cada solicitação de acesso na primeira porta é tam-bém enviada, por sua vez, para o recurso para ser influenciada por tal recurso. Quando aprimeira VM é direcionada para ser salva ou migrada, a seguir, o mecanismo de redirecio-namento de porta envia cada solicitação de acesso da pilha de recurso para a segunda por-ta. Cada solicitação de acesso na segunda porta é também enviada, por sua vez, somentedepois que o recurso agiu sobre todas as solicitações de acesso enfileiradas na primeiraporta e a seguir foi removido da posse pela primeira VM.
A segunda VM subseqüentemente é acoplada de modo comunicativo no recurso eo recurso é subseqüentemente atribuído para a segunda VM depois que o recurso é remo-vido da primeira VM tal que a segunda VM subseqüentemente possui o recurso e o serviçoprovido por ele. A segunda VM como dona do recurso é acoplada de modo comunicativo nasegunda porta da primeira VM por intermédio do meio de comunicações, e cada solicitaçãode acesso na segunda porta é também enviada, por sua vez, para a segunda VM por inter-médio do meio de comunicações e a seguir também enviada, por sua vez, para o recursopor intermédio da segunda VM para ser influenciada por tal recurso. Dessa maneira, todasas solicitações de acesso da pilha de recurso da primeira VM são influenciadas pelo recursosucessivamente mesmo depois que o recurso é removido da primeira VM e atribuído para asegunda VM e o salvamento ou migração pode ser completado a seguir.
BREVE DESCRIÇÃO DOS DESENHOS
O resumo precedente, bem como a descrição detalhada seguinte das modalidadesda presente invenção serão entendidos melhor quando lidos em conjunto com os desenhosanexos. Com a finalidade de ilustrar a invenção, são mostradas nos desenhos as modalida-des que são atualmente preferidas. Como deve ser entendido, entretanto, a invenção não élimitada às disposições e meios precisos mostrados. Nos desenhos:
A figura 1 é um diagrama de blocos representando um ambiente de computaçãonão limitador exemplar no qual a presente invenção pode ser implementada,
A figura 2 é um diagrama de blocos representando um ambiente de rede exemplartendo uma variedade de dispositivos de computação nos quais a presente invenção podeser implementada,
A figura 3 é um diagrama de blocos mostrando um dispositivo de computação exe-cutando uma pluralidade de partições incluindo uma partição de hospedeiro com uma má-quina virtual (VM-H) que possui um recurso particular e provê serviços de recurso para ele,e uma partição de cliente com uma máquina virtual (VM-C) que utiliza os serviços de recursoda VM-H de acordo com modalidades da presente invenção,A figura 4 é um diagrama de blocos mostrando a VM-H da figura 3 em detalhes adi-cionais quando acoplada em um recurso possuído por tal VM-H1
A figura 5 é um diagrama de blocos mostrando a VM-H da figura 3 em detalhes adi-cionais quando acoplada em um recurso possuído por tal VM-H de acordo com uma modali-dade da presente invenção e
A figura 6 é um diagrama de fluxo mostrando etapas essenciais executadas emconjunto com a VM-H da figura 5 para executar um salvamento ou migração da VM-H en-quanto garantindo que todas as solicitações de acesso ao recurso sejam apropriadamentemanipuladas de acordo com uma modalidade da presente invenção.
DESCRIÇÃO DETALHADA DA INVENÇÃO
AMBIENTE DE COMPUTADOR
A figura 1 e a discussão seguinte são planejadas para prover uma breve descriçãogeral de um ambiente de computação adequado no qual a invenção pode ser implementada.Deve ser entendido, entretanto, que dispositivos de computação de mão, portáteis e outrosde todos os tipos são considerados para uso em conjunto com a presente invenção. Emboraum computador de uso geral seja descrito abaixo, esse é apenas um exemplo. Assim, apresente invenção pode ser implementada em um ambiente de serviços hospedados emrede nos quais recursos de cliente mínimos ou muito poucos são implicados, por exemplo,um ambiente em rede no qual o dispositivo do cliente serve meramente como um navegadorou interface para a Rede Difundida Mundial (World Wide Web).
Embora não requerido, a invenção pode ser implementada via uma interface deprogramação de aplicação (API), para uso por um desenvolvedor e/ou incluída dentro dosoftware de navegação da rede que será descrito no contexto geral de instruções executá-veis pelo computador, tal como módulos de programa, sendo executadas por um ou maiscomputadores, tais como estações de trabalho de cliente, servidores ou outros dispositivos.De forma geral, módulos do programa incluem rotinas, programas, objetos, componentes,estruturas de dados e assim por diante, que executam tarefas particulares ou implementamtipos de dados abstratos particulares. Tipicamente, a funcionalidade dos módulos de pro-grama pode ser combinada ou distribuída como desejado em várias modalidades. Além domais, aqueles versados na técnica verificarão que a invenção pode ser praticada com outrasconfigurações de sistema de computador. Outros sistemas de computação, ambientes e/ouconfigurações bem conhecidos que podem ser adequados para uso com a invenção inclu-em, mas não são limitados a, computadores pessoais (PCs), máquinas de caixa registradoraautomáticas, computadores servidores, dispositivos portáteis ou laptops, sistemas de multi-processador, sistemas com base em microprocessador, eletrônica de consumidor progra-mável, PCs de rede, minicomputadores, computadores de grande porte e semelhantes. Ainvenção pode também ser praticada em ambientes de computação distribuídos onde astarefas são executadas por dispositivos de processamento remoto que são ligados atravésde uma rede de comunicações ou outro meio de transmissão de dados. Em um ambiente decomputação distribuído, módulos de programa podem estar localizados em ambos os meiosde armazenamento no computador local e remoto incluindo dispositivos de armazenamentode memória.
A Figura 1 assim ilustra um exemplo de um ambiente de sistema de computaçãoadequado 100 no qual a invenção pode ser implementada, embora como deixado claro aci-ma, o ambiente do sistema de computação 100 é somente um exemplo de um ambiente decomputação adequado e não é planejado para sugerir qualquer limitação quanto ao escopode uso ou funcionalidade da invenção. Nem deve o ambiente de computação 100 ser inter-pretado como tendo qualquer dependência ou exigência relacionada com qualquer um ouuma combinação dos componentes ilustrados no ambiente de operação exemplar 100.
Com referência à Figura 1, um sistema exemplar para implementar a invenção in-clui um dispositivo de computação de uso geral na forma de um computador 110. Compo-nentes do computador 110 podem incluir, mas não são limitados a, uma unidade de proces-samento 120, uma memória do sistema 130 e um barramento do sistema 121 que une vá-rios componentes do sistema incluindo a memória do sistema na unidade de processamento120. O barramento do sistema 121 pode ser qualquer um de vários tipos de estruturas debarramento incluindo um barramento de memória ou controlador de memória, um barramen-to periférico e um barramento local usando qualquer uma de uma variedade de arquiteturasde barramento. Por meio de exemplo, e não limitação, tais arquiteturas incluem barramentoIndustry Standard Architecture (ISA), barramento Micro Channel Architecture (MCA), barra-mento Enhanced ISA (EISA), barramento local Video Electronics Standards Association(VESA), barramento Peripheral Component Interconnect (PCI) (também conhecido comobarramento Mezzanine) e PCI Express.
O computador 110 tipicamente inclui uma variedade de meios legíveis pelo compu-tador. Meios legíveis pelo computador podem ser quaisquer meios disponíveis que possamser acessados pelo computador 110 e incluem ambos os meios voláteis e não voláteis, mei-os removíveis e não removíveis. Por meio de exemplo, e não limitação, meios legíveis porcomputador podem compreender meios de armazenamento no computador e meios de co-municação. Meios de armazenamento no computador incluem ambos meios voláteis e nãovoláteis, removíveis e não removíveis implementados em qualquer método ou tecnologiapara armazenamento de informação tais como instruções legíveis pelo computador, estrutu-ras de dados, módulos do programa ou outros dados. Meios de armazenamento no compu-tador incluem, mas não são limitados a, RAM, ROM, EEPROM, memória flash ou outra tec-nologia de memória, CD-ROM, discos versáteis digitais (DVD) ou outro armazenamento dedisco ótico, cassetes magnéticos, fita magnética, armazenamento de disco magnético ououtros dispositivos de armazenamento magnético ou qualquer outro meio que possa serusado para armazenar a informação desejada e que possa ser acessado pelo computador110. Meios de comunicação tipicamente personificam instruções legíveis pelo computador,estruturas de dados, módulos do programa ou outros dados em um sinal de dados modula-do tal como uma onda portadora ou outro mecanismo de transporte e incluem quaisquermeios de entrega de informação. O termo "sinal de dados modulado" significa um sinal quetem uma ou mais de suas características ajustadas ou mudadas em uma tal maneira demodo a codificar a informação no sinal. Por meio de exemplo, e não limitação, meios de co-municação incluem meios ligados por fio tal como uma rede ligada por fio ou conexão ligadapor fio direta ou conexão de fibra ótica e meios sem fio tais como acústicos, de RF1 de infra-vermelho, óticos, antena em fase operando em qualquer comprimento de onda, emissores ereceptores eletromagnéticos direcionais e não direcionadis operando em qualquer compri-mento de onda e outros meios sem fio. As combinações de qualquer um dos acima devetambém ser incluída dentro do escopo de meios legíveis por computador.
A memória do sistema 130 inclui meios de armazenamento no computador na for-ma de memória volátil e/ou não volátil tais como memória somente de leitura (ROM) 131 ememória de acesso aleatório (RAM) 132. Um sistema básico de entrada/saída 133 (BIOS),contendo as rotinas básicas que ajudam a transferir a informação entre elementos dentro docomputador 110, tal como durante a partida, é tipicamente armazenado na ROM 131. ARAM 132 tipicamente contém dados e/ou módulos de programa que são imediatamente a-cessíveis para e/ou atualmente sendo operados pela unidade de processamento 120. Pormeio de exemplo, e não limitação, a Figura 1 ilustra o sistema operacional 134, programasaplicativos 135, outros módulos de programa 136 e dados do programa 137.
O computador 110 pode também incluir outros meios de armazenamento no com-putador removíveis/não removíveis, voláteis/não voláteis. Por meio de exemplo somente, aFigura 1 ilustra uma unidade de disco rígido 140 que lê de ou escreve nos meios magnéticosnão removíveis, não voláteis, uma unidade de disco magnético 151 que lê de ou escreve emum disco magnético removível não volátil 152 e uma unidade de disco ótico 155 que lê deou escreve em um disco ótico removível, não volátil 156 tal como um CD-ROM ou outrosmeios óticos. Outros meios de armazenamento no computador removíveis/não removíveis,voláteis/não voláteis que podem ser usados no ambiente operacional exemplar incluem,mas não são limitados a, cassetes de fita magnética, placas de memória flash, discos versá-teis digitais, fita de vídeo digital, RAM de estado sólido, ROM de estado sólido e assim pordiante. A unidade de disco rígido 141 é tipicamente conectada no barramento do sistema121 através de uma interface de memória não removível tal como a interface 140 e a unida-de de disco magnético 151 e a unidade de disco ótico 155 são tipicamente conectadas nobarramento do sistema 121 por uma interface de memória removível, tal como a interface150.
As unidades e seus meios de armazenamento no computador associados, discuti-dos acima e ilustrados na Figura 1, provêem armazenamento das instruções legíveis porcomputador, estruturas de dados, módulos do programa e outros dados para o computador110. Na Figura 1, por exemplo, a unidade de disco rígido 141 é ilustrada como armazenandoo sistema operacional 144, programas aplicativos 145, outros módulos de programa 146 edados do programa 147. Observe que esses componentes podem ser os mesmos que oudiferentes do sistema operacional 134, programas aplicativos 135, outros módulos do pro-grama 136 e dados do programa 137. O sistema operacional 144, programas aplicativos145, outros módulos do programa 146 e dados do programa 147 são fornecidos com núme-ros diferentes aqui para ilustrar que, no mínimo, eles são cópias diferentes. Um usuário po-de inserir comandos e informação no computador 110 através de dispositivos de entradatais como um teclado 162 e um dispositivo de indicação 161, geralmente citado como ummouse, trackball ou base sensível ao toque. Outros dispositivos de entrada (não mostrados)podem incluir um microfone, barra de direção, base de jogos, disco de satélite, scanner ousemelhantes. Esses e outros dispositivos de entrada são freqüentemente conectados naunidade de processamento 120 através de uma interface de entrada do usuário 160 que éacoplada no barramento do sistema 121, mas pode ser conectada por outra interface e es-truturas de barramento, tais como uma porta paralela, porta de jogos ou um barramento se-rial universal (USB).
Um monitor 191 ou outro tipo de dispositivo de exibição é também conectado nobarramento do sistema 121 através de uma interface, tal como uma interface de vídeo 190.Uma interface gráfica 182, tal como Northbridge, pode também ser conectada no barramen-to do sistema 121. Northbridge é um conjunto de circuitos integrados que se comunica coma CPU, ou unidade de processamento hospedeira 120, e assume a responsabilidade pelascomunicações da porta gráfica acelerada (AGP). Uma ou mais unidades de processamentográfico (GPUs) 184 podem se comunicar com a interface gráfica 182. Sob esse aspecto, asGPUs 184 geralmente incluem armazenamento de memória no circuito integrado, tal comoarmazenamento do registrador e GPUs 184 se comunicam com uma memória de vídeo 186.As GPUs 184, entretanto, são apenas um exemplo de um co-processador e assim uma vari-edade de dispositivos de co-processamento pode ser incluída no computador 110. Um moni-tor 191 ou outro tipo de dispositivo de exibição é também conectado no barramento do sis-tema 121 via uma interface, tal como uma interface de vídeo 190, que pode, por sua vez, secomunicar com a memória de vídeo 186. Além do monitor 191, os computadores podemtambém incluir outros dispositivos de saída periférica tais como alto-falantes 197 e impres-sora 196, que podem ser conectados através de uma interface periférica de saída 195.
O computador 110 pode operar em um ambiente de rede usando conexões lógicaspara um ou mais computadores remotos, tal como um computador remoto 180. O computa-dor remoto 180 pode ser um computador pessoal, um servidor, um roteador, um PC de rede,um dispositivo par ou outro nó de rede comum, e tipicamente inclui muitos ou todos os ele-mentos descritos acima em relação ao computador 110, embora somente um dispositivo dearmazenamento de memória 181 tenha sido ilustrado na Figura 1. As conexões lógicas re-presentadas na Figura 1 incluem uma rede local (LAN) 171 e uma rede remota (WAN) 173,mas pode também incluir outras redes. Tais ambientes de rede são comuns em escritórios,redes de computador empresariais, intranets e na Internet.
Quando usado em um ambiente de rede LAN, o computador 110 é conectado naLAN 171 através de uma interface de rede ou adaptador 170. Quando usado em um ambi-ente de rede WAN1 o computador 110 tipicamente inclui um modem 172 ou outro dispositivopara estabelecer as comunicações através da WAN 173, tal como a Internet. O modem 172,que pode ser interno ou externo, pode ser conectado no barramento do sistema 121 atravésda interface de entrada do usuário 160 ou outro mecanismo apropriado. Em um ambiente derede, módulos do programa representados em relação ao computador 110, ou porções domesmo, podem ser armazenados no dispositivo de armazenamento de memória remoto. Pormeio de exemplo, e não limitação, a Figura 1 ilustra programas aplicativos remotos 185 co-mo residindo no dispositivo de memória 181. Será verificado que as conexões de rede mos-tradas são exemplares e outros modos de estabelecimento de uma ligação de comunica-ções entre os computadores podem ser usados.
Alguém versado na técnica pode verificar que um computador 110 ou outro disposi-tivo de cliente pode ser disposto como parte de uma rede de computador. Sob esse aspecto,a presente invenção diz respeito a qualquer sistema de computador tendo qualquer númerode memória ou unidades de armazenamento, e qualquer número de aplicações e processosque ocorrem através de qualquer número de unidades de armazenamento ou volumes. Apresente invenção pode se aplicar em um ambiente com computadores servidores e compu-tadores clientes dispostos em um ambiente de rede, tendo armazenamento remoto ou local.A presente invenção pode também se aplicar a um dispositivo de computação independen-te, tendo funcionalidade de linguagem de programação, capacidades de interpretação e deexecução.
A computação distribuída facilita o compartilhamento dos recursos de computador eserviços pela troca direta entre os dispositivos de computação e os sistemas. Esses recur-sos e serviços incluem a troca de informação, armazenamento em cache e armazenamentoem disco para os arquivos. A computação distribuída tira vantagem da conectividade de re-de, permitindo que os clientes alavanquem sua força coletiva para se beneficiarem de todo oempreendimento. Sob esse aspecto, uma variedade de dispositivos pode ter aplicações,objetos ou recursos que podem interagir para implicar em técnicas de autenticação da pre-sente invenção para canalização(ões) gráfica(s) de confiança.
A figura 2 provê um diagrama esquemático de um ambiente de computação exem-plar de rede ou distribuído. O ambiente de computação distribuído compreende objetos decomputação 10a, 10b, etc. e objetos ou dispositivos de computação 110a, 110b, 110c, etc.
Esses objetos podem compreender programas, métodos, armazenamentos de dados, lógicaprogramável, etc. Os objetos podem compreender porções dos mesmos dispositivos ou dife-rentes tais como PDAs, televisões, reprodutores de MP3, televisões, computadores pesso-ais, etc. Cada objeto pode se comunicar com um outro objeto por meio da rede de comuni-cações 14. Essa rede pode ela própria compreender outros objetos de computação e dispo-sitivos de computação que provêem serviços para o sistema da figura 2. De acordo com umaspecto da invenção, cada objeto 10 ou 110 pode conter uma aplicação que poderia solicitaras técnicas de autenticação da presente invenção para canalização(ões) gráfica(s) de confi-ança.
Também pode ser verificado que um objeto, tal como 110c, pode ser hospedadoem um outro dispositivo de computação 10 ou 110. Assim, embora o ambiente físico repre-sentado possa mostrar os dispositivos conectados como computadores, tal ilustração é me-ramente exemplar e o ambiente físico pode ser alternativamente representado ou descritocompreendendo vários dispositivos digitais tais como PDAs, televisões, reprodutores deMP3, etc., objetos de software tais como interfaces, objetos COM e semelhantes.
Existe uma variedade de sistemas, componentes e configurações de rede que su-portam ambientes de computação distribuídos. Por exemplo, sistemas de computação po-dem ser conectados juntos por sistemas ligados por fiação ou sem fio, por redes locais ouredes amplamente distribuídas. Atualmente, muitas das redes são acopladas na Internet,que provê a infra-estrutura para a computação amplamente distribuída e abrange muitasredes diferentes.
Nos ambientes de rede residenciais, existem pelo menos quatro meios de transpor-te de rede diferentes que podem suportar, cada um, um protocolo único tal como linha deforça, dados (ambos sem fio e com fio), voz (por exemplo, telefone) e mídia de entreteni-mento. A maior parte dos dispositivos de controle residencial tais como interruptores de luz eaparelhos pode usar a linha de força para conectividade. Serviços de dados podem entrarna residência como banda larga (por exemplo, ou DSL ou modem a cabo) e ficam acessí-veis dentro da casa usando tanto a conectividade sem fio (por exemplo, HomeRF ou802.11b) ou com fio (por exemplo, Home PNA, Cat 5, até mesma linha de força). O tráfegode voz pode entrar na casa como ligado por fiação (por exemplo, Cat 3) ou sem fio (por e-xemplo, telefones celulares) e pode ser distribuído dentro da casa usando fiação de Cat 3. Amídia de entretenimento pode entrar na residência através de satélite ou cabo e é tipicamen-te distribuída na casa usando cabo coaxial. IEEE 1394 e DVI estão também emergindo co-mo interligações digitais para grupos de dispositivos de mídia. Todos esses ambientes derede e outros que possam surgir como padrões de protocolo podem ser interligados paraformar uma intranet que pode ser conectada no mundo exterior por meio da Internet. Emresumo, uma variedade de fontes diferentes existe para o armazenamento e a transmissãode dados, e conseqüentemente, mais adiante, os dispositivos de computação exigirão ma-neiras de proteger o conteúdo em todas as porções da canalização de processamento dedados.
A 'Internet' geralmente se refere à coleção de redes e portas que utilizam o conjun-to TCP/IP de protocolos, que são bem conhecidos na técnica da rede de computação.TCP/IP é um acrônimo para "protocolo de controle de transmissão/protocolo da Internet". AInternet pode ser descrita como um sistema de redes de computador remotas geografica-mente distribuídas interligadas por protocolos de rede de processamento de computadoresque permitem que os usuários interajam e compartilhem informação através das redes. Porcausa de tal compartilhamento de informação difundido, redes remotas tal como a Internet,assim, até o momento evoluíram geralmente para um sistema aberto para o qual desenvol-vedores podem projetar aplicações de software para executar operações ou serviços espe-cializados, essencialmente sem restrição.
Assim, a infra-estrutura de rede possibilita um hospedeiro de topologias de rede taiscomo cliente/servidor, não hierárquico ou arquiteturas híbridas. O "cliente" é um elemento deuma classe ou grupo que usa os serviços de uma outra classe ou grupo ao qual ele não estárelacionado. Assim, na computação, um cliente é um processo, isto é, aproximadamente umconjunto de instruções ou tarefas que solicita um serviço provido por um outro programa. Oprocesso do cliente utiliza o serviço solicitado sem ter que "conhecer" quaisquer detalhes detrabalho sobre o outro programa ou o próprio serviço. Em uma arquitetura de clien-te/servidor, particularmente um sistema de rede, um cliente é geralmente um computadorque acessa recursos de rede compartilhados providos por um outro computador, por exem-plo, um servidor. No exemplo da figura 2, os computadores 110a, 110b, etc. podem ser ima-ginados como clientes e o computador 10a, 10b, etc. podem ser imaginados como o servi-dor onde o servidor 10a, 10b, etc. mantém os dados que são então replicados nos computa-dores do cliente 110a, 110b, etc..
Um servidor é tipicamente um sistema de computador remoto acessível através deuma rede remota tal como a Internet. O processo do cliente pode estar ativo em um primeirosistema de computador, e o processo do servidor pode estar ativo em um segundo sistemade computador, se comunicando através de um meio de comunicações, assim provendofuncionalidade distribuída e permitindo que múltiplos clientes tirem vantagem das capacida-des de reunião de informação do servidor.
O cliente e o servidor se comunicam utilizando a funcionalidade provida por umacamada de protocolo. Por exemplo, o protocolo de transferência de hipertexto (HTTP) é umprotocolo comum que é usado em conjunto com a rede difundida mundial (WWW). Tipica-mente, um endereço da rede de computador tal como uma localização universal de recursos(URL) ou um endereço de protocolo da Internet (IP) é usado para identificar os computado-res de servidor ou de clientes entre si. O endereço de rede pode ser citado como um ende-reço de localização universal de recursos. Por exemplo, a comunicação pode ser providaatravés de um meio de comunicações. Em particular, o cliente e o servidor podem ser uni-dos entre si via conexões TCP/IP para comunicação de alta capacidade.
Assim, a figura 2 ilustra um ambiente exemplar de rede ou distribuído, com um ser-vidor em comunicação com computadores clientes via um barramento / rede, no qual a pre-sente invenção pode ser utilizada. Em mais detalhes, um número de servidores 10a, 10b,etc., é interligado via uma rede de comunicações / barramento 14, que pode ser uma LAN,WAN, Intranet, a Internet, etc., com um número de dispositivos de computação remotos ouclientes 110a, 110b, 110c, 11 Od, 11 Oe, etc., tais como um computador portátil, computadorde mão, cliente fino, aparelho de rede ou outro dispositivo tais como um VCR, TV, forno, luz,aquecedor e semelhantes de acordo com a presente invenção. É assim considerado que apresente invenção pode se aplicar a qualquer dispositivo de computação em conjunto com oqual é desejável processar, armazenar ou renderizar conteúdo seguro de uma fonte de con-fiança, e a qualquer dispositivo de computação com o qual é desejável renderizar gráficosde alto desempenho gerados por uma máquina virtual.
Em um ambiente de rede no qual a rede de comunicações / barramento 14 é a In-ternet, por exemplo, os servidores 10 podem ser servidores de rede com os quais os clien-tes 110a, 110b, 110c, 11 Od ,11 Oe, etc. se comunicam via qualquer um de um número deprotocolos conhecidos tal como HTTP. Os servidores 10 podem também servir como clien-tes 110, como pode ser característico de um ambiente de computação distribuído. As comu-nicações podem ser por fio ou sem fio, onde apropriado. Dispositivos clientes 110 podem ounão se comunicar via rede de comunicações / barramento 14 e podem ter comunicaçõesindependentes associadas com eles. Por exemplo, no caso de uma TV ou VCR, pode existirou não um aspecto de rede para o seu controle. Cada computador cliente 110 e computadorservidor 10 podem ser equipados com vários módulos de programa aplicativo ou objetos135 e com conexões ou acesso a vários tipos de elementos ou objetos de armazenamento,através dos quais os arquivos podem ser armazenados ou para os quais porções de arqui-vos podem ser transferidas ou migradas. Assim, a presente invenção pode ser utilizada emum ambiente de rede de computador tendo computadores clientes 110a, 110b, etc. que po-dem acessar e interagir com uma rede de computador / barramento 14 e computadores ser-vidores 10a, 10b, etc. que podem interagir com computadores clientes 110a, 110b, etc. eoutros dispositivos 111 e bancos de dados 20.Dispositivo de Computação Particionado
Com referência agora à figura 3, um dispositivo de computação 10 inclui ou tem a-cesso a um recurso particular 12 que é utilizado para prover um serviço de recurso para odispositivo de computação 10. Tal dispositivo de computação 10, recurso 12 e serviço derecurso podem ser qualquer dispositivo de computação, recurso e serviço de recurso apro-priado sem se afastar do espírito e do escopo da presente invenção. Por exemplo, o disposi-tivo de computação 10 pode ser um computador pessoal tal como um computador de mesaou Iaptop ou semelhante com uma unidade de disco rígido como o recurso 12 provendo ser-viços de armazenamento de dados. Da mesma forma, o dispositivo de computação 10 podeser uma máquina de reprodução portátil tal como um reprodutor de áudio ou vídeo portátilcom uma tela de exibição como o recurso 12 provendo serviços de exibição. Similarmente, odispositivo de computação 10 pode ser uma máquina servidor com uma rede de comunica-ções de dados como o recurso 12 provendo serviços de comunicações. Em uma maneirasimilar, a máquina servidor pode ser, ela própria, o recurso 12. Observe que o recurso 12pode ser um pedaço particular de hardware, um adaptador para acessar um pedaço particu-lar de hardware, um serviço remoto, um serviço local, uma combinação desses e semelhan-tes.
Significativamente, o dispositivo de computação 10 foi configurado para executaruma pluralidade de partições, onde cada partição pode ser utilizada para instanciar umamáquina virtual para, por sua vez, hospedar uma instância de um sistema operacional noqual uma ou mais aplicações podem ser instanciadas. Como observado, em tal dispositivode computação 10, o recurso particular 12 do dispositivo de computação 10 é atribuído parauma partição particular ou máquina virtual 14 (a seguir, VM 14) de modo que a VM particular14 pode controlar diretamente tal recurso particular 12. Tal VM particular 14, então, é umhospedeiro que provê capacidades de recurso ('VM-H 14'). Similarmente, tal VM-H 14 provêserviços de recurso para uma ou mais outras VMs 16, cada uma das quais é, na realidade,um cliente que consome tais serviços ("VM-C 16"). Tipicamente, cada VM-C 16 e VM-H 14se comunicam por meio de um tubo ou canal tal como um barramento da máquina virtual(VM) 18 ou semelhante para realizar as operações relacionadas com o recurso.
O barramento da VM 18 pode ser estabelecido como um objeto em e de si mesmono dispositivo de computação 10, ou pode ser, ao invés disso, estabelecido como um objetoconceituai que não existe em e de si mesmo, sem se afastar do espírito e do escopo da pre-sente invenção. No último caso, e como deve ser verificado, tal barramento de VM conceitu-ai 18 é manifestado como um conduto de comunicações entre VMs 14,16 quando tais VMs14,16 escolhem estabelecer as comunicações entre elas. Em particular, a manifestação detal barramento da VM 18 pode ser considerada surgindo quando, no curso das VMs 14, 16escolhendo a comunicação entre elas, tais VMs 14, cada uma estabelece os serviços ne-cessários para tal comunicação e, na realidade, utilizam tais serviços para se comunicaremassim. Em tal instância, as comunicações podem ocorrer sobre qualquer meio de comunica-ções apropriado dentro do dispositivo de computação 10 sem se afastar do espírito e doescopo da presente invenção.
O dispositivo de computação 10 da figura 3 e cada VM 14,16 do mesmo podem serfuncionalmente operados para incluir ambos um modo de usuário e um modo de núcleo,embora tais modos não sejam percebidos como sendo absolutamente necessários para asfinalidades da presente invenção. Em qualquer taxa, e como pode ser verificado, o modo dousuário é um estado geralmente não privilegiado onde o código de execução é proibido pelohardware de executar certas operações, tal como, por exemplo, escrever na memória nãoatribuída para tal código. Geralmente, tais operações proibidas são essas que poderiamdesestabilizar o sistema operacional da VM 14,16 ou constituir um risco de segurança. Emtermos do sistema operacional, o modo do usuário é um modo de execução não privilegiadoanálogo onde o código de execução é proibido pelo núcleo de executar operações potenci-almente perigosas tal como escrever em arquivos de configuração do sistema, eliminar ou-tros processos, reinicializar o sistema e semelhantes.
Como pode também ser verificado, o modo de núcleo ou modo privilegiado é o mo-do no qual o sistema operacional e os componentes de núcleo relacionados funcionam. Aexecução do código no modo de núcleo tem acesso ilimitado à memória do sistema e recur-sos que são atribuídos para as VMs / partições 14, 16. De forma geral, a quantidade de có-digo funcionando no modo de núcleo é minimizada, tanto por finalidade de segurança quan-to elegância. Falando de maneira genérica, um usuário de um dispositivo de computação 10faz interface com ele mais diretamente através do modo do usuário e as aplicações operan-do nele, enquanto o dispositivo de computação 10 faz interface com os recursos, incluindo orecurso particular 12, mais diretamente através do modo de núcleo.
Migração de uma VM-H 14 Possuindo Recurso de Hardware 12Como foi evidenciado acima, uma VM 14, 16 como uma construção virtual pode serparada, salva, recuperada e reiniciada à vontade. Como um resultado, uma VM 14, 16 emuma primeira plataforma quando salva pode ser movida ou 'migrada' para uma segundaplataforma, onde as plataformas representam dispositivos de computação diferentes ou con-figurações diferentes do mesmo dispositivo de computação. Assim, uma VM 14,16 que é umservidor da rede, por exemplo, pode ter parada a sua execução em uma primeira máquinafísica, migrada e reiniciada em uma segunda máquina física sem que quaisquer clientes doservidor de rede até mesmo saibam que tal servidor de rede foi movido. Com tal migração,então, a primeira máquina física pode ser retirada de linha para a manutenção ou reconfigu-ração sem interromper o trabalho funcionando nela. Além disso, tal migração permite queum grupo de máquinas físicas equilibre dinamicamente a carga. Similarmente, uma VM 14,16 que representa o espaço de trabalho pessoal de um usuário pode ser movida pelo usuá-rio entre os dispositivos de computação 12 no trabalho, em casa e semelhantes.
Observe, entretanto, que às vezes nem toda a informação de estado relacionadacom uma VM 14, 16 está incluída dentro da construção de software de tal VM 14,16. Emparticular, uma VM-H 14 que possui um recurso 12 que é um pedaço de hardware ou umadaptador do mesmo pode ter informação de estado particular relacionada com o recurso 12armazenada com tal recurso 12. Na situação onde uma porção da informação de estado deuma VM-H 14 em particular não está incluída dentro da construção de software de tal VM-H14, então, a migração da VM-H 14 de uma primeira plataforma para uma segunda platafor-ma se torna mais difícil. Em particular, tal migração não deve acontecer até que a informa-ção de estado da VM-H 14 no recurso 12 seja manipulada tal que tal informação de estadono recurso 12 não seja perdida ou de outra forma permanentemente separada da VM-H 14.
Em um cenário onde a VM-H 14 pode tolerar uma interrupção no uso do recurso dehardware 12, a informação de estado no recurso 12 é relativamente benigna por natureza eprovavelmente pode ser influenciada e deletada do recurso 12 antes de parar a VM-H 14para sua migração. Por exemplo, se o recurso 12 é uma impressora e a informação de esta-do se refere a uma tarefa de impressão, a tarefa de impressão pode ser possibilitada decompletar tal que a informação de estado é consumida pela impressora, depois do que aposse do recurso da impressora 12 pode ser tirada da VM-H 14 e tal VM-H 14 pode ser mi-grada.
Em um outro cenário onde a VM-H 14 pode tolerar uma interrupção no uso do re-curso de hardware 12, a informação de estado no recurso 12 é um pouco menos benignapor natureza, mas provavelmente pode ser movida para a VM-H 14 antes de parar a VM-H14 para sua migração. Por exemplo, se o recurso 12 é a mesma impressora como antes e ainformação de estado se refere à mesma tarefa de impressão como antes, mas tal tarefa deimpressão não pode ser completada em uma duração de tempo razoável, a tarefa de im-pressão pode ser parada e a informação de estado restante relacionada com a tarefa deimpressão pode ser movida para a VM-H 14 antes de parar a VM-H 14 para sua migração,depois do que a posse do recurso da impressora 12 pode novamente ser tirada da VM-H 14e tal VM-H 14 pode ser migrada. Depois da migração, então, e presumindo que a VM-H 14novamente possui o mesmo recurso de impressora 12, a informação de estado restante re-lacionada com a tarefa de impressão pode ser movida da VM-H 14 para tal impressora paracompletar a tarefa de impressão.
Entretanto, pode ter o caso em que a suposição anteriormente mencionada nãopossa ser feita. Assim, o recurso da impressora 12 possuído pela VM-H 14 depois da migra-ção pode ser um recurso de impressora inteiramente diferente 12 tal como um tipo diferentede impressora, ou um recurso de impressora ligeiramente diferente 12 tal como a mesmaimpressora com um controlador de impressão atualizado. Significativamente, em qualquercaso é provável que a informação de estado restante relacionada com a tarefa de impressãonão possa ser movida da VM-H 14 para tal impressora para completar a tarefa de impressãovisto que o recurso de impressora diferente não pode mais reconhecer ou agir sobre tal in-formação de estado.
Observe, também, que uma VM-H 14 que possui um recurso 12 pode incluir infor-mação de estado no recurso incluindo listas de tarefa, variáveis de máquina de estado inter-nas e semelhantes. Se a VM-H 14 é arbitrariamente parada e reiniciada, a informação deestado no recurso 12 provavelmente será diferente e solicitações resistentes serão, na me-Ihor das hipóteses, derrubadas, o que pode fazer com que a VM-H 14 falhe. Na pior dashipóteses, um acionador ou semelhante para o recurso 12 entenderá mal a situação e naprogramação do recurso 12 corromperá a memória no recurso 12, novamente fazendo comque a VM-H 14 falhe, e também talvez fazendo com que outras VMs 14,16 no dispositivo decomputação 10 falhem também.
Assim, se pode ser garantido que a VM-H 14 depois da migração será reiniciada nomesmo dispositivo de computação 10 e com o mesmo recurso 12 disponível para ela, podeser suficiente que o sistema operacional da VM-H 14 mova toda a informação de estadopara fora do recurso 12 e armazene a mesma com a VM-H 14 antes da sua migração.Quando a VM-H 14 é reiniciada depois da migração, então, o sistema operacional da VM-H14 pode mover a informação de estado armazenada de volta para o recurso 12 para açãoadicional nele.
Entretanto, se uma tal garantia não pode ser feita, ou se a carga de trabalho impe-de o movimento de toda a informação de estado antes da migração, deve ser verificado queé freqüentemente suficiente remover ou 'ejetar' o recurso 12 da posse pela VM-H 14 antesda migração. Como pode ser verificado, tal ejeção pode ser realizada com a solicitação a-propriada para o sistema operacional da VM-H 14. Em uma modalidade da presente inven-ção, tal ejeção é comandada antes de parar a VM-H 14 para ser migrada, o que faz com queo sistema operacional da VM-H 14 mova somente essa informação de estado para fora dorecurso 12 e para dentro da VM-H 14 que é considerada significativa, e que é presumivel-mente menos do que toda a informação de estado no recurso 12. Como deve ser entendido,depois da ejeção, o recurso 12 não tem informação de estado relacionada com a VM-H 14 enão é mais possuído por ou disponível para a VM-H 14 antes ou depois da migração. Assim,depois da migração, a VM-H 14 não tentará mover qualquer informação de estado de voltapara o recurso 12 e quaisquer problemas possíveis de um tal movimento são dessa maneiraevitados. Naturalmente, a VM-H 14 terá que obter novamente a posse do recurso 12 se dis-ponível e assim desejado.
Em ainda um outro cenário, entretanto, a VM-H 14 não pode tolerar uma interrup-ção no uso do recurso de hardware 12 e a informação de estado no recurso 12 é assim rela-tivamente crítica por natureza. Por exemplo, se o recurso 12 é o dispositivo de armazena-mento principal utilizado pela VM-H 14, tal como uma unidade de disco, o acesso ao mesmoé crítico para a VM-H 14 ou se não o sistema operacional da VM-H 14 falhará. Assim, em talcenário, não existe ponto no tempo no qual a posse do recurso da unidade de disco 12 podeser tirada da VM-H 14 visto que a VM-H 14 deve sempre ser capaz de direcionar a informa-ção de estado para tal recurso 12. Em tal cenário, então, algum mecanismo deve ser utiliza-do para pausar a operação do recurso 12 e remover qualquer informação de estado da VM-H dele, enquanto ao mesmo tempo ainda permitindo que a VM-H 14 direcione a informaçãode estado para tal recurso 12.
Com referência agora à figura 4, é observado que uma VM-H típica 14 acessa umrecurso 12 tal como um recurso de dispositivo de armazenamento 12 por meio de uma pilhade dispositivo de armazenamento 22, que pode incluir um acionador do sistema de arquivo,um acionador de partição, um acionador de volume, um acionador de disco e semelhantes.
Naturalmente, a presente invenção não é limitada a um recurso de dispositivo de armaze-namento 12, mas ao contrário pode ser qualquer outro tipo de recurso 12 sem se afastar doespírito e do escopo da presente invenção, em cujo caso uma pilha correspondente apropri-ada 22 ou semelhante pode ser utilizada para acessar o mesmo.
Como mostrado, a pilha do dispositivo de armazenamento 22 da figura 4 se comu-nica com o recurso de dispositivo de armazenamento 12 por meio de um acionador de porta24 ou semelhante (a seguir, 'porta 24' ou equivalente). Como pode ser verificado, e como étípico, a porta 24 traduz comandos genéricos idealizados e solicitações da pilha do dispositi-vo de armazenamento 22 para comandos ou solicitações específicos para o recurso do dis-positivo de armazenamento 12. Notavelmente, se, por exemplo, o recurso do dispositivo dearmazenamento 12 inclui uma porção da memória na qual o sistema operacional da VM-H14 reside, tal recurso do dispositivo de armazenamento 12 deve ficar em operação contínuapara aceitar solicitações de paginação e semelhantes, ou se não o sistema operacional daVM-H 14 falhará. Dito de maneira simples, em tal caso, o acesso ao recurso do dispositivode armazenamento 12 não pode ser interrompido, pelo menos à medida que a VM-H 14deve sempre ser capaz de direcionar a informação de estado na forma de solicitações deacesso e semelhantes para tal recurso do dispositivo de armazenamento 12.
Dessa maneira, e com referência agora à figura 5, em uma modalidade da presenteinvenção, a porta única 24 da figura 4 é substituída por um par de portas 24a, 24b, onde aporta 24a acopla de modo comunicativo a pilha do dispositivo de armazenamento 22 com orecurso do dispositivo de armazenamento 12 e a porta 24b acopla de modo comunicativo apilha do dispositivo de armazenamento 22 com um destino alternado por intermédio de ummeio de comunicações. Como mostrado, o meio de comunicações é o barramento da VM 18e presumivelmente o destino alternado é uma outra VM-H 14, 16 operando no dispositivo decomputação 10. Entretanto, o destino alternado e o meio de comunicações podem ser qual-quer destino alternado e meio de comunicações apropriado sem se afastar do espírito e doescopo da presente invenção.
Significativamente, em uma modalidade da presente invenção, e como observadona figura 5, cada porta 24a, 24b é unida na pilha do dispositivo de armazenamento 22 pormeio de um mecanismo de redirecionamento de porta 26. Como pode ser verificado, o me-canismo de redirecionamento de porta 26 direciona cada solicitação de acesso para o recur-so do dispositivo de armazenamento 12 para tal recurso do dispositivo de armazenamento12 por intermédio da porta 24a ou para o destino alternado por intermédio da porta 24b emeio de comunicações / barramento de VM 18. Principalmente, o mecanismo de redirecio-namento de porta 26 determina como direcionar cada solicitação de acesso na maneira a -presentada abaixo.
Com referência agora à figura 6, e em uma modalidade da presente invenção, éobservado que uma seqüência de operações que pode ser utilizada para migrar uma VM-H14 que possui um recurso 12 tal como o recurso do dispositivo de armazenamento 12 émostrada. Observe também, que tal seqüência de operações pode também ser utilizadapara salvar uma tal VM-H 14 sem necessariamente migrar a mesma. Se migrando ou sal-vando, durante a operação do tempo de execução normal da VM-H 14, o recurso do disposi-tivo de armazenamento 12 é possuído pela VM-H 14, o mecanismo de redirecionamento deporta 26 direciona solicitações de acesso e semelhantes da pilha do dispositivo de armaze-namento 22 da VM-H 14 para o recurso do dispositivo de armazenamento 12 por intermédioda porta 24a, e a porta 24a e o recurso do dispositivo de armazenamento 12 ficam em fila eprocessam tais solicitações de acesso e semelhantes (etapa 601). Entretanto, depois queum salvamento ou migração da VM-H 14 é acionado, por qualquer que seja a fonte apropri-ada (etapa 603), o mecanismo de redirecionamento de porta 26 direciona as solicitações deacesso e semelhantes da pilha do dispositivo de armazenamento 22 da VM-H 14 para aporta 24b (etapa 605).
Inicialmente, a porta 24b enfileira as solicitações de acesso recebidas e semelhan-tes enquanto a porta 24a e o recurso do dispositivo de armazenamento 12 processamquaisquer solicitações de acesso restantes e semelhantes neles (etapa 607). Assim, todasas solicitações de acesso ou semelhantes na porta 24a e recurso do dispositivo de armaze-namento 12 podem completar, depois do que nenhuma informação de estado relacionadacom a mesma permanece com o recurso do dispositivo de armazenamento 12 (etapa 609).Criticamente, embora tais solicitações de acesso ou semelhantes na porta 24a e recurso dodispositivo de armazenamento 12 possam completar, solicitações de acesso adicionais ousemelhantes são enfileiradas na porta 24b e tais solicitações de acesso ou semelhantes nãosão negadas, ignoradas ou de outra forma repudiadas de qualquer maneira que faria comque o sistema operacional da VM-H 14 falhasse.
Significativamente, depois que todas as solicitações de acesso ou semelhantes naporta 24a e recurso do dispositivo de armazenamento 12 concluíram e nenhuma informaçãode estado relacionada com a mesma permanece com o recurso do dispositivo de armaze-namento 12, o recurso do dispositivo de armazenamento 12 é removido da (primeira) VM-H14 tal que a (primeira) VM-H 14 não mais possui o mesmo, talvez por meio de uma ejeçãoou semelhantes (etapa 611), e tal recurso do dispositivo de armazenamento 12 é então atri-buído para uma outra VM 14,16, tal uma outra VM 14, 16 agora sendo uma segunda VM-H14 que possui o recurso do dispositivo de armazenamento 12 (etapa 613). Como pode serverificado, a execução de tais ações de remoção e atribuição pode ser feita em qualquermaneira apropriada e por qualquer entidade apropriada sem se afastar do espírito e do es-copo da presente invenção.
Também significativamente, e em uma modalidade da presente invenção, depoisque o recurso do dispositivo de armazenamento 12 foi atribuído para a segunda VM-H 14, aporta 24b é acoplada em tal segunda VM-H 14 por meio do barramento da VM 18 ou seme-lhantes (etapa 615) e as solicitações de acesso ou semelhantes enfileiradas em tal porta24b são então enviadas para tal segunda VM-H 14 para conclusão no recurso do dispositivode armazenamento 12 agora possuído por ela (etapa 617). Como deve agora ser verificado,em algum ponto, todas as solicitações de acesso necessárias ou semelhantes foram envia-das para o recurso do dispositivo de armazenamento 12 pela pilha do dispositivo de arma-zenamento 12 da primeira VM-H 14 no decorrer do seu salvamento ou migração acionado,por intermédio da porta 24a ou porta 24b, e o recurso do dispositivo de armazenamento 12processou todas tais solicitações de acesso enviadas ou semelhantes (etapa 619). Dessamaneira, o salvamento ou migração da primeira VM-H 14 podem ser concluídos com o co-nhecimento que todas as solicitações de acesso da VM-H 14 para o recurso do dispositivode armazenamento 12 foram influenciadas, diretamente por intermédio da porta 24a ou indi-retamente por intermédio da porta 24b e da segunda VM-H 14, e com o conhecimento que orecurso do dispositivo de armazenamento 12 foi ejetado da primeira VM-H 14 sem reterqualquer informação de estado de tal primeira VM-H 14 (etapa 621).
Como deve agora ser verificado, a nova atribuição do recurso do dispositivo de ar-mazenamento 12 para a primeira VM-H 14 depois da sua migração é essencialmente o o-posto da remoção como executada nas etapas 603-621. Dessa maneira, detalhes de talnova atribuição não precisam ser apresentados aqui em qualquer detalhe.
Observe aqui que a porta 24b da primeira VM-H 14 não deve converter os coman-dos genéricos recebidos por ela para comandos específicos. Como tal, não é requerido quea pilha do dispositivo de armazenamento 22 da segunda VM-H 14 seja qualquer coisa maisdo que funcionalmente equivalente à pilha do dispositivo de armazenamento 22 da primeiraVM-H 14. Em particular, desde que tais pilhas 22 emitem comandos genéricos, tais coman-dos genéricos como recebidos na porta 24 da segunda VM-H 14 podem ser feitos específi-cos dessa forma.
Conclusão
Embora a presente invenção seja pelo menos parcialmente apresentada em termosde VMs 14, 16 de hospedeiro e cliente, é para ser verificado que a presente invenção é dire-cionada para qualquer situação onde uma partição ou VM que possui hardware deve sermigrada. Embora tal VM migrante seja provavelmente um hospedeiro para outros clientes,não é necessariamente o caso em que tal VM migrante seja sempre um tal hospedeiro paraoutros clientes. Além do mais, deve ser verificado que no decorrer da migração, uma VM-H14 com a renúncia à posse de um dispositivo de hardware, na realidade, se torna uma VM-C16, pelo menos de acordo com a terminologia usada aqui. Como deve ser verificado, então,a presente invenção embora apropriadamente revelada no contexto de VMs 14, 16 de hos-pedeiro e cliente, deve mais apropriadamente ser considerada sem se preocupar com ter-mos tais como 'hospedeiro' ou 'cliente', isto é, em termos de uma VM possuindo hardwareque é para migrar e, antes de fazer isso, renunciar a posse de tal hardware para uma outra VM.
A programação necessária para efetuar os processos executados em conjunto coma presente invenção é relativamente direta e deve ser evidente para o público de programa-ção relevante. Em particular, a programação necessária para construir cada um dos objetosmostrados na figura 5 em particular e também para efetuar as etapas da figura 6 deve serevidente com base na funcionalidade necessária para cada tal objeto e etapa. Dessa manei-ra, tal programação não é incluída aqui. Qualquer programação particular, então, pode serutilizada para efetuar a presente invenção sem se afastar do seu espírito e escopo.
Na presente invenção, um método e mecanismo são providos para lidar com a in-formação de estado de uma VM-H 14 em um recurso 12 possuído por ela quando a VM-H14 deve ser salva ou migrada de uma primeira plataforma para uma segunda plataforma. Ainformação de estado no recurso 12 pode ser deletada do recurso 12 na operação comumda mesma antes da migração, ou senão pode ser armazenada para recuperação posteriorpela VM-H 14 depois da migração, ou senão pode ser processada por uma outra VM-H 14.
Deve ser verificado que mudanças poderiam ser feitas nas modalidades descritasacima sem se afastar de seus conceitos inventivos. Como um exemplo, embora a presenteinvenção seja apresentada em termos de um recurso de hardware 12 com informação deestado de uma VM-H 14, tal recurso 12 pode também ser um outro tipo de recurso com ainformação de estado de uma VM-H 14, tal como um recurso de software 12, sem se afastardo espírito e do escopo da presente invenção. Como um outro exemplo, embora a presenteinvenção seja apresentada em termos de uma pilha 22 e porta 24 para acessar o recurso12, tal pilha 22 e porta 24 são planejadas para incluir não somente pilhas e portas, respecti-vamente, mas quaisquer outros mecanismos de acesso apropriados para acessar o recurso12, todos sem se afastar do espírito e do escopo da presente invenção. Deve ser entendido,portanto, que essa invenção não é limitada às modalidades particulares reveladas, mas éplanejada para cobrir modificações dentro do espírito e do escopo da presente invençãocomo definida pelas reivindicações anexas.
Claims (15)
1. Sistema de computação, CARACTERIZADO pelo fato de que compreende:um recurso para prover um serviço de recurso eum dispositivo de computação tendo primeira e segunda máquinas virtuais (VMs)instanciadas no dispositivo de computação, cada VM para hospedar uma instância de umsistema operacional no qual uma ou mais aplicações podem ser instanciadas, a primeira VMinicialmente sendo acoplada de modo comunicativo no recurso e o recurso sendo inicial-mente atribuído para a primeira VM tal que a primeira VM inicialmente possui o recurso e oserviço provido por esse, a primeira VM sendo uma construção de software no dispositivo decomputação que pode ser salva e migrada de uma primeira plataforma para uma segundaplataforma, a primeira VM incluindo:uma pilha de recurso correspondendo com e acessando o recurso de acordo comsolicitações de acesso enviadas por meio de tal pilha de recurso,uma primeira porta acoplada de modo comunicativo no recurso,uma segunda porta acoplada de modo comunicativo em um meio de comunicaçõeseum mecanismo de redirecionamento de porta acoplado de modo comunicativo napilha de recurso, na primeira porta e na segunda porta e enviando cada solicitação de aces-so da pilha de recurso para ser enfileirada em uma da primeira porta e da segunda porta,o mecanismo de redirecionamento de porta enviando cada solicitação de acesso dapilha de recurso para ser enfileirada na primeira porta até que a primeira VM é direcionadapara ser salva ou migrada, cada solicitação de acesso na primeira porta sendo também en-viada, por sua vez, para o recurso para ser influenciada por tal recurso,o mecanismo de redirecionamento de porta enviando cada solicitação de acesso dapilha de recurso para a segunda porta com a primeira VM sendo direcionada para ser salvaou migrada e a seguir, cada solicitação de acesso na segunda porta sendo também enviada,por sua vez, somente depois que o recurso agiu sobre todas as solicitações de acesso enfi-Ieiradas na primeira porta e a seguir foi removido da posse pela primeira VM,a segunda VM subseqüentemente sendo acoplada de modo comunicativo no recur-so e o recurso sendo subseqüentemente atribuído para a segunda VM depois que o recursoé removido da primeira VM tal que a segunda VM subseqüentemente possui o recurso e oserviço provido por ele, a segunda VM como dona do recurso sendo acoplada de modo co-municativo na segunda porta da primeira VM por intermédio do meio de comunicações, cadasolicitação de acesso na segunda porta sendo também enviada, por sua vez, para a segun-da VM por intermédio do meio de comunicações e a seguir também enviada, por sua vez,para o recurso por intermédio da segunda VM para ser influenciada por tal recurso,por meio disso, todas as solicitações de acesso da pilha de recurso da primeira VMsão influenciadas pelo recurso sucessivamente mesmo depois que o recurso é removido daprimeira VM e atribuído para a segunda VM e o salvamento ou migração pode ser comple-tado a seguir.
2. Sistema de computação, de acordo com a reivindicação 1, CARACTERIZADOpelo fato de que o dispositivo de computação também tem um barramento de VM como omeio de comunicações acoplando de modo comunicativo a primeira VM e a segunda VM.
3. Sistema de computação, de acordo com a reivindicação 1, CARACTERIZADOpelo fato de que o dispositivo de computação tem o recurso.
4. Sistema de computação, de acordo com a reivindicação 1, CARACTERIZADOpelo fato de que o recurso é um recurso de hardware.
5. Sistema de computação, de acordo com a reivindicação 1, CARACTERIZADOpelo fato de que o recurso é um recurso do dispositivo de armazenamento.
6. Método com relação a um sistema de computação, CARACTERIZADO pelo fatode que compreende:um recurso para prover um serviço de recurso eum dispositivo de computação tendo primeira e segunda máquinas virtuais (VMs)instanciadas no dispositivo de computação, cada VM para hospedar uma instância de umsistema operacional no qual uma ou mais aplicações podem ser instanciadas, a primeira VMsendo inicialmente acoplada de modo comunicativo no recurso e o recurso sendo inicial-mente atribuído para a primeira VM, tal que a primeira VM inicialmente possui o recurso e oserviço provido por ele, a primeira VM incluindo:uma pilha de recurso correspondendo com e acessando o recurso de acordo comas solicitações de acesso enviadas por meio de tal pilha de recurso,uma primeira porta acoplada de modo comunicativo com o recurso,uma segunda porta acoplada de modo comunicativo com um meio de comunica-ções eum mecanismo de redirecionamento de porta acoplado de modo comunicativo napilha de recurso, na primeira porta e na segunda porta e enviando cada solicitação de aces-so da pilha de recurso para ser enfileirada em uma da primeira porta e da segunda porta,o método compreendendo:o mecanismo de redirecionamento de porta inicialmente enviando cada solicitaçãode acesso da pilha de recurso para ser enfileirada na primeira porta, cada solicitação deacesso quando enfileirada na primeira porta sendo também enviada por sua vez para o re-curso para ser influenciada por tal recurso,em primeiro lugar determinar que a primeira VM foi direcionada para ser salva oumigrada de uma primeira plataforma para uma segunda plataforma, e com a primeira deter-minação, o mecanismo de redirecionamento de porta enviando cada solicitação de acessoda pilha de recurso para ser enfileirada na segunda porta eem segundo lugar determinar que o recurso agiu sobre todas as solicitações de a-cesso enfileiradas em e enviadas pela primeira porta e com a segunda determinação:remover o recurso da posse pela primeira VM e subseqüentemente acoplar de mo-do comunicativo a segunda VM no recurso e atribuir o recurso para a segunda VM1 tal que asegunda VM possui o recurso e o serviço provido por ele,acoplar de modo comunicativo a segunda VM como dona do recurso na segundaporta da primeira VM por intermédio do meio de comunicações,também enviar por sua vez cada solicitação de acesso quando enfileirada na se-gunda porta para a segunda VM por intermédio do meio de comunicações, cada solicitaçãode acesso então sendo também enviada por sua vez para o recurso por intermédio da se-gunda VM para ser influenciada pelo dito recurso, por meio disso todas as solicitações deacesso da pilha de recurso da primeira VM são influenciadas pelo recurso sucessivamentemesmo depois que o recurso é removido da primeira VM e atribuído para a segunda VM ea seguir completar o salvamento ou migração da primeira VM.
7. Método, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que odispositivo de computação também tem um barramento de VM como o meio de comunica-ções acoplando de modo comunicativo a primeira VM e a segunda VM.
8. Método, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que odispositivo de computação tem o recurso.
9. Método, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que orecurso é um recurso de hardware.
10. Método, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de queo recurso é um recurso do dispositivo de armazenamento.
11. Método com relação a um sistema de computação, CARACTERIZADO pelo fa-to de que compreende:um recurso para prover um serviço de recurso eum dispositivo de computação tendo primeira e segunda máquinas virtuais (VMs)instanciadas no dispositivo de computação, cada VM para hospedar uma instância de umsistema operacional no qual uma ou mais aplicações podem ser instanciadas, a primeira VMsendo inicialmente acoplada de modo comunicativo no recurso e o recurso sendo inicial-mente atribuído para a primeira VM tal que a primeira VM inicialmente possui o recurso e oserviço provido por ele, o método compreendendo:inicialmente enviar cada solicitação de acesso pelo recurso para tal recurso paraser influenciada pelo tal recurso,em primeiro lugar determinar que a primeira VM foi direcionada para ser salva oumigrada de uma primeira plataforma para uma segunda plataforma, e com a primeira deter-minação enviar cada solicitação de acesso pelo recurso para uma fila de sujeição eem segundo lugar determinar que o recurso agiu sobre todas as solicitações de a-cesso enviadas para ele, e com a segunda determinação:remover o recurso da posse pela primeira VM e subseqüentemente acoplar de mo-do comunicativo a segunda VM no recurso e atribuir o recurso para a segunda VM tal que asegunda VM possui o recurso e o serviço provido por ele,acoplar de modo comunicativo a segunda VM como dona do recurso na fila de su-jeição,também enviar cada solicitação de acesso na fila de sujeição para a segunda VM1cada solicitação de acesso então sendo também enviada por sua vez para o recurso porintermédio da segunda VM para ser influenciada pelo dito recurso, por meio disso todas assolicitações de acesso pelo recurso são influenciadas pelo recurso mesmo depois que orecurso é removido da primeira VM e atribuído para a segunda VM ea seguir completar o salvamento ou migração da primeira VM.
12. Método, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de queo dispositivo de computação também tem um barramento de VM como o meio de comunica-ções acoplando de modo comunicativo a primeira VM e a segunda VM.
13. Método, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de queo dispositivo de computação tem o recurso.
14. Método, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de queo recurso é um recurso de hardware.
15. Método, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de queo recurso é um recurso do dispositivo de armazenamento.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/363.897 | 2006-02-28 | ||
| US11/363,897 US7788665B2 (en) | 2006-02-28 | 2006-02-28 | Migrating a virtual machine that owns a resource such as a hardware device |
| PCT/US2007/004047 WO2007100508A1 (en) | 2006-02-28 | 2007-02-13 | Migrating a virtual machine that owns a resource such as a hardware device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| BRPI0708338A2 true BRPI0708338A2 (pt) | 2011-05-24 |
| BRPI0708338A8 BRPI0708338A8 (pt) | 2016-12-13 |
Family
ID=38445496
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BRPI0708338A BRPI0708338A8 (pt) | 2006-02-28 | 2007-02-13 | Migração de uma máquina virtual que possui um recurso tal como um dispositivo de hardware |
Country Status (11)
| Country | Link |
|---|---|
| US (4) | US7788665B2 (pt) |
| EP (1) | EP1989635B1 (pt) |
| JP (1) | JP5214473B2 (pt) |
| KR (1) | KR20080106908A (pt) |
| CN (1) | CN101390079B (pt) |
| AU (1) | AU2007221339A1 (pt) |
| BR (1) | BRPI0708338A8 (pt) |
| CA (1) | CA2638765A1 (pt) |
| NO (1) | NO20083314L (pt) |
| RU (1) | RU2436149C2 (pt) |
| WO (1) | WO2007100508A1 (pt) |
Families Citing this family (107)
| 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 |
| US20090083829A1 (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 |
| US8145471B2 (en) * | 2008-04-30 | 2012-03-27 | International Business Machines Corporation | Non-destructive simulation of a failure in a virtualization environment |
| US8201166B2 (en) * | 2008-04-30 | 2012-06-12 | Hewlett-Packard Development Company, L.P. | Virtualization platform configured with virtual connect control |
| 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 |
| US8255496B2 (en) | 2008-12-30 | 2012-08-28 | Juniper Networks, Inc. | Method and apparatus for determining a network topology during network provisioning |
| 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 |
| US8565118B2 (en) * | 2008-12-30 | 2013-10-22 | Juniper Networks, Inc. | Methods and apparatus for distributed dynamic network provisioning |
| 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 |
| 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 |
| 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 |
| US8813048B2 (en) * | 2009-05-11 | 2014-08-19 | Accenture Global Services Limited | Single code set applications executing in a multiple 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 |
| EP2622469B1 (en) | 2010-09-30 | 2019-11-13 | Commvault Systems, Inc. | Efficient data management improvements, such as docking limited-feature data management modules to a full-featured data management system |
| US9104458B1 (en) * | 2010-09-30 | 2015-08-11 | Amazon Technologies, Inc. | Managing virtual computing nodes using isolation and migration techniques |
| US9183028B1 (en) | 2010-09-30 | 2015-11-10 | Amazon Technologies, Inc. | Managing virtual computing nodes |
| 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 |
| 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 |
| 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 |
| 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 |
| US8813175B2 (en) * | 2011-08-15 | 2014-08-19 | Empire Technology Development Llc | Multimodal computing device |
| US9461881B2 (en) | 2011-09-30 | 2016-10-04 | Commvault Systems, Inc. | Migration of existing computing systems to cloud computing sites or virtual machines |
| US9372827B2 (en) | 2011-09-30 | 2016-06-21 | Commvault Systems, Inc. | Migration of an existing computing system to new hardware |
| 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 |
| US9338254B2 (en) * | 2013-01-09 | 2016-05-10 | Microsoft Corporation | Service migration across cluster boundaries |
| CN103116517B (zh) * | 2013-01-24 | 2016-09-14 | 华为技术有限公司 | 虚拟化平台下i/o通道的调整方法和调整装置 |
| 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 |
| WO2015146355A1 (ja) * | 2014-03-28 | 2015-10-01 | 株式会社Nttドコモ | 更新管理システムおよび更新管理方法 |
| US10013276B2 (en) | 2014-06-20 | 2018-07-03 | Google Llc | System and method for live migration of a virtualized networking stack |
| 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 |
| US9367414B2 (en) | 2014-06-27 | 2016-06-14 | Vmware, Inc. | Persisting high availability protection state 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 |
| 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 |
| US9563514B2 (en) | 2015-06-19 | 2017-02-07 | Commvault Systems, Inc. | Assignment of proxies for 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 |
| RU2644126C2 (ru) * | 2016-05-31 | 2018-02-07 | Некоммерческое Партнерство "Центр Прикладных Исследований Компьютерных Сетей" | Способ оптимального планирования использования виртуальных сетевых ресурсов центров обработки данных |
| 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 |
| US10552294B2 (en) | 2017-03-31 | 2020-02-04 | Commvault Systems, Inc. | Management of internet of things devices |
| US11294786B2 (en) | 2017-03-31 | 2022-04-05 | Commvault Systems, Inc. | Management of internet of things devices |
| 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 |
| 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 |
| CN114003335B (zh) * | 2020-07-28 | 2024-11-26 | 中移(苏州)软件技术有限公司 | 一种虚拟机热迁移的方法、装置、设备和存储介质 |
| US11656951B2 (en) | 2020-10-28 | 2023-05-23 | Commvault Systems, Inc. | Data loss vulnerability detection |
Family Cites Families (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3653159B2 (ja) * | 1997-04-01 | 2005-05-25 | 株式会社日立製作所 | 仮想計算機システム間の仮想計算機移動制御方法 |
| US6934755B1 (en) | 2000-06-02 | 2005-08-23 | Sun Microsystems, Inc. | System and method for migrating processes on a network |
| US6854115B1 (en) | 2000-06-02 | 2005-02-08 | Sun Microsystems, Inc. | Process persistence in a virtual machine |
| 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, Changhua | 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 |
| US8327353B2 (en) * | 2005-08-30 | 2012-12-04 | Microsoft Corporation | Hierarchical virtualization with a multi-level virtualization mechanism |
| 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 BR BRPI0708338A patent/BRPI0708338A8/pt not_active Application Discontinuation
- 2007-02-13 EP EP07750855.4A patent/EP1989635B1/en not_active Not-in-force
- 2007-02-13 JP JP2008557282A patent/JP5214473B2/ja not_active Expired - Fee Related
- 2007-02-13 AU AU2007221339A patent/AU2007221339A1/en not_active Abandoned
- 2007-02-13 KR KR1020087020464A patent/KR20080106908A/ko not_active Withdrawn
- 2007-02-13 CA CA002638765A patent/CA2638765A1/en not_active Abandoned
- 2007-02-13 WO PCT/US2007/004047 patent/WO2007100508A1/en not_active Ceased
- 2007-02-13 RU RU2008135084/08A patent/RU2436149C2/ru not_active IP Right Cessation
- 2007-02-13 CN CN2007800068178A patent/CN101390079B/zh not_active Expired - Fee Related
-
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
Also Published As
| Publication number | Publication date |
|---|---|
| RU2436149C2 (ru) | 2011-12-10 |
| US20140317621A1 (en) | 2014-10-23 |
| US10552208B2 (en) | 2020-02-04 |
| BRPI0708338A8 (pt) | 2016-12-13 |
| US20170161103A1 (en) | 2017-06-08 |
| WO2007100508A1 (en) | 2007-09-07 |
| EP1989635A1 (en) | 2008-11-12 |
| CN101390079A (zh) | 2009-03-18 |
| US7788665B2 (en) | 2010-08-31 |
| NO20083314L (no) | 2008-07-31 |
| CA2638765A1 (en) | 2007-09-07 |
| US8769530B2 (en) | 2014-07-01 |
| CN101390079B (zh) | 2010-12-08 |
| AU2007221339A1 (en) | 2007-09-07 |
| RU2008135084A (ru) | 2010-03-10 |
| EP1989635A4 (en) | 2012-05-09 |
| US20100325282A1 (en) | 2010-12-23 |
| US20070204265A1 (en) | 2007-08-30 |
| EP1989635B1 (en) | 2016-07-13 |
| KR20080106908A (ko) | 2008-12-09 |
| JP5214473B2 (ja) | 2013-06-19 |
| JP2009528620A (ja) | 2009-08-06 |
| US9535745B2 (en) | 2017-01-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| BRPI0708338A2 (pt) | migração de uma máquina virtual que possui um recurso tal como um dispositivo de hardware | |
| US9317314B2 (en) | Techniques for migrating a virtual machine using shared storage | |
| KR101602519B1 (ko) | 가상화된 저장소 할당 방법 | |
| US8595723B2 (en) | Method and apparatus for configuring a hypervisor during a downtime state | |
| TWI620072B (zh) | 可擴充集中式非揮發性記憶體儲存盒、電腦實施方法以及非暫態電腦可讀取儲存裝置 | |
| KR100938521B1 (ko) | 보안 위치 인식 플랫폼을 가능하게 해주는 방법, 장치, 및시스템 | |
| JP5613153B2 (ja) | ノード・ポートid仮想化を使用してwparクライアント用のストレージを仮想化するシステムおよび方法 | |
| US20050125537A1 (en) | Method, apparatus and system for resource sharing in grid computing networks | |
| CN110063051A (zh) | 可重新配置的服务器 | |
| US11635970B2 (en) | Integrated network boot operating system installation leveraging hyperconverged storage | |
| CN104350466B (zh) | 虚拟机映像写租赁 | |
| CN112148336A (zh) | 计算系统固件的安全更新 | |
| KR20110133004A (ko) | Tpm 액세스들을 가상화하기 위한 시스템들, 방법들 및 장치들 | |
| JPWO2008126163A1 (ja) | アクセス権限設定プログラム、方法及び装置 | |
| US7984438B2 (en) | Virtual machine transitioning from emulating mode to enlightened mode | |
| CN110383254A (zh) | 优化与网络节点相关联的内存映射 | |
| US11003618B1 (en) | Out-of-band interconnect control and isolation | |
| CN116069584B (zh) | 将监控服务扩展到可信云运营商域中 | |
| CN113312295B (zh) | 计算机系统、机器可读存储介质和重置计算机系统的方法 | |
| Mason et al. | Unifying Virtual Drivers | |
| JP2012252491A (ja) | 仮想化装置、仮想化装置制御方法、仮想化装置制御プログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| B25A | Requested transfer of rights approved |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US) |
|
| B06A | Patent application procedure suspended [chapter 6.1 patent gazette] | ||
| B11B | Dismissal acc. art. 36, par 1 of ipl - no reply within 90 days to fullfil the necessary requirements |