- Início
- Virtualização Aninhada (Nested Virtualization)
Virtualização Aninhada (Nested Virtualization)
Regiões
Este recurso está disponível nas seguintes regiões:A virtualização aninhada permite a execução de máquinas virtuais (VMs) dentro de uma VM já provisionada na plataforma.
Esse recurso é suportado para workloads baseados em Linux, utilizando hipervisores compatíveis com KVM.
Para instâncias Windows Server, a execução de hipervisores baseados em Hyper-V não é suportada.
Visão geral
Instâncias Linux suportam virtualização aninhada para execução de hipervisores baseados em KVM.
Esse modelo permite:
- Criação de ambientes de virtualização dentro da VM
- Execução de VMs adicionais (nível L2)
- Testes de sistemas operacionais e cenários isolados
Pré-requisitos
- Instância Linux provisionada (Ubuntu 22.04 ou superior recomendado)
- Acesso via SSH com privilégios administrativos
Passo a Passo
1. Provisionar a VM na plataforma
Crie uma VM Linux normalmente via:
- Console
- CLI (mgc)
- Terraform
Exemplo via CLI (ajuste para seu ambiente):
mgc virtual-machines instances create \
--name="vm-nested-linux" \
--machine-type.name="BV4-8-40" \
--image.name="cloud-ubuntu-22.04 LTS" \
--ssh-key-name="sua-chave-ssh" \
--availability-zone="br-se1-a"
Requisitos importantes da VM:
| Requisito | Valor mínimo |
|---|---|
| Sistema operacional | Linux (Ubuntu recomendado) |
| vCPU | ≥ 2 |
| RAM | ≥ 4 GB |
| Imagem | Imagem oficial da plataforma |
| Acesso | SSH configurado |
2. Acessar a VM
ssh ubuntu@<ip-publico>
3. Validar suporte à virtualização
egrep -c '(vmx|svm)' /proc/cpuinfo
Um valor maior que 0 indica suporte à virtualização.
Em seguida, execute:
kvm-ok
Caso o comando kvm-ok não esteja disponível, instale o pacote necessário:
sudo apt install cpu-checker
Saída esperada:
INFO: /dev/kvm exists
KVM acceleration can be used
4. Validar módulo de virtualização aninhada
cat /sys/module/kvm_intel/parameters/nested
Resultado esperado: Y
5. Instalar QEMU e ferramentas de virtualização
sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients virtinst cpu-checker cloud-image-utils
6. Verificar status do serviço libvirt
sudo systemctl enable --now libvirtd
virsh list --all
Resultado esperado:
Id Name State
--------------------
Uma saída vazia indica que o serviço está ativo, sem VMs criadas ainda.
7. Criar uma VM interna (L2)
O comando abaixo cria uma máquina virtual dentro da VM Linux utilizando uma imagem ISO remota do Ubuntu:
sudo virt-install \
--connect qemu:///system \
--name ubuntu-l2-test \
--memory 2048 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/ubuntu-l2-test.qcow2,size=20 \
--os-variant ubuntu18.04 \
--cdrom https://releases.ubuntu.com/18.04/ubuntu-18.04.6-desktop-amd64.iso \
--network network=default \
--graphics vnc,listen=0.0.0.0
8. Validar execução da VM interna
sudo virsh list --all
Resultado esperado:
Id Name State
---------------------------------
1 ubuntu-l2-test running
✔️ A VM interna está em execução dentro da sua instância Linux.
Limitações
- Virtualização aninhada é suportada apenas para workloads Linux baseados em KVM
- Hyper-V não é suportado em instâncias Windows Server