[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: KVM - Sequenciar boot



Olá,

Isso estamos falando de fazer script e nós gerenciarmos isso.
Estava procurando algo nas próprias ferramentas.
Consigo colocar lá um autostart, mas iniciam juntas.
Acho que terei que fazer um script na linha do Helio pra resolver isso, removendo do autostart.

Obrigado a todos!

Sérgio Abrantes

Em 23 de fevereiro de 2016 10:44, Helio Loureiro <helio@loureiro.eng.br> escreveu:
Esqueci mas... depois que inicio as controladoras, daí eu inicio as payloads.

for id in 3 4
    do
    virsh start pl-$id
done


Em 23 de fevereiro de 2016 14:43, Helio Loureiro <helio@loureiro.eng.br> escreveu:
Eu uso em geral 4 VMs, 2 controladoras e 2 payloads.  Eu uso um script que faz algo como:

for id in 1 2
   do
   virsh start sc-$id
done

E depois eu rodo um teste com python, pexpect e unittest pra ver se a porta ssh está ativa.  Algo como:

#! /usr/bin/python -u
import unittest
import pexpect
import time
import sys
import os
import telnetlib

SC1 = "192.168.0.1"
SC2 = "192.168.02.2"
ssh_port = 22
timeout = 10 # seconds

# unbuffered
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)

class MyVMTestCase(unittest.TestCase):
    
    def test_1(self):
        """
        Checking if node is up after while
        """
        print "Checking if nodes are up (testing ssh port)"
        for controller in [ SC1, SC2 ]:
            print "    Checking node %s" % controller
            counter = 15 # minutes
            isConnected = False
            while (counter):
                print "trying to connect...",
                try:
                    t = telnetlib.Telnet(
                        controller, 
                        ssh_port,
                        timeout)
                    t.read_until("SSH", timeout)
                    isConnected = True
                    print " ... connected!"
                    print "    Node %s is up and ready for connection" % controller
                    self.assertTrue(isConnected)
                    break
                except:
                    print "      ... connection failed (%d)" % counter
                    pass
                if (counter == 0):
                    print "    Timeout reached"
                    self.assertTrue(isConnected)
                    break
                else:
                    counter -= 1
                    time.sleep(60) # 1 minute
    
if __name__ == "__main__":
    unittest.main()

O unittest é porque eu estou rodando no jenkins e o relatório sai mais bonitinho.



Em 23 de fevereiro de 2016 13:16, Linux - Junior Polegato <linux@juniorpolegato.com.br> escreveu:
Em 22-02-2016 21:43, Sérgio Abrantes Junior escreveu:
Olá a todos,
Possuo um Debian 8 onde virtualizo 2VMs.
Precisava sequenciar o boot. Exemplo: Inicia uma VM, depois outra.
Uso Qemu-KVM e gerencio com virt-namager.
Procurei em um monte de lugares, mas não encontrei.
Alguém já fez isso?

Olá!

        No virt-manager você marca ambas para autostart e pronto. Contudo elas iniciarão praticamente juntas, e não uma "depois" outra, aliás esse "depois" é subjetivo, o que seria isso, um tempo depois, quando a outra VM atingir processamento ou I/O abaixo de um treshold? Isso é meio subjetivo.

--

[]'s

Junior Polegato




Reply to: