CN106980471B - 一种提高智能设备的硬盘写入性能的方法及装置 - Google Patents

一种提高智能设备的硬盘写入性能的方法及装置 Download PDF

Info

Publication number
CN106980471B
CN106980471B CN201710188400.3A CN201710188400A CN106980471B CN 106980471 B CN106980471 B CN 106980471B CN 201710188400 A CN201710188400 A CN 201710188400A CN 106980471 B CN106980471 B CN 106980471B
Authority
CN
China
Prior art keywords
hard disk
sectors
cache
physical hard
data
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
CN201710188400.3A
Other languages
English (en)
Other versions
CN106980471A (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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201710188400.3A priority Critical patent/CN106980471B/zh
Publication of CN106980471A publication Critical patent/CN106980471A/zh
Priority to PCT/CN2017/107005 priority patent/WO2018176811A1/zh
Application granted granted Critical
Publication of CN106980471B publication Critical patent/CN106980471B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0673Single storage device
    • G06F3/0674Disk device

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种提高智能设备的硬盘写入性能的方法,包括:利用非易失性内存技术和所述智能设备的物理硬盘生成虚拟硬盘,所述虚拟硬盘中存储需要写入所述物理硬盘的数据块;将所述数据块写入到所述物理硬盘对应的缓存上;根据所述物理硬盘存储的数据的位置信息,获取所述物理硬盘中的连续的空闲扇区的相关信息,并根据该相关信息和所述数据块的长度将暂存在所述缓存中的数据块顺序写入到连续的所述空闲扇区中。本方法及相应的装置能够有效提高数据连续写入硬盘(物理硬盘)的概率,而降低了随机将数据写入硬盘的概率,节省了数据写入硬盘的时间,提高了硬盘写入性能。

Description

一种提高智能设备的硬盘写入性能的方法及装置
技术领域
本发明涉及智能设备存储领域,特别涉及一种提高智能设备的硬盘写入性能的方法及装置。
背景技术
在计算机等智能设备的使用过程中,需要将数据存储在计算机等智能设备的硬盘中,在进行数据写入硬盘的操作时需要将数据块写入硬盘相应的扇区中,但是目前在数据块写入扇区时为随机写入,尤其在对多个数据块操作时该写入方式使得多个数据块分散写入不同的扇区中,复杂的写入的方式会增加写入时间,并造成数据输入和输出的延迟,影响写入性能。
发明内容
本发明实施例的目的在于提供一种提高智能设备的硬盘写入性能的方法及装置,该方法能够增加智能设备的硬盘进行顺序写的动作,提高硬盘的写入效率。
为了解决上述技术问题,本发明的实施例采用了如下技术方案:一种提高智能设备的硬盘写入性能的方法,包括:
利用非易失性内存技术和所述智能设备的物理硬盘生成虚拟硬盘,所述虚拟硬盘中存储需要写入所述物理硬盘的数据块;
将所述数据块写入到所述物理硬盘对应的缓存上;
根据所述物理硬盘存储的数据的位置信息,获取所述物理硬盘中的连续的空闲扇区的相关信息,并根据该相关信息和所述数据块的长度将暂存在所述缓存中的数据块顺序写入到连续的所述空闲扇区中。
作为优选,将所述数据块写入到所述物理硬盘对应的缓存上之前判断所述缓存是否写满;
当所述缓存被写满时,判断其中的所述数据块是否写入到所述物理硬盘中;
如果没有写入所述物理硬盘中,则将所述缓存中的数据块顺序写入到所述物理硬盘的连续的空闲扇区上并释放该数据块占用的所述缓存的相应空间。
作为优选,如果所述缓存中的数据块已经写入到所述物理硬盘中,判断所述缓存中数据块是否发生更改,如果未发生更改则释放该数据块在所述缓存的相应空间,如果已经发生更改时,将所述缓存中的数据块顺序写入到所述物理硬盘中的连续的所述空闲扇区上,并释放更改前的所述数据块占用的所述物理硬盘的扇区。
作为优选,该方法还包括存储在缓存中的数据块写入所述物理硬盘的过程中对所述物理硬盘中的空闲扇区进行碎片整理。
作为优选,碎片整理的步骤包括:
当所述缓存中的数据块顺序写入到连续的所述物理硬盘的扇区后,对已经写入数据的扇区的临近扇区进行判断,如果所述临近扇区为空闲扇区,则移动所述数据块在扇区中的位置,以合并所述临近扇区。
本发明实施例还提供了一种提高智能设备的硬盘写入性能的装置,包括相互连接的处理器和物理硬盘,所述物理硬盘具有缓存,所述处理器执行:
利用非易失性内存技术和所述物理硬盘生成虚拟硬盘,所述虚拟硬盘中存储需要写入所述物理硬盘的数据块;
将所述数据块写入到所述物理硬盘对应的缓存上;
根据所述物理硬盘存储的数据的位置信息,获取所述物理硬盘中的连续的空闲扇区的相关信息,并根据该相关信息和所述数据块的长度将暂存在所述缓存中的数据块顺序写入到连续的所述空闲扇区中。
作为优选,所述处理器进一步执行:
将所述数据块写入到所述物理硬盘对应的缓存上之前判断所述缓存是否写满;
当所述缓存被写满时,判断其中的所述数据块是否写入到所述物理硬盘中;
如果没有写入所述物理硬盘中,则将所述缓存中的数据块顺序写入到所述物理硬盘的连续的空闲扇区上并释放该数据块占用的所述缓存的相应空间。
作为优选,如果所述缓存中的数据块已经写入到所述物理硬盘中,所述处理器判断所述缓存中数据块是否发生更改,如果未发生更改则释放该数据块在所述缓存的相应空间,如果已经发生更改时,将所述缓存中的数据块顺序写入到所述物理硬盘中的连续的所述空闲扇区上,并释放更改前的所述数据块占用的所述物理硬盘的扇区。
作为优选,所述处理器在存储在缓存中的数据块写入所述物理硬盘的过程中能够对所述物理硬盘中的空闲扇区进行碎片整理。
作为优选,所述处理器在进行碎片整理的过程中执行:
当所述缓存中的数据块顺序写入到连续的所述物理硬盘的扇区后,对已经写入数据的扇区的临近扇区进行判断,如果所述临近扇区为空闲扇区,则移动所述数据块在扇区中的位置,以合并所述临近扇区。
本发明实施例的有益效果在于:本方法及相应的装置能够有效提高数据连续写入硬盘(物理硬盘)的概率,而降低了随机将数据写入硬盘的概率,节省了数据写入硬盘的时间,提高了硬盘写入性能。
附图说明
图1为本发明实施例的提高智能设备的硬盘写入性能的方法的流程图;
图2为本发明实施例的数据写入物理硬盘的第一种情况示意图;
图3为本发明实施例的数据写入物理硬盘的第二种情况示意图;
图4为本发明实施例的数据写入物理硬盘的第三种情况示意图;
图5为本发明实施例的数据写入物理硬盘的第四种情况示意图;
图6为本发明实施例的数据写入物理硬盘的第五种情况示意图;
图7为本发明实施例的提高智能设备的硬盘写入性能的方法的具体流程图;
图8为本发明实施例的提高智能设备的硬盘写入性能的装置的结构框图。
附图标记说明
1-处理器 2-虚拟硬盘 3-缓存
4-物理硬盘
具体实施方式
此处参考附图描述本发明的各种方案以及特征。
应理解的是,可以对此处公开的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本发明的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且与上面给出的对本发明的大致描述以及下面给出的对实施例的详细描述一起用于解释本发明的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本发明的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本发明进行了描述,但本领域技术人员能够确定地实现本发明的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
当结合附图时,鉴于以下详细说明,本发明的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本发明的具体实施例;然而,应当理解,所公开的实施例仅仅是本发明的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本发明模糊不清。因此,本文所公开的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本发明。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本发明的相同或不同实施例中的一个或多个。
本发明实施例的一种提高智能设备的硬盘写入性能的方法,该方法能够对计算机等智能设备的硬盘(如SMR硬盘)进行操作并提高硬盘的写入性能,避免出现如图1所示的非连续写(如随机写)的情况,如该非连续写的方式将缓存3中扇区编号为c1中的数据写入到物理硬盘4编号为d1的扇区中,c2中的数据写入到d4,c3中的数据写入到d3,c4中的数据写入到d8,c5中的数据写入到d6,c6中的数据写入到d7,上述写入方法降低了硬盘的写入性能。而结合图7本发明实施例的提高智能设备的硬盘写入性能的方法包括:
利用非易失性内存技术(NVDIMM)和智能设备的物理硬盘4生成虚拟硬盘2,虚拟硬盘2中存储需要写入物理硬盘4的数据块。非易失性内存技术(NVDIMM)是在一种集成了动态随机存取存储器(DRAM)和非易失性内存芯片的技术,能够在完全断电的时候依然保存完整内存数据,在本实施例中可以使用该技术并结合物理硬盘4生成虚拟硬盘2,虚拟硬盘2中设有顺序排列的至少一个扇区,扇区中存储有需要写入物理硬盘4的数据块;
将数据块写入到物理硬盘4对应的缓存3上,缓存3也具有连续的扇区,能够存储数据块,而该写入方式可以为多种形式,例如可以将数据块按照排列的顺序的逐一的顺序写入缓存3中,也可以将数据块随机的写入缓存3中,还可以将按照预定规则写入缓存3中;
根据物理硬盘4存储的数据的位置信息,获取物理硬盘4中的连续的空闲扇区的相关信息,并根据该相关信息和数据块的长度将暂存在缓存3中的数据块顺序写入到连续的空闲扇区中。通常情况下将缓存3中的数据块存储到物理硬盘4中时,数据块具有一定的长度(例如每个数据块均具有一定长度,存储时对多个连续的数据块进行操作),一定长度的多个数据块必然需要足够多的空闲扇区才能进行存储,作为优选需要足够多的连续的空闲扇区进行存储,进而保证数据块能够按照排列顺序对应的连续写(顺序写)入到物理硬盘4中,而在获取物理硬盘4中的连续的空闲扇区的相关信息时可以检测连续的空闲扇区的长度,位置和编号等相关信息,从而能够准确寻找到连续的空闲扇区的位置,并将具有一定长度的数据块按照排列顺序对应的连续写(顺序写)入到这些空闲扇区中,在一个实施例中如图3所示,物理硬盘4的扇区均为空闲扇区,则可以将缓存3中的数据按照排列顺序对应的连续写(顺序写)入到物理硬盘4中,缓存3中编号为c1至c6的扇区中的数据块连续写入到物理硬盘4的连续扇区中,并且c1中的数据块写入d1中,c2中的数据块写入d2中,c3中的数据块写入d3中,c4中的数据块写入d4中,c5中的数据块写入d5中,c6中的数据块写入d6中,其中d1至d6为连续的扇区。该写入方法能够有效提高硬盘的写入效率,提高硬盘的整体性能。
在本发明的一个实施例中,将数据块写入到物理硬盘4对应的缓存3上之前判断缓存3是否写满;当缓存3被写满时,判断其中的数据块是否写入到物理硬盘4中;如果没有写入物理硬盘4中,则将缓存3中的数据块顺序写入到物理硬盘4的连续的空闲扇区上并释放该数据块占用的缓存3的相应空间。如果缓存3已经被写满数据那么再向缓存3写入数据时会将原有的数据覆盖掉,则会造成原有的数据丢失,因此在将数据块写入到物理硬盘4对应的缓存3上之前判断缓存3是否写满能够避免误操作造成数据丢失。如果判断缓存3已经被写满数据,还要进一步判断缓存3中的数据块是否写入到物理硬盘4中,例如图4中的缓存3已经被写满,进而判断缓存3中编号为c2,c5,c6的扇区中的数据是否被写入了物理硬盘4,如果没有写入物理硬盘4中,则首先在物力硬盘中寻找连续的空闲扇区,并保证该连续的空闲扇区能够满足c2,c5,c6的扇区中的数据写入,如经过寻找后在物理硬盘4中获得编号为d7,d8,d9的连续的空闲扇区,将c2,c5,c6中的数据块分别写入到d7,d8,d9中,并释放缓存3中编号为c2,c5,c6的扇区中的空间,这样保证缓存3中的数据不会被丢失而且缓存3中还有空闲的扇区可以使用。
进一步的,如果缓存3中的数据块已经写入到物理硬盘4中,判断缓存3中数据块是否发生更改(例如缓存3中被写入新的数据块则说明数据块已经被更改),如果未发生更改(例如缓存3中的数据块没有被更新,而此时这些数据已经被写入到了物理硬盘4中)则释放该数据块在缓存3的相应空间,以使缓存3中的扇区能够被写入新的数据块。如果判断缓存3中数据块已经发生更改时(例如缓存3中被写入新的数据块),将缓存3中的数据块顺序写入到物理硬盘4中的连续的空闲扇区上,并释放更改前的数据块占用的物理硬盘4的扇区。结合图5进行进一步说明,如果判断缓存3中的编号为c1,c3,c4的扇区中的数据块没有被更新,而此时这些数据已经被写入到了物理硬盘4中,则释放c1,c3,c4的空间;如果判断缓存3中的编号为c1,c3,c4的扇区中的数据块为新写入的数据,将缓存3中的数据块顺序写入到物理硬盘4中的编号为d7,d8,d9的扇区中,并且释放c1,c3,c4数据块原本占用的物理硬盘4中编号为d1,d3,d6的扇区中的数据,以清空相应扇区,而不会给物理硬盘4造成数据冗余。
下面结合图4对上述方法的一个实施例进行进一步说明,在虚拟硬盘2中具有连续的多个扇区,编号分别为m1至mN,缓存3中具有连续的多个扇区,编号分别为c1至c6,物理硬盘4中具有多个连续的扇区d1至dN,图中有阴影的扇区代表有数据块已经占用了相应的扇区,空白的扇区代表其为空闲扇区,在虚拟硬盘2中m6,m8和m9中的数据请求写入物理硬盘4,此时m1,m3和m4已经分别将数据存储到了c1,c3和c4,并且缓存3中c2,c5和c6已经被占用但其中的数据块没有被写入到物理硬盘4中,搜索满足具有足够长度的空闲扇区,找到d7,d8和d9后将c2,c5和c6中原有的数据块写入到d7,d8和d9中,然后在将m6,m8和m9中的数据写入c2,c5和c6中,返回m6,m8和m9中的数据写入成功的信息。
下面结合图5对上述方法的另一个实施例进行进一步说明,在虚拟硬盘2中具有连续的多个扇区,编号分别为m1至mN,缓存3中具有连续的多个扇区,编号分别为c1至c6,物理硬盘4中具有多个连续的扇区d1至dN,图中有阴影的扇区代表有数据块已经占用了相应的扇区,在虚拟硬盘2中m6,m8和m9中有新数据请求写入物理硬盘4,此时m1,m3和m4已经分别将数据存储到了c1,c3和c4,并且缓存3已经被存满,c1,c3和c4中的数据可以转存到物理硬盘4中,在物理硬盘4中搜索连续的扇区d7,d8,d9,将c1,c3和c4中的数据分别按照排列顺序对应的连续写入到扇区d7,d8,d9(如c1中的数据写入d7,c2中的数据写入d8,c4中的数据写入d9),并且释放c1,c3,c4数据块原本占用的物理硬盘4中编号为d1,d3,d6的扇区中的数据,然后将m6,m8和m9中的数据对应写入到c1,c3和c4中,返回m6,m8和m9中的数据写入成功的信息。
在本发明的一个实施例中,该提高智能设备的硬盘写入性能的方法还包括存储在缓存3中的数据块写入物理硬盘4的过程中对物理硬盘4中的空闲扇区进行碎片整理。碎片整理可以将分散在不同位置的空闲扇区合并起来,以使这些空闲扇区具有足够的空间或长度能够存储新的数据,并且使缓存3中的数据能够按照排列顺序对应的连续写(顺序写)入到连续的多个空闲扇区中。
进一步来说,碎片整理的步骤包括:当缓存3中的数据块顺序写入到连续的物理硬盘4的扇区后,对已经写入数据的扇区的临近扇区进行判断,如果临近扇区为空闲扇区,则移动数据块在扇区中的位置,以合并临近扇区。例如物理硬盘4中的写入数据的扇区临近的左右两侧均有空闲扇区,将数据块向左或向右进行移动使得左右两侧均有空闲扇区合并为连续的空闲扇区,以达到整理碎片的目的。下面结合图6进一步进行说明,在虚拟硬盘2中m6,m8和m9中有新数据请求写入物理硬盘4,此时m1,m3和m4已经分别将数据存储到了c1,c3和c4,并且缓存3已经被存满,c1,c3和c4中的数据可以转存到物理硬盘4中的d2,d3和d4(如c1中的数据写入d2,c3中的数据写入d3,c4中的数据写入d4),虽然d2,d3和d4连续的扇区,但是在其两侧出现了空闲扇区d1和d5,d1和d5由于长度小不能单独的存储数据,调整映射关系,将原本为m4最终存入到d4中调整为将m4最终存入到d1中,按照新的映射关系将c1,c3和c4中的原数据连续写(顺序写)入到d1,d2和d3中,然后将m6,m8和m9中的数据对应写入到c1,c3和c4中,返回m6,m8和m9中的数据写入成功的信息。这样以来能够对原d1和d5的碎片进行整理形成连续的空闲扇区d4和d5,以备存储新的数据。
本发明实施例还一种提高智能设备的硬盘写入性能的装置,如图8所示,包括相互连接的处理器1和物理硬盘4,物理硬盘4具有缓存3,结合图7处理器1执行:
利用非易失性内存技术(NVDIMM)和智能设备的物理硬盘4生成虚拟硬盘2,虚拟硬盘2中存储需要写入物理硬盘4的数据块。非易失性内存技术(NVDIMM)是在一种集成了动态随机存取存储器(DRAM)和非易失性内存芯片的技术,能够在完全断电的时候依然保存完整内存数据,在本实施例中可以使用该技术并结合物理硬盘4生成虚拟硬盘2,虚拟硬盘2中设有顺序排列的至少一个扇区,扇区中存储有需要写入物理硬盘4的数据块;
处理器1能将数据块写入到物理硬盘4对应的缓存3上,缓存3也具有连续的扇区,能够存储数据块,而该写入方式可以为多种形式,例如可以将数据块按照排列的顺序的逐一的顺序写入缓存3中,也可以将数据块随机的写入缓存3中,还可以将按照预定规则写入缓存3中;
处理器1能根据物理硬盘4存储的数据的位置信息,获取物理硬盘4中的连续的空闲扇区的相关信息,并根据该相关信息和数据块的长度将暂存在缓存3中的数据块顺序写入到连续的空闲扇区中。通常情况下将缓存3中的数据块存储到物理硬盘4中时,数据块具有一定的长度(例如每个数据块均具有一定长度,存储时对多个连续的数据块进行操作),一定长度的多个数据块必然需要足够多的空闲扇区才能进行存储,作为优选需要足够多的连续的空闲扇区进行存储,进而保证数据块能够按照排列顺序对应的连续写(顺序写)入到物理硬盘4中,而在获取物理硬盘4中的连续的空闲扇区的相关信息时可以检测连续的空闲扇区的长度,位置和编号等相关信息,从而能够准确寻找到连续的空闲扇区的位置,并将具有一定长度的数据块按照排列顺序对应的连续写(顺序写)入到这些空闲扇区中,例如图3所示,缓存3中编号为c1至c6的扇区中的数据块连续写入到物理硬盘4的连续扇区中,并且c1中的数据块写入d1中,c2中的数据块写入d2中,c3中的数据块写入d3中,c4中的数据块写入d4中,c5中的数据块写入d5中,c6中的数据块写入d6中,其中d1至d6为连续的扇区。该写入方法能够有效提高硬盘的写入效率,提高硬盘的整体性能。
在本发明的一个实施例中,处理器1进一步执行:将数据块写入到物理硬盘4对应的缓存3上之前判断缓存3是否写满;当缓存3被写满时,判断其中的数据块是否写入到物理硬盘4中;如果没有写入物理硬盘4中,则将缓存3中的数据块顺序写入到物理硬盘4的连续的空闲扇区上并释放该数据块占用的缓存3的相应空间。如果缓存3已经被写满数据那么再向缓存3写入数据时会将原有的数据覆盖掉,则会造成原有的数据丢失,因此在将数据块写入到物理硬盘4对应的缓存3上之前判断缓存3是否写满能够避免误操作造成数据丢失。如果判断缓存3已经被写满数据,还要进一步判断缓存3中的数据块是否写入到物理硬盘4中,例如图4中的缓存3已经被写满,进而判断缓存3中编号为c2,c5,c6的扇区中的数据是否被写入了物理硬盘4,如果没有写入物理硬盘4中,则首先在物力硬盘中寻找连续的空闲扇区,并保证该连续的空闲扇区能够满足c2,c5,c6的扇区中的数据写入,如经过寻找后在物理硬盘4中获得编号为d7,d8,d9的连续的空闲扇区,将c2,c5,c6中的数据块分别写入到d7,d8,d9中,并释放缓存3中编号为c2,c5,c6的扇区中的空间,这样保证缓存3中的数据不会被丢失而且缓存3中还有空闲的扇区可以使用。
进一步的,如果缓存3中的数据块已经写入到物理硬盘4中,处理器1判断缓存3中数据块是否发生更改(例如缓存3中被写入新的数据块则说明数据块已经被更改),如果未发生更改(例如缓存3中的数据块没有被更新,而此时这些数据已经被写入到了物理硬盘4中)则释放该数据块在缓存3的相应空间,以使缓存3中的扇区能够被写入新的数据块。如果处理器1判断缓存3中数据块已经发生更改时(例如缓存3中被写入新的数据块),将缓存3中的数据块顺序写入到物理硬盘4中的连续的空闲扇区上,并释放更改前的数据块占用的物理硬盘4的扇区。结合图5进行进一步说明,如果处理器1判断缓存3中的编号为c1,c3,c4的扇区中的数据块没有被更新,而此时这些数据已经被写入到了物理硬盘4中,则释放c1,c3,c4的空间;如果处理器1判断缓存3中的编号为c1,c3,c4的扇区中的数据块为新写入的数据,将缓存3中的数据块顺序写入到物理硬盘4中的编号为d7,d8,d9的扇区中,并且释放c1,c3,c4数据块原本占用的物理硬盘4中编号为d1,d3,d6的扇区中的数据,以清空相应扇区,而不会给物理硬盘4造成数据冗余。
下面结合图4对上述装置的一个实施例进行进一步说明,在虚拟硬盘2中具有连续的多个扇区,编号分别为m1至mN,缓存3中具有连续的多个扇区,编号分别为c1至c6,物理硬盘4中具有多个连续的扇区d1至dN,图中有阴影的扇区代表有数据块已经占用了相应的扇区,空白的扇区代表其为空闲扇区,处理器1要求在虚拟硬盘2中m6,m8和m9中的数据写入物理硬盘4,此时m1,m3和m4已经分别将数据存储到了c1,c3和c4,并且缓存3中c2,c5和c6已经被占用但其中的数据块没有被写入到物理硬盘4中,处理器1在物理硬盘4中搜索满足具有足够长度的空闲扇区,找到d7,d8和d9后将c2,c5和c6中原有的数据块写入到d7,d8和d9中,然后在将m6,m8和m9中的数据写入c2,c5和c6中,返回m6,m8和m9中的数据写入成功的信息。
下面结合图5对上述装置的另一个实施例进行进一步说明,在虚拟硬盘2中具有连续的多个扇区,编号分别为m1至mN,缓存3中具有连续的多个扇区,编号分别为c1至c6,物理硬盘4中具有多个连续的扇区d1至dN,图中有阴影的扇区代表有数据块已经占用了相应的扇区,处理器1要求在虚拟硬盘2中m6,m8和m9中的数据写入物理硬盘4,此时m1,m3和m4已经分别将数据存储到了c1,c3和c4,并且缓存3已经被存满,c1,c3和c4中的数据可以转存到物理硬盘4中,处理器1在物理硬盘4中搜索连续的扇区d7,d8,d9,将c1,c3和c4中的数据分别按照排列顺序对应的连续写入到扇区d7,d8,d9(如c1中的数据写入d7,c2中的数据写入d8,c4中的数据写入d9),并且释放c1,c3,c4数据块原本占用的物理硬盘4中编号为d1,d3,d6的扇区中的数据,然后将m6,m8和m9中的数据对应写入到c1,c3和c4中,返回m6,m8和m9中的数据写入成功的信息。
在本发明的一个实施例中,在提高智能设备的硬盘写入性能的装置中,处理器1在存储在缓存3中的数据块写入物理硬盘4的过程中还要对物理硬盘4中的空闲扇区进行碎片整理。碎片整理可以将分散在不同位置的空闲扇区合并起来,以使这些空闲扇区具有足够的空间或长度能够存储新的数据,并且使缓存3中的数据能够按照排列顺序对应的连续写(顺序写)入到连续的多个空闲扇区中。
进一步来说,处理器1在碎片整理的过程中执行:当缓存3中的数据块顺序写入到连续的物理硬盘4的扇区后,对已经写入数据的扇区的临近扇区进行判断,如果临近扇区为空闲扇区,则移动数据块在扇区中的位置,以合并临近扇区。例如物理硬盘4中的写入数据的扇区临近的左右两侧均有空闲扇区,处理器1将数据块向左或向右进行移动使得左右两侧均有空闲扇区合并为连续的空闲扇区,以达到整理碎片的目的。下面结合图6进一步进行说明,处理器1要求在虚拟硬盘2中m6,m8和m9中的数据写入物理硬盘4,此时m1,m3和m4已经分别将数据存储到了c1,c3和c4,并且缓存3已经被存满,处理器1可以将c1,c3和c4中的数据转存到物理硬盘4中的d2,d3和d4(如c1中的数据写入d2,c3中的数据写入d3,c4中的数据写入d4),虽然d2,d3和d4连续的扇区,但是在其两侧出现了空闲扇区d1和d5,d1和d5由于长度小不能单独的存储数据,处理器1调整映射关系,将原本为m4最终存入到d4中调整为将m4最终存入到d1中,按照新的映射关系将c1,c3和c4中的原数据连续写(顺序写)入到d1,d2和d3中,然后将m6,m8和m9中的数据对应写入到c1,c3和c4中,返回m6,m8和m9中的数据写入成功的信息。这样以来能够对原d1和d5的碎片进行整理形成连续的空闲扇区d4和d5,以备存储新的数据。
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。

Claims (8)

1.一种提高智能设备的硬盘写入性能的方法,包括:
利用非易失性内存技术和所述智能设备的物理硬盘生成虚拟硬盘,所述虚拟硬盘中存储需要写入所述物理硬盘的数据块;
将所述数据块写入到所述物理硬盘对应的缓存上;
根据所述物理硬盘存储的数据的位置信息,获取所述物理硬盘中的连续的空闲扇区的相关信息,并根据该相关信息和所述数据块的长度将暂存在所述缓存中的数据块顺序写入到连续的所述空闲扇区中;其中所述物理硬盘中的连续的空闲扇区的相关信息包括连续的空闲扇区的长度,位置和编号;
所述方法还包括:将所述数据块写入到所述物理硬盘对应的缓存上之前判断所述缓存是否写满;
当所述缓存被写满时,判断其中的所述数据块是否写入到所述物理硬盘中;
如果没有写入所述物理硬盘中,则将所述缓存中的数据块顺序写入到所述物理硬盘的连续的空闲扇区上并释放该数据块占用的所述缓存的相应空间。
2.根据权利要求1所述的方法,如果所述缓存中的数据块已经写入到所述物理硬盘中,判断所述缓存中数据块是否发生更改,如果未发生更改则释放该数据块在所述缓存的相应空间,如果已经发生更改时,将所述缓存中的数据块顺序写入到所述物理硬盘中的连续的所述空闲扇区上,并释放更改前的所述数据块占用的所述物理硬盘的扇区。
3.根据权利要求1所述的方法,该方法还包括存储在缓存中的数据块写入所述物理硬盘的过程中对所述物理硬盘中的空闲扇区进行碎片整理。
4.根据权利要求3所述的方法,碎片整理的步骤包括:
当所述缓存中的数据块顺序写入到连续的所述物理硬盘的扇区后,对已经写入数据的扇区的临近扇区进行判断,如果所述临近扇区为空闲扇区,则移动所述数据块在扇区中的位置,以合并所述临近扇区。
5.一种提高智能设备的硬盘写入性能的装置,包括相互连接的处理器和物理硬盘,所述物理硬盘具有缓存,所述处理器执行:
利用非易失性内存技术和所述物理硬盘生成虚拟硬盘,所述虚拟硬盘中存储需要写入所述物理硬盘的数据块;
将所述数据块写入到所述物理硬盘对应的缓存上;
根据所述物理硬盘存储的数据的位置信息,获取所述物理硬盘中的连续的空闲扇区的相关信息,并根据该相关信息和所述数据块的长度将暂存在所述缓存中的数据块顺序写入到连续的所述空闲扇区中;其中所述物理硬盘中的连续的空闲扇区的相关信息包括连续的空闲扇区的长度,位置和编号;
所述处理器进一步执行:
将所述数据块写入到所述物理硬盘对应的缓存上之前判断所述缓存是否写满;
当所述缓存被写满时,判断其中的所述数据块是否写入到所述物理硬盘中;
如果没有写入所述物理硬盘中,则将所述缓存中的数据块顺序写入到所述物理硬盘的连续的空闲扇区上并释放该数据块占用的所述缓存的相应空间。
6.根据权利要求5所述的装置,其中,如果所述缓存中的数据块已经写入到所述物理硬盘中,所述处理器判断所述缓存中数据块是否发生更改,如果未发生更改则释放该数据块在所述缓存的相应空间,如果已经发生更改时,将所述缓存中的数据块顺序写入到所述物理硬盘中的连续的所述空闲扇区上,并释放更改前的所述数据块占用的所述物理硬盘的扇区。
7.根据权利要求5所述的装置,所述处理器在存储在缓存中的数据块写入所述物理硬盘的过程中能够对所述物理硬盘中的空闲扇区进行碎片整理。
8.根据权利要求5所述的装置,所述处理器在进行碎片整理的过程中执行:
当所述缓存中的数据块顺序写入到连续的所述物理硬盘的扇区后,对已经写入数据的扇区的临近扇区进行判断,如果所述临近扇区为空闲扇区,则移动所述数据块在扇区中的位置,以合并所述临近扇区。
CN201710188400.3A 2017-03-27 2017-03-27 一种提高智能设备的硬盘写入性能的方法及装置 Active CN106980471B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710188400.3A CN106980471B (zh) 2017-03-27 2017-03-27 一种提高智能设备的硬盘写入性能的方法及装置
PCT/CN2017/107005 WO2018176811A1 (zh) 2017-03-27 2017-10-20 一种硬盘写入方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710188400.3A CN106980471B (zh) 2017-03-27 2017-03-27 一种提高智能设备的硬盘写入性能的方法及装置

Publications (2)

Publication Number Publication Date
CN106980471A CN106980471A (zh) 2017-07-25
CN106980471B true CN106980471B (zh) 2020-08-25

Family

ID=59338981

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710188400.3A Active CN106980471B (zh) 2017-03-27 2017-03-27 一种提高智能设备的硬盘写入性能的方法及装置

Country Status (2)

Country Link
CN (1) CN106980471B (zh)
WO (1) WO2018176811A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106980471B (zh) * 2017-03-27 2020-08-25 联想(北京)有限公司 一种提高智能设备的硬盘写入性能的方法及装置
CN110968271B (zh) * 2019-11-25 2024-02-20 北京劲群科技有限公司 一种高性能数据存储方法、系统与装置
CN113282582B (zh) * 2021-05-21 2023-06-20 海南超船电子商务有限公司 一种船位数据的高效存储方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101398823A (zh) * 2007-09-26 2009-04-01 新奥特硅谷视频技术有限责任公司 利用虚拟文件系统技术实现远程存储的方法及系统
CN102622412A (zh) * 2011-11-28 2012-08-01 中兴通讯股份有限公司 一种分布式文件系统中的并发写入方法及装置
CN105138286A (zh) * 2015-08-11 2015-12-09 智云创新(北京)科技有限公司 一种在磁盘文件系统中混合利用ssd和smr硬盘的方法
CN105353985A (zh) * 2015-11-03 2016-02-24 国云科技股份有限公司 一种提高虚拟机临时文件读取速度的方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101539842A (zh) * 2009-04-27 2009-09-23 杭州华三通信技术有限公司 磁盘阵列系统的数据写入方法及磁盘阵列系统
CN102185929A (zh) * 2011-06-02 2011-09-14 杭州华三通信技术有限公司 一种基于san资源的视频监控数据存储方法及其装置
US9268709B2 (en) * 2012-10-18 2016-02-23 Marvell International Ltd. Storage controllers and storage control methods
US9729659B2 (en) * 2013-03-14 2017-08-08 Microsoft Technology Licensing, Llc Caching content addressable data chunks for storage virtualization
CN105306865B (zh) * 2015-10-29 2019-05-17 四川奇迹云科技有限公司 一种视频监控数据系统
CN106980471B (zh) * 2017-03-27 2020-08-25 联想(北京)有限公司 一种提高智能设备的硬盘写入性能的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101398823A (zh) * 2007-09-26 2009-04-01 新奥特硅谷视频技术有限责任公司 利用虚拟文件系统技术实现远程存储的方法及系统
CN102622412A (zh) * 2011-11-28 2012-08-01 中兴通讯股份有限公司 一种分布式文件系统中的并发写入方法及装置
CN105138286A (zh) * 2015-08-11 2015-12-09 智云创新(北京)科技有限公司 一种在磁盘文件系统中混合利用ssd和smr硬盘的方法
CN105353985A (zh) * 2015-11-03 2016-02-24 国云科技股份有限公司 一种提高虚拟机临时文件读取速度的方法

Also Published As

Publication number Publication date
WO2018176811A1 (zh) 2018-10-04
CN106980471A (zh) 2017-07-25

Similar Documents

Publication Publication Date Title
US12169453B2 (en) Namespace change propagation in non-volatile memory devices
US10318434B2 (en) Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application
CN103186350B (zh) 混合存储系统及热点数据块的迁移方法
US6711663B2 (en) Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof
US9966152B2 (en) Dedupe DRAM system algorithm architecture
US20180232314A1 (en) Method for storing data by storage device and storage device
US9507705B2 (en) Write cache sorting
KR20180131475A (ko) 비휘발성 메모리(nvm)에서 다중 네임스페이스 관리
US20100011156A1 (en) Memory device and management method of memory device
US8429339B2 (en) Storage device utilizing free pages in compressed blocks
US10120588B2 (en) Sliding-window multi-class striping
CN107025071A (zh) 非易失性存储器装置及其垃圾收集方法
JP2015512098A (ja) 複合不揮発性記憶装置のためのデータ移行
CN110377233A (zh) Ssd读性能优化方法、装置、计算机设备及存储介质
CN102087586A (zh) 数据处理方法及装置
CN105808163A (zh) 一种访问叠瓦式磁记录smr硬盘的方法及服务器
US9141293B2 (en) Storage device and method of accessing copy destination data
KR20110093035A (ko) 플래시 주소 변환 장치 및 그 방법
CN109213423A (zh) 基于地址屏障无锁处理并发io命令
CN112148226B (zh) 一种数据存储方法及相关装置
CN106980471B (zh) 一种提高智能设备的硬盘写入性能的方法及装置
CN115756312A (zh) 数据访问系统、数据访问方法和存储介质
KR102321346B1 (ko) 대용량 ssd 장치를 위한 데이터 저널링 방법
CN114003169B (zh) 一种用于ssd的数据压缩方法
CN108334457A (zh) 一种io处理方法及装置

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