Para criar um deploy mínimo do CloudStack é necessário apenas uma máquina, na qual deverão ser configurados armazenamentos, banco de dados, redes e o CloudStack propriamente. O CloudStack possui três serviços distintos para gerenciamento da Cloud, sendo eles Management server, CloudStack Agent e CloudStack Usage.
- Management server é responsável pela gerência e orquestração dos recursos disponíveis na infraestrutura, além de ser o responsável pelas APIs REST e uma interface web para o gerenciamento.
- CloudStack Agent (somente necessário para o hypervisor KVM) disponibiliza os recursos computacionais que serão utilizados pela nuvem. Máquinas destinadas à esse serviço devem suportar virtualização, pois nelas serão alocadas as VMs criadas.
- CloudStack Usage (opcional) é responsável por gerar registros sobre os recursos usados na infraestrutura. Esse tópico será explanado na seção CloudStack Usage.
A arquitetura do CloudStack está preparada para escalonamento tanto vertical (aumento dos recursos de uma máquina) quanto horizontal (adição de novas máquinas, sejam Managements Servers ou CloudStack Agents.
A organização lógica utilizada pelo CloudStack pode ser dividida em:
- Region: maior unidade de implementação de uma nuvem. Agrupa uma ou mais Zones.
- Zone: representa um único datacenter que é composto por um ou mais pods e um secondary storage.
- Pod: representa um único rack no datacenter.
- Cluster: consiste em um ou mais hosts homogêneos e que compartilham o mesmo primary storage.
- Host: uma máquina qualquer que irá atuar como agent.
- Primary Storage: pode operar a nível de cluster e de zone. Ele é responsável por armazenar os discos (também chamados de volumes) utilizados pelas VMs.
- Secondary Storage: opera a nível de zone, armazenando os templates das VMs, ISOs, backups e snapshots.
A estrutura do CloudStack é formada pelos seguintes componentes:
- Management servers;
- Hosts;
- Network: rede que conecta os componentes do ACS. É recomendado fazer uso de segregação de redes, provendo mais segurança;
- Primary Storage;
- Secondary Storage;
- Virtual Router: System VM que emula um roteador, implementando os serviços das redes guest. Possibilitando, por exemplo, acesso à internet;
- Console Proxy Virtual Machine: System VM responsável por apresentar uma visão do console de uma VM qualquer via interface web;
- Secondary Storage Virtual Machine: System VM responsável por gerenciar um secondary storage. Disponibiliza funções como, por exemplo, download e upload de volumes.
O CloudStack utiliza várias configurações que determinam como a nuvem será gerenciada. Essas configurações são salvas em um banco de dados MySQL, o qual pode ser manipulado por usuários administradores.