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
  • Tester les opérations de lecture et d'écriture

Créer un système de fichiers Lustre

La procédure suivante explique comment créer un stockage de fichiers OCI avec le 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 de 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 la description du système de fichiers.
    • Compartiment : acceptez le compartiment par défaut ou sélectionnez la liste de modification des compartiments.
    • Domaine de disponibilité : acceptez le domaine de disponibilité par défaut ou sélectionnez la liste dans laquelle modifier les domaines de disponibilité.
    • Balises : : si vous disposez des droits d'accès nécessaires pour créer une ressource, vous disposez également de ces derniers. Pour appliquer une balise définie, vous devez disposer de droits d'accès permettant d'utiliser l'espace de noms de balise. Si vous n'êtes pas sûr d'appliquer des balises, ignorez cette option ou demandez à un administrateur. Vous pouvez appliquer des balises ultérieurement.
    • Groupe de placement de cluster : nous vous recommandons de sélectionner un groupe de placement de cluster pour placer physiquement les systèmes de fichiers et les autres ressources dans un domaine de disponibilité afin de garantir une faible latence. Le groupe de placement de cluster ne peut pas être modifié après la création du système de fichiers.
    • Niveau de performances : sélectionnez le niveau de performances du système de fichiers. Le niveau de performances contrôle le débit du système de fichiers. Le débit est indiqué par téraoctet (To) de stockage provisionné. Le niveau de performances 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 performances et de la capacité.

    • Fonctions 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 la liste des réseaux cloud virtuels et des sous-réseaux du compartiment dans lequel vous travaillez. Modifiez les compartiments pour sélectionner un VCN ou un sous-réseau à partir d'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-1023.

    • Utiliser les groupes de sécurité réseau pour contrôler le trafic : activez cette option et sélectionnez un groupe de sécurité réseau pour agir en tant que pare-feu virtuel pour le système de fichiers. Sélectionnez + Un autre groupe de sécurité réseau pour ajouter le système de fichiers à cinq groupes de sécurité réseau au maximum.
    • Courbure racine : ces paramètres contrôlent si l'ID utilisateur (UID) et l'ID de groupe (GID) des clients accédant au système de fichiers sont mis à nouveau en correspondance avec l'UID de squash et le GID de squash.

      Squash : sélectionnez Aucun ou Root. La valeur par défaut est Aucun. Aucune mise en correspondance n'est donc effectuée par défaut.

      UID de squash : si Squash est défini sur Root, l'utilisateur root (UID 0) est remappé à cette valeur. La valeur par défaut est 65534.

      GID de séquence : si Squash est défini sur Root, l'utilisateur du groupe root (GID 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 client en tant qu'adresse IP ou plage valide. Par exemple, 10.0.2.4 ou 10.0.[2-10].[1-255]. Sélectionnez + Autre adresse client pour ajouter jusqu'à 10 exceptions.
    • Clé de cryptage : par défaut, Oracle gère les clés qui chiffrent un système de fichiers. Si vous souhaitez un meilleur contrôle sur le cycle de vie de la clé et son utilisation, vous pouvez sélectionner votre propre clé de cryptage Vault
Une fois la création lancée, le provisionnement des ressources back-end prend plusieurs minutes. La durée varie en fonction du niveau de performances et de la taille du système de fichiers.

Montage de 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. A 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 mise en réseau RDMA gérés par l'agent Oracle Cloud, l'ajout de l'interface LNet injecte une règle qui empêche la communication de l'hôte via l'interface par défaut (première interface de l'hôte). Cela peut entraîner 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 l'adresse IP locale ne fonctionnera pas. Pour résoudre ce problème, utilisez la solution de contournement suivante pour empêcher LNet d'ajouter des routages et des règles supplémentaires.

    Effectuez cette opération avant d'ajouter l'interface LNet. Si l'interface LNet n'est pas ajoutée explicitement, appliquez-la 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 démarrer correctement. Le déchargement des modules ne fonctionnera pas si un système de fichiers est déjà monté. Si lustre_rmmod ne décharge pas tous les modules, réinitialisez le système pour redémarrer.
    [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. Cette procédure est expliquée 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 (mise en réseau Lustre) en raison de plusieurs interfaces ou d'autres situations de mise en réseau sur l'hôte. Dans ce cas, vous devez configurer manuellement LNet.

    L'erreur se présente comme suit :

    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 (Lustre Networking)

Les étapes suivantes ne sont requises que si les étapes de montage du système de fichiers échouent et que l'interface correcte de 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 du système et trouver une interface plus appropriée pour atteindre le système de fichiers Lustre. Ce sera 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 se présente comme suit :
    ...
    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 se présente comme suit :
    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   <<<<<<<<

Montage du système de fichiers

  1. Exécutez les commandes :
    [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 se présente comme suit :
    Filesystem Size Used Avail Use% Mounted on
    10.0.3.8@tcp:/lustrefs 31T 17M 30T 1% /mnt/mymountpoint
  2. Exécutez la commande :
    [root@lustre-ol8-client opc]# lfs df -h /mnt/mymountpoint
    La sortie se présente comme suit :
    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 with Lustre vous aident à mesurer les performances, la capacité et l'état d'un système de fichiers. Les données de mesure permettent de diagnostiquer et de résoudre les problèmes.

Nous allons tester les opérations de lecture et d'écriture en exécutant une commande dd, puis en accédant à la page Mesures pour visualiser 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 se présente comme suit :
    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 visualiser un ensemble par défaut de graphiques de mesures dans la console, cliquez sur le menu de navigation, puis sur Stockage.
  3. Sous Lustre, sélectionnez Systèmes de fichiers avec Lustre.
  4. Sélectionnez le système de fichiers pour lequel vous souhaitez visualiser les mesures.
  5. Sur la page de détails, sous Ressources, sélectionnez Mesures.
La page Mesures affiche un ensemble de graphiques par défaut pour le système de fichiers en cours. 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 différentes d'opérations de métadonnées disponibles, telles que getattr, setattr, mknod, link, unlink, mkdir, etc.
  • FileSystemCapacity : capacité totale et disponible du système de fichiers.
  • FileSystemInodeCapacity : nombre total d'inodes disponibles du système de fichiers.

Ces mesures peuvent être explorées à l'aide de l'espace de noms OCI Metric Explorer oci_lustrefilesystem, comme indiqué 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 requêtes en langage de requête de surveillance (MQL) dans l'explorateur de mesures ou dans d'autres tableaux de bord tels que Grafana.

Pour obtenir le débit de lecture :

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

Remarques :

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