Como eu me conecto ao meu libvirt / qemu / guests? (sem endereço IP)

1

Eu herdei a administração de um servidor ubuntu confiável com vários servidores virtuais, também o ubuntu usando libvirt e qemu. Eu tenho o problema que não consigo conectar a esses servidores / convidados virtuais.

A senha do root era desconhecida da caixa física e então eu tive que recuperar isto (o que pode ter quebrado coisas) usando um Knoppix Live CD (como ele lida com discos / imagens LVM2 e Raided) e fiz um chroot e troquei senha. Desde então (coincidência?) Os convidados parecem não ter endereços IP.

Quando olho para a saída 'ifconfig vnet0' não há um endereço IP atribuído e a contagem de RX / TX é 0. Isso parece estar errado (talvez a ponte da rede virtual esteja com problemas ou os convidados não estejam funcionando).

O virbr0 tem um endereço IP e a contagem TX aumenta quando tento pingar um endereço IP que deve ser atribuído a vnet0. Então a rede virtual parece ok.

Quando faço 'lista virsh --all' vejo que os convidados estão correndo. Eu também vejo os processos com um 'ps -eaf | grep libvirt '. Então os convidados parecem existir. (Mas eles estão correndo?)

O comando 'shutdown' não encerra os convidados. No entanto, isso pode ser válido (sem apcid). O 'destroy' e 'start' funcionam, mas novamente não tenho certeza se os convidados estão rodando o suficiente para chegar ao ponto de inicializar a rede ou não.

Eu tentei 'consolar o GuestMachine' de dentro do virsh, mas isso pendurou, eu acho que preciso ter o getty rodando na máquina de convidado.

A saída do ps também mostra '-vnc 127.0.0.1:9'. No entanto, todos os servidores, incluindo o físico, não possuem uma GUI / X. Eu acho que o VNC é apenas gráfico e, assim, esse caminho talvez seja outro beco sem saída.

Em '/var/log/libvirt/qemu/GuestMachine.log' não há nada de nota. Eu vejo o 'desligar', 'start up', opções de linha de comando e 'dispositivo char redirecionado para / dev / pts / 13 (label charserial0)'.

Esta é a minha primeira introdução ao libvirt e ao qemu, e depois de um pouco de pesquisa não tenho certeza se tenho convidados em execução ou como me conectar a eles (sem a opção IPAddress / ssh).

Depois que eu puder me conectar aos convidados, tenho certeza de que posso corrigir o problema do endereço IP, mas sem um endereço IP não consigo me conectar aos convidados.

Nesta situação, existe uma maneira de se conectar aos convidados?

    
por LazyBrush 01.09.2015 / 10:03

2 respostas

0

Como MadHatter declarou a resposta foi usar o VNC. No entanto, sem ter o X no servidor, precisamos usar o ssh para fazer o tunelamento até os convidados.

ssh -v L 5901:127.0.0.1:5901 user@GuestMachine

Quando você se conecta (na máquina onde você executa o ssh) à porta 5901, ele passa pelo túnel para o GuestMachine e se conecta à porta 5901 no loopback (no GuestMachine).

-

No entanto, para mim isso não funcionou. O OSX embutido no VNC ficou suspenso, e o RealVNC rodando no OSX saiu de forma desregrada. É onde cavamos fundo e pegamos o Wireshark e começamos a olhar para os pacotes.

Eu não tinha certeza se o OSX estava fazendo algo bobo com firewall ou alguma outra manipulação inteligente, então eu realmente fiz o ssh no linux box. Minha configuração completa foi então.

OSX(with VNC) ---Linux(with ssh)======Server(no GUI)--Guest(qemu)

No Linux, rastreei os pacotes de rede, filtro no endereço IP do OSX ou vnc para ver os pacotes vnc.

O VNC protocolo RFB foi usado para ver que o VNC havia saído no estágio de segurança ao usar o padrão 'Let' Servidor VNC, escolha 'on VNC Viewer. Eu mudei isso para 'Prefer off' e, embora visualmente o mesmo (saída deselegante), havia mais pacotes de rede.

Olhando mais de perto os pacotes de rede. Quando o servidor enviou 'Server framebuffer parameters' e o cliente enviou 'Client set pixel format' (também 'client set encodings' e 'client frame buffer update request' ambos os lados fizeram um FIN / ACK.

Olhando estes pacotes viu o servidor pedindo 'True color flag: true' e o cliente tinha isto como falso. Volte para VNC Viewer no OSX selecionando 'Options ...' e então 'Expert' vá até ColorLevel e mude isto de 'pal8' para 'full'.

Depois de tudo isso e eu consegui me conectar com o VNC ao convidado! Eu pude então ver que o convidado do qemu estava preso na tela do GRUB. Estar preso no carregador de boot era porque não havia endereço IP. (Mas a razão para isso é outra questão ...)

    
por 04.09.2015 / 14:11
1

vnc não se limita a apresentar uma GUI; Ele também pode apresentar uma visualização gráfica de um prompt de shell, exatamente como você esperaria ver no console de texto de uma caixa autônoma (por exemplo, ALT-F2).

Por exemplo, aqui estou eu apontando um visualizador vnc na porta VNC de uma das minhas imagens QEMU hospedadas localmente:

É, como você vê, um console não-GUI, mas eu poderia felizmente entrar aqui mesmo assim, mesmo que não tivesse nenhum endereço IP (como na verdade isso não acontece). Aponte seu visualizador VNC na porta 5909 (adicione 5900 ao argumento de -vnc 127.0.0.1: ) e você deve estar bem.

    
por 01.09.2015 / 10:05