dfuse-Referenz

Nutzung: dfuse [OPTIONS] [mountpoint [pool container]]

Optionen:

-m --mountpoint=<path>  Mount point to use (deprecated, use positional argument)

    --pool=name          pool UUID/label
    --container=name     container UUID/label
    --path=<path>        Path to load UNS pool/container data
    --sys-name=STR       DAOS system name context for servers

-S --singlethread       Single threaded
-t --thread-count=count Total number of threads to use
-e --eq-count=count     Number of event queues to use
-f --foreground         Run in foreground
    --enable-caching     Enable all caching (default)
    --enable-wb-cache    Use write-back cache rather than write-through (default)
    --disable-caching    Disable all caching
    --disable-wb-cache   Use write-through rather than write-back cache
-o options              mount style options string

    --multi-user         Run dfuse in multi user mode

-h --help               Show this help
-v --version            Show version

dfuse führt eine Bereitstellung eines DAOS-POSIX-Containers im Nutzerbereich im Verzeichnis des Bereitstellungspunkts aus, das als erstes Positionalargument angegeben wird. Dieses Verzeichnis muss vorhanden sein und für den Nutzer zugänglich sein, da sonst das Bereitstellen fehlschlägt. Alternativ kann das Verzeichnis des Bereitstellungspunkts auch mit der Option -m oder --mountpoint= angegeben werden. Diese Verwendung wird jedoch nicht mehr unterstützt.

Der DAOS-Pool und der Container können auf verschiedene Arten angegeben werden. Es sollte nur eine Möglichkeit zur Angabe des Pools und des Containers verwendet werden:

  • Der DAOS-Pool und der Container können in der Befehlszeile explizit als Positionalargumente mit UUIDs oder Labels angegeben werden. Dies ist die gängigste Methode, um mit dfuse einen POSIX-Container bereitzustellen.
  • Der DAOS-Pool und der Container können in der Befehlszeile mit den Optionen --pool und --container explizit mit UUIDs oder Labels angegeben werden. Diese Verwendung wird zugunsten von Positionsargumenten eingestellt.
  • Wenn die Option --path verwendet wird, werden DAOS-Namespaceattribute aus diesem Dateisystempfad geladen, einschließlich der DAOS-Pool- und Containerinformationen.
  • Wenn die Option --path nicht verwendet wird, wird auch das Verzeichnis des Bereitstellungspunkts geprüft und DAOS-Namespaceattribute werden von dort geladen, sofern vorhanden.
  • Wenn Sie den -o-Anmeldeoptionen-String verwenden, identifizieren die Schlüssel pool= und container= im Anmeldeoptionen-String den DAOS-Pool und den Container.
  • Wenn der Pool und der Container nicht mit einer dieser Methoden angegeben werden, erstellt dfuse Dateisystempfadnamen unter dem Bereitstellungspunkt. Dabei werden die Pool- und Container-UUIDs (nicht die Labels) von allen Pools und POSIX-Containern als Pfadkomponenten verwendet, auf die der Nutzer, der dfuse ausführt, Zugriff hat.

    • Ein Pfad zu einem POSIX-Container, der auf diese Weise bereitgestellt wird, kann durchlaufen werden, um auf das Stammverzeichnis dieses Containers zuzugreifen, z. B. durch Ändern des Verzeichnisses in /mountpoint/pool_uuid/cont_uuid/.
    • Das Auflisten des Verzeichnisses „/mountpoint/“ wird jedoch nicht unterstützt und die dort bereitgestellten Pool-UUIDs werden nicht angezeigt.
    • Ebenso kann der Nutzer das Verzeichnis in ein /mountpoint/pool_uuid/-Verzeichnis ändern, das Auflisten dieses Verzeichnisses wird jedoch nicht unterstützt und die dort bereitgestellten Container-UUIDs werden nicht angezeigt.
    • Wenn Sie fusermount3 -u /mountpoint ausführen, werden alle POSIX-Container, die auf diese Weise bereitgestellt wurden, sowie die /mountpoint/pool_uuid/-Verzeichnisse getrennt.

Threads und Ressourcennutzung:

Dfuse hat zwei Arten von Threads: Fuse-Threads, die Anfragen vom Kernel akzeptieren und verarbeiten, und Fortschritts-Threads, die asynchrone Lese-/Schreibvorgänge abschließen.

Jeder asynchrone Fortschritts-Thread verwendet eine DAOS-Ereigniswarteschlange, um zusätzliche Netzwerkressourcen zu verbrauchen. Da alle Metadatenvorgänge blockieren, ist die Parallelität in dfuse durch die Anzahl der Fuse-Threads begrenzt.

Standardmäßig ist die Gesamtzahl der Threads eins pro verfügbaren Kern, um einen maximalen Durchsatz zu ermöglichen. Wenn Hyper-Threading aktiviert ist, wird ein Thread pro Hyper-Threading-Kern verwendet. Das kann auf zwei Arten geändert werden: Sie können die Anzahl der verfügbaren Kerne reduzieren, indem Sie dfuse in einem CPU-Set über numactl oder ähnliche Tools ausführen, oder Sie verwenden die Optionen --thread-count, --eq-count oder --singlethread:

  • Mit der Option --thread-count wird die Gesamtzahl der Threads gesteuert.
  • Wenn Sie die Option --eq-count bei einer festen --thread-count erhöhen, wird die Anzahl der Sicherungsthreads entsprechend reduziert. Der Standardwert für --eq-count ist 1.
  • Im Modus --singlethread wird ein Thread für die Verarbeitung von Fuse-Anfragen und ein zweiter Thread für eine einzelne Ereigniswarteschlange verwendet, also insgesamt zwei Threads.

Wenn dfuse im Hintergrundmodus ausgeführt wird (Standardeinstellung, sofern nicht über mpirun gestartet), bleibt es im Vordergrund, bis die Bereitstellung beim Kernel registriert ist, um eine entsprechende Fehlermeldung zu ermöglichen.

Mit der Option -o können Sie dfuse über fstab oder eine ähnliche Datei ausführen. Sie akzeptiert standardmäßige Bereitstellungsoptionen. Dieser String wird als durch Kommas getrennte Liste von Schlüssel/Wert-Paaren behandelt. Dfuse verwendet die Schlüssel pool= und container= aus diesem String.

Das Caching ist standardmäßig aktiviert. Das Caching-Verhalten für eine dfuse-Bereitstellung kann über Befehlszeilenoptionen gesteuert werden. Weitere Caching-Einstellungen können über Containerattribute pro Container festgelegt werden.

  • Wenn die Option --disable-caching verwendet wird, wird kein Caching durchgeführt und die Containerattribute werden nicht verwendet. Der Standardwert ist --enable-caching.
  • Wenn --disable-wb-cache verwendet wird, werden die Schreibvorgänge für die gesamte Bereitstellung im Durchschreibemodus ausgeführt und die Containerattribute werden weiterhin verwendet. Der Standardwert ist --enable-wb-cache.
  • Wenn sowohl --disable-caching als auch --enable-wb-cache angegeben sind, wird die Option --enable-wb-cache ignoriert und es erfolgt kein Caching.