MinIO:开源对象存储解决方案的领先者
MinIO:开源对象存储解决方案的领先者
MinIO 是一款开源的对象存储系统,致力于提供高性能、可伸缩、安全的数据存储解决方案。
官方解释:MinIO 是一个基于Apache License v2。0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。
本文将介绍 MinIO 的背景、用途、优势、与其他存储解决方案进行对比和安装使用。
背景
MinIO 的发展背景与云计算、大数据、多媒体存储以及云原生应用程序的快速增长密切相关。传统的文件系统和关系型数据库已无法满足不断膨胀的数据需求。MinIO 在这一背景下崭露头角,于2014年由Anand Babu Periasamy创建,成为对象存储的先锋之一。MinIO 是一个自由开放源码的项目,由广大开发者社区不断推动,以提供灵活、可靠、高性能的对象存储。
用途
无论是构建云原生应用程序、存储多媒体文件、支持数据分析,还是作为数据湖的一部分,MinIO 都提供了可靠的存储解决方案。
- 多媒体存储:MinIO 可用于存储大规模的图片、视频、音频和其他多媒体文件。其高性能和低延迟的特点使其成为媒体内容存储的理想选择。许多多媒体应用程序和网站使用MinIO来提供快速且可伸缩的存储解决方案。
- 备份和归档:MinIO 提供数据冗余和保护机制,适用于存储备份数据、历史数据和归档数据。这确保了数据的可靠性和长期保存,符合合规性和安全性要求。
- 数据湖:MinIO 作为数据湖存储层的一部分,用于存储原始和结构化数据,以供后续分析和挖掘。它支持各种数据类型和格式,使数据湖的构建更加灵活和高效。
- 数据仓库:MinIO 可以与数据仓库集成,作为数据存储层,支持快速数据检索和分析操作。这使数据仓库可以更好地处理和分析大规模数据。
- 分布式存储:MinIO 具有分布式架构,可以在多个节点上运行,提供高可用性和可伸缩性。这使其成为处理大规模数据存储需求的理想解决方案,尤其是在需要水平扩展时。
- 云原生应用程序:MinIO 可作为云原生应用程序的后端存储,适用于微服务架构和容器化应用程序。它提供了高性能和可伸缩性,支持现代云原生开发。
- 开发和测试环境:MinIO 用于构建开发和测试环境,模拟对象存储,进行应用程序开发和测试。这有助于开发人员模拟真实的对象存储环境,以确保应用程序在生产环境中顺利运行。
优势
MinIO作为一个对象存储系统,在很多方面都具有显著的优势,尤其适合需要构建自己的私有对象存储解决方案或在云环境中使用Amazon S3 API的应用程序。以下是MinIO的主要优势:
- 高性能:MinIO 提供卓越的性能,具有快速存储和检索大规模数据对象的能力。其并发读写和低延迟访问使其成为处理多媒体和大规模数据集的理想选择。MinIO号称是目前速度最快的对象存储服务器。在标准硬件上,对象存储的读/写速度最高可以高达183 GB/s和171 GB/s。对象存储可以作为主存储层,用来处理Spark、Presto、TensorFlow、H2O。ai等各种复杂工作负载以及成为Hadoop HDFS的替代品。

- S3兼容性:MinIO提供了与Amazon S3 API完全兼容的接口,这意味着它可以无缝与AWS S3应用程序和工具集成。亚马逊云的 S3 API(接口协议) 是在全球范围内达到共识的对象存储的协议,是全世界内大家都认可的标准。MinIO 在很早的时候就采用了 S3 兼容协议,并且MinIO 是第一个支持 S3 Select 的产品。开发者可以直接使用支持Amazon S3的工具、库和应用程序无缝迁移到MinIO,或者使用它们进行互操作。

- 开源和自由:MinIO 基于Apache V2 license 100% 开放源代码 。这就意味着 MinIO的用户能够自动的、无限制、自由免费使用和集成MinIO、自由的创新和创造、 自由的去修改、自由的再次发行新的版本和软件。这降低了总体拥有成本,使其成为个人、小型企业和大型组织的理想选择。
-
轻量级和易于部署:MinIO是一个轻量级的对象存储系统,容易部署和管理。MinIO简单特性减少了出错的机会,节约了安装部署的时间,提供了可靠性,同时简单性又是性能的基础。MinIO升级是通过一个简单命令完成的,这个命令可以无中断的完成MinIO的升级工作,并且不需要停机即可完成升级操作,大大降低总使用和运维成本。您可以在本地数据中心、云环境或容器化平台上运行MinIO。MinIO提供了与k8s、etcd、docker等主流容器化技术深度集成方案。
与其他存储解决方案的对比
安装成功后,浏览器登录访问http://127.0.0.1:9000
如果浏览器出现如下界面,表示安装成功。然后使用默认登录名和密码 均为 minioadmin。为了安全考虑后期可再去修改。
-
Amazon S3:MinIO 提供了类似S3的API,与AWS S3兼容,但不需要云供应商锁定,可在私有云或混合云环境中使用。与S3相比,MinIO更加灵活,可自托管,降低了存储成本。
-
Hadoop HDFS:HDFS 是分布式文件系统,用于大数据存储和处理,MinIO 是对象存储系统,更适合多媒体存储、备份和归档以及与云原生应用程序集成。MinIO在性能、多用途性和S3兼容性方面具有优势。
-
Ceph:Ceph 是另一个开源的对象存储系统,MinIO 与Ceph相比更加轻量级、易于部署和维护,适用于小型和中型组织。
安装使用
MinIO作为一款基于Golang 编程语言开发的一款高性能的分布式式存储方案的开源项目,有十分完善的官方文档。目前MinIO支持市面主流的开发语言并且可以通过SDK快速集成快速集成使用。详细使用可参考官方文档。
官网文档地址:https://docs.min.io/cn/
Minio Cookbook中文版地址(书栈网):https://www.bookstack.cn/read/MinioCookbookZH/
MinIO服务安装后,可以直接通过浏览器登录系统,完成文件夹、文件的管理。非常方便使用。
-
Linux下安装MinIO
# 下载安装包 wget https://dl.min.io/server/minio/release/linux-amd64/minio# 运行命令chmod +x minio #启动 ./minio server /usr/software/minio/data # 后台进程启动nohup ./minio server /usr/software/minio/data > /usr/software/minio/minio.log 2>&1 &Widows下安装MinIO
直接安装启动
下载安装包
下载地址:https://dl.minio.io/server/minio/release/windows-amd64/minio.exe
管理员身份启用cmd窗口,然后定位到minio.exe文件夹执行如下命令:
.\minio.exe server D:\file\minio说明:D:\file\minio 为存储文件的目录
2、后台服务安装
- 下载地址:https://github.com/winsw/winsw/releases
- 将WinSW.exe复制到自己指定的目录,重命名为minio-server.exe
- 同目录下创建minio-server.xml。特别注意,xml和exe必须同名
- 然后配置minio-server.xml文件,内容如下:
<service> <id>minio-server</id> <name>minio-server</name> <description>minio文件存储服务/description> <!-- 可设置环境变量 --> <env name="HOME" value="%BASE%"/> <executable>%BASE%\minio.exe</executable> <arguments>server "%BASE%\data"</arguments> <!-- <logmode>rotate</logmode> --> <logpath>%BASE%\logs</logpath> <log mode="roll-by-size-time"> <sizeThreshold>10240</sizeThreshold> <pattern>yyyyMMdd</pattern> <autoRollAtTime>00:00:00</autoRollAtTime> <zipOlderThanNumDays>5</zipOlderThanNumDays> <zipDateFormat>yyyyMMdd</zipDateFormat> </log></service> - 使用cmd命令 minio-server.exe install 安装服务
- 安装完后,去服务中启动服务。启动成功就可以正常使用minio啦
- 可以使用 minio-server.exe uninstall 来卸载服务
相关文章:
MinIO:开源对象存储解决方案的领先者
MinIO:开源对象存储解决方案的领先者 MinIO 是一款开源的对象存储系统,致力于提供高性能、可伸缩、安全的数据存储解决方案。 官方解释:MinIO 是一个基于Apache License v2。0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适…...
15、电科院FTU检测标准学习笔记-基本性能
作者简介: 本人从事电力系统多年,岗位包含研发,测试,工程等,具有丰富的经验 在配电自动化验收测试以及电科院测试中,本人全程参与,积累了不少现场的经验 ———————————————————…...
古建筑倾斜在线监测系统:科技守护历史的创新实践
在文化遗产保护的广阔领域中,古建筑的健康监测占据着举足轻重的地位。然而,传统的监测方法往往受限于布线复杂、安装难度大以及对古建筑本体可能造成的伤害等问题。近年来,一种新型的古建筑倾斜在线监测系统应运而生,它…...
DP(2) | Java | LeetCode 62, 63, 343, 96 做题总结(96 未完)
62.不同路径 我的代码(报错) 写的过程中感到很迷惑的点:①二维数组和这道题目的对应弄不清除,m n的初始化 是 dp[m][n] 还是 dp[n][m] ② class Solution {public int uniquePaths(int m, int n) {int[][]dp new int[m1][n1];d…...
Ubuntu实战续篇:Apache httpd轻松搭建高效代理服务器
Ubuntu实战续篇:Apache httpd轻松搭建高效代理服务器 一、前言二、Ubuntu下的Apache配置文件概览三、配置并启用 Apache 代理服务 作者:高玉涵 时间:2024.7.11 21:06 博客:blog.csdn.net/cg_i 环境:Ubuntu 22.04.4 LTS…...
Linux 程序卡死的特殊处理
一、前言 Linux环境。 我们在日常编写的程序中,可能会出现一些细节问题,导致程序卡死,即程序没法正常运行,界面卡住,也不会闪退... 当这种问题出现在客户现场,那就是大问题了。。。 当我们暂时还无法排…...
(C++字符串02) 反转字符串中的单词
151、反转字符串中的单词 先将字符串的里的多余空格去掉,时间复杂度:O(n),再将字符串整体反转,时间复杂度:O(n),最后反转每一个单词,时间复杂度:O(n); class Solution { public:string reverseWords(stri…...
一致性Hash问题及解决方案
Hash算法的应用场景 请求的负载均衡 Nginx的ip_hash策略可以在客户端ip不发生变化的情况下,将其发出的请求始终路由到同一个目标服务器上,实现会话粘滞,避免处理session共享问题。 如果没有ip_hash策略,可以通过维护一张映射表的…...
【接口设计】如何设计统一 RESTful 风格的数据接口
如何设计统一 RESTful 风格的数据接口 1.版本控制1.1 通过 URL1.2 通过自定义请求头1.3 通过 Accept 标头 2.过滤信息3.确定 HTTP 的方法4.确定 HTTP 的返回状态5.定义统一返回的格式 近年来,随着移动互联网的发展,各种类型的客户端层出不穷。如果不统一…...
【备战秋招】——算法题目训练和总结day3
【备战秋招】——算法题目训练和总结day3😎 前言🙌BC149简写单词题解思路分析代码分享: dd爱框框题解思路分析代码分享: 除2!题解思路分析代码分享: 总结撒花💞 😎博客昵称ÿ…...
Git 操作总结
1. 安装、Git 环境配置 1.1 安装 Git 官方版本可以在 Git 官方网站下载:打开 https://git-scm.com/download/win,选择相应版本即可。 Git 安装完成后,可以在开始菜单中看到 Git 的三个启动图标(Git Bash、Git CMD、Git GUI&…...
若依 ruoyi-vue SpringBoot highlight-textarea 输入框敏感词关键词高亮标红(二)
参考文章,非常感谢大佬的分享 实现可高亮的输入框 — HighlightTextarea GitHub:highlight-textarea 可看作者上一篇文章 若依 ruoyi-vue SpringBoot聊天敏感词过滤sensitive-word(一) 效果图 审核时,输入框高亮敏感词ÿ…...
33 IRF配置思路
IRF配置思路网络括谱图 主 Ten-GigabitEthernet 1/0/49 Ten-GigabitEthernet 1/0/50 Ten-GigabitEthernet 1/0/51 备 Ten-GigabitEthernet 2/0/49 Ten-GigabitEthernet 2/0/50 Ten-GigabitEthernet 2/0/51 思路 主 1 利用console线进入设备的命令行页面去更改…...
Dify中的RAG和知识库
一.RAG 基本架构 当用户提问 “美国总统是谁?” 时,系统并不是将问题直接交给大模型来回答,而是先将用户问题在知识库中进行向量搜索,通过语义相似度匹配的方式查询到相关的内容(拜登是美国现任第46届总统…࿰…...
vue3 + i18n 中英文切换
第一步:安装vue-i18n npm install vue-i18n 第二步:配置语言包及js文件 目录如下: 英文语言包 en.js // lang/en.js - 英文语言包 export default {menu: { 库房管理: Warehouse Management,入库检测: Incoming Inspection, 设…...
one-hot-zhu案例
# 导入用于对象保存与加载的joblib # from sklearn.externals import joblib import joblib # 导入keras中的词汇映射器Tokenizer from keras.preprocessing.text import Tokenizer def one_hot_01(): # 1 准备语料 vocabs # vocabs {“周杰伦”, “陈奕迅”, “王力宏”, “…...
数据库课设---酒店管理系统(MySQL、VBNet)
目录 一. 知识技术 二. 需求分析 2.1 功能需求 2.2 数据需求 三. 数据流图与数据字典 3.1 数据流图 3.1.1 业务流图 3.1.2 数据流图 3.1.3 关系图 3.2 数据字典 四. 数据库设计 4.1 概念模型设计 4.2 逻辑模型设计 4.3 数据库实现 …...
NLP入门——前馈词袋分类模型的搭建、训练与预测
模型的搭建 线性层 >>> import torch >>> from torch import nn >>> class DBG(nn.Module): ... def forward(self,x): ... print(x.size()) ... return x ... >>> tmod nn.Sequential(nn.Linear(3,4),DB…...
GD32F303RET6读取SGM58031电压值
1、SGM58031芯片详解 (1)SGM58031是一款低功耗,16位精度,delta-sigma (ΔΣ)模数转换器(ADC)。它从3V到5.5V供电。 (2)SGM58031包含一个片上参考和振荡器。它有一个I2C兼容接口,可以选择四个I2…...
Pandas实战指南:any()函数深度解析与高效应用
Pandas实战指南:any()函数深度解析与高效应用 引言 在数据分析和处理过程中,经常需要快速检查数据集中是否存在满足特定条件的元素。Pandas库中的any()函数正是这样一个强大的工具,它可以帮助我们沿着指定的轴检查是否至少有一个元素满足某…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...
认识CMake并使用CMake构建自己的第一个项目
1.CMake的作用和优势 跨平台支持:CMake支持多种操作系统和编译器,使用同一份构建配置可以在不同的环境中使用 简化配置:通过CMakeLists.txt文件,用户可以定义项目结构、依赖项、编译选项等,无需手动编写复杂的构建脚本…...
Appium下载安装配置保姆教程(图文详解)
目录 一、Appium软件介绍 1.特点 2.工作原理 3.应用场景 二、环境准备 安装 Node.js 安装 Appium 安装 JDK 安装 Android SDK 安装Python及依赖包 三、安装教程 1.Node.js安装 1.1.下载Node 1.2.安装程序 1.3.配置npm仓储和缓存 1.4. 配置环境 1.5.测试Node.j…...
