阿里云ECS利用OSSFS挂载OSS 本地磁盘使用

阿里OSS是对象存储服务,价格也比较便宜,算得是一免费的CDN,我们以利用OSSFS这个具,将OSS挂载阿里云ECS服务器上,可以达到存储、备份的目的。当然,最主要的是可以减轻服务器的压力。

OSSFS功能

补充一下,具体的介绍,我们可以在github项目看,地址是:本地文件系统操作OSS 上的对象,实现数据的共享。

1).支持POSIX 文件系统的大分功能,包括文件读写,目录,链接操作,权限,uid/gid,以及扩展属性(extended attributes)。

2).通过OSS 的multipart 功能上传大文件。

3).MD5 校验保证数据完整性。

注意事项

ossfs提供的功能/性能和本地文件系统相比,具有一些局限性。具体包括:

1).ossfs只支持linux/mac操作系统。

2).随机或者追加写文件会导致整个文件的重写。

3).元数据操作,例如list directory,性能较差,因为需要远程访问oss服务器。

4).文件/文件夹的rename操作不是原子的。

5).多个户端挂载同一个oss bucket时,依赖用户自行协调各个客户端的行为。例如避免多个客户端写同一个文件等等。

6).不支持hard link。

因此,如果您需要一个工具让数据快速同步至云端,或者在多台机器之间共享,那么ossfs是一个选择。如果是数据库等对存储的性能和可靠性要求苛刻的应用,请慎重选择。

OSSFS的安装

SSH连接到服务器,分别执行下面的命令:
wget https://github.com/aliyun/ossfs/releases/download/v1.79.9/ossfs_1.79.9_centos6.5_x86_64.rpm
sudo yum localinstall ossfs_1.79.9_centos6.5_x86_64.rpm
运行与示例

1.设置bucket name, access key/id信息,将其存放在/etc/passwd-ossfs 文件中, 注意这个文件的权限必须正确设置,建议设为640.
echo my-bucket:my-access-key-id:my-access-key-secret > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
2.将oss bucket mount到指定目录
ossfs my-bucket my-mount-point -ourl=my-oss-endpoint
3.新建一个Bucket空间,这里我用的我博客测试,命名为xiangtabk

阿里云ECS利用OSSFS挂载OSS 本地磁盘使用插图学习笔记-橙子系统站

在这里说明一下,因为是新建的Bucket,所以没有任何东西

阿里云ECS利用OSSFS挂载OSS 本地磁盘使用插图1学习笔记-橙子系统站

4.然后我们再指定AccessKeyId

阿里云ECS利用OSSFS挂载OSS 本地磁盘使用插图2学习笔记-橙子系统站

下面是将华北 1 (青岛)bucket名字为xiangtabk,AccessKeyId是IDXXXXXXXXXXXXXXXX, AccessKeySecret是KeyXXXXXXXXXXXXXXXXXXXXX(这里的AccessKeyId和AccessKeySecret请到阿里云查看,本人用XXXXXXX代表了),oss endpoint是xiangtabk.oss-cn-qingdao-internal.aliyuncs.com(内网)挂载到/home/ossfs目录.

Endpoint对照表请访问:OSS开通Region和Endpoint对照表查看.
echo xiaoz:faint:123 > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
mkdir /home/ossfs
ossfs xiaoz /home/ossfs -ourl=xiangtabk.oss-cn-qingdao-internal.aliyuncs.com

取消挂载

直接输入umount /home/ossfs即可

OSS不仅可以通过内网还可以通过公网挂载,如果您在阿里云同时购买了同一个区的ECS和OSS那么将OSS挂载到内网用于达到文件存储或备份的目的,下面是挂载后的截,如下:

阿里云ECS利用OSSFS挂载OSS 本地磁盘使用插图3学习笔记-橙子系统站

另外,在官方的介绍页面上看到:如果使用ossfs的机器是阿里云ECS,可以使用内网域名来避免流量收费和提速度,设置如下:
ossfs my-bucket /tmp/ossfs -ourl=xiangtabk.oss-cn-qingdao-internal.aliyuncs.com

最最重要的一步,就是开机自动挂载OSS

原本是想通过修改 fstab 来实现的,但是考虑到如果出错容易导致无法启动,再参考网上的教程后,选择自定义服务来自动挂载OSS。

首先编辑启动脚本,新建 /usr/local/ossfs.sh 文件,输入:
#! /bin/bash
#
# ossfs Automount Aliyun OSS Bucket in the specified direcotry.
#
# description: Activates/Deactivates ossfs configured to start at boot time.
ossfs bucket /mnt/oss -ourl=http://oss-cn-hangzhou-internal.aliyuncs.com -o allow_other

修改脚本文件为 755:
chmod 755 /usr/local/ossfs.sh

接下来就是自定义服务了。

新建服务文件:
vi /etc/systemd/system/ossfs.service
chmod 664 /etc/systemd/system/ossfs.service

在服务文件里写入:
[Unit]
Description=Auto OSS
[Service]
Type=forking
ExecStart=/usr/local/ossfs.sh
[Install]
WantedBy=multi-user.target

重载服务、启用服务:
systemctl daemon-reload
systemctl enable ossfs

大功告成,接下来重启,看看服务有没有启动:
systemctl status ossfs

© 版权声明
THE END
喜欢就支持一下吧
点赞46 分享