CN111208934B - 一种数据存储方法及装置 - Google Patents

一种数据存储方法及装置 Download PDF

Info

Publication number
CN111208934B
CN111208934B CN201811394013.6A CN201811394013A CN111208934B CN 111208934 B CN111208934 B CN 111208934B CN 201811394013 A CN201811394013 A CN 201811394013A CN 111208934 B CN111208934 B CN 111208934B
Authority
CN
China
Prior art keywords
data
stored
storage
storage system
expected
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811394013.6A
Other languages
English (en)
Other versions
CN111208934A (zh
Inventor
闫海涛
林琳
张明谦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201811394013.6A priority Critical patent/CN111208934B/zh
Priority to PCT/CN2019/115215 priority patent/WO2020103679A1/zh
Priority to EP19887741.7A priority patent/EP3869313A4/en
Publication of CN111208934A publication Critical patent/CN111208934A/zh
Priority to US17/325,287 priority patent/US11550486B2/en
Application granted granted Critical
Publication of CN111208934B publication Critical patent/CN111208934B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Abstract

一种数据存储方法及装置,在该方法中,首先获取待存储数据的第一信息,该第一信息包括待存储数据的类型、待存储数据的名称以及与待存储数据对应的用户标识中的至少一个信息,然后,根据待存储数据的第一信息是否满足条件来确定待存储数据期望存储的位置,例如,当获取的待存储数据的至少一个信息满足条件,则确定期望存储的位置为存储系统中读写性能高于或等于阈值的第一存储空间,最后,则将待存储数据的多个数据包中的至少一个数据包存储至该期望存储的位置。由于数据在存储的时候,已经将该数据的数据包存储到该位置,这样,后续则不需要再对该数据进行迁移,从而可以减少需要进行数据迁移的数据量,可以提高存储系统的存储性能。

Description

一种数据存储方法及装置
技术领域
本申请涉及存储技术领域,尤其涉及一种数据存储方法及装置。
背景技术
随着互联网用户的激增以及业务的多样性发展,越来越多的数据(例如,用户数据、业务配置数据等)需要使用存储系统进行存储,以便用来分析和指导业务。为了提高存储系统的存储性能,引入了分级存储技术,其主要思想是:根据数据的重要性、对数据的访问频率等指标,将不同的数据分别存储在不同性能的存储介质上,例如,将访问频率较低的数据存储到存储系统中的读写速度较慢的机械硬盘(hard disk drive,HDD)中,将访问频率较高的数据存储到将存储系统中的读写速度较快的固态硬盘(solid state drive,SSD)中,可以提高存储系统的读写速度。
在现有技术中,采用分级存储技术的存储系统,通常会每隔一段时间(例如,每隔一周),对整个存储系统中存储的数据进行扫描,从而确定该存储系统中存储的数据是否满足预设的分级存储策略(分级存储策略,例如,将访问频率较低的数据存储到HDD中并将访问频率较高的数据存储到SSD中)。如果该存储系统中的部分数据不满足该分级存储策略,例如,数据块1是访问频率较低的数据,但是存储在SSD中,则需要将该部分数据迁移到期望的存储介质上,即,将数据块1迁移到HDD中。
在对整个存储系统中存储的数据进行扫描后,若确定有大量的数据需要进行迁移,则存储系统需要消耗大量的资源(例如,输入/输出(input/output,I/O)资源等)将该需要进行迁移的数据迁移到期望的存储介质上,从而会降低存储系统的存储性能。
发明内容
本申请提供一种数据存储方法及装置,用以提高存储系统的存储性能。
第一方面,提供一种数据存储方法,应用于存储系统中,在该方法中,在存储数据时,首先获取待存储数据的第一信息,该第一信息包括待存储数据的类型、待存储数据的名称以及与待存储数据对应的用户标识中的至少一个信息,然后,根据待存储数据的第一信息是否满足条件来确定待存储数据期望存储的位置,例如,当获取的待存储数据的至少一个信息满足条件,则确定期望存储的位置为存储系统中读写性能高于或等于阈值的第一存储空间,否则,则确定期望存储的位置为存储系统中读写性能低于所述阈值的第二存储空间,最后,则将待存储数据的多个数据包中的至少一个数据包存储至该期望存储的位置。
在上述技术方案中,数据在存储的时候,已经根据数据的类型、名称以及与数据对应的用户标识中的至少一个信息,和存储系统中预设的策略,确定出该数据期望存储的位置了,并将该数据的数据包存储到该位置,这样,后续则不需要再对该数据进行迁移,从而可以减少需要进行数据迁移的数据量,自然也就可以减少数据迁移过程中消耗的存储系统的资源,可以提高存储系统的存储性能。
在一种可能的设计中,该条件包括如下条件中的至少一种:
待存储数据的类型与预设的类型相同;
待存储数据的名称与预设的名称相同;
与待存储数据对应的用户标识与预设的用户标识相同。
在上述技术方案中,可以通过多种不同的方式来确定数据期望存储的位置,可以增加存储系统的灵活性。
在一种可能的设计中,在待存储数据的多个数据包中的任一个数据包均未存储至存储系统之前,便获取待存储数据的第一信息进而确定该待存储数据期望存储的位置,也就是说,在确定待存储数据期望存储的位置之后,再存储待存储数据的数据包,这样,在存储待存储数据的多个数据包时,则将该多个数据包中的每个数据包存储至确定出的期望存储的位置。
在上述技术方案中,由于待存储数据的每个数据包均已经存储至期望存储的位置,这样,存储系统中存储的所有的数据都不需要再迁移,从而,存储系统可以省略对数据进行扫描并确定需要进行数据迁移的数据的过程,可以提升存储系统的存储性能。
在一种可能的设计中,可以先将待存储数据的多个数据包中的一部分数据包存储至第一位置,该第一位置与期望存储的位置不同,例如,可以是存储系统预设的位置,然后,再获取待存储数据的第一信息,进而确定待存储数据期望存储的位置,最后将待存储数据的多个数据包中除存储至第一位置的一部分数据包外的数据包存储至期望存储的位置。在这种情况下,待存储数据的多个数据包存储在不同的存储空间中。
在上述技术方案中,在获取待存储的数据后,先将该数据的一部分数据包存储至默认的位置,然后在存储过程中,确定该数据期望存储的位置,这样可以减少存储系统在存储数据时的响应时长。且,由于待存储数据在存储时已经将待存储数据的一部分数据包存储至期望存储的位置,这样,存储系统只需要对待存储数据的一部分数据包进行数据迁移,从而也可以减少需要进行数据迁移的数据量,可以提升存储系统的存储性能。
在一种可能的设计中,存储系统还可以记录待存储数据的存储状态,该存储状态包括将待存储数据的多个数据包存储至期望存储的位置的第一存储状态及将待存储数据的多个数据包分别存储在第一位置及期望存储的位置的第二存储状态,然后,可以根据获取的待存储数据的存储状态来确定是否需要进行数据迁移,例如,若待存储数据的存储状态指示该待存储数据处于该第二存储状态,则存储系统可以将待存储数据的存储在第一位置的一部分数据包迁移至期望存储的位置,这样,存储系统可以根据待存储数据的存储状态来确定是否需要进行数据迁移,可以减少扫描过程的复杂度。
进一步,当存储系统完成对待存储数据的数据迁移过程后,则还可以将待存储数据的存储状态由第二存储状态调整为第一存储状态。这样,当存储系统再次扫描时,该待存储的数据便可以不用再进行数据迁移。
第二方面,提供一种数据存储装置,所述数据存储装置包括处理器,用于实现上述第一方面描述的方法。所述数据存储装置还可以包括存储器,用于存储程序指令和数据。所述存储器与所述处理器耦合,所述处理器可以调用并执行所述存储器中存储的程序指令,用于实现上述第一方面描述的方法中的任意一种方法中。所述数据存储装置还可以包括通信接口,所述通信接口用于该通信装置与其它设备进行通信。
在一种可能的设计中,包括通信接口和处理器,其中:
该处理器,用于获取待存储数据的第一信息,该第一信息包括该待存储数据的类型、该待存储数据的名称以及与该待存储数据对应的用户标识中的至少一个信息;根据该待存储数据的第一信息及预设的策略,确定该待存储数据期望存储的位置,该预设的策略为当该第一信息满足条件时,则确定该期望存储的位置为第一存储空间,否则,确定该期望存储的位置为第二存储空间,该第一存储空间为存储系统中读写性能高于或等于阈值的存储空间,该第二存储空间为该存储系统中读写性能低于该阈值的存储空间;
该处理器还用于将通过该通信接口接收的该待存储数据的多个数据包中的至少一个数据包存储至该期望存储的位置。
在一种可能的设计中,该条件包括如下条件中的至少一种:
该待存储数据的类型与预设的类型相同;
该待存储数据的名称与预设的名称相同;
与该待存储数据对应的用户标识与预设的用户标识相同。
在一种可能的设计中,该处理器获取待存储数据的第一信息时,具体用于在通过该通信接口接收的该待存储数据的多个数据包中的任一个数据包均未存储至该存储系统之前,获取该待存储数据的第一信息;
该处理器将通过该通信接口接收的该待存储数据的多个数据包中的至少一个数据包存储至该期望存储的位置时,具体用于将该多个数据包中的每个数据包存储至该期望存储的位置。
在一种可能的设计中,该处理器,还用于在获取待存储数据的第一信息之前,将通过该通信接口接收的该待存储数据的多个数据包中的一部分数据包存储至第一位置,该第一位置与该期望存储的位置不同;
该处理器将通过该通信接口接收的该待存储数据的多个数据包中的至少一个数据包存储至该期望存储的位置时,具体用于将该多个数据包中除该一部分数据包外的数据包存储至该期望存储的位置。
在一种可能的设计中,该处理器还用于:记录该待存储数据的存储状态,该存储状态包括第一存储状态及第二存储状态,该第一存储状态是指将该待存储数据的多个数据包存储至该期望存储的位置的状态,该第二存储状态是指将该待存储数据的多个数据包分别存储在该第一位置及该期望存储的位置的状态;后续可以获取该待存储数据的存储状态;若该待存储数据的存储状态指示该待存储数据处于该第二存储状态,则可以将该待存储数据的该一部分数据包由该第一位置迁移至该期望存储的位置,并将该待存储数据的存储状态由该第二存储状态调整为该第一存储状态。
第三方面,提供一种数据存储装置,该数据存储装置可以是存储系统,也可以是存储系统中的装置,该数据存储装置可以包括处理模块和通信模块,这些模块可以执行上述第一方面任一种设计示例中的存储系统所执行的相应功能,具体的:
所述处理模块,用于获取待存储数据的第一信息,所述第一信息包括所述待存储数据的类型、所述待存储数据的名称以及与所述待存储数据对应的用户标识中的至少一个信息;根据所述待存储数据的第一信息及预设的策略,确定所述待存储数据期望存储的位置,所述预设的策略为当所述第一信息满足条件时,则确定所述期望存储的位置为第一存储空间,否则,确定所述期望存储的位置为第二存储空间,所述第一存储空间为存储系统中读写性能高于或等于阈值的存储空间,所述第二存储空间为所述存储系统中读写性能低于所述阈值的存储空间;所述处理模块还用于将通过所述通信模块接收的所述待存储数据的多个数据包中的至少一个数据包存储至所述期望存储的位置。
第四方面,本申请实施例中还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行第一方面所述的方法。
第五方面,本申请实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行第一方面所述的方法。
第六方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现第一方面所述的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
上述第二方面至第六方面及其实现方式的有益效果可以参考对第一方面的方法及其实现方式的有益效果的描述。
附图说明
图1为本申请实施例中提供的存储系统的一种示例的示意图;
图2为本申请实施例提供的数据存储方法的一种示例的流程图;
图3为本申请实施例提供的数据存储方法的另一种示例的流程图;
图4为本申请实施例提供的数据存储方法的另一种示例的流程图;
图5为本申请实施例提供的数据存储方法的另一种示例的流程图;
图6为本申请实施例提供的数据存储方法的另一种示例的流程图;
图7为本申请实施例提供的数据存储装置的一种示例的结构示意图;
图8为本申请实施例提供的数据存储装置的另一种示例的结构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合说明书附图以及具体的实施方式对本申请实施例中的技术方案进行详细的说明。
在本申请的描述中,“多个”是指两个或两个以上,也可以将“多个”理解为“至少两个”。“至少一个”,可理解为一个或多个,例如理解为一个、两个或更多个,包括至少一个,是指包括一个、两个或更多个,而且不限制包括的是哪几个,例如,包括A、B和C中的至少一个,那么包括的可以是A、B、C、A和B、A和C、B和C、或A和B和C。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
除非有相反的说明,本申请中提及“第一”、“第二”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。
以上介绍了本申请所涉及的一些概念,下面,对本申请的技术背景进行说明。
大数据时代,存储系统存储的数据量成爆炸式增长,由于存储系统中的存储空间有限,为了保证存储系统的存储性能,则需要对存储的大量的数据进行管理。一种对数据进行管理的方式即分级存储,也就是说根据数据的重要性、访问频率、属性信息、大小等指标,将数据分别存储在不同性能的存储介质上,并通过分级存储技术实现数据在存储介质之间的自动迁移。
在使用分级存储技术的存储系统中,通常包括多种不同性能的存储介质,例如,串行高级技术附件(serial advanced technology attachment,SATA)硬盘、小型计算机系统接口(small computer system interface,SCSI)硬盘、串行连接SCSI接口(serialattached SCSI,SAS)、光纤通道接口(fibre channel,FC)硬盘以及SSD等,这些硬盘的性能的好坏关系是:SATA硬盘<SCSI硬盘<SAS硬盘<FC硬盘<SSD。本领域技术人员可以根据实际使用需求,选择不同性能的存储介质构成不同的存储系统,例如,包括三种不同性能的存储介质的三级存储系统,或者包括五种不同性能的存储介质的五级存储系统等。且,在存储系统中,存储有预先设置好的分级存储策略,例如,将重要的数据存储在性能好的存储介质上且将不重要的数据存储在性能差的存储介质上的分级存储策略,或者,将访问频率高的数据存储在性能好的存储介质上且将访问频率低的数据存储在性能差的存储介质上的分级存储策略,等等,本领域技术人员可以根据使用需求进行设置。
在现有技术中,使用分别存储技术的存储系统在接收到待存储数据的数据包后,会将该数据包存储到预设的存储介质中,该预设的存储介质可以是存储系统中性能好的存储介质,例如,为SAS硬盘或者SSD等。然后,每隔一段时间,则对整个存储系统中存储的数据进行扫描,确定出不满足预设的分级存储策略的部分数据包,并将该部分数据包迁移到期望的存储介质上。
由于数据迁移需要消耗存储系统的资源,因此,当存储系统中有大量的数据包需要进行迁移时,会降低存储系统的存储性能。
鉴于此,提供本申请实施例中的技术方案。在本申请实施例中,在存储数据时,首先获取该数据的类型、名称以及与该数据对应的用户标识中的至少一个信息,然后根据获取的至少一个信息及存储系统预设的分级存储策略,确定该数据需要存储到性能好的存储空间还是性能差的存储空间,然后便将该数据的数据包存储到确定出的存储空间中,这样,数据在存储的时候已经存储在与分级存储策略对应的存储空间了,这样,后续则不需要再对该数据进行迁移,从而可以减少需要进行数据迁移的数据量,自然也就可以减少数据迁移过程中消耗的存储系统的资源,可以提高存储系统的存储性能。
本申请实施例中的技术方案应用于使用分级存储技术的存储系统中,该存储系统可以为文件存储系统、块存储系统或者对象存储系统,或者上述存储系统的组合,在本申请实施例中不作限制。
图1示出了本申请实施例中所涉及的存储系统的一种示例,如图1所示,该存储系统包括管理单元101以及两种性能不同的存储介质,分别为第一存储介质102和第二存储介质103。管理单元101用于对操作请求进行管理,例如处理写操作的请求,从而将数据写入存储介质中,或者处理读操作的请求,从而从存储介质中获取数据等,管理单元101可以为中央处理器(central processing unit,CPU)、特定应用集成电路(application-specificintegrated circuit,ASIC)或者现场可编程门阵列(field-programmable gate array,FPGA)等。第一存储介质102和第二存储介质103用于存储数据,其中,第一存储介质102的读写性能优于第二存储介质103的读写性能,例如,第一存储介质102可以为SSD或者FC硬盘,第二存储介质103可以为SATA硬盘或者SAS硬盘或者SCSI硬盘,当然,也可以是其他的存储介质,在此不作限制。由至少一个第一存储介质102构成的存储空间称为第一存储空间1021,由至少一个第二存储介质103构成的存储空间称为第二存储空间1031,需要说明的是,当第一存储空间1021由多个第一存储介质102对应的多个存储空间构成时,该多个第一存储介质102可以通过耦合的方式形成一个存储阵列,协同起来对外提供服务,第二存储空间1031也是同样的,在此不再赘述。
需要说明的是,使用分级存储技术的存储系统并不限于如图1所示的架构,例如,存储系统中可以包括三种及三种以上性能不同的存储介质,例如,包括四种性能不同的存储介质,或者,存储系统中还可以包括其他的装置,例如,管理装置等,本申请实施例描述的存储系统是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着存储技术和存储系统架构的演变,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
下面结合附图介绍本申请实施例提供的技术方案。
本申请实施例提供一种数据存储方法,请参见图2,为该方法的流程图。
在下文的介绍过程中,以该方法应用于图1所示的存储系统中为例,也就是说,下文中执行该数据存储方法的可以是图1所示的存储系统。另外,该方法可由一个通信装置执行,其中,该通信装置可以是存储系统的服务器或能够支持存储系统实现该方法所需的功能的通信装置,当然还可以是其他通信装置,例如芯片系统,在此,不对该通信装置的实现方式均进行限制。为便于介绍,在下文中,以该方法由存储系统的管理单元执行为例。
S21、其他电子设备向存储系统发送待存储数据的多个数据包,存储系统的管理单元获取该多个数据包。
在实际使用中,存储系统通常是与其他的电子设备协同工作来完成数据的读写过程,该其他的电子设备可以是服务器、客户端等,这样,用户可以通过在该其他电子设备上的写数据操作将数据写入存储系统,或者通过读数据操作从存储系统中读取数据。为方便描述,下文中以该其他电子设备为服务器为例进行说明。
作为一种示例,当用户需要将数据存储至存储系统时,则可以执行写数据操作,例如,写入数据A。当服务器检测该写数据操作后,则向存储系统发送写数据请求,该写数据请求中可以携带数据A的多个数据包,这样,当存储系统的管理单元接收该写数据请求后,则可以从该写数据请求中获取待存储的数据A的多个数据包。
S22、存储系统的管理单元获取待存储数据的第一信息。
在本申请实施例中,第一信息包括待存储数据的类型、待存储数据的名称以及与待存储数据对应的用户标识中的至少一个信息。
在本申请实施例中,存储系统的管理单元获取第一信息的方式包括但不限于如下两种:
第一种获取方式:
服务器向存储系统发送的写数据请求中可以携带该第一信息,例如,数据A的描述信息,该描述信息可以包括数据A的数据类型(例如,RAR类型、JPEG类型、avi类型等)、数据A的大小(例如,1M、30kB等)、数据A的名称(例如,photo1、JPG2等)、用户的标识(例如,用户的IP地址、用户的编号等)等信息,在此不作限制。当存储系统的管理单元接收该写数据请求后,则可以从该写数据请求中获取数据A的描述信息,数据的A的描述信息可以理解为待存储数据(数据A)的第一信息。
第二种方式:
当存储系统从服务器的写数据请求中获取数据A的多个数据包,存储系统的管理单元可以根据包头字符与数据类型的对应关系,以及,数据A的多个数据包的包头,确定数据A的类型。具体来讲,请参考表1,为包头字符与数据类型的对应关系的一种示例,其中,包头字符以十六进制数进行表示。如表1所示,当包头字符为“52617221”时,则表示该数据的类型为RAR类型,当包头字符为“504B0304”时,则表示该数据的类型为ZIP类型。在这种情况下,数据的A的类型即为第一信息。需要说明的是,第一信息的内容是存储系统或者技术人员预先设置的,例如,第一信息可以是待存储数据的类型、待存储数据的名称以及与待存储数据对应的用户标识,第一信息也可以只包括待存储数据的类型,在此不作限制。
表1
包头字符 数据类型
52617221 RAR类型
FFD8FF JPEG类型
504B0304 ZIP类型
47494638 GIF类型
…… ……
当然,存储系统的管理单元也可以通过其他方式获取待存储数据的第一信息,在此不作限制。
S23、该存储系统的管理单元根据待存储数据的第一信息及预设的策略,确定待存储数据期望存储的位置。
在本申请实施例中,该预设的策略为:当第一信息满足条件时,则确定该待存储数据期望存储的位置为读写性能高于或等于阈值的第一存储空间,若第一信息不满足条件,则确定该待存储数据期望存储的位置为读写性能低于阈值的第二存储空间。在本申请实施例中不对该阈值的具体取值作限制,或者,读写性能高于或等于阈值的第一存储空间以及读写性能低于阈值的第二存储空间,可以理解为第一存储空间的读写性能高于第二存储空间。具体到图1所示的存储系统,该第一存储空间可以理解为由至少一个第一存储介质构成的存储空间,该第二存储空间可以理解为由至少一个第二存储介质构成的存储空间。为方便说明,在下文中,以第一存储空间为SSD,第二存储空间为HDD为例。
下面对预设的策略进行说明。该预设的策略可以包括但不限于如下三种情况:
第一种情况,该预设的策略为:若待存储数据的类型与预设的类型相同,则确定该待存储数据期望存储的位置为SSD,否则确定待存储数据期望存储的位置为HDD。
作为一种示例,预设的类型可以为RAR类型。当存储系统的管理单元获取数据A的第一信息后,则从第一信息中获取数据A的类型,例如,该数据A为JPEG类型,存储系统确定数据A的类型不是RAR类型,从而确定数据A期望存储的位置为HDD。
第二种情况,该预设的策略为:若待存储数据的名称与预设的名称相同,则确定该待存储数据期望存储的位置为SSD,否则确定待存储数据期望存储的位置为HDD。
作为一种示例,预设的名称为以photo开头的名称。当存储系统的管理单元获取数据A的第一信息后,则从第一信息中获取数据A的名称,例如,该数据A为JPEG2,存储系统确定数据A的名称不以photo开头,从而确定数据A期望存储的位置为HDD。
第三种情况,该预设的策略为:与待存储数据对应的用户标识与预设的用户标识相同,则确定该待存储数据期望存储的位置为SSD,否则确定待存储数据期望存储的位置为HDD。
作为一种示例,以用户标识为用户的编号为例,预设的用户标识为ID1000。当存储系统的管理单元获取数据A的第一信息后,则从第一信息中获取数据A对应的用户的编号,例如,与该数据A对应的用户的编号为ID100,存储系统的管理单元确定与数据A对应的用户编号与预设的用户标识不相同,从而确定数据A期望存储的位置为HDD。
当然,该预设的策略可以是上述三种情况中的至少两种情况的组合。例如,该预设的策略可以是上述第一种情况和第二种情况的组合,或者,该预设的策略可以是上述三种情况的组合,等等,在这种情况下,存储系统的管理单元确定待存储数据期望存储的位置的过程与上述三种情况中的任意一种情况相似,在此不再赘述。
由于存储系统可以根据待存储数据的相关信息,确定待存储数据期望存储的位置,这样可以避免对存储空间的读写性能要求较高的数据被默认存储到读写性能较低的存储空间而无法满足数据需求的问题,而且可以避免对存储空间的读写性能要求较低的数据被存储到读写性能较高的存储空间而导致的浪费读写性能较高的存储资源的问题。
S24、存储系统的管理单元将待存储数据的多个数据包的每个数据包存储至期望存储的位置。
在存储系统的管理单元确定待存储数据期望存储的位置后,则将接收到的该待存储数据的每一个数据包存储至所述期望存储的位置,例如,确定数据A期望存储的位置为HDD,则将数据A包括的多个数据包均存储至HDD中。由于待存储数据存储在期望存储的位置,这样,当存储系统的管理单元对存储的所有数据进行扫描以确定是否需要进行数据迁移时,该数据便已经在目标位置了,从而无需再对该数据进行迁移,可以减少需要进行数据迁移的数据量,以及减少数据迁移过程中消耗的存储系统的资源。
S25、存储系统的管理单元记录待存储数据的存储状态为第一存储状态。
在本申请实施例中,存储状态包括将待存储数据的多个数据包存储至其期望存储的位置的第一存储状态(也可以称为无需迁移的状态),以及将待存储数据的多个数据包的一部分数据包存储在期望存储的位置且将另一部分数据包存储在与期望存储的位置不同的第一位置的第二存储状态(也可以称为需要迁移的状态)。如果期望存储的位置为读写性能较高的第一存储空间,则第一位置为读写性能较低的第二存储空间,如果期望存储的位置为读写性能较低的第二存储空间,则第一位置为读写性能较高的第一存储空间。
作为一种示例,在S23中,数据A包括的所有的数据包均存储至期望存储的位置了,因此,存储系统的管理单元可以记录数据A的存储状态为第一存储状态。具体来将,存储系统中可以包括一专用空间,该专用空间专门用于记录数据的存储状态,例如,可以在第一存储空间或者第二存储空间中预留出该专用空间,若存储系统中存储有10个数据,该专用空间中可以存储10个比特,每个数据的存储状态对应其中的一个比特,当比特的取值为0时,表示与该比特对应的数据的存储状态为无需迁移的状态,当比特的取值为1时,则表示该比特对应的数据的存储状态为需要迁移的状态。若数据A为存储系统中存储的第一个数据,从而该专用空间中的第一个比特对应数据A的存储状态,则存储系统的管理单元将专用空间中的第一个比特的取值置为0。当然,也可以采用其他方式记录存储状态,在此不作限制。
需要说明的是,在本申请实施例中,不对S24和S25的执行顺序进行限制,也就是说,可以先执行S24再执行S25,也可以先执行S25在执行S24,或者同时执行S24和S25,在图2中以先执行S24再执行S25为例。
S26、存储系统的管理单元获取待存储数据的存储状态。
使用分级存储技术的存储系统会定期扫描存储系统中存储的数据,从而确定是否需要进行数据迁移。在本申请实施例中,由于存储系统的管理单元记录了每个数据的存储状态,例如,每个数据的存储状态存储在用于记录该存储状态的专用空间中,这样,存储系统的管理单元可以根据专用空间中记录的数据的存储状态来确定是否需要进行数据迁移,从而可以减小扫描的时间以及减少扫描所消耗的资源。以数据A为例,数据A为存储系统中存储的第一个数据,则存储系统的管理单元获取用于记录存储状态的专用空间中第一个比特的取值,该第一个比特的取值为0。
S27、存储系统的管理单元确定不需要迁移待存储数据。
存储系统的管理单元确定用于记录存储状态的专用空间中,与数据A对应的第一个比特的取值为0,从而管理单元根据比特的取值与存储状态的对应关系确定数据A不需要进行迁移。
在上述技术方案中,由于待存储数据在存储时已经存储至期望存储的位置,因此,存储系统无需再迁移该数据,可以减少需要进行数据迁移的数据量,进而可以减少数据迁移过程消耗的资源,提升存储系统的存储性能。
进一步,由于待存储数据在存储时已经存储至期望存储的位置,这样,存储系统中存储的所有的数据都不需要再迁移,也就是说S25~S27为可选步骤,即不是必须要执行的,从而,存储系统可以省略对数据进行扫描并确定需要进行数据迁移的数据的过程,可以提升存储系统的存储性能。
在图2所示的实施例中,存储系统在存储数据之前先确定该数据期望存储的位置,然后便将该数据存储至期望存储的位置,由于存储系统确定数据期望存储的位置需要消耗一定的时间,因此,为了不影响存储系统在存储数据时的响应速度,请参考图3,为本申请提供的数据存储方法的另一种示例的流程图。
在下文的介绍过程中,以该方法应用于图1所示的存储系统中为例,也就是说,下文中执行该数据存储方法的可以是图1所示的存储系统。另外,该方法可由一个通信装置执行,其中,该通信装置可以是存储系统的服务器或能够支持存储系统实现该方法所需的功能的通信装置,当然还可以是其他通信装置,例如芯片系统,在此,不对该通信装置的实现方式均进行限制。为便于介绍,在下文中,以该方法由存储系统的管理单元执行为例。
S31、其他电子设备向存储系统发送待存储数据的多个数据包,存储系统的管理单元获取该多个数据包。
在本申请实施例中,该其他电子设备可以为服务器、客户端等,在下文的描述中,以其他电子设备为服务器为例。S31与S21相似,在此不再赘述。
S32、存储系统的管理单元将待存储数据的多个数据包的一部分数据包存储至第一位置。
在本申请实施例中,该第一位置是存储系统默认的位置,也就是说,存储系统的管理单元会将接收到的每一个数据的至少一部分数据包存储至该第一位置。在图1所示的存储系统中,包括第一存储空间和第二存储空间,则该第一位置可以是该第一存储空间,也可以是该第二存储空间,本领域技术人员可以根据实际使用需求进行设置在此不作限制。为方便说明,在下文中,以第一存储空间为SSD、第二存储空间为HDD以及第一位置为HDD为例。
作为一种示例,待存储的数据为数据A,数据A包括10个数据包。当存储系统的管理单元根据服务器的写数据请求获取数据A的10个数据包后,会依次在存储系统中的存储空间中写入该10个数据包,存储系统的管理单元可以以数据包为单位,逐次写入该10个数据包,也就是说在将第一个数据包写入HDD后,再将第二个数据包写入HDD。或者,存储系统的管理单元也可以将数据包拆分成多个数据块,然后以数据块为单位,逐次写入该10个数据包,例如,存储系统的管理单元将每个数据包拆分成3个数据块,然后将第一个数据包对应的3个数据块写入HDD后,再将第二个数据包对应的3个数据块写入HDD。
S33、存储系统的管理单元获取待存储数据的第一信息。
当存储系统的管理单元将待存储数据的一部分数据包写入HDD后,存储系统的管理单元则获取待存储数据的第一信息。该第一信息的内容以及获取第一信息的方式与S22中相同,在此不再赘述。
S34、该存储系统的管理单元根据待存储数据的第一信息及预设的策略,确定待存储数据期望存储的位置。
S34与S23相似,在此不再赘述。
需要说明的是,存储系统的管理单元确定出的期望存储的位置可能与第一位置相同,也可能与第一位置不相同。例如,若存储系统的管理单元确定期望存储的位置为HDD,则期望存储的位置与第一位置相同,若存储系统的管理单元确定待存储数据期望存储的位置为SSD,则期望存储的位置与第一位置不同。在本申请实施例中,以期望存储的位置与第一位置相同为例进行说明。
S35、在该期望存储的位置与第一位置相同时,存储系统的管理单元将待存储数据的多个数据包的每个数据包存储至第一位置。
S36、存储系统的管理单元记录待存储数据的存储状态为第一存储状态。
S37、存储系统的管理单元获取待存储数据的存储状态。
S38、存储系统的管理单元确定不需要迁移待存储数据。
S35~S38与S24~S27相似,在此不再赘述。S36~S38为可选步骤,即不是必须要执行的。
在上述技术方案中,存储系统在获取待存储的数据后,先将该数据的一部分数据包存储至默认的位置,然后在存储过程中,确定该数据期望存储的位置,这样可以减少存储系统在存储数据时的响应时长。
如图3所示的实施例介绍了在存储过程中确定数据期望存储的位置且该期望存储的位置与第一位置相同的示例,下面对在存储过程中确定数据期望存储的位置且该期望存储的位置与第一位置不同的示例进行说明。请参考图4,为本申请提供的数据存储方法的另一种示例的流程图。
在下文的介绍过程中,以该方法应用于图1所示的存储系统中为例,也就是说,下文中执行该数据存储方法的可以是图1所示的存储系统。另外,该方法可由一个通信装置执行,其中,该通信装置可以是存储系统的服务器或能够支持存储系统实现该方法所需的功能的通信装置,当然还可以是其他通信装置,例如芯片系统,在此,不对该通信装置的实现方式均进行限制。为便于介绍,在下文中,以该方法由存储系统的管理单元执行为例。
S41、其他电子设备向存储系统发送待存储数据的多个数据包,存储系统的管理单元获取该多个数据包。
S42、存储系统的管理单元将待存储数据的多个数据包的一部分数据包存储至第一位置。
S43、存储系统的管理单元获取待存储数据的第一信息。
S44、该存储系统的管理单元根据待存储数据的第一信息及预设的策略,确定待存储数据期望存储的位置。
S41~S44与S31~S34相似,在此不再赘述。
在本申请实施例中,以期望存储的位置与第一位置不同为例进行说明。
S45、在该期望存储的位置与第一位置不同时,存储系统的管理单元将待存储数据的多个数据包的除该一部分数据包外的剩余数据包存储至该期望存储的位置。
作为一种示例,在S42中,存储系统的管理单元将数据A的前2个数据包存储至第一位置,即存储至HDD中。当存储系统的管理单元确定数据A期望存储的位置为SSD,与第一位置不同,则存储系统的管理单元将数据A剩余的8个数据包存储至SSD。
S46、存储系统的管理单元记录待存储数据的存储状态为第二存储状态。
由于数据A的一部分数据包存储在HDD,另一部分数据包存储在SSD,因此,存储系统的管理单元将数据A的存储状态记为需要进行数据迁移的第二存储状态。
S47、存储系统的管理单元获取待存储数据的存储状态。
S47与S26相似,在此不再赘述。
S48、存储系统的管理单元确定需要迁移待存储数据,并将待存储数据的该一部分数据包由第一位置迁移至期望存储的位置。
在本申请实施例中,存储系统的管理单元获取待存储数据(数据A)的存储状态为第二存储状态,则确定待存储数据需要进行数据迁移,从而将数据A的存储在第一位置的一部分数据包迁移至数据A期望存储的位置。
S49、存储系统的管理单元将待存储数据的存储状态由第二存储状态调整为第一存储状态。
当存储系统完成数据迁移后,则该数据的数据包便全部存储在期望存储的位置,因此,该数据无需在进行数据迁移,从而存储系统的管理单元将该数据的存储状态更新为第一存储状态。
需要说明的是,S46~S49为可选步骤,即不是必须要执行的。
在上述技术方案中,由于在存储数据时,已经将该数据的一部分数据包存储至期望存储的位置了,因此,在进行数据迁移时,只需要迁移该数据的另一部分数据包即可,因此,可以减少数据迁移的数据量,从而可以减少数据迁移消耗的存储资源,提高存储系统的存储性能。
以上对本申请实施例中的数据存储方法在存储系统的总体流程进行了介绍,下面以一个具体的存储系统(例如,文件存储系统)为例,对上述技术方案进行说明。
首先对文件存储系统的数据存储原理进行说明。
在文件存储系统中存储的数据分为两种,一种称为数据,另一种是元数据。数据可以理解为文件中的实际数据,例如,该文件为一张图片,该文件的实际数据则为该图片中包括人物、动物和环境等信息,而元数据是用来描述一个文件的属性信息的数据,例如,该文件的访问权限、该文件所有者以及该文件的存储位置等。若用户需要对文件存储系统中的文件进行操作,则首先需要得到该文件的元数据,然后才能根据该元数据定位到文件的位置并且得到文件中的实际数据。在文件存储系统中,对元数据的管理方式可以分为集中式管理和分布式管理两种,集中式管理是指在文件系统中设置有一个存储空间,专用于存储所有文件的元数据,例如,所有文件的元数据均存储在SSD上,这样可以方便对文件存储系统中的文件的管理。需要说明的是,在这种情况下,由于各个文件可能存储在不同的位置,例如,有的文件存储在HDD上,有的文件存储在SSD上,则文件和该文件的元数据是存储在不同的存储介质中的。分布式管理是指将元数据存放在文件系统的任意一个存储空间中,例如,元数据可以与每个文件一起存储,若文件存储在HDD上,则该文件的元数据也存储在HDD上,若文件存储在SSD上,则该文件的元数据也存储在SSD上,这样,通过将对元数据管理的职责分布到不同存储空间上,可以避免集中式管理方式中当存储元数据的存储空间故障后导致整个文件存储系统无法使用的问题。
基于上述原理,下面对本申请实施例中的数据存储方法在文件存储系统中的执行过程进行说明。请参考图5,为该方法的流程图。
在下文的介绍过程中,以该方法应用于图1所示的存储系统中为例,也就是说,下文中执行该数据存储方法的可以是图1所示的存储系统。另外,该方法可由一个通信装置执行,其中,该通信装置可以是存储系统的服务器或能够支持存储系统实现该方法所需的功能的通信装置,当然还可以是其他通信装置,例如芯片系统,在此,不对该通信装置的实现方式均进行限制。为便于介绍,在下文中,以该方法由存储系统的管理单元执行且该存储系统为文件存储系统为例。
S51、其他电子设备向文件存储系统发送待存储文件的多个数据包,文件存储系统的管理单元获取该多个数据包。
S51与S21相似,在此不再赘述。
S52、文件存储系统的管理单元获取待存储文件的第一信息。
S53、文件存储系统的管理单元根据待存储文件的第一信息及预设的策略,确定待存储文件期望存储的位置。
S52~S53与S22~S23相似,在此不再赘述。
S54、文件存储系统的管理单元新建与待存储文件对应的元数据。
在文件存储系统的管理单元确定待存储文件期望存储的位置后,则根据文件期望存储的位置新建与该存储文件对应的元数据。
在本申请实施例中,元数据在现有技术的基础上增加如下两种信息:
第一种信息为文件期望存储的位置,记为Store tier,文件期望存储的位置可以为第一存储空间,也可以为第二存储空间,为方便说明,在下文中,以第一存储空间为SSD,第二存储空间为HDD为例。
第二种信息为存储状态,记为Status。其中对存储状态的说明可以参照S25中相应的内容,在此不再赘述。在本申请实施例中,在新建元数据时,会默认将存储状态设置为第一存储状态。
作为一种示例,可以在现有技术中的元数据的基础上增加两个字段分别用来指示前述的第一种信息和第二种信息,例如每个字段的长度为1个比特,若现有技术中的元数据中包括10个比特,则本申请实施例中的元数据可以包括12比特,第11个比特用于指示文件期望存储的位置,其中当该比特的取值为0时,表示该文件期望存储的位置为HDD,当该比特的取值为1时,表示该文件期望存储的位置为SSD。第12个比特用于指示文件的存储状态,当该比特的取值为0时,表示该文件的存储状态为第一存储状态(即不需要迁移的状态),当该比特的取值为1时,表示该文件的存储状态为第二存储状态(即需要进行迁移的状态)。当文件存储系统的管理单元确定待存储文件期望存储的位置后,例如,确定该文件期望存储的位置为HDD,则文件存储系统的管理单元在新建该文件的元数据时,将在该元数据的第11个比特置为0,并且设置文件的存储状态为第一存储状态,也就是说,将该元数据的第12个比特置为0。
S55、文件存储系统的管理单元将该文件的多个数据包存储至元数据中指示的位置。
当文件存储系统的管理单元新建与该文件对应的元数据后,则将该文件的数据包存储至元数据中指示的期望存储的位置。
这样,文件存储系统在新建文件的元数据时,便会主动根据设定的策略,确定并存储该文件期望存储的位置,从而该文件的数据包便直接存储至该期望存储的位置,可以省去文件存储系统周期性扫描文件以及进行数据迁移的过程,可以提高文件存储系统的性能。
为了不影响新建元数据的速度,请参考图6,为本申请提供的数据存储方法的另一种示例的流程图。
在下文的介绍过程中,以该方法应用于图1所示的存储系统中为例,也就是说,下文中执行该数据存储方法的可以是图1所示的存储系统。另外,该方法可由一个通信装置执行,其中,该通信装置可以是存储系统的服务器或能够支持存储系统实现该方法所需的功能的通信装置,当然还可以是其他通信装置,例如芯片系统,在此,不对该通信装置的实现方式均进行限制。为便于介绍,在下文中,以该方法由存储系统的管理单元执行且该存储系统为文件存储系统为例。
S61、其他电子设备向文件存储系统发送待存储文件的多个数据包,文件存储系统的管理单元获取该多个数据包。
S61与S21相似,在此不再赘述。
S62、文件存储系统的管理单元新建与待存储文件对应的元数据。
在本申请实施例中,元数据在现有技术的基础上增加两种信息,分别为文件期望存储的位置以及存储状态。为了不影响新建元数据的速度,在新建元数据时,文件期望存储的位置是由文件存储系统的管理单元预设的,也就是说,对于任意一个待存储文件,在新建该文件的元数据时,该元数据中指示的文件期望存储的位置是相同的,例如,该预设的位置可以是第一存储空间,也可以为第二存储空间,为方便说明,在下文中,以第一存储空间为SSD,第二存储空间为HDD,且以预设的位置为HDD为例。对存储状态的说明与S52中相同,在此不再赘述。
作为一种示例,在元数据中新增2个字段来指示文件期望存储的位置和存储状态,其中每个字段的长度以及字段的取值的含义与S52中相同,在此不再赘述。例如,预设的位置为HDD,则文件存储系统的管理单元将该元数据中用于指示文件期望存储的位置的比特的取值设置为0。
S63、文件存储系统的管理单元将待存储文件的一部分数据包存储至元数据中指示的位置。
当文件存储系统的管理单元新建与该文件对应的元数据后,则将该文件的数据包依次存储至元数据中指示的期望存储的位置,即HDD。
S64、文件存储系统的管理单元获取待存储文件的第一信息。
S65、文件存储系统的管理单元根据待存储文件的第一信息及预设的策略,确定待存储文件期望存储的位置。
S64~S65与S52~S53相同,在此不再赘述。
S66、在该文件期望存储的位置与元数据中指示的位置不同时,文件存储系统的管理单元更新该文件的元数据。
当文件存储系统的管理单元确定该文件期望存储的位置与元数据中指示的位置不同时,则使用确定出的文件期望存储的位置,更新元数据中用于指示文件期望存储的位置的字段的取值,以及更新元数据中该文件的存储状态。作为一种示例,文件存储系统的管理单元确定该文件期望存储的位置为SSD,而元数据中指示的文件期望存储的位置为HDD,则需要将元数据中指示的文件期望存储的位置由HDD更换为SSD,也就是说,将元数据中用于指示文件期望存储的位置的比特的取值重置为1,且将文件的存储状态更新为第二存储状态,即将元数据中用于指示文件的存储状态的比特的取值重置为1。
S67、文件存储系统的管理单元将待存储文件的除该一部分数据包外的剩余数据包存储至元数据中指示的位置。
由于元数据中指示的文件期望存储的位置发生了变化,则该文件在文件存储系统中存储的位置也发生了变化。作为一种示例,元数据中指示的文件期望存储的位置变为SSD,则该文件的剩余数据包将存储至SSD。
S68、文件存储系统的管理单元扫描元数据,确定存储状态为第二存储状态的文件需要进行数据迁移。
S69、文件存储系统的管理单元将存储状态为第二存储状态的文件迁移至该文件的元数据指示的文件期望存储的位置。
在上述技术方案中,文件存储系统在存储文件的过程中,确定该文件期望存储的位置,可以保证不增加新建该文件的元数据的操作时延。并且,上述技术方案在文件存储过程中已经将该文件的一部分数据包存储至期望存储的位置了,因此,可以减少数据迁移的数据量,从而可以提高存储系统的存储性能。
上述本申请提供的实施例中,分别从存储系统及服务器之间交互的角度对本申请实施例提供的方法进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,存储系统可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
图7示出了一种数据存储装置700的结构示意图。其中,数据存储装置700可以应用于存储系统,或者是存储系统中的装置,能够实现本申请实施例提供的方法中存储系统的功能;数据存储装置700也可以是能够支持存储系统实现本申请实施例提供的方法中存储系统的功能的装置。数据存储装置700可以是硬件结构、软件模块、或硬件结构加软件模块。数据存储装置700可以由芯片系统实现。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
数据存储装置700可以包括通信模块701和处理模块702。
通信模块701可以用于执行图2所示的实施例中的步骤S21,和/或用于执行图3所示的实施例中的步骤S31,和/或用于执行图4所示的实施例中的步骤S41,和/或用于执行图5所示的实施例中的步骤S51,和/或用于执行图6所示的实施例中的步骤S61,和/或用于支持本文所描述的技术的其它过程。通信模块701用于数据存储装置700和其它模块进行通信,其可以是电路、器件、接口、总线、软件模块、收发器或者其它任意可以实现通信的装置。
处理模块702可以用于执行图2所示的实施例中的步骤S22~步骤S26,和/或用于执行图3所示的实施例中的步骤S32~步骤S38,和/或用于执行图4所示的实施例中的步骤S42~步骤S49,和/或用于执行图5所示的实施例中的步骤S52~步骤S55,和/或用于执行图6所示的实施例中的步骤S62~步骤S69,和/或用于支持本文所描述的技术的其它过程。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
如图8所示为本申请实施例提供的数据存储装置800,其中,数据存储装置800可以是图2~图6所示的实施例中的存储系统,或者是存储系统的装置,能够实现本申请图2~图6所示的实施例中的存储系统的功能;数据存储装置800也可以是能够支持存储系统实现本申请图2~图6所示的实施例提供的方法中存储系统的功能的装置。其中,数据存储装置800可以为芯片系统。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
数据存储装置800包括至少一个处理器820,用于实现或用于支持数据存储装置800实现本申请图2~图6所示的实施例中的存储系统的管理单元的功能。示例性地,处理器820可以获取待存储数据的第一信息,并根据该第一信息及预设的策略确定待存储数据期望存储的位置,具体参见方法示例中的详细描述,此处不做赘述。
数据存储装置800还可以包括至少一个存储器830,用于存储程序指令和/或数据。存储器830和处理器820耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器820可能和存储器830协同操作。处理器820可能执行存储器830中存储的程序指令。所述至少一个存储器中的至少一个可以包括于处理器中。当处理器820执行存储器830中的程序指令时,可以实现图2~图6所示的方法。
数据存储装置800还可以包括通信接口810,用于通过传输介质和其它设备进行通信,从而用于数据存储装置800和其它设备进行通信。示例性地,该其它设备可以是服务器。处理器820可以利用通信接口810收发数据。
本申请实施例中不限定上述通信接口810、处理器820以及存储器830之间的具体连接介质。本申请实施例在图8中以存储器830、处理器820以及通信接口810之间通过总线840连接,总线在图8中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理器820可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器830可以是非易失性存储器,比如硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例中还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行图2~图6所示的实施例中第一存储阵列执行的方法。
本申请实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行图2~图6所示的实施例中第一存储阵列执行的方法。
本申请实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现前述方法中存储系统的功能。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
本申请实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,简称DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,简称DVD))、或者半导体介质(例如,SSD)等。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (12)

1.一种数据存储方法,其特征在于,包括:
获取待存储数据的第一信息,所述第一信息包括所述待存储数据的类型、所述待存储数据的名称以及与所述待存储数据对应的用户标识中的至少一个信息;
根据所述待存储数据的第一信息及预设的策略,确定所述待存储数据期望存储的位置,所述预设的策略为当所述第一信息满足条件时,则确定所述期望存储的位置为第一存储空间,否则,确定所述期望存储的位置为第二存储空间,所述第一存储空间为存储系统中读写性能高于或等于阈值的存储空间,所述第二存储空间为所述存储系统中读写性能低于所述阈值的存储空间;
将所述待存储数据的多个数据包中的至少一个数据包存储至所述期望存储的位置;
所述方法还包括:记录所述待存储数据的存储状态,所述存储状态包括第一存储状态及第二存储状态,所述第一存储状态是指将所述待存储数据的多个数据包存储至所述期望存储的位置的状态,所述第二存储状态是指将所述待存储数据的多个数据包分别存储在第一位置及所述期望存储的位置的状态,且,所述第一存储状态用于指示无需进行数据迁移,所述第二存储状态用于指示需要进行数据迁移。
2.根据权利要求1所述的方法,其特征在于,所述条件包括如下条件中的至少一种:
所述待存储数据的类型与预设的类型相同;
所述待存储数据的名称与预设的名称相同;
与所述待存储数据对应的用户标识与预设的用户标识相同。
3.根据权利要求1或2所述的方法,其特征在于,获取待存储数据的第一信息,包括:
在所述待存储数据的多个数据包中的任一个数据包均未存储至所述存储系统之前,获取所述待存储数据的第一信息;
将所述待存储数据的多个数据包中的至少一个数据包存储至所述期望存储的位置,包括:
将所述多个数据包中的每个数据包存储至所述期望存储的位置。
4.根据权利要求1或2所述的方法,其特征在于,在获取待存储数据的第一信息之前,所述方法还包括:
将所述待存储数据的多个数据包中的一部分数据包存储至第一位置,所述第一位置与所述期望存储的位置不同;
将所述待存储数据的多个数据包中的至少一个数据包存储至所述期望存储的位置,包括:
将所述多个数据包中除所述一部分数据包外的数据包存储至所述期望存储的位置。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取所述待存储数据的存储状态;
若所述待存储数据的存储状态指示所述待存储数据处于所述第二存储状态,则将所述待存储数据的所述一部分数据包由所述第一位置迁移至所述期望存储的位置;
将所述待存储数据的存储状态由所述第二存储状态调整为所述第一存储状态。
6.一种数据存储装置,其特征在于,所述装置包括通信接口和处理器,其中:
所述处理器,用于获取待存储数据的第一信息,所述第一信息包括所述待存储数据的类型、所述待存储数据的名称以及与所述待存储数据对应的用户标识中的至少一个信息;根据所述待存储数据的第一信息及预设的策略,确定所述待存储数据期望存储的位置,所述预设的策略为当所述第一信息满足条件时,则确定所述期望存储的位置为第一存储空间,否则,确定所述期望存储的位置为第二存储空间,所述第一存储空间为存储系统中读写性能高于或等于阈值的存储空间,所述第二存储空间为所述存储系统中读写性能低于所述阈值的存储空间;
所述处理器还用于将通过所述通信接口接收的所述待存储数据的多个数据包中的至少一个数据包存储至所述期望存储的位置;
所述处理器还用于:记录所述待存储数据的存储状态,所述存储状态包括第一存储状态及第二存储状态,所述第一存储状态是指将所述待存储数据的多个数据包存储至所述期望存储的位置的状态,所述第二存储状态是指将所述待存储数据的多个数据包分别存储在第一位置及所述期望存储的位置的状态,且,所述第一存储状态用于指示无需进行数据迁移,所述第二存储状态用于指示需要进行数据迁移。
7.根据权利要求6所述的装置,其特征在于,所述条件包括如下条件中的至少一种:
所述待存储数据的类型与预设的类型相同;
所述待存储数据的名称与预设的名称相同;
与所述待存储数据对应的用户标识与预设的用户标识相同。
8.根据权利要求6或7所述的装置,其特征在于,所述处理器获取待存储数据的第一信息时,具体用于:
在通过所述通信接口接收的所述待存储数据的多个数据包中的任一个数据包均未存储至所述存储系统之前,获取所述待存储数据的第一信息;
所述处理器将通过所述通信接口接收的所述待存储数据的多个数据包中的至少一个数据包存储至所述期望存储的位置时,具体用于:
将所述多个数据包中的每个数据包存储至所述期望存储的位置。
9.根据权利要求6或7所述的装置,其特征在于,所述处理器,还用于在获取待存储数据的第一信息之前,将通过所述通信接口接收的所述待存储数据的多个数据包中的一部分数据包存储至第一位置,所述第一位置与所述期望存储的位置不同;
所述处理器将通过所述通信接口接收的所述待存储数据的多个数据包中的至少一个数据包存储至所述期望存储的位置时,具体用于:
将所述多个数据包中除所述一部分数据包外的数据包存储至所述期望存储的位置。
10.根据权利要求9所述的装置,其特征在于,所述处理器还用于:
获取所述待存储数据的存储状态;
若所述待存储数据的存储状态指示所述待存储数据处于所述第二存储状态,则将所述待存储数据的所述一部分数据包由所述第一位置迁移至所述期望存储的位置;
将所述待存储数据的存储状态由所述第二存储状态调整为所述第一存储状态。
11.一种计算机可读存储介质,其特征在于,所述介质上存储有指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1-5任一项所述的方法。
12.一种计算机程序产品,其特征在于,所述计算机程序产品包含有指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1-5任一项所述的方法。
CN201811394013.6A 2018-11-21 2018-11-21 一种数据存储方法及装置 Active CN111208934B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201811394013.6A CN111208934B (zh) 2018-11-21 2018-11-21 一种数据存储方法及装置
PCT/CN2019/115215 WO2020103679A1 (zh) 2018-11-21 2019-11-04 一种数据存储方法及装置
EP19887741.7A EP3869313A4 (en) 2018-11-21 2019-11-04 DATA STORAGE PROCESS AND APPARATUS
US17/325,287 US11550486B2 (en) 2018-11-21 2021-05-20 Data storage method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811394013.6A CN111208934B (zh) 2018-11-21 2018-11-21 一种数据存储方法及装置

Publications (2)

Publication Number Publication Date
CN111208934A CN111208934A (zh) 2020-05-29
CN111208934B true CN111208934B (zh) 2021-07-09

Family

ID=70773673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811394013.6A Active CN111208934B (zh) 2018-11-21 2018-11-21 一种数据存储方法及装置

Country Status (4)

Country Link
US (1) US11550486B2 (zh)
EP (1) EP3869313A4 (zh)
CN (1) CN111208934B (zh)
WO (1) WO2020103679A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416858A (zh) * 2020-11-09 2021-02-26 深圳市珍爱捷云信息技术有限公司 文档存储方法、装置、电子设备和计算机可读存储介质
CN112506435B (zh) * 2020-12-12 2024-04-02 南京地铁建设有限责任公司 一种应用于自动扶梯的数据分级存储方法及系统
CN113986116A (zh) * 2021-09-07 2022-01-28 广东珠江智联信息科技股份有限公司 分布式存储系统及基于分布式存储系统的数据管理方法
CN113835630A (zh) * 2021-09-15 2021-12-24 联泰集群(北京)科技有限责任公司 一种数据存储方法、装置、数据服务器、存储介质及系统
CN115840543B (zh) * 2023-02-28 2023-05-16 浪潮电子信息产业股份有限公司 一种数据分层存储方法、装置、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101281542A (zh) * 2008-05-09 2008-10-08 华为技术有限公司 一种文件存储方法及装置
CN103457963A (zh) * 2012-05-28 2013-12-18 联想(北京)有限公司 存储文件的方法及分布式存储系统
WO2014149333A1 (en) * 2013-03-15 2014-09-25 Slicon Graphics International Corp Elastic hierarchical data storage backend
CN104283960A (zh) * 2014-10-15 2015-01-14 福建亿榕信息技术有限公司 实现异构网络存储的虚拟化整合及分级管理的系统
CN104598495A (zh) * 2013-10-31 2015-05-06 南京中兴新软件有限责任公司 基于分布式文件系统的分级存储方法及系统
CN106484330A (zh) * 2016-09-27 2017-03-08 郑州云海信息技术有限公司 一种混合磁盘分层数据优化方法和装置
CN107729182A (zh) * 2017-10-11 2018-02-23 苏州乐麟无线信息科技有限公司 数据存储和访问的方法及装置
CN108268217A (zh) * 2018-01-10 2018-07-10 北京航天云路有限公司 一种基于时序数据冷热分类的分层存储方法
CN108846064A (zh) * 2018-06-06 2018-11-20 南京群顶科技有限公司 基于ceph的动态链式存储集群实现方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009102425A1 (en) * 2008-02-12 2009-08-20 Netapp, Inc. Hybrid media storage system architecture
US8566549B1 (en) * 2008-12-31 2013-10-22 Emc Corporation Synchronizing performance requirements across multiple storage platforms
CN102541475B (zh) * 2012-03-12 2015-02-04 华为数字技术(成都)有限公司 数据存储方法和数据存储装置
GB2505185A (en) * 2012-08-21 2014-02-26 Ibm Creating a backup image of a first memory space in a second memory space.
GB2506623A (en) * 2012-10-04 2014-04-09 Ibm Managing user files in a tiered storage system
JP6005116B2 (ja) * 2014-09-30 2016-10-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 特定のアプリケーションによってリコールされたファイルの自動化されたマイグレーション
CN106294421B (zh) * 2015-05-25 2020-02-04 阿里巴巴集团控股有限公司 一种数据写入、读取方法及装置
CN106326487B (zh) * 2016-09-05 2019-12-27 天脉聚源(北京)科技有限公司 一种数据存储方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101281542A (zh) * 2008-05-09 2008-10-08 华为技术有限公司 一种文件存储方法及装置
CN103457963A (zh) * 2012-05-28 2013-12-18 联想(北京)有限公司 存储文件的方法及分布式存储系统
WO2014149333A1 (en) * 2013-03-15 2014-09-25 Slicon Graphics International Corp Elastic hierarchical data storage backend
CN104598495A (zh) * 2013-10-31 2015-05-06 南京中兴新软件有限责任公司 基于分布式文件系统的分级存储方法及系统
CN104283960A (zh) * 2014-10-15 2015-01-14 福建亿榕信息技术有限公司 实现异构网络存储的虚拟化整合及分级管理的系统
CN106484330A (zh) * 2016-09-27 2017-03-08 郑州云海信息技术有限公司 一种混合磁盘分层数据优化方法和装置
CN107729182A (zh) * 2017-10-11 2018-02-23 苏州乐麟无线信息科技有限公司 数据存储和访问的方法及装置
CN108268217A (zh) * 2018-01-10 2018-07-10 北京航天云路有限公司 一种基于时序数据冷热分类的分层存储方法
CN108846064A (zh) * 2018-06-06 2018-11-20 南京群顶科技有限公司 基于ceph的动态链式存储集群实现方法

Also Published As

Publication number Publication date
EP3869313A1 (en) 2021-08-25
EP3869313A4 (en) 2021-12-22
WO2020103679A1 (zh) 2020-05-28
US20210271405A1 (en) 2021-09-02
CN111208934A (zh) 2020-05-29
US11550486B2 (en) 2023-01-10

Similar Documents

Publication Publication Date Title
CN111208934B (zh) 一种数据存储方法及装置
US10795615B2 (en) Method and device for storage management in a hierarchical storage system
US10671285B2 (en) Tier based data file management
US7010657B2 (en) Avoiding deadlock between storage assignments by devices in a network
EP2830284A1 (en) Caching method for distributed storage system, node and computer readable medium
KR20120102664A (ko) 미래 사용 추정에 기반한 저장 메모리 할당
CN109271098B (zh) 一种数据迁移方法及装置
CN110109868B (zh) 用于索引文件的方法、装置和计算机程序产品
CN110688062B (zh) 一种缓存空间的管理方法及装置
CN105187523B (zh) 一种目录访问方法及装置
US20110119461A1 (en) File system quota and reservation
US20220164316A1 (en) Deduplication method and apparatus
US11226778B2 (en) Method, apparatus and computer program product for managing metadata migration
CN109885577A (zh) 数据处理方法、装置、终端及存储介质
CN110147203A (zh) 一种文件管理方法、装置、电子设备及存储介质
CN110502187B (zh) 一种快照回滚方法及装置
US20220350779A1 (en) File system cloning method and apparatus
CN111857556A (zh) 管理存储对象的元数据的方法、装置和计算机程序产品
US11249670B2 (en) Server and associated computer program product using different transmission speed for different portions of cold data
KR20030055482A (ko) 선택적인 캐시관리방법 및 장치
US11941074B2 (en) Fetching a query result using a query filter
EP4095667A1 (en) Data management apparatus, data management method, and data storage device
WO2023116438A1 (zh) 一种数据访问方法、装置以及设备
US20240078485A1 (en) Data management system and data management method
CN113760855A (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