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