Riferimento dfuse

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

Opzioni:

-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 esegue il montaggio nello spazio utente di un contenitore POSIX DAOS nella directory del punto di montaggio specificato come primo argomento posizionale. Questa directory deve esistere e deve essere accessibile all'utente, altrimenti il montaggio non andrà a buon fine. In alternativa, la directory del punto di montaggio può essere specificata anche con l'opzione -m o --mountpoint=, ma questo utilizzo è deprecato.

Il pool e il contenitore DAOS possono essere specificati in diversi modi. Deve essere utilizzato un solo modo per specificare il pool e il contenitore:

  • Il pool e il contenitore DAOS possono essere specificati esplicitamente sulla riga di comando come argomenti posizionali, utilizzando UUID o etichette. Questo è il modo più comune per utilizzare dfuse per montare un contenitore POSIX.
  • Il pool e il contenitore DAOS possono essere specificati esplicitamente sulla riga di comando utilizzando le opzioni --pool e --container, con UUID o etichette. Questo utilizzo è deprecato a favore dell'utilizzo degli argomenti posizionali.
  • Quando viene utilizzata l'opzione --path, gli attributi dello spazio dei nomi DAOS vengono caricati da quel percorso del file system, incluse le informazioni sul pool e sul contenitore DAOS.
  • Quando l'opzione --path non viene utilizzata, verrà controllata anche la directory del punto di montaggio e gli attributi dello spazio dei nomi DAOS verranno caricati da lì, se presenti.
  • Quando utilizzi la stringa di opzioni di montaggio -o, le chiavi pool= e container= nella stringa di opzioni di montaggio identificano il pool e il contenitore DAOS.
  • Quando il pool e il contenitore non sono specificati tramite nessuno di questi metodi, dfuse costruisce i percorsi dei file system sotto il punto di montaggio utilizzando gli UUID (non le etichette) del pool e del contenitore di tutti i pool e i contenitori POSIX a cui l'utente che esegue dfuse ha accesso come componenti del percorso.

    • Un percorso a un contenitore POSIX montato in questo modo può essere attraversato per accedere alla radice del contenitore, ad esempio cambiando directory in /mountpoint/pool_uuid/cont_uuid/.
    • Tuttavia, l'elenco della directory /mountpoint/ non è supportato e non viene visualizzato gli UUID del pool montati al suo interno.
    • Analogamente, anche se l'utente può cambiare directory in una directory /mountpoint/pool_uuid/, l'elenco di questa directory non è supportato e non verranno visualizzati gli UUID del contenitore montati al suo interno.
    • L'esecuzione di fusermount3 -u /mountpoint smonterà tutti i contenitori POSIX mounted in questo modo, nonché le directory /mountpoint/pool_uuid/.

Thread e utilizzo delle risorse:

dfuse ha due tipi di thread: thread fuse che accettano ed elaborano le richieste dal kernel e thread di avanzamento che completano le operazioni di lettura/scrittura asincrone.

Ogni thread di avanzamento asincrono utilizza una coda di eventi DAOS per consumare risorse di rete aggiuntive. Poiché tutte le operazioni sui metadati sono bloccanti, il livello di concorrenza in dfuse è limitato dal numero di thread di unione.

Per impostazione predefinita, il numero totale di thread è pari a uno per core disponibile per consentire un throughput massimo. Se l'hyperthreading è abilitato, viene utilizzato un thread per core hyperthread. Questo valore può essere modificato in due modi: riducendo il numero di core disponibili eseguendo dfuse in un cpuset tramite numactl o strumenti simili oppure utilizzando le opzioni --thread-count, --eq-count o --singlethread:

  • L'opzione --thread-count controlla il numero totale di thread.
  • L'aumento dell'opzione --eq-count a un valore --thread-count fisso ridurrà di conseguenza il numero di thread di sicurezza. Il valore predefinito per --eq-count è 1.
  • La modalità --singlethread utilizzerà un thread per gestire le richieste di unione e un altro per una singola coda di eventi, per un totale di due thread.

Se dfuse è in esecuzione in modalità di sfondo (il valore predefinito, a meno che non venga avviato tramite mpirun), rimane in primo piano finché il montaggio non viene registrato nel kernel per consentire la segnalazione di errori appropriata.

L'opzione -o può essere utilizzata per eseguire dfuse tramite fstab o un programma simile e accetta opzioni di montaggio standard. Verrà trattato come un elenco separato da virgole di coppie chiave=valore e dfuse utilizzerà le chiavi pool= e container= di questa stringa.

La memorizzazione nella cache è attiva per impostazione predefinita. Il comportamento della memorizzazione nella cache per un montaggio dfuse può essere controllato tramite le opzioni della riga di comando. È possibile impostare ulteriori controlli della memorizzazione nella cache su base per contenitore tramite gli attributi del contenitore.

  • Se viene utilizzata l'opzione --disable-caching, non viene eseguita la memorizzazione nella cache e gli attributi del contenitore non vengono utilizzati. Il valore predefinito è --enable-caching.
  • Se viene utilizzato --disable-wb-cache, le operazioni di scrittura per l'intero mount vengono eseguite in modalità write-through e gli attributi del contenitore vengono comunque utilizzati. Il valore predefinito è --enable-wb-cache.
  • Se vengono specificati sia --disable-caching sia --enable-wb-cache, l'opzione --enable-wb-cache viene ignorata e non viene eseguita la memorizzazione nella cache.