CN109672544A - 一种数据处理方法、装置及分布式存储系统 - Google Patents

一种数据处理方法、装置及分布式存储系统 Download PDF

Info

Publication number
CN109672544A
CN109672544A CN201710950977.3A CN201710950977A CN109672544A CN 109672544 A CN109672544 A CN 109672544A CN 201710950977 A CN201710950977 A CN 201710950977A CN 109672544 A CN109672544 A CN 109672544A
Authority
CN
China
Prior art keywords
controller
storage
data
storage equipment
module
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
CN201710950977.3A
Other languages
English (en)
Other versions
CN109672544B (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.)
Hangzhou Hikvision Digital Technology Co Ltd
Hangzhou Hikvision System Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201710950977.3A priority Critical patent/CN109672544B/zh
Priority to PCT/CN2018/098655 priority patent/WO2019072004A1/zh
Priority to US16/755,700 priority patent/US11429313B2/en
Priority to EP18866806.5A priority patent/EP3697024B1/en
Publication of CN109672544A publication Critical patent/CN109672544A/zh
Application granted granted Critical
Publication of CN109672544B publication Critical patent/CN109672544B/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/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0659Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory 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/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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0653Monitoring storage devices or 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/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]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or 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 Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种数据处理方法、装置及分布式存储系统,该方法及装置应用于双控存储服务器中,双控存储服务器包含两个控制器,如果一个控制器出现异常,另一个控制器确定异常控制器管理下的存储设备,该另一个控制器扫描所确定的存储设备中的数据,得到存储设备的元数据,并利用该元数据读取所确定的存储设备中存储的数据;可见,本方案中,如果一个控制器出现异常,另一个控制器会接替异常控制器对外提供服务,提高了双控存储服务器存储数据的稳定性。

Description

一种数据处理方法、装置及分布式存储系统
技术领域
本发明涉及分布式存储技术领域,特别是涉及一种数据处理方法、装置及分布式存储系统。
背景技术
目前,一些存储设备中包含两个控制器,这些存储设备也被称为双控存储设备。双控存储设备中的两个控制器共用存储资源及电源、HBA(Host Bus Adapter,主机总线适配器英文)等硬件资源。
在双控存储设备中,当一个控制器出现异常,比如网络异常、系统异常等情况时,另一个控制器仍能继续正常运行,这样,该双控存储设备仍能提供部分正常的存储服务。
但是,现有的双控存储设备中,一个控制器出现异常时,仍有部分存储服务异常,设备存储数据的稳定性较差。
发明内容
本发明实施例的目的在于提供一种数据处理方法、装置及分布式存储系统,以提高双控存储设备存储数据的稳定性。
为达到上述目的,本发明实施例提供一种数据处理方法,应用于分布式存储系统中的双控存储服务器,所述双控存储服务器包含两个控制器:第一控制器和第二控制器,所述方法包括:
第一控制器检测到第二控制器异常后,第一控制器确定所述第二控制器管理下的存储设备;
第一控制器扫描所确定的存储设备中的数据,得到所述存储设备的元数据;
在第一控制器接收到数据读取指令、且判定所述数据读取指令指向的待读取数据存储于所确定的存储设备中的情况下,第一控制器利用得到的元数据,在所确定的存储设备中,读取所述数据读取指令指向的待读取数据。
可选的,在所述第一控制器确定所述第二控制器管理下的存储设备之后,所述方法还可以包括:
在第一控制器接收到数据存储指令、且判定所述数据存储指令对应的存储设备为所确定的存储设备的情况下,第一控制器在所确定的存储设备中,存储所述数据存储指令对应的待存储数据。
可选的,所述第一控制器检测到第二控制器异常,可以包括:
所述第一控制器定期向所述第二控制器发送探测信息,并判断是否在发送所述探测信息后的预设时间段内接收到所述第二控制器的反馈信息;如果未接收到,表示所述第二控制器异常。
可选的,在所述第一控制器扫描所确定的存储设备中的数据,得到所述存储设备的元数据之前,还可以包括:
所述第一控制器判断是否从所述第二控制器中获取到所述第二控制器中的元数据;如果未获取到,所述第一控制器执行所述扫描所确定的存储设备中的数据,得到所述存储设备的元数据的步骤。
可选的,所述第二控制器中存储有自身管理下的每个存储设备对应的校验信息;
在所述第一控制器扫描所确定的存储设备中的数据,得到所述存储设备的元数据之后,还可以包括:
所述第一控制器针对所确定的每个存储设备,生成一份该存储设备对应的校验信息,将该存储设备对应的校验信息存储至该存储设备,并在所述第一控制器中存储该存储设备对应的校验信息;
在所述第二控制器恢复后,所述方法还可以包括:
所述第二控制器针对所述第二控制器管理下的每个存储设备,读取该存储设备中的校验信息;判断该存储设备中的校验信息与所述第二控制器中存储的该存储设备信息对应的校验信息是否相同;如果不同,从所述第一控制器中获取该存储设备的元数据。
可选的,在所述第一控制器扫描所确定的存储设备中的数据,得到所述存储设备的元数据之后,还可以包括:
所述第一控制器检测到所述第二控制器恢复后,将得到的所述第二控制器管理下的存储设备的元数据发送至所述第二控制器;
所述第二控制器接收所述第一控制器发送的元数据;利用所接收到的元数据,对所述第二控制器中存储的元数据进行更新。
可选的,所述第一控制器检测到所述第二控制器恢复,包括:
所述第一控制器定期向所述第二控制器发送探测信息,并判断是否在发送所述探测信息后的预设时间段内接收到所述第二控制器的反馈信息;如果接收到,表示所述第二控制器恢复。
为达到上述目的,本发明实施例还提供一种数据处理装置,应用于分布式存储系统中的双控存储服务器,所述双控存储服务器包含两个控制器:第一控制器和第二控制器,所述装置包括应用于所述第一控制器的检测模块、确定模块、扫描模块和读取模块,其中,
所述检测模块,用于检测所述第二控制器是否异常,如果异常,触发所述确定模块;
所述确定模块,用于确定所述第二控制器管理下的存储设备;
所述扫描模块,用于扫描所述确定模块确定的存储设备中的数据,得到所述存储设备的元数据;
所述读取模块,用于在接收到数据读取指令、且判定所述数据读取指令指向的待读取数据存储于所述确定模块确定的存储设备中的情况下,利用所述扫描模块得到的元数据,在所确定的存储设备中,读取所述数据读取指令指向的待读取数据。
可选的,所述装置还包括应用于所述第一控制器的存储模块,
所述存储模块,用于在接收到数据存储指令、且判定所述数据存储指令对应的存储设备为所述确定模块确定的存储设备的情况下,在所确定的存储设备中,存储所述数据存储指令对应的待存储数据。
可选的,所述检测模块,具体可以用于:
定期向所述第二控制器发送探测信息,并判断是否在发送所述探测信息后的预设时间段内接收到所述第二控制器的反馈信息;如果未接收到,表示所述第二控制器异常。
可选的,所述装置还包括应用于所述第一控制器的判断模块,
所述判断模块,用于判断所述第一控制器是否从所述第二控制器中获取到所述第二控制器中的元数据;如果未获取到,触发所述扫描模块。
可选的,所述第二控制器中存储有自身管理下的每个存储设备对应的校验信息;
所述装置还包括应用于所述第一控制器的生成模块和存储模块,其中,
所述生成模块,用于针对所述确定模块确定的每个存储设备,生成一份该存储设备对应的校验信息;
所述存储模块,用于将所述生成模块生成的该存储设备对应的校验信息存储至该存储设备,并在所述第一控制器中存储该存储设备对应的校验信息;
所述装置还包括应用于所述第二控制器的读取模块、判断模块和获取模块,其中,
所述读取模块,用于在所述第二控制器恢复后,针对所述第二控制器管理下的每个存储设备,读取该存储设备中的校验信息;
所述判断模块,用于判断该存储设备中的校验信息与所述第二控制器中存储的该存储设备信息对应的校验信息是否相同;如果不同,触发所述获取模块;
所述获取模块,用于从所述第一控制器中获取该存储设备的元数据。
可选的,所述装置还包括应用于所述第一控制器的发送模块;
所述检测模块,还用于检测所述第二控制器是否恢复,如果恢复,触发所述发送模块;
所述发送模块,用于将所述扫描模块得到的所述第二控制器管理下的存储设备的元数据发送至所述第二控制器;
所述装置还包括应用于所述第二控制器的接收模块和更新模块,其中,
所述接收模块,用于接收所述发送模块发送的元数据;
所述更新模块,用于利用所述接收模块接收到的元数据,对所述第二控制器中存储的元数据进行更新。
可选的,所述检测模块,还可以用于:
定期向所述第二控制器发送探测信息,并判断是否在发送所述探测信息后的预设时间段内接收到所述第二控制器的反馈信息;如果接收到,表示所述第二控制器恢复。
为达到上述目的,本发明实施例还提供一种分布式存储系统,其特征在于,包括:至少一台双控存储服务器,所述双控存储服务器包含两个控制器:第一控制器和第二控制器;其中,
所述第一控制器,用于检测到所述第二控制器异常后,确定所述第二控制器管理下的存储设备;扫描所确定的存储设备中的数据,得到所述存储设备的元数据,并对所述存储设备进行管理。
可选的,所述系统中包括:管理服务器和多台存储服务器,所述多台存储服务器中包含至少一台双控存储服务器;其中,
所述管理服务器,用于接收待存储数据;将所述待存储数据进行切分,得到多个数据块;判断所述系统中的存储服务器的数量是否小于所述数据块的数量;如果小于,在双控存储服务器中选择目标双控存储服务器,将每台目标双控存储服务器确定为两台存储服务器,将所述多个数据块分别存储至每台存储服务器中。
可选的,所述管理服务器,还可以用于:
在判定所述系统中的存储服务器的数量小于所述数据块的数量的情况下,计算所述存储服务器的数量与所述数据块的数量的差值;
在双控存储服务器中选择与所述差值数量相等的目标双控存储服务器。
可选的,所述双控存储服务器,还用于将所述两个控制器与存储设备的对应关系进行展示,所述对应关系包含所述第一控制器与其管理下的存储设备的对应关系、及所述第二控制器与其管理下的存储设备的对应关系;
所述管理服务器,还可以用于:
接收用户设备发送的数据存储指令,所述数据存储指令中携带有存储数据的目标存储设备信息,所述目标存储设备信息为所述用户设备根据所述双控存储服务器所展示的所述两个控制器与存储设备的对应关系确定的;
根据所述目标存储设备信息,为所述数据存储指令对应的待存储数据分配条带,并将所述条带发送给所述双控存储服务器;
所述双控存储服务器,还用于根据所述条带,对所述数据存储指令对应的待存储数据进行存储。
为达到上述目的,本发明实施例还提供一种双控存储服务器,包括两个控制器:第一控制器和第二控制器;
所述第一控制器,用于检测到第二控制器异常后确定所述第二控制器管理下的存储设备;扫描所确定的存储设备中的数据,得到所述存储设备的元数据;在第一控制器接收到数据读取指令、且判定所述数据读取指令指向的待读取数据存储于所确定的存储设备中的情况下,第一控制器利用得到的元数据,在所确定的存储设备中,读取所述数据读取指令指向的待读取数据。
应用本发明实施例,在双控存储服务器中,如果一个控制器出现异常,另一个控制器确定异常控制器管理下的存储设备,该另一个控制器扫描所确定的存储设备中的数据,得到存储设备的元数据,并利用该元数据读取所确定的存储设备中存储的数据;可见,本方案中,如果一个控制器出现异常,另一个控制器会接替异常控制器对外提供服务,提高了双控存储服务器存储数据的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种双控存储服务器应用场景示意图;
图2为本发明实施例提供的一种数据处理方法的流程示意图;
图3为本发明实施例提供的一种数据处理装置的结构示意图;
图4为本发明实施例提供的一种分布式存储系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决上述技术问题,本发明实施例提供了一种数据处理方法、装置及分布式存储系统。该方法及装置可以应用于分布式存储系统中的双控存储服务器,双控存储服务器可以如图1中所示,包含两个控制器,每个控制器对多个存储设备进行管理。为了方便描述,将其中一个控制器称为第一控制器,将另一个控制器称为第二控制器。
下面首先对本发明实施例提供的一种数据处理方法进行详细说明。
图2为本发明实施例提供的一种数据处理方法的流程示意图,包括:
S201:第一控制器检测到第二控制器异常后,第一控制器确定第二控制器管理下的存储设备。
S202:第一控制器扫描所确定的存储设备中的数据,得到该存储设备的元数据。
S203:在第一控制器接收到数据读取指令、且判定该数据读取指令指向的待读取数据存储于所确定的存储设备中的情况下,第一控制器利用得到的元数据,在所确定的存储设备中,读取该数据读取指令指向的待读取数据。
应用本发明图2实施例,在双控存储服务器中,如果一个控制器出现异常,另一个控制器确定异常控制器管理下的存储设备,该另一个控制器扫描所确定的存储设备中的数据,得到存储设备的元数据,并利用该元数据读取所确定的存储设备中存储的数据;可见,本方案中,如果一个控制器出现异常,另一个控制器会接替异常控制器对外提供服务,提高了双控存储服务器存储数据的稳定性。
下面对图2所示实施例进行详细说明:
S201:第一控制器检测到第二控制器异常后,第一控制器确定第二控制器管理下的存储设备。
作为一种实施方式,第一控制器可以定期向第二控制器发送探测信息,并判断是否在发送探测信息后的预设时间段内接收到所述第二控制器的反馈信息;如果未接收到,表示所述第二控制器异常。
举例来说,第一控制器与第二控制器可以建立心跳连接,两个控制器可以定期向对方发送探测信息,如果在预设时间段内接收到对方的反馈信息,表示对方心跳正常,如果在预设时间段内接收到对方的反馈信息,表示对方出现异常。
在本实施例中,假设第二控制器出现异常,可以理解,如果第一控制器出现异常,处理方式类似,不再赘述。
本实施例中的存储设备可以为磁盘、SSD(Solid State Drives,固态硬盘)、NAS(Network Attached Storage,网络附属存储)设备、iSCSI(Internet Small ComputerSystem Interface,小型计算机系统接口)设备、FC SAN(Storage Area Network,存储区域网络)设备、等各种用于存储数据的设备,具体不做限定。
本领域技术人员可以理解,存储服务器可以对存储设备进行管理,这里的“管理”可以包括:存储服务器在存储设备中写入数据,并在存储服务器中存储所写入数据的元数据;存储服务器根据存储的元数据,读取存储设备中的数据;或者,还可以包括存储服务器定期对存储设备中的数据进行清理等等,具体不做限定。
作为一种实施方式,第一控制器可以管理奇数槽位的存储设备,第二控制器可以管理偶数槽位的存储设备,这种情况下,第一控制器可以将偶数槽位的存储设备确定为第二控制器管理下的存储设备。或者,第一控制器与第二控制器也可以根据其他方式划分自身管理的存储设备,当第二控制器异常后,第一控制器可以根据该划分方式,确定第二控制器管理下的存储设备。
S202:第一控制器扫描所确定的存储设备中的数据,得到该存储设备的元数据。
元数据,即为描述数据的数据(data about data),主要是描述数据属性的相关信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。对于利用纠删码策略存储的数据来说,通常需要记录该数据的条带信息,该条带信息即为该数据的元数据。
纠删码(erasure coding,EC)是一种数据保护方法,纠删码策略可以用n=k+m来表示,其中,k表示原始数据块份数,m表示冗余数据块份数,n表示总的数据块份数。具体的,可以将待存储数据分割成k个原始数据块,基于这k个原始数据块进行扩展、编码,得到m个冗余数据块;将这k个原始数据块和m个冗余数据块分别进行存储;这样,如果某个数据块丢失,则可以根据未丢失的数据块对丢失的数据块进行恢复。
举例来说,假设利用纠删码策略4+1对数据A进行存储,先分配条带:
{<OSD_1,wwn_1>,<OSD_2,wwn_2>,<OSD_3,wwn_3>,<OSD_4,wwn_4>,<OSD_5,wwn_5>},其中,OSD为存储服务器,OSD_1、OSD_2等为存储服务器标识,wwn为存储设备,wwn_1、wwn_2等可以为存储设备标识。
根据该纠删码策略4+1,对数据A进行切片及冗余处理,得到原始数据块及冗余数据块。条带中的每个数据块对应一个四元组<OSD,wwn,key,value>,其中,key表示数据块的键,value表示数据块的值或内容。
记录数据A对应的条带信息为:
{<OSD_1,wwn_1,key_1,value_1>,<OSD_2,wwn_2,key_2,value_2>,<OSD_3,wwn_3,key_3,value_3>,<OSD_4,wwn_4,key_4,value_4>,<OSD_5,wwn_5,key_5,value_5>}。
在一些实施方式中,记录的条带信息中可以不包括存储服务器标识,这种情况下,记录的条带信息也可以为:
{<wwn_1,key_1,value_1>,<wwn_2,key_2,value_2>,<wwn_3,key_3,value_3>,<wwn_4,key_4,value_4>,<wwn_5,key_5,value_5>}。
或者,元数据中除包含条带信息外,还可以包含完整数据信息,完整数据信息表示一份完整的数据对应了哪几份条带信息。比如,一份较大的数据B,将数据B分成了三份数据B1、B2和B3,B1、B2和B3分别对应一份条带信息;这种情况下,可以针对数据B保存一份完整数据信息,该完整数据信息表示数据B对应了三份条带信息。
可以通过扫描存储设备中存储的数据,得到数据的元数据。可以理解,扫描存储设备中的数据后,可以获取存储设备标识、存储服务器标识、数据块的key、value,这样,便可以组合得到数据的条带信息,条带信息即为元数据。
或者,上述例子中,将一份数据B分成了三份数据B1、B2和B3,B1、B2和B3分别对应一份条带信息,存储这三份数据时,B1、B2和B3中均可以携带一数据标识,表示这三份数据属于同一份数据,这样,便可以组合得到该完整数据信息,完整数据信息也为元数据。
第一控制器确定出第二控制器管理下的存储设备后,可以通过扫描存储设备中的数据,得到存储设备中数据的元数据,或者简称为存储设备的元数据。
作为一种实施方式,第一控制器可以在执行S202之前,先判断是否从第二控制器中获取到所述第二控制器中的元数据;如果未获取到,第一控制器再执行S202。
第二控制器出现异常有多种情况,有的异常情况下,第一控制器并不能直接得到第二控制器中的元数据,有的异常情况下,第一控制器可以直接得到第二控制器中的元数据。因此,第一控制器可以先判断是否能够从第二控制器中得到元数据,如果能,则直接复制第二控制器中的元数据,如果不能,再扫描所确定的存储设备中的数据,得到元数据。
S203:在第一控制器接收到数据读取指令、且判定该数据读取指令指向的待读取数据存储于所确定的存储设备中的情况下,第一控制器利用得到的元数据,在所确定的存储设备中,读取该数据读取指令指向的待读取数据。
延续上述例子,将一份数据B分成了三份数据B1、B2和B3,B1、B2和B3分别存储在第一控制器确定出的存储设备中,第一控制器得到数据B的元数据包括:B1、B2和B3对应的三份条带信息,以及数据B的完整数据信息。
第一控制器接收到用户发送的读取数据B的指令,第一控制器确定数据B所在的存储设备,利用上述数据B的元数据,分别读取得到B1、B2、B3,将读取到的B1、B2、B3组合成数据B反馈给用户。
在本实施例中,第一控制器确定第二控制器管理下的存储设备后,第一控制器可以接替第二控制器对所确定的存储设备进行管理。作为一种实施方式,这里的“管理”除S303中的读取数据外,还可以包括:
在第一控制器接收到数据存储指令、且判定所述数据存储指令对应的存储设备为所确定的存储设备的情况下,第一控制器在所确定的存储设备中,存储所述数据存储指令对应的待存储数据。
在本实施方式中,第一控制器在这些存储设备中写入数据后,可以在第一控制器中存储所写入数据的元数据;根据扫描得到的元数据或者新存储的元数据,读取这些存储设备中的数据。
另外,这里的“管理”还可以包括定期对存储设备中的数据进行清理等等,具体不做限定。
作为一种实施方式,每当控制器扫描一个存储设备中的数据得到该存储设备的元数据后,控制器可以针对该存储设备生成一份校验信息,控制器将该校验信息存储至该存储设备,并在自身控制器中存储该存储设备对应的校验信息;这样,每个控制器中存储有自身管理下的每个存储设备对应的校验信息。
举例来说,该校验信息可以为一个伪随机数,该伪随机数与该存储设备中存在的其他数值均不相同,控制器中可以对应存储该伪随机数及存储设备标识。
这种实施方式中,在S202之后,还可以包括:第一控制器针对所确定的每个存储设备,生成一份该存储设备对应的校验信息,将该存储设备对应的校验信息存储至该存储设备,并在所述第一控制器中存储该存储设备对应的校验信息。
这种实施方式中,如果第二控制器恢复正常,第二控制器可以针对自身管理下的每个存储设备,读取该存储设备中的校验信息;判断该存储设备中的校验信息与第二控制器中存储的该存储设备信息对应的校验信息是否相同;如果不同,从第一控制器中获取该存储设备的元数据。
可以理解,第二控制器出现异常后,第一控制器扫描第二控制器管理下的每个存储设备,生成每个存储设备的元数据,如果在扫描过程中,第二控制器恢复正常,则第一控制器只扫描了部分存储设备,只得到了部分存储设备的元数据,只生成了部分存储设备的校验信息,只有部分存储设备中的校验信息发生了变化。
这种情况下,第二控制器恢复正常后,第二控制器针对自身管理下的每个存储设备,读取该存储设备中的校验信息,判断该存储设备中的校验信息与第二控制器中存储的校验信息是否相同:如果相同,表示第一控制器并未得到该存储设备的元数据,或者说,并未得到该存储设备的完整元数据,并未生成该存储设备的校验信息;如果不同,表示第一控制器已经得到该存储设备的元数据,已经生成了该存储设备的校验信息。
在上述判断结果为相同的情况下,第二控制器可以直接接替第一控制器对该存储设备进行管理;在上述判断结果为不同的情况下,第二控制器可以从第一控制器中获取该存储设备的元数据,然后接替第一控制器对该存储设备进行管理。这样,第二控制器不需要扫描存储设备中的数据,不需要重新生成元数据,减少了恢复耗时,提高了恢复效率。
或者,作为另一种实施方式,第一控制器检测到第二控制器恢复后,可以将得到的第二控制器管理下的存储设备的元数据发送至第二控制器。
如上所述,两个控制器之间可以定期发送探测信息,第一控制器在检测到第二控制器异常后,仍可以定期向第二控制器发送探测信息,并判断是否在发送探测信息后的预设时间段内接收到第二控制器的反馈信息;如果接收到,表示第二控制器恢复。这种情况下,第一控制器将得到的第二控制器管理下的存储设备的元数据发送至第二控制器。
第二控制器接收到该元数据后,利用所接收到的元数据,对第二控制器中存储的元数据进行更新。具体的,该元数据中可以携带存储设备标识,第二控制器根据该存储设备标识,将接收到的元数据替换第二控制器中存储的元数据。
举例来说,假设第二控制器对wwn_1—wwn_10这10个存储设备进行管理,第二控制器异常后,第一控制器按照wwn_1—wwn_10的顺序依次对这些存储设备进行扫描,当对第5个存储设备wwn_5扫描完成得到wwn_5的元数据后,检测到第二控制器恢复。第一控制器将扫描得到的5个存储设备的元数据发送至第二控制器。
第二控制器接收到的元数据携带的存储设备标识包括:wwn_1、wwn_2、wwn_3、wwn_4、wwn_5,表示该元数据为这5个存储设备的元数据。而第二控制器中存储有wwn_1—wwn_10这10个存储设备的元数据,这种情况下,第二控制器将接收到的5个存储设备的元数据替换自身存储的wwn_1—wwn_5这5个存储设备的元数据。
这样,第二控制器不需要扫描存储设备中的数据,不需要重新生成元数据,减少了恢复耗时,提高了恢复效率。
与上述方法实施例相对应,本发明实施例还提供了一种数据处理装置,如图3所示,应用于分布式存储系统中的双控存储服务器,所述双控存储服务器包含两个控制器:第一控制器100和第二控制器200,所述装置包括应用于第一控制器100的检测模块110、确定模块120、扫描模块130和读取模块140,其中,
检测模块110,用于检测所述第二控制器是否异常,如果异常,触发确定模块120;
确定模块120,用于确定所述第二控制器管理下的存储设备;
扫描模块130,用于扫描确定模块120确定的存储设备中的数据,得到所述存储设备的元数据;
读取模块140,用于在接收到数据读取指令、且判定所述数据读取指令指向的待读取数据存储于确定模块120确定的存储设备中的情况下,利用扫描模块130得到的元数据,在所确定的存储设备中,读取所述数据读取指令指向的待读取数据。
作为一种实施方式,所述装置还包括应用于所述第一控制器的存储模块(图中未示出),
所述存储模块,用于在接收到数据存储指令、且判定所述数据存储指令对应的存储设备为所述确定模块确定的存储设备的情况下,在所确定的存储设备中,存储所述数据存储指令对应的待存储数据。
作为一种实施方式,检测模块110,具体可以用于:
定期向所述第二控制器发送探测信息,并判断是否在发送所述探测信息后的预设时间段内接收到所述第二控制器的反馈信息;如果未接收到,表示所述第二控制器异常。
作为一种实施方式,所述装置还包括应用于所述第一控制器的判断模块(图中未示出),
所述判断模块,用于判断所述第一控制器是否从所述第二控制器中获取到所述第二控制器中的元数据;如果未获取到,触发扫描模块130。
作为一种实施方式,所述第二控制器中存储有自身管理下的每个存储设备对应的校验信息;
所述装置还包括应用于所述第一控制器的生成模块和存储模块(图中未示出),其中,
所述生成模块,用于针对所述确定模块确定的每个存储设备,生成一份该存储设备对应的校验信息;
所述存储模块,用于将所述生成模块生成的该存储设备对应的校验信息存储至该存储设备,并在所述第一控制器中存储该存储设备对应的校验信息;
所述装置还包括应用于所述第二控制器的读取模块、判断模块和获取模块(图中未示出),其中,
所述读取模块,用于在所述第二控制器恢复后,针对所述第二控制器管理下的每个存储设备,读取该存储设备中的校验信息;
所述判断模块,用于判断该存储设备中的校验信息与所述第二控制器中存储的该存储设备信息对应的校验信息是否相同;如果不同,触发所述获取模块;
所述获取模块,用于从所述第一控制器中获取该存储设备的元数据。
作为一种实施方式,所述装置还可以包括应用于所述第一控制器的发送模块(图中未示出);
检测模块110,还可以用于检测所述第二控制器是否恢复,如果恢复,触发所述发送模块;
所述发送模块,用于将所述扫描模块得到的所述第二控制器管理下的存储设备的元数据发送至所述第二控制器;
所述装置还包括应用于所述第二控制器的接收模块和更新模块(图中未示出),其中,
所述接收模块,用于接收所述发送模块发送的元数据;
所述更新模块,用于利用所述接收模块接收到的元数据,对所述第二控制器中存储的元数据进行更新。
作为一种实施方式,检测模块110,还可以用于:
定期向所述第二控制器发送探测信息,并判断是否在发送所述探测信息后的预设时间段内接收到所述第二控制器的反馈信息;如果接收到,表示所述第二控制器恢复。
在本发明实施例提供的数据处理装置中,第一控制器100与第二控制器200中包含的模块可以是相同的,上述实施例中,仅以第二控制器出现异常为例进行说明,如果第一控制器出现异常,各模块执行的步骤类似,不再赘述。
本发明实施例还提供了一种分布式存储系统,包括:至少一台双控存储服务器,所述双控存储服务器包含两个控制器:第一控制器和第二控制器;其中,
所述第一控制器,用于检测到所述第二控制器异常后,确定所述第二控制器管理下的存储设备;扫描所确定的存储设备中的数据,得到所述存储设备的元数据,并对所述存储设备进行管理。
本实施例所示系统中的双控存储服务器可以执行上述任一种数据处理方法。
作为一种实施方式,分布式存储系统可以如图4所示,包括:管理服务器和多台存储服务器,所述多台存储服务器中包含至少一台双控存储服务器;其中,
所述管理服务器,用于接收待存储数据;将所述待存储数据进行切分,得到多个数据块;判断所述系统中的存储服务器的数量是否小于所述数据块的数量;如果小于,在双控存储服务器中选择目标双控存储服务器,将每台目标双控存储服务器确定为两台存储服务器,将所述多个数据块分别存储至每台存储服务器中。
举例来说,如果利用纠删码策略存储数据,管理服务器对待存储数据进行切分及冗余处理。假设利用纠删码策略4+1对数据A进行存储,管理服务器将数据A进行切分及冗余处理,得到5个数据块。
假设分布式存储系统中包含8台存储服务器,存储服务器的数量不小于数据块的数量,这种情况下,管理服务器从这8台存储服务器中选择5台存储服务器,将这5个数据块发送至这5台存储服务器进行存储,每台存储服务器存储一个数据块。
假设分布式存储系统中包含4台存储服务器,存储服务器的数量小于数据块的数量,假设这4台存储服务器中包含一台双控存储服务器,这种情况下,管理服务器将这一台双控存储服务器确定为两台存储服务器,这样系统中存储服务器的数量变为5,管理服务器将这5个数据块发送至这5台存储服务器进行存储,每台存储服务器存储一个数据块。
作为一种实施方式,管理服务器在判定所述系统中的存储服务器的数量小于所述数据块的数量的情况下,计算所述存储服务器的数量与所述数据块的数量的差值;在双控存储服务器中选择与所述差值数量相等的目标双控存储服务器。
再举一例,假设分布式存储系统中包含4台存储服务器,存储服务器的数量小于数据块的数量,并且差值为1,假设这4台存储服务器中包含三台双控存储服务器,这种情况下,管理服务器在这三台双控存储服务器中选择一台目标双控存储服务器,将这一台目标双控存储服务器确定为两台存储服务器,这样系统中存储服务器的数量变为5,管理服务器将这5个数据块发送至这5台存储服务器进行存储,每台存储服务器存储一个数据块。
也就是说,如果系统中的存储服务器的数量大于等于数据块的数量,管理服务器将双控存储服务器作为一台存储服务器;如果系统中的存储服务器的数量小于数据块的数量,管理服务器将双控存储服务器作为两台存储服务器。另外,管理服务器可以根据系统中存储服务器的数量与数据块数量的差值,将部分双控存储服务器作为两台存储服务器。这样,可以均衡利用存储资源。
作为一种实施方式,所述双控存储服务器,还可以用于将所述两个控制器与存储设备的对应关系进行展示,所述对应关系包含所述第一控制器与其管理下的存储设备的对应关系、及所述第二控制器与其管理下的存储设备的对应关系;
所述管理服务器,还可以用于:
接收用户设备发送的数据存储指令,所述数据存储指令中携带有存储数据的目标存储设备信息,所述目标存储设备信息为所述用户设备根据所述双控存储服务器所展示的所述两个控制器与存储设备的对应关系确定的;
根据所述目标存储设备信息,为所述数据存储指令对应的待存储数据分配条带,并将所述条带发送给所述双控存储服务器;
所述双控存储服务器,还用于根据所述条带,对所述数据存储指令对应的待存储数据进行存储。
在本实施方式中,双控存储服务器将两个控制器与其管理下的存储设备对用户进行透明展示,用户可以根据展示的内容,选择存储数据的存储设备。可见,这种实施方式实现了信息的透明化,可以使用户根据自身需要,选择控制器管理下的存储设备。
本发明实施例还提供一种双控存储服务器,如图1中所示,包括两个控制器:第一控制器和第二控制器;
所述第一控制器,用于检测到第二控制器异常后确定所述第二控制器管理下的存储设备;扫描所确定的存储设备中的数据,得到所述存储设备的元数据;在第一控制器接收到数据读取指令、且判定所述数据读取指令指向的待读取数据存储于所确定的存储设备中的情况下,第一控制器利用得到的元数据,在所确定的存储设备中,读取所述数据读取指令指向的待读取数据。
本实施例中的双控存储服务器可以执行上述任一种数据处理方法。
应用本发明实施例,在双控存储服务器中,如果一个控制器出现异常,另一个控制器确定异常控制器管理下的存储设备,该另一个控制器扫描所确定的存储设备中的数据,得到存储设备的元数据,并利用该元数据读取所确定的存储设备中存储的数据;可见,本方案中,如果一个控制器出现异常,另一个控制器会接替异常控制器对外提供服务,提高了双控存储服务器存储数据的稳定性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据处理装置实施例、分布式存储系统实施例、双控存储服务器实施例而言,由于其基本相似于数据处理方法实施例,所以描述的比较简单,相关之处参见数据处理方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (19)

1.一种数据处理方法,其特征在于,应用于分布式存储系统中的双控存储服务器,所述双控存储服务器包含两个控制器:第一控制器和第二控制器,所述方法包括:
第一控制器检测到第二控制器异常后,第一控制器确定所述第二控制器管理下的存储设备;
第一控制器扫描所确定的存储设备中的数据,得到所述存储设备的元数据;
在第一控制器接收到数据读取指令、且判定所述数据读取指令指向的待读取数据存储于所确定的存储设备中的情况下,第一控制器利用得到的元数据,在所确定的存储设备中,读取所述数据读取指令指向的待读取数据。
2.根据权利要求1所述的方法,其特征在于,在所述第一控制器确定所述第二控制器管理下的存储设备之后,所述方法还包括:
在第一控制器接收到数据存储指令、且判定所述数据存储指令对应的存储设备为所确定的存储设备的情况下,第一控制器在所确定的存储设备中,存储所述数据存储指令对应的待存储数据。
3.根据权利要求1所述的方法,其特征在于,所述第一控制器检测到第二控制器异常,包括:
所述第一控制器定期向所述第二控制器发送探测信息,并判断是否在发送所述探测信息后的预设时间段内接收到所述第二控制器的反馈信息;如果未接收到,表示所述第二控制器异常。
4.根据权利要求1所述的方法,其特征在于,在所述第一控制器扫描所确定的存储设备中的数据,得到所述存储设备的元数据之前,还包括:
所述第一控制器判断是否从所述第二控制器中获取到所述第二控制器中的元数据;如果未获取到,所述第一控制器执行所述扫描所确定的存储设备中的数据,得到所述存储设备的元数据的步骤。
5.根据权利要求1所述的方法,其特征在于,所述第二控制器中存储有自身管理下的每个存储设备对应的校验信息;
在所述第一控制器扫描所确定的存储设备中的数据,得到所述存储设备的元数据之后,还包括:
所述第一控制器针对所确定的每个存储设备,生成一份该存储设备对应的校验信息,将该存储设备对应的校验信息存储至该存储设备,并在所述第一控制器中存储该存储设备对应的校验信息;
在所述第二控制器恢复后,所述方法还包括:
所述第二控制器针对所述第二控制器管理下的每个存储设备,读取该存储设备中的校验信息;判断该存储设备中的校验信息与所述第二控制器中存储的该存储设备信息对应的校验信息是否相同;如果不同,从所述第一控制器中获取该存储设备的元数据。
6.根据权利要求1所述的方法,其特征在于,在所述第一控制器扫描所确定的存储设备中的数据,得到所述存储设备的元数据之后,还包括:
所述第一控制器检测到所述第二控制器恢复后,将得到的所述第二控制器管理下的存储设备的元数据发送至所述第二控制器;
所述第二控制器接收所述第一控制器发送的元数据;利用所接收到的元数据,对所述第二控制器中存储的元数据进行更新。
7.根据权利要求6所述的方法,其特征在于,所述第一控制器检测到所述第二控制器恢复,包括:
所述第一控制器定期向所述第二控制器发送探测信息,并判断是否在发送所述探测信息后的预设时间段内接收到所述第二控制器的反馈信息;如果接收到,表示所述第二控制器恢复。
8.一种数据处理装置,其特征在于,应用于分布式存储系统中的双控存储服务器,所述双控存储服务器包含两个控制器:第一控制器和第二控制器,所述装置包括应用于所述第一控制器的检测模块、确定模块、扫描模块和读取模块,其中,
所述检测模块,用于检测所述第二控制器是否异常,如果异常,触发所述确定模块;
所述确定模块,用于确定所述第二控制器管理下的存储设备;
所述扫描模块,用于扫描所述确定模块确定的存储设备中的数据,得到所述存储设备的元数据;
所述读取模块,用于在接收到数据读取指令、且判定所述数据读取指令指向的待读取数据存储于所述确定模块确定的存储设备中的情况下,利用所述扫描模块得到的元数据,在所确定的存储设备中,读取所述数据读取指令指向的待读取数据。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括应用于所述第一控制器的存储模块,
所述存储模块,用于在接收到数据存储指令、且判定所述数据存储指令对应的存储设备为所述确定模块确定的存储设备的情况下,在所确定的存储设备中,存储所述数据存储指令对应的待存储数据。
10.根据权利要求8所述的装置,其特征在于,所述检测模块,具体用于:
定期向所述第二控制器发送探测信息,并判断是否在发送所述探测信息后的预设时间段内接收到所述第二控制器的反馈信息;如果未接收到,表示所述第二控制器异常。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括应用于所述第一控制器的判断模块,
所述判断模块,用于判断所述第一控制器是否从所述第二控制器中获取到所述第二控制器中的元数据;如果未获取到,触发所述扫描模块。
12.根据权利要求8所述的装置,其特征在于,所述第二控制器中存储有自身管理下的每个存储设备对应的校验信息;
所述装置还包括应用于所述第一控制器的生成模块和存储模块,其中,
所述生成模块,用于针对所述确定模块确定的每个存储设备,生成一份该存储设备对应的校验信息;
所述存储模块,用于将所述生成模块生成的该存储设备对应的校验信息存储至该存储设备,并在所述第一控制器中存储该存储设备对应的校验信息;
所述装置还包括应用于所述第二控制器的读取模块、判断模块和获取模块,其中,
所述读取模块,用于在所述第二控制器恢复后,针对所述第二控制器管理下的每个存储设备,读取该存储设备中的校验信息;
所述判断模块,用于判断该存储设备中的校验信息与所述第二控制器中存储的该存储设备信息对应的校验信息是否相同;如果不同,触发所述获取模块;
所述获取模块,用于从所述第一控制器中获取该存储设备的元数据。
13.根据权利要求8所述的装置,其特征在于,所述装置还包括应用于所述第一控制器的发送模块;
所述检测模块,还用于检测所述第二控制器是否恢复,如果恢复,触发所述发送模块;
所述发送模块,用于将所述扫描模块得到的所述第二控制器管理下的存储设备的元数据发送至所述第二控制器;
所述装置还包括应用于所述第二控制器的接收模块和更新模块,其中,
所述接收模块,用于接收所述发送模块发送的元数据;
所述更新模块,用于利用所述接收模块接收到的元数据,对所述第二控制器中存储的元数据进行更新。
14.根据权利要求13所述的装置,其特征在于,所述检测模块,还用于:
定期向所述第二控制器发送探测信息,并判断是否在发送所述探测信息后的预设时间段内接收到所述第二控制器的反馈信息;如果接收到,表示所述第二控制器恢复。
15.一种分布式存储系统,其特征在于,包括:至少一台双控存储服务器,所述双控存储服务器包含两个控制器:第一控制器和第二控制器;其中,
所述第一控制器,用于检测到所述第二控制器异常后,确定所述第二控制器管理下的存储设备;扫描所确定的存储设备中的数据,得到所述存储设备的元数据,并对所述存储设备进行管理。
16.根据权利要求15所述的系统,其特征在于,所述系统中包括:管理服务器和多台存储服务器,所述多台存储服务器中包含至少一台双控存储服务器;其中,
所述管理服务器,用于接收待存储数据;将所述待存储数据进行切分,得到多个数据块;判断所述系统中的存储服务器的数量是否小于所述数据块的数量;如果小于,在双控存储服务器中选择目标双控存储服务器,将每台目标双控存储服务器确定为两台存储服务器,将所述多个数据块分别存储至每台存储服务器中。
17.根据权利要求16所述的系统,其特征在于,所述管理服务器,还用于:
在判定所述系统中的存储服务器的数量小于所述数据块的数量的情况下,计算所述存储服务器的数量与所述数据块的数量的差值;
在双控存储服务器中选择与所述差值数量相等的目标双控存储服务器。
18.根据权利要求16所述的系统,其特征在于,
所述双控存储服务器,还用于将所述两个控制器与存储设备的对应关系进行展示,所述对应关系包含所述第一控制器与其管理下的存储设备的对应关系、及所述第二控制器与其管理下的存储设备的对应关系;
所述管理服务器,还用于:
接收用户设备发送的数据存储指令,所述数据存储指令中携带有存储数据的目标存储设备信息,所述目标存储设备信息为所述用户设备根据所述双控存储服务器所展示的所述两个控制器与存储设备的对应关系确定的;
根据所述目标存储设备信息,为所述数据存储指令对应的待存储数据分配条带,并将所述条带发送给所述双控存储服务器;
所述双控存储服务器,还用于根据所述条带,对所述数据存储指令对应的待存储数据进行存储。
19.一种双控存储服务器,其特征在于,包括两个控制器:第一控制器和第二控制器;
所述第一控制器,用于检测到第二控制器异常后确定所述第二控制器管理下的存储设备;扫描所确定的存储设备中的数据,得到所述存储设备的元数据;在第一控制器接收到数据读取指令、且判定所述数据读取指令指向的待读取数据存储于所确定的存储设备中的情况下,第一控制器利用得到的元数据,在所确定的存储设备中,读取所述数据读取指令指向的待读取数据。
CN201710950977.3A 2017-10-13 2017-10-13 一种数据处理方法、装置及分布式存储系统 Active CN109672544B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201710950977.3A CN109672544B (zh) 2017-10-13 2017-10-13 一种数据处理方法、装置及分布式存储系统
PCT/CN2018/098655 WO2019072004A1 (zh) 2017-10-13 2018-08-03 一种数据处理方法、装置及分布式存储系统
US16/755,700 US11429313B2 (en) 2017-10-13 2018-08-03 Data processing method, device and distributed storage system
EP18866806.5A EP3697024B1 (en) 2017-10-13 2018-08-03 Data processing method, device and distributed storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710950977.3A CN109672544B (zh) 2017-10-13 2017-10-13 一种数据处理方法、装置及分布式存储系统

Publications (2)

Publication Number Publication Date
CN109672544A true CN109672544A (zh) 2019-04-23
CN109672544B CN109672544B (zh) 2020-12-11

Family

ID=66101289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710950977.3A Active CN109672544B (zh) 2017-10-13 2017-10-13 一种数据处理方法、装置及分布式存储系统

Country Status (4)

Country Link
US (1) US11429313B2 (zh)
EP (1) EP3697024B1 (zh)
CN (1) CN109672544B (zh)
WO (1) WO2019072004A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181705A (zh) * 2020-10-12 2021-01-05 上海前瞻创新研究院有限公司 基于多控制器的管理存储控制方法及存储设备
CN112751693A (zh) * 2019-10-31 2021-05-04 北京金山云网络技术有限公司 分布式存储系统的数据处理方法、装置及电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7266067B2 (ja) * 2021-06-25 2023-04-27 株式会社日立製作所 ストレージシステム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101594383A (zh) * 2009-07-09 2009-12-02 浪潮电子信息产业股份有限公司 一种双控制器存储系统的服务和控制器状态监控方法
US20140258608A1 (en) * 2013-03-05 2014-09-11 Dot Hill Systems Corporation Storage Controller Cache Synchronization Method and Apparatus
CN104272274A (zh) * 2013-12-31 2015-01-07 华为技术有限公司 一种分布式文件存储系统中的数据处理方法及设备
US20150052385A1 (en) * 2013-08-15 2015-02-19 International Business Machines Corporation Implementing enhanced data caching and takeover of non-owned storage devices in dual storage device controller configuration with data in write cache

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774643A (en) 1995-10-13 1998-06-30 Digital Equipment Corporation Enhanced raid write hole protection and recovery
US6510500B2 (en) * 2001-03-09 2003-01-21 International Business Machines Corporation System and method for minimizing message transactions for fault-tolerant snapshots in a dual-controller environment
CN102081584A (zh) 2009-11-30 2011-06-01 英业达股份有限公司 双控制器存储系统的缓存镜像系统及方法
US20140173280A1 (en) * 2011-10-25 2014-06-19 Hewlett-Packard Development Company, L.P. Device authentication
US20140074899A1 (en) * 2012-02-28 2014-03-13 Ben Zion Halevy Methods and system for efficient lifecycle management of storage controller
US8832372B2 (en) * 2012-05-24 2014-09-09 Netapp, Inc. Network storage systems having clustered raids for improved redundancy and load balancing
US9830757B2 (en) * 2015-09-30 2017-11-28 Faraday & Future Inc. System and method for operating vehicle using mobile device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101594383A (zh) * 2009-07-09 2009-12-02 浪潮电子信息产业股份有限公司 一种双控制器存储系统的服务和控制器状态监控方法
US20140258608A1 (en) * 2013-03-05 2014-09-11 Dot Hill Systems Corporation Storage Controller Cache Synchronization Method and Apparatus
US20150052385A1 (en) * 2013-08-15 2015-02-19 International Business Machines Corporation Implementing enhanced data caching and takeover of non-owned storage devices in dual storage device controller configuration with data in write cache
CN104272274A (zh) * 2013-12-31 2015-01-07 华为技术有限公司 一种分布式文件存储系统中的数据处理方法及设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112751693A (zh) * 2019-10-31 2021-05-04 北京金山云网络技术有限公司 分布式存储系统的数据处理方法、装置及电子设备
US11966305B2 (en) 2019-10-31 2024-04-23 Beijing Kingsoft Cloud Network Technology Co., Ltd. Data processing method for distributed storage system, apparatus, and electronic device
CN112181705A (zh) * 2020-10-12 2021-01-05 上海前瞻创新研究院有限公司 基于多控制器的管理存储控制方法及存储设备
CN112181705B (zh) * 2020-10-12 2023-02-03 上海前瞻创新研究院有限公司 基于多控制器的管理存储控制方法及存储设备

Also Published As

Publication number Publication date
US11429313B2 (en) 2022-08-30
WO2019072004A1 (zh) 2019-04-18
EP3697024A4 (en) 2020-12-16
EP3697024A1 (en) 2020-08-19
CN109672544B (zh) 2020-12-11
US20200293229A1 (en) 2020-09-17
EP3697024B1 (en) 2023-06-07

Similar Documents

Publication Publication Date Title
EP3101530B1 (en) Data distribution method, data storage method, related apparatus, and system
US10437671B2 (en) Synchronizing replicated stored data
EP2787446B1 (en) Distributed storage method, device and system
US9229950B2 (en) Method and device for processing files of distributed file system
US7093069B2 (en) Integration of a RAID controller with a disk drive module
US9047306B1 (en) Method of writing data
US20170090824A1 (en) Layered queue based coordination of potentially destructive actions in a dispersed storage network memory
EP2908254A1 (en) Data redundancy implementation method and device
US7533291B2 (en) System and method for storing a data file backup
US20050091556A1 (en) Method of recovering data
US7284088B2 (en) Methods of reading and writing data
CN104272274A (zh) 一种分布式文件存储系统中的数据处理方法及设备
CN105468479B (zh) 一种磁盘阵列raid坏块处理方法及装置
CN109672544A (zh) 一种数据处理方法、装置及分布式存储系统
WO2005043531A2 (en) Methods of reading and writing data
CN103631666A (zh) 数据冗余容错的适配管理设备、服务设备、系统及方法
CN102999587A (zh) 用于故障转移的跨不同服务器的镜像数据库的布置
CN103535014A (zh) 一种网络存储系统、数据处理方法和客户端
CN105653396A (zh) 备份系统及其备份方法
KR100922584B1 (ko) 객체 기반 분산 공유 시스템 및 그의 방법
CN103530206B (zh) 一种数据恢复的方法和设备
CN109117292B (zh) 一种集群存储的方法和装置及集群存储系统
CN105550230B (zh) 分布式存储系统节点故障的侦测方法和装置
CN104536852A (zh) 数据恢复方法及装置
CN111381770B (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