SSD硬盘的扫描方法、装置、设备及存储介质与流程

文档序号:33160752发布日期:2023-02-04 00:34阅读:166来源:国知局
SSD硬盘的扫描方法、装置、设备及存储介质与流程
ssd硬盘的扫描方法、装置、设备及存储介质
技术领域
1.本发明涉及硬盘扫描领域,尤其涉及一种ssd硬盘的扫描方法、装置、设备及存储介质。


背景技术:

2.为了避免nand数据存放太久发生的data retention问题,host的文件系统和ssd内部都可能存在扫描全盘的功能。一般固态硬盘会采用read scrub技术,或者叫数据巡检、扫描重写技术。
3.read scrub技术是sun公司开发的zfs(zettabyte filesystem)文件系统。zfs的设计者发现用户的数据长期没有读过,即使是数据读取频繁的数据库应用,也存在长期不被访问的数据,如何数据不被读取,不管什么类型的磁盘,总是会有概率发生比特翻转,导致数据出错,等在此读取这份数据的时候,错误有可能比较严重,根本恢复不出原样。每个数据块都有自己的校验码checksum,只要被读了,就可以通过checksum发现数据是否出错了,提前对出错的数据块进行纠错。因此,zfs提供了一个功能叫scrub,对文件系统进行扫描,提前发现那些出错的数据,并纠错重写。
4.但是,host的文件系统和ssd内部数据处理都存在全盘扫描功能,导致系统花费过多的资源重复对大量数据进行纠错重写,需要一种新技术解决当前问题。


技术实现要素:

5.本发明的主要目的在于解决host的文件系统和ssd内部数据处理都存在全盘扫描功能,导致系统花费过多的资源重复对大量数据进行纠错重写的技术问题。
6.本发明第一方面提供了一种ssd硬盘的扫描方法,所述ssd硬盘的扫描方法包括:
7.接收读写指令,对所述读写指令对应的存储块进行读写处理,记录所述存储块的处理时刻;
8.接收全盘扫描指令,分析ssd盘中每个存储块的处理时刻,得到处理时差集;
9.提取所述处理时差集中的处理时差,判断所述处理时差是否超过预置时差阈值;
10.若超过,则对所述处理时差对应存储块进行纠错重写处理;
11.若未超过,则跳过对所述处理时差对应的存储块操作处理。
12.可选的,在本发明第一方面的第一种实现方式中,所述接收全盘扫描指令,分析ssd盘中每个存储块的处理时刻,得到处理时差集包括:
13.接收全盘扫描指令,读取所述全盘扫描指令对应的扫描时刻;
14.分析ssd盘中每个存储块的处理时刻,得到处理时刻集;
15.将所述处理时刻集中处理时刻与所述扫描时刻相减,得到处理时差集。
16.可选的,在本发明第一方面的第二种实现方式中,所述接收全盘扫描指令包括:
17.接收全盘扫描指令,分析所述全盘扫描指令的数据来源,其中,所述数据来源包括:host主控来源、ssd硬盘来源;
18.当数据来源为host主控来源,则关闭ssd硬盘的全盘扫描指令执行;
19.当数据来源为ssd硬盘来源,则关闭host主控的全盘扫描指令执行。
20.可选的,在本发明第一方面的第三种实现方式中,所述对所述处理时差对应存储块进行纠错重写处理包括:
21.判断所述处理时差对应存储块是否存在写入数据;
22.若不存在,则跳过所述处理时差对应的存储块;
23.若存在,则对所述处理时差对应存储块进行纠错重写处理。
24.可选的,在本发明第一方面的第四种实现方式中,所述对所述读写指令对应的存储块进行读写处理,记录所述存储块的处理时刻包括:
25.对所述读写指令对应的存储块进行读写处理,记录所述存储块对应读写计数器的归零时刻。
26.可选的,在本发明第一方面的第五种实现方式中,所述对所述处理时差对应存储块进行纠错重写处理包括:
27.读取所述处理时差对应存储块的闪存页翻转比特数;
28.判断所述闪存页翻转比特数是否大于预置重写阈值;
29.若大于重写阈值,则对所述存储块进行纠错重写处理。
30.可选的,在本发明第一方面的第六种实现方式中,所述对所述存储块进行纠错重写处理包括:
31.选择ssd硬盘中的空白存储块,将所述处理时差对应存储块的数据复制进入所述空白存储块,得到重写存储块;
32.擦除所述处理时差对应存储块的所有数据。
33.本发明第二方面提供了一种ssd硬盘的扫描装置,所述ssd硬盘的扫描装置包括:
34.读写模块,用于接收读写指令,对所述读写指令对应的存储块进行读写处理,记录所述存储块的处理时刻;
35.扫描模块,用于接收全盘扫描指令,分析ssd盘中每个存储块的处理时刻,得到处理时差集;
36.判断模块,用于提取所述处理时差集中的处理时差,判断所述处理时差是否超过预置时差阈值;
37.纠错重写模块,用于若超过,则对所述处理时差对应存储块进行纠错重写处理;
38.处理忽略模块,用于若未超过,则跳过对所述处理时差对应的存储块操作处理。
39.本发明第三方面提供了一种ssd硬盘的扫描设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述ssd硬盘的扫描设备执行上述的ssd硬盘的扫描方法。
40.本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的ssd硬盘的扫描方法。
41.在本发明实施例中,在host端进行read scrub扫描时,ssd可关闭扫描功能,而当ssd内部开启扫描功能时,则会读取ssd盘的数据块的读写信息时间,在一定时间内,host主控有读过对应的数据块数据,则不会进行扫描,而对超过一定时间的数据块进行扫描,降低
资源消耗。本方案解决了host的文件系统和ssd内部数据处理都存在全盘扫描功能,导致系统花费过多的资源重复对大量数据进行纠错重写的技术问题。
附图说明
42.图1为本发明实施例中ssd硬盘的扫描方法的一个实施例示意图;
43.图2为本发明实施例中ssd硬盘的扫描方法的另一个实施例示意图;
44.图3为本发明实施例中ssd硬盘的扫描装置的一个实施例示意图;
45.图4为本发明实施例中ssd硬盘的扫描装置的另一个实施例示意图;
46.图5为本发明实施例中ssd硬盘的扫描设备的一个实施例示意图。
具体实施方式
47.本发明实施例提供了一种ssd硬盘的扫描方法、装置、设备及存储介质。
48.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
49.为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中ssd硬盘的扫描方法的一个实施例包括:
50.101、接收读写指令,对读写指令对应的存储块进行读写处理,记录存储块的处理时刻;
51.102、接收全盘扫描指令,分析ssd盘中每个存储块的处理时刻,得到处理时差集;
52.103、提取处理时差集中的处理时差,判断处理时差是否超过预置时差阈值;
53.104、若超过,则对处理时差对应存储块进行纠错重写处理;
54.105、若未超过,则跳过对处理时差对应的存储块操作处理。
55.在101-105步骤中,trap-assisted tunneling(tat)效应:隧道氧化层是绝缘的,但是随着闪存的使用,历经很多次的擦写,氧化层和浮栅层的损耗,在氧化层的电荷被滞留下来,绝缘体产生了导电性,电荷从浮栅运动的就更快了。所以,闪存擦写次数越多,数据保存时间就越短。到最后额定擦写次数快到的时候,比如3000次,刚写好的的数据很容易出错。日常读写的数据操作将存储块进行读写处理后,记录每个存储块的处理时刻。然后,在ssd盘和host主控中都会有read scrub扫描操作,read scrub是全盘扫描的过程,但是已经读写过的数据不需要在此被扫描,此时处理时刻作为是否进行扫描存储块的依据。处理时差就是全盘扫描的时刻与读写处理的时刻之间的差值,判断这个差值是否大于了时差阈值,如果大于时差阈值就要对该存储块进行纠错处理,如果没大于则跳过对该存储块的处理。例如,设置的时差阈值为14天,处理间隔时长超过14天就需要重新读写纠错,而没有超过14天则该存储块不需要处理。
56.进一步的,在101可以执行以下步骤:
57.1011、对读写指令对应的存储块进行读写处理,记录存储块对应读写计数器的归零时刻
58.在本实施例中,对存储块的read cnt进行监控,记录read cnt的读写计数器的归零时刻作为处理时刻,并覆盖上一次归零时刻。
59.进一步的,在104可以执行以下步骤:
60.1041、读取处理时差对应存储块的闪存页翻转比特数;
61.1042、判断闪存页翻转比特数是否大于预置重写阈值;
62.1043、若大于重写阈值,则对存储块进行纠错重写处理。
63.在1041-1043步骤中,如果翻转比特数较高,采用搬运的方式把存储数据块搬运到空白存储块里,如果翻转比特数不是很高小于重写阈值,则利用内存空间对该存储块进行重写覆盖即可。
64.进一步的,在1043可以执行以下步骤:
65.10431、选择ssd硬盘中的空白存储块,将处理时差对应存储块的数据复制进入空白存储块,得到重写存储块;
66.10432、擦除处理时差对应存储块的所有数据。
67.在10431-10432步骤中,翻转比特数过大,则采用搬运方式把存储块的数据复制进入空白存储块,然后擦除原有的存储块的数据,实现重写纠错的过程。
68.在本发明实施例中,在host端进行read scrub扫描时,ssd可关闭扫描功能,而当ssd内部开启扫描功能时,则会读取ssd盘的数据块的读写信息时间,在一定时间内,host主控有读过对应的数据块数据,则不会进行扫描,而对超过一定时间的数据块进行扫描,降低资源消耗。本方案解决了host的文件系统和ssd内部数据处理都存在全盘扫描功能,导致系统花费过多的资源重复对大量数据进行纠错重写的技术问题。
69.请参阅图2,本发明实施例中ssd硬盘的扫描方法的另一个实施例包括:
70.201、接收读写指令,对读写指令对应的存储块进行读写处理,记录存储块的处理时刻;
71.本实施例步骤类似于第一个实施例,在此不做赘述,请参考第一个实施例。
72.202、接收全盘扫描指令,读取全盘扫描指令对应的扫描时刻;
73.203、分析ssd盘中每个存储块的处理时刻,得到处理时刻集;
74.204、将处理时刻集中处理时刻与扫描时刻相减,得到处理时差集;
75.在202-204步骤中,全盘扫描指令是带有发出时刻,将发出时刻作为扫描时刻,然后读取每个存储块的处理时刻,每个处理时刻和扫描时刻相减,得到一个差值,将差值确定为处理时差,生成ssd盘的处理时差集。
76.进一步的,在“接收全盘扫描指令”时可以执行以下步骤:
77.2021、接收全盘扫描指令,分析全盘扫描指令的数据来源,其中,数据来源包括:host主控来源、ssd硬盘来源;
78.2022、当数据来源为host主控来源,则关闭ssd硬盘的全盘扫描指令执行;
79.2023、当数据来源为ssd硬盘来源,则关闭host主控的全盘扫描指令执行。
80.在2021-2023步骤中,执行全盘扫描指令的时候,需要对全盘扫描指令的来源进行分析,具体是host主控来源还是ssd硬盘来源。避免ssd硬盘和host主控在一定时间发出全
盘扫描,导致两端扫描的情况发生。当来源为host主控则关闭ssd硬盘的全盘扫描指令执行,当来源为ssd硬盘则关闭host主控的全盘扫描指令执行。
81.205、提取处理时差集中的处理时差,判断处理时差是否超过预置时差阈值;
82.本实施例步骤类似于第一个实施例,在此不做赘述,请参考第一个实施例。
83.206、若超过,则判断处理时差对应存储块是否存在写入数据;
84.207、若不存在,则跳过处理时差对应的存储块;
85.208、若存在,则对处理时差对应存储块进行纠错重写处理;
86.在206-208步骤,判断处理时差的数据块是否还有写入数据,因为读写过程中可能存在删除处理,如果存储块已经是空白状态就不需要再进行纠错了,而如果存储块仍然存在数据则仍然需要进行纠错重写的处理过程。
87.209、若未超过,则跳过对处理时差对应的存储块操作处理。
88.本实施例步骤类似于第一个实施例,在此不做赘述,请参考第一个实施例。
89.在本发明实施例中,在host端进行read scrub扫描时,ssd可关闭扫描功能,而当ssd内部开启扫描功能时,则会读取ssd盘的数据块的读写信息时间,在一定时间内,host主控有读过对应的数据块数据,则不会进行扫描,而对超过一定时间的数据块进行扫描,降低资源消耗。本方案解决了host的文件系统和ssd内部数据处理都存在全盘扫描功能,导致系统花费过多的资源重复对大量数据进行纠错重写的技术问题。
90.上面对本发明实施例中ssd硬盘的扫描方法进行了描述,下面对本发明实施例中ssd硬盘的扫描装置进行描述,请参阅图3,本发明实施例中ssd硬盘的扫描装置一个实施例,所述ssd硬盘的扫描装置包括:
91.读写模块301,用于接收读写指令,对所述读写指令对应的存储块进行读写处理,记录所述存储块的处理时刻;
92.扫描模块302,用于接收全盘扫描指令,分析ssd盘中每个存储块的处理时刻,得到处理时差集;
93.判断模块303,用于提取所述处理时差集中的处理时差,判断所述处理时差是否超过预置时差阈值;
94.纠错重写模块304,用于若超过,则对所述处理时差对应存储块进行纠错重写处理;
95.处理忽略模块305,用于若未超过,则跳过对所述处理时差对应的存储块操作处理。
96.在本发明实施例中,在host端进行read scrub扫描时,ssd可关闭扫描功能,而当ssd内部开启扫描功能时,则会读取ssd盘的数据块的读写信息时间,在一定时间内,host主控有读过对应的数据块数据,则不会进行扫描,而对超过一定时间的数据块进行扫描,降低资源消耗。本方案解决了host的文件系统和ssd内部数据处理都存在全盘扫描功能,导致系统花费过多的资源重复对大量数据进行纠错重写的技术问题。
97.请参阅图4,本发明实施例中ssd硬盘的扫描装置的另一个实施例,所述ssd硬盘的扫描装置包括:
98.读写模块301,用于接收读写指令,对所述读写指令对应的存储块进行读写处理,记录所述存储块的处理时刻;
99.扫描模块302,用于接收全盘扫描指令,分析ssd盘中每个存储块的处理时刻,得到处理时差集;
100.判断模块303,用于提取所述处理时差集中的处理时差,判断所述处理时差是否超过预置时差阈值;
101.纠错重写模块304,用于若超过,则对所述处理时差对应存储块进行纠错重写处理;
102.处理忽略模块305,用于若未超过,则跳过对所述处理时差对应的存储块操作处理。
103.其中,所述扫描模块302具体用于:
104.接收全盘扫描指令,读取所述全盘扫描指令对应的扫描时刻;
105.分析ssd盘中每个存储块的处理时刻,得到处理时刻集;
106.将所述处理时刻集中处理时刻与所述扫描时刻相减,得到处理时差集。
107.其中,所述扫描模块302还可以具体用于:
108.接收全盘扫描指令,分析所述全盘扫描指令的数据来源,其中,所述数据来源包括:host主控来源、ssd硬盘来源;
109.当数据来源为host主控来源,则关闭ssd硬盘的全盘扫描指令执行;
110.当数据来源为ssd硬盘来源,则关闭host主控的全盘扫描指令执行。
111.其中,所述纠错重写模块304具体用于:
112.判断所述处理时差对应存储块是否存在写入数据;
113.若不存在,则跳过所述处理时差对应的存储块;
114.若存在,则对所述处理时差对应存储块进行纠错重写处理。
115.其中,所述读写模块301具体用于:
116.对所述读写指令对应的存储块进行读写处理,记录所述存储块对应读写计数器的归零时刻。
117.其中,所述纠错重写模块304包括:
118.读取单元3041,用于读取所述处理时差对应存储块的闪存页翻转比特数;
119.判断单元3042,用于判断所述闪存页翻转比特数是否大于预置重写阈值;
120.重写单元3043,用于若大于重写阈值,则对所述存储块进行纠错重写处理。
121.其中,所述重写单元3043具体用于:
122.选择ssd硬盘中的空白存储块,将所述处理时差对应存储块的数据复制进入所述空白存储块,得到重写存储块;
123.擦除所述处理时差对应存储块的所有数据。
124.在本发明实施例中,在host端进行read scrub扫描时,ssd可关闭扫描功能,而当ssd内部开启扫描功能时,则会读取ssd盘的数据块的读写信息时间,在一定时间内,host主控有读过对应的数据块数据,则不会进行扫描,而对超过一定时间的数据块进行扫描,降低资源消耗。本方案解决了host的文件系统和ssd内部数据处理都存在全盘扫描功能,导致系统花费过多的资源重复对大量数据进行纠错重写的技术问题。
125.上面图3和图4从模块化功能实体的角度对本发明实施例中的ssd硬盘的扫描装置进行详细描述,下面从硬件处理的角度对本发明实施例中ssd硬盘的扫描设备进行详细描
述。
126.图5是本发明实施例提供的一种ssd硬盘的扫描设备的结构示意图,该ssd硬盘的扫描设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对ssd硬盘的扫描设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在ssd硬盘的扫描设备500上执行存储介质530中的一系列指令操作。
127.基于ssd硬盘的扫描设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如windows serve,mac os x,unix,linux,freebsd等等。本领域技术人员可以理解,图5示出的ssd硬盘的扫描设备结构并不构成对基于ssd硬盘的扫描设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
128.本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述ssd硬盘的扫描方法的步骤。
129.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
130.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
131.以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1