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.

Configurare singoli nodi di file

Collaboratori

Specificare la configurazione per i singoli nodi di file utilizzando le variabili host (host_vars).

Panoramica

In questa sezione viene illustrata la compilazione di un host_vars/<FILE_NODE_HOSTNAME>.yml per ogni nodo di file nel cluster. Questi file devono contenere solo configurazioni univoche per un particolare nodo di file. Ciò comprende in genere:

  • Definizione dell'IP o del nome host che Ansible deve utilizzare per connettersi al nodo.

  • Configurazione di interfacce aggiuntive e IP del cluster utilizzati per i servizi cluster ha (Pacemaker e Corosync) per comunicare con altri nodi di file. Per impostazione predefinita, questi servizi utilizzano la stessa rete dell'interfaccia di gestione, ma devono essere disponibili interfacce aggiuntive per la ridondanza. La pratica comune consiste nel definire IP aggiuntivi sulla rete di storage, evitando la necessità di un cluster aggiuntivo o di una rete di gestione.

    • Le performance di qualsiasi rete utilizzata per la comunicazione in cluster non sono critiche per le performance del file system. Con la configurazione predefinita del cluster, in genere, almeno una rete a 1 Gbps fornirà prestazioni sufficienti per le operazioni del cluster, come la sincronizzazione degli stati dei nodi e il coordinamento delle modifiche dello stato delle risorse del cluster. Le reti lente/occupate possono richiedere più tempo del solito per le modifiche dello stato delle risorse e, in casi estremi, potrebbero causare l'eliminazione dei nodi dal cluster se non riescono a inviare heartbeat in un intervallo di tempo ragionevole.

  • Configurazione delle interfacce utilizzate per la connessione ai nodi a blocchi sul protocollo desiderato (ad esempio: ISCSI/iSER, NVMe/IB, NVMe/RoCE, FCP, ecc.)

Fasi

Facendo riferimento allo schema di indirizzamento IP definito in "Pianificare il file system" per ciascun nodo del file nel cluster, creare un file host_vars/<FILE_NODE_HOSTNAME>/yml e compilarlo come segue:

  1. In alto, specificare l'IP o il nome host che Ansible deve utilizzare per SSH al nodo e gestirlo:

    ansible_host: "<MANAGEMENT_IP>"
  2. Configurare IP aggiuntivi che possono essere utilizzati per il traffico del cluster:

    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>
  3. Indicare gli IP da utilizzare per il traffico del cluster, con gli IP preferiti elencati più in alto:

    beegfs_ha_cluster_node_ips:
    - <MANAGEMENT_IP> # Including the management IP is typically but not required.
    - <IP_ADDRESS>    # Ex: 100.127.100.1
    - <IP_ADDRESS>    # Additional IPs as needed.
    Nota Gli IPS configurati nella fase due non verranno utilizzati come IP del cluster a meno che non siano inclusi in beegfs_ha_cluster_node_ips elenco. Ciò consente di configurare IP/interfacce aggiuntive utilizzando Ansible che possono essere utilizzati per altri scopi, se necessario.
  4. Se il nodo del file deve comunicare per bloccare i nodi su un protocollo basato su IP, gli IP dovranno essere configurati sull'interfaccia appropriata e tutti i pacchetti richiesti per quel protocollo installati/configurati.

    1. Se in uso "ISCSI":

      eseries_iscsi_interfaces:
      - name: <INTERFACE>  # Example: eth0.
        address: <IP/SUBNET> # Example: 100.127.100.1/16
    2. Se in uso "Er":

      eseries_ib_iser_interfaces:
      - name: <INTERFACE>  # Example: ib0.
        address: <IP/SUBNET> # Example: 100.127.100.1/16
        configure: true # If the file node is directly connected to the block node set to true to setup OpenSM.
    3. Se in uso "NVMe/IB":

      eseries_nvme_ib_interfaces:
      - name: <INTERFACE>  # Example: ib0.
        address: <IP/SUBNET> # Example: 100.127.100.1/16
        configure: true # If the file node is directly connected to the block node set to true to setup OpenSM.
    4. Se in uso "NVMe/RoCE":

      eseries_nvme_roce_interfaces:
      - name: <INTERFACE>  # Example: eth0.
        address: <IP/SUBNET> # Example: 100.127.100.1/16
    5. Altri protocolli:

      1. Se in uso "NVMe/FC", la configurazione di singole interfacce non è richiesta. L'implementazione del cluster BeeGFS rileverà automaticamente il protocollo e installerà/configurerà i requisiti in base alle necessità. Se si utilizza un fabric per connettere file e nodi a blocchi, assicurarsi che gli switch siano correttamente suddivisi in zone seguendo le Best practice di NetApp e del vendor di switch.

      2. L'utilizzo di FCP o SAS non richiede l'installazione o la configurazione di software aggiuntivo. Se si utilizza FCP, assicurarsi che gli switch siano correttamente zonati "NetApp" e le best practice del tuo fornitore di switch.

      3. Al momento non si consiglia l'utilizzo di IB SRP. Utilizzare NVMe/IB o iSER a seconda di ciò che i nodi a blocchi e-Series supportano.

Fare clic su "qui" per un esempio di un file di inventario completo che rappresenta un singolo nodo di file.

Advanced (Avanzate): Passaggio tra le modalità Ethernet e InfiniBand degli adattatori VPI NVIDIA ConnectX

Gli adattatori NVIDIA ConnectX-Virtual Protocol Interconnect® (VPI) supportano sia InfiniBand che Ethernet come layer di trasporto. Il passaggio da una modalità all'altra non viene negoziato automaticamente e deve essere configurato utilizzando mstconfig strumento incluso in mstflint, un pacchetto open source che fa parte di "Mellanox firmare Tools (MFT)". La modifica della modalità degli adattatori deve essere eseguita una sola volta. Questa operazione può essere eseguita manualmente o inclusa nell'inventario Ansible come parte di qualsiasi interfaccia configurata con eseries-[ib|ib_iser|ipoib|nvme_ib|nvme_roce|roce]_interfaces: sezione dell'inventario, per fare in modo che venga controllata/applicata automaticamente.

Ad esempio, per modificare una corrente di interfaccia in modalità InfiniBand su Ethernet in modo che possa essere utilizzata per RoCE:

  1. Per ogni interfaccia che si desidera configurare, specificare mstconfig come un mapping (o dizionario) che specifica LINK_TYPE_P<N> dove <N> È determinato dal numero di porta dell'HCA per l'interfaccia. Il <N> il valore può essere determinato eseguendo grep PCI_SLOT_NAME /sys/class/net/<INTERFACE_NAME>/device/uevent E aggiungendo 1 all'ultimo numero dal nome dello slot PCI e convertendo in decimale.

    1. Ad esempio PCI_SLOT_NAME=0000:2f:00.2 (2 + 1 → porta HCA 3) → LINK_TYPE_P3: eth:

      eseries_roce_interfaces:
      - name: <INTERFACE>
        address: <IP/SUBNET>
        mstconfig:
          LINK_TYPE_P3: eth

Per ulteriori informazioni, consultare "Documentazione della raccolta di host NetApp e-Series" per il tipo di interfaccia/protocollo in uso.