为什么不应该在 SAN/NAS 设备上运行 MinIO(还有一个例外)

我们想分享一下我们在 SAN/NAS 设备上运行 MinIO 的想法。首先,您可以在 SAN/NAS 设备上运行 MinIO。虽然这是可能的,但这不是一个好主意,我们强烈建议客户不要采用这种方法。不要让友好的邻居 SAN/NAS 设备供应商在没有先阅读以下内容的情况下说服您。它解释了为什么这是一个坏主意以及其含义是什么。

MinIO 几乎可以在任何东西上运行。话虽如此,我们提出了一些建议,您可以在这里找到它们。如果您对任何其他框有任何疑问,请给我们留言,在 Slack 频道上提问或通过定价页面上的“咨询专家”聊天功能提问。

以下是您不应在 SAN/NAS 设备上运行 MinIO 的原因。

  1. 替代,而不是补充。对象存储是 SAN/NAS 的替代品,而不是补充。POSIX 无法在我们生活的云原生世界中扩展。正在衰落的是传统技术。由于 SAN/NAS 曾经占据的市场份额,他们非常希望将对象存储视为 API 层。事实并非如此。对象存储是云的主存储。云建立在对象存储之上,而不是 SAN/NAS。

  2. 重复的耐久性。MiniO 是一个功能齐全的对象存储,其纠删码实现针对全球规模进行了高度优化。每个对象都使用自己的基于高速公路哈希的 bitrot 哈希独立进行纠删编码。当您在 SAN/NAS 设备上运行 MinIO 时,您实际上是在重复这项工作 - 对性能的影响是可预测的。由于您正在执行两次操作,因此速度较慢,此外,SAN/NAS 设备未运行优化的纠删码,因此性能差异更加明显。

  3. 性能瓶颈。已在重复的持久性部分中引用 - 在 SAN/NAS 设备上运行 MinIO 时,性能会下降。作为一般规则,MinIO 将在几乎任何平台上最大化硬件 - 最大化使用 NVMe 的网络和带有 HDD 的驱动器(尽管较小的网络也将是 HDD 的瓶颈)。MinIO 已经并将继续投入大量资源来优化 AVX-512、NEON 和 VSX 扩展的 SIMD 优化。没有其他供应商进行过这项投资,这在基准测试中有所体现。

  4. 尽管 SAN/NAS 架构被设计为联网,但对于分布式架构来说太过繁琐。因此,高 IOPS 声明仅限于纵向扩展架构,随之而来的是挑战。一个系统中只有这么多的驱动器和 CPU。

  5. 此外,现代数据库和 AI/ML 应用程序是吞吐量密集型的,而不是 IOPS 密集型的,因为它们将数据提取到本地内存中,在那里它们可以高速执行突变和转换。吞吐量比 IOPS 更容易、更经济地扩展,因此发生了转变。

如下图所示,驱动器还有一层额外的存储网络。这会导致性能损失、复杂性增加和成本增加。

  1. 并发。SAN/NAS 设备无法允许大量应用程序通过网络大规模读取、修改文件并将其写回存储。相比之下,MinIO 将问题分解并在分布式架构中并行执行任务,以提供更高的吞吐量。

每个现代数据库和数据处理工作负载都是为分布式数据处理而设计的。Hadoop开启了大规模并行分布式数据处理的趋势。原因是纵向扩展存储架构很快就遇到了瓶颈。

与 SAN/NAS 设备相比,具有运行软件定义存储的 100GbE NIC 的直连存储相当便宜。在直连存储模型中,数十到数百个节点处理 PB 级数据的情况并不少见。

为了说明这一点,使用 32 个具有 100GbE NIC 和 16 个 NVMe SSD 的节点,您可以实现 3,200 Gbps 网络带宽和 1,536 GBps(16 个 SSD x 3GBps x 32 个节点驱动器带宽)。这在 SAN/NAS 方法中在经济上不可行,因此我们建议独立运行 MinIO。

  1. 专用存储。如果您要与 MinIO 以外的其他应用程序共享底层 SAN/NAS 基础架构,您可能希望使用 QoS 设置为 MinIO 保留吞吐量 - 尽管存在一些限制,即使这也不是一个好的解决方案。MinIO 受 I/O 限制,底层存储介质的任何波动都会体现在应用程序的性能中。

  2. 快照已过时且受限。由于 MinIO 的对象级版本控制和不可变性提供了持续的数据保护,因此它有效地使 SAN/NAS 快照过时。你所需要的只是一个没有花里胡哨的愚蠢的街区商店。

SAN/NAS 快照较差的原因是,它不支持多卷一致性快照,它不能保护快照窗口之间的任何数据丢失,并且不能扩展到大型 PB 卷。

将 MinIO 与这些劣质数据保护方案一起运行并不是在增加冗余,而是在降低平台的有效性,并通过不必要地占用过时的快照方法的驱动器空间来增加成本。

MinIO 涵盖了弹性组件,使用该功能并让快照消失。

在记下了不在 SAN/NAS 上运行 MinIO 的所有原因之后,还有一些值得讨论的其他细节可能会被证明是一般建议的例外。以下每个方案都着眼于在三种不同配置中运行的 MinIO:单服务器/单驱动器、单服务器/多驱动器和多服务器/多驱动器。

让我们从理想的场景开始 - 我们建议将其作为参考点:


在这里,MinIO 作为商用硬件上的直连存储运行,以大规模提供性能、经济性和简单性。

接下来,我们看一下在 SAN 上运行 MinIO:


许多 Web 和移动应用程序处理少量数据,通常从数百 GB 到几 TB 不等。作为一般规则,它们对性能的要求并不高。在这种情况下,如果您已经对 SAN 基础架构进行了投资,则可以在连接到 SAN LUN 的单个容器或 VM 上运行 MinIO。发生故障时,虚拟机和容器会自动移动到下一个可用的服务器,并且数据卷可以由 SAN 基础架构保护,前提是您已将其架构为此类架构。

但是,随着应用程序从单个 LUN 扩展到多个 LUN 或多个虚拟机/容器,挑战也随之而来。上述所有限制均适用于此处。每个 LUN 的扩展能力不能超过 16TB。以独立或分布式模式跨多个 LUN 提供 MinIO 可以工作,但效率不高。只要您意识到性能和复杂性方面的局限性,那么这是一种可行的方法,即使不是最佳方法。

最后,我们看一下在 NAS 上运行 MinIO:


与作为块存储的 SAN 和 DAS 不同,NAS 是一种网络文件系统。在功能上,它比 SAN 更接近对象存储。由于重叠,在充当底层存储介质时,它会严重削弱对象存储。位于 NAS 之上的对象存储根本无法克服传统的 POSIX 限制。因此,除了在单服务器/单驱动器(NAS 导出)方案中之外,您根本无法在 NAS 上运行 MinIO。

即使在这种情况下,您也应将其限制为简单的文件服务工作负载,而不是使用并发读取-修改-写入-覆盖类型的工作负载对对象存储造成负担。NAS 一致性和并发性保证较弱。一些供应商伪造文件锁定原语,这可能导致数据丢失。在将此设置投入生产之前,请确保针对各种 I/O 彻底测试您的设置。

结论

MinIO 是出了名的极简主义,非常注重简单性和自动化。与人们听到极简主义这个词时想到的相反,它意味着恰到好处的数量。添加一些东西,它变得杂乱或臃肿,拿走一些东西,它变得缺乏。

在 SAN/NAS 上运行 MinIO 相当于添加一些不需要的东西。是的,你可以做到,但你最终会在多个层面上受到损害,多个系统执行冗余操作。

数据驱动型公司的表现优于非数据驱动型公司,当数据访问速度缓慢且效率低下时,您根本无法成为数据驱动型公司。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件有效找不到dll文件,五种可靠的解决dll方法分享

电脑已经成为我们生活和工作中不可或缺的工具。然而,由于各种原因,电脑可能会出现一些问题,其中之一就是“电脑提示dll文件缺失”。这个问题可能会给我们的生活和工作带来很大的困扰,因此,我希望通过分享我的心得体会&…

学习路径概览

根据codewave 低代码官方的资料,我们以一个简单的初级采购管理系统为例,带大家进行学习。学习的案例框架如下: https://ik4mh7u2np.feishu.cn/docx/NjyEd9qD5oElkoxJhapc3fV4nPe?fromfrom_copylink​​​​​​​ 主要分为以下四个学习模块

ros2 run传递参数的格式

ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r /cmd_vel:/model/vehicle_blue/cmd_vel #这个只能用于重命名节点名称可以用以下语法直接从命令行中设置参数: ros2 run package_name executable_name --ros-args -p param_name:param_value …

centos7.9 TCP 加速

BBR是谷歌开发的新的TCP加速算法,在网络状况不好的服务器上开启TCP的bbr,可以在无需增加任何硬件投入的情况下实现网络加速,并且客户端无需做任何配置,因此使用起来非常的方便。TCP加速对网络状况较好的内网环境,或者大…

【阅读笔记】Semi-supervised Domain Adaptation in Graph Transfer Learning

Background 真实世界的图上节点的标签数据是很难拿到的。 因此图转移学习被提出将知识从标记的源图转移出来,以帮助预测域变化的目标图中节点的标签。 尽管图迁移学习算法取得了重大进展,但它们通常假定源图中的所有节点都被标记出来了。 因此文章定义…

商品销售数据爬取分析可视化系统 爬虫+机器学习 淘宝销售数据 预测算法模型 大屏 大数据毕业设计(附源码)✅

毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏) 毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总 🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题&#xff…

三角函数两角和差公式推导

一.几何推理 1.两角和公式 做一斜边为1的直角△ABC,任意旋转非 k Π , k N kΠ,kN kΠ,kN,补充如图,令 ∠ A B C ∠ α , ∠ C B F ∠ β ∠ABC∠α,∠CBF∠β ∠ABC∠α,∠CBF∠β ∴ ∠ D B F ∠ D B A ∠ α ∠ β 90 , ∠ D A …

OpenEular23.09(欧拉)操作系统为企业搭建独立的K8S集群环境,详细流程+截图

一.环境; win10,vmware16 pro,openeular23.09 集群模式:一主二从 主机硬件配置 主机名IP角色CPU内存硬盘k8s-master01192.168.91.100master4C4G40Gk8s-worker02192.168.91.101worker(node)4C4G40Gk8s-worker03192.168.91.102wor…

toto的2023年终总结

第一次写年终总结,其实顺带是把大学四年的学习都给总结了一下,称之为大学总结更为合适吧? 其实把年终总结发在CSDN上有些不适,之前一直想着搭一个自己的博客也因为种种事情一直没有完成, 索性发在这里了,作…

什么是边缘案例测试?如何查找并确定优先级

何为边缘情况? 在极端条件下发生的情况被称为边缘情况,有时候也叫边界情况,在功能、回归、单元和性能测试中都会应用。如果质量保证团队知道某项功能的最大和最小负载,他们就能防止这些情况发生。当用户不按照程序的预期工作流程…

Windows不同的域名由不同的DNS服务器解析

gpedit.msc(组策略)-计算机配置-Windows设置-域名解析策略 本次改动在注册表中体现的位置。 计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Dnscache\Parameters\DnsPolicyConfig\{666881c9-5525-434b-a62a-2ed5c61d53e5} 计算机\HKEY_LOCAL_MACHINE\SYSTEM\Cur…

⑩①【缓存】Redis持久化 RDB + AOF

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ ⑩①Redis持久化 RDB AOF Redis数据快照 - RD…

XXE注入漏洞总结

XXE和XML概念 XML被设计为传输和存储数据,XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素,其焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具。XXE漏洞全称XML Externa…

C++每日一练(8):图像相似度

题目描述 给出两幅相同大小的黑白图像(用0-1矩阵)表示,求它们的相似度。 说明:若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。…

软件测试/测试开发丨Linux 数据处理三剑客学习笔记

一、Linux 三剑客之 grep 1、 内容检索 获取行(单行) grep pattern file获取内容 grep -o pattern file获取上下文 grep -A -B -C pattern file 2、 文件检索 递归搜索 grep pattern -r dir/展示匹配文件名 grep -H 111 /tmp/1只展示匹配文件名 grep …

算法学习系列(十四):并查集

目录 引言一、并查集概念二、并查集模板三、例题1.合并集合2.连通块中点的数量 引言 这个并查集以代码短小并且精悍的特点,在算法竞赛和面试中特别容易出,对于面试而言,肯定不会让你去写一两百行的代码,一般出的都是那种比较短的…

FPGA - 231227 - 5CSEMA5F31C6 - 电子万年历

TAG - F P G A 、 5 C S E M A 5 F 31 C 6 、电子万年历、 V e r i l o g FPGA、5CSEMA5F31C6、电子万年历、Verilog FPGA、5CSEMA5F31C6、电子万年历、Verilog 顶层模块 module TOP(input CLK,RST,inA,inB,inC,switch_alarm,output led,beep_led,output [41:0] dp );// 按键…

00-Git 详解

Git 应用 一、Git概述 1.1 什么是Git git 是一个代码协同管理工具,也称之为代码版本控制工具,代码版本控制或管理的工具用的最多的: svn、 git。 SVN 是采用的 同步机制,即本地的代码版本和服务器的版本保持一致(提…

社区医院挂号预约服务管理系统95an6

社区医院管理服务系统具有社区医院信息管理功能的选择。社区医院管理服务系统采用p[ython技术,基于django框架,mysql数据库进行开发,实现了首页、个人中心、用户管理、医生管理、预约医生管理、就诊信息管理、诊疗方案管理、病历信息管理、健…