分布式文件存储MinIO、安装和使用
一、Minio基础
1、简介
MinIO是高性能的对象存储,单个对象最大可达5TB。适合存储图片、视频、文档、备份数据、安装包等一系列文件。是一款主要采用Golang语言实现发开的高性能、分布式的对象存储系统。客户端支持Java,Net,Python,Javacript,
Golang语言。客户端与服务器之间采用http/https通信协议。
2、部署
MinIO支持单机部署、集群部署两种方式。
3、下载
二、Linux部署单机MinIO
安装和启动
1、切换到opt目录,创建minio文件夹,切换到minio文件夹
cd /opt mkdir -p /opt/minio cd /opt/minio
2、使用命令下载
wget https://dl.min.io/server/minio/release/linux-amd64/minio
3、 下载完成后会在当前目录下出现一个minio文件,为该文件添加可执行权限
chmod +x minio
4、 创建minio文件存储目录及日志目录
# 创建minio文件存储目录及日志目录 mkdir -p /opt/minio/data mkdir -p /opt/minio/logs
#!/bin/bash export MINIO_ROOT_USER=minio-user export MINIO_ROOT_PASSWORD=minio-pwd # nohup启动服务 指定文件存放路径 /opt/minio/data 还有设置日志文件路径 /opt/minio/logs # 目前最新版本已经区分了Console和API两个服务的端口,需要指定端口号,否则每次Minio会随即生成端口号。 nohup ./minio server --address :9002 --console-address :9001 /opt/minio/data > /opt/minio/logs/minio.log 2>&1 &
6、 为其赋予执行权限chmod u+x run.sh
sudo chmod u+x run.sh
7、 启动minio并查看日志
# 启动minio服务 sudo bash run.sh # 查看是否启动成功 ps -ef|grep minio
8、查看minio日志文件
# 查看日志
tail -200f /opt/minio/logs/minio.log
配置minio自启动
1、增加系统用户组和用户(也可以使用配置好的系统用户),并配置minio目录拥有权限
groupadd minio-user useradd -g minio-user minio-user cat /etc/group cat /etc/passwd chown minio-user:minio-user /opt/minio
2、创建minio配置文件(EnvironmentFile),请自己确定对应文件夹路径,后续自启动脚本内容需要用到
vim /etc/default/minio
MINIO_ROOT_USER="minio-user" MINIO_ROOT_PASSWORD="minio-pwd" MINIO_VOLUMES="/opt/minio" MINIO_OPTS="--address 0.0.0.0:9002 --console-address '0.0.0.0:9001'"
4、新建Systemd服务启动文件minio.service,配置Systemd服务启动。
[Unit] Description=MinIO Documentation=https://docs.min.io Wants=network-online.target After=network-online.target #minio文件具体位置 AssertFileIsExecutable=/opt/minio/minio [Service] WorkingDirectory=/opt/minio # User and group Linux用户组,前文配置的Linux用户组和用户 User=minio-user Group=minio-user #创建的配置文件 minio.conf EnvironmentFile=/minio.conf ExecStartPre= ExecStart=/minio server -C /minio/etc /minio/data # Let systemd restart this service always Restart=always # Specifies the maximum file descriptor number that can be opened by this process LimitNOFILE=65536 # Disable timeout logic and wait until process is stopped TimeoutStopSec=infinity SendSIGKILL=no [Install] WantedBy=multi-user.target
5.将文件拷贝
cp /opt/minio/minio.service /etc/systemd/system/
6、启用和查看状态
systemctl enable minio.service systemctl daemon-reload systemctl start minio systemctl status minio.service
#重新执行systemd systemctl daemon-reload 开机自动启动 systemctl enable minio.service #启动服务 systemctl start minio.service #停止服务 systemctl stop minio.service #重启服务 systemctl restrat minio.service #查看服务状态 systemctl status minio.service
#在引导时禁用服务
systemctl disable minio.service
三、使用S3挂载MiniIO到Linux文件系统
参考资料:https://blog.51cto.com/u_14967494/6033832
安装s3f3
sudo apt install s3fs
使用上f3挂载存储桶
#创建s3fs密码文件 #将ACCESS_KEY_ID替换为minio账户,SECRET_ACCESS_KEY替换为minio账户密码 echo admin:admin123 > ${HOME}/.passwd-s3fs chmod 600 ${HOME}/.passwd-s3fs #创建挂载点 mkdir /mnt/minio #挂载存储桶(当前已创建存储桶test111) #格式:s3fs -o passwd_file=s3fs密码文件 -o url=minio服务api及端口号 -o use_path_request_style 存储桶名称 挂载点路径 #实例 #密码文件为:!/.passwd-s3fs #minio服务url及api端口为:http://192.168.59.191:9002 #存储桶名称为:test111 #挂载点路径为:/mnt/minio s3fs -o passwd_file=~/.passwd-s3fs -o url=http://192.168.59.191:9002 -o use_path_request_style test111 /mnt/minio #扩展挂载命令 s3fs -o passwd_file=~/.passwd-s3fs -o url=http://192.168.59.191:9000 -o allow_other -o no_check_certificate -o use_path_request_style -o umask=000 test111 /mnt/minio -o dbglevel=info -f -o curldbg #-o dbglevel=info -f -o curldbg:运行时显示更多输出,挂载成功后会占用当前shell前端 #-o umask=000:挂载目录的权限 #-o use_path_request_style:启用不支持的类s3 api的兼容性(必须配置,否则挂载minio存储桶失败) #-o no_check_certificate:不检查证书 #-o allow_other:允许所有用户访问 #查看挂载 df -h
四、使用rClone挂载MinIO到Windows系统
参考资料:windows下使用Rclone挂载swift对象存储为本地磁盘
1、下载使用与Windows的rclone和相关依赖工具winfsp
http://www.secfs.net/winfsp/rel/
2、安装软件
3、配置rclone环境变量
配置环境变量:环境变量的值为rclone.exe所在的文件夹路径。
4.配置rclone
配置文件路径C:\Users\{用户名}\AppData\Roaming\rclone。
如果没有,可以通过rclone config的子命令一步一步添加。
[dtpw_minio] type = s3 provider = Minio access_key_id = minio-user secret_access_key = minio-pwd region = "" endpoint = http://192.168.59.191:9002 acl = private
5、挂载
#reclone.exe mount 配置文件name:文件桶 本地文件夹
rclone.exe mount dtpw_minio:dtpw d:\files\minio\dtpw --vfs-cache-mode writes &
配置文件错误会引起挂载命令卡机,从minio Console删除文件到本地磁盘更新删除很慢,本地文件添加文件minioServer同步较快。
6、开机自启动挂载