WAFL工作原理
基本结构如下图:
客户端发送写请求
控制器1将数据写到系统内存和NVRAM中,并将数据同步到控制2上
控制器2发送确认给控制器1
控制器1发送确认给客户端
另一个客记端发送写请求
控制器1将数据写入系统内存和NVRAM中,并同步给控制器2
控制器2发送确认给控制器1
控制器1发送确认给客户端
另一客户端发送写请求到控制器1,控制器1写入内存和NVRAM,并将数据同步给控制器2
控制器2发送确认给控制器1
控制器1发送确认给客户端
此时控制器的NVRAM已满一半
此时触发一致点,控制器将内存中的数据写入到磁盘中
(触发一致点的条件:NVRAM满一半;距离上一次发生CP超过10秒;快照被创建;管理员关闭系统)
完成一致性,NVRAM被清空
WAFL一旦数据写入内存,将立即给客户端发送确认。 这在数据被写入磁盘之前进行以优化性能。对客户端而言,数据已被永久写入存储。如果断电,系统内存中内容将丢失。如果数据只写入到系统内存,将导致一个不一致状态。NVRAM是非易失性的 - 它可以在停电时仍保存数据,如果数据在写入磁盘之前发生断电,则可以从NVRAM恢复。NVRAM会将数据写入到系统内存,并将它们从一致点写入磁盘。 将数据写入HA对中的两个控制器,以便如果有接管HA对等体可以将数据写入磁盘。
控制器1失效后
控制器2将NVRAM的内写入到内存
控制器2然后将内存中的数据写入到磁盘
控制器2将NVRAM清空
客户端给控制器1发送写请求
控制器1将数据写入内存和NVRAM,并同步给控制器2
控制器2发送确认给控制器1
控制器1给客户端发送确认
客户端向控制器1发送读请求
控制器1首先从内存中查找数据
如果内存中有该数据,将该数据上移至最顶部
其它数据被下移,并将查找到的数据发送给客户端
另一个客户端也发送读请求
控制在在内存中未找到,需要从磁盘读取
从磁盘中读取的数据被放到内存的最顶部
间接数据访问: 客户端通过控制器2发送读请求
控制器2将该请求发送给控制器1
控制器1从磁盘中查找数据并放到内存中,并传送给控制器2以提供给客户端
此数据将被放到内存的顶部
DATA SVM
Data SVM是安全多租户的基本单元,它能将集群分区,以程现为多个不相关的SVM。每个SVM对客户端程现为单个独立的服务器。
除非集群管理员开启,否则在集群中流量不会SVM之间传输。
如果不启用多租户,仍然需要至少一个DataSVM。
SVM之前被称之为vserver, 在GUI介面被叫做SVM,但是CLI模式仍然使用“vserver “命令。
可以在集群中仅有一个或多个SVM,单个SVM可以提供SAN或NAS协议,或两个都使用。
每个SVM对客户端来说是一个专有的服务器
Data SVM独立于节点和aggregate, 它可以基于多个节点和aggregate,或者仅在一个上面。不同的DataSVM可以在相同的节点和使用相同的aggregate. 也可以指定SVM指定一个aggregate. 可以为SMV指定专用的卷和Data LIFs.
Data Namespace
每个SVM对NAS有它自己唯一的”namespace”,自己的目录结构。
当创建SVM时,它的根卷也并被创建。
为构建名称空间,每个SVM中的卷通过junction path彼此相连,并挂载在junction path上。
根卷位于命名空间层次结构的顶层,其它卷通过junction path挂载到根卷下。
IPSpaces
IPspaces允许同一个集群中的SVM拥有重叠的子网和IP地址,在以前的Data ONTAP上,Data LIFs必须用不同的IP地址。
通过IPspaces, 不同SVM上的LIFs可以使用其它SVM相同的IP地址。
IPspaces对安全多租户不是必须的,因为已经由SVM提供地址空间。
每个SVM维护它自己的路由表,IPspaces等同于VRF(虚拟路由转发表)。
转载出处:http://blog.51cto.com/chaozhs/category1.html