阿里云OSS是对象存储服务,价格也比较便宜,算得上是一个免费的CDN,我们可以利用OSSFS这个工具,将OSS挂载到阿里云ECS服务器上,可以达到存储、备份的目的。当然,最主要的是可以减轻服务器的压力。
OSSFS功能
先补充一下,具体的介绍,我们可以在github项目上查看,地址是:由此直达
ossfs 能在Linux/Mac OS X 系统中把Aliyun OSS bucket 挂载到本地文件 系统中,您能够便捷的通过本地文件系统操作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
在这里说明一下,因为是新建的Bucket,所以没有任何东西
4.然后我们再指定AccessKeyId
下面是将华北 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挂载到内网用于达到文件存储或备份的目的,下面是挂载后的截图,如下:
另外,在官方的介绍页面上看到:如果使用ossfs的机器是阿里云ECS,可以使用内网域名来避免流量收费和提高速度,设置如下:
ossfs my-bucket /tmp/ossfs -ourl=xiangtabk.oss-cn-qingdao-internal.aliyuncs.com
如果您还没有使用过阿里云OSS,而刚好又是使用的阿里云的主机,那么可以试试这个,目前有免费的存储空间,不过不多,后面有可能会收费。