Vm-manager
De Xen-BR wiki
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