MinIO是什么

MinIO 是一款高性能、分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件。即X86等低成本机器也能够很好的运行MinIO。
MinIO与传统的存储和其他的对象存储不同的是:它一开始就针对性能要求更高的私有云标准进行软件架构设计。因为MinIO一开始就只为对象存储而设计。所以他采用了更易用的方式进行设计,它能实现对象存储所需要的全部功能,在性能上也更加强劲,它不会为了更多的业务功能而妥协,失去MinIO的易用性、高效性。 这样的结果所带来的好处是:它能够更简单的实现局有弹性伸缩能力的原生对象存储服务。
MinIO在传统对象存储用例(例如辅助存储,灾难恢复和归档)方面表现出色。同时,它在机器学习、大数据、私有云、混合云等方面的存储技术上也独树一帜。当然,也不排除数据分析、高性能应用负载、原生云的支持。
MinIO主要采用Golang语言实现,,客户端与存储服务器之间采用http/https通信协议。
它与 Amazon S3 云存储服务 API 兼容

中文官网: http://www.minio.org.cn/
中文文档: http://docs.minio.org.cn/docs/
中文下载地址:http://www.minio.org.cn/download.shtml#/linux
英文官网: https://min.io/
英文文档: https://docs.min.io/
英文下载地址:https://min.io/download#/linux
Github地址:https://github.com/minio/minio

MinIO安装(二进制)

下载MinIO

#下载二进制文件
cd /usr/local/minio
wget https://dl.minio.org.cn/server/minio/release/linux-amd64/minio
#赋权
chmod +x minio
#设置界面登录的access_key和secret_key(如果不设置默认都为minioadmin)
export MINIO_ROOT_USER=minioadmin
export MINIO_ROOT_PASSWORD=admin123

启动MinIO

#创建数据目录,数据目录存储需要大点
mkdir -p /home/data/minio
#创建日志目录
mkdir -p /home/data/minio/log
touch /home/data/minio/log/minio.log
#前台启动minio
./minio server /home/data/minio
#访问控制台	http://localhost:9000

#后台启动minio
nohup ./minio server /home/data/minio > /home/data/minio/log/minio.log &

# nohup端口自定义启动服务 指定文件存放路径 /home/data/minio 还有设置日志文件路径 /home/data/minio/log/minio.log
nohup ./minio server --address :9000 --console-address :9001 /home/data/minio > /home/data/minio/log/minio.log 2>&1 &

编写启动脚本

/usr/local/minio/目录下新建run.sh

vim run.sh

将以下内容保存到run.sh,并为其赋予执行权限

#!/bin/bash
#配置登陆账号密码
export MINIO_ROOT_USER=minioadmin
export MINIO_ROOT_PASSWORD=admin123
# nohup启动服务 指定文件存放路径 /home/data/minio 还有设置日志文件路径 /home/data/minio/log/minio.log
nohup ./minio server --address :9000 --console-address :9001 /home/data/minio > /home/data/minio/log/minio.log 2>&1 &

#给run.sh文件赋权
chmod +x run.sh

启动minio

bash run.sh

添加到systemctl启动命令中

编写minio.service文件

vim /usr/lib/systemd/system/minio.service
[Unit]
Description=minio
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/minio/minio

[Service]
#User and group
User=root
Group=root


ExecStart=/usr/local/minio/run.sh
#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

赋值权限并且启动

chmod +x /usr/lib/systemd/system/minio.service

启动、查看、设置开机启动

systemctl daemon-reload
systemctl start minio
systemctl enable minio
systemctl status minio

MinIO安装(docker-compose)

安装

version: '3'

services:
  server:
    image: quay.io/minio/minio:RELEASE.2022-03-08T22-28-51Z
    command: server --console-address ":9001" /data
    environment:
      MINIO_ROOT_USER: user
      MINIO_ROOT_PASSWORD: password
      MINIO_BROWSER_REDIRECT_URL: http://localhost:9001
      MINIO_SERVER_URL: http://localhost:9000
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3
    volumes:
      - data:/data
    ports:
      - "9000:9000"
      - "9001:9001"

volumes:
  data:

运行容器

docker compose up -d

其它

environment 环境变量说明请查看 https://docs.min.io/minio/baremetal/reference/minio-server/minio-server.html

注意:
1、 image 可修改为最新的发布版本(根据其官方 GitHub Release 发布页);
2、MINIO_ROOT_USERMINIO_ROOT_PASSWORD 若未配置,则默认账号和密码均为 minioadmin
3、 MINIO_BROWSER_REDIRECT_URL 为 Console 管理平台登录网址,若不希望通过浏览器登录,可以增加 MINIO_BROWSER: off,禁止浏览器登录;
4、MINIO_SERVER_URL 为文件分享网址。若未设置,则默认为本身的容器 IP,不可正常使用。若使用了 nginx 反向代理,则更需要设置此参数;

MinIO安装(docker)

下载镜像

docker pull bitnami/minio

创建数据卷目录,并提升权限

mkdir -p /minio1/data  
chmod -R 777 /minio/data

使用镜像启动一个 minio 容器

docker run -it -d --name minio -p 9000:9000 -p 9001:9001 -v /minio/data:/data -v /minio/config:/root/.minio -e MINIO_ROOT_USER="minio_root" -e MINIO_ROOT_PASSWORD="minio_123456" bitnami/minio:latest

参数说明:

  • -it:-i 表示以交互模式运行容器,-t 表示为容器重新分配一个伪输入终端,两个参数必须结合使用才能启动一个容器
  • -d:以守护进程方式来启动容器,这也是常用参数,防止阻塞当前窗口
  • -p 9000:9000:MinIO 服务会暴露 9000 端口来对外提供对象访问,也就是通过此端口运行的服务来访问资源
  • -p 9001:9001:MinIO 服务会提供一个可视化管理系统,默认在 9001 端口运行
  • -v /minio/data:/data:挂载数据卷,将 minio 容器内存储的文件映射到宿主机
  • -v /minio/config:/root/.minio:挂载数据卷,将 minio 容器内的配置文件映射到宿主机
  • -e MINIO_ROOT_USER=“minio_root”:设置 root 用户名
  • -e MINIO_ROOT_PASSWORD=“minio_123456”:设置 root 的密码,长度至少 8 位

Q.E.D.