ECS挂载oss做本地存储最佳实践

背景

linux版本:centos 7.2

安装ossfs

1、下载安装包:

wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos7.0_x86_64.rpm

2、安装ossfs

sudo yum localinstall your_ossfs_package

3、配置账号访问信息。

将Bucket名称以及具有此Bucket访问权限的AccessKeyId/AccessKeySecret信息存放在/etc/passwd-ossfs文件中。注意这个文件的权限必须正确设置,建议设为640。

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

chmod 640 /etc/passwd-ossfs

4、将Bucket挂载到指定目录

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

挂载示例:将杭州地域名称为bucket-test的Bucket挂载到/tmp/ossfs目录下。

echo bucket-test:LTAIbZcdVCmQ****:MOk8x0y9hxQ31coh7A5e2MZEUz**** > /etc/passwd-ossfs

chmod 640 /etc/passwd-ossfs

mkdir /tmp/ossfs

ossfs bucket-test /tmp/ossfs -ourl=http://oss-cn-hangzhou.aliyuncs.com

【注意】如果您使用从阿里云购买的云服务器(ECS)来提供ossfs服务,您可以使用内网域名,在这个示例中您可以将OSS endpoint 改为oss-cn-hangzhou-internal.aliyuncs.com,这样可以节省流量费用。OSS的内网域名请参见访问域名和数据中心。

5、如果您不希望继续挂载此Bucket,您可以将其卸载。

fusermount -u /tmp/ossfs

问题:

本地目录挂载oss后,发现目录的权限属性变成了700,导致只有root账户能查看,其他账户无法看。

配置访问权限

ossfs挂载的目录访问权限默认为挂载点的所有者,即执行挂载命令的用户,其他用户无法访问。如果要修改默认的权限设置,例如允许其他用户或用户组访问挂载点,可以在运行ossfs的时候使用如下参数,做到期望的权限设置。

allow_other:赋予计算机上其他用户访问挂载目录的权限,但不包括目录内的文件。如果您要更改文件夹中的文件访问权限,请用chmod命令。该选项不需要设置选项值,如果需要启用,请直接添加-oallow_other选项。

uid:设置文件夹属于某个用户时填写的用户uid。

gid:设置文件夹属于某个用户时填写的用户gid。

mp_umask:用来设定挂载点的权限掩码,只有当allow_other选项设置后,该选项才生效,默认值为000。使用方法与umask命令使用方式一致。例如需要设置挂载点的权限为770,则增加-oallow_other -omp_umask=007;需要设置挂载点的权限为700,则增加-oallow_other -omp_umask=077。

配置示例:

允许所用的用户访问,即权限为777。

ossfs bucket_name mount_point -ourl=endpoint -oallow_other

只允许同组的用户访问,即权限为770。

ossfs bucket_name mount_point -ourl=endpoint -oallow_other -omp_umask=007

挂载时指定为其他用户和组,同时只允许同组的用户访问,即权限为770。

以www用户为例说明,先通过id命令获取用户的uid和gid信息,之后在挂载时指定uid和gid参数。

id wwwuid=1000(www) gid=1000(web)groups=1000(web)ossfs bucket_name mount_point -ourl=endpoint -oallow_other -ouid=1000-ogid=1000-omp_umask=007

挂载指定文件目录

ossfs除了可以把整个存储空间挂载到本地文件系统外,还可以通过设置前缀,把存储空间下的某个文件目录挂载到本地文件系统。命令格式如下:

ossfs bucket:/prefix mount_point -ourl=endpoint

通过这个方式挂载时,需要确保存储空间里存在${prefix}/这样一个对象。可以通过ossutil的stat命令查询该对象是否存在。

示例:将位于杭州地域的存储空间bucket-ossfs-test下的folder目录挂载到/tmp/ossfs-folder下。

ossfs bucket-ossfs-test:/folder /tmp/ossfs-folder -ourl=http://oss-cn-hangzhou.aliyuncs.com

开机自动挂载目录

将Bucket名称、AccessKeyID、AccessKeySecret等信息写入/etc/passwd-ossfs文件,并将文件权限修改为640。

配置步骤请参见快速安装。

设置开机自动挂载。

针对不同的系统版本,设置开机自动挂载ossfs的方式有所不同。

Ubuntu 14.04和CentOS 6.5系统版本通过fstab的方式自动挂载

在/etc/fstab中加入如下命令:

ossfs#bucket_namemount_pointfuse_netdev,url=url,allow_other 0 0

保存/etc/fstab文件。执行mount -a命令,如果没有报错,则说明设置正常。

上一步执行完成后,Ubuntu 14.04就能自动挂载了。CentOS 6.5还需要执行如下命令:

chkconfig netfs on

你可能感兴趣的:(ECS挂载oss做本地存储最佳实践)