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

版权声明:原创作品,如需转载,请注明出处。否则将追究法律责任

Netapp大概简介(二)相关推荐

  1. Netapp大概简介(一)

    一.NetApp存储操作系统 Data ONTAP是NetApp最流行的存储操作系统,它运行在NetApp FAS(Fabric Attached Storage)系统上.FAS系统是被设计为共享的存 ...

  2. TiDB 简介(二)

    参考:TiDB 简介_福海鑫森的博客-CSDN博客_tidb开发语言 TiDB 简介 | PingCAP Docs TiDB 是 PingCAP 公司自主设计.研发的开源分布式关系型数据库,是一款同时 ...

  3. 单元测试及NUnit测试框架简介(二)

    一.单元测试框架的选择 在选择单元测试框架时,可以从以下几个方面去考虑: 支持自动检测注册用例:框架能否支持简单地构造用例并自动注册测试用例到测试框架中: 支持测试Fixture:即是否支持为一组测试 ...

  4. PP模块快速入门之功能简介(二)

    根据以下任何一个随机模型进行预测:平均移动 ,指数平滑常数模型 ,指数平滑趋势模型 ,指数平滑季节性模型 ,组合趋势/指数平滑季节性模型 R/3可以用最适用分析来自动地选择随机模型,你也可以人工选择模 ...

  5. web API简介(二):客户端储存之document.cookie API

    概述 前篇:web API简介(一):API,Ajax和Fetch 客户端储存从某一方面来说和动态网站差不多.动态网站是用服务端来储存数据,而客户端储存是用客户端来储存数据.document.cook ...

  6. 【FFmpeg】FFmpeg 相关术语简介 二

    文章目录 一.码率与帧率 二.ffmpeg.ffplay.ffprobe 可执行文件 一.码率与帧率 帧率 : 帧频率 , 视频中每秒钟含有视频帧的帧数 , 一秒钟刷新多少张图像 , 连续移动的图像至 ...

  7. GCD简介二:多核心的性能

    一.概念 为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术.在低层,GCD全局dispatch queue仅仅是工作线程池的抽象.这些队列中的Block一旦可用,就会被dispatch到工 ...

  8. 网站开发综合技术 一 JavaScript简介 二JavaScript语法

    第1部分 JavaScript简介 1.JavaScript它是个什么东西? 它是个脚本语言,需要有宿主文件,他的宿主文件是html文件. 2.它与Java有什么关系? 没有什么直接联系,java是S ...

  9. python运输问题_Pyomo使用简介(二):运输问题

    上次讲到了基础的求最优化问题,这次将会主要主要涉及到运输问题. 在Pyomo的使用过程中,模型分为Concrete和Abstract模型. 不论是什么模型,在建模的构建中,一些Model Compon ...

最新文章

  1. 力扣(LeetCode)763
  2. 递归时间/空间复杂度的分析(斐波那契为例)
  3. c++ 类和类的定义
  4. 2021校招 | 交通银行-IT类编程题
  5. 【剑指offer 07】用迭代和递归两种方法重构二叉树(python实现)
  6. mysql中数组转list,Arrays.asList(T... a) 不转换基本类型数组值为list
  7. python获取Linux发行版名称
  8. 银河麒麟 安卓nginx_银河麒麟Kydroid 2.0全新发布:原生支持海量安卓APP
  9. 2020-02-06 asm内联汇编
  10. 在Apache中隐藏Php文件后缀
  11. 前端筑基篇(一)-ajax跨域原理以及解决方案
  12. CA机构是如何保护自己私钥的?
  13. SPSS基础教程:SPSS菜单命令详解(三)
  14. 日本专利分类方法 FI 和 F-Term 分类号 检索
  15. 多媒体计算机特性,多媒体计算机的基本特性
  16. DDoS原理、分类与防御
  17. VOA 2009年11月23日 星期一 这里是美国——感恩节对美国人来说意味着什么
  18. 关于ionic环境卸载
  19. Googleearth提取数字高程等高线
  20. Dependency ‘taglibs:standard:1.1.2‘ not found

热门文章

  1. 电视缓存框架videocache
  2. ADI推出最新全面的无线传感器开发套件
  3. 移动app测试的多样性_web测试与移动App测试的常见测试要点
  4. 史元春和孙正兴:人机交互
  5. 宜搭助力盒马门店的数字化管理,让数据高效运转
  6. Qt 操作注册表实现文件关联
  7. Raspberry Pi Pico SDK开发-时钟管理
  8. 【报告分享】5G赋能中国智慧教育-德勤+中国移动(附下载)
  9. Python使用镜像下载安装包
  10. STM32模拟IIC驱动sht30温湿度传感器