阿里OSS-OSSFS

简介

OSSFS就以把OSS作为文件系统的一部分,能让你在linux系统中把OSS bucket挂载到本地文件系统中,实现数据的共享。

主要功能

ossfs 基于s3fs 构建,具有s3fs 的全部功能。主要功能包括:

  • 支持POSIX 文件系统的大部分功能,包括文件读写,目录,链接操作,权限,uid/gid,以及扩展属性(extended attributes)
  • 通过OSS 的multipart 功能上传大文件。
  • MD5 校验保证数据完整性。

局限性

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

  • 随机或者追加写文件会导致整个文件的重写。
  • 元数据操作,例如list directory,性能较差,因为需要远程访问OSS服务器。
  • 文件/文件夹的rename操作不是原子的。
  • 多个客户端挂载同一个OSS bucket时,依赖用户自行协调各个客户端的行为。例如避免多个客户端写同一个文件等等。
  • 不支持hard link。
  • 不适合用在高并发读/写的场景,这样会让系统的load升高。

安装包

centos 7

  ossfs_1.80.2_centos7.0_x86_64.rpm

centos 6.5 

  ossfs_1.80.2_centos6.5_x86_64.rpm

安装方法 

先看一下有没有安装fuse,如果有先删除了

yum remove fuse -y

把安装包传的服务器然后直接安装,以centos 7为例

yum -y localinstall ossfs_1.80.2_centos7.0_x86_64.rpm


配置

设置bucket name 和 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

这里涉及到阿里的accessKeyId/Secret的知识。为了安全我们应该去新建一个RAM然后生成这个key。并对这个RAM进行限制。这样即使这个key被泄露,也不会对其它bucket造成危险。

挂载

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

可以把这句加到/etc/rc.local中

卸载

fusermount -u /tmp/ossfs

实验过程

这里出现的信息均不是真实。

[root@myhost ~]# yum remove fuse
Loaded plugins: fastestmirror
No Match for argument: fuse
No Packages marked for removal
[root@myhost ~]# yum localinstall ossfs_1.80.2_centos7.0_x86_64.rpm 
Loaded plugins: fastestmirror
Examining ossfs_1.80.2_centos7.0_x86_64.rpm: ossfs-1.80.2-1.x86_64
Marking ossfs_1.80.2_centos7.0_x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package ossfs.x86_64 0:1.80.2-1 will be installed
--> Processing Dependency: fuse >= 2.8.4 for package: ossfs-1.80.2-1.x86_64
Loading mirror speeds from cached hostfile
--> Processing Dependency: fuse-libs >= 2.8.4 for package: ossfs-1.80.2-1.x86_64
--> Running transaction check
---> Package fuse.x86_64 0:2.9.2-7.el7 will be installed
---> Package fuse-libs.x86_64 0:2.9.2-7.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================================================================================================================
 Package                                 Arch                                 Version                                   Repository                                                    Size
===========================================================================================================================================================================================
Installing:
 ossfs                                   x86_64                               1.80.2-1                                  /ossfs_1.80.2_centos7.0_x86_64                               4.0 M
Installing for dependencies:
 fuse                                    x86_64                               2.9.2-7.el7                               base                                                          85 k
 fuse-libs                               x86_64                               2.9.2-7.el7                               base                                                          93 k

Transaction Summary
===========================================================================================================================================================================================
Install  1 Package (+2 Dependent packages)

Total size: 4.2 M
Total download size: 178 k
Installed size: 4.5 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): fuse-2.9.2-7.el7.x86_64.rpm                                                                                                                                  |  85 kB  00:00:00     
(2/2): fuse-libs-2.9.2-7.el7.x86_64.rpm                                                                                                                             |  93 kB  00:00:00     
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                      304 kB/s | 178 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : fuse-libs-2.9.2-7.el7.x86_64                                                                                                                                            1/3 
  Installing : fuse-2.9.2-7.el7.x86_64                                                                                                                                                 2/3 
  Installing : ossfs-1.80.2-1.x86_64                                                                                                                                                   3/3 
  Verifying  : ossfs-1.80.2-1.x86_64                                                                                                                                                   1/3 
  Verifying  : fuse-2.9.2-7.el7.x86_64                                                                                                                                                 2/3 
  Verifying  : fuse-libs-2.9.2-7.el7.x86_64                                                                                                                                            3/3 

Installed:
  ossfs.x86_64 0:1.80.2-1                                                                                                                                                                  

Dependency Installed:
  fuse.x86_64 0:2.9.2-7.el7                                                                 fuse-libs.x86_64 0:2.9.2-7.el7                                                                

Complete!

[root@myhost ~]# echo mybuckey:JMIdhjrtutkGtjjr:eFAC8jinzajflsietagv6JoOwfXbFN > /etc/passwd-ossfs
[root@myhost ~]# chmod 640 /etc/passwd-ossfs 
[root@myhost ~]# ossfs mybuckey /data1 -ourl=oss-cn-shenzhen-internal.aliyuncs.com
[root@myhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       40G  2.0G   36G   6% /
ossfs           256T     0  256T   0% /data1
原文地址:https://www.cnblogs.com/gorgage/p/7349258.html