RayGroup Inc

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2265 | 回复: 5

CentOS系统下将OSS对象储存挂载到硬盘的操作实例

[复制链接]

57

主题

225

帖子

1640

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1640
发表于 2020-2-19 23:36:06 | 显示全部楼层 |阅读模式



本人在利用Nextcloud搭建本站个人网盘的时候,遇到了服务器硬盘空间不够用的情况,鉴于云数据硬盘的成本问题,于是有了采用OSS对象储存的想法。


本站采用了阿里云发布的ossfs工具进行对OSS对象储存的挂载。

阿里云官方对ossfs工具的解释如下(官方参考文档):
ossfs基于s3fs构建,具有s3fs的全部功能。其中包括:
  • 支持POSIX文件系统的大部分功能,包括文件读写、目录、链接操作、权限、uid/gid、以及扩展属性(extended attributes)。
  • 使用OSS的multipart功能上传大文件。
  • 支持MD5校验,保证数据完整性。

为灵感而生,让创作自如。
回复

使用道具 举报

57

主题

225

帖子

1640

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1640
 楼主| 发表于 2020-2-19 23:51:19 | 显示全部楼层
一、安装ossfs

本站采用CentOS 7系统,在此示例,其他操作系统可参照或者直接参考阿里云官方文档

首先下载安装包终端输入命令:
wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos7.0_x86_64.rpm

下载后的安装包会默认保存在用户目录,先根据服务器实际情况cd到该目录
本站示例
技术-CentOS系统下将OSS对象储存挂载到硬盘的操作实例(1)

再执行安装命令:
sudo yum localinstall your ossfs package
在这里 your ossfs package 为刚刚下载的安装包,根据实际填写,本站示例为
sudo yum localinstall ossfs_1.80.6_centos7.0_x86_64.rpm




为灵感而生,让创作自如。
回复

使用道具 举报

57

主题

225

帖子

1640

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1640
 楼主| 发表于 2020-2-19 23:55:30 | 显示全部楼层
二、获取OSS对象储存中Bucket桶的信息


本站使用腾讯云对象储存作为示例
(其他平台类比参考,经实验,阿里云,百度云,京东云,华为云,七牛云都可以成功挂载)


1.首先进入对象储存控制台,注意空间名称访问域名


技术-CentOS系统下将OSS对象储存挂载到硬盘的操作实例(2)


记下之后,备用


2.获取对象储存访问API密匙

技术-CentOS系统下将OSS对象储存挂载到硬盘的操作实例(3)

点击密匙管理,腾讯云提示前往「云 API 密钥」进行管理


技术-CentOS系统下将OSS对象储存挂载到硬盘的操作实例(4)

记下SecretId(密匙ID)SecretKey(密匙钥)备用


为灵感而生,让创作自如。
回复

使用道具 举报

57

主题

225

帖子

1640

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1640
 楼主| 发表于 2020-2-20 17:47:01 | 显示全部楼层
三、配置账号访问信息


将Bucket名称以及具有此Bucket访问权限的AccessKeyId/AccessKeySecret信息存放在/etc/passwd-ossfs文件中。注意这个文件的权限必须正确设置,建议设为640。
终端输入命令:
echo my-bucket:my-access-key-id:my-access-key-secret > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs


此处的my-bucketmy-access-key-idmy-access-key-secret分别为上个操作步骤中获取到的 空间名称SecretId(密匙ID)SecretKey(密匙钥)在此处按自己实际情况填写


本站示例:
echo raygroup-12********654:AKI*****************KC:rXEk6****************53r > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs




为灵感而生,让创作自如。
回复

使用道具 举报

57

主题

225

帖子

1640

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1640
 楼主| 发表于 2020-2-20 18:04:28 | 显示全部楼层
四、将OSS对象储存Bucket桶挂载到指定目录


终端输入命令:
ossfs my-bucket my-mount-point -ourl=my-oss-endpoint


这里的 my-bucketmy-mount-pointmy-oss-endpoint 分别为刚刚从第二步获得的 访问域名 我们想要挂载到的目录


本站实例:
假定我们要将对象储存 raygroup-12********654 挂载到服务器的 /ossfs 目录
ossfs raygroup-12**********654 /ossfs -ourl=cos.ap-shanghai.myqcloud.com


:如实例,这里的访问目录指的是第二步获得的 访问域名 中,不含 http:// 空间名称 剩下的部分,即cos.ap-shanghai.myqcloud.com的地域名称。

(根据腾讯云的官方文档我们可以了解到这是本站所用腾讯云对象储存在上海的实例名称。)

值得说明的是如果我们所挂载的服务器与对象储存处于同一服务商的同一地域(例如使用腾讯云华东2上海的云服务器,腾讯云对象储存上海实例)我们便可以用服务商提供的内网访问域名,来获得几乎等同于访问真实硬盘的同步速率并且还可以免除对象储存的外网流量。



至此,我们已经完成了对象储存的挂载,来实验一下

终端输入命令:
df -h

技术-CentOS系统下将OSS对象储存挂载到硬盘的操作实例(5)

我们可以看到,一个腾讯云大小为256T的对象储存已经挂载到了服务器的
/ossfs 目录





为灵感而生,让创作自如。
回复

使用道具 举报

57

主题

225

帖子

1640

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1640
 楼主| 发表于 2020-2-22 00:20:31 | 显示全部楼层
五、利用ossfs对挂载的对Bucket桶进行配置


查阅官方文档我们可以得到对于ossfs命令的设置,若无特殊需求,一般情况下默认的配置完全可以正常使用,不需要额外参数。若需要进行配置,我们在这里举例几点常用配置。


本站示例:在我们用ossfs命令对Bucket桶进行配置时,需要遵循其命令格式。


即在挂载Bucket桶时,在挂载载命令后再加上对应的选项

ossfs bucket_name mount_point -ourl=endpoint -o option_name=[option_value] 

bucket_namemount_pointendpoint的含义与第三步一致
      这里的option_name为ossfs命令的选项名称,option_value为选项对应变量。其选项列表和其内容可参阅官方文档





1.  url:用于指定存储空间的访问域名,格式为url=endpoint。当不指定具体的请求协议时,默认选择HTTP。
    示例:
-ourl=oss-cn-hangzhou.aliyuncs.com
-ourl=http://oss-cn-hangzhou.aliyuncs.com
-ourl=https://oss-cn-hangzhou.aliyuncs.com
    该命令即第三步挂载对象储存时用于指定储存空间访问域名时所使用的命令。




2.  在挂载时指定uid和gid参数
    示例:
ossfs bucket_name mount_point -ourl=endpoint -ouid=uid -ogid=gid
    :这里的uid为对应用户id,gid为对应拥有者id




3. 如果我们不需要oss挂载时,可以利用ossfs命令取消挂载。

    终端输入命令:
fusermount -u /mount_point
   注:这里的mount_point指的是之前所挂载的目录。




为灵感而生,让创作自如。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-20 13:48 Processed in 0.056602 second(s), 23 queries .

© 2024 RayGroup Inc Powered by Discuz! X3.4 Theme by Jvmao 豫ICP备19036546号

快速回复 返回顶部 返回列表