使用MinFS挂载minio为本地目录
警告----实验部分失败
-
Centos7
实验成功

-
RHEL8
实验成功

-
Rocky9
实验失败
MinFS代码库已经只读,且找不到更多的文档支持排错, 请谨慎使用此方案.

Rocky9可能的解决办法:
# 查看swap
systemctl --type swap
# 禁用swap
systemctl mask swap

后续如果找到解决方案,我会更新此文档.
MinFS与S3FS性能对比
MinFS性能是s3fs的5倍。
MinFS是由MinIO公司开发的,开发时间可以追溯到2017年。
MinFS在小文件写入性能方面表现优异,能够高效地处理大量小文件的并发写入操作,其平均写入速度是s3fs的五倍。
此外,minfs还支持高并发读写,能够充分利用本地磁盘带宽,减少数据传输延迟。
MinFS简介
参阅文档:
MinFS项目地址: https://github.com/minio/minfs/
docker的minfs
—————-
https://hub.docker.com/r/sys3/dvp-minfs
https://hub.docker.com/r/sys3/dvp-minfs/tags
minfs的docker部署
——————
https://firepress.org/en/the-complete-guide-to-attach-a-docker-volume-with-minio-on-your-docker-swarm-cluster/
MinFS的介绍
- MinFS是适用于Amazon S3兼容对象存储服务器的fuse(保险丝或称熔断器)驱动程序
- MinFS支持最少的配置把现代对象存储转为普通文件系统
MinFS的功能
- MinFS支持挂载远程存储桶(来自与S3兼容的对象存储)
- MinFS挂载远程存储桶后可像使用本地目录读取或写入
MinFS的工作原理
- MinFS使用BoltDB缓存和保存元数据、文件列表、权限、所有者等
MinFS的架构

POSIX兼容性
- MinFS不是严格符合POSIX标准的文件系统
- MinFS为需要访问对象存储但不期望严格POSIX兼容的应用程序构建
不适合MinFS的应用程序范例
- MinFS运行数据库,如Postgres、MySQL等
- MinFS运行虚拟机,例如Qemu、KVM
- 运行依赖于POSIX锁、扩展属性操作等丰富的POSIX应用程序
适用于MinFS的应用程序范例
- Nginx、Apache Web服务器的静态Web内容提供
- 用于无法使用S3协议的旧备份工具存储
准备MinIO存储服务端
https://blog.youkuaiyun.com/omaidb/article/details/143053662
配置MinFS存储客户端
# 安装fuse依赖
yum install fuse -y
# 下载MinFS安装包
wget https://github.com/minio/minfs/releases/download/v1.0.0/minfs_1.0.0_linux_amd64.rpm
# 安装MinFS软件包
yum install -y minfs_1.0.0_linux_amd64.rpm
修改fuse.conf配置
vim /etc/fuse.conf
取消注释
# 取消注释
user_allow_other

配置MinFS认证文件
# 创建minfs配置目录
mkdir -p /etc/minfs
# 编辑MinFS认证文件
vim /etc/minfs/config.json
配置内容如下:
{
"version": "1",
"accessKey": "miniouser",
"secretKey": "miniouserpwd"
}
手动挂载MinFS测试
# 创建挂载点
mkdir /minfs
# 使用 mount 命令挂载一个名为 minfs 的文件系统
# -t minfs: 指定文件系统类型为 minfs
# -o defaults,cache=/tmp/mybucket: 设置挂载选项,默认选项加上缓存路径为 /tmp/mybucket
# https://minio.cmdschool.org:9000/mybucket: 指定远程存储的 URL(此处的 URL 状态为失败,可能是网络问题或链接本身的问题)
# /minfs: 指定挂载点为本地的 /minfs 目录
mount -t minfs -o defaults,cache=/tmp/mybucket https://192.168.50.141:9000/mybucket /minfs
1.3.4 配置MinFS存储持久化挂载
# 配置持久挂载
vim /etc/fstab
配置内容如下:
# minio远端地址/存储通名称 挂载点名称 文件系统
## _netdev 网络就绪后挂载
http://192.168.50.141:9000/mybucket /minfs minfs defaults,_netdev,cache=/tmp/mybucket 0 0
| minio服务器地址/存储桶名称 | 本地挂载点 | 文件系统 | 挂载权限 | dump | 文件系统检查 |
|---|---|---|---|---|---|
| http://192.168.50.141:9000/mybucket | /minfs | minfs | defaults,_netdev,cache=/tmp/mybucket | 0 | 0 |
# 挂载/etc/fstab配置
mount -a
测试MinFS挂载
cp /etc/redhat-release /minfs
如果有安装mc的客户端,我们可以使用命令验证,
mc ls minio/mybucket/
可见如下显示,
[2022-06-09 23:26:52 EDT] 38B STANDARD redhat-release
错误排查
# 查看minfs的错误
systemctl status minfs.mount -l

journalctl -u minfs.mount

挂载budeg
mount -t minfs <device_spec> /minfs -o <options>,debug
2642

被折叠的 条评论
为什么被折叠?



