阿里云的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