s3fs挂载minio为本地目录
Linux下使用s3fs挂载minio为本地目录
参考: https://www.cnblogs.com/technicianafei/p/17387166.html
Linux安装s3fs
,挂载minio存储桶
为本地目录
安装s3fs
s3fs
项目地址: https://code.google.com/archive/p/s3fs/issues/127
# 安装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
前台运行s3fs----用于debug
# 挂载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 <minio挂载点>
配置开机自动挂载
方法1: 使用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
方法2: 服务单元实现开机自动挂载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
debug
# 查看服务日志
journalctl -u s3fs-mount.service
# 手动调试(输出详细日志)
s3fs -d -d -f -o curldbg <bucket-name> /mnt/minio