阿里云:在ECS上挂载ossfs

OSS与CDN

OSS

阿里云OSS(Object Storage Service,对象存储服务)是阿里云提供的对象存储服务,具有以下特点:

  • 可以提供海量的文件存储,具有无限可伸缩能力;
  • 有遍布全国及海外的数据中心,满足不同区域用户的使用;
  • 服务稳定,达到7个9;
  • 价格便宜;
  • 与阿里云其他云产品组成生态体系,无缝衔接,自带图片处理服务,可以满足多种多样的业务场景;
  • 技术团队可以提供7×24小时的技术支持。除此之外,OSS还支持更加强大的权限体系,可以满足更加复杂的场景,并且具有极好的数据安全性。

CDN

CDN(Content Delivery Network,即内容分发网络),其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

综上,OSS就是云存储(也有些计算能力,如图片处理等),CDN就是网络优化。

权限配置

在OSS中新建Bucket。假设BucketName为example,所属区域为华东2,读写权限私有,因此这个Bucket的外网链接地址为:http://example.oss-cn-shanghai.aliyuncs.com,内网地址为:http://example.oss-cn-shanghai-internal.aliyuncs.com
创建完Bucket后就已经将ossfs挂载到ECS主机了。ossfs挂载需要用到AccessKey,即AccessKeyIDAccessKeySecretAccessKey是与用户权限一一对应的(可以在AccessKey管理中创建),所以在挂载ossfs的时候需要做访问控制来严格限制权限。
访问控制RAM用户管理中创建用户user,在策略管理中创建自定义策略example,策略内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"Statement": [
{
"Action": "oss:*",
"Effect": "Allow",
"Resource": [
"acs:oss:*:*:example",
"acs:oss:*:*:example/*"
]
}
],
"Version": "1"
}

完成在用户管理中将策略example授权给user用户。进入user用户的用户详情,在用户AccessKey创建AccessKey并保存下AccessKeyIDAccessKeySecret备用。

安装与配置

下载安装ossfs安装包:

1
2
$ wget https://github.com/aliyun/ossfs/releases/download/v1.80.0/ossfs_1.80.0_centos7.0_x86_64.rpm
$ sudo yum localinstall -y ossfs_1.80.0_centos7.0_x86_64.rpm

创建/etc/passwd-ossfs

1
2
3
$ sudo echo example:aAaAAAaaaAAaa:BbBBBBBbbbbbbbbbbB > /etc/passwd-ossfs
$ sudo chmod 640 /etc/passwd-ossfs
$ sudo mkdir -p /data/example

说明/etc/passwd-ossfs文件格式是BucketName:AccessKeyID:AccessKeySecret,权限建议640

挂载ossfs

均以上面的example为例。

经典网络

1
$ sudo ossfs example /data/example -ourl=http://oss-cn-shanghai-internal.aliyuncs.com -oallow_other

私有网络

1
$ sudo ossfs example /data/example -ourl=http://vpc100-oss-cn-shanghai.aliyuncs.com -oallow_other

详细参考:https://help.aliyun.com/document_detail/31837.html?spm=5176.7739584.2.2.M93hk9

配置开机自启

最后可以将这条命令写入到开机启动脚本里实现开机自动挂载。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ sudo vi /etc/rc.d/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
/usr/local/bin/ossfs ossfs example /data/example -ourl=http://vpc100-oss-cn-shanghai.aliyuncs.com -oallow_other
$ sudo chmod +x /etc/rc.d/rc.local

参考来源:https://github.com/aliyun/ossfs/blob/master/README.md

文章目录
  1. 1. OSS与CDN
    1. 1.1. OSS
    2. 1.2. CDN
  2. 2. 权限配置
  3. 3. 安装与配置
  4. 4. 挂载ossfs
    1. 4.1. 经典网络
    2. 4.2. 私有网络
  5. 5. 配置开机自启