当前位置: 主页 > 服务器技术 > 其他技术 > NETapp WAFL文件系统介绍

NETapp WAFL文件系统介绍

时间:2010-12-14来源:互联网 点击:

Ÿ WAFL能在单一写入周期内为多个NFS操作同时分配盘空间。而FFS需要为NFS请求一一分配空间。WAFL在确定文件系统一致点之前可以收集数百个NFS请求,在一致点(consistency points)时刻立即为其分配空间。这种延缓分配写入空间的机制通过从应答处理的过程中去除磁盘分配时间,大大改进了NFS操作的等待时间。对于那些在到达磁盘前即被删除的数据块而言,这种方式也避免了时间的浪费。

这些特性赋予了WAFL文件系统特别灵活的写入策略。为众多写入同时分配空间的能力使其更加智能化,允许将数据快以任何顺序写入到任何地方的能力又确保了这种策略适用于多种环境。概要地讲:

Ÿ WAFL通过将多数据块写入到同一条带中的方式,大大提高了RAID的效率与性能

Ÿ WAFL通过将相关的块写入到相近的位置而大大缩短了寻道时间

Ÿ WAFL通过将顺序的块放置在RAID阵列中某个单一磁盘上的方式,减少了大文件读出时的磁头冲突

在通常的文件系统下,优化写分配是很困难的,因为以上这些目标之间经常冲突,而WAFL则可以很好的解决所有问题。

2、NVRAM

为在磁盘上保存完整的文件系统一致性版本,WAFL文件系统至少每10秒会生成一个内部数据快照SnapShot,称为一个一致点(consistency point)。当时Filer启动时,WAFL总是使用时间最近的一致点版本,这意味着即使发生掉电或者其它严重系统错误后,系统再次投入正常运转也无需耗时的文件系统检查工作。Filer在仅仅1到2分钟的时间内即可正常启动,而这段时间也主要是花费在磁盘定位和内存检查上。

这种特性是由于Filer使用了由电池支持的NVRAM(非易失性内存)来避免丢失最近一致点之后可能发生的任何NFS与CIFS请求。其工作示意图如下:

NVRAM工作示意图

NVRAM是带有电池的独特内存,即使切断电源,仍然可以存储数据。在不正常停机之后,WAFL重演所有”日志”以防丢失。日志类似于线上交易处理(OLTP) 数据库系统的Log记录。WAFL采用内存,而不是硬盘来保存日志,因为比硬盘快一千倍,提供极高的响应速度。即使有大量的交易,响应速度也不会变慢。当使用者的写入要求送到NVRAM并完成时,马上可以接受下一笔的写入要求,又可同时保护metadata及data的交易纪录。当NVRAM收集这些写入要求到达某种条件时,WAFL会先经过计算并整理过后再批次写入到硬盘。其工作情况大体如下:

Ÿ 当Filer正常关闭时,NVRAM不包含任何未处理的NFS请求,它被自动关闭以延长其电池寿命。

Ÿ 在正常系统关闭规程下,文件管理器先关闭NFS与CIFS服务,将所有缓存中的操作写入磁盘,然后关闭NVRAM。

Ÿ 在系统掉电或者其它非正常状况下,系统将会自动重现保存在NVRAM中,但是尚未转存到磁盘上的NFS与CIFS请求。

如上所述,WAFL通过创建内部SnapShot来避免系统在不正常停机后对文件系统进行检查,这种特殊的SnapShot叫做一致点,每过几秒钟就会自动创建一次。不同于其它SnapShot快照的是,一个一致点没有名字,而且不能通过NFS协议访问它。同于其它SnapShot快照的是,一致点是整个文件系统的一个完全自一致的映像。当WAFL重新启动时,它简单地回放为最近的一致点。即使单一分区中包含20GB或者超过20GB的数据,这项特性依然使得Filer可以在1到2分钟的时间内重启。

在一致点之间,WAFL也在把数据写到磁盘中,但是它仅仅写到不使用的块中,如此呈现的数据块树型结构的最近一致点仍然是完全不变的。在两个一致点之间,WAFL需要处理数百或者成千上万的NFS请求,因所以磁盘上面的文件系统映像在数秒内会保持不变,直到WAFL写入新的一致点。磁盘上面的文件系统映像也会自动更新。虽然这项技术在UNIX文件系统中比较少见的,但它在数据库领域是比较常见的。但即使在数据库领域,像WAFL这样在同一时刻的一致点中写入如此多的操作也是比较少见的。

WAFL实际上把NVRAM划分成为两份独立的日志报告。当一份日志写满,WAFL转换到另一份日志,并且开始写一致点,将与第一份日志的差异安全地记录到硬盘上。即使日志没有写满,WAFL每10秒也要写一次新的一致点,以防止硬盘中存储的文件系统映像太过陈旧。

利用NVRAM记录NFS请求的方式比传统的利用NVRAM为磁盘做读写缓存的方式有很多好处。NetApp Filer使用NVRAM来存储未提交NFS请求的方式则与其它一些UNIX产品十分不同:

Ÿ 其它操作系统把NVRAM作为磁盘缓存,并在磁盘层加以使用时,包含的是关键的文件系统一致性数据。如果NVRAM发生故障,即使采用fsck也无法恢复系统状态。

Ÿ WAFL使用NVRAM作为文件系统的遍历来源,而不是需要利用硬盘来加以更新的高速缓存。WAFL对NVRAM空间的使用是非常有效的,例如,要求文件系统创建一个文件的请求仅需使用数百个字节即可描述。而实际的文件创建操作则可能包含着众多的数据块改变。因为WAFL使用NVRAM记录操作的遍历信息,而不是操作结果本身,这就使可以在Filer NVRAM日志文件中执行得数千个操作。

我们来对以上两种机制做一下比较。其它厂商利用硬盘当作日志,只能保障硬盘区块的运作,不能确保网络文件系统交易的安全与完整性,当遭遇网络暂时中断或系统宕机,恢复联机与运作后,中断的网络文件系统交易已经流失。不仅速度无法与NVRAM匹敌,也无法同时保护metadata及data的交易纪录不会流失。

两种不同方式的对比示意图如下:

图:NVRAM与其它厂商技术方式的对比

第一种,是处理NFS请求并将其结果写入磁盘缓存,第二种,是NetApp NVRAM采用的,对那些需要重演的请求,记录下其日志信息。举例来比较,如果从一个目录移动一个文件到另一个目录,文件系统必须更新内容以及来源、目标目录的inode。在FFS中,每一个块是8 KB,这项操作将使用到32 KB的高速缓存空间。而WAFL仅使用大约150个字节空间,简单的记录下需要对该信息执行更名操作。WAFL可以在每MB的NVRAM中记录多于千项操作。

记录NFS请求的最终优势是它大大提高了NFS响应时间。为了响应NFS请求,没有NVRAM的文件系统必须更新它的内存数据结构、为新数据分配磁盘空间,但是它们只是把修改后的数据复制到NVRAM中,而不是磁盘中。相比之下,WAFL能更迅速准确的响应NFS请求,因为它只需要更新其内存数据结构并且记录访问要求,而不需要为新数据分配磁盘空间,也不需要把修改后的数据复制到NVRAM中。

站长资讯网
.
分页: [1] [2]
TAG: NETapp WAFL文件系统
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言