1、MinIO是什么?
MinIO 是一个基于 Go语言实现的高性能对象存储。它采用AGPL(GNU Affero General Public License) 开源协议并兼容 S3 协议。
官网地址:https://min.io/
github地址:https://github.com/minio/minio
2、MinIO能干啥?
- MinIO是一个轻量的对象存储服务,非常适合用于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器以及虚拟机镜像等。
- MinIO使用简单,功能强大,支持各种平台,支持单个文件最小1KB到最大5TB,兼容 Amazon S3接口,提供了 Java、Python、GO等多语言版本SDK支持。
- MinIO集群采用去中心化共享架构,每个结点是对等关系,通过Nginx可对MinIO进行负载均衡访问。
- MinIO采用去中心化设计,在大数据领域,通常的设计理念都是无中心和分布式。
- Minio分布式模式可以搭建一个高可用的对象存储服务,可以使用这些服务进行对象存储,而不用考虑其真实物理位置。
- Minio分布式部署模式将分布在不同服务器上的多块硬盘组成一个对象存储服务,由于硬盘分布在不同的节点上,分布式Minio避免了单点故障。
- MinIO分布式模式下根目录"/"不可以做为MinIO的数据目录,MinIO官方建议MinIO集群最少部署4个节点。
3、MinIO该怎么玩?
要想操作MinIO,首先肯定是要安装部署服务,由于 MinIO 是 Go语言写的,因此它就只有一个运行程序,安装部署 MinIO 就非常简单。
3.1、MinIO安装部署
在MinIO官网的下载页面中https://min.io/download#/linux,已经提供了多种安装部署方式,我们使用在Linux环境下部署的方式。
3.1.1、创建目录
为了便于日后对MinIO数据进行管理,在服务器中创建专门用于MinIO的目录,本人在 /data 目录下创建 minio 文件夹 ,并在minio文件夹下创建如下文件夹。
mkdir -p /data/minio/{bin,data,config,log}
各目录的主要作用如下:
- bin:二进制文件目录
- data:数据存储目录
- config:配置文件目录
- log:日志文件路径
3.1.2、下载MinIO
根据官网,使用如下命令下载MinIO二进制文件,建议将 MinIO 服务端和客户端都下载下来。
进入到 bin 目录,使用如下命令下载文件并添加执行权限。
- 服务端
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio #添加执行权限
- 客户端
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc #添加执行权限
由于是外网链接,下载速度有可能会很慢,请耐心等待。
3.1.3 启动MinIO服务
下载完成并添加执行权限后,可以通过官网提供的命令启动:
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password ./minio server /data/minio/data --console-address ":9001"
- 用户名为“admin”
- 密码为“password”
- 数据存储路径为“/data/minio/data”
- 控制台页面的访问端口为“9001”
但有时我们并不想使用官网的命令进行启动,可能我们需要修改下控制台页面的访问端口,或是修改S3-API的访问端口,可以使用如下命令,可以根据自己的需求进行自定义修改。
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password nohup /data/minio/bin/minio server --config-dir /data/minio/config /data/server/minio/data --address ":2222" --console-address ":1111" > /data/server/minio/log/minio.log 2>&1 &
- 用户名为“admin”
- 密码为“password”
- S3-API访问端口为“2222”
- 控制台页面访问端口为“1111”
根据自己的需求对上诉启动命令进行相应修改。
3.1.4 添加MinIO启动、关闭脚本
在3.1.3章节已经介绍了如何启动MinIO服务,但是为了方便启动和关闭,我们添加下启动和关闭脚本。
启动脚本
在 /data/minio 目录下通过vim命令创建 minio-startup.sh 文件:
vim /data/minio/minio-startup.sh
进入到编辑模式后输入如下内容:
#!/bin/bash
# 设置MinIO的配置参数
# 用户名
export MINIO_ROOT_USER=admin
# 密码
export MINIO_ROOT_PASSWORD=password
#设置MinIO端口
#S3-API端口
export MINIO_ADDRESS=":6900" #可按需修改
#Console控制台页面访问端口
export MINIO_CONSOLE_ADDRESS=":6901" # 可按需修改
#设置MinIO安装路径
export MINIO_PATH_DIR="/data/minio/bin"
#设置MinIO配置文件路径
export MINIO_CONFIG_DIR="/data/minio/config"
# 设置数据存储路径
export MINIO_DATA_DIR="/data/minio/data"
# 设置日志存储路径
export MINIO_LOG_DIR="/data/minio/log"
# 启动MinIO服务器
nohup $MINIO_PATH_DIR/minio server --address $MINIO_ADDRESS --console-address $MINIO_CONSOLE_ADDRESS --config-dir $MINIO_CONFIG_DIR $MINIO_DATA_DIR > $MINIO_LOG_DIR/minio.log 2>&1 &
保存退出,启动脚本文件创建成功后,赋予可执行的权限:
chmod +x minio-startup.sh
至此,启动脚本创建完成 。
关闭脚本
在 /data/minio 目录下通过vim命令创建 minio-shutdown.sh 文件:
vim /data/minio/minio-shutdown.sh
进入到编辑模式后输入如下内容:
#!/bin/bash
echo "shutdown minio"
pid=`ps -ef | grep 'minio server' | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
echo "Success!"
保存退出,关闭脚本创建完成后,赋予可执行的权限:
chmod +x minio-shutdown.sh
至此,关闭脚本创建完成 。
3.1.5、访问MinIO 控制台页面
使用浏览器访问 http://服务器IP:1111地址,访问 MinIO 内置的 UI 界面。
账号为 admin,密码为 password 进行登录,成功进入首页。
3.2、页面使用
3.2.1、创建Bucket
3.2.2、配置Bucket访问规则
默认情况下,访问Bucket是需要进行请求授权的,但是在实际使用过程中,我们希望可以直接访问Bucket,因此,需要给相应的Bucket添加 readonly 访问策略。
3.2.3、文件上传
上传成功
3.2.4、文件访问
文件的访问地址的格式为 http://{IP}:{S3-API端口}/{bucket}/{name};按照以上配置,图片的访问路径为:http://127.0.0.1:2222/test/minio-logo.png,最终效果如下:
3.3、MinIO Client 客户端命令行工具(mc)
MinIO Client (mc) 是 MinIO 提供的命令行工具,用于访问 MinIO Server。在以上步骤中已经介绍过如何安装。如果对MC感兴趣可以访问官网进行学习。
官网地址:https://min.io/docs/minio/linux/reference/minio-mc.html
至此,Linux下MinIO单节点安装部署完成。