(连载)网络存储导论第15章:Netapp产品分析(7)

    15.4.3.5 磁盘数据的一致性检查点和NVRAM     WAFL 最长每10 秒就会生成一个内部快照,成为一致性检查点,所以在磁盘上会有一个完全具有一致性的文件系统版本,当filer 启动,WAFL 总是是用在磁盘上最新的检查点,所以Filer 避免了费时的文件系统校验,File system check, 使得即使意外掉电或者系统故障时,也不必进行file system check。 Filer 只需要2 分钟的硬件自检就可以重新完成启动。     Filer 使用电池支持的不掉电RAM (NVRAM),避免丢失任何发生在检查点后的NFS/CIFS请求,正常关机时,Filer 关闭NFS/CIFS 服务,将所有缓冲在NVRAM 的请求刷新到磁盘后关闭NVRAM。当filer 故障后重启动,它将replay 所有保存在NVRAM 中的没到磁盘的NFS/CIFS请求。     使用NVRAM 保存没有commit 到磁盘的请求,与一些UNIX 使用NVRAM 作为disk cache有很大的区别。当在磁盘层面上使用NVRAM ,其中可能包含影响一致性的重要数据,假如NVRAM 出问题,文件系统会不一致,即使使用fsck 也无法恢复。     WAFL 还使用NVRAM 作为文件系统日志journal,而不是需要变化的磁盘块的缓存(Disk Cache),所以WAFL 极为有效地利用了NVRAM 的空间。例如,一个请求,让文件系统生成一个新文件,可以用几百个字节信息表明,而磁盘上却需要改变十几块的信息。由于WAFL 使用NVRAM 保存操作命令日志,而不是这些命令的结果,NVRAM 可以保存几千个操作的日志。     15.4.3.6 Filer 的RAID     Filer 使用了一种RAID 4 设计来保护数据避免受磁盘故障的破坏。然而与一般的RAID4 和 RAID 5 实现不同,一般的RAID 实现结构没有考虑文件系统的结构和活动方式。     WAFL 的 RAID 4 实现,是与文件系统的设计紧密优化的。 通过将文件系统和RAID 层结合考虑, NetApp. RAID 的设计提供了所有RAID 校验保护的好处,克服了常规的RAID 5带来的性能损失。另外, WAFL 的 RAID 4 设计不像RAID 5 那样将数据和校验数据交织到每个盘,整个系统可以在有RAID 的时候仍然可以迅速简便地扩充。     通过RAID 4, 假如一个磁盘有损坏,利用RAID 组里的校验盘可以重新计算出损坏磁盘上的数据,其 block 映射到磁盘上的新的位置。假如整个磁盘损坏,校验盘也可以保护数据不丢失,当故障盘重新替换,所有内容通过校验盘自动重计算。     RAID 4 阵列使用一个磁盘专用于校验,其余用于数据。每个磁盘由4KB 的 block 组成。一个条带,stripe,由每个数据磁盘的一个block 和校验盘的一个block 组成。     最常用的RAID 级别有0,1,3,5,RAID0 是划分为条带,由于没有校验区,所以无容余纠错能力。RAID1 是简单地镜像,所有数据复制在另一粒盘上,RAID 1 很安全,但是需要两倍的磁盘容量。RAID 3 类似 RAID 4, 专门一个盘用于校验,但是RAID 3 的条带太小,一个读写操作就可能跨阵列内所有的磁盘, RAID 3 适合单个大文件很高的速率要求,例如超级计算,和图像处理,但对于多用户应用产生的不相关的读写表现很差。而RAID 4 改进了这一点。     RAID 5 类似 RAID 4,但是在所有磁盘中循环安排数据区和校验区,第一个条带的校验区在第一块盘,第二个条带的校验在第二个盘,等等。主要的优点是防止校验盘成为瓶颈。缺点是在RAID 5 array 中增加一个盘很不实际,扩容时需要添加一个新阵列。例如,假如在RAID 5 实施时每个阵列使用7 个disk,通常扩容时每次增加7 个盘。     大多数用于UNIX 和Windows 环境的外设避免使用RAID 4,因为使用通用的文件系统,校验盘会成为瓶颈。另一方面,WAFL file system, 利用其随意写的布局写磁盘,使用RAID4 的磁盘却十分高效。     以UNIX 的文件系统为例说明WAFL 如何与通用的文件系统不同。通常的UNIX 使用FFS(the Berkeley Fast File System) ,该文件系统的设计针对一次写一个文件进行优化,所以不同文件的块写到磁盘上很分散的位置。FFS 在阵列里写入3 个不相关的文件时的块分配的位置,每个数据盘写只有2 次,而校验盘却要写6 次。更致命的是,校验位的写十分分散,导致很长的寻道时间。     这是由于 Berkeley FFS 不知道下层的RAID 4 的布局,往往会生成在数据盘上分散的磁盘写请求,导致校验盘过长的寻道时间。WAFL 的写方式被设计成最小化校验盘的寻道时间。WAFL 总是把写相邻条带的block,减少校验盘的寻道时间。WAFL 还尽可能地写同一条带的多个块,进一步减少校验盘的流量。     15.4.3.7 Appliance 方式的优点     通过Appliance 方式的设计,以网络为服务器提供数据,使得NetApp 可以提供一种传统的存储方式,以及基于UNIX 和NT 的系统无以比拟的存储治理
  • 快速而简单的系统安装
  • 快速的重启,即使在掉电或者系统故障停机后
  • 通过增加磁盘在线扩充分区
  • 快照提供简单的备份方式
  • 简单的治理,50条命令

    这些特点,以及Appliance方式带来的高性能和高可用性,使得Filer成为十分易用且性价比很高的产品。