Bereitstellen einer NetScaler BLX-Appliance mit DPDK-Unterstützung

NetScaler BLX-Appliances unterstützen das Data Plane Development Kit (DPDK), eine Reihe von Linux-Bibliotheken und Netzwerkschnittstellen-Controllern für eine bessere Netzwerkleistung. Eine BLX-Appliance mit DPDK-Unterstützung funktioniert nur im dedizierten Netzwerkmodus. Die Bereitstellung einer BLX-Appliance mit DPDK-Unterstützung auf einem Linux-Host besteht aus den folgenden Schritten:

  • Laden Sie die DPDK-Bibliotheken auf den Linux-Host herunter, installieren Sie sie und kompilieren Sie sie
  • DPDK auf dem Linux-Host konfigurieren
  • BLX-Appliance für die DPDK-Unterstützung konfigurieren
  • Erstmalige Einstellung der Verwaltungs-IP-Adresse der BLX-Appliance
  • Starten der BLX-Appliance

Laden Sie die DPDK-Bibliotheken auf den Linux-Host herunter, installieren Sie sie und kompilieren Sie sie

DPDK-Bibliotheken werden auf der offiziellen DPDK-Website gehostet. Die Installation der DPDK-Bibliotheken auf dem Linux-Host umfasst das Extrahieren des DPDK-Pakets, das Festlegen von DPDK-Umgebungsvariablen und das Kompilieren der DPDK-Bibliotheken.

So laden Sie die unterstützten DPDK-Bibliotheken auf den Linux-Host herunter:

  1. Rufen Sie die offizielle DPDK-Download-Seite auf.

  2. Laden Sie die folgende unterstützte DPDK-Paketversion auf den Linux-Host herunter:

    DPDK 17.11.6 (LTS)

Nachdem Sie die DPDK-Bibliotheken heruntergeladen haben, extrahieren Sie das DPDK-Paket auf dem Linux-Host, legen Sie die DPDK-Umgebungsvariable RTE_SDK fest und kompilieren Sie dann die DPDK-Bibliotheken:

export RTE_SDK=<path to the extracted DPDK installation directory on the Linux host>

Weitere Informationen zum Installieren und Kompilieren von DPDK auf einem Linux-Gerät finden Sie in der offiziellen DPDK-Dokumentation unter der offiziellen DPDK-Dokumentation.

DPDK auf dem Linux-Host konfigurieren

Nach der Installation von DPDK-Bibliotheken müssen Sie DPDK auf dem Linux-Host konfigurieren. Die Konfiguration von DPDK umfasst die folgenden Aufgaben:

  • Fügen Sie das DPDK IGB UIO-Kernelmodul ein
  • Binden Sie die Linux-Host-NIC-Ports, die für die BLX-Appliance verwendet werden sollen, an das DPDK IGB-UIO-Modul.
  • hugepages für DPDK einrichten

Verwenden Sie das DPDK-Setupskript (dpdk-setup.sh), das sich im usertools DPDK-Unterverzeichnis befindet, um diese Aufgaben auszuführen.

Hinweis

Die folgenden DPDK-bezogenen Verfahren wurden zur Vereinfachung hinzugefügt. Weitere Informationen zur Konfiguration von DPDK auf einem Linux-System finden Sie in der offiziellen DPDK-Dokumentation unter der offiziellen DPDK-Dokumentation.

Fügen Sie das DPDK IGB UIO-Kernelmodul ein

So fügen Sie das DPDK IGB UIO-Kernelmodul ein:

  1. Führen Sie das dpdk-setup.sh-Skript aus:

    bash $RTE_SDK/usertools/dpdk-setup.sh

  2. Geben Sie in der Benutzereingabeaufforderung Option 17 ein und drücken Sie die Eingabetaste.

    .
    .
    [17] Insert IGB UIO module
    [18] Insert VFIO module
    [19] Insert KNI module
    [20] Setup hugepage mappings for non-NUMA systems
    [21] Setup hugepage mappings for NUMA systems
    [22] Display current Ethernet/Crypto device settings
    [23] Bind Ethernet/Crypto device to IGB UIO module
    [24] Bind Ethernet/Crypto device to VFIO module
    [25] Setup VFIO permissions
    .
    .
    ………………
    [34] Exit Script
    
    Option: 17
    
    <!--NeedCopy-->
    

Binden von Linux-Host-NIC-Ports an das DPDK-IGB-UIO-Modul

So binden Sie Linux-Host-NIC-Ports an das DPDK-IGB UIO-Modul:

  1. Führen Sie das dpdk-setup.sh-Skript aus:

    ./$RTE_SDK/usertoos/dpdk-setup.sh

  2. Geben Sie in der Benutzereingabeaufforderung Option 23 ein und drücken Sie die Eingabetaste.

    .
    .
    [17] Insert IGB UIO module
    [18] Insert VFIO module
    [19] Insert KNI module
    [20] Setup hugepage mappings for non-NUMA systems
    [21] Setup hugepage mappings for NUMA systems
    [22] Display current Ethernet/Crypto device settings
    [23] Bind Ethernet/Crypto device to IGB UIO module
    [24] Bind Ethernet/Crypto device to VFIO module
    [25] Setup VFIO permissions
    .
    .
    ………………
    [34] Exit Script
    
    Option: 23
    
    <!--NeedCopy-->
    
  3. Geben Sie in der Benutzeraufforderung die PCI-Adresse des Linux-Host-Ports ein, den Sie an das DPDK-IGB UIO-Kernelmodul binden möchten, und drücken Sie die Eingabetaste:

    ```

Netzwerkgeräte mit DPDK-kompatiblem Treiber ============================================

0000:83:00.1 'I350 Gigabit Fiber Network Connection 1522' drv=igb_uio unused=igb

Netzwerkgeräte mit Kerneltreiber ===================================

0000:01:00.0 ‘Ethernet Controller 10-Gigabit X540-AT2 1528’ if=eno1 drv=ixgbe unused=igb_uio Active 0000:01:00.1 ‘Ethernet Controller 10-Gigabit X540-AT2 1528’ if=eno2 drv=ixgbe unused=igb_uio 0000:83:00.0 ‘I350 Gigabit Fiber Network Connection 1522’ if=enp131s0f0 drv=igb unused=igb_uio 0000:02:00.0 ‘Ethernet Controller XL710 for 40GbE QSFP+ 1584’ drv=i40e unused=igb_uio. « add 0000:83:00.2 ‘I350 Gigabit Fiber Network Connection 1522’ if=enp131s0f2 drv=igb unused=igb_uio 0000:83:00.3 ‘I350 Gigabit Fiber Network Connection 1522’ if=enp131s0f3 drv=igb unused=igb_uio 0000:84:00.0 ‘I350 Gigabit Fiber Network Connection 1522’ if=enp132s0f0 drv=igb unused=igb_uio 0000:84:00.1 ‘I350 Gigabit Fiber Network Connection 1522’ if=enp132s0f1 drv=igb unused=igb_uio ……….. Mempool-Geräte verwenden Kernel-Treiber ===================================

<none>

Andere Mempool-Geräte =====================

<none>

Enter PCI address of device to bind to IGB UIO driver: 0000:02:00.0

```
  1. Wiederholen Sie die obigen Schritte, um einen weiteren Linux-Host-Netzwerkport an das DPDK-IGB-UIO-Modul zu binden.

hugepages für DPDK einrichten

So richten Sie hugepages für DPDK ein:

  1. Führen Sie das dpdk-setup.sh-Skript aus:

    ./$RTE_SDK/usertoos/dpdk-setup.sh

  2. Geben Sie Option 20 oder 21, basierend auf der Linux-Host-Speicherarchitektur, in die Benutzeraufforderung ein und drücken Sie die Eingabetaste.

    .
    .
    [17] Insert IGB UIO module
    [18] Insert VFIO module
    [19] Insert KNI module
    [20] Setup hugepage mappings for non-NUMA systems.
    [21] Setup hugepage mappings for NUMA systems
    [22] Display current Ethernet/Crypto device settings
    [23] Bind Ethernet/Crypto device to IGB UIO module
    [24] Bind Ethernet/Crypto device to VFIO module
    [25] Setup VFIO permissions
    .
    .
    ………………
    [34] Exit Script
    
    Option: 21
    
    
  3. Geben Sie in der Benutzeraufforderung die Anzahl von hugepages ein, die für DPDK reserviert werden soll, und drücken Sie die Eingabetaste:

    Removing currently reserved hugepages
    Unmounting /mnt/huge and removing directory
    
    Input the number of 2048kB hugepages
    Example: to have 128MB of hugepages available in a 2MB huge page system,
    enter '64' to reserve 64 * 2MB pages
    
    Number of pages: 1024
    
    Reserving hugepages
    Creating /mnt/huge and mounting as hugetlbfs
    
    

BLX-Appliance für die DPDK-Unterstützung konfigurieren

Um die BLX-Appliance für die DPDK-Unterstützung zu konfigurieren, müssen Sie den folgenden Parameter in der BLX-Konfigurationsdatei (blx.conf) festlegen.

  • DPDK-Konfiguration. Dieser Parameter ermöglicht es der BLX-Appliance, im DPDK-Modus zu starten, um eine bessere Leistung zu erzielen. Außerdem gibt dieser Parameter die Anzahl der Paket-Engines an, die von der BLX-Appliance mit DPDK-Unterstützung verwendet werden sollen. Der Standardwert ist auf 8 (0xff) festgelegt. Die maximale Anzahl von Paket-Engines, die von der BLX-Appliance mit DPDK-Unterstützung unterstützt werden, beträgt 28.

Hinweis

Nach dem Einstellen des Parameters DPDK config und dem Starten der BLX-Appliance werden die DPDK-gebundenen Linux-NIC-Ports automatisch als Teil der BLX-Appliance hinzugefügt.

So konfigurieren Sie die BLX-Appliance für die DPDK-Unterstützung:

  1. Öffnen Sie die BLX-Konfigurationsdatei (blx.conf), die auf dem Linux-Host vorhanden ist. Der vollständige Pfad der BLX-Konfigurationsdatei lautet:

    /etc/blx/blx.conf

  2. Entkommentieren Sie die folgende Zeile, die den Parameter dpdk-config enthält, in der BLX-Konfigurationsdatei (blx.conf), indem Sie das # (Hash-Symbol) am Anfang der Zeile entfernen:

    # dpdk-config: -c 0xff

    Beispiel Konfiguration

    Im folgenden Beispielauszug einer blx.conf-Datei ist die Einstellung des Parameters dpdk-config aktiviert.

    .
    .
    # dpdk EAL core mask parameter. Applicable only when blx-dpdk is installed.
    
    dpdk-config: -c 0xff
    .
    .
    

Erstmalige Einstellung der Verwaltungs-IP-Adresse der BLX-Appliance

Die Verwaltungs-IP-Adresse einer BLX-Appliance ist die IP-Adresse, unter der Sie zu Verwaltungszwecken auf die Appliance zugreifen. Die Verwaltungs-IP-Adresse der BLX-Appliance wird auch als Citrix ADC IP (NSIP) -Adresse bezeichnet.

Eine BLX-Appliance kann nur eine Citrix ADC IP (NSIP) -Adresse haben. Außerdem müssen Sie eine Standardroute für das konfigurierte Citrix ADC IP-Subnetz hinzufügen, damit die Citrix ADC IP von anderen Netzwerken im LAN aus erreichbar ist.

Um die Verwaltungs-IP-Adresse der BLX-Appliance zum ersten Mal festzulegen, müssen Sie die entsprechenden Parameter in der BLX-Konfigurationsdatei (blx.conf) festlegen.

So legen Sie die Verwaltungs-IP-Adresse und die Standardroute zum ersten Malfest:

  1. Öffnen Sie die BLX-Konfigurationsdatei (blx.conf), die auf dem Linux-Host vorhanden ist. Der vollständige Pfad der BLX-Konfigurationsdatei lautet:

    /etc/blx/blx.conf

  2. Kommentieren Sie den folgenden Parameter aus und legen Sie die Verwaltungs-IP-Adresse fest:

    # ipaddress:

  3. Kommentieren Sie den folgenden Parameter aus und legen Sie die Standardroute im Abschnitt der statischen Route fest:

    # default

Beispiel Konfiguration:

Im folgenden Beispielauszug einer blx.conf file-Datei werden die Verwaltungs-IP-Adresse und die Standardroute festgelegt:

.
.

ipaddress: 203.0.113.10
.
.
default 203.0.113.1
.
.

Starten der BLX-Appliance mit DPDK-Unterstützung

Starten Sie die BLX-Appliance, indem Sie den folgenden Befehl ausführen:

systemctl start blx

Die BLX-Appliance befindet sich jetzt im Status Up.

Überprüfen Sie erneut den Status der BLX-Appliance:

systemctl status blx

Nach der erfolgreichen Installation und dem Start einer BLX-Appliance können Sie die Citrix ADC-Funktionen auf der Appliance mit einer der folgenden Methoden konfigurieren:

  • Citrix ADC CLI
  • Citrix ADC GUI
  • Citrix NITRO REST-APIs

Weitere Informationen zur Verwendung dieser Methoden finden Sie unter Konfigurieren einer BLX-Appliance.

Weitere Informationen zu Citrix ADC-Funktionen finden Sie in der Citrix ADC-Dokumentation. ```