剖析WAFL文件 RAID4+与改良型RAID4

发布时间:2019-08-26

浏览次数:1990

分享到:

  使用RAID4时,你可能会遇到WAFL RAID4+问题,这里将介绍WAFL RAID4+问题的解决方法,在这里拿出来和大家分享一下。上次有客户U遇到这个问题,关于netapp与其改良型raid4,希望我能介绍这个东西,估计知道的人也不太多,我这里尽量用简单的语言来介绍一下他的特点,希望大家能看明白。

  RAID 4:使用专用校验磁盘的独立访问
 
  RAID 4是一种独立访问的R A I D实现,它使用一个专用的校验磁盘。与RAID 3不同的是,RAID 4有更大量的分块,使多个I / O请求能同时处理。虽然它为读请求提供了性能的优势,但RAID 4的写开销特别大,因为在每次读、修改和写周期中,校验磁盘都被访问两次。

  Netapp公司创建时间不算长,1992年才创建,但是netapp还是写下了一系列的神话,包括现在IBM的nas系统,都是OEM的netapp的产品。那么,netapp的优势在哪里呢?我在这里分析一下它的特点,WAFL RAID4+.

  双剑合璧的WAFL RAID4+

  WAFL文件系统是netapp自己设计的,运行在netapp专用操作系统DATA ONTAP上的一个文件系统,WAFL是“Write Anywhere File Layout”的意思,即“任意位置写入文件布局”的缩写。正因为有WAFL的这个特点,所以才有了RAID4+,一个改进型的raid4,使得没有校验瓶颈存在,而且能随意扩充硬盘的raid方式。

  如果说传统的存储方式中,如果修改一个数据块,我们必须先定位到那个数据块,然后再修改,在我的前面写的raid5内部分析中,我们也看到了,如果修改一个单独的数据,我们必须先读出这个数据与校验,然后修改数据,计算校验,最后写入到同样的位置,这些特点,不仅仅是raid决定的,而且也是运行在raid之上的文件系统决定的。

  在WAFL中,如果它也修改一个数据,他可能不管以前的数据的位置,直接把新数据与新校验写到新的位置,之后更改指针,告诉文件系统说,新的数据在这里,而不是原来那里了。这么做还有一个最大的好处就是,新的数据可能等到足够多以后,可以凑齐raid的一个条带以后,一起写进去,就可以大大的提高写的速度。

  raid4+就在WAFL的配合下诞生了,传统的raid4是把所有的校验写在一块单独的硬盘上的,如果数据修改量很大,那么这个单独的硬盘就变成了性能瓶颈,而raid4+可以最大可能的把一个条带的数据,一次性的写入,所以,使得校验盘与其它的盘基本相当的写入量,而没有瓶颈出现。而且,当这个 raid组想增加硬盘的时候,只是简单的放入新的硬盘即可,任意位置写的规则可以保证新的硬盘马上就被使用起来。

  WAFL RAID4+为了尽量保证把数据合并后一次性写入,就必须依赖cache,在cache中才可以等到一定数量的数据之后再一起分批写入,而且,本身WAFL的日志也是记录在cache中的,也包括WAFL的inode的指针操作,也都是在cache中完成。所以,netapp也必须依赖电池或者 ups对cache实施保护。

  RAID4与改良型RAID4

  我们先看一个传统的raid4与改良型的raid4之间写的差别,在传统型的raid4中,如果改写我如图的数据,每个数据需要读一次,校验盘可能会写6次,每个数据写一个,涉及到6个条带。但是,在改良型的raid4中,读已经不存在了,而且写的话,最小的可能性,只需要写2个条带,8个写io,一次性写入即可,至于指针,则由WAFL文件系统在cache中完成。

  注意,这里为什么说最小可能写2个条带,因为写的时候还需要根据磁盘空间剩余情况,cache的利用情况来综合决定的,有可能也会涉及到3-4个条带,但是,可以肯定的是,算法尽量保证最少的磁盘写次数。

  我们上面分析了改良型的raid4的写,那么我们再分析一下它的raid组增加磁盘的过程,在一般的raid组中,想要给raid组增加一个磁盘,是非常困难的,因为数据以前就分布好了,除非再强行改变分布,但是,netapp不一样,它的文件系统本来就是任意写,所以很容易把新加的磁盘给用上。以上介绍WAFL RAID4+。

 

  那么说了这么多,netapp的WAFL与raid4+的优势已经很清楚了:

  1、尽量保证数据一次性的写入,减少磁盘争用,提高写速度

  2、因为任意写的特点,使得snapshot变得非常简单,而且,就算你不做snapshot,系统本身也一直在不停的产生snapshot,因为这样可以大大减少文件系统的恢复时间。

 

  那么,有缺点吗?肯定有的,这个世界总是没有完美的东西存在的

  1、因为任意写,为了保证每次都能操作一个条带,那么,系统希望尽量有充足的空闲空间,如使用率不要超过80%,否则,因为空闲空间太少而不能保证每次都写一个条带。

  2、因为任意写,可能会使本来连续的空间,分布在存储的任意位置,如数据库应用中,本来连续的表,在存储中多次修改以后,就不连续了,使得全表扫描或者备份变得很慢。
 
  这个问题的另一个解决方案是将S S D用于RAID 4 的校验磁盘,以提供适合的性能,消除RAID 4中的读、修改和更新周期的瓶颈。将 SSD 用作校验驱动器有一个潜在的问题,即如何配置S S D的容量和分条深度,以至于它能够与阵列中的磁盘容量和深度相吻合。虽然这似乎很平常,但因为SSD是基于内存的,而磁盘是一种磁性介质,两者的容量匹配并无内在原因。这里关键的一点是在容量上存在或大或小的差异,这应该合理地加以解决。当然,更精确地说,SSD的分区应该与RAID 4阵列中的任何分区相匹配。

 

  有需要了解更多信息的可查询UNICACA官网;需要合作与咨询搭建方案请联系官网上的在线客服,嘉华众力自2000年成立以来一直在网络存储、传输这方面积累、沉淀;经过多年发展与全新的品牌定位,( CEACENT )嘉华众力品牌已成为国内外极具实力的数据通讯产品及方案提供商。CEACENT AS3008R磁盘阵列卡 RIAD卡硬盘HBA通道卡 SAS3008芯片 ,拥有大部分主板都适用的pci-eX8接口,为集成raid0-1,raid10,raid1E能提供稳定,高效的带宽通道,最大传输速度达到9600M/S ;,2 * mini SAS接口 ,支持固态硬盘、硬盘驱动器和磁带驱动器。

 

15012962335