简介

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..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 /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..2_centos7.0_x86_64.rpm
Loaded plugins: fastestmirror
Examining ossfs_1..2_centos7.0_x86_64.rpm: ossfs-1.80.-.x86_64
Marking ossfs_1..2_centos7.0_x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package ossfs.x86_64 :1.80.- will be installed
--> Processing Dependency: fuse >= 2.8. for package: ossfs-1.80.-.x86_64
Loading mirror speeds from cached hostfile
--> Processing Dependency: fuse-libs >= 2.8. for package: ossfs-1.80.-.x86_64
--> Running transaction check
---> Package fuse.x86_64 :2.9.-.el7 will be installed
---> Package fuse-libs.x86_64 :2.9.-.el7 will be installed
--> Finished Dependency Resolution Dependencies Resolved ===========================================================================================================================================================================================
Package Arch Version Repository Size
===========================================================================================================================================================================================
Installing:
ossfs x86_64 1.80.- /ossfs_1..2_centos7.0_x86_64 4.0 M
Installing for dependencies:
fuse x86_64 2.9.-.el7 base k
fuse-libs x86_64 2.9.-.el7 base k Transaction Summary
===========================================================================================================================================================================================
Install Package (+ Dependent packages) Total size: 4.2 M
Total download size: k
Installed size: 4.5 M
Is this ok [y/d/N]: y
Downloading packages:
(/): fuse-2.9.-.el7.x86_64.rpm | kB ::
(/): fuse-libs-2.9.-.el7.x86_64.rpm | kB ::
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total kB/s | kB ::
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : fuse-libs-2.9.-.el7.x86_64 /
Installing : fuse-2.9.-.el7.x86_64 /
Installing : ossfs-1.80.-.x86_64 /
Verifying : ossfs-1.80.-.x86_64 /
Verifying : fuse-2.9.-.el7.x86_64 /
Verifying : fuse-libs-2.9.-.el7.x86_64 / Installed:
ossfs.x86_64 :1.80.- Dependency Installed:
fuse.x86_64 :2.9.-.el7 fuse-libs.x86_64 :2.9.-.el7 Complete! [root@myhost ~]# echo mybuckey:JMIdhjrtutkGtjjr:eFAC8jinzajflsietagv6JoOwfXbFN > /etc/passwd-ossfs
[root@myhost ~]# chmod /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 .0G 36G % /
ossfs 256T 256T % /data1

最新文章

  1. NOIP2016滚粗计
  2. LINQ系列:Linq to Object限制操作符
  3. 关于JavaScript预编译和执行顺序以及函数引用类型的思考
  4. 移动端框架篇-控制子容器的滑屏框架-fullPage.js
  5. Java 动态生成复杂 Word
  6. Linux 命令 - echo: 显示一行文本
  7. ADB server didn't ACK的问题
  8. Runtime.getRuntime().addShutdownHook(shutdownHook);
  9. PHP <<EOF EOF的使用方法
  10. strings
  11. CUDA C Best Practices Guide 在线教程学习笔记 Part 1
  12. 安装JDK出现错误:-bash: /usr/java/jdk1.7.0_71/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory解决办法
  13. BZOJ 1069: [SCOI2007]最大土地面积 [旋转卡壳]
  14. Java中的java.math.BigInteger
  15. Python语言的高级特性
  16. oc门
  17. hibernate注解(三)1+N问题
  18. JavaScript权威指南--脚本化文档
  19. Linux bzip2命令详解
  20. CSS快速入门-浮动(float)

热门文章

  1. ionic view 视图
  2. Django中间件分析
  3. MICROSOFT SQL SERVER 2012 序列号
  4. psu online course
  5. vue 路由重定向
  6. 谈一谈创建React Component的几种方式
  7. opencv读取的彩色图像,数据是GBR而不是RGB
  8. ajax返回后台编译时都对,返回error
  9. Docker(六)安装Red5进行rtmp推流
  10. laravel--laravel的重定向类Redirector