[转帖]使用 goofys 挂载 S3 bucket 为文件系统
https://xie.infoq.cn/article/7f178e0a1315f758d77c6c2bb
背景
公司的 gitlab 目前都是直接存储在物理盘上,为了确保数据不会丢失,需要重复多次备份到不同的地方,备份的过程中会有多次 IO,影响机器的性能,且随着数据量的增长,备份所需的时间也越来越长,因此需要寻找合适的存储方案。最先尝试 gitlab 推荐的 Minio,经过查阅官方文档,Minio 和 S3 类似,于是想到通过 goofys 将 S3 bucket 挂载到本地,当做文件系统来用,同时也尝试了 s3fs。
goofys 介绍
官方文档的介绍如下:
Goofys allows you to mount an S3 bucket as a filey system.
It's a Filey System instead of a File System because goofys strives for performance first and POSIX second. Particularly things that are difficult to support on S3 or would translate into more than one round-trip would either fail (random writes) or faked (no per-file permission). Goofys does not have an on disk data cache (checkout catfs), and consistency model is close-to-open.
goofys 与 s3fs 的性能对比如下(github 上的性能对比图):
我们可以看到,在读写文件等各方面,goofys 的性能均优越于 s3fs,因此采用 goofys 将 s3 bucket 挂载到本地,当做本地文件系统来使用。
goofys 安装
本文使用 Go 从源代码构建安装 goofys
一、go 安装
yum install go
安装的 go 版本为:go1.10.3 linux/amd64,由于后续在安装的过程中,因为 go 的版本过低,导致安装失败,因此将 go 的版本升级为 go1.16.4 linux/amd64,操作步骤如下:
1、登录 Go国内下载网址 ,当前为 centos 系统,下载 go1.16.4.linux-amd64.tar.gz

2、找到之前 go 版本存放路径,使用命令 whereis go;
3、升级为新版本
# 将旧版本备份cd /usr/localmv go go.1.10.3# 将新版本go压缩包解开当前目录tar zxf go1.16.4.linux-amd64.tar.gz# 目录下会释放出go目录ls -l go# 将 /usr/local/go/bin 目录添加至PATH环境变量export PATH=$PATH:/usr/local/go/bin
4、检查 go 版本,go version

二、goofys 从源代码构建
$ export GOPATH=$HOME/work$ go get github.com/kahing/goofys$ go install github.com/kahing/goofys
goofys 挂载 s3 bucket
1、将 s3 认证的 key 等信息设置为环境变量
export AWS_ACCESS_KEY_ID=export AWS_SECRET_ACCESS_KEY=export AWS_DEFAULT_REGION=us-west-2
2、新建挂载点 /mnt
mkdir /mnt
3、挂载
/usr/local/bin/goofys --debug_fuse --debug_s3 --region beijing --endpoint {endpoint} {bucket} /mnt
4、查看挂载是否成功 df -h 命令
参考文档
1、goofys github 地址: https://github.com/kahing/goofys
2、aws cli 设置环境变量:https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html
[转帖]使用 goofys 挂载 S3 bucket 为文件系统的更多相关文章
- [AWS] S3 Bucket
云存储服务 2.1 为网站打开属性 属性和权限设置 设置bucket属性,打开功能:Static website hosting(静态网站托管) 设置bucket权限,Permissions ---- ...
- 利用S3fs在Amazon EC2 Linux实例上挂载S3存储桶
一.准备!!! 1.使用拥有足够权限的IAM账号登录AWS控制台 2.创建S3存储桶,给存储桶命名如"my-bucket"(如果使用已有存储桶,本步骤可略过) 3.有该S3存储桶访 ...
- 嵌入式环境:挂载开发板根NFS文件系统失败
挂载开发板根NFS文件系统的时候,发现了下面的问题: Looking up port of RPC 100003/2 on 192.168.2.109rpcbind: server 192.168.2 ...
- 鸿蒙内核源码分析(挂载目录篇) | 为何文件系统需要挂载 | 百篇博客分析OpenHarmony源码 | v65.01
百篇博客系列篇.本篇为: v65.xx 鸿蒙内核源码分析(挂载目录篇) | 为何文件系统需要挂载 | 51.c.h.o 文件系统相关篇为: v62.xx 鸿蒙内核源码分析(文件概念篇) | 为什么说一 ...
- aws ec2挂载 s3
配置s3 挂载 aws ec2 安装依赖包:yum install -y automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-de ...
- 阿里云oss挂载到linux本地文件系统
对象存储 OSS 阿里云对象存储服务 (OSS) 是一种高度可伸缩且安全可靠的云对象存储服务,让您可以存储.备份和归档大量数据.阿里云 OSS 是一种简单易用的服务,让您每秒能处理数百万请求,它还支持 ...
- CentOS6.5下挂载NTFS格式的文件系统
下载对应CentOS版本的rpmforge,下载地址:http://pkgs.repoforge.org/rpmforge-release/ 安装rpmforge,输入命令:# rpm -ivh rp ...
- 使用 SSHFS 挂载远程的 Linux 文件系统及目录
1. 安装 sudo apt-get install sshfs 2. 创建 SSHFS 挂载目录 sudo mkdir /mnt/cong 3.使用 SSHFS 挂载远程的文件系统 sudo ssh ...
- s3fs 挂载minio为本地文件系统
https://github.com/s3fs-fuse/s3fs-fuse echo ACCESS_KEY_ID:SECRET_ACCESS_KEY > ${HOME}/.passwd-s3f ...
- 使用s3fs-fuse 挂载minio s3 对象存储
minio 是一个aws s3 兼容的对象存储系统,我们可以通过s3fs 进行数据桶的挂载,这样可以做好多方便的事情 环境准备 使用docker-compose 运行 minio docker-com ...
随机推荐
- Typora 掘金小册主题
主题说明 此主题样式基本来源于掘金小册学习界面 下载地址:https://github.com/easylee1996/typora-juejin-theme 主题预览 主题文档示例 如何使用 克隆仓 ...
- maven系列:POM文件总体配置说明
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- Windows使用docker踩坑记录
一.安装踩坑 安装时会让你选择:是否使用Windows容器 Use Windows containers instead of Linux containers(this can be changed ...
- JS模块化编程规范1——require.js
目录 1. 概述 2. 详论 2.1. 定义 2.2. 调用 2.3. 入口 3. 结果 4. 参考 1. 概述 require.js是各种网络APP中非常常见的JS依赖库,它其实不仅仅是个模块加载器 ...
- Java 插入、隐藏/显示、删除Excel行或列
概述 操作Excel工作表时,对表格中的行或列数据可执行,包括插入.隐藏.显示.删除等在内的多种操作需求,本文将通过Java代码示例演示每种操作的具体实现方法.文中方法使用了Java Excel类库( ...
- 5大特性,带你认识化繁为简的华为云CodeArts Deploy
摘要:2月27日,华为云发布持续部署服务CodeArts Deploy,通过模块化自由编排部署流程,实现软件的自动化部署,帮助企业软件产品的快速.高效.高质量交付. 本文分享自华为云社区<化繁为 ...
- Chrome扩展程序导出备份与本地导入浏览器
现在即使在国内下载个chrome,转个插件也千难万难.现在科学下网也越来越难,由于众所周知的原因,连qiang这个话题都是敏感词.哀默于心死,还是回避这个话题 只要把之前装的chrome打包,然后再重 ...
- 火山引擎 DataLeap:从短视频 APP 实践看如何统一数据指标口径
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 短视频正在成为越来越多人发现世界的窗口,其背后的创作者生态建设是各大短视频 APP 不可忽视的重要组成部分. 为了 ...
- gunicorn 高性能wsgi服务器
参考: https://zhuanlan.zhihu.com/p/102716258 Gunicorn是什么 Gunicorn Green Unicorn 是一个 UNIX 下的 WSGI HTTP ...
- Google C++编程规范(Google C++ Style Guide)
参考链接: Google 代码规范 C++总结 Google 开源项目风格指南--中文版 Google C++ Style Guide是一份不错的C++编码指南,我制作了一张比较全面的说明图,可以在短 ...