O Systemd terá suporte para inicialização a partir de imagens remotas

sistema

Poucos dias atrás, Poesia de Lennart (criador e desenvolvedor do systemd) eu apresento uma nova proposta para o administrador do sistema systemd, com a intenção de melhorar a flexibilidade e a inicialização no Linux.

Sobre a proposta, menciona-se que ela visa permitir um sistema pode inicializar diretamente de uma imagem do sistema de arquivos raiz baixado de um host externo via HTTP. O objetivo é fornecer essa funcionalidade para ajudar a estender os recursos atuais do systemd, facilitando cenários como testes de sistemas imutáveis ​​e implantações rápidas em ambientes de rede.

O que é inicialização remota no systemd?

A mudança proposta Ele é baseado na extensão do systemd para que, na fase inicial de arranque, seja capaz de:

  • Baixe uma imagem de disco via HTTP.
  • Descompacte a imagem obtida.
  • Associe-o a um dispositivo de bloco no modo loopback.
  • Monte o dispositivo de bloco em /sysroot.
  • Continue inicializando o sistema a partir dessa imagem.

Estado atual de desenvolvimento

Atualmente, O systemd em sua versão 257 já incorpora suporte para baixar imagens de disco no momento da inicialização usando o módulo systemd-import-generator. No entanto, funcionalidade ainda completo Está em fase de protótipo funcional, e ainda não consegue completar o ciclo de inicialização completo.

Postagem por @pid_eins@mastodon.social
Ver no Mastodon

Entre os planos futuros, Está contemplado expandir compatibilidade para que essa funcionalidade possa funcionar em conjunto com as imagens universais do kernel Unified Kernel Image (UKI). Essas imagens combinam, em um único arquivo:

  • Um stub de inicialização UEFI.
  • Uma imagem do kernel Linux.
  • Um ambiente de sistema initrd pré-carregado na memória.
    Implementação e fluxo de trabalho

A proposta sugere que a URL da imagem do sistema seja gerada automaticamente a partir da URL especificada na configuração de inicialização HTTP UEFI, fazendo com que o driver initrd UKI procure automaticamente a imagem do sistema.

Além do protocolo HTTP, O suporte NVMe sobre TCP está planejado, uma tecnologia que permite acesso remoto a unidades NVMe por meio de redes, usando o protocolo NVM Express over Fabrics sobre TCP. Esse facilitaria ambientes onde alta velocidade é necessária acesso aos dados sem depender exclusivamente de discos locais.

Isso estende o systemd-import-generator não apenas para baixar uma imagem de disco na inicialização, mas também para anexá-la a um dispositivo de loopback, para que possamos inicializar a partir dele.

Já temos a maioria das peças no lugar, estamos apenas polindo algumas coisas para fazer esta rodada…

Este é um projeto em andamento, pois falta documentação e quero aperfeiçoá-lo um pouco mais, mas funciona muito bem. O objetivo final é fornecer uma solução completa para que também possamos executar inicialização UEFI http para ukis.

Este novo método de inicialização poderia simplificar e melhorar vários cenárioss, como testar sistemas operacionais imutáveis ​​em hardware real. Um desenvolvedor pode gerar uma imagem de seu sistema usando mkosi e compartilhá-la rapidamente por HTTP com o comando «mkosi -f serve». Na máquina de teste, seria suficiente habilitar a inicialização HTTP no EFI e fornecer a URL da imagem.

Depois que o sistema estiver configurado para inicializar a partir de uma imagem remota, o processo é simples: Basta reiniciar o computador e ele será carregado automaticamente.e a imagem padrão do kernel UKI. De lá, o kernel irá baixar a imagem do sistema de arquivos raiz previamente preparado pelo desenvolvedor e prosseguirá com a inicialização normal.

Um aspecto fundamental desta proposta é que A inicialização HTTP no EFI permanece ativa até ser desabilitada manualmente. Isso significa que, Em cada reinicialização subsequente, o sistema baixará e executará a versão mais recente disponível da imagem remota, permitindo testes contínuos sem intervenção adicional.

Como todo o processo ocorre na memória e não requer modificação de discos locais, essa técnica representa uma maneira segura e eficiente de avaliar diferentes versões de um sistema sem risco de afetar a configuração ou os dados armazenados na máquina.

Finalmente, Se você estiver interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir