XL - Ferramenta de gerenciamento Xen - Parte II

Segunda e última parte do artigo sobre a ferramenta XL para gerenciamento do Xen. Tradução livre (com comentários) de acordo com a documentação da versão 4.5.1.

[ Hits: 3.989 ]

Por: Perfil removido em 05/11/2015


XL - Ferramenta Xen de monitoramento



Subcomandos do Host Xen:

debug-keys keys - Envia as teclas de depuração para Xen. Isso é o mesmo que pressionar CTRL + A (conswitch) três vezes e pressionar "keys"(?).

dmesg [ -c ] - Lê as mensagens do buffer de Xen (similar ao dmesg Linux). O buffer armazena mensagens, avisos, erros e alertas emitidos durante o processo de inicialização de Xen. Se tiver problemas de inicialização, esse é o primeiro lugar que deve olhar para determinar uma solução. A opção --clear ( -c ) esvazia o buffer.

info [ -n, --numa ] - Exibe informações sobre o host Xen no formato de um binômio nome:valor. Ao reportar um bug para os desenvolvedores esse relatório deve fazer parte de seu relatório de erros. A saída desse comando se parece com isso:

host                 : scarlett
 release             : 3.1.0-rc4+
 version             : #1001 SMP Wed Oct 19 11:09:54 UTC 2011
 machine             : x86_64
 nr_cpus             : 4
 nr_nodes            : 1
 cores_per_socket    : 4
 threads_per_core    : 1
 cpu_mhz             : 2266
hw_caps              : bfebfbff:28100800:00000000:00003b40:009ce3bd:00000000:00000001:00000000
 virt_caps           : hvm hvm_directio
 total_memory        : 6141
 free_memory         : 4274
 free_cpus           : 0
 outstanding_claims  : 0
 xen_major           : 4
 xen_minor           : 2
 xen_extra           : -unstable
 xen_caps            : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 
 xen_scheduler       : credit
 xen_pagesize        : 4096
 platform_params     : virt_start=0xffff800000000000
 xen_changeset       : Wed Nov 02 17:09:09 2011 +0000 24066:54a5e994a241
 xen_commandline     : com1=115200,8n1 guest_loglvl=all dom0_mem=750M console=com1 
 cc_compiler         : gcc version 4.4.5 (Debian 4.4.5-8) 
 cc_compile_by       : sstabellini
 cc_compile_domain   : uk.xensource.com
 cc_compile_date     : Tue Nov  8 12:03:05 UTC 2011
 xend_config_format  : 4

Alguns campos são explicados a seguir:
  • hw_caps - Um vetor que descreve as capacidades suportadas pelo processador. Similar as informações em /proc/cpuinfo.
  • free_memory - Total de memória não alocada para Xen, ou qualquer outro domínio, ou reivindicada por qualquer domínio.
  • outstanding_claims - Quando uma chamada de reivindicação é feita (veja xl.conf para detalhes) uma quantidade de páginas de memória é reservada e o valor global é incrementado. Esse valor global (outstanding_claims) é reduzido do valor da memória do domínio até que eventualmente esse valor chegue a zero. Esse valor afeta a memória livre (free_memory), e reflete a memória do hypervisor menos o total de páginas outstanding reclamadas pelos visitantes. Veja xl info para detalhes sobre claims.
  • xen_caps - A versão e a arquitetura do Xen. Os valores possíveis são: x86_32, x86_32p (se PAE estiver ativa), X86_64 e ia65 (para Itanium).
  • xen_changeset - O id de Xen Mercurial. Define exatamente a versão utilizada para construir Xen.

A opção -n (--numa) lista as informações sobre NUMA - Non-Uniform Memory Access - Consulte o artigo da Wikipédia para mais informações:
top - Executa o comando xentop, que fornece um modo de monitor os domínios em tempo real. Xentop é feito em ncurses (?) e a maior parte de suas funções são autoexplicativas.

uptime - Mostra o tempo de execução dos domínios.

claims - Exibe informações sobre outstanding claims dos visitantes. A coluna Mem representa os valores cumulativos atualmente alocada para o visitante. A saída desse comando se parece com isso:

Name          ID   Mem VCPUs      State   Time(s)  Claimed
Domain-0      0  2047     4     r-----      19.7     0
OL5           2  2048     1     --p---       0.0   847
OL6           3  1024     4     r-----       5.9     0
Windows_XP    4  2047     1     --p---       0.0  1989

Subcomandos de Escalonamento (scheduler)

Xen lida com um número grande de escalonamentos, isso pode ser configurado em tempo de boot com o parâmetro shed= na linha de comando. O padrão é usar o formato credit para escalonar(?).

sched-credit [options] - Configura ou consulta (set / get) os parâmetros de escalonamento. O escalonador busca a proporcionalidade no compartilhamento da CPU, buscando escalonar de modo a preservar as propriedades SMP dos hosts. Para cada domínio (incluindo o domínio zero) é definido um peso e um topo. As opções são:
    -d DOMAIN, --domain=DOMAIN - Define o domínio para o qual os parâmetros de escalonamento estão sendo modificados. Parâmetro obrigatório para alterar valores de escalonamento. -w WEIGHT, --weight=WEIGHT - Define o peso do domínio. Um domínio com 512 usa duas vezes mais CPU que um domínio 256. O padrão é 256 e a faixa de valores vai de 1 até 65.535. -c CAP, --cap=CAP - O cap é o topo e representa o valor máximo de CPU que um domínio pode consumir. O valor CAP é expresso em percentual de uso da CPU. O valor 100 representa uma CPU física, 50 é metade de uma CPU, 400 são quatro CPUs, etc. O valor zero (0) significa ilimitado. Observe que muitas CPUs reduzem automaticamente seu clock devido configurações de economia de energia. Por exemplo, uma CPU pode reduzir para 50% seu clock. Isso significa que, na prática, uma CPU com cap em 50 pode acabar com 25% do valor real do clock. Se não está obtendo o desempenho esperado avalie seus valores / configuração de CPUFREQ e suas opções de conservação de energia na BIOS / Setup. -p CPUPOOL, --cpupool=CPUPOOL - Restringe as saídas de um domínio a um pool de CPUs.(?) -s, --shedparam - Define uma lista ou configura os parâmetros de um pool-wide. -t TSLICE, --tslice_ms=TSLICE - Esse argumento diz ao escalonador quanto é permitido as VMs executarem em modo preemptivo. O padrão é 30 milissegundos. A faixa de valores vai de 1 até 1000 ms. O valor de TSLICE deve ser maior que ratelimit. -r RLIMIT, --ratelimit_us=RLIMIT - Esse argumento limita (ou tenta limitar) o número de escalonamentos por segundo. Ele define um mínimo de milissegundos que a VM deve executar antes de permitir que uma VM com maior prioridade acione o modo preemptivo. O padrão é 1000 microssegundos ou 1 milissegundo. A faixa desse parâmetro vai de 100 até 500000 (500 ms). O valor de RLIMIT DEVE ser menor que o comprimento do timeslice. A combinação das opções anteriores tem o seguinte efeito:

    - <nothing>: Lista os parâmetros de todos os domínios e os parâmetros de escalonamento de todos os pools.
    -d [domid ] : Lista os parâmetros para o domínio definido por seu id.
    -d [domid] [params] : Configura um parâmetro para um domínio.
    -p [pool] : Lista os domínios e o escalonamento para o pool.
    -s : Lista os parâmetros de escalonamento para poolid 0 (zero).
    -s [params]: Configura um parâmetro para poolid 0.
    -p [pool] -s : Lista o escalonamento para o pool.
    -p [pool] -s [params]: Configura parâmetros de escalonamento para um pool.

    Outras combinações não são permitidas.

sched-credit2 [ options ] - Configura ou consulta (set / get) os parâmetros para o escalonador credit2. O escalonamento feito por credit2 é proporcional e mais justo para funcionar melhor com hosts SMP. Todos domínios, inclusive o dom0 recebem um peso. As opções são:
  • -d DOMAIN, --domain=DOMAIN - Define o domínio para o qual os parâmetros do escalonador são recuperados ou modificados. Esse parâmetro é mandatório.
  • -w WEIGHT, --weight=WEIGHT - Um domínio com 512 recebe duas vezes mais prioridade que um domínio 256. O padrão é 256, a faixa vai de 1 até 65.535.
  • -p CPUPOOL, --cpupool=CPUPOOL - Define a saída para um cpupool especificado.

sched-sedf [ options ] - Configura ou modifica (set / get ) parâmetros EDF - Earliest Deadline First - de escalonamento. Esse escalonador fornece um compartilhamento pesado de modo intuitivo e usa algoritmos de tempo real para garantir o funcionamento. Para mais informações leia docs/misc/sedf_scheduler_mini-HOWTO.txt.

As opções são:
  • -d DOMAIN, --domain=DOMAIN - Define o domínio que será afetado ou consultado.
  • -p PERIOD, --period=PERIOD - O valor normal em milissegundos para EDF.
  • -s SLICE, --slice=SLICE - O valor normal em milissegundos para EDF.
  • -l LATENCY, --latency=LATENCY - Período escalonado se o domínio está fazendo uso intenso de I/O.
  • -e EXTRA, --extra=EXTRA - Flag para permitir o domínio ter tempo extra. Flag binária com zero para desativado e um para ativado.
  • -w WEIGHT, --weight=WEIGHT - Outro modo de configurar o slice.
  • -c CPUPOOL, --cpupool=CPUPOOL - Restringe a saída a um cpupool específico.

sched-rtds [ options ] - Configura ou modifica (set / get) os parâmetros RTDS - Real Time Deferrable Server - esse escalonador (rt) aplica o algoritmo modo preemptivo global RTDS para agendar VCPUs no sistema. Cada VCPU tem um período e um orçamento (budget). VCPUs no mesmo domínio têm o mesmo período e o mesmo orçamento. Quando escalonado, uma VCPU usa seu orçamento. O orçamento é reabastecido no início de cada período; um orçamento não utilizado é descartado no final do período. As opções são:
  • -d DOMAIN, --domain=DOMAIN - Define o domínio afetado. Comando mandatório.
  • -p PERIOD, --period=PERIOD - Valor que representa o tempo, em milissegundos, sobre o qual o orçamento é reposto. (?)
  • -b BUDGET, --budget=BUDGET - Total de tempo, em milissegundos, que uma VCPU tem permissão para executar a cada período.
  • -c CPUPOOL, --cpupool=CPUTOOL - Restringe as saídas para os domínios definidos em um cpupool.

Comandos CPUPOOLS

Xen pode agrupar CPUs físicas de um servidor em cpu-pools. Cada CPU física pode ser designada para mais de um pool. Domínios são restritos para um único pool de CPUs. Escalonamento não cruza as fronteiras de um cpu-pool, cada cpu-pool tem seu próprio escalonador. CPUs físicas e domínios podem ser movidos de um cpu-pool para outro somente por um comando explícito. CPU-pools podem ser especificados por nome ou por id.

cpupool-create [options] [config file] [variable=value ...] - Cria um pool de CPUs baseado em um arquivo de configuração ou parâmetros em linha de comando. Valores do arquivo de configuração são modificados por parâmetros de linha. Leia xlcpupool.cfg(5) para mais informações. As opções são:
  • -f=FILE, --defconfig=file - Define o arquivo de configuração.
  • - cpupool-list [ -c | --cpus ] [ cpu-pool ] - Lista os pools do host.
  • - cpupool-destroy cpu-pool - Desativa um pool de cpus. Isso só faz sentido se no domínio houver um pool ativo.
  • - cpupool-rename cpu-pool - Renomeia um pool.
  • - cpupool-cpu-add cpu-pool cpu-nr | node:node-nr - Adiciona uma cpu ou todas cpus de um nó NUMA(?) para um cpu-pool.
  • - cpupool-cpu-remove cpu-nr | node:node-nr - Remove uma cpu ou todas cpus de um nó NUMA de um cpu-pool.
  • - cpupool-migrate domain cpu-pool - Move um domínio (por nome ou id) para um cpu-pool.
  • - cpupool-numa-split - Divide a máquina em um cpu-pool por nó NUMA.

Comandos de Dispositivos Virtual

A maioria dos dispositivos virtuais pode ser adicionado ou removido enquanto os visitantes estão em execução, assumindo que a necessidade de manutenção exista no visitante. O efeito sob o sistema operacional do visitante é o mesmo que qualquer evento de hotplug.

Dispositivos de bloco

block-attach domain-id disc-spec-component(s) ... - Cria um novo dispositivo de bloco virtual. Isso é um gatilho para um evento hotplug do ponto de vista do visitante. As opções são:

domain-id - O id do domínio visitante ao qual o dispositivo é anexado.

disc-spec-component - Uma especificação de disco no mesmo formato usado pela variável disk no arquivo de configuração do domínio. Consulte o link a seguir para mais informações:
block-detach domain-id devid [ --force ] - Desata um dispositivo de bloco virtual de um domínio. O valor em devid pode ser um nome simbólico ou um id numérico. Esse id é atribuído pelo domínio zero. Executanto xl block-list é possível obter esse número.

Desatar um dispositivo requer a cooperação do domínio. Se o domínio falha ou liberar o dispositivo (o domínio não quer ou não pode liberar esse recurso sem falhar) todo o processo falha. Para forçar utilize o parâmetro --force, que pode levar a erros de I/O no domínio (Esses erros podem ser fatais para a consistência do visitante).

block-list domain-id - Lista os dispositivos de bloco virtuais de um domínio.

cd-insert domain-id VirtualDevice target - Insere um cdrom no domínio visitante. O dispositivo virtual já deve existir, porém está atualmente vazio (empty). Isso somente funciona com domínios HVM. As opções são:

VirtualDevice - Como o dispositivo deve ser apresentado para o visitante; por exemplo um disco rígido chamado "hdc".

target - O caminho (path) do alvo no domínio backend (usualmente domain 0) para ser exportado; Pode ser um dispositivo de bloco ou um arquivo ou qualquer outra coisa. Leia a documentação em /docs/misc/xl-disk-configuration.txt.

cd-eject domain-id VirtualDevice - Ejeta um cdrom virtual de um visitante. Isso somente funciona com domínios HVM. O padrão VirtualDevice define como o dispositivo é apresentado ao domínio, por exemplo um cdrom chamado de "hdc".

Dispositivos de Rede

network-attach domain-id network-device - Cria um novo dispositivo de bloco no domínio específico. O valor em network-device descreve que dispositivo será anexado, usando o mesmo formato que uma cadeia (string) vif em um arquivo de configuração de domínio. Leia xl.cfg e o texto no link abaixo para mais informações.
network-detach domain-id dev-id | mac - Remove um dispositivo de rede de um domínio definido em domain-id. O valor em dev-id é o número do dispositivo virtual no domínio (por exemplo, 3 em vif22.3). Alternativamente o endereço MAC pode ser utilizado para selecionar qual dispositivo desatar.

network-list domain-id - Lista as interfaces virtuais de rede de um domínio.

Dispositivos de Canal (channel)

channel-list domain-id - Lista os canais virtuais (interfaces) para um domínio.

Dispositivos VTPM

vtpm-attach domain-id vtpm-device - Cria um novo dispositivo virtual VTPM no domínio especificado. Um dispositivo VTMP descreve o dispositivo anexado, usando o mesmo formato que a cadeia vtpm no arquivo de configuração. Veja xl.cfg para mais informações.

vtpm-detach domain-id dev-id | uuid - Remove um dispositivo vtmp do domínio especificado. O parâmetro em dev-id é um valor numérico dado para a plataforma virtual em um módulo de dispositivo. Pode ser necessário executar xl vtmp-list para obter esses números. Alternativamente, o uuid do vtmp pode ser utilizado para selecionar o dispositivo virtual que será desatado.

vtpm-list domain-id - Lista os módulos virtuais confiáveis para um domínio.

PCI PASS-THROUGH

pci-assignable-list - Lista todos os dispositivos PCI designados. São esses dispositivos que no sistema serão configurados e estarão disponíveis para pass-through e são vinculados a um driver PCI no backend do domínio zero através de um driver real.

pci-assignable-add BDF - Torna o dispositivo PCI Bus/Device/Function BDF atribuível ao visitante. Isso ligará o dispositivo ao driver pciback. Se ele já estiver ligado a um driver, ele irá primeiro ser desligado, e o driver original armazenado será religado ao mesmo driver posteriormente, se isso for desejado. Se o dispositivo já estiver ligado, ele retorna uma mensagem de sucesso.

pci-attach domain-id BDF - Ativa (hotplug) um novo dispositivo pass-through para um domínio específico. BDF é um Bus PCI / Device / Function do dispositivo físico capaz de pass-through.

pci-detach [ -f ] domain-id BDF - Desativa (hot-unplug) um dispositivo anteriormente designado para um domínio. BDF é um Bus PCI / Device / Function do dispositivo físico capaz de ser removido do domínio.

pci-list domain-id - Lista os dispositivos pass-through de um domínio.

TMem - Transcendent Memory

tmem-list I [←l>] domain-id - Lista os pools de tmem. Com a opção -l lista as estatísticas de tmem.

tmem-freeze domain-id - Congela os pools de tmem.

tmem-thaw domain-id - Descongela os pools de tmem.

tmem-set domain-id [options] - Modifica os parâmetros de tmem. As opções são:
  • -w WEIGHT - Um valor inteiro que representa um peso.
  • -c CAP - Um valor inteiro que representa um CAP.
  • -p COMPRESS - Um valor inteiro que representa o valor de compress.

tmem-shared-auth domain-id [options] - (Des)autoriza um pool de memória tmem compartilhada. As opções são:
  • -u UUID - Define um uuid para o pool.
  • -a AUTH - Valor binário que define se autoriza (0) ou desautoriza (1).
  • --tmem-freeable - Obtêm as informações sobre como a memória livre é utilizada por tmem.

FLASK

Esse é um framework de segurança que define uma política de controle de acesso mandatório pode ser aplicada sobre os domínios Xen. Essa política pode ser escrita para definir quais interações entre domínios, dispositivos, e o hypervisor são permitidos. Algum exemplo que pode usar XSM/FLASK é prevenir que dois domínios se comuniquem através de canais de eventos ou que controlem quais domínios podem ser usados com dispositivos pass-through, e quais dispositivos são esses. Restringir ou auditar o desempenho de operações por domínios privilegiados - previne que um domínio privilegiado mapeie páginas para outros domínios. Um modelo de política de segurança FLASK pode ser consultado em:
getenforce - Define se o módulo FLASK é carregado para impor a política.

setenforce 1 | 0 | Enforcinfg | Permissive - Ativa ou desativa a imposição dos controles FLASK. O padrão é o modo permissivo. Isso pode ser mudado na linha de comando do hypervisor usando flask_enforcing.

loadpolicy policy-file - Carrega uma política FLASK a partir de um arquivo. A política inicial é fornecida para o hypervisor como um módulo multiboot; esse comando permite atualizações em tempo de execução da política. Carregar uma política em tempo de execução reseta as mudanças dos labels dos dispositivos.

Tecnologia de Monitoramento do Cache

A tecnologia Haswell da Intel oferece capacidades de monitoramento em cada processador lógico para medir especificamente os recursos compartilhados como, por exemplo, o cache L3. Em Xen essa granularidade é medida em nível de domínio. Para monitorar um domínio, apenas anexe o domain-id com o serviço de monitoramento. Para desatar do monitoramento faça o contrário.

psr-cmt-attach [domain-id] - Ata a plataforma de monitoramento de recursos compartilhados a um domínio.

psr-cmt-detach [domain-id] - Desata a plataforma de monitoramento de recursos compartilhados a um domínio.

psr-cmt-show [psr-monitor-type] [domain-id] - Exibe os dados monitorados de um certo domínio ou todos. O monitor atualmente suportado é cache-occupancy que exibe os níveis de ocupação do cache L3 do processador.

Essa tradução foi feita na tentativa de documentar o melhor possível. Todavia, dado a dificuldade do assunto pode haver erros de tradução. Considere consultar a documentação original antes de usar em uma unidade de produção.

Referências:
Grato,
Kyetoy

   

Páginas do artigo
   1. XL - Ferramenta Xen de monitoramento
Outros artigos deste autor

Qual distribuibuição GNU/Linux devo utilizar?

Procurando software para gerenciar armazenamento... Pensou FreeNAS!

Instalação OpenMeettings no Debian 7

FreeBSD Release 10.0 - Introdução ao sistema

Porque abandonar o Slackware e usar o Ubuntu

Leitura recomendada

Instalação Kickstart (revisado)

Sistema de boot, níveis de execução e shutdown

Funcionalidades para o Unity

Chakra GNU/Linux

Windows e Linux no mesmo micro

  
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