MinIO 企业级人工智能存储的数据和驱动器同等重要

news2024/11/16 17:54:56

为什么会这样?这是因为硬件故障发生在不同的级别。有一些中断会导致整个站点瘫痪。然后,会出现中断,导致集群中的一部分节点瘫痪。但是,在更精细的硬盘驱动器位级别也存在故障,这些故障需要复制本身无法提供的另一种类型的弹性。 我们经常谈论,如果您想在 AI/ML 游戏中占据上风,那么良好、快速和可靠的数据访问是多么重要。虽然不同的复制策略允许您访问要分布在多个节点或站点上的数据,但您还需要考虑驱动器级别的数据完整性和复原能力。这就是擦除编码发挥作用的地方。这是一种可靠的方法,可以在多个驱动器之间对数据进行分片并将其取回,即使其中一些驱动器不可用也是如此。

MinIO Enterprise Object Storage 利用 Reed Solomon 纠删码来确保多个磁盘部署中的数据冗余。直到最近,在 MinIO 的纠删编码中,用于数据和奇偶校验的驱动器数量都固定为 N/2(N 是 MinIO 服务器正在使用的驱动器总数)。这是纠删码必须提供的最高冗余。

您可能会丢失一半的驱动器,但仍然可以保证不会发生数据丢失。

这仍然是我们推荐的配置。

但是,高冗余也意味着更高的存储使用率。在某些情况下,如此高的奇偶校验计数和存储使用量可能是不可取的,例如:

  • 用户可能已部署具有故障安全性的专用存储硬件。因此,他们预计不会频繁失败。

  • 与存储本身相比,存储的数据不太重要,价值也较小。

  • MinIO 存储中的数据正在备份到其他站点。

为了解决此类用例,我们在 MinIO 企业对象存储中支持 Kubernetes 存储类。存储类提供两种模式:标准模式和低冗余模式,每种模式都具有可配置的数据和奇偶校验驱动器。在我们了解这些类的含义以及如何使用它们之前,让我解释一下数据和奇偶校验磁盘的各种组合以及相应的驱动器空间使用情况。

驱动器空间利用率

为了了解数据和奇偶校验驱动器的各种组合如何影响存储使用,让我们以存储在 16 个驱动器 MinIO 部署上的 100 MiB 文件为例。

如果您使用 8 个数据驱动器和 8 个奇偶校验驱动器,则文件空间使用量将恰好是两倍,即 100 MiB 文件将占用 200 MiB 空间。但是,如果您使用 10 个数据和 6 个奇偶校验驱动器,则相同的 100 MiB 文件将需要大约 160 MiB。如果您使用 14 个数据驱动器和 2 个奇偶校验驱动器,则 100 MiB 文件仅消耗大约 114 MiB。

但是,需要注意的是,随着奇偶校验驱动器数量的减少,数据的冗余程度会降低。例如,使用 14 个数据驱动器和 2 个奇偶校验驱动器,一个对象只能承受 2 个驱动器损失,如果丢失了第 3 个驱动器,则将丢失数据。因此,除非用于非关键数据,否则 MinIO 不建议使用此配置。

下表总结了数据/奇偶校验驱动器和相应的存储空间。字段的存储使用率只是文件在擦除编码后使用的驱动器空间除以实际文件大小。

您可以使用公式计算近似的存储使用率 — 驱动器总数 (N) / 数据驱动器 (D)。

下图显示了每个部署具有 4 个节点、4 个驱动器的数据和奇偶校验分片的样本分布,其中启用了两种类型的存储类。

16 驱动器分布式部署,具有两种存储类别

MinIO 存储类入门

目前支持两种存储类:标准和低冗余。您可以使用以下方法设置这些类

  • 环境变量 — 设置环境变量MINIO_STORAGE_CLASS_STANDARD,并使用格式为“EC:Parity”的值进行MINIO_STORAGE_CLASS_RRS。例如 MINIO_STORAGE_CLASS_STANDARD=“EC:5”

  • MinIO 配置文件 — 设置字段 storageclass 如下“storageclass”: { “standard”: “EC:5”, “rrs”: “EC:3”}

然后以纠删码模式启动 MinIO 服务器。存储类别:具有标准类别的对象可以承受 [5] 个驱动器故障。具有REDUCED_REDUNDANCY类的对象可以承受 [3] 个驱动器故障。

有关详细信息,请参阅此处的存储类文档:https://github.com/minio/minio/tree/master/docs/erasure/storage-class

标准存储类

标准存储类是部署的默认存储类。设置后,默认情况下,所有 PutObject 请求都将遵循在标准存储类下设置的数据/奇偶校验配置。

例如,在 10 个驱动器的 MinIO 部署中,标准存储类设置为 6 个数据和 4 个奇偶校验驱动器,发送到此 MinIO 部署的所有 PutObject 请求都将以 6 个数据和 4 个奇偶校验配置存储对象。

以下是标准存储类的其他一些有趣的方面

  • 默认情况下,标准存储类数据和奇偶校验驱动器设置为 N/2(并且不能设置为高于此值)。

  • 您可以选择将对象元数据设置为 X-Amz-Storage-Class:STANDARD,以便为相应的对象启用 STANDARD 存储类。

  • 如果将类设置为 STANDARD,则 MinIO 服务器不会在元数据字段中返回存储类。这符合 AWS S3 PutObject 行为。

减少冗余的存储类

减少冗余的存储类可以应用于性质不太重要的对象,需要较少的复制。要应用此类,请在 PutObject(或多部分)请求中将对象元数据设置为 X-Amz-Storage-Class:REDUCED_REDUNDANCY。这表明 MinIO 服务器存储相应的对象,其中包含由减少的冗余类定义的数据和奇偶校验。

以下是减少冗余存储类的一些有趣的方面

  • 默认情况下,减少冗余的存储类奇偶校验驱动器设置为 2(并且不能设置为低于此值)。

  • 您需要在对象元数据中设置 X-Amz-Storage-Class:REDUCED_REDUNDANCY,以便服务器端减少冗余。

  • 如果将该类设置为减少冗余,则 MinIO 服务器将在元数据字段中返回一个存储类。

借助存储类支持,MinIO 服务器现在提供对磁盘使用和冗余的细粒度控制。现在,您可以做出最适合您的用例的权衡,即您可以通过在 MinIO 部署中正确设置存储类使用值来优化以获得更好的冗余或更好的存储使用率。

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

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

相关文章

AI问答对比-谁是世界上最可爱的人?

无聊的时候突然想起皇后问魔镜问题的情节,于是突发奇想,找了几个AI问答助手试试”谁是世界上最可爱的人?”,看看AI们会怎么回答。 问之前还满怀期待的猜测:它们有可能回答自己的所属公司的老板吗,或是直白…

基于Matlab GUI的信号发生器界面程序示例

前些日子,被一朋友拜托了一课设,不是很难,但基于matlab GUI的设计中文论坛资源较少,所以我做完顺便分享一下。 程序主要内容: 效果展示: 主要代码: 代码展示,复制粘贴不能直接执行…

顶顶通呼叫中心中间件-一句话语音识别安装步骤

顶顶通呼叫中心中间件-一句话语音识别安装步骤,对接mod_vad。一句话识别(http接口提交录音文件识别) 一、安装asrproxy 1、将下载软件压缩包上传到需要安装的服务器中 2、SSH终端依次执行以下命令: mkdir -p /ddt/asrproxysud…

抖音商城随身wifi销量排行榜!排名第一的格行随身wifi怎么样?

对于经常出差办公,或者酷爱旅行的人来说随身wifi简直是必备神器,但是随身wifi行业乱象频发,不小心就会踩坑。这不,刚去青岛旅游回来的同事正在吐槽,旅游前特意买个随身wifi,咨询时商家一顿夸,结…

王丹妮演绎“美女与蛇” 红黑对撞下的超现实美学

今日,香港演员王丹妮(Louise Wong)释出一组时尚大片。 这组大片以浓郁饱满的红色和深邃奢华的黑色为主调,搭配超现实风装置,尽显神秘诗意之美。黑色背景与红色装置象征锐意与优雅的交锋;神秘面罩下&#xf…

当移动端H5中的display:flex不生效时,给我整破防了

情况&#xff1a; 在项目开发中遇到一个“更多”按钮放置于卡片的右下角时&#xff0c;在安卓9版本的浏览器打开项目&#xff0c;结果测试出来“更多”按钮样式错乱&#xff0c;做了这么久的开发&#xff0c;在移动端给我整破防了。。。 <style> display:flex; justify…

MyBatis-Plus 三、(进阶使用)

一、typeHandler 的使用 1、存储json格式字段 如果字段需要存储为json格式&#xff0c;可以使用JacksonTypeHandler处理器。使用方式非常简单&#xff0c;如下所示&#xff1a; 只需要加上两个注解即可&#xff1a; TableName(autoResultMap true) 表示自动…

使用Instrumentation创建代理程序监测Java对象信息

文章目录 创建代理使用代理监测测试代码运行配置运行效果 总结 Instrumentation 是Java提供的一种能够在程序运行时检查和修改类定义的技术。使用Instrumentation&#xff0c;可以构建一个独立于应用程序的代理程序&#xff0c;检测和协助运行在JVM上的程序&#xff0c;甚至可以…

Netty03-进阶

三. Netty 进阶 1. 粘包与半包 1.1 粘包现象 服务端代码 public class HelloWorldServer {static final Logger log LoggerFactory.getLogger(HelloWorldServer.class);void start() {NioEventLoopGroup boss new NioEventLoopGroup(1);NioEventLoopGroup worker new Ni…

高性能4G灯杆网关,未来智慧城市的神经中枢

在智慧城市的建设浪潮中&#xff0c;灯杆作为城市基础设施的重要组成部分&#xff0c;正在经历一场革命性的转变。SG600 4G灯杆网关就是这场革命的核心产品&#xff0c;它将普通的路灯转变为集照明、监控、通信、环境监测等多功能于一体的智慧终端。 产品优势&#xff1a; 高度…

[图解]分析工作流开始01

1 00:00:02,650 --> 00:00:04,200 需求工作流结束之后 2 00:00:04,610 --> 00:00:06,880 我们就要进入分析工作流了 3 00:00:07,890 --> 00:00:09,020 在分析工作流里面 4 00:00:09,030 --> 00:00:13,060 我们使用类图、序列图 5 00:00:13,710 --> 00:00:16…

深度学习入门-03

PS&#xff1a;基于小土堆视频学习https://www.bilibili.com/video/BV1hE411t7RN?p6&vd_source22926f91481026cd10af799bb45e448b 1、Dateset Dateset就是我们的目标数据&#xff0c;告诉我们如何获取数据&#xff0c;距离&#xff1a;从多种类型的数据中&#xff0c;提取…

Go语言反射入门:理解类型与值的动态操作

简介 Go 语言的反射机制是一种在运行时检查程序本身的能力&#xff0c;它允许程序在运行时动态地操作对象的类型和值。 基本概念 1.反射与类型 在静态类型语言中&#xff0c;变量的类型在编译时确定。反射允许在运行时查询和修改变量的类型信息。 2.接口与反射 Go 中的接口…

云等保安全合规解决方案

在当今数字化时代&#xff0c;云计算已成为企业数字化转型的基石&#xff0c;它不仅极大地提升了数据处理能力、降低了运营成本&#xff0c;还促进了业务模式的创新与发展。然而&#xff0c;随着云服务的广泛应用&#xff0c;云环境的安全性问题也日益凸显&#xff0c;成为制约…

Tita的OKR:研发人员的OKR

当您要建立一个以产品为中心的团队&#xff0c;并希望你的团队有一个产品的心态和时刻围绕你的客户&#xff0c;此工程研发 OKR 示例就是实现此目标的伟大方法。您将在以下文章中找到相关的技术研发 OKR 示例。 技术研发团队是任何组织中的重要组成部分&#xff0c;正确的OKR可…

U盘车载专用音乐合集 3068首 24G

包含3068首适合车载播放的音乐。 拿走的麻烦评论一下&#xff0c;感谢&#xff01;&#xff01;&#xff01; 拿走的麻烦评论一下&#xff0c;感谢&#xff01;&#xff01;&#xff01; 拿走的麻烦评论一下&#xff0c;感谢&#xff01;&#xff01;&#xff01; 链接&#…

主流短视频评论采集python爬虫(含一二级评论内容)

声明 仅用于学习交流&#xff0c;不用于其他用途 正文 随着主流短视频评论采集更新需要登录&#xff0c;由于不懈的努力&#xff0c;攻破这一难点&#xff0c;不需要登录采集作品所有评论信息 话不多说上代码看效果&#xff1a; 输入作品id: 这样就拿到评论信息了&#xff…

c++中调用函数时出现“warning C4715: “controlMode”: 不是所有的控件路径都返回值”警告的问题

调用函数时出现“warning C4715: “controlMode”: 不是所有的控件路径都返回值”警告的问题 问题描述解决方案 问题描述 如图所示&#xff0c;我的函数定义如下 在编译的时候&#xff0c;会出现如下警告 warning C4715: “controlMode”: 不是所有的控件路径都返回值 解决方案…

易通博客项目测试报告

目录 1. 项目背景1.1 测试目标 2. 项目功能3.测试分类3.1 功能测试3.2 自动化测试3.2.1自动化测试遇到的问题以及解决&#xff1a;3.2.2 自动化测试结果 3.3 性能测试 4. 基于场景性能测试下遇到的一些问题4.1 解决博客id不存在的问题&#xff1f;4.2 添加博客请求响应失败&…

[Other]-安装ruby、ascli、ascp

最近新接到这样一个需求&#xff0c;将生物原始数据上传到某中心&#xff0c;其中用到ascp命令&#xff0c;阴差阳错的装了ruby、ascli&#xff0c;这里就都一并介绍下安装方式&#xff0c;由于服务器老旧默认安装时ruby2.0&#xff0c;又 升级到2.7等引发的一系列问题&#xf…