Déployer Lustre File System

Le déploiement d'OCI File Storage avec Lustre comprend les étapes suivantes :
  • Création d'un stockage de fichiers OCI avec un système de fichiers Lustre
  • Montage du système de fichiers
  • Configuration de LNet
  • Test des opérations de lecture et d'écriture

Créer un système de fichiers Lustre

La procédure suivante explique comment créer un service de stockage de fichiers OCI avec un système de fichiers Lustre.

  1. Dans le menu de navigation de la console OCI, cliquez sur Stockage, puis sur Systèmes de fichiers Lustre.
  2. Cliquez sur Créer.
  3. Configurez les détails du système de fichiers Lustre :
    • Nom du système de fichiers : Acceptez le nom par défaut ou entrez un nom convivial pour le système de fichiers.
    • Nom du montage : Acceptez la valeur par défaut ou entrez un nom convivial à utiliser lors du montage du système de fichiers.
    • Description du système de fichiers : (Facultatif) Entrez une description pour le système de fichiers.
    • Compartiment : Acceptez le compartiment par défaut ou sélectionnez la liste pour modifier les compartiments.
    • Domaine de disponibilité : Acceptez le domaine de disponibilité par défaut ou sélectionnez la liste pour modifier les domaines de disponibilité.
    • Marqueurs : Si vous êtes autorisé à créer une ressource, vous disposez également des autorisations nécessaires pour appliquer des marqueurs à structure libre à cette ressource. Pour appliquer un marqueur défini, vous devez être autorisé à utiliser l'espace de noms de marqueur. Si vous ne savez pas si vous devez appliquer des marqueurs, ignorez cette option ou demandez à un administrateur. Vous pouvez appliquer des marqueurs plus tard.
    • Groupe de positionnement de grappe : Nous vous recommandons de sélectionner un groupe de positionnement de grappe pour placer physiquement les systèmes de fichiers et les autres ressources ensemble dans un domaine de disponibilité afin d'assurer une faible latence. Le groupe de positionnement de grappe ne peut pas être modifié après la création du système de fichiers.
    • Niveau de performance : Sélectionnez le niveau de performance pour le système de fichiers. Le niveau de performance contrôle le débit du système de fichiers. Le débit est spécifié par téraoctet (To) de stockage provisionné. Le niveau de performance ne peut pas être modifié après la création du système de fichiers.
    • Capacité : Sélectionnez la capacité de stockage du système de fichiers. Si vous sélectionnez une capacité supérieure à la limite de service, vous pouvez être invité à demander une augmentation.

      Le débit agrégé du système de fichiers est calculé à partir du niveau de performance et de la capacité.

    • Service de réseau : Sélectionnez le VCN et le sous-réseau dans lesquels monter le système de fichiers. Par défaut, la console affiche une liste des réseaux en nuage virtuel et des sous-réseaux du compartiment dans lequel vous travaillez. Modifiez les compartiments pour sélectionner un VCN ou un sous-réseau dans un autre compartiment.

      Le sous-réseau sélectionné sera le sous-réseau utilisé pour déployer les serveurs Lustre. Assurez-vous que ce sous-réseau permet la communication vers et depuis le port côté serveur Lustre 988 avec le port côté client entre le port 512 et 1023.

    • Utiliser des groupes de sécurité de réseau pour contrôler le trafic : Activez cette option et sélectionnez un groupe de sécurité de réseau pour agir en tant que pare-feu virtuel pour le système de fichiers. Sélectionnez + Autre groupe de sécurité de réseau pour ajouter le système de fichiers à cinq groupes NSG au maximum.
    • Correction racine : Ces paramètres contrôlent si l'ID utilisateur (UID) et l'ID groupe (GID) des clients qui accèdent au système de fichiers sont remappés à l'UID squash et au GID squash.

      Corbeille : Sélectionnez Aucun ou Racine. La valeur par défaut est Aucun. Aucun remappage n'est donc effectué par défaut.

      UID squash : Si Squash est réglé à Root, l'utilisateur racine (UID 0) est remappé à cette valeur. La valeur par défaut est 65534.

      IDG de file d'attente : Si File d'attente est réglé à Racine, l'utilisateur du groupe racine (IDG 0) est remappé à cette valeur. La valeur par défaut est 65534.

    • Exceptions de squash racine : Pour exclure des clients spécifiques de la configuration de squash racine, entrez leur adresse de client en tant qu'adresse IP ou intervalle valide. Par exemple, 10.0.2.4 ou 10.0.[2-10].[1-255]. Sélectionnez + Autre adresse de client pour ajouter jusqu'à 10 exceptions.
    • Clé de chiffrement : Par défaut, Oracle gère les clés qui chiffrent un système de fichiers. Si vous voulez un meilleur contrôle sur le cycle de vie de la clé et la façon dont elle est utilisée, vous pouvez sélectionner votre propre clé de chiffrement du service de chambre forte
Après le démarrage de la création, le provisionnement des ressources dorsales prendra plusieurs minutes. Le temps varie en fonction du niveau de performance et de la taille du système de fichiers.

Monter Lustre File System

  1. Accédez aux détails du système de fichiers Lustre et recherchez la commande de montage à partir de la console.
  2. À partir d'un client Linux avec des modules client Lustre installés, vous pouvez monter le système de fichiers. Dans ce client, des modules Lustre DKMS sont installés.
    [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

    Dans certains environnements avec des hôtes GPU avec réseau RDMA géré par Oracle Cloud Agent, l'ajout de l'interface LNet injecte une règle qui empêche la communication de l'hôte au moyen de l'interface par défaut (première interface de l'hôte). Cela peut causer des problèmes dans les environnements qui utilisent l'adresse IP locale pour la communication interne, en particulier dans les environnements OKE. Le système immédiat est que le ping vers IP locale ne fonctionnera pas. Pour corriger cela, utilisez la solution de rechange suivante pour désactiver LNet de l'ajout de routes et de règles supplémentaires.

    Faites-le avant d'ajouter l'interface LNet. Si l'interface LNet n'est pas ajoutée explicitement, appliquez-le avant de monter le système de fichiers.

    echo 'options ksocklnd skip_mr_route_setup=1' >/etc/modprobe.d/lnet.conf && rmmod lnet; modprobe -v lnet
  3. Déchargez les modules Lustre (s'ils sont déjà chargés) pour un démarrage net. Le déchargement des modules ne fonctionnera pas s'il existe un système de fichiers déjà monté. Si lustre_rmmod ne décharge pas tous les modules, redémarrez le système pour démarrer à nouveau.
    [root@lustre-ol8-client ~]# lustre_rmmod 
  4. Montez le système de fichiers Lustre. Si une interface spécifique doit être configurée pour Lustre, utilisez la configuration lnetctl avant de tenter de charger des modules. Cela est expliqué dans la section suivante.
    [root@lustre-ol8-client ~]# modprobe lustre
    [root@lustre-ol8-client ~]# mount -t lustre 10.0.3.8@tcp:/lustrefs /mnt/mymountpoint

    Si le montage échoue avec le message d'erreur No such file or directory. Is the MGS specification correct?, il est probable qu'il ne puisse pas configurer automatiquement LNet (réseau Lustre) en raison de plusieurs interfaces ou d'autres situations de réseau dans l'hôte. Lorsque cela se produit, vous devez configurer manuellement LNet.

    L'erreur ressemble à ceci :

    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)

Configurer LNet (réseau Lustre)

Les étapes suivantes ne sont requises que si les étapes de montage du système de fichiers échouent et que l'interface correcte pour Lustre ne s'affiche pas dans lnetctl net show. Si lnetctl net show affiche l'interface correcte pour Lustre, ces étapes ne sont pas requises.
  1. Recherchez le nom de l'interface. Vous pouvez avoir plusieurs interfaces dans le système. Sélectionnez l'interface appropriée proche du système de fichiers Lustre. Utilisez la commande ip route pour afficher les réseaux dans le système et rechercher une interface plus appropriée pour atteindre le système de fichiers Lustre. Il s'agit de l'interface sur laquelle le transfert de données majeur se produit. Ici, l'interface utilisée est enp0s5.
    [root@lustre-ol8-client ~]# ip addr
    La sortie ressemble à :
    ...
    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. Exécutez les commandes suivantes :
    [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
    La sortie ressemble à :
    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   <<<<<<<<

Montez le système de fichiers

  1. Exécutez les commandes suivantes :
    [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
    La sortie ressemble à :
    Filesystem Size Used Avail Use% Mounted on
    10.0.3.8@tcp:/lustrefs 31T 17M 30T 1% /mnt/mymountpoint
  2. Exécutez la commande suivante :
    [root@lustre-ol8-client opc]# lfs df -h /mnt/mymountpoint
    La sortie ressemble à :
    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

Tester les opérations de lecture et d'écriture

Les mesures du service File Storage avec Lustre vous aident à mesurer les performances, la capacité et l'état d'un système de fichiers. Vous pouvez utiliser des données de mesures pour diagnostiquer et résoudre des problèmes.

Nous allons tester la lecture et l'écriture en exécutant une commande dd, puis en naviguant jusqu'à la page de mesures pour voir le tableau de bord des mesures.

  1. Exécutez une commande dd qui ressemble à :
    [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
    La sortie ressemble à :
    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
    Dans cet exemple, nous avons une taille de bloc de 1 Mo.
  2. Pour voir un jeu de graphiques de mesures par défaut dans la console, cliquez sur le menu de navigation et cliquez sur Stockage.
  3. Sous Lustre, sélectionnez Systèmes de fichiers avec lustre.
  4. Sélectionnez le système de fichiers pour lequel vous voulez voir les mesures.
  5. Dans la page de détails, sous Ressources, sélectionnez Mesures.
La page Mesures affiche un jeu de graphiques par défaut pour le système de fichiers courant. File Storage avec Lustre fournit les mesures suivantes :
  • ReadThroughput : Exprimé en octets lus par minute.
  • WriteThroughput : Exprimé en octets lus par minute.
  • DataReadOperations : Nombre d'opérations de lecture par minute.
  • DataWriteOperation : Nombre d'opérations d'écriture par minute.
  • MetadataOperations : Nombre d'opérations de métadonnées. 14 dimensions disponibles d'opérations de métadonnées différentes, telles que getattr, setattr, mknod, link, unlink, mkdir, etc.
  • FileSystemCapacity : Capacité totale et disponible du système de fichiers.
  • FileSystemInodeCapacity : Inodes totaux et disponibles du système de fichiers.

Ces mesures peuvent être explorées à l'aide de l'espace de noms oci_lustrefilesystem de l'explorateur de mesures OCI, comme illustré dans la capture d'écran ci-dessous.


Description de lustre-metrics-explorer.png :
Description de l'illustration lustre-metrics-explorer.png

Voici un exemple d'utilisation des interrogations dans le langage MQL (Monitoring Query Language) dans l'explorateur de mesures ou dans d'autres tableaux de bord tels que Grafana.

Pour obtenir un débit de lecture :

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

Note :

60 est utilisé car l'intervalle est ici de 1 minute. De même, vous pouvez utiliser MQL pour d'autres mesures.