Início
» Como fazer
»
Configuração do KVM no SLES 15: Faça com que as VMs selecionadas iniciem na inicialização.
Configuração do KVM no SLES 15: Faça com que as VMs selecionadas iniciem na inicialização.
Para que uma máquina virtual KVM do SLES 15 inicie após a reinicialização do host, instale os componentes de gerenciamento do KVM e do libvirt, marque essa máquina virtual para inicialização automática com `--autostart` virsh autostart VM_NAME, e certifique-se de que o daemon libvirt ativo do host seja iniciado durante a inicialização. A inicialização automática é uma configuração por máquina virtual; instalar o KVM ou iniciar o libvirt por si só não inicia automaticamente todas as máquinas virtuais.
Os comandos abaixo seguem o Guia de Virtualização do SLES 15 SP7 da SUSE. Versões anteriores do Service Pack podem apresentar diferenças, portanto, verifique o guia correspondente e as unidades systemd instaladas antes de executar os comandos de serviço.
Você precisa de um servidor KVM, de ferramentas KVM ou de ambos?
Para um host que executará e gerenciará máquinas virtuais por meio do libvirt, instale o servidor KVM e as ferramentas KVM. A SUSE define o servidor KVM como o ambiente mínimo QEMU/KVM e as ferramentas KVM como o conjunto de gerenciamento baseado em libvirt, que inclui o virshfluxo de trabalho usado aqui.
Antes de instalar, confirme se o processador e o firmware da máquina suportam virtualização por hardware. A SUSE documenta o suporte da CPU e o software necessário em seu Guia de Virtualização do SLES 15 SP7 . Se a validação reportar um problema de hardware ou configuração, resolva-o no firmware ou na configuração do host antes de tentar definir uma VM; o sinalizador de inicialização automática não pode compensar um host que não suporte KVM.
Execute o utilitário de validação do host antes de criar máquinas virtuais; o terminal mostra o comando, não o resultado do teste.
Como instalar o conjunto de hosts KVM do SLES 15?
Esta rota opcional do Zypper instala o servidor KVM e os padrões de gerenciamento do libvirt documentados.
Em um servidor já instalado, abra o YaST e selecione Virtualização > Instalar Hipervisor e Ferramentas . Se o módulo de Virtualização do YaST estiver faltando, a SUSE informa que ele é fornecido pelo yast2-vmpacote.
Selecione o servidor KVM e as ferramentas KVM e, em seguida, aceite as alterações do pacote. O YaST pode oferecer a opção de configurar uma ponte de rede. Escolha essa opção somente se ela for adequada ao projeto de rede do host. Alterar a rede de um host de produção pode interromper o acesso remoto; portanto, planeje e agende as alterações da ponte antes de aplicá-las.
Após a conclusão da configuração, crie ou importe uma máquina virtual e certifique-se de que ela esteja definida como um domínio libvirt persistente. O guia da SUSE afirma que a configuração do KVM por meio do YaST não requer a reinicialização do host.
Como alternativa, a SUSE documenta a instalação dos padrões com o Zypper: sudo zypper install -t pattern kvm_server kvm_tools. Escolha um método de instalação e revise a transação do pacote antes de confirmá-la. Se o host estiver sendo instalado do zero, a função de sistema Host de Virtualização KVM instala e configura a seleção apropriada durante a instalação do SLES.
Como faço para marcar uma máquina virtual para iniciar automaticamente?
Primeiro, liste os domínios através da conexão libvirt do sistema para que você possa usar o nome exato do convidado:
Liste todos os domínios na conexão do sistema e copie o nome exato da máquina virtual antes de configurar a inicialização automática.
sudo virsh -c qemu:///system list --all
A --allopção inclui máquinas virtuais que estão atualmente desligadas. Selecione a máquina virtual persistente desejada na saída. Em seguida, habilite a inicialização automática para esse domínio:
Substitua VM_NAME pelo nome de domínio libvirt exato da máquina virtual para habilitar o sinalizador de inicialização automática.
sudo virsh autostart VM_NAME
Para desfazer a configuração posteriormente, execute o comando sudo virsh autostart --disable VM_NAME. Esta não é uma restauração de memória salva: a máquina virtual convidada inicializa normalmente a partir dos discos configurados após a inicialização do host. Além disso, o comando não seleciona automaticamente todas as máquinas virtuais. Aplique o comando somente às máquinas virtuais convidadas que devem ser executadas neste host.
Qual serviço do libvirt deve ser iniciado na inicialização do sistema?
Depende se este host SLES usa os daemons modulares do libvirt ou o modelo monolítico tradicional libvirtd. A SUSE documenta que os daemons modulares estão habilitados por padrão no SLES 15 SP7 e recomenda iniciar o serviço de driver relevante na inicialização quando as máquinas virtuais estiverem configuradas para iniciar automaticamente. O serviço de driver do QEMU é `qemu` virtqemud.service. Em uma configuração monolítica, a SUSE recomenda `qemu` libvirtd.serviceem vez de `qemu`. Não habilite ambos os modos de implantação apenas porque ambos os nomes de unidade existem.
Verifique as unidades do seu computador antes de alterá-las:
Antes de habilitar qualquer coisa, inspecione as unidades do daemon libvirt disponíveis para identificar o modo de implantação do host.
systemctl status virtqemud.service libvirtd.service
Se o host usar o libvirt modular e a unidade QEMU estiver instalada, habilite-a com:
sudo systemctl enable --now virtqemud.service
Se o host estiver configurado deliberadamente para o daemon monolítico, use este comando em vez disso:
Habilite esta unidade apenas em um host que utilize a implantação monolítica do libvirtd; hosts modulares utilizam seu próprio daemon de driver.
sudo systemctl enable --now libvirtd.service
Marque a rede libvirt padrão para inicialização automática somente se a máquina virtual usar essa rede virtual.
Com o libvirt modular, o gerenciamento de rede e armazenamento virtuais pode usar daemons de driver ou sockets separados. Se o convidado depender de uma rede gerenciada pelo libvirt, faça com que essa rede também inicie automaticamente; por exemplo, consulte a documentação da SUSE sudo virsh net-autostart defaultpara a rede predefinida default. Faça isso somente quando o convidado realmente usar essa rede. Uma ponte configurada no nível do host não usa essa configuração de rede do libvirt. Verifique a rede real conectada ao convidado em vez de presumir o nome default.
Se uma máquina virtual usar um disco externo ou montado em rede, certifique-se de que o armazenamento subjacente esteja disponível na inicialização. A SUSE observa que o estado ativo de um pool de armazenamento libvirt não altera a disponibilidade de volumes já conectados às máquinas virtuais, mas habilitar a inicialização automática do pool é útil quando o pool precisa estar ativo para o gerenciamento do pool no host ou para operações posteriores com os volumes: sudo virsh pool-autostart POOL. Substitua POOLpor o nome real do pool; não crie um novo pool apenas para configurar a inicialização automática da máquina virtual.
Como posso verificar se a máquina virtual voltará a funcionar?
Use as informações de domínio do convidado para verificar sua configuração de inicialização automática antes de agendar uma reinicialização do host.
Antes de uma reinicialização de manutenção planejada, verifique a configuração do domínio e o estado do daemon. Use o comando `ls -l` sudo virsh dominfo VM_NAMEpara confirmar se a inicialização automática está habilitada e o comando systemctl is-enabled virtqemud.service`ls -l` systemctl is-enabled libvirtd.servicepara verificar o modo do daemon escolhido. Se o primeiro comando falhar porque a máquina virtual não foi encontrada, certifique-se de estar consultando a mesma conexão libvirt na qual ela foi criada.
Em seguida, teste durante uma janela de manutenção aprovada. Após o host retornar, execute o comando sudo virsh -c qemu:///system list --all. O convidado selecionado deverá aparecer como em execução; confirme sua rede e os serviços do convidado separadamente. Se ele permanecer desligado, inspecione os logs de inicialização do daemon ativo com `ls -l` journalctl -b -u virtqemud.serviceou ` journalctl -b -u libvirtd.servicels -l`, conforme aplicável, e verifique se há armazenamento indisponível ou uma rede virtual necessária. Essas condições dependem da configuração do host, portanto, o log do daemon e a configuração real do dispositivo da VM determinam a próxima correção.