专家指点,解析Linux文件系统
扫描二维码
随时随地手机看文章
Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最着名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于计算机业余爱好者Linus Torvalds。经常有一些用户询问关于高性能I/O的需求——如果他们可以使用Linux系统而不是AIX或者Solaris操作系统。但是从来没有人询问Windows或者NTFS中的高性能I/O(高IOPS或者高流式I/O)。
Windows和NTFS文件系统自从10年前出现到现在几乎没有太大的改变,由于它们自身结构限制的原因它们是不大可能拓展的。NTFS文件系同层、分配策略以及架构组织使得NTFS文件系统不能有效地支持多TB文件系统,更不用说PB级文件系统了,因为NTFS没有成为微软的目标市场也就不足为奇了。
那么Linux系统最初的目标市场是什么呢?当然是取代微软桌面了。Linux已经从在桌面上运行逐渐转移到在Sun、IBM和SGI的大型SMP服务器上运行。Linux 操作系统是UNIX 操作系统的一种克隆系统。它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet 网络,并经过全世界各地计算机爱好者的共同努力下,现已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。
你也许会认为你不需要高性能I/O,但是每台服务器都需要这种I/O性能来满足备份和恢复等简单需要。现有的LTO-4磁带驱动器可以以每面120MB的速度运行,支持每面240MB的无压缩数据速率。对于多磁带驱动器的大型环境来说,磁带驱动器不能以完全的数据速率进行工作的话,这就需要更多的磁带驱动器来满足备份时间窗口。
有些人可能会就这个问题询问SGI,但是SGI有一款名为ProPack的软件,这款软件具有针对Linux的高速I/O优化功能,另外SGI还有一个名为CxFS的开放特有Linux文件系统,它并不是标准Linux套件的一部分。因为SGI的ProPack和CxFS不属于标准Linux套件,所以我们在这里就不谈它们了。SGI现在已成为一个具有IRIX、LINUX平台的工作站、服务器和存储系统以及媒体商务解决方案的公司。采用SGI服务器, 你就可利用其非凡的计算能力帮助你解决最为棘手的问题。 SGI的图形工作站可以用更形象化的方式观看、操作和使用数据。 在电信、媒体、政府、科学技术、制造、能源等市场领域, SGI一直占据领先地位, 是技术计算和可视化计算的佼佼者。
我们将主要来看两点:
1、Linux操作系统
2、Linux文件系统
Linux操作系统
Linux拥有一系列可以满足AIX以及Solaris系统I/O性能的特性,但是说到底Linux不是基于高性能多线程I/O进行设计的。
有很多方面对Linux的性能造成了限制,例如与其他操作系统相比的页面大小、Linux在直接I/O和页面调整方面的限制、以及Linux不允许通过I/O请求的大小来自动直连I/O——我曾经发现Linux内核将较大的(大于512MB)的I/O请求分解成128KB的请求。因为最初Linux I/O性能和文件系统的设计目标是为了取代Windows操作系统。
Linux还存在其他一些问题,对初用者来说缺少专门的人来负责。如果你发现有问题,许多人都表示会来对它进行修复,编写Linux程序的人也许不会对你的问题做出回应。如果一家Linux厂商答应对你发现的故障进行修复,这并不意味着Linux部门将接受他们的许诺,或者马上接受。
Linux文件系统和Linux内核设计的目标应该是解决一些完全不同于AIX或者Solaris的故障问题,如果你发现有故障问题的话,应该直接找Linux部门而不是IBM或者Sun。如果你使用的是AIX或者Solaris,向IBM或者Sun求助的话,他们不会说没有办法解决的。
Linux文件系统
记住,大多数Linux文件系统的设计目标都是为了取代NTFS,而不是为了取代像GPFS(IBM)、STorNext(昆腾)或者QFS(Sun)这些高性能文件系统的。这些文件系统主要是针对流式I/O进行设计的,我们现在知道流式I/O对高速IPOS和数据库读取都是十分重要的。
目前常用的Linux文件系统(EXT3、EXT4以及XFS)在很长一段时间内都没有发生过结构上重大的变化。EXT2和EXT3在某些方面改进之后升级到了EXT4,但是像RAID条带的超级块以及首个元数据分配等简单特性都没有发生改变。
另外,像RAID条带值的附件文件系统元数据区和间接分配,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。根据磁盘陈列的不同组合方式,可以将RAID分为不同的级别。 拿一个200TB的系统来说,它使用EXT3支持的4KB分区来实现537亿个分区组成的200TB系统。XFS文件系统与EXT3有着类似的特点,如果Linux页面大小是64KB的话分区也可以达到64KB,但是仍然存在超级块的调整、元数据区和其他一些问题。
Linux占据一席之地
这并不是说我是Linux的反对者,这只因为我不是AIX或者Solaris的支持者。我甚至不是反对Windows,因为我在我的电脑上就使用的是Windows界面。但是我相信现在Linux文件系统还不足以取代高性能、高可扩展性的SMP文件系统。计算机是工具,操作系统和文件系统也是工具。没有人会用链锯替代竖锯,这种类比同样也适用于操作系统、文件系统以及它们运行在的硬件设备。
我知道有很多人每天都会用到微软的Word、Excel、PowerPoint和Visio。如果所有这些应用都不能在Windows类似的操作系统中运行的话,我可能会使用其中一些,但是我发现其中存在一些不兼容性,很久之前有人向我证明了可以兼容之后我才决定采用Windows系统。Linux不支持大型文件系统的单实例以及为满足高性能需求从小型文件系统向大型文件系统的拓展。