一、minio简介
MinIO 是一个高性能的对象存储系统,设计用于存储大量的非结构化数据,如图片、视频、日志文件等。它完全兼容 Amazon S3 API,这意味着你可以使用与 S3 相同的工具和接口来管理和访问 MinIO 中的数据。
二、主要特性
-
S3 兼容性:MinIO 完全兼容 Amazon S3 API,支持所有 S3 功能,包括但不限于 PUT、GET、POST、DELETE 等操作。你可以使用任何 S3 客户端库或工具(如 AWS CLI、s3cmd、mc 等)来与 MinIO 交互。
-
高性能:MinIO 专为高性能设计,可以处理高吞吐量的工作负载。支持多租户环境,可以在多个节点上分布式运行,提供高可用性和水平扩展能力。
-
简单易用:安装和配置非常简单,只需要一个二进制文件即可启动。提供了一个命令行工具 mc(MinIO Client),用于管理 MinIO 服务器,包括文件上传、下载、同步等操作。
-
安全性:支持多种身份验证和授权机制,包括 LDAP、Active Directory 和外部 IDP 集成。
支持 TLS/SSL 加密,确保数据传输的安全性。提供了细粒度的访问控制策略,可以精确控制用户对存储桶和对象的访问权限。
-
可扩展性:可以在单个节点上运行,也可以在多个节点上分布式运行,形成一个高可用的集群。使用 erasure coding 技术来提高数据的可靠性和耐久性。
-
监控和日志:提供详细的监控和日志功能,可以通过 Prometheus 和 Grafana 进行可视化监控。支持审计日志记录,便于跟踪和审计操作。
-
生态系统:拥有丰富的生态系统,支持各种第三方工具和服务,如 Kubernetes、Hadoop、Spark 等。
三、使用场景
备份和恢复:作为数据备份和恢复解决方案,支持定期备份和快速恢复。
媒体存储:存储大量图片、视频和其他多媒体文件,适用于内容分发网络 (CDN)。
日志存储:存储和分析大规模的日志文件,支持日志归档和长期存储。
大数据:与 Hadoop 和 Spark 集成,用于大数据处理和分析。
云原生应用:作为云原生应用的数据存储后端,支持容器化部署和微服务架构。
四、应用部署
案例准备
1. 节点规划
|----------------|-------|-----------------|
| IP地址 | 主机名 | 挂载路径 |
| 192.168.200.10 | minio | /opt/data/minio |
2.基础准备
使用centos7镜像创建一台虚拟机,使用4vcpu/8GB内存/100GB硬盘。准备minio软件包。
案例实施
1. 修改主机名
bash
[root@localhost ~]# hostnamectl set-hostname minio
[root@localhost ~]# bash
2. 创建目录
bash
[root@minio ~]# mkdir -p /opt/data/minio
3. 启动minio服务
将提供的·minio软件包上传至minio节点/root目录下,并赋予执行权限。
bash
[root@minio ~]# ll
总用量 92168
-rw-------. 1 root root 1257 9月 2 22:12 anaconda-ks.cfg
-rw-r--r--. 1 root root 94375936 10月 12 14:13 minio
[root@minio ~]# chmod +x minio
赋予权限后,即可启动服务。
bash
[root@minio ~]# ./minio server /opt/data/minio
如果没有报错,即可通过浏览器访问minio界面,访问http://192.168.200.10:45688(端口不固定,根据上图方框信息。)
使用默认用户名和密码登录(minioadmin/minioadmin)
注:关闭防火墙和SElinux
4.添加minio服务系统
首先创建minio_data目录,将minio软件复制到/data/minio_data目录
bash
[root@minio ~]# mkdir -p /data/minio_data/
[root@minio ~]# cp minio /data/minio_data/
[root@minio ~]# ll /data/minio_data
总用量 92164
-rwxr-xr-x. 1 root root 94375936 10月 12 14:32 minio
创建启动脚本run.sh,并赋予权限。
bash
[root@minio ~]# cd /data/minio_data/
[root@minio minio_data]# vi run.sh
[root@minio minio_data]# cat run.sh
#!/bin/bash
/data/minio_data/minio server /opt/data/minio
[root@minio minio_data]# chmod 777 run.sh
[root@minio minio_data]# vi /usr/lib/systemd/system/minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
[Service]
#安装包路径
WorkingDirectory=/data/minio_data
#启动命令路径
ExecStart=/data/minio_data/run.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
编辑完文件后,启动测试。
bash
[root@minio minio_data]# systemctl start minio
[root@minio minio_data]# systemctl status minio
最后创建test桶,上传一张图片到test桶中,设置name必须英文加上符号。上传完成后可以通过minio储存中的preview查看上传图片内容。