Cloud Storage FUSE 구성 파일

이 페이지에서는 Cloud Storage FUSE 구성 파일을 사용하여 Cloud Storage FUSE의 동작을 영구적으로 구성하는 방법을 설명합니다. 구성 파일을 사용하려면 마운트 명령어의 일부로 --config-file 플래그에 구성 파일의 경로를 지정합니다.

Cloud Storage FUSE 구성 파일 개요

구성 파일은 다음 형식과 필드를 사용하는 YAML 파일입니다. 명령줄 옵션을 사용하여 일부 필드를 지정할 수도 있습니다.

Cloud Storage FUSE 구성 파일 형식 및 필드

다음 YAML 구성 예에서는 Cloud Storage FUSE에서 사용할 수 있는 형식과 필드를 보여줍니다.

app-name: "APP_NAME"
logging:
  file-path: "FILE_PATH"
  format: FORMAT
  severity: SEVERITY
  log-rotate:
    max-file-size-mb: MAX_FILE_SIZE
    backup-file-count: BACKUP_FILE_COUNT
    compress: COMPRESS
cache-dir: "CACHE_DIR"
file-cache:
  max-size-mb: MAX_SIZE
  cache-file-for-range-read: CACHE_FILE_FOR_RANGE_READ
  enable-parallel-downloads: ENABLE_PARALLEL_DOWNLOADS
  parallel-downloads-per-file: PARALLEL_DOWNLOADS_PER_FILE
  max-parallel-downloads: MAX_PARALLEL_DOWNLOADS
  download-chunk-size-mb: DOWNLOAD_CHUNK_SIZE
metadata-cache:
  enable-nonexistent-type-cache: ENABLE_NONEXISTENT_TYPE_CACHE
  negative-ttl-secs: ENABLE_NEGATIVE_TTL_SECS
  stat-cache-max-size-mb: STAT_CACHE_MAX_SIZE
  ttl-secs: TTL_SECS
  type-cache-max-size-mb: TYPE_CACHE_MAX_SIZE
only-dir: "ONLY_DIR"
gcs-auth:
  anonymous-access: ANONYMOUS_ACCESS
  key-file: "KEY_FILE"
  reuse-token-from-url: REUSE_TOKEN_FROM_URL
  token-url: "TOKEN_URL"
gcs-connection:
  billing-project: "BILLING_PROJECT"
  client-protocol: CLIENT_PROTOCOL
  custom-endpoint: "CUSTOM_ENDPOINT"
  http-client-timeout: HTTP_CLIENT_TIMEOUT
  limit-bytes-per-sec: "LIMIT_BYTES_PER_SEC"
  limit-ops-per-sec: "LIMIT_OPS_PER_SEC"
  max-conns-per-host: MAX_CONNS_PER_HOST
  max-idle-conns-per-host: MAX_IDLE_CONNS_PER_HOST
  sequential-read-size-mb: SEQUENTIAL_READ_SIZE
implicit-dirs: IMPLICIT_DIRS
file-system:
  kernel-list-cache-ttl-secs: KERNEL_LIST_CACHE_TTL_SECS
  ignore-interrupts: IGNORE_INTERRUPTS
  dir-mode: "DIR_MODE"
  file-mode: "FILE_MODE"
  fuse-options: FUSE_OPTIONS
  gid: GID
  rename-dir-limit: RENAME_DIR_LIMIT
  temp-dir: "TEMP_DIR"
  uid: UID
foreground: FOREGROUND
gcs-retries:
  max-retry-sleep: MAX_RETRY_SLEEP
  multiplier: "MULTIPLIER"
metrics:
  cloud-metrics-export-interval-secs: CLOUD_METRICS_EXPORT_INTERVAL
  prometheus-port: PROMETHEUS_PORT
debug:
  log-mutex: LOG_MUTEX
  exit-on-invariant-violation: EXIT_ON_INVARIANT_VIOLATION
write:
  enable-streaming-writes: STREAMING_WRITES
  global-max-blocks: MAXIMUM_GLOBAL_BLOCKS

구성 필드

다음 표에서는 구성 파일에서 지정할 수 있는 필드를 설명합니다. 달리 명시되지 않는 한 모든 필드는 선택사항입니다.

필드 설명 유효한 값 기본값
마운트의 애플리케이션 이름입니다. 문자열 값입니다(예: "my-bucket-mount"). ""
로그가 기록되는 로그 파일의 경로입니다. 이 필드가 지정되지 않으면 Cloud Storage FUSE가 포그라운드 모드에서 실행될 때 로그가 stdout으로 라우팅되고 Cloud Storage FUSE가 백그라운드 모드에서 실행될 때 syslogs로 라우팅됩니다. 문자열 값입니다(예: "/var/log"). ""
로그 파일의 형식을 지정합니다.
  • text
  • json
json

Cloud Storage FUSE에서 로그를 생성할 심각도 수준입니다. 심각도 수준은 심각도가 가장 낮은 순에서 높은 순으로 정렬됩니다. 예를 들어 warning을 지정하면 Cloud Storage FUSE가 경고 및 오류에 대한 로그를 생성합니다. 일반적으로 info 심각도 수준을 사용하는 것이 좋습니다.

  • off: 모든 로깅을 사용 중지합니다.
  • error: Cloud Storage FUSE가 작업을 완료하지 못하도록 하거나 마운트 실패, 권한 오류, 심각한 입력/출력(I/O) 오류와 같은 실패를 나타내는 심각한 문제에 관한 메시지가 포함됩니다.
  • warning: 심각하지는 않지만 해결하지 않으면 문제가 될 수 있는 잠재적 문제를 나타내는 메시지가 포함되어 있습니다. 잠재적인 문제에는 심각하지 않은 연결 문제, 지원 중단 경고, 약간의 성능 저하를 유발할 수 있는 리소스 경합, 일시적인 실패에 대한 재시도가 포함됩니다. 이 심각도 수준에는 error 심각도 수준에서 제공된 정보도 포함됩니다.
  • info: 시작 및 종료 메시지, 성공적인 마운트 작업에 관한 정보, 진행 상황 업데이트, 구성 설정 등 로깅 정보를 포함합니다. 이 심각도 수준에는 warningerror 심각도 수준에 관한 정보도 포함됩니다.
  • debug: 시작 및 종료 메시지, 성공적인 마운트 작업에 관한 정보, 진행 상황 업데이트, 구성 설정 등 로깅 정보를 포함합니다. 이 심각도 수준에는 info, warning, error 심각도 수준에서 제공된 정보도 포함됩니다.
  • trace: 각 Cloud Storage FUSE 작업 및 함수 호출에 관한 세부정보를 포함하며, 커널 FUSE 드라이버 및 Cloud Storage와의 gcsFUSE 상호작용을 설명합니다. 이 심각도 수준에는 debug, info, warning, error 심각도 수준에서 제공된 세부정보도 포함됩니다.
info
로그 파일이 순환되기 전에 도달할 수 있는 최대 크기(MB)입니다. 정수. 최솟값은 1입니다. 512
로그를 쓸 활성 파일을 제외하고 보관할 최대 순환된 로그 파일 수입니다.
  • 정수
  • 0: 모든 회전된 로그 파일을 보관함
10
순환된 로그 파일이 gzip을 사용하여 압축되는지 여부를 지정합니다. 불리언 값: true, false true

파일 캐시를 사용 설정하고 파일 캐시 데이터를 저장할 디렉터리를 지정합니다.

경로입니다(예: "/tmp/gcsfuse-cache-path"). 값이 비어 있으면 이 필드가 사용 중지되었음을 나타냅니다. 이 필드는 기본적으로 사용 중지되어 있습니다.

파일 캐시에서 사용할 수 있는 최대 크기(MiB)를 지정하고 파일 캐시가 마운트된 디렉터리 내에서 사용할 수 있는 총 용량을 제한할 수 있습니다.

  • 정수
  • -1: cache-dir에 지정한 디렉터리에서 캐시의 사용 가능한 전체 용량을 사용하도록 지정 cache-dir이 전달된 경우에만 기본값입니다.
  • 0: 파일 캐시를 사용 중지
-1
0이 아닌 오프셋에서 첫 번째 읽기를 완료할 때 전체 객체를 비동기식으로 다운로드하여 Cloud Storage FUSE 캐시 디렉터리에 저장해야 하는지 여부를 결정합니다. 임의 읽기나 부분 읽기를 여러 번 수행하려면 이 옵션을 true로 설정해야 합니다. 불리언 값: true, false false

파일 캐시 디렉터리를 미리 가져오기 버퍼로 사용하여 여러 작업자가 파일의 여러 부분을 동시에 다운로드하게 함으로써 대용량 파일의 읽기를 가속화합니다.

파일 캐싱을 사용 설정하면 동시 다운로드가 자동으로 사용 설정됩니다. 파일 캐싱에 대해 자세히 알아보려면 Cloud Storage FUSE 파일 캐싱 사용을 참고하세요.

동시 다운로드 및 지원 속성을 구성하는 방법에 관해 자세히 알아보려면 동시 다운로드를 참고하세요.

불리언 값: true, false. true
Cloud Storage에서 파일 캐시로 객체를 다운로드하기 위해 파일당 생성할 최대 goroutine 수를 지정합니다. 정수 16
파일의 모든 다운로드 작업에서 특정 시점에 생성할 수 있는 최대 goroutine 수입니다.
  • 정수
  • -1: 무제한 동시 다운로드를 지정
  • 0: 병렬 다운로드를 사용 중지합니다. --enable-parallel-downloads가 전달되지 않거나 false로 전달된 경우에만 사용할 수 있습니다.
  • >0: 상한을 지정하지 않습니다. Cloud Storage FUSE는 머신 구성에 의해 지정된 스패닝할 수 있는 최대 goroutine 수를 기반으로 내부적으로 값을 제한합니다.
머신 CPU 코어 수의 두 배 또는 16 중 더 큰 값입니다.
객체를 파일 캐시로 다운로드할 때 각 goroutine이 Cloud Storage에 전송하는 각 읽기 요청의 크기(MiB)를 지정합니다. 정수 200
파일을 Cloud Storage에서 찾을 수 없으면 NonexistentType 유형으로 유형 캐시 항목을 만듭니다. Cloud Storage에 파일이 생성되지만 파일의 NonexistentType 항목이 캐시되면 NonexistentType 항목이 유형 캐시에서 삭제될 때까지 Cloud Storage FUSE가 파일을 요청할 수 없습니다. 불리언 값: true, false false
통계 캐시에서 사용할 수 있는 최대 메모리 크기(MiB)입니다. 통계 캐시는 항상 메모리에 온전히 보관됩니다.
  • 정수. 다음을 권장합니다.
    • 32: 워크로드에 파일이 최대 20,000개까지 포함된 경우
    • 워크로드가 파일 20,000개를 초과하면 파일 6,000개가 추가될 때마다 10씩 크기 증가. 통계 캐시는 파일당 평균 1,500MiB를 사용합니다.
  • -1: 제한을 설정하지 않으며 통계 캐시에서 필요한 만큼 메모리를 사용하는 경우
  • 0: 통계 캐시를 사용 중지하는 경우
32

캐시에 존재하지 않는 파일의 결과를 저장하는 음성 통계 캐시 항목의 TTL(수명)을 초 단위로 정의합니다.

  • 초를 나타내는 정수(예: 10(10초))
  • 0: 음성 통계 캐싱을 사용 중지
  • -1: 무제한 음성 통계 캐싱을 허용하고 TTL 만료를 사용 중지
5
캐시된 메타데이터 항목의 TTL(수명)을 초 단위로 정의합니다.
  • 초를 나타내는 정수(예: 30(30초))
  • -1: TTL 만료를 우회하고 사용 가능할 때마다 캐시에서 파일 제공
  • 0: 최신 파일 사용. 이 값을 사용하면 Get 메타데이터 호출을 실행하여 캐시에 있는 파일의 객체 생성이 Cloud Storage에 저장된 객체 생성과 일치하는지 확인합니다. 자세한 내용은 캐시 무효화 구성을 참조하세요.
60
유형 캐시에서 사용할 수 있는 디렉터리당 최대 크기(MiB)입니다. 유형 캐시는 항상 메모리에 온전히 보관됩니다.
  • 정수. 다음을 권장합니다.
    • 4: 마운트하는 버킷의 단일 디렉터리 내에 있는 최대 파일 수에 파일이 20,000개 이하로 포함된 경우
    • 마운트하는 단일 디렉터리 내의 최대 파일 수에 파일이 20,000개 넘게 있으면 파일 5,000개(파일당 평균 약 200 바이트)마다 값을 1씩 증분
  • -1: 한도를 지정하지 않고 유형 캐시에서 필요한 만큼 메모리를 사용하도록 하는 경우
  • 0: 유형 캐시를 사용 중지하는 경우
4
버킷 내에서 특정 디렉터리만 마운트합니다. 경로입니다(예: "/etc/gcsfuse.yaml").
요청에 대한 인증을 사용 중지합니다. 인증을 지원하지 않는 커스텀 엔드포인트를 사용하는 경우 이 옵션을 설정해야 합니다. 공개 버킷에서 Cloud Storage FUSE를 사용하는 경우에도 이 옵션을 설정해야 합니다. 불리언 값: true, false false
Cloud Storage에 대해 요청을 인증하기 위해 JSON 키 파일에 대한 절대 경로를 지정합니다. 기본적으로 Cloud Storage FUSE는 인증 요청을 위해 애플리케이션 기본 사용자 인증 정보를 사용합니다. URL 이 옵션을 설정하지 않으면 애플리케이션 기본 사용자 인증 정보가 사용됩니다.
--token-url에서 가져온 토큰을 재사용할지 여부를 지정합니다. 불리언 값: true, false true
--key-file이 없으면 액세스 토큰을 가져오기 위한 URL을 지정합니다. URL
마운트된 버킷에 액세스할 때 청구에 사용할 프로젝트를 지정합니다. 요청자 지불을 사용 설정해서 버킷을 마운트할 때 종종 필수로 요구되는 옵션입니다. '프로젝트 ID'를 나타내는 문자열 값입니다. ""
Cloud Storage 백엔드와 통신하는 데 사용되는 프로토콜을 지정합니다.
  • HTTP/1.1의 경우 http1
  • HTTP/2의 경우 http2
  • grpc의 경우 gRPC. Cloud Storage FUSE와 함께 gRPC를 사용하려면 Cloud Storage FUSE 버전 2.10.0 이상을 사용하는 것이 좋습니다.
http1
데이터 가져오기를 위한 대체 커스텀 엔드포인트를 지정합니다. 커스텀 엔드포인트는 Cloud Storage JSON 엔드포인트 https://storage.s3nsapis.fr/storage/v1과 같이 상응하는 리소스 및 작업을 지원해야 합니다. 커스텀 엔드포인트를 지정하지 않으면 Cloud Storage FUSE가 전역 Cloud Storage JSON API 엔드포인트인 https://storage.s3nsapis.fr/storage/v1을 사용합니다. 지정한 커스텀 엔드포인트에서 인증이 지원되지 않는 경우 --anonymous-access 플래그를 true로 설정하여 인증을 우회합니다. 엔드포인트입니다(예: "http://localhost:443/storage/v1").
시간 초과되기 전 서버에서 응답을 받기 위해 Cloud Storage FUSE HTTP 클라이언트가 대기할 수 있는 기간을 지정합니다. 재생 시간입니다. 예를 들어 1시간 10분 10초의 경우 1h10m10s입니다. 0s는 제한 시간이 없는 경우입니다. 0s: 제한 시간이 없음
Cloud Storage FUSE가 Clous Storage에서 데이터를 읽을 수 있도록 30초 동안 측정된 대역폭 한도를 지정합니다. "-1": 제한 없음
30초 동안 측정된, 초당 수행되는 작업 한도를 지정합니다. 부동 소수점 수. -1는 제한이 없는 경우입니다. "-1"
서버당 허용되는 TCP 연결의 최대 개수를 지정합니다. --client-protocolhttp1로 설정된 경우에 적용됩니다. 0
서버당 허용되는 유휴 연결의 최대 개수를 지정합니다. --client-protocolhttp1로 설정된 경우에 적용됩니다. 0에서 2147483647 사이의 정수입니다. 0는 TCP 연결에 제한이 없음을 지정합니다. 0
Cloud Storage에서 다운로드할 데이터의 청크 크기(MB)를 지정합니다. 1에서 1024 사이의 정수입니다. 200
폴더관리 폴더를 암시적으로 포함합니다. 자세한 내용은 GitHub의 파일 및 디렉터리 문서를 참조하세요. 불리언 값: true, false false
목록 캐시를 사용 설정하고 캐시된 목록 항목의 TTL(수명)을 초 단위로 정의합니다. 목록 캐시는 사용 가능한 메모리를 기반으로 커널에 의해 제어되는 페이지 캐시의 메모리에 보관됩니다.
  • 초를 나타내는 정수(예: 10(10초))
  • 0: 목록 캐싱을 사용 중지
  • -1: 항목 만료를 우회하고 사용 가능한 경우 항상 캐시에서 목록 응답을 반환
0
Control+C에 의해 트리거된 SIGINT와 같은 시스템 중단 신호를 무시하도록 Cloud Storage FUSE에 지시합니다. 그러면 신호로 인해 진행 중인 작업이 종료되지 않습니다. 불리언 값: true, false. true
디렉터리의 권한 비트(8진수)입니다. 000777 사이의 정수(양 끝값 포함) "755"
파일의 권한 비트(8진수)를 지정합니다. 000777 사이의 정수(양 끝값 포함) "644"
시스템별 추가 마운트 옵션을 지정합니다.
모든 노드의 그룹 식별자(GID) 소유자를 지정합니다.
  • GID를 나타내는 정수
  • -1: 호출자의 GID가 사용됨
-1
지정된 한도보다 하위 요소가 더 적게 포함된 디렉터리의 이름 바꾸기를 허용합니다. 0에서 2147483647 사이의 정수입니다. 0
Cloud Storage에 업로드되기 전 쓰기가 스테이징되는 임시 디렉터리의 경로를 지정합니다. 문자열 경로입니다(예: "/mnt/ssd/example-user-gcsfuse-temp-dir"). "/tmp"
모든 아이노드의 사용자 식별자(UID) 소유자를 지정합니다.
  • UID를 나타내는 정수
  • -1: 호출자의 UID가 사용됨
-1
포그라운드에서 gcsfuse 명령어를 실행합니다. 불리언 값: true, false false
Cloud Storage FUSE가 지수 백오프를 사용하여 재시도 루프에서 절전 모드로 전환될 수 있는 최대 기간을 지정합니다. 백오프 기간이 지정된 최대 기간을 초과하면 지정된 최대 기간 동안 재시도가 계속됩니다. 기간. 예를 들어 1시간 5분 50초의 경우 1h5m50s, 60초의 경우 60s입니다. 30s
연속 재시도 사이의 지수 백오프의 배수를 지정합니다. 부동 소수점 수 "2"

지정된 간격으로 Cloud Monitoring에 측정항목을 내보냅니다.

값을 초 단위로 나타내는 정수(예: 10(10초)). 0는 내보내기 없음을 지정합니다. 0

지정된 포트와 /metrics 경로에서 Prometheus 측정항목 엔드포인트를 노출합니다.

지정하려는 포트를 나타내는 정수 0
뮤텍스가 너무 오랫동안 유지되면 디버그 메시지를 출력합니다. 이 옵션을 지정하면 로그의 심각도 수준이 trace로 자동 설정되며 trace 로그, 디버그 로그, 정보 로그, 경고 로그, 오류 로그가 포함됩니다. 불리언 값: true, false. false
내부 변이 위반이 인식되면 프로그램을 종료합니다. 불리언 값: true, false. false
쓰기 경로 흐름을 제어하여 데이터가 로컬에서 완전히 스테이징되고 close() 또는 fsync()에 업로드되는 대신 쓰기가 완료될 때마다 Cloud Storage에 직접 업로드되도록 합니다. 스트리밍 쓰기에 관한 자세한 내용은 Cloud Storage FUSE GitHub 문서를 참고하세요. 불리언 값: true, false. true

모든 파일에서 스트리밍 쓰기에 사용할 수 있는 최대 데이터 청크 수를 지정합니다. 각 파일은 기본적으로 32MiB 데이터 청크 하나를 사용합니다.

  • 정수
  • 0: 스트리밍 쓰기를 사용 중지합니다.
  • -1: 값을 무제한 청크로 설정합니다.
  • 리소스가 제한된 사양이 낮은 머신의 기본값: 4
  • 리소스가 많은 고사양 머신의 기본값: 1600

맨 위로