当前位置: 首页 > 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…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...

es6+和css3新增的特性有哪些

一&#xff1a;ECMAScript 新特性&#xff08;ES6&#xff09; ES6 (2015) - 革命性更新 1&#xff0c;记住的方法&#xff0c;从一个方法里面用到了哪些技术 1&#xff0c;let /const块级作用域声明2&#xff0c;**默认参数**&#xff1a;函数参数可以设置默认值。3&#x…...

WEB3全栈开发——面试专业技能点P4数据库

一、mysql2 原生驱动及其连接机制 概念介绍 mysql2 是 Node.js 环境中广泛使用的 MySQL 客户端库&#xff0c;基于 mysql 库改进而来&#xff0c;具有更好的性能、Promise 支持、流式查询、二进制数据处理能力等。 主要特点&#xff1a; 支持 Promise / async-await&#xf…...

node.js的初步学习

那什么是node.js呢&#xff1f; 和JavaScript又是什么关系呢&#xff1f; node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说&#xff0c; 需要在node.js的环境上进行当JavaScript作为前端开发语言来说&#xff0c;需要在浏览器的环境上进行 Node.js 可…...

以太网PHY布局布线指南

1. 简介 对于以太网布局布线遵循以下准则很重要&#xff0c;因为这将有助于减少信号发射&#xff0c;最大程度地减少噪声&#xff0c;确保器件作用&#xff0c;最大程度地减少泄漏并提高信号质量。 2. PHY设计准则 2.1 DRC错误检查 首先检查DRC规则是否设置正确&#xff0c;然…...