OSS

2017/7/30 posted in  运维

通过oss实现共享存储

需求

接入层的www门户、H5门户和APP门户都需要使用到同一份内容文件,这些文件的业务特点是:

  • 不会出现并发写,如用户头像,一般情况下只会出现单个请求来修改
  • 读的次数远大于写的次数。
  • 读取和写入时有明确的文件名和路径,不会用取文件列表的操作和find操作。

由于该需求出现的时候,还没有NAS服务,经过研究发现可以使用阿里开源项目ossfs将oss挂载成本地目录,以实现这个需求,具体操作如下:

安装

root@iZ2590mt68kZ:~# apt-get install gdebi-core
root@iZ2590mt68kZ:~# wget https://github.com/aliyun/ossfs/releases/download/v1.79.9/ossfs_1.79.9_ubuntu14.04_amd64.deb
root@iZ2590mt68kZ:~# gdebi ossfs_1.79.9_ubuntu14.04_amd64.deb

配置

h5@iZ2590mt68kZ:~$ echo "sharedata:KradSx13tE012346:h0FgmWo775ksae8n171opZg2512345" > ~/.passwd-ossfs
h5@iZ2590mt68kZ:~$ chmod 640 ~/.passwd-ossfs
```ca

说明:

    
| 值 | 说明 |
| --- | --- |
| sharedata | BucketName |
| KradSx13tE012346 | Access Key ID |
| h0FgmWo775ksae8n171opZg2512345 | Access Key Secret |

### 映射本地目录

```shell
h5@iZ2590mt68kZ:~$ mkdir /home/april/sharedata
h5@iZ2590mt68kZ:~$ ossfs sharedata /home/april/sharedata -ourl=http://oss-cn-beijing-internal.aliyuncs.com

这样就Bucket名为sharedata的oss存储映射到本地/home/april/sharedata目录了。

注:ourl为你的oss所在域的域名,在控制台中可以看到,将bucketname去掉就可以了
由于我的ECS和oss是在同一个区,为了节约流量钱,我就直接用内网域名。

取消映射

h5@iZ2590mt68kZ:~$ fusermount -u /home/april/sharedata

参考链接

数据异地灾备

需求

我们将帖子的内容文件存在oss上,由于oss的特性,取指定文件非常快,但是遍历文件就会非常慢,所以在ECS上进行文件备份是一个大难题。

经过研究发现阿里云本身提供oss跨域备份的功能,可以很轻松的实现这个需求。

参考链接