Operação da nuvem Apache CloudStack
Este documento apresenta o conceito de ambientes de computação em nu-
vem, no contexto de nuvem privada, e uma introdução à plataforma de or-
questração de nuvem Apache CloudStack, com foco no processo de operação
da mesma.
Data de atualização: 7 de outubro de 2024
Revision: 774b16a47611371568767a362e7f712a9012450f
Conteúdo
1 Introdução 20
1.1 Plataformas de nuvem privada . . . . . . . . . . . . . . . . . . . . . 21
1.1.1 Funcionalidades básicas . . . . . . . . . . . . . . . . . . . . . 21
1.2 História do Apache CloudStack . . . . . . . . . . . . . . . . . . . . . 23
2 Conceitos básicos do Apache CloudStack 24
2.1 Control Plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2 Compute Plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3 Data Plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.4 Organização lógica do Apache CloudStack . . . . . . . . . . . . . . 26
2.5 Componentes do Apache CloudStack . . . . . . . . . . . . . . . . . 27
3 Funcionalidades do Apache CloudStack 29
3.1 Dashboard inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2 Configurações da VM . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.1 Configurações gerais . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.2 Configurações diversas para uso interno . . . . . . . . . . . 31
3.2.3 Configurações de VM específicas para KVM . . . . . . . . . 31
3.2.4 Configurações de VM específicas para VMWare . . . . . . . 32
3.2.5 Configurações específicas para uso interno do XenServer . 32
3.2.6 Configurações específicas para Mac OSX - Guest . . . . . . 32
3.2.7 Configurações globais para VMs . . . . . . . . . . . . . . . . 32
3.2.7.1 Restrição de acesso ao usuário . . . . . . . . . . . 32
3.2.7.2 Metadados de configurações extras . . . . . . . . 33
3.2.7.3 Retenção de estatísticas das VMs . . . . . . . . . . 34
3.3 Gerência de volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.1 Migração de volume com VM parada (migração a frio) . . . 36
3.3.2 Migração de volume com VM rodando (migração a quente) 37
3.3.3 Migração de volume via CLI . . . . . . . . . . . . . . . . . . . 38
2
3.3.4 Importação de volume para outra zona ou conta . . . . . . 41
3.4 Virtual router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.4.1 Parada do virtual router . . . . . . . . . . . . . . . . . . . . . 43
3.4.2 Reinicialização do virtual router . . . . . . . . . . . . . . . . . 44
3.4.3 Destruição de virtual router . . . . . . . . . . . . . . . . . . . 45
3.4.4 Definição de offering padrão do virtual router . . . . . . . . 45
3.5 IPs públicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.5.1 IP público reservado para system VMs . . . . . . . . . . . . . 47
3.6 Suporte a IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.6.1 Redes isoladas e tiers de VPCs . . . . . . . . . . . . . . . . . 47
3.6.2 Redes shared . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.7 Host, storage e network tags . . . . . . . . . . . . . . . . . . . . . . . 55
3.7.1 Host tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.7.2 Storage tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.7.3 Network tags . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.7.4 Tags flexíveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.8 Gerenciamento do deploy de instâncias com base em seus siste-
mas operacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.8.1 Preference OS dos hosts . . . . . . . . . . . . . . . . . . . . . 64
3.8.2 Flexible guest OS . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.9 Snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.9.1 Configurações de snapshots . . . . . . . . . . . . . . . . . . . 67
3.10 Auditoria de eventos e alertas . . . . . . . . . . . . . . . . . . . . . 67
3.10.1 E-mails de alertas . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.10.2 Busca e filtro de alertas . . . . . . . . . . . . . . . . . . . . . 69
3.10.3 Remoção ou arquivamento de alertas . . . . . . . . . . . . . 69
3.10.4 Automatização da remoção de eventos e alertas . . . . . . 70
3.11 Service offerings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.11.1 Compute offerings . . . . . . . . . . . . . . . . . . . . . . . . . 70
3
3.12 Network offerings - throttling . . . . . . . . . . . . . . . . . . . . . . . 71
3.12.1 System offerings . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.12.1.1 Criação de system offering . . . . . . . . . . . . . . 73
3.12.1.2 Edição de system offering . . . . . . . . . . . . . . . 75
3.12.1.3 Exclusão de system offering . . . . . . . . . . . . . . 76
3.12.1.4 Alteração da system offering de uma system VM . . 77
3.12.2 Backup offerings . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.12.2.1 Habilitação de backup offering . . . . . . . . . . . . 78
3.12.2.2 Importação de backup offering . . . . . . . . . . . . 79
3.12.2.3 Exclusão de backup offering . . . . . . . . . . . . . 81
3.12.2.4 Utilização de backup offering . . . . . . . . . . . . . 81
3.12.3 Limitação de IOPS e BPS nas ofertas de discos . . . . . . . . 84
3.13 Gerência de storages no Apache CloudStack . . . . . . . . . . . . . 88
3.13.1 Primary storage . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.13.1.1 Adição de primary storage . . . . . . . . . . . . . . . 90
3.13.1.2 Desabilitação de primary storage . . . . . . . . . . 93
3.13.1.3 Modo manutenção do primary storage . . . . . . . 94
3.13.1.4 Comportamento após reinicialização do host . . . 94
3.13.1.5 Uso de local storage . . . . . . . . . . . . . . . . . . 95
3.13.2 Secondary storage . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.13.2.1 Adição de secondary storage . . . . . . . . . . . . . 102
3.13.2.2 Migração de dados entre secondary storages . . . 102
3.13.2.3 Modo read-only do secondary storage . . . . . . . . 103
3.13.2.4 Modo read-write do secondary storage . . . . . . . 104
3.13.2.5 Deleção de secondary storage . . . . . . . . . . . . 105
3.14 Alocação de recursos para o armazenamento secundário . . . . . 105
4 Configurações do Apache CloudStack 110
4.1 Escopos de configuração . . . . . . . . . . . . . . . . . . . . . . . . 110
4.2 Configurações globais que regem o uso do primary storage . . . . 111
4
4.3 Configurações para limitação de recursos . . . . . . . . . . . . . . 113
4.4 Configurações que regem o uso de Kubernetes . . . . . . . . . . . 113
4.4.1 Habilitação de integração com Kubernetes . . . . . . . . . . 113
4.4.2 Criação de clusters Kubernetes . . . . . . . . . . . . . . . . . 114
5 Customização da UI 115
5.1 Alteração de logo e outros elementos . . . . . . . . . . . . . . . . . 115
5.2 Alteração de logo ao redimensionar a página . . . . . . . . . . . . 117
5.3 Gerência de temas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.3.1 Criação de tema . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.3.2 Listagem de temas . . . . . . . . . . . . . . . . . . . . . . . . 120
5.3.3 Atualização do tema . . . . . . . . . . . . . . . . . . . . . . . 122
5.3.3.1 Campo css . . . . . . . . . . . . . . . . . . . . . . . 123
5.3.3.2 Configuração JSON . . . . . . . . . . . . . . . . . . . 124
5.3.4 Remoção de tema . . . . . . . . . . . . . . . . . . . . . . . . 125
5.3.5 Exemplos de personalizações comuns da UI . . . . . . . . . 125
5.3.5.1 Criação do tema com arquivo de estilização externo125
5.3.5.2 Observações sobre conflitos entre estilos . . . . . 126
5.3.5.3 Adição de fontes . . . . . . . . . . . . . . . . . . . . 126
5.3.5.4 Uso de variáveis CSS . . . . . . . . . . . . . . . . . . 126
5.3.5.5 Página de login . . . . . . . . . . . . . . . . . . . . . 127
5.3.5.6 Estilização do header . . . . . . . . . . . . . . . . . 128
5.3.5.7 Estilização da sidebar . . . . . . . . . . . . . . . . . 129
5.3.5.8 Estilização dos cards e dos gráficos do dashboard 131
5.3.5.9 Estilização dos links e listagens . . . . . . . . . . . 133
5.4 Redirecionamento para links externos . . . . . . . . . . . . . . . . 134
6 Contabilização do consumo de recursos 137
6.1 Usage Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.1.1 Configuração do Usage Server . . . . . . . . . . . . . . . . . 137
5
6.1.2 Usage type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.2 Quota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
6.2.1 Configuração do Quota . . . . . . . . . . . . . . . . . . . . . 142
6.2.2 Gerência de tarifas . . . . . . . . . . . . . . . . . . . . . . . . 143
6.2.2.1 Criação de tarifas . . . . . . . . . . . . . . . . . . . 144
6.2.2.2 Detalhes das tarifas . . . . . . . . . . . . . . . . . . 146
6.2.2.3 Edição de tarifas . . . . . . . . . . . . . . . . . . . . 146
6.2.2.4 Remoção de tarifas . . . . . . . . . . . . . . . . . . 147
6.2.3 Regras de ativação . . . . . . . . . . . . . . . . . . . . . . . . 147
6.2.3.1 Presets padrões para todos os tipos de recursos . 149
6.2.3.2 Presets para o tipo RUNNING_VM . . . . . . . . . . 150
6.2.3.3 Presets para o tipo ALLOCATED_VM . . . . . . . . . 151
6.2.3.4 Presets para o tipo VOLUME . . . . . . . . . . . . . 151
6.2.3.5 Presets para os tipos TEMPLATE e ISO . . . . . . . . 152
6.2.3.6 Presets para o tipo SNAPSHOT . . . . . . . . . . . . 152
6.2.3.7 Presets para os tipos NETWORK_OFFERING . . . . 153
6.2.3.8 Presets para o tipo VM_SNAPSHOT . . . . . . . . . 153
6.2.3.9 Presets para o tipo BACKUP . . . . . . . . . . . . . . 153
6.2.3.10 Presets para o tipo NETWORK USAGE . . . . . . . . 154
6.2.3.11 Presets para o tipo BACKUP OBJECT . . . . . . . . . 154
6.2.3.12 Verificação das presets via API . . . . . . . . . . . . 154
6.2.3.13 Presets para os demais tipos de recurso . . . . . . 154
6.2.3.14 Exemplos de expressões . . . . . . . . . . . . . . . 155
6.2.4 Gerência de créditos . . . . . . . . . . . . . . . . . . . . . . . 158
6.2.4.1 Adição/remoção de créditos . . . . . . . . . . . . . 159
6.2.5 Contas ativas . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
6.2.6 Gerência de templates de e-mail do Quota . . . . . . . . . . 161
6.2.6.1 Observações sobre o uso do plugin Quota . . . . . 162
6
7 Operação 164
7.1 Depuração de problemas e processo de troubleshooting . . . . . . 164
7.1.1 Depuração através dos logs . . . . . . . . . . . . . . . . . . . 164
7.1.2 Depuração através da interface web . . . . . . . . . . . . . . 164
7.1.3 Depuração de problemas de rede . . . . . . . . . . . . . . . 165
7.1.4 Path dos arquivos de log . . . . . . . . . . . . . . . . . . . . . 165
7.1.5 Incremento de nível dos logs nos Management Servers e
KVM Agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
7.1.6 Processo de troubleshooting . . . . . . . . . . . . . . . . . . . 169
7.2 Failover de hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
7.3 Gerenciamento dos serviços do Apache CloudStack . . . . . . . . 177
7.3.1 Gerenciamento do cloudstack-management . . . . . . . . . 177
7.3.2 Gerenciamento do cloudstack-agent para hypervisor KVM . 179
7.3.3 Gerenciamento do cloudstack-usage . . . . . . . . . . . . . 180
7.4 System VMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
7.4.1 Console Proxy Virtual Machine . . . . . . . . . . . . . . . . . . 182
7.4.2 Secondary Storage Virtual Machine . . . . . . . . . . . . . . . 182
7.4.3 Virtual Router . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
7.4.3.1 Virtual Router health checks . . . . . . . . . . . . . . 183
7.4.4 Acesso às system VMs . . . . . . . . . . . . . . . . . . . . . . 187
7.4.5 Randomização de senha das system VMs . . . . . . . . . . . 187
7.4.6 URL para consumo da CPVM e SSVM . . . . . . . . . . . . . 188
7.5 Habilitação do aumento de recursos computacionais das VMs . . 189
7.6 Overprovisioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
7.7 Atualização do Apache CloudStack . . . . . . . . . . . . . . . . . . . 192
7.7.1 Atualização entre major versions . . . . . . . . . . . . . . . . 192
7.7.2 Atualização dentro da mesma major version . . . . . . . . . 194
7.8 Atualização do certificado SSL no ambiente (nginx e ACS) . . . . . 194
7.8.1 Extração dos certificados intermediários e root . . . . . . . 195
7
7.8.2 Conversão de chave para PKCS#8: . . . . . . . . . . . . . . . 195
7.8.3 Adição de certificado no nginx . . . . . . . . . . . . . . . . . 195
7.8.4 Adição de certificado no Apache CloudStack . . . . . . . . . 195
7.9 Pares de chaves SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
8 Virtualizador KVM 203
8.1 Instalação do KVM e CloudStack Agent . . . . . . . . . . . . . . . . 204
8.2 Configuração do KVM e Cloudstack Agent . . . . . . . . . . . . . . 205
8.3 Operação do KVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
8.4 Topologia de CPU no KVM . . . . . . . . . . . . . . . . . . . . . . . . 208
8.5 Controle da CPU no KVM . . . . . . . . . . . . . . . . . . . . . . . . 209
9 Virtualizador VMWare 213
9.1 Criação de datastores . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
9.2 Instalação dos hosts ESXi . . . . . . . . . . . . . . . . . . . . . . . . . 214
9.2.1 Instalação padrão dos hosts ESXi . . . . . . . . . . . . . . . . 214
9.2.2 Configurações básicas dos hosts ESXi . . . . . . . . . . . . . 218
9.2.3 Configurações avançadas dos hosts ESXi . . . . . . . . . . . 223
9.2.3.1 Adição de novos IPs . . . . . . . . . . . . . . . . . . 224
9.2.3.2 Adição de novos datastores . . . . . . . . . . . . . . 226
9.2.3.3 Adição de chave de licença . . . . . . . . . . . . . . 228
9.3 Instalação do vCenter . . . . . . . . . . . . . . . . . . . . . . . . . . 229
9.3.1 Adição de chave de lincença . . . . . . . . . . . . . . . . . . 239
9.3.2 Adição de múltiplos hosts ESXi . . . . . . . . . . . . . . . . . 241
9.3.3 Remoção da interface gráfica do Linux . . . . . . . . . . . . 245
9.4 Adição de cluster VMWare no Apache CloudStack . . . . . . . . . . 246
9.5 Problemas na adição de cluster VMWare . . . . . . . . . . . . . . . 251
9.6 Importação de VMs do VMWare para o Apache CloudStack . . . . 254
9.6.1 Importação de VMs via UI . . . . . . . . . . . . . . . . . . . . 254
9.6.2 Importação de VMs via API . . . . . . . . . . . . . . . . . . . 257
8
10 Conclusão 259
Apêndice A Terminologia 261
9
Lista de Figuras
1 Computação em nuvem . . . . . . . . . . . . . . . . . . . . . . . . . 21
2 Exemplo de arquitetura do Apache CloudStack com tolerância à
falhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3 Organização lógica do Apache CloudStack . . . . . . . . . . . . . . 27
4 Dashboard inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5 Aba de configurações da VM . . . . . . . . . . . . . . . . . . . . . . 30
6 Configurações globais . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7 Exemplo de retorno da query com o tamanho total da tabela vm
_stats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
8 Migrando volume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
9 Confirmar a ação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
10 Migrando a VM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
11 Configurar a migração . . . . . . . . . . . . . . . . . . . . . . . . . . 38
12 Indo até a aba de virtual routers . . . . . . . . . . . . . . . . . . . . 42
13 Verificando se o VR foi corretamente criado . . . . . . . . . . . . . 42
14 Navegando até os virtual routers . . . . . . . . . . . . . . . . . . . . 43
15 Parando o virtual router . . . . . . . . . . . . . . . . . . . . . . . . . 43
16 Confirmando a ação . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
17 Confirmando que o virtual router parou . . . . . . . . . . . . . . . . 44
18 Reiniciando o virtual router . . . . . . . . . . . . . . . . . . . . . . . 44
19 Destruindo o virtual router . . . . . . . . . . . . . . . . . . . . . . . . 45
20 Confirmando a ação . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
21 Confirmando a remoção do virtual router . . . . . . . . . . . . . . . 45
22 Fluxo para definir offering padrão do virtual router . . . . . . . . . 46
23 Iniciando a adição do intervalo IPv6 para a rede pública . . . . . . 48
24 Adicionando um intervalo IPv6 para a rede pública . . . . . . . . . 48
25 Um prefixo /52 permite 4096 subredes IPv6 com bloco /64 . . . . 48
10
26 Iniciando a adição do intervalo IPv6 para a rede guest . . . . . . . 49
27 Adicionando um intervalo de IPv6 para a rede guest . . . . . . . . 49
28 Criando oferta para VPCs com suporte a IPv6 . . . . . . . . . . . . 50
29 Criando oferta para tier de VPCs com suporte a IPv6 . . . . . . . . 50
30 Validação da autoconfiguração do IPv6 da VM (via SLAAC) . . . . . 51
31 Apresentação na UI das rotas que deverão ser adicionadas no
roteador de borda . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
32 Apresentação via API das rotas que deverão ser adicionadas no
roteador de borda . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
33 Criando oferta para rede isolada com suporte a IPv6 . . . . . . . . 52
34 Validação da autoconfiguração do IPv6 da VM (via SLAAC) . . . . . 52
35 Apresentação na UI das rotas que deverão ser adicionadas no
roteador de borda . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
36 Apresentação via API das rotas que deverão ser adicionadas no
roteador de borda . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
37 Criação de uma rede shared com os dados do IPv4 . . . . . . . . . 54
38 Criação de uma rede shared com os dados do IPv6 . . . . . . . . . 54
39 Campos para atualizar storage tags e host tags de uma compute
offering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
40 Acessando a edição do host . . . . . . . . . . . . . . . . . . . . . . . 62
41 Criando a tag flexível no host . . . . . . . . . . . . . . . . . . . . . . 62
42 Acessando a edição do primary storage . . . . . . . . . . . . . . . . 63
43 Criando a tag flexível no primary storage . . . . . . . . . . . . . . . 63
44 Acesso ao host a ser configurado . . . . . . . . . . . . . . . . . . . . 65
45 Acesso ao formulário de edição do host . . . . . . . . . . . . . . . . 65
46 Configuração da preference OS do host . . . . . . . . . . . . . . . . 65
47 Configuração da regra de guest OS do host . . . . . . . . . . . . . . 66
48 Acessando os alertas . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
49 Arquivando ou deletando um alerta . . . . . . . . . . . . . . . . . . 69
11