当前位置: 首页 > news >正文

基于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 各有其优势,但“稳定性”的定义取决于你的具体需求。它们的设计初衷不同,因此适用场景也不同。

为了帮你快速了解两者的核心区别,我用一个表格来汇总它们的主要特性:

特性goofysrclone (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

为了兼容性,​性能损耗较大​(如元数据操作慢)

http://www.dtcms.com/a/351640.html

相关文章:

  • Stream流中的Map与flatMap的区别
  • 《从裸机到 GPU 共享:一步一步在 Kubernetes 上部署 NVIDIA GPU Operator + KAI Scheduler》
  • Python训练营打卡Day44-通道注意力(SE注意力)
  • 数字IC前端设计——前仿篇(VCS,DVE,Verdi)
  • 【Redis 进阶】-----哨兵 Sentinel(重点理解流程和原理)
  • 构建智能提示词工程师:LangGraph 的自动化提示词生成流程
  • 【远程软件VNC】经典远程软件VNC保姆级下载安装图文教程(附安装包)
  • STL——priority_queue的使用(快速入门详细)
  • 【硬件-笔试面试题-60】硬件/电子工程师,笔试面试题-60,(知识点:CAN总线通信原理)
  • 红黑树下探玄机:C++ setmultiset 的幕后之旅
  • Python在语料库建设中的应用:文本收集、数据清理与文件名管理
  • LeetCode刷题记录 | 长度最小的子数组 螺旋矩阵II
  • curl get post
  • GPMall 项目单机部署全流程GPMall:Redis、MariaDB、Kafka、Nginx 一步到位
  • Java微服务AI集成指南:LangChain4j vs SpringAI
  • 在线教育系统源码助力教培转型:知识付费平台开发的商业实践
  • Hyperledger Fabric官方中文教程-改进笔记(十七)-编写第一个链码
  • 售价2.5 万元的 Jetson Thor,能否开启人形机器人商业化新局面?
  • 利用AI进行ArcGISPro进行数据库的相关处理?
  • 如何利用ArcGIS探究环境与生态因子对水体、土壤、大气污染物的影响?
  • ROS2一键安装脚本:ROS2安装教程,快速搭建开发环境
  • 请求接口302 Moved Temporarily
  • 【数据价值化】数据资产入表指南:核心准则与实操路径
  • C语音初阶————指针2
  • .NET 6.0 日志处理之Serilog 写入到sql server(一)
  • OOM问题排查思路及解决方案
  • 【Notepad++免费版下载安装教程(附安装包)2025最新整理】
  • 如何用Wireshark捕获当前房间路由器和主机的数据包
  • iOS 26 正式版即将发布,Flutter 完成全新 devicectl + lldb 的 Debug JIT 运行支持
  • 剖析graph-rag中最核心的一步:切片文本如何输入到大模型并且构建整体的关系