Déploiement de clients BeeGFS
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
-
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>
-
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 :
-
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>
-
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>
-
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>
-
-
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 passeansible_ssh_user
être root ou avoir des privilèges sudo) :# BeeGFS client inventory. all: vars: ansible_ssh_user: <USER> ansible_become_password: <PASSWORD>
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. -
Dans le
client_inventory.yml
Fichier, répertorie tous les hôtes qui doivent être configurés comme clients BeeGFS sousbeegfs_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.
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". -
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éfinivars
: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.
-
À 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 :
-
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 dansclient_inventory.yml
, et aucune action supplémentaire n'est nécessaire.-
Pour les options avancées, reportez-vous à la liste complète des valeurs par défaut incluses avec le "Rôle client BeeGFS".
-
-
Si vous choisissez de spécifier un secret personnalisé avec
beegfs_ha_conn_auth_secret
spécifiez-le dans leclient_inventory.yml
les fichiers ainsi :beegfs_ha_conn_auth_secret: <SECRET>
-
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 leclient_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
-
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:
-
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 :
-
Si vous utilisez InfiniBand (IPoIB) :
- name: Ensure IPoIB is configured import_role: name: ipoib
-
Si vous utilisez le protocole RDMA over Converged Ethernet (RoCE) :
- name: Ensure IPoIB is configured import_role: name: roce
-
Si vous utilisez Ethernet (TCP uniquement, pas de RDMA) :
- name: Ensure IPoIB is configured import_role: name: ip
-
-
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