[转帖]编译安装goofys挂载Scaleway免费75G对象存储
goofys编译
goofys是一个开源的使用Go编写的s3存储桶挂载工具,主打高性能。由于使用Go编写,没有用到什么特别的依赖,自己编译也很容易。截止2022.5.27,官方github仓库貌似一直有提交,但是提供的预编译安装包貌似只到2020年4月,而且只有x86版本,而我自己需要arm64版本,我决定自行编译安装下。安装环境为Scaleway法国地区的1核心1G内存实例,系统为Ubuntu 20.04。
首先下载Go,目前最新版本Go为1.18.2
wget https://go.dev/dl/go1.18.2.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.2.linux-amd64.tar.gz
cd /usr/local/go
export PATH=$PATH:/usr/local/go/bin
go version
执行完毕以后,就可以看到终端输出了Go版本,
go version go1.18.2 linux/amd64
如此,即为安装成功。
cd $HOME
export GOPATH=$HOME/work
git clone https://github.com/kahing/goofys
make build && make install
执行过程只要不报错,变会在$HOME/work/bin下输出goofys文件,它就是基于最新提交编译出的goofys,直接执行以下命令:
chmod +x $HOME/work/bin/goofys
$HOME/work/bin/goofys -v
输出如下:
goofys version 0.24.0-829d8e5ce20faa3f9f6f054077a14325e00e9249
此时得到的包便是goofys-linux-amd64二进制文件。
由于我还需要arm64的二进制文件,因此直接在本机交叉编译,Go的交叉编译非常容易,执行如下命令
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "-X main.Version=`git rev-parse HEAD`"
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go install -ldflags "-X main.Version=`git rev-parse HEAD`"
编译过程较慢,只要不报错,便会在$HOME/work/bin/linux_arm64下生成适用于arm64的goofys
安装挂载
由于我主要是想白嫖Scaleway免费的75G对象存储用作备份,因此以下操作都是基于Scaleway 法国地区的vps进行的。
配置认证密钥
mkdir /root/.aws
nano /root/.aws/credentials
输入以下内容,该密钥可以从Scaleway控制台 - Credentials - Generate New API Key 获得
[default]
aws_access_key_id = SCW*************
aws_secret_access_key = **************
安装并挂载Scaleway对象存储
cp $HOME/work/bin/goofys /usr/bin/goofys
chmod +x /usr/bin/goofys
goofys -o allow_other --endpoint=https://s3.fr-par.scw.cloud/ --storage-class=ONEZONE_IA [bucketname] [mount-point]
Scaleway 法国区免费的75G只适用于ONEZONE_IA和GlACIER冷存储,因此需要手动指定storage-class, 将以上命令的[bucketname]替换为存储桶的名字, [mount-point]替换为vps上的挂载点即可成功挂载Scaleway的对象存储。
[可选]如果需要开机自动挂载,则可以编辑/etc/fstab文件实现开机自动挂载
nano /etc/fstab
添加一行以下内容
goofys#[bucketname] [mount-point] fuse _netdev,allow_other,--endpoint=https://s3.fr-par.scw.cloud/,--storage-class=ONEZONE_IA 0 0
测试
由于goofys主打高性能,这里我不做数值上的定量测试,就自行使用体验来说,goofys挂载的对象存储相对于s3fs挂载的对象存储,无论是ls,cp,mv等操作,反应明显更迅速,响应更快,如果追求快速响应,goofys是一个好选择。至于具体数值上的性能测试的话由于我懒,贴个goofys官方的图好了
问题
自行使用中发现的最大问题:goofys挂载的对象存储不支持metadata操作,无论是文件修改时间,还是权限,所属用户组,反应在文件系统上的都是使用的对象存储中记录的修改时间,或是goofys的默认值,而非记录在对象存储文件metadata中的内容。
同时,通过goofys挂载点写入的文件,也不会在对象存储中写入metadata信息。文件使用s3fs写入与goofys写入同一个对象存储桶中的区别如下:
使用s3fs挂载写入的文件
使用goofys挂载写入的文件
显然,使用goofys写入的文件完全没有写入metadata信息。
总结
goofys是个好东西,但是由于不支持metadata操作,在一些情况下可能很致命。例如我的用例下,我使用rsync在scaleway的对象存储中备份seafile-data。由于rsync是增量备份,其对文件是否相同是否需要传输的识别过程基于文件修改时间与大小,因此goofys不支持metadata读写直接导致我无法使用rsync进行文件同步。如果使用rsync在goofys挂载的对象存储上进行备份,会导致rsync每次同步时认为所有源文件与目标文件的修改时间不一致,导致每个文件都被额外传输,造成严重带宽浪费。不过由于goofys的性能确实比s3fs更好,在一些不需要metadata操作的情况下可能会比s3fs更好。
顺带一提,经过测试,scaleway的免费75G对象存储是每个存储区75G,也就是说目前scaleway有荷兰、法国、波兰三个数据中心,可以每个区域免费存75G,直接就是免费225G存储,更不提每个区还有额外免费的75G冷存储,简直业界良心。配合便宜的Scaleway StarDust1-S机器,年付几十块,可以获得不限流量且不计请求数的对象存储,除了数据中心在欧洲国内连入速度可能较慢,其在价格上基本是无敌了。
标签
[转帖]编译安装goofys挂载Scaleway免费75G对象存储的更多相关文章
- 架构师小跟班:教你从零开始申请和配置七牛云免费OSS对象存储(不能再详细了)
背景 之前为了练习Linux系统使用,在阿里云上低价买了一台服务器(网站首页有活动链接,传送门),心里想反正闲着也是闲着,就放了一个网站上去.现在随着数据越来越多,服务器空间越来越吃紧,我就考虑使用七 ...
- Hadoop集群搭建-03编译安装hadoop
Hadoop集群搭建-05安装配置YARN Hadoop集群搭建-04安装配置HDFS Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hado ...
- 七牛云免费对象存储,并绑定到cloudreve中
之前开通了腾讯云的对象存储COS并使用中,不过之前主要将它当作云盘使用,这两天再做博客系统时发现也可以将它作为网站的图库,这样对网站的访问效率也会提高. 今天了解到七牛云有免费的对象存储可以使用,于是 ...
- 【转帖】嵌入式4412开发板QT5.7编译安装到arm
QT5.7.0+UBUNTU16.04+ARM-NONE-LINUX-GNUEABI4.8+busybox最小LINUX系统 Orandragon记录 本文转自迅为4412开发板群:http://to ...
- [转帖]MySQL5.7.20编译安装
MySQL5.7.20编译安装 尝试一下 想着 我在arm上面最终安装失败了. https://www.cnblogs.com/shengdimaya/p/8027507.html 1:官网下载sou ...
- 在CDlinux下编译安装无线网卡驱动
环境 主机:ThinkPadT440P 系统:CDlinux9.7.1 概述 准备利用CDlinux来破解周围的wifi密码来免费蹭网,由于笔记本是新买的,系统没有自带驱动,只能自己手动到网上下载.编 ...
- 加密通信软件Signal 2.92版本编译安装折腾手记(Ubuntu 18.04)
加密通信软件Signal 2.92版本编译安装折腾手记(Ubuntu 18.04) 前言 加密通信软件Signal是开源的,安全性很高,号称斯诺登也推荐大家使用.既然这么好,那必然会有不少人去尝试复制 ...
- 编译安装 Zend Opcache 缓存Opcache,加速 PHP
Optimizer+ 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,是第一个也是最快的 opcode 缓存工具.现在,Zend 科技公司将 Optimizer+ 在 PHP Lice ...
- 转-httpd 2.4.4 + mysql-5.5.28 + php-5.4.13编译安装过程
一.编译安装apache 1.解决依赖关系 httpd-2.4.4需要较新版本的apr和apr-util,因此需要事先对其进行升级.升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包.这 ...
- RHEL6.4编译安装企业级LAMMP平台
一.LAMMP简介 二.使用软件及服务器架构说明 三.配置及安装过程 1.安装arp与httpd 2.安装mysql 3.安装php(php-fpm) 4.安装Xcache ...
随机推荐
- Vue源码学习(十九):router基本原理
好家伙, 0.什么是路由? 路由就是匹配到对应路径显示对应的组件! 那么我们要如何去实现? 我们来回忆一下这router怎么用的 1. 声明式路由配置:在路由配置对象中,定义路径与组件的映射关系. ...
- MySQL基础篇:第七章_详解mysql存储过程&函数
存储过程 含义:一组经过预先编译的sql语句的集合 好处: 1.提高了sql语句的重用性,减少了开发程序员的压力 2.提高了效率 3.减少了传输次数 分类: 1.无返回无参 2.仅仅带in类型,无返回 ...
- 详解数据库SQL中的三个语句:DROP、TRUNCATE 、DELETE
本文分享自华为云社区<GaussDB数据库SQL系列-DROP & TRUNCATE & DELETE>,作者:Gauss松鼠会小助手2 . 一.前言 在数据库中,SQL作 ...
- 华为云GaussDB亮相金融业数据库技术大会
本文分享自华为云社区<华为云GaussDB亮相金融业数据库技术大会,激发金融行业发展新动能>,作者:GaussDB 数据库 . 近日,由北京金融信息化研究所主办的2023金融业数据库技术大 ...
- 数仓专家面对面 | 为什么我选择GaussDB(DWS)
摘要:你知道数仓是如何应运而生的吗?你了解数仓未来的发展趋势吗?想知道国内数仓专家的看法吗? 导语 数据仓库的发展一直是备受关注的议题,随着近年来技术的不断演进,数仓也在更新迭代. 你知道数仓是如何应 ...
- Colocate Join :ClickHouse的一种高性能分布式join查询模型
摘要:本文将介绍业界MPP分布式数据库join查询模型,以及ClickHouse的分布式查询原理解析和Colocate join性能表现. 本文分享自华为云社区<ClickHouse一种高性能分 ...
- WeLink的杀手锏和远程办公软件的另一面
摘要:看WeLink如何从内到外,为广大企业用户带来数字化办公转型上的突破? 本文分享自华为云社区<[大厂内参]第11期:WeLink的杀手锏和远程办公软件的另一面>,作者: 华为云社区精 ...
- 解放重复劳动丨华为云IoT API Explorer对接小程序实现系统化应用
摘要:<物联网平台接口调用实验>详细讲解了API Explorer的应用,根据提供的接口,结合真实案例,制作了一个小程序,真正的把它应用起来,解放重复劳动,小程序是一个很好的平台,作为应用 ...
- 从原理带你掌握Spring MVC拦截处理器知识
摘要:SpringWebMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于处理器进行预处理和后处理. 本文分享自华为云社区<不讲废话,全程干货,0基础带你学习Spring ...
- 如何把ipa文件(iOS安装包)安装到iPhone手机上? 附方法汇总
苹果APP安装包ipa如何安装在手机上?使用过苹果手机的人应该深有感触,那就是苹果APP安装要比安卓APP安装复杂.困难很多,很多人不知道怎么把ipa文件安装到手机上,所以很多苹果用户还会选择越狱 ...