Stub

De Xen-BR wiki

Tabela de conteúdo

Por que usar Stub Domains?

O modelo anterior para se usar HVM (Hardware Virtual Machine), acabava deixando o Dom0 com um número grande de processos quando se precisava ter um HVM. O Dom0 era responsável por rodar o gerenciandor de domínios, o construtor de domínios, os device models, o pygrub, usando o usuário root que era um grande problema com relação a segurança e escalabilidade.

Stub Domains são domínios paravirtualizados que auxiliam o Dom0 a a rodar os componentes do Xen para o HVM. Eles ficam responsáveis por praticamente todos os componentes que antes eram destinados ao Dom0. É um domínio baseado no Mini-OS e é baseado em POSIX.

O Mini-OS faz o papel de frontend de dispositívos de blocos, Frame Buffer, Sistema de arquivos, gerenciamento de memória mais avançado (memória read-only e CoW para páginas vazias), Espaço de endereçamento simples, mono-VCPU e sem direito de preempção. Este modelo acaba por retirar toda a carga que antes era delegada ao Dom0 e melhora a performace do domínio HVM.

Considerações iniciais

Este HowTo foi testado em uma instalação do debian lenny AMD64 com o xen3.3. A instalação foi feita utilizando o howto "Xen-3.3.0-install-all".

Stubdom é uma feature que está disponível apenas a partir do Xen 3.3.

Verificando o processador

Apenas para relembrar, seu processador deve ter suporte a virtualização:

  egrep -i "vmx|svm" /proc/cpuinfo

Criando volume lógico

Vamos criar um volume lógico chamado "windows" dentro do grupo de volumes "xendisk".

  lvcreate -L 10G -n windows.disk xendisk

Criando imagem do cd do Windows

Para criar a imagem do cd de instalação do windows faça:

  dd if=/media/cdrom of=/admrede/win2003.iso

Ajustes no ambiente

Vocé deve criar os diretórios e os links com os comando abaixo:

  mkdir -p /exports/usr/share/xen/qemu
  ln -s /usr/share/xen/qemu/keymaps /exports/usr/share/xen/qemu
  mkdir -p /exports/var/lib
  ln -s /var/lib/xen /exports/var/lib

Assim, toda vez que a dom0 for inciada será necessário executar este comando:

  /usr/sbin/fs-backend &

Você pode adicioná-lo no arquivo /etc/rc.local, antes da linha "exit 0"

Arquivos de configuração

Para utilizar stub domais são necessários 2 arquivos de configuração, um para a domU e outro para o mini-os.

Neste exemplo a domU chamará "windows", então os arquivos de configuração serão "windows" (domU) e "windows-dm" (mini-os).

Arquivo "windows"

  kernel = "/usr/lib/xen/boot/hvmloader"
  builder='hvm'
  memory = 1024
  name = "windows"
  vif = [ 'type=ioemu, bridge=eth0,mac=00:16:3E:78:CD:EE' ]
  device_model = '/usr/lib/xen/bin/stubdom-dm'
  boot="dc"
  acpi=1
  sdl=0
  stdvga=0
  vnc=1
  vnclisten = '172.16.10.21'
  on_crash='restart'
  on_reboot='restart'
  usb=1
  usbdevice='tablet'

Atente que o ip da opção vnclisten NÃO É o ip da domU nem da Dom0, é usado apenas para acesso via vnc.

arquivo "windows-dm"

Este arquivo deve obrigatóriamente ter o mesmo nome que a domU, seguido de "-dm"

  kernel = "/usr/lib/xen/boot/ioemu-stubdom.gz"
  vif = [ ' ip=172.16.10.21', 'bridge=eth0,mac=00:16:3E:78:CD:EE']
  disk = ['file:/admrede/win2003.iso,hdd:cdrom,r','phy:/dev/xendisk/windows.disk,hda,w']

O ip do "vif" deve ser o mesmo do arquivo anterior.

Inciando a VM

  xm create windows

Execute um xm list e verifique se subiram duas vms, conforme exemplo abaixo.

  hbueno:/etc/xen# xm list
  Name                                        ID   Mem VCPUs      State   Time(s)
  Domain-0                                     0   911     4     r----- 109560.6
  windows                                     17   300     1     r-----    302.4
  windows-dm                                  18    32     1     -b----      4.1

Agora já podemos acessar a domU via vnc para concluir a instalação do windows.

  vncviewer 172.16.10.21

Depois que o windows estiver instalado você pode alterar a opção de boot no arquivo "windows".

  boot="dc"
  para 
  boot = "c"


Links de referência


AUTOR: hbueno

Ferramentas pessoais