Edição 5.8
1801 Varsity Drive
Raleigh, NC 27606-2072 USA
Phone: +1 919 754 3700
Phone: 888 733 4281
Fax: +1 919 754 3701
ftpd
seguroNegrito Espaço Único
(Mono-spaced Bold)
Para ver o conteúdo do arquivomy_next_bestselling_novel
em sua pasta de trabalho atual, insira o comandocat my_next_bestselling_novel
na janela de solicitação e pressione Enter para executar o comando.
Pressione Enter para executar o comando.Pressione Ctrl+Alt+F2 para mudar para o primeiro terminal virtual. Pressione Ctrl+Alt+F1 para voltar para sua sessão do X-Windows.
Negrito de Espaço Único (Mono-spaced Bold)
. Por exemplo:
Classes baseadas em arquivo, incluemfilesystem
para sistemas de arquivo,file
para arquivos, edir
para diretórios. Cada classe possui seu conjunto próprio de permissões associadas.
Escolha Preferências de Mouse. Na aba Botões, clique na caixa de seleção Mouse para mão esquerda e clique em para mudar o botão do mouse anterior da esquerda para a direita (deixando-o assim, mais adequado para o uso do canhoto).→ → a partir da barra de menu para obterPara inserir um caractere especial em um arquivo gedit, escolha → → a partir da barra de menu principal. Depois, escolha a opção → a partir da barra de menu Mapa de Caracteres , digite o nome do caractere no campo Pesquisar e clique em . O caractere que você buscou estará em destaque na Tabela de Caracteres. Clique novamente nestes caracteres realçados para colocá-los no campo Texto para cópia e depois clique em . Agora mude novamente para seu documento e escolha → a partir da barra de menu do gedit.
Itálico em Negrito de Espaço Único (Mono-spaced Bold Italic)
ouItálico em Negrito Proporcional (Proportional Bold Italic)
Para conectar-se à uma máquina remota usando o ssh, digitessh
na janela de comandos. Por exemplo, considre que a máquina remota sejanome do usuário
@domain.name
example.com
e seu nome de usuário nesta máquina seja john, digitessh john@example.com
.O comandomount -o remount
remonta o sistema de arquivo nomeado. Por exemplo, para remontar o sistema de arquivofile-system
/home
, o comando émount -o remount /home
.Para ver a versão de um pacote instalado, use o comandorpm -q
. Ele retornará um resultado como este:package
.
package-version-release
O Publican é um sistema de publicação do DocBook.
Romano de Espaço Único (Mono-spaced Roman)
e apresentado assim:
books Desktop documentation drafts mss photos stuff svn books_tests Desktop1 downloads images notes scripts svgs
Romano de Espaço Único (Mono-spaced Roman)
, porém são apresentadas e realçadas como a seguir:
package org.jboss.book.jca.ex1; import javax.naming.InitialContext; public class ExClient { public static void main(String args[]) throws Exception { InitialContext iniCtx = new InitialContext(); Object ref = iniCtx.lookup("EchoBean"); EchoHome home = (EchoHome) ref; Echo echo = home.create(); System.out.println("Created Echo"); System.out.println("Echo.echo('Hello') = " + echo.echo("Hello")); } }
5
.
Índice
NFS
, FTP
ou HTTP
/var/lib/libvirt/images/
directory by default. If you use a different directory you must label the new directory according to SELinux policy. Refer to Seção 18.2, “Tecnologia de Virtualização e SELinux” for details.
yum
for more information.
grub.conf
file.
virtio
são dispositivos PCI. Atualmente, os convidados são limitados à um máximo de 32 dispositivos de PCIs. Alguns dispositivos de PCI são especiais para o convidado rodar e estes dispositivos não podem ser removidos. O padrão dos dispositivos requeridos são:
fstab
file, the initrd
file or used by the kernel command line. If less privileged users, especially virtualized guests, have write access to whole partitions or LVM volumes the host system could be compromised.
/dev/sdb
). Virtualized guests with access to block devices may be able to access other block devices on the system or modify volume labels which can be used to compromise the host system. Use partitions (for example, /dev/sdb1
) or LVM volumes to prevent this issue.
phy
possa ter se possuir recursos suficientes.
/etc/modprobe.conf
adicione a seguinte linha:
options loop max_loop=64
# rmmod loop # modprobe loop
Índice
yum
e o Red Hat Network (RHN).
virt-manager
, libvirt
e virt-viewer
e todas as dependências para a instalação.
Padronize os pacotes (se necessário)
%packages
de seu arquivo Kickstart, adicione o seguinte grupo de pacote:
%packages @xen
xen-ia64-guest-firmware
rhn_register
e siga as solicitações.
yum
xen
e pacotes kernel-xen
. O pacote xen
contém o hypervisor e ferramentas de virtualização básicas. O pacote kernel-xen
contém um kernel do Linux modificado, o qual executa como um convidado de máquina virtual em um hypervisor.
xen
e pacotes do kernel-xen
, execute:
# yum install xen kernel-xen
xen-ia64-guest-firmware
) de um DVD de instalação suplementar. Este pacote pode também ser instalado a partir do RHN com o comando yum
:
# yum install xen-ia64-guest-firmware
python-virtinst
virt-install
para criar máquinas virtuais.
libvirt
libvirt
é uma biblioteca API para interagir com os hypervisors. O libvirt
usa a estrutura de virtualização do xm
e a ferramenta da linha de comando do virsh
para gerenciar e controlar as máquinas virtuais.
libvirt-python
libvirt
.
virt-manager
virt-manager
, também conhecido como Gestor de Máquina Virtual, fornece uma ferramenta gráfica para administrar as máquinas virtuais. Ele usa as bibliotecas do libvirt
como o API de gerenciamento.
# yum install virt-manager libvirt libvirt-python python-virtinst
virt-manager
, libvirt
e virt-viewer
para a instalação.
Padronize os pacotes (se necessário)
%packages
de seu arquivo Kickstart, adicione o seguinte grupo de pacote:
%packages @kvm
rhn_register
e siga as solicitações.
yum
kvm
. O pacote kvm
contém o módulo do kernel KVM fornecendo o hypervisor no kernel padrão do Red Hat Enterprise Linux.
kvm
execute:
# yum install kvm
python-virtinst
virt-install
para criar máquinas virtuais.
libvirt
libvirt
é uma biblioteca API para interagir com os hypervisors. O libvirt
usa a estrutura de virtualização do xm
e a ferramenta da linha de comando do virsh
para gerenciar e controlar as máquinas virtuais.
libvirt-python
libvirt
.
virt-manager
virt-manager
, também conhecido como Gestor de Máquina Virtual, fornece uma ferramenta gráfica para administrar as máquinas virtuais. Ele usa as bibliotecas do libvirt
como o API de gerenciamento.
# yum install virt-manager libvirt libvirt-python python-virtinst
virt-install
. Ambos métodos estão inclusos neste capítulo.
virt-install
para criar convidados virtualizados a partir da linha de comando. O comando virt-install
é usado de forma interativa ou como parte de um script para automatizar a criação das máquinas virtuais. O uso do virt-install
com os arquivos Kickstart permite instalações de máquinas virtuais sem a presença de um assistente.
virt-install
fornece diversas opções que você pode passar na linha de comando. Para visualizar a lista completa de opções, execute:
$ virt-install --help
virt-install
também documenta cada opção de comando e variantes importantes.
qemu-img
é um comando relacionado que pode ser usado antes do virt-install
para configurar opções de armazenamento.
--vnc
option which opens a graphical window for the guest's installation.
rhel3support
, a partir de um CD-ROM, com rede virtual e com imagem de dispositivo de bloco baseada em arquivo de 5GB. Este exemplo usa o hypervisor do KVM.
# virt-install --accelerate --hvm --connect qemu:///system \ --network network:default \ --name rhel3support --ram=756\ --file=/var/lib/libvirt/images/rhel3support.img \ --file-size=6 --vnc --cdrom=/dev/sr0
# virt-install --name fedora11 --ram 512 --file=/var/lib/libvirt/images/fedora11.img \ --file-size=3 --vnc --cdrom=/var/lib/libvirt/images/fedora11.iso
virt-manager
, mais conhecido como Gestor de Máquina Virtual, é uma ferramenta gráfica para criar e gerenciar convidados virtualizados.
Open virt-manager
virt-manager
. Launch the application from the menu and submenu. Alternatively, run the virt-manager
command as root.
Optional: Open a remote hypervisor
Create a new guest
New guest wizard
Name the virtual machine
Choose virtualization method
kernel-xen
não for o kernel em execução no momento.
Select the installation method
.iso
file).
HTTP
, FTP
or NFS
.
HTTP
, FTP
or NFS
. The installation media URL must contain a Red Hat Enterprise Linux installation tree. This tree is hosted using NFS
, FTP
or HTTP
.
Installation media selection
ISO image or physical media installation
Network install tree installation
NFS
, FTP
or HTTP
. Optionally, a kickstart file can be specified to automated the installation. Kernel parameters can also be specified if required.
Network boot (PXE)
Storage setup
/var/lib/libvirt/images/
directory by default. In the default configuration, other directory locations for file-based images are prohibited by SELinux. If you use a different directory you must label the new directory according to SELinux policy. Refer to Seção 18.2, “Tecnologia de Virtualização e SELinux” for details.
/var/lib/libvirt/images/
. If you are using a different location (such as /images/
in this example) make sure it is added to your SELinux policy and relabeled before you continue with the installation (later in the document you will find information on how to modify your SELinux policy).
Network setup
Memory and CPU allocation
Verify and start guest installation
virt-manager
. Capítulo 8, Procedimentos de instalação do sistema operacional convidado contains step-by-step instructions to installing a variety of common operating systems.
Criar uma nova ponte
/etc/sysconfig/network-scripts/
. Este exemplo cria um arquivo chamado ifcfg-installation
o qual cria uma ponte chamada installation
# cd /etc/sysconfig/network-scripts/ # vim ifcfg-installation DEVICE=installation TYPE=Bridge BOOTPROTO=dhcp ONBOOT=yes
TYPE=Bridge
, is case-sensitive. It must have uppercase 'B' and lower case 'ridge'.
ifup installation
command can start the individual bridge but it is safer to test the entire network restarts properly.
# service network restart
brctl show
para visualizar detalhes sobre as pontes de rede no sistema.
# brctl show bridge name bridge id STP enabled interfaces installation 8000.000000000000 no virbr0 8000.000000000000 yes
virbr0
é a ponte padrão usada pelo libvirt
para o Network Address Translation (NAT) no dispositivo de Ethernet padrão.
Adicione uma interface à nova ponte.
BRIDGE
para o arquivo de configuração com o nome da ponte criada nos passos anteriores.
# Intel Corporation Gigabit Network Connection DEVICE=eth1 BRIDGE=installation BOOTPROTO=dhcp HWADDR=00:13:20:F7:6E:8E ONBOOT=yes
# service network restart
vif
:
# brctl show bridge name bridge id STP enabled interfaces installation 8000.001320f76e8e no eth1 virbr0 8000.000000000000 yes
Configurações de Segurança
iptables
para permitir que todo o trânsito seja enviado pela ponte.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT # service iptables save # service iptables restart
iptables
. Adicione as seguintes linhas em /etc/sysctl.conf
:
net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0
sysctl
.
# sysctl -p /etc/sysctl.conf
Reinicie o libvirt antes da instalação
libvirt
# service libvirtd reload
virt-install
adicione o parâmetro de instalação --network=bridge:installation
onde instalação é o nome de sua ponte. Para instalações PXE use o parâmetro --pxe
.
# virt-install --accelerate --hvm --connect qemu:///system \ --network=bridge:installation --pxe\ --name EL10 --ram=756 \ --vcpus=4 --os-type=linux --os-variant=rhel5 --file=/var/lib/libvirt/images/EL10.img \
Selecione PXE
Selecione a ponte
Inicie a instalação
virsh update-device Guest1 ~/Guest1.xml
(substituting your guest's name and XML file), and select OK to continue past this step.
kernel-xen
.
virt-manager
, refer to the procedure in Seção 7.2, “Criando convidados com o virt-manager”.
virt-install
. A opção --vnc
exibe a instalação gráfica. O nome do convidado no exemplo é rhel5PV
, o arquivo de imagem de disco é rhel5PV.dsk
e um espelho local das instalações do Red Hat Enterprise Linux 5 é ftp://10.1.1.1/trees/RHEL5-B2-Server-i386/
. Substitua estes valores com os valores corretos para seu sistema e rede.
# virt-install -nrhel5PV
-r 500 \ -f /var/lib/libvirt/images/rhel5PV.dsk
-s 3 --vnc -p \ -lftp://10.1.1.1/trees/RHEL5-B2-Server-i386/
DHCP
(as shown below) or a static IP address:
Número de Instalação
:
rhn_register
. O comando rhn_register
requer um acesso de usuário root.
virt-install
in Seção 8.1, “Instalando um Red Hat Enterprise Linux 5 como um convidado para-virtualizado”. If you used the default example the name is rhel5PV
.
virsh
para reinicializar o convidado:
# virsh reboot rhel5PV
virt-manager
, selecione o nome de seu convidado, clique em , e depois clique em .
kdump
. The use of kdump
is unsupported on para-virtualized guests.
yum
command or RHN. Click .
Abrir virt-manager
virt-manager
. Lance o aplicativo a partir do menu e submenu . Como forma alternativa, execute o virt-manager
como root.
Selecione o Hypervisor
qemu
.
Inicie o novo assistente da máquina virtual
Nome da máquina virtual
Escolha um método de virtualização
Selecione o método de instalação
Localize a Mídia de Instalação
/var/lib/libvirt/images/
directory. Any other location may require additional configuration for SELinux, refer to Seção 18.2, “Tecnologia de Virtualização e SELinux” for details.
Configuração do Armazenamento
/var/lib/libvirt/images/
directory. Assign sufficient space for your virtualized guest and any applications the guest requires.
Configuração da Rede
Alocação de CPU e Memória
Verifique e inicie a Instalação do convidado
Instalando o Red Hat Enterprise Linux
Iniciando virt-manager
Nomeando seu sistema virtual
Escolhendo um método de virtualização
Escolhendo um método de instalação
/var/lib/libvirt/images/
directory. Any other location may require additional configuration for SELinux, refer to Seção 18.2, “Tecnologia de Virtualização e SELinux” for details.
Choose installation image
/var/lib/libvirt/images/
directory by default. In the default configuration, other directory locations for file-based images are prohibited by SELinux. If you use a different directory you must label the new directory according to SELinux policy. Refer to Seção 18.2, “Tecnologia de Virtualização e SELinux” for details.
/var/lib/libvirt/images/
. Se você estiver usando um local diferente (tal como /images/
neste exemplo), assegure-se de que ele está em sua política do SELinux e que foi rotulado antes de você continuar com a instalação (mais tarde no documento, você encontrará informações sobre como modificar sua política SELinux.
Configuração da Rede
HAL
, once you get the dialog box in the Windows install select the 'Generic i486 Platform
' tab. Scroll through selections with the Up and Down arrows.
# virsh start WindowsGuest
WindowsGuest
é o nome de sua máquina virtual.
virsh rebootWindowsGuestName
. A medida que você reinicia sua máquina virtual, você verá uma mensagem de Configuração está sendo reiniciada
:
virt-install
command. virt-install
can be used instead of virt-manager
This process is similar to the Windows XP installation covered in Seção 8.3, “Instalando o Windows XP como um convidado totalmente virtualizado.”.
virt-install
for installing Windows Server 2003 as the console for the Windows guest opens the virt-viewer
window promptly. The examples below installs a Windows Server 2003 guest with the virt-install
command.
Xen virt-install
# virt-install --virt-type=xen -hvm \ --name windows2003sp1 --file=/var/lib/libvirt/images/windows2003sp2.img \ --file-size=6 \ --cdrom=/var/lib/libvirt/images/ISOs/WIN/en_windows_server_2003_sp1.iso \ --vnc --ram=1024
KVM virt-install
# virt-install --accelerate --hvm --connect qemu:///system \ --name rhel3support \ --network network:default \ --file=/var/lib/libvirt/images/windows2003sp2.img \ --file-size=6 \ --cdrom=/var/lib/libvirt/images/ISOs/WIN/en_windows_server_2003_sp1.iso \ --vnc --ram=1024
Standard PC
como Tipo de Computador. É necessário modificar o Tipo de Computador para os convidados virtualizados do Windows Server 2003.
Abra o virt-manager
virt-manager
. Lance o aplicativo a partir do menu e o submenu . Como forma alternativa, execute o comando virt-manager
como root.
Selecione o Hypervisor
qemu
.
Inicie o assistente da máquina virtual
Nome da máquina virtual
Escolha um método de virtualização
Selecione o método de instalação
Localize a Mídia de Instalação
/var/lib/libvirt/images/
directory. Any other location may require additional configuration for SELinux, refer to Seção 18.2, “Tecnologia de Virtualização e SELinux” for details.
Configuração do Armazenamento
/var/lib/libvirt/images/
directory. Assign sufficient space for your virtualized guest and any applications the guest requires.
Configuração da Rede
Alocação de CPU e Memória
Verifique e inicie a Instalação do convidado
Instalação Windows
Índice
/dev/xvd[a to z][1 to 15]
/dev/xvdb13
/dev/xvd[a to i][a to z][1 to 15]
/dev/xvdbz13
/dev/sd[a to p][1 to 15]
/dev/sda1
/dev/hd[a to t][1 to 63]
/dev/hdd3
dd
command. Replace /dev/fd0
with the name of a floppy device and name the disk appropriately.
# dd if=/dev/fd0 of=~/legacydrivers.img
virt-manager
rodando com uma instalação do Red Hat Enterprise Linux inteiramente virtualizado com uma imagem localizada no /var/lib/libvirt/images/rhel5FV.img
. O hypervisor Xen é usado nesta amostra.
virsh
num convidado ativado.
# virsh dumpxml rhel5FV > rhel5FV.xml
# dd if=/dev/zero of=/var/lib/libvirt/images/rhel5FV-floppy.img bs=512 count=2880
<disk type='file' device='floppy'> <source file='/var/lib/libvirt/images/rhel5FV-floppy.img'/> <target dev='fda'/> </disk>
virsh shutdown
command instead.
# virsh destroy rhel5FV
# virsh create rhel5FV.xml
dd
. Os arquivos esparsos não são recomendados devido à integridade de dados e problemas de execução. Os arquivos esparsos são criados muito mais rápidos e podem ser usados para testes, porém não devem ser usados em ambientes de produção.
# dd if=/dev/zero of=/var/lib/libvirt/images/FileName.img bs=1M seek=4096 count=0
# dd if=/dev/zero of=/var/lib/libvirt/images/FileName.img bs=1M count=4096
Guest1
e o arquivo é salvo no diretório principal dos usuários.
# virsh dumpxmlGuest1
> ~/Guest1
.xml
Guest1.xml
neste exemplo) no editor de texto. Encontre os elementos <disk>
, estes elementos descrevem os dispositivos de armazenamento. Segue um exemplo de elemento de disco:
<disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/var/lib/libvirt/images/Guest1.img'/> <target dev='xvda'/> </disk>
<disk>
. Assegure-se de que você especificou o nome do dispositivo para os atributos de dispositivo de bloco virtual. Estes atributos devem ser únicos a cada arquivo de configuração convidado. O exemplo a seguir é uma seção de arquivo de configuração, a qual contém um container de armazenamento com base de arquivo extra chamado FileName.img
.
<disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/var/lib/libvirt/images/Guest1.img'/> <target dev='xvda'/> </disk> <disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/var/lib/libvirt/images/FileName.img'/> <target dev='hda'/> </disk>
# virsh create Guest1.xml
FileName.img
as the device called /dev/sdb
. This device requires formatting from the guest. On the guest, partition the device into one primary partition for the entire device then format the device.
n
para uma nova partição.
# fdisk /dev/sdb Command (m for help):
p
para uma partição primária.
Command action e extended p primary partition (1-4)
1
.
Partition number (1-4): 1
Enter
.
First cylinder (1-400, default 1):
Enter
.
Last cylinder or +size or +sizeM or +sizeK (2-400, default 400):
t
.
Command (m for help): t
1
.
Partition number (1-4): 1
83
para uma partição de linux.
Hex code (type L to list codes): 83
Command (m for help):w
Command (m for help):q
ext3
.
# mke2fs -j /dev/sdb1
# mount /dev/sdb1 /myfiles
fstab
file, the initrd
file or used by the kernel command line. If less privileged users, especially virtualized guests, have write access to whole partitions or LVM volumes the host system could be compromised.
/dev/sdb
). Virtualized guests with access to block devices may be able to access other block devices on the system or modify volume labels which can be used to compromise the host system. Use partitions (for example, /dev/sdb1
) or LVM volumes to prevent this issue.
multipath
e persistência no host, caso solicitado.
virsh attach
command. Replace: myguest
with your guest's name, /dev/sdb1
with the device to add, and sdc
with the location for the device on the guest. The sdc
must be an unused device name. Use the sd*
notation for Windows guests as well, the guest will recognize the device correctly.
--type cdrom
parameter to the command for CD-ROM or DVD devices.
--type floppy
ao comando para os dispositivos de disquete.
# virsh attach-diskmyguest
/dev/sdb1
sdc
--driver tap --mode readonly
/dev/sdb
on Linux or D: drive
, or similar, on Windows. This device may require formatting.
multipath
must use Configurações de caminho único. Systems running multipath
can use Configuração de caminho múltiplo.
udev
. Only use this procedure for hosts which are not using multipath
.
/etc/scsi_id.config
.
options=-b
é uma linha comentada.
# options=-b
options=-g
udev
para assumir que todos os dispositivos SCSI anexados retornam ao UUID.
scsi_id -g -s /block/sd*
. Por exemplo:
# scsi_id -g -s /block/sd* 3600a0b800013275100000015427b625e
/dev/sdc
do dispositivo.
scsi_id -g -s /block/sd*
é idêntico ao do computador que acessa o dispositivo.
20-names.rules
de arquivo nomeado no diretório /etc/udev/rules.d
. Adicione novas regras a este arquivo. Todas as regras são adicionadas ao mesmo arquivo usando o mesmo formato. As regras seguem o formato abaixo:
KERNEL=="sd[a-z]", BUS=="scsi", PROGRAM="/sbin/scsi_id -g -s /block/%k", RESULT="UUID
", NAME="devicename
"
UUID
e devicename
com o UUID restaurado acima e um nome para um dispositivo. Esta é uma regra para os exemplos acima:
KERNEL="sd*", BUS="scsi", PROGRAM="/sbin/scsi_id -g -s", RESULT="3600a0b800013275100000015427b625e", NAME="rack4row16"
udev
daemon procura agora por todos os dispositivos nomeados /dev/sd*
para o UUID na regra. Assim que um dispositivo de combinação é conectado ao sistema, o dispositivo determina o nome a partir da regra. No dispositivo com um UUDI de 3600a0b800013275100000015427b625e, aparecerá como /dev/rack4row16
.
/etc/rc.local
:
/sbin/start_udev
/etc/scsi_id.config
, /etc/udev/rules.d/20-names.rules
e /etc/rc.local
para todos os hosts relevantes.
/sbin/start_udev
multipath
é usado para os sistemas com mais de um caminho físico a partir do computador com dispositivos de armazenamento. O multipath
fornece tolerância de defeito, falha e desempenho aprimorado para os dispositivos de armazenamento da rede anexados aos sistemas do Red Hat Enterprise Linux.
multipath
environment requires defined alias names for your multipath devices. Each storage device has a UUID which acts as a key for the aliased names. Identify a device's UUID using the scsi_id
command.
# scsi_id -g -s /block/sdc
/dev/mpath
. No exemplo abaixo, 4 dispositivos são definidos no /etc/multipath.conf
:
multipaths { multipath { wwid 3600805f30015987000000000768a0019 alias oramp1 } multipath { wwid 3600805f30015987000000000d643001a alias oramp2 } mulitpath { wwid 3600805f3001598700000000086fc001b alias oramp3 } mulitpath { wwid 3600805f300159870000000000984001c alias oramp4 } }
/dev/mpath/oramp1
, /dev/mpath/oramp2
, /dev/mpath/oramp3
and /dev/mpath/oramp4
. Once entered, the mapping of the devices' WWID to their new names are now persistent after rebooting.
virsh
with the attach-disk
parameter.
# virsh attach-disk [domain-id] [source] [target] --driver file --type cdrom --mode readonly
The source
and target
parameters are paths for the files and devices, on the host and guest respectively. The source
parameter can be a path to an ISO file or the device from the /dev
directory.
libvirt
installation provides NAT based connectivity to virtual machines out of the box. This is the so called 'default virtual network'. Verify that it is available with the virsh net-list --all
command.
# virsh net-list --all Name State Autostart ----------------------------------------- default active yes
# virsh net-define /usr/share/libvirt/networks/default.xml
/usr/share/libvirt/networks/default.xml
# virsh net-autostart default Network default marked as autostarted
# virsh net-start default Network default started
libvirt
estiver operando, você verá um dispositivo ponte isolado. Este dispositivo não possui interfaces físicas adicionadas, pois ele usa as remessas NAT e IP para conectar-se com o mundo. Não adicione novas interfaces.
# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes
libvirt
adiciona as regras iptables
que permitem o tráfego para e a partir de convidados anexados ao dispositivo virbr0
nas cadeias INPUT
, FORWARD
, OUTPUT
e POSTROUTING
. O libvirt
tenta ativar o parâmetro ip_forward
. Alguns outros aplicativos poderão desativar o ip_forward
, portanto a melhor opção é adicionar o abaixo ao /etc/sysctl.conf
.
net.ipv4.ip_forward = 1
<interface type='network'> <source network='default'/> </interface>
<interface type='network'> <source network='default'/> <mac address='00:16:3e:1a:b3:4a'/> </interface>
/etc/xen/xend-config.sxp
e alteração da linha:
(network-script network-bridge)
(network-script /bin/true)
/etc/sysconfig/network-scripts/
directory):
# chkconfig NetworkManager off # chkconfig network on # service NetworkManager stop # service network start
NM_CONTROLLED=no
" to the ifcfg-*
scripts used in the examples. If you do not either set this parameter or disable NetworkManager entirely, any bridge configuration will be overwritten and lost when NetworkManager next starts.
/etc/sysconfig/network-scripts
:
# cd /etc/sysconfig/network-scripts
ifcfg-eth0
define a interface de rede física que é ajustada como parte de uma ponte:
DEVICE=eth0 # change the hardware address to match the hardware address your NIC uses HWADDR=00:16:76:D6:C9:45 ONBOOT=yes BRIDGE=br0
MTU
variable to the end of the configuration file.
MTU=9000
/etc/sysconfig/network-scripts
chamado ifcfg-br0
ou similar. O br0
é o nome da ponte, ele pode ser qualquer coisa, contando que o nome do arquivo seja o mesmo ao do parâmetro do DISPOSITIVO.
DEVICE=br0 TYPE=Bridge BOOTPROTO=dhcp ONBOOT=yes DELAY=0
ifcfg-br0
file). Network access will not function as expected if IP address details are configured on the physical interface that the bridge is connected to.
TYPE=Bridge
, is case-sensitive. It must have uppercase 'B' and lower case 'ridge'.
# service network restart
iptables
para permitir que todos os tráfegos sejam enviados através da ponte.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT # service iptables save # service iptables restart
iptables
. Anexe as seguintes linhas ao /etc/sysctl.conf
:
net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0
sysctl
.
# sysctl -p /etc/sysctl.conf
libvirt
daemon.
# service libvirtd reload
# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes br0 8000.000e0cb30550 no eth0
virbr0
. Não tente anexar um dispositivo físico ao virbr0
. A ponte virbr0
é apenas para a conectividade da Tradução do Endereço de Rede (NAT).
virsh
(Capítulo 25, Gerenciando convidados com virsh) and virt-manager
(Capítulo 26, Gerenciando convidados com o Gestor de Máquina Virtual (virt-manager)). Those chapters provide a detailed description of the networking configuration tasks using both tools.
system-config-network
. Alternativamente, crie uma nova configuração ifcfg-ethX
de arquivo nomeado no diretório /etc/sysconfig/network-scripts/
onde o X
é um número que ainda não está em uso. Segue abaixo, uma amostra do arquivo de configuração para uma segunda interface de rede chamada eth1
.
$ cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=static ONBOOT=yes USERCTL=no IPV6INIT=no PEERDNS=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=10.1.1.1 GATEWAY=10.1.1.254 ARP=yes
/etc/xen/scripts/network-bridge
, para /etc/xen/scripts/network-bridge.xen
.
/etc/xen/xend-config.sxp
and add the line (network-xen-multi-bridge)
. A typical xend-config.sxp
file should have the following line. Comment this line out. Use the # symbol to comment out lines.
network-script network-bridge
network-xen-multi-bridge
parameter to enable multiple network bridges.
#network-script network-bridge network-script network-xen-multi-bridge
network-xen-multi-bridge.sh
in the /etc/xen/scripts/
directory. A sample scripts is below, this example script will create two Xen network bridges (xenbr0 and xenbr1) one will be attached to eth1 and the other one to eth0. If you want to create additional bridges just follow the example in the script and copy nad paste the lines as required:
#!/bin/sh # network-xen-multi-bridge # Exit if anything goes wrong. set -e # First arg is the operation. OP=$1 shift script=/etc/xen/scripts/network-bridge.xen case ${OP} in start) $script start vifnum=1 bridge=xenbr1 netdev=eth1 $script start vifnum=0 bridge=xenbr0 netdev=eth0 ;; stop) $script stop vifnum=1 bridge=xenbr1 netdev=eth1 $script stop vifnum=0 bridge=xenbr0 netdev=eth0 ;; status) $script status vifnum=1 bridge=xenbr1 netdev=eth1 $script status vifnum=0 bridge=xenbr0 netdev=eth0 ;; *) echo 'Unknown command: ' ${OP} echo 'Valid commands are: start, stop, status' exit 1 esac
# chmod +x /etc/xen/scripts/network-xen-multi-bridge.sh
# service network restart
virt-manager
. O NetworkManager funciona com os dispositivos de rede virtual por padrão no Red Hat Enterprise Linux 5.1 e mais recentes.
<interface type='network'> <mac address='AA:AA:AA:AA:AA:AA'/> <source network='default'/> <target dev='vnet0'/> <model type='virtio'/> </interface>
xm
, os dispositivos de rede virtual são etiquetados com "vif
".
ifup
or ifdown
calls to the network interface it is using. In addition wireless network cards do not work well in a virtualization environment due to Xen's (default) bridged network usage.
dummy0
. This will also allow you to use a hidden IP address space for your guests.
/etc/modprobe.conf
.
alias dummy0 dummy options dummy numdummies=1
/etc/sysconfig/network-scripts/ifcfg-dummy0
:
DEVICE=dummy0 BOOTPROTO=none ONBOOT=yes USERCTL=no IPV6INIT=no PEERDNS=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=10.1.1.1 ARP=yes
xenbr0
para dummy0
, de forma que você possa usar a rede mesmo quando não conectado a uma rede física. Edite /etc/xen/xend-config.sxp
para incluir a entrada netdev=dummy0
:
(network-script 'network-bridge bridge=xenbr0 netdev=dummy0')
/etc/sysconfig/network
in the guest and modify the default gateway to point to dummy0
. If you are using a static IP, set the guest's IP address to exist on the same subnet as dummy0
.
NETWORKING=yes HOSTNAME=localhost.localdomain GATEWAY=10.1.1.1 IPADDR=10.1.1.10 NETMASK=255.255.255.0
/etc/init.d/xenLaptopNAT
e criar um link leve ao /etc/rc3.d/S99xenLaptopNAT
. Isto iniciará automaticamente o NAT no período de inicialização.
#!/bin/bash PATH=/usr/bin:/sbin:/bin:/usr/sbin export PATH GATEWAYDEV=`ip route | grep default | awk {'print $5'}` iptables -F case "$1" in start) if test -z "$GATEWAYDEV"; then echo "No gateway device found" else echo "Masquerading using $GATEWAYDEV" /sbin/iptables -t nat -A POSTROUTING -o $GATEWAYDEV -j MASQUERADE fi echo "Enabling IP forwarding" echo 1 > /proc/sys/net/ipv4/ip_forward echo "IP forwarding set to `cat /proc/sys/net/ipv4/ip_forward`" echo "done." ;; *) echo "Usage: $0 {start|restart|status}" ;; esac
dnsmasq
num laptop rodando a virtualização:
dnsmasq.tgz
. The tar archive includes the following files:
nm-dnsmasq
pode ser usado como um script despachante para o NetworkManager. Isto será rodado a cada instante que o NetworkManager detectar uma alteração à conectividade e forçar uma reinicialização/recarregamento do dnsmasq. Ele deve ser copiado ao /etc/NetworkManager/dispatcher.d/nm-dnsmasq
;
xenDNSmasq
pode ser usado como um script de inicialização ou desligamento principal para o /etc/init.d/xenDNSmasq
;
dnsmasq.conf
é uma amostra de arquivo de configuração para o /etc/dnsmasq.conf
;
dnsmasq
é uma inagem binária para o /usr/local/sbin/dnsmasq
.
/usr/local/sbin/dnsmasq
), você precisará editar seu arquivo de configuração dnsmasq. O arquivo é alocado no /etc/dnsmaqs.conf
.
interface
permite o dnsmasq
escutar pelas solicitações DHCP
e DNS
apenas nas interfaces solicitadas. Elas poderão ser interfaces fictícias, mas não suas interfaces públicas ou a interface loopback local. Adicione outra linha de interface
para mais de uma interface. O interface=dummy0
é uma amostra de escuta na interface dummy0
;
dhcp-range
para ativar o servidor DHCP
integrado, você precisará suprir a variedade de endereços disponíveis para aluguel e, opcionalmente, um período de aluguel. Caso você possua mais que uma rede, você precisará repetir isto para cada rede que você queira suprir o serviço DHCP
. Uma amostra pode ser o (para rede 10.1.1.* e período de aluguel de 12hrs): dhcp-range=10.1.1.10,10.1.1.50,255.255.255.0,12h
;
dhcp-option
para substituir a rota padrão fornecida pelo dnsmasq, que assume que o roteador é a mesma máquina àquela rodando o dnsmasq. Uma amostra pode ser o dhcp-option=3,10.1.1.1
.
xenDNSmasq
ao /etc/init.d
chkconfig --add xenDNSmasq
chkconfig --levels 345 xenDNSmasq on
dnsmasq
para reinicializar a cada momento que o NetworkManager detectar uma alteração na conectividade, você poderá usar o nm-dnsmasq
de script fornecido.
nm-dnsmasq
para o /etc/NetworkManager/dispatcher.d/
;
dnsmasq
detectará também as alterações no seu /etc/resolv.conf
e automaticamente recarregá-las (quer dizer, se você inicializar uma sessão VPN por exemplo).
nm-dnsmasq
e xenDNSmasq
configurarão o NAT, caso você tenha seus convidados virtualizados numa rede oculta para permití-los acessar à rede pública.
pv-on-hvm
, no pacote kernel padrão. Isto significa que os drivers para-virtualizados estão disponíveis para o Red Hat Enterprise Linux 4.7 e mais recentes ou o 5.3 e convidados mais recentes.
kmod-xenpv
.
kmod-xenpv
,
modules-init-tools
(for versions prior to Red Hat Enterprise Linux 4.6z you require modules-init-tools-3.1-0.pre5.3.4.el4_6.1
or greater), and
modversions
.
kmod-xenpv
.
/lib
file system.
# rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' kernel
Arquitetura do Kernel | Red Hat Enterprise Linux 3 | Red Hat Enterprise Linux 4 | Red Hat Enterprise Linux 5 |
---|---|---|---|
athlon | Suportado (AMD) | ||
athlon-SMP | Suportado (AMD) | ||
i32e | Suportado (Intel) | ||
i686 | Suportado (Intel) | Suportado | Suportado |
i686-PAE | Suportado | ||
i686-SMP | Suportado (Intel) | Suportado | |
i686-HUGEMEM | Suportado (Intel) | Suportado | |
x86_64 | Suportado (AMD) | Suportado | Suportado |
x86_64-SMP | Suportado (AMD) | Suportado | |
x86_64-LARGESMP | Suportado | ||
Itanium (IA64) | Suportado |
# rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' kernel
kernel-PAE-2.6.18-53.1.4.el5.i686
GRUB
GRUB
), ou um disco que contém as imagens initrd
do kernel. Ou seja, qualquer disco que contenha o diretório ou partição /boot
não pode usar os drivers de dispositivos de bloco para-virtualizados.
xen-pci-platform
irá falhar.
Tipo de kernel convidado | Tipo de kernel do host necessário |
---|---|
ia32e (UP e SMP) | x86_64 |
i686 | i686 |
i686-SMP | i686 |
i686-HUGEMEM | i686 |
Tipo de kernel convidado | Tipo de kernel do host necessário |
---|---|
athlon | i686 |
athlon-SMP | i686 |
x86_64 | x86_64 |
x86_64-SMP | x86_64 |
MBR
e o carregador de inicialização (GRUB
), e para a partição /boot
. Esta partição pode ser muito pequena, pois somente precisa ter capacidade suficiente para deter a partição /boot
.
/
, /usr
) ou volumes lógicos.
/boot
, irá usar os drivers de dispositivo de bloco virtualizado.
rpm
ou o comando yum
para instalar os pacotes. O utilitário rpm
irá instalar os quatro seguintes módulos de kernel novos em /lib/modules/[%kversion][%kvariant]/extra/xenpv/%release
:
xen_platform_pci.ko
,
xen_balloon.ko
,
xen_vbd.ko
,
xen_vnif.ko
.
xen-vbd
) disk driver.
<disk type='file' device='disk'> <driver name='file'/> <source file='/dev/hda6'/> <target dev='hda'/> </disk>
<disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/dev/hda6'/> <target dev='xvda'/> </disk>
# xm start YourGuestName
YourGuestName
is the name of the configuration file or the guest operating system's name as defined in its configuration file in the name = "os_name" parameter.
kernel-2.4.21-60.EL
for all the required headers.
kmod-xenpv
para sua arquitetura de hardware e variante de kernel para seu sistema operacional convidado.
rpm
para instalar os parcotes de RPM. Assegure-se de que você identificou corretamente qual o pacote que você precisa para sua variante de sistema operacional convidado e arquitetura.
[root@rhel3]# rpm -ivh kmod-xenpv*
[root@rhel3]# mkdir -p /lib/modules/'uname -r'/extra/xenpv [root@rhel3]# cp -R /lib/modules/2.4.21-52.EL[%kvariant]/extra/xenpv/%release \ /lib/modules/'uname -r'/extra/xenpv [root@rhel3]# depmod -ae [root@rhel3]# modprobe xen-vbd [root@rhel3]# modprobe xen-vnif
insmod
ao instalar os módulos do driver binários, porque o MODVERSIONS do Red Hat Enterprise Linux 3 está ativado. Estes avisos podem ser ignorados.
/etc/modules.conf
e tenha a certeza de que você possui um alias para eth0
como este abaixo. Se você deseja configurar interfaces múltiplas, adicione uma linha para cada interface.
alias eth0 xen-vnif
/etc/rc.local
e adicione a linha:
insmod /lib/modules/'uname -r'/extra/xenpv/%release/xen-vbd.o
#shutdown -h now
” dentro do convidado).
/etc/xen/YourGuestName
with a text editor, performing the following changes:
type=ioemu
” da entrada “vif=
”.
xen-vbd
) para-virtualizado.
<disk type='file' device='disk'> <driver name='file'/> <source file='/dev/hda6'/> <target dev='hda'/> </disk>
<disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/dev/hda6'/> <target dev='xvda'/> </disk>
# xm start YourGuestName
YourGuestName
is the name of the configuration file or the guest operating system's name as defined in its configuration file in the name = "os_name" parameter.
weak-modules
e modversions
não é fornecido no Red Hat Enterprise LInux 3. Para inserir o módulo, execute o comando abaixo.
insmod xen_vbd.ko
xen-vbd
. Os passos abaixo se referem a como criar um registro de dispositivos de bloco para-virtualizados.
#!/bin/sh module="xvd" mode="664" major=`awk "\\$2==\"$module\" {print \\$1}" /proc/devices` # < mknod for as many or few partitions on xvd disk attached to FV guest > # change/add xvda to xvdb, xvbd, etc. for 2nd, 3rd, etc., disk added in # in xen config file, respectively. mknod /dev/xvdb b $major 16 mknod /dev/xvdb1 b $major 17 mknod /dev/xvdb2 b $major 18 chgrp disk /dev/xvd* chmod 0660 /dev/xvd*
# mknod /dev/xvdc b $major 16 # mknod /dev/xvdc1 b $major 17
# mknod /dev/xvdd b $major 32 # mknod /dev/xvdd1 b $major 33
[root@rhel3]# cat /proc/partitions major minor #blocks name 3 0 10485760 hda 3 1 104391 hda1 3 2 10377990 hda2 202 16 64000 xvdb 202 17 32000 xvdb1 202 18 32000 xvdb2 253 0 8257536 dm-0 253 1 2031616 dm-1
xvdb
” está disponível para o sistema.
[root@rhel3]# mkdir /mnt/pvdisk_p1 [root@rhel3]# mkdir /mnt/pvdisk_p2
[root@rhel3]# mount /dev/xvdb1 /mnt/pvdisk_p1 [root@rhel3]# mount /dev/xvdb2 /mnt/pvdisk_p2
[root@rhel3]# df /mnt/pvdisk_p1 Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvdb1 32000 15 31985 1% /mnt/pvdisk_p1
/etc/fstab
dentro do convidado para montar os dispositivos durante a sequência de inicialização. Adicione as seguintes linhas:
/dev/xvdb1 /mnt/pvdisk_p1 ext3 defaults 1 2 /dev/xvdb2 /mnt/pvdisk_p2 ext3 defaults 1 2
dom0
), the "noapic
" parameter should be added to the kernel boot line in your virtual guest's /boot/grub/grub.conf
entry as seen below. Keep in mind your architecture and kernel version may be different.
kernel /vmlinuz-2.6.9-67.EL ro root=/dev/VolGroup00/rhel4_x86_64 rhgb noapic
kmod-xenpv
, modules-init-tools
e modversions
para sua arquitetura de hardware e variante de kernel para seu sistema operacional convidado.
rpm
para instalar os pacotes de RPM. Lembre-se de identificar corretamente qual pacote você precisa para a variante do seu sistema operacional convidado e arquitetura. É necessário possuir as ferramentas module-init atualizadas para este pacote e está disponível com o Red Hat Enterprise Linux 4-6-z kernel ou mais recentes.
[root@rhel4]# rpm -ivh modversions [root@rhel4]# rpm -Uvh module-init-tools [root@rhel4]# rpm -ivh kmod-xenpv*
cat /etc/modprobe.conf
to verify you have an alias for eth0
like the one below. If you are planning to configure multiple interfaces add an additional line for each interface. If it does not look like the entry below change it.
alias eth0 xen-vnif
#shutdown -h now
” dentro do convidado).
/etc/xen/YourGuestsName
nas seguintes formas:
type=ioemu
” da entrada “vif=
”.
xen-vbd
) para-virtualizado.
disk=
” no arquivo de configuração convidado. A entrada “disk=
” original, deve se parecer com esta abaixo.
disk = [ "file:/var/lib/libvirt/images/rhel4_64_fv.dsk,hda,w"]
disk = [ "file:/var/lib/libvirt/images/rhel3_64_fv.dsk,hda,w", "tap:aio:/var/lib/libvirt/images/UserStorage.dsk,xvda,w" ]
tap:aio
” para o dispositivo para-virtualizado quando usar uma imagem com base em arquivo.
virsh
:
# virsh start YourGuestName
kudzu
irá lhe perguntar se você deseja "Manter ou Remover o dispositivo Realtek Network" e "Configurar o dispositivo xen-bridge". Você deve configurar o xen-bridge
e remover o dispositivo Realtek network.
dom0
), the "noapic
" parameter should be added to the kernel boot line in your virtual guest's /boot/grub/grub.conf
entry as seen below. Keep in mind your architecture and kernel version may be different.
kernel /vmlinuz-2.6.9-67.EL ro root=/dev/VolGroup00/rhel4_x86_64 rhgb noapic
[root@rhel4]# cat /proc/partitions major minor #blocks name 3 0 10485760 hda 3 1 104391 hda1 3 2 10377990 hda2 202 0 64000 xvdb 202 1 32000 xvdb1 202 2 32000 xvdb2 253 0 8257536 dm-0 253 1 2031616 dm-1
xvdb
” está disponível para o sistema.
[root@rhel4]# mkdir /mnt/pvdisk_p1 [root@rhel4]# mkdir /mnt/pvdisk_p2
[root@rhel4]# mount /dev/xvdb1 /mnt/pvdisk_p1 [root@rhel4]# mount /dev/xvdb2 /mnt/pvdisk_p2
[root@rhel4]# df /mnt/pvdisk_p1 Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvdb1 32000 15 31985 1% /mnt/pvdisk_p1
/etc/fstab
dentro do convidado para montar dispositivos durante a sequência de inicialização. Adicione as seguintes linhas:
/dev/xvdb1 /mnt/pvdisk_p1 ext3 defaults 1 2 /dev/xvdb2 /mnt/pvdisk_p2 ext3 defaults 1 2
xen-vbd
pode não carregar automaticamente. Execute o seguinte comando no convidado, substituindo %release pela versão de lançamento correta para os drivers para-virtualizados.
# insmod /lib/modules/'uname -r'/weak-updates/xenpv/%release/xen_vbd.ko
#shutdown -h now
” dentro do convidado).
/etc/xen/<Your GuestsName>
das seguintes formas:
type=ioemu
” da entrada “vif=
”.
xen-vbd
) para-virtualizado.
disk=
” no arquivo de configuração convidado. A entrada “disk=
” original, deve se parecer com esta abaixo.
disk = [ "file:/var/lib/libvirt/images/rhel4_64_fv.dsk,hda,w"]
disk = [ "file:/var/lib/libvirt/images/rhel3_64_fv.dsk,hda,w", "tap:aio:/var/lib/libvirt/images/UserStorage.dsk,xvda,w" ]
tap:aio
” para o dispositivo para-virtualizado quando usar uma imagem com base em arquivo.
virsh
:
# virsh start YourGuestName
[root@rhel5]# ifconfig eth0
[root@rhel5]# cat /proc/partitions major minor #blocks name 3 0 10485760 hda 3 1 104391 hda1 3 2 10377990 hda2 202 0 64000 xvdb 202 1 32000 xvdb1 202 2 32000 xvdb2 253 0 8257536 dm-0 253 1 2031616 dm-1
xvdb
” está disponível para o sistema.
[root@rhel5]# mkdir /mnt/pvdisk_p1 [root@rhel5]# mkdir /mnt/pvdisk_p2
[root@rhel5]# mount /dev/xvdb1 /mnt/pvdisk_p1 [root@rhel5]# mount /dev/xvdb2 /mnt/pvdisk_p2
[root@rhel5]# df /mnt/pvdisk_p1 Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvdb1 32000 15 31985 1% /mnt/pvdisk_p1
/etc/fstab
dentro do convidado para montar os dispositivos durante a sequência de inicialização. Adicione as seguintes linhas:
/dev/xvdb1 /mnt/pvdisk_p1 ext3 defaults 1 2 /dev/xvdb2 /mnt/pvdisk_p2 ext3 defaults 1 2
dom0
), the "noapic
" parameter should be added to the kernel boot line in your virtual guest's /boot/grub/grub.conf
entry as seen below. Keep in mind your architecture and kernel version may be different.
kernel /vmlinuz-2.6.9-67.EL ro root=/dev/VolGroup00/rhel4_x86_64 rhgb noapic
/etc/modprobe.d/blacklist
file. Blacklist 8139cp
and 8139too
for the RealTek 8139 and e1000
for the virtualized Intel e1000 NIC.
8139cp
8139too
e1000
/etc/sysconfig/network-scripts
directory.
xen_emul_unplug=never
virt-manager
abra a janela do console para o convidado e faça o loggin como usuário root
.
/etc/modprobe.conf
contém a linha “alias eth0 xen-vnif
”.
# cat /etc/modprobe.conf alias eth0 xen-vnif
eth0
execute “# ifconfig eth0
”. If you receive an error about the device not existing you should load the modules manually as outlined in Seção 36.4, “Carregando manualmente os drivers para-virtualizados.”.
ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:00:00:6A:27:3A BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:630150 errors:0 dropped:0 overruns:0 frame:0 TX packets:9 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:109336431 (104.2 MiB) TX bytes:846 (846.0 b)
# system-config-network
”. Click on the “ ” button to start the network card configuration.
ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:16:3E:49:E4:E0 inet addr:192.168.78.180 Bcast:192.168.79.255 Mask:255.255.252.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:630150 errors:0 dropped:0 overruns:0 frame:0 TX packets:501209 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:109336431 (104.2 MiB) TX bytes:46265452 (44.1 MiB)
/etc/xen/YourGuestName
replacing YourGuestName
com o nome do seu convidado.
vif = [ "mac=00:16:3e:2e:c5:a9,bridge=xenbr0" ]
vif=
” do arquivo de configuração semelhante a este abaixo.
vif = [ "mac=00:16:3e:2e:c5:a9,bridge=xenbr0", "mac=00:16:3e:2f:d5:a9,bridge=xenbr0" ]
# echo 'import virtinst.util ; print virtinst.util.randomMAC()' | python
/etc/modules.conf
no Red Hat Enterprise Linux 3 ou /etc/modprobe.conf
no Red Hat Enterprise Linux 4 e Red Hat Enterprise Linux 5. Adicione um novo alias para cada interface nova que você adicionar.
alias eth1 xen-vnif
# ifconfig eth1
redhat-config-network
ou Red Hat Enterprise Linux3 ou system-config-network
no Red Hat Enterprise Linux 4 e Red Hat Enterprise Linux 5.
/etc/xen/YourGuestName
replacing YourGuestName
com o nome de seu convidado. A entrada original deve se parecer com esta abaixo.
disk = [ "file:/var/lib/libvirt/images/rhel5_64_fv.dsk,hda,w"]
disk=
” no arquivo de configuração. As entidades de armazenamento que usam o driver para-virtualizado, se parecem com a entrada abaixo. O parâmetro “tap:aio
” instrui o hipervisor a usar o driver para-virtualizado.
disk = [ "file:/var/lib/libvirt/images/rhel5_64_fv.dsk,hda,w", "tap:aio:/var/lib/libvirt/images/UserStorage1.dsk,xvda,w" ]
disk=
” como uma lista separada por vírgulas.
xvd
' device, that is for your second storage entity it would be 'xvdb
' instead of 'xvda
'.
disk = [ "file:/var/lib/libvirt/images/rhel5_64_fv.dsk,hda,w", "tap:aio:/var/lib/libvirt/images/UserStorage1.dsk,xvda,w", "tap:aio:/var/lib/libvirt/images/UserStorage2.dsk,xvdb,w" ]
# cat /proc/partitions major minor #blocks name 3 0 10485760 hda 3 1 104391 hda1 3 2 10377990 hda2 202 0 64000 xvda 202 1 64000 xvdb 253 0 8257536 dm-0 253 1 2031616 dm-1
xvdb
” disponível ao sistema.
/etc/fstab
dentro do convidado para montar os dispositivos e partições durante a inicialização.
# mkdir /mnt/pvdisk_xvda # mkdir /mnt/pvdisk_xvdb # mount /dev/xvda /mnt/pvdisk_xvda # mount /dev/xvdb /mnt/pvdisk_xvdb # df /mnt Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda 64000 15 63985 1% /mnt/pvdisk_xvda /dev/xvdb 64000 15 63985 1% /mnt/pvdisk_xvdb
Baixe os drivers
yum
command.
# yum install virtio-win
virtio-win.iso
, no diretório /usr/share/virtio-win/
.
Instala os drivers para-virtualizados
virt-manager
para montar uma imagem CD-ROM para o convidado do Windows.” to add a CD-ROM image with virt-manager
and then install the drivers.
virt-manager
para montar uma imagem CD-ROM para o convidado do Windows.Open virt-manager and the virtualized guest
virt-manager
, select your virtualized guest from the list by double clicking the guest name.
Open the hardware tab
Select the device type
Select the ISO file
/usr/share/virtio-win/virtio-win.iso
.
Disc assigned
Reboot
Open My Computer
Select the correct installation files
RHEV-Block.msi
for 32-bit guests or RHEV-Block64.msi
for 64-bit guests),
RHEV-Network.msi
for 32-bit guests or RHEV-Block64.msi
for 64-bit guests),
Install the block device driver
Start the block device driver installation
RHEV-Block.msi
or RHEV-Block64.msi
.
Confirm the exception
Finish
Install the network device driver
Start the network device driver installation
RHEV-Network.msi
or RHEV-Network64.msi
.
Performance setting
Value | Action |
---|---|
0 | Disable TCP timestamps and window scaling. |
1 | Enable TCP window scaling. |
2 | Enable TCP timestamps. |
3 | Enable TCP timestamps and window scaling. |
Confirm the exception
Finish
Reboot
viostor.vfd
como disco na primeira vez que usando o menu executar-uma vez.
Servidor do Windows 2003
Servidor do Windows 2008
virtio
driver instead of virtualized IDE driver. This example edits libvirt configuration files. Alternatively, virt-manager
, virsh attach-disk
or virsh attach-interface
can add a new device using the para-virtualized drivers Seção 13.4, “Usando os drivers para-virtualizados KVM para novos dispositivos”.
<disk type='file' device='disk'> <source file='/var/lib/libvirt/images/disk1.img'/> <target dev='vda' bus='ide'/> </disk>
virtio
.
<disk type='file' device='disk'>
<source file='/var/lib/libvirt/images/disk1.img'/>
<target dev='vda' bus='virtio'/>
</disk>
virt-manager
.
virsh attach-disk
ou virsh attach-interface
podem ser usados usando os drivers para-virtualizados.
virt-manager
.
Enable the Intel VT-d extensions
Activate Intel VT-d in the kernel
intel_iommu=on
parameter to the kernel line of the kernel line in the /boot/grub/grub.conf
file.
grub.conf
file with Intel VT-d activated.
default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.18-190.el5) root (hd0,0) kernel /vmlinuz-2.6.18-190.el5 ro root=/dev/VolGroup00/LogVol00 intel_iommu=on initrd /initrd-2.6.18-190.el5.img
Ready to use
Enable AMD IOMMU extensions
iommu=on
parameter to the hypervisor command line. Modify the /boot/grub/grub.conf
file as follows to enable PCI passthrough:
default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.18-192.el5) root (hd0,0) kernel /xen.gz-2.6.18-192.el5 iommu=on module /vmlinuz-2.6.18-192.el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.18-190.el5xen.img
pci_8086_3a6c
, and a fully virtualized guest named win2k3
.
Identify the device
virsh nodedev-list
command lists all devices attached to the system. The --tree
option is useful for identifying devices attached to the PCI device (for example, disk controllers and USB controllers).
# virsh nodedev-list --tree
# virsh nodedev-list | grep pci
****
is a four digit hexadecimal code):
pci_8086_****
lspci
output to lspci -n
(which turns off name resolution) output can assist in deriving which device has which device identifier code.
virsh nodedev-dumpxml
command:
# virsh nodedev-dumpxml pci_8086_3a6c <device> <name>pci_8086_3a6c</name> <parent>computer</parent> <capability type='pci'> <domain>0</domain> <bus>0</bus> <slot>26</slot> <function>7</function> <id='0x3a6c'>82801JD/DO (ICH10 Family) USB2 EHCI Controller #2</product> <vendor id='0x8086'>Intel Corporation</vendor> </capability> </device>
# virsh nodedev-dettach pci_8086_3a6c Device pci_8086_3a6c dettached
$ printf %x 0 0 $ printf %x 26 1a $ printf %x 7 7
bus='0x00' slot='0x1a' function='0x7'
virsh edit
(or virsh attach device) and add a device entry in the <devices>
section to attach the PCI device to the guest. Only run this command on offline guests. Red Hat Enterprise Linux does not support hotplugging PCI devices at this time.
# virsh edit win2k3
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x00' slot='0x1a' function='0x7'/>
</source>
</hostdev>
ehci
driver is loaded by default for the USB PCI controller.
$ readlink /sys/bus/pci/devices/0000\:00\:1d.7/driver ../../../bus/pci/drivers/ehci_hcd
$ virsh nodedev-dettach pci_8086_3a6c
$ readlink /sys/bus/pci/devices/0000\:00\:1d.7/driver ../../../bus/pci/drivers/pci-stub
# setsebool -P virt_use_sysfs 1
# virsh start win2k3
virt-manager
tool. The following procedure adds a 2 port USB controller to a virtualized guest.
Identify the device
virsh nodedev-list
command lists all devices attached to the system. The --tree
option is useful for identifying devices attached to the PCI device (for example, disk controllers and USB controllers).
# virsh nodedev-list --tree
# virsh nodedev-list | grep pci
****
is a four digit hexadecimal code):
pci_8086_****
lspci
output to lspci -n
(which turns off name resolution) output can assist in deriving which device has which device identifier code.
Detach the PCI device
# virsh nodedev-dettach pci_8086_3a6c Device pci_8086_3a6c dettached
Power off the guest
Open the hardware settings
Add the new device
Select a PCI device
Confirm the new device
--host-device
parameter.
Identify the PCI device
virsh nodedev-list
command lists all devices attached to the system. The --tree
option is useful for identifying devices attached to the PCI device (for example, disk controllers and USB controllers).
# virsh nodedev-list --tree
# virsh nodedev-list | grep pci
****
is a four digit hexadecimal code):
pci_8086_****
lspci
output to lspci -n
(which turns off name resolution) output can assist in deriving which device has which device identifier code.
Add the device
virsh nodedev
command as the value for the --host-device
parameter.
# virt-install \
-n hostdev-test -r 1024 --vcpus 2 \
--os-variant fedora11 -v --accelerate \
-l http://download.fedoraproject.org/pub/fedora/linux/development/x86_64/os \
-x 'console=ttyS0 vnc' --nonetworks --nographics \
--disk pool=default,size=8 \
--debug --host-device=pci_8086_10bd
Complete the installation
/etc/modprobe.conf
hides the device from dom0. Either the bnx2
module must be reloaded or the host must be restarted.
install bnx2 /sbin/modprobe pciback; /sbin/modprobe --first-time --ignore-install bnx2 options pciback hide=(0000:09:00.0)
/etc/modprobe.conf
to hide multiple devices.
options pciback hide=(0000:09:00.0)(0000:0a:04.1)
virsh
(Seção 14.1, “Adding a PCI device with virsh” - Step 5);
virt-manager
(Seção 14.2, “Adding a PCI device with virt-manager”); or
virt-install
(Seção 14.3, “PCI passthrough with virt-install”)
/boot/grub/grub.conf
file to enable SR-IOV. To enable SR-IOV with Xen for Intel systems append the pci_pt_e820_access=on
parameter to the kernel.
default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.18-192.el5xen) root (hd0,0) kernel /xen.gz-2.6.18-192.el5 iommu=1 module /vmlinuz-2.6.18-192.el5xen ro root=/dev/VolGroup00/LogVol00 pci_pt_e820_access=on module /initrd-2.6.18-192.el5xen.img
Enable Intel VT-d in BIOS and in the kernel
Verify support
lspci
command to verify if the device was detected.
# lspci 03:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01) 03:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
Start the SR-IOV kernel modules
modprobe
command. The Intel 82576 network interface card uses the igb
driver kernel module.
# modprobe igb [<option>=<VAL1>,<VAL2>,] # lsmod |grep igb igb 87592 0 dca 6708 1 igb
Activate Virtual Functions
max_vfs
parameter of the igb
module allocates the maximum number of Virtual Functions. The max_vfs
parameter causes the driver to spawn, up to the value of the parameter in, Virtual Functions. For this particular card the valid range is 0
to 7
.
# modprobe -r igb
max_vfs
set to 1
or any number of Virtual Functions up to the maximum supported by your device.
# modprobe igb max_vfs=1
Inspect the new Virtual Functions
lspci
command, list the newly added Virtual Functions attached to the Intel 82576 network device.
# lspci | grep 82576 03:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01) 03:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01) 03:10.0 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01) 03:10.1 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
-n
parameter of the lspci
command.
# lspci -n | grep 03:00.0 03:00.0 0200: 8086:10c9 (rev 01) # lspci -n | grep 03:10.0 03:10.0 0200: 8086:10ca (rev 01)The Physical Function corresponds to
8086:10c9
and the Virtual Function to 8086:10ca
.
Find the devices with virsh
virsh nodedev-list
command to list available host devices.
# virsh nodedev-list | grep 8086
pci_8086_10c9
pci_8086_10c9_0
pci_8086_10ca
pci_8086_10ca_0
[output truncated]
Get advanced details
pci_8086_10c9
is one of the Physical Functions and pci_8086_10ca_0
is the first corresponding Virtual Function for that Physical Function. Use the virsh nodedev-dumpxml
command to get advanced output for both devices.
# virsh nodedev-dumpxml pci_8086_10ca # virsh nodedev-dumpxml pci_8086_10ca_0 <device> <name>pci_8086_10ca_0</name> <parent>pci_8086_3408</parent> <driver> <name>igbvf</name> </driver> <capability type='pci'> <domain>0</domain> <bus>3</bus> <slot>16</slot> <function>1</function> <product id='0x10ca'>82576 Virtual Function</product> <vendor id='0x8086'>Intel Corporation</vendor> </capability> </device>
pci_8086_10ca_0
to the guest in Passo 8. Note the bus
, slot
and function
parameters of the Virtual Function, these are required for adding the device.
Add the Virtual Function to the guest
virsh nodedev-dumpxml pci_8086_10ca_0
command to calculate the values for the configuration file. Convert slot and function values to hexadecimal values (from decimal) to get the PCI bus addresses. Append "0x" to the beginning of the output to tell the computer that the value is a hexadecimal number.
printf
utility to convert decimal values to hexadecimal values.
$ printf %x 3 3 $ printf %x 16 10 $ printf %x 1 1
bus='0x03' slot='0x10' function='0x01'
virsh edit
command. This example edits a guest named MyGuest
.
# virsh edit MyGuest
devices
section of the XML configuration file.
<hostdev mode='subsystem' type='pci' managed='yes'> <source> <address bus='0x03' slot='0x10' function='0x01'/> </source> </hostdev>
Restart
# virsh start MyGuest
# virsh start test error: Failed to start domain test error: internal error unable to start guest: char device redirected to /dev/pts/2 get_real_device: /sys/bus/pci/devices/0000:03:10.0/config: Permission denied init_assigned_device: Error: Couldn't get real device (03:10.0)! Failed to initialize assigned device host=03:10.0
ntpd
:
# service ntpd start
# chkconfig ntpd on
ntpd
deve minimizar os efeitos da distorção do relógio em todos os casos.
constant_tsc
esteja presente. Para determinar se o seu CPU possui um aviso constant_tsc
, rode o seguinte comando:
$ cat /proc/cpuinfo | grep constant_tsc
constant_tsc
. Caso nenhuma saída seja fornecida, siga as instruções abaixo:
constant_tsc
, desative todos os recursos de gerenciamento potentes (BZ#513138). Cada sistema possui diversos cronômetros usados para controlar o tempo. O TSC não é estável para manter o host, que é às vezes causado pelas alterações do cpufreq
, estado C profundo ou migração para um host com um TSC mais rápido. Para evitar que o kernel use os estados C, adicione "processor.max_cstate=1
" às opções de inicialização do kernel no arquivo grub.conf
no host:
term Red Hat Enterprise Linux Server (2.6.18-159.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet processor.max_cstate=1
cpufreq
(apenas necessário nos hosts sem o constant_tsc
) pela edição do arquivo da configuração /etc/sysconfig/cpuspeed
e altere as variáveis MIN_SPEED
e MAX_SPEED
para a freqüência mais alta disponível. Os limites válidos podem ser encontrados nos arquivos /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies
.
Red Hat Enterprise Linux | Parâmetros de kernel convidado adicional |
---|---|
5.4 AMD64/Intel 64 com o relógio para-virtualizado | Parâmetros adicionais não são solicitados |
5.4 AMD64/Intel 64 sem o relógio para-virtualizado | divider=10 notsc lpj=n |
5.4 x86 com o relógio para-virtualizado | Parâmetros adicionais não são solicitados |
5.4 x86 com o relógio para-virtualizado | divider=10 clocksource=acpi_pm lpj=n |
5.3 AMD64/Intel 64 | divider=10 notsc |
5.3 x86 | divider=10 clocksource=acpi_pm |
4.8 AMD64/Intel 64 | notsc divider=10 |
4.8 x86 | clock=pmtmr divider=10 |
3.9 AMD64/Intel 64 | Parâmetros adicionais não são solicitados |
3.9 x86 | Parâmetros adicionais não são solicitados |
boot.ini
:
/use pmtimer
boot.ini
file is no longer used from Windows Vista and newer. Windows Vista, Windows Server 2008 and Windows 7 use the Boot Configuration Data Editor (bcdedit.exe
) to modify the Windows boot parameters.
{default}
in the example below) should be changed if the system UUID is different than the default boot device.
C:\Windows\system32>bcdedit /set {default} USEPLATFORMCLOCK on The operation completed successfully
# setenforce 1
AutoFS
, NFS
, FTP
, HTTP
, NIS
, telnetd
, sendmail
e assim por diante.
/var/lib/libvirt/images/
. Caso você esteja usando um diretório diferente para suas imagens de máquina virtual, certifique-se de adicionar o diretório a sua política SELinux e etiquetá-lo novamente antes de inicializar a instalação.
vsftpd
.
fstab
file, the initrd
file or used by the kernel command line. If less privileged users, especially virtualized guests, have write access to whole partitions or LVM volumes.
/dev/sdb
). Use partitions (for example, /dev/sdb1
) or LVM volumes.
virt_image_t
label applied to them. The /var/lib/libvirt/images
directory has this label applied to it and its contents by default. This does not mean that images must be stored in this directory; images can be stored anywhere, provided they are labeled with virt_image_t
.
NewVolumeName
no grupo de volume chamado volumegroup
.
# lvcreate -nNewVolumeName
-L5G volumegroup
NewVolumeName
com um sistema de arquivo que suporte os atributos estendidos, tais como ext3.
# mke2fs -j /dev/volumegroup/NewVolumeName
/etc
, /var
, /sys
) ou em diretórios locais (/home
or /root
). Este exemplo usa o diretório chamado /virtstorage
# mkdir /virtstorage
# mount /dev/volumegroup/NewVolumeName /virtstorage
semanage fcontext -a -t xen_image_t "/virtstorage(/.*)?"
semanage fcontext -a -t virt_image_t "/virtstorage(/.*)?"
/etc/selinux/targeted/contexts/files/file_contexts.local
o qual torna a mudança persistente. A linha adicionada pode se parecer com esta:
/virtstorage(/.*)? system_u:object_r:xen_image_t:s0
/dev/volumegroup/NewVolumeName
with the correct label:
# semanage fcontext -a -t xen_image_t /dev/volumegroup/NewVolumeName # restorecon /dev/volumegroup/NewVolumeName
# semanage fcontext -a -t xen_image_t -f -b /dev/sda2 # restorecon /dev/sda2
xend_disable_t
pode definir o xend
em um modo desconfinado, após reiniciar o daemon. É melhor desabilitar a proteção para um daemon simples do que para todo um sistema. Aconselha-se que você não reetiquete os diretórios como xen_image_t
pois, você poderá precisar para algum outro lugar.
SELinux Boolean | Description |
---|---|
allow_unconfined_qemu_transition | Default: off. This boolean controls whether KVM guests can be transitioned to unconfined users. |
qemu_full_network | Default: on. This boolean controls full network access to KVM guests. |
qemu_use_cifs | Default: on. This boolean controls KVM's access to CIFS or Samba file systems. |
qemu_use_comm | Default: off. This boolean controls whether KVM can access serial or parallel communications ports. |
qemu_use_nfs | Default: on. This boolean controls KVM's access to NFS file systems. |
qemu_use_usb | Default: on. This boolean allows KVM to access USB devices. |
net.ipv4.ip_forward = 1
) is required for virtual bridge devices. Note that installing libvirt enables this variable so it will be enabled when the virtualization packages are installed unless it was manually disabled.
xend
/etc/xen/xend-config.sxp
. Estes são os parâmetros que você pode habilitar ou desabilitar no arquivo de configuração xend-config.sxp
:
Ítem | Descrição |
---|---|
(console-limit)
|
Determines the console server's memory buffer limit and assigns that limit on a per domain basis.
|
(min-mem)
|
Determina um número mínimo de megabytes que seja reservado para o domínio0 (se você inserir 0, o valor não muda).
|
(dom0-cpus)
|
Determina o número de CPUs em uso pelo domínio0 (pelo menos 1 CPU é atribuído por padrão).
|
(enable-dump)
|
Se estiver ativado, quando ocorrer um travamento, o Xen cria um arquivo dump (padrão é 0).
|
(external-migration-tool)
|
Determina o script ou aplicativo que manipula a migração de dispositivo externo. Os scripts devem residir no
etc/xen/scripts/external-device-migrate .
|
(logfile)
|
Determina o local do arquivo de registro (padrão é
/var/log/xend.log ).
|
(loglevel)
|
Filtros fora dos valores de modo de registro: DEBUG, INFO, WARNING, ERROR, ou CRITICAL (padrão é DEBUG).
|
(network-script)
|
Determina o script que habilita o ambiente de rede. Os scripts devem residir no diretório
etc/xen/scripts .
|
(xend-http-server)
|
Habilita o servidor de gerenciamento de pacote da faixa http (padrão é não).
|
(xend-unix-server)
|
Habilita o servidor de soquete de domínio UNIX. O servidor de soquete é a ponta de comunicação que manipula níveis baixos de conexões de rede e aceita ou rejeita conexões de entrada. O valor padrão é configurado para sim.
|
(xend-relocation-server)
|
Habilita o servidor de recolocação para migrações de cross-machine (padrão é não).
|
(xend-unix-path)
|
Determina o local onde o comando
xend-unix-server resulta os dados (padrão é var/lib/xend/xend-socket )
|
(xend-port)
|
Determina a porta que o servidor de gerenciamento http usa (padrão é 8000).
|
(xend-relocation-port)
|
Determina a porta que o servidor de recolocação usa (padrão é 8002).
|
(xend-relocation-address)
|
Determina os endereços de host permitidos para migração. O valor padrão é o valor de
xend-address .
|
(xend-address)
|
Determina o endereço que o servidor de soquete de domínio se vincula. O valor padrão permite todas as conexões.
|
service xend start
service xend stop
service xend restart
service xend status
xend
durante a inicializaçãochkconfig
para adicionar o xend
para o initscript
.
chkconfig --level 345 xend
xend
iniciará os níveis de execução 3, 4 e 5.
virsh migrate
.
# virsh migrateGuestName
libvirtURI
--live
para o comando virsh migrate
.
# virsh migrate--liveGuestName
libvirtURI
/etc/xen/xend-config.sxp
. Por padrão, a migração é desativada, pois a migração pode ser um alto risco de segurança caso seja configurado de forma errada. Abrir uma porta de migração, pode permitir que um host não autorizado inicie uma migração ou se conecte à portas de migração. A autenticação e autorização não são configuradas para os requisitos de migração e somente o mecanismo de controle é baseado em endereços de hostnames e IP. Deve-se tomar um cuidado especial para garantir que a porta de migração não seja acessada por hosts não autorizados.
/etc/xen/xend-config.sxp
para ativar a migração. Modifique os valores, quando necessário, e remova os comentários (o símbolo #
) precendendo os seguintes parâmetros:
(xend-relocation-server yes)
no
. Mude o valor do xend-relocation-server
para yes
para ativar a migração.
(xend-relocation-port 8002)
(xend-relocation-port)
, especifica a porta que xend
deve usar para a interface de relocação, se xend-relocation-server
estiver definido para yes
xend-relocation-port
deve ser aberta em ambos os sistemas.
(xend-relocation-address '')
(xend-relocation-address)
é o endereço que o xend
ouve para os comandos de migração na conexão do relocation-socket
se o xend-relocation-server
estiver definido.
(xend-relocation-address)
parameter restricts the migration server to only listen to a specific interface. The default value in /etc/xen/xend-config.sxp
is an empty string(''
). This value should be replaced with a single, valid IP address. For example:
(xend-relocation-address '10.0.0.1')
(xend-relocation-hosts-allow '')
(xend-relocation-hosts-allow 'hosts')
parameter controls which hostnames can communicate on the relocation port.
xend-relocation-hosts-allow
option to restrict access to the migration server.
xend-relocation-port
e xend-relocation-address
.
(xend-relocation-hosts-allow)
deve ser uma sequência de expressões regulares separadas por espaços. Qualquer host ocm um nome de domínio totalmente qualificado ou um endereço IP o qual coincide com uma destas expressões regulares, serã aceito.
(xend-relocation-hosts-allow)
:
(xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$')
# service xend restart
et-virt07
e et-virt08
), ambos usando o eth1
como sua interface de rede padrão, apesar de usarem o xenbr1
como sua ponte de rede do Xen. Estamos usando um disco SCSI anexado localmente (/dev/sdb
) em et-virt07
para armazenamento compartilhado, usando NFS.
# mkdir /var/lib/libvirt/images # mount /dev/sdb /var/lib/libvirt/images
/var/lib/libvirt/images/
assegure-se de que você somente exportará o /var/lib/libvirt/images/
e não/var/lib/xen/
pois este diretório é usado pelo daemon xend
e outras ferramentas. Compartilhar /var/lib/xen/
causará um comportamente imprevizível.
# cat /etc/exports /var/lib/libvirt/images *(rw,async,no_root_squash)
# showmount -e et-virt07 Export list for et-virt07: /var/lib/libvirt/images *
# virt-install -p -f /var/lib/libvirt/images/testvm1
.dsk -s 5 -n\testvm1
--vnc -r 1024 -l http://example.com/RHEL5-tree\ Server/x86-64/os/ -b xenbr1
[et-virt08 ~]# brctl show bridge name bridge id STP enabled interfaces xenbr1 8000.feffffffffff no peth1 vif0.1
[et-virt07 ~]# brctl show bridge name bridge id STP enabled interfaces xenbr1 8000.feffffffffff no peth1 vif0.1
[et-virt07 ~]# grep xend-relocation /etc/xen/xend-config.sxp |grep -v '#' (xend-relocation-server yes) (xend-relocation-port 8002) (xend-relocation-address '') (xend-relocation-hosts-allow '')
[et-virt08 ~]# grep xend-relocation /etc/xen/xend-config.sxp |grep -v '#' (xend-relocation-server yes) (xend-relocation-port 8002) (xend-relocation-address '') (xend-relocation-hosts-allow '')
[et-virt07 ~]# lsof -i :8002 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME python 3445 root 14u IPv4 10223 TCP *:teradataordbms (LISTEN)
[et-virt08 ~]# lsof -i :8002 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME python 3252 root 14u IPv4 10901 TCP *:teradataordbms (LISTEN)
/var/lib/libvirt/images
directory is available and mounted with networked storage on both hosts. Shared, networked storage is required for migrations.
[et-virt08 ~]# df /var/lib/libvirt/images Filesystem 1K-blocks Used Available Use% Mounted on et-virt07:/var/lib/libvirt/images 70562400 2379712 64598336 4% /var/lib/libvirt/images
[et-virt08 ~]# file /var/lib/libvirt/images/testvm1
.dsk /var/lib/libvirt/images/testvm1
.dsk: x86 boot sector; partition 1: ID=0x83, active, starthead 1, startsector 63, 208782 sectors; partition 2: ID=0x8e, starthead 0, startsector 208845, 10265535 sectors, code offset 0x48
[et-virt08 ~]# touch /var/lib/libvirt/images/foo [et-virt08 ~]# rm -f /var/lib/libvirt/images/foo
[et-virt07 ~]# virsh list Id Name State ---------------------------------- Domain-0 running
[et-virt07 ~]# virsh starttestvm1
Domaintestvm1
started
[et-virt07 ~]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
[et-virt07 images]# time virsh savetestvm1
testvm1
.sav real 0m15.744s user 0m0.188s sys 0m0.044s
[et-virt07 images]# ls -lrttestvm1
.sav -rwxr-xr-x 1 root root 1075657716 Jan 12 06:46testvm1
.sav
[et-virt07 images]# virsh list Id Name State ---------------------------------- Domain-0 running
[et-virt07 images]# virsh restore testvm1
.sav
[et-virt07 images]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
domain-id
from et-virt08
to et-virt07
. The hostname you are migrating to and <domain-id> must be replaced with valid values. This example uses the et-virt08
host which must have SSH access to et-virt07
[et-virt08 ~]# xm migrate --live testvm1
et-virt07
et-virt08
[et-virt08 ~]# virsh list Id Name State ---------------------------------- Domain-0 running
et-virt07
:
[et-virt07 ~]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
running
#!/bin/bash while true do touch /var/tmp/$$.log echo `hostname` >> /var/tmp/$$.log echo `date` >> /var/tmp/$$.log cat /var/tmp/$$.log df /var/tmp ls -l /var/tmp/$$.log sleep 3 done
et-virt07
:
[et-virt08 ~]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
et-virt07
. Você pode adicionar o time
para ver quando tempo a migração demora:
[et-virt08 ~]# xm migrate --live testvm1
et-virt07
# ./doit dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:27 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 62 Jan 12 02:26 /var/tmp/2279.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:27 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:30 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 124 Jan 12 02:26 /var/tmp/2279.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:27 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:30 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:33 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 186 Jan 12 02:26 /var/tmp/2279.log Fri Jan 12 02:26:45 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:48 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:51 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:54:57 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:55:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:55:03 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 744 Jan 12 06:55 /var/tmp/2279.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:27 EST 2007
et-virt08
:
[et-virt08 ~]# virsh list Id Name State ---------------------------------- Domain-0 running
et-virt07
:
[et-virt07 images]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
et-virt07
para o et-virt08
. Inicie uma migração do et-virt07
para o et-virt08
:
[et-virt07 images]# xm migrate --live testvm1
et-virt08
[et-virt07 images]# virsh list Id Name State ---------------------------------- Domain-0 running
# ./doit dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 62 Jan 12 06:57 /var/tmp/2418.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:56 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 124 Jan 12 06:57 /var/tmp/2418.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:56 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:58:00 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 186 Jan 12 06:57 /var/tmp/2418.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:56 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:58:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:00 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 248 Jan 12 02:30 /var/tmp/2418.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:56 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:58:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:03 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 310 Jan 12 02:30 /var/tmp/2418.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:56 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:58:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:03 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:06 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 372 Jan 12 02:30 /var/tmp/2418.log
et-virt07
verifique em et-virt08
que a máquina virtual iniciou:
[et-virt08 ~]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
[et-virt08 ~]# time virsh migrate --live testvm1
et-virt07
real 0m10.378s
user 0m0.068s
sys 0m0.052s
xm migrate
). A migração ativa pode ser feita a partir do mesmo comando. No entanto, existem algumas modificações adicionais que você deve fazer para o arquivo de configuração xend-config
. Este exemplo identifica as entradas que você deve modificar para garantir uma migração bem sucedida:
(xend-relocation-server yes)
(xend-relocation-port 8002)
xend
usa para migração.Usa este valor a não ser que seu ambiente de rede requeira um valor padronizado. Lembre-se de remover o símbolo de comentário para ativá-la.
(xend-relocation-address )
xend-relocation-server
. O hypervisor Xen espera somente pelo tráfego de rede de migração na interface específica.
(xend-relocation-hosts-allow )
(xend-relocation-hosts-allow- '^localhost\\.localdomain$' )>
virsh
. O comando migrate
aceita os parâmetros no seguinte formato:
# virsh migrate --live GuestName DestinationURL
GuestName
representa o nome do convidado que você deseja migrar.
DestinationURL
é o URL ou hostname do sistema de destino. O sistema de destino deve rodar a mesma versão do Red Hat Enterprise Linux, usando o mesmo hypervisor e possuir o libvirt
rodando.
test1.example.com
ao test2.example.com
. Altere os nomes host para seu ambiente. Esta amostra migra uma máquina virtual nomeada RHEL4test
.
Verifique se o convidado está rodando
test1.example.com
, verifique se o RHEL4test
está rodando:
[root@test1 ~]# virsh list Id Name State ---------------------------------- 10 RHEL4 running
Migre o convidado
test2.example.com
. Anexe o /system
ao final do destino URL para informar ao libvirt que você precisa de acesso completo.
# virsh migrate --live RHEL4test qemu+ssh://test2.example.com/system
Espere
virsh
apenas reporta erros. O convidado continua a rodar o host fonte até a completa migração.
Verifique se o convidado chegou ao host destino
test2.example.com
, verifique se o RHEL4test
está rodando:
[root@test2 ~]# virsh list Id Name State ---------------------------------- 10 RHEL4 running
virt-manager
.
ssh
ou TLS e SSL.
libvirt
sintonizada de forma segura com uma conexão SSH, para gerenciar máquinas remotas. Todas as autenticações são realizadas com a criptografia de chave pública e senhas ou frases de senha SSH reunidas pelo seu agente de SSH local. Além disso, o console do VNC para cada máquina virtual de agente é sintonizado com SSH.
virt-manager
virt-manager
must run as the user who owns the keys to connect to the remote host. That means, if the remote systems are managed by a non-root user virt-manager
must be run in unprivileged mode. If the remote systems are managed by the local root user then the SSH keys must be own and created by root.
virt-manager
.
Optional: Changing user
$ su -
Generating the SSH key pair
virt-manager
is used. This example uses the default key location, in the ~/.ssh/
directory.
$ ssh-keygen -t rsa
Coping the keys to the remote hosts
root@example.com
).
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@example.com root@example.com's password: Now try logging into the machine, with "ssh 'root@example.com'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting
Optional: Add the passphrase to the ssh-agent
ssh-agent
, if required. On the local host, use the following command to add the passphrase (if there was one) to enable password-less login.
# ssh-add ~/.ssh/id_rsa.pub
libvirt
daemon (libvirtd
)libvirt
daemon provide an interface for managing virtual machines. You must have the libvirtd
daemon installed and running on every remote host that needs managing.
$ ssh root@somehost
# chkconfig libvirtd on
# service libvirtd start
libvirtd
e SSH forem configurados, você deve conseguir acessar remotamente suas máquinas virtuais. Nesta fase, você também pode conseguir acessar seus convidados com o VNC
.
libvirt
management connection opens a TCP port for incoming connections, which is securely encrypted and authenticated based on x509 certificates. In addition the VNC console for each guest virtual machine will be setup to use TLS with x509 certificate authentication.
libvirt
server setup/etc/xen/xend-config.sxp
. Remova o comentário no parâmetro de configuração do (vnc-tls 1)
no arquivo de configuração.
/etc/xen/vnc
directory needs the following 3 files:
ca-cert.pem
- The CA certificate
server-cert.pem
- The Server certificate signed by the CA
server-key.pem
- The server private key
(vnc-x509-verify 1)
parameter.
virt-manager
e virsh
libvirt
, os certificados do CA e cliente devem ser colocados em /etc/pki
.Para maiores detalhes sobre isto, consulte http://libvirt.org/remote.html
virt-manager
user interface, use the ' ' transport mechanism option when connecting to a host.
virsh
, o URI possui o seguinte formato:
qemu://hostname.guestname/system
para KVM.
xen://hostname.guestname/
para Xen.
$HOME/.pki
, os quais são estes três arquivos:
ca-cert.pem
- O certificado CA
libvirt-vnc
ou clientcert.pem
- O certificado do cliente assinado pelo CA.
libvirt-vnc
ou clientkey.pem
- A chave privada do cliente.
libvirt
suporta os seguintes modos de transporte:
/var/run/libvirt/libvirt-sock
e /var/run/libvirt/libvirt-sock-ro
(para conexões de somente-leitura).
libvirtd
) deve estar rodando em uma máquina remota. A porta 22 deve estar aberta para acesso SSH. Você precisa usar algum tipo de gerenciamento de chave ssh (por exemplo, o ssh-agent
) ou lhe será solicitado uma senha.
ext
é usado para um programa externo, o qual faz conexão com a máquina remota por fora do escopo do libvirt. Este parâmetro não é suportado.
virsh
e libvirt
para conectar-se com um host remoto. Os URIs também podem ser usados com o parâmetro --connect
para o comando virsh
para executar comandos únicos ou migrações em hosts remotos.
driver[+transport]://[username@][hostname][:port]/[path][?extraparameters]
towada
, usando o transporte do SSH e o username do SSH ccurran
.
xen+ssh://ccurran@towada/
towada
usando TLS.
xen://towada/
towada
using TLS. The no_verify=1
tells libvirt not to verify the server's certificate.
xen://towada/?no_verify=1
towada
usando o SSH.
qemu+ssh://towada/system
qemu+unix:///system?socket=/opt/libvirt/run/libvirt/libvirt-sock
test+tcp://10.1.1.10:5000/default
Nome | Modo de transporte | Descrição | Uso de exemplo |
---|---|---|---|
nome | todos os modos | O nome passado para a função remota virConnectOpen. O nome é geralmente formado pela remoção do transporte, hostname, número de porta, nome do usuário e parâmetros extras de um URI remoto, mas em certos casos bem complexos pode ser melhor fornecer o nome explicitamente. | name=qemu:///system |
command | ssh e text | O comando externo. É necessário para o transporte ext. Para o ssh o padrão é ssh. O PATH é pesquisado para o comando. | command=/opt/openssh/bin/ssh |
socket | unix e ssh | O caminho para o soquete de domínio UNIX, o qual substitui o padrão.Para transporte ssh, ele é passado para o comando netcat remoto (veja netcat). | socket=/opt/libvirt/run/libvirt/libvirt-sock |
netcat | ssh |
O comando
netcat pode ser usado para conectar à sistemas remotos. O parâmetro netcat padrão, usa o comando nc . Para transporte SSH, o libvirt constrói um comando SSH usando a forma abaixo:
Os parâmetros
port , username ehostname podem ser especificados como parte do URI remoto. O command , netcat e socket vêm de outros parâmetros extras.parameters.
| netcat=/opt/netcat/bin/nc |
no_verify | tls | If set to a non-zero value, this disables client checks of the server's certificate. Note that to disable server checks of the client's certificate or IP address you must change the libvirtd configuration. | no_verify=1 |
no_tty | ssh | Se não for definido para valor não zero, ele bloqueia o ssh de pedir por uma senha caso ele não se registre em uma máquina remota automaticamente (por usar ssh-agent ou semelhante). Use este quando não possuir acesso à um terminal, por exemplo em programas gráficos que usem libvirt. | no_tty=1 |
Índice
vmstat
iostat
lsof
# lsof -i :5900 xen-vncfb 10635 root 5u IPv4 218738 TCP grumble.boston.redhat.com:5900 (LISTEN)
qemu-img
systemTap
crash
xen-gdbserver
sysrq
sysrq t
sysrq w
sysrq c
brtcl
# brctl show bridge name bridge id STP enabled interfaces xenbr0 8000.feffffffffff no vif13.0 pdummy0 vif0.0
# brctl showmacs xenbr0 port no mac addr is local? aging timer 1 fe:ff:ff:ff:ff:ff yes 0.00
# brctl showstp xenbr0 xenbr0 bridge id 8000.feffffffffff designated root 8000.feffffffffff root port 0 path cost 0 max age 20.00 bridge max age 20.00 hello time 2.00 bridge hello time 2.00 forward delay 0.00 bridge forward delay 0.00 aging time 300.01 hello timer 1.43 tcn timer 0.00 topology change timer 0.00 gc timer 0.02 flags vif13.0 (3) port id 8003 state forwarding designated root 8000.feffffffffff path cost 100 designated bridge 8000.feffffffffff message age timer 0.00 designated port 8003 forward delay timer 0.00 designated cost 0 hold timer 0.43 flags pdummy0 (2) port id 8002 state forwarding designated root 8000.feffffffffff path cost 100 designated bridge 8000.feffffffffff message age timer 0.00 designated port 8002 forward delay timer 0.00 designated cost 0 hold timer 0.43 flags vif0.0 (1) port id 8001 state forwarding designated root 8000.feffffffffff path cost 100 designated bridge 8000.feffffffffff message age timer 0.00 designated port 8001 forward delay timer 0.00 designated cost 0 hold timer 0.43 flags
ifconfig
tcpdump
ps
pstree
top
kvmtrace
kvm_stat
xentop
xm dmesg
xm log
virsh
é uma ferramenta de interface de linha de comando para gerenciar arquivos e o hypervisor.
virsh
é construída na API de gerenciamento do libvirt
e opera como uma alternativa para o comando xm
e o Gerenciador de convidado gráfico (virt-manager
). virsh
pode ser usado em modo de somente-leitura por usuários sem previlégios. Você pode usar o virsh
para executar scripts para as máquinas convidadas.
Command | Descrição |
---|---|
help
| Imprime Informações de ajuda básica |
list
| Lista todos os convidados |
dumpxml
| Apresenta o arquivo de configuração do XML para o convidado. |
create
| Cria um convidado a partir do arquivo de configuração do XML e inicia um novo convidado. |
start
| Inicia um convidado inativo. |
destroy
| Força um convidado a parar. |
define
| Apresenta como resultado um arquivo de configuração do XML para um convidado. |
domid
| Displays the guest's ID. |
domuuid
| Displays the guest's UUID. |
dominfo
| Exibe Informações sobre Convidados. |
domname
| Displays the guest's name. |
domstate
| Exibe o Estado de um convidado |
quit
| Interrompe o terminal interativo. |
reboot
| Reinicializa um convidado |
restore
| Restaura um convidado salvo anteriormente, armazenado em um arquivo. |
resume
| Resume um convidado pausado. |
save
| Salva o estado presente de um convidado para um arquivo. |
shutdown
| Fecha com delicadeza um convidado. |
suspend
| Pausa um convidado |
undefine
| Remove todos os arquivos associados à um convidado. |
migrate
| Migra um convidado para host de outros. |
Command | Descrição |
---|---|
setmem
| Define a memória alocada para um convidado. |
setmaxmem
| Define limite de memória máxima par ao hypervisor. |
setvcpus
| Muda o número de CPUs virtuais atribuídas ao convidado. |
vcpuinfo
| Exibe informações de CPU Virtual sobre um convidado |
vcpupin
| Controla a afinidade da CPU virtual de um convidado. |
domblkstat
| Exibe estatísticas de dispositivos de bloco para um convidado em execução. |
domifstat
| Exibe estatísticas de interface de rede para um convidado em execução. |
attach-device
| Anexe um dispositivo à um convidado, usando uma definição de dispositivo em um arquivo do XML. |
attach-disk
| Anexa um novo dispositivo de disco novo à um convidado. |
attach-interface
| Anexa uma interface de rede nova à um convidado. |
detach-device
|
Desanexar um dispositivo de um convidado, leva o mesma tipo de descrições do XML que o comando attach-device .
|
detach-disk
| Desanexe um dispositivo de disco de um convidado. |
detach-interface
| Desanexe uma interface de rede de um convidado. |
virsh
:
Command | Descrição |
---|---|
version
|
Exibe a versão do virsh
|
nodeinfo
| Apresenta informações como resultado sobre o hypervisor |
virsh
:
# virsh connect {hostname OR URL}
<name>
é o nome da máquina do hypervisor. Se você quiser iniciar uma conexão de somente-leitura, acrescente o comando acima com o readonly
.
virsh
:
# virsh dumpxml {domain-id, domain-name or domain-uuid}
stdout
). You can save the data by piping the output to a file. An example of piping the output to a file called guest.xml
:
# virsh dumpxmlThis fileGuestID
>guest.xml
guest.xml
can recreate the guest (refer to Editing a guest's configuration file. You can edit this XML configuration file to configure additional devices or to deploy additional guests. Refer to Seção 33.1, “Usando os arquivos de configuração do XML com o virsh” for more information on modifying files created with virsh dumpxml
.
virsh dumpxml
:
# virsh dumpxml r5b2-mySQL01 <domain type='xen' id='13'> <name>r5b2-mySQL01</name> <uuid>4a4c59a7ee3fc78196e4288f2862f011</uuid> <bootloader>/usr/bin/pygrub</bootloader> <os> <type>linux</type> <kernel>/var/lib/libvirt/vmlinuz.2dgnU_</kernel> <initrd>/var/lib/libvirt/initrd.UQafMw</initrd> <cmdline>ro root=/dev/VolGroup00/LogVol00 rhgb quiet</cmdline> </os> <memory>512000</memory> <vcpu>1</vcpu> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <interface type='bridge'> <source bridge='xenbr0'/> <mac address='00:16:3e:49:1d:11'/> <script path='vif-bridge'/> </interface> <graphics type='vnc' port='5900'/> <console tty='/dev/pts/4'/> </devices> </domain>
dumpxml
option (refer to Criando uma máquina virtual de despejo do XML (arquivos de configuração)). To create a guest with virsh
from an XML file:
# virsh create configuration_file.xml
dumpxml
option (refer to Criando uma máquina virtual de despejo do XML (arquivos de configuração)) guests can be edited either while they run or while they are offline. The virsh edit
command provides this functionality. For example, to edit the guest named softwaretesting
:
# virsh edit softwaretesting
$EDITOR
(definido para vi
por padrão).
virsh
:
# virsh suspend {domain-id, domain-name or domain-uuid}
resume
(Resumindo um convidado) option.
virsh
usando a opçãoresume
:
# virsh resume {domain-id, domain-name or domain-uuid}
suspend
e resume
.
virsh
:
# virsh save {domain-name, domain-id or domain-uuid} filename
restore
(Recupere um convidado) option. Save is similar to pause, instead of just pausing a guest the present state of the guest is saved.
virsh save
command (Salve um convidado) using virsh
:
# virsh restore filename
virsh
:
# virsh shutdown {domain-id, domain-name or domain-uuid}
on_shutdown
parameter in the guest's configuration file.
virsh
:
#virsh reboot {domain-id, domain-name or domain-uuid}
on_reboot
element in the guest's configuration file.
virsh
:
# virsh destroy {domain-id, domain-name or domain-uuid}
virsh destroy
can corrupt guest file systems . Use the destroy
option only when the guest is unresponsive. For para-virtualized guests, use the shutdown
option(Feche o convidado) instead.
# virsh domid {domain-name or domain-uuid}
# virsh domname {domain-id or domain-uuid}
# virsh domuuid {domain-id or domain-name}
virsh domuuid
:
# virsh domuuid r5b2-mySQL01 4a4c59a7-ee3f-c781-96e4-288f2862f011
virsh
with the guest's domain ID, domain name or UUID you can display information on the specified guest:
# virsh dominfo {domain-id, domain-name or domain-uuid}
virsh dominfo
:
# virsh dominfo r5b2-mySQL01 id: 13 name: r5b2-mysql01 uuid: 4a4c59a7-ee3f-c781-96e4-288f2862f011 os type: linux state: blocked cpu(s): 1 cpu time: 11.0s max memory: 512000 kb used memory: 512000 kb
# virsh nodeinfo
virsh nodeinfo
:
# virsh nodeinfo CPU model x86_64 CPU (s) 8 CPU frequency 2895 Mhz CPU socket(s) 2 Core(s) per socket 2 Threads per core: 2 Numa cell(s) 1 Memory size: 1046528 kb
virsh
:
# virsh list
--inactive
para listar os convidados inativos (ou seja, os convidados que já foram definidos mas ainda não se encontram ativos), e
--all
lista todos os convidados. Por exemplo:
# virsh list --all Id Name State ---------------------------------- 0 Domain-0 running 1 Domain202 paused 2 Domain010 inactive 3 Domain9600 crashed
virsh list
é categorizado como um dos seis estados (listados abaixo).
running
se refere aos convidados que estão ativos atualmente em uma CPU.
blocked
são bloqueados, e não são executados ou executáveis. Isto é causado por um convidado em espera na E/S (um estado de espera tradicional) ou convidados em um modo sleep.
paused
lista domínios que são pausados. Isto ocorre se um administrador usa o pause em virt-manager
, xm pause
ou virsh suspend
. Quando um convidado é pausado ele consome memória e outros recursos mas não é elegível para agendamento e recursos de CPU a partir do hypervisor.
shutdown
é para convidados no processo de fechamento. O convidado recebe um sinal de fechamento e deve estar no processo de parar suas operações suavemente. Isto pode não funcionar com todos os convidados de sistemas operacionais, alguns sistemas operacionais não respondem à estes sinais.
dying
estão no processo de apagar, o qual é um estado onde o domínio não fechou completamente ou travou.
crashed
falharam enquanto são executados e não estão mais em execução. Este estado pode ocorrer somente se o convidado foi configurado para reiniciar no travamento.
virsh
:
# virsh vcpuinfo {domain-id, domain-name or domain-uuid}
virsh vcpuinfo
:
# virsh vcpuinfo r5b2-mySQL01 VCPU: 0 CPU: 0 State: blocked CPU time: 0.0s CPU Affinity: yy
# virsh vcpupin domain-id vcpu cpulist
domain-id
parameter is the guest's ID number or name.
vcpu
denota o número das CPUs virtualizadas alocadas ao convidado. O parâmetro vcpu
deve ser fornecido.
cpulist
é uma lista de números identificadores de CPU física, separada por vírgulas. O parâmetro cpulist
determina em qual CPU física os VCPUs irão rodar.
virsh
:
# virsh setvcpus {domain-name, domain-id or domain-uuid} count
count
não pode exceder a conta acima da quantia especificado quando o convidado foi criado.
virsh
:
# virsh setmem {domain-id or domain-name} count
virsh domblkstat
para exibir estatíscas de dispositivo de bloco para um convidado em execução.
# virsh domblkstat GuestName block-device
virsh domifstat
para exibir as estatísticas de interface de rede para um convidado em execução.
# virsh domifstat GuestName interface-device
virsh
. Migre o domínio para outro host. Adicione --live para migrações ativas. O comando migrate
aceita parâmetros no seguinte formato:
# virsh migrate --live GuestName DestinationURL
--live
é opcional. Adicione o parâmetro --live
para migrações ativas.
GuestName
representa o nome do convidado para onde você deseja migrar.
DestinationURL
é a URL ou o hostname do sistema de destino. O sistema de destino requer:
libvirt
deve ser iniciado.
virsh
. Para listar redes virtuais:
# virsh net-list
# virsh net-list Name State Autostart ----------------------------------------- default active yes vnet1 active yes vnet2 active yes
# virsh net-dumpxml NetworkName
# virsh net-dumpxml vnet1 <network> <name>vnet1</name> <uuid>98361b46-1581-acb7-1643-85a412626e70</uuid> <forward dev='eth0'/> <bridge name='vnet0' stp='on' forwardDelay='0' /> <ip address='192.168.100.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.100.128' end='192.168.100.254' /> </dhcp> </ip> </network>
virsh net-autostart network name
— Auto-inicia uma rede especificada como network name
.
virsh net-create XML file
— Gera e inicia uma nova rede usando um arquivo XML pré-existente
virsh net-define XML file
— Gera uma nova rede de um arquivo XML pré-existente sem iniciar
virsh net-destroy network name
— Destroi uma rede especificada como network name
.
virsh net-name network UUID
— Converte um network UUID
especificado em um nome de rede
virsh net-uuid network name
— Converte um network name
, ou seja nome de rede, em um UUID de rede
virsh net-start name of an inactive network
— Inicia uma rede inativa, não definida anteriormente
virsh net-undefine name of an inactive network
— remove a definição de uma rede inativa.
virt-manager
) as janelas, caixas de diálogo e diversos controles GUI.
virt-manager
fornece uma visualização gráfica de hypervisors e convidado em seu sistema e em máquinas remotas. Você pode usar o virt-manager
para definir ambos convidados para-virtualizados e totalmente virtualizados. O virt-manager
pode realizar as tarefas de gerenciamento de virtualização, incluindo:
virt-manager
. The UUID field displays the globally unique identifier for the virtual machines.
dom0
)'s loopback address (127.0.0.1
). This ensures only those with shell privileges on the host can access virt-manager and the virtual machine through VNC.
virt-manager
sticky key capability to send these sequences. To use this capability, you must press any modifier key (Ctrl or Alt) 3 times and the key you specify gets treated as active until the next non-modifier key is pressed. You can then send Ctrl-Alt-F11 to the guest by entering the key sequence 'Ctrl Ctrl Ctrl Alt+F1'.
virt-manager
, it is not possible to use this sticky key feature to send a Sysrq key combination to a guest.
virt-manager
, a partir do menu Aplicativos
, clique em Ferramentas de Sistema
e selecione (virt-manager
).
virt-manager
virt-manager
virt-manager
can be started remotely using ssh as demonstrated in the following command:
ssh -X host's address
[remotehost]# virt-manager
Using ssh
to manage virtual machines and hosts is discussed further in Seção 22.1, “Gerenciamento remoto com o SSH”.
virt-manager
's preferences window.
DHCP
xm
pode gerenciar o hypervisor do Xen. A maioria das operações podem ser realizadas com as ferramentas do libvirt, o aplicativo virt-manager ou o comando virsh
. O comando xm
não tem a capacidade de verificação de erro das ferramentas do libvirt e não deve ser usada para tarefas que as ferramentas do libvirt suportam.
xm
não funcionam no Red Hat Enterprise Linux 5. A lista abaixo fornece uma visão geral de opções de comando disponíveis e não disponíveis.
virsh
ou virt-manager
ao invés do xm
. O comando xm
não lida com a verificação de erro ou erros de arquivo de configuração muito bem e erros podem levar à instalabilidade do sistema ou erros em máquinas virtuais. Editar os arquivos de configuração Xen é perigoso e deve ser evitado. Use este capítulo sob sua responsabilidade.
xm
:
xm help [--long]
: visualizar opções disponíveis e texto de ajuda.
xm
para listar os domínios ativos:
$ xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 520 2 r----- 1275.5 r5b2-mySQL01 13 500 1 -b---- 16.1
xm create [-c] DomainName/ID
: start a virtual machine. If the -c option is used, the start up process will attach to the guest's console.
xm console DomainName/ID
: attach to a virtual machine's console.
xm destroy DomainName/ID
: finaliza uma máquina virtual, semelhante ao cancelamento de energia.
xm reboot DomainName/ID
: reinicia uma máquina virtual, roda através do processo de fechamento normal do sistema e inicialização.
xm shutdown DomainName/ID
: fecha uma máquina virtual, executa um procedimento de fechamento de sistema normal.
xm pause
xm unpause
xm save
xm restore
xm migrate
xm
para gerenciar recursos:
xm mem-set
xm vcpu-list
para listar afinidades de CPU virtualizada:
$ xm vcpu-list Name ID VCPUs CPU State Time(s) CPU Affinity Domain-0 0 0 0 r-- 708.9 any cpu Domain-0 0 1 1 -b- 572.1 any cpu r5b2-mySQL01 13 0 1 -b- 16.1 any cpu
xm vcpu-pin
xm vcpu-set
xm shed-credit
para exibir os parâmetros do agendados para um dado domínio:
$ xm sched-credit -d 0 {'cap': 0, 'weight': 256} $ xm sched-credit -d 13 {'cap': 25, 'weight': 256}
xm
para monitorar e fazer o troubleshooting:
xm top
xm dmesg
xm info
xm log
xm uptime
para exibir o tempo limite dos convidados e hosts:
$ xm uptime Name ID Uptime Domain-0 0 3:42:18 r5b2-mySQL01 13 0:06:27
xm sysrq
xm dump-core
xm rename
xm domid
xm domname
xm vnet-list
não é suportado atualmente.
/boot/grub/grub.conf
) é usado para criar uma lista de sistemas operacionais para inicializar a interface do menu do GRUB. Quando você instalar o kernel-xen
RPM, um post script adiciona as entradas kernel-xen
ao arquivo de configuração GRUB, o qual aprimora o kernel-xen
por padrão. Edite o arquivo grub.conf
para modificar o kernel padrão ou adicione outros parâmetros do kernel.
title Red Hat Enterprise Linux Server (2.6.18-3.el5xen) root (hd0,0) kernel /xen.gz.-2.6.18-3.el5 module /vmlinuz-2.6..18-3.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet module /initrd-2.6.18-3. el5xenxen.img
initrd
e o kernel Linux. Como a entrada do kernel se encontra à frente de outras entradas, o kernel irá primeiro carregar para a memória. O carregador de inicialização envia os argumentos da linha de comando (e os recebe) para e do hypervisor e kernel de Linux. Esta amostra de entrada mostra como você pode restringir a memória do kernel linux Domínio0 para 800MB.
title Red Hat Enterprise Linux Server (2.6.18-3.el5xen) root (hd0,0) kernel /xen.gz.-2.6.18-3.el5 dom0_mem=800M module /vmlinuz-2.6..18-3.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet module /initrd-2.6.18-3. el5xenxen.img
mem
com1=115200, 8n1
dom0_mem
dom0_max_vcpus
acpi
/* **** Linux config options: propagated to domain0 ****/ /* "acpi=off": Disables both ACPI table parsing and interpreter. */ /* "acpi=force": Overrides the disable blacklist. */ /* "acpi=strict": Disables out-of-spec workarounds. */ /* "acpi=ht": Limits ACPI from boot-time to enable HT. */ /* "acpi=noirq": Disables ACPI interrupt routing. */
noacpi
/etc/elilo.conf
, contém uma lista de opções globais e estâncias de imagens. Quando você instala o RPM kernel-xen
um script pós instalação adiciona a estância de imagem apropriada ao elilo.conf
.
image=vmlinuz-2.6.18-92.el5xen vmm=xen.gz-2.6.18-92.el5 label=linux initrd=initrd-2.6.18-92.el5xen.img read-only root=/dev/VolGroup00/rhel5_2 append="-- rhgb quiet"
image
parameter indicates the following lines apply to a single boot selection. This stanza defines a hypervisor (vmm
), initrd
, and command line arguments (read-only
, root
and append
) to the hypervisor and kernel. When ELILO is loaded during the boot sequence, the image is labeled linux
.
read-only
para a opção de linha de comando do kernel ro
a qual faz com que o sistema de arquivo root serja montado como somente-leitura até que initscripts
monte o drive root como read-write. ELILO copia a linha "root
" para a linha de comando do kernel. Estes são mesclados com a linha "append
" para construir uma linha de comando completa:
"-- root=/dev/VolGroup00/rhel5_2 ro rhgb quiet"
--
delimita o hypervisor e argumentos do kernel. Os argumentos do hypervisor vêm primeiro, depois os delimitador do --
, seguido dos argumentos do kernel. O hypervisor geralmente não possui nenhum argumento.
--
. Um exemplo de parâmetro de memória de hipervisor (mem
) e o parâmetro quiet
para o kernel:
append="dom0_mem=2G -- quiet"
Parâmetro | Descrição |
---|---|
mem= | O parâmetro mem define o uso máximo de RAM do hipervisor. Qualquer RAM adicional no sistema é ignorada. O parâmetro pode ser especificado com um sufixo B, K, M ou G, representando bytes, kilobytes, megabytes, e gigabytes respectivamente. Caso nenhum sufixo seja especificado a unidade padrão é kilobytes. |
dom0_mem= | O dom0_mem= define a quantia de RAM para alocar ao dom0. Os mesmos sufixos são respeitados como para o parâmetro de memória acima. O padrão em Red Hat Enterprise Linux 5.2 em Itanium® é 4G. |
dom0_max_vcpus= | dom0_max_vcpus= define o número de CPUs para alocar ao hipervisor. O padrão no Red Hat Enterprise Linux 5.2 em Itanium® é 4. |
com1= | com1= estabelece os parâmetros para a primeira linha em série. Por exemplo, com1=9600,8n1,0x408,5 . As opçõesio_base e irq podem ser omitidas para deixá-las como padrão. O parâmetro baud pode ser estabelecido como auto que indicar as configurações do carregador de inicialização devem ser preservadas. O parâmetro com1 pode ser omitido se parâmetros de série forem definidos como opções globais em ELILO ou na configuração EFI. |
com2= | Define parâmetros para a segunda linha serial. Consulte a descrição do parâmetro com1 acima. |
console= | O console é uma lista de preferências delimitada por vírgulas para as opções de consolte. As opções incluem vga, com1 e com2. Esta configuração deve ser omitida pois o hipervisor tenta herdar as configurações do console EFI. |
image=vmlinuz-2.6.18-92.el5xen vmm=xen.gz-2.6.18-92.el5 label=linux initrd=initrd-2.6.18-92.el5xen.img read-only root=/dev/VolGroup00/rhel5_2 append="dom0_mem=2G dom0_max_vcpus=2 --"
rhgb quiet
" para que o kernel e o resultado do initscript
sejam gerados no consolte. Observe que o hífen duplo continua, assim a linha adicionada é interpretada corretamente como argumentos do hipervisor.
Item | Description |
---|---|
pae
|
Specifies the physical address extension configuration data.
|
apic
|
Specifies the advanced programmable interrupt controller configuration data.
|
memory
|
Specifies the memory size in megabytes.
|
vcpus
|
Specifies the numbers of virtual CPUs.
|
console
|
Specifies the port numbers to export the domain consoles to.
|
nic
|
Specifies the number of virtual network interfaces.
|
vif
|
Lists the randomly-assigned MAC addresses and bridges assigned to use for the domain's network addresses.
|
disk
|
Lists the block devices to export to the domain and exports physical devices to domain with read only access.
|
dhcp
|
Enables networking using DHCP.
|
netmask
|
Specifies the configured IP netmasks.
|
gateway
|
Specifies the configured IP gateways.
|
acpi
|
Specifies the advanced configuration power interface configuration data.
|
libvirt
configuration files for most tasks. Some users may need Xen configuration files which contain the following standard variables. Configuration items within these files must be enclosed in single quotes('). These configuration files reside in the /etc/xen
directory.
xm create --help_config
.
Parameter
|
Description
|
---|---|
vncpasswd =NAME
| Senha para o console VNC no domínio HVM |
vncviewer=no | yes
|
Gere um vncviewer aguardando por um servidor vnc no domínio. O endereço do vncviewer é passado para o domínio na linha de comando do kernel usando o VNC_SERVER=<host>:<port> . A porta usado pelo vnc é 5500 + DISPLAY. É escolhido um valor de exibição com uma porta livre, se possível. Somente válido quando vnc=1.
|
vncconsole =no | yes
| Spawn a vncviewer process for the domain's graphical console. Only valid when vnc=1. |
name =NAME
| Nomde do Domínio. Deve ser único. |
bootloader =FILE
| Caminho para o carregador de inicialização. |
bootargs =NAME
| Argumentos para passar para o carregador do inicializador. |
bootentry =NAME
|
DEPRECATED. Entry to boot via boot loader. Use bootargs .
|
kernel =FILE
| Path to kernel image. |
ramdisk =FILE
| Path to ramdisk. |
features =FEATURES
| Recursos para ativar no kernel do convidado. |
builder =FUNCTION
| Função a usar para construir o domínio. |
memory =MEMORY
| Memória do domínio no MB. |
maxmem =MEMORY
| Memória máximo do domínio no MB. |
shadow_memory =MEMORY
| Memória da sombra do domínio em MB. |
cpu =CPU
| CPU que hospeda o VCPU0. |
cpus =CPUS
| CPUs onde executar o domínio. |
pae =PAE
| Desativar e ativar o domínio do PAE do HVM. |
acpi =ACPI
| Desativar ou ativar o ACPI do domínio do HVM. |
apic =APIC
| Desativar ou ativar o APIC do domínio de HVM. |
vcpus =VCPUs
| A quantidade de CPUs virtuais no domínio. |
cpu_weight =WEIGHT
|
Set the new domain's cpu weight. WEIGHT is a float that controls the domain's share of the cpu.
|
restart =onreboot | sempre | nunca
|
Obsoleto. Use o on_poweroff, on_reboot , e on_crash . Se o domínio deve ser reiniciado na saída. - onreboot : reinicie na saída com a reinicialização de código de fechamento - always: Always reinicia na saída, ignore o código de saída - never: never reinicia na saída, ignore o código de saída.
|
on_poweroff =destroy | restart | preserve | destroy
|
Behavior when a domain exits with reason 'poweroff '. - destroy: the domain is cleaned up as normal; - restart: a new domain is started in place of the old one; - preserve: no clean-up is done until the domain is manually destroyed (using xm destroy, for example); - rename-restart: the old domain is not cleaned up, but is renamed and a new domain started in its place.
|
on_reboot =destroy | restart | preserve | destroy
| Behavior when a domain exits with reason 'reboot'. - destroy: the domain is cleaned up as normal; - restart: a new domain is started in place of the old one; - preserve: no clean-up is done until the domain is manually destroyed (using xm destroy, for example); - rename-restart: the old domain is not cleaned up, but is renamed and a new domain started in its place. |
on_crash =destroy | restart | preserve | destroy
| Behavior when a domain exits with reason 'crash'. - destroy: the domain is cleaned up as normal; - restart: a new domain is started in place of the old one; - preserve: no clean-up is done until the domain is manually destroyed (using xm destroy, for example); - rename-restart: the old domain is not cleaned up, but is renamed and a new domain started in its place. |
blkif =no | yes
| Faça com que o domínio bloqueie a parte de trás do dispositivo. |
netif =no | yes
| Transformar o domínio em um back-end da interface de rede. |
tpmif =no | yes
| Tranformar o domínio em um back-end de interface de TPM. |
disk =phy:DEV,VDEV,MODE[,DOM]
|
Adicionar um dispositivo à um domínio. O dispositivo físico é DEV , o qual é exportado para o domínio como um VDEV . O disco é somente-leitura se o MODE for r , Leitura-gravação se MODE forw . Se DOM é especificado, ele define o back-end do domain do driver para uso do disco. A opção pode ser repetida para adicionar mais do que um disco.
|
pci =BUS:DEV.FUNC
|
Adicionar um dispositivo de PCI para um domínio, usando os parâmetros apresentados (em hex). Por exemplo pci=c0:02.1a . A opção pode ser repetida para adicionar mais do que um dispositivo pci.
|
ioports =FROM[-TO]
|
Adicionar uma legacia de classe de Entrada/Saída para um domínio, usando os parâmetros apresentados (em hex). Por exemplo ioports=02f8-02ff . A opção pode ser repetida para adicionar mais do que uma classe de Entrada/Saída.
|
irq =IRQ
|
Adicionar um IRQ (linha interrupta) à um domínio. Por exemplo irq=7 . Esta opção pode ser repetida para adicionar mais do que um IRQ.
|
usbport =PATH
| Adicionar uma porta física de USB em um domínio, como especificado pelo caminho para a porta. Esta opção pode ser repetida para adicionar mais do que uma porta. |
vfb=type=
vnclisten=
xauthority=
keymap =KEYMAP
|
Make the domain a framebuffer backend. The backend type should be either sdl or vnc . For type=vnc , connect an external vncviewer. The server will listen on ADDR (default 127.0.0.1) on port N+5900. N defaults to the domain id. If vncunused=1 , the server will try to find an arbitrary unused port above 5900. For type=sdl , a viewer will be started automatically using the given DISPLAY and XAUTHORITY , which default to the current user's ones.
|
vif=type=
script= =NAME
|
Adicionar uma interface de rede com um dado endereço e ponte MAC . O vif é configurado ao chamar o script de configuração dada. Se o tipo não for especificado, o padrão é o script de configuração dada. Se o mac não é especificado um endereço aleatório de MAC é usado. Se não especificado, então o back-ed da rede escolhe seu próprio endereço de MAC . Se a ponte não for especificada a primeira ponte encontrada é usada. Se o script não for especificado, o script padrão será usado. Se o back-ends não forem especificados o domínio do driver back-end padrão será usado. Se o vifname não for especificado a interface virtual de back-end terá o nome de vifD.N onde D é o id de domínio e N é o id de interface. Esta opção pode ser repetida para adicionar mais do que um vif. Especificar vifs aumentará o número de interface a medida que necessárias.
|
vtpm=instance= INSTANCE ,backend=DOM
|
Adicionar uma interface de TPM. No lado de back-end use a instância dada como instância de TPM virtual. O número dado é meramente o númer de instância preferida. O script de hotplug irá determinar qual o número de instância que será realmente atribuído ao domínio. A associação entre a máquina virtual e o númer de instância de TPM pode ser encontrado em /etc/xen/vtpm.db . Use o back-end no domínio dado.
|
access_control=policy= POLICY ,label=LABEL
| Adicionar o rótulo de segurança e a referência de política de segurança que define isso. A referência de ssid local é calculada ao iniciar ou resumir o domínio. Neste momento, a política é verficada em relação à política ativa também. Desta forma, a migração pelas funções salvas e recupearadas são cobertas e rótulos locais são automaticamente criados corretamente no sistema onde um domínio é iniciado ou resumido. |
nics =NUM
| OBSOLETO. Use entradas de vif vazias ao invés disso. Defina o número de interfaces de rede. Use a opção de vif para definir os parâmetros de interface, caso contrário os padrões serão usados. Especificar os vifs irá aumentar o número de interfaces a medida que sejam necessários. |
root =DEVICE
|
Definir o root = parâmetro na linha de comando do kernel. Use o dispositivo, ex.: /dev/sda1 , ou /dev/nfs for NFS root.
|
extra =ARGS
| Definir argumentos extras para adicionar à linha de comando do kernel. |
ip =IPADDR
| Definir o endereço de interface do IP do kernel. |
gateway =IPADDR
| Definir o gateway IP do kernel. |
netmask =MASK
| Definir a netmask IP do kernel. |
hostname =NAME
| Definir o hostname IP do kernel. |
interface =INTF
| Definir o nome de interface IP do kernel. |
dhcp =off|dhcp
| Definir a opção dhcp do kernel. |
nfs_server =IPADDR
| Definir o endereço do servidor do NFS para o root do NFS. |
nfs_root =PATH
| Definir o caminho do diretório NFS root. |
device_model =FILE
| Caminho para o programa do modelo do dispositivo. |
fda =FILE
| Caminho para o fda. |
fdb =FILE
| Caminho para fdb |
serial =FILE
| Caminh opara o serial ou pty ou vc. |
localtime =no | yes
| O RTC está definido para o horário local |
keymap =FILE
| Definir o layout do teclado usado |
usb =no | yes
| Emular os dispositivos do USB |
usbdevice =NAME
|
Nome de um dispositivo USB a adicionar.
|
stdvga =no | yes
|
Use std vga or Cirrus Logic
graphics
|
isa =no | yes
|
Estimular um ISA somente sistema
|
boot =a|b|c|d
| Dispositivo de inicialização padrão |
nographic =no | yes
| Os modelos de dispositivos devem usar gráficos? |
soundhw =audiodev
| Os modelos de dispositivo devem ativar o dispositivo de áudio? |
vnc
| O mode de dispositivo deve usar o VNC? |
vncdisplay
| O dispositivo de VNC a usar |
vnclisten
| Endereço para o servidor do VNC a aguardar |
vncunused
| Tente encontrar uma porta não usada para o servidor do VNC. Somente válido quando o vnc=1. |
sdl
| O modelo de dispositivo deve usar o SDL? |
display =DISPLAY
| O dispositivo do X11 a usar |
xauthority =XAUTHORITY
| A Autoridade do X11 a usar |
uuid
| O xenstore UUID (universally unique identifier) a usar. Um será gerado aleatoriamente se esta opção não estiver definida, como os endereços do MAC para interfaces de rede virtuais. Esta deve ser um valor único em todo o cluster. |
Função de analisador | Argumentos válidos |
---|---|
set_bool
|
Valores aceitos:
|
set_float
|
Accepts a floating point number with Python's float(). For example:
|
set_int
|
Accepts an integer with Python's int().
|
set_value
|
aceita qualquer valor de Python.
|
append_value
|
aceita qualquer valor de Python, e adiciona-o ao valor anterior que é armazenado na matriz.
|
Parameter | Função de analisador | Valor padrão |
---|---|---|
name
|
setter
|
default value
|
vncpasswd
|
set_value
|
None
|
vncviewer
|
set_bool
|
None
|
vncconsole
|
set_bool
|
None
|
name
|
set_value
|
None
|
bootloader
|
set_value
|
None
|
bootargs
|
set_value
|
None
|
bootentry
|
set_value
|
None
|
kernel
|
set_value
|
None
|
ramdisk
|
set_value
|
''
|
features
|
set_value
|
''
|
builder
|
set_value
|
'linux'
|
memory
|
set_int
|
128
|
maxmem
|
set_int
|
None
|
shadow_memory
|
set_int
|
0
|
cpu
|
set_int
|
None
|
cpus
|
set_value
|
None
|
pae
|
set_int
|
0
|
acpi
|
set_int
|
0
|
apic
|
set_int
|
0
|
vcpus
|
set_int
|
1
|
cpu_weight
|
set_float
|
None
|
restart
|
set_value
|
None
|
on_poweroff
|
set_value
|
None
|
on_reboot
|
set_value
|
None
|
on_crash
|
set_value
|
None
|
blkif
|
set_bool
|
0
|
netif
|
set_bool
|
0
|
tpmif
|
append_value
|
0
|
disk
|
append_value
|
[]
|
pci
|
append_value
|
[]
|
ioports
|
append_value
|
[]
|
irq
|
append_value
|
[]
|
usbport
|
append_value
|
[]
|
vfb
|
append_value
|
[]
|
vif
|
append_value
|
[]
|
vtpm
|
append_value
|
[]
|
access_control
|
append_value
|
[]
|
nics
|
set_int
|
-1
|
root
|
set_value
|
''
|
extra
|
set_value
|
''
|
ip
|
set_value
|
''
|
gateway
|
set_value
|
''
|
netmask
|
set_value
|
''
|
hostname
|
set_value
|
''
|
interface
|
set_value
|
"eth0"
|
dhcp
|
set_value
|
'off'
|
nfs_server
|
set_value
|
None
|
nfs_root
|
set_value
|
None
|
device_model
|
set_value
|
''
|
fda
|
set_value
|
''
|
fdb
|
set_value
|
''
|
serial
|
set_value
|
''
|
localtime
|
set_bool
|
0
|
keymap
|
set_value
|
''
|
usb
|
set_bool
|
0
|
usbdevice
|
set_value
|
''
|
stdvga
|
set_bool
|
0
|
isa
|
set_bool
|
0
|
boot
|
set_value
|
'c'
|
nographic
|
set_bool
|
0
|
soundhw
|
set_value
|
''
|
vnc
|
set_value
|
None
|
vncdisplay
|
set_value
|
None
|
vnclisten
|
set_value
|
None
|
vncunused
|
set_bool
|
1
|
sdl
|
set_value
|
None
|
display
|
set_value
|
None
|
xauthority
|
set_value
|
None
|
uuid
|
set_value
|
None
|
Índice
ftpd
seguroftpd
segurovirsh
para definir um convidado, TestServer
, para iniciar automaticamente quando o host inicializar.
# virsh autostart TestServer
Domain TestServer marked as autostarted
--disable
# virsh autostart --disable TestServer
Domain TestServer unmarked as autostarted
Instalar o pacote do KVM
# yum install kvm
Verifique qual kernel está em uso.
uname
para determinar qual kernel está rodando:
$ uname -r 2.6.18-159.el5xen
2.6.18-159.el5xen
", está rodando no sistema. Se o kernel padrão, "2.6.18-159.el5
", estivr rodando, você poderá pular este passo.
Alterando o kernel do Xen para kernel padrão
grub.conf
determina qual kernel é inicializado. Para mudar o kernel padrão, edite o arquivo /boot/grub/grub.conf
como demonstrado anteriormente.
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-159.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-159.el5.img
title Red Hat Enterprise Linux Server (2.6.18-159.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-159.el5
module /vmlinuz-2.6.18-159.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.18-159.el5xen.img
0
(ou para o número para o kernel padrão):
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-159.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-159.el5.img
title Red Hat Enterprise Linux Server (2.6.18-159.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-159.el5
module /vmlinuz-2.6.18-159.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.18-159.el5xen.img
Reinicialie para carregar o novo kernel
$ lsmod | grep kvm kvm_intel 85992 1 kvm 222368 2 ksm,kvm_intel
kvm
e o módulo kvm_intel
ou o módulo kvm_amd
estão presentes se tudo funcionar.
Instalar os pacotes do Xen
# yum install kernel-xen xen
Verifique qual kernel está em uso.
uname
para determinar qual kernel está rodando.
$ uname -r 2.6.18-159.el5
2.6.18-159.el5
", está rodando no sistema. Este kernel é o padrão. Se o kernel possui o xen
ao final (por exemplo 2.6.18-159.el5xen
) então o kernel do Xen está rodando e você pode pular este passo.
Alterando o kernel padrão para o kernel Xen.
grub.conf
determina qual kernel é inicializado. Para mudar o kernel padrão, edite o arquivo /boot/grub/grub.conf
como demonstrado anteriormente.
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-159.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-159.el5.img
title Red Hat Enterprise Linux Server (2.6.18-159.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-159.el5
module /vmlinuz-2.6.18-159.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.18-159.el5xen.img
1
(ou para o número para o kernel do Xen):
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-159.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-159.el5.img
title Red Hat Enterprise Linux Server (2.6.18-159.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-159.el5
module /vmlinuz-2.6.18-159.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.18-159.el5xen.img
Reinicialie para carregar o novo kernel
uname
:
$ uname -r 2.6.18-159.el5xen
xen
no final, significa que o kernel Xen está rodando.
qemu-img
é usada para formatar diversos sistemas de arquivos, usados pelo Xen e KVM. O qemu-img
deve ser usado para formatar imagens de convidados virtualizados, dispositivos de armazenamento adicional e armazenamento de rede, as opções qemu-img
e uso estão listados abaixo.
size
e formato format
.
# qemu-img create [-6] [-e] [-b base_image] [-f format] filename [size]
convert
é usada para converter um formato reconhecido para outro formato de imagem.
# qemu-img convert [-c] [-e] [-f format]filename
[-Ooutput_format
]output_filename
filename
para imagem de disco output_filename
usando formato output_format
. A imagem de disco pode ser criptografada opcionalmente com a opção -e
compactada com a opção-c
.
qcow
" suporta a criptografia ou compactação. A compactação é somente-leitura, ou seja, se um setor compactado é regravado, ele será regravado como dados compactados.
qcow
oucow
. Os setores vazios são detectados e suprimidos para a imagem de destino.
info
exibe informações sobre uma imagem de disco. O formato para a opção info
é esta a seguir:
# qemu-img info [-f format] filename
raw
qemu-img info
para saber o tamanho real usada pela imagem ou ls -ls
no Unix/Linux.
qcow2
qcow
cow
cow
é incluso somente para compatibilidade com versões anteriores. Não funciona com o Windows.
vmdk
cloop
(0.5 * RAM) + (overcommit ratio * RAM) = Recommended swap size
/etc/grub.conf
file to use the virtualization kernel. You must use the xen
kernel to use the Xen hypervisor. Copy your existing xen
kernel entry make sure you copy all of the important lines or your system will panic upon boot (initrd
will have a length of '0
'). If you require xen
hypervisor specific values you must append them to the xen
line of your grub entry.
grub.conf
de um sistema que esteja executando o pacote kernel-xen. O grub.conf
pode variar em seu sistema. A parte importante no exemplo abaixo é a seção da linha do title
até a nova próxima linha.
#boot=/dev/sda default=0 timeout=15 #splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 terminal --timeout=10 serial console title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21.el5xen) root (hd0,0) kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200,8n1 module /vmlinuz-2.6.17-1.2519.4.21.el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.17-1.2519.4.21.el5xen.img
grub.conf
...grub.conf
could look very different if it has been manually edited before or copied from an example. Read Capítulo 28, Configurando os parâmetros de inicialização do kernel Xen for more information on using virtualization and grub.
dom0_mem=256M
à linha xen
em seu grub.conf
. Uma versão modificada do arquivo de configuração grub no exemplo anterior:
#boot=/dev/sda default=0 timeout=15 #splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 terminal --timeout=10 serial console title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21.el5xen) root (hd0,0) kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200,8n1 dom0_mem=256MB module /vmlinuz-2.6.17-1.2519.4.21.el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.17-1.2519.4.21.el5xen.img
$ grep -E 'svm|vmx' /proc/cpuinfo
vmx
indicando um processador da Intel com as extensões do VT 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 lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
svm
indicando um processador do AMD com extensões do AMD-V:
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm cr8legacy ts fid vid ttp tm stc
flags:
" pode aparecer diversas vezes para cada hyperthread, núcleo ou CPU no sistema.
For users of the KVM hypervisor
kvm
modules are loaded in the kernel:
# lsmod | grep kvm
kvm_intel
or kvm_amd
then the kvm
hardware virtualization modules are loaded and your system meets requirements. sudo
virsh
command can output a full list of virtualization system capabilities. Run virsh capabilities
as root to receive the complete list.
kpartx
tool, covered by this section, to mount the guest file system as a loop device which can then be accessed.
kpartx
command creates device maps from partition tables. Each guest storage image has a partition table embedded in the file.
# yum install kpartx
guest1.img
.
# kpartx -l /var/lib/libvirt/images/guest1.img
loop0p1 : 0 409600 /dev/loop0 63
loop0p2 : 0 10064717 /dev/loop0 409663
guest1
is a Linux guest. The first partition is the boot partition and the second partition is an EXT3 containing the root partition.
/dev/mapper/
.
# kpartx -a /var/lib/libvirt/images/guest1.img
# ls /dev/mapper/ loop0p1 loop0p2
loopXpY
.
/mnt/guest1
for mounting the partition.
# mkdir /mnt/guest1
# mount /dev/mapper/loop0p1
/mnt/guest1 -o loop,ro
/mnt/guest1
directory. Read or copy the files.
# umount /mnt/tmp
# kpartx -d /var/lib/libvirt/images/guest1.img
guest1.img
to the recognized devices in the /dev/mapper/
directory.
# kpartx -a /var/lib/libvirt/images/guest1.img
vgscan
command to find the new volume groups.
# vgscan Reading all physical volumes . This may take a while... Found volume group "VolGroup00" using metadata type lvm2
VolGroup00
by default) with the vgchange -ay
command.
# vgchange -ay VolGroup00 2 logical volumes in volume group VolGroup00 now active.
lvs
command to display information about the new volumes. The volume names (the LV
column) are required to mount the volumes.
# lvs LV VG Attr Lsize Origin Snap% Move Log Copy% LogVol00 VolGroup00 -wi-a- 5.06G LogVol01 VolGroup00 -wi-a- 800.00M
/dev/VolGroup00/LogVol00
in the /mnt/guestboot/
directory.
# mount /dev/VolGroup00/LogVol00 /mnt/guestboot
/mnt/guestboot
directory. Read or copy the files.
# umount /mnt/
VolGroup00
# vgchange -an VolGroup00
# kpartx -d /var/lib/libvirt/images/guest1.img
virsh nodeinfo
command provides information about how many sockets, cores and hyperthreads there are attached a host.
# virsh nodeinfo CPU model: x86_64 CPU(s): 8 CPU frequency: 1000 MHz CPU socket(s): 2 Core(s) per socket: 4 Thread(s) per core: 1 NUMA cell(s): 1 Memory size: 8179176 kB
virsh capabilities
to get additional output data on the CPU configuration.
# virsh capabilities
<capabilities>
<host>
<cpu>
<arch>x86_64</arch>
</cpu>
<migration_features>
<live/>
<uri_transports>
<uri_transport>tcp</uri_transport>
</uri_transports>
</migration_features>
<topology>
<cells num='2'>
<cell id='0'>
<cpus num='4'>
<cpu id='0'/>
<cpu id='1'/>
<cpu id='2'/>
<cpu id='3'/>
</cpus>
</cell>
<cell id='1'>
<cpus num='4'>
<cpu id='4'/>
<cpu id='5'/>
<cpu id='6'/>
<cpu id='7'/>
</cpus>
</cell>
</cells>
</topology>
<secmodel>
<model>selinux</model>
<doi>0</doi>
</secmodel>
</host>
[ Additional XML removed ]
</capabilities>
virsh freecell
command to display the free memory on all NUMA nodes.
# virsh freecell 0: 2203620 kB 1: 3354784 kB
virsh capabilities
command) about NUMA topology.
virsh capabilities
output.
<topology> <cells num='2'> <cell id='0'> <cpus num='4'> <cpu id='0'/> <cpu id='1'/> <cpu id='2'/> <cpu id='3'/> </cpus> </cell> <cell id='1'> <cpus num='4'> <cpu id='4'/> <cpu id='5'/> <cpu id='6'/> <cpu id='7'/> </cpus> </cell> </cells> </topology>
<cell id='1'>
, has physical CPUs 4 to 7.
cpuset
attribute to the configuration file.
virsh edit
.
vcpus
element.
<vcpus>4</vcpus>
cpuset
attribute with the CPU numbers for the relevant NUMA cell.
<vcpus cpuset='4-7'>4</vcpus>
virt-install
provisioning tool provides a simple way to automatically apply a 'best fit' NUMA policy when guests are created.
cpuset
option for virt-install
can use a CPU set of processors or the parameter auto
. The auto
parameter automatically determines the optimal CPU locking using the available NUMA data.
--cpuset=auto
with the virt-install
command when creating new guests.
virsh vcpuinfo
and virsh vcpupin
commands can perform CPU affinity changes on running guests.
virsh vcpuinfo
command gives up to date information about where each virtual CPU is running.
guest1
is a guest with four virtual CPUs is running on a KVM host.
# virsh vcpuinfo guest1
VCPU: 0
CPU: 3
State: running
CPU time: 0.5s
CPU Affinity: yyyyyyyy
VCPU: 1
CPU: 1
State: running
CPU Affinity: yyyyyyyy
VCPU: 2
CPU: 1
State: running
CPU Affinity: yyyyyyyy
VCPU: 3
CPU: 2
State: running
CPU Affinity: yyyyyyyy
virsh vcpuinfo
output (the yyyyyyyy
value of CPU Affinity
) shows that the guest can presently run on any CPU.
# virsh vcpupinguest1
0 4 # virsh vcpupinguest1
1 5 # virsh vcpupinguest1
2 6 # virsh vcpupinguest1
3 7
virsh vcpuinfo
command confirms the change in affinity.
# virsh vcpuinfo guest1
VCPU: 0
CPU: 4
State: running
CPU time: 32.2s
CPU Affinity: ----y---
VCPU: 1
CPU: 5
State: running
CPU time: 16.9s
CPU Affinity: -----y--
VCPU: 2
CPU: 6
State: running
CPU time: 11.9s
CPU Affinity: ------y-
VCPU: 3
CPU: 7
State: running
CPU time: 14.6s
CPU Affinity: -------y
macgen.py
. Now from that directory you can run the script using ./macgen.py
and it will generate a new MAC address. A sample output would look like the following:
$ ./macgen.py 00:16:3e:20:b0:11 #!/usr/bin/python # macgen.py script to generate a MAC address for virtualized guests on Xen # import random # def randomMAC(): mac = [ 0x00, 0x16, 0x3e, random.randint(0x00, 0x7f), random.randint(0x00, 0xff), random.randint(0x00, 0xff) ] return ':'.join(map(lambda x: "%02x" % x, mac)) # print randomMAC()
python-virtinst
para gerar endereços MAC novos e UUID
para uso no arquivo de configuração do convidado:
# echo 'import virtinst.util ; print\ virtinst.util.uuidToString(virtinst.util.randomUUID())' | python # echo 'import virtinst.util ; print virtinst.util.randomMAC()' | python
#!/usr/bin/env python # -*- mode: python; -*- print "" print "New UUID:" import virtinst.util ; print virtinst.util.uuidToString(virtinst.util.randomUUID()) print "New MAC:" import virtinst.util ; print virtinst.util.randomMAC() print ""
rate
” parameter part of the VIF
entries can throttle virtualized guests.
rate
rate=
option can be added to the VIF=
entry in a virtual machine configuration file to limit a virtual machine's network bandwidth or specify a specific time interval for a time window.
rate=
:
rate
e uso.
rate=10Mb/s
rate=250KB/s
rate=10MB/s@50ms
VIF
se pareceria com esta a seguir:
vif = [ 'rate=10MB/s , mac=00:16:3e:7a:55:1c, bridge=xenbr1']
rate
entry would limit the virtual machine's interface to 10MB/s for outgoing traffic
virsh
ou virt-manager
:
virsh
refer to Configurando Afinidade da CPU Virtual for more information.
virt-manager
refer to Seção 26.11, “Exibindo as CPUs Virtuais ” for more information.
/boot/grub/grub.conf
. Managing several or more hosts configuration files quickly becomes difficult. System administrators often prefer to use the 'cut and paste' method for editing multiple grub.conf
files. If you do this, ensure you include all five lines in the Virtualization entry (or this will create system errors). Hypervisor specific values are all found on the 'xen
' line. This example represents a correct grub.conf
virtualization entry:
# boot=/dev/sda/ default=0 timeout=15 #splashimage=(hd0, 0)/grub/splash.xpm.gz hiddenmenu serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 terminal --timeout=10 serial console title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21. el5xen) root (hd0, 0) kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200,8n1 module /vmlinuz-2.6.17-1.2519.4.21el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.17-1.2519.4.21.el5xen.img
'dom0_mem=256M'
. This example is the grub.conf
with the hypervisor's memory entry modified.
# boot=/dev/sda
default=0
timeout=15
#splashimage=(hd0,0)/grubs/splash.xpm.gz
hiddenmenu
serial --unit=0 --speed =115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console
title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21. el5xen)
root (hd0,0)
kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200,8n1 dom0_mem=256MB
module /vmlinuz-2.6.17-1.2519.4.21.el5xen ro root=/dev/VolGroup00/LogVol00
module /initrd-2.6.17-1.2519.4.21.el5xen.img
ftpd
segurovsftpd
pode fornecer acesso às árvores de instalação para os convidados para-virtualizados (por exemplo, os repositórios do Red Hat Enterprise Linux 5 repositories) ou outros dados. Se você ainda não instalou o vsftpd
durante a instalação do servidor, pegue o pacote do RPM do seu diretório do Server
de sua mídia de instalação e instale-o usando o rpm -ivh vsftpd*.rpm
(observe que o pacote de RPM deve estar em seu diretório atual).
vsftpd
, edit /etc/passwd
using vipw
and change the ftp user's home directory to the directory where you are going to keep the installation trees for your para-virtualized guests. An example entry for the FTP user would look like the following:
ftp:x:14:50:FTP User:/xen/pub:/sbin/nologin
vsftpd
não está embutido, usando o chkconfig --list vsftpd
:
$ chkconfig --list vsftpd vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
chkconfig --levels 345 vsftpd on
para iniciar o vsftpd automaticamente para níveis de execução 3, 4 e 5.
chkconfig --list vsftpd
para verificar se o daemon do vsftpd
está apto para iniciar durante a inicialização de sistema:
$ chkconfig --list vsftpd vsftpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
service vsftpd start vsftpd
para iniciar o serviço vsftpd:
$service vsftpd start vsftpd Starting vsftpd for vsftpd: [ OK ]
udev
para implementar o lun persistence. Antes de implementar o lun persistence em seu sistema, adquira UUIDs apropriados. Depois disso, você pode configurar o lun persistence, editando o arquivo scsi_id
que reside no diretório /etc
. Quando você tiver este arquivo aberto em um editor de texto, você deve comentar esta linha:
# options=-b
# options=-g
scsi_id
:
# scsi_id -g -s /block/sdc *3600a0b80001327510000015427b625e*
20-names.rules
que se encontra no diretório /etc/udev/rules.d
. As regras de nomeação do dispositivo que você criar aqui devem seguir este formato:
# KERNEL="sd*", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="UUID
", NAME="devicename
"
UUID
existente e devicename
com a entrada recuperada do UUID acima. A regra deve se assemelhar a esta:
KERNEL="sd*
", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="3600a0b80001327510000015427b625e
", NAME="mydevicename
"
/dev/sd*
para inspecionar o UUID dado. Quando ele encontrar um dipositivo que combine, ele criará um nó de dispositivo chamado /dev/devicename
. Para este exemplo, o nó de dispositivo é /dev/mydevice
. Finalmente, você precisará adicionar o arquivo /etc/rc.local
com esta linha:
/sbin/start_udev
multipath.conf
que se encontra no diretório /etc/
:
multipath { wwid 3600a0b80001327510000015427b625e alias oramp1 } multipath { wwid 3600a0b80001327510000015427b6 alias oramp2 } multipath { wwid 3600a0b80001327510000015427b625e alias oramp3 } multipath { wwid 3600a0b80001327510000015427b625e alias oramp4 }
/dev/mpath/oramp1
, /dev/mpath/oramp2
, /dev/mpath/oramp3
, edev/mpath/oramp4
. Os dispositivos se encontrarão no diretório /dev/mpath
. Estes nomes de lun são persistentes nas reinicializações a medida que cria nomes de alias no wwid dos Luns.
/sbin/service smartd stop /sbin/chkconfig --del smartd
/var/lib/xen
, the usually named vmlinuz.******
and initrd.******
. These files are the initrd and vmlinuz files from virtual machines which either failed to boot or failed for some other reason. These files are temporary files extracted from virtual machine's boot disk during the start up sequence. These files should be automatically removed after the virtual machine is shut down cleanly. Then you can safely delete old and stale copies from this directory.
vino-preferences
.
~/.vnc/xstartup
para iniciar uma seção do GNOME, sempre que o vncserver é iniciado. E primeira vez que você rodar o script do vncserver ele irá pedir por uma senha que você deseje usar para sua seção do VNC.
xstartup
:
#!/bin/sh # Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER # exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources #xsetroot -solid grey #vncconfig -iconic & #xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & #twm & if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then eval `dbus-launch --sh-syntax –exit-with-session` echo "D-BUS per-session daemon address is: \ $DBUS_SESSION_BUS_ADDRESS" fi exec gnome-session
uuidgen
command. Then for the vif
entries you must define a unique MAC address for each guest (if you are copying a guest configuration from an existing guest, you can create a script to handle it). For the xen bridge information, if you move an existing guest configuration file to a new host, you must update the xenbr
entry to match your local networking configuration. For the Device entries, you must modify the entries in the 'disk='
section to point to the correct guest image.
/etc/sysconfig/network
file to match the new guest's hostname.
HWADDR
do /etc/sysconfig/network-scripts/ifcfg-eth0
para combinar com a saída do ifconfig eth0
e caso você use os endereços IP estáticos, modifique a entrada IPADDR
.
name
uuid
uuidgen
. Um resultado de UUID de amostra:
$ uuidgen a984a14f-4191-4d14-868e-329906b211e5
vif
xenbr
para corresponder com a configuração de rede (você pode obter as informações de ponte usando o comando brctl show
).
disk=
para apontar para a imagem de convidado correta.
/etc/sysconfig/network
HOSTNAME
entry to the guest's new hostname
.
/etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR
para o resultado a partir do ifconfig eth0
IPADDR
se um endereço estático for utilizado.
libvirt
.
libvirt
.
virsh
can handle XML configuration files. You may want to use this to your advantage for scripting large deployments with special options. You can add devices defined in an XML file to a running para-virtualized guest. For example, to add a ISO file as hdc
to a running guest create an XML file:
# cat satelliteiso.xml <disk type="file" device="disk"> <driver name="file"/> <source file="/var/lib/libvirt/images/rhn-satellite-5.0.1-11-redhat-linux-as-i386-4-embedded-oracle.iso"/> <target dev="hdc"/> <readonly/> </disk>Run
virsh attach-device
to attach the ISO as hdc
to a guest called "satellite" :
# virsh attach-device satellite satelliteiso.xml
Índice
xentop
xentop
exibe informações em tempo real sobre o sistema host e os domínios do convidado.
xm
dmesg
e log
.
vmstat
iostat
lsof
iostat
, mpstat
e sar
são todos fornecidos pelo pacote sysstat
.
XenOprofile
systemtap
crash
sysrq
sysrq t
sysrq w
ifconfig
tcpdump
tcpdump
command 'sniffs' network packets. tcpdump
is useful for finding network abnormalities and problems with network authentication. There is a graphical version of tcpdump
named wireshark
.
brctl
brctl
é uma ferramenta de rede que inspeciona e ajusta a configuração da ponte ethernet no kernel de Virtualização linux. Você precisa ter acesso root antes de realizar estes exemplos de comandos:comandos:
# brctl show bridge-name bridge-id STP enabled interfaces ----------------------------------------------------------------------------- xenbr0 8000.feffffff no vif13.0 xenbr1 8000.ffffefff yes pddummy0 xenbr2 8000.ffffffef no vif0.0 # brctl showmacs xenbr0 port-no mac-addr local? aging timer 1 fe:ff:ff:ff:ff: yes 0.00 2 fe:ff:ff:fe:ff: yes 0.00 # brctl showstp xenbr0 xenbr0 bridge-id 8000.fefffffffff designated-root 8000.fefffffffff root-port 0 path-cost 0 max-age 20.00 bridge-max-age 20.00 hello-time 2.00 bridge-hello-time 2.00 forward-delay 0.00 bridge-forward-delay 0.00 aging-time 300.01 hello-timer 1.43 tcn-timer 0.00 topology-change-timer 0.00 gc-timer 0.02
yum install vnc
command.
yum install vnc-server
.
/etc/xen/
. Este diretório contém o daemon xend
e outros arquivos de configuração do convidado virtual. Os arquivos de script da rede também se econtram aqui no subdiretório /scripts
.
/var/log/xen
.
/var/lib/libvirt/images
.
/proc/xen/
.
xend
e o processo qemu-dm
, dois utilitários que escrevem os arquivos de registros múltiplos para o diretório /var/log/xen/
:
xend.log
é o arquivo de registro que contém todos os dados coletados pelo daemon xend
, seja ele um evento de sistema normal ou uma ação iniciada por operador. Todas as operações de máquina virtual (tais como, criar, fechar, destruir, etc.) aparecem aqui. O xend.log
é geralmente o primeiro lugar que se deve consultar quando você determinar quais os problemas de evento ou desempenho. Ele contém entradas detalhadas e condições de mensagens de erro.
xend-debug.log
é o arquivo de registro que contém registro de erros de eventos do xend
e subsistemas de Virtualização (tais como, buffer de quadros, scripts de Python, etc.)
xen-hotplug-log
é o arquivo de registro que contém dados dos eventos de hotplug. Se um dispositivo ou um script de rede não se conectar, o evento aparecerá aqui.
qemu-dm.[PID].log
é um arquivo de registro criado pelo processo qemu-dm
para cada convidado virtualizado. Ao usar o arquivo de registro, você deve recuperar o processo PID qemu-dm
dado, usando o comando ps
para examinar os argumentos do processo para isolar o processo qemu-dm
na máquina virtual. Note que você deve substituir o símbolo [PID] com o processo PID atual qemu-dm
.
virt-manager.log
, que reside no diretório /.virt-manager
. Note que todas as vezes que você iniciar um Gestor de Máquina Virtual, ele sobrescreverá o conteúdo do arquivo de registro existente.
/var/lib/libvirt/images
.
xend
, ele atualiza o xend-database
que se encontra no diretório /var/lib/xen/xend-db
.
xm dump-core
) se encontra no diretório /var/lib/xen/dumps
.
/etc/xen
contém os arquivos de configuração que você usa para gerenciar os recursos de sistema. O arquivo de configuração do daemon xend
é o /etc/xen/xend-config.sxp
. Este arquivo pode ser editado para implementar as mudanças de todo o sistema e configurar os textos explicativos da rede. No entanto, os arquivo de edição manuais na pasta /etc/xen/
não são recomendados.
proc
é outro recurso que lhe possibilitareunir informações do sistema. Estas entradas proc se encontram no diretório /proc/xen
:
/proc/xen/capabilities
/proc/xen/balloon
/proc/xen/xenbus/
xend.log
file contains the same basic information as when you run the xm log
command. This log is found in the /var/log/
directory. Here is an example log entry for when you create a domain running a kernel:
[2006-12-27 02:23:02 xend] ERROR (SrvBase: 163) op=create: Error creating domain: (0, 'Error') Traceback (most recent call list) 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')
xend-debug.log
, é bastante útil para os administradores de sistema, pois ele contém mais informações detalhadas do que o xend.log
. Seguem aqui os mesmos dados de erro para o mesmo problema de criação do domínio kernel:
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
grub.conf
file to enable a 38400-bps serial console on com1
/dev/ttyS0
:
title Red Hat Enterprise Linux (2.6.18-8.2080_xen0) root (hd0,2) kernel /xen.gz-2.6.18-8.el5 com1=38400,8n1 module /vmlinuz-2.618-8.el5xen ro root=LABEL=/rhgb quiet console=xvc console=tty xencons=xvc module /initrd-2.6.18-8.el5xen.img
sync_console
pode ajudar a determinar um problema que trava com a saída do console hypervisor assíncrono, e o "pnpacpi=off"
soluciona um problema que quebra a entrada no console serial. Os parâmetros "console=ttyS0"
e "console=tty"
significam que os erros do kernel se autenticam com o console normal VGA assim como com o console serial. Depois disso, você pode instalar e configurar o ttywatch
para capturar os dados em um convidado remoto conectado por um cabo de modem nulo padrão. Por exemplo, no convidado remoto você pode digitar:
ttywatch --name myhost --port /dev/ttyS0
/dev/ttyS0
para dentro do arquivo /var/log/ttywatch/myhost.log
.
# virsh console [guest name, ID or UUID]
virt-manager
to display the virtual text console. In the guest console window, select Serial Console from the View menu.
grub.conf
file, and include the 'console =ttyS0 console=tty0'
parameter. This ensures that the kernel messages are sent to the virtual serial console (and the normal graphical console). To use the guest's serial console, you must edit the libvirt configuration file configuration file. On the host, access the serial console with the following command:
# virsh console
virt-manager
to display the virtual text console. In the guest console window, select Serial Console from the View menu.
xend
e nada acontece. Você digita virsh list
e recebe a seguinte resposta:
Error: Error connecting to xend: Connection refused. Is xend running?
xend start
para iniciar manualmente e recebe mais erros:
Error: Could not obtain handle on privileged command interfaces (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 26 in ? from xen.xend import XendDomain File "/usr//lib/python2.4/site-packages/xen/xend/XendDomain.py" , line 33, in ? from xen.xend import XendDomainInfo File "/usr/lib/python2.4/site-packages/xen/xend/image.py" , line37, in ? import images File "/usr/lib/python2.4/site-packages/xen/xend/image.py" , line30, in ? xc = xen.lowlevel.xc.xc () RuntimeError: (2, 'No such file or directory' )
kernel-xen
. Para corrigir isto, você deve selecionar o kernel kernel-xen
em tempo de reinicialização (ou ajuste o kernel kernel-xen
como padrão em seu arquivo grub.conf
).
"Invalid argument"
. Isto geralmente significa que a imagem do kernel que você está tentando iniciar é incompatível com o hypervisor. Um exemplo disto seria se você estivesse tentando executar um kernel não-PAE FC5 em um hypervisor PAE FC6.
grub.conf
retorna para um kernel de metal simples ao invés do kernel de Virtualização.
/etc/sysconfig/kernel/
directory. You must ensure that kernel-xen
parameter is set as the default option in your grub.conf
file.
/boot/grub/grub.conf
, configurando os parâmetros de dispositivos em série adequados.
com1
, modifique o /boot/grub/grub.conf
inserindo as linhas com1=115200,8n1
, console=tty0
e console=ttyS0,115200
onde demonstrado.
title Red Hat Enterprise Linux 5 i386 Xen (2.6.18-92.el5xen) root (hd0, 8) kernel /boot/xen.gz-2.6.18-92.el5com1=115200,8n1
module /boot/vmlinuz-2.6.18-92.el5xen ro root=LABEL=VG_i386console=tty0
console=ttyS0,115200
module /boot/initrd-2.6.18-92.el5xen.img
com2
, modifique o /boot/grub/grub.conf
inserindo as linhascom2=115200,8n1 console=com2L
, console=tty0
e console=ttyS0,115200
onde demonstrado.
title Red Hat Enterprise Linux 5 i386 Xen (2.6.18-92.el5xen) root (hd0, 8) kernel /boot/xen.gz-2.6.18-92.el5 com2=115200,8n1 console=com2L module /boot/vmlinuz-2.6.18-92.el5xen ro root=LABEL=VG_i386 console=tty0 console=ttyS0,115200 module /boot/initrd-2.6.18-92.el5xen.img
com1
, com2
e assim por diante) que você selecionou no passo anterior.
com2
o parâmetroconsole=ttyS0
na linha vmlinuz
usada. O comportamento de toda porta que esteja sendo usada como console=ttyS0
é não padronizar o comportamento do Linux e especificar para o ambiente do Xen.
virsh console
" ou na janela "Serial Console" do virt-manager
. Defina o console em série virtual usando este procedimento:
/boot/grub/grub.conf
como se segue:
Red Hat Enterprise Linux 5 i386 Xen (2.6.18-92.el5xen) root (hd0, 0) kernel /boot/vmlinuz-2.6.18-92.el5xen ro root=LABEL=VG_i386 console=xvc0 initrd /boot/initrd-2.6.18-92.el5xen.img
xend
) pode ser configurado para registrar o resultado a partir dos consoles seriais de convidados para-virtualizados.
xend
edite /etc/sysconfig/xend
. Mude a entrada:
# Log all guest console output (cf xm console) #XENCONSOLED_LOG_GUESTS=no
# Log all guest console output (cf xm console) XENCONSOLED_LOG_GUESTS=yes
/var/log/xen/console
virsh console
".
ttyS0
no Linux ou COM1
no Windows.
/boot/grub/grub.conf
inserindo a linha "console=tty0 console=ttys0,115200
".
title Red Hat Enterprise Linux Server (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/volgroup00/logvol00
console=tty0 console=ttys0,115200
initrd /initrd-2.6.18-92.el5.img
virsh console
"
/var/log/xen/console
como são para os convidados para-virtualizados.
virt-manager
or virt-install
tools on Red Hat Enterprise Linux 5, the guests configuration files are created automatically in the /etc/xen
directory.
name = "rhel5vm01" memory = "2048" disk = ['tap:aio:/var/lib/libvirt/images/rhel5vm01.dsk,xvda,w',] vif = ["type=ieomu, mac=00:16:3e:09:f0:12 bridge=xenbr0', "type=ieomu, mac=00:16:3e:09:f0:13 ] vnc = 1 vncunused = 1 uuid = "302bd9ce-4f60-fc67-9e40-7a77d9b4e1ed" bootloader = "/usr/bin/pygrub" vcpus=2 on_reboot = "restart" on_crash = "restart"
serial="pty"
é o padrão para o arquivo de configuração. Este arquivo de configuração é para um convidado totalmente virtualizado:
name = "rhel5u5-86_64" builder = "hvm" memory = 500 disk = ['/var/lib/libvirt/images/rhel5u5-x86_64.dsk.hda,w'] vif = [ 'type=ioemu, mac=00:16:3e:09:f0:12, bridge=xenbr0', 'type=ieomu, mac=00:16:3e:09:f0:13, bridge=xenbr1'] uuid = "b10372f9-91d7-ao5f-12ff-372100c99af5' device_model = "/usr/lib64/xen/bin/qemu-dm" kernel = "/usr/lib/xen/boot/hvmloader/" vnc = 1 vncunused = 1 apic = 1 acpi = 1 pae = 1 vcpus =1 serial ="pty" # enable serial console on_boot = 'restart'
virsh dumpxml
e virsh create
(ou virsh edit
) para editar os arquivos de configuração do libvirt
(baseado em xml) os quais possuem erro de verificação e segurança.
failed domain creation due to memory shortage, unable to balloon domain0
xend.log
para este erro:
[2006-12-21] 20:33:31 xend 3198] DEBUG (balloon:133) Balloon: 558432 Kib free; 0 to scrub; need 1048576; retries: 20 [2006-12-21] 20:33:31 xend. XendDomainInfo 3198] ERROR (XendDomainInfo: 202 Domain construction failed
xm list Domain0
. Se o dom0 não for esvaziado, você pode usar o comando virsh setmem dom0 NewMemSize
para checar a memória.
wrong kernel image: non-PAE kernel on a PAE
# xm create -c va-base Using config file "va-base" Error: (22, 'invalid argument') [2006-12-14 14:55:46 xend.XendDomainInfo 3874] ERRORs (XendDomainInfo:202) Domain construction failed Traceback (most recent call last) File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 195 in create vm.initDomain() File " /usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 1363 in initDomain raise VmError(str(exn)) VmError: (22, 'Invalid argument') [2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XenDomainInfo: 1449] XendDlomainInfo.destroy: domain=1 [2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XenDomainInfo: 1457] XendDlomainInfo.destroy:Domain(1)
Unable to open a connection to the Xen hypervisor or daemon
/etc/hosts
. Verifique no arquivo se a entrada do localhost está habilitado. Segue aqui um exemplo de uma entrada de máquina local incorreta:
# Do not remove the following line, or various programs # that require network functionality will fail. localhost.localdomain localhost
# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost localhost.localdomain. localhost
xen-xend.log file
):
Bridge xenbr1 does not exist!
# xm create mySQL01 Using config file " mySQL01" Going to boot Red Hat Enterprise Linux Server (2.6.18.-1.2747 .el5xen) kernel: /vmlinuz-2.6.18-12747.el5xen initrd: /initrd-2.6.18-1.2747.el5xen.img Error: Device 0 (vif) could not be connected. Hotplug scripts not working.
xend.log
exibe os seguintes erros:
[2006-11-14 15:07:08 xend 3875] DEBUG (DevController:143) Waiting for devices vif [2006-11-14 15:07:08 xend 3875] DEBUG (DevController:149) Waiting for 0 [2006-11-14 15:07:08 xend 3875] DEBUG (DevController:464) hotplugStatusCallback /local/domain/0/backend/vif/2/0/hotplug-status [2006-11-14 15:08:09 xend.XendDomainInfo 3875] DEBUG (XendDomainInfo:1449) XendDomainInfo.destroy: domid=2 [2006-11-14 15:08:09 xend.XendDomainInfo 3875] DEBUG (XendDomainInfo:1457) XendDomainInfo.destroyDomain(2) [2006-11-14 15:07:08 xend 3875] DEBUG (DevController:464) hotplugStatusCallback /local/domain/0/backend/vif/2/0/hotplug-status
/etc/xen
directory. For example, editing the guest mySQL01
# vim /etc/xen/mySQL01
Locate the vif
entry. Assuming you are using xenbr0
as the default bridge, the proper entry should resemble the following:
# vif = ['mac=00:16:3e:49:1d:11, bridge=xenbr0',]
# xm shutdown win2k3xen12 # xm create win2k3xen12 Using config file "win2k3xen12". /usr/lib64/python2.4/site-packages/xenxm/opts.py:520: Deprecation Warning: Non ASCII character '\xc0' in file win2k3xen12 on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details execfile (defconfig, globs, locs,) Error: invalid syntax 9win2k3xen12, line1)
/etc/xen/
contémxend
.
scripts
o qual contém o scripts para a rede de Virtualização.
/var/log/xen/
/var/lib/libvirt/images/
/proc/xen/
cat /proc/partitions
" como segue abaixo.
# cat /proc/partitions major minor #blocks name 202 16 104857600 xvdb 3 0 8175688 hda
/etc/inittab
:
1:12345:respawn:/sbin/mingetty xvc0
Xen Virtual Ethernet
dentro do sistema operacional convidado. Verifique isto executando o seuinte (para Red Hat Enterprise Linux 4 e Red Hat Enterprise Linux 5):
cat /etc/modprobe.conf
cat /etc/modules.conf
alias eth0 xen-vnif
alias eth0 xen-vnif
) para todas as interfaces para-virtualizadas para o convidado.
/etc/modprobe.conf
. Edite /etc/modprobe.conf
e adicione a seguinte linha:
options loop max_loop=64
phy: block device
ou tap:aio
. Para empregar os convidados de dispositivo de loop com backup em um sistema totalmente virtualizado, use os comandosphy: device
ou file: file
.
dom0
has not ballooned down enough to provide space for a recently created or started guest. In your /var/log/xen/xend.log
, an example error message indicating this has occurred:
[2006-11-21 20:33:31 xend 3198] DEBUG (balloon:133) Balloon: 558432 KiB free; 0 to scrub; need 1048576; retries: 20. [2006-11-21 20:33:52 xend.XendDomainInfo 3198] ERROR (XendDomainInfo:202) Domain construction failedYou can verify the amount of memory currently used by
dom0
with the command “xm list Domain-0
”. If dom0
is not ballooned down you can use the command “xm mem-set Domain-0 NewMemSize
” where NewMemSize
should be a smaller value.
# xm create testVM Using config file "./testVM". Going to boot Red Hat Enterprise Linux Server (2.6.18-1.2839.el5) kernel: /vmlinuz-2.6.18-1.2839.el5 initrd: /initrd-2.6.18-1.2839.el5.img Error: (22, 'Invalid argument')In the above error you can see that the kernel line shows that the system is trying to boot a non kernel-xen kernel. The correct entry in the example is ”
kernel: /vmlinuz-2.6.18-1.2839.el5xen
”.
/etc/grub.conf
.
kernel-xen
instalado em seu convidado, você pode iniciar seu convidado:
xm create -c GuestName
GuestName
is the name of the guest. The previous command will present you with the GRUB boot loader screen and allow you to select the kernel to boot. You will have to choose the kernel-xen kernel to boot. Once the guest has completed the boot process you can log into the guest and edit /etc/grub.conf
to change the default boot kernel to your kernel-xen. Simply change the line “default=X
” (where X is a number starting at '0
') to correspond to the entry with your kernel-xen line. The numbering starts at '0
' so if your kernel-xen entry is the second entry you would enter '1
' as the default,for example “default=1
”.
# xm create -c va-base Using config file "va-base". Error: (22, 'Invalid argument') [2006-12-14 14:55:46 xend.XendDomainInfo 3874] ERROR (XendDomainInfo:202) Domain construction failed Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 195, in create vm.initDomain() File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 1363, in initDomain raise VmError(str(exn)) VmError: (22, 'Invalid argument') [2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XendDomainInfo:1449) XendDomainInfo.destroy: domid=1 [2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XendDomainInfo:1457) XendDomainInfo.destroyDomain(1)If you need to run a 32 bit or non-PAE kernel you will need to run your guest as a fully-virtualized virtual machine. The rules for hypervisor compatibility are:
Your CPU does not support long mode. Use a 32 bit distribution
. This problem is caused by a missing or incorrect pae
setting. Ensure you have an entry “pae=1
” in your guest's configuration file.
virt-manager
pode falhar ao lançar e exibir um erro, tal como “Unable to open a connection to the Xen hypervisor/daemon
”. Geralmente é causado por uma entrada de localhost
faltando no arquivo /etc/hosts
. Verifique se você realmente possui uma entrada localhost
e se está falando do /etc/hosts
e insira uma nova entrada para localhost
se não estiver presente. Um /etc/hosts
pode se parecer com o seguinte:
# Do not remove the following line, or various programs # that require network functionality will fail. localhost.localdomain localhost
# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost localhost.localdomain localhost
Applying Intel CPU microcode update: FATAL: Module microcode not found. ERROR: Module microcode does not exist in /proc/modulesAs the virtual machine is running on virtual CPUs there is no point updating the microcode. Disabling the microcode update for your virtual machines will stop this error:
/sbin/service microcode_ctl stop /sbin/chkconfig --del microcode_ctl
xm create
” irá se parecer com o diretório atual para um arquivo de configuração e depois em /etc/xen
.
# xm shutdown win2k3xen12 # xm create win2k3xen12 Using config file "win2k3xen12". /usr/lib64/python2.4/site-packages/xen/xm/opts.py:520: DeprecationWarning: Non-ASCII character '\xc0' in file win2k3xen12 on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details execfile(defconfig, globs, locs) Error: invalid syntax (win2k3xen12, line 1)
Enabling the virtualization extensions in BIOS
cat /proc/cpuinfo | grep vmx svm
. Se o comando apresentar um resultado como: as extensões de virtualização foram ativadas. Caso não seja apresentado nenhum resultado, seu sistema pode não possuir extensões de virtualização ou configurações de BIOS corretas ativadas.
virsh
command (where GUEST
is the guest's name):
# virsh edit GUEST
virsh edit
usa a shell $EDITOR
variante para deerminar qual editor usar.
<interface type='network'>
[output truncated]
<model type='rtl8139' />
</interface>
'rtl8139'
to 'e1000'
. This will change the driver from the rtl8139 driver to the e1000 driver.
<interface type='network'>
[output truncated]
<model type='e1000'
/>
</interface>
# virsh dumpxml GUEST > /tmp/guest.xml
# cp /tmp/guest.xml /tmp/new-guest.xml # vi /tmp/new-guest.xml
<interface type='network'>
[output truncated]
<model type='e1000' />
</interface>
# virsh define /tmp/new-guest.xml # virsh start new-guest
/var/log/xen/
xend
e processo qemu-dm .
xend.log
xend-debug.log
xen-hotplug.log
qemu-dm.PID
.log
qemu-dm
o qual é iniciado para cada convidado totalmente virtualizado.
PID
é substituído pelo PID
do processo do do qemu-dm relacionado.
PID
para um dado processo qemu-dm
usando o comando ps
e ao ver os argumentos de processo você poderá identificar a máquina virtual ao qual o processo qemu-dm
pertence.
.virt-manager
in the user's home
directory whom ran virt-manager. This directory will usually be ~/.virt-manager/virt-manager
.
/var/lib/libvirt/images/
/var/lib/xen/xend-db/
/etc/xen/
/etc/xen/xend-config.sxp
é a configuração principal para o daemon do xend. O arquivo xend-config.sxp
ativa ou desativa migração e outros recursos não configurados pelo libvirt
. Use as ferramentas do libvirt
para todos os outros recursos.
/var/lib/xen/dump/
xm dump-core
.
/proc/xen/
xend-kernel
nos seguintes arquivos:
/proc/xen/capabilities
/proc/xen/privcmd
/proc/xen/balloon
/proc/xen/xenbus
/proc/xen/xsd_port
/proc/xen/xsd_kva
# insmod xen-platform-pci.o Warning: kernel-module version mismatch xen-platform-pci.o was compiled for kernel version 2.4.21-52.EL while this kernel is version 2.4.21-50.EL xen-platform-pci.o: unresolved symbol __ioremap_R9eac042a xen-platform-pci.o: unresolved symbol flush_signals_R50973be2 xen-platform-pci.o: unresolved symbol pci_read_config_byte_R0e425a9e xen-platform-pci.o: unresolved symbol __get_free_pages_R9016dd82 [...]The solution is to use the correct RPM package for your hardware architecture for the para-virtualized drivers.
Warning: kernel-module version mismatch xen-platform-pci.o was compiled for kernel version 2.4.21-52.EL while this kernel is version 2.4.21-50.EL Warning: loading xen-platform-pci.o will taint the kernel: forced load See http://www.tux.org/lkml/#export-tainted for information about tainted modules Module xen-platform-pci loaded, with warnings
# cd /lib/modules/`uname -r`/ # find . -name 'xen_*.ko' -print
# insmod \ /lib/modules/'uname -r'/{LocationofPV-drivers}/xen_platform_pci.ko # insmod /lib/modules/'uname -r'/{LocationofPV-drivers}/xen_balloon.ko # insmod /lib/modules/'uname -r'/{LocationofPV-drivers}/xen_vnif.ko # insmod /lib/modules/'uname -r'/{LocationofPV-drivers}/xen_vbd.ko
/var/log/messages
# grep -E "vif|vbd|xen" /var/log/messages xen_mem: Initialising balloon driver vif vif-0: 2 parsing device/vif/0/mac vbd vbd-768: 19 xlvbd_add at /local/domain/0/backend/vbd/21/76 vbd vbd-768: 19 xlvbd_add at /local/domain/0/backend/vbd/21/76 xen-vbd: registered block device major 202You can also use the
lsmod
command to list the loaded para-virtualized drivers. It should output a list containing the xen_vnif
, xen_vbd
, xen_platform_pci
and xen_balloon
modules.
# lsmod|grep xen xen_vbd 19168 1 xen_vnif 28416 0 xen_balloon 15256 1 xen_vnif xen_platform_pci 98520 3 xen_vbd,xen_vnif,xen_balloon,[permanent]
type=ioemu
' part of 'vif
=' line in your guest's configuration file.
domU
refers to the guest operating systems which run on the host system (the dom0 domain).
/dev/VolGroup00/LogVol02
),
/dev/sda5
), and
/dev/sda
).
tap:aio
tap:aio
parameter sets the Xen hypervisor to use an advanced access mode designed for safety and performance. File-based, are accessed using a kernel thread and a user-space process. The tap:aio
method respects guest flush requests which makes it safer than the file
driver. The virtualization tools use tap:aio
by default for accessing file-based guest disks on the Xen Hypervisor.
ext2
e ext3
, identificadores de dispositivo RAID, identificadores de dispositivo LUN e iSCSI, endereços MAC e identificadores de máquina virtual.
libvirt
.
/usr/share/doc/xen-<version-number>
/
Este diretório é rico em informação sobre o hypervisor de para-virtualização Xen e ferramentas de gerenciamento associado, incluindo uma checagem em vários exemplos de configuração, informação harware-específico, e a documentação do usuário de Xen superior atual.
man virsh
e /usr/share/doc/libvirt-<version-number>
— Contém subcomandos e opções para a máquina virsh
virtual de utilitários de gerenciamento assim como informações sobre a API da biblioteca de virtualização do libvirt
.
/usr/share/doc/gnome-applet-vm-<version-number>
— Documentação para o miniaplicativo de painel gráfico GNOME, que monitora e gerencia máquinas virtuais rodando no local.
/usr/share/doc/libvirt-python-<version-number>
— Oferece detalhes sobre vinculações de Python para a biblioteca libvirt
. O pacote libvirt-python
permite que os desenvolvedores de python criem programas que façam uma interface com a biblioteca de gerenciamento de virtualização libvirt
.
/usr/share/doc/python-virtinst-<version-number>
— Oferece documentação no comando virt-install
que ajuda no início das instalações do Fedora e do Red Hat Enterprise Linux referentes à distribuições dentro de máquinas virtuais.
/usr/share/doc/virt-manager-<version-number>
— Oferece documentação no Gestor de Máquina Virtual, que oferece uma ferramenta gráfica para administrar máquinas virtuais.