CRIU - CRIU
Desenvolvedor (s) | Equipe OpenVZ na Virtuozzo |
---|---|
lançamento inicial | 23 de julho de 2012 |
Versão estável | 3,15 (3 de novembro de 2020 [±] | )
Escrito em | C e Assembler |
Sistema operacional | Linux |
Plataforma | x86-64 , ARM , Power ISA , IBM System / 390 |
Modelo | Ponto de verificação de aplicativo |
Licença | GNU GPL v.2 |
Local na rede Internet | criu |
Checkpoint / Restore In Userspace ( CRIU ) (pronuncia -se kree-oo , / kriu / ), é uma ferramenta de software para o sistema operacional Linux . Usando essa ferramenta, é possível congelar um aplicativo em execução (ou parte dele) e marcá-lo para armazenamento persistente como uma coleção de arquivos. Pode-se então usar os arquivos para restaurar e executar o aplicativo a partir do ponto em que foi congelado. A característica distintiva do projeto CRIU é que ele é implementado principalmente no espaço do usuário , ao invés do kernel.
O projeto está atualmente em desenvolvimento ativo, com ciclo de lançamento mensal para lançamentos estáveis.
História
A versão inicial do software CRIU foi apresentada à comunidade de desenvolvedores Linux por Pavel Emelyanov, o líder da equipe do kernel OpenVZ , em 15 de julho de 2011.
Em setembro de 2011, o projeto foi apresentado na Linux Plumbers Conference. Em geral, a maioria dos participantes teve uma visão positiva do projeto, o que é comprovado pelo fato de que vários patches de kernel necessários para a implementação do projeto foram incluídos no kernel da linha principal. Andrew Morton , no entanto, estava um pouco cético:
Uma nota sobre isso: este é um projeto de vários russos loucos para realizar c / r principalmente a partir do espaço do usuário, com vários códigos auxiliares excêntricos adicionados ao kernel onde a necessidade é demonstrada ... No entanto, estou menos confiante do que os desenvolvedores de que isso acabará por funcionar! Então, o que estou pedindo a eles é que envolvam cada parte do novo código dentro de CONFIG_CHECKPOINT_RESTORE. Portanto, se tudo acabar em lágrimas e o projeto como um todo falhar, deve ser uma questão simples percorrer e excluir todos os vestígios dele.
- Andrew Morton,
Usar
A ferramenta CRIU está sendo desenvolvida como parte do projeto OpenVZ, com o objetivo de substituir o ponto de verificação / restauração do kernel. Embora seu foco principal seja o suporte à 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. A ferramenta pode ser usada atualmente em sistemas x86-64 e ARM e oferece suporte aos seguintes recursos:
- 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 na 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 (veja abaixo)
- System V IPC
- Cronômetros
- Sinais
- Terminais
- Linux chamadas de sistema específico-kernel:
inotify
,signalfd
,eventfd
eepoll
Em setembro de 2013, nenhum patch de kernel é necessário porque todas as funcionalidades necessárias já foram incorporadas à linha principal do kernel do Linux desde a versão 3.11 do kernel, que foi lançada em 2 de setembro de 2013.
Migração de conexão TCP
Um dos objetivos iniciais do projeto era oferecer suporte à migração de conexões TCP, sendo o maior desafio suspender e restaurar apenas um lado de uma conexão. Isso era necessário para realizar a migração ao vivo de contêineres (junto com todas as suas conexões de rede ativas) entre servidores físicos, o cenário principal de uso do recurso de ponto de verificação / restauração no OpenVZ. Para lidar com esse problema, um novo recurso, "modo de reparo TCP", foi implementado. O recurso foi incluído na versão 3.5 da linha principal do kernel do Linux e fornece aos usuários meios adicionais para desmontar e reconstruir sockets TCP sem a necessidade de trocar pacotes de rede com o lado oposto da conexão.
Projetos semelhantes
Os projetos a seguir fornecem funcionalidade semelhante ao CRIU:
- OpenVZ
- DMTCP
- BLCR
- Linux C / R
Referências
Leitura adicional
- Sanidhya Kashyap. "Atualização e validação do kernel sem reinicialização" .
- Rami Rosen. "Contêineres Linux e a nuvem do futuro" (PDF) .
- Equipe CRIU. “Comparação com outros projetos CR” .