[转帖]使用S3F3在Linux实例上挂载Bucket

使用,s3f3,linux,实例,挂载,bucket · 浏览次数 : 0

小编点评

**S3F3 文件系统简介** S3F3 是一个基于 FUSE 文件系统的文件系统,允许 Linux 安装和配置在本地文件系统中挂载 Amazon S3 对象存储。它能够保持对象原来的格式,使其像一个文件夹挂载到本地系统。 **环境安装和配置** * **CentOS 7**: * 使用 `yum install automake gcc-c++ git libcurl-devel libxml2-devel make openssl-devel` 安装依赖包。 * 获取 `Access_Key_ID` 和 `Access_Key_Secret`。 * 创建 `passwd_s3fs` 文件,并设置密钥文件路径。 * 使用 `make install3` 安装 S3FS。 * **Ubuntu 16.04**: * 使用 `apt-get install automake autotools-dev fuse g++ git libcurl4-openssl-dev libfuse-dev libssl-dev libxml2-dev make pkg-config2` 安装依赖包。 * 下载 `fuse_2.9.2.tar.gz` 文件。 * 运行 `./autogen.sh ./configure --prefix=/usr/local` 配置。 * 使用 `sudo make install` 安装 S3FS。 * **Mac OS**: * 使用 `git clone` 获取 `s3fs-fuse` 项目。 * 设置 `PKG_CONFIG_PATH` 环境变量,指定安装目录。 **挂载对象存储** 1. 创建一个名为 `/new` 的目录。 2. 使用 `mkdir -o passwd_file=~/.passwd-s3fs -o url=\"https://s3.cn-north-1.jdcloud-oss.com\"` 创建密码文件。 3. 使用 `url` 设置 S3 对象存储的 URL。 4. 使用 `uid` 和 `gid` 设置用户 ID 和组 ID。 5. 使用 `sudo s3fs` 命令挂载 S3 对象存储到本地目录。 **查看挂载结果** 使用 `df -h6` 命令查看挂载目录的剩余空间。 **其他提示** * 建议使用 `cp` 命令在挂载对象存储之前检查目标文件的 `content-type`属性。 * 如果遇到文件无 `content-type` 属性的问题,可尝试使用 `cp` 命令进行手动复制。 * 在使用 S3FS 时,请注意静态网站托管的影响。

正文

https://docs.jdcloud.com/cn/object-storage-service/s3fs

 

S3F3是基于FUSE的文件系统,允许Linux 挂载Bucket在本地文件系统,S3fs能够保持对象原来的格式。使用S3F3可以把Bucket当成一个文件夹挂载到Linux系统内部,当成一个系统文件夹使用。

环境安装以及配置参考官方说明

https://github.com/s3fs-fuse/s3fs-fuse

1.安装依赖包

On CentOS 7:复制成功

 
sudo yum install automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel

On Ubuntu 16.04:复制成功

 
sudo apt-get install automake autotools-dev fuse g++ git libcurl4-openssl-dev libfuse-dev libssl-dev libxml2-dev make pkg-config

2.安装复制成功

 
git clone https://github.com/s3fs-fuse/s3fs-fuse.git
cd s3fs-fuse
./autogen.sh
./configure
make
sudo make install

3.创建密码文件复制成功

 
echo Access_Key_ID:Access_Key_Secret > ~/.passwd-s3fs
chmod 600 ~/.passwd-s3fs

说明

Access_Key_ID:Access_Key_Secret获取方式:https://uc.jdcloud.com/account/accessKey

chmod 600:设置密钥文件只能被当前用户访问。

4.挂载对象存储到本地目录/new复制成功

 
mkdir /new
s3fs bucketname /new -o passwd_file=~/.passwd-s3fs -o url="https://s3.cn-north-1.jdcloud-oss.com"

说明

mkdir:创建new文件夹作为本地挂载目录

s3fs:手动挂载命令,其中bucketname为bucket名称、/new是本地挂载路径、passwd_file为密码文件位置、url为京东云对象存储兼容S3域名(请输入bucket所在区域的服务域名)

5.查看挂载结果复制成功

 
df -h

查看挂载结果

6.进入目录可以查看到object文件

查看object文件

Tips:

1.如果您使用的CentOS 6,请参考以下步骤安装fuse依赖:复制成功

 
yum install automake gcc-c++ git libcurl-devel libxml2-devel make openssl-devel

wget https://github.com/libfuse/libfuse/releases/download/fuse_2_9_4/fuse-2.9.2.tar.gz
tar -zxvf fuse-2.9.2.tar.gz
cd fuse-2.9.2
./configure --prefix=/usr
make
make install
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/lib64/pkgconfig/
ldconfig

2.使用Mac OS安装S3fs,请参考以下步骤:复制成功

 
git clone https://github.com/s3fs-fuse/s3fs-fuse.git
cd s3fs-fuse
./autogen.sh
./configure --prefix=/usr/local
PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig"
make
sudo make install

注:--prefix=/usr/local非必须;PKG_CONFIG_PATH必须,/usr/local/要替换成用户本地路径。

3.如果您在挂载Bucket时使用的非root账号,请在指定挂载命令是指定当前账户的uid及gid。如下示例:复制成功

 
sudo s3fs bucketname /new -o passwd_file=~/.passwd-s3fs -o url="https://s3.cn-north-1.jdcloud-oss.com" -o uid=11111 -o gid=11111

4.使用s3fs-fuse工具挂载京东云对象存储,通过cp命令拷贝文件时,若遇到文件无content-type的问题,可通过如下方式解决:

  • 使用cp命令拷贝文件,s3fs-fuse工具底层进行的操作依赖于/etc/mime.types文件,这个文件决定了cp命令目的文件的mime-type属性。请查看您目录下是否有该文件。

  • 默认情况下,京东云的centos7版本并不包含/etc/mime.types文件,所以需要通过拷贝,或者安装httpd获得,安装命令为yum install httpd

  • 对于已经通过s3fs命令挂载的目录,需要先umount,然后再次执行s3fs命令才能生效。

5.如果您在使用S3fs挂载Bucket之前开启了静态网站托管,会导致挂载失败;如果您使用S3fs挂载Bucket之后开启了静态网站托管,会导致文件操作失效。

6.如需使用Debug模式,请挂载时指定参数-o dbglevel=dbg -f -o curldbg

 

与[转帖]使用S3F3在Linux实例上挂载Bucket相似的内容:

[转帖]使用S3F3在Linux实例上挂载Bucket

https://docs.jdcloud.com/cn/object-storage-service/s3fs S3F3是基于FUSE的文件系统,允许Linux 挂载Bucket在本地文件系统,S3fs能够保持对象原来的格式。使用S3F3可以把Bucket当成一个文件夹挂载到Linux系统内部,当成

[转帖]使用JMX服务监控Java程序性能

https://www.jianshu.com/p/3c3c836c1c20?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation 背景 单机收集服务器需要性能监控和测试。 JMX

[转帖]使用 tc netem 模拟网络异常

https://cizixs.com/2017/10/23/tc-netem-for-terrible-network/ 在某些情况下,我们需要模拟网络很差的状态来测试软件能够正常工作,比如网络延迟、丢包、乱序、重复等。linux 系统强大的流量控制工具 tc 能很轻松地完成,tc 命令行是 ipr

[转帖]使用 sysdig 进行监控和调试 linux 机器

https://cizixs.com/2017/04/27/sysdig-for-linux-system-monitor-and-analysis/ sysdig 简介 sysdig 官网 上对自己的介绍是: Open Source Universal System Visibility With

[转帖]使用MAT命令行工具生成堆dump分析文件

https://www.cnblogs.com/hellxz/p/use_mat_linux_command_line_generate_reports.html 写作目标 Java程序运行过程中,难免会出现 OOM,往往是在 JVM 启动参数中添加出现 OOM 时输出堆 dump(又名:堆转储、堆

[转帖]使用火焰图(FlameGraph)分析程序性能

火焰图概念 火焰图(FlameGraph)是 svg 格式的矢量图,是先通过 perf 等工具分析得到结果,并将该结果生成的具有不同层次且支持互动的图片,看起来就像是火焰,这也是它的名字的由来。表现形式如下所示: 需要注意以下几点: 纵向(Y 轴)高低不平,表示的是函数调用栈的深度。每一层都是一个函

[转帖]使用Prometheus和Grafana监控RabbitMQ集群 (使用RabbitMQ自带插件)

https://www.cnblogs.com/hahaha111122222/p/15683696.html 配置RabbitMQ集群 官方文档:https://www.rabbitmq.com/prometheus.html#quick-start 官方github地址:https://gith

[转帖]使用Flame Graph进行系统性能分析

http://t.zoukankan.com/arnoldlu-p-10148558.html 关键词:Flame Graph、perf、perl。 FlameGraph是由BrendanGregg开发的一款开源可视化性能分析工具,形象的成为火焰图。 从底向上像火苗一样逐渐变小,也反映了相互之间的包

[转帖]使用 nsenter、dig 和 tcpdump 调试 Kubernetes 网络问题

https://zhuanlan.zhihu.com/p/410217354 使用 nsenter、dig 和 tcpdump 调试 Kubernetes 网络问题 作为 Kubernetes 管理员,我经常发现自己需要调试应用程序和系统问题。我遇到的大多数问题都可以通过 Grafana 仪表板和

[转帖]使用ksar解析sar监控日志

http://t.zoukankan.com/mikeguan-p-6371278.html sar 是属于sysstat包中的一个工具 安装sysstat包后,默认创建一个/etc/cron.d/sysstat文件,其默认内容为: # run system activity accounting