软件定义存储

软件定义存储源于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://www.mzph.cn/news/610395.shtml

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

相关文章

笔记本摄像头模拟监控推送RTSP流

使用笔记本摄像头模拟监控推送RTSP流 一、基础安装软件准备 本文使用软件下载链接:下载地址 FFmpeg软件: Download ffmpeg 选择Windows builds by BtbN 一个完整的跨平台解决方案,用于录制、转换和流式传输音频和视频。 EasyDarwin软件:Download Easy…

企业小文件多传输慢怎么办?怎么解决海量小文件传输慢的问题?

在当今信息时代,许多企业在文件传输过程中普遍面临一个棘手问题——小文件传输缓慢。这不仅对企业工作效率产生不良影响,还可能导致运营成本增加以及数据遗失与损坏的风险。那么,企业应该如何解决海量小文件传输缓慢的问题呢?本文…

高压MOS在适配器产品上的应用-REASUNOS瑞森半导体

一、适配器定义 电源适配器,英文Adapter通常指AC-DC(由交流输入转换为直流输出)的开关电源;一般由控制 IC、MOS管、整流肖特基管、电阻电容、磁性材料、DC 线、外壳等元器件及部件组成,通过整流、变压和稳压等转换形式…

第1章 引言

目录 1. 鸢尾花分类1.1 初识数据1.2 衡量模型是否成功:训练数据与测试数据1.3 要事第一:观察数据1.4 构建第一个模型:k近邻算法(KNeighborsClassifier)1.5 做出预测(predict)1.6 评估模型 1. 鸢…

【51单片机】延时函数delay的坑——关于无符号整型数据for语句“x >= 0“变成死循环

请认真看看以下延时函数是否正确,并且指出错误:(考考C语言功底) void delay_ms(unsigned int xms) //delay x ms {unsigned int x,y;for(xxms;x>0;x--)for(y124;y>0;y--); }废话少说,上正确代码: v…

linux ftp服务选择与ftp(vsftpd,Pure-FTPd)服务安装使用教程

一 linux ftp常用的服务软件 在Linux系统中,最常用的ftp有vsftpd,Pure-FTPd,ProFTPd,Wu-FTPd,glftpd,他们的特性优缺点如下对比图: 常用的5款linux ftp对比图: 软件特性优点缺点vsf…

unity C#中使用ref、out区别和使用案例

文章目录 ref 关键字out 关键字 在Unity(以及C#编程语言中), ref 和 out 都是用来传递参数的引用,这意味着它们允许函数修改实参变量,并且这些修改会反映到调用函数的地方。但它们之间确实存在一些关键区别和使用场景…

20、Kubernetes核心技术 - 基于Prometheus和Grafana搭建集群监控平台

目录 一、概述 二、监控平台架构图​编辑 三、部署 Prometheus 3.1、Prometheus简介 3.2、部署守护进程node-exporter 3.3、部署rbac 3.4、ConfigMap 3.5、Deployment 3.6、Service 3.7、验证Prometheus 四、部署Grafana 4.1、Deployment 4.2、Service 4.3、Ing…

Nginx实战 | 高性能HTTP和反向代理神器Nginx前世今生,以及它的“繁花之境”

专栏集锦,大佬们可以收藏以备不时之需: Spring Cloud 专栏:http://t.csdnimg.cn/WDmJ9 Python 专栏:http://t.csdnimg.cn/hMwPR Redis 专栏:http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏:http://t.csdni…

尺寸公差分析 -DTAS手机装配公差案例-国产-智能

小细节 大麻烦,公差仿真大改造 DTAS尺寸公差分析软件-国产-智能https://www.dtas-china.com/product.html 仿真要求说明:计算长边装配间隙G1-G6 步骤一:首先双面胶②放在一个工装中,外形定位,然后将后盖①放入到工…

第三代量子计算机交付,中国芯片开辟新道路,光刻机难挡中国芯

日前安徽本源量子宣布第三代超导量子计算系统正式上线,这是中国最先进的量子计算机,计算量子比特已达到72个,在全球已居于较为领先的水平,这对于中国芯片在原来的硅基芯片受到光刻机阻碍无疑是巨大的鼓舞。 据悉本源量子的第一代、…

数 据 分 析 1

1.使用Wireshark查看并分析靶机桌面下的capture.pcapng数据包文件,找到黑客的IP地址,并将黑客的IP地址作为Flag值(如:172.16.1.1)提交;172.16.1.41 查找:tcp.connection.syn 2.继续分析captu…

自定义HBase负载均衡器MyCustomBalancer实现步骤与代码解析

目录 1.HBase默认负载均衡策略 1.1 负载均衡总体流程 1.2 不能触发负载均衡的情况 1.3 负载均衡算法 2.自定义的 HBase 负载均衡器的步骤 3.MyCustomBalancer的代码细节 3.1 balanceCluster 方法的作用 3.2balanceCluster 对数据的影响 3.3监控HBase的性能指标 3.3.…

全国区县与地级市和省会的距离,2021年,shp/excel格式,附高清示意图

基本信息. 数据名称: 全国区县与地级市和省会的距离 数据格式: shpexcel 数据时间: 2021年 数据几何类型: 面 数据坐标系: WGS84 数据来源:网络公开数据 数据字段: 序号字段名称字段说明1djs_jl与所属地级市距离(㎞)2…

如何实现公网访问GeoServe Web管理界面共享空间地理信息【内网穿透】

文章目录 前言1.安装GeoServer2. windows 安装 cpolar3. 创建公网访问地址4. 公网访问Geo Servcer服务5. 固定公网HTTP地址 前言 GeoServer是OGC Web服务器规范的J2EE实现,利用GeoServer可以方便地发布地图数据,允许用户对要素数据进行更新、删除、插入…

GIT - 清除历史 Commit 瘦身仓库

目录 一.引言 二.仓库清理 ◆ 创建一个船新分支 ◆ 提交最新代码 ◆ 双指针替换分支 三.总结 一.引言 由于项目运行时间较长,分支较多,且分支内包含很多不同的大文件,随着时间的推移,历史 Git 库的容量日渐增发&#xff0c…

开源分布式任务调度系统DolphinScheduler本地部署与远程访问

文章目录 前言1. 安装部署DolphinScheduler1.1 启动服务 2. 登录DolphinScheduler界面3. 安装内网穿透工具4. 配置Dolphin Scheduler公网地址5. 固定DolphinScheduler公网地址 前言 本篇教程和大家分享一下DolphinScheduler的安装部署及如何实现公网远程访问,结合内…

控制障碍函数(Control Barrier Function,CBF) 三、代码

三、代码实现 3.1、模型 这是一个QP问题,所以我们直接建模 这其实还是之前的那张图,我们把这个大的框架带入到之前的那个小车追击的问题中去,得到以下的一些具体的约束条件 CLF约束 L g V ( x ) u − δ ≤ − L f V ( x ) − λ V ( x ) …

LeetCode刷题记录:(4)重复的子字符串

leetcode传送通道 /** 重复字符串的next数组是有规律的 abcabc:-1 0 0 0 1 2 abcabcabc:-1 0 0 0 1 2 3 4 5 abcabcabcabc:-1 0 0 0 1 2 3 4 5 6 7 8 abcabcabcabg:-1 0 0 0 1 2 3 4 5 6 7 8 欸嘿,和上面一样&#xff…

Linux——firewalld防火墙(一)

一、Linux防火墙基础 Linux 的防火墙体系主要工作在网络层.针对TCP/P数据包实时过滤和限制.属于典型的包过滤防火墙(或称为网络层防火墙)。Linux系统的防火墙体系基于内核编码实现.具有非常稳定的性能和高效率,也因此获得广泛的应用.在CentOS 7系统中几种…