什么是MinIO

news2025/1/9 17:16:05

本文为joshua317原创文章,转载请注明:转载自joshua317博客 什么是MinIO - joshua317的博客

什么是MinIO?

MinIO 是一款高性能、分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件。即X86等低成本机器也能够很好的运行MinIO。

MinIO提供高性能、S3兼容的对象存储。Minio 是一个基于Go语言的对象存储服务。它实现了大部分亚马逊S3云存储服务接口,可以看做是是S3的开源版本,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。区别于分布式存储系统,minio的特色在于简单、轻量级,对开发者友好,认为存储应该是一个开发问题而不是一个运维问题。

MinIO是Kubernetes的原生产品,是唯一一个可在每个公共云、每个Kubernetes发行版、私有云和边缘上使用的对象存储套件。MinIO是软件定义的,在GNU AGPL v3下是100%开源的。

MinIO与传统的存储和其他的对象存储不同的是:它一开始就针对性能要求更高的私有云标准进行软件架构设计。因为MinIO一开始就只为对象存储而设计。所以他采用了更易用的方式进行设计,它能实现对象存储所需要的全部功能,在性能上也更加强劲,它不会为了更多的业务功能而妥协,失去MinIO的易用性、高效性。 这样的结果所带来的好处是:它能够更简单的实现局有弹性伸缩能力的原生对象存储服务。

MinIO 在最大数量的环境中支持最广泛的用例。自推出云原生以来,MinIO 的软件定义套件在公共云、私有云和 边缘无缝运行- 使其成为混合云和多云对象存储的领导者。凭借行业领先的性能 和可扩展性,MinIO 可以提供一系列用例,包括 AI/ML、分析、备份/恢复以及现代 Web 和移动应用程序。

MinIO在传统对象存储用例(例如辅助存储,灾难恢复和归档)方面表现出色。同时,它在机器学习、大数据、私有云、混合云等方面的存储技术上也独树一帜。当然,也不排除数据分析、高性能应用负载、原生云的支持。

在中国:阿里巴巴、腾讯、百度、中国联通、华为、中国移动等等9000多家企业也都在使用MinIO产品

  • 社区地址 - https://slack.min.io
  • 文档地址(文档推荐)- https://docs.min.io
  • 中文文档-http://docs.minio.org.cn/docs/
  • 博客地址- https://blog.min.io
  • 官网地址- https://min.io

一 特性

MinIO的企业级功能代表了对象存储空间中的标准。从AWS S3 API支持到S3 Select支持,以及MinIO设计的擦除编码和数据安全等实现,MinIO的代码受到了技术和业务领域的一些知名人士的广泛赞誉和频繁使用。

1.1 擦除码

MinIO使用按对象的嵌入式擦除编码保护数据,该编码以汇编代码编写,可提供最高的性能。 MinIO使用Reed-Solomon代码将对象划分为n / 2个数据和n / 2个奇偶校验块-尽管可以将它们配置为任何所需的冗余级别。 这意味着在12个驱动器设置中,将一个对象分片为6个数据和6个奇偶校验块。即使丢失了多达5个((n / 2)–1)个驱动器(无论是奇偶校验还是数据),仍然可以从其余驱动器可靠地重建数据。MinIO的实现可确保即使丢失或无法使用多个设备,也可以读取对象或写入新对象。最后,MinIO的擦除代码位于对象级别,并且可以一次修复一个对象。

1.2 Bitrot保护

无声的数据损坏或Bitrot是磁盘驱动器面临的严重问题,导致数据在用户不知情的情况下损坏。原因多种多样(驱动器老化,电流尖峰,磁盘固件错误,虚假写入,读/写方向错误,驱动程序错误,意外覆盖),但结果是一样的——数据泄漏。

MinIO对高速哈希算法的优化实现可确保它永远不会读取损坏的数据-它可以实时捕获和修复损坏的对象。 通过在READ上计算哈希值,并在WRITE上从应用程序,整个网络以及到内存/驱动器的哈希值,来确保端到端的完整性。 该实现旨在提高速度,并且可以在Intel CPU的单个内核上实现超过10 GB /秒的哈希速度。

1.3 加密

在对象存储领域,需要高度加密才能在谈判桌上占有一席之地。MinIO通过最高级别的加密以及广泛的优化提供了更多功能,几乎消除了通常与存储加密操作相关的开销。

1.4 WORM

启用WORM后,MinIO会禁用所有可能会使对象数据和元数据发生变异的API。这意味着一旦写入数据就可以防止篡改。这对于许多不同的法规要求具有实际应用。

1.5 身份认证和管理

MinIO IAM 以 AWS Identity and Access Management (IAM) 兼容性为核心,无论环境如何,它都能向应用程序和用户展示该框架 , 从而在不同的公有云、私有云和边缘中提供相同的功能。MinIO 扩展了 AWS IAM 兼容性,支持流行的外部身份提供商(如 ActiveDirectory/LDAP、Okta 和 Keycloak),允许管理员将身份管理卸载到其组织的首选 SSO 解决方案。

1.6 连续复制

传统复制方法的挑战在于它们无法有效扩展到几百TB。话虽如此,每个人都需要一种复制策略来支持灾难恢复,并且该策略需要跨越地域,数据中心和云。 MinIO的连续复制旨在用于大规模的跨数据中心部署。通过利用Lambda计算通知和对象元数据,它可以高效,快速地计算增量。

Lambda通知确保与传统的批处理模式相反,更改可以立即传播。连续复制意味着即使发生高动态数据集,如果发生故障,数据丢失也将保持在最低水平。最后,就像MinIO所做的一样,连续复制是多厂商的,这意味着您的备份位置可以是从NAS到公共云的任何位置。

1.7 全局一致性

现代企业到处都有数据。 MinIO允许将这些各种实例组合在一起以形成统一的全局名称空间。具体来说,最多可以将32个MinIO服务器组合成一个分布式模式集,并且可以将多个分布式模式集组合成一个MinIO服务器联合。每个MinIO Server Federation都提供统一的管理员和名称空间。

MinIO Federation Server支持无限数量的分布式模式集。

这种方法的影响在于,对象存储可以为大型的,地理上分散的企业进行大规模扩展,同时保留从以下位置容纳各种应用程序(S3 Select,MinSQL,Spark,Hive,Presto,TensorFlow,H20)的能力。单一控制台。

1.8 多云网关

所有企业都在采用多云策略。这也包括私有云。因此,您的裸机虚拟化容器和公共云服务(包括Google,Microsoft和阿里巴巴等非S3提供商)必须看起来完全相同。尽管现代应用程序具有高度的可移植性,但为这些应用程序提供支持的数据却并非如此。

MinIO应对的主要挑战是,无论数据位于何处,都使数据可用。 MinIO在裸机,网络连接存储和每个公共云上运行。更重要的是,MinIO通过Amazon S3 API从应用程序和管理角度确保您对数据的看法完全相同。

MinIO可以走得更远,使您现有的存储基础架构与Amazon S3兼容。其影响是深远的。现在,组织可以真正统一其数据基础架构-从文件到块,所有这些都显示为可通过Amazon S3 API访问的对象,而无需迁移。

1.9 可扩展性

MinIO利用了Web缩放器的来之不易的知识,为对象存储带来了简单的缩放模型。这是MinIO坚定的理念 “简单可扩展.” 在 MinIO, 扩展从单个群集开始,该群集可以与其他MinIO群集联合以创建全局名称空间, 并在需要时可以跨越多个不同的数据中心。通过添加更多集群可以扩展名称空间, 更多机架,直到实现目标。

缩放是一个维度概念,但它有一个真理:简单性缩放。MinIO 通过称为服务器池的概念进行水平扩展(横向扩展)。服务器池是一种组合多个技术组件的方法。每个服务器池都是一组独立的节点,具有自己的计算、网络和存储资源。

1.10 混合和多云

MinIO 非常适合为混合云战略寻求一致、高性能和可扩展的对象存储的企业。Kubernetes 原生设计,从一开始就兼容 S3,如今 MinIO 有超过 770 万个实例在 AWS、Azure 和 GCP 中运行——比其他私有云的总和还要多。当添加到数百万个私有云实例和广泛的边缘部署时 - MinIO 是混合云的领导者。

1.11 云的原生支持

MinIO 是在过去四年中从头开始构建的,并且是定义云的技术和架构的本机。其中包括容器化、Kubernetes 编排、微服务和多租户。没有其他对象存储对 Kubernetes 更友好。

1.12 开放全部源代码 + 企业级支持

开源为云提供支持。开源为企业提供动力。开源为MinIO提供支持。每天都有数以万计的客户和社区成员信任 MinIO 为其部署提供安全性、弹性、持久性和卓越运营。

MinIO 基于Apache V2 license 100% 开放源代码 。这就意味着 MinIO的客户能够自动的、无限制、自由免费使用和集成MinIO、自由的创新和创造、 自由的去修改、自由的再次发行新的版本和软件. 确实, MinIO 强有力的支持和驱动了很多世界500强的企业。此外,其部署的多样性和专业性提供了其他软件无法比拟的优势。MinIO 是 100% 开源的,遵循 Affero 通用公共许可证第 3 版 (AGPLv3)。这意味着 MinIO 的客户不受锁定、免费检查、免费创新、免费修改和免费重新分发。其部署的多样性以专有软件永远无法提供的方式强化了软件。

1.13 Bucket & Object Immutability

保护数据不被删除(意外或有意)是涉及每个行业的关键合规性组件。MinIO 支持完整的功能,包括对象锁定、保留、法定保留、治理和合规性。MinIO 的降压和对象可变性已通过 Cohasset Partners 的 Veeam 认证和验证,可根据 SEC 规则 17a-4(f)、FINRA 规则 4511 和 CFTC 法规 1.31 使用。

1.14 存储桶和对象版本控制

与 SAN 和 NAS 版本控制方法相比,对象级版本控制是一项重大演变。版本控制不仅提供数据保护,还作为对象锁定、不可变性、分层和生命周期管理等强大功能的基础。

使用 MinIO,对象按照 Amazon 的 S3 结构/实现进行独立版本控制。MinIO 为给定对象的每个版本分配一个唯一的 ID - 应用程序可以随时指定版本 ID 以访问该对象的时间点快照。

1.15 数据生命周期管理和分层

随着数据的不断增长,共同优化访问、安全性和经济性的能力成为一项硬性要求,而不是一项可有可无。这就是生命周期数据管理的作用。MinIO提供了一套独特的功能来保护云内和跨云的数据 - 包括公共云和私有云。

MinIO的企业数据生命周期管理工具,包括版本控制、对象锁定和各种衍生组件,可以满足许多用例。

1.16 自动化数据管理界面

数据是企业最关键的资产,因此必须在整个组织中轻松安全地使用,以便最大限度地提高其对每个人的价值。因此,企业必须根据受众的需求采用一系列数据接口方法。MinIO提供了一套选项来涵盖数据驱动型企业中的每个角色,例如图形用户界面(GUI),命令行界面(CLI)和应用程序编程接口(API)。MinIO 的数据管理接口可互换运行,以提供精细、高性能和可扩展的对象存储管理。

1.17 监测

在跟踪任何系统的运行状况和性能时,指标和日志记录至关重要。MinIO 通过详细的存储性能监控、指标和每个操作的日志记录,提供对集群的完整可见性。结果是为对象存储监控、警报和可观察性提供了强大、透明且高性能的答案。

1.18 AWS S3标准兼容

S3 兼容性是云原生应用程序的硬性要求。MinIO 在遵守 API 方面毫不妥协,拥有数以万计的用户(包括商业用户和社区用户),MinIO 的 S3 实施是全球测试和实施最广泛的 AWS S3 替代方案。

作为 S3 API(V2 和 V4)的最早采用者之一,也是仅有的专注于 S3 的存储公司之一,MinIO 庞大的社区确保没有其他 AWS 替代方案更兼容。MinIO也是为数不多的支持S3 Select的公司之一。

1.19 性能基准

MinIO 开创了高性能对象存储,并且仍然是市场上最快的对象存储,在 NVMe 的 32 个节点上,GET/PUT 吞吐量分别为 325 和 165 GiB/秒。这些速度使任何工作负载都可以在MinIO上运行 - 从高级分析到AI / ML。

1.20 安装部署维护简单

极简主义是 MinIO 的指导设计原则。简单性减少了出错的机会,提高了正常运行时间,提供了可靠性,同时作为混合和多云安装性能的基础。MinIO 可以在几分钟内安装和配置。配置选项和变化的数量保持在最低限度,这导致系统管理任务接近于零,故障路径更少。MinIO升级是通过一个简单命令完成的,这个命令可以无中断的完成MinIO的升级工作,并且不需要停机即可完成升级操作,大大降低总使用和运维成本。

1.21 全世界增长最快的对象存储系统

MinIO生产部署涵盖了全球。作为全球使用最多和下载量最大的对象存储服务系统, 它的影响力在与日俱增 - 由非凡的贡献者和传播者社区提供支持。

1.22 开发文档全面

MinIO作为一款基于Golang 编程语言开发的一款高性能的分布式式存储方案的开源项目,有十分完善的官方文档。。

官网文档地址:https://docs.min.io/cn/

1.23 支持多语言

目前MinIO支持市面主流的开发语言并且可以通过SDK快速集成快速集成使用。

1.24 管理界面的支持

MinIO服务安装后,可以直接通过浏览器登录系统,完成文件夹、文件的管理。非常方便使用。

二 架构设计

MinIO设计为云原生,可以作为轻量级容器运行,由外部编排服务(如Kubernetes)管理。整个服务器约为40MB静态二进制文件,即使在高负载下也可以高效利用CPU和内存资源。结果是您可以在共享硬件上共同托管大量租户。

MinIO在带有本地驱动器(JBOD / JBOF)的商品服务器上运行。集群中的所有服务器的功能均相同(完全对称的体系结构)。没有名称节点或元数据服务器。

MinIO将数据和元数据作为对象一起写入,从而无需使用元数据数据库。此外,MinIO以内联,严格一致的操作执行所有功能(擦除代码,位rotrot检查,加密)。结果是MinIO异常灵活。

每个MinIO群集都是分布式MinIO服务器的集合,每个节点一个进程。 MinIO作为单个进程在用户空间中运行,并使用轻量级的协同例程来实现高并发性。将驱动器分组到擦除集(默认情况下,每组16个驱动器),然后使用确定性哈希算法将对象放置在这些擦除集上。

MinIO专为大规模,多数据中心云存储服务而设计。每个租户都运行自己的MinIO群集,该群集与其他租户完全隔离,从而使他们能够保护他们免受升级,更新和安全事件的任何干扰。每个租户通过联合跨地理区域的集群来独立扩展。

三 硬件支持

高性能软件需要高性能硬件支持能够达到更优的性能

尽管MinIO与硬件无关,但是这些行业标准,广泛可用的盒子经过了测试,可以与MinIO的软件的出色功能相提并论。MinIO们不懈地努力以针对最新硬件优化MinIO的软件,因此可以大大胜过价格过高的过时设备。

四 基础概念

Object:存储到 Minio 的基本对象,如文件、字节流,视频、音频、日志、镜像等等

Bucket:用来存储 Object 的逻辑空间。每个 Bucket 之间的数据是相互隔离的。对于客户端而 言,就相当于一个存放文件的顶层文件夹。

Drive:即存储数据的磁盘,在 MinIO 启动时,以参数的方式传入。Minio 中所有的对象数据都会 存储在 Drive 里。

Set :即一组 Drive 的集合,分布式部署根据集群规模自动划分一个或多个 Set ,每个 Set 中的 Drive 分布在不同位置。一个对象存储在一个 Set 上。(For example: {1…64} is divided into 4 sets each of size 16.)

五 应用场景

互联网海量非结构化数据的存储需求

  • 电商网站:海量商品图片
  • 视频网站:海量视频文件
  • 网盘:海量文件
  • 社交网站:海量图片
  • 日志系统:审计日志
  • 镜像仓库:海量docker镜像

本文为joshua317原创文章,转载请注明:转载自joshua317博客 什么是MinIO - joshua317的博客

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

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

相关文章

容灾演练月报 | 福莱特集团核心系统完成“跨云”容灾切换演练

11月,美创科技携手福莱特集团、金华银行、稠州银行、慈溪市卫健委及医疗行业等总计19家用户完成容灾切换演练,其中完成2次灾难切换,有效验证了各用户单位容灾系统的可靠性及高可用性! 本月典型案例:福莱特集团 福莱特集…

CANoe.DiVa简单配置

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…

RK3588核心板显示资源分配实操竟如此简单!飞凌嵌入式

前言 眼睛作为人类最重要的感觉器官,通过“视觉”帮助我们接收了大部分的外界信息,“视觉效果的好坏”直接影响着我们日常生产和生活质量的高低,因此“显示能力”成为了评价产品优劣的一项重要指标。在影音、游戏、智慧办公、工业自动化和交通…

OpenAI ChatGPT微信接入教程

OpenAI ChatGPT微信接入教程 OpenAI ChatGPT 接入 个人WeChat(微信),让AI互动更方便! 准备工作 Ⅰ,OpenAI 账号,参考ChatGPT注册试用全攻略 Ⅱ,微信账号(需要绑定支付方式,需支持网页登录&am…

JVM篇之牛刀小试(三)年轻代参数优化探索

前言 在JVM 篇之 牛刀小试 (一)我们谈到了关于年轻代参数的问题,就是当我没有设置-Xmn的时候,gc时间居然比我设置了500m的时候,时间还短,然后当时我就停止了探索。 后来我在公司飞书文档写了一篇文章分享&…

Java的注解和注解解析器是什么,运行方法如何,架构师必会知识体系

文章目录什么是[元数据](https://so.csdn.net/so/search?q元数据&spm1001.2101.3001.7020)(metadata)什么是注解(Annotation)?元注解自定义注解注解处理器什么是元数据(metadata) ​ 元数据由metadata译来,所谓的元数据就是“关于数据的数据”,更通俗的说就是…

网络篇汇总

路由器:属于网关设备,通过路由器可以将各种局域网、城域网、广域网连接起来,一般工作于网络层。它会根据信号的情况自动选择和设定路由,以最佳路径,按照前后顺序发送信号。路由器可连接多个逻辑上分开的网络&#xff0…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java随骑共享系统m7i8o

要对当前自己的学校对于计算机毕业设计的要求以及严格程度有所了解,这个主要是借助上一届已经毕业的学长学姐了解一下,但是有一点要注意的是,对于每一届毕业生的毕业设计的处理,学校都有很大的调整,这一点尤其重要。其…

静态HTML个人博客主页 简单个人网页设计作业 DW个人网站模板下载 大学生简单个人网页作品代码 个人网页制作 学生个人网页设计作业

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

力扣(LeetCode)139. 单词拆分(C++)

字符串哈希&动态规划 一眼暴力,发现根本做不了,想着想着,发现 dpdpdp 很好想,来试试。 枚举字符串 sss 的所有位置作为起始点,如图状态转移。 规定 : f[0]f[0]f[0] 表示空字符的集合,可以用空串组成…

【数据结构与算法】模拟实现LinkedList类

文章目录LinkedList简介头插法创建链表尾插法创建链表任意位置插入,第一个数据节点为0号下标查找是否包含关键字key是否在链表当中删除第一次出现关键字为key的节点删除所有值为key的节点得到链表的长度打印链表清空链表完整代码:总结:LinkedList简介 Java LinkedLi…

SAP PS 第6节 项目产成品产出

SAP PS 第6节 项目产成品产出及差异处理1 模拟场景说明1.1 拖拽负库存1.2 发料原材料及报工1.3 执行副产品入库migo发预留1.4 CNS0交货1.5 后面开票产生收入按照项目结算即可项目上有一类比较另类的玩法,就是舍弃PP,依靠网络活动的负库存,实现…

Android Edittext密码类型显示字符串修改实现

Android Edittext密码类型显示字符串修改实现 文章目录Android Edittext密码类型显示字符串修改实现一、前言:二、效果三、实现1、系统级设置2、应用级设置3、单个EditText设置(1)自定义显示符合类(2)EditText使用自定…

认识一下 Kubernetes 多集群服务 API

由于各种原因,采用 Kubernetes 的企业内部存在着几个、几十甚至上百个集群。比如处于研发流程上的考虑,不同环境下都存在独立的集群;监管层面的考虑,就地存储的用户数据需要搭配应用集群;单个集群的容量限制&#xff0…

(四)Redis的持久化

一 什么是redis持久化 因为Redis数据是基于内存读写,为防止Redis服务器关闭或者宕机造成数据的丢失,我们通常需要对redis做持久化,即:把内存中的数据(命令)保存一份到磁盘中来做一份备份,当redis服务关闭或宕机后,在Redis服务器重启后将数据从磁盘加载到内存中,不至于造成数据…

一招教你轻松使用公网远程访问公司内网

企业远程访问需求 众多企业都会在总部搭建各类项目管理办公系统(如OA、ERP、CRM、财务系统等等),以提高员工的办公及管理效率。 不少出差在外或者居家办公的员工需要从外部网络访问内网来登录各类系统,以满足办公协作管理的需…

电容笔和触控笔有啥区别?双十二质量好的电容笔推荐

从导电材料、作用机理、用途等方面,电容笔与普通触控笔相比有很大的不同。电容笔的笔尖尺寸适中,笔尖材质一般比较耐用。随着科技的进步,人们的生活水准不断提高,无论是绘制图纸,或是会议纪要,都需要一款更…

(附源码)ssm教学成绩管理系统 毕业设计 282029

教学成绩管理系统的设计与实现 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Jav…

大学生圣诞网页设计制作成品 圣诞节静态HTML网页作业作品 简单DIV CSS布局网站

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

树的企业应用-哈夫曼编码树-有趣的数据压缩算法

树的企业应用-哈夫曼编码树-有趣的数据压缩算法 哈夫曼编码 描述 张三去李四家里,但 李四是一个女生,所以张三找李四去上海迪尼斯玩 … 亚历山大.张三去伊丽莎白.李四家里,但 伊丽莎白.李四是一个女生,所以亚历山大.张三找伊丽莎白.李四去美国迪尼斯玩 … 我们发现 一个关键…