Openstack: Qual a diferença entre a nova migrar e a nova evacuar?

4

Em liberdade, tenho procurado uma maneira de "esvaziar" um hipervisor de todas as suas VMs. Nos documentos da nova cliente , encontrei os seguintes comandos relacionados a isso:

  • nova evacuate: Evacue o servidor do host com falha.

  • nova migrate: migre um servidor. O novo host será selecionado pelo agendador

  • nova live-migration: migre o servidor em execução para uma nova máquina.

e:

  • nova host-evacuate: Evacue todas as instâncias do host com falha.

  • nova host-evacuate-live: Ao vivo, migre todas as instâncias do host especificado para outros hosts disponíveis.

  • nova host-servers-migrate: Migre todas as instâncias do host especificado para outros hosts disponíveis.

Eu posso usar comandos do primeiro grupo para mover os servidores (também conhecidos como VMs) um por um, de um hipervisor para outro. Da mesma forma, usando um comando do segundo grupo, com um hipervisor como destino, todos os seus servidores são movidos para outros hipervisores. E aí vem a confusão.

What's the difference between the "migrate" and "evacuate" commands (besides having slightly different arguments) when used to a working hypervisor?

Eles estão fazendo a mesma coisa, ou são diferentes por baixo e eu estou perdendo alguma coisa? Um deve ser usado em alguns casos e o outro em outros? Mesmo no glossário , ele diz:

  • migração: o processo de mover uma instância de VM de um host para outro.
  • evacuação: o processo de migração de uma ou todas as instâncias de máquina virtual (VM) de um host para outro, compatível com a migração ao vivo do armazenamento compartilhado e a migração de blocos.

Então, deve ser semelhante. Mas então por que ambos existem?

    
por G. Kaklam. 25.02.2016 / 16:54

1 resposta

3

A ajuda nova é um pouco confusa, já que freqüentemente usa a palavra "servidor", onde "instância" é realmente significada, e "host", onde "nó de computação" é usado. A terminologia do OpenStack mudou ao longo de sua história, e alguns dos termos usados aqui são os antigos termos históricos.

Então eu experimentei um pouco para descobrir o que esses comandos realmente fazem. O que eu descobri é:

Comandos que operam em nós de computação com falha:

  • nova evacuate reinicia uma única instância que estava sendo executada em um nó de cálculo que ficou inativo. Por padrão, o OpenStack escolhe quais nós de computação receberão a instância, mas um nó de computação pode ser selecionado com --target-host .
  • nova host-evacuate reinicia todas as instâncias em execução em um nó de cálculo que ficou inativo. Por padrão, o OpenStack escolhe quais nós de computação receberão as instâncias, mas um nó de computação pode ser selecionado com --target-host .

    Em ambos os casos, a evacuação falha se o nó de cálculo estiver realmente ativo.

Comandos que operam em nós de computação em execução:

  • nova host-evacuate-live tenta viver migrar todas as instâncias em execução em um nó de cálculo para outros nós de cálculo. Por padrão, o OpenStack escolhe quais nós de computação receberão as instâncias, mas um nó de computação pode ser selecionado com --target-host .
  • nova host-servers-migrate migra as instâncias interrompidas de um nó de cálculo. O OpenStack escolhe quais nós de computação receberão as instâncias.
  • nova live-migration live migra uma única instância em um nó de computação. Por padrão, o OpenStack escolhe quais nós de computação receberão as instâncias, mas um nó de computação pode ser selecionado com --target-host .
  • nova migrate migra uma instância interrompida de um nó de cálculo. O OpenStack escolhe qual nó de computação receberá a instância.

A documentação do OpenStack da Red Hat tem um pouco melhor explicação da evacuação e a diferença entre esses comandos que a documentação do upstream.

    
por 06.03.2016 / 05:20