Hi 游客

更多精彩,请登录!

比特池塘 分布式计算 正文

Linux 环境下 挂载OSSFS做虚拟盘

紫气东送
98 0 0
本帖最后由 紫气东送 于 2022-11-4 00:00 编辑

  安装 ossfs,该工具能让您在 Linux 系统中把 OSS Bucket 挂载到本地文件系统中

  ossfs 基于s3fs 构建,具有s3fs 的全部功能。主要功能包括

  支持POSIX 文件系统的大部分功能,包括文件读写,目录,链接操作,权限,uid/gid,以及扩展属性(extended attributes)

  通过OSS 的multipart 功能上传大文件

  MD5 校验保证数据完整性

  # 下载并安装
  1.   wget <a href="http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/32196/cn_zh/1524809958556/ossfs_1.80.4_centos7.0_x86_64.rpm?spm=a2c4g.11186623.2.6.XJB3Dd&file=ossfs_1.80.4_centos7.0_x86_64.rpm" target="_blank">http://docs-aliyun.cn-hangzhou.o ... entos7.0_x86_64.rpm</a>
  2.   mv ossfs_1.80.4_centos7.0_x86_64.rpm?spm=a2c4g.11186623.2.6.QwMtDE ossfs_1.80.4_centos7.0_x86_64.rpm
  3.   yum localinstall ossfs_1.80.4_centos7.0_x86_64.rpm
复制代码

  将每个 bucket name、AccessKey和AccessKeySecret用:连接后填写到 /etc/passwd-ossfs,每行一个,并设置文件权限为 640

  1.   img-bucket:AccessKey:AccessKeySecret
  2.   my-bucket:AccessKey:AccessKeySecret
复制代码
  1.   chmod 640 /etc/passwd-ossfs
复制代码


  安装 mailcap,解决 bucket 中的文件 Content-Type 全是 application/octet-stream 的问题

  1.   yum install mailcap
复制代码


  挂载 OSS Bucket


  # 获取运行 php-fpm 和 nginx 的系统用户 uid 和 gid,比如 www 用户

  # uid=1000(www) gid=1000(www) 组=1000(www)

  1.   id www
复制代码

  # 挂载 bucket

  # Endpoint:请使用内网地址,速度快且流量免费

  # -o noxattr:如果你没有使用eCryptFs等需要XATTR的文件系统,可以提升性能

  # -o kernel_cache:使用文件系统的 page cache

  # -o allow_other:允许其他用户访问挂载文件夹

  # -ouid -ogid:制定挂载目录的用户和组权限

  1.   ossfs img-bucket /data/htdocs/www/data/attachment -ourl=Endpoint -o noxattr -o kernel_cache -o allow_other -ouid=1000 -ogid=1000

  2.   ossfs avatar-bucket /data/htdocs/www/uc_server/data/avatar -ourl=Endpoint -o noxattr -o kernel_cache -o allow_other -ouid=1000 -ogid=1000
复制代码

  如何卸载 bucket

  # root用户

  1.   umount /data/htdocs/www/data/attachment
  2.   umount /data/htdocs/www/uc_server/data/avatar
复制代码


  # 非root用户

  1.   fusermount -u /data/htdocs/www/data/attachment
  2.   fusermount -u /data/htdocs/www/uc_server/data/avatar
复制代码

  开机启动,以 CentOS 7.0 为例,其他系统参考 FAQ

  # 根据下面的模板创建启动脚本

  1.   vi /etc/init.d/ossfs
复制代码

  # 添加执行权限

  1.   chmod a+x /etc/init.d/ossfs
复制代码

  # 设置开机启动

  1.   chkconfig ossfs on
复制代码


  #! /bin/bash

  #

  # ossfs Automount Aliyun OSS Bucket in the specified direcotry.

  #

  # chkconfig: 2345 90 10

  # description: Activates/Deactivates ossfs configured to start at boot time.

  ossfs img-bucket /data/htdocs/www/data/attachment -ourl=Endpoint -o noxattr -o kernel_cache -o allow_other -ouid=1000 -ogid=1000

  ossfs avatar-bucket /data/htdocs/www/uc_server/data/avatar -ourl=Endpoint -o noxattr -o kernel_cache -o allow_other -ouid=1000 -ogid=1000

BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

紫气东送 初中生
  • 粉丝

    10

  • 关注

    2

  • 主题

    3