我们到底应该怎样这种左右为难的境地当中的呢?显而易见,一方面,我们可以很容易的利用Windows或者Linux的文件服务器再加上直连存储系统或者SAN存储系统来构建出一台文件服务器来存放非结构化数据。另一方面,我们还有传统的纵向(Scale-Up)扩展方式的NAS系统,但是却不可横向(Scale-Out)扩展,扩展能力受限。比如,NetApp在发布Ontap8之前是并没有先进的集群以及单一命名空间的产品的,唯一的扩展方式就是再购买一台更大容量和性能的Filer(NetApp的NAS设备)或者干脆部署一台独立的NAS以脱离当前的NAS系统。
数据存储行业已经很深刻的认识到这个情况,很多厂商都已经采取了不同的策略推出了文件系统和NAS虚拟化产品,这些产品能够帮助用户解决当前面临的棘手问题。虽然这些产品被宣称可以解燃眉之急,但是市场反应还是比较冷淡。“块级别的虚拟化用了10年才得以深入人心,”Stillwater,Minn.-basedStorageIOGroup公司的创办者以及高级咨询师GregSchulz这样说道,“NAS虚拟化仍然处于早期阶段,在被人广为采用之前,会经历一段很长的时间。”
在后端的文件存储层与客户端之间嵌入一个逻辑层次,这种虚拟化文件访问的方法被认为是应对非结构化数据所带来的挑战的一种最保险的方式。与块级别的虚拟化类似,实现文件访问虚拟化的方式也不止一种,相反,我们有多种架构和方法来在文件虚拟化市场上角逐。
共享命名空间:相反的,共享命名空间,又被称为全局命名空间,会将多个物理设备或者节点之上的非共享命名空间整合成一个全局的单一的命名空间。有两种实现方法,第一种是简单的将后面的多台文件存储系统中的命名空间进行整合,然后成为一个新的统一命名空间,这种方式也是文件系统虚拟化产品以及集群NAS的普遍做法。第二种方式则是使用集群文件系统,也就是一个单一的文件系统会被分不到多个物理节点上。(译者注:前者可以理解为松耦合,后者可以理解为紧耦合,前者容易扩展,后者扩展性差。)
1.文件系统的虚拟化(整合)是文件虚拟化的方式之一。
站在一个较高的角度来审视的话,文件系统虚拟化相当于将多个独立的文件系统进行积累和整合,成为一个大的文件系统池,而客户端访问这个池的时候就像在访问一个单一的单元,感觉不到底层的多个独立文件系统的存在。换句话说,客户端所看到的是一个单一命名空间而不是底层的文件存储。底层的文件存储可以是一台独立的NAS设备,或者一批不同类型的文件服务器和NAS设备。文件系统虚拟化有针对性的解决了两个主要问题:它给用户提供了一个单一的虚拟文件存储空间;它提供了其他的存储管理功能比如在线数据迁移以及文件路径固定化处理(当文件在底层各个存储空间内移动的时候对上层客户端透明)。
文件系统虚拟化的一个最大好处便是它可以被方便的部署在现存的环境中同时不会对现存的服务器以及NAS设备产生影响。当然,也有一些劣势,即文件虚拟化并不能够简化对底层各个文件存储空间实体的管理操作。
2.集群文件系统是文件虚拟化的另外一种方式。
集群文件系统可以说是下一代NAS系统中的一部分,它的机制可以突破传统纵向(scale-up)架构的NAS系统所带来的限制。集群文件系统一般由提供块级访问的存储节点(典型情况下起配3个节点)组成,通过简单的向系统中增加更多的节点,整个系统可以扩展到PB级的文件存储容量。集群文件系统将所有节点粘合了起来,对外向客户端提供一个全局的单一命名空间。
提供基于集群文件系统的NAS厂商的代表有:FalconStorSoftware公司的HyperFS(OEM自中国国内的集群文件系统厂商:蓝鲸BWFS),Hewlett-Packard(HP)公司的StorageWorksX9000NetworkStorageSystems,IBM’sScaleOutNetworkAttachedStorage(SONAS),IsilonSystems公司,Oracle公司的SunStorage7000UnifiedSeries,Panasas公司,Quantum公司的StorNext以及Symantec公司的FileStore。
3.集群NAS系统是文件虚拟化的第三种方式。
集群NAS系统的架构囊括了基于集群文件系统的NAS系统的多个好处。与基于集群文件系统的NAS系统所不同的是,集群NAS系统并不是在所有节点上都承载同一个单一文件系统,而是在每个节点上都维护各自独立的文件系统,然后在高层将这些独立的文件系统进行松耦合,对外表现为同一个根路径入口,供客户端来访问。从某种意义上讲,集群NAS属于一种将横向(scale-out)技术、多节点存储架构与文件系统整合者三个角色结合起来的合体。除了可以整合异构文件系统之外,它还可以整合本地存储节点上的文件系统。BlueArc公司的Titan以及Mercury系列的横向架构的NAS是集群NAS的典型代表。
4.NAS网关可以看做一种文件系统虚拟化设备。
部署于块级存储系统前端,NAS网关可以凌驾于块级存储之上而提供NFS和CIFS协议的数据访问。这种网关设备大多数NAS厂商都提供,它通常可以允许将第三方经过认证的块级存储设备进行整合虚拟化,然后形成一个单一命名空间。
NAS虚拟化产品有些是开源软件。比如,ApacheHadoopDistributedFileSystem(HDFS)就是开源的,它可以处理分布式的文件同时保证文件的冗余,而且当某个文件尺寸大于其底层的物理存储空间时,仍然可以保证这个文件的逻辑视图,对上层屏蔽底层的差异。HDFS兼容商业化的硬件,可以支持几个甚至数以千计的节点。开源文件系统另外一个例子是GlusterclusteredfileSystem,利用它可以部署一个具有单一命名空间的NAS系统。
与其在传统的NAS系统上花费大量的费用,不如选择一个开源的文件系统,运行在廉价的硬件组件之上,这种做法显得更实惠。但是开源的文件系统对于企业来讲并不是一个最好的选择了。它们需要仔细的调校以及大量的维护工作,以及了解所选择的开源软件的细节。另外,这些开源软件并不提供与传统NAS一样的售前售后服务。可用性、可靠性、性能以及服务支持是企业存储所关注的,而这些正是开源软件的痛处。开源文件系统对于云存储提供商或者那些想用存储平台来获利的公司来讲却是一个很好的选择,同时,对于研究和教育机构来讲也是适合的,但是毕竟不适合企业用户。
在很多情况下,直接使用横向(scale-out)架构的NAS系统来替代现有的文件存储系统并不是一个好选择。能够将不同类型的文件存储系统整合成一个大的单一命名空间的文件系统虚拟化产品与传统NAS系统以及横向(scale-out)的NAS系统应当是一种互补的关系,尤其是在将传统文件存储转向新类型存储的期间。“很多用户购买了NAS,目的是得到一些诸如复制、归档以及快照等的增值功能,但是他们并不对所有文件都是用这些功能。”AutoVirt公司的市场副总裁BrianGladstein这样说道,“我们可以让这些客户将现存的低端文件存储与更高速更强的文件存储系统混合使用,同时给他们提供一个单一命名空间。”
即便是对于一些可以将他们的非结构化数据集中存储到支持单一命名空间的中心NAS设备的公司,也不可避免的存在一些并没有被整合进来的NAS孤岛。这些孤岛可能是存放有部门私有数据,或者被认为是一些不值得存放在相对较昂贵的NAS设备上的数据。文件系统虚拟化产品则允许将这些不怎么受待见的数据与NAS设备一起整合成为一个全局命名空间。
文件系统虚拟化的第二种使用场合是数据迁移。在导致数据从一个物理位置被迁移到另外一个物理位置所发生的众多原因中,主要的三个原因是:获得了新数据、存储基础架构升级以及数据重分布项目。因为文件虚拟化产品可以实现对不同类型的文件存储的虚拟化访问,所以这些产品就可以提供天然的数据迁移方案。另外一个应用场景则是自动分级存储。可以在文件虚拟化产品内嵌入一个可以根据不同元数据类型比如最后访问时间、文件尺寸及类型等而定义数据迁移规则的引擎,这样可以实现将对应的数据迁移到合适的存储层级中。
文件虚拟化产品有两种交付形态:独立的物理设备或者独立的软件产品。以软件形式交付的文件虚拟化产品,其优势则是提供非常灵活的部署以及对硬件的自由选择,而且这种形态交付的产品具有很低的厂商依赖性。相反的,以独立物理设备交付的文件虚拟化产品,一般会以一个整合的、经过性能优化以及其他优化的产品包形式交付,由于硬件和软件皆由同一家厂商提供,所以兼容性的风险也就降低了。
与微软DFS还有一点不同,AutoVIrt提供了一个策略引擎,它可以实现基于策略的数据迁移、整合、复制以及数据分级,同时毫不影响用户对数据的访问。目前这个引擎只支持CIFS,AutoVirt计划在年底推出对NFS的支持。
EMC的Rainfinity文件虚拟化设备:Rainfinity是EMC公司的一个文件虚拟化产品家族,可以虚拟化非结构化数据,同时也提供数据迁移以及文件自动分级服务。Rainfinity全名命名空间设备对用户以及应用程序提供了一个单一的挂载点,Rainfinity文件管理设备提供基于策略的自动分级,Rainfinity文件虚拟化设备提供了透明数据移动功能。
与F5的ARX所不同的是,Rainfinity文件虚拟化架构被设计为一种可以在带内与带外模式之间自由切换的模式。ARX在多数情况下为带外模式,数据流直接在客户端与后端的多个独立的文件存储系统之间流动。当有数据迁移的需求时,设备会切换到带内模式。