运用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 的分布式模式,将存储节点分布到多个物理服务器上,进一步提升数据存储的可靠性与可用性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/55780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 6.11版本发布

Linux 6.11版本的发布是Linux社区的一个重要里程碑,它不仅在实时计算、性能优化方面取得了显著进展,还在安全性上迈出了关键一步。 一、实时计算与性能优化 1.io_uring子系统支持 Linux 6.11引入了io_uring子系统的增强功能,特别是支持了b…

SpringBoot中间件Docker

Docker(属于C/S架构软件) 简介与概述 1.Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux …

【ubuntu】Ubuntu20.04安装中文百度输入法

1.download 百度Linux输入法-支持全拼、双拼、五笔 2.unzip unzip Ubuntu_Deepin-fcitx-baidupinyin-64.zip 3.setting 3.1 setting fcitx sudo apt install aptitude sudo aptitude install fcitx-bin fcitx-table fcitx-config-gtk fcitx-frontend-all sudo aptitude in…

Cocos_鼠标滚轮放缩地图

文章目录 前言一、环境二、版本一_code2.分析类属性方法详细分析详细分析onLoad()onMouseWheel(event)详细分析 总结 前言 学习笔记,请多多斧正。 一、环境 通过精灵rect放置脚本实现鼠标滚轮放缩地图。 二、版本一_code import { _decorator, Component, Node }…

使用Buildpacks构建Docker镜像

## 使用Buildpacks构建Docker镜像 ![](../assets/运维手册-Buildpacks-Buildpacks.io.png) ### Buildpacks简介 与Dockerfile相比,Buildpacks为构建应用程序提供了更高层次的抽象。具体来说,Buildpacks: * 提供一个平衡的控制,…

【Python】Conda离线执行命令

以下链接证明了想要离线使用conda命令的方法 启用离线模式 — Anaconda documentation 基本上大部分的命令都会提供网络选项 例如creat命令 conda create — conda 24.7.1 文档 - Conda 文档

多区域OSPF路由协议

前言 之前也有过关于OSPF路由协议的博客,但都不是很满意,不是很完整。现在也是听老师讲解完OSPF路由协议,感触良多,所以这里重新整理一遍。这次应该是会满意的 一些相关概念 链路状态 链路指路由器上的一个接口,链路状…

ubuntu的useradd和adduser命令

useradd vs adduser 1. useradd 类型:Linux 命令。功能:用于创建新用户,但不会自动创建用户的主目录和密码。参数: -c:添加备注。-d:指定用户主目录。-e:设置用户有效期。-f:设置密…

ChatGLM详解

一 ChatGLM定义 ChatGLM是由清华技术成果转化的公司智谱AI发布的开源的、支持中英双语问答的对话语言模型系列,并针对中文进行了优化,该模型基于General Language Model(GLM)架构构建,ChatGLM是一款基于人工智能技术的…

Oracle架构之物理存储之审计文件

文章目录 1 审计文件(audit files)1.1 定义1.2 查看审计信息1.3 审计相关参数1.4 审计的类型1.4.1 语句审计1.4.2 权限审计1.4.3 对象审计1.4.4 细粒度的审计 1.5 与审计相关的数据字典视图 1 审计文件(audit files) 1.1 定义 审…

C++面试速通宝典——9

170. 简述数组和指针的区别? ‌‌‌‌  答:数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。指针可以随时指向任意类型的内存块。 1. 修改内容上的区别 char a[] “hello”; a[0] ‘X’; char * p …

毕设分享 基于协同过滤的电影推荐系统

文章目录 0 简介1 设计概要2 课题背景和目的3 协同过滤算法原理3.1 基于用户的协同过滤推荐算法实现原理3.1.1 步骤13.1.2 步骤23.1.3 步骤33.1.4 步骤4 4 系统实现4.1 开发环境4.2 系统功能描述4.3 系统数据流程4.3.1 用户端数据流程4.3.2 管理员端数据流程 4.4 系统功能设计 …

【Android 源码分析】Activity生命周期之onStop-2

忽然有一天,我想要做一件事:去代码中去验证那些曾经被“灌输”的理论。                                                                                  – 服装…

信息安全工程师(28)机房安全分析与防护

前言 机房安全分析与防护是一个复杂而细致的过程,涉及到物理安全、环境控制、电力供应、数据安全、设备管理、人员管理以及紧急预案等多个方面。 一、机房安全分析 1. 物理安全威胁 非法入侵:未经授权的人员可能通过门窗、通风口等进入机房,…

【LeetCode】每日一题 2024_10_10 优质数对的总数 I(暴力/哈希)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动! 题目:优质数对的总数 I 代码与解题思路 简单题先暴力~ 直接对着题意模拟即可,力扣上只要是标着简单标签的题目,不用犹豫,直接对他使用暴力吧! …

亮度(luminance)

亮度(luminance)的单位是坎德拉每平方米(cd/m)。它是用来描述光源或物体表面发出的光在某个方向上的亮度程度。亮度可以简单理解为人眼感知的物体表面在某一特定方向上发出的光强。 亮度的理解: 亮度的概念&#xff…

LabVIEW混合控制器质量检测

随着工业自动化水平的提高,对控制器的精度、稳定性、可靠性要求也在不断上升。特别是在工程机械、自动化生产、风力发电等领域,传统的质量检测方法已无法满足现代工业的高要求。因此,开发一套自动化、精确、可扩展的混合控制器质量检测平台成…

【Linux】常用系统命令

Linux 系统中有许多常用的命令,适用于不同的任务和场景。以下是一些基础且常用的 Linux 命令: 1. **文件和目录操作** - ls:列出目录内容。 - cd:改变当前目录。 - pwd:打印当前工作目录。 - mkdir&#…

Redis 数据类型string(字符串)

目录 1 基本特性 2 主要操作命令 2.1 设置键值 2.1.1 SET key value [EX seconds] [PX milliseconds] [NX|XX] 2.1.2 MSET key value [key value ...] 2.1.3 SETEX key seconds value 2.1.4 PSETEX key milliseconds value 2.1.5 APPEND key value 2.2 获取键值 …

Pikachu-Cross-Site Scripting-xss盲打

xss盲打,不是一种漏洞类型,而是一个攻击场景;在前端、或者在当前页面是看不到攻击结果;而是在后端、在别的页面才看到结果。 登陆后台,查看结果;