Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar.

Knoten-Festplattensupport

Longhorn unterstützt jetzt die Hinzufügung und Verwaltung verschiedener Festplattentypen (AIO, NVMe und VirtIO) auf Knoten, was die Dateisystemoperationen, die Speicherleistung und die Kompatibilität verbessert.

  • Verbesserte Speicherleistung

    Die Nutzung von NVMe- und VirtIO-Festplatten ermöglicht schnellere Festplattenoperationen und verbessert die Gesamtleistung erheblich.

  • Dateisystemkompatibilität

    Festplatten, die mit NVMe- oder VirtIO-Treibern verwaltet werden, bieten eine bessere Unterstützung für Dateisysteme, einschließlich fortschrittlicher Operationen wie Trimming.

  • flexibel

    Benutzer können den Festplattentyp auswählen, der am besten zu ihrer Umgebung passt: AIO für traditionelle Setups, NVMe für Hochleistungsanforderungen oder VirtIO für virtualisierte Umgebungen.

  • Verwaltungsfreundlichkeit

    Die automatische Erkennung von Festplattentreibern vereinfacht die Hinzufügung und Verwaltung von Festplatten und reduziert den administrativen Aufwand.

Eine Festplatte auf Longhorn-Knoten konfigurieren

Longhorn erkennt automatisch den Festplattentyp, wenn node.spec.disks[i].diskDriver auf auto gesetzt ist, und optimiert die Speicherleistung. Die Erkennung und Verwaltung erfolgt wie folgt:

  • NVMe-Festplatte: verwaltet von spdk_tgt unter Verwendung des nvme bdev-Treibers, und node.status.diskStatus[i].diskDriver ist auf nvme gesetzt.

  • VirtIO-Festplatte: verwaltet von spdk_tgt unter Verwendung des virtio bdev-Treibers, und node.status.diskStatus[i].diskDriver ist auf virtio-blk gesetzt.

  • Andere Festplatten: verwaltet von spdk_tgt unter Verwendung des aio bdev-Treibers, und node.status.diskStatus[i].diskDriver ist auf aio gesetzt.

Alternativ können Benutzer node.spec.disks[i].diskDriver manuell auf aio setzen, um die Verwendung des aio bdev-Treibers zu erzwingen.

Um NVMe- und VirtIO-Festplatten zu unterstützen, müssen Sie den BDF (Bus, Gerät, Funktion) der Festplatte als Pfad finden, der zum Longhorn-Knoten hinzugefügt werden soll. Die folgenden Beispiele bieten eine Einführung in die Konfiguration von NVMe-Festplatten, VirtIO-Festplatten und anderen Festplatten.

Hinweis

Sobald diese Festplatten vom NVMe bdev-Treiber oder VirtIO bdev-Treiber verwaltet werden, anstelle des Linux-Kernel-Treibers, werden sie nicht unter /dev/nvmeXnY oder /dev/vdbX aufgeführt.

Verwendung von NVMe-Laufwerken

  1. Listen Sie die Laufwerke auf

    Zuerst identifizieren Sie die verfügbaren NVMe-Laufwerke auf Ihrem System, indem Sie den folgenden Befehl ausführen:

    # ls -al /sys/block/

    Beispielausgabe:

    lrwxrwxrwx  1 root root 0  Jul  30 12:20 loop0 -> ../devices/virtual/block/loop0
    lrwxrwxrwx  1 root root 0  Jul  30 12:20 nvme0n1 -> ../devices/pci0000:00/0000:00:01.2/0000:02:00.0/nvme/nvme0/nvme0n1
    lrwxrwxrwx  1 root root 0  Jul  30 12:20 nvme0n1 -> ../devices/pci0000:00/0000:00:01.2/0000:05:00.0/nvme/nvme1/nvme1n1
  2. Holen Sie sich die BDF des NVMe-Laufwerks

    Identifizieren Sie die BDF des NVMe-Laufwerks /dev/nvme1n1. Aus dem obigen Beispiel ist die BDF 0000:05:00.0.

  3. Fügen Sie das NVMe-Laufwerk zu spec.disks von node.longhorn.io hinzu

    nvme-disk:
      allowScheduling: true
      diskType: block
      diskDriver: auto
      evictionRequested: false
      path: 0000:05:00.0
      storageReserved: 0
      tags: []
  4. Überprüfen Sie das status.diskStatus. Das Laufwerk sollte ohne Fehler erkannt werden, und der diskDriver sollte auf nvme gesetzt sein.

Hinweis: Alternative Laufwerkskonfiguration

Wenn Sie das Laufwerk über einen anderen Pfad hinzufügen, wie zum Beispiel:

 nvme-disk:
   allowScheduling: true
   diskType: block
   diskDriver: auto
   evictionRequested: false
   path: /dev/nvme1n1
   storageReserved: 0
   tags: []

In diesem Fall wird das Laufwerk vom aio bdev-Treiber verwaltet, und das node.status.diskStatus[i].diskDriver ist auf aio gesetzt.

Verwendung von VirtIO-Laufwerken

Die Schritte sind ähnlich wie bei NVMe-Laufwerken.

  1. Listen Sie die Laufwerke auf

    Zuerst identifizieren Sie die verfügbaren VirtIO-Laufwerke auf Ihrem System, indem Sie den folgenden Befehl ausführen:

    # ls -al /sys/block/

    Beispielausgabe:

    lrwxrwxrwx  1 root root 0  Jul  30 12:20 loop0 -> ../devices/virtual/block/loop0
    lrwxrwxrwx  1 root root 0 Feb 22 14:04 vda -> ../devices/pci0000:00/0000:00:02.3/0000:04:00.0/virtio2/block/vda
    lrwxrwxrwx  1 root root 0 Feb 22 14:24 vdb -> ../devices/pci0000:00/0000:00:02.6/0000:07:00.0/virtio5/block/vdb
  2. Holen Sie sich die BDF des VirtIO-Laufwerks

    Identifizieren Sie die BDF des VirtIO-Laufwerks /dev/vdb. Aus dem obigen Beispiel ist die BDF 0000:07:00.0.

  3. Fügen Sie das VirtIO-Laufwerk zu spec.disks von node.longhorn.io hinzu

    nvme-disk:
      allowScheduling: true
      diskType: block
      diskDriver: auto
      evictionRequested: false
      path: 0000:07:00.0
      storageReserved: 0
      tags: []
  4. Überprüfen Sie das status.diskStatus. Das Laufwerk sollte ohne Fehler erkannt werden, und das diskDriver sollte auf virtio-blk gesetzt sein.

Hinweis: Alternative Laufwerkskonfiguration

Wenn Sie das Laufwerk über einen anderen Pfad hinzufügen, wie zum Beispiel:

 nvme-disk:
   allowScheduling: true
   diskType: block
   diskDriver: auto
   evictionRequested: false
   path: /dev/vdb
   storageReserved: 0
   tags: []

In diesem Fall wird das Laufwerk vom aio bdev-Treiber verwaltet, und das node.status.diskStatus[i].diskDriver ist auf aio gesetzt.

Verwendung von AIO-Laufwerken

Wenn weder NVMe- noch VirtIO-Treiber ein Laufwerk verwalten können, wird Longhorn standardmäßig den aio bdev-Treiber verwenden. Benutzer können dies auch manuell konfigurieren.

  1. Fügen Sie das Laufwerk zu spec.disks von node.longhorn.io hinzu.

     default-disk-loop:
       allowScheduling: true
       diskDriver: aio
       diskType: block
       evictionRequested: false
       path: /dev/loop12
       storageReserved: 0
       tags: []
  2. Überprüfen Sie node.status.diskStatus. Das Laufwerk sollte ohne Fehler erkannt werden, und das node.status.diskStatus[i].diskDriver sollte auf aio gesetzt sein.