概述
更新时间:2026-09-18
概述
BOSFS2 用于实现将远程bos服务挂载到本地文件系统中,实现类似于网络文件系统的功能,目的是便于用户使用系统命令或者类POSIX接口访问BOS上的文件,就像使用本地磁盘一样方便。
BOSFS2 基于FUSE实现,因此依赖于支持FUSE的操作系统。目前支持基本的POSIX语义调用,暂时不支持硬链接、符号链接(symlink)、扩展属性、文件ACL等。
BOSFS2.0相较于BOSFS1.0,在顺序读写和高并发小文件读取方面均实现了显著的性能提升。
| 系统 | 名称及下载地址 | MD5 |
|---|---|---|
| ubuntu 20.04+ | bosfs2_2.0.21.7_amd64.deb | fb30d67150de096d6d13cca2eeef71d6 |
| centos 7+ | bosfs2-2.0.21.7-x86_64.rpm | ea15098c84567277590ff57ca09e1455 |
适用场景
BOSFS2 适用于对存储访问性能要求较高、以顺序读写或小文件高并发读取为主,同时不需要完整 POSIX 语义的场景,比如 AI 训练、推理、大数据处理、自动驾驶等。
使用限制
- 权限要求:需确保 AccessKey 对目标 Bucket 或前缀(prefix)相关资源拥有全部权限,否则可能导致挂载失败或功能异常。
- 文件读取限制:新写入的文件必须在文件关闭后才会完全上传到 BOS。读取一个正在顺序写入、尚未关闭的文件可能导致报错(支持随机写的小文件不受此限制)。
- 单文件大小上限为「分片大小 × 10000」(默认分片 16MB,约 160GB);超过上限的写入将返回 EFBIG,如需写入更大文件请调大
multipart_size配置。 - 目录重命名不保证原子性:在正被 mv 的目录下创建文件,可能导致该文件仍留在原目录下。
- 多个客户端访问同一个或多个挂载点时,数据一致性由使用侧维护,可能出现多端数据不一致情况。
- 不支持同名的目录和文件,比如同时存在 "a/b/c" 和 "a/b/c/"。
POSIX API支持情况
| 功能分类 | 操作/功能 | bosfs 2.0 |
|---|---|---|
| 文件基础操作 | open | 支持 |
| flush | 支持 | |
| close | 支持 | |
| 文件读写 | read | 支持 |
| write | 支持大文件顺序写入 支持小文件随机写入(大文件随机写需预留足够内存并调大 multipart_size/mem_limit) | |
| truncate | 仅支持open时清空文件 | |
| 文件元操作 | create | 支持 |
| unlink | 支持 | |
| rename | 支持 | |
| 目录操作 | mkdir | 支持 |
| readdir | 支持 | |
| rmdir | 支持 | |
| 权限与属性 | getattr | 支持 |
| chmod | 不支持(操作不报错,但设置不生效) | |
| chown | 不支持(操作不报错,但设置不生效) | |
| utimes | 不支持(操作不报错,但设置不生效) | |
| 扩展功能 | setxattr | 不支持(操作不报错,但设置不生效) |
| link(硬链接) | 不支持 | |
| symlink | 不支持 | |
| flock | 支持本挂载点级别的flock |
评价此篇文章
