Apresentado kmorph para recuperação rápida após falhas ou atualizações do núcleo Linux

Os desenvolvedores do projeto Multikernel, que permite executar várias instâncias independentes do núcleo em um único computador físico sem hipervisor e virtualização, apresentaram a ferramenta kmorph, que implementa meios para a rápida recuperação após uma falha do núcleo Linux ou para a substituição do núcleo em modo Live sem reinicialização completa. O projeto é desenvolvido por Cong Wang, que mantém a subsistema de controle de tráfego (TC, Traffic Control) no núcleo. O método de reinicialização rápida é baseado no pré-carregamento na memória de um núcleo de backup, que substitui o núcleo de trabalho principal em caso de falha ou quando é necessário atualizar para uma nova versão do núcleo.

A abordagem proposta permite evitar uma reinicialização completa e retomar o funcionamento quase instantaneamente, minimizando o tempo de inatividade. Atualmente, em caso de falha do núcleo, a reinicialização completa de grandes servidores leva vários minutos devido aos longos processos de inicialização de hardware, carregamento do ambiente do sistema e salvamento do despejo de memória do núcleo através do mecanismo kdump. Essencialmente, ao usar kdump, são executadas duas reinicializações do núcleo — inicialmente, um núcleo separado é carregado através do kexec para salvar o despejo de memória, após o qual o núcleo de trabalho é carregado e os serviços do sistema são iniciados.

No caso de aplicação do kmorph em associação a um núcleo específico da CPU, um núcleo Linux de backup e um ambiente de sistema mínimo são pré-carregados na memória, que monitora o estado do núcleo principal. Em caso de travamento ou entrada em estado de pânico do núcleo principal, o ambiente de backup assume o controle, salva o despejo de memória do núcleo com falha, transfere para si os núcleos de processador, a memória, os dispositivos, a configuração de rede e o sistema de arquivos.

A troca é coordenada por meio de dois programas: kmorph — executado no ambiente ativo, forma o conteúdo do ambiente de reserva e sincroniza o estado da rede nele; kmorphd — executado no ambiente de reserva e monitora o estado do ambiente ativo. Além da troca em caso de falha, é possível usar kmorph para atualizar o kernel sem a reinicialização tradicional. Para acelerar a recuperação no ambiente de reserva, além do kernel e de um conjunto mínimo de componentes do sistema em modo de espera, serviços típicos, como o nginx, podem ser inicializados. Nesse caso, no momento da ativação do ambiente de reserva, o serviço nginx já estará carregado na memória e começará a processar solicitações assim que a troca para o novo ambiente da interface de rede, ativação da configuração de rede e mudança do sistema de arquivos raiz ocorram.

Nos testes realizados, o servidor com nginx, por meio do kmorph, retoma a operação cerca de 2 segundos após a falha do kernel, mas no futuro pretendem alcançar uma troca instantânea imperceptível para os clientes conectados. Atualmente, o kmorph suporta as arquiteturas x86_64 e ARM64, e também está em andamento o suporte para RISC-V. A integração do kmorph nas distribuições Linux é realizada de maneira semelhante ao suporte do kdump, através das ferramentas padrão dracut, initramfs-tools, kernel-install e do serviço systemd.

O núcleo já inclui os mecanismos Kexec HandOver (KHO) e Live Update Orchestrator (LUO), que permitem iniciar um novo kernel a partir de um antigo sem perda do estado do sistema e sem interromper a operação dos dispositivos. Mas eles não podem ser aplicados em caso de falha do kernel, pois exigem a preservação do estado do kernel em execução. KHO e LUO também ficam atrás do kmorph em termos de velocidade de troca, pois no kmorph o novo kernel já está na memória, enquanto KHO e LUO exigem uma reinicialização do kernel através do kexec.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster