CN109213420A - 数据存储方法、装置及系统 - Google Patents

数据存储方法、装置及系统 Download PDF

Info

Publication number
CN109213420A
CN109213420A CN201710515890.3A CN201710515890A CN109213420A CN 109213420 A CN109213420 A CN 109213420A CN 201710515890 A CN201710515890 A CN 201710515890A CN 109213420 A CN109213420 A CN 109213420A
Authority
CN
China
Prior art keywords
data
storage equipment
strip
solid state
state hard
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.)
Pending
Application number
CN201710515890.3A
Other languages
English (en)
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
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 CN201710515890.3A priority Critical patent/CN109213420A/zh
Priority to PCT/CN2018/093419 priority patent/WO2019001521A1/zh
Publication of CN109213420A publication Critical patent/CN109213420A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • 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
    • 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/0656Data buffering 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/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation
    • 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

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 Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种数据存储方法、装置及系统,属于计算机技术领域。本方法应用于存储系统的第一存储设备中,该第一存储设备中包括多个固态硬盘,该第一存储设备接收客户端发送的数据,并对该数据进行虚拟化条带处理,得到多个条带数据,该客户端发送的数据为该客户端中写入的原始数据;该第一存储设备通过EC算法对该多个条带数据进行编码处理,得到EC条带数据,该EC条带数据包括多个条带数据和校验数据,该校验数据用于对该多个条带数据进行校验;该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至多个固态硬盘中。如此,当数据丢失时可以通过EC算法对EC条带数据进行恢复,从而保证了数据存储的完整性。

Description

数据存储方法、装置及系统
技术领域
本发明涉及计算机技术领域,特别涉及一种数据存储方法、装置及系统。
背景技术
随着计算机技术的快速发展,目前大部分均采用存储系统来实现数据存储。存储系统中主要包括有客户端和存储设备,其中,该客户端主要用于用户写入数据,该存储设备主要用于存储用户通过客户端写入的数据。
在实际实现时,该存储设备中一般包括有多个固态硬盘和多个磁盘,其中,固态硬盘具有较高的随机写入和读取性能,但存储容量较小,而磁盘的存储容量较大,但读写性能通常较差。目前,为了提高数据的读写性能,在数据存储过程中,存储设备一般先将客户端传递的用户写入的数据缓存至多个固态硬盘中,当该多个固态硬盘中任一固态磁盘缓存的数据达到一定容量时,再将该多个固态硬盘中缓存的数据存储到该多个磁盘中,从而实现数据的存储。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:当采用上述方式进行数据存储时,如果某固态硬盘出现异常,则缓存在该固态硬盘上的数据将会丢失,且丢失后的数据将无法找回。
发明内容
为了解决现有技术中固态硬盘异常导致数据丢失且无法找回的问题,本发明实施例提供了一种数据存储方法、装置及系统。所述技术方案如下:
第一方面,提供了一种数据存储方法,应用于存储系统的第一存储设备中,所述第一存储设备中包括多个固态硬盘,所述方法包括:
所述第一存储设备接收所述客户端发送的数据,并对所述数据进行虚拟化条带处理,得到多个条带数据,所述客户端发送的数据为所述客户端中写入的原始数据;
所述第一存储设备通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;
所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。
可选地,所述第一存储设备还包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:
如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
所述第一存储设备将所述副本数据存储至所述第一存储设备包括的多个磁盘中。
可选地,所述第一存储设备将所述副本数据存储至所述第一存储设备包括的多个磁盘中之后,还包括:
所述第一存储设备删除所述多个固态硬盘中缓存的所述多个条带数据和所述校验数据。
可选地,所述第一存储设备通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,包括:
所述第一存储设备基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量;
所述第一存储设备将所述编码向量包括的数据确定为所述EC条带数据。
可选地,所述方法还包括:
当所述多个固态硬盘中出现数据丢失情况时,所述第一存储设备从所述预设生成矩阵中确定目标行,所述目标行中的预设数据与所述多个条带数据组成的向量相乘后能够得到丢失的数据;
所述第一存储设备将所述预设生成矩阵中的目标行删除,得到目标生成矩阵;
所述第一存储设备将数据丢失后剩下的EC条带数据组成的向量与所述目标生成矩阵的逆矩阵相乘,以对所述EC条带数据进行恢复。
可选地,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:
如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
所述第一存储设备将所述副本数据发送给所述第二存储设备;
所述第二存储设备接收所述第一存储设备发送的副本数据,并将所接收的副本数据存储至所述第二存储设备包括的多个磁盘中。
第二方面,提供了一种数据存储方法,应用于存储系统中,所述存储系统包括客户端和第一存储设备,所述第一存储设备中包括多个固态硬盘,所述方法包括:
所述客户端对数据进行虚拟化条带处理,得到多个条带数据,所述数据为所述客户端中写入的原始数据;
所述客户端通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;
所述客户端将所述EC条带数据发送给所述第一存储设备,以使所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。
可选地,所述客户端通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,包括:
所述客户端基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量;
所述客户端将所述编码向量包括的数据确定为所述EC条带数据。
第三方面,提供了一种数据存储方法,应用于存储系统中,所述存储系统包括客户端和第一存储设备,所述第一存储设备中包括多个固态硬盘,所述方法包括:
所述第一存储设备接收所述客户端发送的EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验,所述多个条带数据由所述客户端对所述数据进行虚拟化条带处理后得到,所述数据为所述客户端中写入的原始数据;
所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。
可选地,所述第一存储设备还包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:
如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
所述第一存储设备将所述副本数据存储至所述第一存储设备包括的多个磁盘中。
可选地,所述第一存储设备将所述副本数据存储至所述多个磁盘中之后,还包括:
所述第一存储设备删除所述多个固态硬盘中缓存的所述多个条带数据和所述校验数据。
可选地,所述方法还包括:
当所述多个固态硬盘中出现数据丢失情况时,所述第一存储设备从所述预设生成矩阵中确定目标行,所述目标行中的预设数据与所述多个条带数据组成的向量相乘后能够得到丢失的数据;
所述第一存储设备将所述预设生成矩阵中的目标行删除,得到目标生成矩阵;
所述第一存储设备将数据丢失后剩下的EC条带数据组成的向量与所述目标生成矩阵的逆矩阵相乘,以对所述EC条带数据进行恢复。
可选地,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:
如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
所述第一存储设备将所述副本数据发送给所述第二存储设备;
所述第二存储设备接收所述第一存储设备发送的副本数据,并将所接收的副本数据存储至所述第二存储设备包括的多个磁盘中。
第四方面,提供了一种数据存储装置,部署于存储系统中的第一存储设备中,所述第一存储设备中包括多个固态硬盘,所述装置包括:
接收处理模块,用于接收所述客户端发送的数据,并对所述数据进行虚拟化条带处理,得到多个条带数据,所述客户端发送的数据为所述客户端中写入的原始数据;
编码处理模块,用于通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;
第一存储模块,用于将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。
可选地,所述第一存储设备还包括多个磁盘,所述装置还包括:
第一聚合模块,用于如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
第二存储模块,用于将所述副本数据存储至所述第一存储包括的多个磁盘中。
可选地,所述装置还包括:
第一删除模块,用于删除所述多个固态硬盘中缓存的所述多个条带数据和所述校验数据。
可选地,所述编码处理模块用于:
基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量;
将所述编码向量包括的数据确定为所述EC条带数据。
可选地,所述装置还包括:
确定模块,用于当所述多个固态硬盘中出现数据丢失情况时,从所述预设生成矩阵中确定目标行,所述目标行中的预设数据与所述多个条带数据组成的向量相乘后能够得到丢失的数据;
第二删除模块,用于将所述预设生成矩阵中的目标行删除,得到目标生成矩阵;
恢复模块,用于将数据丢失后剩下的EC条带数据组成的向量与所述目标生成矩阵的逆矩阵相乘,以对所述EC条带数据进行恢复。
可选地,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,所述装置还包括:
第二聚合模块,用于如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
发送模块,用于将所述副本数据发送给所述第二存储设备;所述第二存储设备接收所述发送模块发送的副本数据,并将所接收的副本数据存储至所述第二存储设备包括的多个磁盘中。
第五方面,提供了一种数据存储装置,所述装置部署于存储系统中的客户端中,所述存储系统还包括第一存储设备,所述第一存储设备中包括多个固态硬盘,所述装置包括:
条带处理模块,用于对数据进行虚拟化条带处理,得到多个条带数据,所述数据为所述客户端中写入的原始数据;
编码处理模块,用于通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;
发送模块,用于将所述EC条带数据发送给所述第一存储设备,以使所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。
可选地,所述编码处理模块用于:
基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量;
将所述编码向量包括的数据确定为所述EC条带数据。
第六方面,提供了一种数据存储装置,所述装置部署于所述存储系统中的第一存储设备中,所述第一存储设备中包括多个固态硬盘,所述装置包括:
接收模块,用于接收所述客户端发送的EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验,所述多个条带数据由所述客户端对所述数据进行虚拟化条带处理后得到,所述数据为所述客户端中写入的原始数据;
第一存储模块,用于将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。
可选地,所述第一存储设备还包括多个磁盘,所述装置还包括:
第一聚合模块,用于如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
第二存储模块,用于将所述副本数据存储至所述第一存储设备包括的多个磁盘中。
可选地,所述装置还包括:
第一删除模块,用于删除所述多个固态硬盘中缓存的所述多个条带数据和所述校验数据。
可选地,所述装置还包括:
确定模块,用于当所述多个固态硬盘中出现数据丢失情况时,从所述预设生成矩阵中确定目标行,所述目标行中的预设数据与所述多个条带数据组成的向量相乘后能够得到丢失的数据;
第二删除模块,用于将所述预设生成矩阵中的目标行删除,得到目标生成矩阵;
恢复模块,用于将数据丢失后剩下的EC条带数据组成的向量与所述目标生成矩阵的逆矩阵相乘,以对所述EC条带数据进行恢复。
所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,所述装置还包括:
第二聚合模块,用于如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
发送模块,用于将所述副本数据发送给所述第二存储设备;所述第二存储设备接收所述第一存储设备发送的副本数据,并将所接收的副本数据存储至所述第二存储设备包括的多个磁盘中。
第七方面,提供了一种存储系统,所述存储系统包括客户端和第一存储设备,所述第一存储设备中包括多个固态硬盘,其特征在于,所述方法包括:
所述客户端对数据进行虚拟化条带处理,得到多个条带数据,所述数据为所述客户端中写入的原始数据;
所述客户端通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;
所述客户端将所述EC条带数据发送给所述第一存储设备;
所述第一存储设备接收所述客户端发送的EC条带数据,并将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。
可选地,所述客户端通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,包括:
所述客户端基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量;
所述客户端将所述编码向量包括的数据确定为所述EC条带数据。
可选地,所述第一存储设备还包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:
如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
所述第一存储设备将所述副本数据存储至所述第一存储设备包括的多个磁盘中。
可选地,所述第一存储设备将所述副本数据存储至所述第一存储设备包括的多个磁盘中之后,还包括:
所述第一存储设备删除所述多个固态硬盘中缓存的所述多个条带数据和所述校验数据。
可选地,所述第一存储设备还用于:
当所述多个固态硬盘中出现数据丢失情况时,从所述预设生成矩阵中确定目标行,所述目标行中的预设数据与所述多个条带数据组成的向量相乘后能够得到丢失的数据;
将所述预设生成矩阵中的目标行删除,得到目标生成矩阵;
将数据丢失后剩下的EC条带数据组成的向量与所述目标生成矩阵的逆矩阵相乘,以对所述EC条带数据进行恢复。
可选地,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:
如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
所述第一存储设备将所述副本数据发送给所述第二存储设备;
所述第二存储设备接收所述第一存储设备发送的副本数据,并将所接收的副本数据存储至所述第二存储设备包括的多个磁盘中。
本发明实施例提供的技术方案带来的有益效果是:
在存储系统中,当第一存储设备接收到客户端发送的在该客户端中写入的数据时,对该数据依次进行虚拟化条带处理及编码处理后,得到包括多个条带数据和校验数据的EC条带数据。之后,该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至该多个固态硬盘中。如此,当数据丢失时可以通过EC算法对EC条带数据进行恢复,从而保证了数据存储的完整性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种存储系统的架构示意图。
图2A是根据一示例性实施例示出的一种数据存储方法的流程图。
图2B是图2A实施例涉及的一种EC算法的具体实现示意图。
图2C是图2A实施例涉及的另一种EC算法的具体实现示意图。
图2D是图2A实施例涉及的另一种EC算法的具体实现示意图。
图2E是图2A实施例涉及的另一种EC算法的具体实现示意图。
图2F是图2A实施例涉及的一种数据存储方式的示意图。
图3是根据另一示例性实施例示出的一种数据存储方法的流程图。
图4A是根据一示例性实施例示出的一种数据存储装置的结构示意图。
图4B是根据另一示例性实施例示出的一种数据存储装置的结构示意图。
图4C是根据另一示例性实施例示出的一种数据存储装置的结构示意图。
图4D是根据另一示例性实施例示出的一种数据存储装置的结构示意图。
图4E是根据另一示例性实施例示出的一种数据存储装置的结构示意图。
图5是根据另一示例性实施例示出的一种数据存储装置的结构示意图。
图6A是根据一示例性实施例示出的一种数据存储装置的结构示意图。
图6B是根据另一示例性实施例示出的一种数据存储装置的结构示意图。
图6C是根据另一示例性实施例示出的一种数据存储装置的结构示意图。
图6D是根据另一示例性实施例示出的一种数据存储装置的结构示意图。
图6E是根据另一示例性实施例示出的一种数据存储装置的结构示意图。
图7是根据一示例性实施例示出的一种第一存储设备的结构示意图。
图8是根据一示例性实施例示出的一种客户端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在对本发明实施例进行详细介绍之前,先对本发明实施例中涉及的名词进行简单介绍:
EC算法:即,(Erasure Code,纠删码)算法,是一种数据保护方法,该算法主要可以用于对数据进行冗余数据块扩展、编码等处理。
固态硬盘:即,(Solid State Drives,SSD),该固态硬盘一般采用固态电子存储芯片阵列制作而成,主要由控制单元和存储单元组成。其中,该存储单元包括但不限于FLASH(快闪)芯片、DRAM(Dynamic Random Access Memory,动态随机存取存储器)芯片。固态硬盘具有较高的随机写入和读写性能,但容量一般较小,且价格较为昂贵。通常情况下,该固态硬盘被用于分级存储的较高层,即作为缓存设备。
磁盘(Disk):通过磁片旋转和磁头移动等机械操作实现数据的读写,具有较大的存储容量,但由于受到磁片旋转和磁头移动等机械操作的限制,磁盘的读写性能较差。磁盘一般被用于分级存储的较低层,即作为数据存储的最终载体。一般情况下,可以采用副本方式进行数据存储。
分级存储:是指基于读写性能、业务连续性、存储安全性、数据保留策略以及硬件成本等因素,将数据进行分级存储,如,分级存储方式可以包括主盘存储、备份盘存储、归档盘存储、磁盘归档存储、光盘归档存储等。也就是说,分级存储是根据数据的重要性、访问频率、保留时间、容量、性能等指标,将数据采取不同的存储方式分别存储在不同性能的第一存储设备上。通过分级存储可以实现数据在固态硬盘和磁盘之间的自动迁移,具体地,第一存储设备可以根据数据被访问的频次实现数据的迁移,如,将被访问频次较少的数据从固态硬盘迁移至磁盘中,或者,将被访问频次较多的数据(可以称为热点数据)从磁盘迁移至固态硬盘中。
图1是根据一示例性实施例示出的一种存储系统的架构示意图,该存储系统中主要包括有客户端110和多个存储设备,该多个存储设备包括有第一存储设备120。其中,该客户端110可以通过有线网络或者无线网络与该第一存储设备120之间进行连接。
其中,该客户端110主要用于用户写入数据,该客户端110可以支持键盘输入,该键盘可以为虚拟键盘,也可以为实体键盘。在实际应用场景中,该客户端110可以安装在终端中,并通过该终端运行该客户端110。其中,该终端可以为诸如手机、平板电脑、计算机等之类的设备,本发明实施例对此不作限定。
需要说明的是,该客户端110也可以不安装在终端中,而是单独存在的一个实体设备,本发明实施例对此不做限定。
其中,该第一存储设备120主要用于接收客户端110发送的数据,并对该数据进行存储。该第一存储设备120中包括多个固态硬盘,在具体实现中,该第一存储设备120可以通过该多个固态实现数据缓存。
另外,在一种可能的实现方式中,该第一存储设备120还可能包括多个磁盘,在一些条件下,该第一存储设备120将该多个固态硬盘中缓存的数据存储至该多个磁盘中,具体实现如下文图2A或图3实施例所述。
在另一种可能的实现方式中,该多个存储设备还包括有第二存储设备130,该第二存储设备130中包括多个磁盘。也就是说,在实际实现中,该多个固态硬盘和该多个磁盘可能不在一个存储设备中,如,该多个固态硬盘属于第一存储设备120,该多个磁盘属于第二存储设备130。在该种情况下,下文所涉及的关于数据的处理实现过程由该第一存储设备120执行,之后,在一些条件下,该第一存储设备120将多个固态硬盘存储的数据发送给第二存储设备130,由该第二存储设备130通过该第二存储设备130包括多个磁盘存储该数据,具体实现如下文图2A或图3实施例所述。
在本发明实施例中,先对客户端110中写入的数据进行虚拟化条带处理、以及通过EC算法进行编码处理,得到EC条带数据,之后,再将该EC条带数据缓存至多个固态硬盘中。当该多个固态硬盘中缓存的数据满足一定的条件时,将该多个固态硬盘中缓存的数据转移至磁盘中进行存储。如此,由于采用了固态硬盘做中间缓存,所以提高了数据的读写性能,并且,由于通过EC算法进行编码处理,因此,当出现数据丢失情况下,可以基于该EC算法进行数据恢复,保证数据存储的可靠性。通常情况下,该种分层存储的方式被称为分布式存储。
进一步地,在具体实现中,该存储系统中还可以包括有MDS(Meta DataServer,元数据服务器)140,该元数据服务器140主要用于分配和管理数据的存储。实际上,该元数据服务器140相当于该存储系统的调度中心,即该元数据服务器140可以控制将数据具体存储到哪个或哪些固态硬盘或磁盘中。在具体实现中,该元数据服务器140可以监测第一存储设备120的存储状态,以及为客户端110分配存储固态硬盘等,其具体实现过程可以参见下文所述实施例。
需要说明的是,本发明实施例仅是以该存储系统中包括元数据服务器140为例进行说明。在另一实施例中,如果该存储系统中不包括元数据服务器140,则可以通过指定调度算法来控制数据的存储,其中,该指定调度算法可以运行在客户端上,也可以运行在第一存储设备上,本发明实施例对此不做过多介绍。
如前文所述,在本发明实施例中,需要对在客户端写入的原始数据进行虚拟化条带以及编码等一系列处理。在实际实现中,这一系列处理可以由第一存储设备来执行,也可以由客户端来执行。接下来,将通过如下图2A实施例和图3实施例分别介绍由第一存储设备及由客户端执行这一系列处理为例,对该数据存储方法进行详细介绍。
请参考图2A,这里以上述一系列处理由第一存储设备执行为例进行说明。该图2A是根据一示例性实施例示出的一种数据存储方法的流程图,本实施例可以通过图1所示的存储系统来实现,该数据存储方法可以包括如下几个步骤:
步骤201:客户端向元数据服务器发送存储请求。
在实际实现中,当客户端需要向第一存储设备存储数据时,可以向元数据服务器发送存储请求,该存储请求用于指示元数据服务器为该客户端分配用于存储数据的固态硬盘。进一步地,为了便于元数据服务器确定需要为该客户端分配几个固态硬盘,该存储请求中一般还可以携带需要存储的数据的份数,如此,该元数据服务器即可根据该份数来确定需要分配的固态硬盘的数量。
步骤202:该元数据服务器为该客户端分配固态硬盘。
通常情况下,由于元数据服务器能够获取到第一存储设备的存储空间大小,并且,该元数据服务器负责为客户端分配数据的存储位置,即该元数据服务器可以监测该第一存储设备中已占用了多少存储空间,以及剩余多少存储空间,所以,该元数据服务器可以获取该第一存储设备的存储状态,进一步来说,该元数据服务器可以获取该多个固态硬盘当前的存储情况。因此,该元数据服务器可以根据上述存储请求中携带的份数以及该多个固态硬盘中各个固态硬盘当前的存储情况,为该客户端分配固态硬盘,并将所分配的固态硬盘的地址信息发送给该客户端。
在具体实现中,该元数据服务器可以向该客户端发送存储响应,该存储响应中携带所分配的固态硬盘的地址信息。
步骤203:客户端向第一存储设备发送数据,该第一存储设备接收该客户端发送的数据,该客户端发送的数据为该客户端中写入的原始数据。
如前文所述,由于本实施例中是通过第一存储设备对原始写入的数据进行一系列处理,因此,客户端可以直接向该第一存储设备发送在该客户端写入的原始数据,在具体实现中,该客户端可以基于元数据服务器所分配的固态硬盘的地址信息,向该第一存储设备发送数据。
步骤204:第一存储设备对该数据进行虚拟化条带处理,得到多个条带数据。
第一存储设备接收到客户端发送的数据后,对该数据进行虚拟化条带数据处理,在具体实现中,该第一存储设备按照预先设置的固定条带块大小,将该数据切分成多份数据,这里将得到的该多份数据称为多个条带数据。譬如,假设虚拟化数据为5M,经过条带处理后将该虚拟化数据分为5份,即得到5个条带数据,每个条带数据可以为1M。例如,该5个条带数据可以分别为D1、D2、D3、D4和D5。
步骤205:该第一存储设备通过EC算法对该多个条带数据进行编码处理,得到EC条带数据,该EC条带数据包括该多个条带数据和校验数据,该校验数据用于对该多个条带数据进行校验。
在具体实现中,该第一存储设备基于该多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量,该第一存储设备将该编码向量包括的数据确定为该EC条带数据。
在实际算法运算过程中,该第一存储设备基于该多个条带数据生成向量的具体实现过程包括:该第一存储设备将该多个条带数据构成列向量。
其中,该预设生成矩阵可以由用户根据实际需求自定义设置。
例如,请参考图2B,该预设生成矩阵为矩阵B。若该多个条带数据为D1、D2、D3、D4和D5,则基于该多个条带数据生成向量D,并将生成的向量D与预设生成矩阵B相乘,得到编码向量C。第一存储设备将该编码向量C包括的数据确定为EC条带数据。具体地,该EC条带数据中包括的多个条带数据分别为D1、D2、D3、D4和D5,校验数据为C1、C2和C3。
需要说明的是,根据预设生成矩阵的设置规则不同,该校验数据的数量也随之不同。在实际实现中,技术人员可以根据实际需求进行设置,本发明实施例对此不做限定。
进一步地,当该多个固态硬盘中出现数据丢失情况时,从该预设生成矩阵中确定目标行,其中,该目标行中的预设数据与该多个条带数据组成的向量相乘后能够得到丢失的数据,之后,该第一存储设备将该预设生成矩阵中的目标行删除,得到目标生成矩阵,将数据丢失后剩下的EC条带数据组成的向量与该目标生成矩阵的逆矩阵相乘,以对该EC条带数据进行恢复。
在实际应用场景中,可能由于固态硬盘的插拔接口接触不良、第一存储设备出现断电情况等情况,导致该多个固态硬盘中缓存的数据存在丢失的情况,在本发明实施例中,可以通过EC算法对丢失的数据进行恢复。
例如,假设上述EC条带数据包括的D1、D3和C1三个数据丢失,则对EC条带数据中包括的条带数据进行恢复的实现过程如下:
请参考图2C,由于丢失的数据为D1、D3和C1,因此,可以将该预设生成矩阵中该D1、D3和C1对应的行删除,得到该目标生成矩阵如图2C所示。该第一存储设备根据该图2C所示的公式确定该目标生成矩阵的逆矩阵。
之后,请参考图2D所示的公式,该第一存储设备将数据丢失后剩下的EC条带数据组成的向量与该逆矩阵进行相乘,可以得到图2E所示的公式。该第一存储设备对该公式进行求解后,即可确定丢失的条带数据D1和条带数据D3,从而实现对该EC条带数据进行恢复。
由此可见,经过上述一系列处理后,即使固态硬盘异常导致出现数据丢失的情况,该第一存储设备也可以通过EC算法对丢失的数据进行恢复,从而保证了数据存储的可靠性。
步骤206:该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至多个固态硬盘中。
请参考图2C,假设该EC条带数据包括的多个条带数据分别为D1、D2、D3、D4和D5,校验数据为C1、C2和C3,则该第一存储设备将该EC条带数据缓存至多个固态硬盘如图2C所示。
在实际实现中,当将该EC条带数据包括的该多个条带数据和该校验数据分别缓存至该多个固态硬盘中后,可以向元数据服务器发送第一存储成功消息,以通知该元数据服务器成功实现数据存储。并且,为了便于元数据服务器进行数据管理,该第一存储成功消息中还可以携带所存储的数据的第一存储信息,该第一存储信息可以包括数据在各个固态硬盘的具体存储位置等信息。
由于在向固态硬盘中缓存数据时,缓存的是增加了校验数据的EC条带数据,而不需要对数据进行备份存储,因此,相比于采用备份方式在固态硬盘中进行数据存储来说,可以节省固态硬盘的存储空间。
需要说明的是,在实际实现中,第一存储设备将EC条带数据包括的多个条带数据和校验数据缓存至多个固态硬盘中后,在一些条件下,该第一存储设备将该多个固态硬盘缓存的数据存储至磁盘中。在具体实现中可以包括如下两种可能的实现方式:
第一种情况:在预设条件下,第一存储设备通过第一存储设备包括的多个磁盘进行数据存储。
在该种情况下,该第一存储设备还包括多个磁盘。在具体实现中,在预设条件下,第一存储设备通过第一存储设备包括的多个磁盘进行数据存储的具体实现可以包括如下(1)-(2)几个步骤:
(1)如果该多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则该第一存储设备将该EC条带数据包括的该多个条带数据,按照该多个条带数据的数据属性信息聚合成副本,得到副本数据。
其中,该预设容量可以由用户根据实际需求自定义设置,也可以由该第一存储设备默认设置,本发明实施例对此不做限定。例如,该预设容量可以为固态硬盘总存储容量的三分之一。
在具体实现中,可以由元数据服务器来确定该多个固态硬盘当前的存储容量。也即是,当该元数据服务器接收第一存储成功消息后,可以确定各个固态硬盘当前的存储容量。如果元数据服务器确定该多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,则说明需要将该多个固态硬盘中存储的数据移动至磁盘中。
其中,该预设时间段可以由用户根据实际需求自定义设置,也可以由该第一存储设备默认设置,本发明实施例对此不做限定。
其中,该预设次数可以由用户根据实际需求自定义设置,也可以由该第一存储设备默认设置,本发明实施例对此不做限定。
在具体实现中,可以由元数据服务器来监测该多个固态硬盘中数据被读取的次数。也即是,当该元数据服务器接收第一存储成功消息后,可以监测该多个固态硬盘中缓存的数据被读取的次数。如果在预设时间段内,该多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则说明该数据为冷数据,为了节省存储空间,可以将该多个固态硬盘中存储的数据移动至磁盘中。
在一种可能的实现方式中,该元数据服务器根据该多个磁盘当前的存储状态,选择多个磁盘,并将该多个磁盘的地址信息发送给该第一存储设备,以使该第一存储设备通过该多个磁盘来存储该多个固态硬盘中的数据。
该第一存储设备接收到该多个地址信息后,将该EC条带数据包括的该多个条带数据,按照该多个条带数据的数据属性信息聚合成副本,得到副本数据。其中,数据属性信息可以用于指示该多个条带数据的存储属性、所属文件夹等信息。
(2)该第一存储设备将该副本数据存储至该第一存储设备包括的多个磁盘中。
该第一存储设备生成副本数据后,将该副本数据存储至该多个磁盘中,例如,该第一存储设备生成N个副本数据,并将该N个副本数据分别存储至N个磁盘中,以将该N个副本数据作为冷数据进行存储,其中,该N为大于1的自然数。
由于保存在该多个磁盘中的数据是以副本的形式进行存储的,因此,在读取数据的过程中,可以支持并行读取,从而提高了读取的性能。
第二种情况:在预设条件下,第一存储设备通过第二存储设备包括的多个磁盘进行数据存储。
在该种情况下,该第一存储设备仅包括多个固态硬盘,该存储系统中还包括第二存储设备,该第二存储设备包括多个磁盘。在具体实现中,在预设条件下,第一存储设备通过第二存储设备包括的多个磁盘进行数据存储的具体实现可以包括如下(3)-(5)几个步骤:
(3)如果该多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内该多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则该第一存储设备将该EC条带数据包括的该多个条带数据,按照该多个条带数据的数据属性信息聚合成副本,得到副本数据。
其具体实现可以参见上述第一种情况中的步骤(1),这里不再重复赘述。
(4)该第一存储设备将该副本数据发送给该第二存储设备。
由于需要将该副本数据存储至磁盘中,该第一存储设备不包括磁盘,因此,该第一存储设备可以通过其它包括多个磁盘的第二存储设备存储该副本数据,即该第一存储设备将该副本数据发送给第二存储设备。
(5)该第二存储设备接收该第一存储设备发送的副本数据,并将所接收的副本数据存储至该第二存储设备包括的多个磁盘中。
在具体实现中,该第二存储设备将所接收的副本数据存储至该第二存储设备包括的多个磁盘中的具体实现可以参见上述第一存储设备将副本数据存储至该第一存储设备包括的多个磁盘中的实现过程。
步骤207:该第一存储设备删除该多个固态硬盘中缓存的该多个条带数据和该校验数据。
在实际实现中,为了节省固态硬盘的存储空间,当将该多个条带数据成功存储至磁盘中后,可以将该多个固态硬盘中缓存的该多个条带数据和该校验数据删除。在具体实现中,当该第一存储设备通过该第一存储设备包括的多个磁盘成功存储副本数据后,或者,当该第一存储设备通过第二存储设备包括的多个磁盘成功存储副本数据后,第一存储设备删除该多个固态硬盘中缓存的该多个条带数据和该校验数据。
以该第一存储设备通过第一存储设备包括的多个磁盘成功存储副本数据后为例,当第一存储设备成功将副本数据存储至第一存储设备包括的多个磁盘中后,可以向元数据服务器发送第二存储成功消息,该第二存储成功消息用于通知该元数据服务器已经成功将副本数据存储至磁盘中,进一步地,该第二存储成功消息中可以携带第二存储信息,该第二存储信息可以包括副本数据在磁盘中的具体存储位置等信息。
该元数据服务器接收到该第二存储成功消息后,可以向第一存储设备返回删除指示,该删除指示可以用于指示该第一存储设备删除该多个固态硬盘中缓存的数据。即该第一存储设备接收到该删除指示后,将该多个固态硬盘中缓存的多个条带数据和多个校验数据进行删除。
或者,以该第一存储设备通过第二存储设备包括的多个磁盘成功存储副本数据后为例,当第二存储设备成功将副本数据存储至第二存储设备包括的多个磁盘中后,可以向元数据服务器发送第三存储成功消息,该第三存储成功消息用于通知该元数据服务器已经成功将副本数据存储至磁盘中,进一步地,该第三存储成功消息中可以携带第三存储信息,该第三存储信息可以包括副本数据在磁盘中的具体存储位置等信息。
该元数据服务器接收到该第三存储成功消息后,可以向第一存储设备返回删除指示,该删除指示可以用于指示该第一存储设备删除该多个固态硬盘中缓存的数据。即该第一存储设备接收到该删除指示后,将该多个固态硬盘中缓存的多个条带数据和多个校验数据进行删除。
需要说明的是,在读取数据的过程中,存在一种情况,即该第一存储设备将基于该多个条带数据生成的副本数据存储至磁盘中,且该多个固态硬盘中缓存的数据尚未来得及删除。因此,为了提高读取数据性能,客户端一般可以优先从固态硬盘中读取数据,如果固态硬盘中缓存的数据被删除,则再从磁盘中读取数据。
在具体实现中,当客户端侧需要读取数据时,可以向元数据服务器发送读取请求,该读取请求中携带需要读取的数据的相关信息。由于该元数据服务器能够感知该第一存储设备中各个固态硬盘和各个磁盘的存储状态,因此,该元数据服务器接收到该读取请求后,根据该相关信息,可以判断该多个固态硬盘中是否存储有该需要读取的数据。
如果确定该多个固态硬盘中存储有该需要读取的数据,则获取该需要读取的数据在该多个固态硬盘中的具体存储位置信息,并将获取的具体存储位置信息发送给该客户端,以便于该客户端根据该具体存储位置信息,从该多个固态硬盘中读取数据。
否则,如果该多个固态硬盘中不存储有需要读取的数据,则该元数据服务器根据该相关信息,确定该需要读取的数据在磁盘中的存储位置信息,并将确定的存储位置信息发送该客户端,以便于该客户端根据该存储位置信息,从该多个磁盘中读取数据。
另外,需要说明的是,如前文所述,在分级存储的过程中,第一存储设备可能根据数据被访问频次,将一些热点数据从磁盘迁移至固态硬盘中。其中,在将热点数据从磁盘迁移至固态硬盘中之前,第一存储设备也可以采用步骤204至步骤205所执行的操作对该特点数据进行上述一系列处理。如此,即使固态硬盘出现异常导致该热点数据丢失,第一存储设备也可以找回丢失的热点数据,从而避免了该热点数据丢失导致数据存储系统可能无法正常运行的情况。
在本发明实施例中,在存储系统中,当第一存储设备接收到客户端发送的在该客户端中写入的数据时,对该数据依次进行虚拟化条带处理以及编码处理后,得到包括多个条带数据和校验数据的EC条带数据。之后,该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至该多个固态硬盘中。如此,当数据丢失时可以通过EC算法对EC条带数据进行恢复,从而保证了数据存储的完整性。
请参考图3,接下来以上述一系列处理由客户端执行为例进行说明。该图3是根据一示例性实施例示出的一种数据存储方法的流程图,本实施例可以通过图1所示的存储系统来实现,该数据存储方法可以包括如下几个步骤:
步骤301:客户端向元数据服务器发送存储请求。
其具体实现过程可以参见上述图2A实施例中的步骤201。
步骤302:元数据服务器为该客户端分配固态硬盘。
其具体实现过程可以参见上述图2A实施例中的步骤202。
步骤303:该客户端对数据进行虚拟化条带处理,得到多个条带数据。
需要说明的是,该客户端对该数据进行虚拟化条带处理的具体实现可以参见上述图2实施例中步骤204所述的第一存储设备对数据进行虚拟化条带处理的具体实现过程,这里不再重复赘述。
步骤304:该客户端通过删纠码EC算法对该多个条带数据进行编码处理,得到EC条带数据,该EC条带数据包括该多个条带数据和校验数据,该校验数据用于对该多个条带数据进行校验。
也即是,该客户端基于该多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量,该客户端将该编码向量包括的数据确定为该EC条带数据。
其具体实现过程可以参见图2A实施例中步骤205所述的第一存储设备通过EC算法对该多个条带数据进行编码处理的具体实现,这里不再详细介绍。
进一步地,当该多个固态硬盘中出现数据丢失情况时,该第一存储设备从该预设生成矩阵中确定目标行,该目标行中的预设数据与该多个条带数据组成的向量相乘后能够得到丢失的数据。该第一存储设备将该预设生成矩阵中的目标行删除,得到目标生成矩阵,将数据丢失后剩下的EC条带数据组成的向量与该目标生成矩阵的逆矩阵相乘,以对该EC条带数据进行恢复。
关于对EC条带数据进行恢复的具体实现过程可以参见上述图2A实施例的具体介绍,这里不再重复赘述。
需要说明的是,由于客户端对写入的数据进行上述一系列处理的具体实现与第一存储设备对客户端发送的数据执行一系列处理的具体实现原理相同。因此,这里不再详细介绍。
步骤305:该客户端将该EC条带数据发送给该第一存储设备,以使该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至该多个固态硬盘中。
客户端对该数据进行处理后,可以将处理后得到的该EC条带数据发送给第一存储设备,在具体实现中,该客户端可以基于元数据服务器分配的固态硬盘的地址信息,向该第一存储设备发送处理后得到的EC条带数据。
步骤306:该第一存储设备接收该客户端发送的EC条带数据,该EC条带数据包括该多个条带数据和校验数据,该校验数据用于对该多个条带数据进行校验,该多个条带数据由该客户端对数据进行虚拟化条带处理后得到,该数据为该客户端中写入的原始数据。
步骤307:该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至该多个固态硬盘中。
其具体实现过程可以参见上述图2A实施例中的步骤206。
另外,在需要说明的是,在实际实现中,第一存储设备将EC条带数据包括的多个条带数据和校验数据缓存至多个固态硬盘中后,在一些条件下,该第一存储设备将该多个固态硬盘缓存的数据存储至磁盘中。在具体实现中可以包括如下两种可能的实现方式:
第一种情况:在预设条件下,第一存储设备通过第一存储设备包括的多个磁盘进行数据存储。
在该种情况下,该第一存储设备还包括多个磁盘。在具体实现中,在预设条件下,第一存储设备通过第一存储设备包括的多个磁盘进行数据存储的具体实现可以包括如下(6)-(7)几个步骤:
(6)如果该多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则该第一存储设备将该EC条带数据包括的该多个条带数据,按照该多个条带数据的数据属性信息聚合成副本,得到副本数据。
其具体实现过程可以参见上述图2A实施例中的步骤(1)。
(7)该第一存储设备将该副本数据存储至该第一存储设备包括的多个磁盘中。
其具体实现过程可以参见上述图2A实施例中的步骤(2)。
第二种情况:在预设条件下,第一存储设备通过第二存储设备包括的多个磁盘进行数据存储。
在该种情况下,该第一存储设备仅包括多个固态硬盘,该存储系统中还包括第二存储设备,该第二存储设备包括多个磁盘。在具体实现中,在预设条件下,第一存储设备通过第二存储设备包括的多个磁盘进行数据存储的具体实现可以包括如下(8)-(10)几个步骤:
(8)如果该多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内该多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则该第一存储设备将该EC条带数据包括的该多个条带数据,按照该多个条带数据的数据属性信息聚合成副本,得到副本数据。
其具体实现过程可以参见上述图2A实施例中的步骤(3)。
(9)该第一存储设备将该副本数据发送给该第二存储设备。
其具体实现过程可以参见上述图2A实施例中的步骤(4)。
(10)该第二存储设备接收该第一存储设备发送的副本数据,并将所接收的副本数据存储至该第二存储设备包括的多个磁盘中。
其具体实现过程可以参见上述图2A实施例中的步骤(5)。
步骤308:该第一存储设备删除该多个固态硬盘中缓存的该多个条带数据和该校验数据。
其具体实现过程可以参见上述图2A实施例中的步骤207。
在本发明实施例中,在存储系统中,由客户端对写入的数据依次进行虚拟化条带处理以及编码处理后,得到包括多个条带数据和校验数据的EC条带数据。之后,将该EC条带数据发送给第一存储设备,该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至该多个固态硬盘中。如此,当数据丢失时可以通过EC算法对EC条带数据进行恢复,从而保证了数据存储的完整性。
图4A是根据一示例性实施例示出的一种数据存储装置的结构示意图,该数据存储装置可以由软件、硬件或者两者的结合实现。该数据存储装置部署于图1所示存储系统中的第一存储设备中,所述第一存储设备中包括多个固态硬盘,所述装置包括:
接收处理模块410,用于接收所述客户端发送的数据,并对所述数据进行虚拟化条带处理,得到多个条带数据,所述客户端发送的数据为所述客户端中写入的原始数据;
编码处理模块412,用于通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;
第一存储模块414,用于将所述EC条带数据包括的多个条带数据和校验数据分别缓存至所述多个固态硬盘中。
可选地,第一存储设备还包括多个磁盘,请参考图4B,该装置还包括:
第一聚合模块415,用于如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
第二存储模块416,将所述副本数据存储至所述第一存储设备包括的多个磁盘中。
可选地,请参考图4C,所述装置还包括:
第一删除模块418,用于删除所述多个固态硬盘中缓存的所述多个条带数据和所述校验数据。
可选地,所述编码处理模块412用于:
基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量;
将所述编码向量包括的数据确定为所述EC条带数据。
可选地,请参考图4D,所述装置还包括:
确定模块420,用于当所述多个固态硬盘中出现数据丢失情况时,从所述预设生成矩阵中确定目标行,该目标行中的预设数据与该多个条带数据组成的向量相乘后能够得到丢失的数据;
第二删除模块421,用于将该预设生成矩阵中的目标行删除,得到目标生成矩阵;
恢复模块422,用于将数据丢失后剩下的EC条带数据组成的向量与所述目标生成矩阵的逆矩阵相乘,以对所述EC条带数据进行恢复。
可选地,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,请参考图4E,所述装置还包括:
第二聚合模块424,用于如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
发送模块426,用于将所述副本数据发送给所述第二存储设备;所述第二存储设备接收所述发送模块发送的副本数据,并将所接收的副本数据存储至所述第二存储设备包括的多个磁盘中。
在本发明实施例中,在存储系统中,当第一存储设备接收到客户端发送的在该客户端中写入的数据时,对该数据依次进行虚拟化条带处理以及编码处理后,得到包括多个条带数据和校验数据的EC条带数据。之后,该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至该多个固态硬盘中。如此,当数据丢失时可以通过EC算法对EC条带数据进行恢复,从而保证了数据存储的完整性。
图5是根据一示例性实施例示出的一种数据存储装置的结构示意图。该数据存储装置可以由软件、硬件或者两者的结合实现。该数据存储装置部署于图1所示存储系统中的客户端中,所述存储系统还包括第一存储设备,所述第一存储设备中包括多个固态硬盘,所述装置包括:
条带处理模块510,用于对数据进行虚拟化条带处理,得到多个条带数据,所述数据为所述客户端中写入的原始数据;
编码处理模块530,用于通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;
发送模块540,用于将所述EC条带数据发送给所述第一存储设备,以使所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。
可选地,所述编码处理模块530用于:
基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量;
将所述编码向量包括的数据确定为所述EC条带数据。
在本发明实施例中,在存储系统中,由客户端对写入的数据依次进行虚拟化条带处理以及编码处理后,得到包括多个条带数据和校验数据的EC条带数据。之后,将该EC条带数据发送给第一存储设备,该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至该多个固态硬盘中。如此,当数据丢失时可以通过EC算法对EC条带数据进行恢复,从而保证了数据存储的完整性。
图6A是根据一示例性实施例示出的一种数据存储装置的结构示意图。该数据存储装置可以由软件、硬件或者两者的结合实现。该数据存储装置部署于图1所示存储系统中的第一存储设备中,所述存储系统还包括客户端,所述第一存储设备中包括多个固态硬盘,所述装置包括:
接收模块610,用于接收所述客户端发送的EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验,所述多个条带数据由所述客户端对数据进行虚拟化条带处理后得到,所述数据为所述客户端中写入的原始数据;
第一存储模块620,用于将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。
可选地,该第一存储设备还包括多个磁盘,请参考图6B,所述装置还包括;
第一聚合模块622,用于如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
第二存储模块624,用于将所述副本数据存储至所述第一存储设备包括的多个磁盘中。
可选地,请参考图6C,所述装置还包括:
第一删除模块630,用于删除所述多个固态硬盘中缓存的所述多个条带数据和所述校验数据。
可选地,请参考图6D,所述装置还包括:
确定模块640,用于当所述多个固态硬盘中出现数据丢失情况时,从所述预设生成矩阵中确定目标行,所述目标行中的预设数据与所述多个条带数据组成的向量相乘后能够得到丢失的数据;
第二删除模块642,用于将所述预设生成矩阵中的目标行删除,得到目标生成矩阵;
恢复模块650,用于将数据丢失后剩下的EC条带数据组成的向量与所述目标生成矩阵的逆矩阵相乘,以对所述EC条带数据进行恢复。
可选地,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,请参考图6E,所述装置还包括:
第二聚合模块660,用于如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
发送模块670,用于将所述副本数据发送给所述第二存储设备;所述第二存储设备接收所述第一存储设备发送的副本数据,并将所接收的副本数据存储至所述第二存储设备包括的多个磁盘中。
在本发明实施例中,在存储系统中,由客户端对写入的数据依次进行虚拟化条带处理以及编码处理后,得到包括多个条带数据和校验数据的EC条带数据。之后,将该EC条带数据发送给第一存储设备,该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至多个固态硬盘中。如此,当数据丢失时可以通过EC算法对EC条带数据进行恢复,从而保证了数据存储的完整性。
需要说明的是:上述实施例提供的数据存储装置在实现数据存储时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据存储装置与数据存储方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图7是根据一示例性实施例示出的一种第一存储设备的结构示意图,主要包括有发送器701、接收器702、存储器704、处理器703以及通信总线705。本领域技术人员可以理解,图7中示出的第一存储设备700的结构并不构成对智能照明设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,本发明实施例对此不做限定。
其中,该发送器701可以用于向后续处理模块发送数据,如帧数据等。
该存储器704可以用于存储解析的有效数据,并且,该存储器704也可以用于存储用于执行上述数据处理方法的一个或多个运行程序和/或模块。
其中,该处理器703可以是一个通用中央处理器(Central Processing Unit,以下简称CPU),微处理器,特定应用集成电路(Application-Specific Integrated Circuit,以下简称ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。该处理器703可以通过运行或执行存储在存储器704内的软件程序和/或模块,以及调用存储在存储器704内的数据,实现上文图2A或图3实施例所提供的方法。
其中,该通信总线705可包括一通路,在上述处理器703和存储器704之间传送信息。
图8是根据一示例性实施例示出的一种客户端的结构示意图,主要包括有发送器801、接收器802、存储器804、处理器803以及通信总线805。本领域技术人员可以理解,图8中示出的客户端800的结构并不构成对智能照明设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,本发明实施例对此不做限定。
其中,该发送器801可以用于向后续处理模块发送数据,如帧数据等。
该存储器804可以用于存储解析的有效数据,并且,该存储器804也可以用于存储用于执行上述数据处理方法的一个或多个运行程序和/或模块。
其中,该处理器803可以是一个通用中央处理器(Central Processing Unit,以下简称CPU),微处理器,特定应用集成电路(Application-Specific Integrated Circuit,以下简称ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。该处理器803可以通过运行或执行存储在存储器804内的软件程序和/或模块,以及调用存储在存储器804内的数据,实现上文图2A或图3实施例所提供的方法。
其中,该通信总线805可包括一通路,在上述处理器803和存储器804之间传送信息。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (30)

1.一种数据存储方法,应用于存储系统的第一存储设备中,所述第一存储设备中包括多个固态硬盘,其特征在于,所述方法包括:
所述第一存储设备接收所述客户端发送的数据,并对所述数据进行虚拟化条带处理,得到多个条带数据,所述客户端发送的数据为所述客户端中写入的原始数据;
所述第一存储设备通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;
所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。
2.如权利要求1所述的方法,其特征在于,所述第一存储设备还包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:
如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
所述第一存储设备将所述副本数据存储至所述第一存储设备包括的多个磁盘中。
3.如权利要求2所述的方法,其特征在于,所述第一存储设备将所述副本数据存储至所述第一存储设备包括的多个磁盘中之后,还包括:
所述第一存储设备删除所述多个固态硬盘中缓存的所述多个条带数据和所述校验数据。
4.如权利要求1所述的方法,其特征在于,所述第一存储设备通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,包括:
所述第一存储设备基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量;
所述第一存储设备将所述编码向量包括的数据确定为所述EC条带数据。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
当所述多个固态硬盘中出现数据丢失情况时,所述第一存储设备从所述预设生成矩阵中确定目标行,所述目标行中的预设数据与所述多个条带数据组成的向量相乘后能够得到丢失的数据;
所述第一存储设备将所述预设生成矩阵中的目标行删除,得到目标生成矩阵;
所述第一存储设备将数据丢失后剩下的EC条带数据组成的向量与所述目标生成矩阵的逆矩阵相乘,以对所述EC条带数据进行恢复。
6.如权利要求1所述的方法,其特征在于,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:
如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
所述第一存储设备将所述副本数据发送给所述第二存储设备;
所述第二存储设备接收所述第一存储设备发送的副本数据,并将所接收的副本数据存储至所述第二存储设备包括的多个磁盘中。
7.一种数据存储方法,应用于存储系统中,所述存储系统包括客户端和第一存储设备,所述第一存储设备中包括多个固态硬盘,其特征在于,所述方法包括:
所述客户端对数据进行虚拟化条带处理,得到多个条带数据,所述数据为所述客户端中写入的原始数据;
所述客户端通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;
所述客户端将所述EC条带数据发送给所述第一存储设备,以使所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。
8.如权利要求7所述的方法,其特征在于,所述客户端通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,包括:
所述客户端基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量;
所述客户端将所述编码向量包括的数据确定为所述EC条带数据。
9.一种数据存储方法,应用于存储系统中,所述存储系统包括客户端和第一存储设备,所述第一存储设备中包括多个固态硬盘,其特征在于,所述方法包括:
所述第一存储设备接收所述客户端发送的EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验,所述多个条带数据由所述客户端对所述数据进行虚拟化条带处理后得到,所述数据为所述客户端中写入的原始数据;
所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。
10.如权利要求9所述的方法,其特征在于,所述第一存储设备还包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:
如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
所述第一存储设备将所述副本数据存储至所述第一存储设备包括的多个磁盘中。
11.如权利要求10所述的方法,其特征在于,所述第一存储设备将所述副本数据存储至所述第一存储设备包括的多个磁盘中之后,还包括:
所述第一存储设备删除所述多个固态硬盘中缓存的所述多个条带数据和所述校验数据。
12.如权利要求9所述的方法,其特征在于,所述方法还包括:
当所述多个固态硬盘中出现数据丢失情况时,所述第一存储设备从所述预设生成矩阵中确定目标行,所述目标行中的预设数据与所述多个条带数据组成的向量相乘后能够得到丢失的数据;
所述第一存储设备将所述预设生成矩阵中的目标行删除,得到目标生成矩阵;
所述第一存储设备将数据丢失后剩下的EC条带数据组成的向量与所述目标生成矩阵的逆矩阵相乘,以对所述EC条带数据进行恢复。
13.如权利要求9所述的方法,其特征在于,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:
如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
所述第一存储设备将所述副本数据发送给所述第二存储设备;
所述第二存储设备接收所述第一存储设备发送的副本数据,并将所接收的副本数据存储至所述第二存储设备包括的多个磁盘中。
14.一种数据存储装置,部署于存储系统中的第一存储设备中,所述第一存储设备中包括多个固态硬盘,其特征在于,所述装置包括:
接收处理模块,用于接收所述客户端发送的数据,并对所述数据进行虚拟化条带处理,得到多个条带数据,所述客户端发送的数据为所述客户端中写入的原始数据;
编码处理模块,用于通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;
第一存储模块,用于将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。
15.如权利要求14所述的装置,其特征在于,所述第一存储设备还包括多个磁盘,所述装置还包括:
第一聚合模块,用于如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
第二存储模块,用于将所述副本数据存储至所述第一存储设备包括的多个磁盘中。
16.如权利要求15所述的装置,其特征在于,所述装置还包括:
第一删除模块,用于删除所述多个固态硬盘中缓存的所述多个条带数据和所述校验数据。
17.如权利要求14所述的装置,其特征在于,所述编码处理模块用于:
基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量;
将所述编码向量包括的数据确定为所述EC条带数据。
18.如权利要求17所述的装置,其特征在于,所述装置还包括:
确定模块,用于当所述多个固态硬盘中出现数据丢失情况时,从所述预设生成矩阵中确定目标行,所述目标行中的预设数据与所述多个条带数据组成的向量相乘后能够得到丢失的数据;
第二删除模块,用于将所述预设生成矩阵中的目标行删除,得到目标生成矩阵;
恢复模块,用于将数据丢失后剩下的EC条带数据组成的向量与所述目标生成矩阵的逆矩阵相乘,以对所述EC条带数据进行恢复。
19.如权利要求14所述的装置,其特征在于,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,所述装置还包括:
第二聚合模块,用于如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
发送模块,用于将所述副本数据发送给所述第二存储设备;所述第二存储设备接收所述发送模块发送的副本数据,并将所接收的副本数据存储至所述第二存储设备包括的多个磁盘中。
20.一种数据存储装置,部署于存储系统中的客户端中,所述存储系统还包括第一存储设备,所述第一存储设备中包括多个固态硬盘,其特征在于,所述装置包括:
条带处理模块,用于对数据进行虚拟化条带处理,得到多个条带数据,所述数据为所述客户端中写入的原始数据;
编码处理模块,用于通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;
发送模块,用于将所述EC条带数据发送给所述第一存储设备,以使所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。
21.如权利要求20所述的装置,其特征在于,所述编码处理模块用于:
基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量;
将所述编码向量包括的数据确定为所述EC条带数据。
22.一种数据存储装置,部署于存储系统中的第一存储设备中,所述存储系统还包括客户端,所述第一存储设备中包括多个固态硬盘,其特征在于,所述装置包括:
接收模块,用于接收所述客户端发送的EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验,所述多个条带数据由所述客户端对所述数据进行虚拟化条带处理后得到,所述数据为所述客户端中写入的原始数据;
第一存储模块,用于将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。
23.如权利要求22所述的装置,其特征在于,所述第一存储设备还包括多个磁盘,所述装置还包括:
第一聚合模块,用于如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
第二存储模块,用于将所述副本数据存储至所述第一存储设备包括的多个磁盘中。
24.如权利要求22所述的方法,其特征在于,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,所述装置还包括:
第二聚合模块,用于如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
发送模块,用于将所述副本数据发送给所述第二存储设备;所述第二存储设备接收所述第一存储设备发送的副本数据,并将所接收的副本数据存储至所述第二存储设备包括的多个磁盘中。
25.一种存储系统,所述存储系统包括客户端和第一存储设备,所述第一存储设备中包括多个固态硬盘,其特征在于,所述方法包括:
所述客户端对数据进行虚拟化条带处理,得到多个条带数据,所述数据为所述客户端中写入的原始数据;
所述客户端通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;
所述客户端将所述EC条带数据发送给所述第一存储设备;
所述第一存储设备接收所述客户端发送的EC条带数据,并将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。
26.如权利要求25所述的存储系统,其特征在于,所述客户端通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,包括:
所述客户端基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量;
所述客户端将所述编码向量包括的数据确定为所述EC条带数据。
27.如权利要求25所述的存储系统,其特征在于,所述第一存储设备还包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:
如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
所述第一存储设备将所述副本数据存储至所述第一存储设备包括的多个磁盘中。
28.如权利要求27所述的存储系统,其特征在于,所述第一存储设备将所述副本数据存储至所述第一存储设备包括的多个磁盘中之后,还包括:
所述第一存储设备删除所述多个固态硬盘中缓存的所述多个条带数据和所述校验数据。
29.如权利要求25所述的存储系统,其特征在于,所述第一存储设备还用于:
当所述多个固态硬盘中出现数据丢失情况时,从所述预设生成矩阵中确定目标行,所述目标行中的预设数据与所述多个条带数据组成的向量相乘后能够得到丢失的数据;
将所述预设生成矩阵中的目标行删除,得到目标生成矩阵;
将数据丢失后剩下的EC条带数据组成的向量与所述目标生成矩阵的逆矩阵相乘,以对所述EC条带数据进行恢复。
30.如权利要求25所述的存储系统,其特征在于,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:
如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;
所述第一存储设备将所述副本数据发送给所述第二存储设备;
所述第二存储设备接收所述第一存储设备发送的副本数据,并将所接收的副本数据存储至所述第二存储设备包括的多个磁盘中。
CN201710515890.3A 2017-06-29 2017-06-29 数据存储方法、装置及系统 Pending CN109213420A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710515890.3A CN109213420A (zh) 2017-06-29 2017-06-29 数据存储方法、装置及系统
PCT/CN2018/093419 WO2019001521A1 (zh) 2017-06-29 2018-06-28 数据存储方法、存储设备、客户端及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710515890.3A CN109213420A (zh) 2017-06-29 2017-06-29 数据存储方法、装置及系统

Publications (1)

Publication Number Publication Date
CN109213420A true CN109213420A (zh) 2019-01-15

Family

ID=64740405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710515890.3A Pending CN109213420A (zh) 2017-06-29 2017-06-29 数据存储方法、装置及系统

Country Status (2)

Country Link
CN (1) CN109213420A (zh)
WO (1) WO2019001521A1 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110058820A (zh) * 2019-04-23 2019-07-26 武汉汇迪森信息技术有限公司 基于固态盘阵列的数据安全写入、删除、读取方法及装置
CN110347640A (zh) * 2019-06-26 2019-10-18 北京三快在线科技有限公司 文件储存方法、装置、存储介质和电子设备
CN110515542A (zh) * 2019-07-30 2019-11-29 华为技术有限公司 数据存储方法、装置、计算设备、存储系统及存储介质
CN111061357A (zh) * 2019-12-13 2020-04-24 北京奇艺世纪科技有限公司 节能方法、装置、电子设备及存储介质
CN111090540A (zh) * 2019-06-24 2020-05-01 华为技术有限公司 基于纠删码的数据处理方法与装置
CN111610936A (zh) * 2020-05-25 2020-09-01 广州市百果园信息技术有限公司 一种对象存储平台以及对象聚合方法、装置和服务器
CN111880963A (zh) * 2020-07-29 2020-11-03 北京浪潮数据技术有限公司 一种数据重构方法、装置、设备及存储介质
CN112650441A (zh) * 2019-10-11 2021-04-13 杭州海康威视数字技术股份有限公司 条带缓存分配方法、装置、电子设备及存储介质
WO2021139571A1 (zh) * 2020-01-08 2021-07-15 华为技术有限公司 存储系统中的数据存储方法、数据读取方法、装置及系统
CN113544635A (zh) * 2019-09-09 2021-10-22 华为技术有限公司 存储系统中数据处理方法、装置以及存储系统
CN115543871A (zh) * 2022-11-29 2022-12-30 苏州浪潮智能科技有限公司 数据存储方法及相关设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102364474A (zh) * 2011-11-17 2012-02-29 中国科学院计算技术研究所 用于机群文件系统的元数据存储系统和管理方法
CN102521138A (zh) * 2011-11-28 2012-06-27 成都市华为赛门铁克科技有限公司 数据迁移触发方法和装置
CN102637147A (zh) * 2011-11-14 2012-08-15 天津神舟通用数据技术有限公司 利用固态硬盘作为计算机写缓存的存储系统以及相应的管理调度方法
CN103714014A (zh) * 2013-11-18 2014-04-09 华为技术有限公司 处理缓存数据的方法
CN104932953A (zh) * 2015-06-04 2015-09-23 华为技术有限公司 一种数据分发方法、数据存储方法、相关装置以及系统
CN104951245A (zh) * 2014-03-31 2015-09-30 伊姆西公司 用于动态存储分层的方法和装置
CN106657356A (zh) * 2016-12-29 2017-05-10 郑州云海信息技术有限公司 一种云存储系统的数据写入方法、装置及云存储系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105095421A (zh) * 2015-07-14 2015-11-25 南京国电南自美卓控制系统有限公司 一种实时数据库的分布式的存储方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102637147A (zh) * 2011-11-14 2012-08-15 天津神舟通用数据技术有限公司 利用固态硬盘作为计算机写缓存的存储系统以及相应的管理调度方法
CN102364474A (zh) * 2011-11-17 2012-02-29 中国科学院计算技术研究所 用于机群文件系统的元数据存储系统和管理方法
CN102521138A (zh) * 2011-11-28 2012-06-27 成都市华为赛门铁克科技有限公司 数据迁移触发方法和装置
CN103714014A (zh) * 2013-11-18 2014-04-09 华为技术有限公司 处理缓存数据的方法
CN104951245A (zh) * 2014-03-31 2015-09-30 伊姆西公司 用于动态存储分层的方法和装置
CN104932953A (zh) * 2015-06-04 2015-09-23 华为技术有限公司 一种数据分发方法、数据存储方法、相关装置以及系统
CN106657356A (zh) * 2016-12-29 2017-05-10 郑州云海信息技术有限公司 一种云存储系统的数据写入方法、装置及云存储系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
安静平和: "《分布式系统下的纠删码技术(一)--Erasure Code(EC)》", 《HTTPS://BLOG.CSDN.NET/CNHK1225/ARTICLE/DETAILS/52982927》 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110058820A (zh) * 2019-04-23 2019-07-26 武汉汇迪森信息技术有限公司 基于固态盘阵列的数据安全写入、删除、读取方法及装置
CN111090540A (zh) * 2019-06-24 2020-05-01 华为技术有限公司 基于纠删码的数据处理方法与装置
CN111090540B (zh) * 2019-06-24 2022-06-14 华为技术有限公司 基于纠删码的数据处理方法与装置
US11249846B2 (en) 2019-06-24 2022-02-15 Huawei Technologies Co., Ltd. Erasure code-based data processing method and apparatus
CN110347640A (zh) * 2019-06-26 2019-10-18 北京三快在线科技有限公司 文件储存方法、装置、存储介质和电子设备
CN110347640B (zh) * 2019-06-26 2022-02-18 北京三快在线科技有限公司 文件储存方法、装置、存储介质和电子设备
CN110515542A (zh) * 2019-07-30 2019-11-29 华为技术有限公司 数据存储方法、装置、计算设备、存储系统及存储介质
US11809738B2 (en) 2019-07-30 2023-11-07 Huawei Technologies Co., Ltd. Data storage method and apparatus, computing device, storage system, and storage medium
CN113760186A (zh) * 2019-07-30 2021-12-07 华为技术有限公司 数据存储方法、装置、计算设备、存储系统及存储介质
CN113544635A (zh) * 2019-09-09 2021-10-22 华为技术有限公司 存储系统中数据处理方法、装置以及存储系统
CN112650441A (zh) * 2019-10-11 2021-04-13 杭州海康威视数字技术股份有限公司 条带缓存分配方法、装置、电子设备及存储介质
CN111061357B (zh) * 2019-12-13 2021-09-03 北京奇艺世纪科技有限公司 节能方法、装置、电子设备及存储介质
CN111061357A (zh) * 2019-12-13 2020-04-24 北京奇艺世纪科技有限公司 节能方法、装置、电子设备及存储介质
WO2021139571A1 (zh) * 2020-01-08 2021-07-15 华为技术有限公司 存储系统中的数据存储方法、数据读取方法、装置及系统
CN111610936A (zh) * 2020-05-25 2020-09-01 广州市百果园信息技术有限公司 一种对象存储平台以及对象聚合方法、装置和服务器
CN111610936B (zh) * 2020-05-25 2023-04-14 广州市百果园信息技术有限公司 一种对象存储平台以及对象聚合方法、装置和服务器
CN111880963A (zh) * 2020-07-29 2020-11-03 北京浪潮数据技术有限公司 一种数据重构方法、装置、设备及存储介质
CN111880963B (zh) * 2020-07-29 2022-06-10 北京浪潮数据技术有限公司 一种数据重构方法、装置、设备及存储介质
CN115543871A (zh) * 2022-11-29 2022-12-30 苏州浪潮智能科技有限公司 数据存储方法及相关设备
CN115543871B (zh) * 2022-11-29 2023-03-10 苏州浪潮智能科技有限公司 数据存储方法及相关设备

Also Published As

Publication number Publication date
WO2019001521A1 (zh) 2019-01-03

Similar Documents

Publication Publication Date Title
CN109213420A (zh) 数据存储方法、装置及系统
US9690487B2 (en) Storage apparatus and method for controlling storage apparatus
US10001944B2 (en) Systems and methods for data organization in storage systems using large erasure codes
CN110262922B (zh) 基于副本数据日志的纠删码更新方法及系统
CN101488104B (zh) 一种实现高效安全存储的系统和方法
CN108647151A (zh) 一种全闪系统元数据落盘方法、装置、设备及存储介质
CN103136243B (zh) 基于云存储的文件系统去重方法及装置
CN109582213A (zh) 数据重构方法及装置、数据存储系统
US10346066B2 (en) Efficient erasure coding of large data objects
Raghavan et al. Tiera: Towards flexible multi-tiered cloud storage instances
CN109144406A (zh) 分布式存储系统中元数据存储方法、系统及存储介质
CN106657356A (zh) 一种云存储系统的数据写入方法、装置及云存储系统
CN107422989B (zh) 一种Server SAN系统多副本读取方法及存储系统
CN108733326B (zh) 一种磁盘处理方法及装置
CN104902009A (zh) 一种基于可擦除编码和链式备份的分布式存储系统
CN106445409A (zh) 一种分布式块存储的数据写入方法及装置
CN104636088B (zh) 一种将数据写入数据服务器的方法及存储系统
CN108710474A (zh) 一种数据存储方法、装置及计算机存储介质
CN106686095A (zh) 一种基于纠删码技术的数据存储方法及装置
CN110502188A (zh) 一种基于数据库读写性能的数据存储方法与装置
US9292213B2 (en) Maintaining at least one journal and/or at least one data structure by circuitry
US11347395B2 (en) Cache management system and method
CN106991118A (zh) 基于ceph纠删除容错的读取文件方法及装置
CN107301021B (zh) 一种利用ssd缓存对lun进行加速的方法和装置
CN109375868B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190115