当前位置:首页 » 服务存储 » 虚拟化存储分类
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

虚拟化存储分类

发布时间: 2022-06-15 13:06:44

1. 存储虚拟化方式有哪些,请分析它们的用途及优缺点

您好,很高兴能帮助您
主机级别的方案中通常只是虚拟化直连主机的存储,当然也有一些可以部署在一个SAN环境中的多台存储子系统上。
早先的存储虚拟化产品常用于简化内部磁盘驱动器和服务器外部直连存储的空间分配,以及支持应用集群。Veritas Volume Manager和Foundation Suite就是首批这类解决方案,这类方案使得存储扩展,以及为应用程序和文件服务器提供空间更为简单快速。
随着存储需求的增长远远超过直连存储所能提供的范围,存储虚拟化逐渐成为存储阵列中的一种容量提供方式。而容量持续增长以及诸如iSCSI等小型IT组织负担得起的共享存储技术的出现又使得存储虚拟化技术也融合进基于网络的设备和运行在通用硬件的软件里。
不过现今的服务器和桌面虚拟化技术兴起给存储虚拟化技术带来了新的生机,而基于主机的存储虚拟化技术正在逐渐回归。服务器虚拟化平台必需要基于共享存储体系架构来实现一些关键特性,比如VMware的vMotion和Distributed Resource Schele (DRS)。通过传统的SAN架构自然可以实现这种共享存储体系架构,不过越来越多的IT组织开始寻求更简单的方式来实现共享存储。基于主机的虚拟化技术就是方式之一。
诸如VMware之类的服务器虚拟化供应商认为存储是妨碍虚拟化技术大规模普及的瓶颈之一。这些Hypervisor供应商已经实现了处理器和内存资源的抽象,实现更好的控制并提高资源利用率,他们自然而然也会希望这样控制存储。不过将存储控制功能整合到主机服务器端,称之为“存储Hypervisor”时会带来一些潜在的问题。处理一些在虚拟服务器和虚拟桌面环境中至关重要的存储服务,诸如快照、克隆和自动精简配置时,会严重影响主机服务器的性能。
Virsto的解决方案
Virsto开发出了一款软件解决方案,安装在每台主机服务器上(无论是一台虚拟机或Hypervisor上的过滤驱动器)并在主存储上创建一个虚拟化层,称为Virsto存储池。其同时创建一个高性能磁盘或者固态存储区域,成为“vLog”。读操作会直接指向主存储,不过写操作会通过vLog进行,这会给请求的虚拟机或应用程序发回一个确认。然后vLog将这些写操作异步地分布写入主存储,从而减少对写性能的影响。该存储池可以容纳多至4层的存储方式,包括固态存储和各类型的磁盘驱动器。
缓存的工作方式类似,vLog通过在存储前端降低耦合度改善了存储性能,降低了后端存储的延迟。其同时将前端主机的随机写操作变为顺序方式,实现后端存储的最佳性能。基于Virsto主机的存储虚拟化软件实现了以上这些功能。
虚拟存储设备
基于主机的存储虚拟化的另一项应用实例是虚拟存储设备(VSA)
VSA是运行在虚拟机上的存储控制器,其虚拟化统一集群中的主机所直接连接的存储。VSA提供一个主机使用的简易的存储共享体系架构,并支持高可用性、虚拟机迁移,并改善存储提供方式。对于很多企业,这种方式可以替代原本需要建立并管理传统SAN或NAS来支持虚拟服务器和桌面的体系架构。
vSphere Storage Appliance。VMware的vSphere Storage Appliance以一个虚拟机的方式运行,从在2个或3个节点集群中,每个ESX/ESXi主机所直连的DAS存储中,创建一个共享存储池。VMware VSA提供每个节点的RAID保护,并在同一集群的各个节点之间提供镜像保护。虽然从技术角度上看,VMware VSA是一个基于文件的体系架构,不过其亦为集群中每台主机提供数据块级别的存储虚拟化,并用户可以从这种部署方式中获取和基于数据块的共享存储一样的收益。
HP的LeftHand Virtual SAN Appliance。虽然和VMware VSA的功能类似,P4000 VSA软件可以支持每台主机直连DAS以外的方式。其还允许使用iSCSI或FC SAN等外部存储来创建共享存储池。这就意味着可以将如何可用的存储,本地存储或用于容灾的异地存储,转变为LeftHand存储节点。P4000t提供快照和自动精简配置,并且支持Hyper-V和VMware。
DataCore的SANsymphony-V。DataCore的解决方案是通过在一个虚拟机中部署其SANsymphony软件来整合其它各个VMware,Hyper-V或XEN主机的直连存储,形成共享存储池。SANsymphony-V可以和HP的解决方案那样虚拟化外部的网络存储,并且该软件可以在迁移到传统的共享存储体系架构时部署在外部服务器上。SANsymphony-V同时提供各类存储服务,譬如快照、自动精简配置、自动化分层和远程复制。
FalconStor的NSS Virtual Appliance。FalconStor的Network Storage Server Virtual Appliance(NSSVA)是该公司NASS硬件产品中唯一支持的VMware版本,用网络上其它主机的直连存储创建一个虚拟存储池。和DataCore和LeftHand的解决方案类似,该存储池可以扩展到网络上任何可用的iSCSI存储上。该NSS Virtual Appliance包括快照、自动精简配置、读/写缓存、远程复制和卷分层等存储功能。
基于主机的存储虚拟化解决方案是目前大多使用在虚拟化服务器和虚拟化桌面环境中,用以实现环境的高可用性特性,以及改善存储性能、利用率和管理效率。
你的采纳是我前进的动力,
记得好评和采纳,答题不易,互相帮助,

2. 什么是存储虚拟化

存储虚拟化(StorageVirtualization)最通俗的理解就是对存储硬件资源进行抽象化表现。通过将一个(或多个)目标(Target)服务或功能与其它附加的功能集成,统一提供有用的全面功能服务。典型的虚拟化包括如下一些情况:屏蔽系统的复杂性,增加或集成新的功能,仿真、整合或分解现有的服务功能等。虚拟化是作用在一个或者多个实体上的,而这些实体则是用来提供存储资源或/及服务的。在虚拟化领域流传着一个故事:一个好的虚拟化解决方案就好像游历一个虚拟现实的主题公园。当游客想象他正在城市上空滑翔时,传感器就会把相应的真实感觉传递给游客,并同时隐藏真实的力学环境。

同样,一个好的虚拟化工具可以对企业的存储设备做相同的工作,只不过过程也许会反过来首先建立一个框架,让数据感觉自己是存储在一个真实的物理环境里,之后操作者就可以任意改变数据存储的位置了,同时保证数据的集中安全。虚拟化技术到底是什么?其实广义上来说,就是通过映射或抽象的方式屏蔽物理设备复杂性,增加一个管理层面,激活一种资源并使之更易于透明控制。它可以有效简化基础设施的管理,增加IT资源的利用率和能力,比如服务器、网络或存储。存储虚拟化是一种贯穿于整个IT环境、用于简化本来可能会相对复杂的底层基础架构的技术。存储虚拟化的思想是将资源的逻辑映像与物理存储分开,从而为系统和管理员提供一幅简化、无缝的资源虚拟视图。

3. 存储虚拟化可以分为哪两大类

目前虚拟存储的发展尚无统一标准,从虚拟化存储的拓扑结构来讲主要有两种方式:即对称式与非对称式

4. 存储虚拟化的存储技术

存储系统必须在能力和性能上直线升级,将问题推给硬件系统并不是解决办法。存储虚拟化需要全新的软件方式来平衡扩容体系架构来实现数以千兆的数据传输和存储。
相关的存储技术主要有以下几点:
基于主机的存储虚拟化依赖于代理或管理软件,它们安装在一个或多个主机上,实现存储虚拟化的控制和管理。由于控制软件是运行在主机上,这就会占用主机的处理时间。
因此,这种方法的可扩充性较差,实际运行的性能不是很好。基于主机的方法也有可能影响到系统的稳定性和安全性,因为有可能导致不经意间越权访问到受保护的数据。
这种方法要求在主机上安装适当的控制软件,因此一个主机的故障可能影响整个SAN系统中数据的完整性。软件控制的存储虚拟化还可能由于不同存储厂商软硬件的差异而带来不必要的互操作性开销,所以这种方法的灵活性也比较差。
但是,因为不需要任何附加硬件,基于主机的虚拟化方法最容易实现,其设备成本最低。使用这种方法的供应商趋向于成为存储管理领域的软件厂商,而且目前已经有成熟的软件产品。
这些软件可以提供便于使用的图形接口,方便地用于SAN的管理和虚拟化,在主机和小型SAN结构中有着良好的负载平衡机制。从这个意义上看,基于主机的存储虚拟化是一种性价比不错的方法。
基于存储设备的存储虚拟化方法依赖于提供相关功能的存储模块。如果没有第三方的虚拟软件,基于存储的虚拟化经常只能提供一种不完全的存储虚拟化解决方案。对于包含多厂商存储设备的SAN存储系统,这种方法的运行效果并不是很好。
依赖于存储供应商的功能模块将会在系统中排斥JBODS(Just a Bunch of Disks,简单的硬盘组)和简单存储设备的使用,因为这些设备并没有提供存储虚拟化的功能。当然,利用这种方法意味着最终将锁定某一家单独的存储供应商。
基于存储的虚拟化方法也有一些优势:在存储系统中这种方法较容易实现,容易和某个特定存储供应商的设备相协调,所以更容易管理,同时它对用户或管理人员都是透明的。但是,我们必须注意到,因为缺乏足够的软件进行支持,这就使得解决方案更难以客户化(customzing)和监控。
一般而言,存储虚拟化的实现方式的另外一种分类方法是将其分为三种:交换架构虚拟化,磁盘阵列虚拟化,以及整合到应用设备内的虚拟化。对于三种不同的虚拟化方式,存储供应商都有各自的独门兵器。飞康的IPStor/NSS 存储虚拟化产品在2001年就已经出现在市场上 ,截止2014年已经正式发布了其第七代存储虚拟化产品,技术成熟度和广泛的应用范围都具备良好的可参考性。飞康 NSS 在接管底层存储子系统的磁盘卷时,可以采用两种方式来实现接入:一种是将底层磁盘卷直接虚拟化为Virtual Disk(虚拟磁盘)以供NSS管理和分配;另一种可将磁盘卷转换为SED(Service-Enabled Devices)磁盘设备以供NSS管理和分配。当转换为SED设备时,磁盘卷原有数据不会被修改,可以快速通过NSS分配给主机系统,整个接入过程非常简单,不需要数据迁移,停机时间很少,当然也可以实现快速回退,磁盘重新分配给原主机系统,可以被正确识别和使用IBM自两年前推出SVC(SAN卷控制器)(IBM SAN Volume Controller 对于存储虚拟化,IBM SAN Volume Controller(SVC)能够将多个磁盘系统的容量整合为一个单一的“容量池”。SVC 可帮助节省空间和能源,并能通过合并来简化存储资产的管理,这将极大地提高现有存储器的利用率,并减少额外的存储需求。)产品后,在这一领域独占鳌头。去年,HDS(日立数据系统有限公司)紧随其后发布了TagmaStore通用存储平台(USP),这是基于磁盘阵列的解决方案。近几个月,EMC公司新发布的Invista网络存储虚拟解决方案则是基于存储交换的解决方案。

5. 虚拟存储技术的网络的虚拟存储虚拟化的分类

网络的虚拟存储化技术是当前存储虚拟化的主流技术,它当前在商业上具有较多的成功产品。典型的网络虚拟存储技术主要包括网络附加存储NAS(Network Attached Storage)和存储区域网络SAN(Storage Area Network)。由于这两种系统的体系结构、通信协议、数据管理的方式不同,所以NAS主要应用于以文件共享为基础的虚拟存储系统中,而SAN主要应用在以数据库应用为主的块级别的数据共享领域。存储区域网络SAN是当前网络存储的主流技术。
虚拟化存储的实现可以分布在从主机到存储设备之间路径的不同位置上,由此可把基于网络的存储虚拟化细分为基于交换机的虚拟化、基于路由器的虚拟化、基于存储服务器端的虚拟化。

6. 请问现在好的虚拟化存储技术都有哪些

虚拟化技术广义上来说,就是通过映射或抽象的方式屏蔽物理设备复杂性,增加一个管理层面,激活一种资源并使之更易于透明控制。它可以有效简化基础设施的管理,增加IT资源的利用率和能力,比如服务器、网络或存储。

存储虚拟化实现形式分为三种:交换架构虚拟化,磁盘阵列虚拟化,以及整合到应用设备内的虚拟化。

对于三种不同的虚拟化方式,存储供应商都有各自的独门兵器。IBM推出SVC(SAN卷控制器)(IBM SAN Volume Controller 对于存储虚拟化,IBM SAN Volume Controller(SVC)能够将多个磁盘系统的容量整合为一个单一的“容量池”。SVC 可帮助节省空间和能源,并能通过合并来简化存储资产的管理,这将极大地提高现有存储器的利用率,并减少额外的存储需求。)产品后,在这一领域独占鳌头。HDS(日立数据系统有限公司)紧随其后发布了TagmaStore通用存储平台(USP),这是基于磁盘阵列的解决方案。

那么到底是哪种技术,哪家厂商的方案是最佳的呢?哪种方案会成为存储虚拟化大赛中的最终胜者呢?现在更多的专家认为,这场竞赛没有最后的赢家,越来越多人认为这三种技术应当结合使用。

如果我们把厂商和各自的虚拟化技术对号入座,那么三个虚拟化阵营都各自有一些代表厂商。虚拟化应用阵营的代表有SVC、StorAge、NetworkAppliance设备以及DataCore公司。而在磁盘阵列和光纤通道阵营里,HDS、Sun、hp以及Acopia提供了多样化的体系结构。交换机阵营则包括Invista、McData、Brocade、QLogic以及Cisco公司。

7. 光纤、iSCSI、NAS:谁是服务器虚拟化最佳存储类型

因为每个应用环境都是不同的,即使在一个地方表现良好,那也不能保证在其他地方同样合适。 对于服务器虚拟化环境来说,光纤通道存储是比较传统的选择。但现在iSCSI和NAS的普及程度也越来越高,毕竟它们的性价比更加突出。下面本文就来看看每一种网络存储技术的规格特性,并逐一分析它们的优势和不足。 光纤通道存储 单从性能和可靠性的角度看,光纤通道无疑是出色的存储架构,其它产品很难与之PK.但凡事都有两面性,使用光纤通道存储的确获得了高性能,可用户却不得不承担更高的成本,以及面对更复杂的技术架构。不过,光纤通道技术在数据中心领域的应用历史很长,基础非常好,因此比较大的虚拟化环境通常都倾向于选择光纤通道,这些用户主要还是考虑速度和可靠性的因素(光纤通道当前的带宽是8 Gbps,下一代是16 Gbps)。另外,光纤通道存储网络一直是相对独立的,因此与基于以太网的存储设备相比安全性更好。可问题是,光纤通道需要特殊的HBA主机适配器、特殊的交换机,而且这些配件比以太网络使用的同类配件更加昂贵。 客观的说,如果要从零开始构建一个光纤通道网络代价是很高的。除此之外,光纤通道环境的部署和管理也更复杂,与传统网络架构相比,它配置起来难度很大,熟悉此项技术的人才也偏少。当前,很多公司都有技术熟练的网络管理员,但其中却很少有光纤通道存储网络方面的管理人才。设计并管理一个SAN架构通常需要经过特殊的培训,这无形中又进一步增加了实施的费用。 光纤通道存储的优势: FC是部署企业级存储架构的首选,而且许多应用环境本身就已经在使用SAN了; 由于具有更高的可用带宽,通常情况下性能表现最好; 独立的光纤通道网络更安全;还有LUN zoning和LUN masking等访问控制机制; 支持boot from SAN(从存储启动系统),服务器本地不再需要硬盘; 基于block的块存储类型,可以使用VMware vSphere自带的VMFS卷(一种文件系统)。 光纤通道存储的不足: 从零开始构建的话,部署成本会很高; 需要特殊的、昂贵的配件,比如交换机、线缆和HBA卡; 实施和管理也许更复杂,通常需要专职的存储管理员; 可用的安全控制功能较少,实现认证和加密比较复杂。 如果用户的物理服务器上准备运行多个虚拟机,且应用类型对磁盘I/O有较高的要求,那么为了得到最佳的性能,用户或许应该认真考虑使用光纤通道存储系统。此外,FCoE也是一个选择,它相当于在传统的以太网设备上承载光纤通道协议。但目前FCoE必须部署在同样昂贵的10 Gbps以太网环境,需要特殊的交换设备。 如果用户的应用环境中已经有了FC SAN,那么在构建虚拟化平台时使用光纤通道储存是很合适的。扩展一个已有的SAN环境很容易,而且比部署一个全新的环境要便宜许多。如果用户的预算充足,而且有管理复杂环境的技术能力,那么选择光纤通道存储一定没错。

8. 存储虚拟化是什么集群存储又是什么

存储虚拟化广义上来说,就是通过映射或抽象的方式屏蔽物理设备复杂性,增加一个管理层面,激活一种资源并使之更易于透明控制。
存储虚拟化(Storage Virtualization)最通俗的理解就是对存储硬件资源进行抽象化表现。通过将一个(或多个)目标(Target)服务或功能与其它附加的功能集成,统一提供有用的全面功能服务。

集群存储是指:由若干个“通用存储设备”组成的用于存储的集群,组成集群存储的每个存储系统的性能和容量均可通过“集群”的方式得以叠加和扩展。

9. 简述虚拟化存储技术的三种实现方法及工作原理

从系统的观点看,有三种主要的存储虚拟化方法:

  1. 基于主机的虚拟存储;

  2. 基于存储设备的虚拟存储;

  3. 基于网络的虚拟存储。


方法1:基于主机的虚拟存储

基于主机的虚拟存储依赖于代理或管理软件,它们安装在一个或多个主机上,实现存储虚拟化的控制和管理。由于控制软件是运行在主机上,这就会占用主机的处理时间。因此,这种方法的可扩充性较差,实际运行的性能不是很好。基于主机的方法也有可能影响到系统的稳定性和安全性,因为有可能导致不经意间越权访问到受保护的数据。这种方法要求在主机上安装适当的控制软件,因此一个主机的故障可能影响整个SAN系统中数据的完整性。软件控制的存储虚拟化还可能由于不同存储厂商软硬件的差异而带来不必要的互操作性开销,所以这种方法的灵活性也比较差。

但是,因为不需要任何附加硬件,基于主机的虚拟化方法最容易实现,其设备成本最低。使用这种方法的供应商趋向于成为存储管理领域的软件厂商,而且目前已经有成熟的软件产品。这些软件可以提供便于使用的图形接口,方便地用于SAN的管理和虚拟化,在主机和小型SAN结构中有着良好的负载平衡机制。从这个意义上看,基于主机的存储虚拟化是一种性价比不错的方法。


方法2:基于存储设备的虚拟化

基于存储设备的存储虚拟化方法依赖于提供相关功能的存储模块。如果没有第三方的虚拟软件,基于存储的虚拟化经常只能提供一种不完全的存储虚拟化解决方案。对于包含多厂商存储设备的SAN存储系统,这种方法的运行效果并不是很好。依赖于存储供应商的功能模块将会在系统中排斥JBODS(Just a Bunch of Disks,简单的硬盘组)和简单存储设备的使用,因为这些设备并没有提供存储虚拟化的功能。当然,利用这种方法意味着最终将锁定某一家单独的存储供应商。

基于存储的虚拟化方法也有一些优势:在存储系统中这种方法较容易实现,容易和某个特定存储供应商的设备相协调,所以更容易管理,同时它对用户或管理人员都是透明的。但是,我们必须注意到,因为缺乏足够的软件进行支持,这就使得解决方案更难以客户化(customzing)和监控。


方法3:基于网络的虚拟存储

基于网络的虚拟化方法是在网络设备之间实现存储虚拟化功能,具体有下面几种方式:

1. 基于互联设备的虚拟化

基于互联设备的方法如果是对称的,那么控制信息和数据走在同一条通道上;如果是不对称的,控制信息和数据走在不同的路径上。在对称的方式下,互联设备可能成为瓶颈,但是多重设备管理和负载平衡机制可以减缓瓶颈的矛盾。同时,多重设备管理环境中,当一个设备发生故障时,也比较容易支持服务器实现故障接替。但是,这将产生多个SAN孤岛,因为一个设备仅控制与它所连接的存储系统。非对称式虚拟存储比对称式更具有可扩展性,因为数据和控制信息的路径是分离的。

基于互联设备的虚拟化方法能够在专用服务器上运行,使用标准操作系统,例如Windows、Sun Solaris、Linux或供应商提供的操作系统。这种方法运行在标准操作系统中,具有基于主机方法的诸多优势--易使用、设备便宜。许多基于设备的虚拟化提供商也提供附加的功能模块来改善系统的整体性能,能够获得比标准操作系统更好的性能和更完善的功能,但需要更高的硬件成本。

但是,基于设备的方法也继承了基于主机虚拟化方法的一些缺陷,因为它仍然需要一个运行在主机上的代理软件或基于主机的适配器,任何主机的故障或不适当的主机配置都可能导致访问到不被保护的数据。同时,在异构操作系统间的互操作性仍然是一个问题。

3. 基于路由器的虚拟化

基于路由器的方法是在路由器固件上实现存储虚拟化功能。供应商通常也提供运行在主机上的附加软件来进一步增强存储管理能力。在此方法中,路由器被放置于每个主机到存储网络的数据通道中,用来截取网络中任何一个从主机到存储系统的命令。由于路由器潜在地为每一台主机服务,大多数控制模块存在于路由器的固件中,相对于基于主机和大多数基于互联设备的方法,这种方法的性能更好、效果更佳。由于不依赖于在每个主机上运行的代理服务器,这种方法比基于主机或基于设备的方法具有更好的安全性。当连接主机到存储网络的路由器出现故障时,仍然可能导致主机上的数据不能被访问。但是只有联结于故障路由器的主机才会受到影响,其他主机仍然可以通过其他路由器访问存储系统。路由器的冗余可以支持动态多路径,这也为上述故障问题提供了一个解决方法。由于路由器经常作为协议转换的桥梁,基于路由器的方法也可以在异构操作系统和多供应商存储环境之间提供互操作性。

10. 分层存储与虚拟化技术的分层存储

分层存储其实已经不是一个新鲜的概念,而是已经在计算机存储领域应用多年。其与计算机的发明与发展相伴相生。在冯-诺依曼提出计算机的模型“存储程序”时就已经包含了分层存储的概念。“存储程序”原理,是将根据特定问题编写的程序存放在计算机存储器中,然后按存储器中的存储程序的首地址执行程序的第一条指令,以后就按照该程序的规定顺序执行其他指令,直至程序结束执行。在这里的外存储器与内存储器,就是一个分层存储的最初模型。
分层存储(Tiered Storage),也称为层级存储管理(Hierarchical Storage Management),广义上讲,就是将数据存储在不同层级的介质中,并在不同的介质之间进行自动或者手动的数据迁移,复制等操作。同时,分层存储也是信息生命周期管理的一个具体应用和实现。
而实际上,将相同成本及效率的存储介质放在不同层级之间进行数据迁移复制在实用性及成本上并不是有效的数据存储方式。因此,在不同的层级之间使用有差别的存储介质,以期在相同成本下,既满足性能的需要又满足容量的需要。这种存储介质上的差别主要是在存取速度上及容量上。存取速度快的介质通常都是存储单位成本(每单位存储容量成本,如1元/GB)高,而且容量相对来讲比较低。相应的,存取速度慢的介质通常是为了满足容量与成本方面的要求,既在相同的成本下可以得到更大的容量。所以,从这方面来说,分层存储其实是一种在高速小容量层级的介质层与低速大容量层级的介质层之间进行一种自动或者手动数据迁移、复制、管理等操作的一种存储技术及方案。
一般来说,分层存储中,我们将存取速度最快的那一层的介质层称为第0层(Tier 0),依次为第1层,第2层等等。理论上说,层级的划分可以有很多层,但是在实践中,最多的层级在5层左右。过多的层级会增加数据及介质管理的难道及可用性。因此在层级的设置上有一个拐点,即层级达到一个特定的层数时,会导致成本的上升,而使得可用性、可靠性都会相应下降。通常层级的设定在2-4层之间。如下图所示: 在计算机系统中,CPU 的运行速度往往要比内存速度快上好几百倍甚至更多,为了更多地榨取CPU的计算能力,就需要在访问数据的速度上进行提升,否则内存的速度将成为整个系统的性能短板。因此在这样的思想下,CPU慢慢发展出来1级或者2级这样的存储缓存。实际也表明,缓存的存在确实对于系统性能的提升起到了巨大的推动作用。
相应的,内存的访问速度又是硬盘访问速度的几百倍甚至更多,也是基于CPU类似的指导思想,我们能不能在存储之间也进行这样的分层(或者说缓存)以期提高系统的I/O性能,以满足应用对系统提出的更多高I/O的需求呢?
从某种意义上说,内存其实也就是充当了CPU与外部存储之间的另一个级别的缓存。作为用户来讲,我们当然希望所有需要用到的数据都最好是存在最高速的存储当中。但是这样近乎是乌托邦式的理想至少在当前来说是不现实的。在技术上的难度不说,成本的压力就会使得用户喘不过气来,再一个就是有没有必要的问题,因为有的数据根本都不需要一直存于这样的存储中。在计算机界中有一个很有名的理论,就是说,加上一个中间层,就可以解决计算机中许多的问题。而这个“中间层”也正是我们所寻求的,实际也证明这样的中间层确实取得了非常好的效果。
据IDC数据预测,到2012年,信息数据的增长将会达到50%的复合年增长率,这个增长主要源于越来越来多数据内容生成并存储,经济全球化使用商业各个部门及与商业伙伴之间需要保持连接,使得更多的数据被生成,复制及保存。法规遵从及管理,还有容灾与备份都使得数据的增长持续上升。天下没有一劳永逸的解决方案,我们需要根据不同的数据存储需求,设计不同的存储方案。比如归档,我们可以将数据存储在磁带上,比如需要频繁访问的实时数据我们可以放在内存或者SSD(固态硬盘)设备中,对于容灾或者备份,我们可以使用大容量低成本的存储来应对。正所谓好钢用在刀刃上,用户也希望把资金投向更能产生效益的存储上。
除了需要满足不同的存储需求,还有出于对于高性能高吞吐量应用的支持。因为有的应用需要这样存储系统。特别是现在风头正劲的虚拟化技术。为了在一台设备上支持更多的虚拟应用,就需要系统支持更大的吞吐量以及更高的性能。全部采用高速介质在成本上现在依然不是可行的,也不是必须的。因为根据数据局部性原理,往往被频繁访问的数据是局部而有限的。为了应对部份这样的数据而全采用高速存储实在是过于奢侈。如果我们针对这部份数据另开小灶来解决不是更好?所以分层存储在这里就可以大展拳脚。我们把高频率访问的数据放在高速存储介质上,而其他的数据放在速度较慢一些的介质上,这实际上就是提高了系统的吞吐量。 从计算机系统角度来说,最上层的存储层应该是CPU内的各类型寄存器,其次是CPU内的缓存,其次再是系统内存。因为从分层存储的定义上,此类型存储器是符合定义规则的。因为这些存储器速度与容量都有差别,越靠近CPU的存储器成本越高,速度越快,容量越小,并且在CPU的控制下,数据这些不同类型的存储器中间进行自动的转存。比如寄存器通常在16、32、64、128位之间,而缓存则在几十个字节及到几兆字节之间,内存容量当前通常都在几百兆字节以上,服务器级的内存也上几十个吉字节。很有意思的是,这类型的分层也非常符合上图所示的效益成本曲线图。层级过多时,对于CPU的硬件设计及不同层次之间的数据一致性的保证都是一个挑战。所以,现代CPU在寄存器与内存之间的缓存基本在1-3级。而我们通常使用的386平台的CPU(Intel 及 AMD)基本上都只有两级缓存。这类存储都有一个共同的特点,就是系统掉电后数据不复存在。我们将此类型的分层存储称为易失性存储分层,或者内部存储器分层存储。
而另外一种分类,则是非易失性分层存储,或者叫外部分层存储。此类型的存储介质一般包括固态硬盘(SSD)、机械式硬盘、光盘、闪存盘(包括外置硬盘)、磁带库等等。而此类的存储介质分层正是我们所要关注的,如没有特殊的说明情况下,在此文档中所说的分层存储都是指外部分层存储。一般来说,作为第0层的存储介质通常为 RAM 磁盘(随机访问存储磁盘,其速度与内存同速,但是价格昂贵,使用环境基本上是特殊计算环境)以及 SSD,第1层可能有 FC 15K硬盘或者SAS 15K硬盘,或者相应的10K硬盘。第2层可能有其他类型的硬盘及磁盘库等。第3层,可能是如磁带库以及光盘库这样的离线介质。当然这样的分层不是标准,但是一个实践中常用的分层策略。
如 D2D2T 这样的存储方案,其实就是分层存储的一个实践方案。数据从本地的磁盘转存于于另一个远程的磁盘(D2D)。这个磁盘的形式可以是一个JBOD,或者一个虚拟存储设备,然后再通过一定的转存策略将这个磁盘的数据转存于磁带库或者磁带(D2T)。爱数备份存储柜X系列都支持D2D2T这样的应用。 由上一节可知道,外部分层存储只不过是内部分层存储的一个外延。所以,外部分层存储考虑的问题与内部分层存储实际上是大同小异的。
1、 首先是数据一致性的问题。这个问题比较好理解。如果不同的数据在不同的存储层级之间存在时,数据的改写必然导致数据的不致的问题。在内部分层存储时,可以采用通写策略或者回写策略。而不同的方法也有各自优缺点,这里就不再赘述。但是外部分层存储与内部分层存储有一个最大的不同是,内存储最终数据需要写到内存中,而外分层存储中,则不是必须的。当然也可以设计成这样的实现方案,但是这样话,分层存储的性能优势则必定会受到影响。数据在不同层级之间的连续性可以由一个虚拟层来保证。这个我们在谈到虚拟化时会讨论这个问题。
2、 第二个问题就是命中率的问题。如何设计一套算法或者实现策略来提高数据系统的命中率是分层存储中是否能起到其相应作用的关键。这个与CPU的缓存机制是完全一样的。不过,CPU的缓存机制已经有一套非常成熟的算法设计。而外部分层存储与内部分层存储有其不同的特性,因此,CPU中的缓存机制不能全部照拿过来用。特别是CPU的缓存机制还主要是硬件设计上面的问题。而外部存储层可能还与一些逻辑设计相关,比如文件系统,文件等。从这点上说,外部分层存储的软件设计上比起CPU缓存的设计可能要更复杂一些。
3、 第三个问题就是在分层介质的选择上。上面也提过,不同层级之间的介质应该是有差别的,否则就失去了分层的意义。一般来说,高速介质应该是小容量、高成本,随着层级的往下走,其成本容量曲线应该呈现如下的形式:
即容量越大的单位成本越低,速度越慢,因此应该放到更低的层级中,反之亦然。因此,在存储介质的配置上如何找到一个合适的点,使得成本与效益最优化则是在分层介质选择及策略制定上需要考虑的问题。下面的图中给出了一个实际的可能的配置方案:1、 第四个问题就是数据分层的级别。对于数据的描述有字节级,块级(包括扇区及簇),文件级及文件系统级。当然不同的级别有不同的应用场合,并不是哪种级别好于哪个级别。对于文件级的分层,对于归档,法规遵从则比较适合。对于文件系统级的则多用于容灾及备份系统中。对于块级则可能用在虚拟化中较为合适。因此需要根据不同的需求制定不同的分层级别。
2、 第五个问题就是数据的迁移策略的设计。可以根据数据的重要性、访问频度、大小、年龄来制定迁移策略。但是如同第四点所说明的那样,不同的策略是有不同的应用场合的,没有孰优孰劣的问题。好的策略应该是不同最优策略的组合,也就是因“需”制宜地选择合适的迁移算法或者方法。根据年龄进行迁移的策略可以用在归档及容灾备份系统中。根据访问频度则可以用于虚拟化存储系统中等等。类似的方法已经用于计算机软件设计或者硬件设计当中的很多地方,如LRU(最近最少使用)、ARC(自适应交替缓存)都是可以借鉴的。