基于goofys挂载s3到ubuntu, 没用s3fs因为它兼容性不太好
1 goofys
下载地址
https://github.com/kahing/goofys
https://github.com/kahing/goofys/releases/latest/download/goofys
使用
挂载s3目录到/mnt/mys3bucket
mkdir -p ~/.aws
echo -e "[default]\naws_access_key_id = xxxx\naws_secret_access_key = xxxxxxxxxxxx" > ~/.aws/credentials mount | grep mys3bucket
umount -l /mnt/mys3bucket
rm -rf /mnt/mys3bucket
mkdir -p /mnt/mys3bucket
chmod 755 /mnt/mys3bucketmkdir -p /mnt/mys3bucket
./goofys --endpoint http://10.4.4.1:32006/ minio:private/55/18970/ /mnt/mys3bucket
性能分析
在 Ubuntu 上挂载云存储时,goofys 和 rclone 各有其优势,但“稳定性”的定义取决于你的具体需求。它们的设计初衷不同,因此适用场景也不同。
为了帮你快速了解两者的核心区别,我用一个表格来汇总它们的主要特性:
特性 | goofys | rclone (rclone mount) |
---|---|---|
设计目标 | 高性能文件系统接口 (类POSIX) | 数据同步与管理工具 (挂载为辅助功能) |
挂载性质 | 将存储桶映射为可读写的文件系统 | 提供只读或类VFS视图 (依赖缓存,写入行为特殊) |
性能特点 | 读写延迟较低,尤其适合大文件顺序读写 | 大量小文件操作可能因缓存机制产生延迟 |
资源消耗 | 相对较低 (无本地数据缓存) | 较高 (可能使用本地磁盘缓存,有写满磁盘的风险) |
兼容性 | 兼容 S3 协议的对象存储(如 MinIO) | 支持超过 70 种存储服务(如 S3、OneDrive、Google Drive) |
典型用例 | 直接与需要文件系统接口的应用程序配合使用 | 数据同步、备份、迁移,偶尔需要挂载浏览 |
优点 | 速度快、轻量级、感觉像普通磁盘 | 功能极其丰富、支持众多网络磁盘、同步功能强大 |
缺点 | 非完全 POSIX 兼容(如随机写入、权限) | 挂载功能为实验性,不适合高并发写入或数据库操作 |
2 s3fs
s3fs 试图将 S3 对象存储映射成一个看起来很像本地磁盘的文件系统。它支持了很多 POSIX 标准操作,比如设置文件权限(chmod)、设置所有者(chown)以及扩展属性(xattr)等。然而,这种“兼容”有时是模拟和折衷的结果。因为对象存储本身是键值存储,没有真正的目录、链接或原子重命名概念。s3fs 需要在客户端模拟这些行为,这会导致:性能开销.
安装
apt install s3fs -y
配置
rm ~/.passwd-s3fs
echo "xxx:xxxxxxxx" > ~/.passwd-s3fs
chmod 600 ~/.passwd-s3fs
mkdir -p /mnt/mys3bucket
s3fs minio-conf /mnt/mys3bucket -o passwd_file=~/.passwd-s3fs -o url=http://10.199.7.215:32006/ -o use_path_request_style -o umask=000 -o mp_umask=000 -o uid=1000 -o gid=1000
为了兼容性,性能损耗较大(如元数据操作慢)