Faça o KVM / libvirt esperar pela montagem da rede antes de iniciar os convidados

1

Estou gerenciando uma VM baseada no Ubuntu 16.04 (executando o KVM / libvirt). O servidor hospeda algumas VMs que são usadas internamente em nosso departamento.

Todas as VMs usam o servidor Samba da nossa empresa para armazenar vários bits e pedaços de dados.

Durante uma queda de energia na noite passada, descobri que as máquinas inicializam muito mais rápido do que o servidor Samba de que precisam e o que faz com que vários serviços nas VMs falhem.

Em vez de corrigí-lo em uma VM por VM, gostaria de instruir meu host de VM a aguardar o servidor CIFS antes de iniciar todas as VMs após a reinicialização (basicamente, eu gostaria para fazer o libvirt-guests.service depender do mnt-SHARENAME.mount).

Eu sei que poderia adicionar uma dependência em /lib/systemd/system/libvirt-guests.service, mas não tenho certeza se esse é o método aprovado pelo systemd. Existe alguma outra maneira de expressar a dependência?

    
por Nicholas Clark 05.08.2016 / 19:18

1 resposta

2

Você pode criar um serviço fictício "executar uma vez" que sites entre eles.

No meu caso, eu tenho um problema com xinetd e NFS (o xinetd é iniciado antes dos sistemas de arquivos NFS serem montados, então alguns dos serviços não são iniciados). Eu kludged isso com um arquivo /lib/systemd/system/fix-xinetd-nfs-dependency.service

[Unit]
Description=Make xinetd wait for NFS otherwise it can not start services
After=remote-fs.target
Before=xinetd.service

[Service]
Type=oneshot
ExecStart=/bin/true

[Install]
WantedBy=multi-user.target

Depois de criar seu serviço (ter as linhas Before e After refletem seus requisitos), você pode systemctl enable it ... e com sorte isso será executado antes do seu VMs começaram e seus sistemas de arquivos samba estão disponíveis!

    
por 05.08.2016 / 20:34