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.