发新话题
打印

NETAPP技术学习全程记录

本主题由 angle 于 2008-7-17 14:37 设置高亮
我这才看出来,原来楼主是在翻译一篇名为《设计高效的适合NFS的文件系统》的文档吧?
敝人博客
《大话存储》预订链接:http://www.china-pub.com/301645

TOP

Netapp 所采用的RAID技术
      以前给客户培训的时候,看客户水平,要是以前没有接触过就得从RAID讲起。不过只涉及到RAID 0,RAID 1,RAID 1+0,RAID 5.甚至RAID S。但别得RAID级别几乎不讲,因为在一般情况下阵列多采用上面几种。
      NetApp 采用的增强型RAID4与以上介绍的WAFL 文件系统结合非常紧密,并经过了专门的优化。通过同时优化文件系统与RAID机制,NetApp RAID 在提供RAID 保护机制的同时,没有带来类似RAID 5 的性能损耗。 同时,RAID结构可以迅速、简便的加以动态扩充。
    通过增强型RAID 4,如果一块磁盘上的一个数据块损坏,盘组中的校验盘将重新计算该数据块上的数据。并且该数据块将被映射到磁盘中新的位置上。如果某个磁盘整体损坏,校验盘能防止任何数据丢失。当替换损坏的磁盘时,校验盘被将自动重新计算其内容。
     增强型RAID 4 阵列在同一个盘组中使用一个磁盘作为校验盘,其它作为数据盘。 每个磁盘均划分为4KB 大小的数据块。一道磁盘条带包括每个数据磁盘的一个数据块和校验盘的数据块。条带中任意一个数据块的数据丢失,均能通过校验计算重新得出。

TOP

WAFL 文件系统利用其灵活的“任意位置写入文件布局”特性,继承了RAID 4 固有的优势,并且避免了其校验盘瓶颈,最大限度的发挥了RAID 4 的效率。
       WAFL 文件系统的设计方式确保能够最大限度地减少校验盘寻址操作。WAFL 总是把相关的数据块写到彼此邻近的条带中,消除校验盘上的长时间寻址操作。只要可能,WAFL 也把多重数据块写到同样的条带中,从而进一步减少校验盘上的阻塞。

      RAID4为传统的单一奇偶校验RAID 技术,能为单个故障磁盘驱动器提供保护。在重建故障磁盘时必须确保不能发生其他磁盘故障,而且不能在读操作过程中出现不可修复的误码。如果在重建过程中出现上面任何一种事件,那么保留在RAID 阵列或卷中的部分或所有数据就可能会丢失。随着现代更大的磁盘存储介质的出现,由于磁盘容量显著增加,而误码率仍是原来的水平,这就使得出现不可修复的误码的可能性相当高。因此,传统的单一奇偶校验RAID 保护数据的方法已经超出了其保护极限。更高一级的RAID 数据保护已经发展到RAID 双奇偶校验,也称作RAID DP,它可以应用于整个网络用数据存储产品线。

      现在的硬盘FC的正常配300G,SATA的500G。只要盘一坏,数据的重建也是很需要注意的问题。毕竟盘太大了,而且在线系统中重建的优先级一般都很低,一个盘同步一天的情况也不少见。不像以前9G,18G的SCSI硬盘的时代了。例如EMC早期BCV的限制,一有盘坏了,BCV就不能用了,这个是BCV设计上的缺陷。现在一般都采用的是CLONE的方式,就消除了这个问题。

[ 本帖最后由 ender 于 2008-6-26 14:39 编辑 ]

TOP

回复 31# 的帖子

冬瓜头兄弟,并非翻译那篇文章。是一堆资料,按自己的理解发出来的。蓝色字体基本都是题外话,例如和别的厂家的比较啥的,还有些以前做主机,数据库和存储方面的经验比较。
   希望大家有兴趣研究技术的多探讨一下。

TOP

盘大了,数据丢失的风险就更大了。一个盘做保护不够就多再加一个。就是现在所谓的RAID6了。当然做MIRROR是最好的方法,但是投入太大了。
      各个厂家都有自己的解决方案,NETAPP的叫RAID DP。多加的一块盘做对角线的数据校验保护,还是很有意思的算法。具体的说明坛子里有人转过一篇文章。我就不多写了。

请参考:http://bbs.doit.com.cn/thread-56233-1-1.html

[ 本帖最后由 ender 于 2008-6-26 14:51 编辑 ]

TOP

最核心的WAFL和为了实现WAFL而设计的NVRAM和RAID都已经介绍过了。公开资料的最低层的东西就差不多了。
     接下来说下WAFL带来的一个非常使用的功能SNAPSHOT。
     现在厂家都能实现这个功能的,但每家都有自己不同的特点。NETAPP的就个人观点实现的比较好,开销相对来说要小一些。
     想起一句话,“杀猪杀屁眼,各有各的杀法!”哈哈,

TOP

一份SnapShot 是文件系统的在线只读拷贝。创建文件系统的一份SnapShot 仅仅需要几秒种的时间,并且除非原始文件被删除或者更改,数据快照并不占用额外的磁盘空间。
     这种只有当数据块发生改动时才进行数据块复制的技术被称作“copy-on-write”,只有修改活动文件系统中的数据块并写入磁盘中新的位置时,SnapShot 才会占用额外的磁盘空间。
     多数情况下客户都是将快照用于做文件系统,或者数据库的备份到离线存储系统TL,VTL中。

TOP

data ontap很小,很强大

但是有些命令也很傻,哈哈

now网站是个好东西,但是需要有个帐号

我觉得snapshot是最好的快照软件,netapp白送,挺厚道的

TOP

第一步snapshot的创建:
     WAFL 通过对所要做做快照的文件的node 做一个完全相同的拷贝来建立新的SnapShot 快照。这个复制而成的inode 就是代表SnapShot 数据块树状结构的inode,和实际文件系统的inode 结构相同。当创建了SnapShot 的inode 之后,它所指向的数据块与实际文件系统inode所指向的数据块完全一致。所以除了inode 本身占用的空间之外,新建的SnapShot 并不会占用额外的空间。
     这个过程只是拷贝inode的过程,数据量非常小。

TOP

第二步,当原始数据变化时,如何保证SNAPSHOT的数据还是快照执行时的数据
     当一个用户修改原有一个数据块时,文件系统中发生的变化。 WAFL 在新的一个数据块上面写入新的数据,并将活动文件系统指向新的数据块。而SnapShot 仍然指向原有的未经修改的数据块。随着写入动作文件系统中的文件越来越多的被加以修改,SnapShot 中所包含的活动文件系统不再使用的数据块也就越来越多。文件变动的频度决定了SnapShot 可以在磁盘上保留的时间长短,以免耗费过多的磁盘空间。
     snapshot适用在数据变换量不大的应用环境下,目前就到的最多的就是做了7各snapshot的。一个研发中心,每天固定时间做一个snapshot。每周循环。

[ 本帖最后由 ender 于 2008-6-26 17:20 编辑 ]

TOP

发新话题