光纤通道的引进为分布式存储系统的应用扫清了道路,使得异构主性能够在分布式存储系统中实现共享。"存储公用设施模型"要求存储系统的治理处于集中控制之下,同时答应分布于不同地理位置的主性能够访问集中治理的数据,用户不必考虑存储设备的布局方式、采用何种存储系统以及资源如何配置。同时,用户也会有一种强烈的安全感,确信未经授权的数据访问将会遭到严禁。
要使"存储公用设施"从理论走向实用,存储系统必须满足下列要求:
支持从异构主机到异构存储系统的透明访问。即服务器可以运行异构操纵系统,例如SunSolaris、HP-UX、Windows或Linux等等。存储设备可以来自不同的供给商,无论是EMC、康柏、Sun还是戴尔公司的存储设备,都可以顺利地接进系统。
支持24×7小时的数据可用性。
高性能的数据访问。
数据安全性——只答应有访问权的用户进行访问相应的数据。
平滑的存储容量扩展——存储网络上添加存储设备的过程对用户透明,而且任何服务器都不需停机。
支持数据保护和恢复。
透明的数据迁移——由于系统故障或者存储系统重新配置所进行的数据迁移不改变用户访问数据的方式。
存储系统在线重新配置——当用户请求新的存储需求或要求访问权限调整时,不会中断其他用户的数据访问。
存储虚拟化是支持存储公用设施模型的关键技术,是安全可靠的动态存储池,可以适应和包容丰富多样、迅速发展的存储设备,具备为异构服务器和客户机提供服务的能力。因此,虚拟存储系统必须具备下列功能:
存储协议的自由转换,例如从SCSI到光纤通道协议或者从SSA到光纤通道协议,能够支持异构存储和服务器环境。
支持高可用性和高性能SAN存储配置,例如指定主从镜像和空闲驱动器、产生合成式驱动器、联结多个存储子系统构成单一驱动器、实现集中治理以及灵活的存储容量扩充。
具有可视性和可治理性,能够在更新和恢复等突发事件发生时及时通知治理员。
通过TCP/IP网络实现n路镜像、快照和异步远程拷贝等数据复制操纵。
存储设备的故障或任何在主机和存储子系统路径上的设备(例如路由器、主机适配器或交换机等)故障能够触发自动故障接替。
可以实现定时自动备份和恢复。
可以实现数据高速缓存。
可以控制主机访问不同的存储设备分区。
自从存储虚拟化成为热门技术以来,很多供给商开始采用不同的系统结构实现存储虚拟功能,但其完整性和容量水平有所差异。
从系统的观点看,有三种主要的存储虚拟化方法:
基于主机的虚拟存储;
基于存储设备的虚拟存储;
基于网络的虚拟存储。
方法1:基于主机的虚拟存储
基于主机的虚拟存储依靠于代理或治理软件,它们安装在一个或多个主机上,实现存储虚拟化的控制和治理。由于控制软件是运行在主机上,这就会占用主机的处理时间。因此,这种方法的可扩充性较差,实际运行的性能不是很好。基于主机的方法也有可能影响到系统的稳定性和安全性,由于有可能导致不经意间越权访问到受保护的数据。这种方法要求在主机上安装适当的控制软件,因此一个主机的故障可能影响整个SAN系统中数据的完整性。软件控制的存储虚拟化还可能由于不同存储厂商软硬件的差异而带来不必要的互操纵性开销,所以这种方法的灵活性也比较差。
但是,由于不需要任何附加硬件,基于主机的虚拟化方法最轻易实现,其设备本钱最低。使用这种方法的供给商趋向于成为存储治理领域的软件厂商,而且目前已经有成熟的软件产品。这些软件可以提供便于使用的图形接口,方便地用于SAN的治理和虚拟化,在主机和小型SAN结构中有着良好的负载平衡机制。从这个意义上看,基于主机的存储虚拟化是一种性价比不错的方法。
方法2:基于存储设备的虚拟化
基于存储设备的存储虚拟化方法依靠于提供相关功能的存储模块。假如没有第三方的虚拟软件,基于存储的虚拟化经常只能提供一种不完全的存储虚拟化解决方案。对于包含多厂商存储设备的SAN存储系统,这种方法的运行效果并不是很好。依靠于存储供给商的功能模块将会在系统中排斥JBODS(JustaBunchofDisks,简单的硬盘组)和简单存储设备的使用,由于这些设备并没有提供存储虚拟化的功能。当然,利用这种方法意味着终极将锁定某一家单独的存储供给商。
基于存储的虚拟化方法也有一些上风:在存储系统中这种方法较轻易实现,轻易和某个特定存储供给商的设备相协调,所以更轻易治理,同时它对用户或治理职员都是透明的。但是,我们必须留意到,由于缺乏足够的软件进行支持,这就使得解决方案更难以客户化(customzing)和监控。
方法3:基于网络的虚拟存储
基于网络的虚拟化方法是在网络设备之间实现存储虚拟化功能,具体有下面几种方式:
1.基于互联设备的虚拟化
基于互联设备的方法假如是对称的,那么控制信息和数据走在同一条通道上;假如是不对称的,控制信息和数据走在不同的路径上。在对称的方式下,互联设备可能成为瓶颈,但是多重设备治理和负载平衡机制可以减缓瓶颈的矛盾。同时,多重设备治理环境中,当一个设备发生故障时,也比较轻易支持服务器实现故障接替。但是,这将产生多个SAN孤岛,由于一个设备仅控制与它所连接的存储系统。非对称式虚拟存储比对称式更具有可扩展性,由于数据和控制信息的路径是分离的。
基于互联设备的虚拟化方法能够在专用服务器上运行,使用标准操纵系统,例如Windows、SunSolaris、Linux或供给商提供的操纵系统。这种方法运行在标准操纵系统中,具有基于主机方法的诸多上风——易使用、设备便宜。很多基于设备的虚拟化提供商也提供附加的功能模块来改善系统的整体性能,能够获得比标准操纵系统更好的性能和更完善的功能,但需要更高的硬件本钱。
但是,基于设备的方法也继续了基于主机虚拟化方法的一些缺陷,由于它仍然需要一个运行在主机上的代理软件或基于主机的适配器,任何主机的故障或不适当的主机配置都可能导致访问到不被保护的数据。同时,在异构操纵系统间的互操纵性仍然是一个题目。
2.基于路由器的虚拟化
基于路由器的方法是在路由器固件上实现存储虚拟化功能。供给商通常也提供运行在主机上的附加软件来进一步增强存储治理能力。在此方法中,路由器被放置于每个主机到存储网络的数据通道中,用来截取网络中任何一个从主机到存储系统的命令。由于路由器潜伏地为每一台主机服务,大多数控制模块存在于路由器的固件中,相对于基于主机和大多数基于互联设备的方法,这种方法的性能更好、效果更佳。由于不依靠于在每个主机上运行的代理服务器,这种方法比基于主机或基于设备的方法具有更好的安全性。当连接主机到存储网络的路由器出现故障时,仍然可能导致主机上的数据不能被访问。但是只有联结于故障路由器的主机才会受到影响,其他主机仍然可以通过其他路由器访问存储系统。路由器的冗余可以支持动态多路径,这也为上述故障题目提供了一个解决方法。由于路由器经常作为协议转换的桥梁,基于路由器的方法也可以在异构操纵系统和多供给商存储环境之间提供互操纵性。
谁能胜出?
每一种方法都有其优缺点。
基于主机和基于存储的方法对于初期的采用者来说魅力大,由于他们不需要任何附加硬件,但对于异构存储系统和操纵系统而言,系统的运行效果并不是很好。对于那些要求大限度进行互操纵的企业来说,基于交换机或基于路由器的方法可能更为恰当。对那些要求更高可扩充性的用户来说,基于路由器的方法是最优选择。基于互联设备的方法处于两者之间,它回避了一些安全性题目,存储虚拟化的功能较强,能减轻单一主机的负载,同时可获得很好的可扩充性。
不同供给商的存储虚拟化实现方法不同,一些偏重于复制,一些擅长备份,而另外一些在恢复和访问控制方面性能更为优越。存储治理软件供给商趋向于提供最完善的治理套餐。但是,多平台的支持和最佳的性能特性并不轻易达到最优。
在数据复制方面已经发展出多种镜像方法。很多存储供给商提供三层镜像结构,Veritas公司甚至能够提供四层镜像结构。镜像在一些方面受到推崇,全面镜像能在另一个驱动器上产生完全相同的副本。这个附加的副本有时也称为快照,只存储以前版本的数据。有时,在不同地理位置上存在的副本驱动器,通过IP相连能产生远程或异步副本。
在存储网络中,存储访问控制经常在分区(Zoning)式的主机和存储系统中进行。只有属于同一个分区的主性能够访问这个分区的存储设备。主机和存储设备经常是多分区的一员。分区制的理念与虚拟专用存储网络相似。
分区有多种方法。随着共享存储的粒度和治理难易程度不同,分区方法的差异很大。基于端口的分区经常在交换机中实现,交换机内部的访问必须在指定的端口之间进行。这种分区的特色是分区之间不能重叠。当指定的端口分区成员发生变动时,分区需要重新配置。这种方式有着明显的缺陷,由于大多数情况下,即使交换机端口发生调整,也不答应改变分区成员的一致性。
子系统分区或卷映射经常由内部磁盘子系统的控制器来实现,它答应整个或部分驱动器成为其数据出口,使得单一存储子系统看起来似乎是多驱动器和多主机。基于逻辑单元设备号掩码(LUNmasking)之上的分区在主机I/O控制器、主机软件或路由器上得以实现。LUN掩码像一个过滤器,只答应主机访问特定的存储资源,它也答应一个存储子系统中单一驱动器能够属于不同的分区,从而产生设备层面的分区。
存储虚拟化功能的复杂性很轻易在很多供给商中产生一种"人人都能做虚拟化"的错觉,实在是各商家采取了不同的标准来定义"虚拟化".供给商之间技术的整合和合作随时都可能发生。因此要求数据中心经理们具备良好的技术知识,以便清楚地了解自己需要的是什么。