Implantar o Lustre File System

A implantação do OCI File Storage com o Lustre compreende as seguintes etapas:
  • Criando um Armazenamento de Arquivos do OCI com o sistema de arquivos Lustre
  • Montando o sistema de arquivos
  • Configurando LNet
  • Testando operações de leitura e gravação

Criar Sistema de Arquivos Lustre

As etapas a seguir mostram como criar um Armazenamento de Arquivos do OCI com o sistema de arquivos Lustre.

  1. No menu de navegação da Console do OCI, clique em Armazenamento e, em seguida, clique em Sistemas de arquivos luminosos.
  2. Clique em Criar.
  3. Configure os detalhes do sistema de arquivos Lustre:
    • Nome do sistema de arquivos: Aceite o nome padrão ou digite um nome amigável para o sistema de arquivos.
    • Nome da montagem: aceite o padrão ou digite um nome amigável para uso ao montar o sistema de arquivos.
    • Descrição do sistema de arquivos: (Opcional) Informe uma descrição para o sistema de arquivos.
    • Compartimento: Aceite o compartimento padrão ou selecione a lista para alterar compartimentos.
    • Domínio de disponibilidade: Aceite o domínio de disponibilidade padrão ou selecione a lista para alterar os domínios de disponibilidade.
    • Tags: Se você tiver permissões para criar um recurso, também terá permissões para aplicar tags de formato livre a esse recurso. Para aplicar uma tag definida, você deverá ter permissões para usar o namespace de tag. Se você não tiver certeza se deseja aplicar tags, ignore esta opção ou pergunte a um administrador. Você pode aplicar tags posteriormente.
    • Grupo de posicionamento de cluster: Recomendamos selecionar um grupo de posicionamento de cluster para colocar fisicamente sistemas de arquivos e outros recursos juntos em um domínio de disponibilidade para garantir baixa latência. O grupo de posicionamento do cluster não pode ser alterado após a criação do sistema de arquivos.
    • Camada de desempenho: Selecione a camada de desempenho do sistema de arquivos. A camada de desempenho controla o throughput do sistema de arquivos. O throughput é especificado por terabyte (TB) de armazenamento provisionado. A camada de desempenho não pode ser alterada após a criação do sistema de arquivos.
    • Capacidade: Selecione a capacidade de armazenamento do sistema de arquivos. Se você selecionar uma capacidade maior que o limite de serviço, poderá ser solicitado que solicite um aumento.

      O throughput agregado do sistema de arquivos é calculado com base na camada de desempenho e na capacidade.

    • Rede: Selecione a VCN e a sub-rede na qual montar o sistema de arquivos. Por padrão, a Console mostra uma lista de VCNs e sub-redes no compartimento em que você está trabalhando. Altere os compartimentos para selecionar uma VCN ou sub-rede de outro compartimento.

      A sub-rede selecionada será a sub-rede usada para implantar os servidores Lustre. Certifique-se de que essa sub-rede permita comunicação de/para a porta 988 do servidor Lustre com a porta do cliente entre a porta 512-1023.

    • Usar grupos de segurança de rede para controlar o tráfego: Ative essa opção e selecione um grupo de segurança de rede (NSG) para atuar como um firewall virtual para o sistema de arquivos. Selecione + Outro grupo de segurança de rede para adicionar o sistema de arquivos a até cinco NSGs.
    • Squash de raiz: essas definições controlam se os clientes que acessam o sistema de arquivos têm seus IDs de usuário (UID) e IDs de grupo (GID) remapados para Squash de UID e Squash de GID.

      Squash: Selecione Nenhum ou Raiz. O valor padrão é Nenhum, portanto, nenhum remapeamento é feito por padrão.

      Squash UID: Se Squash estiver definido como Raiz, o usuário raiz (UID 0) será remapeado para esse valor. O valor padrão é 65534.

      Squash GID: Se Squash for definido como Raiz, o usuário do grupo raiz (GID 0) será remapeado para esse valor. O valor padrão é 65534.

    • Exceções de squash raiz: para excluir clientes específicos da configuração de squash raiz, informe o Endereço do cliente como um endereço IP ou intervalo válido. Por exemplo, 10.0.2.4 ou 10.0.[2-10].[1-255]. Selecione + Outro endereço de cliente para adicionar até 10 exceções.
    • Chave de criptografia: Por padrão, a Oracle gerencia as chaves que criptografam um sistema de arquivos. Se você quiser maior controle sobre o ciclo de vida da chave e como ela é usada, poderá selecionar sua própria chave de criptografia do Vault
Após o início da criação, levará muitos minutos para concluir o provisionamento dos recursos de back-end. O tempo varia dependendo da camada de desempenho e do tamanho do sistema de arquivos.

Montar o Lustre File System

  1. Navegue até os detalhes do sistema de arquivos Lustre e localize o comando de montagem na Console.
  2. Em um cliente Linux com módulos cliente Lustre instalados, você pode montar o sistema de arquivos. Neste cliente, os módulos Lustre DKMS são instalados.
    [root@lustre-ol8-client ~]# rpm -qa | grep lustre
    lustre-client-2.15.5_oci1-1.el8.x86_64
    lustre-client-dkms-2.15.5_oci1-1.el8.noarch

    Em alguns ambientes com hosts de GPU com rede RDMA gerenciada pelo Oracle Cloud Agent, a adição da interface LNet injeta uma regra que impede a comunicação do host por meio da interface padrão (primeira interface do host). Isso pode causar problemas em ambientes que usam IP local para comunicação interna, especialmente em ambientes OKE. O sistema imediato é que o ping para IP local não funcionará. Para corrigir isso, use a seguinte solução alternativa para desativar LNet de adicionar rotas e regras adicionais.

    Faça isso antes de adicionar a interface LNet. Se a interface LNet não estiver sendo adicionada explicitamente, aplique isso antes de montar o sistema de arquivos.

    echo 'options ksocklnd skip_mr_route_setup=1' >/etc/modprobe.d/lnet.conf && rmmod lnet; modprobe -v lnet
  3. Descarregue os módulos Lustre (se já estiver carregado) para obter uma inicialização limpa. O descarregamento dos módulos não funcionará se houver um sistema de arquivos já montado. Se lustre_rmmod não descarregar todos os módulos, reinicialize o sistema para obter uma nova inicialização.
    [root@lustre-ol8-client ~]# lustre_rmmod 
  4. Monte o sistema de arquivos Lustre. Se for necessário configurar uma interface específica para o Lustre, use a configuração lnetctl antes de tentar carregar módulos. Isso será explicado na próxima seção.
    [root@lustre-ol8-client ~]# modprobe lustre
    [root@lustre-ol8-client ~]# mount -t lustre 10.0.3.8@tcp:/lustrefs /mnt/mymountpoint

    Se a montagem falhar com a mensagem de erro No such file or directory. Is the MGS specification correct?, é provável que ela não consiga configurar automaticamente LNet (rede Lustre) em decorrência de várias interfaces ou outras situações de rede no host. Quando isso acontece, você precisa configurar manualmente LNet.

    O erro é semelhante a:

    mount.lustre: mount 10.0.3.8@tcp:/lustrefs at /mnt/mymountpoint failed: No such file or directory
    Is the MGS specification correct?
    Is the filesystem name correct?
    If upgrading, is the copied client log valid? (see upgrade docs)

Configurar LNet (Lustre Networking)

As etapas a seguir só serão necessárias se as etapas para montar o sistema de arquivos falharem e a interface correta do Lustre não for exibida em lnetctl net show. Se lnetctl net show exibir a interface correta do Lustre, essas etapas não serão necessárias.
  1. Localize o nome da interface. É possível que haja várias interfaces no sistema. Escolha a interface apropriada próxima ao sistema de arquivos Lustre. Use o comando ip route para exibir as redes no sistema e encontre uma interface mais apropriada para acessar o sistema de arquivos Lustre. Essa será a interface na qual ocorrerá a maior transferência de dados. Aqui, a interface usada é enp0s5.
    [root@lustre-ol8-client ~]# ip addr
    A saída é semelhante a:
    ...
    2: enp0s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UP group default qlen 1000
        link/ether 02:00:17:12:91:e9 brd ff:ff:ff:ff:ff:ff
        inet 10.0.3.42/24 brd 10.0.3.255 scope global dynamic enp0s5
           valid_lft 84865sec preferred_lft 84865sec
        inet6 fe80::17ff:fe12:91e9/64 scope link
           valid_lft forever preferred_lft forever
  2. Execute os comandos a seguir:
    [root@lustre-ol8-client opc]# modprobe lnet
    [root@lustre-ol8-client opc]# lnetctl lnet configure
    [root@lustre-ol8-client opc]# lnetctl net add --net tcp --if enp0s5
    [root@lustre-ol8-client opc]# lnetctl net show
    A saída é semelhante a:
    net:
        - net type: lo
          local NI(s):
            - nid: 0@lo
              status: up
        - net type: tcp
          local NI(s):
            - nid: 10.0.3.42@tcp  <<<<<<<<<
              status: up
              interfaces:
                  0: enp0s5   <<<<<<<<

Monte o Sistema de Arquivos

  1. Execute os comandos:
    [root@lustre-ol8-client opc]# mount -t lustre 10.0.3.8@tcp:/lustrefs /mnt/mymountpoint
    [root@lustre-ol8-client opc]# df -h /mnt/mymountpoint
    A saída é semelhante a:
    Filesystem Size Used Avail Use% Mounted on
    10.0.3.8@tcp:/lustrefs 31T 17M 30T 1% /mnt/mymountpoint
  2. Execute o comando:
    [root@lustre-ol8-client opc]# lfs df -h /mnt/mymountpoint
    A saída é semelhante a:
    UUID bytes Used Available Use% Mounted on
    lustrefs-MDT0000_UUID 563.4G 33.8M 513.4G 1% /mnt/mymountpoint[MDT:0]
    lustrefs-MDT0001_UUID 563.4G 33.7M 513.4G 1% /mnt/mymountpoint[MDT:1]
    lustrefs-OST0000_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:0]
    lustrefs-OST0001_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:1]
    lustrefs-OST0002_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:2]
    lustrefs-OST0003_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:3]
    lustrefs-OST0004_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:4]
    lustrefs-OST0005_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:5]
    lustrefs-OST0006_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:6]
    lustrefs-OST0007_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:7]
    lustrefs-OST0008_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:8]
    lustrefs-OST0009_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:9]
    lustrefs-OST000a_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:10]
    lustrefs-OST000b_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:11]
    
    filesystem_summary: 30.9T 16.4M 29.3T 1% /mnt/mymountpoint

Testar Operações de Leitura e Gravação

As métricas do serviço File Storage with Lustre ajudam a medir o desempenho, a capacidade e a integridade de um sistema de arquivos. Você pode usar dados de métricas para diagnosticar e solucionar problemas.

Testaremos a leitura e a gravação executando um comando dd e, em seguida, navegando até a página de métricas para exibir o painel de métricas.

  1. Execute um comando dd semelhante a:
    [root@hpc-client-0 test]# dd if=/dev/zero of=10G_file  bs=1M count=10240 oflag=direct ;sleep 120 ; dd of=/dev/null if=10G_file  bs=1M count=10240 iflag=direct
    A saída é semelhante a:
    10240+0 records in
    10240+0 records out
    10737418240 bytes (11 GB, 10 GiB) copied, 40.6989 s, 264 MB/s
    10240+0 records in
    10240+0 records out
    10737418240 bytes (11 GB, 10 GiB) copied, 39.2326 s, 274 MB/s
    Neste exemplo, temos um tamanho de bloco de 1 MB.
  2. Para exibir um conjunto padrão de gráficos de métricas na Console, clique no menu de navegação e clique em Armazenamento.
  3. Em Lustre, selecione Sistemas de Arquivos com Lustre.
  4. Selecione o sistema de arquivos cujas métricas você deseja exibir.
  5. Na página de detalhes, em Recursos, selecione Métricas.
A página Métricas exibe um conjunto padrão de gráficos para o sistema de arquivos atual. O File Storage com Lustre fornece as seguintes métricas:
  • ReadThroughput: Expresso em bytes lidos por minuto.
  • WriteThroughput: Expresso em bytes lidos por minuto.
  • DataReadOperations: Número de operações de Leitura por minuto.
  • DataWriteOperation: Número de operações de Gravação por minuto.
  • MetadataOperations: Número de operações de Metadados. 14 dimensões disponíveis de operações de metadados diferentes, como getattr, setattr, mknod, link, unlink, mkdir etc.
  • FileSystemCapacity: Capacidade total e disponível do sistema de arquivos.
  • FileSystemInodeCapacity: Inodes totais e disponíveis do sistema de arquivos.

Essas métricas podem ser exploradas usando o namespace oci_lustrefilesystem do OCI Metric Explorer, conforme mostrado na captura de tela abaixo.


Veja a seguir a descrição da lustre-metrics-explorer.png
Descrição da ilustração luxre-metrics-explorer.png

Veja um exemplo de como as consultas na MQL (Monitoring Query Language) podem ser usadas no explorador de métricas ou em outros painéis de controle, como o Grafana.

Para obter o throughput de leitura:

ReadThroughput[1m]{resourceId = "your_filesystem_ocid", targetType = "OST", clientName ="all@all"}.grouping().sum()/60

Observação:

60 é usado porque o intervalo aqui é de 1 minuto. Da mesma forma, você pode usar o MQL para outras métricas.