Verwendung von Linstor in CSI

Verwendung von Linstor in CSI

CSI (Container Storage Interface) ist eine standardisierte Schnittstelle zur Verwaltung von persistentem Speicher in einer Containerumgebung. Linstor ist ein Open-Source-Blockgeräte-Replikations- und verteiltes Speicherverwaltungstool, das in CSI integriert werden kann, um dauerhafte Speicherunterstützung für Container bereitzustellen.

Um Linstor in CSI zu verwenden, sind die folgenden Schritte erforderlich:

  1. Linstor installieren: Zuerst müssen Sie Linstor installieren und konfigurieren. Informationen zur Installation entsprechend Ihrem Betriebssystem und Ihren Anforderungen finden Sie in der offiziellen Dokumentation von Linstor.

  2. Installieren Sie den CSI-Treiber: Als Nächstes müssen Sie den CSI-Treiber von Linstor installieren. Dies erfolgt normalerweise in einem Kubernetes-Cluster, entweder mit dem Befehlszeilentool kubectl oder mit einer YAML-Datei zum Bereitstellen des DaemonSets des CSI-Treibers.

  3. Erstellen Sie Linstor-Speicherpools: In Linstor müssen Sie einen oder mehrere Speicherpools (Speicherpools) zur Verwendung durch Container erstellen. Ein Speicherpool definiert die Eigenschaften und Zugriffsmethoden von Speicherressourcen.

  4. Erstellen Sie einen PersistentVolumeClaim (PVC): In Kubernetes müssen Sie einen PVC erstellen, um persistente Speicherressourcen anzufordern. Geben Sie im PVC-Objekt den Namen, die Größe und andere relevante Eigenschaften des Linstor-Speicherpools an.

  5. Pod erstellen: Erstellen Sie abschließend einen Pod in Kubernetes und verknüpfen Sie den im vorherigen Schritt erstellten PVC mit dem Pod. Pod kann über VolumeMounts persistenten Speicher im angegebenen Pfad im Container bereitstellen.

Nach diesen Schritten können Sie den von Linstor in CSI bereitgestellten dauerhaften Speicher verwenden. Bitte beachten Sie, dass die spezifischen Betriebsdetails je nach Umgebung und Anforderungen variieren können. Daher wird empfohlen, für detailliertere Anleitungen die offizielle Dokumentation von Linstor und Kubernetes zu Rate zu ziehen.

CSI-Speicher

Detaillierte Erläuterung des CSI-Speichermechanismus

Fügen Sie hier eine Bildbeschreibung ein

sts csi-linstor-0, wählen Sie eine der folgenden Optionen: [Resizer Provisioner Attacher Driver]
ds csi-linstor-node-6qznx, wählen Sie eine der folgenden Optionen: [node-driver-registrar linstor-csi-plugin]
sts csi-linstor-server-controller [Regler]

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

kq get pod | grep csi
csi-linstor-0                            4/4     Running     2          15h
csi-linstor-node-6qznx                   2/2     Running     0          15h
csi-linstor-node-q6m8c                   2/2     Running     0          15h
csi-linstor-server-controller-0          1/1     Running     0          15h

Speicherlösung

Fügen Sie hier eine Bildbeschreibung ein

kq logs -f csi-linstor-node-hpkf4 -c node-driver-registrar

I0707 09:19:24.451851       1 main.go:108] Version: $(REV)
I0707 09:19:24.451905       1 main.go:115] Attempting to open a gRPC connection with: "/csi/csi.sock"
I0707 09:19:24.451916       1 connection.go:69] Connecting to /csi/csi.sock
I0707 09:19:24.452006       1 connection.go:96] Still trying, connection is CONNECTING
I0707 09:19:24.452256       1 connection.go:96] Still trying, connection is TRANSIENT_FAILURE
I0707 09:19:25.452590       1 connection.go:96] Still trying, connection is CONNECTING
I0707 09:19:25.452697       1 connection.go:93] Connected
I0707 09:19:25.452718       1 main.go:123] Calling CSI driver to discover driver name.
I0707 09:19:25.452730       1 connection.go:137] GRPC call: /csi.v1.Identity/GetPluginInfo
I0707 09:19:25.452738       1 connection.go:138] GRPC request: {
    
    }
I0707 09:19:25.458030       1 connection.go:140] GRPC response: {
    
    "name":"linstor.csi.linbit.com","vendor_version":"UNKNOWN"}
I0707 09:19:25.458488       1 connection.go:141] GRPC error: <nil>
I0707 09:19:25.458496       1 main.go:131] CSI driver name: "linstor.csi.linbit.com"
I0707 09:19:25.458525       1 node_register.go:54] Starting Registration Server at: /registration/linstor.csi.linbit.com-reg.sock
I0707 09:19:25.458680       1 node_register.go:61] Registration Server started at: /registration/linstor.csi.linbit.com-reg.sock
I0707 09:19:25.718974       1 main.go:76] Received GetInfo call: &InfoRequest{
    
    }
I0707 09:19:25.735613       1 main.go:86] Received NotifyRegistrationStatus call: &RegistrationStatus{
    
    PluginRegistered:true,Error:,}

Gemäß der Protokollanalyse werden die Inhalte und Ereignisse des Protokolls wie folgt erläutert:

  • I0707 09:19:24.451851 1 main.go:108] Version: $(REV): Zeigt die aktuelle Versionsnummer als „$(REV)“ an.
  • I0707 09:19:24.451905 1 main.go:115] Attempting to open a gRPC connection with: "/csi/csi.sock": Es wird versucht, eine gRPC-Verbindung zu „/csi/csi.sock“ herzustellen.
  • I0707 09:19:24.451916 1 connection.go:69] Connecting to /csi/csi.sock: Verbindung zu „/csi/csi.sock“ herstellen.
  • I0707 09:19:24.452006 1 connection.go:96] Still trying, connection is CONNECTING: Es wird immer noch versucht, eine Verbindung herzustellen. Der Verbindungsstatus lautet CONNECTING (Verbindung wird hergestellt).
  • I0707 09:19:24.452256 1 connection.go:96] Still trying, connection is TRANSIENT_FAILURE: Es wird immer noch versucht, eine Verbindung herzustellen. Der Verbindungsstatus ist TRANSIENT_FAILURE (vorübergehend fehlgeschlagen).
  • I0707 09:19:25.452590 1 connection.go:96] Still trying, connection is CONNECTING: Es wird immer noch versucht, eine Verbindung herzustellen. Der Verbindungsstatus lautet VERBINDEN.
  • I0707 09:19:25.452697 1 connection.go:93] Connected:in Verbindung gebracht.
  • I0707 09:19:25.452718 1 main.go:123] Calling CSI driver to discover driver name.: Rufen Sie den CSI-Treiber auf, um den Treibernamen zu erhalten.
  • I0707 09:19:25.452730 1 connection.go:137] GRPC call: /csi.v1.Identity/GetPluginInfo: Machen Sie einen GRPC-Aufruf, die aufrufende Methode ist /csi.v1.Identity/GetPluginInfo.
  • I0707 09:19:25.452738 1 connection.go:138] GRPC request: {}: Senden Sie eine GRPC-Anfrage, die Anfrage ist leer.
  • I0707 09:19:25.458030 1 connection.go:140] GRPC response: {"name":"linstor.csi.linbit.com","vendor_version":"UNKNOWN"}: Es wurde eine GRPC-Antwort empfangen, der Name des Treibers ist „linstor.csi.linbit.com“ und die Herstellerversion ist „UNBEKANNT“.
  • I0707 09:19:25.458488 1 connection.go:141] GRPC error: <nil>: Keine gRPC-Fehler.
  • I0707 09:19:25.458496 1 main.go:131] CSI driver name: "linstor.csi.linbit.com": Der Name des CSI-Treibers ist „linstor.csi.linbit.com“.
  • I0707 09:19:25.458525 1 node_register.go:54] Starting Registration Server at: /registration/linstor.csi.linbit.com-reg.sock: Starten Sie den Registrierungsserver unter „/registration/linstor.csi.linbit.com-reg.sock“.
  • I0707 09:19:25.458680 1 node_register.go:61] Registration Server started at: /registration/linstor.csi.linbit.com-reg.sock: Der Registrierungsserver wurde unter „/registration/linstor.csi.linbit.com-reg.sock“ gestartet.
  • I0707 09:19:25.718974 1 main.go:76] Received GetInfo call: &InfoRequest{}: Eine GetInfo-Aufrufanforderung wird empfangen und die Anforderung ist leer.
  • I0707 09:19:25.735613 1 main.go:86] Received NotifyRegistrationStatus call: &RegistrationStatus{PluginRegistered:true,Error:,}: Die NotifyRegistrationStatus-Aufrufanforderung wurde empfangen, das Plug-in wurde registriert und es liegt kein Fehler vor.

Diese Protokolle zeigen den Startvorgang des CSI-Treibers. Zunächst wurde versucht, eine Verbindung zu „/csi/csi.sock“ herzustellen, und es wurde eine gRPC-Verbindung zu dieser Verbindung hergestellt. Anschließend wird der CSI-Treiber aufgerufen, um seinen Namen zu erhalten, und eine Antwort wird erfolgreich empfangen. Abschließend wird der Registrierungsserver gestartet, der anzeigt, dass das Plugin registriert ist.

Je suppose que tu aimes

Origine blog.csdn.net/hezuijiudexiaobai/article/details/131620253
conseillé
Classement