ECS中使用Ossfs挂载OSS存储

By | 2017年7月27日

阿里云的OSS存储还是蛮好用的,官方提供了程序(ossfs)可以把OSS存储空间挂载到Linux系统中,这样系统就能额外多了很多存储空间。

我的ECS使用的是Ubuntu 16.04 64位系统,ossfs也正好提供了该系统的deb包,直接就能安装,不用源码编译了。

安装过程如下:

1)下载deb文件:ossfs_1.80.2_ubuntu16.04_amd64.deb,其他版本的文件见官方的发布页面:https://github.com/aliyun/ossfs/releases

wget https://github.com/aliyun/ossfs/releases/download/v1.80.2/ossfs_1.80.2_ubuntu16.04_amd64.deb

2)安装deb文件

sudo apt-get update
sudo apt-get install gdebi-core
sudo gdebi ossfs_1.80.2_ubuntu16.04_amd64.deb

3)安装完成后,需要配置OSS使用的帐号信息

echo my-bucket:access-key:access-secret > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs

/etc/passwd-ossfs文件中的内容格式为: bucketName:AccessKey:AccessSecret

使用英文分号分割bucketName和AK、AS值。

4)配置已经完成,现在可以启动ossfs程序了:

ossfs my-bucket my-mount-point -ourl=my-oss-endpoint

my-bucket:修改为bucket的name

my-mount-point:修改为需要加载到的路径,常见的是/mnt/ossfs

my-oss-endpoint:为bucket所在地点的访问域名,这里有两种,一是写外网域名,比如上海地点为:oss-cn-shanghai.aliyuncs.com,一种是如果ECS和Bucket在同一地点,使用内网域名,比如vpc100-oss-cn-shanghai.aliyuncs.com

这样能更节省流量,提高速度。

5)配置开机自动启动ossfs程序,自动挂载

这里有2个方法,一个是修改/etc/fstab文件,让系统在启动时就自动加载,一个是使用supervisor去启动ossfs。

方法一:修改/etc/fstab文件,在fstab文件中写入:

ossfs#bucketName /mnt/ossfs fuse _netdev,url=http://vpc100-oss-cn-shanghai.aliyuncs.com,allow_other 0 0

其中bucketName换成自己的,挂载地址默认为/mnt/ossfs,url修改为自己的,可以用外网地址或者内网地址。

保存fstab文件后运行mount命令:

mount -a

方法二:安装supervisor程序,用它来启动,它能自动检查ossfs程序,如果意外退出了,能自动启动ossfs程序。

#ubuntu安装
sudo apt-get install supervisor

安装完成后,创建ossfs启动脚本文件:

vim /opt/start_ossfs.sh

 写入如下数据:
 # 卸载
 fusermount -u /mnt/ossfs
 # 重新挂载,必须要增加-f参数运行ossfs,让ossfs在前台运行
 exec ossfs my-bucket my-mount-point -ourl=my-oss-endpoint -f

然后编辑/etc/supervisor/supervisord.conf文件,在最后写入:

 [program:ossfs]
 command=bash /opt/start_ossfs.sh
 logfile=/var/log/ossfs.log
 log_stdout=true
 log_stderr=true
 logfile_maxbytes=1MB
 logfile_backups=10

启动:

supervisord

现在可以使用df命令查看挂载情况:

使用Winscp软件查看挂载ossfs目录,看看OSS中的文件是否能显示:

完美。

不详细之处请阅读官方帮助页面:https://github.com/aliyun/ossfs/wiki/FAQ