解决在ceph对象网关中使用s3fs报错“unable to access MOUNTPOINT /s3: Transport endpoint is not connected”

s3fs简介

  简要来说,就是将s3的存储桶,文件,文件列表可以通过挂载到本地形成一个本地文件系统,方便浏览和查看目录结构,由于ceph rgw服务兼AWS S3,所以通过s3fs工具我们也能够将ceph radosgw集群的文件导出成本地文件系统。

环境

  原ceph环境搭建在ubuntu16.04,ceph版本为L版本。

安装

  可以直接通过apt-get install (如果没有安装,尝试将apt源替换为清华/163的源),可以省去通过源码包下载安装编译配置环境等复杂步骤。

使用

  首先集群的对象网关服务正常在线,并且已经创建好相关用户和bucket。以test用为例,将test用户的access key和secret key导入到一个本地文件并赋予权限,此处以两个key都是test为例。该文件在s3fs挂载时需要用到。

echo test:test > /opt/tempkeyfile
chmod 600 /opt/tempkeyfile

  创建完成后,即可利用s3fs进行挂载,基本命令为:

s3fs [bucketname] [mountpoint]

  然而如果在ceph中使用直接此命令报错。

 s3fs: unable to access MOUNTPOINT /opt/temp/: Transport endpoint is not connected

  因为官网和其他链接给出的使用文档bucket都是基于公有服务器而不是自己搭建的cpeh对象网关服务,当使用ceph对象网关进行挂载时,需要制定额外参数

  • 指定url(必需):即对象网关服务ip以及端口号,和使用cloudberry一样。(我的对象网关节点ip为192.168.1.100,服务端口号为:7480)
  • 指定passwd_file(必需):之前手动生成的tempkeyfile
  • 指定use_path_request_style(最主要引起错误原因):使用路径访问方式,如果使用自己的ceph集群,此项必须添加,否则会报错。
  • 指定签名版本(非必需):sigv2,如果不一样可能会导致部分文件无法正常使用,默认为v4认证,因为我集群内对象网关配置成v2认证,此处需要添加。

  先将刚刚挂载报错的目录卸载掉(不然即使命令正确而未进行卸载依然报错)

fusermount -u /opt/temp/

  最后,完整正确的ceph环境中使用s3fs挂载命令如下:

s3fs testbucket1 /opt/temp/ -o url=http://192.168.1.100:7480 -o passwd_file=/opt/tempkeyfile -o sigv2 -o use_path_request_style
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值