Referência dfuse

utilização: dfuse [OPTIONS] [mountpoint [pool container]]

Opções:

-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

O dfuse executa uma montagem do espaço do utilizador de um contentor POSIX DAOS no diretório do ponto de montagem especificado como o primeiro argumento posicional. Este diretório tem de existir e tem de estar acessível ao utilizador, caso contrário, a montagem falha. Em alternativa, o diretório do ponto de montagem também pode ser especificado com a opção -m ou --mountpoint=, mas esta utilização está descontinuada.

O conjunto e o contentor DAOS podem ser especificados de várias formas diferentes. Só deve usar uma forma de especificar o conjunto e o contentor:

  • O conjunto e o contentor DAOS podem ser especificados explicitamente na linha de comandos como argumentos posicionais, usando UUIDs ou etiquetas. Esta é a forma mais comum de usar o dfuse para montar um contentor POSIX.
  • O conjunto e o contentor DAOS podem ser especificados explicitamente na linha de comandos através das opções --pool e --container, com UUIDs ou etiquetas. Esta utilização foi descontinuada a favor da utilização de argumentos posicionais.
  • Quando a opção --path é usada, os atributos do espaço de nomes DAOS são carregados a partir desse caminho do sistema de ficheiros, incluindo as informações do contentor e do conjunto DAOS.
  • Quando a opção --path não é usada, o diretório do ponto de montagem também é verificado e os atributos do espaço de nomes DAOS são carregados a partir daí, se estiverem presentes.
  • Quando usar a string da opção de montagem -o, as chaves pool= e container= na string da opção de montagem identificam o conjunto e o contentor DAOS.
  • Quando o conjunto e o contentor não são especificados através de nenhum destes métodos, o dfuse cria nomes de caminhos do sistema de ficheiros no ponto de montagem usando os UUIDs (não as etiquetas) de todos os conjuntos e contentores POSIX aos quais o utilizador que executa o dfuse tem acesso como componentes do nome do caminho.

    • É possível percorrer um caminho para um contentor POSIX montado desta forma para aceder à raiz desse contentor, por exemplo, alterando o diretório para /mountpoint/pool_uuid/cont_uuid/.
    • No entanto, a listagem do diretório /mountpoint/ não é suportada e não mostra os UUIDs do conjunto que estão montados aí.
    • Da mesma forma, embora o utilizador possa alterar o diretório para um diretório /mountpoint/pool_uuid/, a listagem desse diretório não é suportada e não mostra os UUIDs dos contentores aí montados.
    • A execução de fusermount3 -u /mountpoint desmonta todos os contentores POSIX que foram montados desta forma, bem como os diretórios /mountpoint/pool_uuid/.

Processamento em várias linhas e utilização de recursos:

O dfuse tem dois tipos de threads: threads de fusão que aceitam e processam pedidos do kernel e threads de progresso que concluem operações de leitura/escrita assíncronas.

Cada thread de progresso assíncrono usa uma fila de eventos DAOS para consumir recursos de rede adicionais. Como todas as operações de metadados são de bloqueio, o nível de simultaneidade no dfuse é limitado pelo número de threads do FUSE.

Por predefinição, a contagem total de threads é de um por núcleo disponível para permitir o débito máximo. Se o hyperthreading estiver ativado, é usado um thread por núcleo de hyperthread. Pode modificar esta definição de duas formas: reduzindo o número de núcleos disponíveis executando o dfuse num cpuset através de numactl ou ferramentas semelhantes, ou usando as opções --thread-count, --eq-count ou --singlethread:

  • A opção --thread-count controla o número total de discussões.
  • Aumentar a opção --eq-count num valor --thread-count fixo reduz o número de threads de fusão em conformidade. O valor predefinido de --eq-count é 1.
  • O modo --singlethread usa um segmento para processar pedidos de fusão e um segundo segmento para uma única fila de eventos, num total de dois segmentos.

Se o dfuse estiver a ser executado em modo de fundo (a predefinição, a menos que seja iniciado através do mpirun), permanece em primeiro plano até que a montagem seja registada no kernel para permitir o relatório de erros adequado.

A opção -o pode ser usada para executar o dfuse através do fstab ou semelhante e aceita opções de montagem padrão. Isto é tratado como uma lista de pares chave=valor separados por vírgulas, e o dfuse usa as chaves pool= e container= desta string.

A colocação em cache está ativada por predefinição. O comportamento de colocação em cache de uma montagem do dfuse pode ser controlado por opções da linha de comandos. É possível definir controlos de colocação em cache adicionais por contentor através dos atributos do contentor.

  • Se a opção --disable-caching for usada, não é realizada nenhuma colocação em cache e os atributos do contentor não são usados. A predefinição é --enable-caching.
  • Se for usado --disable-wb-cache, as operações de escrita para toda a montagem são realizadas no modo de gravação direta e os atributos do contentor continuam a ser usados. A predefinição é --enable-wb-cache.
  • Se --disable-caching e --enable-wb-cache forem especificados, a opção --enable-wb-cache é ignorada e não é realizada nenhuma colocação em cache.