Zum Inhalt springenZur Seitennavigation springen: vorherige Seite [Zugriffstaste p]/nächste Seite [Zugriffstaste n]
Bezieht sich auf SUSE Enterprise Storage 7.1

25 NFS Ganesha

NFS Ganesha ist ein NFS-Server, der in einem Benutzeradressenbereich statt als Teil des Betriebssystem-Kernels ausgeführt wird. Mit NFS Ganesha binden Sie Ihren eigenen Speichermechanismus ein, wie zum Beispiel Ceph, und greifen von einem beliebigen NFS Client darauf zu. Die Installationsanweisungen finden Sie im Abschnitt 8.3.6, „Bereitstellen von NFS Ganesha“.

Anmerkung
Anmerkung: NFS-Ganesha-Leistung

Angesichts des erhöhten Protokoll-Overheads und der zusätzlichen Latenz durch zusätzliche Netzwerk-Hops zwischen Client und Speicher kann ein Zugriff auf Ceph über einen NFS-Gateway die Anwendungsleistung im Vergleich zu einem nativen CephFS erheblich senken.

Jeder NFS-Ganesha-Dienst besteht aus einer Konfigurationshierarchie, die Folgendes enthält:

  • Einen Bootstrap ganesha.conf

  • Ein gemeinsames RADOS-Konfigurationsobjekt pro Service

  • Ein RADOS-Konfigurationsobjekt pro Export

Die Bootstrap-Konfiguration ist die Minimalkonfiguration zum Starten des nfs-ganesha-Daemons innerhalb eines Containers. Jede Bootstrap-Konfiguration enthält eine %url-Anweisung, die jede zusätzliche Konfiguration aus dem gemeinsamen RADOS-Konfigurationsobjekt enthält. Das gemeinsame Konfigurationsobjekt kann zusätzliche %url-Anweisungen für jeden der NFS-Exporte enthalten, die in den RADOS-Konfigurationsobjekten definiert sind.

NFS-Ganesha-Struktur
Abbildung 25.1: NFS-Ganesha-Struktur

25.1 Erstellen eines NFS-Service

Die Spezifikation der Bereitstellung von Ceph-Services erfolgt am besten durch Erstellen einer YAML-formatierten Datei mit der Spezifikation der Services, die Sie bereitstellen möchten. Sie können für jeden Servicetyp eine eigene Spezifikationsdatei erstellen, oder Sie geben mehrere (oder alle) Servicetypen in einer Datei an.

Je nachdem, wofür Sie sich entschieden haben, müssen Sie eine entsprechende YAML-formatierte Datei aktualisieren oder erstellen, um einen NFS-Ganesha-Dienst anzulegen. Weitere Informationen zum Erstellen der Datei finden Sie im Abschnitt 8.2, „Service- und Platzierungsspezifikation“.

Nachdem Sie die Datei aktualisiert oder erstellt haben, erstellen Sie mit folgendem Kommando einen nfs-ganesha-Dienst:

cephuser@adm > ceph orch apply -i FILE_NAME

25.2 Starten oder Neustarten von NFS Ganesha

Wichtig
Wichtig

Durch Starten des NFS-Ganesha-Diensts wird ein CephFS-Dateisystem nicht automatisch exportiert. Erstellen Sie eine Export-Konfigurationsdatei, um ein CephFS-Dateisystem zu exportieren. Weitere Informationen finden Sie in Abschnitt 25.4, „Erstellen eines NFS-Exports“.

Führen Sie zum Starten des NFS-Ganesha-Diensts folgendes Kommando aus:

cephuser@adm > ceph orch start nfs.SERVICE_ID

Führen Sie für einen Neustart des NFS-Ganesha-Diensts folgendes Kommando aus:

cephuser@adm > ceph orch restart nfs.SERVICE_ID

Falls Sie nur einen einzelnen NFS-Ganesha-Daemon neu starten möchten, führen Sie folgendes Kommando aus:

cephuser@adm > ceph orch daemon restart nfs.SERVICE_ID

Wenn NFS Ganesha gestartet oder neu gestartet wird, hat es eine Kulanzzeitüberschreitung von 90 Sekunden für NFS v4. Während des Kulanzzeitraums werden neue Anforderungen von Clients aktiv abgelehnt. Somit werden die Anforderungen der Clients möglicherweise verzögert, wenn sich NFS im Kulanzzeitraum befindet.

25.3 Auflisten von Objekten im NFS-Wiederherstellungspool

Listen Sie die Objekte im NFS-Widerherstellungspool mit folgendem Kommando auf:

cephuser@adm > rados --pool POOL_NAME --namespace NAMESPACE_NAME ls

25.4 Erstellen eines NFS-Exports

Sie können einen NFS-Export entweder über das Ceph Dashboard oder manuell über die Kommandozeile erstellen. Weitere Informationen zum Exportieren über das Ceph Dashboard finden Sie in Kapitel 7, Verwalten von NFS Ganesha, insbesondere in Abschnitt 7.1, „Erstellen eines NFS-Exports“.

Für einen manuellen NFS-Export erstellen Sie zunächst eine Konfigurationsdatei. Zum Beispiel die Datei /tmp/export-1 mit dem folgenden Inhalt:

EXPORT {
    export_id = 1;
    path = "/";
    pseudo = "/";
    access_type = "RW";
    squash = "no_root_squash";
    protocols = 3, 4;
    transports = "TCP", "UDP";
    FSAL {
        name = "CEPH";
        user_id = "admin";
        filesystem = "a";
        secret_access_key = "SECRET_ACCESS_KEY";
    }
}

Nachdem Sie die Konfigurationsdatei für den neuen Export erstellt und gespeichert haben, führen Sie folgendes Kommando zum Exportieren aus:

rados --pool POOL_NAME --namespace NAMESPACE_NAME put EXPORT_NAME EXPORT_CONFIG_FILE

Beispiel:

cephuser@adm > rados --pool example_pool --namespace example_namespace put export-1 /tmp/export-1
Anmerkung
Anmerkung

Der FSAL-Block sollte so geändert werden, dass er die gewünschte cephx-Benutzer-ID und den geheimen Zugangsschlüssel enthält.

25.5 Überprüfen des NFS-Exports

NFS v4 erstellt eine Liste von Exporten im Stamm eines Pseudodateisystems. Sie können überprüfen, ob die NFS-Freigaben exportiert werden. Hängen Sie dazu / des NFS-Ganesha-Serverknotens ein:

# mount -t nfs nfs_ganesha_server_hostname:/ /path/to/local/mountpoint
# ls /path/to/local/mountpoint cephfs
Anmerkung
Anmerkung: NFS Ganesha ist nur v4

Standardmäßig konfiguriert cephadm einen NFS-v4-Server. NFS v4 interagiert weder mit rpcbind noch mit dem mountd-Daemon. NFS-Client-Tools wie showmount zeigen keine konfigurierten Exporte an.

25.6 Einhängen des NFS-Exports

Führen Sie zum Einhängen der exportierten NFS-Freigabe auf einem Client-Host folgendes Kommando aus:

# mount -t nfs nfs_ganesha_server_hostname:/ /path/to/local/mountpoint

25.7 Mehrere NFS-Ganesha-Cluster

Es können mehrere NFS-Ganesha-Cluster definiert werden. Dies ermöglicht:

  • Getrennte NFS-Ganesha-Cluster für den Zugriff auf CephFS.

Diese Seite drucken