块与文件是存储领域的一个出发点,采用何种模式很大程度上决定了各类存储设备的性能。
在讨论存储连接技术时有一个非常基础的问题,“是块还是文件?”换句话说,“存储如何才能更好地服务于应用,在服务过程中,应用更看重哪些指标,性能、共享还是对实际存储设备的控制?”
当初文件服务器和NAS的重点就是共享文件,把存储当作一个虚拟的文件系统看待。在这种环境里,服务器进行所有的磁盘管理工作,存储被抽象成每个客户端自有的文件系统。
文件形式的存储有一些弊端,其中主要有以下一些方面。
软件开销影响性能:TCP/IP是一种非常占用软件资源的网络设计,需要大量的处理开销。这对于Web浏览这样的应用来说通常不会构成任何问题,但是对于需要很高性能的存储应用来说,无疑会造成相当大的影响。
对数据库的适用性:由于NAS应用的设计都是针对文件I/O处理的,所以并没有针对一些数据库应用的I/O需求进行优化。它们不允许数据库程序员利用“裸”数据块获得更高的性能。因此,典型的数据库在NAS设备上的性能将不如它们在DAS、SAN或者iSCSI上的性能。
与此不同,大型机系统以及后来的SAN使用块模式与存储通信。在这种情况下,客户端把存储资源看作是“裸”磁盘空间,因此,把这些空间当作是内部的本地磁盘管理。这种方法的优势是,出现了类似本地磁盘的中央存储池,它的性能与本地磁盘相当,并且对应用是透明的。
块与文件这两种模式已经共存了很长一段时间,而且还会在相当长的时期继续存在下去。但是,随着TCP/IP成为无处不在的网络技术,它们也发生了一些有趣的变化。大家都知道,TCP/IP技术已经十分成熟,其成本下降到所有用户都可以接受的程度,重要的是,随着技术的不断进步发展,它也提供了一种高速基础架构,而价格却比传统的块模式网络??比如,ESCON(Enterprise Systems Connection,企业系统连接)和Fibre Channel(光纤通道)??低很多。IP存储的出现加速了TCP/IP与光纤通道网络的融合,尤其是最近iSCSI的飞速发展更坚定了大家的信心。
在iSCSI出现之前,NAS与SAN采用的存储连接方式截然不同,前者是IP网络而后者是块模式(主要是光纤通道)。有意思的是,iSCSI是运行在TCP/IP之上的块模式协议,将两者的优势很好地结合起来。
面对这些技术与方案,许多用户都迫不及待地提出这样的问题:我们究竟应该选择什么样的方案来满足存储需求呢?
笔者认为,现在并不是下结论的时候。一方面技术还在不断的发展进步,另一方面更需要用实际的应用经验来说话。
比如,用户可以完全不相信数据库只适合块模式存储,可以使用NAS或者近期出现的文件系统虚拟化技术进行尝试;用户也不一定认为只有NAS才能够在服务器集群系统中对同一磁盘空间进行共享,可以尝试使用像IBM的General Parallel File System,它提供的共享磁盘文件系统可以允许多个块模式存储对同一个文件进行共享。
我们最应该做的是广泛采用这些新技术,为将来做好准备。在这方面我们的用户已经成熟许多,有些宝贵的经验值得借鉴。举个例子来说,我们了解到,许多用户的存储环境中都采用了来自多厂家的设备。也许这些设备在互联互通方面存在一些小问题,但是带来的好处是巨大的:用户避免了厂商绑定,在采购谈判时处于有利地位,而且随着竞争的发展,将来可以方便采用最先进的技术与方案。而在考虑块、文件还有iSCSI这些技术时,用户也不免采取类似的态度。这些技术最近发展较快,当它们相对成熟时,我们不仅要了解它们的优势,更需要对它们有实际的经验,同时,教训也是宝贵的。(文/网络世界)