云计算与大数据进阶 | 27、存储系统如何突破容量天花板?可扩展架构的核心技术与实践—— 分布式、弹性扩展、高可用的底层逻辑(上)

news2025/7/14 23:05:04

数据中心里,存储系统是至关重要的组成部分。由于相关硬件组件与存储操作系统的多样性和复杂性,如何在保证存储稳定、安全、可靠的同时,实现灵活扩展和自服务,一直是困扰数据中心全面云化的难题。

简单来说,现在的难题就在于:硬件和软件的复杂性导致存储系统像一堆零散的积木,拼起来费劲,改起来更麻烦,而云化又需要它像变形金刚一样,既能随时调整结构,又能稳稳当当不出错。那么,如何把这些零散的积木变成一个灵活又可靠的整体,就成了数据中心全面云化必须要跨过的一道坎。

如图1所示,常见的存储系统通常可分为三大:

  1. 直连存储(DAS)系统
  2. 网络附接存储(NAS)系统
  3. 存储区域网(SAN)系统
图1:存储系统的三大类

 

这3类存储系统实现扩展的方式各不相同,老夫在后文中分别讨论如何对它们实现可扩展性。

一、DAS系统的扩展性

想象一下,你有个超大的仓库(数据中心),里面堆满了数据。随着货物越来越多,怎么在不换仓库的前提下,高效管理这些东西?这就是 DAS(直接附加存储)系统扩展性要解决的问题 —— 不靠扩建仓库(增加昂贵硬件),而是用软件来指挥货物摆放(数据存储)。

1、DAS 的优势:软件搞定一切​

传统仓库管理可能依赖坚固的货架(硬件冗余),但 DAS 仓库玩的是 “软件流”。比如 Hadoop 的 HDFS,它就类似像个仓库管理员:​

  • 不用高端货架(不需要 RAID 硬件),普通货架(普通硬盘)就能用。​
  • 当某个货架坏了(硬盘故障),或者新来了货架(新增节点),它自动把货物挪到其他安全地方,保证所有货物都能快速找到。​
图1 Hadoop原生系统架构(DAS架构)

见上图所示,在软件逻辑层面,HDFS负责在出现硬盘故障(或增加新节点)时对数据进行自动重新平衡。类似的数字计算中心(Digital Computing Appliance,DCA)或超融合架构解决方案中也主要是通过软件系统来实现基于DAS的可扩展存储系统,比较典型的两个例子是VMware公司的Virtual SAN与EMC公司的ScaleIO。

2、三个 “仓库管理员” 大 PK​

1. Hadoop HDFS:大数据界的 “搬运工”​

Hadoop 是大数据处理的老大哥,它的仓库能塞进几千个货架(节点),而且越塞越顺手。适合处理海量日志、分析用户行为这种 “粗犷型” 任务,对货架偶尔坏几个根本不在乎,反正有软件自动补位。​

2. VMware Virtual SAN:VMware 家的 “管家”​

Virtual SAN 就像 VMware 家的 “专属管家”,只认 VMware 的仓库(vSphere 虚拟化平台)。它管理的货架最多 64 个,早期只有 32 个。好处是和自家系统配合得天衣无缝,适合中小型企业搭建自家的数据 “小仓库”。​

图2:Virtual SAN的逻辑架构

3. EMC ScaleIO:存储界的 “钥匙”​

ScaleIO 是个 “万能选手”,能适配各种仓库(Linux 系统或虚拟化平台),货架数量轻松上千,而且加得越多,干活越快(吞吐量线性增长)。无论是大型企业的核心数据库,还是云计算中心,它都能轻松驾驭。​

具体选谁好?看需求!​见下表:

需求场景​

推荐 “管理员”​

理由​

处理海量文件​

Hadoop HDFS​

抗造又能装​

自家 VMware 系统​

Virtual SAN​

省心不折腾​

超大型存储集群​

ScaleIO​

能者多劳,灵活适配​

​二、NAS系统的扩展性

 前面说完了 DAS,再来看看 NAS 系统,它就像是另一种风格的仓库。

NAS 系统是基于 IP 的高性能文件共享存储系统,好比是一个专门用来共享货物清单的仓库。

专用的 NAS 存储设备,由两部分组成:NAS 控制器(就像仓库的管家,也叫 “机头”)和底层的存储阵列(存放货物的货架)。

“管家” 负责和外面的客户(客户端)沟通联系,还能把客户要文件的请求,翻译成仓库里找货物的具体指令。而存储阵列就更灵活了,它可以不依赖 “管家” 单独工作,还能和其他仓库(主机)一起分享货物(服务其他存储接口类型)。

有些 NAS 系统还会把计算和存储分开,就像把仓库的 “货物搬运工”(计算能力)和 “货物存放区”(存储能力)分开管理。这样一来,“搬运工” 和 “存放区” 就能根据需要各自扩展,互不影响。而且通过加强 “仓库总管”(NameNode),还能避免出现单点故障,保证仓库一直正常运转。

图3: NAS存储设备的构成

NAS系统扩展最典型的例子是EMC公司的Isilon产品,除了为业界所熟知的OneFS文件系统(在一个逻辑文件系统内可以管理超过50PB的巨大容量以及支持高达375万的IOPS)​,它对Hadoop系统的优化也值得业界借鉴。Isilon对Hadoop系统的优化主要集中在两方面,如下图所示,具体如下:

图4:Isilon对Hadoop架构的优化

Isilon 在存储上就很聪明,别人存数据可能要准备 3 份备份(3 倍镜像),它只需要 1.3 份备份(1.3 倍镜像),就能达到差不多的安全效果,这样一来,成本更低,性价比更高(ROI 更高)。

Isilon 是怎么做到能不断扩展的呢?这里要引入一个概念:横向扩展的NAS。

横向扩展NAS集群分别使用独立的内部网络和外部网络进行前端和后端连接,其中内部网络提供用于群集内通信的连接,外部网络的连接使客户端能够访问和共享文件数据。群集中的每个节点均连接到内部网络。内部网络可提供高吞吐量和低时延,且使用高速网络技术,例如InfiniBand或千兆乃至万兆以太网。若要使客户端能够访问某节点,则该节点必须连接到外部以太网网络,可以使用冗余的内部或外部网络以获得高可用性。InfiniBand可提供主机与外围设备之间低时延、高带宽的通信链路;可提供串行连接,且常用于高性能计算环境中服务器间的通信。InfiniBand支持远程直接存储器访问(Remote Direct Memory Access,RDMA),使设备(主机或外围设备)能够直接从远程设备的内存中访问数据。InfiniBand还支持单一物理链路使用多路复用技术同时传输多个通道的数据。

简单来说,它就像给仓库建了两条 “传送带”:一条内部传送带(内部网络),专门供仓库内部工作人员(节点)传递消息、搬运货物,速度快、不堵车;另一条外部传送带(外部网络),负责和外面的客户对接,让客户能随时拿到想要的货物(访问和共享文件数据)。而且,为了保证的传送带速度够快,它会用一些高速网络技术,比如 InfiniBand,这就好比给传送带装上了一个发动机,有了它,仓库里的设备之间传递数据又快又稳,还能同时处理好多任务。所以说,NAS 系统能不能灵活扩展、稳定运行,很大程度上就看这些传送带(网络设备)给不给力了。

由以上描述可知,NAS系统的可扩展性以及高可用性在很大程度上是依赖于网络设备的,特别是高带宽路由器解决方案,以确保分布式的存储系统中的各节点间的高数据吞吐量。以Hadoop over Isilon为例,OneFS的并发数据吞吐量可高达100GB/s。图5展示了NAS系统的横向扩展。

图5: NAS系统的横向扩展

今天我们深入了解了 DAS 与 NAS 系统的扩展性奥秘,而存储的世界远比这更精彩。明天,老夫将继续探索SAN系统统一存储系统的扩展性,看看它们如何为数据存储带来更多可能!!88~

 (文/Ricky - HPC高性能计算与存储专家、大数据专家、数据库专家及学者) 

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

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

相关文章

IvorySQL-WASM:免安装的数据库探索之旅

简介 为了降低社区用户的使用门槛,提升使用体验,IvorySQL 社区特别推出了 IvorySQL-WASM 项目,帮助用户快速在线 Demo。 IvorySQL-WASM 基于开源的 Postgres-WASM 框架开发。它允许用户直接在网页浏览器中体验 IvorySQL,无需本地…

飞牛fnNAS远程映射盘符

目录 一、NAS、PC端配置Zerotier 二、使用网上邻居 三、使用WebDAV 1.开启WebDAV 2.PC上安装RaiDrive并设置 如果能将NAS作为本机一个盘符来使用,一定会令我非常方便。如果是本地,可以很方便实现。 将飞牛NAS映射为本地盘符,常用两种方式,一种是网上邻居,另一种是We…

Java设计模式:探索编程背后的哲学

设计模式是软件开发中的一种常见方法,它为常见问题提供了解决方案。在Java世界中,设计模式的应用尤为广泛。本文将深入探讨Java设计模式的起源、分类和实际应用,帮助读者更好地理解和应用这些模式。设计模式不仅是编程的技术,更是…

Docker部署OpenSearch集群

OpenSearch 简介 OpenSearch 是一款开源的搜索与分析引擎,最初由亚马逊 AWS 开发,于 2021 年 9 月将其移交至 Linux 基金会旗下的 OpenSearch 软件基金会,此后实现了社区主导的治理模式。其具有高性能、可扩展性强、兼容性强等优点&#xff…

【AS32X601驱动系列教程】PLIC_中断应用详解

平台中断控制器(Platform Level Interrupt Controller,PLIC)是国科安芯AS32系列MCU芯片的中断控制器,主要对中断源进行采样,优先级仲裁和分发。各外设中断统一连到PLIC,PLIC统一管理并输出中断请求到内核。…

python学习打卡day34

DAY 34 GPU训练及类的call方法 知识点回归: CPU性能的查看:看架构代际、核心数、线程数GPU性能的查看:看显存、看级别、看架构代际GPU训练的方法:数据和模型移动到GPU device上类的call方法:为什么定义前向传播时可以直…

leetcode-快慢指针系列

开胃小菜 141. 环形链表 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链…

JAVA05基本数据类型和包装类的转换,转换成其他数据类型,包装类与字符串的转换+学生类的定义实例

1.基本数据类型和包装类的转换 下面是一个自动手动的例题 2.将包装类转换成其他类型 3. 将数据类型转换成字符串 将字符串转换成数据类型 以下是一个例题 学生类的例题

Python打卡训练营学习记录Day34

知识点回归: CPU性能的查看:看架构代际、核心数、线程数 GPU性能的查看:看显存、看级别、看架构代际 GPU训练的方法:数据和模型移动到GPU device上 类的call方法:为什么定义前向传播时可以直接写作self.fc1(x) CPU性…

动手学习深度学习V1.1 chapter2 (2.1-2.2)

chapter2:深度学习基础 区分问题:回归问题还是分类问题? 输出结果是不明确的连续值的时候就是回归问题,比如房价预测,销售额预测等。 输出结果是明确几个离散值的时候就是分类问题,比如字符识别&#xf…

数据结构(6)线性表-队列

一、队列的概述 队列也是一种特殊的线性表,只允许在一段插入数据,另一端删除数据。插入操作的一端称为队尾,删除操作的一端称为队头。 如图: 二、队列相关操作 1.队列结构体的声明 类似于栈,他肯定也得借助于数组或…

【数据架构04】数据湖架构篇

✅ 10张高质量数据治理架构图 无论你是数据架构师、治理专家,还是数字化转型负责人,这份资料库都能为你提供体系化参考,高效解决“架构设计难、流程不清、平台搭建慢”的痛点! 🌟限时推荐,速速收藏&#…

uniapp-商城-62-后台 商品列表(分类展示商品的布局)

每一个商品都有类别,比如水果,蔬菜,肉,粮油等等,另外每一个商品都有自己的属性,这些都在前面的章节进行了大量篇幅的介绍。这里我们终于完成了商品类的添加,商品的添加,现在到了该进…

初识C++:模版

本篇博客主要讲解C模版的相关内容。 目录 1.泛型编程 2.函数模板 2.1 函数模版概念 2.2 函数模版格式 2.3 函数模版的原理 2.4 函数模版的实例化 1.隐式实例化&#xff1a;让编译器根据实参推演模板参数的实际类型 2. 显式实例化&#xff1a;在函数名后的<>中指定模…

突破认知边界:神经符号AI的未来与元认知挑战

目录 一、神经符号AI的核心领域与研究方法 &#xff08;一&#xff09;知识表示&#xff1a;构建智能世界的语言 &#xff08;二&#xff09;学习与推理&#xff1a;让机器“思考”与“学习” &#xff08;三&#xff09;可解释性与可信度&#xff1a;让AI更透明 &#xf…

Java 处理地理信息数据[DEM TIF文件数据获取高程]

目录 1、导入依赖包 2、读取方法 3、其他相关地理信息相关内容&#xff1a; 1️⃣常用的坐标系 1、GIS 中的坐标系一般分为两大类&#xff1a; 2. ✅常见的地理坐标系 2.0 CGCS2000&#xff08;EPSG:4490&#xff09; 2.1 WGS84 (World Geodetic System 1984) &#xff08;EPSG…

谈谈对dubbo的广播机制的理解

目录 1、介绍 1.1、广播调用 1、工作原理 1.2、调用方式 1、Reference 注解 2、XML 配置 3、全局配置 1.3、 广播机制的特性 2、重试机制 2.1、默认行为 2.2、自定义逻辑 1、在业务层封装重试逻辑 2、使用 Reference 3、广播调用的实践 3.1、常用参数 1.…

003-类和对象(二)

类和对象&#xff08;二&#xff09; 1. 类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员函数。 默认成员函数&#xff…

Linux火墙管理及优化

网络环境配置 使用3个新的虚拟机【配置好软件仓库和网络的】 F1 192.168.150.133 NAT F2 192.168.150.134 192.168.10.20 NAT HOST-ONLY 网络适配仅主机 F3 192.168.10.30 HOST-ONLY 网络适配仅主机 1 ~]# hostnamectl hostname double1.timinglee.org 【更…

Visual Studio 制作msi文件环境搭建

一、插件安装 a. 插件寻找 在 Visual Studio 2017 中&#xff0c;如果你希望安装用于创建 MSI 安装包的插件&#xff0c;第一步是&#xff1a;打开 Visual Studio 后&#xff0c;点击顶部菜单栏中的 “工具”&#xff08;Tools&#xff09;&#xff0c;然后选择下拉菜单中的 “…