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 chavespool=
econtainer=
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/
.
- É possível percorrer um caminho para um contentor POSIX montado desta forma para aceder à raiz desse contentor, por exemplo, alterando o diretório para
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.