当前位置: 首页 > news >正文

运用MinIO技术服务器实现文件上传——在Linux系统上安装和启动(一)

# MinIO 单机版环境搭建详解

## 1. 简介

随着大数据时代的到来,数据存储的需求日益增大,如何有效地存储和管理大规模的非结构化数据成为许多企业和开发者面临的挑战。MinIO 作为一个高性能、分布式对象存储系统,致力于为用户提供简单、快速、可扩展的存储解决方案。它的设计与 Amazon S3 兼容,用户可以无缝切换到 AWS 生态系统,并充分利用 S3 提供的丰富功能。

MinIO 是基于 Go 语言开发的,因而其执行效率极高,并且可以灵活地支持各种非结构化数据的存储,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。相比传统的文件系统存储,MinIO 更适合处理海量数据,并且能够在云原生和分布式环境中良好运行。

### 1.1 MinIO 的优势

- **高性能**:MinIO 通过完全基于硬件的加速处理方式,保证了存储系统的高吞吐量与低延迟表现,适合对性能有较高要求的应用场景。
- **分布式架构**:MinIO 能够水平扩展,支持多节点的分布式部署,以实现更高的可用性和容错能力。
- **与 AWS S3 兼容**:MinIO 完全兼容 Amazon S3 API,这使得企业可以轻松将其迁移到 AWS 或在本地环境中构建兼容 S3 的存储系统。
- **跨平台支持**:MinIO 可以在主流操作系统上运行,如 Linux、Windows、MacOS,同时支持 Docker 部署,也可以直接在 Kubernetes 集群中运行。

### 1.2 适用场景

MinIO 的核心应用场景包括但不限于以下几个方面:
- **大规模数据存储**:适合需要存储 PB 级别非结构化数据的企业和应用,特别是多媒体文件、备份和日志数据。
- **云原生应用**:MinIO 非常适合与 Kubernetes 结合使用,特别是在需要弹性扩展存储的容器化应用中。
- **数据分析与机器学习**:在大数据分析与机器学习工作流中,MinIO 可以为存储大量的训练数据、模型文件提供支持。

总之,无论是企业应用还是个人开发者,MinIO 都是一个功能强大且易于使用的对象存储系统。

---

## 2. 环境搭建(单机版)

MinIO 的安装和配置非常简单,特别是在单机版部署场景下,只需要几个步骤就可以将其快速运行起来。以下是详细的环境搭建流程,适用于 CentOS 7 系统。

### 2.1 下载 MinIO 可执行文件

首先,通过 `wget` 命令从 MinIO 官方站点下载最新版的 MinIO 可执行文件。执行以下命令下载 MinIO:

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

下载完成后,将文件移动到适合的目录位置,例如 `/usr/local/soft/minio/`,并赋予文件可执行权限:

mkdir -p /usr/local/soft/minio/
mv minio /usr/local/soft/minio/
chmod +x /usr/local/soft/minio/minio

此时,MinIO 已经下载并准备就绪。

### 2.2 修改默认用户名和密码

MinIO 的默认用户名和密码为 `minioadmin`,为了安全起见,建议在启动前修改为更复杂的凭据。可以通过环境变量的方式来配置自定义的用户名和密码:

export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=12345678

上述命令将用户名设置为 `admin`,密码设置为 `12345678`,用户可以根据需要修改成自己喜欢的配置。

### 2.3 启动 MinIO

配置好 MinIO 之后,可以通过以下命令启动 MinIO:

./minio server /usr/local/soft/minio/data --console-address ":9001"

如果希望将 MinIO 后台运行,并将日志输出到文件中,可以使用 `nohup` 命令:

nohup ./minio server --console-address ":9001" /usr/local/soft/minio/data > /usr/local/soft/minio/minio.log 2>&1 &

这里需要注意以下几个重要参数:
- `--console-address`:指定 MinIO 管理控制台的监听地址和端口,默认端口为 `9001`。
- `--address`:指定 MinIO 服务的监听地址和端口,默认是 `9000`。
- `--data-dir`:指定数据存储的目录,这里我们将数据存储在 `/usr/local/soft/minio/data` 下。

#### 启动过程中常见问题:
如果遇到类似 `Permission denied` 的错误提示,很可能是目录权限不足,可以使用以下命令更改文件权限:

sudo chmod -R 777 /usr/local/soft/minio

注意:此处的 /usr/local/soft/minio  就是你的minio安装目录,自行修改

执行上述命令后,重新启动 MinIO。

### 2.4 访问 MinIO 管理控制台

MinIO 启动成功后,可以通过浏览器访问其管理控制台。控制台的默认端口是 `9001`,假设服务器 IP 地址为 `192.168.1.236`,可以通过如下地址访问:

http://192.168.1.236:9001

在登录界面输入之前配置的用户名和密码,即可进入 MinIO 的管理控制台。

如果在访问控制台时无法连接,请确保已正确配置防火墙,开放了 `9001` 端口。

---

## 3. 防火墙设置

在 CentOS 7 系统中,默认开启了防火墙。如果希望远程访问 MinIO 的控制台或存储服务,需要确保防火墙开放相应的端口(例如 `9000` 和 `9001`)。以下是与防火墙相关的一些常用操作。

### 3.1 防火墙的基本管理命令

通过以下命令可以启动、关闭防火墙,或检查防火墙状态:

# 启动防火墙
systemctl start firewalld# 关闭防火墙
systemctl stop firewalld# 设置开机启用防火墙
systemctl enable firewalld.service# 设置开机禁用防火墙
systemctl disable firewalld.service# 查看防火墙状态
systemctl status firewalld

### 3.2 开放端口

为了让 MinIO 的控制台和存储服务可以被外部访问,需要在防火墙中开放相应端口。假设我们需要开放 9000 和 9001 端口,执行以下命令:

# 开启端口 9000
firewall-cmd --zone=public --add-port=9000/tcp --permanent# 开启端口 9001
firewall-cmd --zone=public --add-port=9001/tcp --permanent# 重新加载防火墙配置
firewall-cmd --reload

添加完端口后,使用 `firewall-cmd --reload` 重新加载防火墙配置,确保修改生效。

此外,可以使用以下命令查看防火墙当前已开放的端口:

firewall-cmd --list-ports

确保 `9000` 和 `9001` 端口已经成功加入列表。

---

## 4. 总结

通过本文的详细介绍,相信大家对 MinIO 的单机版环境搭建有了更深入的了解。MinIO 的安装配置过程非常简单,但在实际使用中需要注意一些细节问题,例如启动参数的配置、权限的管理以及防火墙端口的开放。

MinIO 不仅支持单机模式,还可以通过水平扩展实现分布式部署,以满足更大规模的数据存储需求。无论是个人开发者还是企业级应用,MinIO 都是一个功能强大、易于使用的对象存储系统。未来,在云原生、容器化应用场景下,MinIO 也将扮演重要角色,帮助用户高效管理海量非结构化数据。

如果对性能、可扩展性有更高的要求,可以考虑 MinIO 的分布式模式,将存储节点分布到多个物理服务器上,进一步提升数据存储的可靠性与可用性。

相关文章:

运用MinIO技术服务器实现文件上传——在Linux系统上安装和启动(一)

# MinIO 单机版环境搭建详解 ## 1. 简介 随着大数据时代的到来,数据存储的需求日益增大,如何有效地存储和管理大规模的非结构化数据成为许多企业和开发者面临的挑战。MinIO 作为一个高性能、分布式对象存储系统,致力于为用户提供简单、快速…...

Python技术深度探索:从基础到进阶的实践之旅(第一篇)

Python技术深度探索:从基础到进阶的实践之旅(第一篇) 在编程的世界里,Python以其简洁的语法、强大的库支持和广泛的应用领域,成为了无数开发者心中的“瑞士军刀”。无论是数据分析、机器学习、Web开发,还是…...

利士策分享,旅游是否要舟车劳顿才能尽兴?

利士策分享,旅游是否要舟车劳顿才能尽兴? 国庆假期,当夜幕降临,城市灯火阑珊,一场关于美食与等待的较量悄然上演。 李女士在北京天坛公园附近餐厅的等位经历——前方1053桌的壮观景象,不仅让人咋舌&#xf…...

C++入门——类的默认成员函数(取地址运算符重载)

文章目录 一、const成员函数二、取地址运算符重载总结 一、const成员函数 1.将const修饰的成员函数称之为const成员函数,const修饰成员函数放到成员函数参数列表的后⾯。2.const实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进…...

学习记录:js算法(四十九):二叉树的层序遍历

文章目录 二叉树的层序遍历网上思路队列循环 总结 二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的层序遍历 。 (即逐层地,从左到右访问所有节点)。 图一: 示例 1:如图一 输入:roo…...

【PCB工艺】表面贴装技术中常见错误

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 1、什么是SMT和SMD2、表面贴装技术的优势是什么?3、通孔和表面贴装技术之间的区别是什么?4、焊…...

3.使用条件语句编写存储过程(3/10)

引言 在现代数据库管理系统中,存储过程扮演着至关重要的角色。它们是一组为了执行特定任务而编写的SQL语句,这些语句被保存在数据库中,可以被重复调用。存储过程不仅可以提高数据库操作的效率,还可以增强数据的安全性和一致性。此…...

Effective C++中文版学习记录(三)

Effective C中文版学习记录(三) 章节三:资源管理 进度:17/55 文章目录 Effective C中文版学习记录(三)条款13、以对象管理资源条款14、在资源管理类中小心copying行为条款15、在资源管理类中提供对原始资…...

VBA学习(76):文件合并神器/代码

1.定义变量 Dim savePath As String Dim SaveFile As String Dim dataFolder As String Dim FileSystem As Object Dim folder As Object Dim FileExtn As String Dim t As Integer Dim blnCkb As Boolean 2.自定保存文件名、选择待合并文件所在文件夹 Private Sub CkbName_…...

非农就业数据超预期,美联储降息步伐或放缓?

KlipC报道:当地时间10月4日,美国劳工部发布了最新的非农就业数据。数据显示,9月非农就业人数增加25.4万人,远超市场预期。失业率为4.1%,比上月略降0.1个百分点。平均时薪环比增长0.4%,亦高于市场预期。此外…...

每日OJ题_牛客_乒乓球筐_哈希_C++_Java

目录 牛客_乒乓球筐_哈希 题目解析 C代码 Java代码 牛客_乒乓球筐_哈希 乒乓球筐__牛客网 (nowcoder.com) 描述: nowcoder有两盒(A、B)乒乓球,有红双喜的、有亚力亚的……现在他需要判别A盒是否包含了B盒中所有的种类&#…...

基于SpringBoot+Vue的酒店客房管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...

检索增强思考 RAT(RAG+COT):提升 AI 推理能力的强大组合

在人工智能领域,大型语言模型(LLMs)已经取得了显著的进展,能够生成类似人类的文本并回答各种问题。然而,它们在推理过程中仍面临一些挑战,例如缺乏对事实的准确把握以及难以处理复杂的多步骤问题。为了解决…...

python脚本实现Redis未授权访问漏洞利用

之前介绍过Redis未授权访问漏洞,本文使用python实现Redis未授权访问检测以及对应三种getshell。 1 测试环境准备 CentOS 7(192.168.198.66/24):安装 Redis 服务器并用 root 权限开启服务,关闭保护模式;安…...

简单线性回归分析-基于R语言

本题中&#xff0c;在不含截距的简单线性回归中&#xff0c;用零假设对统计量进行假设检验。首先&#xff0c;我们使用下面方法生成预测变量x和响应变量y。 set.seed(1) x <- rnorm(100) y <- 2*xrnorm(100) &#xff08;a&#xff09;不含截距的线性回归模型构建。 &…...

上海理工大学《2023年+2019年867自动控制原理真题》 (完整版)

本文内容&#xff0c;全部选自自动化考研联盟的&#xff1a;《上海理工大学867自控考研资料》的真题篇。后续会持续更新更多学校&#xff0c;更多年份的真题&#xff0c;记得关注哦~ 目录 2023年真题 2019年真题 Part1&#xff1a;2023年2019年完整版真题 2023年真题 2019年…...

计算机网络面试题——第三篇

1. TCP超时重传机制是为了解决什么问题 因为TCP是一种面向连接的协议&#xff0c;需要保证数据可靠传输。而在数据传输过程中&#xff0c;由于网络阻塞、链路错误等原因&#xff0c;数据包可能会丢失或者延迟到达目的地。因此&#xff0c;若未在指定时间内收到对方的确认应答&…...

Elasticsearch 开放推理 API 增加了对 Google AI Studio 的支持

作者&#xff1a;来自 Elastic Jeff Vestal 我们很高兴地宣布 Elasticsearch 的开放推理 API 支持 Gemini 开发者 API。使用 Google AI Studio 时&#xff0c;开发者现在可以与 Elasticsearch 索引中的数据进行聊天、运行实验并使用 Google Cloud 的模型&#xff08;例如 Gemin…...

react-问卷星项目(7)

实战 React表单组件 入门 重点在于change的时候改变state的值&#xff0c;类似vue的双向数据绑定v-model&#xff0c;即数据更新的时候页面同步更新&#xff0c;页面数据更新时数据源也能获得最新的值&#xff0c;只是Vue中设置在data中的属性默认绑定&#xff0c;React中需…...

【git】main|REBASE 2/6

很久没合并代码合并出现冲突&#xff0c;自动进入了 main|REBASE 2/6 的提示: 【git】main|REBASE 2/6 It looks like you’ve encountered several merge conflicts after a git pull operation while a rebase is in progress. Here’s how you can resolve these conflict…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

Web后端基础(基础知识)

BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 优点&#xff1a;维护方便缺点&#xff1a;体验一般 CS架构&#xff1a;Client/Server&#xff0c;客户端/服务器架构模式。需要单独…...