🖥️ Infra ⚙️ Hypervisor 🌐 Rede 💾 Storage 🧷 HA/DR 🔒 Segurança

Virtualização — abordagem profunda

Virtualização é a camada que abstrai hardware físico (CPU, memória, disco e rede) para executar múltiplas máquinas virtuais (VMs) com isolamento, governança e elasticidade. O “pulo do gato” não é apenas criar VMs, mas desenhar um ambiente com performance previsível, disponibilidade, segurança, backup e capacidade planejada.

🎯 Por que virtualizar?

Consolidação de servidores, provisionamento rápido, isolamento, snapshots, automação, HA e recuperação mais eficiente.

ConsolidaçãoAgilidadeGovernança

⚠️ Onde dá ruim?

Oversubscription sem controle, storage lento, rede mal segmentada, snapshots eternos, backup fraco e falta de observabilidade.

IOPSNUMARPO/RTO

🏗️ Arquiteturas e hipervisores

Type-1 vs Type-2 • Full/Para • Hardware assist
  • Hipervisor Type-1 (bare-metal): roda direto no hardware (menor overhead e mais recursos de cluster/HA).
  • Hipervisor Type-2 (hosted): roda sobre um SO (ótimo para desktop/lab, menos indicado para produção pesada).
  • Virtualização assistida por hardware: Intel VT-x / AMD-V, EPT/NPT, IOMMU (essenciais em produção).
  • Full virtualization: o guest não precisa “saber” que é VM.
  • Paravirtualização: drivers otimizados (virtio, vmxnet3, pvscsi) para reduzir overhead.
Modelo mental (camadas)

[VM / Guest OS / Apps]
        |
 [Virtual HW: vCPU, vNIC, vDisk]
        |
    [Hypervisor]
        |
 [CPU/RAM/NIC/HBA físicos]
        |
      [Storage / Rede]
Regra prática: em produção, prefira Type-1 + drivers paravirtualizados (rede e disco) para reduzir latência e CPU.
Decisão rápida
ObjetivoEscolha comum
Lab/estudoType-2 (desktop) ou cluster pequeno
Produção corporativaType-1 + cluster + storage compartilhado
Alta densidadeType-1 + tunning CPU/mem + storage forte
NFV / rede virtualType-1 + SR-IOV/DPDK (quando necessário)

🧮 CPU, scheduler e NUMA

vCPU • overcommit • CPU ready • pinning
  • vCPU ≠ core físico: vCPU é tempo de CPU agendado pelo hipervisor.
  • Overcommit de CPU: você pode alocar mais vCPUs do que cores físicos, mas precisa monitorar latência (tempo de espera).
  • CPU ready / steal time: indica que a VM quer CPU, mas o host está ocupado (sintoma clássico de overcommit).
  • NUMA: em servidores multi-socket, memória “local” é mais rápida do que memória “remota”. VMs grandes precisam respeitar NUMA.
  • Pinning/affinity: “prender” vCPUs em cores específicos pode ajudar workloads previsíveis, mas reduz flexibilidade do scheduler.
Alerta: VM com muitos vCPUs “sem necessidade” pode ficar mais lenta (o scheduler precisa achar tempo livre para todos os vCPUs).
SintomaCausa provável
latência alta / “travadas” curtasCPU ready/steal alto, host saturado
VM grande lentaNUMA mismatch, memória remota
picos ao backupcompressão/cripto + CPU concorrendo
Boas práticas de CPU
  • Comece com menos vCPU e aumente se necessário
  • Evite “8 vCPU para tudo”
  • Use reservas/limites quando houver vizinhos ruidosos
  • Monitore CPU ready/steal + load no host
Heurística (bem geral)
- VMs pequenas: 1–2 vCPU
- Serviços médios: 2–4 vCPU
- Bancos/ETL: dimensionar por benchmark e latência

🧠 Memória: ballooning, sharing, hugepages

overcommit • swap • latência
  • Overcommit de RAM: possível em alguns hipervisores via técnicas de compartilhamento/ballooning, mas é arriscado para produção sem controle.
  • Ballooning: driver no guest “devolve” RAM para o host sob pressão.
  • Swap do host: é sinal vermelho; swap em host virtualizado geralmente derruba desempenho do cluster.
  • Hugepages: páginas grandes reduzem overhead de TLB e podem melhorar performance (especialmente em workloads de memória intensiva).
  • Reserva de memória: para VMs críticas, garanta RAM para evitar competição.
Sinal crítico: host swapando = degradação generalizada. Ajuste capacity ou reduza consolidação.
Modelo mental de pressão de memória
1) Cache/buffers reduzem
2) Ballooning (se habilitado)
3) Swap guest
4) Swap host  (pior cenário)
Boas práticas de RAM
  • Evite overcommit agressivo em produção
  • Prefira “right sizing” (dimensionamento real)
  • Para DBs: reserve RAM e evite ballooning
  • Monitore page faults, swap e latência

💾 Storage: datastores, iSCSI, NFS, Ceph

IOPS • latência • cache • RAID
  • Storage é o coração: a maioria dos gargalos em virtualização é IO (latência) e não CPU.
  • Métricas-chave: latência (ms), IOPS, throughput (MB/s) e fila (queue depth).
  • Protocolos: NFS (arquivo), iSCSI (bloco), FC (bloco), storage distribuído (Ceph, etc.).
  • Cache: write-back/write-through, cache em SSD/NVMe para aceleração (com cuidado em consistência).
  • RAID: RAID10 costuma ser “safe default” para IO aleatório; RAID5/6 economiza disco, mas penaliza escrita.
WorkloadExigência típica
Banco OLTPbaixa latência + IOPS aleatório
Arquivos/backupthroughput + capacidade
VDIpicos de IO (boot storm)
Logsescrita sequencial consistente
Regra prática: priorize latência baixa e previsível. 5–10 ms já pode ser “perceptível” para alguns bancos/serviços.
Erros comuns
  • Colocar muitas VMs críticas no mesmo datastore lento
  • Manter snapshots por semanas (crescem e aumentam latência)
  • Não separar IO de backup do IO de produção
  • Sem multipath / redundância de links
Checklist storage
- Latência média e p95
- IOPS sustentados
- Redundância (links/controladoras)
- Plano de expansão (capacity)
- Testes de restore/DR

🌐 Rede: vSwitch, VLAN, VXLAN, SR-IOV

isolamento • throughput • offloads
  • vSwitch: switch virtual conectando vNICs das VMs a uplinks físicos.
  • VLAN: segmentação L2 para separar redes (mgmt, storage, vMotion/live migration, produção, DMZ).
  • Overlay (VXLAN/Geneve): segmentação virtual em larga escala (mais comum em SDN).
  • Bonding/LACP: redundância e agregação (depende do design e do switch físico).
  • SR-IOV: acesso quase direto à NIC (alta performance), mas reduz flexibilidade (migração/inspeção).
Segmentação recomendada (exemplo)
- VLAN 10: Management (hosts)
- VLAN 20: Storage (iSCSI/NFS/Ceph)
- VLAN 30: Live Migration / vMotion
- VLAN 40: Produção (VMs)
- VLAN 50: DMZ (serviços expostos)
Alerta: misturar Storage + Produção na mesma rede pode gerar “microparadas” por congestionamento e aumentar latência de disco.
Boas práticas de rede
  • Separar redes críticas por VLAN/VRF quando possível
  • Garantir MTU (ex: jumbo) somente quando suportado fim-a-fim
  • Monitorar perda, jitter e microbursts
  • Evitar oversubscription extremo em uplinks

📀 Discos virtuais: thin/thick, snapshots e consistência

thin provisioning • snapshot chain • quiesce
  • Thick: espaço reservado no datastore (mais previsível).
  • Thin: aloca conforme uso (economiza, mas exige controle de capacity para evitar “datastore full”).
  • Snapshots: ótimos para mudanças curtas; péssimos para manter por muito tempo (crescem e degradam IO).
  • Consistência: snapshots/backup ideais usam “quiesce” (congelar IO) e integração com VSS (Windows) quando aplicável.
Anti-padrão: snapshot como “backup”. Snapshot é ferramenta de curto prazo; backup é cópia independente + retenção.
PráticaRecomendação
Snapshotsminutos/horas (no máximo poucos dias, dependendo do workload)
Thinuse com alertas e “headroom” (espaço de segurança)
Discosdrivers paravirt (virtio/pvscsi) quando possível
Headroom (reserva)
  • Reserve espaço para crescimento + snapshots temporários + operações de manutenção
  • Evite operar datastores acima de ~80–85% (depende do ambiente)

🧷 Alta disponibilidade (HA) e Cluster

failover • quorum • live migration
  • Cluster: conjunto de hosts gerenciados como pool (balanceamento, migração, HA).
  • HA: se um host cai, VMs reiniciam em outro host (depende de storage/rede/controle).
  • Quorum: evita split-brain (principalmente em clusters com storage distribuído).
  • Live migration: move VM ligada entre hosts (manutenção sem downtime, se rede/storage suportarem).
  • Anti-affinity: regras para separar VMs críticas em hosts diferentes (ex: nós de cluster de banco).
HA não é DR:
- HA = continuidade local (falha de host)
- DR = desastre/site down (falha de datacenter)
Projeto saudável: N+1 (ou N+2) — o cluster suporta perder 1 (ou 2) host(s) e continuar.
Pontos de atenção
  • Capacidade após failover (N+1 real)
  • Rede dedicada para migração
  • Storage resiliente (ou distribuído)
  • Testes de failover planejados

🧯 Backup, replicação e DR

RPO/RTO • 3-2-1 • imutável
  • Backup: cópia independente, com retenção e verificação (restore test).
  • Replicação: cópia contínua/quase contínua para outro storage/site (ótimo para DR, não substitui backup).
  • RPO: quanto de dado você aceita perder (ex: 15 min).
  • RTO: tempo para voltar (ex: 1 hora).
  • Imutabilidade: proteção contra ransomware (backups WORM/imutáveis).
CamadaObjetivo
Snapshot curtorollback rápido antes de mudanças
Backupretenção, histórico, auditoria
Replicaçãocontinuidade em outro site
DR runbookpasso-a-passo de retorno
Regra 3-2-1: 3 cópias, 2 mídias diferentes, 1 cópia offsite (idealmente imutável).
O que quase ninguém faz (mas deveria)
  • Testar restore regularmente
  • Medir RTO “na vida real”
  • Separar rede/credenciais do backup
  • Guardar backup offline/imutável

🔒 Segurança e hardening

segurança do host • isolamento • RBAC
  • Camada crítica: o hipervisor é “coroa” — se comprometer o host, compromete todas as VMs.
  • RBAC: perfis por função (admin, operador, auditor) e princípio do menor privilégio.
  • Rede de management isolada: sem acesso direto da internet; VPN e MFA.
  • Atualizações: patching do hypervisor, management e firmware (planejamento com live migration).
  • Segurança de backup: credenciais separadas, repositório protegido, imutabilidade.
  • Segurança de rede: microsegmentação (quando disponível), firewalls, ACLs e VLANs.
Modelo mental: trate a plataforma de virtualização como “Tier 0” (mais sensível que servidores comuns).
ControleExemplo
AcessoVPN + MFA + IP allowlist
Credenciaiscontas nominativas, sem compartilhamento
Logsenvio para SIEM/syslog
Segredosvault/secret manager (evitar “senha em planilha”)
Hardening rápido
  • Desabilitar serviços/protocolos desnecessários
  • Segregar redes (mgmt/storage/migration/prod)
  • Auditar permissões e mudanças
  • Backups com MFA/imutabilidade
  • Controle físico (datacenter/rack)

📈 Observabilidade e capacity planning

métricas • p95 • alarmes • SLO
  • Não monitore só média: use percentis (p95/p99) para detectar degradações.
  • CPU: uso, ready/steal, load, co-stop (quando aplicável).
  • Memória: swap, ballooning, page faults, cache.
  • Storage: latência (leitura/escrita), IOPS, fila, congestão, erros.
  • Rede: throughput, perda, erros, drops, microbursts.
  • Capacity: N+1, crescimento (mês a mês), “headroom” de datastore.
Modelo SRE (simplificado)
- Defina SLO: ex. "latência de storage p95 < 10ms"
- Crie alertas por SLO e saturação
- Revise tendência (forecast) e planeje expansão
Capacidade sem tendência = susto. Use gráficos de 30/60/90 dias para prever saturação.
Alarmes úteis
  • Datastore acima de 80–85%
  • Latência de storage p95 subindo
  • CPU ready/steal elevado
  • Host swapando / ballooning agressivo
  • Perda de link / erros na NIC

📦 VMs vs Containers

isolamento • densidade • operações
  • VM: virtualiza hardware; cada VM tem seu kernel/OS (isolamento forte, overhead maior).
  • Container: compartilha kernel do host; empacota app+deps (leve, rápido, isolamento menor que VM).
  • Na prática: containers rodam “em cima” de VMs na maioria das empresas (melhor governança e isolamento).
  • Escolha: VM para workloads legados/estado/isolamento; containers para apps stateless e deploy frequente.
CritérioVM
Isolamentoalto
Velocidade de startmédia
Densidademédia
Compatibilidadealta (qualquer SO)
Anti-padrões
  • Colocar DB crítico em container sem storage/backup/replicação bem desenhados
  • Container “imutável” mas com dados críticos dentro
  • Sem observabilidade (logs, métricas, tracing)

🧩 Checklist de desenho de ambiente

blueprint • padrões • decisões
  • 1) Requisitos: workloads, RPO/RTO, compliance, janela de manutenção.
  • 2) Capacidade: CPU/RAM/IOPS, crescimento 12–24 meses, N+1.
  • 3) Storage: arquitetura (SAN/NAS/distribuído), latência alvo, redundância, multipath.
  • 4) Rede: VLANs/segmentação, uplinks, MTU, redundância, QoS se necessário.
  • 5) Segurança: mgmt isolado, RBAC, MFA, logs centralizados, hardening.
  • 6) Backup/DR: 3-2-1, imutabilidade, testes, runbooks.
  • 7) Operação: monitoramento, alertas, patching, automação, documentação.
Blueprint mínimo (documento)
- Diagrama (rede + storage + hosts)
- Tabela de VLANs e IPs
- Políticas (RBAC, backup, patching)
- Runbook (failover/restore)
- Métricas/SLOs e alertas
“Safe defaults” (em geral)
  • N+1 real (capacidade pós-falha)
  • Storage com latência baixa e previsível
  • Sem snapshots longos
  • Backups testados e imutáveis
  • Rede de management isolada
Dica: documente primeiro; implementar sem blueprint vira “ambiente frágil”.

🛠️ Troubleshooting por sintomas

diagnóstico rápido
SintomaVerifique primeiro
VM “lenta” aleatoriamente latência de storage (p95), CPU ready/steal, congestionamento de rede, snapshots longos
Travadas em operações de disco fila/queue depth, saturação do datastore, RAID degradado, link iSCSI/NFS, multipath
Host instável após crescimento capacidade (RAM), overcommit, swap, logs de hardware, firmware, temperatura
Falhas em live migration rede dedicada, MTU, compatibilidade CPU, storage compartilhado, permissões
Backup impactando produção janela, throttling, rede/IO separados, snapshots temporários, compressão/encriptação
Rede das VMs instável uplinks, drops, VLAN tagging, loops, MTU mismatch, offloads/driver vNIC
Sequência prática: (1) storage p95 → (2) CPU ready/steal → (3) rede (drops) → (4) memória (swap) → (5) logs.
Fluxo mental (rápido)
- Está lento: é CPU, RAM, DISCO ou REDE?
- Qual métrica saturou primeiro?
- Onde está o p95/p99 fora do normal?
- Qual mudança ocorreu antes do problema?