Usando o VirtualBox ou KVM, posso salvar o estado da VM convidada, reinicializar o host e retomar o convidado.
Como posso fazer isso se meu convidado é apenas um contêiner e não uma VM?
Usando o VirtualBox ou KVM, posso salvar o estado da VM convidada, reinicializar o host e retomar o convidado.
Como posso fazer isso se meu convidado é apenas um contêiner e não uma VM?
Isso pode ser feito com o CRIU.
Observe que é mais do que teoricamente pode ser feito, mas se seus contêineres fizerem algo remotamente complexo (como, digamos, executar o systemd que usa namespaces, tem um tty, etc...), provavelmente falhará .
A resposta mais prática é que não pode ser feito com contêineres de uso geral neste estágio. Talvez no futuro, mas é improvável dado o atual ritmo de desenvolvimento do CRIU.
Os comandos específicos diferem dependendo se você estiver usando LXC bruto ou o daemon de gerenciamento LXD.
LXC
Se você estiver usando LXC bruto, você vai querer a
lxc-checkpoint
ferramenta. Há alguns exemplos no wiki do CRIU e nas páginas de manual do lxc-checkpoint .Observe que a entrada do wiki do CRIU recomenda que você configure seus contêineres de uma maneira especial, presumivelmente para tentar evitar os problemas de herança de namespace e dispositivo:
Isso pode acabar sendo um problema se você precisar desses dispositivos em seu contêiner.
Para criar um ponto de verificação:
(nota
-s
para o contêiner após a criação do ponto de verificação)Para restaurar um ponto de verificação:
O ponto de verificação permanecerá até você excluí-lo.
LXD
Se você estiver usando uma instalação instantânea do LXD, primeiro você precisará habilitar o CRIU:
Para parar um contêiner com estado:
Se você mais tarde
lxc start
sem--stateless
, ele deve retomar o estado anterior.Você também pode criar manualmente instantâneos com estado com
lxc snapshot
/lxc restore
.