oVirt em 2 horas. Parte 4. Operações Básicas

Hoje, examinamos várias operações básicas que o administrador do ambiente de virtualização precisará executar regularmente. O artigo é uma continuação da série oVirt: parte 1 , parte 2 e parte 3 :

Conteúdo




Artigos


  1. Introdução
  2. Instalação do gerenciador (mecanismo de ovirt) e hipervisores (hosts)
  3. Configurações adicionais
  4. Operações Básicas - Estamos Aqui

Tradicionalmente, para obter detalhes sobre tarefas administrativas, bem-vindo à documentação .

Ao entrar no oVirt, você verá 2 portais:

  • Portal de administração
  • Portal da VM

O primeiro é destinado às tarefas administrativas e administrativas, o segundo - para clientes de máquinas, mas também pode ser usado pelo administrador - algumas funções são ainda mais convenientes.

Na parte superior da janela de cada coleção de objetos oVirt, há uma poderosa caixa de pesquisa, com avisos contextuais.

Como exemplo, selecionar hosts com problemas no painel de controle causa um filtro:

status = unassigned or status = maintenance or status = installing or status = reboot or status = preparingformaintenance or status = pendingapproval or status = connecting or status = installingos or status = kdumping


Criar VM e modelo


Acho que você criou uma VM simples já na Parte 2, agora conheceremos outras entidades oVirt que estão diretamente relacionadas às máquinas virtuais - máquinas virtuais, modelos e pools.

Um modelo é uma cópia de uma máquina (geralmente pré-preparada) projetada para criar máquinas idênticas (clonagem). O modelo pode ter uma versão, é conveniente, porque não é necessário criar um novo modelo separado após cada atualização da máquina de referência. Mais detalhes na documentação .

Um pool é um grupo de máquinas idênticas geradas a partir de um único modelo. Conveniente para VDI (infraestrutura de desktop virtual), quando dezenas ou centenas de usuários precisam fornecer um ambiente de trabalho idêntico e isso é feito literalmente em um piscar de olhos. Leia mais sobre pools na documentação .

Vamos criar um modelo para o qual podemos clonar uma máquina criada anteriormente, mas, para demonstração, iremos para o outro lado - importe um modelo da coleção externa Glance Images: Storage -> Domains -> ovirt-image-repository (1), Import (2):


Fig. 1 - Importação da imagem do Fedora 32.

Marcamos “Importar como Modelo” (3, Importar como Modelo), fornecemos um nome ao modelo (4). É altamente recomendável que o disco receba um nome amigável (5, Alias ​​do disco).

O andamento das tarefas é convenientemente monitorado na seção Tarefas .


FIG. 2 - Progresso na conclusão de tarefas no oVirt.

Após o upload bem-sucedido, o modelo é adicionado à lista.


FIG. 3 - Modelos.

Com base no modelo carregado, crie um pool:


Fig. 4 - Criando um pool.

Vamos para Compute -> Pools (1), New (2), selecione o modelo Fedora32 (3), a versão - ultimas (4), atribua o nome "myPoolA- ??" (5) Ainda não tocamos nos campos Número de VM e VM pré-iniciada; retornaremos a eles na próxima etapa. Em seguida, ative as configurações avançadas (6) e prossiga para a configuração da Execução inicial.


FIG. 4 - Configure a inicialização inicial.

Porque da Glance Images, baixamos o Cloud Image, precisamos configurar a autenticação. Verifique se “Usar Cloud-Init / Sysprep” (1) está ativado, abra Autenticação (2), especifique o nome de usuário, por exemplo, raiz ou usuário (3). Para criar uma senha exclusiva para o pool, desative "Usar senha já configurada" (4) e digite sua senha (5). Clique em “OK” - o pool é criado, máquinas idênticas aparecem em Computação -> Máquinas Virtuais (preste atenção ao ícone, é diferente de uma máquina que trabalha separadamente).

Nota sobre o nome da piscina. Como você notou, no final é "- ??". Isso inclui a numeração "normalizada" de máquinas (complementada por zeros - 01, 02, ..., 09, 10 etc.). Caso contrário, a numeração será um número natural sem alinhamento (1, 2, ..., 9, 10, ...)
Antes de continuar, vamos voltar às configurações do pool. Observe que o campo "Número de VM" foi alterado para "Aumentar o número de VMs no pool em". Nós especificamos 31 aqui e o número de máquinas no pool quase instantaneamente se torna 32. Agora, no campo "VM pré-iniciada", inserimos 16 - isso forçará o oVirt a manter o número especificado de máquinas pré-inicializadas e prontas para conectar os usuários. É aqui que concluiremos sobre máquinas, modelos e pools e seguiremos para a migração.

Ícones principais da VM:

  • unidade de rack - servidor;
  • monitor - desktop;
  • 3 torres - servidor da piscina;
  • 3 monitores - área de trabalho da piscina;
  • rebobinar (rebobinar) - sem estado (a máquina redefine seu estado para seu estado original após o desligamento; todas as alterações são revertidas);
  • triângulo no monitor laranja - a alteração solicitada na configuração requer uma reinicialização.


Migração de VM (migração ao vivo)


A migração do estado da máquina ligada é simples - clique com o botão direito do mouse em uma máquina ou em um grupo de máquinas. O procedimento é semelhante ao do vMotion no vSphere.


FIG. 5 - Inicie a migração.

Computar -> Máquina Virtual, selecione uma ou mais máquinas, Migrar.


FIG. 6 - O processo de migração pode ser observado nos hosts (Computar -> Hosts).

Ao mesmo tempo, não mais de 2 carros estão em movimento.

Migração de armazenamento


Mas esse procedimento pode parecer incomum para o usuário do VMware vSphere, porque as abordagens para armazenar imagens de disco e configurações de máquina em sistemas são diferentes.
Para transferir o armazenamento da VM, vá para os discos (Armazenamento -> Discos) ou domínios (Armazenamento -> Domínios -> {Nome do Domínio} -> Discos). Selecione as unidades e pressione Mover . É isso, as unidades são enviadas para outro armazenamento.

Nota: devido à organização interna, há restrições para migrar o armazenamento e o conjunto de modelos. A familiaridade com a migração de armazenamento é melhor realizada em uma máquina separada, fora do pool.
A cópia do disco é realizada nos mesmos menus do carregamento / descarregamento manual.

Renomear VM e disco


Alterar o nome de uma máquina ou modelo é muito simples - Edite e insira um novo nome. Renomear um pool requer excluir suas máquinas e recriá-las, porque com base nele, as VMs são geradas com os nomes e a configuração correspondentes.

Também é possível renomear um disco, mas o caminho é maior que
e: Compute -> Virtual Machine -> {VM Name} -> Disks -> {VM Disk Alias} -> Edit, Alias.
Identificadores de objetos internos são criados em UUIDs. Ao renomear, na verdade alteramos os aliases.

A seção trata da atualização, que é atualização (menor), não atualização (principal), quando o número da versão muda (esse é um procedimento mais complicado e não faz parte das tarefas diárias).

Atualizar oVirt-Host (hypervisor)


As atualizações de host são mais simples que no vSphere, o gerenciador de atualizações no oVirt é integrado organicamente na plataforma e não requer configurações. Documentação oficial de atualização.


FIG. 7 - Se houver atualizações, o gerente as reportará com um ícone de CD.


FIG. 8 - Antes de iniciar a atualização, você precisa habilitar o modo de manutenção (Gerenciamento -> Manutenção), ele iniciará automaticamente a migração da VM para outros hosts (consulte a Fig. 6) e se preparará para a atualização.


FIG. 9 - O ícone da chave inglesa indica que o host está pronto para o serviço.


FIG. 10 - Instalação -> Atualização inicia o procedimento de atualização.


FIG. 11 - Podemos pedir ao gerente que dê ao host um comando para reiniciar após a atualização ser concluída, para que ela entre em vigor.


FIG. 12 - Após a reinicialização, colocamos o hipervisor fora de serviço (Gerenciamento -> Ativar).

Examinamos todos os hosts e os atualizamos.

Atualizar oVirt-Engine (gerente)


No início, isso pode ser confuso, mas a atualização do gerente é realizada usando a configuração do mecanismo, com etapas adicionais, conforme descrito na documentação .

  1. Se possível, faça um archive ou uma captura instantânea da máquina, verifique se o último backup agendado foi bem-sucedido.
  2. Verificamos e atualizamos pacotes de instalação:

    $ sudo engine-upgrade-check
    $ sudo update ovirt\*setup\*
  3. A parte principal da atualização é realizada pelo programa de configuração do mecanismo. Ela fará uma série de perguntas de configuração, interrompe o serviço do ovirt-engine, baixa e instala pacotes atualizados, cria um arquivo morto e atualiza o banco de dados, aplica a configuração atualizada e inicia o serviço do ovirt-engine.

    $ sudo engine-setup

    Após a atualização bem-sucedida, receberemos a mensagem:

    Execution of setup completed successfully

    Exemplo de saída do script de configuração do mecanismo
    $ sudo engine-setup

    [ INFO  ] Stage: Initializing
    [ INFO  ] Stage: Environment setup
              Configuration files: ['/etc/ovirt-engine-setup.conf.d/10-packaging-jboss.conf', '/etc/ovirt-engine-setup.conf.d/10-packaging.conf', '/etc/ovirt-engine-setup.conf.d/20-setup-ovirt-post.conf']
              Log file: /var/log/ovirt-engine/setup/ovirt-engine-setup-20200522232449-o97vyx.log
              Version: otopi-1.8.2 (otopi-1.8.2-1.el7)
    [ INFO  ] Stage: Environment packages setup
    [ INFO  ] Stage: Programs detection
    [ INFO  ] Stage: Environment setup (late)
    [ INFO  ] Stage: Environment customization
             
              --== PRODUCT OPTIONS ==--
             
             
              --== PACKAGES ==--
             
    [ INFO  ] Checking for product updates...
              Setup needs to install or update the following packages:
              [updated] ovirt-engine-4.3.5.5-1.el7.noarch will be updated
    ...
              [update] ovirt-engine-wildfly-overlay-17.0.1-1.el7.noarch is an update
              Replying "No" will abort Setup. You can pass the option "--offline" to prevent installing or updating packages.
              Do you wish to update them now? (Yes, No) [Yes]: 
    [ INFO  ] Checking for an update for Setup...
             
              --== NETWORK CONFIGURATION ==--
             
              Setup can automatically configure the firewall on this system.
              Note: automatic configuration of the firewall may overwrite current settings.
              NOTICE: iptables is deprecated and will be removed in future releases
              Do you want Setup to configure the firewall? (Yes, No) [Yes]: 
    [ INFO  ] firewalld will be configured as firewall manager.
             
              --== DATABASE CONFIGURATION ==--
             
              The detected DWH database size is 439 MB.
              Setup can backup the existing database. The time and space required for the database backup depend on its size. This process takes time, and in some cases (for instance, when the size is few GBs) may take several hours to complete.
              If you choose to not back up the database, and Setup later fails for some reason, it will not be able to restore the database and all DWH data will be lost.
              Would you like to backup the existing database before upgrading it? (Yes, No) [Yes]: 
              Perform full vacuum on the oVirt engine history
              database ovirt_engine_history@localhost?
              This operation may take a while depending on this setup health and the
              configuration of the db vacuum process.
              See https://www.postgresql.org/docs/10/sql-vacuum.html
              (Yes, No) [No]: 
             
              --== OVIRT ENGINE CONFIGURATION ==--
             
              Perform full vacuum on the engine database engine@localhost?
              This operation may take a while depending on this setup health and the
              configuration of the db vacuum process.
              See https://www.postgresql.org/docs/10/sql-vacuum.html
              (Yes, No) [No]: 
             
              --== STORAGE CONFIGURATION ==--
             
             
              --== PKI CONFIGURATION ==--
             
             
              --== APACHE CONFIGURATION ==--
             
             
              --== SYSTEM CONFIGURATION ==--
             
             
              --== MISC CONFIGURATION ==--
             
             
              --== END OF CONFIGURATION ==--
             
    [ INFO  ] Stage: Setup validation
              During execution engine service will be stopped (OK, Cancel) [OK]: 
    [ INFO  ] Cleaning stale zombie tasks and commands
             
              --== CONFIGURATION PREVIEW ==--
             
              Default SAN wipe after delete           : False
              Firewall manager                        : firewalld
              Update Firewall                         : True
              Host FQDN                               : ovirt.example.com
              Upgrade packages                        : True
              Set up Cinderlib integration            : False
              Engine database secured connection      : False
              Engine database user name               : engine
              Engine database name                    : engine
              Engine database host                    : localhost
              Engine database port                    : 5432
              Engine database host name validation    : False
              Engine installation                     : True
              PKI organization                        : JSC Open Lab
              Set up ovirt-provider-ovn               : False
              Configure WebSocket Proxy               : True
              DWH installation                        : True
              DWH database secured connection         : False
              DWH database host                       : localhost
              DWH database user name                  : ovirt_engine_history
              DWH database name                       : ovirt_engine_history
              Backup DWH database                     : True
              DWH database port                       : 5432
              DWH database host name validation       : False
              Configure Image I/O Proxy               : True
              Configure VMConsole Proxy               : True
             
              Please confirm installation settings (OK, Cancel) [OK]: 
    [ INFO  ] Cleaning async tasks and compensations
    [ INFO  ] Unlocking existing entities
    [ INFO  ] Checking the Engine database consistency
    [ INFO  ] Stage: Transaction setup
    [ INFO  ] Stopping engine service
    [ INFO  ] Stopping ovirt-fence-kdump-listener service
    [ INFO  ] Stopping dwh service
    [ INFO  ] Stopping Image I/O Proxy service
    [ INFO  ] Stopping vmconsole-proxy service
    [ INFO  ] Stopping websocket-proxy service
    [ INFO  ] Stage: Misc configuration (early)
    [ INFO  ] Stage: Package installation
    [ INFO  ] Yum Status: Downloading Packages
    ...
    [ INFO  ] Stage: Misc configuration
    [ INFO  ] Upgrading CA
    [ INFO  ] Not rewriting /etc/ovirt-imageio-proxy/ovirt-imageio-proxy.conf because it was changed manually. You might want to compare it with /etc/ovirt-imageio-proxy/ovirt-imageio-proxy.conf.new and edit as needed.
    [ INFO  ] Backing up database localhost:ovirt_engine_history to '/var/lib/ovirt-engine-dwh/backups/dwh-20200522233531.6LDItj.dump'.
    [ INFO  ] Creating/refreshing DWH database schema
    [ INFO  ] Configuring Image I/O Proxy
    [ INFO  ] Configuring WebSocket Proxy
    [ INFO  ] Backing up database localhost:engine to '/var/lib/ovirt-engine/backups/engine-20200522233538.LZCwME.dump'.
    [ INFO  ] Creating/refreshing Engine database schema
    [ INFO  ] Creating/refreshing Engine 'internal' domain database schema
              Unregistering existing client registration info.
    [ INFO  ] Generating post install configuration file '/etc/ovirt-engine-setup.conf.d/20-setup-ovirt-post.conf'
    [ INFO  ] Stage: Transaction commit
    [ INFO  ] Stage: Closing up
    [ INFO  ] Starting engine service
    [ INFO  ] Starting dwh service
    [ INFO  ] Restarting ovirt-vmconsole proxy service
             
              --== SUMMARY ==--
             
    [ INFO  ] Restarting httpd
              Web access is enabled at:
                  http://ovirt.example.com:80/ovirt-engine
                  https://ovirt.example.com:443/ovirt-engine
              SSH fingerprint: SHA256:JvilhbwRuMjBCJEjQVPlFQgk0aLaKz7Od0WzsZtx4j4
              Did not update /etc/ovirt-imageio-proxy/ovirt-imageio-proxy.conf because it was changed manually. You might want to compare it with /etc/ovirt-imageio-proxy/ovirt-imageio-proxy.conf.new and edit as needed.
             
              --== END OF SUMMARY ==--
             
    [ INFO  ] Stage: Clean up
              Log file is located at /var/log/ovirt-engine/setup/ovirt-engine-setup-20200522232449-o97vyx.log
    [ INFO  ] Generating answer file '/var/lib/ovirt-engine/setup/answers/20200522233608-setup.conf'
    [ INFO  ] Stage: Pre-termination
    [ INFO  ] Stage: Termination
    [ INFO  ] Execution of setup completed successfully

  4. Atualizamos o sistema operacional e outros pacotes adicionais:
    $ sudo yum update

    Se necessário (atualizando o kernel ou seus componentes), reinicializamos a máquina.


Importar VM


Você pode importar do VMware, Exportar Domínio (entidade especial oVirt para a troca de imagens entre o Data Center), Dispositivo virtual (OVA), XEN, KVM. Todas as opções oficialmente suportadas:

  1. A VM de importação do VMware ESXi / VSPHERE é executada no host + autenticação para o host em que o ESXi / VSPHERE é executado
  2. Importar VM KVM / Xen da Libvirt: o usuário especifica autenticação de URL + para o host em que a Libvirt é executada
  3. Importar VM KVM / Xen de um determinado caminho: O usuário especifica o caminho nfs / posix para a configuração e os discos da VM
  4. Importar VM que foi exportada do VMware: O usuário especifica o caminho nfs / posix para o arquivo ova
  5. Carregar VM KVM / Xen: o usuário especifica arquivos da configuração e dos discos
  6. Carregar VM que foi exportada do VMware: O usuário especifica o arquivo ova
  7. Importar VM da pasta: o usuário especifica o caminho para a pasta que contém VMs KVM / Xen ou VM exportadas do VMware

Vamos considerar duas opções - importar do vSphere e uma máquina independente com o KVM. Para iniciar a importação de material em Compute -> Virtual Machines, clique no botão para itens de menu adicionais (3 pontos verticais, veja a Fig. 13). A máquina de origem deve estar desligada.

Importar máquinas do vCenter


No assistente:

  • Fonte de dados: VMware;
  • Fornecedor externo: em Administração -> Fornecedores, você pode configurar um modelo para operações frequentes;
  • vCenter: nome ou endereço do servidor vCenter;
  • ESXi: de qual hipervisor pegaremos o carro;
  • Data Ceter: caminho completo para o cluster;
  • Cluster: contendo um cluster de hipervisor;
  • Nome de usuário / senha: nome de usuário e senha para conectar-se ao vCenter;
  • Verifique o certificado SSL do servidor: ao usar certificados autoassinados, você terá que desativar a verificação deles.


FIG. 13 - Importar VMs do VMware vSphere.

Importar máquinas da KVM


Detalhes sobre a importação do KVM na documentação .

Primeiro, você deve habilitar a conexão com o KVM de fora, se isso não tiver sido configurado anteriormente.

Permissão para exportar máquinas para a KVM
, . ! , , , . , ., ArchLinux.

, libvirtd

$ sudo vim /etc/sysconfig/libvirtd



LIBVIRTD_ARGS="--listen"



$ sudo cp /etc/libvirt/libvirtd.conf /etc/libvirt/libvirtd.conf.`date +%F`
$ sudo vim /etc/libvirt/libvirtd.conf

:

listen_tls = 0
listen_tcp = 1
listen_addr = "0.0.0.0"
auth_tcp = "none"



log_outputs="3:syslog:libvirtd"

libvirtd. , libvirtd > 0.6 ( libvirtd --version), .

$ sudo service libvirtd restart

tcp:16509.

CentOS 7 ( permanent):

$ sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="172.17.71.32/30" port port="16509" protocol="tcp" accept'

:

$ virsh -r -c 'qemu+tcp://mgmt@kvm46.example.com/system' list --all


Além disso, a importação em si é muito simples:

Computar -> Máquinas Virtuais ->: (menu adicional, 3 pontos verticais) -> Importar -> Origem (KVM via libvirt) -> URI (qemu + tcp: //kvm46.example.com / system) -> Exigir autenticação (Desativar) -> Carregar.

Marcamos as máquinas necessárias, selecionamos a política de alocação (Política de Alocação).

Política de alocação - O pré-alocado é preferido para volumes de armazenamento com detecção de zero de hardware, para volumes com alta E / S, volumes com alta ocupação, etc., caso contrário, o thin provisioning pode ser. De qualquer forma, analisamos a situação e a analisamos.

O “Clonar” marcado marca, mas não copia o carro. Por exemplo, um novo endereço MAC para a interface de rede será atribuído.

Na guia Geral, é importante especificar o tipo correto de sistema operacional e, na guia Interfaces de rede, você pode especificar a rede desejada. Em seguida, "importe" e, dependendo da velocidade do equipamento, obtemos a máquina importada. Após a importação (ou antes), não esqueça de instalar o ovirt-guest-agent.


Gerenciamento de tarefas


Quando as tarefas congelam, começam as difíceis danças, algumas das quais tentarei abordar. Com comportamento regular, pode-se observá-los na Fig. 2.

Se a tarefa for executada mais ou menos normalmente, ferramentas regulares serão suficientes. Com pimers e fotos você pode ver aqui .

As tarefas são executadas no oVirt-host.

[mgmt@ovirt-nodeNN] $ sudo vdsm-client Host getAllTasksInfo
[mgmt@ovirt-nodeNN] $ sudo vdsm-client Task getStatus taskID=<TASKID>
[mgmt@ovirt-nodeNN] $ sudo vdsm-client Task stop taskID=<TaskID>
[mgmt@ovirt-nodeNN] $ sudo vdsm-client Task clear taskID=<TaskID>
[mgmt@ovirt-nodeNN] $ sudo vdsm-client Host getAllTasksInfo

Além disso, o vdsm-client pode tentar reverter a tarefa, todos os métodos suportados:

$ sudo vdsm-client Task -h

...
Métodos da tarefa:
método [arg = value]
getStatus Obtenha informações de status da tarefa.
reverter a reversão de uma tarefa para restaurar o estado anterior do sistema.
desmarque Descartar informações sobre uma tarefa concluída.
getInfo Obtenha informações sobre uma tarefa.
stop Interrompe uma tarefa em execução no momento.

No entanto, os movimentos se tornam mais complicados se a tarefa não puder ser interrompida usando métodos padrão.
Oficialmente, a ferramenta taskcleaner é usada para isso:

[mgmt@ovirt-engine] $ sudo /usr/share/ovirt-engine/setup/dbutils/taskcleaner.sh --help

Para casos ainda mais graves, é necessária a edição direta do banco de dados. Esse método deve ser utilizado apenas como último recurso, com novos arquivos do oVirt e das máquinas afetadas.

Então, conectamos a coleção de software

[mgmt@ovirt-engine] $ sudo scl enable rh-postgresql10 "psql -d engine -U postgres"

Em seguida, conecte-se ao banco de dados

su postgres
psql -d engine -U postgres
select * from job order by start_time desc;

E remoção direta - executando o procedimento DeleteJob para a tarefa problemática:

select DeleteJob('UUID_HERE');

Exemplo:

select DeleteJob('ed0127c7-b052-4ec2-a67c-8b3a65d55e19');

Isso é tudo por hoje, e espero que você nunca precise editar manualmente um banco de dados!

All Articles