Suporte dinâmico a módulos do kernel (DKMS) para clientes do Compute Engine

Se a organização usa kernels personalizados ou exige configurações de ambiente específicas, os pacotes padrão do Lustre podem não ser compatíveis.

Nessas situações, o Lustre gerenciado oferece suporte ao Dynamic Kernel Module Support (DKMS). O DKMS é um framework usado para gerenciar módulos do kernel do Linux cujo código-fonte existe fora da árvore principal do kernel. A função principal dele é reconstruir e instalar automaticamente esses módulos quando um novo kernel é instalado, garantindo a compatibilidade sem intervenção manual.

Embora os módulos de kernel pré-criados continuem sendo o caminho de instalação recomendado para a maioria dos usuários, o DKMS oferece uma alternativa para quem usa kernels personalizados do Linux.

Considerações

O uso do suporte dinâmico a módulos do kernel (DKMS) para o cliente gerenciado do Lustre é destinado especificamente a usuários avançados que precisam de compatibilidade com kernels personalizados e estão preparados para gerenciar problemas do lado do cliente por conta própria. Ao contrário dos módulos pré-criados, o DKMS exige a instalação de uma cadeia de ferramentas de compilador completa e cabeçalhos de kernel específicos, o que aumenta a superfície de ataque de segurança e a ocupação de disco do sistema. Além disso, como os módulos são compilados sob demanda, os usuários precisam considerar tempos de inicialização significativamente mais longos da VM do cliente e a possibilidade de falhas de compilação durante as atualizações do kernel.

Plataformas compatíveis

O Managed Lustre oferece suporte a pacotes de cliente DKMS para:

Requisitos

Para usar o DKMS, seu sistema precisa incluir:

  • Todos os pacotes de compilador necessários para compilar um módulo do kernel. Isso é específico da distribuição.

  • Os cabeçalhos do seu kernel específico. Para kernels personalizados, você precisa apontar manualmente o serviço DKMS para o local do cabeçalho.

O DKMS não é compatível com VMs protegidas.

Instalar DKMS e cabeçalhos

Antes de instalar os pacotes DKMS do Managed Lustre, instale o pacote dkms e os cabeçalhos corretos do kernel do Linux para seu sistema. A versão dos cabeçalhos do kernel precisa corresponder exatamente à versão do kernel em execução.

Para kernels padrão do Ubuntu

Se você estiver usando um kernel padrão fornecido pelo Ubuntu, geralmente é possível instalar os pacotes necessários executando:

sudo apt update
sudo apt install dkms linux-headers-$(uname -r)

Para kernels não padrão ou personalizados

Se você estiver usando um kernel personalizado, será responsável por obter e instalar os cabeçalhos de kernel corretos.

O processo de instalação de cabeçalhos para um kernel personalizado varia de acordo com a origem. Talvez seja necessário:

  • Consulte a documentação do fornecedor do SO: ele pode fornecer um pacote ou repositório específico para os cabeçalhos do kernel.
  • Criar da origem: se você compilou o kernel por conta própria, talvez seja necessário criar e instalar os cabeçalhos da árvore de origem do kernel.

Locais de cabeçalho personalizados

O DKMS espera encontrar os cabeçalhos do kernel no diretório /usr/src/linux-headers-$(uname -r). Ele executa o comando uname -r para receber a string da versão do kernel e construir o caminho. Por exemplo: /usr/src/linux-headers-5.15.0-101-generic.

Se os cabeçalhos do kernel não estiverem instalados no local esperado, você precisará apontar manualmente o serviço DKMS para esse local criando um link simbólico do diretório de cabeçalho personalizado para o local em que o DKMS espera encontrá-los.

Por exemplo, se os cabeçalhos estiverem localizados em /opt/custom-kernel/headers/, execute o seguinte comando:

sudo ln -s /opt/custom-kernel/headers/ /usr/src/linux-headers-$(uname -r)

É sua responsabilidade garantir que os cabeçalhos corretos do kernel estejam instalados e acessíveis ao DKMS. Se os cabeçalhos não forem encontrados, o pacote DKMS não vai criar o módulo do kernel Lustre.

Instalar os pacotes DKMS do Lustre gerenciado

Para instalar os pacotes DKMS do Lustre gerenciado, siga estas etapas.

Configurar o acesso ao repositório

Os pacotes de cliente do DKMS estão hospedados no projeto lustre-client-modules-dkms do Artifact Registry.

Para configurar sua VM para instalar do Artifact Registry, siga estas instruções.

Ubuntu 22.04 LTS

  1. Instale as chaves de assinatura do repositório Apt:

    curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg \
      | sudo gpg --dearmor -o /usr/share/keyrings/google-cloud.gpg
    curl -fsSL https://us-apt.pkg.dev/doc/repo-signing-key.gpg \
      | sudo gpg --dearmor -o /usr/share/keyrings/lustre-client.gpg
    
  2. Configure a VM para acessar pacotes do Artifact Registry:

    echo 'deb [signed-by=/usr/share/keyrings/google-cloud.gpg] http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' \
      | sudo tee /etc/apt/sources.list.d/artifact-registry.list
    
  3. Atualize o apt e instale o pacote apt-transport-artifact-registry:

    sudo apt update && sudo apt install apt-transport-artifact-registry
    
  4. Configure o Apt para buscar pacotes do repositório:

    echo "deb [signed-by=/usr/share/keyrings/lustre-client.gpg] ar+https://us-apt.pkg.dev/projects/lustre-client-modules-dkms lustre-client-ubuntu-jammy main" \
      | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
  5. Atualize as fontes do repositório:

    sudo apt update
    

    Se o comando retornar um erro, verifique se a VM do Compute Engine foi criada com o escopo de acesso que permite acesso total a todas as APIs do Cloud. Consulte Como conceder acesso a instâncias do Compute Engine para mais detalhes.

Mais informações sobre esses comandos estão disponíveis na documentação do Artifact Registry: Configurar VMs para instalar pacotes Debian.

Ubuntu 24.04 LTS

  1. Instale as chaves de assinatura do repositório Apt:

    curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg \
      | sudo gpg --dearmor -o /usr/share/keyrings/google-cloud.gpg
    curl -fsSL https://us-apt.pkg.dev/doc/repo-signing-key.gpg \
      | sudo gpg --dearmor -o /usr/share/keyrings/lustre-client.gpg
    
  2. Configure a VM para acessar pacotes do Artifact Registry:

    echo 'deb [signed-by=/usr/share/keyrings/google-cloud.gpg] http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' \
      | sudo tee /etc/apt/sources.list.d/artifact-registry.list
    
  3. Atualize o apt e instale o pacote apt-transport-artifact-registry:

    sudo apt update && sudo apt install apt-transport-artifact-registry
    
  4. Configure o Apt para buscar pacotes do repositório:

    echo "deb [signed-by=/usr/share/keyrings/lustre-client.gpg] ar+https://us-apt.pkg.dev/projects/lustre-client-modules-dkms lustre-client-ubuntu-noble main" \
      | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
  5. Atualize as fontes do repositório:

    sudo apt update
    

    Se o comando retornar um erro, verifique se a VM do Compute Engine foi criada com o escopo de acesso que permite acesso total a todas as APIs do Cloud. Consulte Como conceder acesso a instâncias do Compute Engine para mais detalhes.

Mais informações sobre esses comandos estão disponíveis na documentação do Artifact Registry: Configurar VMs para instalar pacotes Debian.

Instalar os pacotes de cliente do Lustre

Siga as instruções para instalar os pacotes de cliente do Lustre.

Ubuntu 22.04 LTS

Execute os seguintes comandos:

sudo apt install lustre-client-modules-dkms/lustre-client-ubuntu-jammy
sudo apt install lustre-client-utils/lustre-client-ubuntu-jammy

Ubuntu 24.04 LTS

Execute os seguintes comandos:

sudo apt install lustre-client-modules-dkms/lustre-client-ubuntu-noble
sudo apt install lustre-client-utils/lustre-client-ubuntu-noble

Essa etapa compila os pacotes de cliente e pode levar algum tempo.

Montar e acessar sua instância do Managed Lustre

Siga as instruções em Montar uma instância do Managed Lustre.