dfuse 참조

사용법: 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 풀과 컨테이너는 여러 가지 방법으로 지정할 수 있습니다. 풀과 컨테이너를 지정하는 방법은 하나만 사용해야 합니다.

  • 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 옵션이 무시되고 캐싱이 실행되지 않습니다.