XL - Ferramenta de gerenciamento Xen - Parte I

Esse artigo é a tradução livre (com comentários) do manual da ferramenta XL (baseada na LibXenlight) utilizada para gerenciamento de VMs no Xen 4.5.

[ Hits: 5.887 ]

Por: Perfil removido em 28/10/2015


Parte I



Sinopse

xl subcomando [ argumentos ]

Descrição

O programa xl é uma nova ferramenta para gerenciamento de domínios visitantes Xen. O programa pode ser utilizado para criar, pausar e encerrar a execução de domínios. Opcionalmente pode ser utilizado para listar os domínios correntes, ativar ou prender VCPUs, e atar ou desatar dispositivos de bloco virtuais.

A estrutura básica de todo comando xl é:

# xl subcomando [opções] domínio-id

Onde subcomando é um dos comandos listados a seguir, domínio-id é um valor numérico ou o nome de um domínio (traduzido internamente para um valor), e opções são valores específicos de um subcomando. Com poucas exceções a regra, há casos onde o subcomando em questão atua sobre todos os domínios, uma máquina inteira, ou diretamente no hypervisor Xen. Isso será claro para cada subcomando.

Notas:

1. O script /etc/init.d/xencommons DEVE ser executado em tempo de boot, pois as operações de xl dependem de xenstored e xenconsoled. Tenha certeza que está inicializando todos os daemons utilizados por xl.

2. Configure uma bridge no domínio zero. O caso mais comum de configuração de rede em Xen é aquele onde uma bridge chamada xenbr0 é criada em dom0.

3. Caso defina o total de memória RAM para o domínio zero, através de dom0_mem, é DETERMINADO que você deve desabilitar a funcionalidade chamada de autoballoon. Edite /etc/xen/xl.conf e ajuste seu valor para zero.

4. A maioria dos comandos xl exigem privilégios de administrador. Tentar executar comandos xl com usuário comum resulta em erro.

Opções Globais

  • -v - Verbose - Torna o sistema mais prolixo em relação a mensagens.
  • -N - (Dry run) - Não executa realmente o comando, apenas simula.
  • -f - Força a execução de um comando. O comando será executado, mesmo que isso não seja seguro.
  • -t - SEMPRE use retorno de carro (carriage-return) para sobrescrever as mensagens sem rolagem de vídeo. Sem -t, isso é feito somente se a saída padrão de erro (stderr) estiver direcionada para uma tty.

Subcomandos de Domínio

Os seguintes subcomandos manipulam diretamente domínios. Como dito anteriormente, a maioria dos subcomandos usam domínio-id como o primeiro parâmetro.

button-press domain-id button - Comando depreciado em função de xl trigger. Esse comando indica que o botão ACPI foi pressionado para o domínio. Isso pode resultar em um estado power ou sleep. Somente domínios HVM poder usar esse comando.

create [config file] [options] - O subcomando criar pega um arquivo de configuração como argumento. Veja xl.cfg para os detalhes completos sobre o formato e opções deste arquivo. Se o arquivo não é fornecido XL cria o domínio a partir de um valor padrão definido no sistema para cada subopção. O valor em [config file] dever ser uma rota completa até o arquivo. Criar um domínio com create não significa que o visitante está executando e pronto para uso. São opções de create:
  • -q, --quiet - Corta a comunicação com o console.
  • -f=file, --defconfig=file - Define o arquivo de configuração.
  • -p - Define o estado do domínio como pausado, após sua criação.
  • -V, --vncviewer - Anexa o domínio ao servidor VNC, executando uma instância do processo vncviewer.
  • -A, --vncviewer-autopass - Passa a senha VNC através da stdin.
  • -c - Liga o console ao domínio tão logo seja iniciado.

chave=valor - É possível passar argumentos em um binômio do tipo chave=valor. Argumentos sobrescrevem os valores em [config file]. Muitos desses argumentos possuem caracteres que precisam ser escapados. Uma combinação simples de aspas duplas e simples é capaz de isolar esses caracteres especiais do shell. Por exemplo, o comando a seguir cria um domínio a partir dos argumentos do arquivo hvm.cfg e adicionalmente anexa esse domínio as CPUs 0,1,2,3, além de associar dois dispositivos PCI a VM.

# xl create hvm.cfg 'cpus="0-3"; pci=["01:05.1","01:05.2"]'

config-update domid [config file] [options] - Atualiza as configurações de um domínio em execução. Isso não tem efeito imediato, apenas após o reinício da VM será implementado. Isso garante que modificações feitas em tempo de execução sejam implementadas permanentemente quando a VM reiniciar. Desde de Xen 4.5 xl fornece capacidades para manipular dinamicamente as configurações de um domínio e preserva qualquer mudança feita em tempo de execução (quando necessário). Portanto, em situações normais não é necessário usar esse subcomando. O valor em [config file] é uma rota completa ou apenas o nome do arquivo. Outros valore em [options] são binômios do tipo chave=valor. Esses argumentos sobrescrevem os valores definidos em [config file] e devem ser escapados se necessário.

console [options] domain-id - Associa o domínio a console. A combinação CTRL + ] quebra essa associação. As opções são:
  • -t [ pv | serial ] - Conecta ao console PV ou uma emulação de console serial. Consoles PV são disponíveis para domínios PV enquanto domínios HVM podem ter ambos tipos de console. Por omissão, domínios HVM emulam um console serial, enquanto domínios PV usam um console PV.
  • -n NUM - Define o número do console. Esses valores iniciam em zero.
  • destroy [options] domain-id - Esse comando equivale a puxar o cabo de energia da tomada. Claro que não desligamos máquinas desse modo em situações normais. Em situações normais de desligamento utilizados shutdown. Um domínio não pode destruir a si mesmo em situações normais, entretanto, quando esse domínio não está fisicamente ligado ao dom0 isso é possível. A opção -f força um domínio a se autodestruir neste caso.
  • domid domain-name - Converte um nome de domínio para um id.
  • domname domain-id - Converte um id para um nome de domínio.
  • rename domain-id new-name - Modifica um nome de domínio para o valor em new-name.
  • dump-core domain-id [file] - Causa um despejo de memória do domínio em questão para o arquivo em file.
  • help [ --long ] - Exibe uma ajuda curta ou longa sobre um comando.
  • list [options] [domain-id ... ] - Exibe informações sobre um ou mais domínios. Se nenhum domínio for definido, exibe as informações sobre TODOS os domínios do dom0.
  • -l, --long - Exibe a saída em formato JSON.
  • -Z - Lista as etiquetas de segurança.
  • -v, --verbose - Torna a saída prolixa.

Estados de um domínio

Um domínio Xen pode assumir seis estados:

1. r ou running - Em execução em uma CPU.

2. b ou blocked - O domínio está bloqueado. Isso significa que ele não está em execução ou é executável. Este estado pode ser definido por uma operação de I/O chamada de wait state. Esse domínio é candidato a ficar no estado sleep, pois está ocioso.

3. p ou paused - O domínio foi parado pelo administrador com um comando xl pause. Um domínio pausado ainda consome recursos de memória, mas não é escalonado pelo hypervisor Xen.

4. s ou shutdown - Esse domínio está em processo de desligamento, mas ainda chegou ao fim desse processo.

5. c ou crashed - O domínio quebrou com um fim violento. Normalmente, os domínios são programados para renascer após um crash. Esse estado indica que não isso não ocorreu para esse domínio ou não foi possível renascer. Leia xl.cfg(5) para mais informações.

6. d ou dying - Esse domínio está morto ou moribundo.

É possível observar o estado dos domínios listando seus valores:

Name                        ID   Mem VCPUs      State   Time(s)
Domain-0                     0   750     4     r-----   11794.3
win                          1  1019     1     r-----       0.3
linux                        2  2048     2     r-----    5624.2

Os valores de tempo (time) são ilusórios. As funções de I/O são feitas pelo dom0, então o tempo de I/O não é computado. Não use esses valores para auditoria.

mem-max domain-id mem - Define o total de memória que o domínio é capaz de usar. O valor descrito em mem é seguido de uma unidade de memória como b para bytes, k para kilobytes, m para megabytes, g para gigabytes e t para terabytes.

mem-set domain-id mem - Define o total de memória usando o driver balloon. O valor definido em mem usa uma unidade de memória como descrito anteriormente. Essa operação requer cooperação entre o sistema operacional do domínio, e não há garantia de funcionamento. Esse comando somente funciona se estiver usando um driver paravirtualizado. Esse comando é um teste para saber como o domínio se comporta com pouca memória. Seja cuidadoso, normalmente isso resulta em quebra ou um domínio instável.

migrate [options] domain-id host - Migra um domínio para outra máquina. Por padrão, xl confia em ssh como um meio de transport entre dois hosts. Para isso as seguintes opções estão disponíveis:
  • -s "ssh-command" - Use um comando aceito por ssh. A cadeia de caracteres é passada para ssh. Se vazia, execute <host> em vez de ssh <host> xl migrate-receive [-d -e].
  • -e - No novo host, não aguarde em segundo plano (on <host>) pela morte do domínio.
  • -C config - Envie o arquivo em config no lugar de config file.
  • --debug - Imprima (um monte!) de informações durante a migração.

remus [options] domain-id host - Ativa o suporte para Remus(?) HA para um domínio. Por padrão, xl confia em ssh como um meio de transporte entre dois hosts. O suporte Remus em xl é experimental. A replicação em disco é limitada a discos DRBD.

Opções de remus:
  • -i MS - checkpoint a memória do domínio em valores de milissegundos, por padrão o valor é 200 ms.
  • -u - Desativa a compressão da memória (checkpoint).
  • -s "ssh-command" - Use um comando ssh.
  • -e - No novo host, não aguarde em segundo plano (on ) pela morte do domínio.
  • -N netbufscript - Use o script para configurar a buferização de rede no lugar do script padrão em /etc/xen/scripts/remus-netbuf-setup.
  • -F - Executa Remus em modo inseguro.
  • -b - Replica os checkpoints de memória para /dev/null. Pode ser útil para depuração de erros. Requer modo inseguro.
  • -n - Desativa as saídas de rede buferizadas. Requer modo inseguro.
  • -d - Desativa a replicação em disco. Requer modo inseguro.

pause domain-id - Provoca a parada de um domínio. Um domínio pausado consome recursos de memória, mas não é escalonável pelo hypervisor.

reboot [options] domain-id - Reinicia (reboot) um domínio. Domínios HVM requerem drivers PV no O.S visitante. Se esses drivers não estão presentes, mas o O.S foi corretamente configurado poderá utilizar a opção -F como um reset físico. O parâmetro on_reboot, passado durante a criação do domínio, configura essa característica.

restore [options] [config file] checkpoint-file - Essa opção salva o estado do domínio em um arquivo. As seguintes opções podem ser utilizadas.
  • -p - Não execute o domínio após restaurá-lo (mantêm pausado).
  • -e - No novo host, não aguarde em segundo plano (on <host>) pela morte do domínio.
  • -d - Ative mensagens de depuração.
  • -V, --vncviewer - Inicia uma instância do VNC e associa ao domínio.
  • -A, --vncviewer-autopass - Fornece a senha do VNC através da entrada padrão (stdin).

save [options] domain-id checkpoint-file [config file] - Salva o estado atual do domínio de modo que possa ser restaurado mais tarde. Uma vez que o domínio foi salvo ele não é mais executado, a menos que as opções -c ou -p sejam utilizadas.

A opção xl restore é utilizada para restaurar um arquivo de checkpoint. As configurações podem ser alteradas pelo uso de um arquivo de configurações. As opções são:
  • -c - Deixe o domínio executando após criar um snapshot.
  • -p - Pause o domínio após criar um snapshot.

sharing [domain-id] - Lista a quantidade de páginas (de memória?) compartilhadas. Se um domínio for especificado, as informações dele são listadas. Por omissão, todos os domínios são listados.

shutdown [options] -a | domain-id - Esse comando desliga graciosamente um ou mais domínios. O tempo necessário para shutdown é configurado em cada domínio. Sistemas HVM requerem drivers PV para os sistemas operacionais visitantes.

O comando retorna imediatamente, se a opção -w não for utilizada. Esse comportamento é configurado durante a criação com a flag on_shutdown. São opções de shutdown:
  • -a, --all - Encerra todos os domínios visitantes.
  • -w, --wait - Aguarda o encerramento antes de dar um retorno.
  • -F - Força desligamento. Equivale a um desligamento ACPI.

sysrq domain-id letter - Envia uma requisição mágica para o domínio, cada tipo de requisição é representada por uma letra diferente. Para informações sobre qual letra utilizar no Linux, leia o arquivo sysrq.txt na documentação do kernel. Essa função requer suporte de drivers via PV.

trigger domain-id nmi | reset | init | power | sleep | s3resume [VCPU] - Envia um gatilho para um domínio, com um das opções listadas acima. Opcionalmente, o comando pode ser direcionado para uma CPU. Somente domínios HVM suportam esse comando.

unpause domain-id - Tira um domínio do estado de pausado.

vcpu-set domain-id vcpu-count - Ativa uma CPU virtual para o domínio em questão. O valor deve ser compatível com a quantidade de CPUs existentes no sistema e também com o valor utilizado na criação do domínio.

vcpu-list [domain-id] - Lista as CPUs virtuais para um domínio especifico. Por omissão, todas os domínios são listados.

vcpu-pin domain-id vcpu cpus hard cpus soft - Configura a afinidade hard e soft para uma cpu virtual para o domínio em domain-id. Normalmente, VCPU podem flutuar entre as CPUs disponíveis se o estado de execução fizer Xen achar isso apropriado. Definir a afinidade com um hardware limita a execução a essa CPU física. A afinidade soft define uma preferência de CPU e não limita a essa ou aquela CPU física. A palavra reservada all pode ser utilizada tanto no limite hard quanto soft.

vm-list - Imprime informações sobre os convidados. Excluí informações sobre serviços e domínios auxiliares como o dom0 e stubdoms.

vncviewer [options] domain-id - Carrega uma instância de VNC e associa ao domínio definido em domain-id. A opção --autopass é utilizada para passar a senha.

Continua na Parte II.

Kyetoy

   

Páginas do artigo
   1. Parte I
Outros artigos deste autor

PostgreSQL 9.4 - O conceito de Role

A internet é inocente

Configurando firewall básico para compartilhar internet

Instalação de um servidor de mensagens instantâneas Openfire na sua rede com clientes Microsoft Windows e cliente Jabber Exodus

Kit de scripts para backup (Full + Diferencial + Samba + Rede)

Leitura recomendada

Ativando e configurando a compactação de memória com Zram no Slackware

Gerenciando serviços de sistemas Linux

Multifuncional HP Deskjet Ink Advantage 2546 no GNU/Linux

Manejando contas de usuários

Impressão usando LPRng e KPrinter

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts