CN110096220A - 一种分布式存储系统、数据处理方法和存储节点 - Google Patents

一种分布式存储系统、数据处理方法和存储节点 Download PDF

Info

Publication number
CN110096220A
CN110096220A CN201810099610.XA CN201810099610A CN110096220A CN 110096220 A CN110096220 A CN 110096220A CN 201810099610 A CN201810099610 A CN 201810099610A CN 110096220 A CN110096220 A CN 110096220A
Authority
CN
China
Prior art keywords
processing module
module
metadata
data processing
target
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.)
Granted
Application number
CN201810099610.XA
Other languages
English (en)
Other versions
CN110096220B (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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201810099610.XA priority Critical patent/CN110096220B/zh
Priority to EP18904134.6A priority patent/EP3739440A4/en
Priority to PCT/CN2018/104487 priority patent/WO2019148841A1/zh
Publication of CN110096220A publication Critical patent/CN110096220A/zh
Application granted granted Critical
Publication of CN110096220B publication Critical patent/CN110096220B/zh
Priority to US16/943,279 priority patent/US11262916B2/en
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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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
    • 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/061Improving I/O performance
    • 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/0629Configuration or reconfiguration 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

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)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种分布式存储系统、数据处理方法和存储节点,涉及分布式技术领域,有助于提高分布式存储系统的整体性能。分布式存储系统包括存储节点,存储节点上部署有OSD模块,OSD模块上部署有至少一个数据处理模块和与至少一个数据处理模块存在映射关系的至少一个元数据处理模块。目标数据处理模块是为IO操作分配的数据处理模块。目标数据处理模块,用于接收IO操作,并确定与目标数据处理模块存在映射关系的目标元数据处理模块和目标元数据处理模块所在的OSD模块的标识,根据该OSD模块的标识向目标元数据处理模块发送访问操作,以及根据该IO操作,访问该IO操作的数据。目标元数据处理模块,用于根据访问操作,访问该IO操作的元数据。

Description

一种分布式存储系统、数据处理方法和存储节点
技术领域
本申请涉及分布式技术领域,尤其涉及一种分布式存储系统、数据处理方法和存储节点。
背景技术
分布式存储系统,例如Ceph、阿里对象存储系统、Azure Storage等,是将数据分散存储到多台独立的计算机存储设备(即存储节点)上的存储系统。分布式存储系统包括至少一个存储节点,该至少一个存储节点中部署有客户端(client),以及一个或多个对象存储设备(object storage device,OSD)模块。其中,每个OSD模块可以部署在一个存储节点上。客户端可以部署在任意一个存储节点上。如图1所示,是一种分布式存储系统的架构示意图。图1所示的分布式存储系统包括存储节点0、1、2、3,分布式存储系统包括客户端、OSD模块1~4,客户端部署在存储节点0上,OSD模块1部署在存储节点1上,OSD模块2部署在存储节点2上,OSD模块3~4部署在存储节点3上。
传统的分布式存储系统管理数据的基本思想是:分布式存储系统中设置有固定个数个分区;客户端将接收到的输入输出(input output,IO)操作的数据均衡归属到各个分区中,每个分区与一个OSD模块存在相对固定的映射关系,即每个分区在一定时间内与特定的一个OSD模块存在映射关系,归属于同一分区的IO操作的数据被存储于与该分区存在映射关系的OSD模块所在的存储节点上。
传统的分布式存储系统中,以磁盘(hard disk drive,HDD)为主要存储介质,数据存储过程中产生的元数据通常较少,因此,对数据和元数据的管理比较简单,通常,同一IO操作的数据和元数据由同一OSD模块进行管理。随着存储技术的发展,例如存储介质的多样化,和/或数据存储过程中产生的元数据增多等,使得目前所提供的分布式存储系统,不能满足分布式存储系统的整体性能需求。
发明内容
本申请实施例提供了一种分布式存储系统、数据处理方法和存储节点,有助于提升分布式存储系统的整体性能。
第一方面,本申请实施例提供了一种分布式存储系统,该分布式存储系统包括至少一个存储节点,该至少一个存储节点上部署有至少一个OSD模块。该至少一个OSD模块上部署有:至少一个数据处理模块,以及与至少一个数据处理模块存在映射关系的至少一个元数据处理模块。目标数据处理模块,用于接收IO操作,并确定目标元数据处理模块和目标元数据处理模块所在的第一OSD模块的标识,以及,根据第一OSD模块的标识向目标元数据处理模块发送访问操作。其中,目标数据处理模块是分布式存储系统为该IO操作分配的数据处理模块;目标元数据处理模块与目标数据处理模块存在映射关系。目标元数据处理模块,用于根据访问操作,访问该IO操作的元数据。目标数据处理模块还用于,根据该IO操作,访问该IO操作的数据。该技术方案中,由目标数据处理模块访问该IO操作的数据,由目标元数据处理模块访问该IO操作的元数据,也就是说,该分布式存储系统可以对该IO操作的数据和元数据进行独立管理。与现有技术提供的将元数据和数据进行统一管理的技术方案相比,有助于提高分布式存储系统的管理性能,从而有助于提高分布式存储系统的整体性能。另外,在部署该分布式存储系统时,可以对各数据处理模块和各元数据处理模块进行独立部署。
在一种可能的设计中,目标数据处理模块,用于确定目标元数据处理模块和目标元数据处理模块所在的第一OSD模块的标识,可以包括:目标数据处理模块,用于根据数据处理模块与元数据处理模块之间的映射关系,确定与目标数据处理模块存在映射关系的目标元数据处理模块;根据元数据处理模块和元数据处理模块所在的OSD模块之间的映射关系,确定目标元数据处理模块所在的第一OSD模块的标识。该可能的设计提供了一种目标数据处理模块确定目标元数据处理模块,以及确定第一OSD模块的标识的具体实现方式,当然本申请不限于此,具体示例可参考下文中的具体实施方式部分。
在一种可能的设计中,该IO操作是写操作,访问操作是写访问操作;写访问操作携带写操作的元数据。该情况下,目标数据处理模块还用于,根据该IO操作,访问该IO操作的数据,可以包括:目标数据处理模块还用于,根据写操作,将写操作的数据写入目标数据处理模块所在的存储节点,并生成写操作的元数据。目标元数据处理模块,用于根据访问操作,访问该IO操作的元数据,可以包括:目标元数据处理模块,用于根据写访问操作,将写操作的元数据写入至少两个存储节点。该可能的设计提供了在执行写操作的过程中,目标数据处理模块和目标元数据处理模块的具体实现,当然本申请不限于此。
在一种可能的设计中,该IO操作是读操作,访问操作是读访问操作。该情况下,目标元数据处理模块,用于根据访问操作,访问该IO操作的元数据,可以包括:目标元数据处理模块,用于根据读访问操作,读取读操作的元数据,并将读操作的元数据发送给目标数据处理模块。目标数据处理模块还用于,根据该IO操作,访问该IO操作的数据,可以包括:目标数据处理模块还用于,根据读操作和读操作的元数据,读取读操作的数据。该可能的设计提供了在执行写操作的过程中,目标数据处理模块和目标元数据处理模块的具体实现。
在一种可能的设计中,分布式存储系统包括至少两个OSD模块,第一OSD模块与目标数据处理模块所在的OSD模块(即下文中的第二OSD模块)不同。这样,可以实现分布式存储系统对同一该IO操作的数据和元数据的管理在OSD模块粒度上独立开来,可以有助于提高分布式存储系统的管理性能,从而提高分布式存储系统的整体性能。当然,在一些实施例中,第一OSD模块与第二OSD模块也可以是同一OSD模块。
在一种可能的设计中,至少一个数据处理模块中的每个数据处理模块与至少一个元数据处理模块中的一个元数据处理模块存在映射关系。也就是说,数据处理模块与元数据处理模块是一一对应的。这样,可以方便管理。当然本申请不限于此。例如,数据处理模块和元数据处理模块也可以是“一对多”或“多对一”的关系。
在一种可能的设计中,至少一个OSD模块上还部署有管理模块,管理模块与至少一个数据处理模块存在映射关系。管理模块,用于管理该IO操作的数据保护信息;其中,数据保护信息包括EC条带信息或多副本信息。可以理解的,数据保护信息与数据的存储方式相关,此处以数据存储方式是EC条带存储方式或多副本存储方式为例进行说明的,本申请不限于此。该可能的设计中,通过在OSD模块上部署独立的管理模块,来对该IO操作的数据保护信息进行管理。这样,将对该IO操作的数据保护信息与该IO操作的数据和元数据分开进行管理,可以有助于提高分布式存储系统的管理性能,从而提高分布式存储系统的整体性能。
在一种可能的设计中,若该IO操作的数据的存储方式是EC存储方式,则与管理模块存在映射关系的数据处理模块的个数是EC条带包含的数据块和校验块的个数。
在一种可能的设计中,若该IO操作的数据的存储方式是多副本存储方式,则与管理模块存在映射关系的数据处理模块的个数是多副本数据存储方式中的副本个数。
在一种可能的设计中,分布式存储系统中设置有至少两个分区,分区是IO操作构成的集合。该情况下,管理模块用于管理归属于至少两个分区的其中一个分区的IO操作的数据保护信息。至少一个数据处理模块用于管理归属于其中一个分区的IO操作的数据。至少一个元数据处理模块用于管理归属于其中一个分区的IO操作的元数据。通常,分区的个数是固定的,当然本申请不限于此。
在一种可能的设计中,管理模块,用于管理IO操作的数据保护信息,可以包括:管理模块,用于接收IO操作,该IO操作是写操作,计算写操作的数据保护信息。该可能的设计提供了执行写操作的过程中管理模块管理数据保护信息的具体实现方式。
在一种可能的设计中,管理模块,用于管理IO操作的数据保护信息,可以包括:管理模块,用于接收IO操作,该IO操作是读操作,获取读操作的数据保护信息,根据数据保护信息读取与读操作的数据存在保护关系的数据,以及,根据与读操作的数据存在保护关系的数据重构出读操作的数据。该可能的设计提供了执行读操作的过程中管理模块管理数据保护信息的具体实现方式。
在一种可能的设计中,分布式存储系统还可以包括:客户端,用于接收该IO操作,确定管理模块和管理模块所在的第三OSD模块的标识,根据第三OSD模块的标识,向管理模块发送该IO操作。可以理解的,分布式存储系统中可以包括多个管理模块。客户端可以用于接收用户或设备发送的该IO操作,并为该IO操作确定管理模块。当然本申请不限于此。该可能的设计可以应用于该IO操作是写操作的场景中;也可以应用于该IO操作是读操作,且目标数据处理模块管理的数据不可用的场景中,具体实现可以参考下文具体实施方式部分。
在一种可能的设计中,若该IO操作是读操作,且目标数据处理模块管理的数据可用。则可选的,分布式存储系统包括的客户端可以用于接收该读操作,并确定目标数据处理模块和目标数据处理模块所在的第二OSD模块的标识,根据第二OSD模块向目标数据处理模块发送读操作。该情况下,目标数据处理模块,可以用于接收该IO操作,包括:目标数据处理模块,用于接收客户端发送的读操作。
在一种可能的设计中,该IO操作写操作,则管理模块还可以用于,确定目标数据处理模块和目标数据处理模块所在的第二OSD模块的标识,以及,根据第二OSD模块的标识向目标数据处理模块发送写操作。该情况下,目标数据处理模块,用于接收该IO操作,可以包括:目标数据处理模块,用于接收管理模块发送的写操作。
第二方面,本申请实施例提供了一种数据处理方法,应用于分布式存储系统。该分布式存储系统可以包括至少一个存储节点,该至少一个存储节点上部署有至少一个OSD模块。该至少一个OSD模块上部署有:至少一个数据处理模块,以及与至少一个数据处理模块存在映射关系的至少一个元数据处理模块。该方法可以包括:目标数据处理模块接收IO操作;其中,目标数据处理模块是分布式存储系统为该IO操作分配的数据处理模块。目标数据处理模块确定目标元数据处理模块和目标元数据处理模块所在的第一OSD模块的标识;目标元数据处理模块与目标数据处理模块存在映射关系。目标数据处理模块根据第一OSD模块的标识向目标元数据处理模块发送访问操作;其中,访问操作用于指示目标元数据处理模块访问该IO操作的元数据。目标数据处理模块访问该IO操作的数据。
在一种可能的设计中,目标数据处理模块确定目标元数据处理模块和目标元数据处理模块所在的第一OSD模块的标识,可以包括:目标数据处理模块根据数据处理模块与元数据处理模块之间的映射关系,确定与目标数据处理模块存在映射关系的目标元数据处理模块;目标数据处理模块根据元数据处理模块和元数据处理模块所在的OSD模块之间的映射关系,确定目标元数据处理模块所在的第一OSD模块的标识。
在一种可能的设计中,该IO操作是写操作,访问操作是写访问操作;写访问操作包括写操作的元数据。该情况下,目标数据处理模块访问IO操作的数据,可以包括:目标数据处理模块根据写操作,将写操作的数据写入目标数据处理模块所在的存储节点,并生成写操作的元数据。
在一种可能的设计中,该IO操作是读操作,访问操作是读访问操作。该情况下,目标数据处理模块访问IO操作的数据,可以包括:目标数据处理模块接收目标元数据处理模块发送的读操作的元数据,并根据读操作和读操作的元数据,读取读操作的数据。
第三方面,本申请实施例提供了一种数据处理方法,应用于分布式存储系统,该分布式存储系统可以包括至少一个存储节点,该至少一个存储节点上部署有至少一个OSD模块。该至少一个OSD模块上部署有:至少一个数据处理模块,以及与至少一个数据处理模块存在映射关系的至少一个元数据处理模块。该方法可以包括:目标元数据处理模块接收目标数据处理模块发送的访问操作;其中,目标数据处理模块是分布式存储系统为该IO操作分配的数据处理模块,用于访问该IO操作的数据;目标元数据处理模块与目标数据处理模块存在映射关系。目标元数据处理模块根据访问操作,访问该IO操作的元数据。
在一种可能的设计中,该IO操作是写操作,访问操作是写访问操作;写访问操作携带写操作的元数据。该情况下,目标元数据处理模块根据访问操作,访问该IO操作的元数据,可以包括:目标元数据处理模块根据写访问操作,将写操作的元数据写入至少两个存储节点。
在一种可能的设计中,该IO操作是读操作,访问操作是读访问操作。该情况下,目标元数据处理模块根据访问操作,访问该IO操作的元数据,可以包括:目标元数据处理模块根据读访问操作,读取读操作的元数据,并将所述读操作的元数据发送给所述目标数据处理模块。其中,读操作的元数据用于指示目标数据处理模块读取读操作的数据。
第四方面,本申请实施例提供了一种数据处理方法,应用于分布式存储系统。分布式存储系统可以包括至少一个存储节点,至少一个存储节点上部署有:至少一个OSD模块,至少一个OSD模块上部署有:管理模块、与管理模块存在映射关系的至少一个数据处理模块,以及与至少一个数据处理模块存在映射关系的至少一个元数据处理模块;管理模块用于管理输入输出IO操作的数据保护信息。该方法可以包括:管理模块接收IO操作,该IO操作是写操作。管理模块确定目标数据处理模块和目标数据处理模块所在的第二OSD模块的标识;其中,目标数据处理模块是分布式存储系统为该IO操作分配的数据处理模块。管理模块根据第二OSD模块的标识向目标数据处理模块发送写操作;其中,写操作用于指示目标数据处理模块确定目标元数据处理模块和目标元数据处理模块所在的第一OSD模块的标识,以及根据第一OSD模块的标识向目标元数据处理模块发送写访问操作;目标元数据处理模块与目标数据处理模块存在映射关系;写访问操作用于指示目标元数据处理模块读取写操作的元数据,目标数据处理模块还用于根据该IO操作的元数据读取写操作的数据。
在一种可能的设计中,该方法还可以包括:管理模块计算写操作的数据保护信息。
在一种可能的设计中,分布式存储系统还可以包括客户端。该情况下,管理模块接收该IO操作,可以包括:管理模块接收客户端发送的写操作。
第五方面,本申请实施例提供了一种数据处理方法,应用于分布式存储系统。分布式存储系统可以包括至少一个存储节点,至少一个存储节点上部署有:至少一个OSD模块,至少一个OSD模块上部署有:管理模块、与管理模块存在映射关系的至少一个数据处理模块,以及与至少一个数据处理模块存在映射关系的至少一个元数据处理模块;管理模块用于管理输入输出IO操作的数据保护信息。该方法可以包括:管理模块接收IO操作,该IO操作是读操作。管理模块获取读操作的数据保护信息,根据数据保护信息读取与读操作的数据存在保护关系的数据。管理模块根据与读操作的数据存在保护关系的数据重构出读操作的数据。
在一种可能的设计中,分布式存储系统还可以包括客户端。该情况下,管理模块接收该IO操作,可以包括:管理模块接收客户端发送的读操作。该方法还可以包括:管理模块将读操作的数据发送给客户端。
第六方面,本申请实施例提供了一种数据处理装置。该数据处理装置可以用于执行上述第二方面提供的任一种方法。可选的,该数据处理装置具体可以是上述第二方面中描述的目标数据处理模块。可选的,该数据处理装置具体可以是包含上述第二方面中描述的目标数据处理模块的存储节点。
在一种可能的设计中,可以根据上述第二方面提供的方法对数据处理装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。
在一种可能的设计中,该数据处理装置具体是包含上述第二方面中描述的目标数据处理模块的存储节点。该存储节点可以包括:存储器和处理器,存储器用于存储计算机程序。处理器用于调用该计算机程序,以实现目标数据处理模块的功能。关于目标数据处理模块的功能可以参考上述第二方面。
第七方面,本申请实施例提供了一种数据处理装置。该数据处理装置可以用于执行上述第三方面提供的任一种方法。可选的,该数据处理装置具体可以是上述第三方面中描述的目标元数据处理模块。可选的,该数据处理装置具体可以是包含上述第三方面中描述的目标数据处理模块的存储节点。
在一种可能的设计中,可以根据上述第三方面提供的方法对数据处理装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。
在一种可能的设计中,该数据处理装置具体是包含上述第三方面中描述的目标数据处理模块的存储节点。该存储节点可以包括:存储器和处理器,存储器用于存储计算机程序。处理器用于调用该计算机程序,以实现目标元数据处理模块的功能。关于目标元数据处理模块的功能可以参考上述第三方面。
第八方面,本申请实施例提供了一种数据处理装置。该数据处理装置可以用于执行上述第四方面或第五方面提供的任一种方法。可选的,该数据处理装置具体可以是上述第四方面或第五方面中描述的管理模块。可选的,该数据处理装置具体可以是包含上述第四方面或第五方面中描述的管理模块的存储节点。
在一种可能的设计中,可以根据上述第四方面或第五方面提供的方法对存储节点进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。
在一种可能的设计中,该数据处理装置具体是包含上述第四方面或第五方面中描述的管理模块的存储节点。该存储节点可以包括:存储器和处理器,存储器用于存储计算机程序。处理器用于调用该计算机程序,以实现管理模块的功能。关于管理模块的功能可以参考上述第四方面或第五方面。
本申请实施例还提供了一种处理装置,用以实现上述装置(例如上述第六方面至第八方面提供的任一种数据处理装置)的功能,该处理装置包括处理器和接口;处理装置可以是一个芯片,处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于处理器之外,独立存在。
本申请实施例还提供了一种计算机可读存储介质,其上储存有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述第二方面的任一种可能的方法。
本申请实施例还提供了一种计算机可读存储介质,其上储存有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述第三方面的任一种可能的方法。
本申请实施例还提供了一种计算机可读存储介质,其上储存有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述第四方面或第五方面的任一种可能的方法。
本申请实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得第二方面提供的任一方法被执行。
本申请实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得第三方面提供的任一方法被执行。
本申请实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得第四方面或四五方面提供的任一方法被执行。
可以理解的,上述提供的任一种方法或装置或计算机存储介质或计算机程序产品等均用于执行上文所提供的对应的分布式存储系统,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
附图说明
图1为现有技术提供的一种分布式存储系统的架构示意图;
图2为本申请实施例提供的一种分布式存储系统的架构示意图一;
图3为本申请实施例提供的一种存储节点的结构示意图;
图4为本申请实施例提供的一种分布式存储系统的架构示意图二;
图5为本申请实施例提供的一种分区对应的数据处理模块的示意图;
图6为本申请实施例提供的一种对元数据设置数据保护的示意图;
图7为本申请实施例提供的一种分布式存储系统的架构示意图三;
图8为本申请实施例提供的一种数据处理方法的流程示意图一;
图9为本申请实施例提供的一种数据处理方法的流程示意图二;
图10为本申请实施例提供的一种数据处理装置的结构示意图一;
图11为本申请实施例提供的一种数据处理装置的结构示意图二;
图12为本申请实施例提供的一种数据处理装置的结构示意图三。
具体实施方式
在本申请的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
随着存储技术的发展,例如存储介质的多样化和数据存储方式的发展,使得传统的分布式存储系统,不能满足系统的整体性能需求。例如,在分布式存储系统中,可能存在部分存储介质是HDD,部分存储介质是固态硬盘(solid state drives,SSD)的场景,该场景中,按照传统的分布式存储系统进行数据和元数据管理,若将需要低延时访问的元数据与高带宽访问的大容量数据均存储于HDD上,则元数据的访问性能将受影响;或者,若将它们存储于SSD上,则大容量数据存储的成本升高。又如,为了保证数据的可靠性,业界提出了纠删码(erasure coding,EC)条带存储方式和多副本存储方式等数据存储方式,这使得数据存储过程中产生的元数据较多,从而使得元数据占总数据量极大比例,若按照传统的分布式存储系统进行元数据存储,则可能影响系统的性能提升。
基于此,本申请提供了一种分布式存储系统、数据处理方法和存储节点。其基本原理是:通过在OSD模块上部署具有不同功能的模块(例如管理模块、数据处理模块和元数据处理模块等),使得IO操作的数据和元数据可以独立部署,独立管理,从而有助于提升系统的整体性能。其中,OSD模块可以认为是OSD进程。管理模块、数据处理模块和元数据处理模块均可以认为是具有不同功能的线程。
以下,结合附图,对本申请提供的技术方案进行示例性说明。
如图2所示,是本申请实施例提供的一种分布式存储系统的架构示意图。在图2中,分布式存储系统可以包括交换机21,以及至少一个存储节点22,各存储节点22之间通过交换机21连通。其中,交换机21可以例如但不限于是以太网交换机(ethernet switch),IB交换机(infiniband switch),PCIe交换机(PCIe switch)等。可以理解的,图2所示的分布式存储系统仅为一个示例,实际实现时,多个存储节点之间也可以直接进行通信,或通过其他设备进行通信,本申请对此不进行限定。
存储节点22,是分布式存储系统中提供IO处理能力与存储空间的核心部件。
可选的,存储节点22可以包括:通信接口220、执行模块221,以及与执行模块221连接的一个或多个存储模块222。通信接口220与执行模块221之间,执行模块221与存储模块222之间均可以通过通信线路连接。其中,通信线路可以包括一通路,用于在上述组件之间传送信息。通信线路也可以称为I/O总线,具体可以例如但不限于是快速外部设备互连总线(peripheral component interconnect express,PCIe)等。
通信接口220,可以是任何收发器一类的装置,用于与其他设备或通信网络(例如,以太网,无线局域网(wireless local area networks,WLAN)等)通信。
执行模块221,负责IO操作(包括读/写操作)的输入输出以及相关处理流程的执行。执行模块221可以包括:至少一个处理器。至少一个处理器还可以连接一定数量的内存。其中:
处理器,可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。通信接口220与处理器之间可以通过通信线路连接。应注意,在物理实现上,此处的处理器、通信线路、与通信接口中的部分或全部可以集成在一起,当然,也可以独立设置,本申请对此不进行限定。其中,内存可以用于存储执行本申请方案的计算机程序,并由处理器来控制执行。处理器用于执行存储器中存储的计算机程序,从而实现本申请下述实施例提供的方法。可选的,本申请实施例中的计算机程序也可以称之为应用程序代码,或者计算机执行指令等,本申请实施例对此不作具体限定。
存储模块222,可以包括至少一个存储控制器,以及每一存储控制器连接的多个存储芯片。其中,存储芯片可以是NandFlash芯片,也可以是其他的非易失的存储芯片,如相变存储器(phase change memory,PCM)、磁阻式随机访问存储器(magnetic random accessmemory,MRAM)、阻变式存储器(resistive random access memory,RRAM)。存储控制器可以是专用集成电路(application specific integrated circuit,ASIC)芯片,也可以是FPGA。此处的存储模块222的物理形态可以是SSD,也可以是HDD。实际实现时,一个存储节点22中的所有存储模块222可以均是SSD,也可以均是HDD,还可以一部分存储模块222是SSD,另一部分存储模块222是HDD等,本申请对此不进行限定。
可选的,分布式存储系统中还可以设置有:客户端(也可以称为客户端进程)10,以及一个或多个OSD模块20。该一个或多个OSD模块20中的每个OSD模块20可以包括以下模块中的至少一种:一个或多个管理模块(也可以称为管理处理模块)201、与每个管理模块201存在映射关系的至少一个数据处理模块202,以及与至少一个数据处理模块202存在映射关系的至少一个元数据处理模块203。其中,每个处理模块(包括管理模块201、数据处理模块202和元数据处理模块203)可以包含在一个OSD模块20中。不同处理模块可以包含在同一OSD模块20中,也可以包含在不同OSD模块20中。
需要说明的是,本申请中,OSD模块20包括(或包含)某一处理模块(例如管理模块201、数据处理模块202或元数据处理模块203),与OSD模块20上部署有该处理模块的含义相同,在此统一说明,下文不再赘述。
客户端10、管理模块201、数据处理模块202和元数据处理模块203中的部分或全部可以以计算机程序的形式存储于存储器(例如图2中的内存)中。处理器(例如图2中的CPU)可以调用该计算机程序,从而实现客户端10、管理模块201、数据处理模块202和元数据处理模块203中的至少一种所执行的功能。其示意图,如图3所示。
具体实现的过程中,每一OSD模块20可以部署在一个存储节点22上,不同OSD模块20可以部署在同一存储节点22上,也可以部署在不同存储节点22上。客户端10可以与任意一个OSD模块20部署在同一个存储节点22上,也可以独立部署在一个存储节点22上。如图4所示,为本申请提供的另一种分布式存储系统的架构示意图。为了简洁,图4中并未示出存储节点22中的通信接口、处理器、通信线路、存储模块等。图4中的双箭头表示其所连接的数据处理模块202和元数据处理模块203之间存在映射关系。
在本申请的一些实施例中,每个数据处理模块202与一个元数据处理模块203存在映射关系,即数据处理模块202与元数据处理模块203一一对应。
在本申请的一些实施例中,分布式存储系统中可以设置至少两个分区,分区是IO操作构成的集合。每个分区可以与如下处理模块存在映射关系:一个管理模块201,与该管理模块201存在映射关系的至少一个数据处理模块202,以及与每个数据处理模块202存在映射关系的元数据处理模块203,如图4所示。图4中的虚线框表示一个分区对应的各模块(包括管理模块201、数据处理模块202和元数据处理模块203)。
基于图4,客户端10可以用于接收IO操作,并将该IO操作归属于该至少两个分区中的其中一个分区。然后,将该IO操作发送至与该分区存在映射关系的管理模块201。
该管理模块201可以用于管理归属于该分区的IO操作的数据保护信息。其中,数据保护信息与数据存储方式相关。例如,若数据存储方式是EC条带存储方式,则数据保护信息具体可以是EC条带信息。该情况下,该管理模块201具体可以用于管理基于归属于该分区的IO操作的数据生成的EC条带信息。EC条带信息可以例如但不限于包括:哪些数据块和校验块构成一个EC条带等。又如,若数据存储方式是多副本存储方式,则数据保护信息具体可以是多副本信息。该情况下,该管理模块201具体可以用于管理基于归属于该分区的IO操作的数据生成的多副本信息。多副本信息可以例如但不限于包括:一个数据块的副本数据块是哪些数据块等。本申请不对数据存储方式的进行限定。
与该管理模块201存在映射关系的每个数据处理模块202用于管理归属于一个分区的,且分配给该数据处理模块202的IO操作的数据。可选的,可以由客户端10或该管理模块201将一个IO操作分配给某一数据处理模块202。
与每个数据处理模块202存在映射关系的元数据处理模块203用于管理分配给归属于该分区的,且该数据处理模块202的IO操作的元数据。可选的,可以由客户端10或该管理模块201或者该数据处理模块20将一个IO操作分配给某一元数据处理模块203。
其中,在本申请中,IO操作可以是写操作或读操作。写操作可以携带待写逻辑区块地址(logical block address,LBA)和待写数据,用于将待写数据写入待写LBA对应的物理存储空间中。读操作可以携带待读LBA,用于读取待读LBA对应的物理存储空间中存储的数据(即待读数据)。若IO操作是写操作,则IO操作的数据是指该IO操作携带的待写数据。若IO操作是读操作,则IO操作的数据是指该IO操作要读取的数据(即待读数据)。IO操作的元数据是指在执行将该IO操作的数据写入的过程中,产生的元数据。其中,元数据是指描述IO操作的数据的数据(data about data),主要是描述数据属性(property)的信息,可以用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。
可以理解的,图4所示的分布式存储系统仅为一个示例,其不构成对本申请提供的分布式存储系统的限定。例如,分布式存储系统中可以包括一个或多个客户端10,每个客户端10均可以与任意一个OSD模块20进行通信。例如,每个分区可以与一个或多个管理模块201存在映射关系等等。
在本申请的一些实施例中,与一个分区存在映射关系的数据处理模块202的个数与分布式存储系统的数据存储方式相关。IO操作的数据的存储方式可以是EC条带存储方式或者多副本存储方式等。示例的,若IO操作的数据的存储方式是EC条带存储方式,则与一个分区存在映射关系的数据处理模块202的个数可以是EC条带包含的数据块和校验块的个数。例如,假设一个EC条带包括3个数据块和2个校验块,则一个分区存在映射关系的数据处理模块202的个数可以是5。示例的,若IO操作的数据的存储方式是多副本存储方式,则与一个分区存在映射关系的数据处理模块202的个数可以是具有多副本关系的数据块和副本数据块的个数。例如,若具有多副本关系的数据块有3个副本数据块,则与一个分区存在映射关系的数据处理模块202的个数可以是4。
可以理解的,为了保证数据的可靠性,在基于EC条带存储方式或多副本存储方式中,与一个分区存在映射关系的数据处理模块202部署在不同存储节点的OSD模块20中。例如,图4中与同一分区存在映射关系的多个数据处理模块202部署在不同存储节点的OSD模块20中。如此一来,当某一存储节点存在故障时,可以通过其他存储节点上存储的IO操作的数据恢复出出现故障的存储节点上存储的IO操作的数据,从而有助于提高数据的可靠性。
以IO操作的数据的存储方式是EC条带存储方式为例,与一个分区存在映射关系的数据处理模块202具体可以是用于管理数据块的数据处理模块,或用于管理校验块的数据处理模块。其中,数据块是存储节点存储数据的基本单位。校验块是管理模块201对属于同一EC条带的各数据块经校验后得到的校验数据。若与一个分区存在映射关系的数据处理模块202的个数是EC条带包含的数据块和校验块的个数,则一个EC条带可以包括:该分区中的每个用于管理数据块的数据处理模块所管理的一个数据块,以及每个用于管理校验块的数据处理模块所管理的一个校验块,如图5所示。其中,图5中是以与一个分区存在映射关系的数据处理模块202分别标记为数据处理模块1~5,且数据处理模块1~3是用于管理数据块的数据处理模块,数据处理模块4~5是用于管理校验块的数据处理模块为例进行说明的。每个数据处理模块202用于管理EC条带的一个列,每个列包括多个数据块/校验块,其中,图5中是以每个列包括4个数据块/校验块为例进行说明的。每个数据处理模块中的小方格表示归属于该数据处理模块的数据块或校验块。图5的每个用于管理数据块的数据处理模块中的小方格表示一个数据块,每个用于管理校验块的数据处理模块中的小方格表示一个校验块。图5中虚线框中所包含的数据块和校验块构成一个EC条带。与此类似,可得出以IO操作的数据的存储方式是多副本存储方式的情况下,具有多副本关系的数据块和副本数据块与数据处理模块之间的对应关系,此处不再赘述。
上述技术方案中,描述了IO操作的数据的可靠性保护。在本申请的一些实施例中,还可以对IO操作的元数据进行可靠性保护。具体的,一个元数据处理模块203可以将该元数据处理模块203所管理的元数据分发到多个存储节点进行存储,其中,IO操作的元数据的存储方式可以例如但不限于是EC条带存储方式或者多副本存储方式等。如图6所示,是一种对元数据设置数据保护的实现方式。在图6中,元数据处理模块203部署在存储节点1上,且管理元数据MD1~4。其中,MD1存储在本地即存储节点1,MD2存储在存储节点2,MD3存储在存储节点3,MD4存储在存储节点4。MD1~4之间的关系可以是共同组成一个EC条带,也可以是多副本关系。与此类似,在本申请的一些实施例中,管理模块201也可以对该管理模块201所管理的数据(例如IO操作的数据保护信息等)进行可靠性保护,此处不再赘述。
在本申请的一些实施例中,如图7所示,分布式存储系统中还可以包括控制模块30。控制模块30可以部署在任一存储节点上。图7中是以控制模块30独立部署在一个存储节点上,即不与客户端10和/或各OSD模块20部署在同一存储节点为例进行说明的。控制模块30用于管理客户端10和各OSD模块20的心跳,以及管理分布式存储系统中的分区和处理模块(包括管理模块201、数据处理模块202和元数据处理模块203)等。其中,控制模块30管理客户端10或各OSD模块20的心跳,可以理解为:控制模块30通过向客户端10或各OSD模块发送心跳消息,来检测客户端10或各OSD模块是否故障。控制模块30管理分布式存储系统中的分区和处理模块,可以例如但不限于包括:管理分区总数、与每个分区存在映射关系的管理模块201、数据处理模块202和元数据处理模块203的个数,各处理模块之间的映射关系,分区与各处理模块之间的映射关系,各处理模块与该各处理模块所在的OSD模块20之间的映射关系、OSD模块20与该OSD模块20所在的存储节点之间的映射关系等。另外,在对元数据进行数据保护的实施例中,控制模块30还可以用于管理EC条带中的每个列与存储节点之间的映射关系。另外,控制模块30还可以用于在上述各信息更新后,将更新后的信息同步到客户端10和OSD模块20;以及,在客户端10启动和/或OSD模块20启动后,将上述各信息同步到客户端10和/或OSD模块20等。
通常,在执行IO操作之前,首先需要搭建分布式存储系统,具体的,根据配置文件在分布式存储系统的存储节点上部署客户端10、OSD模块20和控制模块30,以及在OSD模块20上部署各管理模块201、数据处理模块202和元数据处理模块203中的一个或多个处理模块等。其中,配置文件可以用于记录:分布式存储系统中的分区总数,与每个分区存在映射关系的管理模块201、数据处理模块202和元数据处理模块203的个数,分配算法等。其中,分配算法可以用于控制模块30建立以下映射关系中的至少一种:每个处理模块与该处理模块所在的OSD模块20之间的映射关系,每个OSD模块20与该OSD模块所在的存储节点之间建立映射关系,元数据处理模块203与该元数据处理模块203所管理的元数据所在的存储节点之间的映射关系,管理模块201与该管理模块201所管理的数据所在的存储节点之间的映射关系等。分配算法可以例如但不限于是根据存储介质的类型、存储节点的可用容量、存储节点之间的负载均衡等因素确定的分配算法。例如,控制模块30可以根据分配算法将数据处理模块202部署在HDD上,从而节省大容量数据的存储成本,将元数据处理模块203部署在SSD上,从而降低元数据的访问时延,进而有助于提高系统的整体性能。例如,控制模块30可以根据分配算法在每个存储节点上尽量部署相等数量的OSD模块20/处理模块,从而有助于提高系统的整体性能等。
可选的,上述各进程/线程(例如客户端10、OSD模块20、管理模块201、数据处理模块202、元数据处理模块203、控制模块30等)中的任一进程/线程可以由一个设备实现,也可以由多个设备共同实现,还可以是一个设备内的一个功能模块,本申请实施例对此不作具体限定。可以理解的是,上述功能既可以是硬件设备中的网络元件,也可以是在专用硬件上运行的软件功能,或者是平台(例如,云平台)上实例化的虚拟化功能。作为一个示例,用于实现上述任一进程/线程的设备的结构示意图可以如图2中所示的存储节点。
以下,结合图2~图7,对本申请提供的数据处理方法进行说明。
如图8所示,为本申请实施例提供的一种数据处理方法的交互示意图。其中,具体是以IO操作是写操作为例进行说明的。图8所示的方法可以包括如下步骤:
S101:客户端接收写操作;将该写操作归属于至少两个分区中的其中一个分区;确定与该分区存在映射关系的管理模块和该管理模块所在的第三OSD模块的标识。其中,该写操作携带待写LBA和待写数据等。
该客户端可以是分布式存储系统中部署的任一客户端。该写操作可以是该客户端接收到的任一写操作。用户可以在具有写数据需求时,向客户端发送写操作。当然本申请不限于此。客户端在接收到写操作之后,可以根据该写操作的数据的一些属性,如lba、偏移、快照号或对象名等,将该写操作转换为key-value对;然后经过哈希算法或其他key-value归属算法,将该写操作归属于分布式存储系统的其中一个分区。然后,根据各管理模块与该各管理模块所在的OSD模块之间的映射关系,确定与该写操作存在映射关系的管理模块所在的OSD模块(即第三OSD模块)的标识。OSD模块的标识可以例如但不限于是OSD模块的进程号。
S102:客户端根据第三OSD模块的标识,向该管理模块发送该写操作。具体的,客户端向第三OSD模块上部署的管理模块发送该写操作。
S103:管理模块根据该写操作,确定目标数据处理模块和目标数据处理模块所在的第二OSD模块的标识。其中,第二OSD模块与第三OSD模块可以是同一OSD模块,也可以是不同OSD模块。目标数据处理模块是分布式存储系统为该写操作分配的数据处理模块,具体可以是分布式存储系统中的客户端或管理模块为该写操作分配的数据处理模块。
若目标数据处理模块是客户端为该写操作分配的数据处理模块,则具体的,客户端可以在S101中执行将写操作归属于其中一个分区之后,根据某一归属算法例如哈希算法或其他key-value归属算法,为该写操作分配一个数据处理模块,并将所分配的数据处理模块作为目标数据处理模块。然后,根据第三OSD模块的标识,将目标数据处理模块的标识发送给第三OSD模块上部署的管理模块。该情况下,S103中的管理模块确定目标数据处理模块,可以包括:管理模块接收客户端发送的目标数据处理模块的标识。
若目标数据处理模块是管理模块为该写操作分配的数据处理模块,则具体的,管理模块可以在接收到客户端发送的写操作之后,按照某一归属算法例如哈希算法或其他key-value归属算法,为该写操作分配一个数据处理模块,并将所分配的数据处理模块作为目标数据处理模块。
无论目标数据处理模块是客户端还是管理模块为该写操作分配的数据处理模块,在一种实现方式中,管理模块确定目标数据处理模块所在的第二OSD模块的标识,可以包括:管理模块根据数据处理模块与该数据处理模块所在的OSD模块之间的映射关系,确定目标数据处理模块所在的OSD模块(即第二OSD模块)的标识。另外,若目标数据处理模块是客户端为该写操作分配的数据处理模块,则在另一种实现方式中,客户端可以在确定目标数据处理模块之后,确定目标数据处理模块所在的第二OSD模块的标识,并将第二OSD模块的标识发送给第三OSD模块上部署的管理模块。该情况下,管理模块确定目标数据处理模块所在的第二OSD模块的标识,可以包括:管理模块接收客户端发送的第二OSD模块的标识。
作为一个示例,若写操作的数据的存储方式是EC条带存储方式,则管理模块接收到写操作之后,可以根据该写操作的数据和其他写操作的数据计算校验数据,从而组建EC条带,然后针对该EC条带中的每一数据块和校验块,确定一个目标数据处理模块,接着按照如下S104~S108将每一数据块和校验块写入存储节点。另外,也可以先执行按照如下S104~S108将该写操作的数据写入存储节点,然后,在接收到其他写操作时,再根据该写操作的数据和其他写操作的数据计算校验数据,组建EC条带,然后按照如下S104~S108将该其他写操作对应的数据块和校验数据对应的校验块分别写入存储节点。当然本申请不限于此。其中,将哪些写操作的数据进行组EC条带,以及如何计算EC条带中的校验块等在现有技术中已有详细描述,此处不再赘述。
作为一个示例,若写操作的数据的存储方式是多副本存储方式,则管理模块接收到一个写操作之后,可以将该写操作的数据复制多份,然后针对每个数据块和副本数据块确定一个目标数据处理模块,接着按照如下S104~S108将每个数据块和副本数据块写入存储节点。
需要说明的是,IO操作(包括写操作或读操作)的数据,可以包括至少一个数据块。通常,若一个IO操作的数据包括多个数据块,则,分布式存储系统在执行该IO操作之前,通常会将该IO操作分为若干个子IO操作,每个子IO操作的数据是一个数据块。为了方便描述,本申请中均是以IO操作的数据是一个数据块,或者说是本申请的具体示例中,均是以IO操作是子IO操作为例进行说明的,因此,针对数据块确定目标数据处理模块和针对IO操作确定目标数据处理模块可以通用。
S104:管理模块根据第二OSD模块的标识,向目标数据处理模块发送该写操作。具体的,管理模块向第二OSD模块上部署的目标数据处理模块发送该写操作。
S105:目标数据处理模块向待写LBA对应的物理存储空间中写入待写数据。其中,在写入数据的过程中会产生元数据。
S106:目标数据处理模块根据该写操作确定目标元数据处理模块和目标元数据处理模块所在的第一OSD模块的标识。第一OSD模块与第三OSD模块可以是同一OSD模块,也可以是不同OSD模块。第一OSD模块与第二OSD模块可以是同一OSD模块,也可以是不同OSD模块。目标元数据处理模块是分布式存储系统为该写操作分配的元数据处理模块,具体可以是分布式存储系统中的客户端、管理模块或目标数据处理模块为该写操作分配的元数据处理模块。
若目标元数据处理模块是客户端为该写操作分配的元数据处理模块,则具体的,客户端可以在确定目标数据处理模块之后,根据数据处理模块与元数据处理模块之间的映射关系,确定与目标数据处理模块存在映射关系的目标元数据处理模块,然后根据第二OSD模块的标识,将目标元数据处理模块的标识发送给第三OSD模块上部署的管理模块,并由经管理模块发送给第二OSD模块上部署的目标数据处理模块。该情况下,目标数据处理模块确定目标元数据处理模块,可以包括:目标数据处理模块接收客户端发送的目标元数据处理模块。
若目标元数据处理模块是管理模块为该写操作分配的元数据处理模块,则具体的,管理模块可以在S103中确定目标数据处理模块之后,根据数据处理模块与元数据处理模块之间的映射关系,确定与目标数据处理模块存在映射关系的目标元数据处理模块,然后根据第二OSD模块的标识,将目标元数据处理模块的标识发送给第二OSD模块上部署的目标数据处理模块。该情况下,目标数据处理模块确定目标元数据处理模块,可以包括:目标数据处理模块接收管理模块发送的目标元数据处理模块。
若目标元数据处理模块是目标数据处理模块为该写操作分配的元数据处理模块,则具体的,目标数据处理模块可以在接收到该写操作之后,根据数据处理模块与元数据处理模块之间的映射关系,确定与目标数据处理模块存在映射关系的元数据处理模块,并将该元数据处理模块作为目标元数据处理模块。
无论目标元数据处理模块是客户端、管理模块或目标数据处理模块为该写操作分配的元数据处理模块,在一种实现方式中,目标数据处理模块确定目标元数据处理模块所在的第一OSD模块的标识,可以包括:目标数据处理模块根据元数据处理模块与OSD模块之间的映射关系,确定目标元数据处理模块所在的OSD模块(即第一OSD模块)的标识。另外,若目标元数据处理模块是客户端为该写操作分配的元数据处理模块,则在另一种实现方式中,目标数据处理模块确定目标元数据处理模块所在的第一OSD模块的标识,可以包括:目标数据处理模块接收客户端发送的第一OSD模块的标识。另外,若目标元数据处理模块是管理模块为该写操作分配的元数据处理模块,则在另一种实现方式中,目标数据处理模块确定目标元数据处理模块所在的第一OSD模块的标识,可以包括:目标数据处理模块接收管理模块发送的第一OSD模块的标识。
本申请对S105和S106的执行顺序不进行限定,例如,可以先执行S105再执行S106,也可以先执行S106再执行S105,还可以在执行S105时执行S106。
S107:目标数据处理模块根据第一OSD模块的标识,向目标元数据处理模块发送访问操作,具体的,管理模块向第一OSD模块上部署的目标元数据处理模块发送该访问操作。其中,该访问操作具体是写访问操作,该写访问操作中携带该写操作的元数据和该写操作的待写LBA。
S108:目标元数据处理模块根据写访问操作,将该写操作的元数据写入存储节点中。
在一种实现方式中,若不对IO操作的元数据进行数据保护,则目标元数据处理模块可以将该写操作的元数据写入本地,即目标元数据处理模块所在的存储节点。具体的,可以根据待写LBA将该写操作的元数据写入本地。
在另一种实现方式中,若对IO操作的元数据进行数据保护,例如该写操作的元数据的存储方式是EC存储方式或多副本存储方式,则目标元数据处理模块可以根据待写LBA确定该写操作的元数据所在的存储节点,例如,参考图6,该写操作的元数据可以认为是图6中MD1~MD4中的一个任一元数据。
本实施例提供的数据处理方法,可以应用于图2、图4或图7所示的分布式存储系统中,具体基于该分布式存储系统提供了一种执行写操作的方法。本实施例中,写操作的数据和元数据分别由相应的数据处理模块和元数据处理模块进行管理,这样,分布式存储系统可以对数据和元数据进行独立管理,与现有技术中对数据和元数据一起进行管理的技术方案相比,有助于提高管理性能,从而提高系统的整体性能。该方法可以应用于数据和元数据比较多的场景中。另外,通过对数据处理模块和元数据处理模块进行合理部署,例如,将数据处理模块部署在HDD上,将元数据处理模块部署在SSD上等,有助于提高系统的整体性能。
如图9所示,为本申请实施例提供的一种数据处理方法的交互示意图。其中,具体是以IO操作是读操作为例进行说明的。图9所示的方法可以包括如下步骤:
S201:客户端接收读操作;将该读操作归属于至少两个分区中的其中一个分区,并将该读操作归属于目标数据处理模块,确定目标数据处理模块所在的第二OSD模块的标识。其中,该读操作携带待读LBA等,用于读取待读LBA对应的物理存储空间中所存储的待读数据。
该客户端可以是分布式存储系统中部署的任一客户端。该读操作可以是该客户端接收到的任一读操作。用户可以在具有读数据需求时,向客户端发送读操作。当然本申请不限于此。需要说明的是,本实施例中相关内容的解释可参考上文,此处不再赘述。例如,关于将读操作归属于其中一个分区,将该读操作归属于目标数据处理模块,以及定目标数据处理模块所在的第二OSD模块的标识均可以参考上述S101中针对写操作的相关描述。
可以理解的,在本实施例和图8所示的实施例应用于同一分布式存储系统时,若该读操作携带的待读LBA与图8所示的实施例中的写操作携带的待写LBA相同,则本实施例与图8所示的实施例中描述的待读数据与待写数据相同,并且本实施例中所确定的其中一个分区、第二OSD模块,以及下文中的目标数据处理模块、目标元数据处理模块、管理模块、第一OSD模块、第三OSD模块等均与图8所示的实施例中确定的相应分区或模块对应相同。
S202:客户端判断目标数据处理模块管理的数据是否可用。
若是,则执行S203;若否,则执行S210。可以理解的,当数据处理模块上的数据发生迁移或者该数据处理模块所在的存储节点故障等时,可造成该数据处理模块管理的数据不可用。
S203:客户端根据第二OSD模块的标识,向目标数据处理模块发送该读操作。具体的,客户端向第二OSD模块上部署的目标数据处理模块发送该读操作。
S204:目标数据处理模块根据该读操作,确定目标元数据处理模块和目标元数据处理模块所在的第一OSD模块的标识。目标元数据处理模块是分布式存储系统为该读操作分配的元数据处理模块,具体可以是分布式存储系统中的客户端或目标数据处理模块为该读操作分配的元数据处理模块。其具体实现过程可以参考上述S103中的相关描述,此处不再赘述。
S205:目标数据处理模块根据第一OSD模块的标识,向目标元数据处理模块发送访问操作,具体的,客户端向第一OSD模块上部署的目标元数据处理模块发送访问操作。其中,该访问操作是读访问操作。该读访问操作可以携带待读LBA,用于读取该读操作的元数据。
S206:目标元数据处理模块根据该读访问操作,读取该读操作的元数据。
在一种实现方式中,若不对IO操作的元数据进行数据保护,则目标元数据处理模块可以在本地读取该读操作的元数据。
在另一种实现方式中,若对IO操作的元数据进行数据保护,例如该读操作的元数据的存储方式是EC存储方式或多副本存储方式,则目标元数据处理模块可以根据该读操作所携带的待读LBA确定该读操作的元数据所在的存储节点,例如,参考图6,该读操作的元数据可以认为是图6中MD1~MD4中的一个任一元数据。
S207:目标元数据处理模块将该读操作的元数据发送给目标数据处理模块。
S208:目标数据处理模块根据该读操作的元数据,读取待读LBA对应的物理存储空间中存储的该读操作的数据(即待读数据)。
S209:目标数据处理模块向客户端返回待读数据。
执行S209之后,则结束。
S210:客户端确定与该分区存在映射关系的管理模块和该管理模块所在的第三OSD模块的标识。
S211:客户端根据第三OSD模块的标识,向该管理模块发送该读操作。具体的,客户端向第三OSD模块上部署的管理模块发送该读操作。
S212:管理模块在接收到该读操作后,获取该读操作的数据保护信息,并根据该数据保护信息读取与待读数据存在保护关系的数据,然后,根据与待读数据存在保护关系的数据重构出待读数据。
具体的,管理模块接收到该读操作后,获取与管理模块存在映射关系的各数据处理模块所在的OSD模块的标识,并根据这些OSD模块的标识,向对应的数据处理模块发送读操作,该读操作用于读取与待读数据存在保护关系的数据;这些数据处理模块根据读请求,按照如下步骤S204~S208读取与待读数据存在保护关系的数据,并将所读取到的数据反馈给管理模块,由管理模块根据与待读数据存在保护关系的数据重构出待读数据,然后执行S213。
S213:管理模块向客户端返回待读数据。
执行S213之后,则结束。
本实施例提供的数据处理方法,可以应用于图2、图4或图7所示的分布式存储系统中,具体基于该分布式存储系统提供了一种执行读操作的方法。可选的,本实施例提供的执行读操作的方法可以是基于上述图8所示的执行写操作的方法而提出的,因此,本实施例能够达到的有益效果可参考上文,此处不再赘述。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对上述数据处理模块、元数据处理模块和管理模块等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图10所示,为本申请实施例提供的一种数据处理装置的结构示意图。图10所示的数据处理装置90可以应用于上文提供的任一种分布式存储系统。该分布式存储系统可以包括:至少一个OSD模块,至少一个OSD模块上部署有:至少一个数据处理模块,以及与至少一个数据处理模块存在映射关系的至少一个元数据处理模块;该装置90是至少一个数据处理模块中的分布式存储系统为IO操作分配的数据处理模块。可以用于执行上文提供的任一种数据处理方法中相应目标数据处理模块执行的步骤。该装置90可以包括:接收单元901、处理单元902和发送单元903。其中,接收单元901,用于接收IO操作。处理单元902,用于确定目标元数据处理模块和目标元数据处理模块所在的第一OSD模块的标识;目标元数据处理模块与该装置存在映射关系。发送单元903,用于根据第一OSD模块的标识向目标元数据处理模块发送访问操作;其中,访问操作用于指示目标元数据处理模块访问IO操作的元数据。处理单元902还可以用于,访问IO操作的数据。例如,结合图8,该装置90可以是图8中的目标数据处理模块。IO操作可以是写操作。接收单元901可以用于执行S104中的接收步骤。处理单元902可以用于执行S106。发送单元903可以用于执行S107中的发送步骤。例如,结合图9,该装置90可以是图9中的目标数据处理模块。IO操作可以是读操作。接收单元901可以用于执行S203中的接收步骤。处理单元902可以用于执行S204。发送单元903可以用于执行S205中的发送步骤。
可选的,处理单元902具体可以用于:根据数据处理模块与元数据处理模块之间的映射关系,确定与该装置900存在映射关系的目标元数据处理模块;根据元数据处理模块和元数据处理模块所在的OSD模块之间的映射关系,确定目标元数据处理模块所在的第一OSD模块的标识。
可选的,IO操作是写操作,访问操作是写访问操作;写访问操作包括写操作的元数据。该情况下,处理单元902具体可以用于:根据写操作,将写操作的数据写入该装置所在的存储节点,并生成写操作的元数据。例如,结合图8,处理单元902可以用于执行S105。
可选的,IO操作是读操作,访问操作是读访问操作。该情况下,接收单元901还可以用于接收目标元数据处理模块发送的读操作的元数据;处理单元902具体可以用于:根据读操作和读操作的元数据,读取读操作的数据。例如,结合图9,接收单元901可以用于执行S207中的接收步骤。处理单元902可以用于执行S208。
作为一个示例,结合图2,数据处理装置90可以对应图2中的存储节点22。接收单元901和发送单元903可以对应图2中的通信接口。处理单元902可以对应图2中的处理器。
本实施例中相关内容的解释可参考上述方法实施例,此处不再赘述。
如图11所示,为本申请实施例提供的一种数据处理装置的结构示意图。图11所示的数据处理装置100可以应用于上文提供的任一种分布式存储系统。该分布式存储系统可以包括:至少一个OSD模块,至少一个OSD模块上部署有:至少一个数据处理模块,以及与至少一个数据处理模块存在映射关系的至少一个元数据处理模块;该装置100是与述目标数据处理模块存在映射关系的元数据处理模块,目标数据处理模块是至少一个数据处理模块中的分布式存储系统为IO操作分配的数据处理模块,用于访问IO操作的数据。该装置100可以包括:接收单元1001和处理单元1002。其中,接收单元1001,用于接收目标数据处理模块发送的访问操作。处理单元1002,用于根据访问操作,访问IO操作的元数据。例如,结合图8,该装置100可以是图8中的目标元数据处理模块。IO操作是写操作。接收单元1001可以用于执行S107中的接收步骤。处理单元1002可以用于执行S108。例如,结合图9,该装置100可以是图9中的目标元数据处理模块。IO操作是读操作。接收单元1001可以用于执行S205中的接收步骤。处理单元1002可以用于执行S206。
可选的,IO操作是写操作,访问操作是写访问操作;写访问操作携带写操作的元数据。该情况下,处理单元1002具体可以用于:根据写访问操作,将写操作的元数据写入至少两个存储节点。例如,结合图8,处理单元1002可以用于执行S108。
可选的,IO操作是读操作,访问操作是读访问操作。该情况下,处理单元1002具体可以用于:根据读访问操作,读取读操作的元数据。该装置100还可以包括:发送单元1003,用于将读操作的元数据发送给目标数据处理模块;其中,读操作的元数据用于指示目标数据处理模块读取读操作的数据。例如,结合图9,处理单元1002可以用于执行S206。发送单元207可以用于执行S207中的发送步骤。
作为一个示例,结合图2,数据处理装置100可以对应图2中的存储节点22。接收单元1001和发送单元1003可以对应图2中的通信接口。处理单元1002可以对应图2中的处理器。
本实施例中相关内容的解释可参考上述方法实施例,此处不再赘述。
如图12所示,为本申请实施例提供的一种数据处理装置的结构示意图。图12所示的数据处理装置110可以应用于上文提供的任一种分布式存储系统。该分布式存储系统可以包括:至少一个OSD模块,至少一个OSD模块上部署有:该装置110、与该装置110存在映射关系的至少一个数据处理模块,以及与至少一个数据处理模块存在映射关系的至少一个元数据处理模块;该装置110用于管理IO操作的数据保护信息。该装置110可以包括:接收单元1101、处理单元1102和发送单元1103。
在一些实施例中,接收单元1101,用于接收IO操作,IO操作是写操作。处理单元1102,用于确定目标数据处理模块和目标数据处理模块所在的第二OSD模块的标识;其中,目标数据处理模块是至少一个数据处理模块中的分布式存储系统为IO操作分配的数据处理模块。发送单元1103,用于根据第二OSD模块的标识向目标数据处理模块发送写操作;其中,写操作用于指示目标数据处理模块确定目标元数据处理模块和目标元数据处理模块所在的第一OSD模块的标识,以及向目标元数据处理模块发送写访问操作;写访问操作用于指示目标元数据处理模块读取写操作的元数据,目标数据处理模块还可以用于根据IO操作的元数据读取写操作的数据。例如,结合图8,该装置110可以是图8中的管理模块。IO操作可以是写操作。接收单元1101可以用于执行S102中的接收步骤。处理单元1102可以用于执行S103。发送单元1103可以用于执行S104中的发送步骤。
可选的,处理单元1102还可以用于,计算写操作的数据保护信息。
可选的,分布式存储系统还包括客户端。该情况下,接收单元1101具体可以用于:接收客户端发送的写操作。例如,结合图8,接收单元1101可以用于执行S102中的接收步骤。
在另一些实施例中,接收单元1101,用于接收IO操作,IO操作是读操作。处理单元1102,用于获取读操作的数据保护信息,根据数据保护信息读取与读操作的数据存在保护关系的数据;以及,根据与读操作的数据存在保护关系的数据重构出读操作的数据。例如,结合图9,该装置110可以是图8中的管理模块。IO操作可以是读操作。接收单元1101可以用于执行S211中的接收步骤。处理单元1102可以用于执行S212。
可选的,分布式存储系统还包括客户端。该情况下,接收单元1101具体可以用于:接收客户端发送的读操作。发送单元1103,用于将读操作的数据发送给客户端。例如,结合图9,接收单元1101可以用于执行S211中的接收步骤。发送单元1103可以用于执行S213中的发送步骤。
作为一个示例,结合图2,数据处理装置110可以对应图2中的存储节点22。接收单元1101和发送单元1103可以对应图2中的通信接口。处理单元1102可以对应图2中的处理器。
本实施例中相关内容的解释可参考上述方法实施例,此处不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如SSD)等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (28)

1.一种分布式存储系统,其特征在于,包括至少一个存储节点,所述至少一个存储节点上部署有至少一个对象存储设备OSD模块,所述至少一个OSD模块上部署有:至少一个数据处理模块,以及与所述至少一个数据处理模块存在映射关系的至少一个元数据处理模块;
目标数据处理模块,用于接收输入输出IO操作,并确定目标元数据处理模块和所述目标元数据处理模块所在的第一OSD模块的标识,以及,根据所述第一OSD模块的标识向所述目标元数据处理模块发送访问操作;所述目标数据处理模块是所述分布式存储系统为所述IO操作分配的数据处理模块;所述目标元数据处理模块与所述目标数据处理模块存在映射关系;
所述目标元数据处理模块,用于根据所述访问操作,访问所述IO操作的元数据;
所述目标数据处理模块还用于,根据所述IO操作,访问所述IO操作的数据。
2.根据权利要求1所述的分布式存储系统,其特征在于,目标数据处理模块,用于确定目标元数据处理模块和所述目标元数据处理模块所在的第一OSD模块的标识,包括:
所述目标数据处理模块,用于根据数据处理模块与元数据处理模块之间的映射关系,确定与所述目标数据处理模块存在映射关系的目标元数据处理模块;根据元数据处理模块和元数据处理模块所在的OSD模块之间的映射关系,确定所述目标元数据处理模块所在的第一OSD模块的标识。
3.根据权利要求1或2所述的分布式存储系统,其特征在于,所述IO操作是写操作,所述访问操作是写访问操作;所述写访问操作携带所述写操作的元数据;
所述目标数据处理模块还用于,根据所述IO操作,访问所述IO操作的数据,包括:
所述目标数据处理模块还用于,根据所述写操作,将所述写操作的数据写入所述目标数据处理模块所在的存储节点,并生成所述写操作的元数据;
所述目标元数据处理模块,用于根据所述访问操作,访问所述IO操作的元数据,包括:
所述目标元数据处理模块,用于根据所述写访问操作,将所述写操作的元数据写入至少两个存储节点。
4.根据权利要求1或2所述的分布式存储系统,其特征在于,所述IO操作是读操作,所述访问操作是读访问操作;
所述目标元数据处理模块,用于根据所述访问操作,访问所述IO操作的元数据,包括:
所述目标元数据处理模块,用于根据所述读访问操作,读取所述读操作的元数据,并将所述读操作的元数据发送给所述目标数据处理模块;
所述目标数据处理模块还用于,根据所述IO操作,访问所述IO操作的数据,包括:
所述目标数据处理模块还用于,根据所述读操作和所述读操作的元数据,读取所述读操作的数据。
5.根据权利要求1至4任一项所述的分布式存储系统,其特征在于,所述分布式存储系统包括至少两个OSD模块,所述第一OSD模块与所述目标数据处理模块所在的第二OSD模块不同。
6.根据权利要求1至5任一项所述的分布式存储系统,其特征在于,所述至少一个OSD模块上还部署有管理模块,所述管理模块与所述至少一个数据处理模块存在映射关系;
所述管理模块,用于接收所述IO操作,所述IO操作是写操作,并计算所述写操作的数据保护信息;
或者,所述管理模块,用于接收所述IO操作,所述IO操作是读操作,并获取所述读操作的数据保护信息,根据所述数据保护信息读取与所述读操作的数据存在保护关系的数据,以及,根据与所述读操作的数据存在保护关系的数据重构出所述读操作的数据。
7.根据权利要求6所述的分布式存储系统,其特征在于,所述分布式存储系统还包括:
客户端,用于接收所述IO操作,确定所述管理模块和所述管理模块所在的第三OSD模块的标识,根据所述第三OSD模块的标识,向所述管理模块发送所述IO操作。
8.根据权利要求6或7所述的分布式存储系统,其特征在于,
所述管理模块还用于,接收所述IO操作,所述IO操作是写操作,确定所述目标数据处理模块和所述目标数据处理模块所在的第二OSD模块的标识,以及,根据所述第二OSD模块的标识向所述目标数据处理模块发送所述写操作。
9.根据权利要求1、2、4或5所述的分布式存储系统,其特征在于,所述分布式存储系统还包括:
客户端,用于接收所述IO操作,所述IO操作是读操作,确定所述目标数据处理模块和所述目标数据处理模块所在的第二OSD模块的标识,根据所述第二OSD模块向所述目标数据处理模块发送所述读操作。
10.一种数据处理方法,其特征在于,应用于分布式存储系统,所述分布式存储系统包括至少一个存储节点,所述至少一个存储节点上部署有至少一个对象存储设备OSD模块,所述至少一个OSD模块上部署有:至少一个数据处理模块,以及与所述至少一个数据处理模块存在映射关系的至少一个元数据处理模块;所述方法包括:
目标数据处理模块接收输入输出IO操作;其中,所述目标数据处理模块是所述分布式存储系统为所述IO操作分配的数据处理模块;
所述目标数据处理模块确定目标元数据处理模块和所述目标元数据处理模块所在的第一OSD模块的标识;其中,所述目标元数据处理模块与所述目标数据处理模块存在映射关系;
所述目标数据处理模块根据所述第一OSD模块的标识向所述目标元数据处理模块发送访问操作;其中,所述访问操作用于指示所述目标元数据处理模块访问所述IO操作的元数据;
所述目标数据处理模块访问所述IO操作的数据。
11.根据权利要求10所述的方法,其特征在于,所述目标数据处理模块确定目标元数据处理模块和所述目标元数据处理模块所在的第一OSD模块的标识,包括:
所述目标数据处理模块根据数据处理模块与元数据处理模块之间的映射关系,确定与所述目标数据处理模块存在映射关系的目标元数据处理模块;
所述目标数据处理模块根据元数据处理模块和元数据处理模块所在的OSD模块之间的映射关系,确定所述目标元数据处理模块所在的第一OSD模块的标识。
12.根据权利要求10或11所述的方法,其特征在于,所述IO操作是写操作,所述访问操作是写访问操作;所述写访问操作包括所述写操作的元数据;
所述目标数据处理模块访问所述IO操作的数据,包括:
所述目标数据处理模块根据所述写操作,将所述写操作的数据写入所述目标数据处理模块所在的存储节点,并生成所述写操作的元数据。
13.根据权利要求10或11所述的方法,其特征在于,所述IO操作是读操作,所述访问操作是读访问操作;所述目标数据处理模块访问所述IO操作的数据,包括:
所述目标数据处理模块接收所述目标元数据处理模块发送的所述读操作的元数据,并根据所述读操作和所述读操作的元数据,读取所述读操作的数据。
14.一种数据处理方法,其特征在于,应用于分布式存储系统,所述分布式存储系统包括至少一个存储节点,所述至少一个存储节点上部署有:至少一个对象存储设备OSD模块,所述至少一个OSD模块上部署有:至少一个数据处理模块,以及与所述至少一个数据处理模块存在映射关系的至少一个元数据处理模块;所述方法包括:
目标元数据处理模块接收目标数据处理模块发送的访问操作;其中,所述目标数据处理模块是所述分布式存储系统为输入输出IO操作分配的数据处理模块,用于访问所述IO操作的数据;所述目标元数据处理模块与所述目标数据处理模块存在映射关系;
所述目标元数据处理模块根据所述访问操作,访问所述IO操作的元数据。
15.根据权利要求14所述的方法,其特征在于,所述IO操作是写操作,所述访问操作是写访问操作;所述写访问操作携带所述写操作的元数据;所述目标元数据处理模块根据所述访问操作,访问所述IO操作的元数据,包括:
所述目标元数据处理模块根据所述写访问操作,将所述写操作的元数据写入至少两个存储节点。
16.根据权利要求14所述的方法,其特征在于,所述IO操作是读操作,所述访问操作是读访问操作;所述目标元数据处理模块根据所述访问操作,访问所述IO操作的元数据,包括:
所述目标元数据处理模块根据所述读访问操作,读取所述读操作的元数据,并将所述读操作的元数据发送给所述目标数据处理模块;其中,所述读操作的元数据用于指示所述目标数据处理模块读取所述读操作的数据。
17.一种数据处理方法,其特征在于,应用于分布式存储系统,所述分布式存储系统包括至少一个存储节点,所述至少一个存储节点上部署有:至少一个对象存储设备OSD模块,所述至少一个OSD模块上部署有:管理模块、与所述管理模块存在映射关系的至少一个数据处理模块,以及与所述至少一个数据处理模块存在映射关系的至少一个元数据处理模块;所述管理模块用于管理输入输出IO操作的数据保护信息;所述方法包括:
所述管理模块接收所述IO操作,所述IO操作是写操作;
所述管理模块确定目标数据处理模块和所述目标数据处理模块所在的第二OSD模块的标识;其中,所述目标数据处理模块是所述分布式存储系统为IO操作分配的数据处理模块;
所述管理模块根据所述第二OSD模块的标识向所述目标数据处理模块发送所述写操作;其中,所述写操作用于指示所述目标数据处理模块确定目标元数据处理模块和所述目标元数据处理模块所在的第一OSD模块的标识,以及根据所述第一OSD模块的标识向所述目标元数据处理模块发送写访问操作;所述目标元数据处理模块与所述目标数据处理模块存在映射关系;所述写访问操作用于指示所述目标元数据处理模块读取所述写操作的元数据,所述目标数据处理模块还用于根据所述IO操作的元数据读取所述写操作的数据。
18.一种存储节点,其特征在于,应用于分布式存储系统,所述分布式存储系统中部署有至少一个对象存储设备OSD模块,所述至少一个OSD模块上部署有:至少一个数据处理模块,以及与所述至少一个数据处理模块存在映射关系的至少一个元数据处理模块;所述存储节点包括:
存储器,用于存储计算机程序;
处理器,用于调用所述计算机程序,以实现目标数据处理模块的功能;所述目标数据处理模块是所述分布式存储系统为输入输出IO操作分配的数据处理模块;所述目标数据处理模块用于执行以下步骤:
接收所述IO操作;
确定目标元数据处理模块和所述目标元数据处理模块所在的第一OSD模块的标识;所述目标元数据处理模块与所述目标数据处理模块存在映射关系;
根据所述第一OSD模块的标识向所述目标元数据处理模块发送访问操作;其中,所述访问操作用于指示所述目标元数据处理模块访问所述IO操作的元数据;
访问所述IO操作的数据。
19.根据权利要求18所述的存储节点,其特征在于,所述确定目标元数据处理模块和所述目标元数据处理模块所在的第一OSD模块的标识,包括:
根据数据处理模块与元数据处理模块之间的映射关系,确定与所述目标数据处理模块存在映射关系的目标元数据处理模块;
根据元数据处理模块和元数据处理模块所在的OSD模块之间的映射关系,确定所述目标元数据处理模块所在的第一OSD模块的标识。
20.根据权利要求18或19所述的存储节点,其特征在于,所述IO操作是写操作,所述访问操作是写访问操作;所述写访问操作包括所述写操作的元数据;所述访问所述IO操作的数据,包括:
根据所述写操作,将所述写操作的数据写入所述目标数据处理模块所在的存储节点,并生成所述写操作的元数据。
21.根据权利要求18或19所述的存储节点,其特征在于,所述IO操作是读操作,所述访问操作是读访问操作;所述访问所述IO操作的数据,包括:
接收所述目标元数据处理模块发送的所述读操作的元数据,以及根据所述读操作和所述读操作的元数据,读取所述读操作的数据。
22.一种存储节点,其特征在于,应用于分布式存储系统,所述分布式存储系统中部署有:至少一个对象存储设备OSD模块,所述至少一个OSD模块上部署有:至少一个数据处理模块,以及与所述至少一个数据处理模块存在映射关系的至少一个元数据处理模块;所述存储节点包括:
存储器,用于存储计算机程序;
处理器,用于调用所述计算机程序,以实现目标元数据处理模块的功能;所述元目标数据处理模块与目标数据处理模块存在映射关系,所述目标数据处理模块是所述分布式存储系统为输入输出IO操作分配的数据处理模块;所述目标元数据处理模块用于执行以下步骤:
接收目标数据处理模块发送的访问操作;其中,所述目标数据处理模块用于访问所述IO操作的数据;
根据所述访问操作,访问所述IO操作的元数据。
23.根据权利要求22所述的存储节点,其特征在于,所述IO操作是写操作,所述访问操作是写访问操作;所述写访问操作携带所述写操作的元数据;所述根据所述访问操作,访问所述IO操作的元数据,包括:
根据所述写访问操作,将所述写操作的元数据写入至少两个存储节点。
24.根据权利要求22所述的存储节点,其特征在于,所述IO操作是读操作,所述访问操作是读访问操作;所述根据所述访问操作,访问所述IO操作的元数据,包括:
根据所述读访问操作,读取所述读操作的元数据,并将所述读操作的元数据发送给所述目标数据处理模块;其中,所述读操作的元数据用于指示所述目标数据处理模块读取所述读操作的数据。
25.一种存储节点,其特征在于,应用于分布式存储系统,所述分布式存储系统中部署有:至少一个对象存储设备OSD模块,所述至少一个OSD模块上部署有:管理模块、与所述管理模块存在映射关系的至少一个数据处理模块,以及与所述至少一个数据处理模块存在映射关系的至少一个元数据处理模块;所述管理模块用于管理输入输出IO操作的数据保护信息;所述存储节点包括:
存储器,用于存储计算机程序;
处理器,用于调用所述计算机程序,以实现所述管理模块的功能;所述管理模块用于执行以下步骤:
接收所述IO操作,所述IO操作是写操作;
确定目标数据处理模块和所述目标数据处理模块所在的第二OSD模块的标识;其中,所述目标数据处理模块是所述至少一个数据处理模块中的所述分布式存储系统为IO操作分配的数据处理模块;
根据所述第二OSD模块的标识向所述目标数据处理模块发送所述写操作;其中,所述写操作用于指示所述目标数据处理模块确定目标元数据处理模块和所述目标元数据处理模块所在的第一OSD模块的标识,以及向所述目标元数据处理模块发送写访问操作;所述写访问操作用于指示所述目标元数据处理模块读取所述写操作的元数据,所述目标数据处理模块还用于根据所述IO操作的元数据读取所述写操作的数据。
26.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在计算机上运行时,使得如权利要求10至13任一项所述的方法被执行。
27.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在计算机上运行时,使得如权利要求14至16任一项所述的方法被执行。
28.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在计算机上运行时,使得如权利要求17所述的方法被执行。
CN201810099610.XA 2018-01-31 2018-01-31 一种分布式存储系统、数据处理方法和存储节点 Active CN110096220B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201810099610.XA CN110096220B (zh) 2018-01-31 2018-01-31 一种分布式存储系统、数据处理方法和存储节点
EP18904134.6A EP3739440A4 (en) 2018-01-31 2018-09-07 DISTRIBUTED STORAGE SYSTEM, DATA PROCESSING METHODS AND STORAGE NODES
PCT/CN2018/104487 WO2019148841A1 (zh) 2018-01-31 2018-09-07 一种分布式存储系统、数据处理方法和存储节点
US16/943,279 US11262916B2 (en) 2018-01-31 2020-07-30 Distributed storage system, data processing method, and storage node

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810099610.XA CN110096220B (zh) 2018-01-31 2018-01-31 一种分布式存储系统、数据处理方法和存储节点

Publications (2)

Publication Number Publication Date
CN110096220A true CN110096220A (zh) 2019-08-06
CN110096220B CN110096220B (zh) 2020-06-26

Family

ID=67443393

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810099610.XA Active CN110096220B (zh) 2018-01-31 2018-01-31 一种分布式存储系统、数据处理方法和存储节点

Country Status (4)

Country Link
US (1) US11262916B2 (zh)
EP (1) EP3739440A4 (zh)
CN (1) CN110096220B (zh)
WO (1) WO2019148841A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111324305A (zh) * 2020-02-16 2020-06-23 西安奥卡云数据科技有限公司 一种分布式存储系统中数据写入/读取方法
CN111399766A (zh) * 2020-01-08 2020-07-10 华为技术有限公司 存储系统中的数据存储方法、数据读取方法、装置及系统
CN112486402A (zh) * 2019-09-12 2021-03-12 华为技术有限公司 一种存储节点及系统
CN112860694A (zh) * 2021-02-04 2021-05-28 京东数字科技控股股份有限公司 业务数据的处理方法、装置及设备
CN113312316A (zh) * 2021-07-28 2021-08-27 阿里云计算有限公司 数据处理方法及装置
CN113315801A (zh) * 2020-06-08 2021-08-27 阿里巴巴集团控股有限公司 存储区块链数据的方法和系统

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112306781B (zh) * 2020-11-20 2022-08-19 新华三大数据技术有限公司 一种线程故障处理方法、装置、介质及设备
CN116980641B (zh) * 2023-09-22 2023-12-15 江西云眼视界科技股份有限公司 视频迁移的异步处理方法、系统、计算机及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101997884A (zh) * 2009-08-18 2011-03-30 升东网络科技发展(上海)有限公司 分布式存储系统和方法
CN104298574A (zh) * 2014-09-16 2015-01-21 南京斯坦德云科技股份有限公司 一种数据高速存储处理系统
US20160188591A1 (en) * 2014-12-31 2016-06-30 Nexenta Systems, Inc. Methods and systems for key-value-tuple-encoded storage
CN106713250A (zh) * 2015-11-18 2017-05-24 杭州华为数字技术有限公司 基于分布式系统的数据访问方法和装置
CN107111481A (zh) * 2014-10-03 2017-08-29 新加坡科技研究局 分布式主动混合存储系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060129614A1 (en) * 2004-12-14 2006-06-15 Kim Hong Y Crash recovery system and method for distributed file server using object based storage
KR101490327B1 (ko) * 2006-12-06 2015-02-05 퓨전-아이오, 인크. 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법
US8489654B2 (en) * 2009-08-28 2013-07-16 Beijing Innovation Works Technology Company Limited Method and system for forming a virtual file system at a computing device
CN102024044B (zh) * 2010-12-08 2012-11-21 华为技术有限公司 分布式文件系统
CN102255962B (zh) * 2011-07-01 2013-11-06 华为数字技术(成都)有限公司 一种分布式存储方法、装置和系统
US9887008B2 (en) * 2014-03-10 2018-02-06 Futurewei Technologies, Inc. DDR4-SSD dual-port DIMM device
CN104123359B (zh) * 2014-07-17 2017-03-22 江苏省邮电规划设计院有限责任公司 一种分布式对象存储系统的资源管理方法
CN106062717B (zh) 2014-11-06 2019-05-03 华为技术有限公司 一种分布式存储复制系统和方法
CN104598168B (zh) * 2015-01-23 2017-09-29 华为技术有限公司 一种数据恢复方法及对象存储设备
CN105574104B (zh) * 2015-12-11 2019-04-05 上海爱数信息技术股份有限公司 一种基于ObjectStore的LogStructure存储系统及其数据写入方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101997884A (zh) * 2009-08-18 2011-03-30 升东网络科技发展(上海)有限公司 分布式存储系统和方法
CN104298574A (zh) * 2014-09-16 2015-01-21 南京斯坦德云科技股份有限公司 一种数据高速存储处理系统
CN107111481A (zh) * 2014-10-03 2017-08-29 新加坡科技研究局 分布式主动混合存储系统
US20160188591A1 (en) * 2014-12-31 2016-06-30 Nexenta Systems, Inc. Methods and systems for key-value-tuple-encoded storage
CN106713250A (zh) * 2015-11-18 2017-05-24 杭州华为数字技术有限公司 基于分布式系统的数据访问方法和装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112486402A (zh) * 2019-09-12 2021-03-12 华为技术有限公司 一种存储节点及系统
CN111399766A (zh) * 2020-01-08 2020-07-10 华为技术有限公司 存储系统中的数据存储方法、数据读取方法、装置及系统
CN111399766B (zh) * 2020-01-08 2021-10-22 华为技术有限公司 存储系统中的数据存储方法、数据读取方法、装置及系统
CN111324305A (zh) * 2020-02-16 2020-06-23 西安奥卡云数据科技有限公司 一种分布式存储系统中数据写入/读取方法
CN113315801A (zh) * 2020-06-08 2021-08-27 阿里巴巴集团控股有限公司 存储区块链数据的方法和系统
CN113315801B (zh) * 2020-06-08 2024-06-04 阿里巴巴集团控股有限公司 存储区块链数据的方法和系统
CN112860694A (zh) * 2021-02-04 2021-05-28 京东数字科技控股股份有限公司 业务数据的处理方法、装置及设备
CN112860694B (zh) * 2021-02-04 2024-05-17 京东科技控股股份有限公司 业务数据的处理方法、装置及设备
CN113312316A (zh) * 2021-07-28 2021-08-27 阿里云计算有限公司 数据处理方法及装置

Also Published As

Publication number Publication date
EP3739440A1 (en) 2020-11-18
EP3739440A4 (en) 2021-04-07
WO2019148841A1 (zh) 2019-08-08
US20200356282A1 (en) 2020-11-12
CN110096220B (zh) 2020-06-26
US11262916B2 (en) 2022-03-01

Similar Documents

Publication Publication Date Title
CN110096220A (zh) 一种分布式存储系统、数据处理方法和存储节点
KR102428317B1 (ko) Fpga 기반 가속화를 위한 새로운 ssd 구조
US20200241613A1 (en) Persistent reservations for virtual disk using multiple targets
CN105549904B (zh) 一种应用于存储系统中的数据迁移方法及存储设备
CN105144105B (zh) 用于可扩展的崩溃一致的快照操作的系统和方法
CN103765817B (zh) 从源服务器向目标服务器复制数据对象的系统和方法
CN103793425B (zh) 用于分布式系统的数据处理方法及装置
CN105074674B (zh) 计算机系统以及资源管理方法
US20120078948A1 (en) Systems and methods for searching a cloud-based distributed storage resources using a set of expandable probes
JP4310070B2 (ja) ストレージシステムの運用管理方式
CN104166597B (zh) 一种分配远程内存的方法及装置
CN105242872B (zh) 一种面向虚拟集群的共享存储系统
CN107810487A (zh) 部分地重新配置加速组件
CN106446159B (zh) 一种存储文件的方法、第一虚拟机及名称节点
CN107924289A (zh) 计算机系统和访问控制方法
CN103890729A (zh) 共享资源的协同管理
CN106104500A (zh) 存储数据的方法和设备
CN107707628A (zh) 用于传输数据处理请求的方法和装置
CN107122127A (zh) 向存储硬件的存储操作卸载
CN106020731B (zh) 存储设备、存储设备阵列和网络适配器
CN109906597A (zh) 向和从云网络中存储和取回受限制的数据集和非受限制的数据集
US9405484B2 (en) System of managing remote resources
CN108064374A (zh) 一种数据访问方法、装置和系统
CN105739930B (zh) 一种存储架构及其初始化方法和数据存储方法及管理装置
CN108268344A (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220215

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technologies Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.