书签 分享 收藏 举报 版权申诉 / 13

一种远程数据复制方法、存储设备及存储系统.pdf

  • 上传人:a1
  • 文档编号:1290844
  • 上传时间:2018-04-13
  • 格式:PDF
  • 页数:13
  • 大小:856.65KB
  • 摘要
    申请专利号:

    CN201610971200.0

    申请日:

    2016.10.28

    公开号:

    CN106528338A

    公开日:

    2017.03.22

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):G06F 11/14申请日:20161028|||公开

    IPC分类号:

    G06F11/14

    主分类号:

    G06F11/14

    申请人:

    华为技术有限公司

    发明人:

    孔晓龙

    地址:

    518129 广东省深圳市龙岗区坂田华为总部办公楼

    优先权:

    专利代理机构:

    代理人:

    PDF完整版下载: PDF下载
    内容摘要

    一种远程数据复制方法、存储设备及存储系统。其中,第一控制器检测本地是否有复制任务;当所述第一控制器中没有复制任务时,所述第一控制器向所述第二控制器发送请求消息。所述请求消息用于向所述第二控制器申请复制任务,所述第二控制器至少包括两个复制任务。所述第二控制器根据所述请求消息,读取第一个复制任务对应的数据并发送给所述第一控制器。所述第一控制器接收所述第一个复制任务对应的数据,将所述第一个复制任务对应的数据发送给所述灾备阵列,所述第二控制器将第二个复制任务对应的数据发送给所述灾备阵列。从而达到了多控系统中并行复制数据的目的。

    权利要求书

    1.一种远程数据复制方法,其特征在于,所述方法应用于存储系统中,所述存储系统包
    括生产阵列和灾备阵列,所述生产阵列至少包括第一控制器和第二控制器,所述方法包括:
    所述第一控制器检测本地是否有复制任务;
    当所述第一控制器中没有复制任务时,所述第一控制器向所述第二控制器发送请求消
    息,所述请求消息用于向所述第二控制器申请复制任务,所述第二控制器至少包括两个复
    制任务;
    所述第二控制器根据所述请求消息,读取第一个复制任务对应的数据并发送给所述第
    一控制器;
    所述第一控制器接收所述第一个复制任务对应的数据,将所述第一个复制任务对应的
    数据发送给所述灾备阵列;
    所述第二控制器将第二个复制任务对应的数据发送给所述灾备阵列。
    2.根据权利要求1所述的方法,其特征在于,所述第二控制器维护有复制队列,所述复
    制队列包括所述至少两个复制任务;
    所述第二控制器根据所述请求消息,读取第一个复制任务对应的数据并发送给所述第
    一控制器包括:所述第二控制器从所述复制队列中获取所述第一个复制任务,将所述第一
    个复制任务对应的数据发送给所述第一控制器;
    所述第二控制器将第二个复制任务对应的数据发送给所述灾备阵列包括:
    所述第二控制器从所述复制队列中获取第二复制任务,将所述第二复制任务对应的数
    据发送给所述灾备阵列。
    3.根据权利要求1或2所述的方法,其特征在于,所述第一个复制任务和所述第二个复
    制任务是针对同一个文件的复制任务。
    4.根据权利要求3所述的方法,其特征在于,所述文件具有唯一的文件名,所述第一个
    复制任务对应的数据包括所述文件名,所述文件的初始数据,以及所述初始数据的写入时
    间,所述第二个复制任务对应的数据包括所述文件名,所述文件的修改数据,以及所述修改
    数据的写入时间,所述修改数据的写入时间晚于所述初始数据的写入时间。
    5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
    所述灾备阵列接收所述第一个复制任务对应的数据,创建所述文件的备份文件,将所
    述初始数据写入所述备份文件,所述备份文件的文件名与所述文件的文件名相同;
    在所述接收所述第一个复制任务对应的数据之后,所述灾备阵列接收所述第二个复制
    任务对应的数据;
    所述灾备阵列确定所述第二个复制任务对应的文件名与所述备份文件的文件名相同
    时,判断所述修改数据的写入时间是否晚于所述初始数据的写入时间;
    当所述灾备阵列确定所述修改数据的写入时间晚于所述初始数据的写入时间时,将所
    述修改数据写入所述备份文件中。
    6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
    所述灾备阵列接收所述第二个复制任务对应的数据,创建所述文件的备份文件,将所
    述修改数据写入所述备份文件,所述备份文件的文件名与所述文件的文件名相同;
    在所述接收所述第二个复制任务对应的数据之后,所述灾备阵列接收所述第一个复制
    任务对应的数据;
    所述灾备阵列确定所述第一个复制任务对应的文件名与所述备份文件的文件名相同
    时,判断所述初始数据的写入时间是否晚于所述修改数据的写入时间;
    当所述灾备阵列确定所述初始数据的写入时间早于所述修改数据的写入时间时,不执
    行将所述初始数据写入所述备份文件中的操作。
    7.一种存储设备,其特征在于,所述存储设备至少包括第一控制器和第二控制器,
    所述第一控制器,用于检测本地是否有复制任务,当所述第一控制器中没有复制任务
    时,所述第一控制器向所述第二控制器发送请求消息,所述请求消息用于向所述第二控制
    器申请复制任务,所述第二控制器至少包括两个复制任务;
    所述第二控制器,用于根据所述请求消息,读取第一个复制任务对应的数据并发送给
    所述第一控制器;
    所述第一控制器,还用于接收所述第一个复制任务对应的数据,将所述第一个复制任
    务对应的数据发送给其他存储设备;
    所述第二控制器,还用于将第二个复制任务对应的数据发送给所述其他存储设备。
    8.根据权利要求7所述的存储设备,其特征在于,所述第二控制器维护有复制队列,所
    述复制队列包括所述至少两个复制任务;
    所述第二控制器,具体用于从所述复制队列中获取所述第一个复制任务,将所述第一
    个复制任务对应的数据发送给所述第一控制器;以及从所述复制队列中获取第二复制任
    务,所述第二复制任务对应的数据发送给所述其他存储设备。
    9.根据权利要求7或8所述的存储设备,其特征在于,所述第一个复制任务和所述第二
    个复制任务是针对同一个文件的复制任务。
    10.根据权利要求9所述的存储设备,其特征在于,所述文件具有唯一的文件名,所述第
    一个复制任务对应的数据包括所述文件名,所述文件的初始数据,以及所述初始数据的写
    入时间,所述第二个复制任务对应的数据包括所述文件名,所述文件的修改数据,以及所述
    修改数据的写入时间,所述修改数据的写入时间晚于所述初始数据的写入时间。
    11.一种存储系统,其特征在于,包括生产阵列和灾备阵列,所述生产阵列至少包括第
    一控制器和第二控制器,
    所述第一控制器,用于检测本地是否有复制任务;当所述第一控制器中没有复制任务
    时,所述第一控制器向所述第二控制器发送请求消息,所述请求消息用于向所述第二控制
    器申请复制任务,所述第二控制器至少包括两个复制任务;
    所述第二控制器,用于根据所述请求消息,读取第一个复制任务对应的数据并发送给
    所述第一控制器;
    所述第一控制器,还用于接收所述第一个复制任务对应的数据,将所述第一个复制任
    务对应的数据发送给所述灾备阵列;
    所述第二控制器,还用于将第二个复制任务对应的数据发送给所述灾备阵列。
    12.根据权利要求11所述的存储系统,其特征在于,所述第二控制器维护有复制队列,
    所述复制队列包括所述至少两个复制任务;
    所述第二控制器,具体用于从所述复制队列中获取所述第一个复制任务,将所述第一
    个复制任务对应的数据发送给所述第一控制器;以及从所述复制队列中获取第二复制任
    务,所述第二复制任务对应的数据发送给所述灾备阵列。
    13.根据权利要求11或12所述的存储系统,其特征在于,所述第一个复制任务和所述第
    二个复制任务是针对同一个文件的复制任务。
    14.根据权利要求13所述的存储系统,其特征在于,所述文件具有唯一的文件名,所述
    第一个复制任务对应的数据包括所述文件名,所述文件的初始数据,以及所述初始数据的
    写入时间,所述第二个复制任务对应的数据包括所述文件名,所述文件的修改数据,以及所
    述修改数据的写入时间,所述修改数据的写入时间晚于所述初始数据的写入时间。
    15.根据权利要求14所述的存储系统,其特征在于,
    所述灾备阵列,还用于接收所述第一个复制任务对应的数据,创建所述文件的备份文
    件,将所述初始数据写入所述备份文件,所述备份文件的文件名与所述文件的文件名相同;
    在所述接收所述第一个复制任务对应的数据之后,接收所述第二个复制任务对应的数据;
    确定所述第二个复制任务对应的文件名与所述备份文件的文件名相同时,判断所述修改数
    据的写入时间是否晚于所述初始数据的写入时间;当所述灾备阵列确定所述修改数据的写
    入时间晚于所述初始数据的写入时间时,将所述修改数据写入所述备份文件中。
    16.根据权利要求14所述的存储系统,其特征在于,
    所述灾备阵列,还用于接收所述第二个复制任务对应的数据,创建所述文件的备份文
    件,将所述修改数据写入所述备份文件,所述备份文件的文件名与所述文件的文件名相同;
    在所述接收所述第二个复制任务对应的数据之后,接收所述第一个复制任务对应的数据;
    确定所述第一个复制任务对应的文件名与所述备份文件的文件名相同时,判断所述初始数
    据的写入时间是否晚于所述修改数据的写入时间;当所述灾备阵列确定所述初始数据的写
    入时间早于所述修改数据的写入时间时,不执行将所述初始数据写入所述备份文件中的操
    作。

    说明书

    一种远程数据复制方法、存储设备及存储系统

    技术领域

    本发明实施例涉及存储技术领域,特别是一种远程数据复制方法、存储设备及存
    储系统。

    背景技术

    数据容灾,又称为远程数据复制技术,是指建立一个异地的数据系统,该系统是本
    地数据的一个可用复制。在本地数据及整个应用系统出现灾难时,系统至少在异地保存有
    一份可用的关键业务的数据。

    典型的数据容灾系统包括生产中心和灾备中心。在生产中心,部署有主机、存储阵
    列,用于正常的业务运行;在灾备中心,部署有主机、存储阵列,用于在生产中心发生灾难
    后,接管其业务。在海量存储系统中,生产中心的存储阵列和灾备中心的存储阵列通常都是
    包含多个控制器的存储阵列。不同的控制器可以分别对同一个文件进行写入和修改,为了
    保证复制到灾备中心的文件和生产中心的文件保持一致,各个控制器对该文件进行的写入
    操作需要串行复制到灾备中心,影响了复制效率。

    发明内容

    本实施例提供了一种远程数据复制方法和存储系统,能够在多控系统中并发地执
    行复制任务。

    第一方面,提供了一种远程数据复制方法。所述方法应用于存储系统中,所述存储
    系统包括生产阵列和灾备阵列,所述生产阵列至少包括第一控制器和第二控制器。第一控
    制器检测本地是否有复制任务,当没有复制任务时,向第二控制器发送请求消息。所述请求
    消息用于向所述第二控制器申请复制任务,第二控制器至少包括两个复制任务。第二控制
    器根据所述请求消息,读取第一个复制任务对应的数据并发送给所述第一控制器。第一控
    制器接收所述第一个复制任务对应的数据,将所述第一个复制任务对应的数据发送给灾备
    阵列,第二控制器也将第二个复制任务对应的数据发送给所述灾备阵列。

    在本实施例中,第一控制器没有复制任务,处于空闲状态,而第二控制器至少包括
    两个复制任务,处于繁忙状态。因此,第一控制器可以向第二控制器发送请求消息,以申请
    复制任务。第二控制器根据所述请求消息,将自己的至少两个两个复制任务分配一个给第
    一控制器,从而第一控制器和第二控制器可以各自执行一个复制任务,达到了并行处理了
    的目的,提高了复制效率。

    在第一方面的第一种实施方式中,所述第二控制器维护有复制队列,所述复制队
    列包括所述至少两个复制任务。因此,第二控制器具体是从所述复制队列中获取第一个复
    制任务,并将第一个复制任务对应的数据发送给第一控制器。另外,第二控制器也是从所述
    复制队列中获取第二复制任务,将所述第二复制任务对应的数据发送给所述灾备阵列。

    结合第一方面,以及第一方面的第一种实施方式,在第二种实施方式中,第一个复
    制任务和所述第二个复制任务是针对同一个文件的复制任务。由此实现了同一个文件的并
    行复制。

    结合第一方面的第二种实施方式,在第三种实施方式中,所述文件具有唯一的文
    件名,所述第一个复制任务对应的数据包括所述文件名,所述文件的初始数据,以及所述初
    始数据的写入时间,所述第二个复制任务对应的数据包括所述文件名,所述文件的修改数
    据,以及所述修改数据的写入时间,所述修改数据的写入时间晚于所述初始数据的写入时
    间。

    结合第一方面的第三种实施方式,在第四种实施方式中,所述灾备阵列接收所述
    第一个复制任务对应的数据,创建所述文件的备份文件,将所述初始数据写入所述备份文
    件,所述备份文件的文件名与所述文件的文件名相同。在所述接收所述第一个复制任务对
    应的数据之后,所述灾备阵列接收所述第二个复制任务对应的数据。所述灾备阵列确定所
    述第二个复制任务对应的文件名与所述备份文件的文件名相同时,判断所述修改数据的写
    入时间是否晚于所述初始数据的写入时间。当所述灾备阵列确定所述修改数据的写入时间
    晚于所述初始数据的写入时间时,将所述修改数据写入所述备份文件中。在这种实施方式
    中,如果灾备阵列先接收初始数据,再接收修改数据,可以将修改数据写入备份文件中。即
    使修改数据会覆盖初始数据,也不会造成灾备阵列和生产阵列的数据不一致。

    结合第一方面的第三种实施方式,在第五种实施方式中,所述灾备阵列接收所述
    第二个复制任务对应的数据,创建所述文件的备份文件,将所述修改数据写入所述备份文
    件,所述备份文件的文件名与所述文件的文件名相同。在所述接收所述第二个复制任务对
    应的数据之后,所述灾备阵列接收所述第一个复制任务对应的数据。所述灾备阵列确定所
    述第一个复制任务对应的文件名与所述备份文件的文件名相同时,判断所述初始数据的写
    入时间是否晚于所述修改数据的写入时间。当所述灾备阵列确定所述初始数据的写入时间
    早于所述修改数据的写入时间时,不执行将所述初始数据写入所述备份文件中的操作。在
    这种实施方式中,如果灾备阵列先接收修改数据,再接收初始数据,则不执行将初始数据写
    入备份文件的操作,以防止灾备阵列和生产阵列的数据不一致。

    本发明第二方面提供了一种存储设备,以执行第一方面提供的方法。

    本发明第三方面提供了一种存储设备,以执行第一方面提供的方法。

    附图说明

    为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附
    图作简单地介绍。

    图1是本发明实施例提供的系统架构示意图;

    图2是本发明实施例提供的控制器的结构图;

    图3是本发明实施例提供的远程数据复制方法的流程示意图。

    具体实施方式

    本实施例提供了一种远程数据复制方法、存储设备和存储系统,能够在多控系统
    中并发地执行复制任务。

    图1为本发明实施例提供的远程数据复制方法的系统架构示意图,如图1所示,生
    产中心包括生产主机、连接设备和生产阵列20;灾备中心的系统架构与生产中心类似,包括
    灾备主机、连接设备和灾备阵列30。在本发明实施例中,灾备中心可以不止一个。其中,生产
    中心与灾备中心可以通过IP(Internet Protocol)或者FC(Fiber Chanel)或者其他协议进
    行数据传输。

    生产主机和灾备主机均可以是任何计算设备,如服务器、台式计算机等等。在主机
    内部,安装有操作系统以及其他应用程序。

    连接设备可以是存储设备和主机之间的任何接口,如光纤交换机,或者其他当前
    技术已知有的交换机。

    生产阵列20和灾备阵列30均可以是存储设备,如独立硬盘冗余阵列(Redundant
    Arrays of Inexpensive Disks,RAID)、硬盘簇(Just a Bunch Of Disks,JBOD)、直接存取
    存储器(Direct Access Storage Device,DASD)的一个或多个互连的硬盘驱动器,诸如磁
    带库、一个或多个存储单元的磁带存储设备。

    本实施例中的生产阵列20和灾备阵列30均是具有文件系统的存储设备,也就是
    说,存储介质中保存的数据是以文件为单位进行管理和访问的。文件系统是一种存储和组
    织数据的方法,它使得对数据的访问和查找变得容易,文件系统使用文件和树形目录的抽
    象逻辑概念代替了硬盘等物理设备使用的数据块的概念。生产阵列20在使用文件系统来保
    存数据后,用户不必关心数据实际保存在硬盘的地址为多少的数据块上,只需要记住这个
    文件的所属目录和文件名。同样的,在写入新数据之前,用户不必关心硬盘上的那个块地址
    没有被使用,硬盘上的存储空间管理(分配和释放)功能由文件系统自动完成,用户只需要
    记住数据被写入到了哪个文件中。

    生产阵列20和灾备阵列30的硬件结构是相同的。图2是本发明实施例生产阵列20
    的结构示意图,图3是本发明实施例灾备阵列30的结构示意图。

    如图2所示,生产阵列20至少包括控制器21、控制器22和若干个硬盘31。控制器21
    可以包括任何计算设备,如服务器、台式计算机等等。在控制器内部,安装有文件系统以及
    其他应用程序。控制器21用于执行和文件相关的各种操作,例如创建文件、创建目录、读文
    件操作、写文件操作、发送数据复制请求等等。控制器22和控制器21的结构类似,功能相同。
    生产阵列20包含的若干个硬盘31用于提供存储空间保存文件。需要说明的是,控制器21和
    控制器22仅是本发明实施例的示例,在本发明实施例中还可以包含其他控制器,本实施例
    并没有对控制器的数量进行限定。

    控制器21主要包括处理器(processor)118、缓存(cache)120、存储器(memory)
    122、通信总线(简称总线)126以及通信接口(Communication Interface)128。处理器118、
    缓存120、存储器122以及通信接口128通过通信总线126完成相互间的通信。

    通信接口128,用于与生产主机、灾备阵列以及硬盘31通信。另外,通信接口128还
    用于与控制器22通信。

    存储器122,用于存放程序124,存储器122可能包含高速RAM存储器,也可能还包括
    非易失性存储器(non-volatile memory),例如至少一个硬盘存储器。可以理解的是,存储
    器122可以为随机存储器(Random-Access Memory,RAM)、磁碟、硬盘、光盘、固态硬盘(Solid
    State Disk,SSD)或者非易失性存储器等各种可以存储程序代码的非短暂性的(non-
    transitory)机器可读介质。

    程序124可以包括程序代码,所述程序代码包括上面描述的文件系统以及其他程
    序代码。

    缓存120(Cache)用于缓存从生产主机接收的数据或从硬盘中读取的数据。缓存
    120可以是RAM、ROM、闪存(Flash memory)或固态硬盘(Solid State Disk,SSD)等各种可以
    存储数据的非短暂性的(non-transitory)机器可读介质,在此不做限定。

    另外,存储器122和缓存120可以合设或者分开设置,本发明实施例对此不做限定。

    处理器118可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application
    Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电
    路。

    灾备阵列30的结构和生产阵列20相同,其作用是当生产阵列20发生故障时,可以
    接替生产阵列20继续处理业务。

    下面结合图1和图2,描述本发明实施例一种远程数据复制方法。该方法应用在图1
    所示的异步远程复制的场景中,由生产阵列20和灾备阵列30执行。如图3所述,所述方法可
    以包括以下步骤:

    步骤1:第一控制器21检测本地是否有复制任务。

    复制任务是指将数据从生产阵列20复制到灾备阵列30的任务。示例性的,第一控
    制器的缓存中保存有一个复制队列,所述复制队列中可以包括多个复制任务,每个复制任
    务可以用文件名、文件数据的写入时间等信息来描述。第一控制器可以通过检查所述复制
    队列所包含的信息来确定当前是否具有复制任务。另外,队列只是本发明实施例的一个示
    例,本实施例还可以采用其他数据结构,例如堆、栈等,来保存复制任务。

    步骤2:当第一控制器21没有复制任务时,向第二控制器22发送请求消息。

    所述请求消息用于向第二控制器22申请复制任务。可以理解的是,生产阵列20中
    可能包含其他控制器,某些控制器处于空闲状态(没有复制任务),而某些控制器可能处于
    繁忙状态(包括多个待处理的复制任务),那么处于空闲状态的控制器可以向处于繁忙状态
    的控制器申请复制任务。为了方便描述,本实施例以第二控制器22为处于繁忙状态的控制
    器为例,所述第二控制器22至少包括两个复制任务。

    在实际应用中,第一控制器21可以分别向生产阵列20中的每个控制器发送查询消
    息,以获取每个控制器待处理的复制任务。再从中选择出一个处于繁忙状态的控制器,向其
    发送请求消息。或者,在生产阵列20中确定一个控制器,用于采集各个控制器待处理的复制
    任务的数量,并通知第一控制器21当前处于繁忙状态的控制器。

    步骤3:第二控制器22根据所述请求消息,分配一个或多个复制任务给第一控制器
    21。

    与第一控制器21类似,第二控制器的缓存中也保存有一个复制队列,所述复制队
    列中可以包括多个复制任务。第二控制器可以将其中的一个或多个复制任务分配给第一控
    制器21,以保证各个控制器之间的任务均衡。具体的,第二控制器22可以根据先进先出的原
    则,将最早进入所述队列的一个或多个复制任务分配给第一控制器21。所谓分配复制任务
    给第一控制器21,具体可以是将所述复制任务对应的数据发送给第一控制器21。所述复制
    任务对应的数据包括待复制给灾备阵列30的数据,本发明实施例将待复制给灾备阵列30的
    数据称为文件数据,也就是文件对应的数据块。由于所述复制任务可以用文件名来描述,因
    此通过所述文件名以及相应的元数据可以获取文件数据,并发送给第一控制器21。另外,除
    了所述文件数据之外,所述复制任务对应的数据还包括所述文件数据所属的文件的文件名
    以及所述文件数据的写入时间。所述文件数据的写入时间是指所述文件数据写入所述生产
    阵列的时间,它可能是一个具体的时间点,也可能是用于表示一段时间范围的时间区间,还
    有可能是表示所述文件的版本信息的版本号。本实施例并不对所述写入时间的含义和形式
    进行任何限定,只要能够通过各个写入时间的对比得出文件数据写入所述生产阵列的先后
    顺序即可。

    一个队列里面的多个复制任务,可能是针对同一个文件的复制任务(这些复制任
    务的文件名相同),也可能是针对不同文件的复制任务。以针对同一个文件的多个复制任务
    为例,所述多个复制任务对应针对所述文件的多次写入操作。本发明实施例可以利用一个
    序列号来记录对文件的多次写入操作。例如,当一个文件刚被创建时,也就是执行第一次写
    入操作时,其序列号为1;当所述文件被修改,也就是执行第二次写入操作时,其序列号为2。
    所谓执行针对一个文件的多个复制任务也就是将所述文件对应的多次写入操作同步至灾
    备阵列。因此,每次复制任务可以对应一个唯一的序列号。

    为了方便描述,本实施例将第二控制器22分配给第一控制器21的复制任务称为第
    一复制任务,将第二控制器22分配给第一控制器21的复制任务之外,队列中剩余的复制任
    务称为第二复制任务。例如,第一个复制任务以及第二个复制任务可分别包括如下信息:

    文件名
    序列号
    文件数据的写入时间
    0X100
    001
    2016.1.1
    0X100
    002
    2016.1.2

    如上表所示,第一个复制任务对应的数据属于文件名为0X100的文件名,所述数据
    的写入时间是2016.1.1,所述第一个复制任务的序列号是001;第二个复制任务对应的数据
    属于文件名为0X100的文件名,所述数据的写入时间是2016.1.2,所述第二个复制任务的序
    列号是002。

    步骤4:第一控制器21接收第一个复制任务对应的数据,并且将所述数据发送给灾
    备阵列30。

    具体的,第二控制器22可以根据文件名以及对应的元数据,获取文件数据,将所述
    文件数据、文件名、序列号以及所述文件数据的写入时间发送给第一控制器21。由第一控制
    器21执行所述复制任务,也就是说将所述文件数据、文件名、序列号以及所述文件数据的写
    入时间发送给灾备阵列30。

    步骤5:第二控制器22将第二个复制任务对应的数据发送给灾备阵列30。

    具体的,第二控制器22根据所述第二个复制任务记录的文件名以及对应的元数据
    获取文件数据,并且将所述文件数据、文件名以及所述文件数据的写入时间发送给灾备阵
    列30。

    通过图3所示的实施方式,处于空闲状态的控制器可以向处于繁忙状态的控制器
    申请复制任务,处于繁忙状态的控制器将自己的复制任务分配一部分给处于空闲状态的控
    制器,由此,各个控制器可以并行地处理复制任务,提高了复制效率。

    下面介绍当各个控制器并行处理复制任务时,如何保证灾备阵列的文件与生产阵
    列的文件的一致性。

    由图3所示,第一控制器21执行第一个复制任务,将第一个复制任务对应的文件数
    据复制给了灾备阵列30;第二控制器22执行第二个复制任务,将第二个复制任务对应的文
    件数据复制给了灾备阵列30。为了方便描述,将第一个复制任务对应的文件数据简称为数
    据A,将第二个复制任务对应的文件数据简称为数据B。虽然第一控制器21和第二控制器22
    是并行地执行这两个复制任务,然而灾备阵列30往往并不是同时接收数据A和数据B的时间
    的。

    情况1:灾备阵列30先接收数据A,再接收数据B。

    灾备阵列30在接收数据A时,还会一并接收并保存数据A所属的文件的文件名,第
    一复制任务的序列号以及数据A的写入时间。灾备阵列可以遍历本地的文件的文件名,确定
    数据A不属于本地的任何一个文件。从而,创建一个新文件,所述新文件是数据A在生产阵列
    所属的文件的备份文件。所述备份文件的文件名可以与源文件(数据A在生产阵列所属的文
    件)一致。随后,灾备阵列30将数据A写入所述备份数据,并记录数据A的写入时间,所述写入
    时间与生产阵列20发送的数据A的写入时间相同。

    在灾备阵列30接收数据A之后,接收数据B。由于数据B所属的文件的文件名和上述
    备份文件的文件名相同,灾备阵列30不需再创建新的文件。接下来,灾备阵列30记录数据B
    对应的写入时间,所述写入时间与生产阵列20发送的数据B的写入时间相同。灾备阵列30比
    较数据B的写入时间和数据A的写入时间,确定数据B的写入时间晚于数据A的写入时间,因
    此数据A是所述备份文件的初始数据,而数据B是所述备份文件的修改数据。修改数据可以
    覆盖初始数据,灾备阵列执行将数据B写入所述备份文件的操作。

    情况2:灾备阵列30先接收数据B,再接收数据A。

    灾备阵列30在接收数据B时,遍历本地的文件的文件名,确定数据B不属于本地的
    任何一个文件。从而,创建一个新文件,所述新文件是数据B在生产阵列所属的文件的备份
    文件。所述备份文件的文件名可以与源文件(数据B在生产阵列所属的文件)一致。随后,灾
    备阵列30将数据B写入所述备份数据,并记录数据B的写入时间,所述写入时间与生产阵列
    20发送的数据B的写入时间相同。

    在灾备阵列30接收数据B之后,接收数据A。由于数据A所属的文件的文件名和上述
    备份文件的文件名相同,灾备阵列30不需再创建新的文件。接下来,灾备阵列30记录数据A
    对应的写入时间,所述写入时间与生产阵列20发送的数据A的写入时间相同。灾备阵列30比
    较数据B的写入时间和数据A的写入时间,确定数据A的写入时间早于数据B的写入时间,因
    此数据A是所述备份文件的初始数据,而数据B是所述备份文件的修改数据。初始数据不可
    以覆盖修改数据,灾备阵列不执行将数据A写入所述备份文件的操作。

    由此,灾备阵列30在接收针对同一个文件的多个数据时,可以根据各个数据的写
    入时间判断是否执行对备份文件的写入操作,其原则是,只能用写入时间较晚的数据覆盖
    写入时间较早的数据,由此保证了文件的一致性。

    另外,当生产阵列20中的文件被删除时,为了保持一致,灾备阵列30中的备份文件
    也需要被删除。具体的,生产阵列20可以向灾备阵列发送删除文件的指令,所述指令包括所
    述文件的文件名,以及最新的序列号(最后一次写入操作对应的序列号)。灾备阵列30接收
    所述删除文件的指令之后,根据所述文件名查找到相应的备份文件,判断所述备份文件的
    最新的序列号是否与生产阵列20发送的序列号相同。若相同,则灾备阵列30执行删除所述
    备份文件的操作;否则,不执行删除所述备份文件的操作。

    最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制。

    关 键  词:
    一种 远程 数据 复制 方法 存储 设备 存储系统
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种远程数据复制方法、存储设备及存储系统.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1290844.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1