CN105404561A - 一种分布式存储的纠删码实现方法及装置 - Google Patents

一种分布式存储的纠删码实现方法及装置 Download PDF

Info

Publication number
CN105404561A
CN105404561A CN201510808175.XA CN201510808175A CN105404561A CN 105404561 A CN105404561 A CN 105404561A CN 201510808175 A CN201510808175 A CN 201510808175A CN 105404561 A CN105404561 A CN 105404561A
Authority
CN
China
Prior art keywords
directory
target
service node
stores service
described 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
CN201510808175.XA
Other languages
English (en)
Other versions
CN105404561B (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.)
Zhejiang Uniview Technologies Co Ltd
Original Assignee
Zhejiang Uniview 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 Zhejiang Uniview Technologies Co Ltd filed Critical Zhejiang Uniview Technologies Co Ltd
Priority to CN201510808175.XA priority Critical patent/CN105404561B/zh
Publication of CN105404561A publication Critical patent/CN105404561A/zh
Application granted granted Critical
Publication of CN105404561B publication Critical patent/CN105404561B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种分布式存储系统纠删码实现方法及装置,所述方法包括:接收目标客户端发送的针对目标目录的目录创建指令,目录创建指令中包括目标目录对应的纠删策略;根据纠删策略确定目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点;其中,同一目标目录对应的多个目标子目录关联的目标存储服务节点不同;存储目标目录、目标子目录以及目标存储服务节点三者的对应关系,以使客户端根据目标目录、目标子目录以及目标存储服务节点三者的对应关系对目标目录进行文件创建和/或数据读写。应用本发明实施例可以降低元数据服务器的负荷,提高存储节点空间的纠删策略设定的灵活性。

Description

一种分布式存储的纠删码实现方法及装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种分布式存储的纠删码实现方法及装置。
背景技术
分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
监控系统中读写流量相比普通应用来说要大很多,因此,监控系统中的分布式存储系统基本采用对象存储的scaleout(横向扩展)模型,其核心是将数据通路(数据读或写)和控制通路(元数据)分离,通过元数据管理服务器、存储服务节点、客户端三个部分协调工作来构建存储系统,每个对象存储设备具有一定的智能,能够自动管理其上的数据分布。
元数据管理服务器(MetaDataServer,简称MDS)控制客户端与存储节点的交互,为客户端提供元数据,主要是文件的逻辑视图,包括文件与目录的组织关系、每个文件所对应的存储节点等,即在存储系统上构建一个文件系统结构,包括限额控制、目录和文件的创建和删除、访问控制等。
然而实践发现,上述采用对象存储的scaleout模型的分布式存储系统中,元数据服务器需要维护系统中存储的每一个文件与该文件在存储服务节点中每一个chunk(数据块)的对应关系,元数据负载过大;此外,存储节点组成纠删模式后,这几个存储节点就绑定了某一种纠删策略,如6+3、6+2等,纠删策略的设定的灵活性较差。
发明内容
本发明提供一种分布式存储的纠删码实现方法及装置,以解决现有分布式存储系统中元数据服务器负荷过大,且纠删策略设定灵活性较差的问题。
根据本发明实施例的第一方面,提供一种分布式存储系统纠删码实现方法,包括:
接收目标客户端发送的针对目标目录的目录创建指令,所述目录创建指令中包括所述目标目录对应的纠删策略;
根据所述纠删策略确定所述目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点;其中,同一目标目录对应的多个目标子目录关联的目标存储服务节点不同;
存储所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,以使客户端根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系对所述目标目录进行文件创建和/或数据读写。
根据本发明实施例的第二方面,提供一种分布式存储系统纠删码实现方法,包括:
向元数据服务器发送针对目标目录的目录创建指令,所述目录创建指令中包括所述目标目录对应的纠删策略,以使所述元数据服务器根据所述纠删策略确定所述目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点;
根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,对所述目标目录进行文件创建和/或数据读写。
根据本发明实施例的第三方面,提供一种分布式存储系统纠删码实现装置,包括:
接收单元,用于接收目标客户端发送的针对目标目录的目录创建指令,所述目录创建指令中包括所述目标目录对应的纠删策略;
确定单元,用于根据所述纠删策略确定所述目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点;其中,同一目标目录对应的多个目标子目录关联的目标存储服务节点不同;
存储单元,用于存储所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,以使客户端根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系对所述目标目录进行文件创建和/或数据读写。
根据本发明实施例的第四方面,提供一种分布式存储系统纠删码实现装置,包括:
发送单元,用于向元数据服务器发送针对目标目录的目录创建指令,所述目录创建指令中包括所述目标目录对应的纠删策略,以使所述元数据服务器根据所述纠删策略确定所述目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点;
处理单元,用于根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,对所述目标目录进行文件创建和/或数据读写。
应用本发明实施例,通过在创建目标目录时,确定目标目录对应的目标子目录,以及目标子目录关联的目标存储服务节点,并存储该目标目录、目标子目录以及目标存储服务节点三者的对应关系,以使客户端根据目标目录、目标子目录以及目标存储服务节点三者的对应关系对目标目录进行文件创建和/或数据读写,从而,元数据服务器可以不需要存储文件与该文件在存储服务节点中对应的每一个chunk的对应关系,降低了元数据服务器的负荷;同时,由于纠删策略与目录关联,而统一的存储节点空间上可以同时创建多个目录,在统一的存储节点空间上,可以独立指定每个目录的纠删策略,因而,提高了存储节点空间的纠删策略设定的灵活性。
附图说明
图1是本发明实施例提供的一种分布式存储系统纠删码实现的网络架构示意图;
图2是本发明实施例提供的一种分布式存储系统纠删码实现方法的流程示意图;
图3是本发明实施例提供的另一种分布式存储系统纠删码实现方法的流程示意图;
图4是本发明实施例提供的一种数据分块写入示意图;
图5是本发明实施例提供的一种分布式存储系统纠删码实现装置的结构示意图;
图6是本发明实施例提供的另一种分布式存储系统纠删码实现装置的结构示意图;
图7是本发明实施例提供的另一种分布式存储系统纠删码实现装置的结构示意图;
图8是本发明实施例提供的另一种分布式存储系统纠删码实现装置的结构示意图;
图9是本发明实施例提供的一种分布式存储系统纠删码实现装置的结构示意图;
图10是本发明实施例提供的另一种分布式存储系统纠删码实现装置的结构示意图;
图11是本发明实施例提供的另一种分布式存储系统纠删码实现装置的结构示意图;
图12是本发明实施例提供的另一种分布式存储系统纠删码实现装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面先对本发明实施例适用的网络架构进行描述。
请参见图1,图1为本发明实施例提供的一种分布式存储系统纠删码实现的网络架构示意图。如图1所示,该网络架构示意图可以包括元数据服务器、存储服务节点以及客户端(Client),其中,客户端可以向元数据服务器发送针对目标目录的目录创建指令,该目录创建指令中可以包括目标目录对应的纠删策略;元数据服务器接收到该目录创建指令后,可以根据纠删策略确定目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点,并存储该目标目录、目标子目录以及目标存储服务节点三者的对应关系,以使客户端根据目标目录、目标子目录以及目标存储服务节点三者的对应关系对目标目录进行文件创建和/或数据读写;其中,同一目标目录对应的多个目标子目录关联的目标存储服务节点不同。
需要注意的是,在本发明实施例中,目标目录并不特指某一目录,而是可以指代客户端中创建的任一目录,本发明实施例后续不再复述。
基于图1所示的网络架构,本发明实施例提供了一种分布式存储系统纠删码实现方法。请参见图2,为本发明实施例提供的一种分布式存储系统纠删码实现方法的流程示意图,如图2所示,该方法可以包括以下步骤:
需要说明的是,步骤201~步骤203的执行主体可以为图1所示网络架构中的元数据服务器或元数据服务器中的处理单元,如CPU(CenterProcessUnit,中央处理器),为便于描述,以下步骤201~步骤203的执行主体为元数据服务器为例进行说明。
步骤201、接收目标客户端发送的针对目标目录的目录创建指令,该目录创建指令中包括目标目录对应的纠删策略。
本发明实施例中,目标客户端并不特指某一固定客户端,而是可以指代图1所示网络架构中任一客户端,本发明实施例后续不再复述。
本发明实施例中,用户可以通过目标客户端上创建目标目录,并指定目标目录对应的纠删策略,如4+2、6+2或6+3等。目标客户端接收到用户创建目标目录的操作指令后,可以向元数据服务器发送针对目标目录的目录创建指令,并将指定的纠删策略携带在该目录创建指令中。
步骤202、根据纠删策略确定目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点;其中,同一目标目录对应的多个目标子目录关联的目标存储服务节点不同。
本发明实施例中,元数据服务器接收到目标客户端发送的针对目标目录的目录创建指令后,可以获取该目录创建指令中包括的纠删策略,并根据该纠删策略确定目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点。
举例来说,假设目录创建指令为创建/USR1/NMDir,指定的纠删策略为4+2,则元数据服务器接收到该目录创建指令后,可以将该目标目录映射为6个不同的子目录(目标子目录),其命名规则可以如下:
/USR1/Sn:mNMDir
其中,Sn表示纠删策略中的数据块位序,如同RAID中磁盘的顺序配置一样,这个顺序决定了校验块放置的位置,同时也决定了数据分片的顺序,具体详见下文中相关描述;
m表示异常时数据重建的序列号,比如存储服务节点发生了一次异常,使用了新空间来替换(即通过冗余节点替换发生异常的存储服务节点进行数据重建),则在原来基础上+1,通过这种方式来记录最新的替换空间,具体详见下文中相关描述。
元数据服务器将目标目录映射为6个目标子目录之后,可以分别该6个目标子目录关联到不同的存储服务节点。
本发明实施例中,由于每个客户端创建目录的映射都是独立维护的,因此,可以独立指定纠删策略,比如,创建/USR1/a的纠删策略为4+2,创建/USR2/b的纠删策略为6+2。
步骤203、存储目标目录、目标子目录以及目标存储服务节点三者的对应关系,以使客户端根据该目标目录、目标子目录以及目标存储服务节点三者的对应关系对目标目录进行文件创建和/或数据读写。
本发明实施例中,元数据服务器确定目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点之后,一方面,可以存储该目标目录、目标子目录以及目标存储服务节点三者的对应关系;另一方面,元数据服务器可以将该目标目录、目标子目录以及目标存储服务节点三者的对应关系发送给目标客户端,或者,元数据服务器可以在接收到目标客户端或其它客户端发送的针对目标目录的查询请求后,响应该查询请求,将目标目录、目标子目录以及目标存储服务节点三者的对应关系发送给该目标客户端或其它客户端,以使目标客户端或其它客户端根据目标目录、目标子目录以及目标存储服务节点三者的对应关系对目标目录进行文件创建或数据读写。
作为一种可选的实施方式,上述步骤202中,根据纠删策略确定目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点之后,还可以包括:
将目标目录、目标子目录以及目标存储服务节点三者的对应关系发送给目标客户端,以使目标客户端接收到在目标目录中创建目标文件的文件创建请求时,根据目标目录、目标子目录以及目标存储服务节点三者的对应关系,向目标存储服务节点发送创建目标文件的文件创建指令,由目标存储服务节点在相应的目标子目录下创建目标文件。
在该实施方式中,元数据服务器根据纠删策略确定目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点之后,可以将目标目录、目标子目录以及目标存储服务节点三者的对应关系发送给目标客户端。目标客户端接收到该对应关系之后,可以存储该对应关系。
当目标客户端在目标目录中创建文件(目标文件)时,目标客户端可以向目标目录对应的目标存储服务节点下发针对目标文件的文件创建指令;目标存储服务节点接收到该文件创建指令后,可以在目标目录对应的目标子目录下创建目标文件。
举例来说,假设目标客户端需要在目标目录中创建的目标文件的文件名为:/USR1/NMDir/20150731.mp4,则相对应的实际操作为在目标目录(即/USR1/NMDir)对应的每一个目标存储服务节点上的目标子目录下创建同名文件:/USR1/Sn:mNMDir/20150731.mp4,其中,每一个目标存储服务节点上文件的大小为真实文件的一部分(目标文件创建初始时文件大小为0)。后续对目标文件/USR1/NMDir/20150731.mp4的读写操作,都会转变为对/USR1/Sn:mNMDir/20150731.mp4的读写。
值得说明的是,在本发明实施例中,对于目标客户端之外的其它客户端,当其需要创建文件时,其可以通过向元数据服务器发送针对目标目录的查询请求,以获取目标目录、目标子目录以及目标存储服务节点三者的对应关系,进而根据该对应关系创建文件,其中,目标客户端之外的其它客户端根据该对应关系创建文件的具体实现可以参见上述目标客户端根据该对应关系创建目标文件中的相关描述,本发明实施例在此不再赘述。
在一种可选的实施方式中,上述步骤203中,存储目标目录、目标子目录以及目标存储服务节点三者的对应关系之后,还包括:
接收客户端发送的针对目标目录的查询请求;
响应该查询请求,向该客户端发送目标目录、目标子目录以及目标存储服务节点三者的对应关系,以使该客户端根据该目标目录、目标子目录以及目标存储服务节点三者的对应关系,确定所述目标目录下的文件列表。
在该实施方式中,客户端(包括目标客户端或其它客户端)可以通过向元数据服务器发送针对目标目录的查询请求,获取目标目录对应的目标子目录,及其关联的目标存储服务节点。
元数据服务器接收到客户端发送的针对目标目录的查询请求之后,可以根据该目标目录查询自身存储的目录、子目录以及存储服务节点三者的对应关系,确定该目标目录对应的目标子目录以及目标存储服务节点,并将目标目录、目标子目录以及目标存储服务节点三者的对应关系发送给客户端。
客户端获取到目标目录、目标子目录以及目标存储服务节点三者的对应关系后,可以根据该对应关系,获取目标存储服务节点在目标子目录下的文件列表。由于目标目录下的每一个文件,在目标子目录下均存在同名文件,因此,根据任一目标存储服务节点在目标子目录下的文件列表即可确定目标目录下的文件列表,进而,客户端可以根据目标目录下的文件列表,从相应的目标存储服务节点中获取文件列表中包括的任一文件。
进一步地,在本发明实施例中,根据纠删策略确定目标目录对应的多个目标子目录,以及各目标子目录关联的日志存储服务节点之后,还包括:
当目标存储服务节点中存在被冗余节点替代的目标服务节点时,修改与被替代的目标存储服务节点对应的目标子目录,并将被替代的目标存储服务节点与该被替代的目标存储服务节点关联的目标子目录的对应关系修改为该冗余节点与修改后的目标子目录的对应关系。
在该实施方式中,元数据服务器可以实时监控存储服务节点的状态;同时,每一个存储服务节点也会对自己的存储空间进行定时检测,当存储服务节点检测到自身存储介质(如硬盘或阵列)损坏时,会将自身状态通知给元数据服务器。
当元数据服务器确定存储服务节点发生介质读写异常时,元数据服务器可以启动一个异常确认定时,如10分钟,若该存储服务节点在超时之前恢复,则元数据服务器可以通知该存储服务节点对介质读写异常时间段内写入的数据进行重建;存储服务节点可以通过查询元数据服务器上涉及的存储节点,根据其它存储节点内同名文件中的数据进行数据重建。
若该存储服务节点在超时之前未恢复,则元数据服务器可以直接通知存储服务节点对异常节点进行重建;此时,元数据服务器可以根据异常节点中发生读写异常的介质中已存储的数据,以及发生读写异常过程中需要写入的数据,判断异常节点中是否有足够的空间进行数据重建;若有,则直接对异常节点启动数据重建;若没有,则元数据服务器可以启用系统内配置的冗余节点替代该异常节点,并在该冗余节点中重建该异常节点中的数据。
当发生存储服务节点丢失,如控制器损坏、网络异常、电源故障时,元数据服务器也可以启动异常确认定时,如2小时,若存储服务节点在超时前恢复,则元数据服务器仅需要触发存储服务节点对丢失时间内的数据进行重建;若存储服务节点未在超时前恢复,则元数据服务器可以启用系统内配置的冗余节点替代该异常节点,并在该冗余节点中重建该异常节点中的数据。
值得说明的是,在本发明实施例中,当元数据服务器启用了系统内配置的冗余节点替代异常节点时,元数据服务器需要相应地修改目录映射关系,即目标目录、目标子目录以及目标存储服务节点的对应关系,将异常节点与该异常节点对应的目标子目录的对应关系修改为该冗余节点与修改后的目标子目录的对应关系。
举例来说,假设目标目录为/USR1/NMDir,目标目录对应的目标子目录依次为/USR1/S1:1NMDir、/USR1/S2:1NMDir、/USR1/S3:1NMDir、/USR1/S4:1NMDir、/USR1/S5:1NMDir和/USR1/S6:1NMDir,各目标子目录关联的存储服务节点依次为存储服务节点1~6,若存储服务节点3(关联的目标子目录为/USR1/S3:1NMDir)发生异常,且被冗余节点(假设为存储服务节点s)替代,则元数据服务器需要将目标子目录修改为/USR1/S3:2NMDir,并将其关联的存储服务节点修改为存储服务节点s,即元数据服务器中存储的目标目录对应的目标子目录修改为了/USR1/S1:1NMDir、/USR1/S2:1NMDir、/USR1/S3:2NMDir、/USR1/S4:1NMDir、/USR1/S5:1NMDir和/USR1/S6:1NMDir,其关联的存储服务节点修改为了存储服务节点1、存储服务节点2、存储服务节点s、存储服务节点4、存储服务节点5和存储服务节点6。其中,/USR1/S3:2NMDir中的“2”(“:”后的“2”)可以用于表明该目标子目录对应的存储服务节点发生异常,进行过一次替换(初始值为1)。相应地,若目标子目录为/USR1/S3:3NMDir,则表明该目标子目录对应的存储节点发生过两次替换(初始值为1)
可见,在图2所描述的方法流程中,通过在创建目标目录时,确定目标目录对应的目标子目录,以及目标子目录关联的目标存储服务节点,并存储该目标目录、目标子目录以及目标存储服务节点三者的对应关系,以使客户端根据目标目录、目标子目录以及目标存储服务节点三者的对应关系对目标目录进行文件创建和/或数据读写,从而,元数据服务器可以不需要存储文件与该文件在存储服务节点中对应的每一个chunk的对应关系,降低了元数据服务器的负荷;同时,由于纠删策略与目录关联,而统一的存储节点空间上可以同时创建多个目录,在统一的存储节点空间上,可以独立指定每个目录的纠删策略,因而,提高了存储节点空间的纠删策略设定的灵活性。
基于图1所示的网络架构,本发明实施例提供了另一种分布式存储系统纠删码实现方法。请参见图3,为本发明实施例提供的另一种分布式存储系统纠删码实现方法的流程示意图,如图3所示,该方法可以包括以下步骤:
需要说明的是,步骤301~步骤302的执行主体可以为图1所示网络架构中的客户端或客户端中的处理单元,如CPU,为便于描述,以下步骤301~步骤302的执行主体为客户端为例进行说明。
步骤301、向元数据服务器发送针对目标目录的目录创建指令,该目标创建指令中包括目标目录对应的纠删策略,以使元数据服务器根据纠删策略确定目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点。
本发明实施例中,用户可以通过客户端上创建目标目录,并指定目标目录对应的纠删策略,如4+2、6+2或6+3等。客户端接收到用户创建目标目录的操作指令后,可以向元数据服务器发送针对目标目录的目录创建指令,并将指定的纠删策略携带在该目录创建指令中。
元数据服务器接收到目标客户端发送的针对目标目录的目录创建指令后,可以获取该目录创建指令中包括的纠删策略,并根据该纠删策略确定目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点。
举例来说,假设目录创建指令为创建/USR1/NMDir,指定的纠删策略为4+2,则元数据服务器接收到该目录创建指令后,可以将该目标目录映射为6个不同的子目录(目标子目录),如依次为/USR1/S1:1NMDir、/USR1/S2:1NMDir、/USR1/S3:1NMDir、/USR1/S4:1NMDir、/USR1/S5:1NMDir和/USR1/S6:1NMDir,各目标子目录关联的存储服务节点依次为存储服务节点1~6。
步骤302、根据目标目录、目标子目录以及目标存储服务节点三者的对应关系,对目标目录进行文件创建和/或读写。
本发明实施例中,元数据服务器确定目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点之后,一方面,可以存储该目标目录、目标子目录以及目标存储服务节点三者的对应关系;另一方面,元数据服务器可以将该目标目录、目标子目录以及目标存储服务节点三者的对应关系发送给目标客户端,或者,元数据服务器可以在接收到目标客户端或其它客户端发送的针对目标目录的查询请求后,响应该查询请求,将目标目录、目标子目录以及目标存储服务节点三者的对应关系发送给该目标客户端或其它客户端,以使目标客户端或其它客户端根据目标目录、目标子目录以及目标存储服务节点三者的对应关系对目标目录进行文件创建或数据读写。
相应地,作为一种可选的实施方式,上述步骤301和步骤302之间,还可以包括:
接收并存储元数据服务器发送的目标目录、目标子目录以及目标存储服务节点三者的对应关系。
在该实施方式中,元数据服务器确定目标目录对应的目标子目录,及其关联的目标存储服务节点之后,可以将目标目录、目标子目录以及目标存储服务节点三者的对应关系发送给客户端(创建目标目录的客户端);客户端接收到该对应关系后,可以存储该对应关系,并根据该对应关系对目标目录进行文件创建和/或数据读写。
相应地,作为另一种可选的实施方式,上述步骤301和步骤302之间,还可以包括:
向元数据服务器发送针对目标目录的查询请求;
接收元数据服务器发送的目标目录、目标子目录以及目标存储服务节点三者的对应关系。
在该实施方式中,客户端(包括创建目标目录的客户端或其它客户端)可以通过向元数据服务器发送针对目标目录的查询请求,以获取目标目录、目标子目录以及目标存储服务节点三者的对应关系,进而,根据该对应关系对目标目录进行文件创建和/或数据读写。
在一种可选的实施方式中,上述步骤302中,根据目标目录、目标子目录以及目标存储服务节点三者的对应关系,对目标目录进行文件创建,可以包括以下步骤:
11)、接收在目标目录下创建目标文件的文件创建请求;
12)、根据目标目录、目标子目录以及目标存储服务节点三者的对应关系,向目标服务节点发送创建目标文件的文件创建指令,由目标存储服务节点在相应的目标子目录下创建目标文件。
在该实施方式中,当客户端需要在目标目录中创建文件(目标文件),如客户端接收到在目标目录下创建目标文件的文件创建请求时,客户端可以向目标目录对应的目标存储服务节点下发针对目标文件的文件创建指令;目标存储服务节点接收到该文件创建指令后,可以在目标目录对应的目标子目录下创建目标文件。
举例来说,假设客户端需要在目标目录中创建的目标文件的文件名为:/USR1/NMDir/20150731.mp4,则相对应的实际操作为在目标目录(即/USR1/NMDir)对应的每一个目标存储服务节点上的目标子目录下创建同名文件:/USR1/Sn:mNMDir/20150731.mp4,其中,每一个目标存储服务节点上文件的大小为真实文件的一部分(目标文件创建初始时文件大小为0)。后续对目标文件/USR1/NMDir/20150731.mp4的读写操作,都会转变为对/USR1/Sn:mNMDir/20150731.mp4的读写。
在一种可选的实施方式中,上述步骤302中,根据目标目录、目标子目录以及目标存储服务节点三者的对应关系,对目标目录进行数据写,可以包括以下步骤:
21)、接收针对目标目录下的目标文件的数据写入请求;
22)、根据预先设定的数据块大小对待写入数据进行分块,并根据纠删策略确定对应的校验数据;
23)、将分块后的待写入数据,以及对应的校验块按序写入对应的目标存储服务节点的目标子目录下的目标文件中。
在该实施方式中,当客户端接收到针对目标目录下的目标文件的数据写入请求时,客户端需要先进行数据对齐缓存,即根据预先设定的数据块大小(如128KB、64KB等)将待写入数据进行分块,然后,根据纠删策略确定对应的校验数据,进而,将分块后的待写入数据、以及对应的校验数据按序写入对应的目标存储服务节点的目标子目录下的目标文件中。
举例来说,假设预先设定的数据块大小为128KB,客户端接收到针对目标目录/USR1/NMDir下的目标文件/USR1/NMDir/20150731.mp4的数据写入操作,待写入数据大小为512KB,目标目录对应的纠删策略为4+2。则客户端可以先将待写入数据划分为128KB大小的数据块(假设为D1、D2、D3和D4),然后,计算D1、D2、D3和D4对应的校验数据P1和P2(这些分片数据在阵列概念中组成一个数据条带),进而,客户端可以将这些分块数据依次写入到对应的目标子目录下的目标文件中,即D1写入/USR1/S1:1NMDir/20150731.mp4,D2写入/USR1/S2:1NMDir/20150731.mp4,以此类推。
其中,为了避免校验数据的集中存储,即避免所有的校验数据被存在相同的存储服务节点中,客户端向存储服务节点写入数据时,会进行一定的交错,该交错随数据的偏移量可以是一种固定的模式,例如,每次都向左推进一个条块,即每次写完一个数据条带,下一数据条带写入的数据向左推进一个条块。
举例来说,请参见图4,假设待写入数据分块并计算校验数据后共包括数据块D1~D20,以及校验块P1~P10(纠删策略4+2),则客户端在向目标子目录下的目标文件写入数据时,第一个条带中的数据可以为D1写入/USR1/S1:1NMDir/20150731.mp4,D2写入/USR1/S2:1NMDir/20150731.mp4,以此类推;而当将数据写入第二个条带中时,需要向左推进一个条块,即D5写入/USR1/S2:1NMDir/20150731.mp4(D5为D5、D6、D7、D8、P3和P4组成的数据条带中的第一个数据块),D6写入/USR1/S3:1NMDir/20150731.mp4,以此类推,而P4则写入了/USR1/S1:1NMDir/20150731.mp4;而当将数据写入第三个条带时,需要再向左推进一个条块,其具体示意图可以参见图4,在此不再赘述。通过上述交错,避免了校验数据集中存储在/USR1/S5:1NMDir/20150731.mp4和/USR1/S6:1NMDir/20150731.mp4对应的存储服务节点。
值得说明的是,在该实施方式中,当对待写入数据进行分块时,出现剩余数据小于预先设定的数据块大小时,则可以用空数据补足整个条带块中的数据单元,然后再计算校验数据,进而,进行数据写入;其中,实际写入数据时,空数据并不会真正写入物理空间。
举例来说,仍以图4所示场景中数据为例,假设待写入数据大小为502KB,则对待写入数据进行分块时,第4个数据块的大小将小于128KB(实际为118KB),此时,客户端可以用空数据将第4个数据块补足至128KB(如不足的数据大小均以0000进行填充,转至补足至128KB),然后,客户端可以根据补足后的数据块计算校验数据,并进行数据写入。其中,第4个数据块在写入时,填充的空数据不会写入物理空间,即该数据块对应的物理空间中实际仅写入了118KB数据。
在一种可选的实施方式中,上述步骤302中,根据目标目录、目标子目录以及目标存储服务节点三者的对应关系,对目标目录进行数据读,可以包括以下步骤:
31)、接收到针对目标目录的查询请求;
32)、根据目标目录、目标子目录以及目标存储服务节点三者的对应关系,从目标存储服务节点获取目标目录下的文件列表;
33)、接收针对目标目录下的第一文件中的目标数据的读取请求;
34)、从目标存储服务节点中读取第一文件的目标数据。
在该实施方式中,客户端可以通过向元数据服务器发送针对目标目录的查询请求,获取目标目录对应的目标子目录,及其关联的目标存储服务节点。
元数据服务器接收到客户端发送的针对目标目录的查询请求之后,可以根据该目标目录查询自身存储的目录、子目录以及存储服务节点三者的对应关系,确定该目标目录对应的目标子目录以及目标存储服务节点,并将目标目录、目标子目录以及目标存储服务节点三者的对应关系发送给客户端。
客户端获取到目标目录、目标子目录以及目标存储服务节点三者的对应关系后,可以根据该对应关系,获取目标存储服务节点在目标子目录下的文件列表。由于目标目录下的每一个文件,在目标子目录下均存在同名文件,因此,根据任一目标存储服务节点在目标子目录下的文件列表即可确定目标目录下的文件列表,进而,客户端可以根据目标目录下的文件列表,从相应的目标存储服务节点中获取文件列表中包括的任一文件。
举例来说,假设客户端想要读取目标目录下的/USR1/NMDir/下的文件,客户端可以首先向元数据服务器获取目标目录对应的目标子目录,及其关联的存储服务节点(假设目标子目录为/USR1/S1:1NMDir~/USR1/S6:1NMDir,关联的目标存储服务节点依次为存储服务节点1~6),然后,客户端可以向任一目标存储服务节点发送目标子目录下文件列表获取指令,以获取该目标存储服务节点在目标子目录下的文件列表。由于目标目录下的每一个文件,在目标子目录下均存在同名文件,因此,根据任一目标存储服务节点在目标子目录下的文件列表即可确定目标目录下的文件列表。进而,客户端获取到目标目录下的文件列表后,可以展示给用户,并根据用户的操作指令获取相应的文件。假设用户请求获取文件/USR1/NMDir/20150731.mp4,则客户端可以分别从存储服务节点1~6的目标子目录下获取文件/USR1/S1:1NMDir/20150731.mp4~/USR1/S6:1NMDir/20150731.mp4,并根据获取到的文件进行拼合,得到/USR1/NMDir/20150731.mp4,并返回给客户端的相关应用程序。
其中,客户端读取某一个文件时,如读取/USR1/NMDir/20150731.mp4,则可以参照图4所示固定的排列方式,根据固定的条块大小进行,即转化为对每个存储节点上特定目录的D1、D2…的读取操作,然后将数据进行组装返回给应用程序。
当其中有部分条块发生异常读取不出来时,则会根据冗余的校验信息计算出该条块的实际数据再返回给应用程序。
通过以上描述可以看出,在本发明实施例提供的技术方案中,通过在创建目标目录时,确定目标目录对应的目标子目录,以及目标子目录关联的目标存储服务节点,并存储该目标目录、目标子目录以及目标存储服务节点三者的对应关系,以使客户端根据目标目录、目标子目录以及目标存储服务节点三者的对应关系对目标目录进行文件创建和/或数据读写,从而,元数据服务器可以不需要存储文件与该文件在存储服务节点中对应的每一个chunk的对应关系,降低了元数据服务器的负荷;同时,由于纠删策略与目录关联,而统一的存储节点空间上可以同时创建多个目录,在统一的存储节点空间上,可以独立指定每个目录的纠删策略,因而,提高了存储节点空间的纠删策略设定的灵活性。
请参见图5,为本发明实施例提供的一种分布式存储系统纠删码实现装置的结构示意图,其中,所述装置可以应用于图1所示网络架构中的元数据服务器,如图5所示,该分布式存储系统纠删码实现装置可以包括:
接收单元510,用于接收目标客户端发送的针对目标目录的目录创建指令,所述目录创建指令中包括所述目标目录对应的纠删策略;
确定单元520,用于根据所述纠删策略确定所述目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点;其中,同一目标目录对应的多个目标子目录关联的目标存储服务节点不同;
存储单元530,用于存储所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,以使客户端根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系对所述目标目录进行文件创建和/或数据读写。
请一并参见图6,为本发明实施例提供的另一种分布式存储系统纠删码实现装置的结构示意图,该实施例在前述图5所示实施例的基础上,所述装置还可以包括:
第一发送单元540,用于将所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系发送给所述目标客户端,以使所述目标客户端接收到在所述目标目录中创建目标文件的文件创建请求时,根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,向所述目标存储服务节点发送创建所述目标文件的文件创建指令,由所述目标存储服务节点在相应的目标子目录下创建所述目标文件。
在可选实施例中,所述接收单元510,还可以用于接收客户端发送的针对目标目录的查询请求;
相应地,请一并参见图7,为本发明实施例提供的另一种分布式存储系统纠删码实现装置的结构示意图,该实施例在前述图5所示实施例的基础上,所述装置还可以包括:
第二发送单元550,用于响应所述查询请求,向该客户端发送所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,以使该客户端根据该目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,确定所述目标目录下的文件列表。
需要注意的是,在具体实现中,上述第一发送单元540和第二发送单元550可以为同一个发送单元。
请一并参见图8,为本发明实施例提供的另一种分布式存储系统纠删码实现装置的结构示意图,该实施例在前述图5所示实施例的基础上,所述装置还可以包括:
修改单元560,用于当所述目标存储服务节点中存在被冗余节点替代的目标存储服务节点时,修改与被替代的目标存储服务节点对应的目标子目录,并将被替代的目标存储服务节点与该被替代的目标存储服务节点关联的目标子目录的对应关系修改为该冗余节点与修改后的目标子目录的对应关系。
请参见图9,为本发明实施例提供的一种分布式存储系统纠删码实现装置的结构示意图,其中,所述装置可以应用于图1所示网络架构中的客户端,如图9所示,该分布式存储系统纠删码实现装置可以包括:
发送单元910,用于向元数据服务器发送针对目标目录的目录创建指令,所述目录创建指令中包括所述目标目录对应的纠删策略,以使所述元数据服务器根据所述纠删策略确定所述目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点;
处理单元920,用于根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,对所述目标目录进行文件创建和/或数据读写。
请一并参见图10,为本发明实施例提供的另一种分布式存储系统纠删码实现装置的结构示意图,该实施例在前述图9所示实施例的基础上,所述装置中处理单元920还可以包括:第一接收子单元921和创建子单元922;其中:
第一接收子单元921,用于接收在目标目录下创建目标文件的文件创建请求;
创建子单元922,用于根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,向所述目标存储服务节点发送创建所述目标文件的文件创建指令,由所述目标存储服务节点在相应的目标子目录下创建所述目标文件。
请一并参见图11,为本发明实施例提供的另一种分布式存储系统纠删码实现装置的结构示意图,该实施例在前述图9所示实施例的基础上,所述装置中处理单元920还可以包括:第二接收子单元923、数据处理子单元924和写入子单元925;其中:
第二接收子单元923,用于接收到针对所述目标目录下的目标文件的数据写入请求;
数据处理子单元924,用于根据预先设定的数据块大小对待写入数据进行分块,并根据所述纠删策略确定对应的校验数据;
写入子单元925,用于将分块后的待写入数据,以及对应的校验数据按序写入对应的目标存储服务节点的目标子目录下的目标文件中。
请一并参见图12,为本发明实施例提供的另一种分布式存储系统纠删码实现装置的结构示意图,该实施例在前述图9所示实施例的基础上,所述装置中处理单元920还可以包括:第三接收子单元926、获取子单元927和读取子单元928;其中:
第三接收子单元926,用于接收到针对目标目录的查询请求;
获取子单元927,用于根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,从目标存储服务节点获取所述目标目录下的文件列表;
所述第三接收子单元926,还用于接收针对所述目标目录下的第一文件中的目标数据的读取请求;
读取子单元928,用于从目标存储服务节点中读取所述第一文件的目标数据。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,通过在创建目标目录时,确定目标目录对应的目标子目录,以及目标子目录关联的目标存储服务节点,并存储该目标目录、目标子目录以及目标存储服务节点三者的对应关系,以使客户端根据目标目录、目标子目录以及目标存储服务节点三者的对应关系对目标目录进行文件创建和/或数据读写,从而,元数据服务器可以不需要存储文件与该文件在存储服务节点中对应的每一个chunk的对应关系,降低了元数据服务器的负荷;同时,由于纠删策略与目录关联,而统一的存储节点空间上可以同时创建多个目录,在统一的存储节点空间上,可以独立指定每个目录的纠删策略,因而,提高了存储节点空间的纠删策略设定的灵活性。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (16)

1.一种分布式存储系统纠删码实现方法,其特征在于,包括:
接收目标客户端发送的针对目标目录的目录创建指令,所述目录创建指令中包括所述目标目录对应的纠删策略;
根据所述纠删策略确定所述目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点;其中,同一目标目录对应的多个目标子目录关联的目标存储服务节点不同;
存储所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,以使客户端根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系对所述目标目录进行文件创建和/或数据读写。
2.根据权利要求1所述的方法,其特征在于,所述根据所述纠删策略确定所述目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点之后,还包括:
将所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系发送给所述目标客户端,以使所述目标客户端接收到在所述目标目录中创建目标文件的文件创建请求时,根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,向所述目标存储服务节点发送创建所述目标文件的文件创建指令,由所述目标存储服务节点在相应的目标子目录下创建所述目标文件。
3.根据权利要求1所述的方法,其特征在于,所述存储所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系之后,还包括:
接收客户端发送的针对目标目录的查询请求;
响应所述查询请求,向该客户端发送所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,以使该客户端根据该目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,确定所述目标目录下的文件列表。
4.根据权利要求1所述的方法,其特征在于,所述根据所述纠删策略确定所述目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点之后,还包括:
当所述目标存储服务节点中存在被冗余节点替代的目标存储服务节点时,修改与被替代的目标存储服务节点对应的目标子目录,并将被替代的目标存储服务节点与该被替代的目标存储服务节点关联的目标子目录的对应关系修改为该冗余节点与修改后的目标子目录的对应关系。
5.一种分布式存储系统纠删码实现方法,其特征在于,包括:
向元数据服务器发送针对目标目录的目录创建指令,所述目录创建指令中包括所述目标目录对应的纠删策略,以使所述元数据服务器根据所述纠删策略确定所述目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点;
根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,对所述目标目录进行文件创建和/或数据读写。
6.根据权利要求5所述的方法,其特征在于,所述根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,对所述目标目录进行文件创建,包括:
接收在目标目录下创建目标文件的文件创建请求;
根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,向所述目标存储服务节点发送创建所述目标文件的文件创建指令,由所述目标存储服务节点在相应的目标子目录下创建所述目标文件。
7.根据权利要求5所述的方法,其特征在于,所述根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,对所述目标目录进行数据写,包括:
接收到针对所述目标目录下的目标文件的数据写入请求;
根据预先设定的数据块大小对待写入数据进行分块,并根据所述纠删策略确定对应的校验数据;
将分块后的待写入数据,以及对应的校验数据按序写入对应的目标存储服务节点的目标子目录下的目标文件中。
8.根据权利要求5所述的方法,其特征在于,所述根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,对所述目标目录进行数据读,包括:
接收到针对目标目录的查询请求;
根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,从目标存储服务节点获取所述目标目录下的文件列表;
接收针对所述目标目录下的第一文件中的目标数据的读取请求;
从目标存储服务节点中读取所述第一文件的目标数据。
9.一种分布式存储系统纠删码实现装置,其特征在于,包括:
接收单元,用于接收目标客户端发送的针对目标目录的目录创建指令,所述目录创建指令中包括所述目标目录对应的纠删策略;
确定单元,用于根据所述纠删策略确定所述目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点;其中,同一目标目录对应的多个目标子目录关联的目标存储服务节点不同;
存储单元,用于存储所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,以使客户端根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系对所述目标目录进行文件创建和/或数据读写。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第一发送单元,用于将所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系发送给所述目标客户端,以使所述目标客户端接收到在所述目标目录中创建目标文件的文件创建请求时,根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,向所述目标存储服务节点发送创建所述目标文件的文件创建指令,由所述目标存储服务节点在相应的目标子目录下创建所述目标文件。
11.根据权利要求9所述的装置,其特征在于,
所述接收单元,还用于接收客户端发送的针对目标目录的查询请求;
所述装置还包括:
第二发送单元,用于响应所述查询请求,向该客户端发送所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,以使该客户端根据该目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,确定所述目标目录下的文件列表。
12.根据权利要求9所述的装置,其特征在于,所述装置还包括:
修改单元,用于当所述目标存储服务节点中存在被冗余节点替代的目标存储服务节点时,修改与被替代的目标存储服务节点对应的目标子目录,并将被替代的目标存储服务节点与该被替代的目标存储服务节点关联的目标子目录的对应关系修改为该冗余节点与修改后的目标子目录的对应关系。
13.一种分布式存储系统纠删码实现装置,其特征在于,包括:
发送单元,用于向元数据服务器发送针对目标目录的目录创建指令,所述目录创建指令中包括所述目标目录对应的纠删策略,以使所述元数据服务器根据所述纠删策略确定所述目标目录对应的多个目标子目录,以及各目标子目录关联的目标存储服务节点;
处理单元,用于根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,对所述目标目录进行文件创建和/或数据读写。
14.根据权利要求13所述的装置,其特征在于,所述处理单元包括:
第一接收子单元,用于接收在目标目录下创建目标文件的文件创建请求;
创建子单元,用于根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,向所述目标存储服务节点发送创建所述目标文件的文件创建指令,由所述目标存储服务节点在相应的目标子目录下创建所述目标文件。
15.根据权利要求13所述的装置,其特征在于,所述处理单元包括:
第二接收子单元,用于接收到针对所述目标目录下的目标文件的数据写入请求;
数据处理子单元,用于根据预先设定的数据块大小对待写入数据进行分块,并根据所述纠删策略确定对应的校验数据;
写入子单元,用于将分块后的待写入数据,以及对应的校验数据按序写入对应的目标存储服务节点的目标子目录下的目标文件中。
16.根据权利要求13所述的装置,其特征在于,所述处理单元包括:
第三接收子单元,用于接收到针对目标目录的查询请求;
获取子单元,用于根据所述目标目录、所述目标子目录以及所述目标存储服务节点三者的对应关系,从目标存储服务节点获取所述目标目录下的文件列表;
所述第三接收子单元,还用于接收针对所述目标目录下的第一文件中的目标数据的读取请求;
读取子单元,用于从目标存储服务节点中读取所述第一文件的目标数据。
CN201510808175.XA 2015-11-19 2015-11-19 一种分布式存储的纠删码实现方法及装置 Active CN105404561B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510808175.XA CN105404561B (zh) 2015-11-19 2015-11-19 一种分布式存储的纠删码实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510808175.XA CN105404561B (zh) 2015-11-19 2015-11-19 一种分布式存储的纠删码实现方法及装置

Publications (2)

Publication Number Publication Date
CN105404561A true CN105404561A (zh) 2016-03-16
CN105404561B CN105404561B (zh) 2019-04-12

Family

ID=55470059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510808175.XA Active CN105404561B (zh) 2015-11-19 2015-11-19 一种分布式存储的纠删码实现方法及装置

Country Status (1)

Country Link
CN (1) CN105404561B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106372259A (zh) * 2016-10-13 2017-02-01 北京鲸鲨软件科技有限公司 一种基于glusterfs集群文件系统的纠删组内扩容的方法
CN109144766A (zh) * 2017-06-28 2019-01-04 杭州海康威视数字技术股份有限公司 一种数据存储、重构方法和装置、及电子设备
CN110324429A (zh) * 2019-07-10 2019-10-11 中国工商银行股份有限公司 基于分布式数据存储的备份方法及备份装置
CN110389855A (zh) * 2018-04-19 2019-10-29 浙江宇视科技有限公司 磁带库数据校验方法、装置、电子设备和可读存储介质
CN111949628A (zh) * 2019-05-16 2020-11-17 北京京东尚科信息技术有限公司 数据操作方法、装置和分布式存储系统
CN113590546A (zh) * 2021-06-30 2021-11-02 济南浪潮数据技术有限公司 一种目录删除方法、装置及存储介质
CN115098467A (zh) * 2022-07-18 2022-09-23 重庆紫光华山智安科技有限公司 数据存储方法、装置、存储节点及存储介质
CN115934001A (zh) * 2023-03-08 2023-04-07 浪潮电子信息产业股份有限公司 一种纠删池选择方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2725491A1 (en) * 2012-10-26 2014-04-30 Amplidata NV A distributed object storage system comprising performance optimizations
CN103942205A (zh) * 2013-01-18 2014-07-23 深圳市腾讯计算机系统有限公司 存储、读取目录索引的方法、装置及系统
CN104035732A (zh) * 2014-06-17 2014-09-10 中国人民解放军国防科学技术大学 一种面向纠删码的数据放置方法
CN104932953A (zh) * 2015-06-04 2015-09-23 华为技术有限公司 一种数据分发方法、数据存储方法、相关装置以及系统
CN105025053A (zh) * 2014-04-24 2015-11-04 苏宁云商集团股份有限公司 基于云存储技术的分布式文件的上传方法及其系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2725491A1 (en) * 2012-10-26 2014-04-30 Amplidata NV A distributed object storage system comprising performance optimizations
CN103942205A (zh) * 2013-01-18 2014-07-23 深圳市腾讯计算机系统有限公司 存储、读取目录索引的方法、装置及系统
CN105025053A (zh) * 2014-04-24 2015-11-04 苏宁云商集团股份有限公司 基于云存储技术的分布式文件的上传方法及其系统
CN104035732A (zh) * 2014-06-17 2014-09-10 中国人民解放军国防科学技术大学 一种面向纠删码的数据放置方法
CN104932953A (zh) * 2015-06-04 2015-09-23 华为技术有限公司 一种数据分发方法、数据存储方法、相关装置以及系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106372259A (zh) * 2016-10-13 2017-02-01 北京鲸鲨软件科技有限公司 一种基于glusterfs集群文件系统的纠删组内扩容的方法
CN109144766A (zh) * 2017-06-28 2019-01-04 杭州海康威视数字技术股份有限公司 一种数据存储、重构方法和装置、及电子设备
CN109144766B (zh) * 2017-06-28 2023-05-02 杭州海康威视数字技术股份有限公司 一种数据存储、重构方法和装置、及电子设备
CN110389855A (zh) * 2018-04-19 2019-10-29 浙江宇视科技有限公司 磁带库数据校验方法、装置、电子设备和可读存储介质
CN110389855B (zh) * 2018-04-19 2021-12-28 浙江宇视科技有限公司 磁带库数据校验方法、装置、电子设备和可读存储介质
CN111949628A (zh) * 2019-05-16 2020-11-17 北京京东尚科信息技术有限公司 数据操作方法、装置和分布式存储系统
CN111949628B (zh) * 2019-05-16 2024-05-17 北京京东尚科信息技术有限公司 数据操作方法、装置和分布式存储系统
CN110324429A (zh) * 2019-07-10 2019-10-11 中国工商银行股份有限公司 基于分布式数据存储的备份方法及备份装置
CN113590546A (zh) * 2021-06-30 2021-11-02 济南浪潮数据技术有限公司 一种目录删除方法、装置及存储介质
CN115098467A (zh) * 2022-07-18 2022-09-23 重庆紫光华山智安科技有限公司 数据存储方法、装置、存储节点及存储介质
CN115934001A (zh) * 2023-03-08 2023-04-07 浪潮电子信息产业股份有限公司 一种纠删池选择方法、装置、电子设备及存储介质
CN115934001B (zh) * 2023-03-08 2023-05-12 浪潮电子信息产业股份有限公司 一种纠删池选择方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN105404561B (zh) 2019-04-12

Similar Documents

Publication Publication Date Title
CN105404561A (zh) 一种分布式存储的纠删码实现方法及装置
US11687500B1 (en) Updating metadata for a synchronously replicated dataset
US11714718B2 (en) Performing partial redundant array of independent disks (RAID) stripe parity calculations
US20210397359A1 (en) Storing Data For Machine Learning And Artificial Intelligence Applications In A Decentralized Storage Network
CN106407040B (zh) 一种远程数据复制方法及系统
CN106708425B (zh) 分布式多模存储管理
US7159150B2 (en) Distributed storage system capable of restoring data in case of a storage failure
CN101571815B (zh) 信息系统及i/o处理方法
US10740294B2 (en) Garbage collection of data blocks in a storage system with direct-mapped storage devices
US7421617B2 (en) Systems and methods for optimizing restoration of stored data
CN102662992B (zh) 一种海量小文件的存储、访问方法及装置
CN102024044B (zh) 分布式文件系统
CN109542342B (zh) 元数据管理与数据重构方法、设备及存储介质
US12105979B2 (en) Servicing input/output (‘I/O’) operations during a change in membership to a pod of storage systems synchronously replicating a dataset
CN103929500A (zh) 一种分布式存储系统的数据分片方法
US7664983B2 (en) Systems and methods for event driven recovery management
CA2935215A1 (en) Hierarchical chunking of objects in a distributed storage system
CN101147118A (zh) 用于重新配置存储系统的方法和装置
CN102023816A (zh) 一种对象存储系统的对象存放策略和访问方法
CN112379825B (zh) 基于数据特征分池的分布式数据存储方法及装置
CN111435286B (zh) 一种数据存储方法、装置和系统
JP6271581B2 (ja) 仮想テープライブラリシステム
US11249671B2 (en) Methods for improved data replication across hybrid cloud volumes using data tagging and devices thereof
CN105068896A (zh) 基于raid备份的数据处理方法及装置
US11442637B1 (en) Managing drive space among different data services environments within a storage system

Legal Events

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