minio提供nfs服务
minio提供nfs服务
- 挂载minio为本地目录
- 开机自动挂载
- 使用supervisor实现开机自动挂载
- 服务单元实现开机自动挂载minio为本地目录---失败
- 调试
挂载minio为本地目录
使用 Minio 作为后端存储,并通过 NFS 为客户端提供访问,那么你需要一个中间层来将 Minio 的对象存储转换为 NFS 共享.
中间层
安装s3fs
,挂载minio对象存储
,
https://code.google.com/archive/p/s3fs/issues/127
然后共享为nfs服务
https://www.cnblogs.com/technicianafei/p/17387166.html
# 安装epel源
yum install -y epel-release # Cneots7安装s3fs
yum install s3fs-fuse -y
# 创建挂载点
mkdir /minio-nfs
# 创建minio密码文件
echo "<账号>:<密码>" > ${HOME}/.passwd-s3fs
# 或AK
echo "<ACCESS_KEY_ID>:<SECRET_ACCESS_KEY>" > ${HOME}/.passwd-s3fs# 设置minio密码文件权限为600
chmod 600 ${HOME}/.passwd-s3fs
# 挂载minio对象存储为本地目录
## 存储桶名称为:one
## 挂载点路径为:/mnt/minio
## -o passwd_file 指定密码文件
## -o url minio服务url及api端口为:http://192.168.222.123:9000
## -o allow_other:允许其他Linux用户访问挂载点
## -o no_check_certificate:不检查证书
## -o use_path_request_style:启用不支持的类s3 api的兼容性(必须配置,否则挂载minio存储桶失败)
## -o umask=000:挂载目录的权限,000表现不限制任何权限
## -o dbglevel=info 日志级别info
## -o curldbg:运行时显示更多curl输出,挂载成功后会占用当前shell前端
## -f 前台运行,调试时使用
s3fs <myBucketName> <挂载点> -o passwd_file=/root/.passwd-s3fs -o url=http://192.168.222.123:9000 -o allow_other -o no_check_certificate -o use_path_request_style -o umask=000 -o dbglevel=info -o curldbg -f# 后台运行,去掉-f
s3fs one /minio-nfs -o passwd_file=~/.passwd-s3fs -o url=http://192.168.50.130:9000 -o allow_other -o no_check_certificate -o use_path_request_style -o umask=000 -o dbglevel=info -o curldbg
# 取消挂载
umount <mino挂载点>
开机自动挂载
使用supervisor实现开机自动挂载
配置内容如下:
# cat /etc/supervisord.d/app.ini[supervusird]
# 禁止后台运行
nodaemon=true
# 程序的名称
[program:s3fs-minio]
# 执行的命令
command=/usr/bin/s3fs one /minio-nfs -o passwd_file=/root/.passwd-s3fs -o url=http://192.168.50.130:9000 -o allow_other -o no_check_certificate -o use_path_request_style -o umask=000 -o dbglevel=info -o curldbg -f
# 查看挂载清空
df -Th
服务单元实现开机自动挂载minio为本地目录—失败
- 创建s3fs挂载minio的变量文件
# 创建配置目录
mkdir -p /etc/s3fs# 创建变量文件
vim /etc/s3fs/minio.env
变量文件内容如下:
# 要挂载的存储桶名称
myBucketName=one
# 本地挂载点路径
Mount_Point="/minio-nfs"
# minio密码文件路径
PASSWD_FILE="/root/.passwd-s3fs"
# minio接口
MINIO_URL=http://192.168.50.130:9000
# 挂载参数--默认即可
S3FS_parameter="-o allow_other -o no_check_certificate -o use_path_request_style -o umask=000 -o dbglevel=info -o curldbg"
- 创建s3fs挂载minio为本地目录的服务单元文件
# 编辑s3fs挂载minio为本地目录的服务单元文件
vim /etc/systemd/system
服务单元内容如下:
[Unit]
Description=Mount MinIO Bucket via s3fs
# 确保网络就绪
After=network-online.target
Requires=network-online.target[Service]
Type=simple
# 变量文件
EnvironmentFile=-/etc/s3fs/minio.env
# 创建挂载点目录(若不存在)
ExecStartPre=/bin/mkdir -p $Mount_Point
ExecStart=/usr/bin/s3fs $myBucketName $Mount_Point -o passwd_file=$PASSWD_FILE -o url=$MINIO_URL $S3FS_parameter
# 强制卸载挂载点
ExecStop=/usr/bin/fusermount -uz /minio-nfs
# 挂载失败时自动重试
Restart=on-failure
RestartSec=10s[Install]
WantedBy=multi-user.target
- 重载服务,启动服务
# 重载服务
systemctl daemon-reload
# 设置开机自启并现在启动
systemctl enable --now s3fs-mount.service# 查看服务状态
systemctl status s3fs-mount.service
调试
# 查看服务日志
journalctl -u s3fs-mount.service# 手动调试(输出详细日志)
s3fs -d -d -f -o curldbg <bucket-name> /mnt/minio