You need to enable JavaScript to run this app.
导航
挂载桶为本地文件系统目录(mount)
最近更新时间:2024.12.16 17:57:15首次发布时间:2024.06.24 19:37:18

您可以通过 mount 命令将对象存储的桶挂载为本地文件系统目录,然后通过标准的 POSIX 协议访问。

注意事项

  • 仅支持在 Linux 和 macOS 系统执行该命令。
  • 当多个客户端挂载同一个 TOS 存储桶时,您需要自行协调各个客户端的行为。

支持的操作

挂载存储桶到本地后, 本地系统可以通过兼容的 POSIX 文件接口管理桶内对象。由于只兼容部分 POSIX 语义,因此在本地系统对存储桶执行的操作受限。具体说明如下:

  • 对于文件写操作,仅支持追加写,不支持修改写。

    说明

    文件写操作遵守 open-to-close 原则,没有执行 flush 操作前,文件可能不会写入到 TOS 服务端。

  • 支持 lookup、getattr、setattr、readdir、read、mkdir、rmdir、create、open、write、flush、fsync、release、unlink、rename、statfs 相关的操作。
  • 不支持 getxattr、setxattr、removexattr、listxattr、readlink、getlk、setlk、setlkw、link、symlink、allocate、lseek、copyfilerange 相关的操作。

前提条件

使用 mount 命令挂载存储桶前,请确保您已安装 Fuse 软件。

命令语法

./tosutil mount tos://bucket[/prefix] mount_point [-sc=xxx] [-fg] [-ro] [-ad] [-aow] [-ar] [-ac] [-ao] [-dau] [-dbcbr] [-vchecksum] [-dm=0] [-fm=0] [-uid=0] [-gid=0] [-pprof] [-pport=0] [-bgt=0] [-etmout=0] [-atmout=0] [-rconcurrency=0] [-wconcurrency=0] [-oconcurrency=0] [-rl=xxx] [-debug] [-dld=xxx] [-rbs=xxx] [-ups=xxx] [-mrbs=xxx] [-mwbs=xxx] [-tfd=xxx] [-futf] [-rlft=1] [-cfd=xxx] [-mcs=0] [-rfdl=0] [-wfdl=0] [-nftr] [-e=xxx] [-re=xxx] [-i=xxx] [-k=xxx] [-t=xxx] [-conf=xxx]

参数说明

通用可选参数的说明,请参见通用可选参数

参数名

参数类型

描述

bucket

String

桶名。

prefix

String

对象名前缀。

mount_point

String

待挂载的本地文件系统目录路径。

-sc

Enum

写入被挂载桶内对象的存储类型,取值说明如下:

  • STANDARD:标准存储,默认值。
  • IA:低频访问存储。
  • ARCHIVE_FR:归档闪回存储。
  • ARCHIVE:归档存储。
  • COLD_ARCHIVE:冷归档存储。
  • DEEP_COLD_ARCHIVE:深度冷归档存储。

-fg

Bool

使用前台进程模式执行挂载。

-ro

Bool

将本地文件系统目录挂载为 Read-Only 模式。

-ad

Bool

允许在挂载的本地文件系统目录上执行删除操作。

-aow

Bool

允许在挂载的本地文件系统目录上执行覆盖操作。

-ar

Bool

允许在挂载的本地文件系统目录上执行重命名(移动)操作。

-ac

Bool

允许对已存在文件执行追加写操作。

说明

-ac **** 参数仅支持 FNS 桶,关于 FNS 桶详细介绍,请参见存储桶类型

-ao

Bool

允许其他操作系统用户访问挂载的本地文件系统目录。

-dau

Bool

关闭进程退出时自动卸挂载机制。

-dbcbr

Bool

关闭通过 readdir 操作来构建文件元数据本地缓存机制。

-vchecksum

Bool

在顺序读写场景校验数据一致性。

-dm

Integer

挂载的本地文件系统的目录权限,默认为 0755。

-fm

Integer

挂载的本地文件系统的文件权限,默认为 0644。

-uid

Integer

挂载的本地文件系统目录的 uid,默认为当前用户的 uid。

-gid

Integer

挂载的本地文件系统目录的 gid,默认为当前用户的 gid。

-pprof

Bool

开启或关闭 pprof 服务,默认为开启。

-pport

Integer

开启 pprof 服务时使用的端口号,默认为 18888。

-bgt

Integer

允许操作系统 fuse 命令异步执行的最大请求数,默认为 16。

-etmout

Integer

挂载的本地文件系统目录的 Entry-Timeout,单位:秒,默认为 1 秒。

-atmout

Integer

挂载的本地文件系统目录的 Attribute-Timeout,单位:秒,默认为 1 秒。

-rconcurrency

Integer

从桶内读取数据的最大并发数,默认为 1000。

-wconcurrency

Integer

向桶内写入数据的最大并发数,默认为 1000。

-oconcurrency

Integer

在桶上执行非读写操作的最大并发数,默认为 1000。

-rl

Integer/String

读写数据的最大带宽(吞吐),单位:字节,默认为 1GB。

说明

支持带容量单位配置,例如,配置 1MB 代表 1048576 字节。

-debug

Bool

开启 fuse 命令的 Debug 日志。

-dld

String

写入 Debug 日志的本地文件目录。

-rbs

Integer/String

读取数据的缓存块大小,默认为 3MB。

说明

支持带容量单位配置,例如,配置 1MB 代表 1048576 字节。

-ups

Integer/String

写入数据时的分片大小,默认为 8MB。

说明

支持带容量单位配置,例如,配置 1MB 代表 1048576 字节。

-mrbs

Integer/String

读取单个文件数据时可用的最大内存,默认为 100MB。

说明

支持带容量单位配置,例如,配置 1MB 代表 1048576 字节。

-mwbs

Integer/String

写入单个文件数据时可用的最大内存(不使用本地临时文件场景),默认为 50MB。

说明

支持带容量单位配置,例如,配置 1MB 代表 1048576 字节。

-tfd

String

写入数据时使用的本地临时文件的目录,当分片大小大于 20MB 时,会使用本地临时文件。

-futf

Bool

写入数据时,强制使用本地临时文件不论分片大小。

-rlft

Integer/String

执行 rename 操作时的大文件阈值。

说明

支持带容量单位配置,例如,配置 1MB 代表 1048576 字节。

-cfd

String

读取数据时使用的本地缓存文件的目录,未设置该值则代表不开启本地缓存。

-mcs

Integer/String

开启本地缓存后,本地缓存文件的存储容量上限,默认为 1TB。

说明

支持带容量单位配置,例如,配置 1MB 代表 1048576 字节。

-rfdl

Integer

最大可打开的读描述符个数,默认为 10000。

-wfdl

Integer

最大可打开的写描述符个数,默认为 10000。

-nftr

Bool

执行打开文件描述符(fd)的 flush 操作时,数据不会立即写入存储桶,而是要到资源释放(release) 时才会触发写入存储桶内。

使用示例

执行命令挂载桶为标准的本地文件系统目录,并配置支持覆盖、删除、移动。示例如下:

  • 命令
./tosutil mount tos://bucket-test mount_path -aow -ad -ar
  • 返回
bucket [bucket-test] is mounted at [/root/mount_path] with generation [8282ef44-305f-11ef-a7ae-b645e1163e54]
  • 验证

挂载完成后,您可以通过 df -h <mount_point> 命令,查看存储桶是否挂载成功。例如本例中执行以下命令:

df -h mount_path

返回如下,表示挂载成功。

Filesystem      Size  Used Avail Use% Mounted on
tosutil/v3.0.1  0.0K  0.0K  0.0K    - /root/mount_path

说明

挂载完成后,如果您想要取消挂载存储桶,您可以使用 umount <mount_point> 命令。