OSSFs挂载工具简介
ossfs允许您在Linux系统中将对象存储OSS的存储空间(Bucket)挂载到本地文件系统。挂载完成后,您能够像操作本地文件一样操作OSS的对象(Object),从而实现数据共享。
使用起来,可以把存储桶Bucket理解成一个文件夹,进入到文件夹后增删改查目录中的文件,即相当于在操作Bucket。
演示体验:
这里已经创建了一个Bucket :longgovv
在存储桶中创建2个文件夹
如果Linux服务器已经部署了OSSFs系统并配置,则效果如下:
[root@wangting ~]# cd /oss/longgovv/
[root@wangting longgovv]# ll
total 1
drwxrwxrwx 1 root root 0 Mar 2 16:20 FypA9M
drwxr-xr-x 1 root root 0 Mar 3 09:55 wangt
可以在服务器上查看到与longgovv同步的目录,以上就是直观的使用感受
OSSFs运行环境
Linux系统:
- CentOS 7.0及以上版本
- Ubuntu 14.04及以上版本
- Anolis7及以上版本
- fuse 2.8.4以上版本
ossfs基于fuse用户态文件系统开发,只能运行在支持fuse的机器上。OSS提供了Ubuntu和CentOS系统的安装包,如果需要在其它环境下运行,可以通过源码方式构建目标程序。
ossfs支持在阿里云内网以及互联网环境下使用。在内网环境下时,建议使用内网访问域名,以提升访问速度和稳定性
OSSFs主要功能
ossfs基于s3fs构建,具有s3fs的全部功能。其中包括:
- 支持POSIX文件系统的大部分功能,例如上传下载文件、目录,设置用户权限等
- 默认使用OSS的分片上传和断点续传功能上传文件
- 支持MD5校验,保证数据完整性
OSSFs使用限制
- 不支持挂载归档型Bucket
- 不适合高并发读写的场景
- 编辑OSS内文件会导致文件被重新上传
- 元数据操作(例如list directory)需要远程访问OSS服务器,所以性能较差
- 重命名文件或文件夹可能会出错。若操作失败,可能会导致OSS和本地数据不一致
- 多个客户端挂载同一个OSS Bucket时,数据一致性由您自行维护。建议您合理规划文件使用时间,避免出现多个客户端写同一个文件的情况
- 不支持hard link
- 如果您因意外中断了文件上传的过程,且未继续完成该文件的上传,则已上传的部分会以碎片(Part)的形式存储在OSS的存储空间(Bucket)中。如果您不再需要这些Part,建议您通过以下方式删除,以免产生额外的存储费用
安装ossfs
1.下载安装包
# CentOS 7.0 (x64)
[root@wangting ~]# wget https://gosspublic.alicdn.com/ossfs/ossfs_1.80.7_centos8.0_x86_64.rpm
# CentOS 8.0 (x64)
[root@wangting ~]# wget https://gosspublic.alicdn.com/ossfs/ossfs_1.80.7_centos8.0_x86_64.rpm
其它版本可到官方查找下载连接
2.安装rpm包
[root@wangting ~]# yum install -y ossfs_1.80.7_centos8.0_x86_64.rpm
【注意】
yum安装ossfs的rpm包时,-y会自动安装一些附带的依赖,如果纯离线环境需要考虑yum安装环境
无法直接使用yum下载依赖包。您可以在网络正常的、相同版本操作系统的节点上,使用yum下载依赖包并拷贝到网络特殊的节点。例如,ossfs需要依赖fuse 2.8.4以上版本,可使用如下命令,下载yum源中最新的fuse到本地
yum install --downloadonly --downloaddir=./ fuse # 如果需要下载其他依赖包,请将fuse换成对应包的名称
3.配置账号访问信息
- 配置账号
echo BucketName:yourAccessKeyId:yourAccessKeySecret > /etc/passwd-ossfs
[root@wangting ~]# echo longgovv:LT6qNAI5txgaUaUtEo4zF:AqJFq9jP6q0rzzeHITNNMCFRtCqKlL > /etc/passwd-ossfs
[root@wangting ~]# chmod 640 /etc/passwd-ossfs
将Bucket名称以及具有该Bucket访问权限的AccessKey ID和AccessKey Secret信息存放在/etc/passwd-ossfs文件中。文件的权限建议设置为640。
- 配置挂载信息
ossfs BucketName mountfolder -o url=Endpoint
[root@wangting ~]# mkdir -p /oss/longgovv
[root@wangting ~]# ossfs longgovv /oss/longgovv -o url=http://oss-cn-shanghai.aliyuncs.com
Endpoint为访问端口,在Bucket的概览首页即可查找到
OSSFs验证与使用
Linux端写文件操作
配置完挂载信息,则直接可以在命令行查看使用Bucket了
[root@wangting longgovv]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 899M 0 899M 0% /dev
tmpfs tmpfs 914M 0 914M 0% /dev/shm
tmpfs tmpfs 914M 520K 913M 1% /run
tmpfs tmpfs 914M 0 914M 0% /sys/fs/cgroup
/dev/vda1 xfs 40G 21G 20G 51% /
tmpfs tmpfs 183M 0 183M 0% /run/user/0
ossfs fuse.ossfs 256T 0 256T 0% /oss/longgovv
使用体验:
[root@wangting longgovv]# cd /oss/longgovv/
[root@wangting longgovv]# mkdir 20230303
[root@wangting longgovv]# ll
total 2
drwxr-xr-x 1 root root 0 Mar 3 10:24 20230303
drwxrwxrwx 1 root root 0 Mar 2 16:20 FypA9M
drwxr-xr-x 1 root root 0 Mar 3 09:55 wangt
[root@wangting longgovv]# cd 20230303
[root@wangting 20230303]# date >> test.log
[root@wangting 20230303]# date >> test.log
[root@wangting 20230303]# date >> test.log
[root@wangting 20230303]# cat test.log
Fri Mar 3 10:26:36 CST 2023
Fri Mar 3 10:26:37 CST 2023
Fri Mar 3 10:26:37 CST 2023
查看oss的对象API
[root@wangting 20230303]# curl https://longgovv.oss-cn-shanghai.aliyuncs.com/20230303/test.log
Fri Mar 3 10:26:36 CST 2023
Fri Mar 3 10:26:37 CST 2023
Fri Mar 3 10:26:37 CST 2023
下载test.log
Linux端读取文件操作
挂起目录监控
[root@wangting 20230303]# while true;do date && sleep 1 && ls -l;done
Bucket上传文件:
[root@wangting 20230303]# while true;do date && sleep 1 && ls -l;done
Fri Mar 3 10:34:59 CST 2023
total 1
-rw-r--r-- 1 root root 87 Mar 3 10:26 test.log
Fri Mar 3 10:35:00 CST 2023
total 1
-rw-r--r-- 1 root root 87 Mar 3 10:26 test.log
Fri Mar 3 10:35:01 CST 2023
total 1
-rw-r--r-- 1 root root 87 Mar 3 10:26 test.log
Fri Mar 3 10:35:02 CST 2023
total 1
-rw-r--r-- 1 root root 87 Mar 3 10:26 test.log
Fri Mar 3 10:35:03 CST 2023
total 19165
-rwxrwxrwx 1 root root 19623936 Mar 3 10:35 mariadb-connector-c-3.3.3-win64.msi
-rw-r--r-- 1 root root 87 Mar 3 10:26 test.log
Fri Mar 3 10:35:04 CST 2023
total 19165
-rwxrwxrwx 1 root root 19623936 Mar 3 10:35 mariadb-connector-c-3.3.3-win64.msi
-rw-r--r-- 1 root root 87 Mar 3 10:26 test.log
Fri Mar 3 10:35:05 CST 2023
total 19165
-rwxrwxrwx 1 root root 19623936 Mar 3 10:35 mariadb-connector-c-3.3.3-win64.msi
-rw-r--r-- 1 root root 87 Mar 3 10:26 test.log