本页面介绍了如何使用 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 中创建零字节文件。如果未指定此字段,则值默认为 false 。 |
file-path |
日志写入的日志文件的路径,以字符串形式指定。例如 /var/log 。如果未指定此字段,则当 Cloud Storage FUSE 在前台模式下运行时,日志会路由到 stdout;当 Cloud Storage FUSE 在后台模式下运行时,日志会路由到 syslogs。 |
format |
生成日志的格式,以枚举表示。
值为 text 或 json 。如果未指定此字段,则值默认为 json 。 |
severity |
您希望 Cloud Storage FUSE 生成的日志的严重级别,以枚举表示。严重级别按照从最低严重级别到最高严重级别的顺序排列:
指定严重级别时,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 |
一个布尔值,用于确定在从非零偏移处完成首次读取时,是否应异步下载完整对象并将其存储在 Cloud Storage FUSE 缓存目录中。如果您计划执行多次随机读取或部分读取,则应将其设置为 请注意,如果您从偏移量 |
enable-parallel-downloads |
通过使用文件缓存目录作为预提取缓冲区,并使用多个工作器并行下载大型文件,从而加快大型文件的读取速度。默认值为 如需使用并行下载功能,您必须启用文件缓存。如需详细了解并行下载并配置其支持的属性,请参阅使用并行下载提升读取性能。 |
parallel-downloads-per-file |
指定要为每个文件生成的 goroutine 数量上限,以便将对象从 Cloud Storage 下载到文件缓存中。
默认值为 |
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 时用于获取访问令牌的网址。 |
billing-project |
指定在访问已装载的存储桶时要用于结算的项目。在装载启用了请求者付款功能的存储桶时,此标志通常是必需的。 默认项目为无。 |
client-protocol |
指定用于与 Cloud Storage 后端进行通信的协议。该值可以是 http1 (对于 HTTP/1.1)或 http2 (对于 HTTP/2)。默认值为 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 可从 Cloud 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 |
指示 Cloud Storage FUSE 忽略系统中断信号,例如由 Control+C 触发的 SIGINT。这样可以防止信号终止进行中的操作。值为 true 或 false 。默认值为 true 。 |
dir-mode |
目录的权限位,以八进制表示。默认值为 "755" 。 |
file-mode |
指定文件的权限位,以八进制表示。默认值为 "644" 。 |
fuse-options |
指定其他系统特定的装载选项。 |
gid |
指定所有 inode 的群组标识符 (GID) 所有者。
默认 GID 值为 -1 。 |
rename-dir-limit |
允许重命名包含的后代目录少于指定限制的目录。默认限制值为 0 。 |
temp-dir |
指定在上传到 Cloud Storage 之前用于暂存写入数据的临时目录的路径。默认值为系统默认值,例如 "/tmp" 。 |
uid |
指定所有 inode 的用户标识符 (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 ,这包括轨迹日志、调试日志、信息日志、警告日志和错误日志。 默认值为 false 。 |
exit-on-invariant-violation |
检测到内部变体违规行为时退出程序。默认值为 false 。 |