下面介绍如何挂载9元/年的40G OSS
扩充存储空间。
存储包:
半年付5元。
存储包挂载介绍和ESC的相同:
- OSS与同地域的全部ecs内网互通 OSS内网IP是特殊IP段 全阿里云的vpc/经典机器都可以访问任一一个该地区的OSS 所以OSS和ecs只有地域关系;
- OSS内网传输不收流量费 但是收API操作费 这个费用包括但不限于读写次数 1块钱100W次;
- OSS外网传输费是0.3块多钱/GB;
- 国内版OSS可以内网给国际站/日本站的机器用 只要你是OSS和ecs相同地区的就OK。
购买OSS
在此快速购买存储包然后进入控制台创建bucket
:
购买和创建一定要选择和服务器同样的香港地区。
安装OSSFS
wget https://github.com/aliyun/ossfs/releases/download/v1.80.5/ossfs_1.80.5_centos7.0_x86_64.rpm
centos7
为例,其他系统版本ossfs
下载:https://github.com/aliyun/ossfs/releases
安装:
yum localinstall ossfs_1.80.5_centos7.0_x86_64.rpm
Ubuntu/Debian安装:
首先安装gdebi
,然后使用gdebi
安装。
sudo apt-get update
sudo apt-get install gdebi-core
sudo gdebi your_ossfs_package
挂载方法:
获取 AccessKeyId/Secret
登录阿里云控制台。单击页面左上方的管理控制台。将鼠标移至右上方的“账号管理”图标选择accessKeys
,然后创建key
。
注意:提示信息中的云账号
AccessKey
是您访问阿里云API的密钥,具有该账户完全的权限,请务必妥善保管。请勿通过任何方式(如Github等)将AccessKey
公开至外部渠道,以免被恶意利用而造成安全威胁。强烈建议您遵循阿里云安全最佳实践,使用RAM子用户AccessKey
来进行API调用。
挂载:
设置bucket name
(购买后创建的bucket名称) 和 AccessKeyId/Secret
信息,将其存放在/etc/passwd-ossfs
文件中,注意这个文件的权限必须正确设置,建议设为640
。
echo my-bucket:my-access-key-id:my-access-key-secret > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
my-bucket:my-access-key-id:my-access-key-secret
对应为 bucket名称 : AccessKey ID : Access Key Secret
将OSS bucket
挂载到指定目录:
ossfs my-bucket my-mount-point -ourl=my-oss-endpoint
oss endpoint
地址可以在OSS控制台找到 一定要选择内网地址。
示例:
将my-bucket
这个bucket
挂载到/tmp/ossfs
目录下,AccessKeyId
是abcde
,AccessKeySecret
是123456
,oss endpoint
是oss-cn-hongkong-internal.aliyuncs.com
echo my-bucket:abcde:123456 > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
mkdir /tmp/ossfs
ossfs my-bucket /tmp/ossfs -ourl=http://oss-cn-hongkong-internal.aliyuncs.com
查看:
df -h
root@centos:~# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 486M 0 486M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 6.7M 490M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/vda1 25G 2.5G 21G 11% /
tmpfs 100M 0 100M 0% /run/user/0
ossfs 256T 0 256T 0% /www/wwwroot/default/ossfs
这样就算成功了。
挂载目录权限问题
Q: ossfs挂载时如何设置权限?
如果要允许其他用户访问挂载文件夹,可以在运行ossfs
的时候指定allow_other
参数:
ossfs your_bucket your_mount_point -ourl=your_endpoint -o allow_other
为什么使用allow_other
参数,仍然不能访问文件?
注意:allow_other
是赋予挂载目录其他用户访问的权限,不是里面的文件!如果您要更改文件夹中的文件,请用chmod命令。 allow_other
默认赋予挂载目录777权限,我想让挂载目录的权限为770,该怎么办?
可以通过umask
来设置。
Q: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user:
方法一:
如果要使挂载的文件夹/tmp/ossfs
属于某个user
,则需要以user
的身份创建挂载文件夹和使用ossfs
:
sudo -u user mkdir /tmp/ossfs
sudo -u user ossfs bucket-name /tmp/ossfs
方法二:
首先通过id
命令获得指定用户的uid/gid
信息。例如获取www
用户的uid/gid
信息:id www
;然后挂载时指定uid/gid
参数:
ossfs your_bucket your_mountpoint -ourl=your_url -ouid=your_uid -ogid=your_gid
注意:uid/gid
都是数字。
参考链接
卸载:
root账户卸载:
umount /挂载目录
非root用户要卸载目录,请用:
fusermount -u your_mountpoint
开机自动挂载
Q: 如何开机自动挂载ossfs?
-
Step 1
首先请参考使用说明,把bucket name
,access key id/secret
等信息写入/etc/passwd-ossfs
,并将该文件权限修改为640。echo your_bucket_name:your_access_key\_id:your_access_key_secret > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs
- Step 2
接下来针对不同的系统版本,设置方式有所不同 - 在
/etc/init.d/
目录下建立文件ossfs
,把模板文件中的内容拷贝到这个新文件中。并将其中的your_xxx内容改成您自己的信息。 - 执行命令:
chmod a+x /etc/init.d/ossfs
- 上述命令是把新建立的ossfs脚本赋予可执行权限。您可以执行该脚本,如果脚本文件内容无误,那么此时oss中的bucket已经挂载到您指定的目录下了。
- 执行命令:
chkconfig ossfs on
- 上述命令是把ossfs启动脚本作为其他服务,开机自动启动。
- 在
/etc/fstab
中加入下面的命令
* 其中上述命令中的`your_xxx`信息需要根据您的`bucket name`等信息填入。
* 保存`/etc/fstab`文件。执行`mount -a`命令,如果没有报错,则说明设置正常。
* 到这一步,`ubuntu14.04`就能自动挂载了。`centos6.5`还需要执行下面的命令:
* `chkconfig netfs on`
* Step 2A 通过`fstab`的方式自动挂载(适用于`ubuntu14.04, centos6.5`)
* Step 2B 通过开机自启动脚本挂载(适用于centos7.0及以上的系统)
* 好了,现在`ossfs`就可以开机自动挂载了。