On 08/16/2013 10:05 AM, Janssen dos Reis Lima wrote:
Pessoal,
Não é toda hora que acontece, mas algumas vezes quando eu vou iniciar
uma VM, aparece a seguinte mensagem de erro:
*Error while executing action: Cannot run VM. Host swap percentage is
above the defined threshold.
- Check your configuration parameters for Host Swap Percentage.*
A mensagem é clara. Há muita swap sendo usada e para garantir o bom
funcionamento do Host, a nova VM não pode ser iniciada.
Estou rodando o oVirt em um micro Core2 Duo, 4 GB RAM.
No momento tenho livre de Swap 3,1 GB de 4 GB disponível.
Estou rodando 2 VM's, uma configurada para 512 MB de RAM e outra com
1GB de RAM, ambas com 1 processador cada. Sei que não é o ambiente
ideal para eu fazer um teste deste, mas quero entender tudo quanto que
é mensagem de erro
Ok, pra entender temos que ver a implementação dela:
No arquivo
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/MemoryPolicyUnit.java:
--------------------------
...
51 private boolean isVMSwapValueLegal(VDS host) {
...
61 long swap_total = host.getSwapTotal();
62 long swap_free = host.getSwapFree();
63 long mem_available = host.getMemAvailable();
64 long physical_mem_mb = host.getPhysicalMemMb();
65
66 return ((swap_total - swap_free - mem_available) * 100 /
physical_mem_mb) <= Config
67 .<Integer>
GetValue(ConfigValues.BlockMigrationOnSwapUsagePercentage);
68 }
--------------------------
Na linha 66 o cálculo fica claro.
Em outras palavras, se você tiver mais swap sendo usada do que memória
RAM livre, uma nova VM não vai rodar.
Deduzo que quem implementou isso queria garantir que havia memória RAM
suficiente para alocar toda a swap usada. Caso contrário, uma nova VM
não poderá ser iniciada.
Ainda de acordo com o código, você pode mudar esse comportamento usando
a config "BlockMigrationOnSwapUsagePercentage" (nome pouco intuitivo pra
esse caso :/... ). O padrão pra essa config é 0:
# engine-config -g BlockMigrationOnSwapUsagePercentage
BlockMigrationOnSwapUsagePercentage: 0 version: general
Onde 0 é um valor percentual. Se você mudar pra 10, por exemplo,
significa que a relação entre swap usada e RAM livre pode ser até 10% do
valor da RAM total. Enrolado? Tb achei ;)
Aproveitando, se eu quiser 8 servidores virtuais, cada um com 4 GB de
RAM e 2 processadores, qual seria o hardware necessário para o oVirt?
Não faço ideia. "Depende do workload" seria a melhor resposta... mas
deve ter gente aqui na lista com mais experiência em implementações
reais e que poderia dar alguns exemplos. Esperemos.
--
Pahim