Ir para o conteúdo

Forkd: microVMs compartilhando memória para sandboxes rápidas

O aumento do uso de agentes de IA demanda ambientes de execução isolados e seguros. Contudo, a inicialização lenta de microVMs frios pode tornar essa abordagem impraticável para cenários que exigem escalabilidade rápida. O projeto forkd propõe uma técnica inspirada no fork de processos para reduzir essa latência.

Abordagem do forkd

O forkd parte do princípio de que iniciar uma VM do zero é caro devido ao tempo de boot e à carga de hipervisor. Em vez disso, ele mantém um snapshot de uma microVM já aquecida (pre‑warmed) e, ao precisar de uma nova sandbox, cria uma filha que compartilha a memória do pai até que ocorra uma operação de gravação. Esse comportamento é análogo ao fork de processos no Linux, mas preserva o isolamento de hardware fornecido pelo KVM.

Observacao

O snapshot usado como base deve ser compatível com a carga de trabalho esperada; alterações no estado inicial afetam todas as filhas até a primeira escrita.

Como funciona o copy‑on‑write em microVMs

Quando uma VM filha é criada, suas páginas de memória são mapeadas apenas para leitura apontando para as mesmas páginas do pai. Sempre que um processo dentro da filha tenta escrever em uma página, o hipervisor intercepta a tentativa, copia a página para um novo quadro físico e permite a gravação — esse é o mecanismo de copy‑on‑write (CoW). Como o KVM já oferece suporte a páginas compartilhadas e a proteção de memória, o overhead adicional é mínimo, limitando‑se principalmente ao custo de copiar as páginas realmente modificadas.

Dica

Para cargas de trabalho que gravam pouca memória durante a inicialização (por exemplo, carregamento de modelos de IA), a maior parte da memória permanece compartilhada, resultando em tempos de démarque muito baixos.

Benefícios e trade‑offs

  • Latência reduzida: 100 sandboxes KVM isoladas podem estar prontas em ~100 ms.
  • Isolamento de hardware: Cada filha continua a ser uma VM independente, protegida pelas características de virtualização do processador.
  • Aproveitamento de recursos: Memória compartilhada diminui o consumo de RAM até que ocorram escritas.
  • Dependência de snapshot: É necessário manter e atualizar periodicamente o snapshot quente.
  • Pressão de memória: Se muitas filhas gravarem intensamente, o benefício do CoW pode desaparecer.
  • Complexidade operacional: Gerenciar snapshots e garantir sua consistência adiciona etapas ao pipeline de Deploy.

Atencao

Apesar do isolamento de hardware, vulnerabilidades de hipervisor ainda podem afetar todas as filhas se o compartilhamento de memória for explorado; portanto, mantenha o hipervisor e o firmware atualizados.

Pontos-chave

-

Ferramentas e Tecnologias

  • [[KVM]]
  • [[QEMU]]
  • [[forkd]]
  • [[GitHub]]

Nota pessoal

https://x.com/i/status/2062755543811588448

Tags

microvm #sandbox #fork #kvm #ai-agent