BRPI0814845B1 - Método de implementação de software em uma pluralidade de nós de servidor dentro de um sistema em rede de grande escala e sistema - Google Patents
Método de implementação de software em uma pluralidade de nós de servidor dentro de um sistema em rede de grande escala e sistema Download PDFInfo
- Publication number
- BRPI0814845B1 BRPI0814845B1 BRPI0814845-7A BRPI0814845A BRPI0814845B1 BR PI0814845 B1 BRPI0814845 B1 BR PI0814845B1 BR PI0814845 A BRPI0814845 A BR PI0814845A BR PI0814845 B1 BRPI0814845 B1 BR PI0814845B1
- Authority
- BR
- Brazil
- Prior art keywords
- image
- server
- central service
- node
- state
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
método de implementação de software em uma pluralidade de nós de servidor dentro de um sistema em rede de grande escala e sistema implementação de software em nós de servidor (204) dentro de sistemas de grande escala em rede é provida usando implementação baseada em imagem. a maioria da imagem imutável é provida em um serviço central (202) e transferida do serviço centra para os nós de servidor (204). a imagem inclui uma imagem base, que é imutável, e uma imagem delta, que é gravável e provê estado específico de função e/ou específico de nó para a parte base. quando um nó de servidor (204) recebe uma imagem do servidor central, o nó de servidor (204) armazena a imagem intacta sem instalação. o nó de servidor (204) então executa o software diretamente da imagem armazenada.
Description
MÉTODO DE IMPLEMENTAÇÃO DE SOFTWARE EM UMA PLURALIDADE DE NÓS DE SERVIDOR DENTRO DE UM SISTEMA EM REDE DE GRANDE ESCALA E SISTEMA.
FUNDAMENTOS [001] Sistemas de grande escala em rede são sistemas em lugares comuns implementados em uma variedade de estabelecimentos para executar e manter dados para negócios e funções operacionais. Por exemplo, um centro de dados pode prover uma variedade de aplicativos de web (por exemplo, serviços de e-mail, serviços de máquina de busca, etc.). Sistemas de grande escala em rede incluem um grande número de nós de servidor, em que cada nó é uma máquina física ou uma máquina virtual executando em um hospedeiro físico. Devido parcialmente ao grande número de nós de servidor que podem ser incluídos dentro de tais sistemas de grande escala, implementação de software (ambos sistemas de operação (OSs) e aplicativos) para os vários nós e manutenção do software sobre cada nó pode ser um processo oneroso e que consome tempo. Em particular, software é tradicionalmente instalado localmente em cada nó tal que a instalação e atualizações são específicos aos nós individuais. Várias falhas podem ocorrer as quais são apenas detectadas durante uma provisão on-line e/ou processo de atualização. Adicionalmente, degradação de bit pode ocorrer quando uma máquina é serialmente melhorada e emendada localmente. Degradação de bit refere-se a mudanças no estado de software local (por exemplo, estado de configuração OS) que pode ocorrer devido a erros humanos e/ou software. Quando este estado muda, o comportamento do nó pode se tornar imprevisível.
SUMÁRIO [002] Este sumário é provido para introduzir uma seleção de conceitos em uma forma simplificada que são adicionalmente descritos abaixo na descrição detalhada. Este sumário não pretende identificar
Petição 870190002229, de 08/01/2019, pág. 4/31
2/21 características principais ou características essenciais da matéria sujeita reivindicada, nem pretende ser usada como um auxílio determinante do escopo da matéria sujeita reivindicada.
[003] Modalidades da presente invenção referem-se a implementação de software em nós de servidor dentro de sistemas de grande escala em rede. As modalidades empregam implementação baseada em imagem, em que a maioria de imagens imutáveis é provida em um serviço central e transferida do serviço central para os nós de servidor. A imagem inclui uma imagem base, que é imutável, e uma imagem delta, que é gravável e provê um estado específico de função e específico de nó. Quando um nó de servidor recebe uma imagem de servidor central, o nó de servidor armazena a imagem intacta sem instalação. O nó de servidor em seguida executa o software diretamente da imagem armazenada.
BREVE DESCRIÇÃO DAS VÁRIAS VISTAS DOS DESENHOS [004] A presente invenção é descrita em detalhes abaixo com referência às figuras de desenhos anexadas, em que:
[005] A figura 1 é um diagrama de blocos de um ambiente de computação exemplar adequado para uso em implementação da presente invenção;
[006] A figura 2 é um diagrama de blocos de um sistema exemplar em que modalidades da invenção podem ser empregadas;
[007] A figura 3 é um diagrama de blocos de um cache de nó ligado armazenando imagens de software para múltiplas funções e múltiplas versões com uma modalidade da presente invenção;
[008] A figura 4 é um diagrama de fluxo que mostra um método para implementar software em nós de servidor em um sistema de grande escala em rede de acordo com uma modalidade da presente invenção; e [009] A figura 5 é um diagrama de fluxo que mostra um método
Petição 870190002229, de 08/01/2019, pág. 5/31
3/21 para implementar atualizações de software em nós de servidor em um sistema de grande escala em rede de acordo com uma modalidade da presente invenção.
DESCRIÇÃO DETALHADA [0010] A matéria sujeita da presente invenção é descrita com especificidade neste documento ara atender exigências estatutárias. Entretanto, a descrição por si não pretende limitar o escopo desta patente. Em vez disso, os inventores contemplaram que a matéria sujeita reivindicada pode também ser incorporada de outras formas, para incluir diferentes etapas ou combinações de etapas similares àquelas descritas neste documento, em conjunto com outras tecnologias ou tecnologias futuras. Além do mais, embora os termos etapa e/ou bloco possam ser usados aqui para conotar diferentes elementos e métodos empregados, os termos não devem ser interpretados como implicantes a qualquer ordem particular ou entre várias etapas deste documento descritas a menos e exceto quando a ordem de etapas individuais seja explicitamente descrita.
[0011] Como indicado anteriormente, modalidades da presente invenção proveem implementação de software a nós de servidor em sistemas de grande escala em rede usando desenvolvimento baseado em imagem. Como usado aqui, uma imagem refere-se a qualquer espaço de nome encapsulado.
[0012] Consequentemente, em um aspecto, uma modalidade da invenção é direcionada a uma ou mais mídia legível por computador incorporando instruções utilizáveis por computador para realizar um método de implementação de software a vários nós de servidor dentro de um sistema de grande escala em rede. O método inclui prover uma primeira imagem em um serviço central dentro o sistema de grande escala em rede. A primeira imagem inclui uma parte imutável e uma parte gravável. O método também inclui transferir a primeira imagem
Petição 870190002229, de 08/01/2019, pág. 6/31
4/21 do serviço central para os nós de servidor. O método adicionalmente inclui armazenar a primeira imagem em cada nó de servidor sem realizar uma instalação da primeira imagem em cada nó de servidor. O método ainda adicionalmente inclui executar o software diretamente da primeira imagem para um ou mais nós de servidor.
[0013] Em outra modalidade da invenção, um aspecto é direcionado a Mídia legível por computador incorporando instruções utilizáveis por computador para realizar um método de implementar uma atualização de software em vários nós de servidor em um sistema de grande escala em rede. O método inclui gerar uma nova imagem aplicando a atualização de software a uma imagem anterior. O método adicionalmente inclui transferir a nova imagem de um serviço central para nós de servidor, em que pelo menos uma parte dos nós estão executando a imagem anterior. O método adicionalmente inclui armazenar nos nós de servidor sem instalar a nova imagem. O método ainda adicionalmente inclui executar o software diretamente da nova imagem em uma ou mais nós de servidor.
[0014] Um aspecto adicional da invenção é direcionado a um sistema que inclui um serviço central incluindo um ou mais dispositivos de computação para armazenar uma imagem e transferir a imagem para uma pluralidade de nós de servidor. A imagem tem uma parte imutável e uma parte gravável. Os nós de servidor são configuráveis para receber a imagem do serviço central, armazenar a imagem sem instalar a imagem, e realizar boot diretamente da imagem.
[0015] Tendo brevemente descrito uma visão geral da presente invenção, um ambiente de operação exemplar em que vários aspectos da presente invenção podem ser implementados é descrito abaixo a fim de prover um contexto geral para vários aspectos da presente invenção. Referindo-se inicialmente a figura 1 em particular, um ambiente de operação exemplar para implementar modalidades da presente
Petição 870190002229, de 08/01/2019, pág. 7/31
5/21 invenção é mostrado e projetado geralmente como dispositivo de computação 100. O dispositivo de computação 100 é mais um exemplo de um ambiente de computação exemplar e mão pretende sugerir qualquer limitação ao escopo do uso ou funcionalidade da invenção. O dispositivo de computação não deve ser interpretado como tendo qualquer dependência ou exigência relacionada a qualquer um ou combinação de componentes ilustrados.
[0016] A invenção pode ser descrita no contexto geral de código de computador ou instruções utilizáveis por máquina, incluindo instruções executáveis por computador tais como módulos de programa, sendo executadas por computador ou outra máquina, tal como um assistente de dados pessoal ou outro dispositivo de mão. Geralmente, módulos de programa incluindo rotinas, programas, objetos, componentes, estruturas de dados, etc, referem-se a código que realiza tarefas particulares ou implementa tipos de dados abstratos particulares. A invenção pode ser praticada em uma variedade de configurações de sistema, incluindo dispositivos de mão, eletrônicos de consumo, computadores de finalidade geral, dispositivos de computação especial, etc. a invenção também pode ser praticada em ambientes de computação distribuídos onde as tarefas são realizadas por dispositivos de processamento remoto que são ligados através de uma rede de comunicação.
[0017] Com referência a figura 1, o dispositivo de computação 100 inclui um barramento 110 que acopla de forma direta ou indireta os seguintes dispositivos: memória 112, um ou mais processadores 114, um ou mais componentes de apresentação 116, portas de entrada/saída 118, componentes de entrada/saída 120, e uma fonte de energia ilustrativa 122. O barramento 110 representa o que pode ser um ou mais barramentos (tais como barramento de endereço, barramento de dados, ou combinação dos mesmos). Embora os vários bloPetição 870190002229, de 08/01/2019, pág. 8/31
6/21 cos da figura 1 sejam mostrados com linhas ara fins de clareza, na realidade, delinear muitos componentes não é tão claro, e metaforicamente, as linhas iriam ser mais precisamente cinzas e difusas. Por exemplo, pode-se considerar um componente de apresentação tal como um dispositivo de exibição sendo um componente E/S. também, processadores têm memória. É reconhecido que, tal é a natureza da técnica, e reiterado que o diagrama da figura 1 é meramente ilustrativo de um dispositivo de computação exemplar que pode ser usado em conexão com uma ou mais modalidades da presente invenção. Não é feita distinção entre tais categorias como estação de trabalho, servidor, laptop, dispositivo de mão, etc, como todos são contemplados dentro do escopo da figura 1 e referência a dispositivo de computação.
[0018] O dispositivo de comutação 100 tipicamente inclui uma variedade de mídia legível por computador. Mídia legível por computador pode ser qualquer mídia disponível que pode ser acessada por dispositivo de computação 100 e inclui ambas as mídias voláteis e não voláteis e mídias removíveis e não removíveis. Para fins de exemplo, e não limitação, mídia legível por computador pode compreender mídia de armazenamento em computador e mídia de comunicação. Mídia de armazenamento em computador inclui ambas as mídias voláteis e não voláteis, removíveis e não removíveis, implementadas em qualquer método ou tecnologia para armazenamento de informações tais como instruções legíveis por computador, estruturas de dados, módulos de programa ou outros dados. Mídia de armazenamento em computador inclui, mais não é limitado a, RAM, ROM, EEPROM, memória flash, ou outra tecnologia de memória, CD-ROM, discos versáteis digitais (DVD) ou outro armazenamento de disco óptico, cassetes magnéticos, fitas magnéticas, armazenamento de disco magnético ou outros dispositivos de armazenamento magnético, ou qualquer outro meio que possa
Petição 870190002229, de 08/01/2019, pág. 9/31
7/21 ser usado para armazenar as informações desejadas e que possa ser acessado pelos dispositivos de computação 100. Mídia de computação tipicamente incorpora instruções legíveis por computador, estruturas de dados, módulos de programa ou outros dados em um sinal de dados modulados tal como uma onda de portadora ou outro mecanismo de transporte e inclui qualquer mídia de entrega de informação. O termo sinal de dados modulados significa um sinal que tem um ou mais de suas características ajustadas ou alteradas de tal maneira que codifique as informações de sinal. Para fins de exemplo, e não limitação, mídias de comunicação incluem mídia cabeada tal como conexão cabeada direta ou rede cabeada, e mídia sem fio tal como acústica, RF, infravermelho ou outras mídias sem fio. Combinações de qualquer um dos acima também devem ser incluídas dentro do escopo de mídia legível por computador.
[0019] A memória 112 inclui mídia de armazenamento de computador na forma de memória volátil e/ou não volátil. A memória pode ser removível, não removível, ou uma combinação dos mesmos. Dispositivos de hardware exemplares incluem memória de estado sólida, hard drive, drives de disco óptico. Dispositivo de computação 100 inclui um ou mais processadores que lêem dados provenientes de várias entidades tais como memória 112 ou componentes E/S 120. Componentes de apresentação 116 apresentam indicações de dados para um usuário ou outro dispositivo. Componentes de apresentação exemplares incluem um dispositivo de exibição, alto-falante, componente de impressão, componente de viração, etc.
[0020] Portas E/S 118 permitem que dispositivo de computação
100 seja logicamente acoplado a outros dispositivos incluindo componentes E/S 120, alguns dos quais foram construídos no dispositivo.
Componentes ilustrativos incluem um microfone, joystick, almofada de jogo, placa de satélite, scanner, impressora, dispositivo sem fio, etc.
Petição 870190002229, de 08/01/2019, pág. 10/31
8/21 [0021] Com referência agora à figura 2, um diagrama de blocos é provido ilustrando um sistema 200 que facilita implementação de software em nós de servidor de acordo com uma modalidade da presente invenção. Deve ser compreendido que esta e outras disposições descritas aqui são realizadas apenas como exemplos. Outras disposições e elementos (por exemplo, maquinas, interfaces, funções, ordens, e grupamentos de funções, etc.) podem ser usados em adição a ou no lugar daqueles mostrados, e alguns elementos podem ser omitidos. Adicionalmente, muitos dos elementos descritos aqui são entidades funcionais que podem ser implementadas como componentes discretos ou distribuídos ou em conjunto com outros componentes, e em qualquer combinação adequada e localização. Várias funções descritas aqui como sendo realizadas por uma ou mais entidades podem ser realizadas por hardware, firmware e/ou software. Por exemplo, várias funções podem ser realizadas por um processador que executa instruções armazenadas em memória.
[0022] Entre outros componentes não mostrados, o sistema 200 pode geralmente incluir um serviço central 202, nós de servidor 204, e uma rede 206. Cada um dos componentes do sistema 200, incluindo o serviço central 202 e nós de servidor 204 podem compreender qualquer tipo de dispositivo de computação, tais como dispositivo de computação 100 descrito com referência à figura 1, por exemplo, os componentes podem se comunicar uns com os outros via uma rede 206, que pode incluir, sem limitação, uma ou mais redes de área local (LANs) e/ou redes de área ampla (WANs). Tais ambientes de interconexão são de lugar comum em escritórios, redes de computador de grandes empresas, intranets, e a internet. Deve ser compreendido que qualquer número de serviços centrais, nós de servidor, e redes podem ser empregados dentro do sistema 200 dentro do escopo da presente invenção. Adicionalmente, embora muitos outros componentes do sisPetição 870190002229, de 08/01/2019, pág. 11/31
9/21 tema 200 não sejam mostrados, aqueles versados na técnica irão apreciar que tais componentes e suas interconexões são bem conhecidas. Consequentemente, detalhes adicionais envolvendo sistemas não mostrados no sistema 200 não são adicionalmente revelados aqui. [0023] O serviço central 202 pode incluir um ou mais dispositivos de computação (tais como o dispositivo de computação 100 da figura 1) para gerenciar implementação de software (OS e/ou aplicativos) para os nós de servidor 204 dentro do sistema 200. O serviço central 202 é responsável pela construção e armazenamento das imagens. Adicionalmente, o serviço central 202 é responsável pela transferência de imagens para os nós de servidor 204.
[0024] Modalidades da invenção empregam implementação baseada em imagem, pela qual pelo menos duas coisas são encontradas. Primeiro, a cada nó de servidor 204 é enviada uma imagem exata do software que o nó 204 irá executar. O nó de servidor 204 não monta seu software primeiramente instalando um OS de uma localização, em seguida instalando um software de suporte adicional, potencialmente de outra localização, e finalmente instalando o software aplicativo de uma terceira localização. Em vez disso, o nó de servidor 204 recebe seu software em um pacote, pronto para executar. Segundo, o nó de servidor 204 executa o software diretamente da imagem implementada. O nó 204 não apenas usa a imagem como uma fonte para instalar o software na máquina, como isto iria consumir tempo e seria propício a erro. Em vez disso, o nó de servidor 204 realiza boots do OS proveniente da imagem.
[0025] Estado de aplicativo é separado do estado OS desenvolvendo pelo menos duas imagens distintas (isto é, uma imagem de OS e uma imagem de aplicativo) para cada nó de servidor 204. as imagens são construídas separadamente no serviço central 202 e permanecem separadas no nó de servidor 204. Aplicativos precisam estar
Petição 870190002229, de 08/01/2019, pág. 12/31
10/21 cientes desta separação. Consequentemente, em uma modalidade, a imagem de OS na qual um aplicativo executa mostra em uma letra de acionamento diferente da imagem de aplicativo. As atribuições de letra de acionamento não são predefinidas, mas estão disponíveis para o aplicativo através de configuração.
[0026] Cada imagem de software (por exemplo, uma imagem de OS ou uma imagem de aplicativo) em modalidades inclui uma imagem base e uma imagem delta. A imagem base é imutável (ou apenas para leitura) enquanto a imagem delta é gravável. A imagem delta serve para prover estado específico de função ou especifico de nó para a imagem base. Os dados específicos de função e/ou específicos de nó podem ser gravados na imagem delta no serviço central 202 antes de implementar e/ou em um nó de servidor individual 204 após implementação. A imagem base e a imagem delta podem ser mantidas separadamente no serviço central 202 e integradas em tempo implementado.
[0027] A separação de OS e aplicativos em imagens separadas combinada com o uso de imagens base e imagens delta, significa que a imagem executada por um nó realmente compreende um conjunto de muitos arquivos físicos. Consequentemente, uma imagem referese a um conjunto inteiro de arquivos (todas as imagens base e imagens delta). Uma imagem de OS ou uma imagem de aplicativo refere-se ao conjunto de arquivos que fazem o conjunto de disco (imagem base e imagem delta) para a imagem de OS ou a imagem de aplicativo, respectivamente.
[0028] Em uma modalidade da invenção, as imagens são armazenadas usando o formato de Disco Rígido Virtual (VHD) da Microsoft®, que especifica um disco rígido de máquina virtual que pode residir em um sistema de arquivo hospedeiro nativo encapsulado dentro de um arquivo único. O formato VHD provê discos diferenciais, em que um único disco lógico é mantido em dois arquivos: um arquivo de VHD
Petição 870190002229, de 08/01/2019, pág. 13/31
11/21 base e um arquivo de VHD delta. Em modalidades da invenção, resíduos de estado comum no VHD base, enquanto estados por função e por nó residem no VHD delta. O VHD base é apenas de leitura, e quaisquer mudanças feitas no disco emulado são gravadas no VHD delta. Embora o formato de VHD seja mencionado especificamente aqui, um versado na técnica irá reconhecer que outras tecnologias de empacotamento (por exemplo, WIM) podem ser empregadas dentro do escopo de modalidades da invenção.
[0029] Implementação baseada em imagem de acordo com modalidades da presente invenção permite provisão de servidor rápida e confiável de várias formas, incluindo o seguinte:
[0030] · Não existe fase de instalação nos nós de servidor 204, então um vez que uma imagem é implementada em um nó de servidor 204, o nó 204 pode realizar boot rapidamente para o software atribuído.
[0031] · Imagens são montadas centralmente no serviço central
202, e quaisquer erros que ocorrem durante esta fase são mais facilmente detectáveis do que erros que podem ocorrer durante a instalação por nó.
[0032] · Nós de servidor 204 realizam boot a partir da imagem, tornando possível implementar novas imagens (ou atualizações ou diferentes funções) no fundo, enquanto os nós 204 estão executando suas funções atuais. Uma vez que novas imagens são colocadas, os nós 204 podem realizar boot para suas novas funções com tempo de inatividade reduzido. Em alguns casos a imagem velha permanece em cache nos nós 204, e, se necessário, os nós 204 podem ser transferidos de volta para seu estado anterior com tempo de inatividade mínimo.
[0033] · Muito do conteúdo nas imagens implementadas é idêntico entre todos os nós 204, e estado por função e estado por nó são sepaPetição 870190002229, de 08/01/2019, pág. 14/31
12/21 rados do estado comum usando imagens delta. Isto permite que o estado comum (a imagem base) seja enviado simultaneamente via multicast para todos os nós físicos 204 executando aquela versão da imagem de aplicativo ou OS, isto reduz a largura de banda tomada implementando e fazendo com que roll up sejam mais rápidos.
[0034] · Similarmente, em um hospedeiro virtual, a vasta maioria dos dados OS é a mesma entre todos os nós achados atribuídos, e apenas uma copia do VHD base de OS precisa ser enviada para o hospedeiro.
[0035] Implementação baseada em imagem também ajuda a reduzir o problema de degradação de bit devido a remendos nos nós de servidor 204 não serem requeridos. Em vez disso, quando um remendo precisa ser instalado, ou uma nova versão do aplicativo está disponível, uma ova versão da imagem é criada no serviço central 202 e em seguida transferida para os nós de servidor 204. Isto permite que erros de remendo sejam detectados antes de implementar e assegurar que todos os nós de servidor 204 executem o mesmo conjunto de bits. Se, no curso de operação normal, um dado estado do nó se tornar corrompido de alguma forma (por exemplo, devido a um erro de disco), o serviço central 202 pode, porque ele tem verdade sobre o estado do nó, reimplementar a imagem e conseguir que o nó 204 volte para um estado bom conhecido rapidamente e de forma segura.
[0036] Em modalidades, implementação baseada em imagem também permite implementação direta em ambos o nós físico e virtual usando o mesmo formato de imagem para ambos os modos, permitindo que a mesma imagem base seja implementada em todos os nós de servidor 204. Para implementar uma imagem em um nó virtual, a imagem é enviada a divisão raiz no nó de servidor físico 204, e em seguida a máquina virtual é executada com aquela imagem anexada como um disco físico emulado. Para implementar uma imagem para um nó
Petição 870190002229, de 08/01/2019, pág. 15/31
13/21 de servidor físico 204, uma imagem é enviada a um OS de manutenção executando no nó 204, e a imagem é armazenada (como um arquivo) no disco físico. O nó de servidor 204 tem em seguida boot realizado diretamente da imagem disponível nativamente no disco. Por exemplo, em algumas modalidades, o nó de servidor 204 tem boot realizado diretamente da imagem usando um driver especial que torna a imagem disponível diretamente como um disco.
[0037] Devido a implementação baseada em imagem separar estado estatístico do estado dinâmico, os problemas de limite experimentados de drives flash podem ser reduzidos ou evitados (por e grande) gravando a imagem base uma vez (isto é, quando a imagem é construída no serviço central 202) e isolando gravações para a imagem delta. Em algumas modalidades, a imagem base pode ser gravada uma vez e a imagens deltas podem ser mantidas em RAM, iniciando com um candidato limpo toda hora. Isto iria evitar o problema de limite experimentado, e iria ser um modo adequado de operação para nós de servidor de front-end sem estado.
[0038] Implementação baseada em imagem adicionalmente permite o uso de modos sem discos de operação. Por exemplo, em uma modalidade, um nó de servidor 204, pode usar uma imagem de disco remoto (por exemplo, usando Interface de Sistema de Pequeno Computador com Internet (iSCSI). Em outra modalidade, um nó de servidor 204 realiza boot da RAM, tratando a imagem como um disco de RAM.
[0039] Como indicado anteriormente, o serviço central 202 inclui componentes para construir e servir imagens implementáveis. Imagens são construídas fora de linha (isto é, não em um nó de servidor ativo 204) pelo serviço central 202.
[0040] Para imagens OS, o serviço central 202 inicialmente constrói a imagem base OS. Em algumas modalidades, múltiplas imagens podem ser construídas (por exemplo, diferentes versões). Funções de
Petição 870190002229, de 08/01/2019, pág. 16/31
14/21 serviço construídas na imagem base OS adicionando estado específico de função. Exemplos de estado específico de função incluem a habilitação de componentes opcionais OS, a adição de software externo, e a modificação de estabelecimentos OS. O serviço central 202 torna este estado específico de função disponível para implementação criando uma imagem delta separada de, mas ligada a, a imagem base OS. Juntas, a imagem base OS comum e a imagem delta específica de função se tornam a imagem de OS enviada de um serviço central 202 para um nó de servidor 204.
[0041] Em uma modalidade, o processo de construção da imagem delta envolve configuração fora de linha da imagem seguida realizando boot da imagem em uma máquina virtual fora de linha. Este boot de máquina virtual é usado para executar ações em de linha que são enfileiradas durante configuração fora de linha, uma vez, em vez de a cada nó de servidor 204.
[0042] Em algumas modalidades, o serviço central 202 também permite estabelecimentos de configuração OS específica de nó, tal como, por exemplo, estabelecimentos especificados por um desenvolvedor de aplicativo. Em adição, também podem existir estabelecimentos de configuração OS específico de nó gerados pelo servidor central 202. os estabelecimentos são implementados no nó de servidor 204 juntamente com a imagem de OS e são aplicados no nó 204 ara uma cópia da imagem delta especifica de função para criar uma imagem delta específica de nó. O nó 204 realiza boot do OS diretamente desta imagem.
[0043] Imagens de aplicativos similarmente incluem uma imagem base e uma imagem delta. Em uma modalidade, desenvolvedores de aplicativo podem prover um manifesto descrevendo seus estabelecimentos de configuração e binários, e esta descrição é usada para construir a imagem base para o aplicativo. Estabelecimentos de confiPetição 870190002229, de 08/01/2019, pág. 17/31
15/21 guração de aplicativo específico de nó são implementados no nó de servidor 204 juntamente com a imagem base de configuração e são aplicados ao nó 204 para criar uma imagem delta específica de nó. O nó de servidor 204 executa o aplicativo diretamente desta imagem.
[0044] Quando remendos e atualizações de OS e aplicativo estão disponíveis, os remendos e as atualizações não são aplicados individualmente nos nós de servidor. Em vez disso, os remendos e atualizações são aplicados fora de linha no serviço central 202 para criar novas imagens de implementação, que são em seguida implementadas nos nós de servidor 204. Criar novas imagens no serviço central 202 e em seguida implementar as imagens nos nós de servidor 204, este processo ajuda a evitar o problema de remendos aplicados parcialmente ou falados nos nós de servidor 204.
[0045] Como indicado anteriormente, imagens construídas no serviço central 202 são implementadas nos nós de servidor 204. Em outras palavras, imagens podem ser transferidas do serviço central 202 para os vários nós 204 dentro do sistema 200. Em algumas modalidades, porque as imagens base não contêm estado por nó, as mesmas imagens base de aplicativo e OS podem ser usadas por muitos nós de servidor 204. Isto significa que quando muitos nós 204 precisam ser fornecidos ao mesmo tempo, o mesmo arquivo precisa ser copiado muitas vezes. Para reduzir uso de largura de banda de rede, modalidades da invenção usam um protocolo de multicast para enviar o arquivo para muitos nós simultaneamente.
[0046] Após imagens serem recebidas nos nós de servidor 204, os nós 204 salvam as imagens sem instalação. Isto permite que nós de servidor 204 mantenham um cache de imagens implementadas. Em outras palavras, porque imagens não são instaladas nos nós de servidor 204, mas são em vez disso retidas em forma de imagem, é possível realizar cache de múltiplos conjuntos de imagens (por exemplo,
Petição 870190002229, de 08/01/2019, pág. 18/31
16/21 diferentes versões de um OS e/ou aplicativo) em um nó de servidor 204. Este projeto provê flexibilidade no sistema e permite uma variedade de funções.
[0047] Primeiro, permitir que um nó de servidor 204 inclua um cache de imagens provê a capacidade de transferir para memória auxiliar novas imagens no fundo. Em particular, quando uma nova versão de uma imagem de OS ou aplicativo está pronta para ser implementada, a nova versão pode ser copiada para os nós de destino 204 enquanto aqueles nós 204 estão executando a versão anterior. Isto significa que o tempo de cópia não é tempo de inatividade, e a cópia pode proceder em um tempo de execução mais vagaroso se a largura de banda de rede é uma emissão, ou ela pode acontecer durante inatividades na carga de rede (largura de banda também pode ser conservada usando transmissão multicast, como discutido acima). Download de imagem é desacoplado da inativação de imagem, que permite validação de imagens descarregadas e dá mais liberdade na decisão ao comutar nós na nova versão da imagem.
[0048] Em algumas modalidades, quando uma nova versão em uma imagem é implementada, a versão anterior é retida no cache de imagem no nó de servidor 204. se um problema ocorre durante a sequência de transferência para memória auxiliar - por exemplo, se após ativar a imagem em 500 de 1000 nós de servidor 204, é notificado que o serviço não se comporta normalmente - os nós 204 que já foram movidos para frente podem ser transferidos de volta muito rapidamente realizando reboot na imagem anterior. Na há necessidade de realizar download da imagem anterior novamente ou reinstalar a imagem anterior. Uma vez que o problema foi fixado, a transferência para memória auxiliar pode ser repetida, (note que se a fixação não envolver mudanças nas novas imagens, não existe necessidade de recopiar a nova imagem).
Petição 870190002229, de 08/01/2019, pág. 19/31
17/21 [0049] Modalidades também facilitam transferir um nó de servidor 204 de volta para um último estado bom conhecido. Mudanças que são feitas ao volume OS ou volume de aplicativo em um nó 204 são armazenadas na imagem delta. A imagem delta original pode ser salva antes da função ser ativada, e se o problema ocorrer por causa de mudanças, a imagem delta original pode ser rearmazenada sem copiar do servidor de implementação (isto é, o serviço central 202). Adicionalmente, modalidades da invenção permitem que nós de servidor 204 facilmente comutem funções usando imagens em cache. Em particular, imagens correspondendo a mais de uma função podem ficar em cache em um dado nó de servidor 204. Consequentemente, comutar o nó 204 de uma função para outra é tão simples quando realizar reboot do nó 204. Não existe nenhum custo de reinstalação para fazer a comutação.
[0050] Modalidades adicionais adicionalmente facilitam identificar mudanças em uma imagem base usando somas de verificação. A imagem base é apenas de leitura nos nós de servidor 204 porque quaisquer mudanças são gravadas na imagem delta. Isto significa que mudanças nas imagens base que ocorrem devido a erros (por exemplo, erros de disco) podem ser detectadas através de somas de verificação. Se tal uma mudança ocorrer, a imagem base pode ser recopiada para o nó de servidor 204.
[0051] Para fins de ilustração apenas e não limitação, a figura 3 ilustra um diagrama de blocos mostrando um exemplo dos conteúdos de um cache de imagem de nó ligado 300. No presente exemplo, imagens são armazenadas no cache para duas funções. Por exemplo, a função 1 pode permitir que o nó de servidor proveja serviços de e-mail enquanto a função 2 pode permitir que o nó de servidor proveja serviços de máquina de busca. Como indicado anteriormente, realizando cache de imagens para ambas as funções, o nó de servidor pode ser
Petição 870190002229, de 08/01/2019, pág. 20/31
18/21 fácil e rapidamente comutado de uma função para a outra simplesmente realizando reboot do nó. Adicionalmente, duas versões de função 1, versão 1.0 e 1.1, são apresentadas, enquanto apenas uma versão da função 2, a versão 1.1 é apresentada no cache. Como descrito acima, realizando cache de múltiplas versões de uma função particular, o nó de servidor pode ser rapidamente transferido de volta para uma versão anterior se necessário, por exemplo, se a versão 1.1 da função 1 para a versão ativa, o nó de servidor podería ser rapidamente transferido de volta para a versão 1.0 da função 1 realizando reboot desde que a versão anterior seja armazenada no cache.
[0052] Como mostrado na figura 3, a versão 1.0 da função 1 inclui a imagem base v1.0 de OS 302, a imagem delta v1.0 de OS 304, a imagem base v1.0 de aplicativo 1 306, a imagem delta v1.0 de aplicativo 1 308. A versão 1.1 de função 1 inclui a imagem base v1.1 de OS 312, a imagem delta v1.1 de OS 314, a imagem base v1.1 de aplicativo 1 316, e a imagem delta v1.1 de aplicativo 1 318. A versão 1.1 de função 2 inclui a imagem base v1.1 de OS 312, a imagem delta v1.1 de OS 324, a imagem base v1.1 de aplicativo 2 326, e a imagem delta v1.1 de aplicativo 2 328. Note que a versão 1.1 de função 1 e a versão
1.1 de função 2 ambas usam a imagem base v1.1 de OS 312, então somente uma cópia daquela imagem é armazenada no cache e pode ser compartilhada.
[0053] Voltando para a figura 4, um diagrama de fluxo é provido ilustrando um método exemplar 400 para implementar software para nós de servidor dentro de um sistema de grande escala em rede de acordo com uma modalidade da presente invenção. Inicialmente, como mostrado no bloco 402, uma imagem de software é provida em um serviço central, tal como o serviço central 202 da figura 2. A imagem de software pode compreender uma imagem de OS ou uma imagem de aplicativo. Como descrito acima, a imagem de software inclui uma
Petição 870190002229, de 08/01/2019, pág. 21/31
19/21 imagem base, que é de apenas leitura, e uma imagem delta, que é regravável. A imagem delta pretende construir uma imagem base adicionando estado específico de função e/ou específico de nó. Em algumas modalidades, o serviço central pode manter múltiplas imagens de OS e múltiplas imagens de aplicativo e gerencia implementação das várias imagens para nós de servidor dentro do sistema (por exemplo, nós de servidor 204 da figura 2).
[0054] Como mostrado no bloco 404, a imagem é transferida do serviço central para o nós de servidor de destino para aquela imagem. Em particular, uma cópia da imagem no serviço central é enviada a cada um dos nós de servidor de destino. Quando um nó de servidor recebe uma imagem do serviço central, o nó de servidor salva a imagem sem instalação, como mostrado no bloco 406. Como notado anteriormente, isto contrasta significativamente a implementação tradicional de software para nós de servidor. Tradicionalmente, o software é instalado em cada nó de servidor, que envolve desempacotar os arquivos individuais do software e copiar cada arquivo individual para o disco. Em contraste, em modalidades da presente invenção, a imagem salva no disco sem instalação. Consequentemente, arquivos individuais do software não existem como arquivos individuais no nó de servidor mas, em vez disso, existem apenas como parte da imagem.
[0055] Os nós de servidor depois executam o software diretamente da imagem, como mostrado no bloco 408. no caso de uma imagem de OS, os nós de servidor realizam boot diretamente da imagem de OS. No caso de uma imagem de aplicativo, os nós de servidor executam o aplicativo diretamente da imagem. Consequentemente, os nós de servidor não apenas usam a imagem como uma fonte para instalar o software nas maquinas, mas em vez disso realmente realizam boot do OS a partir de imagem no caso de uma imagem de OS e executam o aplicativo da imagem no caso de uma imagem de aplicativo.
Petição 870190002229, de 08/01/2019, pág. 22/31
20/21 [0056] Como indicado anteriormente, quando os remendos/atualizações de software estão disponíveis, os remendos/atualizações são aplicados a imagens em um serviço central (por exemplo, serviço central 202 da figura 2) como oposto a ser aplicado em nos individuais. Um método exemplar 500 para aplicar uma atualização de software com uma modalidade da invenção é ilustrado na figura 5. Inicialmente, como mostrado no bloco 502, uma atualização de software é recebida em um serviço central. A atualização de software é aplicada a uma cópia de uma imagem anterior no serviço central para gerar uma nova imagem fora de linha, como mostrado no bloco 504. Em uma modalidade, para gerar a nova imagem, a versão atual de uma imagem base é copiada, e a nova imagem base é montada. A atualização de software é aplicada, e a nova imagem base é então desmontada. Imagens delta específicas de função podem também ser regeneradas. A nova imagem base e uma imagem delta específica de função juntas compreendem uma nova imagem gerada com a atualização de software.
[0057] Note que em modalidades, imagens podem ser fortemente versionadas. Consequentemente, a imagem anterior pode ser mantida no serviço central em adição à nova imagem. Consequentemente, múltiplas versões de uma imagem de OS ou uma imagem de aplicativo podem ser mantidas no serviço central, que pode gerenciar implementação das várias versões a diferentes nós de servidor dependendo de cada função de nó de servidor.
[0058] Após gerar a nova imagem no serviço central com base na atualização de software, uma cópia da nova imagem é transferida para cada nó de servidor de destino dentro do sistema (por exemplo, nós de servidor 204 da fig. 2), como mostrado no bloco 506. Um nó de servidor pode receber a nova imagem enquanto a imagem anterior está executando, evitar qualquer tempo de inatividade durante a transfePetição 870190002229, de 08/01/2019, pág. 23/31
21/21 rência de imagem. O nó de servidor salva a nova imagem em disco sem instalação, como mostrado no bloco 508. Consequentemente, a nova imagem é salva em disco como uma imagem intacta em adição a qualquer imagem em anteriormente armazenada em cache no nó de servidor, incluindo a imagem do nó de servidor que está atualmente sendo executada.
[0059] Como mostrado no bloco 510, os nós de servidor depois executam o software diretamente a partir da nova imagem. No caso de uma imagem de OS, os nós de servidor realizam reboot diretamente da nova imagem de OS. No caso de uma imagem de aplicativo, os nós de servidor executam o aplicativo diretamente da imagem.
[0060] Como pode ser entendido, modalidades da presente invenção facilitam implementação de imagem e gerenciamento para múltiplos nós de servidor dentro de sistemas de grande escala em rede. A presente invenção foi descrita em relação a modalidades particular, que pretendem em todos os aspectos serem ilustrativas em vez de restritivas. Modalidades alternativas se tornarão aparentes para aqueles versados na técnica a qual a presente invenção pertence sem se afastar de seu escopo.
[0061] A partir do acima, será visto que esta invenção é bem adaptada para manter todas as finalidades e objetos apresentados acima, juntamente com outras vantagens que são óbvias e inerentes ao sistema e ao método. Será compreendido que certas características e subcombinações são de utilidade e podem ser empregadas sem referência a outras características e subcombinações. Isto é contemplado por e está dentro do escopo das reivindicações.
Claims (9)
- REIVINDICAÇÕES1. Método de implementação de software em uma pluralidade de nós de servidor (204) dentro de um sistema em rede de grande escala, o método caracterizado pelo fato de que compreende as etapas de:criar (402) uma primeira imagem em um serviço central (202) dentro do sistema em rede de grande escala, em que a primeira imagem representa uma imagem de sistema operacional (OS) de um estado de OS ou uma imagem de aplicativo de um estado de aplicativo, de modo que o estado de OS e o estado de aplicativo sejam proporcionados separadamente, e em que criar compreende:(a) construir uma parte imutável da primeira imagem off-line no serviço central (202), em que a parte imutável representa um estado estático comum da pluralidade de nós de servidor (204) com um atualização aplicada; e (b) construir uma parte gravável da primeira imagem off-line no serviço central (202), em que a parte gravável representa um estado específico de função particular a uma função hospedada na pluralidade de nós de servidor (204), em que a parte imutável e a parte gravável são construídas separadamente;transferir (404) a primeira imagem a partir do serviço central (202) para um nó de servidor (204) objeto da pluralidade de nós de servidor (204), em que a primeira imagem é armazenada no nó de servidor (204) objeto sem realizar uma instalação da primeira imagem; e reiniciar o nó de servidor (204) objeto da primeira imagem de modo que o estado específico de função do servidor objeto seja alterado para o estado específico de função da primeira imagem.
- 2. Método, de acordo com a reivindicação 1, caracterizadoPetição 870190002229, de 08/01/2019, pág. 25/312/3 pelo fato de que ainda compreende proporcionar uma segunda imagem no serviço central (202), a segunda imagem incluindo uma parte imutável e uma parte gravável.
- 3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a primeira imagem facilita operação de um nó de servidor (204) em uma primeira função e a segunda imagem facilita a operação de um nó de servidor (204) em uma segunda função, e em que a parte imutável para a primeira imagem é a parte imutável para a segunda imagem.
- 4. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que proporcionar a segunda imagem no serviço central (202) compreende gerar (504) a segunda imagem no serviço central (202) aplicando uma atualização de software na primeira imagem, e em que o método ainda compreende: transferir (506) a segunda imagem para pelo menos um nó de servidor (204); e armazenar (508) a segunda imagem no pelo menos um nó de servidor (204) sem realizar uma instalação da segunda imagem.
- 5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que a segunda imagem é transferida para o pelo menos um nó de servidor (204) enquanto o pelo menos um nó de servidor (204) continua a executar a primeira imagem.
- 6. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que o pelo menos um nó de servidor (204) armazena em cache a primeira imagem e a segunda imagem, e em que o método ainda compreende comutar operação do pelo menos um nó de servidor (204) da segunda imagem para a primeira imagem.
- 7. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que aplicar uma primeira atualização de software na primeira imagem compreende aplicar a atualização de software em uma parte imutável da primeira imagem.Petição 870190002229, de 08/01/2019, pág. 26/313/3
- 8. Sistema, caracterizado pelo fato de que compreende:uma pluralidade de nós de servidor (204); e um serviço central (202) armazenado em um ou mais dispositivos de computação para criar uma imagem e transferir a imagem para uma pluralidade de nós de servidor (204), em que a imagem representa uma imagem de sistema operacional (OS) de um estado de OS ou uma imagem de aplicativo de um estado aplicado, de modo que o estado de OS e o estado de aplicativo sejam proporcionados separadamente, e em que o serviço central (202) é configurado para (a) construir uma parte imutável da imagem off-line no serviço central (202), em que a parte imutável representa um estado estático comum da pluralidade de nós de servidor (204) com um atualização aplicada; e (b) construir uma parte gravável da imagem off-line no serviço central (202), em que a parte gravável representa um estado específico de função particular a uma função hospedada na pluralidade de nós de servidor (204), em que a parte imutável e a parte gravável são construídas separadamente;(c) transferir a imagem a partir do serviço central (202) para um nó de servidor (204) objeto da pluralidade de nós de servidor (204), em que a imagem é armazenada no nó de servidor (204) objeto sem realizar uma instalação da imagem no mesmo; e (d) reiniciar o nó de servidor (204) objeto da imagem de modo que o estado específico de função atual do servidor objeto seja alterado para o estado específico de função da imagem.
- 9. Sistema, de acordo com a reivindicação 8, caracterizado pelo fato de que o serviço central (202) armazena uma pluralidade de imagens e gerencia implementação de imagens na pluralidade de nós de servidor (204).
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/859.469 | 2007-09-21 | ||
| US11/859,469 US9262366B2 (en) | 2007-09-21 | 2007-09-21 | Software deployment in large-scale networked systems |
| PCT/US2008/074231 WO2009042327A2 (en) | 2007-09-21 | 2008-08-25 | Software deployment in large-scale networked systems |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| BRPI0814845A2 BRPI0814845A2 (pt) | 2015-01-27 |
| BRPI0814845B1 true BRPI0814845B1 (pt) | 2019-05-07 |
Family
ID=40472900
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BRPI0814845-7A BRPI0814845B1 (pt) | 2007-09-21 | 2008-08-25 | Método de implementação de software em uma pluralidade de nós de servidor dentro de um sistema em rede de grande escala e sistema |
Country Status (10)
| Country | Link |
|---|---|
| US (1) | US9262366B2 (pt) |
| EP (1) | EP2191385B1 (pt) |
| JP (1) | JP5319685B2 (pt) |
| KR (1) | KR101569945B1 (pt) |
| CN (1) | CN101802807B (pt) |
| AU (1) | AU2008305449B2 (pt) |
| BR (1) | BRPI0814845B1 (pt) |
| CA (1) | CA2695469C (pt) |
| RU (1) | RU2495481C2 (pt) |
| WO (1) | WO2009042327A2 (pt) |
Families Citing this family (72)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8601467B2 (en) * | 2006-10-03 | 2013-12-03 | Salesforce.Com, Inc. | Methods and systems for upgrading and installing application packages to an application platform |
| US8239662B1 (en) * | 2008-03-20 | 2012-08-07 | Google Inc. | Network based operating system across devices |
| US9442850B1 (en) * | 2008-03-25 | 2016-09-13 | Blue Coat Systems, Inc. | Efficient directory refresh operations in wide area file systems |
| US8386757B1 (en) * | 2009-02-13 | 2013-02-26 | Unidesk Corporation | Managed desktop system |
| US9940208B2 (en) * | 2009-02-27 | 2018-04-10 | Red Hat, Inc. | Generating reverse installation file for network restoration |
| US8434090B2 (en) | 2009-04-02 | 2013-04-30 | Novell, Inc. | Optimally managing computing images for deployment |
| US8448219B2 (en) * | 2009-04-23 | 2013-05-21 | Novell, Inc. | Securely hosting workloads in virtual computing environments |
| US8375382B2 (en) * | 2009-05-13 | 2013-02-12 | International Business Machines Corporation | Enabling parallel websphere runtime versions |
| CN102082780B (zh) | 2009-11-30 | 2014-03-05 | 国际商业机器公司 | 安全验证的方法和装置 |
| US8789155B2 (en) * | 2009-12-07 | 2014-07-22 | Microsoft Corporation | Pure offline software appliance configuration |
| US8347071B2 (en) * | 2010-02-09 | 2013-01-01 | Microsoft Corporation | Converting virtual deployments to physical deployments to simplify management |
| US8549272B2 (en) * | 2010-02-10 | 2013-10-01 | Dell Products L.P. | Information handling system image management deployment of virtual machine images to physical information handling systems |
| US8762508B2 (en) * | 2010-03-11 | 2014-06-24 | Microsoft Corporation | Effectively managing configuration drift |
| US8533701B2 (en) * | 2010-03-15 | 2013-09-10 | Microsoft Corporation | Virtual machine image update service |
| US8898668B1 (en) * | 2010-03-31 | 2014-11-25 | Netapp, Inc. | Redeploying baseline virtual machine to update a child virtual machine by creating and swapping a virtual disk comprising a clone of the baseline virtual machine |
| US9015707B2 (en) | 2010-09-02 | 2015-04-21 | International Business Machines Corporation | Virtual machine rapid provisioning system |
| US8544007B2 (en) * | 2010-09-13 | 2013-09-24 | Microsoft Corporation | Customization, deployment and management of virtual and physical machine images in an enterprise system |
| CN102419753B (zh) * | 2010-09-28 | 2014-02-12 | 联想(北京)有限公司 | 信息处理设备、信息处理方法和信息处理系统 |
| US9069620B2 (en) * | 2010-10-20 | 2015-06-30 | Microsoft Technology Licensing, Llc | Creating and deploying service-ready virtual hard disks |
| JP5681465B2 (ja) * | 2010-12-02 | 2015-03-11 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体 |
| US20120159471A1 (en) * | 2010-12-21 | 2012-06-21 | Microsoft Corporation | Multi-machine deployment and configuration of multi-tiered applications |
| US9354852B2 (en) | 2010-12-23 | 2016-05-31 | Microsoft Technology Licensing, Llc | Satisfying application dependencies |
| WO2012090573A1 (en) * | 2010-12-28 | 2012-07-05 | Nec Corporation | Network virtualization system, physical node, and virtual interface identification method in virtual machine |
| US20120260246A1 (en) * | 2011-04-06 | 2012-10-11 | International Business Machines Corporation | Software application installation |
| US10075505B2 (en) | 2011-05-30 | 2018-09-11 | International Business Machines Corporation | Transmitting data including pieces of data |
| JP5566342B2 (ja) * | 2011-06-08 | 2014-08-06 | 株式会社エヌ・ティ・ティ・データ | コンピュータシステム、仮想マシンデータ配置方法およびプログラム |
| JP5175957B2 (ja) * | 2011-08-09 | 2013-04-03 | 株式会社東芝 | 情報処理装置及びクライアント管理方法 |
| US9654896B2 (en) * | 2011-09-22 | 2017-05-16 | International Business Machines Corporation | Smart online services presence in a cellular network |
| US20130111018A1 (en) * | 2011-10-28 | 2013-05-02 | International Business Machines Coporation | Passive monitoring of virtual systems using agent-less, offline indexing |
| CN103907091A (zh) | 2011-10-31 | 2014-07-02 | 惠普发展公司,有限责任合伙企业 | 跨网络的远程软件部署 |
| CN102611734A (zh) * | 2011-12-16 | 2012-07-25 | 广州市品高软件开发有限公司 | 一种基于云计算的镜像实例启动方法及装置 |
| US9116735B2 (en) * | 2012-03-07 | 2015-08-25 | Microsoft Technology Licensing, Llc | Offline provisioning of virtual machines |
| US8904113B2 (en) * | 2012-05-24 | 2014-12-02 | International Business Machines Corporation | Virtual machine exclusive caching |
| US20140068040A1 (en) * | 2012-09-04 | 2014-03-06 | Bank Of America Corporation | System for Enabling Server Maintenance Using Snapshots |
| US9244693B2 (en) | 2012-11-05 | 2016-01-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for booting multiple servers from snapshots of an operating system installation image while reducing access to unmodified portions of the installation image and reducing latencies between server ports |
| US9766912B1 (en) * | 2012-11-27 | 2017-09-19 | Amazon Technologies, Inc. | Virtual machine configuration |
| US8924351B2 (en) | 2012-12-14 | 2014-12-30 | Lsi Corporation | Method and apparatus to share a single storage drive across a large number of unique systems when data is highly redundant |
| US20140359213A1 (en) * | 2013-05-31 | 2014-12-04 | Microsoft Corporation | Differencing disk improved deployment of virtual machines |
| US20150143354A1 (en) * | 2013-11-19 | 2015-05-21 | Suresh Mathew | Zero downtime deployment and rollback |
| FR3019336B1 (fr) * | 2014-03-25 | 2016-03-25 | Bull Sas | Procede et dispositif de controle du changement de systeme d'exploitation dans des nœuds de service d'un calculateur haute performance |
| KR102227185B1 (ko) * | 2014-10-20 | 2021-03-11 | 건국대학교 산학협력단 | 분산 플랫폼의 자동 구축 방법 |
| CN104639614A (zh) * | 2015-01-05 | 2015-05-20 | 广州杰赛科技股份有限公司 | 一种软件分发方法、系统及服务器 |
| CN104618453A (zh) * | 2015-01-05 | 2015-05-13 | 广州杰赛科技股份有限公司 | 一种软件分发方法、系统及服务器 |
| EP3062223A1 (en) * | 2015-02-26 | 2016-08-31 | Agfa Healthcare | A system and method for installing software with reduced downtime |
| CN105007326A (zh) * | 2015-07-24 | 2015-10-28 | 中食安信(北京)信息咨询有限公司 | 一种远程动态部署系统及其方法 |
| KR102568985B1 (ko) * | 2016-06-22 | 2023-08-23 | 한국전자통신연구원 | 오프라인 가상 데스크탑 제공 장치, 오프라인 가상 데스크탑 단말 및 오프라인 가상 데스크탑 제공 방법 |
| US10606450B2 (en) * | 2016-06-24 | 2020-03-31 | Accenture Global Solutions Limited | Method and system for visual requirements and component reuse driven rapid application composition |
| CN106201502B (zh) * | 2016-07-06 | 2019-12-06 | 中国银联股份有限公司 | 一种跨主机应用程序部署方法及装置 |
| KR101835431B1 (ko) * | 2016-09-01 | 2018-03-09 | 주식회사 시큐아이 | 가상화 시스템에서 컨테이너의 데이터 업데이트 방법 및 그 장치 |
| US10146519B2 (en) * | 2016-09-20 | 2018-12-04 | Bluedata Software, Inc. | Generation and deployment of scripts for large scale processing framework services |
| US10747520B2 (en) | 2017-04-14 | 2020-08-18 | Microsoft Technology Licensing, Llc | Resource deployment using device analytics |
| CN107577475B (zh) * | 2017-08-22 | 2020-02-07 | 清华大学 | 一种数据中心集群系统的软件包管理方法及系统 |
| CN107483590A (zh) * | 2017-08-22 | 2017-12-15 | 郑州云海信息技术有限公司 | 云数据系统中云化管理系统和方法 |
| KR102019486B1 (ko) * | 2018-02-27 | 2019-09-06 | 주식회사 시큐아이 | 가상화 시스템에서 컨테이너 업데이트 방법 및 그 장치 |
| KR102019485B1 (ko) * | 2018-02-27 | 2019-09-06 | 주식회사 시큐아이 | 가상화 시스템에서 컨테이너 업데이트 방법 및 그 장치 |
| KR102019487B1 (ko) * | 2018-02-27 | 2019-11-04 | 주식회사 시큐아이 | 가상화 시스템에서 컨테이너 업데이트 방법 및 그 장치 |
| US10868853B2 (en) | 2018-06-08 | 2020-12-15 | Verizon Patent And Licensing Inc. | System and method for image file generation and management |
| US10990372B2 (en) * | 2018-09-20 | 2021-04-27 | Microsoft Technology Licensing, Llc | Updating an edge computing device |
| US11163551B1 (en) * | 2020-10-13 | 2021-11-02 | Argo AI, LLC | Systems and methods for improved smart infrastructure data transfer |
| US11385881B2 (en) * | 2020-10-31 | 2022-07-12 | Nutanix, Inc. | State-driven virtualization system imaging |
| US12063713B2 (en) * | 2021-05-19 | 2024-08-13 | Snap Inc. | System of mobile device operating system and apps delivery service |
| US12265812B2 (en) * | 2021-06-29 | 2025-04-01 | EMC IP Holding Company LLC | Immutable image for deployment to edge devices |
| US12019522B2 (en) | 2022-01-20 | 2024-06-25 | Pure Storage, Inc. | Container recovery layer prioritization |
| US12175135B2 (en) | 2022-01-20 | 2024-12-24 | Pure Storage, Inc. | Containers as volumes in a container-aware storage system |
| US12321449B2 (en) | 2022-01-20 | 2025-06-03 | Pure Storage, Inc. | Storage system based threat detection and remediation for containers |
| US12236103B2 (en) | 2022-01-20 | 2025-02-25 | Pure Storage, Inc. | Storage system based monitoring and remediation for containers |
| US12386556B2 (en) | 2022-01-20 | 2025-08-12 | Pure Storage, Inc. | Using data volumes to store container images |
| US12147313B2 (en) | 2022-01-20 | 2024-11-19 | Pure Storage, Inc. | Container recovery using volumes comprising container images |
| US12079515B2 (en) | 2022-01-20 | 2024-09-03 | Pure Storage, Inc. | Immutable nodes in a container system |
| US11928452B2 (en) * | 2022-02-03 | 2024-03-12 | Red Hat, Inc. | Reducing the size of image files usable for deploying software in computing environments |
| FR3146749A1 (fr) * | 2023-03-14 | 2024-09-20 | Psa Automobiles Sa | Gestion optimisée de la mise à jour à distance d’un logiciel exécuté par un appareil embarqué à bord d’un véhicule automobile |
| US12423079B2 (en) * | 2023-08-21 | 2025-09-23 | Jpmorgan Chase Bank, N.A. | Deploying immutable image software onto branch retail devices |
Family Cites Families (34)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5291595A (en) * | 1989-05-22 | 1994-03-01 | Martins Augusto B | Batch/application program processing |
| US5452454A (en) * | 1991-12-10 | 1995-09-19 | Digital Equipment Corporation | Generic remote boot for networked workstations by creating local bootable code image |
| US5842811A (en) * | 1997-02-21 | 1998-12-01 | Johnson; David B. | Confined space manhole sign system |
| US6496839B2 (en) * | 1998-06-12 | 2002-12-17 | Microsoft Corporation | Persistent names for logical volumes |
| US6141010A (en) | 1998-07-17 | 2000-10-31 | B. E. Technology, Llc | Computer interface method and apparatus with targeted advertising |
| US7000230B1 (en) * | 2000-06-21 | 2006-02-14 | Microsoft Corporation | Network-based software extensions |
| US7051326B2 (en) * | 2000-12-13 | 2006-05-23 | International Business Machines Corporation | Code image distribution in a multi-node network of processors |
| US7213065B2 (en) | 2001-11-08 | 2007-05-01 | Racemi, Inc. | System and method for dynamic server allocation and provisioning |
| KR100391952B1 (ko) | 2001-11-21 | 2003-07-23 | 최백준 | Aip시스템에서 서버측 어플리케이션을 이용한 직접파일 실행 방법 |
| US20030121024A1 (en) * | 2001-12-13 | 2003-06-26 | Microsoft Corporation | System and method for building a runtime image from components of a software program |
| US7664984B2 (en) * | 2002-10-09 | 2010-02-16 | Xpoint Technologies, Inc. | Method and system for updating a software image |
| US8336044B2 (en) | 2002-10-09 | 2012-12-18 | Rpx Corporation | Method and system for deploying a software image |
| US7503043B2 (en) * | 2003-09-05 | 2009-03-10 | International Business Machines Corporation | Method of building dynamic installation packages using a declarative authoring tool |
| CA2547630A1 (en) * | 2003-11-26 | 2005-06-16 | Hewlett-Packard Development Company, L.P. | System and method for management and installation of operating system images for computers |
| US7583457B2 (en) * | 2004-03-22 | 2009-09-01 | Microsoft Corporation | RAM disk boot of optical media image |
| US8190714B2 (en) * | 2004-04-15 | 2012-05-29 | Raytheon Company | System and method for computer cluster virtualization using dynamic boot images and virtual disk |
| JP4353003B2 (ja) * | 2004-06-25 | 2009-10-28 | 日本電気株式会社 | インストール方式およびインストール方法ならびに配布装置およびそのプログラム |
| US7610477B2 (en) | 2004-09-15 | 2009-10-27 | Microsoft Corporation | Deploying and receiving software over a network susceptible to malicious communication |
| KR100471420B1 (ko) | 2004-09-17 | 2005-03-14 | 심영보 | 관리대상 컴퓨터에 대한 소프트웨어 원격설치 방법 |
| US7516206B2 (en) * | 2005-01-28 | 2009-04-07 | Cassatt Corporation | Management of software images for computing nodes of a distributed computing system |
| US8387037B2 (en) * | 2005-01-28 | 2013-02-26 | Ca, Inc. | Updating software images associated with a distributed computing system |
| US20060184937A1 (en) * | 2005-02-11 | 2006-08-17 | Timothy Abels | System and method for centralized software management in virtual machines |
| US8370819B2 (en) * | 2005-03-25 | 2013-02-05 | Microsoft Corporation | Mechanism to store information describing a virtual machine in a virtual disk image |
| JP4863154B2 (ja) * | 2005-03-29 | 2012-01-25 | 日本電気株式会社 | 起動イメージ提供システム及びその動作方法、ブートノード装置、ブートサーバ装置並びにその動作プログラム |
| US7653894B2 (en) | 2005-05-04 | 2010-01-26 | International Business Machines Corporation | Method and apparatus for classifying and modeling operating system image for data center management |
| US20070006205A1 (en) | 2005-05-18 | 2007-01-04 | Michael Kennedy | System for virtual image migration |
| US7574491B2 (en) * | 2005-07-29 | 2009-08-11 | Scalent Systems | Virtual data center for network resource management |
| EP1934794B1 (en) * | 2005-09-15 | 2017-08-02 | CA, Inc. | Apparatus, method and system for rapid delivery of distributed applications |
| US8745124B2 (en) * | 2005-10-31 | 2014-06-03 | Ca, Inc. | Extensible power control for an autonomically controlled distributed computing system |
| US7764683B2 (en) | 2005-12-16 | 2010-07-27 | Oracle America, Inc. | Reliable multicast operating system (OS) provisioning |
| US20080052702A1 (en) * | 2006-07-07 | 2008-02-28 | Inventec Multimedia & Telecom Corporation | Firmware update method and system utilizing digital broadcasting system |
| JP4900805B2 (ja) * | 2007-02-21 | 2012-03-21 | 株式会社日立製作所 | Osイメージのデプロイメントマシン及び方法 |
| US20100088699A1 (en) * | 2007-03-27 | 2010-04-08 | Takayuki Sasaki | Virtual machine operation system, virtual machine operation method and program |
| US8966474B2 (en) * | 2007-04-30 | 2015-02-24 | Hewlett-Packard Development Company, L.P. | Managing virtual machines using shared image |
-
2007
- 2007-09-21 US US11/859,469 patent/US9262366B2/en active Active
-
2008
- 2008-08-25 JP JP2010525873A patent/JP5319685B2/ja not_active Expired - Fee Related
- 2008-08-25 CN CN2008801081969A patent/CN101802807B/zh not_active Expired - Fee Related
- 2008-08-25 CA CA2695469A patent/CA2695469C/en active Active
- 2008-08-25 EP EP08798639.4A patent/EP2191385B1/en not_active Not-in-force
- 2008-08-25 RU RU2010110588/08A patent/RU2495481C2/ru active
- 2008-08-25 AU AU2008305449A patent/AU2008305449B2/en not_active Ceased
- 2008-08-25 KR KR1020107005738A patent/KR101569945B1/ko not_active Expired - Fee Related
- 2008-08-25 BR BRPI0814845-7A patent/BRPI0814845B1/pt not_active IP Right Cessation
- 2008-08-25 WO PCT/US2008/074231 patent/WO2009042327A2/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| US20090083404A1 (en) | 2009-03-26 |
| BRPI0814845A2 (pt) | 2015-01-27 |
| CN101802807B (zh) | 2012-10-10 |
| EP2191385A2 (en) | 2010-06-02 |
| RU2495481C2 (ru) | 2013-10-10 |
| AU2008305449B2 (en) | 2012-08-09 |
| JP5319685B2 (ja) | 2013-10-16 |
| US9262366B2 (en) | 2016-02-16 |
| CA2695469C (en) | 2017-04-11 |
| RU2010110588A (ru) | 2011-09-27 |
| CN101802807A (zh) | 2010-08-11 |
| AU2008305449A1 (en) | 2009-04-02 |
| CA2695469A1 (en) | 2009-04-02 |
| EP2191385A4 (en) | 2012-04-04 |
| EP2191385B1 (en) | 2016-11-16 |
| KR20100068392A (ko) | 2010-06-23 |
| WO2009042327A3 (en) | 2009-05-22 |
| JP2010541044A (ja) | 2010-12-24 |
| WO2009042327A2 (en) | 2009-04-02 |
| KR101569945B1 (ko) | 2015-11-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| BRPI0814845B1 (pt) | Método de implementação de software em uma pluralidade de nós de servidor dentro de um sistema em rede de grande escala e sistema | |
| US10868853B2 (en) | System and method for image file generation and management | |
| US10289400B2 (en) | Outdated resource handling and multiple-version upgrade of cloud software | |
| US9176744B2 (en) | Quickly provisioning a virtual machine by identifying a path to a differential file during pre-boot | |
| US20140143389A1 (en) | System and method for creating or reconfiguring a virtual server image for cloud deployment | |
| US8205194B2 (en) | Updating offline virtual machines or VM images | |
| US8225037B2 (en) | Apparatus and method for incremental package deployment | |
| US11327738B2 (en) | Software and firmware updates in a combined single pane of glass interface | |
| US11340881B2 (en) | Validation of desired software state image for hardware incompatibilities | |
| US11669325B2 (en) | Desired state model for managing lifecycle of virtualization software | |
| US20200364040A1 (en) | System and Method for Restoring a Previously Functional Firmware Image on a Non-Volatile Dual Inline Memory Module | |
| US11269609B2 (en) | Desired state model for managing lifecycle of virtualization software | |
| US20090271602A1 (en) | Method for Recovering Data Processing System Failures | |
| US20220179633A1 (en) | Desired state model for managing lifecycle of virtualization software installed in heterogeneous cluster of hosts | |
| HK1139217B (en) | Software deployment in large-scale networked systems | |
| HK1139217A (en) | Software deployment in large-scale networked systems | |
| US20220179632A1 (en) | Managing lifecycle of solutions in virtualization software installed in a cluster of hosts | |
| US7970740B1 (en) | Automated service configuration snapshots and fallback | |
| US10185574B2 (en) | Live imaging of a device | |
| US20210311716A1 (en) | Deploying virtualization software in a remote cluster | |
| CN116257291A (zh) | 一种基于国产cpu平台的操作系统快速启动和部署方法 | |
| Vainio | WDS Server for Hybrid Delivery of Windows and Linux Operating Systems | |
| Sally | Booting the Board |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| B25A | Requested transfer of rights approved |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US) |
|
| B06T | Formal requirements before examination [chapter 6.20 patent gazette] | ||
| B06F | Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette] | ||
| B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
| B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 07/05/2019, OBSERVADAS AS CONDICOES LEGAIS. (CO) 10 (DEZ) ANOS CONTADOS A PARTIR DE 07/05/2019, OBSERVADAS AS CONDICOES LEGAIS |
|
| B21F | Lapse acc. art. 78, item iv - on non-payment of the annual fees in time |
Free format text: REFERENTE A 17A ANUIDADE. |
|
| B24J | Lapse because of non-payment of annual fees (definitively: art 78 iv lpi, resolution 113/2013 art. 12) |
Free format text: EM VIRTUDE DA EXTINCAO PUBLICADA NA RPI 2844 DE 08-07-2025 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDA A EXTINCAO DA PATENTE E SEUS CERTIFICADOS, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013. |