介绍
MinIO 是一种对象存储解决方案,MinIO 旨在部署在任何地方——公共或私有云、裸机基础设施、编排环境和边缘基础设施。Minio是GlusterFS创始人之一Anand Babu Periasamy发布新的开源项目。基于Apache License v2.0开源协议的对象存储项目,采用Golang实现,客户端支Java,Python,Javacript, Golang语言。
其设计的主要目标是作为私有云对象存储的标准方案。主要用于存储海量的图片,视频,文档等。非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几KB到最大5T不等。
安装部署
安装服务器
172.16.24.194
172.16.24.195
172.16.24.196
操作系统:CentOS 7.9
开放服务使用端口
如果防火墙已经关闭则跳过该步骤
firewall-cmd --add-port=9000/tcp --permanent
firewall-cmd --reload
挂载磁盘
使用独立目录挂载一块磁盘,所有机器都需要挂载
[root@172.16.24.194 minio]# df -h
/dev/sdb1 100G 33M 100G 1% /data1
安装MinIO
创建目录
mkdir minio && mkdir -p minio/{bin,conf,data1,data2,log}
下载安装文件
cd minio/bin && wget https://dl.min.io/server/minio/release/linux-amd64/minio
设置执行权限
chmod +x bin/minio
目录结构如下
# tree
.
├── bin
│ └── minio
├── conf
├── data1
└── data2
所有节点都需要执行上述步骤
也可以使用
scp -r minio/ root@172.16.24.196:/opt
同步
编写启动脚本
# vim run.sh
#!/bin/bash
export MINIO_ROOT_USER=minio
export MINIO_ROOT_PASSWORD=minioMMMMmmmm
# 这里配置的 MINIO_SERVER_URL 参数为Nginx地址,Nginx转发的就是MinIO服务地址,这里配置后,在Console页面Share时候的链接才会为http://172.16.24.251,否则share的链接为127.0.0.1
export MINIO_SERVER_URL=http://172.16.24.251
bin/minio server --address ":9000" --console-address ":9001" \
http://172.16.24.194/data1 \
http://172.16.24.195/data1 \
http://172.16.24.196/data1 \
http://172.16.24.197/data1 \
> minio.log &
Nginx配置
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream minio{ server 172.16.24.194:9000; server 172.16.24.195:9000; server 172.16.24.196:9000; server 172.16.24.197:9000; } server { listen 80; server_name localhost; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_connect_timeout 300; # Default is HTTP/1, keepalive is only enabled in HTTP/1.1 proxy_http_version 1.1; proxy_set_header Connection ""; chunked_transfer_encoding off; root html; index index.html index.htm; proxy_pass http://minio; } } }
四台服务器均需要放置该脚本,并依次启动sh run.sh
启动成功提示如下
S3-API: http://172.16.24.197:9000 http://127.0.0.1:9000
Console: http://172.16.24.197:9001 http://127.0.0.1:9001
Documentation: https://min.io/docs/minio/linux/index.html
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ You are running an older version of MinIO released 6 days before the latest release ┃
┃ Update: Run `mc admin update` ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Healing drive 'http://172.16.24.197:9000/data1' - 'mc admin heal alias/ --verbose' to check the current status.
Healing of drive '/data1' complete (healed: 1, failed: 0).
使用
Console使用
访问地址:http://ip:9001
输入run.sh
配置的账号密码
点击创建Create Bucket
点击进入pic
-> 点击 Upload
上传文件或者目录
可能报的错误
is part of root drive, will not be used
Error: Drive `http://172.16.24.195:9000/opt/minio/data2` is part of root drive, will not be used (*errors.errorString)
集群部署需要独占磁盘分区,不能使用文件夹代替。
解决方法
挂载磁盘
The request signature we calculated does not match the signature you provided
https://blog.csdn.net/weixin_44299027/article/details/131192641