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

在上篇中,我们围绕存储系统可扩展架构详细探讨了基础技术原理与典型实践。然而,在实际应用场景中,存储系统面临的挑战远不止于此。随着数据规模呈指数级增长,业务需求日益复杂多变,存储系统还需不断优化升级,才能持续突破容量天花板,为云计算与大数据的发展提供坚实支撑。接下来,我们将深入探索存储系统可扩展架构的SAN系统统一存储系统的扩展性

三、SAN系统的扩展性

在存储系统的世界里,SAN 系统和 NAS 系统就像是两个功能强大却各有专长的 “数据管家”。很多人以为它们的差异在于存储数据的仓库(底层存储阵列)不同,其实关键在于它们如何与服务器 “对话”—— 也就是网络连接方式和使用的通信协议。

想象一下,SAN 系统就像一个高效的 专线快递员,它支持 iSCSI、Fibre - Channel、Fiber - Channel - over - Ethernet 这些 “专属快递通道” 协议,能快速地把数据块送到服务器手中。而 NAS 系统更像是一个 “文件中转站”(想了解NAS的朋友,点击:云计算与大数据进阶 | 27、存储系统如何突破容量天花板?可扩展架构的核心技术与实践—— 分布式、弹性扩展、高可用的底层逻辑(上)-CSDN博客),主要使用 NFS、CIFS 这类协议,擅长处理文件级别的数据传输,方便多个客户端共享文件。

图1:统一NAS的存储阵列


以统一 NAS 为例,它的存储阵列里的每个 NAS 机头就像中转站的 “前台” 和 “后台”。以上图为例。

前端端口(以太网端口)是 “前台”,负责接待客户端,处理它们的文件读取和写入请求;后端端口则是 “后台”,连接着存储控制器,通过 iSCSI 端口和 FC 端口,让主机能直接或者通过存储网络拿到数据块。

另一种基于 SAN 的存储阵列,为了更好地扩展,引入了 NAS 网关设备。在这个方案里,NAS 网关和存储系统之间通过传统的 FC SAN “专线” 通信。这里有个有趣的点:NAS 网关给每个客户端的接口像一个单独的文件夹,而树状文件系统接口厉害之处在于能几乎无限制地扩充存储阵列。看图2。

图2:NAS网关存储阵列

不过就像仓库太大找东西会变慢一样,文件系统太庞大也会拖慢系统性能。所以部署这个方案时,得像规划复杂的物流网络一样,考虑好数据传输路径、备用路线(冗余结构)和任务分配(负载分布)。

那么基于 SAN 的存储阵列是怎么实现扩展的呢?答案是核心 - 边缘网络连接结构,这个结构就像城市的交通网络。见图3为例。

图3:核心-边缘结构

它有两层 “交通枢纽”—— 核心层和边缘层。边缘层是城市里的普通路口(交换机),用比较低成本的方式,让更多的主机(车辆)能接入网络。每个边缘层的 FC 交换机通过 ISL “道路” 连接到核心层的 FC 控制器(主干道上的高速路口)。

核心层则像城市交通的指挥中心,保证整个网络连接的稳定和高效,所有的数据通信基本都要经过这里或者在这里完成。在这个网络里,存储设备都连接在核心层,就像仓库都建在交通枢纽附近,让主机拿数据时只需要经过一条 “路”(ISL),速度更快。

对性能要求高的主机还能直接连接到核心层,避开路上的拥堵(ISL 时延)。而且边缘层的交换机之间是不直接相连的,这样既保证了网络的连接性,又提高了端口的使用效率。如果网络需要扩展,就像城市要修新的路口和道路,添加新的边缘交换机连到核心交换机,或者在核心层增加更多的交换机和控制器就行。根据核心层交换机数量不同,这个结构还能变成单核拓扑、双核拓扑等不同 “城市布局”,比如把单核拓扑变成双核拓扑,就像给城市增加了一条主干道,通过新建 ISL “道路”,把每个边缘交换机连接到新的核心交换机上。

四、统一存储系统的扩展性

统一存储系统指的是一个存储控制器可以应对不同类型的存储需求。在统一存储系统中,对存储的数据块、文件和对象等的I/O请求通过不同的I/O路径传输。

统一存储系统最厉害的地方在于一个存储控制器就能应对各种各样的存储需求。想象这个控制器是物流中心的 “总指挥”,它能根据不同类型的 “货物”,安排最合适的运输路线。当客户端发出对数据块、文件和对象等的 I/O 请求时,就好比客户要求发送不同类型的货物,存储系统会通过不同的 I/O 路径来传输这些数据,就像物流中心为不同货物规划专属的运输通道。这种灵活的处理方式,让统一存储系统在复杂的数据存储场景中,既能保证效率,又能满足多样化的需求 ,就像一个真正的全能管家,有条不紊地打理着庞大的数据世界。统一存储系统如图4所示。

图4: 统一存储系统

①数据块I/O请求:应用程序服务器连接到存储控制器的iSCSI、FC或FCoE端口上,服务器通过iSCSI、FC或FCoE连接发送数据块I/O请求。存储控制器可处理数据块I/O请求,并响应应用程序服务器。

②文件I/O请求:NAS客户端(装载或映射NAS共享的位置)使用NFS或CIFS协议向NAS控制器发送文件I/O请求。NAS控制器会接收请求,将其转换为数据块I/O请求,并将其转发到存储控制器。接收到存储控制器的数据块数据后,NAS控制器会再次将数据块I/O请求转换为文件I/O请求,并将数据发送到NAS客户端。

③对象I/O请求:Web应用程序服务器通常使用REST、SOAP或API将对象I/O请求发送到OSD(Object Storage Device,对象存储设备)节点。OSD节点会接收请求,将其转换为数据块I/O请求,并发送给存储控制器。存储控制器会处理数据块I/O请求并响应OSD节点,将请求的对象提供给Web应用程序服务器。

统一存储系统奠定了存储云平台的基础,它屏蔽了底层异构存储的复杂性,将现有的异构物理存储(不同类型的存储设备、不同厂家的产品)转变为简单的、可扩展的开放式云存储平台。同时该系统还可以为数据中心中的其他层(如IaaS、PaaS、SaaS等平台)提供简单、高效、开放、可扩展的API,为实现全数据中心云化打下坚实的基础。

为了保证存储云平台的扩展性和开放性,存储云平台通过基于行业标准的存储管理接口标准(Storage Management Initiative Specification,SMI-S)接口或接入软件存储平台(例如开源的Ceph)实现底层物理存储设备的接入。存储云平台通常需要对外提供开放式API,以便进行扩展和二次开发;采用集群部署架构,根据存储资源的规模进行横向扩展,以保证整个存储云平台具有良好的可扩展性。SMI-S是存储网络工业协会(Storage Networking Industry Association,SNIA)制定的、符合ISO标准的异构存储间的互联互通协议,目前被用于超过800款硬件、75款软件存储产品上。Ceph是开源的免费软件存储平台,它虽然是基于对象存储,但是在结构层提供文件、数据块及对象存储API。SMI-S专注于异构存储间的互联互通,而Ceph专注于基于商品现货硬件平台搭建廉价的、可扩展的存储平台。

回顾上下两篇文章,我们系统探讨了存储系统突破容量天花板的关键技术与实践,这些技术并非孤立存在,而是相互协作、相互补充,共同构建起强大而灵活的存储架构。

展望未来,随着云计算、大数据、人工智能等技术的飞速发展,数据规模将持续呈爆炸式增长,对存储系统的要求也会越来越高。存储系统突破容量天花板的探索永无止境,新兴技术如分布式存储与 AI 的深度融合、更高效的存储介质创新等,将为存储系统的发展带来新的机遇与挑战。相信在不断的技术创新与实践中,存储系统将以更强大的性能、更灵活的扩展性,为数字时代的数据存储需求保驾护航,助力各行各业在数据的海洋中自由遨游。

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

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

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

相关文章

从0到1打造AI Copilot:用SpringBoot + ChatGPT API实现智能开发助手

本文将从0到1系统性地讲解如何基于SpringBoot与OpenAI ChatGPT API打造一款智能开发助手(AI Copilot)。文章首先介绍AI Copilot的背景与价值,接着深入架构设计与环境准备,然后通过详尽的代码示例演示SpringBoot项目的搭建、依赖配…

C# AI(Trae工具+claude3.5-sonnet) 写前后端

这是一个AI 写的前后端分离项目,通过AI编程,开发电商管理系统(登陆、注册) 使用的AI工具为 Trae工具(字节国际版)claude3.5-sonnet(目前代码最强模型) 前端为 vue3Bootstrap 后端为 C# net5.0(因为我电脑里面已经安装了这个新版更好) do…

Vue3 Element Plus 对话框加载实现

在 Vue3 Element Plus 中实现对话框加载效果&#xff0c;可以通过以下两种方式实现&#xff1a; 方式一&#xff1a;使用 v-loading 指令&#xff08;推荐&#xff09; vue 复制 下载 <template><el-button click"openDialog">打开对话框</el-b…

VsCode开发环境之Node.js离线部署

1.下载node部署文件 地址为&#xff1a;CNPM Binaries Mirror 2.下载后解压 3.验证版本 4.配置环境变量 5.外网寻找一个对应项目的npm文件--node_modules 6.node_modules文件夹复制到node.js的路径下 7.接着就可以正常运行了。

MySQL中的重要常见知识点(入门到入土!)

基础篇 基础语法 添加数据 -- 完整语法 INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);-- 示例 insert into employee(id,workno,name,gender,age,idcard,entrydate) values(1,1,Itcast,男,10,123456789012345678,2000-01-01) 修改数据 -- 完整语法 UPDA…

【PRB】1.5w字深度解析GaN中最浅的受主缺陷

2025 年 1 月 16 日,Virginia Commonwealth University 的 M. A. Reshchikov 和 SUNY–Albany 的 B. McEwen 等人在《Physical Review B》期刊发表了题为《Identity of the shallowest acceptor in GaN》的文章,基于对 50 多个 Be 掺杂 GaN 样品的光致发光实验以及 Heyd-Scus…

前端开发遇到 Bug,怎么办?如何利用 AI 高效解决问题

前端开发遇到 Bug&#xff0c;怎么办&#xff1f;如何利用 AI 高效解决问题 作为前端开发者&#xff0c;遇到 Bug 几乎是日常。无论是样式错乱、功能异常&#xff0c;还是接口数据不对&#xff0c;Bug 总能让人头疼。但随着人工智能&#xff08;AI&#xff09;技术的发展&…

深挖navigator.webdriver浏览器自动化检测的底层分析

本文将带你深入探索并实践如何从底层层面破解浏览器 navigator.webdriver 检测&#xff0c;结合爬虫代理等策略伪装、多线程加速等技术&#xff0c;在豆瓣图书搜索页面上批量采集图书评分、简介、作者等信息。文章面向初学者&#xff0c;采用分步教程型结构&#xff0c;并增设「…

如何实现从网页一键启动你的 Electron 桌面应用(zxjapp://)

在现代桌面应用开发中&#xff0c;Electron 凭借其跨平台能力和前端友好的特性&#xff0c;受到了越来越多开发者的青睐。但你是否想过&#xff0c;如何让用户从网页上一键启动你本地的 Electron 应用&#xff1f;比如像某些云盘客户端那样&#xff0c;点击网页上的按钮就能直接…

Java安全-Servlet内存马

内存马简介 内存马是指将恶意代码注入到内存中&#xff0c;达到无文件落地的效果&#xff0c;使得被攻击方难以察觉。由于是无文件的形式&#xff0c;可以绕过部分基于文件检测的杀软。而 Servlet 内存马是基于 Java Servlet 技术&#xff0c;动态将恶意代码注入到 Tomcat 内存…

LeetCode-前缀和-和为K的子数组

LeetCode-前缀和-和为K的子数组 ✏️ 关于专栏&#xff1a;专栏用于记录 prepare for the coding test。 文章目录 LeetCode-前缀和-和为K的子数组&#x1f4dd; 和为K的子数组&#x1f3af;题目描述&#x1f50d; 输入输出示例&#x1f9e9;题目提示&#x1f9ea;前缀和❓什么…

动态神经网络(Dynamic NN)在边缘设备的算力分配策略:MoE架构实战分析

一、边缘计算场景的算力困境 在NVIDIA Jetson Orin NX&#xff08;64TOPS INT8&#xff09;平台上部署视频分析任务时&#xff0c;开发者面临三重挑战&#xff1a; 动态负载波动 视频流分辨率从480p到4K实时变化&#xff0c;帧率波动范围20-60FPS 能效约束 设备功耗需控制在1…

算法优选系列(9.BFS 解决拓扑排序)

目录 拓扑排序简介&#xff1a; ​编辑 课程表&#xff08;medium&#xff09;&#xff1a; 课程表II&#xff08;medium&#xff09;: 火星词典&#xff08;hard&#xff09;&#xff1a; 拓扑排序简介&#xff1a; 有向无环图&#xff08;DAG图&#xff09; 如上图每条边…

SpringBoot3+Vue3(1)-后端 请求头校验,jwt退出登录,mybaits实现数据库用户校验

1.后端&#xff1a;jwt请求头校验 解析 工具类jwtUtils 解析token 令牌是否过期&#xff0c;验证 正常、异常、运行时错误 倒入工具类是resource 工具类中添加解析用户的方法&#xff1a; 在 在工具类添加id解析 此处调用 添加controller做测试 测试&…

【免杀】C2免杀技术(八)APC注入

本文主要写点自己的理解&#xff0c;如有问题&#xff0c;请诸位指出&#xff01; 概念和流程 “APC注入”&#xff08;APC Injection&#xff09;是免杀与恶意代码注入技术中的一种典型方法&#xff0c;主要用于在目标进程中远程执行代码&#xff0c;常见于后门、远控、植入型…

git工具使用

安装Git 在开始使用Git之前&#xff0c;需要在本地计算机上安装Git工具。Git支持Windows、macOS和Linux系统。可以从Git官方网站下载适合操作系统的安装包&#xff0c;并按照安装向导进行安装。 bash复制插入 # 在Linux上安装Git sudo apt-get install git# 在macOS上安装Git…

SpringBoot微服务编写Dockerfile流程及问题汇总

背景 跟 Docker 磕了两天&#xff0c;将一个包含 N 个微服务的应用部署包改造&#xff0c;使其能够生成 Docker 镜像&#xff0c;并在 Docker 容器中运行。几年前玩过 Docker&#xff0c;隐约记得几个命令「Dockerfile 命令&#xff1a;黑卡饮料、山楂果费、哦SUV&#xff0c;…

pytorch语法学习

启动 python main.py --config llve.yml --path_y test -i output

基于LiveData和ViewModel的路线管理实现(带PopupWindow删除功能)

包含RecyclerView绑定、PopupWindow删除功能和SharedPreferences持久化存储。 1. RouteInfo类(实现Parcelable接口) java 复制 下载 import android.os.Parcel; import android.os.Parcelable;public class RouteInfo implements Parcelable {private Integer routeID;p…

jvm安全点(二)openjdk17 c++源码垃圾回收安全点信号函数处理线程阻塞

1. 信号处理与桩代码&#xff08;Stub&#xff09;​​ 当线程访问安全点轮询页&#xff08;Polling Page&#xff09;时&#xff1a; ​​触发 SIGSEGV 信号​​&#xff1a;访问只读的轮询页会引发 SIGSEGV 异常。​​信号处理函数​​&#xff1a;pd_hotspot_signal_handl…