【笔记】HCIE Storage v3.0 华为存储特性
(2024.04.12)
HyperSnap(快照)
快照特性。快照是指在不中断正常业务的前提下,生成源数据在某一时间点的一致性数据副本。
快照的实现机制:COW(写时复制,copy-on-write)和ROW(写时重定向,redirect-on-write)。
全闪阵列Ocean Dorado采用ROW技术实现无损快照,并且支持在已创建的快照上再次创建快照,即级联快照;快照生成后可以直接被主机读取。
优势:
- 无需停机,在线备份
- 基于ROW实现无损的可写快照
- 占用空间小。源数据不修改时不占用空间,源数据修改后,将修改的数据写到新位置时,才会占用额外的存储空间。
相关概念
数据组织形式:存储系统存储池创建的LUN包含了元数据卷和数据卷两部分- 元数据卷:记录LUN中数据组织形式(LBA、Version、Clone ID)及其属性的卷,结构形式为树形。
- LBA(Logical Block Address)是逻辑区块地址
- Version和快照的时间点信息是一一对应
- Clone ID表示副本数。
- 数据卷:在LUN中实际存放数据的卷
- 元数据卷:记录LUN中数据组织形式(LBA、Version、Clone ID)及其属性的卷,结构形式为树形。
实现原理
主要依赖于ROW。
创建快照时:创建快照后,会生成一个与源LUN一致性的副本。系统将源LUN的指针复制给快照指针,快照指针指向源LUN数据的存储位置,目前源LUN和快照的LBA一致。
源LUN新写入数据:基于ROW机制的新数据会写入到新的存储空间中,源LUN指针更新,指向新数据的存储位置;快照指针不变,依旧指原始数据的位置。
读取快照:快照创建后,在源LUN使用期间,客户端可以访问快照,读取快照创建时间点的数据。存储通过查找快照指针所指向的数据存储位置,从而读取数据返回给客户端。
块
将源LUN和快照LUN映射给同一主机时,由于主机操作系统、卷管理等采用的LUN识别机制(例如,Oracle ASM应用场景中,主机通过ASM磁盘头信息识别不同的LUN)可能会将源LUN和快照LUN识别为同一个LUN,导致源LUN和快照LUN的数据被破坏。因此不建议将源LUN和快照LUN映射给同一主机。
文件
HyperClone(克隆)
快照的本质还是将源LUN数据共享,而克隆真正实现了物理隔离。
HyperClone可以创建特定时间点(启动同步时刻)的源LUN的全量的数据副本(目标LUN),且目标LUN是立即可读写的,不需要等待后台拷贝完成。当源LUN数据损坏后,目标LUN可以反向同步数据到源LUN完成数据恢复。
相关概念
- Pair:在HyperClone中,一个源LUN和一个目标LUN构成一个Pair。可以一个源LUN与不同的目标LUN组成不同的pair,但是一个目标LUN只能加入到一个Pair中。Pair主要用于表示源LUN和目标LUN之间的镜像关系。
- 一致性组:多个业务相关联的Pair的集合
- 同步:将数据从源LUN拷贝至目标LUN。
- 反向同步:数据从目标LUN反向同步到源LUN。
同步
当启动HyperClone时,存储系统对源LUN打一个即时快照,并将源LUN的数据全量拷贝到目标LUN中,源LUN后续的操作会记录到差异位图中,当对源LUN和目标LUN同步时,借助差异位图同步差异数据。
注意,再次同步时,数据会直接覆盖到目标LUN;若想保留上一次的目标LUN数据,可以在同步前对目标LUN创建快照。反向同步
HyperClone状态:只有同步中和非同步状态。
非同步中的状态包括:未同步和正常。
同步中的状态包括:同步中、同步暂停、全量反向同步中、差异反向同步中、全量反向同步暂停、差异反向同步暂停。读写原理
非同步状态时读写:源和目标LUN相互独立,直接读写源/目标LUN
同步中状态读写
- 对源LUN:直接读,直接写
- 对目标LUN:若命中则直接读取(已同步),未命中(未同步)则源LUN读取;直接覆盖(已同步),若未同步完成则等待同步完成后查看写入位置是否有数据,有数据则放弃同步。
HyperCDP
高密的快照特性,支持比普通快照更密集的恢复时间点,提供持续的数据保护功能。
- 优势
- 秒级保护
- 支持定时计划
- 提供更小的保护间隔,更长的保护周期
HyperMetro(双活)
双活特性,两个DC互为备份且均在运行。当一个数据中心发生设备故障,甚至数据中心整体故障时,业务自动切换到另一个数据中心,解决了传统灾备业务无法自动切换的问题。
方案简介
- 本地数据中心
一般在同园区的不同机房中,存储侧做镜像复制
- 跨数据中心
同城或者相近城市部署,两个数据中心的距离不超过300KM,数据中心使用波分设备连接,降低延迟。两个数据中心均在运行,可以同时承担业务,存储侧做双活镜像通道。当其中一个数据中心
块
整体特点
- 双写技术,确保任一DC故障后平滑接管业务,满足业务RTO=0,RPO=0的业务需求。
- AA(active-active)架构。系统可靠性高
- 两个DC可以同时向外提供业务,充分利用资源
- 可以结合HyperReplication特性,升级为“两地三中心”架构
相关概念
- 保护对象
对LUN或保护组进行备份、容灾等保护。可以单个LUN或者多个散LUN/1个LUN组所组成的保护组。
- 区分LUN组和保护组
LUN组常用于映射场景,可以将多个主机上的LUN或者不同应用的LUN放在一起;
保护组用于一致性组的保护场景,偏重于保护策略。如何结合LUN组使用?可以把不同应用但又需要相同保护策略的LUN合成一个LUN组,再把LUN组映射给不同主机/主机组,然后对LUN组创建主机组,进而进行保护。- 双活域
本端存储+远端存储+仲裁服务器
- 双活pair
本端LUN与远端LUN的双活关系。pair状态正常时,可以对LUN进行正反向同步等操作。双活pair需要在双活域中。
- 双活一致性组
多个具有业务关联的双活Pair的集合。
3. 数据读写原理
写I/O流程
- 主机下发写I/O到双活I/O处理模块
- 向本地的乐观锁请求写权限。通过后,记录LOG,LOG日志中只包含了地址信息,并不是数据
- 本地/远端双活I/O模块同时向本地/远端cache写入数据。远端收到数据时,同样会先向乐观锁请求写权限,获得权限后写入cache
- cache写入完成后向上返回写成功
- 根据上一步操作判断:
- 若两端均返回了写成功,则清除LOG日志
- 若任意一端返回写失败,则
- 将LOG日志转换为DCL,转换成功后清除LOG,记录两端LUN的差异数据
- 双活Pair关系断开,双活状态变为“待同步”。I/O变单写,写成功的一端继续提供业务,写失败的停止提供服务。
- 返回主机写成功
读I/O流程
- 主机发送读I/O请求
- 本地存储系统查询响应主机请求
- 若本地存储系统状态正常,则将数据返回给主机
- 若本地存储系统异常,则通过双活I/O请求模块去读远端存储系统的数据
- 远端存储将数据返回给双活I/O处理模块
- 主机读成功
数据仲裁
在双活场景中,任意数据中心发生故障后,两个DC无法实时同步,为了保证数据的一致性,双活仲裁用来决定服务优先级。
仲裁模式:静态优先模式(无仲裁服务器)、仲裁服务器模式(有仲裁服务器)静态优先级模式
会有一个DC为优先站点,另一个则为非优先站点。当优先站点故障后,非优先站点不会自动接管,需要人为强制启动非优先站点双活业务;若只有非优先站点故障时,优先站点会继续提供业务。
当优先站点主动下电维护时,非优先站点会接管所有双活业务,不会中断。
需要注意的几个场景:- 数据中心A故障,双活pair转为“待同步”,数据中心B停止提供服务
- 双活复制链路故障,且主机与数据中心A的链路同时故障,双活pair“待同步”,数据中心B停止提供服务
单仲裁模式
仲裁服务器一般安装在第三方站点,为保证当单数据中心发生灾难时仲裁服务器不可用。
同样会指定哪个数据中心为优先站点哪个为非优先,仲裁服务器模式下优先站点会获得仲裁胜利。
总结来说,当仲裁节点故障后,仲裁模式会由仲裁服务器变为静态优先级仲裁。仲裁节点或者仲裁链路发生故障是不会影响到双活pair的。
需要注意的几个场景:- 数据中心A和仲裁服务器同时故障,双活pair“待同步”,数据中心B停止业务,此时需要强制启动双活Pair使数据中心B的LUN提供业务。
- 仲裁服务器故障时,存储系统间复制链路同时故障,数据中心A和B均停止业务。此时需要联系TAC或原厂工程师进行处理
- 一端存储系统故障,且主机与该存储系统间链路、仲裁服务器与对端存储系统间链路同时故障(以数据中心A的存储系统故障为例)
总结:仲裁服务器故障,模式转为静态优先;仅仲裁服务器链路故障,且双活链路没问题,不影响业务双仲裁模式
支持仲裁站点部署2台仲裁服务器,做主备关系(冷备),实现设备级的故障切换。仲裁站点配置两台仲裁服务器时,如果主仲裁服务器到两端阵列之间所有链路断开,且备仲裁服务器与两端阵列连接正常、双活站点间链路也正常时,系统在主仲裁故障后1分钟内自动切换到备仲裁服务器,由备仲裁服务器来执行仲裁功能。
其中一台仲裁服务器与数据中心的链路断开时,不会影响业务和仲裁节点的优先级,主仲裁还是主仲裁,备还是备;若其中一台2条链路都故障后,另一台为主仲裁,业务无影响,备仲裁接替工作,故障链路恢复后不会抢占。
需要注意的几个场景:- 主仲裁和优先站点DC故障,双活系统中无仲裁服务器工作,业务停止提供服务
- 一台存储系统与对端存储系统、仲裁服务器之间的链路同时故障(故障间隔≤60s)
主仲裁继续工作(毕竟还有链路在,没有全断开),双活pair“待同步”,数据中心A的LUN停止业务(与主仲裁服务器断开,认为A故障),B继续运行业务。- 一台存储系统故障,且对端存储系统与主仲裁服务器链路故障
分情况讨论,哪个先断开,有没有超过60s。- 数据中心A的LUN先故障,主仲裁到中心B链路后故障
- 前后故障不超过60s:A的LUN故障后,主仲裁还没来得及将双活优先站点切换就挂了,双活pair“待同步”,B也停止提供服务
- 前后超过60:A的LUN故障后,主仲裁将优先站点给B,B继续提供业务,主仲裁挂了之后不影响业务
- 主仲裁到中心B链路先故障,数据中心A的LUN后故障:A和B均停止运行业务
- 主仲裁服务器故障后,存储系统间链路也发生故障
- 前后故障超过60s:备仲裁接替为主,数据中心A仲裁优先成功,所以A继续运行业务,B停止业务
- 不超过60s:均停止业务
总结:若仲裁服务器故障后还有别的故障需要注意,是否在1分钟内,要考虑多种情况。
文件
其他
获取
有些特性是基础软件自带的,比如HyperSnap,具体的要看产品型号和版本,查询方式:https://info.support.huawei.com/storage/spec/#/home