WAFL 与 NVRAM
WAFL是“ Write Anywhere File Layout ”, 即”任意位置写入文件布局”的缩写。有
很多人认为 WAFL是一个文件系统。但是我们可以把 WAFL理解成 2 个部分, “上半部分”去
处理文件和文件夹,例如 - “我的文档”和“季度收益 .ppt ”,追踪谁创建了它们,什么时
候创建了它们, 哪些人可以打开它们, 哪些人可以更改他们等等信息。 这确实看起来非常像
是一个文件系统干的事情。这个“上半部分”支持多种的文件系统协议,从最初对于 UNIX
的 NFS的支持,以及后续对 Windows CIFS 的支持。
WAFL的“下半部分”是对于系统中物理磁盘的管理。它把磁盘分配到独立的管理池中
去,追踪哪些磁盘属于哪些 RAID阵列,去调整安排磁盘上数据以获取最佳读写性能,去掌
控一些数据管理的功能例如:快照、远程镜像、克隆、重复数据删除、精简配置等等。而这
些工作从传统意义上来说是属于卷管理或文件块虚拟化层级的部分。
还记得《射雕英雄传》里的梅超风吗?她修炼的“九阴白骨爪”来自于“九阴真经”的
半部,就已经厉害无比。 WAFL的“上半部分”就类似“九阴真经”的招式,而“下半部分”
就类似“九阴真经” 的心法。 WAFL的独一无二之处在于设计者把这两个层级集成到了一起,
如果把这两个层级能设计在一起工作的非常好的话, 会产生很多机会去开发新的特性和做一
些智能的优化。
当研发人员想加入对于 iSCSI 和 Fibre Channel SAN 支持的时候, WAFL的“下半部”
数据管理能力可以轻松加入这特性的支持。事实上研发人员引入支持基于 block- 块存储的
环境,正是因为研发者意识到 WAFL的数据管理特性在这一环境中是多么有价值。
研发者 Dave 在博客里是这样说的 " My current view is that WAFL contains a file
system, multiple filesystems actually, but that ’s different from being a filesystem.
- WAFL 包含了 1 个,实际上多个文件系统,但是它和文件系统是不同的 "
WAFL结合 NVRAM、 RAID、Snapshot 的设计难度极高。
在理解 WAFL之前,我们先理解几个基本概念:
meta-data :也叫元数据,你可以把它理解成“描述数据的数据” , 主要是描述数据
属性信息,用来支持如指示存储位置,历史数据,资源查找,文件记录等功能。就
像一本书都有他的目录一样, 你可以把元数据看成是数据的电子目录或摘要。 举个
例子,打开一张电脑里的图片, 这个图片就附有一些元数据描述了这张图片有多大,
分辨率,什么时候拍的,拍照参数等等。
inode: 是指在许多 "Unix-like" 文件系统中的一种数据结构,每个 inode 保存了文
件系统中的一个文件系统对象(文件、目录、设备文件、 socket 、管道等等)的元
信息数据,但不包含数据内容或文件名。
consistent 数据的一致性: UNIX文件系统基于本地时钟,任何互斥操作之间都有
一个绝对的时间顺序,任何读写操作都应该基于之前最近的针对该共享文件写操作
的结果。而对于一个 session 来说 , 对一个打开的共享文件所进行的修改操作只对操
评论1
最新资源