配置
更新时间:2025-12-30
参数设置
bosfs支持设定参数来配置用户权限、存储类型及缓存等。执行bosfs –h可以获得bosfs参数设置的详细说明:
| bosfs参数 | 配置作用 | 注意事项 |
|---|---|---|
| -o use_cache, -o bos.fs.cache.base=< your_cache_dir_path > | 指定文件缓存模式下cache file位置 | 该位置不能在挂载点内,且必须是绝对路径, 被缓存的文件会长期存储在该目录下 |
| -o allow_other -o mount_umask=0000 | 允许其他用户访问挂载点,并通过mount_umask禁止某些权限,mount_umask与linux umask含义一致 | 默认情况下,bosfs只具有挂载用户的读、写、执行权限即S_IRWXU |
| -o meta_expires=< integer seconds> | 指定meta缓存过期时间 | 默认为不过期, 多端同时使用/挂载同一bucket时,建议配置-o meta_expires=0, 保证元数据和bos服务端一致, 详情见下文中 配置实践 |
| -o meta_capacity=< integer number> | 指定内存中meta缓存容量,超过容量后过期的缓存会被以lru方式清除 | 默认 100000, 注意使用meta cache后, 多挂载点读写同一个bucket数据时, bosfs中文件元信息可能出现与bos服务端不一致情况 |
| -o meta_strategy=<remote,merge,local> | 指定meta读取策略 remote:从远端读 merge:从远端读且于本地合并 local:只读本地缓存 | 该参数需于meta_expires配置使用 |
| -o storage_class=< standard or standard_ia> | 指定object存储类型,包括标准存储和低频存储 | 默认为标准存储 |
| -o tmpdir=<your_tmp_dir> | 指定file模式下临时文件位置 | 该位置不能在挂载点内,且必须是绝对路径,临时文件非长期存储在磁盘,close file后临时文件会被自动清除, 但需保证该目录磁盘空间充足, bosfs默认使用该模式 |
| -o multipart_size=<integer KB,MB> | 指定并发传输的分片大小,可用KB或MB单位 | 默认为10MB |
| -o multipart_threshold=<integer KB,MB> | 指定启用三步上传的文件大小阈值, 超过该阈值则开启 | 默认为100MB |
| -o multipart_parallel=<integer number'> | 限制大文件上传并发度 | 可根据网络带宽等因素合理配置, 一般配置为10 |
| -o preload_blocks=<integer number,MB> | 指定预读blocks数, 单次预读数据为: preload_blocks*1MB | 默认0, 如进行大文件下载(顺序读), 建议配置, 若进行随机读, 则不建议配置 |
| -o connect_timeout=< milliseconds> | 指定连接Bos server的超时时间 | 默认1000ms |
| -o client_timeout=< milliseconds> | 指定数据传输的超时时间 | 默认1200000s, 处于弱网/公网状态建议进行重新配置, 超时后会进行重试, 根据网络环境配置. |
| -o rw_strategy=<mem_sequence,mem_random> | 指定读写策略, mem_sequence:使用内存模式, 只进行顺序读写(适用于只上传下载场景); mem_random:使用内存模式, 进行随机读写 | mem_sequence:只能进行顺序读写, 使用于上传/下载大文件(size>10GB), 可提升性能且减少/tmp目录下临时文件的空间使用. |
| -o mem_cache_per_size=< integer MB> | 配置rw_strategy=mem_sequence/mem_random前提下, 指定单个文件的内存cache大小 | 配置rw_strategy=mem_random时, 需注意, mem_cache_per_size值必须大于所有可能打开文件大小最大值. |
| -o mem_cache_limit_size=< integer MB> | 配置rw_strategy=mem_sequence/mem_random前提下, 指定bosfs进程所能使用当做文件缓存的总内存阈值, 超过该阈值, 则自动转换成普通file模式 | bosfs进程所能使用当做文件缓存的总内存阈值=同时open文件数据 *mem_cache_per_size, 默认值为启动bosfs时系统free内存大小 * 80% |
| -o logfile=</tmp/bosfs.log> -o loglevel=debug | 开启bosfs日志,可配置日志位置在/tmp/bosfs.log下 | 默认1GB进行切割, 测试环境下建议开启debug日志 |
| -o credentials=/path/credentials | 配置通过/path/credentials文件读取ak/sk等信息, 使用sts权限时必须使用此方式 | 具体格式: [defaults] bce_access_key_id = xxx bce_secret_access_key = xxx bce_security_token = xxx reload_interval_s=60 |
| fuse参数 | 配置作用 | 注意事项 |
|---|---|---|
| -o ro | 设置为只读模式, 用于保护bucket不被写入 | 该选项是fuse的标准选项 |
| -o direct_io | 设置为direct_io, 不使用操作系统page cache | 配置rw_strategy=mem_sequence/mem_random前提下可设置为direct_io, 该选项是fuse的标准选项 |
日志
日志默认输出到stderr,可以用-o logfile=xxxx/xxxx.log来指定名称。使用命令-d打开debug模式的情况下,可以重定向到本地文件。
注意:
- 切勿将logfile文件路径或者重定向的文件路径指定到mountpoint里面,这会导致持续地将日志刷入BOS,造成不必要的开销。
- 如果没有使用
-d或者-f指定前台运行模式,启动之后bosfs进程会变成daemon,同时会将工作目录切到/之下,因此logfile需要指定绝对路径。bosfs的日志文件不会自动切割,需要用户自行使用脚本管理。- BOS FS挂载后,如果使用rsync功能,建议设置
-o loglevel=ERROR和--partitial-dir=本地路径,因为rsync会产生临时文件,默认会存在目的文件所在位置(bosfs中),产生不必要的bosfs中的上传开销。
只读
可以使用-o ro选项来设置只读模式,用于保护bucket不被写入,该选项是fuse的标准选项。
配置实践
一般场景下(仅用作上传或下载文件场景, 无或很少随机读写)的推荐挂载参数:
Plain Text
1bosfs <bos-bucket> <local-mount-dir> -o endpoint=bj.bcebos.com -o ak=xxx -o sk=xxx -o logfile=/tmp/bosfs.log -o loglevel=debug -o meta_expires=0 -o preload_blocks=100 -o bos.sdk.multipart_threshold=100MB -o bos.sdk.multipart_size=10MB -o bos.fs.multipart_parallel=10
