一不留心就到4月1日了,不过我文末的赠书活动是线位作者的签名。另外一本赠书是VMware VDI的书籍。
在《》里,我曾说到:“我相信这本书里面有些篇章,具有较远的技术前瞻性,即使是三、四年过后,仍然有其借鉴或者的意义”。原因就在于这本书里有好几篇前瞻性的文章,而Peter Cui(崔勇)撰写的第24章《SAS与SDS》是其中的一篇。
我曾一度犹豫是否要把SAS与SDS这篇文章放到书中。这篇文章起源于2015年12月18日在微信号“乐生活与爱IT”上的一篇阅读量非常高的《》,文章本身令人脑洞大开,看完也颇有,而且这篇文章还引来了一则趣事,也许十年后可以请故事的主角亲自来回顾这段轶事。
坦率说,这篇文章总体上行文不是十分严谨,而且不是现有技术的分析,是对未来技术的探讨。彼时其实现在也是如此,SAS交换技术尚未成为业界的主流标准,未来是否能普及开来不得而知。后来考虑到SDS生态的完整性(代表着SDS后端的数据传输技术),而且个人觉得确实很有道理,另外也希望读者不仅能看到现在,还能激发对未来的思考,就收录进来了。
另外,Peter Cui提出的一个观点也颇为新颖:“云计算就是数据更灵活的和计算单元(物理CPU或虚拟CPU)建立耦合关系”。其实数据和计算的解耦是否采用SAS交换来落地不重要,但是这种往解耦的方向发展,从而更灵活地适用于多种业务场景,以满足各自对计算和存储的配比关系,或许是一个值得思考的方向。
时至今日,采用SAS交换机将服务器的计算和存储分离的厂商和用户,在全球范围内仍不多见,很高兴看到做为IT厂商的浪潮、英业达、书生云;做为用户的阿里、腾讯、百度等中国互联网厂商,以及以BAT为首的天蝎3.0计划已经有SAS交换的落地了。顺便恭喜一下书生云基于SAS交换的超融合产品签约凤凰创新园,据书生云CEO临说,该数据中心投资超过10亿元,设计存储容量超过1Eb(编者按:应该是1EB)。
重复一下本书主编的话:软件定义的存储(SDS)是一个不断进化的概念,在现阶段看来,SDS是指存储资源由软件自动控制,通过抽象、池化和自动化,将标准服务器内置存储、直连存储、外置存储或云存储等存储资源整合起来,实现应用,或者基于策略驱动的部署、变更和管理,最终达到存储即服务的目标。
笔者认为软件定义存储和传统存储并不是黑与白的关系,而是彼此学习、互相兼容而且不断发展的过程;由于市场格局或产品定位等非技术原因,往往最新的、定制化的技术会被首先用在所谓的传统存储设备上,比如PCIe的网络,RapidIO网络等,这些技术最先被用在传统存储的控制器之间互联。这些在当时并不是最通用的技术,但是可以提供高速、低延时的数据通信。而今天随着技术飞速发展,越来越多的快速、廉价的网络技术被普及,越来越快的存储介质远远突破传统存储控制器的IO设计能力,与此同时CPU的计算能力有极大的剩余,软件定义存储(基于X86服务器和以太网)也就自然而然的产生了。
刚刚提到的快速而且廉价的网络是指以太网,今天的标准有10Gb、40Gb、100Gb、25Gb,同时像RoCE这样的技术也越来越普及,高速和低延时的网络越来越容易获得。但是以太网是唯一的选择么?后面会给大家介绍各种协议的选择和。
本章内容主要介绍通过SAS(串行连接SCSI接口)网络来实现存储池化的方法。由于本章所展望的通过SAS实现SDS和以往的方法不太一样,所以需要有一些铺垫内容来介绍一些基础概念。本章涉及到的一些概念和现在的硬件和SDS不太一样,所以我们先在本章开始之前提出一个问题:服务器里面一定要有硬盘么?
SAS接口,也是目前服务器和存储设备中的最常见的存储协议,通常用来连接硬盘的协议,SAS协议兼容SATA协议。在服务器中通常由IOC(也叫SAS卡或者HBA卡)或Raid卡来实现PCIe协议到SAS协议的转换,HBA卡或RAID卡一般有8个SAS接口(少数卡支持16个或者24个接口),其中每4个SAS接口可以组合组合成一个宽端口,因为服务器内的SAS HBA或RAID卡是必备配件,为了减少服务器的内部PCIe插槽占用,这张卡片也有很多不同的外形。Server SAN里的都是采用HBA卡连接本地硬盘。如下图
SAS协议目前最新的版本是SAS 3.0,单端口的带宽是12Gb。一张8端口的HBA,可以提供理论上96Gb的SAS带宽,而HBA卡的PCIe 3.0 x8接口带宽是64Gb。所以HBA卡的SAS接口理论上没有瓶颈,可以充分发挥PCIe的带宽。每4个SAS端口组成一个宽端口,每个宽端口的带宽是48Gb。目前使用的宽端口的名称叫做Mini SAS HD,包括外部端口和内部端口。如下图
SAS协议可以说是无处不在,无论是服务器或存储设备中,只要有硬盘的地方就有SAS协议使用,除了我们前面提到的控制卡使用SAS协议,在服务器或存储设备上还有一个SAS端口扩展器,可以让一个8端口的控制卡连接几十块硬盘。由于这些器件通常都是放在机箱内部,大多数人对它们不常熟悉。
作为目前X86唯一的CPU供应商,Intel每隔一年半到两年左右就会发布新一代的CPU,而每个服务器厂家就会按照Intel的节奏发布新款服务器,我们以双服务器为例,每个厂家都会基于最新一代的IntelCPU发布十几个型号服务器,这些服务器最大的不同在于机箱的机械尺寸和存储的扩展性。所以我们提出希望统一计算部件,将服务器的计算部分和存储部分分离,实现数据中心的计算节点统一,在选择计算节点时候不需要考虑服务器支持多少个硬盘或者多少种类硬盘。服务器仅需要包括CPU、内存、网卡、HBA卡等基础部件即可。存储部分都在服务器外部。那么就需要一个设备可以把若干台服务器和大量的硬盘连接在一起。同时这个方案需要能被互联网行业使用,必须要满足高速交换、不改变现有操作系统、不改变应用习惯、不增加成本、扩展容易等特点。无论是2个至强CPU配置2个硬盘还是配置120块硬盘,都可以采用相同的服务器和相同的JBOD硬盘柜。如下图
上图上半部分是仅包含CPU、内存、网卡、SAS卡的计算节点,通过某一种网络和大量的硬盘或SSD连接在一起。硬盘可以按照需求任意分配给Fabric连接的服务器。这个Fabric需要满足高速、无阻塞、低延迟、低成本、低开销、技术成熟、较高的扩展性。可是这个Fabric究竟应该是什么样的协议呢?
可以选择的互联协议比较有限,目前看来,协议无非就是PCIe、Ethernet、SAS、FC等几种协议。为什么选择SAS协议来实现存储和计算物理解耦和呢?我们简单来看一下各种协议的现状,目前该方案采用了SAS网络,国内已经有2家公司量产了这种交换机,而且有超过2家的互联网企业采用了这种CPU和硬盘解耦和方案。下面我们通过协议的对比,看看为什么最终选择了SAS协议。
PCIe协议,一提到PCIe协议,大家就会觉得高带宽、低延时、直连CPU等等。反正就是快,采用PCIe协议再配合上NVMe来实现存储更符合技术发展的方向,但是我们现在需要的是一个Fabric而不是点对点的数据传输,在这个Fabric上要有多个节点和多个存储配件。
但是我们不能忽视PCIe协议目前的几个缺点,NVMeSSD的每GB成本还是远高于机械硬盘,PCIe交换机目前成本还比较高。PCIe交换机的扩展规模有限,以目前最大96 lanes(通)的单PCIe switch芯片为例,如果每个服务器需要x8的带宽,那么最大只能实现12个主机互联而且还没有考虑到PCIe存储设备连接到Switch芯片上,如果要多个交换芯片组成一个大的交换矩阵,PCIe端口扩展比较复杂。
PCIe交换机成本较高,目前PCIe交换机主要供应商是PLX和IDT,PCIe 3.0协议不支持多主机互联(需要使用非透明桥NTB来桥接主机和PCIe交换机)。用PCIe交换机来计算存储解耦和或者统一IO(存储、网络等),目前来看只是一个美好的愿望,但是还有很多要走。
戴尔的服务器产品较早使用PCIe交换机,从最初的GPU扩展,到多服务器节点共享存储资源,而且根据使用场景有不同的存储资源分配方案,目前配置了PCIe交换机的服务器主要有VRTX和FX2,这2款产品充分利用了PCIe交换的特点,并且这2款产品完全面向不同的业务,所以在存储扩展上采用了不同的实现方式。下图是IDT和PLX PCIe交换机芯片。
如果用PCIe Switch组成的解耦和如下图所示:考虑到HDD每GB成本比较低,实际使用中还需要HDD和NVMeSSD同时存在,那么必须要有PCIe到SAS的协议转换,而且Fabric里面有2中协议混合存在。如果要把接在SAS HBA下面的HDD要分配给不同的主机,有很大的难度,也有很多的挑战,这里不进一步详述。其实DELL的VRTX就是这么做的,把一张RAID卡虚拟成4张RAID卡,但是目前仅仅支持4个节点,主要面向中小企业和分支机构。
Ethernet协议,如果要通过连接今天的硬盘和CPU,需要通过几种协议的转换,在Initiator端,先要把PCIe转到Ethernet,在Target端,把Ethernet转到SAS或者NVMe协议。第一次协议转换相对比较容易,和现有的网卡一样的功能,这个特殊的网卡需要虚拟出一个块存储设备给CPU.但是在Target端协议转换却需要重新设计,硬盘或SSD需要有以太网接口,通常会采用RJ45接口,接口速率10G或更高的速率,硬盘需要把Ethernet协议转换成SAS协议或NVMe协议,目前没有任何类似的产品可以参考,FCOE协议和SASOE如下图。
参考FC协议到FCOE,SAS和NVMe协议也可以采用类似的逻辑,但是在Mapping的部分可以有不同的实现方式,比如在SAS(64位)地址和MAC(48位)地址的处理方式,可以采用变长地址,也可以2种地址完全无关直接packing,但是无论哪种方式,都需要网卡中有直接Offloadengine。
采用了这种SASOE后的结构如上图,从上图中可以看出,存储介质的接口需要改成Ethernet,通常采用RJ45接口,供电部分也可以直接使用POE,目前这只是我的一个假设,RJ45接口的缺点就是机械尺寸比较大,但是这个问题不大,毕竟8个触点还是比较好处理的。
改成这种结构以后,对OS和应用有什么需求么?如图24-8所示,这时候NIC就需要有较多的功能,在MAC层以上需要支持SASOE和NVMeOE的协议,通过NIC可以虚拟出存储设备,对于CPU和操作系统,这就是一个连接在PCIe总线上的存储设备,该虚拟存储设备由多个SASOE存储设备的存储空间组合而成,组合方式见后面的SAS DHBA卡工作原理。
可能有人会说为什么不用ISCSI协议呢?其实ISCSI协议和Ethernet转存储方式是类似的,只是Ethernet转存储时候没有IP层和传输层,转发效率上和封包速度上会快不少。IP转存储相关协议比如ISCSI协议,没有器件实现IP到SAS协议之间的转换,目前多用ISCSI网关(IPSAN存储设备等)来实现转换。下图对比ISCSI和SASOE的区别。
FC协议,虽然FC协议已经发展了十几年了,但是到今天为止FC协议的成本仍然不低,其次从CPU到硬盘或者SSD,如果采用FC互联,必须要经过PCIe转FC,FC转SAS两次转换。FC协议基本上不在考虑范围之内。
SAS协议,最后我们说说这个无处不在的SAS协议,目前从CPU到硬盘,仅仅是PCIe协议转SAS协议仅仅一次转换就可以了。通常是SAS HBA或RAID卡来实现转换。最大的缺点就是不支持NVMe协议。如下图。
最终可以实现的服务器计算部分和存储部分完全分离,CPU到每一个硬盘都可以实现无阻塞的交换,实现后的效果图和逻辑结构图如下
SAS交换机现状,最早的SAS交换机是LSI6160 SAS交换机,基于SAS2.0协议。最大16个端口。每个端口的带宽支持4*6Gb=24Gbps。浪潮在2015年推出了一个17换机,基于SAS3.0协议,每个端口的带宽是4*12Gb=48Gbps。理论上,现有的技术单交换机可以支持68个48Gbps端口。LSI的SAS交换机价格非常高,但是浪潮和英业达的SAS交换机已经把成本降到非常非常低。
肯定有人会担心SAS交换机的成本是不是很高,大家都知道一个最基本的道理,被大量广泛使用的技术,成本下降的最快,相比以太网和FC网络,大家对SAS网络不是很熟悉。其实SAS网络比以太网和FC网络更加普及,在通用服务器中,通常会有一个SASExpander和一个SAS RAID卡或HBA卡。按照端口数量来估算,每10-20台服务器有1个FC接口,每台服务器有2个以太网口,但是每台服务器有20-40个SAS接口(每张SAS RAID卡或HBA卡有8个接口,服务器硬盘热抽换背板上有24到36个SAS端口)。所以SAS的普及程度要远远高于其它的网络。而SAS交换机就是基于SAS Expander设计出来的。基于SAS协议的解耦和架构就是把每一个服务器的SAS Expander拿到机箱外部,并不会增加什么器件成本。
某互联网公司采用这种方案,可以实现高性能计算、热数据、温数据、冷数据存储采用统一的服务器。为什么这么说呢?各种应用类型的服务器最大的特点是CPU计算能力和数据量之间的比例,举例来说:高性能计算通常只需要2个硬盘RAID1配置,热数据采用若干块SSD,温数据采用12-16块7200转机械硬盘,冷数据可以配置到60块机械硬盘。今天上线的计算服务器,几年后新的CPU上市,原来的计算服务器需要被汰换,改为存储型服务器,假如原来的计算服务器最大仅支持2块硬盘,扩展硬盘容量是件很复杂的事情。但是如果采用SAS网络来更改CPU和硬盘的比例,就是件很容易的事情,不再收到机箱规格的。如下图。
上一节我们提出了低成本实现CPU和存储的解耦和,可以得到一个灵活配置的机架,可以减少服务器的种类,优化了BOM成本。在实际案例中评估上图方案的成本和一个机柜配置传统服务器成本略有优势。同时我们得到了一个连接所有CPU和硬盘的网络。
在实现了计算和存储的物理分离后,我们可以发现,其实任何一个CPU到任何一个存储介质(硬盘或SSD)都可以联通。我们在回去看看Server SAN的架构原理,如下图,大家不难发现在Server SAN的方案中,当数据在写入磁盘的时候需要保持多副本的一致性,必须要在其它的主机上同步写入数据,而副本的写入是是通过IP网络写入到其它的主机的硬盘上。
在现有硬件条件下,这是最好的方式,而且通过合理配置SSD、提高以太网络带宽以及降低网络延时,可以实现不错的性能。但是其缺点也是显而易见的,首先副本数据在写入其它主机的时候,需要经过的协议转换次数是很多的,而且这些协议的转换需要通过CPU来实现,数据传输的跳数比较多,主机开销也比较大。如图24-14。
从的图24-15可以看出,当一个虚拟主机需要写数据的时候,需要经过若干次软件处理,再通过必不可少的硬件设备,若干次的协议转换,最终实现副本写入到其它的主机的物理存储空间。整个过程的时延和CPU开销常大的。
但是,当Server的计算部分和存储部分分离之后,我们可以发现,其实当CPU写入到本机硬盘和其它主机的硬盘实际的物理径是一样的,甚至中间的跳数和协议的转换也是完全一样的,也就是说,有可能通过一步操作实现多个副本的写入,理论上想写几个副本就写几个副本,任何一个副本的开销和本地写开销完全一样,而且可以不经过任何软件层处理。当一个主机计划内或计划外下线了,其实它的所有的数据都在SAS交换网络上,甚至连主副本都在,只需要有某一个主机把这些数据再装载起来,完全不用担心,服务器离线后,服务器内的硬盘内的几十TB数据也一起下线了。如下图
只要文件系统可以很好的调度和管理主数据和副本,并且在CPU主机之间通过状态,就可以实现数据按照需要在不同的主机之间漂移,数据始终在那里,就想SAN存储设备一样,所有接在这个交换网络内的主机都有可能访问这些数据。和SAN不同的地方在于,网络内全是硬盘,这些硬盘怎么组成一个简单的高效快速存储空间呢?需要主机内的文件系统来管理逻辑存储空间到物理磁盘之间的映射关系,比如100块SSD,每块SSD提供10GB的空间,组成一个逻辑1TB的逻辑块设备。那么这个映射关系就需要文件系统来管理,而且需要对这个映射关系建立好副本。
在上图可以看到,全局的硬盘的数量比较多,元数据的存储、全局磁盘状态、副本数据校验等工作还需要在本机CPU上执行,同时一份数据需要3次写入。但是最大的挑战在于,必须要在OS的文件系统中支持这样的存储方式,所以需要对Server SAN或者云计算的文件系统层做出修改。如果想让任何操作系统都能支持,就需要多厂家都支持这种工作方式,比如VMware、Windows、Linux、Openstack、Ceph等等,但是如果要在一个数据中心里面,同时有多种操作系统,该如何才能像FC SAN那样来分配存储空间呢?短时间内要让操作系统厂家来支持这个方案,需要对操作系统进行比较大的改动,但是目前有一家云计算公司简称SS公司,他们已经让OpenStack支持SAS交换网络,从目前的情况来看,无论是IO能力还是CPU资源的占用都得到了极大的改善。
在上一节中文件系统必须是特殊定制的,虽然定制的复杂度很大,但是获得的收益也是很显而易见的,同时因为所有用到的配件都是量产成熟的硬件,SAS网络来实现数据写入硬盘的做法是目前比较理想和现实的。
前面提到的SS公司在开源的操作系统中先实现了基于SAS网络的数据传输,修改Ceph,让OpenStack来支持通过SAS网络实现CPU到硬盘的数据读写。但是如果要修改windows或者修改VMware则难度很大,有没有一种可能来实现不需要修改现有的操作系统就可以实现数据多副本写入到硬盘?可以让现有的操作系统或者任何单主机的操作系统,都能使用SAS网络呢?甚至Windows7也可以使用SAS网络实现多副本呢?
方法总是有的,在上一节总我们提出了虚拟地址到物理地址的映射关系,这个映射关系就是存储的核心,原来是交给文件系统来管理和动态,如果把这个管理的工作交给一个的硬件来完成呢?我们按照数据写入的径从文件系统往下一级一级的看,文件系统到CPU,CPU到PCIe总线,PCIe总线到SAS HBA,SAS HBA到SAS交换机,SAS交换机到硬盘,有机会承担这个映射关系管理工作的只有HBA或者交换机了。如果让SAS HBA实现这些功能。那我们看一看新SAS HBA需要增加那些功能,我暂时给这种HBA卡起一个名字叫DHBA。
DHBA主要作用是抽象真实的物理的存储空间(包括DHBA卡连接的SAS交换机以及连接在交换机上的硬盘和其它计算设备),通过抽象底层的硬件和结构,DHBA卡向上层CPU和操作系统提供一个逻辑的块存储设备,数据可靠性、一致性、读写优化、部分的物理存储资源的管理也是由DHBA卡来实现。如下图
大家肯定会问,万一这个DHBA卡坏了,数据是怎么的?业务会不会中断?这里简单介绍一下DHBA卡怎么实现的。
如上图示例,DHBA卡虚拟出一个SAS设备,操作系系统会认为这是一个20TB的硬盘,但是实际的存储空间是由200块磁盘各出100GB空间组成的,副本存储在其它的空间,按照3副本要求实际占用空间60TB。虚拟SAS设备和物理SAS存储之间采用地址映射的方式实现。如下表
从的表,大家可以看到,VirDev1是CPU和操作系统可以看到的本机的块存储设备,但是VirDev1实际上是不存在的,是由DHBA卡虚拟出来的卡片,而虚拟设备的存储块是由物理设备的存储块映射过来的。
上表中大家也可以看出,也可以由一个虚拟块映射到多个物理块,这样可以实现副本备份,也可以实现QOS调度等。通过合理的设计这个mapping表还可以实现灾难备份、精简配置、动态迁移等等,这个表是最小粒度的块地址映射,当然可以实现更大的粒度比如4M或者64M,或者采用连续块地址映射来优化映射算法。具体算法需要高手来实现。
通过的映射表可以实现很多高级的功能。比如精简配置的功能,虚拟设备照样提供20TB的空间,但是物理地址实际上仅提供2TB的空间。比如副本数量调整,一方面可以提高可靠性,另一方面可以实现某些应用的读取负载均衡,如下图,数据一次写入进虚拟存储空间,同时实现20份副本,每份副本提供给一个服务器。这样可以极快速提供最大数据读取IO能力。再比如写3副本的时候,1份副本采用SSD,同时读写,另2份副本仅写入,采用机械硬盘。这样可以实现较好的性价比。还有其它的一些功能在后面描述,比如容灾,HA,双活,高可用等。
整个存储网络由很多的硬盘组成,整个映射表也非常大。但是可以实现子表和总表分离,每个交换机存储全局的总表,每个子表和SAS端口对应,当服务器连接上SAS交换机端口,DHBA卡从总表下载下载对应端口的子表,然后DHBA卡建立虚拟SAS设备存储和物理空间的映射,这样服务器就可以从虚拟磁盘设备上直接启动和读写数据了。服务器完全不需要预装操作系统,也不需要配置存储和主机的映射。服务器和操作系统以及数据完全没有关系了,比如原来的一台服务器是双服务器,因为服务器需要升级到新的四服务器,只需要把新的四服务器连接到原来服务器对应的SAS端口,那么新的四服务器从SAS交换机下载对应的端口的子表后,就可以从原来的操作系统启动并读写原来的数据了。如图24-18。
有什么协议可以比SAS更合适未来的技术需求呢?比如NVMe+PCIe。或者NVMe over Fabric。假如是NVMe over Eth,那么的DHBA的映射技术还可以被用到新的协议上来么?以太网卡不仅可以把所有的IO统一,而且网络技术也成熟,现在网络速度很快,交换设备的交换容量也很大,而且现在的大二层的以太网方案也可以很好的支持各种OverEthernet存储技术。
在前面第三节的协议的选择的时候,提到过如何通过SAS over Ethernet或者NVMe over Ethernet。就目前的协议发展速度和方向来看,Over Ethernet几乎是一个很好的选择,但是其实现的复杂度要远远高于SAS网络。开发难度,相关硬件的成熟度等等。笔者认为在5-10年内SAS很有可能要继续发扬光大。
在第四节我们已经把数据和CPU彻底分开了,数据和CPU完全没有任何依存关系。任何CPU都可以按照策略或者按照需求来获得所需要的数据。把子表分配给某端口,某个端口连接的CPU就可以读写子表对应的逻辑存储空间,逻辑存储空间上的数据就属于该端口的CPU。
在说云计算之前稍微说一下虚拟化,因为今天的云计算基本上都是基于昨天的虚拟化发展过来的。与此同时今天的云计算也离不开现在的软件定义存储。
最初,一个物理主机上建立虚拟层,并且在虚拟层上创建若干硬件资源,在每个虚拟硬件资源上运行若干个操作系统,每个操作系统彼此。这个时候的虚拟化最大的优势是充分利用剩余的计算资源,在历史的发展过程中从开发、测试一步步的向生产系统迁移。
由于生产系统对可靠性要求比较高,而且随着SAN技术越来越成熟,通过把SAN加入虚拟化,人们可以将避免单物理服务器的故障,可以共享数据来实现更高速的集群计算,数据统一管理等。虚拟化不可避免的用到SAN技术,原先2台物理主机之间的HA并不能很好地解决数据一致性的问题,VMware推出了和上层操作系统和应用无关的vMotion让虚拟机和数据可以运行在不同的物理机上,而且这个过程平滑、快速,其实归根到底是数据所在的并没有发生改变。
2014年,VMware推出了VSAN,这个上市时间并不长的软件,成为今天的VMware云计算的一个核心组件。为存储的资源池化提供了技术保障。也可以说,VSAN是一个里程碑的产品。
笔者认为,数据和CPU的关系决定了今天的云计算的结构,我们通常考虑的事情是数据属于那个计算节点(CPU),数据就在那个计算节点上运行。原先通过SAN来实现数据耦合不同的物理主机,比如把LUN分配某一个主机,该LUN上的数据就可以被该主机读写。但是SAN的局限性有3点,不可能扩大到云计算的规模(速度、主机数);成本高;性能受限。但是VSAN可以在更大的网络规模上可以实现数据耦合不同的物理主机,硬件成本要比SAN节约很多,几十个主机合计的IO性能要高于传统的SAN。由于VSAN的多副本,可以轻松的实现数据和其它主机的耦合。
数据通过SAN被投射给不同的物理主机,而且因为SAN可以灵活的按照各种策略将数据投射到不同的物理主机。VSAN由于正本和副本数据存储在不同的物理主机上,可以按照需要来实现数据副本和其它物理主机的耦合,比如下图红色数据正本耦合在主机1,如果主机1宕机,红色数据副本符合可以立即耦合到主机2。
从图24-21可以看出,由于有虚拟层的存在,所以数据可以被轻松的耦合到任何一个物理主机,再分配给任何一台虚拟机,CPU或虚拟CPU)建立耦合关系。如果用运算能力较弱的物理CPU (ATOM或ARM)来替代虚拟CPU,只要数据可以灵活的和物理CPU耦合,那么也可以实现类似云计算的效果,如图24-22.
按照本章第四节所描述的方案,我们可以实现一个更灵活的云计算,计算资源和存储资源完全分离,数据的IO不依赖虚拟化或操作系统或应用软件的处理,而且多种作业系统可以在同一个下并存,如下图
产品的时候,我们常常与一个例子,每个人有一瓶水,但是可以把这些水存在一个大水桶中然后通过饮水机给用户提供水,这样可以节约水资源,更合理的分配,做到资源优化配置。但是我们忽略了,如果大家都很渴,都想喝很多谁的时候,一个饮水机的出口是不能满足大家一起喝水的,而且饮水机的容量越大,提供的喝水用户越多,瓶颈越明显。延伸一下,今天的软件定义存储是把许多瓶水用绳子捆在一起,每增加一瓶就增加一瓶水的容量,也增加一个出水口,容量和性能都很好的提高了,读者可以想象一下那个画面,还是有一些小小的不方便。或者有没有可能做一个大盘子,把水倒在盘子里,每个人都可以在盘子里直接喝水,只要盘子大,几百人也可以一起喝水,这个大盘子的容量和
IO能力远超其他的容器。最近(【编者按,指2015年的时候】)有一款具有意义的产品上市,它可以提供惊人的高速存储IO
PCIe的网络SSD存储介质,它就是DSSD。不知道各位是都注意到它的架构其实是和本章缩描述的SAS交换网络常类似的,在DSSD的材料中有一句话是“movethe system software out of IO path ”首先要有一个扁平高速网络,其次硬件要有一些的智能来执行必须的指令,指令来自于软件,但是软件不转发数据。就像许多人在一个大盘子里喝水。在笔者写下上述这些文字的时候,EMC
IO径之外。虽然有可能某些数据服务像副本、去重、压缩本质上还是属于数据IO,也许在未来也是有可能从数据IO上去除。但是你可以看到这个新设计的DSSD带来的影响(优势和劣势),极高的性能、极高的密度、一些新的目标市场”。---end---【编者按】
在SDS新书《软件定义存储:原理、实践与生态》,编者我撰写了第25章,《内存虚拟化与SDS及DELL Fluid Cache》,当时比较看好具有深厚SDS基因的Fluid Cache(脱胎于DELL收购的RNA),可惜不久也停产了,据说就是因为EMC有DSSD。没想到,时至今日,竟然听到花了10亿美元的DSSD将不再以原有面貌继续销售。
邀请朋友对您的留言点赞。签名包括如下8位作者:1)第9章 飞康软件 FreeStor作者 张瑾
7)第26章 容器与SDS 作者Henry Zhang(宁,他同时是《区块链技术指南》的作者);
推荐: