Pt BR/Docs/Fedora7VirtQuickStart

From FedoraProject

Jump to: navigation, search

Contents

Virtualização no Fedora 7

Warning (medium size).png
ATENÇÃO
Esta página foi traduzida para português do Brasil a partir da página Docs/Fedora7VirtQuickStart e ainda não foi completamente revisada e, portanto, pode conter erros.

O Fedora 7 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 7 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

  • Para o Xen, é requerido o GRUB, o gerenciador de inicialização padrão[[FootNote(Isto é necessário porque o sistema atualmente inicia o hipervisor Xen e este então inicia o kernel Linux. Isto é feito usando o padrão MultiBoot.)]
  • Para o KVM, o sistema deve ter um processador com suporte a virtualização.
  • Espaço de armazemanto suficiente para os sistemas operacionais hóspedes. Um sistema Fedora modo texto mínimo requer em torno de 600 MB de armazenamento, um desktop Fedora padrão requer em torno de 3 GB.
  • De maneira geral, pelo menos 256 MB de RAM por hóspede mais 256 MB para o sistema operacinoal base. Na prática, é difícil trabalhar com virtualização com menos de 1 GB de RAM.

Requerimentos para Hóspedes Para-virtualizados

Warning (medium size).png
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:

  • $ grep pae /proc/cpuinfo
    
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':

  • ....For Intel....
    

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
Warning (medium size).png
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 7 o Xen pode ser instalado selecionando "Virtualização" no grupo "Sistema Básico" no instalador.

Para uma instalação do Fedora 7 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:

  • # yum groupinstall 'Virtualization'

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 7, o KVM pode ser instalado selecionando "KVM" no grupo "Virtualização" da categoria "Sistema Básico", no instalador.

Para instalações existentes do Fedora 7, 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:

  • # yum install kvm virt-manager qemu

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:

  • # uname -r
    

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.

Warning (medium size).png
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.

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 7, a instalação de sistemas hóspedes Fedora 7 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.

Warning (medium size).png
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 xm 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 7 no formato usado pelo Anaconda. Locais NFS, FTP e HTTP são suportados. Exemplos incluem:
Note.png
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 virt-manager ou na linha de comando usando o virsh.

=== 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 virt-manager consult o website do projeto.

Erros na ferramenta virt-manager devem ser reportados no componente 'virt-manager' do 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 virsh. O virsh é construído com base na API de gerenciamento libvirt e tem uma série de vantagens sobre a tradicional ferramenta xm do Xen:

Para iniciar uma nova máquina virtual a partir de um arquivo XML de definição de máquina virtual:

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

Para desligar normalmente um hóspede digite:

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

Para restaurar um estado salvo anteriormente:

Para exportar um arquivo XML de configuração associado com a 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 do virsh(1).

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'.

=== Gerenciando Máquinas Virtuais na linha de comando com o 'xm' ===

Além do comando virsh, as máquinas virtuais também podem ser gerenciadas na linha de comando com o utilitário xm, específico para o Xen. Para ligar uma máquina e adicionar um console serial, digite:

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

Para desligar um hóspede, digite:

Para salvar o estado de uma máquina para um arquivo:

Para restaurar um estado salvo anteriormente:

Para exibir estatísticas no estilo do top para todas as máquinas ativas:

Para uma lista completa dos comandos disponíveis para usar com o xm digite:

Erros na ferramenta xm devem ser reportados no BugZilla, no componente 'xen'.

= 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.

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: 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

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 /etc/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.

Warning (medium size).png
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 /boot e um volume LVM contendo o resto. Eles tornam-se acessíveis a partir de /dev/mapper:

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 ...

{{Admon/warning | 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 ==

<pre> Error: Error connecting to xend: Connection refused. Is xend running?

Alternatively, I run xend start manually and get the following error:

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é

Retrieved from "https://fedoraproject.org/w/index.php?title=Pt_BR/Docs/Fedora7VirtQuickStart&oldid=30964"