Pt BR/Docs/Fedora8VirtQuickStart

From FedoraProject

Jump to: navigation, search
ATENÇÃO
Esta página foi traduzida para português do Brasil a partir da página Docs/Fedora8VirtQuickStart e ainda não foi completamente revisada e, portanto, pode conter erros.

Contents

Virtualização no Fedora 8

O Fedora 8 inclui suporte a ambas as plataformas de vitualização Xen e KVM. Para mais informações sobre as diferentes plataformas de virtualização veja http://virt.kernelnewbies.org/TechComparison.

Mais informações sobre o Xen propriamente dito podem ser encontradas em http://wiki.xensource.com/xenwiki/ e a página sobre o Xen do Fedora. Mais informações sobre o KVM podem ser encontradas em http://kvm.qumranet.com/kvmwiki.

O Fedora está seguindo a linha do Xen 3.0.x. O Xen 3.0.0 foi lançado em Dezembro de 2005 e é incompatível com os hóspedes criados nas versões 2.0.x do Xen.

Introdução

A configuração de hóspedes Xen no Fedora 8 sofreu algumas mudanças sigficativas e melhorias desde o lançamento do Fedora Core 6. Este guia explica como configurar o Xen e o KVM e como criar e gerenciar novos hóspedes usando tanto a linha de comando quanto a interface gráfica.

Requerimentos de Sistema

Requerimentos para Hóspedes Para-virtualizados

Apenas o Xen suporta hóspedes para-virtualizados. O KVM utiliza virtualização completa.

Qualquer processador x86_64 ou IA64 é suportado para rodar hóspedes para-virtualizados com o Xen. Para hardware i386, um procesador com a extensão PAE é requerido. Muitos laptops antigos (particularmente aqueles baseados no Pentium Mobile/Centrino) não possuem suporte a PAE. Para verificar se um processador possui suporte a PAE, execute o seguinte comando:

flags  : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow up ts

A saída acima mostra um processador que possui suporte a PAE. Se o comando não retornar nada, o processador não possui suporte a PAE.

Hóspedes Completamente Vitualizados (HVM/Intel-VT/AMD-V)

Para rodar hóspedes completamente virtualizados no Xen ou no KVM, o processador do servidor precisa ter suporte a isso. Isto é tipicamente relacionado a tecnologias como Intel VT ou AMD-V. Para verificar pelo suporte a Intel VT procure pelo indicador 'vmx' ou, para verificar o suporte a AMD-V, procure pelo indicador 'svm':

flags  : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm

....For AMD....

flags  : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm cr8_legacy
Em alguns sistemas Intel, o suporte a virtualização precisa ser habilitado na BIOS. Por favor certifique-se de que isso seja feito antes de mais nada.

Convenções

Comandos que requerem privilégios de root são precedidos do caracter '#'. Para tornar-se root, execute o comando 'su -' como um usuário normal e entre com a senha de administrador.

Instalando o Xen

Durante uma nova instalação do Fedora 8 o Xen pode ser instalado selecionando Virtualização no grupo "Sistema Básico" no instalador.

Para uma instalação do Fedora 8 já existente o kernel do Xen e as ferramentas podem ser instaladas abrindo o Gerenciador de Pacotes em "Aplicações" / "Adicionar/Remover Programas", selecionando "Virtualização" no grupo "Sistema Básico" e clicando em "Aplicar", ou ainda executando o seguinte comando:

Tanto o Gerenciador de Pacotes quanto o Yum instalarão os pacotes requeridos e suas dependências. O pacote 'kernel-xen' contem o kernel com o Xen habilitado para ambos os sistemas operacionais hóspede e hospedeiro, bem como o hipervisor. O pacote 'xen' também será instalado, ele contém as ferramentas do espaço do usuário para interagir com o hipervisor.

Uma vez que isto esteja feito, deverá haver uma entrada no arquivo /boot/grub/grub.conf para iniciar o kernel Xen. Este kernel não é definido como a opção padrão de inicialização.

Para definir o kernel Xen como a opção padrão no GRUB, edite o arquivo /boot/grub/grub.conf e defina o padrão para o kernel Xen[[FootNote(Note que os pacotes kernel-xen instalados no futuro podem ser definidos como padrão editando o arquivo /etc/sysconfig/kernel.)]  :

Este é um arquivo /boot/grub/grub.conf de exemplo configurado para iniciar no hipervisor Xen:

default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Fedora (2.6.20-2925.5.fc7xen) root (hd0,0) kernel /xen.gz-2.6.20-2925.5.fc7 module /vmlinuz-2.6.20-2925.5.fc7xen ro root=/dev/VolRoot/LogVolRoot rhgb quiet module /initrd-2.6.20-2925.5.fc7xen.img title Fedora (2.6.20-1.3084.fc7) root (hd0,0) kernel /vmlinuz-2.6.20-1.3084.fc7 ro root=/dev/VolRoot/LogVolRoot rhgb quiet initrd /initrd-2.6.20-1.3084.fc7.img

Instalando o KVM

Durante uma nova instalação do Fedora 8, o KVM pode ser instalado selecionando "KVM" no grupo "Virtualização" da categoria "Sistema Básico", no instalador.

Para instalações existentes do Fedora 8, o pacote do KVM e as ferramentas de virtualização podem ser instaladas abrindo o Gerenciados de Pacotes em "Aplicações" / "Adicionar/Remover Programas", selecionando "Virtualização" no grupo "Sistema Básico", clicando em "Pacotes Opcionais", selecionando "kvm" e clicando em "Aplicar", ou então executando o seguinte comando:

Isto instala os pacotes requeridos e suas dependências. Note que o KVM é incluído no kernel regular; não é necessário iniciar o computador usando um kernel especial.

Ativando o Xen

Uma vez que o sistema esteja iniciado com o kernel Xen, verifique se o kernel e o Xen estão rodando:

2.6.20-2925.5.fc7xen

Name ID Mem(MiB) VCPUs State Time(s)

Domain-0 0 610 1 r----- 12492.1

A saída acima deve mostrar que o kernel Xen está rodando e que o Domain-0 (o sistema operacional hospedeiro) está rodando.

Note que, para a configuração padrão, a rede para o sistema operacinoal hóspede (DomU) utiliza bridge. Isto significa que os DomU's pegarão um IP da mesma rede que o Dom0. Se um servidor DHCP fornecer endereços, ele precisa estar configurado para fornecer endereços para os hóspedes. Outro tipo de configuração de rede pode ser selecionada editando o arquivo /etc/xen/xend-config.sxp.

Configurando Gerenciamento Remoto

O Fedora 10 incluir a habilidade de gerenciar domínios virtuais de maneira segura a partir de servidores remotos. Para usar esses recursos, selecione um dos seguinte métodos para o servido remoto comunicar-se com o hipervisor:

 * Crie chaves SSH para o root e use o ssh-agent e ssh-add antes de executar o virt-manager;

Ativando o KVM

Após o pacote do KVM estar instalado, o sistema deverá ser reiniciado para carregar os módulos do KVM. Nenhuma outra ação é necessária para ativar o KVM.

Criando um Sistema Hóspede Fedora

Com o Fedora 8, a instalação de sistemas hóspedes Fedora 8 usando o Anaconda é suportada. A instalação pode ser iniciada na linha de comando através do programa virt-install ou na interface gráfica usando o programa virt-manager.

Se o sistema tiver iniciado no kernel Xen, o virt-manager usará o Xen como plataforma subjacente. Se o sistema for iniciado usando o kernel regular, o KVM será usado. Para ativar o KVM quando o virt-manager estiver rodando no modo QEMU, marque a caixa "Usar aceleração por hardware" no assistente.

Criando um Sistema Hóspede Fedora usando o virt-install

Inicie o processo de instalação interativa rodando o programa de linha de comando virt-install:

As seguintes questões sobre o novo sistema operacional hóspede serão apresentadas. Estas informações também podem ser passadas como opções na linha de comando; rode com o argumento --help para mais detalhes. Em particular, opções do kickstart podem ser passadas com -x ks=[opções] .

  1. What is the name of your virtual machine? Este é o rótulo que identifica o sistema operacional hóspede. Este rótulo será usado em vários comandos virsh e também aparecerá no virt-manager, o mini-aplicativo Xen do painel do Gnome. Adicionalmente, este nome será o mesmo do arquivo /etc/xen/[nome] que armazena as informações de configuração do hóspede.
  2. How much RAM should be allocated (in megabytes)? Esta é a quantidade de memória RAM a ser alocada para a instância hóspede, em megabytes (e.g., 256). Note que a instalação com menos de 256 megabytes não é recomendada.
  3. What would you like to use as the disk (path)? O caminho local e o nome do arquivo para servir como imagem de disco para o hóspede (e.g., /home/joe/xenbox1). Isto será exportado como um disco inteiro para o seu hóspede.
  4. How large would you like the disk to be (in gigabytes)? O tamanho do disco virtual para o hóspede (aparece apenas se o arquivo especificado acima ainda não existir). 4 GB é um valor razoável para uma instalação padrão.
  5. Would you like to enable graphics support (yes or no): O instlador gráfico deve ser usado?
  6. What is the install location? Este é o caminho para uma árvore de instalação do Fedora 8 no formato usado pelo Anaconda. Locais NFS, FTP e HTTP são suportados. Exemplos incluem:
A instalação precisa ser um tipo de rede. Não é possível instalar a partir de um disco local ou um CD-ROM. É possível, no entanto, definir uma árvore de instalação no sistema operacional hospedeiro e então exportá-lo como um compartilhamento NFS.

A instalação então terá início. Se os gráficos tiverem sido habilitados uma janela do VNC será aberta e apresentará o instalador gráfico. Se os gráficos não foram habilitados o instalador em modo texto padrão será exibido. Proceda normalmente com a instalação.

Criando um Sistema Hóspede Fedora usando o virt-manager

Inicie o "Gerenciador de Máquina Virtual" selecionando-o a partir do menu "Aplicações' / "Ferramentas do Sistema", ou rodando o seguinte comando, como root:

Criando um Sistema Hóspede Fedora usando Cobbler e Koan

O Cobbler é uma ferramenta para configurar e provisionar um servidor para PXE, Xen e sistemas existentes. Visite http://cobbler.et.redhat.com para obter mais detalhes. As instruções a seguir são básicas e mais opções estão disponíveis.

Primeiramente, configure um provedor:

Alternativamente, o Cobbler pode importantar um espelho rsync do Fedora e criar perfis automaticamente a partir deles. Algumas das distribuições importadas serão perfis do Xen e algumas serão para uso no servidor hospedeiro. O uso de perfis Xen será requerido. Veja a página de manual para detalhes.

cobbler sync

No sistema que hospeda a imagem:

== Pós-Instalação ==

Quando a instalação do sistema operacional hóspede estiver completa ele pode ser gerenciado graficamente com o <code>virt-manager</code> ou na linha de comando usando o <code>virsh</code>.

=== Gerenciando Máquinas Virtuais Graficamente com o virt-manager ===

Inicie o "Gerenciador de Máquina Virtual" selecionando-o no menu "Aplicações" / "Ferramentas do Sistema" ou executando o seguinte comando:

{1} Se você não for o root será solicitada a digitação da senha de administrador. Selecione "Executar sem privilégios" para operar no modo de somente leitura.

Para mais informações sobre o <code>virt-manager</code> consulte o [http://virt-manager.et.redhat.com/ website do projeto] .

Erros na ferramenta <code>virt-manager</code> devem ser reportados no componente 'virt-manager' do [http://bugzilla.redhat.com/ Bugzilla] .

=== Gerenciando Máquinas Virtuais pela linha de comando com o virsh ===

As máquinas virtuais podem ser gerenciadas pela linha de comando com o utilitário <code>virsh</code>. Ele é construído com base na API de gerenciamento <code>libvirt</code> e tem uma série de vantagens sobre a tradicional ferramenta <code>xm</code> do Xen:

Para iniciar uma máquina virtual:

Para listar as máquinas virtuais que estão rodando atualmente:

Para desligar normalmente um hóspede:

Para salvar o estado da máquina em um arquivo:

Para restaurar um estado salvo anteriormente:

Para exportar o arquivo de configuração de uma máquina virtual:

Para obter a lista completa dos comandos disponíveis para uso com o virsh digite:

Ou consulte a página de manual: man 1 virsh.

Erros no virsh devem ser reportados no Bugzilla , no componente 'libvirt'.

Gerenciando Máquinas Virtuais na linha de comando com o qemu-kvm

As máquinas virtuais KVM podem ser gerenciadas na linha de comando usando o comando qemu-kvm.

Resolução de Problemas

SELinux

A política do SELinux no Fedora 8 possui as regras necessárias para permitir o uso do Xen com o SELinux habilitado. O principal cuidado que se deve tomar é com relação aos arquivos de imagem de disco que precisam estar num diretório especial - /var/lib/xen/images. Isto se aplica tanto a imagens de disco regulares quanto a imagens ISO. Partições de disco normais já são rotuladas corretamente e passam na verificação do SELinux.

Arquivos de Log

Há dois arquivos de log no sistema hospedeiro para auxiliar na resolução de problemas relacionados ao Xen. O arquivo /var/log/xen/xend.log guarda a mesma informação obtida com o comando xm log. Infelizmente essas mensagens de log são muito curtas e contém muito pouca informação útil. Segue abaixo a saída gerada na tentativa de criar um domínio rodando o kernel para o NetBSD/xen.

[2005-06-27 02:23:02 xend] ERROR (SrvBase:163) op=create: Error creating domain:(0, 'Error') Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvBase.py", line 107, in _perform val = op_method(op, req) File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDomainDir.py", line 71, in op_create raise XendError("Error creating domain: " + str(ex))

XendError: Error creating domain: (0, 'Error')

O segundo arquivo, /var/log/xen/xend-debug.log contem informações muito mais detalhadas. A tentativa de iniciar um domínio NetBSD/xen resultará na seguinte saída de log:

ERROR: Will only load images built for Xen v3.0 ERROR: Actually saw: 'GUEST_OS=netbsd,GUEST_VER=2.0,XEN_VER=2.0,LOADER=generic,BSD_SYMTAB'

ERROR: Error constructing guest OS

Quando reportar erros, sempre inclua os registros gravados no arquivos /var/log/xen/xend.log e /var/log/xen/xend-debug.log.

Se os domínios foram completamente virtualizados (i.e., para rodar sistemas operacionais não-modificados) também haverá logs em /var/log/xen/qemu-dm*.log que contém informações úteis.

Por fim, os logs do hipervisor podem ser vistos com o seguinte comando:

Console Serial

Acesso ao console serial hospedeiro

No caso de problemas mais difíceis o console serial pode ser muito útil. Se o kernel do próprio Xen tiver parado e o hipervisor tiver gerado um erro, não há como gravar o erro de maneira persistente localmente. Nesse caso, o console serial lhe permite capturar o erro em uma máquina remota.

O servidor Xen precisa estar com o console serial configurado e é necessário haver um servidor remoto para capturá-lo. Para habilitar a console, ajuste as opções apropriadas no arquivo /etc/grub.conf.

title Fedora Core (2.6.17-1.2600.fc6xen) root (hd0,2) kernel /xen.gz-2.6.17-1.2600.fc6 com1=38400,8n1 sync_console module /vmlinuz-2.6.17-1.2600.fc6xen ro root=LABEL=/ rhgb quiet console=ttyS0 console=tty pnpacpi=off module /initrd-2.6.17-1.2600.fc6xen.img

para um console serial 38400 bps na COM1 (i.e., /dev/ttyS0 no Linux.) A opção sync_console contorna um problema que causa travamento no console assíncrono no hipervisor e a opção pnpacpi=off contorna um problema que pára a entrada via console serial. As opções console=ttyS0 console=tty fazem os erros do kernel serem logados tanto no console VGA normal quando na console serial. Uma vez feito isso, instale e configura o ttywatch para capturar a informação em um servidor remoto conectado por um cabo "null-modem" padrão. Por exemplo, no servidor remoto:

Isso gravará a saída de /dev/ttyS0 no arquivo /var/log/ttywatch/myshost.log.

Acesso ao console serial de hóspedes paravirtualizados

Os sistemas operacionais hóspedes para-virtualizados terão um console serial configurado automaticamente e acessíveis através do sistema operacionais do Domain-0 através da linha de comando da seguinte forma:

Alternativamente, pode-se usar o programa gráfico virt-manager para exibir o console serial. Apenas abra a janela 'Console' ou 'Detalhes' para o hóspede e selecione 'Visualização / Console serial' na barra de menus.

Acesso ao console serial de hóspedes completamente virtualizados

Os sistemas operacionais hóspedes completamente virtualizados terão um console serial configurado, mas o kernel hóspede não estará configurado para usá-lo. Para habilitar o console m um hóspede Linux completamente virtualizado edite o arquivo /boot/grub/grub.conf no hóspede e adicione a opção console=ttyS0 console=tty0. Isto garante que todas as mensagens do kernel serão enviadas para o console serial e para o console gráfico regular. O console serial pode ser então acessado da mesma forma que os hóspedes paravirtualizados:

Alternativamente, pode-se usar o programa gráfico virt-manager para exibir o console serial. Apenas abra a janela 'Console' ou 'Detalhes' para o hóspede e seleecione 'Visualização / Console serial' na barra de menus.

Acessando os dados em uma imagem de disco de hóspede

Há duas ferramentas que podem ajudar bastante o acesso aos dados em uma imagem de disco de hóspede: lomount e kpartx.

Lembre-se de nunca fazer isso enquanto o hóspede estiver ativo e funcionando, pois o sistema de arquivos pode ser corrompido.

lomount

O lomount só funciona com imagens de disco pequenas e não lida com volumes LVM, portanto, para casos mais complexos, o kpartx (incluído no pacote "device-mapper-multipath") é uma melhor alternativa.

kpartx

add map guest1p1 : 0 208782 linear /dev/xen/guest1 63 add map guest1p2 : 0 16563015 linear /dev/xen/guest1 208845

Note que isto só funciona para dispositivos de bloco, não para imagens instaladas em arquivos regulares. Para usar arquivos de imagem, configure um dispositivo loopback para o arquivo primeiro:

/dev/loop0 add map loop0p1 : 0 208782 linear /dev/loop0 63 add map loop0p2 : 0 12370050 linear /dev/loop0 208845

Neste caso nós adicionamos uma imagem formatada como uma instalação padrão do Fedora, então ela tem duas partições: uma <code>/boot</code> e um volume LVM contendo o resto. Eles tornam-se acessíveis a partir de <code>/dev/mapper</code>:

brw-rw---- 1 root disk 253, 6 Jun 6 10:32 xen-guest1 brw-rw---- 1 root disk 253, 14 Jun 6 11:13 guest1p1 brw-rw---- 1 root disk 253, 15 Jun 6 11:13 guest1p2

Para acessar os volumes LVM da segunda partição, reanalise o volume com o vgscan e ative o grupo de volumes naquela partição (chamado "VolGroup00" por padrão) com vgchange -ay:

Reading all physical volumes. This may take a while... Found volume group "VolGroup00" using metadata type lvm2 2 logical volume(s) in volume group "VolGroup00" now active LV VG Attr LSize Origin Snap% Move Log Copy% LogVol00 VolGroup00 -wi-a- 5.06G LogVol01 VolGroup00 -wi-a- 800.00M ...

Nota
lembre-se sempre de desativar os volumes lógicos com vgchange -an, remover as partições com kpartx -d e, se for o caso, remover o dispositivo de loopback com losetup -d após seguir os passos acima. O nome padrão do grupo de volumes para uma instalação do Fedora é sempre o mesmo, isto é importante para evitar a ativação de dois grupos de volume de mesmo nome ao mesmo tempo. O LVM fará o melhor que ele pode, mas não é possível distingüir entre esses dois grupos na linha de comando. Além disso, se o grupo de volumes está ativo no servidor e no hóspede ao mesmo tempo, pode haver currupção do sistema de arquivos.

Perguntas Freqüentes

Error: Error connecting to xend: Connection refused.  Is xend running?

Por outro lado, eu executo xend start manualmente e tenho o seguinte erro:

ERROR: Could not obtain handle on privileged command interface (2 = No such file or directory)
Traceback (most recent call last):
File "/usr/sbin/xend", line 33, in ?
from xen.xend.server import SrvDaemon
File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDaemon.py", line 21, in ?
import relocate
File "/usr/lib/python2.4/site-packages/xen/xend/server/relocate.py", line 26, in ?
from xen.xend import XendDomain
File "/usr/lib/python2.4/site-packages/xen/xend/XendDomain.py", line 33, in ?
import XendDomainInfo
File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 37, in ?
import image
File "/usr/lib/python2.4/site-packages/xen/xend/image.py", line 30, in ?
xc = xen.lowlevel.xc.xc()
RuntimeError: (2, 'No such file or directory')

R: Você reiniciou o servidor em um kernel que não é do hipervisor do Xen. Sim, eu fiz o teste :) Você precisa selecionar o kernel do hipervisor do Xen na hora de iniciar o sistema ou então definir esse kernel como o padrão no arquivo de configuração /etc/grub.conf.

A. Geralmente isso é uma indicação de que a imagem do kernel que você está usando para tentar iniciar o hóspede é incompatível com o hipervisor. Isso acontecerá se você tentar executar um kernel do Fedora Core 5 (não-PAE) no Fedora Core 6 (apenas PAE) ou se tentar rodar um kernel sem suporte a Xen.

A. O nome padrão do pacote do kernel pode ser definido em /etc/sysconfig/kernel. Se ele estiver definido para 'kernel-xen', o kernel do Xen será sempre definido como o padrão no grub.conf.

Obtendo Ajuda

Se a seção Resolução de Problemas acima não lhe ajudar a resolver o seu problema, procure no Bugzilla da Red Hat para problemas reportados no Xen no Fedora 8. O produto é "Fedora" e o componente é "kernel" para problemas relacionados com o kernel do Xen e "xen" para problemas relacionados com as ferramentas relacionadas. Essas notificações contém conselhos úteis dos camaradas que testam o Xen e descrevem como contornar alguns problemas.

Para questões gerais e informações úteis sobre o Xen verifique a documentação do projeto Xen e os arquivos da sua lista de discussão.

Por fim, as discussões sobre o suporte ao Xen no Fedora acontecem na lista de discussão Fedora Xen.

Referências

Notas de Rodapé