CN105677243B - 数据写入装置及方法 - Google Patents

数据写入装置及方法 Download PDF

Info

Publication number
CN105677243B
CN105677243B CN201511031159.0A CN201511031159A CN105677243B CN 105677243 B CN105677243 B CN 105677243B CN 201511031159 A CN201511031159 A CN 201511031159A CN 105677243 B CN105677243 B CN 105677243B
Authority
CN
China
Prior art keywords
fdisk
data
data object
key assignments
subregion
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
CN201511031159.0A
Other languages
English (en)
Other versions
CN105677243A (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 CN201511031159.0A priority Critical patent/CN105677243B/zh
Publication of CN105677243A publication Critical patent/CN105677243A/zh
Priority to PCT/CN2016/098860 priority patent/WO2017113888A1/zh
Application granted granted Critical
Publication of CN105677243B publication Critical patent/CN105677243B/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

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)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明公开了一种数据写入方法,属于数据存储技术领域。用于键值存储系统,所述键值存储系统建立于叠瓦式磁记录SMR硬盘中,所述方法包括:接收写入指令,所述写入指令用于指示将键值数据对象写入所述SMR硬盘,所述SMR硬盘包含多个硬盘分区;在所述多个硬盘分区中确定第一目标分区;将所述键值数据对象切分成至少一个子数据对象,并将所述至少一个子数据对象顺序写入所述第一目标分区中的相邻磁轨,在后续删除该键值数据对象中的部分或者全部子数据对象时,形成的无效数据也会相对集中,不会在SMR硬盘上造成过多的空洞,缓解了SMR硬盘的碎片化程度,从而提高系统的垃圾回收效率。

Description

数据写入装置及方法
技术领域
本发明涉及数据存储技术领域,特别涉及一种数据写入装置及方法。
背景技术
SMR(Shingled Magnetic Recording,叠瓦式磁记录)技术是一种新兴的硬盘存储技术。目前的SMR硬盘都是按照磁轨进行分区,每一个硬盘分区的末端不采用叠瓦式布局。
KV(Key-Value,键值)存储是一种常用的非关系型存储方式,采用键值存储方式存储数据时,通常将一个键值数据对象切分成若干子数据对象,然后通过哈希(hash)方式将所有子数据对象打散到硬盘中进行存储。当键值数据对象存储入SMR硬盘时,一个键值数据对象的若干个子数据对象将会分散在各个硬盘分区,或者同一个硬盘分区上不连续的物理区域中。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
在键值存储中,业务删除时通常针对整个键值数据对象进行操作,由于SMR硬盘中同一个键值数据对象的子数据对象可能分散在多个硬盘分区,或者同一个硬盘分区上不连续的物理区域,因此,删除键值数据对象会在SMR硬盘上造成多个空洞,使得硬盘碎片化严重,影响存储系统垃圾回收的效率。
发明内容
为了解决现有技术中删除键值数据对象会在SMR硬盘上造成多个空洞,使得硬盘碎片化严重,影响存储系统垃圾回收的效率的问题,本发明实施例提供了一种数据写入装置及方法,用于键值存储系统中,所述键值存储系统建立于叠瓦式磁记录SMR硬盘中,所述技术方案如下:
第一方面,提供了一种数据写入方法,该方法包括:
接收写入指令,所述写入指令用于指示将键值数据对象写入所述SMR硬盘,所述SMR硬盘包含多个硬盘分区;在所述多个硬盘分区中确定第一目标分区;将所述键值数据对象切分成至少一个子数据对象,并将所述至少一个子数据对象顺序写入所述第一目标分区中的相邻磁轨。
本发明实施例提供的数据写入方法,通过接收用于指示将键值数据对象写入该SMR硬盘的写入指令,在SMR硬盘的多个硬盘分区中确定第一目标分区,并在确定的该第一目标分区中顺序写入该键值数据对象包含的至少一个子数据对象,在后续删除该键值数据对象中的部分或者全部子数据对象时,形成的无效数据也会相对集中,不会在SMR硬盘上造成过多的空洞,缓解了SMR硬盘的碎片化程度,从而提高系统的垃圾回收效率。
在第一方面的第一种可能的实现方式中,所述在所述多个硬盘分区中确定第一目标分区,包括:判断所述SMR硬盘中是否已存在与所述键值数据对象具有相同的对象标识的数据;若判断结果为所述SMR硬盘中已存在与所述键值数据对象具有相同的对象标识的数据,则将与所述键值数据对象具有相同的对象标识的数据所在的、剩余空间不小于所述键值数据对象的数据量的硬盘分区确定为所述第一目标分区。对键值数据对象进行写入时,可以优先将该键值数据对象写入到其它对应相同的对象标识的子数据对象所在的硬盘分区中,从而使对应相同的对象标识的数据更加集中,进一步缓解了删除数据时,SMR硬盘的碎片化程度。
在第一方面的第二种可能的实现方式中,所述键值数据对象包含的至少一个子数据对象各自对应所述键值数据对象的对象标识,所述方法还包括:在对所述SMR硬盘中的无效数据进行垃圾回收时,检测对应所述对象标识的各个有效的子数据对象是否存储于同一个硬盘分区;若检测结果为所述各个有效的子数据对象未存储于同一个硬盘分区,则在所述多个硬盘分区中确定第二目标分区;将所述各个有效的子数据对象搬移到所述第二目标分区。通过在对该SMR硬盘中的无效数据进行垃圾回收时,检测对应该对象标识的各个有效的子数据对象是否存储于同一个硬盘分区,若检测结果为该各个有效的子数据对象未存储于同一个硬盘分区,则在该多个硬盘分区中确定第二目标分区,将该各个有效的子数据对象搬移到该第二目标分区中的相邻磁轨,在统一进行垃圾回收,可以将有效数据搬移到一起,使具有相同的object-id的数据继续保持集中存储的状态,进一步缓解SMR硬盘的碎片化程度,提高垃圾回收效率。
结合第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,所述在所述多个硬盘分区中确定第二目标分区,包括:判断存储所述各个有效的子数据对象的硬盘分区中,是否存在满足预设条件的硬盘分区,所述预设条件为:所述硬盘分区的剩余空间不小于存储于所述硬盘分区之外的其它有效的子数据对象的数据量之和;若判断结果为存在满足所述预设条件的硬盘分区,则将所述满足所述预设条件的硬盘分区确定为所述第二目标分区。在进行垃圾回收时,将对应同一对象标识的各个有效的子数据对象优先搬移到已经存储有部分对应该对象标识的有效子数据对象的硬盘分区中,这样只需要将其它有效的子数据对象搬移到第二目标分区中即可,减少了数据搬移量。
第二方面,本发明实施例提供了一种存储设备,该存储设备包括:处理器和存储器;处理器被配置为执行存储器中存储的指令;处理器通过执行指令来实现上述第一方面或第一方面中任意一种可能的实现方式所提供的数据写入方法。
第三方面,本发明实施例提供了一种数据写入装置,该数据写入装置包括至少一个单元,该至少一个单元用于实现上述第一方面或第一方面中任意一种可能的实现方式所提供的数据写入方法。
可选的,所述在所述多个硬盘分区中确定第一目标分区,还包括:若判断结果为所述SMR硬盘中不存在与所述键值数据对象具有相同的对象标识的数据,则将所述多个硬盘分区中一个剩余空间不小于所述键值数据对象的数据量的硬盘分区确定为所述第一目标分区。
可选的,所述在所述多个硬盘分区中确定第二目标分区,还包括:若判断结果为不存在满足所述预设条件的硬盘分区,则将所述多个硬盘分区中一个剩余空间不小于所述各个有效的子数据对象的数据量之和的硬盘分区确定为所述第二目标分区。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明示例性实施例所示出的存储设备的结构示意图;
图2A是本发明一示例性实施例示出的数据写入方法的方法流程图;
图2B是图2A所示实施例涉及的第一目标分区确定方法的流程图;
图2C是图2A所示实施例涉及的第二目标分区确定方法的流程图;
图3是本发明一个示例性实施例提供的数据写入装置的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参考图1其示出了本发明一个示例性实施例提供的存储设备100的结构示意图。该存储设备100包括:存储控制器110以及至少一个硬盘120。其中,该存储设备100中运行有键值存储系统,至少一个硬盘120为SMR硬盘。
可选的,存储设备100的存储控制器110的数量为一个或多个。比如,存储控制器110为两个,其中一个为主存储控制器,另一个为备用存储控制器。当主存储控制器发生故障时,由备用存储控制器代替主存储控制器进行运行。
存储控制器110包括:处理器112和网络接口114。
处理器112包括一个或者一个以上处理核心。处理器112通过运行软件程序以及模块,从而执行各种功能应用以及数据处理。
网络接口114可以为多个,其中一部分网络接口用于存储设备100与其它主机或者设备进行通信,另一部分网络接口114用于与至少一个硬盘120通信。
可选的,存储控制器110还包括存储器116以及总线118等部件。
其中:存储器116通过总线118与处理器112相连。存储器116可用于存储软件程序以及模块。
存储器116可存储操作系统1162以及至少一个功能所需的应用程序模块1164。操作系统1162可以是实时操作系统(Real Time eXecutive,RTX)、LINUX、UNIX、WINDOWS或OSX之类的操作系统。应用程序模块1164可以是指令接收模块1164a、分区确定模块1164b以及写入模块1164c等。
指令接收模块1164a用于接收写入指令,所述写入指令用于指示将键值数据对象写入所述SMR硬盘,所述SMR硬盘包含多个硬盘分区;
分区确定模块1164b用于在所述多个硬盘分区中确定第一目标分区;
写入模块1164c用于将所述键值数据对象切分成至少一个子数据对象,并将所述至少一个子数据对象顺序写入所述第一目标分区中的相邻磁轨。
可选的,上述键值数据对象包含的至少一个子数据对象各自对应该键值数据对象的对象标识,应用程序模块1164还可以包括:检测模块1164d以及搬移模块1164e;
检测模块1164d,用于在对该SMR硬盘中的无效数据进行垃圾回收时,检测对应该对象标识的各个有效的子数据对象是否存储于同一个硬盘分区。
分区确定单元1164b,还用于若该检测单元1164d的检测结果为该各个有效的子数据对象未存储于同一个硬盘分区,则在该多个硬盘分区中确定第二目标分区。
搬移单元1164e,用于将该各个有效的子数据对象搬移到该第二目标分区中的相邻磁轨。
此外,存储器116可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。相应地。
本领域技术人员可以理解,图1中所示出的存储设备100结构并不构成对存储设备100的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
图2A是本发明一示例性实施例示出的数据写入方法的方法流程图,该方法可以用于键值存储系统中,由图1所示的存储设备执行。如图2A所示,该数据写入方法可以包括:
步骤201,接收写入指令,该写入指令用于指示将键值数据对象写入该SMR硬盘,该SMR硬盘包含多个硬盘分区。
在本示例性实施例中,存储设备可以先在缓存中缓冲一系列的键值数据对象,当满足一定条件,比如距离上次写入的时间达到预设时间阈值,或者,缓存数据的数据量达到一定的数据量阈值时,存储设备生成写入指令,或者,该写入指令也可以由用户通过指定的操作发送;当存储设备接收到该写入指令后,将缓存的键值数据对象在一次顺序的硬盘写操作中全部写入硬盘,从而提升写入的性能。
该步骤201可由存储设备中存储控制器的处理器执行存储器中的指令接收模块1164a来实现。
步骤202,在该多个硬盘分区中确定第一目标分区。
在本示例性实施例中,确定第一目标分区的中心思想是,将该键值数据对象的数据都尽可能的按顺序写入同一个硬盘分区。
具体的,请参考图2B,其示出了本示例性实施例涉及的第一目标分区确定方法的流程图,如图2B所示,该第一目标分区确定方法可以包括下列步骤202a至202。
步骤202a,判断该SMR硬盘中是否已存在与该键值数据对象具有相同的对象标识的数据,若是,进入步骤202b,否则,进入步骤202c。
在键值存储中,每个键值数据对象对应一个对象标识(object-id),该键值数据对象中每一个子数据对象也都对应该对象标识,对于一个待存储的键值数据对象,在硬盘中可能还存储在其它对应该对象标识的子数据对象,在该待存储的键值数据对象中的各个子数据对象写入硬盘后,可以与硬盘中已有的对应该对象标识的子数据对象组成一个键值数据对象。
在本示例性实施例中,对键值数据对象进行写入时,可以优先将该键值数据对象写入到其它对应相同的对象标识的子数据对象所在的硬盘分区中,即存储设备首先判断是否已存在与该键值数据对象具有相同的对象标识的其它数据。
步骤202b,将与该键值数据对象具有相同的对象标识的数据所在的、剩余空间不小于该键值数据对象的数据量的硬盘分区确定为该第一目标分区。
可选的,在本示例性实施例中,如果SMR硬盘中已存在与该键值数据对象具有相同的对象标识的其它数据,则可以检查存在与该键值数据对象具有相同的对象标识的其它数据所在的硬盘分区,并将其中剩余空间不小于该键值数据对象的数据量的硬盘分区确定该第一目标分区。
如果该SMR硬盘中,与该键值数据对象具有相同的对象标识的其它数据所在的硬盘分区的剩余空间都小于该键值数据对象的数据量,则可以从其它硬盘分区中确定一个剩余空间不小于该键值数据对象的数据量的硬盘分区。
步骤202c,将该多个硬盘分区中一个剩余空间不小于该键值数据对象的数据量的硬盘分区确定为该第一目标分区。
如果SMR硬盘中不存在与该键值数据对象具有相同的对象标识的其它数据,则可以直接将一个剩余空间不小于该键值数据对象的数据量的硬盘分区确定为该第一目标分区。
或者,在实际应用中,存储设备也可以不关心该SMR硬盘中是否已存在与该键值数据对象具有相同的对象标识的数据,只从多个硬盘分区中确定出一个剩余空间足够的硬盘分区作为该第一目标分区即可。
该步骤202可由存储设备中存储控制器的处理器执行存储器中的分区确定模块1164b来实现。
步骤203,将该键值数据对象切分成至少一个子数据对象,并将该至少一个子数据对象顺序写入第一目标分区中的相邻磁轨。
在写入键值数据对象时,存储设备可以在第一目标分区中逐个磁轨写入该键值数据对象包含的各个子数据对象,保证一个键值数据对象的各个子数据对象都尽可能集中的存储在SMR硬盘中连续的物理区域上。若该第一目标分区中的剩余空间对应的磁轨在物理上不连续,则可以在第一目标分区内部进行数据搬移,使得第一目标分区的剩余空间对应的磁轨在物理上连续。进一步的,若第一目标分区内已经存储有与该键值数据对象具有相同的对象标识的其它数据,则在第一目标分区内部进行数据搬移后,使得第一目标分区的剩余空间对应的磁轨在物理上连续,且紧接在与该键值数据对象具有相同的对象标识的其它数据所在的磁轨之后。
可选的,在极端情况下,如果该SMR硬盘中各个硬盘分区的剩余空间都小于该键值数据对象的数据量,则可以从剩余空间最大的硬盘分区,依次顺序写入该键值数据对象包含的至少一个子数据对象,直至该键值数据对象全部写入硬盘。
本示例性实施例上述数据写入方法,在SMR硬盘中存储键值数据对象时,将键值数据对象中的各个子数据对象顺序写入相同的硬盘分区中,在后续删除该键值数据对象中的部分或者全部子数据对象时,形成的无效数据也会相对集中,不会在SMR硬盘上造成过多的空洞,缓解了SMR硬盘的碎片化程度,从而提高系统的垃圾回收效率。
该步骤203可由存储设备中存储控制器的处理器执行存储器中的写入模块1164c来实现。
步骤204,在对该SMR硬盘中的无效数据进行垃圾回收时,检测对应该键值数据对象的对象标识的各个有效的子数据对象是否存储于同一个硬盘分区。
其中,上述键值数据对象包含的至少一个子数据对象各自对应该键值数据对象的对象标识。
基于SMR硬盘的写入特点,SMR硬盘中的数据无法直接在原数据的基础上进行改写,只能无效之后重新进行顺序写,因此,当一个键值数据对象对应的各个子数据对象中的全部或者部分被删除时,存储设备首先将SMR硬盘中被删除的子数据对象设置为无效数据,后续在某一个时间点,存储设备会统一进行垃圾回收,将有效数据搬移到一起,使具有相同的object-id的数据继续保持集中存储的状态,进一步缓解SMR硬盘的碎片化程度,提高垃圾回收效率。
在进行垃圾回收时,存储设备首先查询各个对象标识对应的有效的子数据对象是否存储在同一个硬盘分区中,对于某一个对象标识,如果该对象标识对应的各个有效的子数据对象未存储在同一个硬盘分区中,则对该各个有效的子数据对象进行后续处理。
该步骤204可由存储设备中存储控制器的处理器执行存储器中的检测模块1164d来实现。
步骤205,若检测结果为该各个有效的子数据对象未存储于同一个硬盘分区,则在该多个硬盘分区中确定第二目标分区。
具体的,请参考图2C,其示出了本示例性实施例涉及的第二目标分区确定方法的流程图,如图2C所示,该第二目标分区确定方法可以包括下列步骤205a至205c。
步骤205a,判断存储对应同一对象标识的各个有效的子数据对象的硬盘分区中,是否存在满足预设条件的硬盘分区。若是,进入步骤205b,否则,进入步骤205c。
其中,该预设条件为:该硬盘分区的剩余空间不小于存储于该硬盘分区之外的其它有效的子数据对象的数据量之和。
步骤205b,将该满足该预设条件的硬盘分区确定为该第二目标分区。
在本示例性实施例中,为了减少数据搬移量,可以将对应同一对象标识的各个有效的子数据对象优先搬移到已经存储有部分对应该对象标识的有效子数据对象的硬盘分区中,因此,在确定第二目标区域时,存储设备首先从存储对应该对象标识的各个有效的子数据对象的硬盘分区中,查询一个剩余容量空间足够将其它有效的子数据对象搬移进去的硬盘分区作为第二目标分区,这样只需要将其它有效的子数据对象搬移到第二目标分区中即可。
步骤205c,将该多个硬盘分区中一个剩余空间不小于该各个有效的子数据对象的数据量之和的硬盘分区确定为该第二目标分区。
如果存储设备从存储对应该对象标识的各个有效的子数据对象的硬盘分区中,查询不到剩余容量空间足够将其它有效的子数据对象搬移进去的硬盘分区,则可以从其它的硬盘分区中确定一个剩余空间足够将该对象标识对应的各个有效的子数据对象搬移进去的硬盘分区作为第二目标分区。
该步骤205可由存储设备中存储控制器的处理器执行存储器中的分区确定单元1164b来实现。
步骤206,将该各个有效的子数据对象搬移到该第二目标分区中的相邻磁轨。
该步骤206可由存储设备中存储控制器的处理器执行存储器中的搬移单元1164e来实现。
综上所述,本示例性实施例所示的数据写入方法,通过接收用于指示将键值数据对象写入该SMR硬盘的写入指令,在SMR硬盘的多个硬盘分区中确定第一目标分区,并在确定的该第一目标分区中顺序写入该键值数据对象包含的至少一个子数据对象,在后续删除该键值数据对象中的部分或者全部子数据对象时,形成的无效数据也会相对集中,不会在SMR硬盘上造成过多的空洞,缓解了SMR硬盘的碎片化程度,从而提高系统的垃圾回收效率。
此外,本示例性实施例所示的数据写入方法,通过在对该SMR硬盘中的无效数据进行垃圾回收时,检测对应该对象标识的各个有效的子数据对象是否存储于同一个硬盘分区,若检测结果为该各个有效的子数据对象未存储于同一个硬盘分区,则在该多个硬盘分区中确定第二目标分区,将该各个有效的子数据对象搬移到该第二目标分区,在统一进行垃圾回收,可以将有效数据搬移到一起,使具有相同的object-id的数据继续保持集中存储的状态,进一步缓解SMR硬盘的碎片化程度,提高垃圾回收效率。
请参考图3,其示出了本发明一个示例性实施例提供的数据写入装置的框图。该数据写入装置可以通过软件、硬件或者两者的结合实现成为上述图1所示存储设备的全部或者一部分。该数据写入装置可以包括:指令接收单元301、分区确定单元302、写入单元303、检测单元304以及搬移单元305。
指令接收单元301,具有与指令接收模块1164a相同或相似的功能。
分区确定单元302,具有与分区确定模块1164b相同或相似的功能。
写入单元303,具有与写入模块1164c相同或相似的功能。
检测单元304,具有与检测模块1164d相同或相似的功能。
搬移单元305,具有与搬移模块1164e相同或相似的功能。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据写入装置,其特征在于,用于键值存储系统,所述键值存储系统建立于叠瓦式磁记录SMR硬盘中,所述装置包括:
指令接收单元,用于接收写入指令,所述写入指令用于指示将键值数据对象写入所述SMR硬盘,所述SMR硬盘包含多个硬盘分区;
分区确定单元,用于在所述多个硬盘分区中确定第一目标分区;
写入单元,用于将所述键值数据对象切分成至少一个子数据对象,并将所述至少一个子数据对象顺序写入所述第一目标分区中的相邻磁轨;
其中,在所述多个硬盘分区中确定第一目标分区时,所述分区确定单元,用于判断所述SMR硬盘中是否已存在与所述键值数据对象具有相同的对象标识的数据;若判断结果为所述SMR硬盘中已存在与所述键值数据对象具有相同的对象标识的数据,则将与所述键值数据对象具有相同的对象标识的数据所在的、剩余空间不小于所述键值数据对象的数据量的硬盘分区确定为所述第一目标分区。
2.根据权利要求1所述的装置,其特征在于,在所述多个硬盘分区中确定第一目标分区时,所述分区确定单元,还用于若判断结果为所述SMR硬盘中不存在与所述键值数据对象具有相同的对象标识的数据,则将所述多个硬盘分区中一个剩余空间不小于所述键值数据对象的数据量的硬盘分区确定为所述第一目标分区。
3.根据权利要求1所述的装置,其特征在于,所述键值数据对象包含的至少一个子数据对象各自对应所述键值数据对象的对象标识,所述装置还包括:
检测单元,用于在对所述SMR硬盘中的无效数据进行垃圾回收时,检测对应所述对象标识的各个有效的子数据对象是否存储于同一个硬盘分区;
所述分区确定单元,还用于若所述检测单元的检测结果为所述各个有效的子数据对象未存储于同一个硬盘分区,则在所述多个硬盘分区中确定第二目标分区;
搬移单元,用于将所述各个有效的子数据对象搬移到所述第二目标分区中的相邻磁轨。
4.根据权利要求3所述的装置,其特征在于,在所述多个硬盘分区中确定第二目标分区时,所述分区确定单元,用于判断存储所述各个有效的子数据对象的硬盘分区中,是否存在满足预设条件的硬盘分区,所述预设条件为:所述硬盘分区的剩余空间不小于存储于所述硬盘分区之外的其它有效的子数据对象的数据量之和;若判断结果为存在满足所述预设条件的硬盘分区,则将所述满足所述预设条件的硬盘分区确定为所述第二目标分区。
5.根据权利要求4所述的装置,其特征在于,在所述多个硬盘分区中确定第二目标分区时,所述分区确定单元,还用于若判断结果为不存在满足所述预设条件的硬盘分区,则将所述多个硬盘分区中一个剩余空间不小于所述各个有效的子数据对象的数据量之和的硬盘分区确定为所述第二目标分区。
6.一种数据写入方法,其特征在于,用于键值存储系统,所述键值存储系统建立于叠瓦式磁记录SMR硬盘中,所述方法包括:
接收写入指令,所述写入指令用于指示将键值数据对象写入所述SMR硬盘,所述SMR硬盘包含多个硬盘分区;
在所述多个硬盘分区中确定第一目标分区;
将所述键值数据对象切分成至少一个子数据对象,并将所述至少一个子数据对象顺序写入所述第一目标分区中的相邻磁轨;
其中,所述在所述多个硬盘分区中确定第一目标分区,包括:
判断所述SMR硬盘中是否已存在与所述键值数据对象具有相同的对象标识的数据;
若判断结果为所述SMR硬盘中已存在与所述键值数据对象具有相同的对象标识的数据,则将与所述键值数据对象具有相同的对象标识的数据所在的、剩余空间不小于所述键值数据对象的数据量的硬盘分区确定为所述第一目标分区。
7.根据权利要求6所述的方法,其特征在于,所述在所述多个硬盘分区中确定第一目标分区,还包括:
若判断结果为所述SMR硬盘中不存在与所述键值数据对象具有相同的对象标识的数据,则将所述多个硬盘分区中一个剩余空间不小于所述键值数据对象的数据量的硬盘分区确定为所述第一目标分区。
8.根据权利要求6所述的方法,其特征在于,所述键值数据对象包含的至少一个子数据对象各自对应所述键值数据对象的对象标识,所述方法还包括:
在对所述SMR硬盘中的无效数据进行垃圾回收时,检测对应所述对象标识的各个有效的子数据对象是否存储于同一个硬盘分区;
若检测结果为所述各个有效的子数据对象未存储于同一个硬盘分区,则在所述多个硬盘分区中确定第二目标分区;
将所述各个有效的子数据对象搬移到所述第二目标分区中的相邻磁轨。
9.根据权利要求8所述的方法,其特征在于,所述在所述多个硬盘分区中确定第二目标分区,包括:
判断存储所述各个有效的子数据对象的硬盘分区中,是否存在满足预设条件的硬盘分区,所述预设条件为:所述硬盘分区的剩余空间不小于存储于所述硬盘分区之外的其它有效的子数据对象的数据量之和;
若判断结果为存在满足所述预设条件的硬盘分区,则将所述满足所述预设条件的硬盘分区确定为所述第二目标分区。
10.根据权利要求9所述的方法,其特征在于,所述在所述多个硬盘分区中确定第二目标分区,还包括:
若判断结果为不存在满足所述预设条件的硬盘分区,则将所述多个硬盘分区中一个剩余空间不小于所述各个有效的子数据对象的数据量之和的硬盘分区确定为所述第二目标分区。
CN201511031159.0A 2015-12-31 2015-12-31 数据写入装置及方法 Active CN105677243B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201511031159.0A CN105677243B (zh) 2015-12-31 2015-12-31 数据写入装置及方法
PCT/CN2016/098860 WO2017113888A1 (zh) 2015-12-31 2016-09-13 数据写入装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511031159.0A CN105677243B (zh) 2015-12-31 2015-12-31 数据写入装置及方法

Publications (2)

Publication Number Publication Date
CN105677243A CN105677243A (zh) 2016-06-15
CN105677243B true CN105677243B (zh) 2018-12-28

Family

ID=56298494

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511031159.0A Active CN105677243B (zh) 2015-12-31 2015-12-31 数据写入装置及方法

Country Status (2)

Country Link
CN (1) CN105677243B (zh)
WO (1) WO2017113888A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677243B (zh) * 2015-12-31 2018-12-28 华为技术有限公司 数据写入装置及方法
CN106201353A (zh) * 2016-07-12 2016-12-07 曹蕊 一种用于键值存储系统的数据写入装置及方法
JP2019164854A (ja) * 2018-03-19 2019-09-26 株式会社東芝 磁気ディスク装置およびその記録方法
CN109445681B (zh) 2018-08-27 2021-05-11 华为技术有限公司 数据的存储方法、装置和存储系统
CN110780812B (zh) * 2019-09-27 2021-08-24 苏州浪潮智能科技有限公司 一种硬盘数据置无效方法与装置
CN111459412B (zh) 2020-03-30 2023-07-04 北京百度网讯科技有限公司 磁盘管理方法、装置以及电子设备
CN111857600B (zh) * 2020-07-30 2024-04-16 江苏金恒信息科技股份有限公司 一种数据读写方法及装置
CN112637327B (zh) * 2020-12-21 2022-07-22 北京奇艺世纪科技有限公司 一种数据处理方法、装置及系统
CN112954244B (zh) * 2021-01-19 2024-07-19 普联技术有限公司 监控录像的存储实现方法、装置、设备及存储介质
CN113867651B (zh) * 2021-12-03 2022-02-25 武汉深之度科技有限公司 一种硬盘数据清理方法、装置及计算设备
CN114020707B (zh) * 2022-01-06 2022-06-14 阿里云计算有限公司 存储空间回收方法、存储介质及程序产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103955433A (zh) * 2014-05-09 2014-07-30 华为技术有限公司 盖瓦磁记录硬盘、盖瓦磁记录硬盘写数据的方法及装置
CN104461390A (zh) * 2014-12-05 2015-03-25 华为技术有限公司 将数据写入叠瓦状磁记录smr硬盘的方法及装置
US20150331613A1 (en) * 2013-12-13 2015-11-19 Seagate Technology Llc Media write operation

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677243B (zh) * 2015-12-31 2018-12-28 华为技术有限公司 数据写入装置及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150331613A1 (en) * 2013-12-13 2015-11-19 Seagate Technology Llc Media write operation
CN103955433A (zh) * 2014-05-09 2014-07-30 华为技术有限公司 盖瓦磁记录硬盘、盖瓦磁记录硬盘写数据的方法及装置
CN104461390A (zh) * 2014-12-05 2015-03-25 华为技术有限公司 将数据写入叠瓦状磁记录smr硬盘的方法及装置

Also Published As

Publication number Publication date
WO2017113888A1 (zh) 2017-07-06
CN105677243A (zh) 2016-06-15

Similar Documents

Publication Publication Date Title
CN105677243B (zh) 数据写入装置及方法
CN106407040B (zh) 一种远程数据复制方法及系统
CN106201659B (zh) 一种虚拟机热迁移的方法及宿主机
CN105589812B (zh) 磁盘碎片整理方法、装置及主机
US8918609B2 (en) Storage apparatus and data management method to determine whether to migrate data from a first storage device to a second storage device based on an access frequency of a particular logical area
CN107247619B (zh) 虚拟机热迁移方法、装置、系统、存储介质及设备
EP3553647A1 (en) Data write method, apparatus, and system
CN104468521B (zh) 在线迁移方法、装置和系统
CN104461685B (zh) 虚拟机处理方法和虚拟计算机系统
EP2869203A1 (en) Computer system, and arrangement of data control method
CN103500146B (zh) 虚拟机磁盘存储数据迁移方法和系统
CN106156302B (zh) 一种大字段数据的处理方法及装置
KR20110093035A (ko) 플래시 주소 변환 장치 및 그 방법
CN103150122B (zh) 一种磁盘缓存空间管理方法和装置
CN105468538B (zh) 一种内存迁移方法及设备
CN111033471A (zh) 用于控制只追加文件的方法、系统以及介质
CN105824846A (zh) 数据迁移方法及装置
CN108255576A (zh) 虚拟机热迁移异常处理方法、装置和存储介质
CN110489150A (zh) 一种虚拟机热升级方法、装置及其相关设备
CN104951243B (zh) 虚拟化存储系统中的存储扩展方法和装置
CN115639970A (zh) 基于磁盘阵列卡的存储虚拟化方法、系统、装置及设备
CN111580933A (zh) 一种基于硬件加速的虚拟机在线迁移方法
CN107301021A (zh) 一种利用ssd缓存对lun进行加速的方法和装置
US20140164697A1 (en) Mainframe Storage Apparatus That Utilizes Thin Provisioning
CN113467722A (zh) 一种分布式存储系统的数据迁移方法及装置

Legal Events

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