CN111679794B - 多控存储系统中进行数据同步的方法和装置 - Google Patents

多控存储系统中进行数据同步的方法和装置 Download PDF

Info

Publication number
CN111679794B
CN111679794B CN202010551604.0A CN202010551604A CN111679794B CN 111679794 B CN111679794 B CN 111679794B CN 202010551604 A CN202010551604 A CN 202010551604A CN 111679794 B CN111679794 B CN 111679794B
Authority
CN
China
Prior art keywords
metadata
storage
written
disk array
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010551604.0A
Other languages
English (en)
Other versions
CN111679794A (zh
Inventor
刘磊
童韬
沈杰
郑若彤
韩世强
樊雅倩
牛星星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Leadstor Technology Co ltd
Original Assignee
Beijing Leadstor Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Leadstor Technology Co ltd filed Critical Beijing Leadstor Technology Co ltd
Priority to CN202010551604.0A priority Critical patent/CN111679794B/zh
Publication of CN111679794A publication Critical patent/CN111679794A/zh
Application granted granted Critical
Publication of CN111679794B publication Critical patent/CN111679794B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明公开了一种多控存储系统中进行数据同步的方法和装置,属于数据存储领域。该系统包括多个存储控制器以及由若干固态硬盘构成的盘阵列,多个存储控制器与盘阵列连接,每个存储控制器在盘阵列上均对应有一个元数据存储区。该方法包括:通过选定的任何一个存储控制器将写操作的待写入数据直接写入到盘阵列中,同时将写操作产生的元数据直接写入到该存储控制器对应的元数据存储区中;各个存储控制器周期性的从其它存储控制器对应的元数据存储区中读取其它存储控制器写入的元数据,并根据读取的元数据对自身的元数据进行更新。本发明大大简化了系统的设计,降低了硬件和软件的复杂度和成本,减少了数据写入的层级,提高了系统的可靠性和性价比。

Description

多控存储系统中进行数据同步的方法和装置
技术领域
本发明涉及数据存储领域,特别是指一种多控存储系统中进行数据同 步的方法和装置。
背景技术
中高端企业级存储系统,大多采用双控或多控的架构,达到高可靠性 和高性能,客户端可以通过任意一个存储控制器对存储系统进行读写操作。 这就要求存储系统的多控之间保持同步的状态:即每个存储控制器保存的 表示磁盘存储状态信息的元数据都是相同且最新的。这是一个十分费时的 操作,对存储系统的性能影响很大。
对于磁盘(机械硬盘)阵列形式的存储系统,由于磁盘的随机读写性 能很差,将数据写入磁盘的速度很慢,因此多控之间的同步是通过“内存 +电池”的方式实现的,待写入的数据(包括相关元数据)需要先写入特 定的内存,再写入磁盘阵列。例如双控Active+Active的存储系统,其写 操作包括:
待写入的数据在下发磁盘阵列的同时,写入本地一块特定的内存,写 入远端一块特定的内存;写入完成后,本地和远端分别返回“ack”信号; 本地成功收到两个“ack”信号后,向客户端返回w_ack信号。本地和远 端根据最新写入的数据(和元数据),更新元数据信息,完成写操作过程。 如果写操作失败,本地和远端均放弃该待写入数据,并向客户端返回“失 败”信号。
如果写操作过程中,发生掉电等意外情况,则按照如下情况进行操作:
1、若发生一个存储控制器掉电另一个正常的情况,则存储系统进入 单控状态。
2、若发生两个存储控制器均掉电的情况,则存储系统重新工作的时 候,需要经历一个“恢复(recovery)”的过程。
该recovery过程包括掉电保护过程和数据恢复过程。掉电保护过程: 在掉电的时候,特定的内存中的数据写入到持久存储(例如NAND闪存或磁盘等)中,写入时,需要供电,供电的电源可以是超级电容或者电池 等。数据恢复过程:重新上电以后,持久存储中的数据自动恢复到内存中, 供系统使用。
特定内存为NVIDMM器件,并由DRAM+NAND+超级电容构成掉电 保护。正常工作时,通过DRAM进行数据读写。掉电时,电压探测电路 发出信号,DRAM中的数据被写入到NAND,超级电容提供了所需的电力。重新上电以后,NAND中的数据自动恢复到DRAM。
或者由DRAM+磁盘+电池构成掉电保护。正常工作时,通过DRAM 进行数据读写。掉电时,电压探测电路发出信号,DRAM中的数据被写入 到磁盘,电池提供了所需的电力。重新上电以后,系统从磁盘中找到保存 的数据,自动恢复到DRAM。
上述磁盘阵列形式的多控存储系统及其同步方法存在以下缺陷:
1.系统复杂:先写入特定内存再写入磁盘的多层级写入方式需要特定 的内存NVDIMM、电池(或超级电容),并且掉电保护是个相对独立、复 杂的模块,导致硬件系统结构复杂,相应的软件处理流程也较繁琐。
2.可靠性低:复杂的硬件系统导致可靠性降低,并且超级电容、电池 的寿命有限,数据在磁盘、特定内存等多个区域损坏的可能性增大,数据 不一致的可能性也增大。
发明内容
为解决上述技术问题,本发明提供一种多控存储系统中进行数据同步 的方法和装置,本发明大大简化了系统的设计,降低了硬件和软件的复杂 度和成本,减少了数据写入的层级,提高了整体系统的可靠性和性价比。
本发明提供技术方案如下:
第一方面,本发明提供一种多控存储系统中进行数据同步的方法,所 述多控存储系统包括多个存储控制器以及由若干固态硬盘构成的盘阵列, 所述多个存储控制器与所述盘阵列连接,每个存储控制器在所述盘阵列上 均对应有一个元数据存储区;其中,所述多控存储系统中进行数据同步的方法包括:
通过选定的任何一个存储控制器将写操作的待写入数据直接写入到 所述盘阵列中,并同时将写操作产生的元数据直接写入到该存储控制器对 应的元数据存储区中;
各个存储控制器周期性的从其它存储控制器对应的元数据存储区中 读取其它存储控制器写入的元数据,并根据读取的元数据对自身的元数据 进行更新。
进一步的,所述多控存储系统中进行数据同步的方法还包括:
根据选定的任何一个存储控制器中最新的元数据从盘阵列中直接读 出待读取数据。
进一步的,所述通过选定的任何一个存储控制器将写操作的待写入数 据直接写入到所述盘阵列中,并同时将写操作产生的元数据直接写入到该 存储控制器对应的元数据存储区中,包括:
选定的存储控制器上的若干个写操作作为一个写操作分组,同一写操 作分组中各个写操作的待写入数据作为一个待写入数据单元,同一写操作 分组中各个写操作产生的元数据作为一个元数据单元;
将待写入数据单元一次同时直接写入到所述盘阵列中,并同时将所述 元数据单元一次同时直接写入到该存储控制器对应的元数据存储区中。
进一步的,写入到元数据存储区中的元数据被其他全部存储控制器读 取之前不能被新的元数据覆盖;
写操作产生的元数据还包括版本信息;在写入元数据时,连同版本信 息一并写入;在读取元数据时,连同版本信息一并读取,并根据版本信息 对自身的元数据进行更新。
进一步的,所述存储控制器通过NVMeoF网络协议与所述盘阵列连 接,所述存储控制器之间通过NVMeoF网络协议互相连接。
进一步的,所述存储控制器之间互相连接,并且每个存储控制器均连 接有一个PCIe交换芯片,所有PCIe交换芯片通过一个PCIe背板与盘阵 列连接;
或者,所述存储控制器之间通过网络交换机互相连接,所述网络交换 机依次通过一个PCIe交换芯片和一个PCIe背板与盘阵列连接。
第二方面,本发明提供一种多控存储系统中进行数据同步的装置,所 述多控存储系统包括多个存储控制器以及由若干固态硬盘构成的盘阵列, 所述多个存储控制器与所述盘阵列连接,每个存储控制器在所述盘阵列上 均对应有一个元数据存储区;其中,所述多控存储系统中进行数据同步的 装置包括:
写入模块,用于通过选定的任何一个存储控制器将写操作的待写入数 据直接写入到所述盘阵列中,并同时将写操作产生的元数据直接写入到该 存储控制器对应的元数据存储区中;
同步模块,用于各个存储控制器周期性的从其它存储控制器对应的元 数据存储区中读取其它存储控制器写入的元数据,并根据读取的元数据对 自身的元数据进行更新。
进一步的,所述多控存储系统中进行数据同步的装置还包括:
读取模块,用于根据选定的任何一个存储控制器中最新的元数据从盘 阵列中直接读出待读取数据。
进一步的,所述写入模块包括:
分组单元,用于选定的存储控制器上的若干个写操作作为一个写操作 分组,同一写操作分组中各个写操作的待写入数据作为一个待写入数据单 元,同一写操作分组中各个写操作产生的元数据作为一个元数据单元;
写入单元,用于将待写入数据单元一次同时直接写入到所述盘阵列中, 并同时将所述元数据单元一次同时直接写入到该存储控制器对应的元数 据存储区中。
进一步的,写入到元数据存储区中的元数据被其他全部存储控制器读 取之前不能被新的元数据覆盖;
写操作产生的元数据还包括版本信息;在写入元数据时,连同版本信 息一并写入;在读取元数据时,连同版本信息一并读取,并根据版本信息 对自身的元数据进行更新。
进一步的,所述存储控制器通过NVMeoF网络协议与所述盘阵列连 接,所述存储控制器之间通过NVMeoF网络协议互相连接。
进一步的,所述存储控制器之间互相连接,并且每个存储控制器均连 接有一个PCIe交换芯片,所有PCIe交换芯片通过一个PCIe背板与盘阵 列连接;
或者,所述存储控制器之间通过网络交换机互相连接,所述网络交换 机依次通过一个PCIe交换芯片和一个PCIe背板与盘阵列连接。
本发明具有以下有益效果:
本发明不需要特定内存并省略了超级电容或电池,大大简化了系统的 设计,降低了硬件和软件的复杂度和成本,减少了数据写入的层级,提高 了整体系统的可靠性和性价比。并且本发明通过在盘阵列的指定区域(元 数据存储区)写入和读出元数据的方法对各个存储控制器的元数据进行同步更新,其执行方式简单,可靠性高,速度快。
附图说明
图1为本发明的多控存储系统一个示例的结构图;
图2为本发明的多控存储系统另一个示例的结构图;
图3为本发明的多控存储系统中进行数据同步的方法一个示例的流程 图;
图4为本发明的多控存储系统中进行数据同步的方法另一个示例的流 程图;
图5为本发明的多控存储系统中进行数据同步的装置一个示例的示意 图;
图6为本发明的多控存储系统中进行数据同步的装置另一个示例的示 意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结 合附图及具体实施例进行详细描述。
实施例1:
本发明实施例提供一种多控存储系统中进行数据同步的方法,如图1、 2所示,该多控存储系统包括多个存储控制器1以及由若干固态硬盘构成 的盘阵列2,多个存储控制器1与盘阵列2连接,每个存储控制器1在盘 阵列2上均对应有一个元数据存储区,元数据存储区是事先约好的。如图 3所示,该多控存储系统中进行数据同步的方法包括:
S100:通过选定的任何一个存储控制器将写操作的待写入数据直接写 入到盘阵列中,具体是存储在事先划定好的数据存储区中;并同时将写操 作产生的元数据直接写入到该存储控制器对应的元数据存储区中。
本申请使用固态硬盘(NVMe SSD)构成盘阵列,固态硬盘的读写速 度非常快,与磁盘(机械硬盘)相比,其性能可以提高上千倍。因此本发明可以将待写入数据直接落盘:即直接写入到盘阵列中,而不需要先写入 特定的内存(NVDIMM)中,再写入磁盘中,减少了数据写入的层级。
本申请的多个存储控制器之间的元数据对用户而言是完全同步的,用 户的读写请求可以在任何一个存储控制器上都可以完成。
写操作时,会根据写操作产生元数据,为保证各个存储控制器之间元 数据的同步,需要同时将该元数据写入到该存储控制器的元数据存储区中, 以供后续其他存储控制器更新元数据之用。
由于数据直接写入固态硬盘的盘阵列,不是保存在“特定内存”中, 所以不需要“特定内存”,也不需要掉电保护,省略了超级电容或电池。
S200:各个存储控制器周期性的从其它存储控制器对应的元数据存储 区中读取其它存储控制器写入的元数据,并根据读取的元数据对自身的元 数据进行更新,使得各个存储控制器的元数据信息对用户而言都是最新的 且都是完全同步的。
由上述可知,本发明不需要特定内存并省略了超级电容或电池,大大 简化了系统的设计,降低了硬件和软件的复杂度和成本,减少了数据写入 的层级,提高了整体系统的可靠性和性价比。并且本发明通过在盘阵列的 指定区域(元数据存储区)写入和读出元数据的方法对各个存储控制器的元数据进行同步更新,其执行方式简单,可靠性高,速度快。
前述S100~S200是写操作过程,本发明的多控存储系统中进行数据同 步的方法还包括读操作过程,如图4所示,读操作过程包括:
S300:根据选定的任何一个存储控制器中最新的元数据从盘阵列中直 接读出待读取数据。
本发明在读取数据时,总是根据选定的存储控制器中最新的元数据从 盘阵列中直接读取,保证读取的数据的正确性。
前述的S100包括:
S110:选定的存储控制器上的若干个写操作作为一个写操作分组,同 一写操作分组中各个写操作的待写入数据作为一个待写入数据单元,同一 写操作分组中各个写操作产生的元数据作为一个元数据单元。
S120:将待写入数据单元一次同时直接写入到盘阵列中,并同时将元 数据单元一次同时直接写入到该存储控制器对应的元数据存储区中。
本发明中,在同一个存储控制器上,若干写操作产生的元数据以同一 个元数据信息单元同时完成落盘,这些写操作就视为一个写操作分组。同 一分组的写操作产生的元数据信息组成一个最新的元数据单元,由该存储 控制器将该元数据单元写SSD盘阵列的约定区域(元数据存储区),由其 他存储控制器周期性读出。
本发明中,每个存储控制器上,都有一个负责将元数据写入约定区域 的更新功能,还具有一个负责周期性地读取来自其他存储控制器的元数据的同步功能。更新功能和其他存储控制器的同步功能对于一个约定区域的 数据而言,符合一个生产者和多个消费者的同步模型,需要互相协调保证 一条元数据被全部消费者读取之前不能被生产者覆盖。也就是说,要求写 入到元数据存储区中的元数据被其他全部存储控制器读取之前不能被新 的元数据覆盖,保证所有的存储控制器都同步最新的元数据。
本发明中,在写操作时,待写入数据和元数据写入盘阵列后,存储控 制器需要确认有不少于约定数量的其他存储控制器已经读到了这个写操 作所属的元数据。然后在读操作时,存储控制器根据最新的元数据从盘阵 列中直接读出数据。
前述进行写操作时除了产生元数据还可以产生版本信息;S100中在 写入元数据时,连同版本信息一并写入;S200中在读取元数据时,连同 版本信息一并读取,并根据版本信息对自身的元数据进行更新,将当前读 到的其他存储控制器的元数据和版本信息一起写入自身。
现有技术中存储控制器间通信成本高:存储控制器间一般通过 PCIe-NTB的方式进行通讯,也有通过高速网络的方式。由于待写入数据 需要传递到多个存储控制器,对传输带宽、延迟有很高要求。这样既增加 了硬件系统的复杂度和成本,同时也增加了软件复杂度和维护成本。
本申请的存储控制器1通过NVMeoF网络协议与盘阵列2连接,存 储控制器1之间通过NVMeoF网络协议互相连接。
NVMeoF网络协议(例如RDMA协议等)的延迟极低,例如RDMA 协议的延迟在5~10us左右。本发明采用NVMe SSD及NVMeoF网络协议 的方式,减少了硬件系统的复杂度和成本,极大的降低了延迟,提高了存 储的性能。
本申请不限制多控存储系统的具体实现方式,在其中一个示例中,如 图1所示,存储控制器1之间互相连接,并且每个存储控制器1均连接有 一个PCIe交换芯片3,所有PCIe交换芯片3通过一个PCIe背板4与盘阵 列2连接;
或者,在另一个示例中,如图2所示,存储控制器1之间通过网络交 换机5互相连接,网络交换机需要支持NVMeoF协议,网络交换机5依 次通过一个PCIe交换芯片3和一个PCIe背板4与盘阵列3连接。
实施例2:
本发明实施例提供一种多控存储系统中进行数据同步的装置,如图1、2所示,该多控存储系统包括多个存储控制器以及由若干固态硬盘构成的 盘阵列,多个存储控制器与盘阵列连接,每个存储控制器在盘阵列上均对 应有一个元数据存储区;其中,如图5所示,多控存储系统中进行数据同步的装置包括:
写入模块10,用于通过选定的任何一个存储控制器将写操作的待写入 数据直接写入到盘阵列中,并同时将写操作产生的元数据直接写入到该存 储控制器对应的元数据存储区中。
同步模块20,用于各个存储控制器周期性的从其它存储控制器对应的 元数据存储区中读取其它存储控制器写入的元数据,并根据读取的元数据 对自身的元数据进行更新。
本发明不需要特定内存并省略了超级电容或电池,大大简化了系统的 设计,降低了硬件和软件的复杂度和成本,减少了数据写入的层级,提高 了整体系统的可靠性和性价比。并且本发明通过在盘阵列的指定区域(元 数据存储区)写入和读出元数据的方法对各个存储控制器的元数据进行同步更新,其执行方式简单,可靠性高,速度快。
如图6所示,该多控存储系统中进行数据同步的装置还包括:
读取模块30,用于根据选定的任何一个存储控制器中最新的元数据从 盘阵列中直接读出待读取数据。
前述的写入模块包括:
分组单元,用于选定的存储控制器上的若干个写操作作为一个写操作 分组,同一写操作分组中各个写操作的待写入数据作为一个待写入数据单 元,同一写操作分组中各个写操作产生的元数据作为一个元数据单元。
写入单元,用于将待写入数据单元一次同时直接写入到盘阵列中,并 同时将元数据单元一次同时直接写入到该存储控制器对应的元数据存储 区中。
在写入到元数据存储区中的元数据被其他全部存储控制器读取之前 不能被新的元数据覆盖;
前述的写操作产生的元数据还包括版本信息;相应的,在写入元数据 时,连同版本信息一并写入;在读取元数据时,连同版本信息一并读取, 并根据版本信息对自身的元数据进行更新。
本发明的存储控制器通过NVMeoF网络协议与盘阵列连接,存储控 制器之间通过NVMeoF网络协议互相连接。
示例性的,如图1所示,存储控制器之间互相连接,并且每个存储控 制器均连接有一个PCIe交换芯片,所有PCIe交换芯片通过一个PCIe背 板与盘阵列连接;
或者,如图2所示,存储控制器之间通过网络交换机互相连接,网络 交换机依次通过一个PCIe交换芯片和一个PCIe背板与盘阵列连接。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方 法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方 法实施例1中相应内容。所属领域的技术人员可以清楚地了解到,为描述 的方便和简洁,前述描述的装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
需要说明的是,本说明书上述所述的装置或者系统根据相关方法实施 例的描述还可以包括其他的实施方式,具体的实现方式可以参照方法实施 例的描述,在此不作一一赘述。本说明书中的各个实施例均采用递进的方 式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点 说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类、存储介 质+程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求 书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照 不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附 图中描绘的过程不一定按照要求示出的特定顺序或者连续顺序才能实现 期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片 或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为 计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人 机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放 器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或 者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当 然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软 件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元 的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式, 例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可 以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合 或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可 以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制 器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、 开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现 相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括 的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程 序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现 流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图 中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一 个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令 产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多 个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处 理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读 存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一 个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备 上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机 实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现 在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/ 输出接口、网络接口和内存。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵 盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设 备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包 括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情 况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、 系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬 件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且, 本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用 程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、 光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指 令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定 任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。 也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在 分布式计算环境中,程序模块可以位于包括存储设备在内的本底和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相 同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的 不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例, 所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说 明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特 征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在 本说明书中,对上述术语的示意性表述并不必须针对的是相同的实施例或 示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个 实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领 域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用 以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于 此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术 人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围 内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都 应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利 要求的保护范围为准。

Claims (8)

1.一种多控存储系统中进行数据同步的方法,其特征在于,所述多控存储系统包括多个存储控制器以及由若干固态硬盘构成的盘阵列,所述多个存储控制器与所述盘阵列连接,每个存储控制器在所述盘阵列上均对应有一个元数据存储区;其中,所述多控存储系统中进行数据同步的方法包括:
通过选定的任何一个存储控制器将写操作的待写入数据直接写入到所述盘阵列中,并同时将写操作产生的元数据直接写入到该存储控制器对应的元数据存储区中;
各个存储控制器周期性的从其它存储控制器对应的元数据存储区中读取其它存储控制器写入的元数据,并根据读取的元数据对自身的元数据进行更新;
所述通过选定的任何一个存储控制器将写操作的待写入数据直接写入到所述盘阵列中,并同时将写操作产生的元数据直接写入到该存储控制器对应的元数据存储区中,包括:
选定的存储控制器上的若干个写操作作为一个写操作分组,同一写操作分组中各个写操作的待写入数据作为一个待写入数据单元,同一写操作分组中各个写操作产生的元数据作为一个元数据单元;
将待写入数据单元一次同时直接写入到所述盘阵列中,并同时将所述元数据单元一次同时直接写入到该存储控制器对应的元数据存储区中。
2.根据权利要求1所述的多控存储系统中进行数据同步的方法,其特征在于,所述多控存储系统中进行数据同步的方法还包括:
根据选定的任何一个存储控制器中最新的元数据从盘阵列中直接读出待读取数据。
3.根据权利要求2所述的多控存储系统中进行数据同步的方法,其特征在于,写入到元数据存储区中的元数据被其他全部存储控制器读取之前不能被新的元数据覆盖;
写操作产生的元数据还包括版本信息;在写入元数据时,连同版本信息一并写入;在读取元数据时,连同版本信息一并读取,并根据版本信息对自身的元数据进行更新。
4.根据权利要求1-3任一所述的多控存储系统中进行数据同步的方法,其特征在于,所述存储控制器通过NVMeoF网络协议与所述盘阵列连接,所述存储控制器之间通过NVMeoF网络协议互相连接。
5.根据权利要求4所述的多控存储系统中进行数据同步的方法,其特征在于,所述存储控制器之间互相连接,并且每个存储控制器均连接有一个PCIe交换芯片,所有PCIe交换芯片通过一个PCIe背板与盘阵列连接;
或者,所述存储控制器之间通过网络交换机互相连接,所述网络交换机依次通过一个PCIe交换芯片和一个PCIe背板与盘阵列连接。
6.一种多控存储系统中进行数据同步的装置,其特征在于,所述多控存储系统包括多个存储控制器以及由若干固态硬盘构成的盘阵列,所述多个存储控制器与所述盘阵列连接,每个存储控制器在所述盘阵列上均对应有一个元数据存储区;其中,所述多控存储系统中进行数据同步的装置包括:
写入模块,用于通过选定的任何一个存储控制器将写操作的待写入数据直接写入到所述盘阵列中,并同时将写操作产生的元数据直接写入到该存储控制器对应的元数据存储区中;
同步模块,用于使各个存储控制器周期性的从其它存储控制器对应的元数据存储区中读取其它存储控制器写入的元数据,并根据读取的元数据对自身的元数据进行更新;
所述写入模块包括:
分组单元,用于将选定的存储控制器上的若干个写操作作为一个写操作分组,同一写操作分组中各个写操作的待写入数据作为一个待写入数据单元,同一写操作分组中各个写操作产生的元数据作为一个元数据单元;
写入单元,用于将待写入数据单元一次同时直接写入到所述盘阵列中,并同时将所述元数据单元一次同时直接写入到该存储控制器对应的元数据存储区中。
7.根据权利要求6所述的多控存储系统中进行数据同步的装置,其特征在于,所述多控存储系统中进行数据同步的装置还包括:
读取模块,用于根据选定的任何一个存储控制器中最新的元数据从盘阵列中直接读出待读取数据。
8.根据权利要求7所述的多控存储系统中进行数据同步的装置,其特征在于,写入到元数据存储区中的元数据被其他全部存储控制器读取之前不能被新的元数据覆盖;
写操作产生的元数据还包括版本信息;在写入元数据时,连同版本信息一并写入;在读取元数据时,连同版本信息一并读取,并根据版本信息对自身的元数据进行更新。
CN202010551604.0A 2020-06-17 2020-06-17 多控存储系统中进行数据同步的方法和装置 Active CN111679794B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010551604.0A CN111679794B (zh) 2020-06-17 2020-06-17 多控存储系统中进行数据同步的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010551604.0A CN111679794B (zh) 2020-06-17 2020-06-17 多控存储系统中进行数据同步的方法和装置

Publications (2)

Publication Number Publication Date
CN111679794A CN111679794A (zh) 2020-09-18
CN111679794B true CN111679794B (zh) 2024-01-26

Family

ID=72455238

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010551604.0A Active CN111679794B (zh) 2020-06-17 2020-06-17 多控存储系统中进行数据同步的方法和装置

Country Status (1)

Country Link
CN (1) CN111679794B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328512B (zh) * 2020-09-22 2023-07-28 北京计算机技术及应用研究所 一种应用于多控存储系统的缓存同步系统及方法
CN112597245B (zh) * 2020-12-24 2023-11-10 北京百度网讯科技有限公司 数据同步方法、设备和存储介质
CN113127388A (zh) * 2021-04-13 2021-07-16 郑州云海信息技术有限公司 一种元数据写入方法及相关装置
CN115098023B (zh) * 2022-06-22 2023-08-15 浙江威固信息技术有限责任公司 一种阵列式存储器及存储器单元控制方法
CN115167784A (zh) * 2022-09-05 2022-10-11 苏州浪潮智能科技有限公司 一种数据写入方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015172391A1 (zh) * 2014-05-16 2015-11-19 华为技术有限公司 快速数据读写方法和装置
CN108664218A (zh) * 2018-04-23 2018-10-16 浙江大华技术股份有限公司 一种基于数据特征的ssd存储方法、装置及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9183128B2 (en) * 2011-02-23 2015-11-10 St-Ericsson Sa Device controller for a memory device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015172391A1 (zh) * 2014-05-16 2015-11-19 华为技术有限公司 快速数据读写方法和装置
CN108664218A (zh) * 2018-04-23 2018-10-16 浙江大华技术股份有限公司 一种基于数据特征的ssd存储方法、装置及系统

Also Published As

Publication number Publication date
CN111679794A (zh) 2020-09-18

Similar Documents

Publication Publication Date Title
CN111679794B (zh) 多控存储系统中进行数据同步的方法和装置
CN106463179B (zh) 利用存储器控制器处理数据错误事件的方法、装置和系统
US20200019543A1 (en) Method, apparatus and device for updating data, and medium
US20080016300A1 (en) Asynchronous replication with write concurrency grouping
CN103780638A (zh) 数据同步方法及系统
US20070277012A1 (en) Method and apparatus for managing backup data and journal
CN113743942B (zh) 交易执行方法、区块链、主节点和主存储设备
US20210263910A1 (en) Data storage method and apparatus for blockchain, device, and medium
US11500718B2 (en) Look-aside RAID controller storage-device-assisted data update system
CN105426427A (zh) 基于raid 0 存储的mpp 数据库集群副本实现方法
WO2024001024A1 (zh) 在区块链系统中执行交易的方法、区块链系统和节点
CN110286852A (zh) 双控构架分布式存储系统、数据读取方法、装置和存储介质
US8312239B2 (en) Cache management for increasing performance of high-availability multi-core systems
CN113835637B (zh) 一种数据的写入方法、装置以及设备
CN108647112A (zh) 数据备份的方法、装置及分布式事务处理系统
CN112099999A (zh) 一种存储系统的集群结构中元数据的恢复方法及系统
US20230137609A1 (en) Data synchronization method and apparatus
JP2001118387A (ja) 同期型半導体記憶装置
CN114785662B (zh) 一种存储管理方法、装置、设备及机器可读存储介质
CN109800110A (zh) 数据备份方法、系统及电子设备、存储介质和备份装置
CN114153634B (zh) 基于国产龙芯处理器的进程间通信系统及操作平台
CN109062731A (zh) 一种数据库切换时的幂等控制方法和装置
CN113296899A (zh) 基于分布式系统的事务主机、事务从机及事务处理方法
CN109857523B (zh) 一种用于实现数据库高可用性的方法及装置
CN111651118A (zh) 存储器系统、控制方法和控制装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant