NetApp Storage MetroCluster 双活解析
转载原文: https://blog.csdn.net/BtB5e6Nsu1g511Eg5XEg/article/details/78129931
内容简述:MCC是NetApp结合NetApp syncmirror、cluster remote、cluster failover功能实现故障发生时前端业务不中断,具体表现为当数据写入控制器时直接将数据放入NVRAM并将这些数据做镜像,确保当节点故障时本地panter节点可以接管数据,或者当站点故障,远端HA集群也能通过镜像接管业务,当数据达到一定水位后,系统会做刷盘动作,落盘数据可以通过syncmirror实现主从站点的双写。而syncmirror数据同步技术是在nvram日志落盘时实现主从站点的双写,他是工作在aggr的层面-netapp mcc存储是采用pool0和pool1的镜像。当有数据落盘时、他将写完pool0和pool1以后再放回写结果。
Clustered Metro Cluster(简称MCC)是Netapp Data Ontap提供的存储双活解决方案,当初的方案是把1个FAS/ V系列双控在数据中心之间拉远形成异地HA Pair,每站点只有单控制器节点,数据中心两站点之间通过额外的FC/VI集群适配器相连,数据中心间SAS磁盘框通过SAS转FC的FibreBridge相连。在500米以内、同一个机房采用直接光纤通道交换机连接;在500米以上(最远100km)采用光纤通道和DWDM交换机相连。
MetroCluster在此架构上也进行了演变。通过在站点A、B两个站点分别放置两套FAS/ V双控阵列,阵列A的A控和阵列B的A控,阵列A的B控和阵列B的B控分别形成集群,这样可以充分把A、B站点数据中心资源充分利用,同时对外提供存储服务;但阵列内的A、B不是集群。如果站点间形成集群Pair的任意一个控制器节点故障,故障站点的主机都需要远程访问远端控制器节点;如何站点间形成集群Pair的两个节点同时故障,就会发生业务中断。
Netapp Data Ontap8.3版本推出了4控双活解决方案,最远支持200公里距离,4控Metro Cluster方案首先由2个HA Pair组成2个本地集群,然后再从2个集群上做4节点集群。集群控制器之间内存日志通过存放在NVRAM里面,NVRAM对没有下盘的日志做了镜像,保证节点故障以后,HA Pair集群的Partner节点能够接管业务;或者站点故障以后,远端HA Pair集群能够接管业务。当日志到达一定水位或者发生系统操作刷盘时,下盘数据同步通过SyncMirror实现主从站点双写,从而确保一个站点磁盘故障以后,另外一个站点磁盘还能提供系统访问,实现站点故障切换,保证业务不中断。
MetroCluster使用两个不同地点的镜像和集群来保护数据,每个集群把数据和Storage Virtual Machine (SVM) 配置都镜像同步另一个集群。当某个站点发生灾难时,管理员可以激活远端SVM并在另一站点接管业务。此外,每个集群在本地节点均配置为HA Pair,从而提供了本地故障转移能力。
NetApp MetroCluster是以NetApp SyncMirror是配合Cluster_remote和控制器Cluster Failover的功能实现的。
Clustered Failover – 在主存储和容灾存储间提供高可用性失败恢复能力,故障接管的决策是由管理员通过单一命令行决定的。
SyncMirror – 为远端存储提供即时的数据拷贝,当故障接管时,数据可以仅通过远端的存储进行访问。
ClusterRemote – 提供管理机制用以判断灾难的发生并初始远端存储进行接管。
MetroCluster里面涉及几类数据同步,包括两个集群配置同步,NVRAM的日志同步,以及后端磁盘同步,系统里面这3类数据同步采用不同的网络。
1)两集群配置同步网络:通过专用冗余TCP/IP网络,由CRS (Configuration Replication Service)服实时同步两个集群的配置数据,确保集群一端修改的配置,如新增IP,SVM或者新增,删除用户共享等配置操作,能够自动同步到远端HA Pair集群。
2)NVRAM日志同步:使用冗余FV-VI,FC-VI支持RDMA,支持Qos等功能,用于两个集群间的NVRAM同步和心跳,既能保证心跳的优先级,同时又能减少数据的写IO的传输次数,因为RDMA支持批量获取一组地址空间技术,批量获取一组地址以后,后面就直接传输数据,讲FC协议2次写优化成接近1次。
3)后端数据下盘双写网络:数据传输采用FC网络,需要进行FC和SAS转换(FibreBridge),用指定思科和博科型号专用交换机连接两个站点后端磁盘,并完成协议转换。
MetroCluster的4节点集群还是AP模式,同一时刻,文件系统还是只能提供给组成集群HA pair集群的一个节点,只有当这个节点故障以后,HA pair的Partner节点才会接管提供业务,或者当整个站点故障以后,从站点HA pair集群才会接管业务,站点切换可以通过手动执行CFOD命令或者通过TieBreak仲裁软件触发自动切换。
MetroCluster内存数据镜像方式(如下图所示),每个节点的NVRAM会被分成4个部分,分别用于存取节点自己的日志,HA Pair Partner日志,以及远端HA Pair的日志信息。当本地控制器故障后,优先将业务切换到HA Pair节点上,只有当整个站点故障后,业务才切换到远端站点运行,即当发生站点切换以后,主节点全部切换到从站点里提供业务。
两个站点各自的集群有各自的RDB(Replicated Database),用于存放集群的配置日志数据,如果系统有新的配置修改产生,会生成新的配置日志,首先会存放到MDV(Metadata Volume)里面,然后由系统的CRS将MDV里面配置日志同步到主从站点的RDB里面。
由于日志写完MDV以后才会更新到RDB中,链路从中断恢复后,可以通过重放最新日志的MDV日志卷将差异配置进行同步。在链路中断的状态中,允许发生主从切换,切换以后,通过存活站点的MDV日志重放来获取更改的配置。
MDV(Metadata Volume)用于存放配置修改日志,创建在非root aggregate的上的卷,在配置Metacluster的时候生成,每个集群一个,容量默认10GB。
CRS(Configuration Replication Service)每个集群都运行一个CRS服务,CRS服务负责将主站点的Metadata配置日志,也就是存在MDV里面的日志复制到从节点的RDB里面。
SyncMirror是Netapp双活的核心数据同步技术,在NVRAM日志下盘时,实现主从站点的盘的双写,SyncMirror工作在Aggregate层上(镜像的Aggregate由两个Plex组成,分别来自本地Pool的Plex0和远端Pool的Plex1),当有日志刷盘时,SyncMirror会写完本地的pool 的plex0和远端pool的plex1以后,才返回写结果。
Plex在站点内单边故障的时候,通过Aggregate的快照来进行增量恢复,默认Aggregate里面预留空间用于做Aggregate的快照,作为Aggregate重新同步的基准数据。如果没有做快照,一个Plex故障以后恢复,需要做全量同步。
MetroCluster的仲裁软件TieBreak支持装在linux的主机上,通过检查对节点Ssh的session对HA pair和集群进行状态监控。TieBreak 软件能够在3到5秒内检查到ssh session的故障,重试的时间间隔为3秒。
实际上MetroCluster集成了NetApp Cluster、SyncMirror、RAID DP等多重数据保护能力,这些数据保护功能在整体方案中负责保障不同级别数据安全和可靠,下图显示了该方案能提供的故障容忍能力。再加上上层业务层的集群保障,如Oracle RAC、VCS/MSFC、vMSC等,在集群主机一半故障时,也能正常提供业务。
为了更好理解上文提到的Aggregate,这里简单介绍下NetApp FAS系列产品Data Ontap底层结构。首先基于不同RAID组成组成Pool(Plex),基于Plex形成Aggregate和基于ROW技术和WALF技术的FlexVol,再基于FlexVol和Qtree实现NAS和SAN语义。利用NVRAM用来保存日志,并把进行合并后满分条下盘,提升系统性能。
MetroCluster底层以Aggregate为粒度进行数据同步,以SVM为单位进行业务切换,天然支持SAN和NAS的存储双活方案。但是ROW和WALF的碎片和SAN性能一直被诟病。聚焦存储双活本身,MetroCluster在网络架构上可能是所有双活方案最复杂的,但是NAS和SAN一体化双活却能很好地契合应用对RTO和RPO约为零的要求,如SAP HANA集群部署应用等。
————————————————
版权声明:本文为CSDN博主「架构师技术联盟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/BtB5e6Nsu1g511Eg5XEg/article/details/78129931
NetApp Storage MetroCluster 双活解析相关推荐
- Netapp 两节点双活VS本地HA
介绍一些Netapp存储涉及双活架构时的经验. 标准架构-四节点MCC 这是Netapp的四节点Metro Cluster(MCC)架构,也就是标准架构. 每个站点是由一台双控的存储组成.实现双活,需 ...
- 全面解析存储加密盘(SED)技术
在上一篇文章"数据泄露事件背后,众多的企业级加密技术,谁能堪负重任"中,给大家分享了主流的企业数据加密技术,重点分析了基于应用透明加密(主要用于NAS和Object加密),今天接着 ...
- VSC 1.0 (netapp存储在vSphere vCenter 4上的插件)
delxu原创文档 VSC是netapp存储在vSphere vCenter 4上的插件,它不是一个vSphere Client的插件,所以必须安装在vCenter上.安装后再登录vCenter,在d ...
- 《深入解析Windows操作系统》之系统机制
内容总结: 重难点笔记: 陷阱分发: 中断和异常是导致处理器转向正常控制流之外代码的两种操作系统条件.硬件或者软件都可以检测到这两种条件.术语陷阱(trap)指的是这样一种机制,当异常或者中断发生时, ...
- GCP认证考试之Storage专题
关键字:Storage 搜索结果共计:33 [单选]You have been asked to select the storage system for the click-data of you ...
- Android 10 分区存储完全解析
Android 10分区存储完全解析 一.Android 存储目录 1.1 内部存储 1.2 外部存储 1.2.1 外部私有存储 1.2.2 外部公共存储 1.3 使用Api 获取存储目录 二.And ...
- vue项目持久化存储数据的实现代码
方式一.使用localStorage在数据存储 1.要在浏览器刷新的时候重新存储起来 if (window.localStorage.getItem(authToken)) { store.commi ...
- 时序数据库连载系列:指标届的独角兽Prometheus
简介 Prometheus是SoundCloud公司开发的一站式监控告警平台,依赖少,功能齐全. 于2016年加入CNCF,广泛用于 Kubernetes集群的监控系统中,2018.8月成为继K8S之 ...
- sqlserver evaluation是什么版本_SQL Server 基础知识
目录 什么是 SQL Server? 安装 关键概念 系统数据库(System Databases) 登录名与数据库用户(Login and user) 身份验证模式(Authentication M ...
最新文章
- python软件使用教程-python用什么软件编写
- List接口的三大实现类比较
- Java一些八卦集合类
- c#winform演练 ktv项目 MediaPlayer控件播放音乐
- 面向未来 “亿”触即发-中科曙光技术创新大会重磅发布多项创新举措与成果...
- 写一个函数,输入一个十六进制,输出相应的十进制数。
- 在HttpHandlers中使用Session
- java中notify是什么意思_java中wait,notify,notifyAll是什么?
- 操作系统学习之GCC内联汇编
- 关于WPF的Binding 的 ConverterParameter 参数的动态设置
- 关于IOS6屏幕旋转
- ue5-预计算可视性体积(PVS)
- 突发!阿里巴巴大调整
- libcurl返回DNS无法解析的问题
- 记忆中的巷子与老房子
- Java线程池实现多消费者批量处理队列消息
- 【OVS2.5.0源码分析】sFlow实现分析(3)
- 什么决定了局域网特性
- 《超越LOGO设计:国际顶级平面设计师的成功法则(第2版)》—第1章无处不在的LOGO...
- ABB智能定位器TZID-C说明书(中文版)
热门文章
- 统计学三种相关系数【pearson、spearman、kendall】
- PHP composer作用,PHP Composer详解
- 互联网中---外包的含义
- 山东省高中学业水平考试计算机考试教材,2017年山东高中学业水平考试科目
- 2022.11.11 英语背诵
- 距离度量 —— 余弦相似度(Cosine similarity)
- RTL设计(6)- 伪随机数生成器
- 日志收集之--将Kafka数据导入elasticsearch
- java mac转unix_管理Java类路径(UNIX和Mac OS X)
- 经典兔子问题有一对兔子从出生后第3个月起每个月都生一对兔子