Skip to main content
BeeGFS on NetApp with E-Series Storage
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Implementare i client BeeGFS

Collaboratori

In alternativa, è possibile utilizzare Ansible per configurare i client BeeGFS e montare il file system.

Panoramica

L'accesso ai file system BeeGFS richiede l'installazione e la configurazione del client BeeGFS su ciascun nodo che deve montare il file system. In questa sezione viene descritto come eseguire queste attività utilizzando la disponibile "Ruolo Ansible".

Fasi

Creare il file di inventario del client

  1. Se necessario, impostare SSH senza password dal nodo di controllo Ansible a ciascuno degli host che si desidera configurare come client BeeGFS:

    ssh-copy-id <user>@<HOSTNAME_OR_IP>
  2. Sotto host_vars/, Creare un file per ogni client BeeGFS denominato <HOSTNAME>.yml con il seguente contenuto, inserendo il testo segnaposto con le informazioni corrette per il tuo ambiente:

    # BeeGFS Client
    ansible_host: <MANAGEMENT_IP>
  3. Se si desidera utilizzare i ruoli di NetApp e-Series host Collection per configurare le interfacce InfiniBand o Ethernet per consentire ai client di connettersi ai nodi di file BeeGFS, è possibile includere uno dei seguenti elementi:

    1. Se il tipo di rete è "InfiniBand (con 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. Se il tipo di rete è "RDMA su Ethernet convergente (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. Se il tipo di rete è "Ethernet (solo TCP, senza 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. Creare un nuovo file client_inventory.yml E specificare l'utente che Ansible deve utilizzare per connettersi a ciascun client e la password che Ansible deve utilizzare per l'escalation dei privilegi (ciò richiede ansible_ssh_user essere root o avere privilegi sudo):

    # BeeGFS client inventory.
    all:
      vars:
        ansible_ssh_user: <USER>
        ansible_become_password: <PASSWORD>
    Importante Non memorizzare le password in testo normale. Utilizzare invece il vault Ansible (vedere la "Documentazione Ansible" Per crittografare il contenuto con Ansible Vault) o utilizzare --ask-become-pass quando si esegue il playbook.
  5. In client_inventory.yml File, elenca tutti gli host che devono essere configurati come client BeeGFS in beegfs_clients Fare riferimento ai commenti inline e rimuovere eventuali commenti aggiuntivi necessari per creare il modulo del kernel del client BeeGFS sul sistema:

    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.
    Nota Quando si utilizzano i driver NVIDIA OFED, assicurarsi che beegfs_client_ofed_include_PATH punti al corretto "header include PATH" per l'installazione Linux. Per ulteriori informazioni, vedere la documentazione di BeeGFS per "Supporto RDMA".
  6. In client_inventory.yml Elencare i file system BeeGFS che si desidera montare sotto qualsiasi file definito in precedenza 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. A partire da BeeGFS 7.2.7 e 7.3.1 "autenticazione della connessione" deve essere configurato o esplicitamente disattivato. A seconda di come si sceglie di configurare l'autenticazione basata sulla connessione quando si specifica "configurazione di un nodo di file comune", potrebbe essere necessario regolare la configurazione del client:

    1. Per impostazione predefinita, l'implementazione del cluster ha configurerà automaticamente l'autenticazione della connessione e genererà un connauthfile Che verranno posizionati/mantenuti sul nodo di controllo Ansible in <INVENTORY>/files/beegfs/<sysMgmtdHost>_connAuthFile. Per impostazione predefinita, il ruolo del client BeeGFS è impostato per leggere/distribuire questo file ai client definiti in `client_inventory.yml`e non sono necessarie ulteriori azioni.

      1. Per le opzioni avanzate, fare riferimento all'elenco completo dei valori predefiniti inclusi in "Ruolo del client BeeGFS".

    2. Se si sceglie di specificare un segreto personalizzato con beegfs_ha_conn_auth_secret specificarlo in client_inventory.yml anche file:

      beegfs_ha_conn_auth_secret: <SECRET>
    3. Se si sceglie di disattivare completamente l'autenticazione basata sulla connessione con beegfs_ha_conn_auth_enabled, specificare che in client_inventory.yml anche file:

      beegfs_ha_conn_auth_enabled: false

Per un elenco completo dei parametri supportati e ulteriori dettagli, fare riferimento a. "Documentazione completa del client BeeGFS". Per un esempio completo di un inventario client, fare clic su "qui".

Creare il file Playbook del client BeeGFS

  1. Creare un nuovo file 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. Facoltativo: Se si desidera utilizzare i ruoli di NetApp e-Series host Collection per configurare le interfacce per la connessione dei client ai file system BeeGFS, importare il ruolo corrispondente al tipo di interfaccia che si sta configurando:

    1. Se si utilizza InfiniBand (IPoIB):

          - name: Ensure IPoIB is configured
            import_role:
              name: ipoib
    2. Se si utilizza RDMA su Ethernet convergente (RoCE):

          - name: Ensure IPoIB is configured
            import_role:
              name: roce
    3. Se si utilizza Ethernet (solo TCP, senza RDMA):

          - name: Ensure IPoIB is configured
            import_role:
              name: ip
  3. Infine, importare il ruolo del client BeeGFS per installare il software client e configurare i supporti del file system:

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

Per un esempio completo di un playbook client, fai clic "qui".

Eseguire il manuale BeeGFS Client Playbook

Per installare/creare il client e montare BeeGFS, eseguire il seguente comando:

ansible-playbook -i client_inventory.yml client_playbook.yml