大家好,又见面了,我是你们的朋友全栈君。
存储虚拟化概述
一、基本概念
存储虚拟化(Storage Virtualization)最通俗的理解就是对存储硬件资源进行抽象化表现。典型的虚拟化包括如下一些情况:屏蔽系统的复杂性,增加或集成新的功能,仿真、整合或分解现有的服务功能等。虚拟化是作用在一个或者多个实体上的,而这些实体则是用来提供存储资源或/及服务的。
虚拟化技术到底是什么,其实广义上来说,就是通过映射或抽象的方式屏蔽物理设备复杂性,增加一个管理层面,激活一种资源并使之更易于透明控制。它可以有效简化基础设施的管理,增加IT资源的利用率和能力,比如服务器、网络或存储能力。
存储虚拟化是一种贯穿于整个IT环境、用于简化本来可能会相对复杂的底层基础架构的技术。存储虚拟化的思想是将资源的逻辑映像与物理存储分开,从而为系统和管理员提供一幅简化、无缝的资源虚拟视图。
对于用户来说,虚拟化的存储资源就像是一个巨大的“存储池”,用户不会看到具体的磁盘、磁带,也不必关心自己的数据经过哪一条路径通往哪一个具体的存储设备。
从管理的角度来看,虚拟存储池是采取集中化的管理,并根据具体的需求把存储资源动态地分配给各个应用。值得特别指出的是,利用虚拟化技术,可以用磁盘阵列模拟磁带库,为应用提供速度像磁盘一样快、容量却像磁带库一样大的存储资源,这就是当今应用越来越广泛的虚拟磁带库(VTL,Virtual Tape Library),在当今企业存储系统中扮演着越来越重要的角色。
二、存储虚拟化技术实现
按虚拟化对象划分,虚拟化存储实现方式主要有三种:
1. 基于主机的虚拟存储
基于主机的虚拟存储依赖于代理或管理软件,它们安装在一个或多个主机上,实现存储虚拟化的控制和管理。由于控制软件是运行在主机上,这就会占用主机的处理时间。因此,这种方法的可扩充性较差,实际运行的性能不是很好。基于主机的方法也有可能影响到系统的稳定性和安全性,因为有可能导致不经意间越权访问到受保护的数据。这种方法要求在主机上安装适当的控制软件,因此一个主机的故障可能影响整个SAN系统中数据的完整性。软件控制的存储虚拟化还可能由于不同存储厂商软硬件的差异而带来不必要的互操作性开销,所以这种方法的灵活性也比较差。
但是,因为不需要任何附加硬件,基于主机的虚拟化方法最容易实现,其设备成本最低。使用这种方法的供应商趋向于成为存储管理领域的软件厂商,而且目前已经有成熟的软件产品。这些软件可以提供便于使用的图形接口,方便地用于SAN的管理和虚拟化,在主机和小型SAN结构中有着良好的负载平衡机制。从这个意义上看,基于主机的存储虚拟化是一种性价比不错的方法。
2. 基于存储设备的虚拟化
基于存储设备的存储虚拟化方法依赖于提供相关功能的存储模块。如果没有第三方的虚拟软件,基于存储的虚拟化经常只能提供一种不完全的存储虚拟化解决方案。对于包含多厂商存储设备的SAN存储系统,这种方法的运行效果并不是很好。依赖于存储供应商的功能模块将会在系统中排斥JBODS(Just a Bunch of Disks,简单的硬盘组)和简单存储设备的使用,因为这些设备并没有提供存储虚拟化的功能。当然,利用这种方法意味着最终将锁定某一家单独的存储供应商。
基于存储的虚拟化方法也有一些优势:在存储系统中这种方法较容易实现,容易和某个特定存储供应商的设备相协调,所以更容易管理,同时它对用户或管理人员都是透明的。但是,我们必须注意到,因为缺乏足够的软件进行支持,这就使得解决方案更难以客户化(customization)和监控。
3. 基于网络的虚拟存储
基于网络的虚拟化方法是在网络设备之间实现存储虚拟化功能,具体有下面几种方式:
1) 基于互联设备的虚拟化
基于互联设备的方法如果是对称的,那么控制信息和数据走在同一条通道上;如果是不对称的,控制信息和数据走在不同的路径上。在对称的方式下,互联设备可能成为瓶颈,但是多重设备管理和负载平衡机制可以减缓瓶颈的矛盾。同时,多重设备管理环境中,当一个设备发生故障时,也比较容易支持服务器实现故障接替。但是,这将产生多个SAN孤岛,因为一个设备仅控制与它所连接的存储系统。非对称式虚拟存储比对称式更具有可扩展性,因为数据和控制信息的路径是分离的。
基于互联设备的虚拟化方法能够在专用服务器上运行,使用标准操作系统,例如Windows、SunSolaris、Linux或供应商提供的操作系统。这种方法运行在标准操作系统中,具有基于主机方法的诸多优势——易使用、设备便宜。许多基于设备的虚拟化提供商也提供附加的功能模块来改善系统的整体性能,能够获得比标准操作系统更好的性能和更完善的功能,但需要更高的硬件成本。
但是,基于设备的方法也继承了基于主机虚拟化方法的一些缺陷,因为它仍然需要一个运行在主机上的代理软件或基于主机的适配器,任何主机的故障或不适当的主机配置都可能导致访问到不被保护的数据。同时,在异构操作系统间的互操作性仍然是一个问题。
2) 基于路由器的虚拟化
基于路由器的方法是在路由器固件上实现存储虚拟化功能。供应商通常也提供运行在主机上的附加软件来进一步增强存储管理能力。在此方法中,路由器被放置于每个主机到存储网络的数据通道中,用来截取网络中任何一个从主机到存储系统的命令。由于路由器潜在地为每一台主机服务,大多数控制模块存在于路由器的固件中,相对于基于主机和大多数基于互联设备的方法,这种方法的性能更好、效果更佳。由于不依赖于在每个主机上运行的代理服务器,这种方法比基于主机或基于设备的方法具有更好的安全性。当连接主机到存储网络的路由器出现故障时,仍然可能导致主机上的数据不能被访问。但是只有联结于故障路由器的主机才会受到影响,其他主机仍然可以通过其他路由器访问存储系统。路由器的冗余可以支持动态多路径,这也为上述故障问题提供了一个解决方法。由于路由器经常作为协议转换的桥梁,基于路由器的方法也可以在异构操作系统和多供应商存储环境之间提供互操作性。
按虚拟化方式划分,虚拟化存储实现方式主要有三种:
4. 交换架构虚拟化
三层网络架构是采用层次化架构的三层网络。
三层网络架构采用层次化模型设计,即将复杂的网络设计分成几个层次,每个层次着重于某些特定的功能,这样就能够使一个复杂的大问题变成许多简单的小问题。三层网络架构设计的网络有三个层次:核心层(网络的高速交换主干)、汇聚层(提供基于策略的连接)、接入层(将工作站接入网络)。
核心层:核心层是网络的高速交换主干,对整个网络的连通起到至关重要的作用。核心层应该具有如下几个特性:可靠性、高效性、冗余性、容错性、可管理性、适应性、低延时性等。在核心层中,应该采用高带宽的千兆以上交换机。因为核心层是网络的枢纽中心,重要性突出。核心层设备采用双机冗余热备份是非常必要的,也可以使用负载均衡功能,来改善网络性能。
汇聚层:汇聚层是网络接入层和核心层的“中介”,就是在工作站接入核心层前先做汇聚,以减轻核心层设备的负荷。汇聚层具有实施策略、安全、工作组接入、虚拟局域网(VLAN)之间的路由、源地址或目的地址过滤等多种功能。在汇聚层中,应该选用支持三层交换技术和VLAN的交换机,以达到网络隔离和分段的目的。
接入层:接入层向本地网段提供工作站接入。在接入层中,减少同一网段的工作站数量,能够向工作组提供高速带宽。接入层可以选择不支持VLAN和三层交换技术的普通交换机。
网络交换架构从二层交换架构演进到三层交换架构后,网络的优化效果明显,配之以网管软件,网络的安全性和可防护性大为提高。通过合理配置核心交换机,充分发挥了核心交换机的硬件性能,调整核心交换机在带宽、网络流量处理能力位置结构,具备良好的扩展性,根据业务需求划分VLAN,控制广播范围,抑制广播风暴,提高了局域网的整体性能和安全性。整个网络可靠性得到加强,核心交换机采用双机热备份、负载平衡方式,即两台核心交换机正常情况下都参与工作,当其中的任何一台发生故障时,另外一台可以自动、无缝地接管它的工作,这对网络管理员、用户来说都是透明的,无需人工干预故障切换。提高网络对突发事故的自动容错能力,最小化网络的失效时间,而网络的扩展能力满足了虚拟化存储对网络的需求,支持了虚拟化存储在云计算与大数据中对存储能力的需求。
5. 磁盘阵列虚拟化
磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。
磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。
磁盘阵列其样式有三种,外接式磁盘阵列柜,内接式磁盘阵列卡和软件仿真。
外接式磁盘阵列柜最常被使用大型服务器上,具可热交换(Hot Swap)的特性,不过这类产品的价格都很贵。
内接式磁盘阵列卡,因为价格便宜,但需要较高的安装技术,适合技术人员使用操作。硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。它能提供性能、数据保护、可靠性、可用性和可管理性的解决方案。阵列卡需要专用的处理单元来进行操作。
利用软件仿真的方式,是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块硬盘配置成逻辑盘,组成阵列。软件阵列可以提供数据冗余功能,但是磁盘子系统的性能会有所降低,有的降低幅度还比较大,达30%左右。因此会拖累机器的速度,不适合大数据流量的服务器。
磁盘阵列虚拟化通常作为独立系统接入到主机,连接方式有直接连接和通过网络连接两种。磁盘阵列有多个端口可以被不同主机或不同端口连接。一个主机连接阵列的不同端口可提升传输速度。在磁盘阵列内部为加快与主机交互速度,都带有一定量的缓冲存储器。主机与磁盘阵列的缓存交互,缓存与具体的磁盘交互数据。在应用中,有部分常用的数据是需要经常读取的,磁盘阵列根据内部的算法,查找出这些经常读取的数据,存储在缓存中,加快主机读取这些数据的速度,而对于其他缓存中没有的数据,主机要读取,则由阵列从磁盘上直接读取传输给主机。对于主机写入的数据,只写在缓存中,主机可以立即完成写操作。然后由缓存再慢慢写入磁盘。
通过磁盘阵列虚拟化,提供了对物理硬件的基本抽象,磁盘阵列配合响应的管理软件能够方便地实现动态扩容,冗余计划,数据恢复等功能,在一定程度上提升了管理效率,是大型数据中心常用的基本存储虚拟化手段。
6. 应用设备内的虚拟化
应用设备存储虚拟化最常见的就是计算机虚拟内存,虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。
虚拟内存别称虚拟存储器(Virtual Memory),电脑中所运行的程序均需经由内存执行,若执行的程序占用内存很大或很多,则会导致内存消耗殆尽。为解决该问题,Windows中运用了虚拟内存技术,即匀出一部分硬盘空间来充当内存使用。当内存耗尽时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。
若计算机运行程序或操作所需的随机存储器(RAM)不足时,则 Windows 会用虚拟存储器进行补偿。它将计算机的RAM和硬盘上的临时空间组合。当RAM运行速率缓慢时,它便将数据从RAM移动到称为“分页文件”的空间中。将数据移入分页文件可释放RAM,以便完成工作。
对于三种不同的虚拟化方式,存储供应商都有各自的独门兵器。飞康的IPStor/NSS 存储虚拟化产品在2001年就已经出现在市场上,截止2014年已经正式发布了其第七代存储虚拟化产品,技术成熟度和广泛的应用范围都具备良好的可参考性。飞康 NSS 在接管底层存储子系统的磁盘卷时,可以采用两种方式来实现接入:一种是将底层磁盘卷直接虚拟化为Virtual Disk(虚拟磁盘)以供NSS管理和分配;另一种可将磁盘卷转换为SED(Service-Enabled Devices)磁盘设备以供NSS管理和分配。当转换为SED设备时,磁盘卷原有数据不会被修改,可以快速通过NSS分配给主机系统,整个接入过程非常简单,不需要数据迁移,停机时间很少,当然也可以实现快速回退,磁盘重新分配给原主机系统,可以被正确识别和使用IBM自两年前推出SVC(SAN卷控制器)(IBMSAN Volume Controller 对于存储虚拟化,IBM SAN Volume Controller(SVC)能够将多个磁盘系统的容量整合为一个单一的“容量池”。SVC 可帮助节省空间和能源,并能通过合并来简化存储资产的管理,这将极大地提高现有存储器的利用率,并减少额外的存储需求)产品后,在这一领域独占鳌头。去年,HDS(日立数据系统有限公司)紧随其后发布了TagmaStore通用存储平台(USP),这是基于磁盘阵列的解决方案。近几个月,EMC公司新发布的Invista网络存储虚拟解决方案则是基于存储交换的解决方案。
三、虚拟存储核心技术分析
存储系统必须在能力和性能上直线升级,将问题推给硬件系统并不是解决办法。存储虚拟化需要全新的软件方式来平衡扩容体系架构来实现数以千兆的数据传输和存储能力。
相关的存储技术优劣分析如下:
1. 基于主机存储的虚拟存储
基于主机的存储虚拟化依赖于代理或管理软件,它们安装在一个或多个主机上,实现存储虚拟化的控制和管理。由于控制软件是运行在主机上,这就会占用主机的处理时间。
因此,这种方法的可扩充性较差,实际运行的性能不是很好。基于主机的方法也有可能影响到系统的稳定性和安全性,因为有可能导致不经意间越权访问到受保护的数据。
这种方法要求在主机上安装适当的控制软件,因此一个主机的故障可能影响整个SAN系统中数据的完整性。软件控制的存储虚拟化还可能由于不同存储厂商软硬件的差异而带来不必要的互操作性开销,所以这种方法的灵活性也比较差。
但是,因为不需要任何附加硬件,基于主机的虚拟化方法最容易实现,其设备成本最低。使用这种方法的供应商趋向于成为存储管理领域的软件厂商,而且目前已经有成熟的软件产品。
这些软件可以提供便于使用的图形接口,方便地用于SAN的管理和虚拟化,在主机和小型SAN结构中有着良好的负载平衡机制。从这个意义上看,基于主机的存储虚拟化是一种性价比不错的方法。
2. 基于存储设备的虚拟存储
基于存储设备的存储虚拟化方法依赖于提供相关功能的存储模块。如果没有第三方的虚拟软件,基于存储的虚拟化经常只能提供一种不完全的存储虚拟化解决方案。对于包含多厂商存储设备的SAN存储系统,这种方法的运行效果并不是很好。
依赖于存储供应商的功能模块将会在系统中排斥JBODS(Just aBunch of Disks,简单的硬盘组)和简单存储设备的使用,因为这些设备并没有提供存储虚拟化的功能。当然,利用这种方法意味着最终将锁定某一家单独的存储供应商。
基于存储的虚拟化方法也有一些优势:在存储系统中这种方法较容易实现,容易和某个特定存储供应商的设备相协调,所以更容易管理,同时它对用户或管理人员都是透明的。但是,我们必须注意到,因为缺乏足够的软件进行支持,这就使得解决方案更难以客户化(customization)和监控。
3. 基于网络的虚拟存储
基于网络的虚拟存储优劣在2.3章节中已有详细分析,不再赘述。
四、SAN系统和NAS系统
1. SAN系统
存储区域网络(Storage Area Network and SANProtocols,简写SAN,即存储区域网络及其协议)是一种高速网络或子网络,提供在计算机与存储系统之间的数据传输。存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列。
SAN实际是一种专门为存储建立的独立于TCP/IP网络之外的专用网络。目前一般的SAN提供2Gb/S到4Gb/S的传输数率,同时SAN网络独立于数据网络存在,因此存取速度很快,另外SAN一般采用高端的RAID阵列,使SAN的性能在几种专业存储方案中傲视群雄。
SAN由于其基础是一个专用网络,因此扩展性很强,不管是在一个SAN系统中增加一定的存储空间还是增加几台使用存储空间的服务器都非常方便。通过SAN接口的磁带机,SAN系统可以方便高效的实现数据的集中备份。目前常见的SAN有FC-SAN和IP-SAN,其中FC-SAN为通过光纤通道协议转发SCSI协议,IP-SAN通过TCP协议转发SCSI协议。
SAN是计算机工作者们为了优化DAS而提出的另一种设计思想,它并没有试图在功能上将应用服务和存储服务完全解耦,而是希望服务器与存储设备之间通过专用光纤网络实现高速互连。如图1所示,一个SAN系统通常包括服务器连接器件、存储网络连接器件、存储设备和管理软件四部分组成,其中存储网络连接器件又可以细分为光纤通道集线器、光纤通道交换机和存储路由器等设备。
图1- SAN 网络
从设计角度来看,只要购买一个NAS服务器通过标准网络协议加入网络,就可以享受文件级的存储服务了;但是如果打算采用SAN设计存储网络的话,不仅需要购买服务器连接器件、存储网络连接器件、存储设备和管理软件,还需要事先规划设计好存储网络的拓扑结构。从使用上来看,SAN采用专用的光纤网络实现数据存取,能够获得高性能;
2. NAS系统
NAS被定义为一种特殊的专用数据存储服务器,包括存储器件(例如磁盘阵列、CD/DVD驱动器、磁带驱动器或可移动的存储介质)和内嵌系统软件,可提供跨平台文件共享功能。NAS通常在一个LAN上占有自己的节点,无需应用服务器的干预,允许用户在网络上存取数据,在这种配置中,NAS集中管理和处理网络上的所有数据,将负载从应用或企业服务器上卸载下来,有效降低总拥有成本,保护用户投资。
NAS本身能够支持多种协议(如NFS、CIFS、FTP、HTTP等),而且能够支持各种操作系统。通过任何一台工作站,采用IE或Netscape浏览器就可以对NAS设备进行直观方便的管理。NAS 网络架构如图2所示。
图2 – NAS 网络架构
SAN 和NAS的区别:
SAN是一种网络,NAS产品是一个专有文件服务器或一个只读文件访问设备。
SAN是在服务器和存储器之间用作I/O路径的专用网络。
SAN包括面向块(iSCSI)和面向文件(NAS)的存储产品。
NAS产品能通过SAN连接到存储设备
五、总结
1. 多层次存储虚拟化
存储虚拟化涉及网络(交换)架构,存储设备、主机等多个方面及层次,所以实现存储虚拟化需要在各个层次上通过相应的策略去实现。
2. 网络存储虚拟化是趋势
随着云计算趋势的深入,基于网络架构的虚拟化能够很大程度地促进企业存储解决方案的进一步发展,今后对企业私有云也会有很大的促进作用。基于云平台的大数据应用也会直接或者间接地得到更大的发展。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128756.html原文链接:https://javaforall.cn