Vm-manager

De Xen-BR wiki

Xen-BR 
Manual de gerenciamento do Xen

Xenlogo.png




Tabela de conteúdo

Daemon Xend

O xend é um daemon que executa algumas funções do hypervisor (servidor de máquinas virtuais) Xen. Este daemon controla os recursos virtualizados e ele deve estar ativo para interagir com as maquinas virtuais. Antes de você iniciar o daemon xend, você deve especificar alguns parâmetros para a sua correta operação editando o arquivo /etc/xen/xend-config.sxp. Abaixo, a descrição dos parâmetros:

Item Descrição
console-limit Determina o limite de memória buffer do servidor de console e atribui os valores em uma base por domínio.
min-mem Determina o número mínimo em megabytes que é reservada para o Domain0 (se é configurado 0, o valor não é alterado)
dom0 cpus Determina o número de CPUs em uso pelo domain0 (ao menos uma CPU é atribuida por padrão)
enable-dump Determina que caso ocorra um crash é habilitado um dump (padrão é 0)
external-migration-tool Determina o script ou aplicação que será utilizado para migração para um servidor externo. (estes scripts costumam ficar em /etc/xen/scripts/external-device-migrate)
logfile Determina o local do arquivo de log (o padrão é /var/log/xend.log)
loglevel Filtro de saída do log. valor usados: DEBUG, INFO, WARNING, ERROR, or CRITICAL (o padrão é DEBUG)
network-script Determina o script que será usado no ambiente de rede (Estes script costumam ficar no diretório /etc/xen/scripts)
xend-http-server Habilita o gerenciamento do servidor via http stream packet (o padrão é no)
xend-unix-server Habilita o gerenciamento do servidor via unix domain socket server (um socket server é a comunicação do ponto de saída que negocia em conexões de rede em baixo nível e aceita ou rejeita conexões de entrada)
xend-relocation-server Habilita a realocação de servidores por migrações cross-machine (o padrão é no)
xend-unix-path Determina o local onde o comando xend-unix-server enviará os dados de saida (o padrão é /var/lib/xend/xend-socket)
xend-port Determina a porta que o gerenciamento http usará (default is 8000)
xend-relocation-port Determina a porta que o servidor de realocação usará (default is 8002)
xend-relocation-address Determina o endereço do domain0 que está habilitado pelo sistema de migração.
xend-address Determina o endereço que o domain socket server fará o bind.

Parâmetros de configuração de domínios

Os arquivos de configuração dos domínios ficam localizados no diretório /etc/xen/auto. Abaixo os parâmetros que você pode habilitar ou desabilitar para domínios PVM (paravirtualized machine):

Item Descrição
kernel Determina o path completo da imagem do kernel.
ramdisk Determina o path completo da imagem do ramdisk inicial.
memory Determina a quantidade de memória RAM inicial em MB alocada para o domínio no momento do boot
name Determina um nome de uso exclusivo para o domínio
root Determina o dispositívo root para um domínio (root=/dev/xvda2)
nic Determina o número de interfaces de rede para o domínio.
disk Determina um array de dispositívos de blocos para um domínio.

Para uso com backend-file (uma imagem tipo qemu) disk = [ 'file:/fully_qualified_path/vmdomain.img,xvda,w' ] Para uso com um dispositivo fisico, ou uma partição ou um Volume Lógico. disk = [ 'phy:/dev/sdc,xvda,w' ] disk = [ 'phy:/dev/sdb2,xvda,w' ] disk = [ 'phy:/dev/VG/vmname,xvda,w' ]

vif Determina um array de interfaces de rede para a máquina virtual.
builder Determina o arranjo que contruirá o domínio:

builder=linux (padrão) builder=hvm (virtualização cheia usando a flag de virtualização dos processadores Intel com VTX ou AMD com SVM)

cpu Determina o número da CPU que o domínio usará.

0 indica a primeira CPU, 1 indica a segunda e assim por diante. o padrão é -1 (todas as CPUs)

cpus Determina em quais CPUs o domínio será executado.
extra Determina quais parâmetros serão passados no final da linha kernel do domínio.
nfs_server Determina o IP do servidor NFS para ser usado como dispositívo raiz do domínio.
nfs_root Determina o path completamente qualificado do diretório root exportado pelo servidor NFS.
vcpus Determina o número de CPUs virtuais alocados para o domínio. (o padrão é 1)
on_poweroff Determina a ação a ser executada em caso de chamada de sistema para desligamento do domínio.
on_reboot Determina a ação a ser executada em caso de chamada de sistema para reboot do domínio.
on_crash Determina a ação a ser executada em caso de falha do domínio.


Parâmetros de configuração de vfb (Virtual Frame Buffer)

O vfb significa Virtual Frame Buffer e é definido como uma lista de variáveis. A lista de variáveis representa opções de configuração como nome = valor separado por virgulas. As entradas da lista de variáveis vfb em seu arquivo deconfiguração assemelha-se ao descrito abaixo:

Item Descrição
type

A opção do tipo vnc inicializa uma sessão VNC Server para ser usado por um VNC viewer externo. A opção sdl inicializa um viewer interno por sdl.

vncdisplay

Determina o número do display VNC a ser usado (por padrão é usado o valor do ID do domínio). O VNC Server escuta na porta 5900 + o número do display.

vnclisten

Endereço que o VNC Server escutará. (o padrão é 127.0.0.1).

vncunused

Determina um valor numérico e diferente de zero para que o VNC Server escute a partir da primeira porta não utilizada acima de 5900.

vncpasswd

Substitui a senha padrão configurada pelo Xend.

display

Habilita um display para uso de um viewer interno (por padrão a variavel de ambiente DISPLAY).

xauthority

Habilita um arquivo authority para uso de um viewer interno. (por padrão a variavel de ambiente XAUTHORITY).

Xen Scheduler

O Xen tem 2 schedulers que podem ser configurados no momento do boot da VM através da variável "sched=". Por default o scheduler utilizado é o credit.

sched-credit

sched-credit [ -d domain-id [ -w[=WEIGHT] | -c[=CAP] ] ]

Configura os parâmetros do scheduler "credit". O scheduler "credit" é um scheduler divisor proporcional de CPU SMP. Para cada domínio (incluindo o Dom0) é iniciado com um "weight" e um "cap".

  • weight
Um dominio com um weight de 512 receberá o dobro de prioridade de CPU que um domínio com 256. Pesos possíveis estão entre 1 e  65535 e o default é 256.
  • cap
A opção "cap" fixa o máximo de CPU que um domínio estará apto a consumir. A opção cap é configurada em porcentagem de uma CPU fisica:
100 é uma CPU fisica, 50 é a metade, 400 são 4 CPUs, etc. O padrão é 0 e significa que não limite.

Exemplo de uso:

xm sched-credit -d nome-da-vm -w 512 -c 200

Isto significa que terá o weight de 512 (o dobro de prioridade para uso de CPU que os domínios default) e uso da totalidade de 2 CPUs fisicas.

Estas opções podem ainda ser utilizadas no arquivo de configuração dos guests com as seguintes variaveis:

sched="credit"
cpu_weight=512
cpu_cap=200

sched-sedf

Configura parâmetros simples do Scheduler EDF (Earliest Deadline First Scheduling). Este scheduler disponibiliza sobrecarga compartilhada de CPU em um caminho intuitivo e usa algoritmos realtime para assegurar o tempo garantido ao agendador.

Parametros:

Item Descrição
period Agendador EDF normal usado em nanosegundos.
slice Agendador EDF normal usado em nanosegundos.
latency-hint Pedíodo escalado se o domínio está fazendo muito I/O.
extratime Flag para habilitar o dominio rodar em tempo extra.
weight Outro caminho para configurar particionamento de CPU.


Tipificação dos parâmetros:

   Comando      Domain    period  slice latency-hint extratime weight
      |            |        |       |         |          |       |
-------------   --------  -----   -----     -----      -----   -----
xm sched-sedf   <dom-id>  <INT>   <INT>     <INT>      <INT>   <INT>

Exemplos:

  • normal EDF (20ms/5ms):
xm sched-sedf <dom-id> 20000000 5000000 0 0 0
  • domínios com melhor-esforço (ex. não realtime):
xm sched-sedf <dom-id> 20000000 0 0 1 0
  • normal EDF (20ms/5ms) + compartilhamento de tempo extra:
xm sched-sedf <dom-id> 20000000 5000000 0 1 0
  • 4 domínios com weights 2:3:4:2
xm sched-sedf <d1> 0 0 0 0 2
xm sched-sedf <d2> 0 0 0 0 3
xm sched-sedf <d3> 0 0 0 0 4
xm sched-sedf <d4> 0 0 0 0 2
  • 1 domínio completamente expecificado (10ms/3ms), 3 outros compartilhando o restante disponível na razão de 2:7:3
xm sched-sedf <d1> 10000000 3000000 0 0 0
xm sched-sedf <d2> 0 0 0 0 2
xm sched-sedf <d3> 0 0 0 0 7
xm sched-sedf <d4> 0 0 0 0 3

Fonte das Informações sobre scheduler:

man xm

Dicas de administração

Gerando um MAC ADDRESS dinamicamente para máquinas virtuais Xen

printf "00:16:3e:%02x:%02x:%02x\n" $(($RANDOM & 0x7F)) $(($RANDOM & 0xFF)) $(($RANDOM & 0xFF))
Fim
Ferramentas pessoais