阿里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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步