dfuse는 첫 번째 위치 인수로 지정된 마운트 지점 디렉터리에서 DAOS POSIX 컨테이너의 사용자 공간 마운트를 실행합니다. 이 디렉터리는 존재해야 하며 사용자가 액세스할 수 있어야 합니다. 그러지 않으면 마운트가 실패합니다.
또는 -m 또는 --mountpoint= 옵션으로 마운트 포인트 디렉터리를 지정할 수도 있지만 이 사용법은 지원 중단되었습니다.
DAOS 풀과 컨테이너는 여러 가지 방법으로 지정할 수 있습니다. 풀과 컨테이너를 지정하는 방법은 하나만 사용해야 합니다.
DAOS 풀과 컨테이너는 UUID 또는 라벨을 사용하여 명령줄에서 위치 인수로 명시적으로 지정할 수 있습니다. 이는 dfuse를 사용하여 POSIX 컨테이너를 마운트하는 가장 일반적인 방법입니다.
DAOS 풀과 컨테이너는 UUID 또는 라벨과 함께 --pool 및 --container 옵션을 사용하여 명령줄에서 명시적으로 지정할 수 있습니다.
이 사용법은 위치 인수를 사용하는 대신 지원 중단되었습니다.
--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/ 디렉터리가 마운트 해제됩니다.
스레딩 및 리소스 사용:
dfuse에는 커널의 요청을 수락하고 처리하는 퓨즈 스레드와 비동기 읽기/쓰기 작업을 완료하는 진행 스레드라는 두 가지 유형의 스레드가 있습니다.
각 비동기 진행 스레드는 하나의 DAOS 이벤트 큐를 사용하여 추가 네트워크 리소스를 사용합니다. 모든 메타데이터 작업은 차단되므로 dfuse의 동시 실행 수준은 퓨즈 스레드 수로 제한됩니다.
기본적으로 총 스레드 수는 최대 처리량을 허용하기 위해 사용 가능한 코어당 1개입니다. 하이퍼 스레딩이 사용 설정된 경우 하이퍼 스레드 코어당 스레드 하나가 사용됩니다. 이는 두 가지 방법으로 수정할 수 있습니다. numactl 또는 유사한 도구를 통해 cpuset에서 dfuse를 실행하여 사용 가능한 코어 수를 줄이거나 --thread-count, --eq-count 또는 --singlethread 옵션을 사용하는 것입니다.
--thread-count 옵션은 총 스레드 수를 제어합니다.
고정된 --thread-count에서 --eq-count 옵션을 늘리면 그에 따라 퓨즈 스레드 수가 줄어듭니다. --eq-count의 기본값은 1입니다.
--singlethread 모드는 퓨즈 요청을 처리하는 데 하나의 스레드와 단일 이벤트 큐에 두 번째 스레드를 사용하여 총 2개의 스레드를 사용합니다.
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 옵션이 무시되고 캐싱이 실행되지 않습니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(UTC)"],[],[],null,["# dfuse reference\n\nusage: `dfuse [OPTIONS] [mountpoint [pool container]]`\n\nOptions: \n\n -m --mountpoint=\u003cpath\u003e Mount point to use (deprecated, use positional argument)\n\n --pool=name pool UUID/label\n --container=name container UUID/label\n --path=\u003cpath\u003e Path to load UNS pool/container data\n --sys-name=STR DAOS system name context for servers\n\n -S --singlethread Single threaded\n -t --thread-count=count Total number of threads to use\n -e --eq-count=count Number of event queues to use\n -f --foreground Run in foreground\n --enable-caching Enable all caching (default)\n --enable-wb-cache Use write-back cache rather than write-through (default)\n --disable-caching Disable all caching\n --disable-wb-cache Use write-through rather than write-back cache\n -o options mount style options string\n\n --multi-user Run dfuse in multi user mode\n\n -h --help Show this help\n -v --version Show version\n\ndfuse performs a user space mount of a DAOS POSIX container at the mountpoint\ndirectory that is specified as the first positional argument. This directory\nhas to exist and has to be accessible to the user, or the mount will fail.\nAlternatively, the mountpoint directory can also be specified with the `-m` or\n`--mountpoint=` option but this usage is deprecated.\n\nThe DAOS pool and container can be specified in several different ways. Only\none way of specifying the pool and container should be used:\n\n- The DAOS pool and container can be explicitly specified on the command line as positional arguments, using either UUIDs or labels. This is the most common way to use dfuse to mount a POSIX container.\n- The DAOS pool and container can be explicitly specified on the command line using the `--pool` and `--container` options, with either UUIDs or labels. This usage is deprecated in favor of using positional arguments.\n- When the `--path` option is used, DAOS namespace attributes are loaded from that filesystem path, including the DAOS pool and container information.\n- When the `--path` option is not used, then the mountpoint directory will also be checked and DAOS namespace attributes will be loaded from there if present.\n- When using the `-o` mount option string, `pool=` and `container=` keys in the mount option string identify the DAOS pool and container.\n- When the pool and container are not specified through any of these methods,\n dfuse will construct filesystem pathnames under the mountpoint by using the\n pool and container UUIDs (not labels) of *all* pools and POSIX containers to\n which the user running dfuse has access as pathname components.\n\n - A path to a POSIX container that is mounted this way can be traversed to access the root of that container, for example by changing directory to `/mountpoint/pool_uuid/cont_uuid/`.\n - However, listing the /mountpoint/ directory is not supported and will not show the pool UUIDs that are mounted there.\n - Similarly, while the user can change directory into a `/mountpoint/pool_uuid/` directory, listing that directory is not supported and will not show the container UUIDs that are mounted there.\n - Running `fusermount3 -u /mountpoint` will unmount *all* POSIX containers that have been mounted this way, as well as the `/mountpoint/pool_uuid/` directories.\n\nThreading and resource usage:\n\ndfuse has two types of threads: fuse threads which accept and process requests\nfrom the kernel, and progress threads which complete asynchronous read/write\noperations.\n\nEach asynchronous progress thread uses one DAOS event queue to consume\nadditional network resources. As all metadata operations are blocking, the\nlevel of concurrency in dfuse is limited by the number of fuse threads.\n\nBy default, the total thread count is one per available core to allow maximum\nthroughput. If hyperthreading is enabled, then one thread per hyperthread core\nis used. This can be modified in two ways: Reducing the number of available\ncores by running dfuse in a cpuset via `numactl` or similar tools,\nor by using the `--thread-count`, `--eq-count` or `--singlethread` options:\n\n- The `--thread-count` option controls the total number of threads.\n- Increasing the `--eq-count` option at a fixed `--thread-count` will reduce the number of fuse threads accordingly. The default value for `--eq-count` is `1`.\n- The `--singlethread` mode will use one thread for handling fuse requests and a second thread for a single event queue, for a total of two threads.\n\nIf dfuse is running in background mode (the default unless launched via mpirun)\nthen it will stay in the foreground until the mount is registered with the\nkernel to allow appropriate error reporting.\n\nThe `-o` option can be used to run dfuse via fstab or similar and accepts\nstandard mount options. This will be treated as a comma separated list of\nkey=value pairs, and dfuse will use `pool=` and `container=` keys from this\nstring.\n\nCaching is on by default. The caching behavior for a dfuse mount can be\ncontrolled by command line options. Further caching controls can be set on a\nper-container basis through container attributes.\n\n- If the `--disable-caching` option is used then no caching will be performed, and the container attributes are not used. The default is `--enable-caching`.\n- If `--disable-wb-cache` is used then the write operations for the whole mount are performed in write-through mode, and the container attributes are still used. The default is `--enable-wb-cache`.\n- If `--disable-caching` and `--enable-wb-cache` are both specified, the `--enable-wb-cache` option is ignored and no caching is performed."]]