MinIO 的介绍及安装

一、介绍

         MinIO是一个开源的高性能对象存储系统,专为云原生和容器化环境而设计。它采用分布式架构,能够存储和管理大规模的非结构化数据,如图片、视频、日志文件等。

  • 高性能:MinIO在标准硬件上能够提供极高的读写速度,例如,读/写速度可达183 GB/秒和171 GB/秒。
  • 兼容性:MinIO与Amazon S3云存储服务兼容,提供S3兼容的API,能够无缝集成到现有的S3生态系统中。
  • 可扩展性:MinIO支持通过添加新的节点来线性扩展存储容量和吞吐量,满足不断增长的存储需求。
    数据保护:提供多种数据保护机制,包括数据冗余、故障转移和数据校验等,确保数据的高可用性和持久性。
  • 分布式存储:将数据分散存储在多个节点上,实现并行处理和高速传输。
    纠删码技术:使用Reed-Solomon纠删码将数据划分为多个数据块和校验块,即使部分数据块丢失,也能通过剩余数据块恢复原始数据。
  • 极简设计:以极简主义为指导原则,减少配置选项和变体数量,降低出错概率,提高正常运行时间和可靠性。
  • 简单安装:只需下载一个二进制文件并执行,即可在几分钟内完成安装和配置。
  • 平滑升级:支持无中断的升级操作,降低总使用和运维成本。
  • 跨平台支持:支持多种操作系统平台,如Windows、Linux、OS X和FreeBSD等。

官网:MinIO官网:https://www.minio.org.cn

二、安装

2.1、Windows

2.1.1、安装

(1)下载windows可执行文件。

下载地址:Windows MinIO 服务端和客户端 下载地址 https://min.io/download?license=enterprise&platform=kubernetes#/windows

在这里插入图片描述

(2)创建一个文件夹用于存放MinIO可执行文件和MinIO数据存放的地址。

  • minIO 文件夹用于存放MinIO文件。
  • minIO/bin文件夹用于存放MinIO的服务端和客户端的可执行文件。
  • minIO/data 文件夹用于存放MinIO的数据文件。
# 文件组织结构
minIO
├─bin
│     ├─ mc.exe # 客户端可执行文件
│	  │
│     ├─ minio.exe # 服务端可执行文件
├─data
│
└─logs

文件夹结构

2.1.2、启动

NOTE:Windows 不能直接通过双击minio.exe文件来启动MinIO服务。如果双击该文件,那么它会提示你需要通过cmd.exe/PowerShell来运行。推荐使用脚本的方式来运行MinIO服务,减少命令记忆。
在这里插入图片描述

(1)命令启动

Ⅰ. 在minIO/bin处打开终端或是cd到minIO/bin。

在这里插入图片描述

Ⅱ. 设置MinIO登录的ROOT用户名。

setx MINIO_ROOT_USER 替换为想设置的登录用户名 

在这里插入图片描述

Ⅲ. 设置MinIO登录的ROOT用户的密码。

setx MINIO_ROOT_PASSWORD 替换为自己想设置的登录密码

在这里插入图片描述

Ⅳ. 启动MinIO服务端。

.\minio.exe server D:\programs\devTools\minIO\data --console-address "127.0.0.1:9000" --address "127.0.0.1:9005"

参数解释:

  • D:\programs\devTools\minIO\data: 设置MinIO服务的上传等相关数据存放路径。
  • –console-address “127.0.0.1:9000” :设置MinIO服务控制台的访问地址。
  • –address “127.0.0.1:9005” : 设置MinIO服务的访问地址。

Ⅴ. 启动成功示例图。以及访问控制台成功示例图

在这里插入图片描述

输入:http://localhost:9000,进入前端控制台登录页面。

在这里插入图片描述

(2)脚本启动

Ⅰ. 脚本启动的前几个步骤和 命令启动 一样,使用脚本启动只是为了简化 命令启动步骤Ⅳ.

Ⅱ. 创建一个 start_minio.cmd 的批处理文件,然后将下面的命令复制到 start_minio.cmd 文本中。

要将minio_base_path的路径替换为自己本机存放 MinIO 的根目录

# start_minio.cmd
echo start MinIO Server

@REM 设置MinIO的根目录
set minio_base_path=D:\programs\devTools\minIO

%minio_base_path%\bin\minio.exe server %minio_base_path%\data --console-address "127.0.0.1:9000" --address "127.0.0.1:9005"

Ⅲ. 双击 start_minio.cmd 就可以启动 MinIO 服务了。

2.2、Linux 安装

(1)自己选择一个路径来存放 MinIO 的文件,然后执行以下命令创建文件夹。

创建如以下所示的文件夹结构:

minio
├─bin
├─data
└─logs

命令如下(一条条的执行):

mkdir minio
cd minio
mkdir bin
mkdir data
mkdir logs
cd bin

(2)在bin目录下,下载 MinIO Server 的可执行文件。

wget https://dl.min.io/server/minio/release/linux-amd64/minio

(3)下载完成后,为该文件添加执行权限。

chmod +x minio

(4)设置登录用户名和登录密码。

# name可以替换为想要设置的值
MINIO_ROOT_USER=name
# password可以替换为想要设置的值
MINIO_ROOT_PASSWORD=password

(5)启动minIO服务。

./minio server /mydata/minio/data --console-address ":9000" --address ":9001"

2.3、Docker 安装

podma

(1)执行命令。

podman run -p 9000:9000 -p 9001:9001 minio/minio server /data --console-address ":9001"

docker
(1)拉取镜像

docker pull minio/minio

(2)创建容器和本机目录的映射目录(挂载点目录)。

mkdir -p /usr/local/minio/config
mkdir -p /usr/local/minio/data

(3)创建并启动容器,同时设置minio的账号和密码,以及挂载点目录。

通过环境变量的形式设置minio的账号和密码
其中:
MINIO_ROOT_USER=admin,表示minio的的路账号是admin;

MINIO_ROOT_PASSWORD=admin,表示minio的登录账号的登录密码是admin

docker run -d \
--name minio \
-p 9000:9000 \
-p 9001:9001 \
--privileged=true \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=admin" \
-v /usr/local/minion/data:/data \
-v /usr/local/minio/config:/root/.minio \
minio/minio server \
--console-address ":9000" \
--address ":9001" /data

(4)测试 MinIO 是否安装成功。

直接使用安装docker的电脑的ip去登录。
如本例:http://ip:9000 访问minio控制台

本例账号为admin,密码为admin
<think>好的,我需要为用户介绍MinIO。首先,我得回忆一下自己对MinIO的了解。记得它是一个开源的对象存储服务,兼容Amazon S3的API。那应该从基本定义开始,说明它是什么,主要用途。 接下来,可能需要提到它的特点,比如高性能、可扩展性强、轻量级。这些是用户关心的点。还要说明它适用于哪些场景,比如大数据分析、AI/ML、云原生应用,这些应用场景能帮助用户理解何时使用MinIO。 然后,架构部分可能需要解释一下,MinIO采用分布式架构,支持纠删码和数据保护机制。用户可能想知道它的可靠性和数据安全是如何保障的。此外,多云支持也是一个重点,能够跨不同云平台部署,这对企业用户来说很重要。 还要注意提到它的开源协议,Apache License 2.0,这样用户可以免费使用和修改。另外,部署的简便性,使用Go语言编写,容易部署在各种环境中,这也是一个优势。 可能需要举一些使用场景的例子,比如作为S3替代方案,或者和Kubernetes结合使用,这样用户能更直观地理解其应用。最后,确保回答结构清晰,分点说明,语言简洁,避免技术术语过多,让不同层次的用户都能理解。 检查一下有没有遗漏的重要信息,比如最新版本的功能或者社区支持情况,如果有的话也应该补充进去。同时,确保LaTeX格式正确,虽然在这个回答中可能用不到数学公式,但如果有涉及的地方要正确应用。最后,用中文自然流畅地组织内容,分段落和列表,使回答易于阅读。</think>MinIO 是一款**高性能、开源、云原生**的对象存储解决方案,具备与 Amazon S3 API 完全兼容的特性。以下是其核心特点与应用场景的详细介绍: --- ### 一、核心特性 1. **S3 兼容性** 支持 Amazon S3 API,可无缝对接现有工具(如 AWS CLI、SDK),降低迁移成本。 2. **高性能存储** 采用 Golang 编写,优化数据读写性能,适用于高吞吐场景(如 AI 训练、大数据分析)。 3. **可扩展架构** - **分布式部署**:支持横向扩展至数千节点,存储容量可达 EB 级。 - **纠删码技术**:通过数据分片与冗余机制(如 $n$ 节点中允许 $k$ 节点故障)保障数据可靠性。 4. **轻量级与易部署** 单二进制文件部署,无外部依赖,支持 Docker/Kubernetes,适合云原生环境。 5. **多云与混合云支持** 可跨公有云、私有云及边缘节点部署,统一管理存储资源。 --- ### 二、典型应用场景 1. **大数据与 AI** - 存储海量非结构化数据(图片、日志等) - 为 Spark、TensorFlow 提供数据湖底层支持 2. **云原生应用** - Kubernetes 持久化存储(通过 CSI 驱动) - 微服务架构中的统一存储层 3. **备份与灾备** 结合 `mc` 命令行工具实现跨集群数据同步与版本控制。 4. **私有云替代方案** 为企业提供经济高效的 S3 兼容存储,避免公有云锁定。 --- ### 三、技术架构 - **对象存储模型**:数据以对象(Object)形式存储,包含元数据与唯一标识符。 - **网关模式**:可将 MinIO 作为代理层,对接后端 NAS 或 HDFS。 - **安全性**:支持 TLS 加密、IAM 策略及客户端加密(SSE-C/SSE-KMS)。 --- ### 四、快速体验 ```bash # 单节点部署(数据目录:~/data) docker run -p 9000:9000 -p 9001:9001 minio/minio server ~/data --console-address ":9001" ``` 访问 `http://localhost:9001` 即可使用 Web 控制台,默认账号密码为 `minioadmin/minioadmin`。 --- ### 五、生态集成 - **监控**:集成 Prometheus/Grafana 指标监控 - **CI/CD**:与 Jenkins、GitLab 等工具对接存储构建产物 - **数据库**:作为 PostgreSQL 大对象存储后端 --- MinIO 凭借其简洁性、高性能和云原生特性,已成为现代应用存储层的热门选择,尤其适合需要自主可控存储基础设施的场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值