이 페이지에서는 Cloud Storage FUSE 구성 파일을 사용하여 Cloud Storage FUSE의 동작을 영구적으로 구성하는 방법을 설명합니다. 구성 파일을 사용하려면 마운트 명령어의 일부로 --config-file
플래그에 구성 파일의 경로를 지정합니다.
구성 파일은 다음 형식과 필드를 사용하는 YAML 파일입니다. 명령줄 옵션을 사용하여 일부 필드를 지정할 수도 있습니다.
app-name: "APP_NAME" write: create-empty-file: CREATE_EMPTY_FILE 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 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 stat-cache-max-size-mb: STAT_CACHE_MAX_SIZE ttl-secs: TTL_SECS type-cache-max-size-mb: TYPE_CACHE_MAX_SIZE cache-dir: "CACHE_DIR" 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: stackdriver-export-interval: STACKDRIVER_EXPORT_INTERVAL debug: log-mutex: LOG_MUTEX exit-on-invariant-violation: EXIT_ON_INVARIANT_VIOLATION
구성 필드
다음 표에서는 구성 파일에서 지정할 수 있는 필드를 설명합니다. 달리 명시되지 않는 한 모든 필드는 선택사항입니다.
필드 | 설명 |
---|---|
app-name |
마운트의 애플리케이션 이름입니다. |
create-empty-file |
마운트된 버킷의 새 파일에 쓰기 시작할 때 Cloud Storage에서 0바이트 파일을 만들지 여부를 지정하는 불리언 값입니다. 이 필드를 지정하지 않으면 기본값은 false 입니다. |
file-path |
로그가 기록되는 로그 파일의 경로이며 문자열로 지정됩니다. 예를 들면 /var/log 입니다. 이 필드가 지정되지 않으면 Cloud Storage FUSE가 포그라운드 모드에서 실행될 때 로그가 stdout으로 라우팅되고 Cloud Storage FUSE가 백그라운드 모드에서 실행될 때 syslog로 라우팅됩니다. |
format |
로그가 생성되는 형식이며 enum으로 표시됩니다.
값은 text 또는 json 입니다. 이 필드를 지정하지 않으면 기본값은 json 입니다. |
severity |
Cloud Storage FUSE에서 생성하려는 로그의 심각도이며 enum으로 표시됩니다. 심각도 수준은 심각도가 가장 낮은 순에서 높은 순으로 정렬됩니다.
심각도 수준을 지정하면 Cloud Storage FUSE는 심각도가 같거나 더 높은 로그를 생성합니다. 예를 들어 다음 옵션 중 하나라도 명령어의 일부로 지정되면 심각도 수준이
이 필드를 지정하지 않으면 기본값은
참고: 파일 캐싱이 사용 설정된 경우 |
max-file-size-mb |
로그 파일이 순환되기 전에 도달할 수 있는 최대 크기(MB)입니다. 최솟값은 1 입니다. 이 필드를 지정하지 않으면 기본값은 512 입니다. |
backup-file-count |
로그를 쓸 활성 파일을 제외하고 보관할 최대 순환 로그 파일 수입니다. 값이 0 으로 설정되면 순환된 모든 로그 파일이 보관됩니다. 이 필드를 지정하지 않으면 기본값은 10 입니다. |
compress |
순환된 로그 파일이 gzip을 통해 압축되는지 여부를 지정하는 불리언 값입니다. 이 필드를 지정하지 않으면 기본값은 true 입니다. |
max-size-mb |
파일 캐시에서 사용할 수 있는 최대 크기(MiB)입니다. 있으면
이 필드를 지정하지 않으면 기본값은 |
cache-file-for-range-read |
0이 아닌 오프셋에서 첫 번째 읽기를 수행할 때 전체 객체를 비동기식으로 다운로드하여 Cloud Storage FUSE 캐시 디렉터리에 저장해야 하는지 여부를 결정하는 불리언입니다. 임의 읽기나 부분 읽기를 여러 번 수행하려면 오프셋 |
enable-parallel-downloads |
파일 캐시 디렉터리를 프리페치 버퍼로 사용하여 여러 작업자가 대용량 파일을 동시에 다운로드하게 함으로써 대용량 파일의 읽기를 가속화합니다. 기본값은 동시 다운로드를 사용하려면 파일 캐싱을 사용 설정해야 합니다. 동시 다운로드에 관해 자세히 알아보고 지원 속성을 구성하려면 동시 다운로드를 사용하여 읽기 성능 개선을 참고하세요. |
parallel-downloads-per-file |
Cloud Storage에서 파일 캐시로 객체를 다운로드하기 위해 파일당 생성할 최대 goroutine 수를 지정합니다.
기본값은 |
max-parallel-downloads |
파일의 모든 다운로드 작업에서 특정 시점에 생성할 수 있는 최대 goroutine 수입니다. 기본값은 머신의 CPU 코어 수의 두 배입니다. 한도를 우회하려면 값을 |
download-chunk-size-mb |
객체를 파일 캐시로 다운로드할 때 각 goroutine이 Cloud Storage에 전송하는 각 읽기 요청의 크기(MiB)를 지정합니다.
기본값은 |
enable-nonexistent-type-cache |
파일을 Cloud Storage에서 찾을 수 없으면 NonexistentType 유형으로 유형 캐시 항목을 만듭니다. Cloud Storage에 파일이 생성되지만 파일의 NonexistentType 항목이 캐시되면 NonexistentType 항목이 유형 캐시에서 삭제될 때까지 Cloud Storage FUSE가 파일을 요청할 수 없습니다.
기본값은 false 입니다. |
stat-cache-max-size-mb |
통계 캐시에서 사용할 수 있는 MiB 단위의 최대 크기입니다. 통계 캐시는 항상 메모리에 온전히 보관됩니다.
이 필드를 지정하지 않으면 기본값은 |
ttl-secs |
캐시된 메타데이터 항목의 TTL(수명)을 초 단위로 정의합니다.
이 필드를 지정하지 않으면 기본값은 |
type-cache-max-size-mb |
유형 캐시에서 사용할 수 있는 디렉터리당 최대 크기(MiB)입니다. 유형 캐시는 항상 메모리에 온전히 보관됩니다.
이 필드를 지정하지 않으면 기본값은 |
cache-dir |
파일 캐시 데이터를 저장할 디렉터리를 지정합니다. 파일 캐싱을 사용 설정하려면 이 필드를 지정해야 합니다. |
only-dir |
버킷 내에서 특정 디렉터리만 마운트합니다. |
anonymous-access |
요청에 대한 인증을 사용 중지합니다. 인증을 지원하지 않는 커스텀 엔드포인트를 사용하거나 Cloud Storage FUSE를 사용하여 공개 버킷을 마운트하는 경우 이 필드를 설정합니다. 기본값은 false 입니다. |
key-file |
Cloud Storage에 대해 요청을 인증하기 위해 JSON 키 파일에 대한 절대 경로를 지정합니다. 기본적으로 Cloud Storage FUSE는 인증 요청을 위해 애플리케이션 기본 사용자 인증 정보를 사용합니다. |
reuse-token-from-url |
token-url 에서 가져온 토큰을 사용하도록 지정합니다.
기본값은 true 입니다. |
token-url |
key-file 이 없으면 액세스 토큰을 가져오기 위한 URL을 지정합니다. |
billing-project |
마운트된 버킷에 액세스할 때 청구에 사용할 프로젝트를 지정합니다. 이 플래그는 요청자 지불을 사용 설정해서 버킷을 마운트할 때 종종 필수입니다. 기본 프로젝트는 없음입니다. |
client-protocol |
Cloud Storage 백엔드와 통신하는 데 사용되는 프로토콜을 지정합니다. 값은 HTTP/1.1의 경우 http1 또는 HTTP/2의 경우 http2 입니다. 기본값은 http1 입니다. |
custom-endpoint |
데이터 가져오기를 위한 대체 커스텀 엔드포인트를 지정합니다.
커스텀 엔드포인트는 Cloud Storage JSON 엔드포인트 https://storage.googleapis.com/storage/v1 과 같이 상응하는 리소스 및 작업을 지원해야 합니다.
커스텀 엔드포인트를 지정하지 않으면 Cloud Storage FUSE가 전역 Cloud Storage JSON API 엔드포인트인 https://storage.googleapis.com/storage/v1 을 사용합니다.
지정한 커스텀 엔드포인트에서 인증이 지원되지 않는 경우 anonymous-access 플래그를 true 로 설정하여 인증을 우회합니다.
|
http-client-timeout |
시간 초과되기 전 서버에서 응답을 받기 위해 Cloud Storage FUSE HTTP 클라이언트가 대기할 수 있는 기간을 지정합니다. 기본값은 0s 이고, 시간 제한이 없음을 나타냅니다. |
limit-bytes-per-sec |
Cloud Storage FUSE가 Clous Storage에서 데이터를 읽을 수 있도록 30초 동안 측정된 대역폭 한도를 지정합니다. 기본 한도 값은 한도 없음을 지정하는 "-1" 입니다. |
limit-ops-per-sec |
30초 동안 측정된, 초당 수행되는 작업 한도를 지정합니다. 기본 한도 값은 한도 없음을 지정하는 "-1" 입니다. |
max-conns-per-host |
서버당 허용되는 TCP 연결의 최대 개수를 지정합니다. 이것은 client-protocol 이 http1 로 설정된 경우에 적용됩니다. 기본값은 0 이며 이는 머신 사양에서 설정한 제한사항을 제외하고 TCP 연결에 한도가 없음을 지정합니다. |
max-idle-conns-per-host |
서버당 허용되는 유휴 연결의 최대 개수를 지정합니다. 기본값은 100 입니다. |
sequential-read-size-mb |
Cloud Storage에서 다운로드할 데이터의 청크 크기(MB)를 지정합니다. 기본값은 200 입니다. |
implicit-dirs |
자세한 내용은 GitHub의 파일 및 디렉터리 문서를 참조하세요. |
kernel-list-cache-ttl-secs |
목록 캐시를 사용 설정하고 캐시된 목록 항목의 TTL(수명)을 초 단위로 정의합니다.
목록 캐시의 메모리 할당은 사용 가능한 메모리를 기반으로 커널에 의해 제어됩니다. 기본값은 0 이며 목록 캐싱을 사용 중지합니다.
kernel-list-cache-ttl-secs 필드를 설정하려면 커널의 페이지 캐시에 디렉터리 목록 응답을 보관하기 위한 양수 값을 초 단위로 지정합니다. 항목 만료를 우회하고 사용 가능한 경우 항상 캐시에서 목록 응답을 반환하려면 -1 값을 지정합니다. |
ignore-interrupts |
Control+C 에 의해 트리거된 SIGINT와 같은 시스템 중단 신호를 무시하도록 Cloud Storage FUSE에 지시합니다. 그러면 신호로 인해 진행 중인 작업이 종료되지 않습니다. 값은 true 또는 false 입니다. 기본값은 true 입니다. |
dir-mode |
디렉터리의 권한 비트(8진수)입니다. 기본값은 "755" 입니다. |
file-mode |
파일의 권한 비트(8진수)를 지정합니다. 기본값은 "644" 입니다. |
fuse-options |
시스템별 추가 마운트 옵션을 지정합니다. |
gid |
모든 노드의 그룹 식별자(GID) 소유자를 지정합니다.
기본 GID 값은 -1 입니다. |
rename-dir-limit |
지정된 한도보다 하위 요소가 더 적게 포함된 디렉터리의 이름 바꾸기를 허용합니다. 기본 한도 값은 0 입니다. |
temp-dir |
Cloud Storage에 업로드되기 전 쓰기가 스테이징되는 임시 디렉터리의 경로를 지정합니다. 기본값은 시스템 기본값입니다(예: "/tmp" ). |
uid |
모든 아이노드의 사용자 식별자(UID) 소유자를 지정합니다. 기본 UID 값은 -1 입니다. |
foreground |
포그라운드에서 gcsfuse 명령어를 실행합니다. 기본값은 false 입니다. |
max-retry-sleep |
Cloud Storage FUSE가 지수 백오프를 사용하여 재시도 루프에서 절전 모드로 전환될 수 있는 최대 기간을 지정합니다. 백오프 기간이 지정된 최대 기간을 초과하면 지정된 최대 기간 동안 재시도가 계속됩니다. 기본값은 30s (30초)입니다. |
multiplier |
재시도 사이에 지수 백오프를 지정합니다. 여기서 값은 이전 대기 시간을 기준으로 후속 대기 시간의 배수입니다. 기본값은 "2" 입니다. |
stackdriver-export-interval |
지정된 간격으로 Cloud Monitoring에 측정항목을 내보냅니다. 기본값은 내보내기 없음을 지정하는 0s (0초)입니다. |
log-mutex |
뮤텍스가 너무 오랫동안 유지되면 디버그 메시지를 출력합니다. 이 옵션을 지정하면 로그의 심각도 수준이 trace 로 자동 설정되며 trace 로그, 디버그 로그, 정보 로그, 경고 로그, 오류 로그가 포함됩니다. 기본값은 false 입니다. |
exit-on-invariant-violation |
내부 변이 위반이 인식되면 프로그램을 종료합니다. 기본값은 false 입니다. |