CRIU, um sistema para salvar e restaurar o estado dos processos no Linux

CRIU (Checkpoint e restauração no espaço do usuário) é uma ferramenta que permite salvar o estado de um ou de um grupo de processos e então retome o trabalho da posição salva, mesmo após reiniciar o sistema ou em outro servidor sem interromper as conexões de rede já estabelecidas.

Com esta ferramenta, é possível congelar um aplicativo em execução (ou parte dela) e colocá-lo em armazenamento persistente como uma coleção de arquivos. Os arquivos podem então ser usados ​​para restaurar e executar o aplicativo de onde ele foi congelado.

A característica distintiva do projeto CRIU é que ele é implementado principalmente no espaço do usuário, ao invés do kernel.

Sobre o CRIU

A ferramenta CRIU está sendo desenvolvido como parte do projeto OpenVZ, com o objetivo de substituir o ponto de verificação / restauração no kernel.

Embora seu foco principal é apoiar a migração de contêineres, permitindo que os usuários verifiquem e restaurem o estado atual dos processos em execução e grupos de processos.

Atualmente, a ferramenta pode ser usada em sistemas x86-64 e ARM y suporta as seguintes funções:

  • Processos: sua hierarquia, PIDs, autenticadores de usuário e grupo (UID, GID, SID, etc.), recursos do sistema, threads e estados em execução e interrompidos
  • Memória de aplicativo: arquivos mapeados de memória e memória compartilhada
  • Abrir arquivos
  • Pipes e FIFOs
  • Soquetes de domínio Unix
  • Soquetes de rede, incluindo soquetes TCP no estado ESTABLISHED
  • Sistema V IPC
  • Timers
  • Sinais
  • Terminais
  • Chamadas de kernel para o sistema específico: inotify, signalfd, eventfdyepoll

Entre áreas de aplicação da tecnologia CRIU, observa-se que o sistema operacional reinicia sem interromper a continuidade dos processos migração ao vivo de contêineres isolados de longa duração, acelerando o lançamento de processos lentos (pode começar a partir do estado salvo após a inicialização), realizando atualizações de kernel sem reiniciar serviços, salvando periodicamente o estado de longa duração de tarefas para retomar o trabalho em caso de uma falha , balancear a carga entre nós agrupados, processos duplicados em outra máquina (ramificar para um sistema remoto), criar instantâneos de aplicativos do usuário durante a operação para análise em outro sistema ou caso você precise cancelar mais ações no programa. CRIU é usado em sistemas de gerenciamento de contêineres, como OpenVZ, LXC / LXD e Docker.

Sobre a nova versão do CRIU 3.15

Atualmente a ferramenta está em sua versão 3.15, que foi lançado recentemente e introduz o serviço criu-image-streamer, que permite a transmissão de imagens de processo diretamente de / para CRIUs durante operações de congelamento / restauração.

  • As imagens podem ser transferidas do armazenamento externo (S3, GCS, etc.) sem buffer no sistema de arquivos local.
  • Suporte para arquitetura MIPS foi adicionado.
  • Tem permissão para congelar processos que não pertencem ao namespace PID existente, seguido pela restauração do namespace PID existente.
  • Mecanismos adicionais foram adicionados para verificar os arquivos.
  • Adicionado suporte para congelar e restaurar estruturas BPF BPF_HASH_OF_MAPS e BPF_ARRAY_OF_MAPS.
  • Adicionado suporte inicial para a segunda versão do cgroup.

Como instalar o CRIU no Linux?

Os interessados ​​em instalar esta ferramenta devem saber que ela está disponível nos canais oficiais da maioria das distribuições Linux.

Portanto, para instalar a ferramenta basta abrir um terminal e com a ajuda de seu gerenciador de pacotes procurar a ferramenta ou usar um dos seguintes comandos que compartilhamos.

Para o caso de quem é Usuários Debian, Ubuntu e derivados destes dois:

sudo apt install criu

Enquanto para aqueles que são usuários de Arch Linux e quaisquer derivados dele:

sudo pacman -S criu

No caso de quem é usuário de abre uso:

sudo zypper install criu

Finalmente para quem deseja compilar a ferramenta eles podem fazer isso digitando:

git clone https://github.com/checkpoint-restore/criu.git
cd criu
make clean
make
make install
sudo criu check
sudo criu check --all

Se você quiser saber mais sobre isso sobre esta ferramenta, você pode verificar os detalhes no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.