BR102015015928A2 - método e dispositivo para execução de modo síncrono um aplicativo em um ambiente de alta disponibilidade - Google Patents

método e dispositivo para execução de modo síncrono um aplicativo em um ambiente de alta disponibilidade Download PDF

Info

Publication number
BR102015015928A2
BR102015015928A2 BR102015015928A BR102015015928A BR102015015928A2 BR 102015015928 A2 BR102015015928 A2 BR 102015015928A2 BR 102015015928 A BR102015015928 A BR 102015015928A BR 102015015928 A BR102015015928 A BR 102015015928A BR 102015015928 A2 BR102015015928 A2 BR 102015015928A2
Authority
BR
Brazil
Prior art keywords
partition
execution
primary
module
guide
Prior art date
Application number
BR102015015928A
Other languages
English (en)
Inventor
Georges Lecourtier
Original Assignee
Bull Sas
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bull Sas filed Critical Bull Sas
Publication of BR102015015928A2 publication Critical patent/BR102015015928A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1691Temporal synchronisation or re-synchronisation of redundant processing components using a quantum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2015Redundant power supplies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Hardware Redundancy (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

método e dispositivo para execução de modo síncrono um aplicativo em um ambiente de alta disponibilidade. a presente invenção refere-se essencialmente a um método para executar de modo síncrono um aplicativo em um ambiente de alta disponibilidade que inclui uma pluralidade de módulos de cálculo interconectados por uma rede de banda larga de velocidade muito alta, distinguida pelo fato de que inclui as seguintes etapas: - configurar (2000) a pluralidade de módulos em uma pluralidade de partições que inclui pelo menos: ? duas partições de execução, uma primária e uma secundária; ? uma partição de monitoramento; - executar (2100) o aplicativo em cada partição de execução, sendo que as entradas/saídas processadas pela partição primária são transmitidas à partição de execução secundária através da partição de monitoramento; - sincronizar (2200) as execuções através de mudanças de contexto de microprocessador de exploração; - transmitir (2300) um sinal de erro catastrófico à partição de monitoramento; - continuar (2500) a execução alternando-se para um modo degradado, sendo que a execução continua em uma única partição.

Description

Relatório Descritivo da Patente de Invenção para "MÉTO- DO E DISPOSITIVO PARA EXECUÇÃO DE MODO SÍNCRONO UM APLICATIVO EM UM AMBIENTE DE ALTA DISPONIBILIDADE".
CAMPO TÉCNICO DA INVENÇÃO [001] O objetivo da presente invenção é fornecer um método e um dispositivo para executar de um modo síncrono um aplicativo em ambientes de alta disponibilidade. O propósito da presente invenção é principalmente aprimorar a resiliência do ambiente. A resiliência é de- finida como a capacidade de um sistema para sobreviver a diversas falhas e permitir que o mesmo seja reparado sem causar uma inter- rupção de serviço. [002] O campo da invenção é, de modo geral, o de processamen- to de informações ou sistemas de comunicação e, mais particularmen- te, o de sistemas de produção de computador com o uso de servidores de alta disponibilidade.
ANTECEDENTES TECNOLÓGICOS DA INVENÇÃO [003] Os sistemas de computador conhecidos são todos subme- tidos a falhas com base em hardware ou software que afetam sua ope- ração geral em momentos aleatórios. Quando um de tais sistemas ge- rencia funções críticas com relação à vida e segurança de proprieda- de, o comportamento do sistema eletrônico na presença de uma falha se torna um fator decisivo da confiabilidade geral buscada pelos usuá- rios. Tal comportamento irá definir a classe de resiliência do sistema. A mesma depende completamente das escolhas técnicas realizadas du- rante o projeto do sistema devido ao fato de que tem por base redun- dâncias no nível de hardware que sem implica em algum custo. A classe de resiliência é, portanto, o resultado de uma troca entre a mi- nimização do custo e a maximização da disponibilidade. [004] Diversos tipos de soluções foram desenvolvidos para me- lhor satisfazer as exigências de resiliência em termos de hardware.
Quatro classes de falhas de componente de hardware e três classes para falhas de componente de software podem ser consideradas exemplos significativos de eventos que afetam a operação de um computador. [005] As quatro classes de componentes de hardware examina- dos são as memórias, circuitos de entrada-saída, fontes de alimenta- ção e componentes de resfriamento e processadores.
MEMÓRIAS [006] As memórias estão dentre os componentes cuja confiabili- dade bruta é a mais insuficiente, devido à miniaturização muito alta dos elementos de memória que, assim, se tornam muito sensíveis a defeitos de fabricação e distúrbios de várias origens que afetam seu ambiente. Por sorte, esses problemas foram investigados durante mui- to tempo e diversas medidas como, por exemplo, códigos de correção de erro, visam possibilitar que as memórias ofereçam uma confiabili- dade operacional aceitável.
ENTRADAS-SAÍDAS [007] As falhas de entrada-saída são caracterizadas por um ou mais erros detectados em um protocolo ou em um pacote de dados que é trocado entre dois sistemas. A vasta maioria de tais erros tem por base o ambiente eletromagnético da transmissão (ruídos, etc.) e o problema é solucionado por uma nova tentativa da transação de en- trada-saída. Nos casos em que o enlace é fisicamente interrompido por uma falha de hardware de circuito (cabo, conector, laser, etc.), a resiliência é, em geral, alimentada por um canal de redundância de entrada-saída que oferece uma passagem alternativa aos dados, in- dependentemente da possibilidade de tal passagem é direta entre am- bos os sistemas ou retransmitido através de uma rede de computador. FONTES DE ALIMENTAÇÃO E COMPONENTES DE RESFRIAMEN- TO [008] Em um sistema de alta disponibilidade, as fontes de grade de alimentação e ventiladores ou bombas hidráulicas são sempre re- dundantes. Dessa forma, uma falha de qualquer um dentre tais com- ponentes não afeta os aplicativos do usuário. O reparo é realizado através de um intercâmbio da fonte de alimentação ou dispositivo de resfriamento. [009] Por outro lado, as fontes de alimentação que têm o nível mais baixo, também denominadas POL "Point Of Load" (Ponto De Carga), que fornecem potência diretamente para os processadores, memórias ou circuitos de entrada-saída, não são em geral redundan- tes e são soldadas à placa-mãe por motivos de custo, espaço geral e desempenho. O desligamento de tais tipos de componentes é, portan- to, fatal para os componentes funcionais diretamente fixados à mes- ma. As falhas de POL são, portanto, similares às falhas de componen- tes funcionais.
PROCESSADORES [0010] Os processadores estão em uma classe separada devido ao fato de que suas falhas têm múltiplas origens e precisam ser expli- cadas. [0011] Visto que os processadores de tais sistemas críticos geral- mente suportam uma arquitetura multinúcleo, essa hipótese será pre- sumida. [0012] Para garantir a resiliência dos processadores, novamente, a redundância de hardware é usada. Neste documento, o hardware é o suporte direto para executar um software e aplicativos do sistema. A duplicação de um processador de aplicativo gera a necessidade de sincronização do processador de primeiro plano, que interage com os usuários e o(s) processador(es) de plano de fundo que irão substituir, instantaneamente, o processador de primeiro plano no momento em que o mesmo experimentar uma falha. [0013] Na técnica anterior, e para os processadores suficiente- mente simples, uma solução foi triplicar, em uma mesma placa ou em um mesmo circuito integrado, as funções de cálculo e adicionar um circuito para comparar os resultados com base nos estados da memó- ria e barramentos comuns de entrada-saída. A largura de tais barra- mentos pode alcançar 128 bits de dados e 32 bits de endereçamento. À escala de cada ciclo de máquina, tipicamente entre 1 e 10 ns, o cir- cuito de comparação entrega uma situação de coerência com base em um princípio de voto de maioria: o estado adequado é aquele que está presente em pelo menos dois dentre os três processadores. Assim que um erro foi detectado no processador de primeiro plano ou que o cir- cuito de comparação indicou que o barramento de tal processador es- tava diferente do de ambos os outros barramentos, o processador de primeiro plano foi desligado e a execução continuou no primeiro pro- cessador de plano de fundo. As possíveis falhas dos processadores de plano de fundo foram deferidas e geraram uma passagem para o mo- do degradado, de modo a esperar pelo intercâmbio de placa de pro- cessador. Devido ao fato de que o intercâmbio de tal placa implica em um desligamento de serviço, o aplicativo precisou ser movido antes para um sistema de apoio equivalentes que, em princípio, não deve ter nenhum elemento de hardware em comum com o sistema principal. A duração de tal recuperação pode afetar dramaticamente a disponibili- dade de serviço se o volume das informações a serem movidas for significativo. Se fosse desejado que tal restrição fosse dispensado, três placas de processador distintas precisariam ser fornecidas na mesma cabine ou no mesmo quadro, mas infelizmente, o circuito para comparar os resultados muito rapidamente geraria uma limitação de desempenho devido à taxa de propagação restrita dos sinais elétricos ou ópticos. Portanto, esse modo é tanto dispendioso quanto insuficien- temente eficaz, acima de tudo se a implantação de soquetes multinú- cleo-padrão, que não incorpora as funções de comparação de estados de barramentos fora do soquete for contemplada. [0014] Dessa forma, na técnica anterior, as soluções para o pro- blema de alta disponibilidade não cobrem as falhas dos processadores em si sem uma degradação de desempenho significativa. [0015] As três classes de componentes de software em que os problemas de confiabilidade se baseiam são as seções críticas dos hipervisores e os sistemas operacionais, os defeitos das unidades de entrada-saída e do firmware embutido no hardware e os defeitos dos aplicativos.
SEÇÕES CRÍTICAS [0016] Um recurso crítico é um conjunto de dados executáveis ou instruções protegidas por um travamento de software. Uma seção crí- tica é a série de instruções às quais um núcleo de execução recorre para usar um recurso crítico. Sabe-se bem que o travamento de sof- tware que protege contra execuções simultâneas de uma mesma se- ção crítica por mais de um núcleo usa instruções especiais de tipo "Teste-E-Configuração" que implanta um dispositivo de hardware es- pecífico em processadores e controladores da memória cache. Na sa- ída de uma seção crítica, a operação de processo no núcleo de exe- cução em questão precisa liberar o recurso crítico através da substitui- ção do travamento de software em um, assim chamado, estado aberto. [0017] É comum em programas multitarefa que opera em sistemas do tipo de multiprocessador simétrico, também chamado de SMP "Mul- tiPorcessamento Simétrico", que tem diversos núcleos e compartilha a mesma memória, criar bloqueios, devido a um gerenciamento errôneo dos recursos críticos. Por sorte, os sistemas operacionais são ampla- mente livres de tais bloqueios devido aos testes intensivos, porém, os aplicativos de usuário são frequentemente afetados por tais proble- mas. Portanto, os sistemas operacionais devem ter a capacidade para liberar os recursos bloqueados por um bloqueio de usuário através do pré-esvaziamento do núcleo e suspensão da execução do processo com falha. Entretanto, se um hipervisor criar um bloqueio por conta própria, nenhum processo de software poderá desbloquear o mesmo e tal defeito é similar a uma falha de hardware que pode afetar os dados de usuário.
UNIDADES E FIRMWARE DE ENTRADA-SAÍDA [0018] As unidades e firmware de entrada-saída são caracteriza- dos por seu contato próximo com o hardware e seu alto nível de otimi- zação em relação ao desempenho em tempo real. Cada evolução do hardware pode exigir uma atualização de seu software se o mesmo não for embutido em um estado sólido em placas eletrônicas, porém, devido ao fato de que as situações de defeito ocorrem apenas em condições muito raras, é comum executar um firmware ou unidade em uma versão obsoleta.
DEFEITOS DE APLICATIVO [0019] Os aplicativos gerenciados por qualquer sistema operacio- nal, OS, são submetidos aos procedimentos de tal OS e são geralmen- te mortos se forem para um bloqueio com o uso de 100% da potência de um núcleo de processador. Os outros defeitos, que não bloqueiam um recurso crítico do sistema, correspondem a erros lógicos do aplica- tivo que afeta a precisão dos resultados e não são relacionados à pre- sente invenção. [0020] Se um hipervisor estiver presente no sistema, o mesmo atua como um "super-OS" e o(s) OS(s) que opera(m) mediante tal hi- pervisor, chamado de OS convidado, são isolados do hardware e tam- bém um do outro. Nesse caso, é possível dizer que um OS convidado é similar a um aplicativo sub-OS. Em particular, o hipervisor pode "ma- tar" (de fato um processo se diz morto), redefinir ou mover um OS completo com seus programas de aplicativo de um sistema para outro através de recursos de rede. O tempo de movimento, também chama- do de migração, depende, obviamente, da largura de banda de tal re- de. [0021] Visando a clareza dessa revelação, as falhas com base em software não serão extensamente discutidas, apesar de poderem ser uma causa principal de falha. O reparo de tais falhas de software tem por base a instalação de novas versões de software ou firmware. Nor- malmente, se o sistema for bem projetado, tais instalações podem ser realizadas remotamente, sem intervenção física sobre o hardware. O caso raro em que uma falha de software implica em um acesso direto é o de um defeito no firmware de inicialização, que está no código que é usado para atualizar o outro software ou firmware. O mesmo geral- mente é processado por uma versão de código duplo: a assim chama- da, versão de planta e a assim chamada versão de usuário. A única versão que segue as evoluções de manutenção é a versão de usuário. A versão de planta é protegida quanto à escrita e, portanto, possibilita que a configuração de sistema seja regenerada a qualquer momento.
Portanto, as mesmas irão permanecer falhas da memória da inicializa- ção em si, que são uma parte dos casos solucionado na análise a se- guir.
DESCRIÇÃO GERAL DA INVENÇÃO [0022] A presente invenção refere-se, em particular, à solução dos problemas apresentados. [0023] De fato, a invenção almeja minimizar o tempo de indisponi- bilidade dos servidores. [0024] Para essa finalidade, a invenção fornece um método para executar sincronamente um aplicativo em um ambiente de alta dispo- nibilidade que inclui uma pluralidade de módulos de cálculo interconec- tados por uma rede de banda larga de velocidade muito alta caracteri- zada por incluir as seguintes etapas de: [0025] - configurar a pluralidade de módulos em uma pluralidade de partições que inclui pelo menos: [0026] o duas partições de execução que incluem nós idênticos em números e em características, uma partição de execução primária e uma partição de execução secundária; [0027] o uma partição de monitoramento que inclui pelo menos um módulo; [0028] - executar o aplicativo em cada partição de execução, sen- do que entradas-saídas processadas pela partição primária são trans- mitidas para a partição de execução secundária através da partição de monitoramento que registra essas entradas-saídas como transações distribuídas entre a partição de execução primária e a partição de exe- cução secundária, [0029] - sincronizar as execuções na partição primária e na parti- ção secundária por transformações de contexto de microprocessador de numeração, sendo que um desvio no tempo correspondente à dife- rença entre os números de contexto atuais, nas partições de execução primária e secundária, tem de ser menor que um dado valor; [0030] - transmitir um sinal de erro catastrófico para a partição de monitoramento, sendo que o dito sinal é característico de uma falha em um módulo de uma partição de execução; [0031] - continuar a execução alternando-se para um denominado modo degradado, sendo que a execução continua em uma única parti- ção e, no caso de uma falha de um módulo da partição de execução primária, realizar uma operação de transformação, sendo que a se- gunda partição de execução se torna a nova partição de execução primária. [0032] O método de acordo com a invenção pode incluir, além das etapas primárias recém-mencionadas no parágrafo precedente, uma ou mais características adicionais a partir das seguintes: [0033] - uma interrupção é forçada em uma frequência predeter- minada para forçar uma alteração de contexto de microprocessador e, assim, realizar uma sincronização; [0034] - a frequência predeterminada é na ordem de 20 Hz, sendo que a dessincronização é, assim, limitada em 50 ms; [0035] - o aplicativo é virtualizado através de um hipervisor; [0036] - as máquinas virtuais são idênticas na partição de execu- ção primária e na partição de execução secundária, sendo que as má- quinas virtuais são executadas em um único núcleo de processador; [0037] - a etapa de configuração da pluralidade de módulos em uma pluralidade de partições é realizada dinamicamente sem desliga- mento de serviço do ambiente; [0038] - a indisponibilidade aparente do ambiente é igual à dessin- cronização entre a execução do aplicativo nas partições primária e se- cundária, sendo que a indisponibilidade está, assim, limitada pela sin- cronização das execuções. [0039] Adicionalmente, a invenção fornece um dispositivo de ar- mazenamento digital que inclui um arquivo que corresponde a códigos de instrução que implantam o método de acordo com a invenção [0040] A invenção também fornece um dispositivo que implanta o método de acordo com a invenção. [0041] A invenção também fornece um dispositivo que implanta o método de acordo com a invenção e que inclui uma possível combina- ção das seguintes características: [0042] - o dispositivo inclui uma pluralidade de módulos inseridos em um quadro caracterizado em que uma placa de fundo de um módu- lo inclui guias de inserção fixadas à placa de fundo, sendo que essas guias são de dois tipos: [0043] o um primeiro tipo, para assegurar uma guia e proteção fi- nais de um conector da placa de fundo, [0044] o um segundo tipo que tem um formato cilíndrico de extre- midade cônica para assegurar uma guia inicial, [0045] sendo que cada guia tem meios correspondentes no qua- dro; [0046] - o primeiro tipo tem um formato cilíndrico de extremidade cônica, sendo que o comprimento do mesmo é menor que aquele do segundo tipo na ordem de um centímetro; [0047] - o primeiro tipo é uma parte rebaixada que pode cooperar com um formato cilíndrico de extremidade cônica; [0048] - pelo menos uma guia do segundo tipo é fixada rigidamen- te à placa de fundo; [0049] - pelo menos uma guia do primeiro tipo é fixada de forma frouxa à placa de fundo; [0050] - pelo menos uma guia cilíndrica que coopera com a guia do primeiro tipo é fixada de forma frouxa ao quadro; [0051] - a placa de fundo inclui quatro guias do primeiro tipo e du- as guias do segundo tipo; [0052] - as guias são distribuídas simetricamente em relação aos eixos geométricos de simetria da placa de fundo. [0053] A invenção e diferentes aplicativos da mesma serão melhor compreendidos após a leitura da descrição a seguir e após examinar as figuras anexas.
DESCRIÇÃO DAS FIGURAS [0054] As mesmas são apresentadas apenas a título de indicação e não são, de forma alguma, destinadas a propósitos de limitação da invenção. [0055] Em que: [0056] A Figura 1 é uma arquitetura lógica que permite que o mé- todo de acordo com a invenção seja implantado; [0057] A Figura 2 é uma representação de diferentes etapas do método de acordo com a invenção; [0058] A Figura 3 é uma ilustração de um elemento de um disposi- tivo que implanta a invenção; [0059] A Figura 4 é uma ilustração de um bloco conector com um flutuador no lado de módulo; [0060] A Figura 5 é uma ilustração de uma implantação da inven- ção com um flutuador no lado de quadro. DESCRIÇÃO DETALHADA DE UM EXEMPLO QUE ILUSTRA A IN- VENÇÃO [0061] A Figura 1 mostra uma arquitetura lógica exemplificadora que permite que o método de acordo com a invenção seja implantado. [0062] Um modo para transformar essa arquitetura virtual em uma arquitetura de hardware conhecida será descrito posteriormente. [0063] A Figura 1 mostra duas partições idênticas, uma primeira partição A e uma segunda partição B, em que cada uma inclui um hi- pervisor H e uma máquina virtual VM. [0064] Um hipervisor, também chamado de mecanismo de virtuali- zação, é um conjunto de códigos de instrução que emula, para uma máquina virtual, uma arquitetura de hardware. [0065] Dentre os mais conhecidos, pode-se mencionar KVM, HyperV e CMWare. [0066] Uma máquina virtual, chamada de VM, é compreendida principalmente de um arquivo de configuração que descreve recursos (microprocessador, disco, periféricos de entrada e saída, etc.) que de- vem ser virtualizados por um hipervisor. [0067] Adicionalmente, cada uma das partições A e B inclui meios de armazenamento M em que os códigos de instrução que correspon- dem a um hipervisor de acordo com a invenção e arquivos que corres- pondem a máquinas virtuais (configuração, status, em particular, a si- tuação do processador, disco virtual, etc.) são gravados. [0068] A Figura 1 mostra periféricos de entrada e saída l/O conec- tados à primeira partição A através do hipervisor H_A1 da primeira partição A. As partições A e B são idênticas, por conseguinte, a Figura 1 mostra que os periféricos de entrada e saída l/O podem ser conec- tados à segunda partição B através do hipervisor H_B1 da segunda partição.Essa possibilidade é uma conexão potencial que é estabele- cida sob algumas circunstâncias explicadas posteriormente. [0069] Uma dessas duas máquinas virtuais das partições em exe- cução é definida, por exemplo, no arquivo de configuração, como um espelho da outra. [0070] No presente exemplo, é a partição secundária que é consi- derada um espelho. [0071] A Figura 1 também mostra uma terceira partição C incluin- do uma máquina virtual VM_C1 e meios de armazenamento M_C. [0072] A máquina virtual VM_C1 da terceira partição C registra, em um arquivo, da entradas e saídas da primeira partição A e transmi- te as mesmas para a segunda partição B. Além disso, a máquina vir- tual VM_C1 da terceira partição rastreia, com números, alterações de contexto (Figura 1 CdC) do hipervisor H_A1 da primeira partição A e do hipervisor H_B1 da segunda partição a fim de sincronizar máquinas virtuais. [0073] Em uma modalidade preferencial de acordo com a inven- ção, antes de dar partida nas máquinas virtuais, a máquina virtual da segunda partição é obtida mediante a cópia de máquina virtual da pri- meira partição, o que garante máquinas virtuais sincronizadas na par- tida. [0074] Quando a ação é alocada em um hardware ou dispositivo virtual, essa ação é, de fato, realizada por um microprocessador do dispositivo controlado por códigos de instrução gravados em uma me- mória do dispositivo. [0075] Se uma ação estiver alocada em um aplicativo, essa ação é, de fato, realizada por um microprocessador do dispositivo em uma memória em que os códigos de instrução que correspondem ao aplica- tivo são gravados. [0076] A Figura 2 mostra etapas do método de acordo com a in- venção. [0077] Em particular, a Figura 2 mostra uma etapa 2000 de confi- guração de uma pluralidade de módulos formando uma pluralidade de partições incluindo pelo menos: [0078] - duas partições em execução incluindo nodes idênticos em número e características, uma partição em execução primária e uma partição em execução secundária; no presente exemplo, a partição em execução primária é a primeira partição A, a partição em execução se- cundária é a segunda partição B; [0079] - uma partição de monitoramento incluindo pelo menos um módulo; no presente exemplo, a partição de monitoramento é a tercei- ra partição C. [0080] Em uma modalidade, em cada partição em execução, são instalados um hipervisor e uma máquina virtual, máquina na qual deve ser instalado o aplicativo a ser executado. [0081] Durante uma etapa 2100, após a etapa de configuração 2000, o mesmo aplicativo é executado na partição em execução pri- mária A e na partição em execução secundária B. Essa é a etapa de execução. As entradas e saídas processadas pela partição em execu- ção primária A são transmitidas para a partição em execução secundá- ria B através da partição de monitoramento C que registra essas en- tradas e saídas como transações distribuídas entre a partição em exe- cução primária A e a partição em execução secundária B. [0082] A transação é referida como distribuída devido a ofato de ser válida apenas se as operações tiverem sido encerradas de modo apropriado em ambas as partições A e B. [0083] Uma etapa de sincronização 2200 garante uma sincroniza- ção das execuções entre a partição primária A e a partição secundária B por meio da numeração das mudanças de contexto do microproces- sador realizada pela partição de monitoramento C. Um deslocamento de tempo, que corresponde à diferença entre os números atuais de contexto nas partições de execução primária A e secundária B, deve ser mantido mais baixo que um valor predeterminado, por exemplo, 50 ms. Em uma alternativa, esse desvio é avaliado por exemplo, pela di- ferença entre números de mudança de contexto. Nesse caso, essa não é realmente uma diferença de tempo, mas uma diferença entre números que pertencem a duas sequências que representam a mes- ma série de eventos, um evento que é no presente contexto uma mu- dança de contexto. [0084] As etapas de execução e sincronização são executadas em paralelo, isto é simultaneamente. [0085] Em cada mudança de contexto, por exemplo, o hipervisor da primeira partição verifica o progresso da execução pela máquina virtual de espelho. Se um desvio muito alto for percebido, isto é, mais alto que 50ms em nosso exemplo, então, o hipervisor da primeira par- tição temporiza antes de finalizar a mudança de contexto, isto é, antes de permitir que a máquina virtual da primeira partição continue sua execução. [0086] De modo a garantir um intervalo de tempo, é garantido que pelo menos uma mudança de contexto é feita na frequência desejada.
Em nosso exemplo, uma interrupção de hardware é foçada a cada 50ms. Tal interrupção causa uma mudança de contexto, que garante que os meios para impedir um desvio muito alto entre as execuções- espelho são implantadas de fato. [0087] Quando uma falha em um módulo de uma partição de exe- cução é detectada, uma etapa 2300 de transmissão de um sinal de erro catastrófico para a partição de monitoramento C ocorre. Existem dois casos dependendo de se a falha acontece em: [0088] - a partição de execução primária A (Figura 2, 2310), em cujo caso uma etapa de alteração 2400 é operada, sendo que a parti- ção de execução secundária B se torna a nova partição de execução primária, e, então, existe uma etapa 2500 de continuação da execu- ção; [0089] - a partição de execução secundária B (Figura 2, 2320), em cujo caso a etapa 2500 de continuação da execução é realizada díre- tamente. [0090] Esse método de acordo com a invenção permite que a resi- liência de um dispositivo de alta disponibilidade seja aumentada. Um dispositivo de alta disponibilidade que permite a implantação da inven- ção é descrito doravante. [0091] Uma arquitetura de hardware para implantar a invenção é, por exemplo, um sistema que inclui oito módulos, cada um dos módu- los que está conectado a todos os outros, isso é chamado de tipologia "todos para todos". Outras topologias podem ser empregadas contanto que as mesmas ofereçam várias trajetórias entre os módulos diferen- tes. Esse número de módulos é dado a título de exemplo e pode variar de dois a várias dezenas. [0092] Cada porta de comunicação de cada um dos módulos, as- sim, tem de suportar sete enlaces de taxa alta, sendo que cada enlace inclui oito canais de via dupla. Se cada enlace operar a 14Gb/s, uma largura de banda entre quaisquer dos dois módulos do sistema é igual a 14x8 = 112Gb/s. Essa frequência é dada a título de exemplo e pode variar dentro de proporções perceptíveis, até os limites tecnológicos impostos pelos conectores e cabos. [0093] Cada módulo suporta dois soquetes conectados localmente por um barramento de taxa alta rastreado em sua placa-mãe. Essa disposição permite que um módulo para suportar algumas falhas de soquete ou memória seja reconfigurado de modo dinâmico. Deve ser percebido que o que se segue é que os tipos das falhas anteriores são raramente falhas abruptas, como, por exemplo, as falhas de forneci- mento de energia, e são precedidas durante um período longo o bas- tante de tempo pelo aumento de sinais de erro que indicam que a con- fiabilidade de pelo menos um componente de hardware diminui. Um gerenciamento adequado desses sinais de erro é essencial para con- seguir um bom desempenho em termos de resiliência. Essas placas de soquete duplo são equipadas com conectores de taxa alta na inter- face com o módulo de interconexão e todos os circuitos elétricos co- nectados a esses conectores são capazes de suportar operações de conexão automática. Isso implica que a inserção ou retirada de um módulo na aglomeração é realizada sem perturbar a operação dos ou- tros módulos dessa aglomeração. Em particular, a conexão de um módulo não carregado aos cabos do módulo de interconexão não de- vem perturbar os comutadores diferentes, que operam em sete outras placas de soquete duplo. Além disso, cada placa de soquete duplo su- porta um microcontrolador embutido, denominado BMC (Controlador de Gerenciamento de Placa-base), que permite funções de nível muito baixo do servidor, como ligar/desligar, monitoramento de temperaturas e tensões ou mesmo a reconfiguração dinâmica do módulo- aglomeração, a ser gerenciado.
INTERFACE DE RECONFIGURAÇÃO [0094] Para auxiliar na reconfiguração de configuração automática do sistema muitimodular, um comutador Ethernet, denominado MSM (Módulo de Comutador de Gerenciamento) que tem oito portas está incorporado ao módulo de interconexão. Esse comutador pode consistir em dois comutadores de cinco portas, quatro enlaces des- cendentes e um enlace ascendente, sendo que as portas dos enlaces ascendentes são conectadas por um faixa de circuito impresso. Essa modalidade melhora adicionalmente a resiliência do módulo de inter- conexão restringindo-se o número de casos em que os BMCs perdem a integridade de seus meios de diálogo. [0095] Em associação com essa rede de Ethernet privada aos BMCs, um dispositivo subsidiário do módulo de interconexão permite que um identificador seja alocado a cada BMC, a partir de cujo identifi- cador o mesmo será capaz de calcular seu endereço de IP. De fato, cada BMC deve ser capaz de iniciar sua conexão de IP nessa rede com um endereço diferente dos seus vizinhos. Esse dispositivo subsi- diário com base em uma pequena FPGA permite transmitir a cada BMC, mediante inicialização, um número de porta (identificador de 3 bits) específica para cada localidade física do módulo em relação ao módulo de interconexão. A partir desses 3 bits, cada BMC completa seu endereço de IP antes de se conectar a seus vizinhos. Deverá ser notado que desde que a subrede entre os BMCs e o comutador MSM é inteiramente privada, os 29 dígitos mais significantes do endereço de IP podem ser idênticos para cada módulo. [0096] Para garantir uma boa resiliência em direção a falhas de fornecimento de energia elétrica, cada módulo insere pelo menos dois conversores CA-CC, também chamado PSU "Unidade de Fornecimen- to de energia", que entrega a energia no trilho, geralmente abaixo de 12V, na entrada de cada placa de soquete duplo. As PSUs podem ser conectadas a duas redes de CA independentes para garantir a opera- ção do sistema se uma dessas redes falhar. Do mesmo modo, o mó- dulo MSM é carregado por vários servidores: cada módulo LIGADO envia, através de seu enlace Ethernet-MSM, uma corrente abaixo de 12V. Essas correntes diferentes são adicionadas por um comutador de díodo localizado entre as entradas de 12V e o POL dos circuitos do comutador Ethernet e a FPGA de reconfiguração.
INTERFACE DE SINCRONIZAÇÃO [0097] Outro elemento constituinte da invenção é uma rede de re- lógios de sincronização. Uma subrede do módulo de interconexão to- dos para todos conecta todas as FPGAs de todos os módulos para fazer um sistema de sincronização quase perfeito entre os processa- dores dos módulos diferentes. A lógica das FPGAs permite, mediante inicialização ou reconfiguração, que a rede de relógios seja particiona- da tanto na subrede de relógio quanto nas partições lógicas. Em cada uma das subredes de relógio, o processador-mestre, em geral, o pro- cessador que contém a lógica de início, distribui seu relógio para todos os processadores que pertencem a sua partição. A FPGA isola cada partição lógica de modo que uma partição receba um e apenas um re- lógio. Esse relógio é um sinal de onda quadrada, a frequência do qual é de poucos megahertz, por exemplo, 25 MHz. Esse sinal pode ser filtrado de modo vantajoso por um circuito PLL na entrada de cada módulo para remover qualquer ruído de fase que pode ter sido intro- duzido pelos cabos do módulo de interconexão. Mediante o reinicio, cada módulo inicia um contador acionado pelo relógio dessa partição.
Visto que esse relógio é comum aos processadores da partição, cada um dos processadores tem uma referência de tempo síncrona que permite registrar o momento de qualquer evento que ocorreu em seu módulo e a qualquer momento, será possível reconstituir a temporiza- ção de vários eventos sem ambiguidade sobre sua ordem respectiva. [0098] Uma aplicação exemplificativa é a do gerenciamento de si- nais de erro catastrófico CATERR, para "Erro Catastrófico", que são parte da interface fora de banda dos módulos de cálculo. Isso é uma rede que não é usada para tarefas de cálculo, mas apenas para a ad- ministração de módulo. Essas comunicações, portanto, não têm im- pacto sobre os desempenhos de módulo. Esses sinais são distribuídos nas partições do mesmo modo que o relógio descrito anteriormente.
Quando um sinal CATERR é engatilhado em um módulo, o mesmo causa geralmente de modo muito rápido, dentro de alguns microsse- gundos ou menos, um evento similar em um ou mais módulos adja- centes. O registro de tempo dos eventos CATERR em cada módulo permite que os BMCs troquem essas medidas e recuperem o que é a fonte do problema e, assim, facilita o diagnóstico e a localização apu- rada do módulo em falha pelos BMCs.
OBSERVAÇÕES SOBRE A INFRAESTRUTURA [0099] A infraestrutura é definida por todos os componentes de hardware que fornece ligações físicas entre os módulos. Para garantir a confiabilidade dessa infraestrutura, é vantajoso usar um máximo de componentes passivos, para o qual o tempo médio entre falhas, MTBF, excede em várias ordens de magnitude da MTBF das placas- mãe dos módulos. Desse modo, o número de falhas criadas por essa infraestrutura pode ser negligenciado na avaliação de disponibilidade do sistema. No sistema que é descrito, a infraestrutura é compreendi- da de um módulo de interconexão, também chamado de placa trasei- ra, a qual distribui as interfaces de enlaces de taxa alta, também cha- mado interfaces XQPI, entre os oito módulos, e as interfaces Ethernet locais e fora de banda entre os oito módulos e o comutador MSM. [00100] Desde a placa traseira ter que suportar sinais de taxa muito alta, hoje 14 GB/s, ainda mais no tempo de alguns anos, uma imple- mentação de circuito impresso convencional não foi retida. De fato, até ao usar materiais de alta gravidade, tais quais por exemplo, Megtron6 da empresa Panasonic, as perdas de inserção excedem 20dB nessa frequência de dados para os enlaces entre os módulos que são fisica- mente mais distantes uns dos outros. Outra desvantagem da placa traseira refere-se a segurança mecânica. Dado o peso de um módulo sólido e a tolerância na fabricação de uma armação que guia os ele- mentos no gabinete, a rigidez mecânica de tai placa traseira exerce um estresse mecânico muito alto nas interfaces de conectores de XQPI de taxa alta. Esses estresses são uma fonte de falhas de fabri- cação da infraestrutura. [00101] Para evitar esse problema, a placa traseira do sistema mul- timodular da invenção usa enlaces nas extremidades dos cabos de cobre pelo conjunto de conector de montagem flutuante que tolera até 1 mm de desalinhamento mecânico em x e y sem exercer um estresse nos contatos de alta taxa. Além disso, as perdas de inserção por uni- dade de comprimento são em torno de 10 vezes menores que no ma- terial convencional PCB e o número de conectores e vias é reduzido ao mínimo absoluto. Esses elementos são envolvidos na melhoria da segurança da infraestrutura e assim na proposta de alta disponibilida- de do sistema. [00102] O aspecto de flutuação é obtido, por exemplo, pelo uso de guias. [00103] A Figura 3 mostra que um módulo de cálculo 3010 inclui uma placa de fundo rígida e regular a qual componentes desse módulo são fixados, que inclui um conector macho ou fêmea modular 3040 capaz de ser conectado a um conector macho ou fêmea de armação 3050 de uma armação 3030 que inclui a placa traseira ou o barramen- to de placa traseira. A armação 3030 é somente parcialmente repre- sentada no presente documento para ilustrar a modalidade. Está claro para as pessoas versadas na técnica que se o módulo inclui um co- nector macho, então a armação inclui um conector fêmea e vice-versa. [00104] Em uma alternativa, a placa de fundo 3020 é uma borda de uma placa de circuito interno. [00105] A Figura 3, que mostra somente parte da placa de fundo do módulo, mostra que a placa de fundo inclui, no lado que está voltado para o conector de armação: [00106] - um primeiro guia 3060 e um segundo guia 3070 localiza- dos em cada lado do conector modular 3040. Essa colocação dos guias permite que o conector esteja pelo menos mecanicamente pro- tegido. O primeiro guia e o segundo guia de um primeiro tipo têm subs- tancialmente o mesmo comprimento e são: [00107] · formato cilíndrico, [00108] · fixado à placa de fundo, [00109] · de extremidade cônica no lado livre, [00110] · de um comprimento de poucos centímetros, ao menos 1, mas menos que 5. [00111] - um terceiro guia 3080 de um segundo tipo que é: [00112] · da mesma forma que o primeiro guia, [00113] · Substancialmente mais longo que o primeiro guia, na or- dem de um centímetro, na prática 1 centímetro, [00114] · Localizado no eixo geométrico central principal do retân- gulo formado pela placa de fundo e a poucos centímetros do primeiro e segundo guias. [00115] A Figura 3 também mostra que a armação 3030 inclui orifí- cios que correspondem ao primeiro, segundo e terceiro guias. [00116] Em um modo não representativo, a placa de fundo inclui ao menos um quarto guia tal qual o terceiro guia. Esse quarto guia é si- métrico ao terceiro em relação ao menor eixo geométrico do retângulo formado pela placa de fundo. [00117] Um eixo geométrico maior de um retângulo é um bissector perpendicular de um lado menor. Um eixo geométrico menor de um retângulo é um bissector perpendicular de um lado maior. [00118] Em uma alternativa, o primeiro e o segundo guias também têm os elementos simétricos dos mesmos em relação ao eixo geomé- trico menor, nesse caso, a placa de fundo inclui seis guias. Esses ei- xos geométricos são eixos geométricos de simetria geométrica da pia- ca de fundo. Em geral, esses eixos geométricos correspondem tam- bém a eixos geométricos de simetria de massas, ou seja, eixos geo- métricos em que em cada lado dos mesmos da massa do dispositivo é distribuída igualmente. Caso não, os eixos geométricos de massas podem também ser usados para distribuir os guias. [00119] Está claro que a armação inclui a quantidade necessária de orifícios que podem cooperar com guias uma vez que a placa de fundo inclui guias. [00120] Essa disposição de guia possibilita que um primeiro posici- onamento, ou guiamento inicial, do módulo se torne relativo à armação com o uso do terceiro guia e do elemento simétrico do mesmo, o que fornece um primeiro nível de guiamento. Esse primeiro nível é uma colocação em relação à armação. Então, mediante a continuidade da inserção, por fim, o primeiro e o segundo guias e os elementos simé- tricos dos mesmos são usados, o fornece um segundo guiamento final, ao mesmo tempo em que protege os conectores. [00121] Em uma alternativa da invenção, os guias são fixados rigi- damente à placa de fundo. [00122] Isso permite dizer que há um dispositivo flutuante devido ao fato de que as terminações cônicas dos guias permitem uma determi- nada folga. [00123] Esse aspecto de flutuação possibilita que um módulo seja retirado de maneira aprimorada ao mesmo tempo em que a armação está sendo operada. Esse aspecto de flutuação também minimiza os riscos de deterioração mediante a inserção de um módulo cujo peso é maior que dezenas de quilogramas e que pode ser localizado a dois metros do solo ou do nível do solo em um gabinete. [00124] Esse aspecto de flutuação, independente de um intercâm- bio rápido que o mesmo torna confiável, também possibilita que uma instalação fora de operação se torne confiável mediante a minimização dos riscos de deterioração mediante a inserção de módulos. Assim, esse aspecto de flutuação aprimora a substituição de um módulo de falha após a execução das aplicações ter sido delegada, de acordo com a invenção, para outra partição. Contudo, esse aspecto de flutua- ção é também interessante fora do contexto de espelhamento de apli- cação, para uma simples instalação. [00125] Em outra alternativa da invenção, o primeiro guia 3060 e o terceiro guia são fixados de maneira flutuante à placa de fundo. Por exemplo, a Figura 4 mostra que a placa de fundo 3020 inclui, na face da mesma oposta ao terceiro guia, duas partes perpendiculares à pla- ca de fundo: [00126] - uma primeira parte de suporte de conector 4010 [00127] - uma segunda parte de suporte de conector 4020. [00128] A primeira parte de suporte de conector e a segunda parte de suporte de conector são paralelas e incluem pelo menos um orifício 4015 que possibilita que um parafuso com rebaixo seja passado atra- vés do mesmo. O diâmetro do pelo menos um orifício 4015 de um su- porte de conector é levemente maior que o diâmetro de um rebaixo 4035 de um parafuso com rebaixo 4030 usado através do orifício.
Desse modo, um é fixado, o parafuso é encaixado de modo frouxo no orifício devido à diferença de diâmetro entre o rebaixo e o orifício. Essa diferença de diâmetro está situada em faixa de 1 a 2 mm. [00129] A Figura 4 também mostra um bloco de conector 4040 que pode ser deslizado entre os suportes de conector. O bloco de conector inclui uma base à qual o seguinte é fixado: [00130] - o primeiro guia 3060, [00131] - o segundo guia 3070, [00132] - o conector de módulo 3040. [00133] O bloco de conector também inclui uma primeira parede 4050 e uma segunda parede paralela 4060 de modo que uma vez que o bloco de conector esteja no lugar, as paredes são paralelas às par- tes de suporte. [00134] A Figura 4 também mostra que uma parede do bloco de conector inclui um orifício enroscado a fim de obter uma rosca compa- tível com aquela do parafuso com rebaixo 4030. Uma vez que parafu- so com rebaixo é aparafusado, o bloco de conector está flutuando em direção à placa de fundo. Essa alternativa aprimora adicionalmente o aspecto de flutuação. Essa flutuação depende da diferença de diâme- tro entre o orifício e o rebaixo. [00135] Em uma implantação, cada parte de suporte inclui 4 orifí- cios para 4 parafuso com rebaixos. As paredes incluem, em seguida, os 4 orifícios enrascados correspondentes. Os 4 orifícios são distribuí- dos em um quadrado. [00136] Em uma implantação, cada parte de suporte inclui 3 orifí- cios para 3 parafuso com rebaixos. Nesse caso, as paredes incluem 3 orifícios enrascados correspondentes. Os 3 orifícios são distribuídos em um triângulo isósceles ou equilátero. [00137] Em uma implantação, cada parte de suporte inclui 2 orifí- cios para 2 parafuso com rebaixos. Nesse caso, as paredes incluem os 2 orifícios enrascados correspondentes. [00138] A Figura 5, sendo outra alternativa da invenção, mostra um módulo 5010 que no presente documento é assimilável a uma placa mãe 5010. A placa de fundo 5020 da placa mãe 5010 é uma borda 5020 da placa mãe 5010. [00139] A Figura 5 mostra que a placa de fundo 5020 da placa 5010 inclui um conector 5040 e em cada lado desse conector 5040, consta- tam-se o seguinte: [00140] - uma primeira parte de guia 5060 que está na forma de um retângulo em paralelepípedo com reentrância com formato cilíndrico, sendo que o eixo geométrico de cilindro é perpendicular à placa de fundo 5020 da placa mãe 501; [00141] - uma segunda parte de guia 5070 idêntica à primeira parte de guia. [00142] Em uma alternativa, a abertura do cilindro no lado de placa de inferior tem uma abertura truncada que possibilita que um guia ci- líndrico seja introduzido de maneira aprimorada. [00143] A Figura 5 também mostra que a placa de fundo da placa mãe inclui um guia 5080 semelhante ao guia 3080 da placa de fundo do módulo. [00144] A Figura 5 também mostra uma armação 5030 à qual um bloco de conector, tal como, bloco descrito na Figura 4, é fixado. Para a Figura 5, referências idênticas àquelas da Figura 4 foram preserva- das para funções idênticas. [00145] Assim, a armação 5030 inclui, na face da mesma oposta àquela voltada para a placa mãe, duas partes perpendiculares à placa mãe, uma vez que a placa mãe está no lugar: [00146] - uma primeira parte de suporte de conector 4010 [00147] - uma segunda parte de suporte de conector 4020. [00148] A primeira parte de suporte de conector e a segunda parte de suporte de conector são paralelas e incluem pelo menos um orifício 4015 que possibilita que um parafuso com rebaixo seja passado atra- vés do mesmo. O diâmetro do pelo menos um orifício 4015 de um su- porte de conector é levemente maior que o diâmetro de um rebaixo 4035 de um parafuso com rebaixo 4030 usado através do orifício. Uma vez que é fixado, o parafuso é encaixado de modo frouxo dentro do orifício devido à diferença de diâmetro entre o rebaixo e o orifício. Essa diferença de diâmetro está situada em uma faixa de 1 a 2 mm. [00149] Fornecida desse modo, a armação pode, então, recebe um bloco de conector que, assim, estará flutuando. [00150] As Figuras 3 a 5 ilustram diversas modalidades para uma conexão de flutuação entre um módulo e uma armação. [00151] O comutador de MSM da invenção, que inclui alguns ele- mentos ativos, é parte da infraestrutura. Foi visto anteriormente que as fontes de alimentação do mesmo são fortemente redundantes. Além disso, a potência muito baixa dissipada, na ordem de 2 a 3 watts, e o baixo número de componentes possibilitam que um MTBF de diversos milhares de horas seja previsto para o módulo MSM. Por fim, precisa ser notado que a operação de um comutador de MSM é monitorada pelos oito BMCs dos módulos e que, caso uma falha do MSM seja de- tectada, o intercambiamento desse módulo não interrompe a operação do sistema multimodular. Pode-se dizer que o impacto do MSM na ta- xa de disponibilidade do sistema ainda é desprezível, contanto que a troca física do módulo ocorra dentro das diretrizes comuns. [00152] A descrição dos diferentes componentes de software usa- dos pela invenção será agora discutida.
CONFIGURAÇÃO DE OITO MÓDULOS [00153] Considera-se que uma configuração de oito módulos des- crita acima está destinada a suportar um sistema de redundância 1 + 1, em que cada processador de uma partição tem um processador re- dundante em outra partição. Essa configuração é a mais simples de descrever, porém para propósitos de segurança, uma configuração de redundância 1+2 ou 1+3, em que cada processador de uma partição tem, respectivamente, dois ou três processadores redundantes em, respectivamente, duas ou três outras partições, pode ser usada. [00154] Durante uma etapa de configuração (E1) da pluralidade de módulos em uma pluralidade de partições, três módulos são atribuídos a uma partição A, uma partição em primeiro plano. Consequentemen- te, uma partição B, sendo uma partição em segundo plano, é também feita com três módulos. Os dois módulos restantes da configuração de oito módulos são afetados para uma partição C, uma partição de moni- toramento, em que um dentre os módulos da mesma suporta os logs em execução das partições A e B. O segundo módulo da partição C pode substituir temporariamente qualquer outro módulo de falha, de- pendendo da taxa de disponibilidade exigida. [00155] A partição C pode executar opcionalmente aplicações não cruciais, desde que as prioridades dessas aplicações sejam definidas muito abaixo das prioridades dos módulos de software, o que garante as funções de alta disponibilidade para as aplicações executarem nas partições A e B. [00156] A carga das aplicações cruciais representa, nesse caso, 37,5% da potência de processamento instalada, ou seja, três módulos em um total de altura. [00157] Para uma configuração de quatro módulos, a partição A e a partição B contêm, cada uma, um único módulo e a partição C contém dois dos mesmos. Nesse caso, a carga das aplicações cruciais repre- senta apenas 25 % da potência de processamento instalada.
OPERAÇÃO DA ARQUITETURA [00158] A presente invenção usa apenas OSs que operam em um único núcleo. De fato, embora núcleos de OSs que executam em pro- cessadores com múltiplos núcleos possam ser feitos, a implantação de tais núcleos na presente invenção pode causar problemas não soluci- onáveis da sincronização de processo. Isso não significa que o pro- cessador físico é um processador de núcleo único. O uso de proces- sadores com múltiplos núcleos é limitado apenas pela alocação de re- cursos físicos garantidos pela camada de hípervisor, de acordo com a qual um dado OS recebe apenas um núcleo e um núcleo apenas. Por outro lado, nada impede que o mesmo núcleo seja atribuído a diversos OSs distintos. No último caso, apenas o desempenho ou o tempo de resposta pode ser afetado. Na descrição a seguir, a regra simples é assumida: 1 núcleo = 1 OS. Evidentemente, sob cada OS, os usuários são livres para executar quantas aplicações simultâneas quiserem. A carga de cálculo que é gerada por essas aplicações é multiplexada convencionalmente pelo agendador do núcleo do OS. Quanto mais alta for a carga, mais baixos serão os desempenhos.
[00159] A fim de garantir o agendamento dos processos, cada OS gera uma fila de processos prontos. Apenas o primeiro processo dessa fila recebe o processador e, assim, está em um então chamado subes- tado de execução. Quando a execução de processo satisfaz um semá- foro de sincronização do tipo com bloqueio, chamado P-Op, a mesma deixa a fila dos processos pronta e alterna para um estado de espera até que outro processo ou um gerenciador de interrupção de entrada- saída venha a desbloquear o mesmo mediante uma operação do tipo V-Op no mesmo semáforo. Nesse momento, o processo é mais uma vez inserido na fila dos processos pronta dependendo das regras de prioridade que dependem do OS e da configuração do mesmo. É pos- to em hipótese no presente contexto que há um enfileiramento em um estão chamado modo de "prioridade de inserção". Esse ponto significa que a fila em questão é feita de diversas sublistas, uma sublista por nível de prioridade, sendo que as sublistas são encadeadas e classifi- cadas dentre as mesmas como uma função da prioridade das mes- mas. A inserção por prioridade significa que o novo elemento é inseri- do no término da sublista associada à prioridade desse novo elemento.
Caso essa sublista não exista, a nova entrada é inserida no término da primeira sublista presente e que tem a prioridade mais alta, ou no topo da lista, caso a sublista em questão não exista. Esse tipo de operação realizado regularmente pelo núcleo é também chamado de uma ope- ração de expedição ou expedição, em uma forma abreviada. [00160] Com tal núcleo de sincronização dos processos, em que o núcleo se tornou convencional hoje em dia, a execução em um núcleo consiste em uma sucessão de séries de instruções separadas por ope- rações de expedição executadas pelo módulo, únicas no OS, para sin- cronizar os processos. Caso dois OSs idênticos, que executam os mesmos processos (mesmos códigos, mesmos dados, em processa- dores idênticos) sejam executados em paralelo, sendo executados no mesmo tempo das operações de expedição, os estados de ambos os OSs e, consequentemente, os resultados obtidos na saída de ambos os OSs são rigorosamente idênticos a partir do ponto de vista lógico.
No entanto, a execução a partir do ponto de visto físico pode diferir da execução a partir do ponto de vista lógica.
EXECUÇÃO A PARTIR DO PONTO DE VISTO FÍSICO [00161] A seguir, é descrita a maneira com que os agendadores de dois núcleos que executam em paralelo na partição A e na partição B podem permanecer em uma sincronização perfeita. [00162] Quando um programa é executado em um computador convencional, a lógica, no sentido matemático da palavra, desse pro- grama tem que ser executada em um modo determinado. Esse signifi- ca que o programador espera que duas execuções sucessivas o mesmo programa no mesmo conjunto de dados sempre leva aos mesmos resultados. Na realidade, isso é apenas uma ilusão porque no processamento de dados, entre duas execuções lógicas, vários even- tos podem ser interligados no meio do programa e modificar comple- tamente o tempo de execução. Os eventos centrais que podem ocorrer são: interrupções, expedições que alocam o processador com outra tarefa, ou "encadeamento", que segue uma ativação V-Op de um en- cadeamento que tem uma prioridade mais alta, erros recuperáveis sob leitura da memória central ou durante a transferência de dados nos barramentos de entrada-saída. Essa lista não é compreensiva. De qualquer modo, pode ser dito que operações de gerenciamento (sin- cronização, erros, etc.) são invisíveis para o programa considerado, exceto em relação ao seu tempo. Desse modo o tempo de execução que introduz uma noção de execução a partir de um ponto de vista fí- sico do programa adicionando-se o melhor componente de tempo da descrição. Se não for tomado cuidado, a inicialização de diversos pro- gramas paralelos sob um OS não garante de modo algum a ordem na qual as operações serão realizadas. Consequentemente, pode haver rapidamente um deslocamento de tempo muito grande entre uma exe- cução de programa na partição A e a mesma execução de programa na partição B, mesmo no caso em que os mesmos foram inicializados no mesmo tempo de início de relógio. A presente invenção mostra que a organização adequada dos pontos de sincronização para os enca- deamentos em um sistema multimodular permite garantir que as exe- cuções físicas entre duas partições possam continuar sincronizadas em um intervalo de tempo determinado de antemão, por exemplo, 50ms. Visto que as interrupções podem de modo geral ser seguidas pela inicialização de um encadeamento, e visto que essa inicialização é realizada pelo expedidor do núcleo do OS, é possível delimitar a dessincronização entre as partições A e B pela introdução artificial ge- rada por um hardware temporizador. O temporizador é disponível ge- ralmente a partir dos recursos de chipset e o hipervisor pode inicializar o mesmo para criai uma expedição em uma dada frequência, por exemplo, 20 Hz se o é desejado que a dessincronização não exceda 50 ms. Deve ser lembrado que em um processador moderno, o tempo de mudança de contexto é na ordem de 1 ps. Graças a essa caracte- rística, que força a expedição a cada 50 ms, não há efeitos visíveis nos desempenhos. Seria completamente diferente se os encadeamen- tos fossem destinados a ser sincronizados no espaço de 5 ou 10 ps.
SINCRONIZAÇÃO ENTRE 2 VM [00163] Para distinguir o caso do VMs, que se executa nas mesmas partições A ou B, do caso dos dois VMs, um dos quais se executa na A e o outro na B, a situação posterior é chamada de "VMs não- coerente" para lembrar que as memórias de A e B não são coerentes para o propósito da interface into-modular XQPI. [00164] Com o objetivo de entender melhor as vantagens forneci- das pela invenção, é interessante focar em alguns casos de falhas ab- ruptas e reações associadas do sistema de acordo com a invenção. [00165] Os conversores VRM "Módulo Regulador de Tensão" são os conversores POL dos processadores das memórias DRAM. Quan- do tais VRM falham, os circuitos associados param suas atividades após alguns microssegundos porque um detector de presença de ten- são, pelo menos, faz o sinal PWRGOOD ser transformado, que causa o desligamento da lógica e o aumento do sinal CATERR. O sinal CA- TEER é transmitido pelo modulo de interconexão para todos os módu- los da partição. Na recepção, blocos CATERR, todos os processado- res conectados e o processador de manutenção, BMC, começam os procedimentos de gerenciamento da falha. [00166] O desligamento de todas as transações com as funções de sincronização é detectado no espaço de 50 ms. A partição B termina a execução de seus encadeamentos até esse ponto de sincronização.
Portanto, visto que a falha da partição A é observado que pela função de sincronização, o anterior libera os encadeamentos da partição B simulando-se uma V-Op que permite que esses encadeamentos conti- nuem sua execução. [00167] Um erro fatal na memória é um tipo de erro bastante fre- quente porque o número de transistores que compõe a memória cen- tral pode exceder aquele dos processadores e armazenamento tempo- rário por dois de magnitude. Na terminologia da Intel, a arquitetura de gerenciamento desses erros é chamada de MCA (Arquitetura de Veri- ficação de Máquina). Um erro é do tipo assim chamado duro se a célu- la de memória é fixada definitivamente a um 0 ou um 1. Um erro é do tipo assim chamado suave se o conteúdo da célula foi alterado, mas a operação dessa célula continua obtida. [00168] Na arquitetura da MCA, um erro fatal na memória resulta sem alternativa em um "crashdump" de memória, do OS ou do hipervi- sor. A reinicialização é assim necessariamente muito longa, geralmen- te em vários minutos. [00169] Pelo uso da invenção, a função crashdump é precedida pe- la função de transformação que garante no espaço de 50ms a mudan- ça à partição A e a partição B. [00170] Visto que um grande número de erros fatais em uma me- mória não são erros de um tipo difícil, contudo os erros do tipo suave que seguem uma execução alteração, é possível reiniciar a partição A, e, então, migrar gradualmente o SO e os aplicativos a partir da parti- ção B até a partição A, até que as funções de sincronização da parti- ção C tenham a capacidade de ser, atualmente, reativadas. Uma vez no estágio, o sistema se tornou redundante em 1 + 1 novamente e visto que o mesmo está totalmente simétrico, não é essencial para alterar a partição A no modo primário novamente. É suficiente a um estado que a partição B se torne a partição primária e que a partição A se torne a partição de espelho. [00171] Visto que a largura de banda do barramento de XQPI é sig- nificante mais do que 10 Go/s com as tecnologias atuais, uma migra- ção de uma memória central por 1To terá mecanicamente pelo menos 1.000 G/10G = 100 segundos. Essa transferência é acionada vantajo- samente por um módulo de software que reside na partição C. É a or- dem de magnitude do tempo durante o qual o sistema não será com- pletamente redundante, contudo terá garantido a retomada de serviço dentro de 50 ms. A taxa de falha crítica é relacionada, então, à proba- bilidade de um segundo erro fatal durante esse intervalo de 100 s. Por exemplo, presumindo uma tecnologia que leva a uma taxa de erro fatal de bits de leitura de 1 por 1018 e uma memória de leitura com uma taxa de 1.000 Gb/s, em que o sistema teria um intervalo médio entre duas falhas na ordem de 106 s, ou seja, aproximadamente 300 horas.
Na realidade, uma deveria ser cuidadosa com esse tipo de estatística devido ao fato de que o processo de leitura de memória não tem as características de estado estacionário das variáveis aleatórias conven- cionais. Os erros de memória fatal podem ser totalmente devido a uma única célula de falha que seriam avaliados com muita frequência por um SO ou um aplicativo particular. Dado isso, com as hipóteses acima e tendo em vista isso, em média, um erro fatal ocorre a cada 106 s, em que a taxa de falha crítica do sistema é dado pela probabilidade de ocorrência de um segundo erro fatal em 100s, ou seja, 1/10.000. E a MTBF seria na ordem de 3M horas, ou 340 anos. Se essa taxa de fa- lha é considerada muita alta, será necessário alternar um esquema de redundância em 1+2 ou 1+3, ou seja, manter mais do que duas má- quinas sincronizadas. [00172] Um erro fatal na entrada/saída de um disco também é de um tipo bastante frequente de erro devido ao fato de que causa um erro nos dispositivos de armazenamento que são diversos. [00173] O subsistema de armazenamento do sistema, de acordo com a invenção, está em um modo de RAID1, o qual significa que qualquer arquivo gravado em um disco fixado à partição A tem um ar- quivo de espelho em um disco fixado à partição B. [00174] Um erro fatal nesse campo pode ser devido a um bloco de disco do conteúdo do qual foi substituído de modo incoerente por qualquer falha. O erro é detectado por um código de correção de erro incorreto mediante uma leitura desse bloco e esse erro é reportado ao gerenciador de entrada/saída pelas mensagens do barramento de PCIe que corresponde ao canal do disco de falha. [00175] Nesse, o arquivo todo é inacessível ao programa que tenta ter entradas/saídas nesse disco e geralmente o SO finaliza o aplicativo alternando-se o mesmo para um estado de desligamento. Visto que o programa de espelho não tenha recebido diretamente a notificação de erro devido ao fato de que a mesma está sendo executada na partição B, a função de sincronização tem a capacidade de iniciar a recupera- ção de arquivo após ocorrendo por um tempo, disponibilizando a mesma ao programa de espelho estimulando-se os V-Ops de sincroni- zação. [00176] Os algoritmos que permitem essa retomada são conhecidos e usados em todos os controladores de RAID no mercado. Aqui, as funções de firmware dos controladores de RAID são substituídas por uma ou mais funções de software as quais são executadas na partição C. Essas funções implantam os logs dos eventos que garantem a inte- gridade dos sistemas de arquivo. [00177] A vantagem da invenção tem a capacidade novamente de garantir que o programa resuma sua atividade normal dentro de 50 ms.

Claims (17)

1. Método para executar de modo síncrono um aplicativo em um ambiente de alta disponibilidade que inclui uma pluralidade de módulos de cálculo interconectados por uma rede de banda larga de velocidade muito alta caracterizado pelo fato de que inclui as seguintes etapas de: - configurar (2000) a pluralidade de módulos em uma plura- lidade de partições que inclui pelo menos: o duas partições de execução que incluem nós idênticos em número e em características, uma partição de execução primária e uma partição de execução secundária; o uma partição de monitoramento que inclui pelo menos um módulo; - executar (2100) o aplicativo em cada partição de execu- ção, sendo que as entradas/saídas processadas pela partição primária são transmitidas à partição de execução secundária através da parti- ção de monitoramento que registra em log essas entradas/saídas co- mo transações distribuídas entre a partição de execução primária e a partição de execução secundária, - sincronizar (2200) as execuções na partição primária e na partição secundária numerando-se as mudanças de contexto de mi- croprocessador, sendo que um desvio de tempo que corresponde à diferença entre os números de contexto atuais, nas partições de exe- cução primária e secundária, deve ser inferior ao valor determinado; - transmitir (2300) um sinal de erro catastrófico à partição de monitoramento, sendo que o dito sinal é característico de uma falha em um módulo de uma partição de execução; - continuar (2500) a execução alternando-se para um cha- mado modo degradado, sendo que a execução continua em uma única partição, e no caso de uma falha de um módulo da partição de execu- ção primária, realizar uma operação de alteração (2400), sendo que a partição de execução secundária se torna a nova partição de execu- ção primária.
2. Método de execução síncrona, de acordo com a reivindi- cação 1, caracterizado pelo fato de que uma interrupção é forçada em uma frequência predeterminada para forçar uma mudança de contexto de microprocessador e, dessa forma, realizar uma sincronização (2200).
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a frequência predeterminada está na ordem de 20 Hz, sendo que a dessincronização é, dessa forma, delimitada em 50 ms.
4. Método, de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que o aplicativo é virtuaiizado através de um hipervisor.
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que as máquinas virtuais são idênticas na partição de execução primária e na partição de execução secundária, sendo que as máquinas virtuais são executadas em um único núcleo de proces- sador.
6. Método, de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que a etapa de configuração (2000) da pluralidade de módulos em uma pluralidade de partições é realizada de modo dinâmico, sem um serviço de desligamento do am- biente.
7. Método, de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que a indisponibilidade apa- rente do ambiente é igual à dessincronização entre a execução do aplicativo nas partições primária e secundária, sendo que a indisponi- bilidade é, dessa forma, delimitada pela sincronização (2200) das exe- cuções.
8. Dispositivo de armazenamento digital caracterizado pelo fato de que inclui um arquivo que corresponde a códigos de instrução que implantam o método, como definido em uma das reivindicações precedentes.
9. Dispositivo caracterizado pelo fato de que implanta o mé- todo, como definido em qualquer uma das reivindicações 1a 7.
10. Dispositivo, de acordo com a reivindicação 8 ou 9, que inclui uma pluralidade de módulos inseridos em uma armação, carac- terizado pelo fato de que uma placa de fundo de um módulo inclui guias de inserção fixados à placa de fundo, sendo que esses guias são de dois tipos: - um primeiro tipo, para garantir um guia e uma proteção fi- nais de um conector da placa de fundo, - um segundo tipo, que tem um formato cilíndrico de extre- midade cônica para garantir um guia inicial, sendo que cada guia tem um meio correspondente na ar- mação.
11. Dispositivo, de acordo com a reivindicação 10, caracte- rizado pelo fato de que o primeiro tipo tem um formato cilíndrico de ex- tremidade cônica, sendo que o comprimento é inferior ao do segundo tipo na ordem de um centímetro.
12. Dispositivo, de acordo com a reivindicação 10, caracte- rizado pelo fato de que o primeiro tipo é uma parte com reentrância que tem capacidade para cooperar com um formato cilíndrico de ex- tremidade cônica.
13. Dispositivo, de acordo com qualquer uma das reivindi- cações 10 a 12, caracterizado pelo fato de que pelo menos um guia do segundo tipo é fixado de maneira rígida à placa de fundo.
14. Dispositivo, de acordo com a reivindicação 11 ou 13, caracterizado pelo fato de que pelo menos um guia do primeiro tipo é fixado de modo frouxo à placa de fundo.
15. Dispositivo, de acordo com a reivindicação 12 ou 13, caracterizado pelo fato de que pelo menos um guia cilíndrico que coo- pera com o guia do primeiro tipo é fixado de modo frouxo à armação.
16. Dispositivo, de acordo com qualquer uma das reivindi- cações 10 a 15, caracterizado pelo fato de que a placa de fundo inclui quatro guias do primeiro tipo e dois guias do segundo tipo.
17. Dispositivo, de acordo com qualquer uma das reivindi- cações 10 a 16, caracterizado pelo fato de que os guias são distribuí- dos de modo simétrico em relação aos eixos geométricos de simetria da placa de fundo.
BR102015015928A 2014-07-01 2015-07-01 método e dispositivo para execução de modo síncrono um aplicativo em um ambiente de alta disponibilidade BR102015015928A2 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1456274A FR3023398B1 (fr) 2014-07-01 2014-07-01 Procede et dispositif d'execution synchronisee d'une application dans un environnement a haute disponibilite

Publications (1)

Publication Number Publication Date
BR102015015928A2 true BR102015015928A2 (pt) 2016-01-05

Family

ID=51726669

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102015015928A BR102015015928A2 (pt) 2014-07-01 2015-07-01 método e dispositivo para execução de modo síncrono um aplicativo em um ambiente de alta disponibilidade

Country Status (5)

Country Link
US (1) US9575850B2 (pt)
EP (1) EP2975517B1 (pt)
JP (1) JP2016027470A (pt)
BR (1) BR102015015928A2 (pt)
FR (1) FR3023398B1 (pt)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739568A (zh) * 2018-12-19 2019-05-10 卡斯柯信号有限公司 一种基于2乘2取2架构的安全平台启动方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019115977A (ja) * 2017-12-26 2019-07-18 キヤノン株式会社 画像形成装置、その制御方法およびプログラム
CN109947596A (zh) * 2019-03-19 2019-06-28 浪潮商用机器有限公司 Pcie设备故障系统宕机处理方法、装置及相关组件
CN110071851B (zh) * 2019-04-19 2022-01-25 成都飞机工业(集团)有限责任公司 一种测量飞行试验数据延迟的系统及方法
CN111177893B (zh) * 2019-12-11 2023-05-02 中电普信(北京)科技发展有限公司 基于多线程的并行离散仿真事件驱动方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4342083A (en) * 1980-02-05 1982-07-27 The Bendix Corporation Communication system for a multiple-computer system
WO1993009494A1 (en) * 1991-10-28 1993-05-13 Digital Equipment Corporation Fault-tolerant computer processing using a shadow virtual processor
US7966538B2 (en) * 2007-10-18 2011-06-21 The Regents Of The University Of Michigan Microprocessor and method for detecting faults therein
US8826077B2 (en) * 2007-12-28 2014-09-02 International Business Machines Corporation Defining a computer recovery process that matches the scope of outage including determining a root cause and performing escalated recovery operations
US9342358B2 (en) * 2012-09-14 2016-05-17 General Electric Company System and method for synchronizing processor instruction execution

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739568A (zh) * 2018-12-19 2019-05-10 卡斯柯信号有限公司 一种基于2乘2取2架构的安全平台启动方法
CN109739568B (zh) * 2018-12-19 2021-12-21 卡斯柯信号有限公司 一种基于2乘2取2架构的安全平台启动方法

Also Published As

Publication number Publication date
FR3023398B1 (fr) 2016-07-01
US9575850B2 (en) 2017-02-21
EP2975517A3 (fr) 2016-04-13
US20160004608A1 (en) 2016-01-07
JP2016027470A (ja) 2016-02-18
EP2975517A2 (fr) 2016-01-20
FR3023398A1 (fr) 2016-01-08
EP2975517B1 (fr) 2021-12-08

Similar Documents

Publication Publication Date Title
US9934183B2 (en) Server comprising a plurality of modules
US10095559B2 (en) Interface for translating software commands and hardware commands for a distributed computing system
BR102015015928A2 (pt) método e dispositivo para execução de modo síncrono um aplicativo em um ambiente de alta disponibilidade
AU2002324671B2 (en) Computer system partitioning using data transfer routing mechanism
US9507566B2 (en) Entropy generation for a distributed computing system
JP4001877B2 (ja) 入出力ファブリックにおけるハードウェア・エラーからの自動回復
US8856776B2 (en) Updating firmware without disrupting service
US6199179B1 (en) Method and apparatus for failure recovery in a multi-processor computer system
AU2002324671A1 (en) Computer system partitioning using data transfer routing mechanism
JP2004252591A (ja) 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法
KR20090081404A (ko) 분할가능 컴퓨팅 장치 내의 여분의 파티션 유닛들을 글로벌 관리 엔티티에 의해 관리하는 방법 및 컴퓨터 판독가능 매체
CN102325192A (zh) 云计算实现方法和系统
KR20090081405A (ko) 파티션 유닛을 교체하는 방법 및 컴퓨터 판독가능 매체
US11100228B2 (en) System and method to recover FPGA firmware over a sideband interface
JP3947381B2 (ja) スケーラブルパラレル処理のためのユニット同期化を処理する方法
CN103890687A (zh) 计算机的管理
US12073204B2 (en) Systems and methods for firmware update using multiple remote access controllers
RU2788309C1 (ru) Способ централизованного реагирования на отказ сети или отказ сервера в кластере высокой доступности и восстановления виртуальной машины в кластере высокой доступности и система, реализующая данный способ
JP5299371B2 (ja) 情報処理装置に新たな装置を組み込む方法、及び情報処理装置

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B11B Dismissal acc. art. 36, par 1 of ipl - no reply within 90 days to fullfil the necessary requirements