用途:dfuse [OPTIONS] [mountpoint [pool container]]
选项:
-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 会在指定为第一个位置参数的挂载点目录中执行 DAOS POSIX 容器的用户空间挂载。此目录必须存在且用户必须能够访问,否则挂载将失败。或者,您也可以使用 -m 或 --mountpoint= 选项指定挂载点目录,但此用法已废弃。
DAOS 池和容器可以通过多种不同的方式指定。请仅使用一种方式指定池和容器:
- 您可以在命令行中使用 UUID 或标签,将 DAOS 存储池和容器明确指定为位置参数。这是使用 dfuse 挂载 POSIX 容器的最常见方法。
- 您可以在命令行中使用 --pool和--container选项明确指定 DAOS 存储池和容器,并使用 UUID 或标签。此用法已被弃用,请改用位置参数。
- 使用 --path选项时,系统会从该文件系统路径加载 DAOS 命名空间属性,包括 DAOS 存储池和容器信息。
- 不使用 --path选项时,系统还会检查挂载点目录,并从中加载 DAOS 命名空间属性(如果有)。
- 使用 -o挂载选项字符串时,挂载选项字符串中的pool=和container=键用于标识 DAOS 存储池和容器。
- 如果未通过任何上述方法指定池和容器,dfuse 将使用运行 dfuse 的用户有权访问的所有池和 POSIX 容器的池和容器 UUID(而非标签)作为路径名组件,在挂载点下构建文件系统路径名。 - 您可以遍历以这种方式挂载的 POSIX 容器的路径,以访问该容器的根目录,例如通过将目录更改为 /mountpoint/pool_uuid/cont_uuid/。
- 不过,不支持列出 /mountpoint/ 目录,并且不会显示已在此处挂载的池 UUID。
- 同样,虽然用户可以将目录更改为 /mountpoint/pool_uuid/目录,但不支持列出该目录,并且不会显示在此目录中挂载的容器 UUID。
- 运行 fusermount3 -u /mountpoint将卸载以这种方式挂载的所有 POSIX 容器以及/mountpoint/pool_uuid/目录。
 
- 您可以遍历以这种方式挂载的 POSIX 容器的路径,以访问该容器的根目录,例如通过将目录更改为 
线程和资源使用情况:
dfuse 有两种类型的线程:接受和处理来自内核的请求的 fuse 线程,以及完成异步读写操作的进度线程。
每个异步进度线程都使用一个 DAOS 事件队列来消耗额外的网络资源。由于所有元数据操作都是阻塞操作,因此 dfuse 中的并发级别受限于 Fuse 线程数量。
默认情况下,每个可用核心的线程总数为 1,以实现最大吞吐量。如果启用了超线程,则每个超线程核心使用一个线程。您可以通过以下两种方式进行修改:通过 numactl 或类似工具在 cpuset 中运行 dfuse 来减少可用核心数,或者使用 --thread-count、--eq-count 或 --singlethread 选项:
- --thread-count选项用于控制线程总数。
- 在固定 --thread-count的情况下提高--eq-count选项会相应地减少熔断器线程的数量。--eq-count的默认值为1。
- --singlethread模式将使用一个线程处理熔断请求,另一个线程处理单个事件队列,总共两个线程。
如果 dfuse 在后台模式下运行(除非通过 mpirun 启动,否则默认是后台模式),则它将保持在前台,直到挂载到内核以允许适当的错误报告。
-o 选项可用于通过 fstab 或类似工具运行 dfuse,并接受标准的挂载选项。系统会将其视为以英文逗号分隔的键值对列表,并且 dfuse 将使用此字符串中的 pool= 和 container= 键。
缓存功能默认处于开启状态。dfuse 挂载的缓存行为可以通过命令行选项进行控制。您可以通过容器属性按容器设置进一步的缓存控制。
- 如果使用 --disable-caching选项,则不会执行缓存,也不会使用容器属性。默认值为--enable-caching。
- 如果使用 --disable-wb-cache,则系统会在写穿模式下执行整个挂载的写入操作,并且仍会使用容器属性。默认值为--enable-wb-cache。
- 如果同时指定了 --disable-caching和--enable-wb-cache,系统会忽略--enable-wb-cache选项,并且不会执行任何缓存操作。