Speicher-Tags

Übersicht

Die Funktion der Speichertags ermöglicht es, nur bestimmte Knoten oder Festplatten für die Speicherung von Longhorn-Volumendaten zu verwenden. Zum Beispiel können leistungssensitive Daten nur die Hochleistungsfestplatten verwenden, die als fast, ssd oder nvme gekennzeichnet werden können, oder nur den Hochleistungsknoten, der als baremetal gekennzeichnet ist.

Diese Funktion unterstützt sowohl Festplatten als auch Knoten.

Einrichtung

Die Tags können über die Longhorn-Benutzeroberfläche eingerichtet werden:

  1. Knoten -> Wählen Sie einen Knoten aus -> Knoten und Festplatten bearbeiten

  2. Klicken Sie auf +Neues Knotentag oder +Neues Festplattentag, um neue Tags hinzuzufügen.

Alle bestehenden geplanten Replikate auf dem Knoten oder der Festplatte werden von den neuen Tags nicht betroffen sein.

Verwendung

Wenn mehrere Tags für ein Volumen angegeben sind, müssen die Festplatte und der Knoten (zu dem die Festplatte gehört) alle angegebenen Tags haben, um verwendbar zu werden.

UI

Beim Erstellen eines Volumens geben Sie das Festplattentag und das Knotentag in der Benutzeroberfläche an.

Kubernetes

Verwenden Sie die Kubernetes StorageClass-Parameter, um Tags anzugeben.

Sie können Tags in der Standard-Longhorn-StorageClass angeben, indem Sie den Parameter nodeSelector: "storage,fast" in der ConfigMap mit dem Namen longhorn-storageclass hinzufügen. Beispiel:

apiVersion: v1
kind: ConfigMap
data:
  storageclass.yaml: |
    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: longhorn
      annotations:
        storageclass.kubernetes.io/is-default-class: "true"
    provisioner: driver.longhorn.io
    allowVolumeExpansion: true
    reclaimPolicy: "Delete"
    volumeBindingMode: Immediate
    parameters:
      numberOfReplicas: "3"
      staleReplicaTimeout: "480"
      diskSelector: "ssd"
      nodeSelector: "storage,fast"

Wenn Longhorn über Helm installiert ist, können Sie dies erreichen, indem Sie persistence.defaultNodeSelector in values.yaml bearbeiten.

Alternativ kann eine benutzerdefinierte StorageClass verwendet werden, z. B.:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: longhorn-fast
provisioner: driver.longhorn.io
parameters:
  numberOfReplicas: "3"
  staleReplicaTimeout: "480" # 8 hours in minutes
  diskSelector: "ssd"
  nodeSelector: "storage,fast"