略微加速

略速 - 互联网笔记

linux挂载s3fs

2025-04-12 leiting (77阅读)

标签 Linux

1、s3fs环境搭建

  • 安装epel源

  • yum install s3fs-fuse

  • echo ACCESS_KEY_ID:SECRET_ACCESS_KEY > ${HOME}/.passwd-s3fs,其中ACCESS_KEY_ID和SECRET_ACCESS_KEY分别指对象存储用户的ak,sk。

echo bucket_name:ACCESS_KEY_ID:SECRET_ACCESS_KEY > ${HOME}/.passwd-s3fs在密码文件中增加存储桶,进行了限制,仅可挂载文件中指定的存储桶。默认的认证路径${HOME}/.passwd-s3fs,可以修改文件存放路径,非默认情况需要在挂载时明确指定。

  • chmod 600 ${HOME}/.passwd-s3fs

  • mkdir /root/s3fs-test,创建挂载目录

  • 挂载命令s3fs bucket_name /root/s3fs-test -o passwd_file=/root/.passwd-s3fs -o url=http://rgw_ip:port -o use_path_request_style -o allow_other [-o dbglevel=info -f -o curldbg],[]中是s3fs调试参数

  • 卸载命令fusermount -u /root/s3fs-test/或umount -l /root/s3fs-test/

2、普通用户命令行挂载s3fs

增加以下选项,并以管理员权限执行挂载命令。

s3fs bucket4 /root/s3fs-test -o passwd_file=/root/.passwd-s3fs -o url=http://192.168.56.103:7480 -o use_path_request_style -o allow_other -o uid=1000 -o gid=1000 -o mp_umask=022

3、支持及限制

  • 支持POSIX文件系统的大部分功能,例如上传下载文件、目录、设置用户权限等;

  • 随机或追加写文件会导致整个文件重写;

  • 默认使用分片上传;

  • 多客户端挂载同一个ZOS桶时,数据一致性需自行维护。建议合理规划文件使用时间,避免出现多个客户端写同一文件的情况;

  • 不支持hard link;

4、参数调优

从性能优化的角度,推荐的一组挂载参数

s3fs bucket_name /root/s3fs-test -o passwd_file=/root/.passwd-s3fs -o url=http://192.168.56.103:7480 -o use_path_request_style -o allow_other -o umask=0 -o use_cache=/dev/shm -o enable_noobj_cache -o sigv2 -o del_cache -o multipart_size=64 -o max_write=131072 -o big_writes -o kernel_cache -o max_background=1000 -o max_stat_cache_size=100000 -o parallel_count=30 -o multireq_max=30 -o dbglevel=warn

 

-o allow_other

本参数用于设置挂载目录可以被任意登录服务器的用户使用。

 

-o umask=0

本参数用于设置挂载后资源的访问权限,确保挂载后所有用户能够对挂载目录下资源具有访问权限。umask与chmod配套,当设置umask=0时对于文件权限为777,若需要设置权限为755,则设置umask=022,以此类推配置所需权限。

 

-o use_cache

使用内存作为缓存目录,而非本地磁盘作为cache将提升文件读写性能,即将该值设置为-o use_cache=/dev/shm。如果系统内存使用较高,则建议另外挂载一个SSD盘作为缓存目录。

 

-o enable_noobj_cache

使用本参数后,将减少s3fs发送的列举桶的请求,从而提升性能

 

-o sigv2

缺省值为采用V4鉴权,使用V2鉴权效率更高,兼容性更好

 

-o del_cache

文件使用完成后及时清理缓存中的数据。

 

-o multipart_size(default=”10”(10MB))

设定上传是单个分段的大小,缺省值为10MB。

 

-o max_write

本参数用于设置vfs的上传块大小,默认值为4096,可将该数值设置为fuse所支持的最大值128k(即设置-o max_write=131072),以提升性能。

 

-o big_writes

开启本参数后,内核会进行IO合并,对于大块读写,提升性能。

 

-o kernel_cache

支持 s3fs 安装点上的内核缓冲区高速缓存。这意味着对象将仅由 s3fs 读取一次,因为同一文件的重复读取可以通过内核的缓冲区高速缓存进行处理。内核缓冲区高速缓存将仅使用未被其他进程使用的可用内存。如果在存储区安装期间预期存储区对象会被其他进程/机器覆盖,并且您的用例需要实时访问最新的内容,那么建议不要使用此选项。

 

-o max_background

可提高 s3fs 并行文件读取性能。缺省情况下,FUSE 支持最多 128 KB 的文件读请求。当要求读取的对象超过此大小时,内核会将大请求拆分为较小的子请求,并允许 s3fs 以异步方式处理这些子请求。max_background 选项用于设置此类并行异步请求的全局最大数目。缺省情况下,此值设置为 12,但将其设置为任意高值 (1000) 可避免读请求被阻止,即使同时读取大量文件。

 

-o max_stat_cache_size

可减少 s3fs 发送的冗余 HTTP HEAD 请求数,并缩短列出目录或检索文件属性所用的时间。典型的文件系统用法会通过 stat() 调用频繁访问文件的元数据,该调用将映射到对象存储系统上的 HEAD 请求。缺省情况下,s3fs 会高速缓存最多 1000 个对象的属性(元数据)。每个高速缓存的条目最多需要 0.5 KB 内存。理想情况下,您会希望高速缓存能够保存存储区中所有对象的元数据。但是,您可能需要考虑这种高速缓存对内存使用量的影响。将其设置为 100000 需要的内存不超过 0.5 KB * 100000 = 50 MB。

 

-o parallel_count

设置每个文件读/写操作中并行发送给 ZOS 的最大请求数。缺省情况下,此值设置为 5。对于超大对象,可以通过增大此值来获取更多吞吐量。与先前选项一样,如果只读取每个文件的少量数据,请使此值保持较小。

 

-o multireq_max

列出目录时,会针对列表中的每个对象发送对象元数据请求 (HEAD),除非在高速缓存中找到元数据。此选项用于限制针对单个目录列示操作发送到 ZOS 的此类并发请求数。缺省情况下,此值设置为 20。请注意,此值必须大于或等于上面的 parallel_count 选项。

 

-o dbglevel

将调试级别设置为 warn,而不设置为缺省值 (crit),以将消息记录到 /var/log/messages


北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3