【笔记】HCIE Storage v3.0 华为存储特性

(2024.04.12)

HyperSnap(快照)

快照特性。快照是指在不中断正常业务的前提下,生成源数据在某一时间点的一致性数据副本。

  1. 快照的实现机制:COW(写时复制,copy-on-write)和ROW(写时重定向,redirect-on-write)。

  2. 全闪阵列Ocean Dorado采用ROW技术实现无损快照,并且支持在已创建的快照上再次创建快照,即级联快照;快照生成后可以直接被主机读取。

  3. 优势:

    1. 无需停机,在线备份
    2. 基于ROW实现无损的可写快照
    3. 占用空间小。源数据不修改时不占用空间,源数据修改后,将修改的数据写到新位置时,才会占用额外的存储空间。

      相关概念
      数据组织形式:存储系统存储池创建的LUN包含了元数据卷和数据卷两部分

      • 元数据卷:记录LUN中数据组织形式(LBA、Version、Clone ID)及其属性的卷,结构形式为树形。
        • LBA(Logical Block Address)是逻辑区块地址
        • Version和快照的时间点信息是一一对应
        • Clone ID表示副本数。
      • 数据卷:在LUN中实际存放数据的卷
  4. 实现原理

    主要依赖于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完成数据恢复。

  1. 相关概念

    1. Pair:在HyperClone中,一个源LUN和一个目标LUN构成一个Pair。可以一个源LUN与不同的目标LUN组成不同的pair,但是一个目标LUN只能加入到一个Pair中。Pair主要用于表示源LUN和目标LUN之间的镜像关系。
    2. 一致性组:多个业务相关联的Pair的集合
    3. 同步:将数据从源LUN拷贝至目标LUN。
    4. 反向同步:数据从目标LUN反向同步到源LUN。
  2. 同步

    当启动HyperClone时,存储系统对源LUN打一个即时快照,并将源LUN的数据全量拷贝到目标LUN中,源LUN后续的操作会记录到差异位图中,当对源LUN和目标LUN同步时,借助差异位图同步差异数据。
    注意,再次同步时,数据会直接覆盖到目标LUN;若想保留上一次的目标LUN数据,可以在同步前对目标LUN创建快照。

  3. 反向同步

  4. HyperClone状态:只有同步中和非同步状态。

    非同步中的状态包括:未同步和正常。
    同步中的状态包括:同步中、同步暂停、全量反向同步中、差异反向同步中、全量反向同步暂停、差异反向同步暂停。

  5. 读写原理

    1. 非同步状态时读写:源和目标LUN相互独立,直接读写源/目标LUN

    2. 同步中状态读写

      1. 对源LUN:直接读,直接写
      2. 对目标LUN:若命中则直接读取(已同步),未命中(未同步)则源LUN读取;直接覆盖(已同步),若未同步完成则等待同步完成后查看写入位置是否有数据,有数据则放弃同步。

HyperCDP

高密的快照特性,支持比普通快照更密集的恢复时间点,提供持续的数据保护功能。

  1. 优势
    1. 秒级保护
    2. 支持定时计划
    3. 提供更小的保护间隔,更长的保护周期

HyperMetro(双活)

双活特性,两个DC互为备份且均在运行。当一个数据中心发生设备故障,甚至数据中心整体故障时,业务自动切换到另一个数据中心,解决了传统灾备业务无法自动切换的问题。

  1. 方案简介

    1. 本地数据中心

    一般在同园区的不同机房中,存储侧做镜像复制
    本地数据中心

    1. 跨数据中心

    同城或者相近城市部署,两个数据中心的距离不超过300KM,数据中心使用波分设备连接,降低延迟。两个数据中心均在运行,可以同时承担业务,存储侧做双活镜像通道。当其中一个数据中心
    跨数据中心

  1. 整体特点

    1. 双写技术,确保任一DC故障后平滑接管业务,满足业务RTO=0,RPO=0的业务需求。
    2. AA(active-active)架构。系统可靠性高
    3. 两个DC可以同时向外提供业务,充分利用资源
    4. 可以结合HyperReplication特性,升级为“两地三中心”架构
  2. 相关概念

    1. 保护对象

    对LUN或保护组进行备份、容灾等保护。可以单个LUN或者多个散LUN/1个LUN组所组成的保护组。

    1. 区分LUN组和保护组

    LUN组常用于映射场景,可以将多个主机上的LUN或者不同应用的LUN放在一起;
    保护组用于一致性组的保护场景,偏重于保护策略。如何结合LUN组使用?可以把不同应用但又需要相同保护策略的LUN合成一个LUN组,再把LUN组映射给不同主机/主机组,然后对LUN组创建主机组,进而进行保护。

    1. 双活域

    本端存储+远端存储+仲裁服务器

    1. 双活pair

    本端LUN与远端LUN的双活关系。pair状态正常时,可以对LUN进行正反向同步等操作。双活pair需要在双活域中。

    1. 双活一致性组

    多个具有业务关联的双活Pair的集合。

基于单个LUN创建双活pair
基于多个散LUN创建双活一致性组
基于LUN组创建双活一致性组
3. 数据读写原理

  1. 写I/O流程

    1. 主机下发写I/O到双活I/O处理模块
    2. 向本地的乐观锁请求写权限。通过后,记录LOG,LOG日志中只包含了地址信息,并不是数据
    3. 本地/远端双活I/O模块同时向本地/远端cache写入数据。远端收到数据时,同样会先向乐观锁请求写权限,获得权限后写入cache
    4. cache写入完成后向上返回写成功
    5. 根据上一步操作判断:
      1. 若两端均返回了写成功,则清除LOG日志
      2. 若任意一端返回写失败,则
        1. 将LOG日志转换为DCL,转换成功后清除LOG,记录两端LUN的差异数据
        2. 双活Pair关系断开,双活状态变为“待同步”。I/O变单写,写成功的一端继续提供业务,写失败的停止提供服务。
    6. 返回主机写成功

  2. 读I/O流程

    1. 主机发送读I/O请求
    2. 本地存储系统查询响应主机请求
    3. 若本地存储系统状态正常,则将数据返回给主机
    4. 若本地存储系统异常,则通过双活I/O请求模块去读远端存储系统的数据
    5. 远端存储将数据返回给双活I/O处理模块
    6. 主机读成功

  3. 数据仲裁

    在双活场景中,任意数据中心发生故障后,两个DC无法实时同步,为了保证数据的一致性,双活仲裁用来决定服务优先级。
    仲裁模式:静态优先模式(无仲裁服务器)、仲裁服务器模式(有仲裁服务器)

    1. 静态优先级模式

      会有一个DC为优先站点,另一个则为非优先站点。当优先站点故障后,非优先站点不会自动接管,需要人为强制启动非优先站点双活业务;若只有非优先站点故障时,优先站点会继续提供业务。
      当优先站点主动下电维护时,非优先站点会接管所有双活业务,不会中断。
      需要注意的几个场景:

      • 数据中心A故障,双活pair转为“待同步”,数据中心B停止提供服务

      • 双活复制链路故障,且主机与数据中心A的链路同时故障,双活pair“待同步”,数据中心B停止提供服务

    2. 单仲裁模式

      仲裁服务器一般安装在第三方站点,为保证当单数据中心发生灾难时仲裁服务器不可用。
      同样会指定哪个数据中心为优先站点哪个为非优先,仲裁服务器模式下优先站点会获得仲裁胜利。
      总结来说,当仲裁节点故障后,仲裁模式会由仲裁服务器变为静态优先级仲裁。仲裁节点或者仲裁链路发生故障是不会影响到双活pair的。
      需要注意的几个场景:

      • 数据中心A和仲裁服务器同时故障,双活pair“待同步”,数据中心B停止业务,此时需要强制启动双活Pair使数据中心B的LUN提供业务。

      • 仲裁服务器故障时,存储系统间复制链路同时故障,数据中心A和B均停止业务。此时需要联系TAC或原厂工程师进行处理

      • 一端存储系统故障,且主机与该存储系统间链路、仲裁服务器与对端存储系统间链路同时故障(以数据中心A的存储系统故障为例)


      总结:仲裁服务器故障,模式转为静态优先;仅仲裁服务器链路故障,且双活链路没问题,不影响业务

    3. 双仲裁模式

      支持仲裁站点部署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分钟内,要考虑多种情况。

文件

image.png

其他

获取

有些特性是基础软件自带的,比如HyperSnap,具体的要看产品型号和版本,查询方式:https://info.support.huawei.com/storage/spec/#/home