




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、WAFL 与NVRAMWAFL是“Write Anywhere File Layout”,即”任意位置写入文件布局”的缩写。有很多人认为WAFL是一个文件系统。但是我们可以把WAFL理解成2个部分,“上半部分”去处理文件和文件夹,例如-“我的文档”和“季度收益.ppt”,追踪谁创建了它们,什么时候创建了它们,哪些人可以打开它们,哪些人可以更改他们等等信息。这确实看起来非常像是一个文件系统干的事情。这个“上半部分”支持多种的文件系统协议,从最初对于UNIX的NFS的支持,以及后续对Windows CIFS的支持。WAFL的“下半部分”是对于系统中物理磁盘的管理。它把磁盘分配到独立的管理池中去,追
2、踪哪些磁盘属于哪些RAID阵列,去调整安排磁盘上数据以获取最佳读写性能,去掌控一些数据管理的功能例如:快照、远程镜像、克隆、重复数据删除、精简配置等等。而这些工作从传统意义上来说是属于卷管理或文件块虚拟化层级的部分。还记得射雕英雄传里的梅超风吗?她修炼的“九阴白骨爪”来自于“九阴真经”的半部,就已经厉害无比。WAFL的“上半部分”就类似“九阴真经”的招式,而“下半部分”就类似“九阴真经”的心法。WAFL的独一无二之处在于设计者把这两个层级集成到了一起,如果把这两个层级能设计在一起工作的非常好的话,会产生很多机会去开发新的特性和做一些智能的优化。当研发人员想加入对于iSCSI和Fibre Cha
3、nnel SAN支持的时候,WAFL的“下半部”数据管理能力可以轻松加入这特性的支持。事实上研发人员引入支持基于block-块存储的环境,正是因为研发者意识到WAFL的数据管理特性在这一环境中是多么有价值。研发者Dave在博客里是这样说的" My current view is that WAFL contains a file system, multiple filesystems actually, but thats different from being a filesystem. - WAFL包含了1个,实际上多个文件系统,但是它和文件系统是不同的"WAFL结
4、合NVRAM、RAID、Snapshot的设计难度极高。在理解WAFL之前,我们先理解几个基本概念:· meta-data:也叫元数据,你可以把它理解成“描述数据的数据”,主要是描述数据属性信息,用来支持如指示存储位置,历史数据,资源查找,文件记录等功能。就像一本书都有他的目录一样,你可以把元数据看成是数据的电子目录或摘要。 举个例子,打开一张电脑里的图片,这个图片就附有一些元数据描述了这张图片有多大,分辨率,什么时候拍的,拍照参数等等。 · inode: 是指在许多"Unix-like"文件系统中的一种数据结构,每个inode保存了文件系统中的一个文件
5、系统对象(文件、目录、设备文件、socket、管道等等)的元信息数据,但不包含数据内容或文件名。 · consistent 数据的一致性:UNIX文件系统基于本地时钟,任何互斥操作之间都有一个绝对的时间顺序,任何读写操作都应该基于之前最近的针对该共享文件写操作的结果。而对于一个session来说,对一个打开的共享文件所进行的修改操作只对操作进程本身可见。类NFS语义为了让多个用户进程同时打开一个文件,则规定了对共享文件的修改操作与该操作结果对全局可见之间的时间间隔不能超过某个限定值(间隔时间),间隔时间限定了节点的cache的有效时间及脏数据写回周期。间隔时间可以被修改。例如:删除文
6、件时,先要从目录树中移除文件的标示,然后收回文件占用的空间。如果在这两步之间操作被打断,文件占用的空间就无法收回。文件系统认为它是被占用的,但实际上目录树中已经找不到使用它的文件了。在非日志文件系统中,要检查并修复类似的错误就必须对整个文件系统的数据结构进行检查。一般在挂载文件系统前,操作系统会检查它上次是否被成功卸载,如果没有,就会对其进行检查。如果文件系统很大或者I/O带宽有限,这个操作可能会花费很长时间。WAFL 在DataONTAP系统中的逻辑层级:图:WAFL在ONTAP中的位置WAFL解决的是从网络客户端层面到Storage磁盘层面数据的读写分配问题。在没有接触WAFL之前,我们所
7、想象的数据IO流程,可能就是客户端发来数据包,交到物理网卡NIC或光纤网卡HBA,然后交给协议层处理,直接交给Raid管理模块然后写到磁盘。WAFL在这个中间引入了一个比较特殊的部件-带电池的非易失性内存NVRAM ,用来承载日志,通过CP点-consistency points来保证文件系统的一致性。图:NVRAM工作机制如上图,当写数据来到内存这个层面的时候,数据是暂时以缓存的方式暂时驻留在memory buffer, 同时通知WAFL数据已到达,并且相应的向NVRAM写一个对应的NVLOG,当NVLOG生成后,WAFL就会返回给协议层和网络客户端,表示该数据块已经写入磁盘,这样做是为了减
8、少网络客户端的等待时间,正常的情况下,用户的写延迟=网络延迟+数据写入NVRAM延迟,NVRAM作为内存它的存取速度较硬盘快一千倍,由它担任文件系统的日志,同时保护metadata及data的交易纪录,并加速写入的效率和反应时间、保证文件系统的一致性、保证写入的交易不会因断电而丢失。 保证文件系统一致性的CP为在磁盘上保存完整的文件系统一致性版本,WAFL文件系统至少每10秒会生成一个内部数据快照SnapShot,也就是CP,同时NVLOG满了之后,也会生成一个CP。CP发生后,WAFL会调度内存中的数据,对磁盘进行写入,也叫flush。通过以下命令输出结果的"CP ty "
9、; 看到CP此时的情况, 本案例的输出为"Tf "共2位,这2位中的第一位T表示CP的类型,第二位y表示CP的阶段。 要明白的一点是写入的数据来自于RAM而不是NVRAM。filer*> sysstat -x 1CP CP Disk FCP iSCSI FCP kB/s iSCSI kB/stime ty util in out in out54% Tf 92% 183 0 4 145228 0 017% : 96% 201 0 5 149234 0 0CP的类型"T",表示这个CP是因为计时器而产生的,WAFL文件系统至少每10秒会生成一个CP。
10、如果在IO密集的场景,系统性能不足以处理如此多的数据,例如使用旧款FAS2050,在处理一个1000人并发高密度访问数据库的新场景时,通过观察CP ty 就可能会发现CP的类型频繁出现“B”,说明CP点在连续的产生,这个时候用户端会面临很高的延迟。当NVRAM的log 达到空间50%的时候,CP的类型为"F",此时需要把数据写入磁盘,会使用剩下的50%空间继续去处理后续的数据,这个机制避免了NVRAM写满造成后续数据无法处理。WAFL使用NVRAM记录操作的遍历信息,而不是操作结果本身,这就使可以在Filer NVRAM日志文件中执行得数千个操作,而例如Berkery FF
11、S系统是处理NFS请求并将其结果写入磁盘缓存有时候,系统的LOG不会那么多,例如一个大文件的写入,会占据内存大量的buffer空间,这个时候系统也会生成一个"H"类型的CP,用来释放空间。同理,有的时候写入的数据不大,但是IO size非常小而且是随机大量的,为了降低延迟系统会生成一个“L”的CP,用来改善延迟。快照的创建和删除也会导致CP的发生,这个时候的类型是“Z”。通常在做了快照调度之后,和自动删除快照释放空间的时候可以看得到。因为很多CP的发生时间小于1秒的,这里有个小窍门,例如例子中的"CP time" 的54% ,因为我们是每1秒输出一次,5
12、4%个1秒,就可以理解为约0.5秒。关于CP Time,值得的是CP的利用率,这个值越接近100%越好,例如75%这个值就说明只有75%的分配给写数据的时间被利用了,剩下的25%浪费了。CP 类型CP 阶段B 连续的CP0 初始化b 推迟的连续CP n 处理正常文件F 因为NVlog满而产生的CP s 处理特殊文件H 因大buffer产生的CPf 写入改良的数据进磁盘L 因大量随机小IO产生的CPv 写入改良的超级数据块到磁盘S 因快照产生的CPT 因计时器10秒产生的CP,U 因为数据写入产生的CPZ 因为内部同步产生的CP: 从之前的时间间隔继续CP# 从之前的时间间隔继续CP,且此时针对
13、下一次CP的NVlog已经满了,下一个CP类型会是B图:CP类型列表理解了CP点之后,就可以理解为什么基于WALF的Netapp 设备在非正常断电或关机时,重新开机后2分钟内就可以提供服务,不需要执行文件系统检查,也不用担心文件系统会损毁,因为系统随时维护着一致性点,且NVRAM通过电池保护,记录着断电前的状态,在单个NVRAM里有2块电池,同时NetApp厂商会推荐你使用双主控来做冗余备份。总结一下:WAFL是一种消除RAID写惩罚的架构,它把文件系统的元数据(inode, block maps, and inode maps) 包含在文件中,WAFL在磁盘的任意位置可以去写元数据。这样就可
14、以让多次写入被收集起来重新来调度Raid条带,消除过去read-modify-write这样的低效率raid写入方式。已经发送到netapp设备上但是还没有被写入到磁盘上的数据保存在内存里,日志存有电池保护的NVRAM里,如果系统突然断电,重启时NVRAM里的日志可以重演,把数据送入正确的卷中,因为这个机制保护了系统的连续性,恢复变的特别方便,当电源恢复后,I/O操作不用考虑一致性问题,只需要等待很短的时间便可以继续向磁盘执行操作。什么是条带化?磁盘的读写是通过步进马达带动磁头去改变不同扇区的磁粒子分布来实现的。在共享式存储环境,如果多进程同时访问一个磁盘,就很有可能出现磁盘冲突。大多数磁盘系
15、统都对访问次数(每秒的 I/O 操作,IOPS)和数据传输率(每秒传输的数据量,TPS)有限制。当达到这些限制时,后面需要访问磁盘的进程就需要等待,这时就是所谓的磁盘冲突。读操作中间还有个UNIX/Windows客户端和服务器的高速缓存,而写操作是客户端要直接面对物理磁盘,这意味着UNIX或者Windows客户端和服务器的硬盘写操作要比读操作多510倍。如评测机构Ousterhout 89报告表明,当服务器端和客户端高速缓存增大的情况下,对写入操作的响应主导了I/O子系统的处理过程。其影响是NFS服务器上的磁盘写操作可能比读操作多5倍。条带化就是把一块连续的数据分成很多小部分,把他们分别存储到
16、不同的磁盘上去,这样无论是写入还是读取,系统在多个磁盘上负载完成。图:未经条带化处理的连续数据图:经过条带化处理的连续数据稍后在Raid-DP的章节,我们会讨论条带宽度和条带大小问题。WAFL 动态批次条带化写入读完CP的部分,很多人可能会产生一个疑问:“为什么WAFL设计这么多机制来处理buffer里的文件?” 这就是WAFL的最关键部分-动态批次条带化写入了。WAFL的动态批次条带化写入就像是交通警察一样,把来自于客户端的随机IO请求,分散的数据进行整理,将其转换为少量的循序写入,来达到条带化平行写入,这样就减少了磁头移动的距离,加速了文件的存取速度。WAFL的条带长度以4K为单元,这里是
17、说CP时,写入的数据,包括校验数据以及双校验数据会顺序的,逐个的以4K为单元写入Raid组。这里有一点要注意,假如一个Raid组里有14块1T硬盘和4块2T硬盘,2TB的磁盘会认为是1TB,4TB的写容量会丢失,但是当有5块以上2T的盘,例如:14块1T的盘和5块2T的盘时,WAFL会自动识别它们,把5块盘单独作为一个Raid-DP组,数据会自动的在Raid组中迁移来优化容量。WAFL 文件系统结构在理解WAFL的文件系统结构之前,我们回顾磁盘访问时间这一概念:磁盘的访问时间=寻道时间+旋转延迟时间+传输时间l 寻道时间:5-15毫秒,用于移动磁臂Arm到不到柱面cylinder的时间l 旋转
18、延迟时间:7200转的的磁盘完整的旋转需要8毫秒,平均延时约4微秒l 传输时间: 1毫秒可以以传输8KB数据块 图:磁盘构成由此可以得知,减少磁盘访问延迟的关键,是减少磁臂寻道所开销。Berkeley FFS /Veritas/NTFS等文件系统,预先需要构建一个inode表,然后元数据需要放置到预分配的空间,这意味着更多的寻道时间。图:寻道切换逻辑示意WAFL不需要预先分配空间,元数据和数据块被平等对待,写到最邻近的空闲块上,明显的减少寻道时间。这就是允许在硬盘上任何地方写入元数据块-WAFL名称的起源。新的数据不会覆盖旧的数据块,可以在一次新的Raid条带中给多个客户端写操作分配磁盘空间,
19、不需要一一进行校验计算。WAFL可以事先规划对同一RAID条带进行多重写入的时间,这样当只需要更新RAID某一硬盘条带中某一数据块时,就不会对整个写入性能带来损耗。WAFL通过将顺序的块放置在RAID阵列中某个单一磁盘上的方式,减少了大文件读出时的磁头冲突。同时WAFL能在单一写入周期内为多个NFS操作同时分配盘空间。而FFS需要为每个NFS请求分配空间。WAFL在CP之前可以收集上百个NFS请求,在CP时刻为其分配空间并写入。这种延缓分配写入空间的机制通过从应答处理的过程中去除磁盘分配时间,改进了NFS操作的等待时间,WAFL只需更新内存数据结构并且记录访问要求,而不需要为新数据分配磁盘空间,也不需要把修改后的数据复制到NVRAM中。从这里也很好理解Netapp公司的快照技术,因为元数据和数据的写入没有覆盖旧块,快照技术水到渠成。图:WAFL随机写示意WAFL之所以能够把元数据也直接随机写到相邻空闲块是因为WAFL把元数据储存在文件里。WAFL的元数据有下面3种· inode file 包含文件系统所有的inode文件 · inomap file 块图文件,用以识别空闲块 · blkmap file 用以识别空闲inodeWAFL的inode是一种树形结构,假设一个核心inode文件X除了它自身之外包含了单独的inode文件 A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 敬老院消防宣传课件内容
- 广西舞蹈教学科目五课件
- 教育英文课件
- 鸟的天堂课件教学
- 新春圆梦活动方案
- 新春报班送好礼活动方案
- 新客户引流活动方案
- 【文山】2025年云南文山州麻栗坡县事业单位紧缺岗位招聘15人笔试历年典型考题及考点剖析附带答案详解
- 数字乡村活动方案
- 时尚音乐活动策划方案
- FZ∕T 74002-2014 运动文胸行业标准
- 乳腺癌分型及治疗
- 矿山井架设计规范
- 2024中考复习必背初中英语单词词汇表(苏教译林版)
- DB35T 2094-2022 公路工程竣(交)工验收质量检测技术规程
- 23秋国家开放大学《法律职业伦理》形考任务1-3参考答案
- 管道施工安全培训
- 校长外出汇报培训课件
- RS5通讯板-使用说明书
- 2024年冲压质量提升计划
- 安全生产内业管理
评论
0/150
提交评论