软件定义的存储

article/2025/10/1 20:09:49

软件定义存储源于VMware公司于2012年提出的软件定义的数据中心(SDDC)。存储作为软件定义的数据中心不可或缺的一部分,其以虚拟化为基础,但又不仅限于虚拟化。存储虚拟化一般只能在专门的硬件设备上应用,很多设备都是经过专门的定做才能够进行存储虚拟化。而软件定义存储则没有设备限制,可以简单地理解为存储的管理程序(类似于软件定义计算中虚拟机管理程序VMM)。

软件定义存储是对现有操作系统和管理软件的一个结合,能够完整实现我们对存储系统的部署、管理、监控、调整等多种要求,可以给我们的存储系统带来敏捷、高可用、跨数据中心支持等特点。

软件定义存储通常具有如下几大特性:

·开放性(Open)

· 简单化(Simplified)

· 可扩展性(Scalable)

开放的软件定义存储主要指两个维度:API的标准化与可编程平台的支持。使用标准的开放的API,任何人都可以基于此而构建数据服务。这一点不仅有利于大的企业,对于创业公司更加方便,因为它为客户提供一个开放式底层的存储平台可以利用。开放的API必然是用来支撑一套可编程架构,可以实现一次编程、多次运行、无处不在的数据服务。此二者结合起来促进开放式开发社区的全局数据和自动化服务的交付。

简单化是所有存储应用与用户追求的目标,包括统一的管理接口与界面、自动化的存储配置与部署,便捷的存储扩展、升级及优化。现代存储系统自20世纪中叶诞生以来一直是一个非常专业化的领域,它的复杂性与挑战性令另很多人望而止步,但是软件定义存储的出现在逐渐颠覆这一现象,存储变得更容易被管理,更容易满足客户与应用的需求。

可扩展性指的是存储系统中对同构或异构存储解决方案、服务的可接入性,它在一定程度上与系统的开放性类似,允许对存储系统实施动态的升级、扩展,接入第三方存储服务或设备等。

作为软件定义的存储的核心技术,我们先聚焦存储虚拟化,它可以在计算、网络和存储层实施。

·在计算层,虚拟机管理程序为虚拟机分配存储空间,而屏蔽掉了(不暴露)物理存储的复杂性。

· 数据块(Block)和文件级别(File)的虚拟化是基于网络的虚拟化技术。这两项技术在网络层中嵌入虚拟化存储资源的智能,我们常见的NFS/CIFS网络协议正是这些存储虚拟化技术在网络层面的体现。

事实上数据块与文件类型的存储从操作系统技术栈角度看通常是在不同层实现的。以Linux操作系统为例,如下图所示,文件系统通常在块设备之上实现(每多一层抽象、虚拟化,效率就会降低一点),这也解释了为什么通常基于块设备的解决方案的效率(数据吞吐率)高于基于文件系统。

图:Linux内核系统调用接口

· 在存储层,虚拟资源调配和自动存储分层一起简化存储管理,并帮助优化存储基础架构(见下图)。

图:虚拟化的存储


下面我们以虚拟机为例介绍一下虚拟化计算、存储与网络如何整合工作。

虚拟机通常是作为一组文件存储在分配给虚拟机管理程序的存储设备上。其中一个名为“虚拟磁盘文件”的文件表示虚拟机用来存储其数据的虚拟磁盘。虚拟磁盘对于虚拟机显示为本地物理磁盘驱动器。虚拟磁盘文件的大小表示分配给虚拟磁盘的存储空间。虚拟机管理程序可以访问光纤通道存储设备或IP存储设备,例如iSCSI和网络连接存储设备。虚拟机一直察觉不到可用于虚拟机管理程序的总存储空间和底层存储技术。虚拟机文件可以由虚拟机管理程序的本机文件系统[也被称为虚拟机文件系统 (VMFS)]或网络文件系统 (NFS)(如网络连接存储文件系统)来管理。

主流的软件定义存储技术方案通常对数据管理(Control Plane)与数据读写(Data Plane)实现分离,由统一的管理接口与上层管理软件交互,而在数据交互方面,则可以兼容各种不同的连接方式。这种方式可以很好地与传统的软硬件环境兼容,从而避免“破坏性”的改造。如何合理利用各级存储资源,在数据中心的级别上提供分层、缓存也是需要特别考虑的。因此,软件定义存储中的控制层通常提供如::系统配置、自动化、自服务、管控中心等服务,而在数据层则暴露给应用不同类型的存储服务,如对象存储、HDFS、文件或块存储。整个SDS系统逻辑组件可参考下图所示。

图:软件定义存储的逻辑组件与分层

软件定义的存储将抽象的控制层与数据层进行了分离,并提供接口给用户。用户可以使用接口定义自己的数据控制策略。为什么要将抽象的控制层与数据层分离,并且提供接口给用户调用?如表3-5所示,控制层是指对数据的管理策略,控制层不需要知道数据具体的存储方式,如块、文件或者对象存储。控制层的时间损耗(延迟)级别是在毫秒级。数据层则是指具体读写硬件方式,如块、文件或者对象读。时间延迟是在微秒级。

存储控制层和数据层(下表):

存储控制层

存储数据层

速度级别

毫秒级

微秒级

例子

数据服务的策略

Block、NAS、Object I/O

表示

数据服务策略

数据服务特性

用户在使用存储时,着重关注数据服务的策略,而这些策略与具体的数据存储方式无关。当今的存储虚拟化产品将存储控制和数据层结合,即数据服务的策略紧密依赖于数据存储的方式。事实上,数据存储速度是微秒级,而数据存储控制较慢。当实现数据服务策略时,主要的时间开销在控制层,而传统的存储虚拟化技术不能灵活配置存储控制,因此针对某个服务的变化,响应时间主要是控制开销。再者,用户存储数据时,必须对数据的控制和存储方式都需要足够的了解,这增加了使用存储资源的难度,而且存储资源的可扩展性不高。此外,由于传统的存储虚拟化技术缺少标准的存储数据监控功能,当某个设备出现问题时,用户只能依赖底层的一些存储机制(如日志)进行问题发现和定位。表3-6中描述了存储虚拟化与软件定义的存储之间的异同。

存储虚拟化与软件定义的存储(下表):

存储虚拟化

软件定义的存储

Control Plane

抽象

抽象

Data Plane

抽象

不抽象

隔离性要求

时间开销

可扩展性

数据监控

数据安全

从软件定义的数据中心角度看,软件定义存储形成了一个统一的虚拟存储池(Unified Virtualized Storage Pool),该存储池提供了标准化接口的存储应用服务,例如典型的企业级Exchange(邮件)、Hadoop(大数据分析)、VDI(远程桌面、瘦客户端后台)、数据库等存储服务。这些服务的等级、特性、优先级等可以通过软件定义数据中心的SLA等策略来规范与定制。图3-35形象地展示了软件定义存储与软件定义数据中心的逻辑关系。

图:软件定义的数据中心之软件定义的存储

换一个角度,从技术栈视角去看软件定义的存储、网络与计算,结合曾经流行的OpenStack平台组件(或者K8S...),我们可以把一个软件定义的数据中心从功能上分为四层(自下而上,如图3-36所示):

· 基础架构层

·云管理层

· 云服务层

·管理界面层

图:软件定义的数据中心之软件定义的存储(技术栈角度)

基础架构层由典型的计算虚拟化组件(KVM/Docker等)、网络虚拟化(NVP/OpenFlow/Open vSwitch等)以及存储虚拟化(Ceph/ScaleIO/VSAN等)构成;云管理层则可视为对基础架构层的封装、标准化并向上层提供统一可编程与管理接口;云服务层向之上的管理界面提供了标准化服务接口,如计费、日志、数据库服务、数据备份与恢复等服务。

上图中的软件定义数据中心依旧缺失了另外两块主要的组件:

·Security(安全组件)

·M&O(Management & Orchestration)管理与编排组件

随着数据中心系统的规模与复杂度指数级地提高,管理这样一个庞大的系统需要高度的自动化以及与之匹配的安全保障。因此,对硬件与软件的综合管理与编排以及安全管理系统变得越来越重要,例如VMware的vCenter、微软的System Center、开源OpenStack项目都提供了各自的SDDC M&O组件。安全组件则通常会以系统安全分析、入侵预防与报警、漏洞检测、事件流分析等功能组件形式与M&O系统对接。图3-37展示了在软件定义的数据中心中,五大组件(软件定义的计算、存储、网络、安全及M&O)的逻辑、分层关系。

图:软件定义的数据中心五大组件逻辑架构图

需要指出的是无论是安全还是M&O,它们整体的发展趋势都是朝着大数据、快数据、流数据的方向发展,相关系统的体系架构也一定是朝着分布式、并行式的云计算架构方向前进,这其中对网络(负责数据的迁移)、计算(负责通过对数据的计算、分析得出信息与智能)以及存储(负责数据最终的存放与管理)具有天然的需求。因此,我们在看待其中任何一个环节、部件或组件的时候,都需要有一个五位一体(见上图)的全局观,这样才能避免片面、孤立或过度微观。

另据IDC 2015年提供的报告,未来企业级存储变革的四大关键技术分别是:闪存、软件定义、融合存储和云。闪存与融合存储指的都是硬件层面设备的迭代更新,而软件定义与云则是通过软件化、虚拟化(抽象化)来更好地把硬件接入到云化的软件系统架构内,以更好地服务于用户需求。今天看来,这份6年前报告依然是有价值的,不过有一些新的变化。闪存,特别是企业级闪存,显然需要更激进的替代现有的仍旧基于磁盘的存储模式,随着闪存的成本不断降低,闪存存储所带来的10倍以上的性能优势不言而喻,特别是对于数据库级别的产品而言,脱离了底层的硬件性能提升而谈软件定义存储,未免显得舍本逐末了。另外,最近1-2年随着大内存(持久化内存)产品的推出(例如Intel的Optane),笔者以为,这将会是颠覆性的 -- 没有人可以拒绝内存级别的持久化存储产品,想想数据库如果持久化在内存级存储设备上面,没有IOPS的世界会是什么样子的?光速对高铁、高铁对蜗牛的感觉?

让我们把剩下的交给时光和人心。


http://chatgpt.dhexx.cn/article/INLHRLjJ.shtml

相关文章

软件定义存储,看这一篇就够了!-- 转自360DOC

1.SDS科普 SDS(Software Defined Storage)即软件定义存储,简单地说就是将存储硬件和软件进行分离,采用标准化硬件作为载体(如X86架构),基于软件实现企业级存储功能和服务。相对于传统存储硬件盒…

数值积分方法:欧拉积分、中点积分和龙格-库塔法积分

目录 写在前面原理代码CMakeLists.txteuler.cppmidpoint.cpprk4.cppcompile&run 参考完 写在前面 1、本文内容 数值积分方法:欧拉积分(Euler method)、中点积分(Midpoint method)和龙格-库塔法积分&am…

龙贝格函数求积

龙贝格函数求积 龙贝格函数求积 龙贝格求积公式也称为逐次分半加速法。是数值计算方法之一,用以求解数值积分。是在梯形公式、辛普森公式和柯特斯公式之间关系的基础上,构造出一种加速计算积分的方法。 作为一种外推算法,在不增加计算量的前…

实变函数/实分析总结

一、概述。 实变函数,又叫实分析,整本书满满的证明就讲了一个勒贝格积分。 最为大家所熟知的是用牛顿-莱布尼茨公式算的黎曼积分。但是黎曼积分本身依赖于函数的连续性,像不连续的狄利克雷函数就无法积分了。 为了解决这一问题,…

牛顿柯特斯公式及复合形式、龙贝格求积公式,高斯勒让德求积公式

数值积分的研究实现 牛顿柯特斯公式 柯特斯系数 各阶对应公式 当n 1时,对应的牛顿-柯特斯公式就是是梯形公式 当n 2时,对应的牛顿-柯特斯公式就是辛普森公式 当n 4时,对应的牛顿-柯特斯公式就是柯特斯公式 柯特斯系数表 核心代码实现 …

勒贝格测度?

勒贝格测度? 今天读论文,读到了勒贝格测度(Lebesgue measure),不明所以故百度,稍做笔记以记之。 定义 数学上,勒贝格测度是赋予欧几里得空间的子集一个长度、面积、或者体积的标准方法。它广…

Romberg(龙贝格)求积公式求解数值积分时的注意事项

《数值分析》第5版(李庆扬编著)的第四章课后习题第8-(2)题中,要求使用Romberg(龙贝格)求积公式求解f(x)xsinx在区间[0,2pi]上的积分,要求误差小于10^(-5)。 针对此问题,套用计算公式求解即可。在第一步计算梯形公式时…

勒贝格测度(转)

数学上,勒贝格测度是赋予欧几里得空间的子集一个长度、面积、或者体积的标准方法。它广泛应用于实分析,特别是用于定义勒贝格积分。可以赋予一个体积的集合被称为勒贝格可测;勒贝格可测集A的体积或者说测度记作λ(A)。一个值为∞的勒贝格测度…

利用Matlab编写龙贝格算法(romberg)求函数积分

这次是我初次接触matlab,源于数学老师布置的一个作业:用龙贝格算法来计算函数的积分。 具体的计算原理,由于是数学的东西,不好打印,就不写了。主要把自己的代码贴下来慢慢理解。 一共写了两个文件。一个是romberg.m主要…

数值计算笔记之数值积分(二)龙贝格算法

龙贝格求积公式也称为逐次分半加速法。它是在梯形公式、辛普森公式和柯特斯公式之间的关系的基础上,构造出一种加速计算积分的方法。 作为一种外推算法,它在不增加计算量的前提下提高了误差的精度。 在等距基点的情况下,用计算机计算积分值通…

高斯-勒让德积分学习

高斯-勒让德积分求解函数积分 前言高斯-勒让德积分一般积分区间的归一化Exponential Integral实验参考 前言 梯度和辛普森是经典的几何求积分方法,简单易懂,那如果要更加高档(复杂难懂)的求积分方法找哪家了?高斯-勒让…

数值积分公式及龙贝格(Romberg)算法实现matlab

一、数值积分方法得基本思想 二、复化求积公式 三、基于复化梯形求积公式的高精度求积算法——Richardson外推法和Romberg算法 四、Romberg算法的matlab程序: function Romberg % 龙贝格(Romberg数值求解公式) % inputs: % -fun:积分函数句柄 % -a/…

数值积分:龙贝格求积

一、数学原理 在变步长的复化梯形计算过程中运用: 就能将粗糙的梯形值Tn逐步加工成精度较高的辛普森值Sn、柯特斯值Cn和龙贝格值Rn。或者说,将收敛缓慢的梯形值序列Tn加工成收敛迅速的龙贝格值序列Rn,这种线性外推的加速方法称为龙贝格算法&…

数值积分之龙贝格积分

除了复化求积外,这里用龙贝格积分法进行近似求积,其原理与埃特金插值有些类似,进行线性整合后使结果具有高精度的求积效果。在实际过程中,由于对于评判合理步长的困难,我们常采取变步长的办法进行计算,使结…

积分极限定理+勒贝格控制收敛定理+高数

在处理积分与极限的交换顺序问题上,勒贝格积分比黎曼积分要求的条件要弱的多(并且条件更易于验证) 积分与极限交换顺序的定理: 控制收敛定理 { f n ( x ) } 为 E 上 的 一 列 可 测 函 数 \{ f_n(x)\}为E上的一列可测函数 {fn​(…

[转]勒贝格积分的框架与通俗理解

为什么会出现勒贝格积分 这个问题等价于勒贝格积分和黎曼积分有什么区别。其实这个区别没有那么玄,反而很好解释。问题的根源在于黎曼积分的定义上。黎曼积分:.黎曼积分是在轴上做的分割,虽然可以分割得很细,但只要被积函数在这个…

实变函数自制笔记9:勒贝格积分的极限定理

1、非负可测函数积分的极限: 背景:在数学分析里,函数列极限函数黎曼可积性有这样的表述:,且每个均在上可积函数列的极限函数也在上可积;从而有这样的公式:;那我们会想,勒…

实变函数自制笔记8:初识勒贝格积分

1、勒贝格(Lebesgue)积分: 背景:勒贝格积分是在勒贝格测度论的基础上建立起来的,这一理论可以统一处理函数有界、无界的情形,且函数也可以定义在更一般的点集(不一定是)上&#xff…

python三阶魔方_三阶魔方还原公式

1. 第二层棱块归位: 2. 顶层十字 3. 顶层棱中间块归位 这一步的目的是使顶层的4个棱中间块全部归位。 转动顶层(U),若可以使一个棱中间块归位(如下图左,这里以[红-黄]块为例),而其他3个都不能归位,则将[红-黄]所在这一…

QA和QC到底是什么区别?

QA和QC到底是什么区别? 发现迄今为止,仍然有很多工程师,甚至很多的企业对QA和QC的概念仍然非常的模糊不清.两个概念也经常性的混淆,特别是在互联网公司,那么今天小编这里就对QA和QC到底有什么区别,展开一下讨论. 在讲到软件工程体系中的时候,我们不仅要延伸到从最早通过简单…