一、应用背景:
MinIO是一个高性能的开源对象存储服务,它与Amazon S3 API兼容,适合存储大量的非结构化数据,例如图片、视频、日志文件等。MinIO具备分布式架构,支持多节点部署,提供高可用的存储服务,并支持数据加密、访问控制和版本管理等功能。
MinIO的应用背景主要集中在以下几个方面:
- 云原生应用:MinIO设计为云原生,可作为由外部编排服务如Kubernetes管理的轻量级容器运行。
- 大数据和人工智能:MinIO支持与Spark、Flink等技术整合,通过S3 Select实现数据查询的下沉,为数据湖构建提供基础。
- 媒体和娱乐领域:MinIO适用于存储和处理音视频文件,满足高清、大容量文件的存储和传输需求。
- 企业级存储解决方案:MinIO为企业提供稳定、高效的存储解决方案,尤其适合需要高可用性和弹性扩展的应用场景。
- 多云和混合云环境:MinIO支持在多个云环境中运行,提供统一的全局命名空间和对象存储接口,适合构建混合云和多云对象存储。
MinIO的技术特点包括:
- 高性能:在标准硬件上,读写速度极高,成为Hadoop HDFS的替代品。
- 可扩展性:MinIO支持简单的水平扩展模型,可以从单个集群扩展到多个不同数据中心的集群。
- 高可用性:采用分布式架构,数据分散存储在多个节点上,支持数据的冗余备份和自动修复。
- 简单的架构:MinIO的极简设计减少了出错机会,提高了可靠性和性能,安装和升级过程简单。
- 纠删码和校验和:使用Reed-Solomon算法保证数据的高可靠性,即便丢失一半数量的硬盘也能恢复数据。
MinIO支持多种部署方式,包括单机部署和分布式部署,适合不同的业务需求和规模。此外,MinIO还提供了客户端工具MinIO Client (mc)和Java SDK等,方便用户进行数据管理和集成到应用程序中。
二、单机版安装步骤(centos7环境)
1、创建minio相关的文件夹,以及后续存储数据和日志的文件夹。
# 创建安装主目录,所有创建的目录路径均可按需求进行更改,此仅为演示路径
[root@localhost ~]# mkdir -p /usr/local/minio
# 创建存储数据的目录
[root@localhost ~]# mkdir -p /usr/local/minio/data
# 创建存储日志的目录
[root@localhost ~]# mkdir -p /usr/local/minio/log
# 创建配置文件存储的目录
[root@localhost ~]# mkdir -p /usr/local/minio/conf
2、下载可执行文件。
#进入主目录
[root@localhost ~]# cd /usr/local/minio
#下载minio二进制文件
[root@localhost ~]# wget https://dl.min.io/server/minio/release/linux-amd64/minio
3、为二进制文件授权,将其添加为可执行文件。
[root@localhost minio]# chmod +x minio
4、创建配置文件。
[root@localhost minio]# vim /usr/local/minio/conf/minio.conf
配置文件内容如下:
#存储数据的目录
MINIO_VOLUMES="/usr/local/minio/data"
#ip地址需要改为自己的ip地址,如果ip地址不固定,直接写0.0.0.0也可以
MINIO_OPTS="-C /usr/local/minio/conf --address 0.0.0.0:9000 --console-address 0.0.0.0:9001"#设置登录的账号密码
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=cs123456
5、创建系统启动配置文件,并设置开机自启。
[root@localhost ~]# vim /etc/systemd/system/minio.service
配置内容如下:
[Unit]
Description=Minio
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
[Service]
# User and group
User=root
Group=root
EnvironmentFile=/usr/local/minio/conf/minio.conf
ExecStart=/usr/local/minio/minio server $MINIO_OPTS
ExecReload=/bin/kill -HUP $MAINPID
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
TimeoutStopSec=5
SendSIGKILL=no
SuccessExitStatus=0 1
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=minio
[Install]
WantedBy=multi-user.target
#配置服务为开机自启动
[root@localhost ~]# systemctl enable minio.service
6、服务启动的相关命令。
# 启动
systemctl start minio
# 停止
systemctl stop minio
# 查看服务状态
systemctl status minio
# 重载服务脚本
systemctl daemon-reload
systemctl reload minio
6.1 启动后查看状态
7、访问minio。
端口是脚本中设置的9001端口:http://192.168.5.25:9001/login
登录的账号密码就是配置文件里配置的:
MINIO_ROOT_USER=admin,MINIO_ROOT_PASSWORD=cs123456
8、安装完成。
至此,minio软件已经安装启动成功。
9、安装客户端,并配置开放下载,设置永久访问链接。
[root@localhost ~]# cd /usr/local/bin
# 下载客户端mc命令
[root@localhost bin]# wget https://dl.minio.io/client/mc/release/linux-amd64/mc
#赋予权限
[root@localhost bin]# chmod 777 mc
#添加server(注意自己的端口和账户名密码)
# ./mc config host add minio http://ip:端口/ 账户 密码
[root@localhost bin]# ./mc config host add minio http://192.168.5.23:9000/ admin 123456
4、设置需要开放下载的bucket, 注意需要带minio(注意,这一步的前提是需要先创建桶(bucket),才能执行成功)
# ./mc anonymous set download minio/桶名称
[root@localhost bin]# ./mc anonymous set download minio/dev
9.1 创建bucket以及access_key
10、Springboot整合Minio。
10.1 pom.xml依赖引入
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.5.5</version>
</depende