Compartir a través de

创建 BlobFuse 配置文件

使用配置文件定义 BlobFuse 如何连接到 Azure Blob 存储,并在 Linux 上将容器装载为文件系统时管理其行为。

本文介绍如何生成和自定义配置文件。 创建文件后,在命令中 mount 将其引用为参数。

如何创建配置文件

  1. 确定是否要在 缓存模式流式处理模式下装载容器。 请参阅 流式处理模式与缓存模式

  2. 使用 gen-config 命令生成配置文件。

    以下示例生成一个配置文件,用于在缓存模式下装载容器。

    blobfuse2 gen-config --tmp-path=<local-cache-path> --o <path-to-save-generated-config>
    

    以下示例生成一个配置文件,用于在流式处理模式下挂载容器。

    blobfuse2 gen-config --block-cache --o <path-to-save-generated-config>
    

    这会生成包含默认设置的配置文件。 如果未提供路径,将在当前路径上生成配置。

  3. 在编辑器中打开配置文件,查看和修改设置。

  4. 配置缓存或流式处理模式。

    如果选择在缓存模式下装载容器,请修改 file_cache 设置块。 以下代码片段显示了一个示例配置。

    file_cache:
    path: /tmp/blobfusecache
    timeout-sec: 120 
    

    有关完整示例,请参阅 示例文件缓存配置

    有关配置和优化缓存模式传输的综合指南,请参阅 配置 BlobFuse 进行缓存

    如果选择在流模式下装载容器,请修改 block_cache 设置块。 以下代码片段显示了一个示例配置。

    block_cache:
    block-size-mb: 16
    mem-size-mb: 80
    disk-timeout-sec: 120
    

    有关完整示例,请参阅 示例块缓存配置

    有关配置和优化流模式传输的综合指南,请参阅 为流模式配置 BlobFuse

  5. 若要配置 Azure 存储和 Azure Blob 存储容器详细信息,请修改 azstorage 设置块。 提供帐户类型、存储帐户名称、容器名称、存储帐户终结点和身份验证模式(例如 keymsispn)。 以下代码片段显示了一个示例配置:

    azstorage:
    type: block
    account-name: myaccount
    container: mycontainer
    endpoint: blob.core.chinacloudapi.cn
    mode: msi
    appid: myappid
    

此外,还可以使用其他可选配置设置来微调装载。 有关配置选项的详细信息,请参阅 基本示例配置

可以使用环境变量或通过将参数作为命令的一部分传递来替代配置文件中定义的设置。 有关使用环境变量以及可以使用的所有变量的列表的详细信息,请参阅 BlobFuse 环境变量

配置文件最佳做法

  • 如果您未在配置文件的部分中提供,BlobFuse 会自动检测帐户类型并设置相应的终结点。 因此,如果使用专用终结点,则必须公开 Data Lake Storage 终结点;否则,装载将失败。

  • 如果在配置文件的节中提供,请不要在节中装载已启用分层命名空间的帐户。 否则,某些目录操作会失败。 不要在type: adls节中使用azstorage装载平面命名空间帐户。 否则,会出现装载失败。

  • 若要在内核和 BlobFuse 级别禁用所有形式的缓存,请在配置文件的 libfuse 节中设置 -o direct_io CLI 参数或“direct-io: true”。 此选项强制每个操作直接调用存储服务,确保您始终拥有最新的数据。

    警告

    此配置会导致存储成本增加,因为它会产生更多事务。

  • 若要仅禁用内核缓存,但保留 BlobFuse 缓存(数据和元数据),请在常见配置中设置 disable-kernel-cache: true

    • 不要同时使用direct-io: truedisable-kernel-cache: true

    • 若要控制 BlobFuse 级别的元数据缓存,请设置 attr-cache-timeout

    • 若要控制 BlobFuse 级别的数据缓存,请设置 file-cache-timeout

    • 例如,如果工作流要求在更新后的 3 秒内刷新文件内容,请将这两个超时设置为 3。

    • 将其设置为 0 可让你即时刷新内容,但代价是对存储进行更高的 REST 调用。

有关正确格式的详细信息,请参阅此 配置文件

后续步骤

另请参阅