📣TiDB Cloud BYOC、TiDB Cloud Filesystem 和 PostgreSQL-compatible TiDB Cloud Starter 全新发布,开放公测中。此页面由 AI 自动翻译,英文原文请见此处。

挂载文件系统



在 TiDB Cloud Filesystem 中,当编辑器、应用程序、agent 或其他工具需要本地文件路径时,你可以将文件系统挂载为本地目录。挂载后,这些工具就可以通过本地文件操作来读写远程文件。

如果只需通过 CLI 访问,请使用 ti fs 命令 来读取、复制、整理和搜索文件,而无需挂载。

选择挂载方法

可用的挂载方法取决于你的环境:

环境挂载方法指南
LinuxFUSE在 Linux 上挂载文件系统
macOS一般文件访问使用 WebDAV,或使用 macFUSE 的 FUSE 以支持 FUSE 特有功能在 macOS 上挂载文件系统
Linux 上的 DockerFUSE,需要访问 /dev/fuse 并授予额外的容器权限在 Docker 中挂载文件系统

Windows 不支持原生文件系统挂载。在 Windows 上,请改用直接命令,例如 ti fs copy-file、ti fs read-file 和 ti fs list-files。

在 macOS 上,WebDAV 足以满足一般文件访问需求,且不需要额外的挂载软件。对于挂载 layer 或 checkpoint、使用 --read-only 创建本地只读挂载,以及使用 drain-file-system 等功能,则必须使用 FUSE。

不配置 profile 直接使用 Token

有了文件系统 Token 和 Region 后,你无需配置 ti 配置(Profile),也无需提供 TiDB Cloud API key,即可访问文件:

export TI_FS_TOKEN="<filesystem-token>" export TI_REGION_CODE="<filesystem-region-code>"

然后按照适用于你环境的指南进行操作。该 Token 用于标识文件系统,并限制当前环境可访问的路径和可执行的操作。请将该 Token 视为 Secret 妥善保管。

常见挂载能力

文件系统挂载支持多种选项,可改变通过本地挂载暴露的内容:

仅挂载文件系统的一部分

默认情况下,挂载会暴露文件系统根目录 /。你可以改用 --remote-path 来仅暴露特定的远程目录。当范围受限 Token 只授权访问某个特定路径时,这种方式也很有用。

创建只读挂载

使用 --driver fuse --read-only 可防止通过 FUSE 挂载进行写入。WebDAV 不支持此选项。若要在挂载和 CLI 命令之间统一强制只读访问,请使用仅具有 read 和 list 权限的范围受限 Token。挂载选项不会改变 Token 权限。

挂载 layer 和 checkpoint

layer 和 checkpoint 需要使用 FUSE。checkpoint 挂载始终为只读。

有关 layer 和 checkpoint 的工作流,请参见管理文件系统 layer 和 checkpoint。

使用前验证挂载

挂载命令成功执行或目录列表能够显示,并不能证明文件读写一定正常。请读取一个已通过 ti fs copy-file 上传的已知小文件。对于可写挂载,请写入一个新的测试文件,关闭该文件,并成功卸载挂载。然后通过 ti fs read-file 读取该文件,以确认写入已到达服务端。完整示例请参见 Linux 验证步骤 或 macOS WebDAV 验证步骤。

如果小文件检查在 30 秒后仍未返回,请中断该操作,并按照挂载成功,但文件访问假死进行排查。在验证通过之前,不要在该挂载上启动应用程序。

安全结束使用

完成后卸载

停止应用程序向挂载目录写入,关闭已打开的文件,并按照你的平台指南运行 ti fs unmount-file-system。正常的 FUSE 卸载会在停止挂载前刷写待处理的写入。在移除机器或其本地缓存之前,请通过直接 CLI 读取来验证所需文件。卸载只会移除本地挂载,不会删除文件系统或其中的数据。

FUSE 写入行为

FUSE 挂载在将写入发送到服务之前,可能会先在本地进行缓冲。正常卸载已包含刷写,因此你无需先运行 drain-file-system。如果挂载日志在卸载后报告 force_quit 或仍有待处理写入,请按照卸载返回成功但挂载进程异常退出进行处理。

仅当你需要在保持挂载运行的同时,让待处理写入到达文件系统时,才使用 drain-file-system,例如在创建 checkpoint 之前,或在需要让另一个环境可访问已更新文件时。

WebDAV 挂载不支持 drain-file-system。

接下来做什么

选择适用于你环境的指南:

有关所有挂载选项,请参见 mount-file-system 命令参考。

文档内容是否有帮助?