goofys或者s3fs将Minio桶挂载成本地目录测试记录
概述
由于公司项目需要使用到Minio作为数据存储,因为数据量过于庞大(TB级别),作为数据使用方又不想下载多一次,因此一直寻求替代方案。通过网上搜索了解到goofys或者s3fs可以将OSS桶的数据挂载成本地目录,故而闲暇时刻着手做了测试,博文记录,用以备忘。
环境
镜像:Ubuntu 22.04
依赖安装
goofys
#apt install fuse
goofys在github提供x86架构的发行版,其他架构需自行编译,详细请查看参考链接
s3fs
查看参考链接
挂载测试
goofys
- 创建相关目录以及配置认证信息
mkdir -p ~/.aws /home/s3
cat > ~/.aws/credentials << EOF
[default]
aws_access_key_id = minioadmin
aws_secret_access_key = minioadmin
EOF
- 挂载
goofys -f --debug_fuse --debug_s3 --endpoint=http://172.17.0.1:19010 test /home/s3
-f 是运行在前台,主要用于测试,实际运行应去掉
- 卸载
fusermount -u /home/s3
s3fs
- 创建相关目录以及配置认证信息
mkdir -p /home/s3
cat > ~/.passwd-s3fs << EOF
minioadmin:minioadmin
EOF
#文件权限不是600会报错
chmod 600 ~/.passwd-s3fs
2.挂载
s3fs -o url=http://172.17.0.1:19010 -o bucket=test -o passwd-file=/root/.passwd-s3fs -o allow_other /home/s3 -o use_path_request_style
use_path_request_style 一定要设置,不然会以子域名的形式访问OSS
- 卸载
同goofys
Q&A
Q:
执行命令提示
fuse: device not found, try 'modprobe fuse' first
A:
容器启动的时候,需要添加特权选项(–privileged)
Q:
umount: /home/s3: 传输端点尚未连接
A:
对端服务被关闭了或者goofys、s3fs程序被杀掉了
参考链接
在Ubuntu中安装s3fs
告别S3挂载烦恼:s3fs-fuse与goofys全方位性能对决
Goofys编译