entre servidores de um mesmo grupo de hardware, uma decisão é realizada (Linha 10) através de outra comparação, estimando qual servidor possuirá o menor consumo de potência após a alocação da máquina virtual. Apesar dos servidores pertencerem a um mesmo grupo, é comum existirem resultados diferentes para esta comparação, em especial quando o recurso de DVFS estiver habilitado.
Caso ocorra outro empate, será vericado o nível de utilização do servidor (Linha 16). O servidor que possuir o nível de utilização mais alto será escolhido, uma vez que este tende a receber um maior número de máquinas virtuais e, potencialmente, demorar mais para desligar, evitando a migração das máquinas virtuais e que outros servidores quem
subutilizados. Observamos que a utilização desta estratégia pode, dependendo dos SLAs demandados pelas máquinas virtuais, gerar alguma tendência sobrecarga nos servidores, no sentido deles não serem capazes de prover a totalidade dos MIPS solicitados pelas máquinas virtuais que hospedam. Portanto, essa decisão estratégia implica num trade-o entre desempenho e eciência em energia, uma vez que apesar de se reduzir o desempe- nho de máquinas virtuais que não apresentam demanda rígida de processamento mínimo, evita-se ligar novos servidores, reduzindo, desta maneira, o consumo consolidado de ener- gia.
Se ainda existir um empate no último item, o que é comum se existirem muitos ser- vidores que não estejam processando nenhuma máquina virtual, o servidor que possuir o maior poder de processamento será selecionado (Linha 19). Esta escolha é feita devido ao fato do servidor em questão tender a suportar maior número de máquinas virtuais.
Em caso de empate no último critério, nós vericamos qual é a largura de banda que o servidor pode prover para a máquina virtual (Linha 22). Este teste compreende em especial data centers que contém grupos de servidores com hardware semelhante, mas com diferentes larguras de banda, e tende a colocar um grande número de máquinas vir- tuais em servidores com maior largura de banda. Como uma máquina virtual pode já ter requerimento obrigatório de largura de banda, o objetivo desta escolha não é sim- plesmente prover mais largura de banda para a máquina virtual. Como nós veremos na Subseção 5.2, esta escolha, em combo com o método de provisionamento de largura de banda para máquinas virtuais, possibilita a reserva de largura de banda adicional no servidor para permitir uma aceleração das migrações, caso venham a ocorrer. Em outras palavras, a migração de máquina virtual ocorrerá não só pela largura de banda base re- servada à máquina virtual, mas com uma largura de banda extra reservada para este propósito do servidor, que dicilmente seria utilizada para outra nalidade.
Note que o bloco iniciado na Linha 22 é uma parte modicada do algoritmo LA original, e adicionamos este critério de desempate na Linha 22, ou seja, o nível mais profundo de critério de desempate. Este critério foi determinado após a realização de numerosos testes de simulação, de modo que foi encontrado que esta é a melhor posição para este critério de modo a reduzir o consumo de energia.
O Algoritmo 1, executado para cada máquina virtual ingressante, apresenta complexi- dade linear, O(hostsnum), onde hostsnumé o número de servidores que compõem a nuvem,
dado em particular pela iteração da Linha 5. Considerando esta complexidade, para um número de máquinas virtuais vmsnum, então a complexidade será O(hostsnum× vmsnum).
Em cenários onde se aplica a migração de máquinas virtuais, usando migrationsnum como
o número de migrações, então a complexidade total do processo se torna O(hostsnum ×
vmsnum+ migrationsnum).
A função bwForVm (host, vm) pode ser heuristicamente substituída pela getBw(host), que retorna o total de largura de banda do servidor. Tal substituição implica que o servi- dor a ser escolhido é simplesmente aquele que possui maior largura de banda, ignorando a largura de banda que ele seria capaz de prover à máquina virtual. Isso é útil, por exemplo, para adaptar o Algoritmo 1 para casos onde não é possível conhecer os tipos de máquinas virtuais alocáveis, ou quando é sabido que todas as máquinas virtuais apresen- tam as mesmas demandas de largura de banda (ex: todas as máquinas virtuais requerem
100 Mbps), ou quando desejar tornar o BALA mais genérico e menos dependente do método de provisionamento de largura de banda para a máquina virtual.
Se for possível estimar os tamanhos das cargas de trabalho, uma outra otimização também pode ser feita. Considere, por exemplo, que uma máquina virtual está quase terminando o processamento de uma carga de trabalho. Migrar esta máquina virtual pode gerar desperdício de energia seria necessário abortar a migração, pois o processamento da carga de trabalho terminaria antes da migração ser acabada. Para evitar isso, a Equação (2.2) pode ser utilizada para otimizar este algoritmo, adicionando uma estimativa da quantidade de energia que seria requerida pela máquina virtual, e realizar a migração somente se esta energia consumida for menor do que a energia para processar a máquina virtual no servidor atual. No entanto, o BALA tem como escopo primário cargas de trabalho de tamanhos sem padrão e, portanto, esta otimização não é aplicada.
Se todas as máquinas virtuais requisitadas não puderem ser alocadas, as máquinas virtuais restantes serão vericadas no próximo processamento do broker. À medida que as máquinas virtuais vão sendo instanciadas, as cargas de trabalho são submetidas para processamento; e à medida que estes processamentos vão sendo nalizados o broker ten- tará enviar as máquinas virtuais ainda não submetidas, migrar máquinas virtuais e, na existência de servidores ociosos, desligá-los.
5.2 BPA O Algoritmo para Provisionamento de Lar-
gura de Banda para Máquinas Virtuais
No processo de escalonamento de máquinas virtuais pode existir, em adição ao FHA, exe- cutado pelo broker, um algoritmo responsável pelo provisionamento de largura de banda às máquinas virtuais (BPA Bandwidth Provisioning Algorithm), executado pelos ser- vidores. Nós chamaremos o algoritmo de provisionamento de largura de banda padrão como SBPA (Standard Bandwidth Provisioning Algorithm), responsável por alocar a banda base requisitada pro máquinas virtuais no servidor.
Nesta subseção, nós apresentamos um algoritmo de provisionamento de largura de banda estendido (EBPA Extended Bandwidth Provisioning Algorithm), capaz de prover uma largura de banda extra, adicional à largura de banda requerida pelas máquinas virtuais, que é executado em paralelo com um FHA. Neste trabalho, esta largura de banda extra é reservada no servidor para ns de migração de máquinas virtuais. Além disso, nós exemplicamos o impacto do provisionamento de largura de banda realizado pelo EBPA nos tempos de migração.
Inicialmente, nós vamos considerar alguns princípios básicos, que devem ser considera- dos pelo EBPA, sobre a largura de banda reservável para uma máquina virtual ingressante. O primeiro princípio é que o algoritmo de provisionamento de largura de banda em um servidor deve ser capaz de atender as demandas da máquina virtual ingressante. Um ou- tro princípio é que as reservas realizadas por este método não devem ser grandes demais, pois isso poderá fazer com que um servidor necessite hospedar um número reduzido de máquinas virtuais em decorrência da reserva excessiva de largura de banda.
Em um EBPA igualitário +E, cada servidor calcula uma largura de banda extra xa, e este valor é dado para cada máquina virtual alocada no servidor. Para ilustrar a operação de uma possível implementação deste mecanismo de provisionamento de largura de banda extra para a migração de máquinas virtuais, considere um pequeno cenário composto por um servidor que suporte somente três máquinas virtuais, e estas três máquinas virtuais de diferentes tipos. Conhecendo os tipos de máquinas virtuais que podem ser alocadas, nós podemos estimar o consumo de largura de banda delas. Portanto, é possível reservar uma largura de banda extra igual para cada uma destas máquinas virtuais, conforme mostrado na Figura 5.3, onde bbw representa a largura de banda base requerida pela máquina virtual, e ebw refere-se à largura de banda extra reservada de modo igualitário.
host_bw vm1_bbw vm2_bbw host_free_bw host_bw vm1_bbw vm2_bbw vm3_bbw vm1_ebw vm2_ebw vm3_ebw vm3_bbw
Figura 5.3: Reserva de Largura de Banda Estendida: Algoritmo Igualitário
O valor a ser dado para cada máquina virtual não deve exceder um limite superior, pois ele pode tornar o servidor inapto para receber novas máquinas virtuais devido à escassez de largura de banda. Conhecendo-se todos os tipos de máquinas virtuais, é possível calcular um bom valor para +E, dado pela Equação (5.5), onde hostvm_extra_bw é
a largura de banda extra que cada máquina virtual receberá do host em questão, hostbw é
a largura de banda total do servidor que receberá a máquina virtual, hostmax_vms indica
o maior número possível de máquinas virtuais suportadas pelo servidor, e hostmax_vms_bw
indica a demanda de largura de banda base máxima consolidada requerida do servidor pelo maior grupo de máquinas virtuais que ele suporta.
hostvm_extra_bw= hostbw− hostmax_vms_bw hostmax_vms
(5.5)