Skip to main content
BeeGFS on NetApp with E-Series Storage
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Déploiement de clients BeeGFS

Contributeurs

Vous pouvez également utiliser Ansible pour configurer les clients BeeGFS et monter le système de fichiers.

Présentation

Pour accéder aux systèmes de fichiers BeeGFS, vous devez installer et configurer le client BeeGFS sur chaque nœud qui doit monter le système de fichiers. Cette section explique comment effectuer ces tâches à l'aide de la disponible "Rôle Ansible".

Étapes

Créez le fichier d'inventaire client

  1. Si nécessaire, configurez une connexion SSH sans mot de passe depuis le nœud de contrôle Ansible vers chacun des hôtes que vous souhaitez configurer comme clients BeeGFS :

    ssh-copy-id <user>@<HOSTNAME_OR_IP>
  2. Sous host_vars/, Créez un fichier pour chaque client BeeGFS nommé <HOSTNAME>.yml avec le contenu suivant, en renseignant le texte de l'espace réservé contenant les informations correctes pour votre environnement :

    # BeeGFS Client
    ansible_host: <MANAGEMENT_IP>
  3. Vous pouvez également inclure l'une des options suivantes si vous souhaitez utiliser les rôles de la Collection d'hôtes NetApp E-Series pour configurer les interfaces InfiniBand ou Ethernet pour les clients afin de se connecter à des nœuds de fichiers BeeGFS :

    1. Si le type de réseau est "InfiniBand (avec IPoib)":

      eseries_ipoib_interfaces:
      - name: <INTERFACE>  # Example: ib0 or i1b
        address: <IP/SUBNET> # Example: 100.127.100.1/16
      - name: <INTERFACE>  # Additional interfaces as needed.
        address: <IP/SUBNET>
    2. Si le type de réseau est "RDMA over Converged Ethernet (RoCE)":

      eseries_roce_interfaces:
      - name: <INTERFACE>  # Example: eth0.
        address: <IP/SUBNET> # Example: 100.127.100.1/16
      - name: <INTERFACE>  # Additional interfaces as needed.
        address: <IP/SUBNET>
    3. Si le type de réseau est "Ethernet (TCP uniquement, pas de RDMA)":

      eseries_ip_interfaces:
      - name: <INTERFACE>  # Example: eth0.
        address: <IP/SUBNET> # Example: 100.127.100.1/16
      - name: <INTERFACE>  # Additional interfaces as needed.
        address: <IP/SUBNET>
  4. Créez un nouveau fichier client_inventory.yml Spécifiez l'utilisateur Ansible doit utiliser pour vous connecter à chaque client, et le mot de passe Ansible doit utiliser pour la réaffectation des privilèges (cette étape nécessite le mot de passe ansible_ssh_user être root ou avoir des privilèges sudo) :

    # BeeGFS client inventory.
    all:
      vars:
        ansible_ssh_user: <USER>
        ansible_become_password: <PASSWORD>
    Important Ne stockez pas les mots de passe en texte brut. Utilisez plutôt Ansible Vault (voir la "Documentation Ansible" Pour le chiffrement de contenu avec Ansible Vault) ou utilisez le --ask-become-pass option lors de l'exécution du manuel de vente.
  5. Dans le client_inventory.yml Fichier, répertorie tous les hôtes qui doivent être configurés comme clients BeeGFS sous beegfs_clients Grouper, puis se reporter aux commentaires en ligne et supprimer toute configuration supplémentaire requise pour construire le module de noyau client BeeGFS sur votre système :

    children:
        # Ansible group representing all BeeGFS clients:
        beegfs_clients:
          hosts:
            <CLIENT HOSTNAME>:
            # Additional clients as needed.
    
          vars:
            # OPTION 1: If you’re using the NVIDIA OFED drivers and they are already installed:
            #eseries_ib_skip: True # Skip installing inbox drivers when using the IPoIB role.
            #beegfs_client_ofed_enable: True
            #beegfs_client_ofed_include_path: "/usr/src/ofa_kernel/default/include"
    
            # OPTION 2: If you’re using inbox IB/RDMA drivers and they are already installed:
            #eseries_ib_skip: True # Skip installing inbox drivers when using the IPoIB role.
    
            # OPTION 3: If you want to use inbox IB/RDMA drivers and need them installed/configured.
            #eseries_ib_skip: False # Default value.
            #beegfs_client_ofed_enable: False # Default value.
    Remarque Lorsque vous utilisez les pilotes OFED de NVIDIA, assurez-vous que beegfs_client_ofed_include_path pointe vers le "header include path" correct pour votre installation Linux. Pour plus d'informations, consultez la documentation BeeGFS pour "Prise en charge de RDMA".
  6. Dans le client_inventory.yml Fichier, répertorie les systèmes de fichiers BeeGFS que vous souhaitez monter sous n'importe quel fichier précédemment défini vars:

            beegfs_client_mounts:
              - sysMgmtdHost: <IP ADDRESS>  # Primary IP of the BeeGFS management service.
                mount_point: /mnt/beegfs    # Path to mount BeeGFS on the client.
                connInterfaces:
                  - <INTERFACE> # Example: ibs4f1
                  - <INTERFACE>
                beegfs_client_config:
                  # Maximum number of simultaneous connections to the same node.
                  connMaxInternodeNum: 128 # BeeGFS Client Default: 12
                  # Allocates the number of buffers for transferring IO.
                  connRDMABufNum: 36 # BeeGFS Client Default: 70
                  # Size of each allocated RDMA buffer
                  connRDMABufSize: 65536 # BeeGFS Client Default: 8192
                  # Required when using the BeeGFS client with the shared-disk HA solution.
                  # This does require BeeGFS targets be mounted in the default “sync” mode.
                  # See the documentation included with the BeeGFS client role for full details.
                  sysSessionChecksEnabled: false
            # Specify additional file system mounts for this or other file systems.
  7. À partir de BeeGFS 7.2.7 et 7.3.1 "authentification de la connexion" doivent être configurés ou explicitement désactivés. Selon la façon dont vous choisissez de configurer l'authentification basée sur la connexion lors de "configuration de nœud de fichier commune"la spécification , vous devrez peut-être ajuster la configuration de votre client :

    1. Par défaut, le déploiement du cluster haute disponibilité configure automatiquement l'authentification de connexion et génère un connauthfile Qui seront placées/conservées sur le nœud de contrôle Ansible à <INVENTORY>/files/beegfs/<sysMgmtdHost>_connAuthFile. Par défaut, le rôle client BeeGFS est configuré pour lire/distribuer ce fichier aux clients définis dans client_inventory.yml, et aucune action supplémentaire n'est nécessaire.

      1. Pour les options avancées, reportez-vous à la liste complète des valeurs par défaut incluses avec le "Rôle client BeeGFS".

    2. Si vous choisissez de spécifier un secret personnalisé avec beegfs_ha_conn_auth_secret spécifiez-le dans le client_inventory.yml les fichiers ainsi :

      beegfs_ha_conn_auth_secret: <SECRET>
    3. Si vous choisissez de désactiver entièrement l'authentification basée sur la connexion avec beegfs_ha_conn_auth_enabled, spécifiez cela dans le client_inventory.yml les fichiers ainsi :

      beegfs_ha_conn_auth_enabled: false

Pour obtenir la liste complète des paramètres pris en charge et des détails supplémentaires, reportez-vous au "Documentation complète du client BeeGFS". Pour obtenir un exemple complet d'inventaire client, cliquez sur "ici".

Créez le fichier BeeGFS client PlayBook

  1. Créez un nouveau fichier client_playbook.yml

    # BeeGFS client playbook.
    - hosts: beegfs_clients
      any_errors_fatal: true
      gather_facts: true
      collections:
        - netapp_eseries.beegfs
        - netapp_eseries.host
      tasks:
  2. Facultatif : si vous souhaitez utiliser les rôles de la collection d'hôtes NetApp E-Series pour configurer les interfaces pour les clients afin de vous connecter aux systèmes de fichiers BeeGFS, importez le rôle correspondant au type d'interface que vous configurez :

    1. Si vous utilisez InfiniBand (IPoIB) :

          - name: Ensure IPoIB is configured
            import_role:
              name: ipoib
    2. Si vous utilisez le protocole RDMA over Converged Ethernet (RoCE) :

          - name: Ensure IPoIB is configured
            import_role:
              name: roce
    3. Si vous utilisez Ethernet (TCP uniquement, pas de RDMA) :

          - name: Ensure IPoIB is configured
            import_role:
              name: ip
  3. Enfin, importez le rôle client BeeGFS pour installer le logiciel client et configurer les montages du système de fichiers :

        # REQUIRED: Install the BeeGFS client and mount the BeeGFS file system.
        - name: Verify the BeeGFS clients are configured.
          import_role:
            name: beegfs_client

Pour obtenir un exemple de PlayBook client complet, cliquez sur "ici".

Exécutez le manuel de vente BeeGFS client

Pour installer/construire le client et monter BeeGFS, exécutez la commande suivante :

ansible-playbook -i client_inventory.yml client_playbook.yml