Configurer les clients BeeGFS
Vous devez installer et configurer le client BeeGFS sur tous les hôtes qui doivent accéder au système de fichiers BeeGFS, comme les nœuds de calcul ou les nœuds GPU. Pour cette tâche, vous pouvez utiliser Ansible et la collection BeeGFS.
-
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>
-
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> # OPTIONAL: If you want to use the NetApp E-Series Host Collection’s IPoIB role to configure InfiniBand interfaces for clients to connect to BeeGFS file systems: eseries_ipoib_interfaces: - name: <INTERFACE> address: <IP>/<SUBNET_MASK> # Example: 100.127.1.1/16 - name: <INTERFACE> address: <IP>/<SUBNET_MASK>
En cas de déploiement avec un schéma d'adressage de sous-réseau à deux, deux interfaces InfiniBand doivent être configurées sur chaque client, une dans chacun des deux sous-réseaux IPoIB de stockage. Si vous utilisez les exemples de sous-réseaux et les plages recommandées pour chaque service BeeGFS répertorié ici, une interface doit être configurée dans la plage 100.127.1.0
100.127.99.255
à et l'autre dans100.128.1.0
à100.128.99.255
. -
Créez un nouveau fichier
client_inventory.yml
, puis remplissez les paramètres suivants en haut :# BeeGFS client inventory. all: vars: ansible_ssh_user: <USER> # This is the user Ansible should use to connect to each client. ansible_become_password: <PASSWORD> # This is the password Ansible will use for privilege escalation, and requires the ansible_ssh_user be root, or have sudo privileges. The defaults set by the BeeGFS HA role are based on the testing performed as part of this NetApp Verified Architecture and differ from the typical BeeGFS client defaults.
Ne stockez pas les mots de passe en texte brut. Utilisez plutôt Ansible Vault (consultez la documentation Ansible pour "Cryptage de contenu avec Ansible Vault") ou utilisez l' --ask-become-pass
option lors de l'exécution du manuel de vente. -
Dans le
client_inventory.yml
Fichier, répertorie tous les hôtes qui doivent être configurés comme clients BeeGFS sousbeegfs_clients
Définissez ensuite toute configuration supplémentaire requise pour générer le module de noyau client BeeGFS.children: # Ansible group representing all BeeGFS clients: beegfs_clients: hosts: beegfs_01: beegfs_02: beegfs_03: beegfs_04: beegfs_05: beegfs_06: beegfs_07: beegfs_08: beegfs_09: beegfs_10: 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.
Lorsque vous utilisez les pilotes OFED 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". -
Dans le
client_inventory.yml
Fichier, répertorie les systèmes de fichiers BeeGFS que vous souhaitez monter au bas de tout ce qui a été défini précédemmentvars
.beegfs_client_mounts: - sysMgmtdHost: 100.127.101.0 # 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
Le beegfs_client_config
représente les paramètres testés. Reportez-vous à la documentation fournie avec lenetapp_eseries.beegfs
collectionbeegfs_client
rôle pour une vue d'ensemble complète de toutes les options. Cela inclut le montage de plusieurs systèmes de fichiers BeeGFS ou le montage du même système de fichiers BeeGFS plusieurs fois. -
Créer un nouveau
client_playbook.yml
puis remplissez les paramètres suivants :# BeeGFS client playbook. - hosts: beegfs_clients any_errors_fatal: true gather_facts: true collections: - netapp_eseries.beegfs - netapp_eseries.host tasks: - name: Ensure IPoIB is configured import_role: name: ipoib - name: Verify the BeeGFS clients are configured. import_role: name: beegfs_client
Ignorer l'importation du netapp_eseries.host
collecte etipoib
Rôle si vous avez déjà installé les pilotes IB/RDMA requis et configuré les adresses IP sur les interfaces IPoIB appropriées. -
Pour installer et construire le client et monter BeeGFS, exécutez la commande suivante :
ansible-playbook -i client_inventory.yml client_playbook.yml
-
Avant de placer le système de fichiers BeeGFS en production, nous vous recommandons fortement de vous connecter à n'importe quel client et de l'exécuter
beegfs-fsck --checkfs
afin de garantir que tous les nœuds sont accessibles et qu'aucun problème n'est signalé.