PARAVIRTUALIZAÇÃO COM XEN

SOBRE O XEN – INTRODUÇÃO

Neste artigo explicarei de forma bastante objetiva o funcionamento, configuração e operação do Xen e como criar e administrar máquinas virtuais.

Para começar, vamos explicar o que é o Xen para entender o processo de paravirtualização e fazermos uma comparação com o modelo de virtualização total.

“O Xen é um dos mais populares exemplos de paravirtualização. Na virtualização total, o sistema operacional visitante tenta executar tarefas protegidas e, por estarem no espaço de aplicação do sistema operacional hospedeiro, não podem ser executadas. No entanto, o VMM intervém e executa ou simula a execução dessas, o que reduz o desempenho da virtualização total. Já a paravirtualização apresenta-se como uma alternativa a isso, na medida em que o sistema operacional visitante é modificado para não tentar executar diretamente na CPU as tarefas protegidas, mas entregar essas ao VMM. Este tipo de virtualização tem um ganho de desempenho significativo frente à total.

Uma das maiores vantagens do uso do Xen como VMM na paravirtualização é o fato de que este apresenta um desempenho melhor do que os produtos de virtualização total, quando a máquina física hospedeira não tem instruções de hardware de suporte a virtualização. No entanto, há a necessidade de que o sistema visitante seja portado para o Xen, o que não chega a ser uma desvantagem, já que os sistemas operacionais mais comuns no mercado têm versões para o Xen. Alguns dos sistemas suportados pelo Xen são Linux, FreeBSD e Windows XP.


A tecnologia de virtualização provida pelo Xen difere da tecnologia do VMWare. O Xen segue o conceito da paravirtualização, que fornece um conjunto de abstrações (processador virtual, memória virtual, rede virtual etc.) sobre o qual diferentes sistemas podem ser portados [7]. As abstrações não são necessariamente similares ao hardware da máquina física hospedeira.

Para entender como o Xen implementa a paravirtualização, é importante salientar dois conceitos: o de domínio e o de hypervisor. Os domínios são as máquinas virtuais do Xen. Essas podem ser de dois tipos, privilegiadas (domínio 0) e não-privilegiadas (domínio U). O hypervisor é o responsável por controlar os recursos de comunicação, de memória e de processamento das máquinas virtuais, mas não possui os drivers para manipular os dispositivos diretamente.

Quando a máquina hospedeira é iniciada, uma máquina virtual do domínio 0, privilegiado, é criada. Esse domínio acessa uma interface de controle e executa aplicações de gerenciamento. As máquinas virtuais dos domínios U só podem ser criadas, iniciadas e desligadas através do domínio 0. Na máquina virtual do domínio 0 é executado um Linux com núcleo modificado, que pode acessar os recursos da máquina física, já que possui privilégios especiais, e ainda se comunicar com as outras máquinas virtuais, domínio U.

O sistema operacional do domínio 0 tem que ser modificado para possuir os drivers de dispositivo da máquina física e dois drivers que tratam requisições de acessos à rede e ao disco realizadas pelas máquinas virtuais do domínio U. Em suma, só a máquina virtual do domínio 0 tem acesso direto aos recursos da máquina física, enquanto que as demais máquinas virtuais têm acesso a uma abstração dos recursos, que para serem acessados, as máquina virtuais dos domínios U têm que acessar através do domínio 0.

Linux: Paravirtualização com XEN

Para a virtualização da memória, o Xen reserva para cada máquina virtual uma determinada quantidade de memória, que pode ser alterada a qualquer momento sem a necessidade de terminar ou reiniciar a máquina virtual. Cada máquina virtual pode ter uma ou mais interfaces de rede virtuais. A comunicação entre as interfaces é implementada por dois token rings, um para enviar e outro para receber [7].

Atualmente o Xen conta também com um domínio no qual é feita a virtualização total, o que permite que sistemas operacionais não modificados sejam executados sobre o hypervisor Xen. Inicialmente, a escolha pela paravirtualização justificava-se pelo fato de que o ganho em desempenho era muito maior do que com a virtualização total. No entanto, com o advento das arquiteturas AMD-V e Intel VT, arquitetura que dão o suporte de hardware para a virtualização, a virtualização total passou a obter resultados de desempenho melhores que os da paravirtualização. Vale ressaltar que o domínio de virtualização total disponível no Xen a partir da sua versão 3.0, só pode ser usado nas máquinas hospedeiras que possuam suporte de hardware à virtualização.”

Fonte: UFRJ

UTILIZAÇÃO DO XEN

Xen pode ser empregado em diversas funções, por exemplo:

  • Consolidação de servidores
  • Virtualização da Infra-estrutura de TI
  • Laboratórios de ensino
  • Desenvolvimento de software

Como podemos observar, tem um potencial de uso enorme.

Agora vamos ao que interessa. Mãos à obra!

REQUISITOS E CONSIDERAÇÕES

Distro: Debian Etch (4.0)

Sistema de arquivos: EXT3

Processador: AMD Athlon(tm) 64 X2 Dual Core Processor 4000+

Memória RAM: 1GB

Armazenamento: HD SATA 120 GB

Versão Xen: 3.0.3

VMs a serem criadas: 2

Ter no mínimo 384MB de memória RAM (128 + 256), uma vez que o XEN impõe que sobre, no mínimo, 196MB de RAM para uso da máquina real. Isto é, ainda que use 128MB de RAM na máquina virtual, ainda sobrará 256MB de RAM para sua máquina real.

Na instalação do Debian, crie as partições da seguinte forma:

/      10GB
/boot      128MB
swap      1GB
LVM      todo o espaço restante

Após a instalação do sistema operacional, configure os repositórios padrão com as opções “main” “contrib”. Edite o arquivo sources.listconforme exibido abaixo.

# vim /etc/apt/sources.list 

deb http://ftp.br.debian.org/debian/ etch main contrib non-free
deb-src http://ftp.br.debian.org/debian/ etch main

deb http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/ etch/updates main contrib

 

INSTALAÇÃO E CONFIGURAÇÃO

 

Atualize a lista de pacotes com o comando abaixo:

# aptitude update

Atualize os pacotes com o comando abaixo:

# aptitude upgrade

Instale os pacotes abaixo, que são requeridos para o Xen:

# aptitude install apmd less lvm2 linuxlogo rcconf bridge-utils iproute xen-hypervisor-3.0.3-1-i386 xen-utils linux-image-2.6.18-6-xen-686 xen-linux-system-2.6.18-6-xen-686

Insira o comando abaixo para criar a imagem initrd do novo kernel xen baixado:

# mkinitramfs -o /boot/initrd.img-2.6.18-6-xen-686 2.6.18-6-xen-686 

Obs.: Para saber qual o nome correto do kernel xen, utilize o comando:

# ls /lib/modules

Apenas para constatar, verifique no grub se aparece o novo kernel como opção de boot.

# cat /boot/grub/menu.lst 

Renomeie/desabilite o diretório /lib/tls com o comando:

# mv /lib/tls /lib/tls.disabled 

Altere as configurações de rede, conforme abaixo, a fim de criar uma bridge que será utilizada pelas VMs. Para tanto, edite o arquivo /etc/network/interfaces e remova ou comente toda a configuração do adaptador de rede da máquina real. Mantenha as configurações do loopback e configure a bridge.

# vi /etc/network/interfaces 

auto lo
auto xen
iface lo inet loopback

#### configuração ip estático ####
allow-hotplug xen
iface xen inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.0.255
gateway 192.168.1.1
bridge_ports eth0
bridge_maxwait 0

Obs: A linha “bridge_ports eth0” associará a bridge à interface eth0. Com isso, a eth0 passará responder, na rede, pelo endereço IP 192.168.1.81.

Em conseqüência, não deverá haver uma configuração individual da eth0.

Tudo feito, reinicie a máquina e dê boot pelo novo kernel, isto é, o kernel xen.

 

CONFIGURAÇÃO DA LVM PARA DUAS MÁQUINAS VIRTUAIS

 

Criar a LVM com a partição que receberá as VMs desmontadas (operação realizada previamente).

Preparar o suporte LVM com o comando abaixo, considerando que tal partição seja a /dev/sda4:

# pvcreate /dev/sda4

A seguir, crie um grupo lógico, denominado vm, com o comando:

# vgcreate vg /dev/sda4

Agora crie um volume lógico para cada partição necessária para as máquinas virtuais. Considere o exemplo a seguir:

  • 01 partição raiz, denominada vm-virt01.raiz, com 20 GB;
  • 01 partição de swap, denominada vm-virt01.swap, com 512 MB;
  • 01 partição raiz, denominada vm-virt02.raiz, com 20 GB;
  • 01 partição de swap, denominada vm-virt02.swap, com 512 MB.

Para criar os citados volumes, utilize os seguintes comandos, respectivamente:

# lvcreate -L20G -n vm-virt01.raiz vg
# lvcreate -L512M -n vm-virt01.swap vg
# lvcreate -L20G -n vm-virt02.raiz vg
# lvcreate -L512M -n vm-virt02.swap vg

Utilize o comando “lvs” para verificar os volumes criados e “pvs” para checar o espaço ocupado. Ao criar os volumes, passarão a existir os seguintes dispositivos:

  • /dev/vg/vm-virt01.raiz
  • /dev/vg/vm-virt01.swap
  • /dev/vg/vm-virt02.raiz
  • /dev/vg/vm-virt02.swap

A seguir, formate os dispositivos lógicos:

# mkfs.ext3 /dev/vg/vm-virt01.raiz
# mkswap /dev/vg/vm-virt01.swap
# mkfs.ext3 /dev/vg/vm-virt01.raiz
# mkswap /dev/vg/vm-virt01.swap 

 

CRIAÇÃO DA MÁQUINA MODELO

 

Criaremos uma máquina modelo agora que será usada posteriormente.

# mkdir /modelo

Instale o debootstrap:

# aptitude install debootstrap

O debootstrap precisa de uma fonte de dados, que pode ser o CD-ROM do Debian ou uma URL da Internet. Para utilizar o debootstrap uma URL, execute o comando:

# debootstrap etch /modelo http://ftp.us.debian.org/debian

Copie alguns arquivos essenciais para dentro de /modelo:

# cp -a /etc/apt/* /modelo/etc/apt
# cp -a /etc/fstab /modelo/etc
# cp -a /etc/hosts /modelo/etc
# cp -a /etc/network/interfaces /modelo/etc/network
# cp -av /lib/modules/*xen* /modelo/lib/modules 

“Enjaule-se” dentro do diretório /modelo com o comando:

# chroot /modelo 

Obs.: Uma vez enjaulado, o /modelo passará a ser a raiz do sistema (/). Com isso o administrador estará operando dentro de um novo sistema, que deverá ser reconfigurado. Se a rede estava funcionando fora da jaula, continuará funcionando dentro da mesma e com o mesmo endereço IP.

Execute o comando:

# mount /proc

Obs.: Isso se faz necessário porque a partição /proc é montada pelo sistema durante o boot e não houve boot de sistema e sim enjaulamento.

Execute os comandos:

# aptitude update
# aptitude install locales libc6-xen 

Defina as variáveis abaixo:

# export LC_ALL=”pt_BR”
# export LC_CTYPE=”pt_BR”
# export LANGUAGE=”pt_BR”
# export LANG=”pt_BR”
# export LC_MESSAGES=”pt_BR”

Execute o comando abaixo para reconfiguração do locales:

# dpkg-reconfigure locales

Nas opções exibidas na tela, selecione “pt_BR ISO-8859-1” e clique em OK. Em seguida confirme a opção “pt_BR” e clique em OK.

Execute o comando a seguir para otimizar o sistema:

# aptitude install apmd less linuxlogo ntpdate rcconf 

Instale o pacote module-init-tools:

# aptitude install module-init-tools 

Atualize o sistema com o comando:

# aptitude upgrade

Remova os arquivos .deb utilizados até o momento para que a máquina modelo não fique muito grande:

# apt-get clean 

Converta o arquivo de senhas de /etc/passwd para /etc/shadow com o comando:

# pwconv 

Edite o arquivo /etc/hostname e altere o nome da máquina para “modelo”.

Edite o arquivo /etc/hosts e altere o nome para “modelo” e ip da máquina para 192.168.1.3.

Edite o arquivo /etc/network/interfaces e altere o nome xen por eth0 para que as máquinas virtuais possam utilizar corretamente os adaptadores de rede. Ainda, remova as entradas bridge_ports e bridge_maxwait.

Renomeie o diretório /lib/tls para desabilitá-lo. Utilize o comando:

# mv /lib/tls /lib/tls.disabled

Edite o arquivo /etc/inittab e desabilite os terminais locais de 2 a 6 (lembra do que eu disse no início sobre só ter um terminal). A situação final será a seguinte:

1:2345:respawn:/sbin/getty 38400 tty1
#2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6

Obs.: O Xen só utiliza um terminal. Assim sendo, a não desabilitação dos terminais excedentes causará mensagens de erro na tela.

Edite o arquivo /etc/profile e insira as linhas (no final):

alias ls=’ls –color=auto’
export TMOUT=1200

Obs.: A linha “alias” proverá a facilidade de colorização dos resultados do comando ls. A linha export irá declarar a variável TMOUT. Com isso, após 1200 segundos (20 minutos) de inatividade no teclado, haverá um auto-logout. Isso aumentará o nível de segurança.

Edite o arquivo /etc/fstab e altere as entradas existentes para que fiquem compatíveis com as máquinas virtuais a serem criadas. Esse arquivo deverá referir-se a uma nova máquina que, normalmente, terá um esquema de partições próprio, começando em /dev/hda1. A seguir, um exemplo de configuração para a máquina modelo:

# <file system> <mount point> <type>  <options> <dump> <pass>
proc          /proc       proc     defaults    0     0
/dev/hda1     /           ext3     defaults    0     1
/dev/hda2     none        swap     sw          0     0

Obs.: Não se preocupe com o fato de ter utilizado /dev/hda1 e /dev/hda2 e não saber o porque disso. Isto em nada tem haver com seus dispositivos físicos (reais), até mesmo se acaso tivesse, nós usaríamos algo como /dev/sd*, o que não é o caso. Na verdade, no momento em que a máquina virtual for configurada para ir ao ar, serão atribuídas ligações entre os dispositivos em questão e os volumes lógicos criados anteriormente. Assim sendo, no caso da máquina vm1, /dev/hda1 será correlacionado com /dev/vm/vm-virt01.raiz ou /dev/vm/vm-virt02.raiz. Já o /dev/hda2 será correlacionado com /dev/vm/vm-virt01.swap ou /dev/vm/vm-virt02.swap. Isso será configurado posteriormente.

Desmonte o diretório /proc com o comando:

# umount /proc

Saia da jaula com o comando:

# exit

 

CRIAÇÃO DAS MÁQUINAS VIRTUAIS

 

Cada VM poderá ser criada a partir da máquina modelo recém configurada.

CRIAÇÃO DA MÁQUINA VIRTUAL PARA VIRT01

Deverá ser configurada a máquina virt01 (composta pelos volumes /dev/vm/vm-virt01.raiz e /dev/vm/vm-virt01.swap).

Para criar a VM do VIRT01, monte o dispositivo /dev/vm/vm-virt01.raiz em /mnt/vm-virt01 com o comando:

# mkdir /mnt/vm-virt01
# mount /dev/vm/vm-virt01.raiz /mnt/vm-virt01

Copie o conteúdo de /modelo para /mnt/vm-virt01 com o comando:

# cp -a /modelo/* /mnt/vm-virt01

Para evitar erros, enjaule-se dento do diretório /mnt/vm-virt01 com o comando:

# chroot /mnt/vm-virt01

Dentro da jaula, revise o arquivo /etc/fstab, verificando se o mesmo encontra-se de acordo com a realidade da máquina virtual que irá ao ar. A seguir, um exemplo de configuração para a máquina virt01:

# <file system> <mount point> <type> <options> <dump> <pass>
proc              /proc     proc     defaults    0     0
/dev/hda1     /            ext3     defaults    0     1
/dev/hda2     none      swap    sw            0     0

Dentro da jaula, ajuste o nome da máquina virtual modificando o arquivo /etc/hostname para virt01.

Dentro da jaula, ajuste o nome e o endereço IP da máquina virtual modificando o arquivo /etc/hosts. A seguir, como deve ficar a configuração da máquina:

127.0.0.1     localhost.localdomain            localhost
192.168.1.4   virt01.dominio.com.br          virt01

Dentro da jaula, ajuste as configurações de rede da máquina virtual. O endereço IP deverá ser diferente do atribuído à máquina real. Um exemplo de configuração:

auto lo
auto eth0
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.1.4
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

Desenjaule-se com o comando:

# exit

Desmonte a partição /mnt/vm-virt01 com o comando:

# umount /mnt/vm-virt01

Agora criaremos a VM para o VIRT02.

Monte o dispositivo /dev/vm/vm-virt02.raiz em /mnt/vm-virt02 com o comando:

# mkdir /mnt/vm-virt02
# mount /dev/vm/vm-virt02.raiz /mnt/vm-virt02

Copie o conteúdo de /modelo para /mnt/vm-virt02 com o comando:

# cp -a /modelo/* /mnt/vm-virt02

Para evitar erros, enjaule-se dento do diretório /mnt/vm-virt02 com o comando:

# chroot /mnt/vm-virt02

Dentro da jaula, revise o arquivo /etc/fstab, verificando se o mesmo encontra-se de acordo com a realidade da máquina virtual que irá ao ar. A seguir, um exemplo de configuração para a máquina vm-virt02:

# <file system> <mount point> <type> <options> <dump> <pass>
proc                   /proc               proc       defaults      0           0
/dev/hda1          /                      ext3       defaults      0           1
/dev/hda2          none                swap       sw             0           0

Dentro da jaula, ajuste o nome da máquina virtual modificando o arquivo /etc/hostname para virt02.

Dentro da jaula, ajuste o nome e o endereço IP da máquina virtual modificando o arquivo /etc/hosts. A seguir, como deve ficar a configuração da máquina:

127.0.0.1     localhost.localdomain        localhost
192.168.1.5   virt02.omni.com.br           virt02

Dentro da jaula, ajuste as configurações de rede da máquina virtual. O endereço IP deverá ser diferente do atribuído à máquina real. Um exemplo de configuração:

auto lo
auto eth0
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

Desenjaule-se com o comando:

# exit 

Desmonte a partição /mnt/vm-virt02 com o comando:

# umount /mnt/vm-virt02

 

CONFIGURAÇÃO DAS MÁQUINAS VIRTUAIS

 

Cada VM deverá ter um arquivo de configuração dentro do diretório /etc/xen, existente dentro da máquina real.

Crie o arquivo /etc/xen/vm-virt01 com o conteúdo abaixo. Essas instruções serão a referência para inicialização da máquina virt01 (VIRT01):

kernel=”/boot/vmlinuz-2.6.18-6-xen-686″
ramdisk=”/boot/initrd.img-2.6.18-6-xen-686″
memory=128
root=”/dev/hda1 ro”
disk=[ ‘phy:/dev/vm/vm-virt01.raiz,hda1,w’, ‘phy:/dev/vm/vm-virt01.swap,hda2,w’ ]
vif=[ ‘bridge=xen’ ]

Crie agora o arquivo /etc/xen/vm-virt02 com o conteúdo abaixo. Essas instruções serão a referência para inicialização da máquina virt02 (VIRT02):

kernel=”/boot/vmlinuz-2.6.18-6-xen-686″
ramdisk=”/boot/initrd.img-2.6.18-6-xen-686″
memory=128
root=”/dev/hda1 ro”
disk=[ ‘phy:/dev/vm/vm-virt02.raiz,hda1,w’, ‘phy:/dev/vm/vm-virt02.swap,hda2,w’ ]
vif=[ ‘bridge=xen’ ]

A linha kernel refere-se ao kernel que será utilizado pela máquina virtual. Esse kernel encontra-se no diretório /boot da máquina real.

A linha ramdisk refere-se ao arquivo initrd, que também poderá ser encontrado no diretório /boot da máquina real.

A linha memory irá limitar a quantidade de memória RAM, em megabytes, que será disponibilizada para a máquina virtual. É importante notar que a máquina real necessita de, pelo menos, 196 MB de RAM (imposição do Xen).

A linha root especifica qual será a partição raiz da máquina virtual.

A linha disk especifica quais volumes lógicos serão utilizados pela máquina virtual. No caso, o volume /dev/vm/vm-virt01.raiz será utilizado como hda1 (dentro da máquina virtual) e o volume /dev/vm/vm-virt01.swap será utilizado como hda2. É importante notar que essa linha deve obedecer às especificações inseridas anteriormente em /mnt/vm-virt01/etc/fstab.

A linha vif definirá a bridge que será utilizada para prover a comunicação com a rede.

Ainda, na linha vif é possível fixar um endereço MAC a ser atribuído à VM, porém não é necessário, pois serão gerados MACs aleatórios para as VMs.

Para declarar o MAC, utilize a entrada mac, como no exemplo mostrado a seguir:

vif=[ ‘mac=ac:de:48:00:00:01, bridge=xen’ ]

 

INICIALIZANDO E GERENCIANDO AS VMS

 

Para inicializar a primeira máquina virtual, utilize o comando:

# xm create -c vm-virt01

Obs.: Após realizar o primeiro login, altere a senha de root com o comando “passwd root”. A chave -c força a disponibilização de um console durante o boot e após o mesmo. Para realizar um “boot em background”, omita a chave -c.

Para voltar para a máquina real, sem retirar a virtual do ar, utilize teclas “Ctrl + ]”.

A partir da máquina real, para retornar à máquina virtual, utilize o comando:

# xm console vm-virt01

Para inicializar a segunda máquina virtual, utilize o comando:

# xm create -c vm-virt02

Obs.: Após realizar o primeiro login, altere a senha de root com o comando “passwd root”. A chave -c força a disponibilização de um console durante o boot e após o mesmo. Para realizar um “boot em background”, omita a chave -c.

Para voltar para a máquina real, sem retirar a virtual do ar, utilize teclas “Ctrl + ]”.

A partir da máquina real, para retornar à máquina virtual, utilize o comando:

# xm console vm-virt02

Dentro das VMs é possível emitir os comandos “halt” e “reboot”.

 

COMANDOS ÚTEIS DO XEN

 

Shutdown sem estar dentro da máquina virtual:

# xm shutdown -H vm1

Reboot sem estar dentro da máquina virtual:

# xm reboot vm1 

Desligar a máquina virtual, bruscamente, sem sincronizar ou desmontar discos:

# xm destroy vm1 

ATENÇÃO: Esse comando é equivalente a um kill -9 ou a um desligamento abrupto de uma máquina real. Só utilize em casos extremos. Exemplo: perda de controle da máquina virtual. O uso desse comando poderá causar danos, como o corrompimento de filesystem e a perda de dados.

Listar as máquinas que estão sendo executadas:

# xm list

Obs.: Ao listar as máquinas poderão aparecer algumas letras que indicam o estado das mesmas. As principais são:

  • r (running): indica que a máquina está executando alguma tarefa;
  • b (blocked): indica um bloqueio de atividade, geralmente causado por espera para acesso a dispositivos;
  • p (paused): indica que a VM sofreu pausa (veja a seguir como estabelecer pausa na execução);
  • s (shutdown): indica que a máquina está em processo de shutdown;
  • c (crashed): indica que máquina sofreu um “crash”. Essa situação deve ser do conhecimento do hypervisor para que o estado “c” seja listado;
  • d (dying): indica que a máquina está saindo do ar mas ainda não terminou por algum motivo temporário. Esse estado geralmente ocorre durante shutdown ou crash da máquina.

Top do sistema e das máquinas:

# xm top 

Pausa na execução de uma máquina:

# xm pause vm1

Retirar pausa na execução de uma máquina:

# xm unpause vm1 

Redefinir a quantidade de memória RAM utilizada por uma máquina em execução:

# xm mem-set vm1 256

DESLIGAMENTO DA MÁQUINA REAL

Caso a máquina real seja desligada ou reiniciada por um comando regular (ex: reboot, halt -p, shutdown -(h|r) now, init 0), o estado de execução de cada máquina virtual será salvo automaticamente, dispensando a necessidade de retirá-las do ar previamente. No momento da reinicialização da máquina real, as máquinas virtuais serão recolocadas no ar com base nos dados salvos no momento do desligamento.

Os dados das máquinas são salvos em /var/lib/xen/save e, basicamente, consistem em um dump de memória. Assim sendo, cada arquivo terá o tamanho da quantidade de memória atribuída a cada máquina.

Em caso de erros, verifique o log /var/log/xend.log.

Rolar para cima