Uma forma optimizada para o sistema de Gestão de Recursos em ambiente OpenStack e Kubernetes
O sistema avançado de gestão de recursos integrado no FishOS fornece uma gestão inteligente e eficiente de recursos no OpenStack e Kubernetes. Isso é alcançado com uma combinação de dois mecanismos de decisão – FishOS Placement Engine e Rebalancing Engine, que trabalham em conjunto para garantir operações de data center altamente eficientes.
O FishOS Placement Engine e o Rebalancing Engine são dois mecanismos de decisão que trabalham em conjunto para garantir operações de data center altamente eficientes.
Situação
Para conseguir uma elevada eficiência na utilização dos recursos, há duas situações que têm de ser resolvidas:
- Dado um conjunto específico de novas VMs a serem iniciadas, onde devem ser colocadas as VMs, considerando a utilização de recursos em tempo real em toda a instalação?
- Dado um conjunto de VMs em execução nas instalações, como é que as VMs podem ser agrupadas no número ideal de servidores, satisfazendo os requisitos de recursos das VMs, sem impacto no desempenho?
A primeira é designada por Colocação, enquanto a segunda é designada por Reequilíbrio.
Embora a colocação e o reequilíbrio estejam relacionados, têm de ser tratados como tarefas computacionais diferentes e, por conseguinte, como decisões diferentes.
Como será evidente abaixo, o sistema de gestão inteligente de recursos no FishOS depende da disponibilidade de migração em tempo real. Para o Kubernetes, este esquema depende do facto de o Kubernetes correr dentro de VMs.
Visão de alto nível
A um nível elevado, o sistema analisa:
- todos os hipervisores do sistema, determinando a sua capacidade e
- todas as VMs em execução, determinando a carga que criam
As informações sobre capacidade vs. carga são obtidas a partir de métricas recolhidas de hipervisores e VMs. Estas métricas reflectem recursos como a memória, o disco, a rede e a CPU.
O impacto
Usando esta abordagem, minimizaríamos o número de hipervisores usados para hospedar VMs sem colocar uma restrição adicional sobre como essas VMs funcionam.
Permite utilizar um número mais reduzido de servidores para alojar a mesma quantidade de VMs, para obter menos OpEx e CapEx, reduzindo os custos de licença e eletricidade.
FishOS Placement Engine
O objetivo do motor de colocação é determinar onde deve(m) ser iniciada(s) a(s) VM(s) quando solicitada(s) por um consumidor de serviços.
Para onde vão as novas VMs?
A resposta à questão de onde devem ser colocadas as novas VMs é obtida da seguinte forma:
Se todos os hipervisores do sistema estiverem livres, as VMs vão primeiro para o hipervisor com a menor capacidade para hospedá-las. Dessa forma, não precisaríamos usar servidores maiores apenas para hospedar um conjunto de VMs pequenas.
Se houver hipervisores no sistema que estão em uso (ou seja: com algumas VMs neles), novas VMs serão preferencialmente colocadas lá (desde que haja uma capacidade nesses hipervisores para hospedar VMs). Isso é feito para minimizar o número de hipervisores que precisariam ser ativados para hospedar as VMs.
O Placement Engine faz estimativas com base na variante selecionada para a VM, o que ajuda a verificar se uma determinada VM cabe num determinado hipervisor.
Motor de Reequilíbrio FishOS
O objetivo do motor de reequilíbrio é determinar como é que uma infraestrutura já em funcionamento pode ser reequilibrada para ser mais eficiente.
A infraestrutura precisa de ser optimizada? Antes de proceder à execução de quaisquer tarefas de reequilíbrio, a primeira questão que se coloca é se a infraestrutura precisa de ser optimizada.
Para cada VM há uma série de perguntas a responder, incluindo:
- É necessário transferi-lo para outro hipervisor?
- Pode ser movido? Existem operações, como processos de escrita em disco excessivos ou atividade de rede, que possam impedir a conclusão da migração em direto?
Como otimizar a infraestrutura?
Uma vez determinado que a infraestrutura em execução está abaixo do ideal, a próxima questão é como a infraestrutura pode ser optimizada. Associado a isso, o Rebalancing Engine também lida com questões como:
- Qual é a combinação ideal de movimentos de VMs?
- Se uma VM pode e precisa ser movida, para onde a movemos? (Consulte a seção Mecanismo de posicionamento).
- Qual é o impacto na sequência da operação de reequilíbrio?
Assim que o plano de reequilíbrio tiver sido calculado, o motor de reequilíbrio emite os pedidos para efetuar essas migrações.
Colocação e reequilíbrio
O FishOS Placement Engine e o Rebalancing Engine usam métricas de utilização em tempo real de toda a instalação, para resolver o problema de otimização de recursos em tempo real. A abordagem não só usará os valores de reserva que são especificados pelo flavor para determinar se uma determinada VM caberá num determinado hipervisor, mas também usará dados importantes de utilização real, obtidos através da recolha de métricas de VMs e hipervisores.
O Placement Engine garante que os servidores certos capazes de hospedar a(s) VM(s) sejam usados, minimizando o número de servidores necessários para hospedar a totalidade das cargas de trabalho da VM. O Placement Engine trata os sabores, conforme definido no OpenStack, como limites superiores dos recursos que podem ser atribuídos às VMs, indicando a quantidade máxima a ser consumida por cada VM, controlando os recursos certos.
O FishOS garante que, se um host que já está sendo usado é, com base na utilização real de recursos, ainda capaz de hospedar VMs adicionais, será dada preferência para executar novas VMs adicionais nesse host. O FishOS permite que um Operador controle facilmente o número de hipervisores que serão usados em qualquer momento, melhorando as taxas de utilização de recursos do OpenStack.
O mecanismo de rebalanceamento garante que uma infraestrutura já em execução seja operada de maneira eficiente, permitindo que os operadores otimizem o uso dos recursos da instalação considerando a utilização de recursos ao vivo das cargas de trabalho.
Por defeito, o Motor de Rebalanceamento FishOS corre automaticamente no sistema, permitindo ao Operador configurar a frequência de rebalanceamento. Uma vez calculado um Plano de Rebalanceamento, o Motor de Rebalanceamento emite os pedidos para efetuar essas migrações, sem necessitar da intervenção de um Operador, e é capaz de fornecer também funcionalidades como:
- migração automática de VMs dos hipervisores desactivados
- reequilibra a carga através da migração em direto de VMs não ancoradas
- registo dos resultados para compreender o estado da infraestrutura
- Interface CLI com opção de funcionamento em seco para ajudar o operador a compreender o impacto
- os hipervisores desactivados são migrados em direto à força
Componentes de apoio
Para que os motores de colocação e de reequilíbrio possam tomar decisões, cada um dos motores de colocação e de reequilíbrio necessita de dados. Os dados necessários são recolhidos por um conjunto de colectores de dados de estado implementados como plugins do collected.
A Sardina optou por implementar os colectores de dados do estado como plugins do collected porque o collected tem várias vantagens, desde ser comum em ambientes Linux, ser de código aberto, ser facilmente extensível e ter um baixo custo de integração, permitindo assim que os administradores de sistemas Linux o estendam e expandam facilmente.
Os dados de estado recolhidos são enviados por um plugin de recolha e acabam numa base de dados de séries temporais escalável horizontalmente, concebida para lidar com um grande número de pequenas escritas e um pequeno número de grandes leituras.
Os dados da base de dados de séries cronológicas são depois consumidos pelos motores de colocação e de reequilíbrio.
Ativado por defeito
Tanto o Placement Engine quanto o Rebalancing Engine são habilitados por padrão nos sistemas FishOS, com o Rebalancing Engine configurado para rodar periodicamente.
Código aberto
Como a Sardina quer apoiar o OpenStack e o seu modelo de código aberto, estamos agora a oferecer acesso gratuito ao FishOS Deployer por um período de tempo limitado.
Visita o nosso site www.sardinasystems.com para mais informações ou contacta-nos através do endereço info@sardinasystems.com.
Obrigado!


