1. 概述
MinIO是一个开源的分布式对象存储服务器,支持S3协议并且可以在多个节点上实现数据的高可用和容错,采用Go语言开发,拥有轻量级、高性能、易部署等特点,并且可以自由选择底层存储介质。
MinIO主要特点:
高性能:MinIO基于GO语言编写,具有高速、轻量级、高并发等性能特点,还支持多线程和缓存等机制进行优化,可以快速地处理大规模数据
可扩展性:MinIO采用分布式存储模式,支持水平扩展,通过增加阶段数量来扩展存储容量和性能,支持自动数据迁移和负载均衡。
安全性:MinIO提供了多种安全策略,如访问控制列表(ACL)、服务端加密(SSE)、传输层安全性(TLS)等,可以保障数据安全和隐私。
兼容性:MinIO兼容AWS S3 API,还支持其他云服务提供商的API,比如GCP、Azure等,可以通过简单的配置实现互操作性。
简单易用:MinIO的部署和管理非常简单,只需要运行一个二进制即可启动服务,同时提供了Web界面和命令行工具等方便的管理工具。
更多详情可以参阅MinIO官网
2. MinIO下载
进入MinIO官网,点击右上角Download
进入下载界面
也可以参考Docs完整文档
选择适合的服务器,本文基于CentOS7进行演示,这里选择Linux,其他方式安装可以参阅官方文档
在服务器指定目录下使用命令进行下载安装文件即可
wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20240803043323.0.0-1.x86_64.rpm -O minio.rpm
3. MinIO安装
使用命令执行安装
rpm -ivh minio.rpm
以上步骤就已经完成了MinIO的安装,直接进行启动命令就可以了,为了方便后续MinIO的维护,可以集成Linux的Systemd
4. 集成Systemd
4.1. Systemd概述
Systemd是一个广泛的应用于Linux系统的系统初始化和服务管理器,其可以管理系统中的各种服务和进程,包括启动、停止和重启服务,还可以监测服务的运行状态,并在服务异常退出时,自动拉起服务,以保证服务的稳定性。
4.2. 编写MinIO服务配置文件
Systemd所管理的服务需要由一个配置文件进行描述,这些配置文件均位于/etc/systemd/system/或/usr/lib/systemd/system/目录下,执行以下命令创建并打开minio.service文件
vim /etc/systemd/system/minio.service
在文件中写入以下内容
[Unit]
Description=MinIO
Documentation=https://min.io/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
[Service]
WorkingDirectory=/usr/local
ProtectProc=invisible
EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
# MinIO RELEASE.2023-05-04T21-44-30Z adds support for Type=notify (https://www.freedesktop.org/software/systemd/man/systemd.service.html#Type=)
# This may improve systemctl setups where other services use `After=minio.server`
# Uncomment the line to enable the functionality
# Type=notify
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Specifies the maximum number of threads this process can create
TasksMax=infinity
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
EnvironmentFile:该文件中可配置MinIO服务所需的各项参数
ExecStart:该参数用于配置MinIO服务的启动命令,其中$MINIO_OPTS、$MINIO_VOLUMES,均引用于EnvironmentFile中的变量
MINIO_OPTS:用于配置MinIO服务的启动选项,可省略不配置
MINIO_VOLUMES:用于配置MinIO服务的数据存储路径
Restart:表示自动重启
4.3. 编写EnvironmentFile文件
执行以下命令创建并打开/etc/default/minio文件
vim /etc/default/minio
内容如下:
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=xxxxx
MINIO_VOLUMES="/mnt/data"
MINIO_OPTS="--console-address :9090"
MINIO_ROOT_USER和MINIO_ROOT_PASSWORD:为用于访问MinIO的用户名和密码
MINIO_VOLUMES:用于指定数据存储路径,需确保指定的路径是存在的,可执行以下命令创建该路径mkdir /mnt/data
MINIO_OPTS中的console-address用于指定管理页面的地址
5. 启动MinIO
执行以下命令启动MinIO,在启动前,先重载配置
systemctl daemon-reload
systemctl start minio
执行以下命令查看MinIO是否启动成功
systemctl status minio
6. 验证
在浏览器地址栏输入http://ip:9090,进入MinIO登录界面
填入前面配置文件填写的用户名和密码登录MinIO
至此,关于MinIO的安装和配置就完成了。