Nova

O que é o Nova?

Definição:"O Nova é o projeto do OpenStack que oferece uma maneira de provisionar instâncias de computação (também conhecidas como servidores virtuais). O Nova suporta a criação de máquinas virtuais, servidores dedicados (por meio do uso do Ironic) e possui suporte limitado para contêineres de sistema. O Nova é executado como um conjunto de daemons em servidores Linux existentes para fornecer esse serviço."

De forma simples, podemos dizer que o Nova é como o "cérebro" por trás da criação e gerenciamento das VMs. Ele permite que os usuários solicitem a criação de VMs (Máquinas virtuais), definindo recursos como capacidade de processamento, memória e armazenamento. O Nova aloca os recursos necessários para as VMs e as provisiona em servidores físicos disponíveis na nuvem.

Principais componentes do Nova:

  • API : A API do Nova é a interface pela qual os usuários interagem com o serviço. Ela recebe as solicitações dos usuários para criar, listar, modificar ou excluir instâncias de máquinas virtuais.
  • Scheduler: O Scheduler é responsável por tomar decisões sobre onde e como implantar as instâncias de máquinas virtuais. Ele seleciona o melhor Compute Node (nó de computação) disponível para executar a instância com base em políticas de alocação, como carga do sistema, disponibilidade de recursos, políticas de segurança, entre outros.
  • Compute Node: O Compute Node é onde as instâncias de máquinas virtuais são realmente executadas. Ele é responsável por criar, iniciar, pausar, reiniciar e parar as instâncias. Cada Compute Node é composto por duas partes principais:
    • Nova Compute: O Nova Compute é responsável por gerenciar as operações relacionadas às instâncias de máquinas virtuais em um nó de computação. Ele interage diretamente com o hypervisor para criar e controlar as instâncias.
    • Hypervisor: O Hypervisor é o software responsável por criar e gerenciar as máquinas virtuais em um nó de computação. Existem vários hypervisors disponíveis, como o KVM, Xen, VMware, entre outros. O Nova Compute utiliza o hypervisor para criar as instâncias de máquinas virtuais e fornecer o ambiente isolado onde elas são executadas.

Para sedimentar todas essa informações, nada melhor que um exemplo.
Imagine que um usuário envie uma solicitação para criar uma nova instância de VMs. Esse usuário vai fazer isso por meio da Horizon. A Horizon, por sua vez, irá se comunicar com o Nova por meio da API do Nova. A solicitação é recebida pela API, que a encaminha para o Scheduler. O Scheduler seleciona o Compute Node adequado para executar a instância e envia uma mensagem para o Conductor com as informações necessárias. O Conductor valida a solicitação, verifica as políticas de segurança e envia uma mensagem para o Nova Compute no Compute Node selecionado. O Nova Compute, por sua vez, interage com o hypervisor para criar e iniciar a instância de máquina virtual. Nesse processo, o Nova se comunica com os outros serviços do OpenStack para obter informações sobre imagens, configurar redes e gerenciar o armazenamento das instâncias de máquinas virtuais, garantindo que elas sejam criadas e provisionadas corretamente.