CN113835641B - 一种条带初始化控制方法、装置、设备、存储介质 - Google Patents
一种条带初始化控制方法、装置、设备、存储介质 Download PDFInfo
- Publication number
- CN113835641B CN113835641B CN202111146438.7A CN202111146438A CN113835641B CN 113835641 B CN113835641 B CN 113835641B CN 202111146438 A CN202111146438 A CN 202111146438A CN 113835641 B CN113835641 B CN 113835641B
- Authority
- CN
- China
- Prior art keywords
- initialization
- stripe
- background
- task
- strip
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000006073 displacement reaction Methods 0.000 claims description 27
- 238000001514 detection method Methods 0.000 claims description 17
- 238000007781 pre-processing Methods 0.000 claims description 15
- 238000010586 diagram Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 9
- 239000003550 marker Substances 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 5
- 239000000835 fiber Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
Abstract
本发明提供一种条带初始化控制方法、装置、设备、存储介质,所述方法包括如下步骤:S1:接收用户提交的IO申请时,检测该条带是否初始化完成;若是,执行步骤S2,否则执行步骤S3;S2:执行IO操作;S3:申请条带锁;申请成功,执行步骤S4,否则,执行步骤S5;S4:执行前台初始化;前台初始化完成后,执行步骤S2;S5:认为在执行后台初始化,后台初始化完成后,释放独占锁;执行步骤S2。后台初始化任务添加单控独占锁,用户IO请求时,IO申请条带锁,申请条带锁需要等单控独占锁释放,用户IO不能和后台初始化IO同时运行,等后台任务释放单控独占锁,可以保护数据完整,增强设备稳定性,增强双控防御能力。
Description
技术领域
本发明涉及存储设备初始化技术领域,具体涉及一种条带初始化控制方法、装置、设备、存储介质。
背景技术
存储设备创建raid后会进行raid初始化(将以条带为粒度将整个raid空间写0),raid初始化有两种为前台初始化和后台初始化。后台初始化即存储设备没有进行IO读写,直接以条带为粒度将整个raid空间写0。前台初始化是后台初始化任务没有完成时,主机IO写入没有初始化的条带时需要做的动作。写入主机IO前先做前台初始化,然后再写入数据,这个是数据一致性的保证。前台初始化的条带不需要再做后台初始化,因为前台初始化后也会去更新条带的初始化位移图。
读一个没有初始化的条带仍然会触发前台初始化,即先写0,然后执行实际读操作,这样一个条带可能被写两次零,被两个控制器都执行一遍初始化操作。
发明内容
针对读一个没有初始化的条带仍然会触发前台初始化,即先写0,然后执行实际读操作,这样一个条带可能被写两次零,被两个控制器都执行一遍初始化操作,本发明提供一种条带初始化控制方法、装置、设备、存储介质。
本发明的技术方案是:
第一方面,本发明技术方案提供一种条带初始化控制方法,包括如下步骤:
接收用户提交的IO申请时,检测该条带是否初始化完成;
若是,执行IO操作;
若否,申请条带锁;
若申请成功,执行前台初始化;
前台初始化完成后,执行IO操作;
若申请不成功,则认为在执行后台初始化,后台初始化完成后,释放独占锁,执行IO操作。
后台初始化任务添加单控独占锁,等用户提交IO申请时,首先申请条带锁,若此时存在后台初始化任务,则会等后台初始化完成后将单控独占锁释放,就是说用户IO不能和后台初始化IO同时运行,需要等待后台任务释放独占锁,这样就解决了被两次初始化的情况发生。
进一步的,执行前台初始化的步骤包括:
将条带写0;
写0完成后执行异步任务去处理元数据。
前台初始化是用户提交IO读写相应的条带时,检测到条带未初始化而对该条带进行的初始化,前台初始化完成后,执行相应的IO操作。
进一步的,写0完成后执行异步任务去处理元数据的步骤包括:
将初始化元数据对应该条带的位移图中条带单元的标记位清0;
检查该条带位移图中条带单元的的标记位是否清0,并检查是否存在该条带的后台初始化任务,若有则报错退出。
前台初始化完成后,将初始化元数据对应该条带的位移图中条带单元的标记位清,后台初始化任务扫描到标记位清0时,不会再次进行后台初始化。
进一步的,若申请不成功,则认为在执行后台初始化,后台初始化完成后,释放独占锁,执行IO操作的步骤中,后台初始化的步骤包括:
扫描条带单元的元数据,每次同步读取元数据一个字,查找该字中的第一个不为0的条带单元标志位;
建立该条带的初始化任务并且后台初始化任务添加单孔独占锁,加入后台任务组;
执行后台任务组的初始化任务,执行完成后,释放单控独占锁。
进一步的,申请条带锁的步骤中,若申请条带锁时,后台初始化任务没有释放单控独占锁,则后台初始化正在进行,申请条带锁失败,否则,没有正在进行的后台初始化。
后台初始化任务添加的单控独占锁,等用户IO写IO申请条带锁时,会等单控独占锁释放,就是说用户IO不能和后台初始化IO同时运行,需要等待后台任务释放单控独占锁。
第二方面,本发明技术方案还提供一种条带初始化控制装置,包括检测模块、IO操作执行模块、初始化预处理模块、前台初始化执行模块、后台初始化执行模块;
检测模块,用于接收用户提交的IO申请时,检测该条带是否初始化完成;
IO操作执行模块,用于检测模块检测到条带初始化完成时,执行IO操作;前台初始化完成后,执行IO操作;还用于后台初始化释放单控独占锁后,执行IO操作。
初始化预处理模块,用于检测模块检测到条带未初始化时,申请条带锁;
前台初始化执行模块,用于初始化预处理模块申请到条带锁时,执行前台初始化;
后台初始化执行模块,用于执行后台初始化,初始化完成后释放独占锁。
后台初始化任务添加单控独占锁,等用户提交IO申请时,首先申请条带锁,若此时存在后台初始化任务,则会等后台初始化完成后将单控独占锁释放,就是说用户IO不能和后台初始化IO同时运行,需要等待后台任务释放独占锁,这样就解决了被两次初始化的情况发生。
进一步的,前台初始化执行模块包括写单元、异步处理单元;
写单元,用于将条带写0;
异步处理单元,用于写0完成后执行异步任务去处理元数据。
进一步的,异步处理单元,具体用于将初始化元数据对应该条带的位移图中条带单元的标记位清0;检查该条带位移图中条带单元的的标记位是否清0,并检查是否存在该条带的后台初始化任务,若有则报错退出。
进一步的,后台初始化执行模块包括扫描单元、任务创建单元和执行单元;
扫描单元,用于扫描条带单元的元数据,每次同步读取元数据一个字,查找该字中的第一个不为0的条带单元标志位;
任务创建单元,用于建立该条带的初始化任务并且后台初始化任务添加单孔独占锁,加入后台任务组;
执行单元,用于执行后台任务组的初始化任务,执行完成后,释放单控独占锁。
前台初始化完成后,将初始化元数据对应该条带的位移图中条带单元的标记位清,后台初始化任务扫描到标记位清0时,不会再次进行后台初始化。
进一步的,初始化预处理模块处理过程中,若申请条带锁时,后台初始化任务没有释放单控独占锁,则后台初始化正在进行,申请条带锁失败,否则,没有正在进行的后台初始化。
后台初始化任务添加的单控独占锁,等用户IO写IO申请条带锁时,会等单控独占锁释放,就是说用户IO不能和后台初始化IO同时运行,需要等待后台任务释放单控独占锁。
第三方面,本发明技术方案还提供一种计算机设备,包括处理器和存储器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如第一方面所述的条带初始化控制方法。
第四方面,本发明技术方案还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如第一方面所述的条带初始化控制方法。
从以上技术方案可以看出,本发明具有以下优点:后台初始化任务添加的单控独占锁,等用户IO请求时,IO申请条带锁,申请条带锁需要等单控独占锁释放,就是说用户IO不能和后台初始化IO同时运行,需要等待后台任务释放单控独占锁,可以保护数据完整,增强设备稳定性,增强双控防御能力。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的装置的示意性框图。
图中,11-检测模块,22-IO操作执行模块,33-初始化预处理模块,44-前台初始化执行模块,55-后台初始化执行模块。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
raid, Redundant Arrays of Independent Disks ,独立磁盘构成的具有冗余能力的阵列。
需要说明的是,前台初始化过程:IO读写相应条带A时,检测到条带A未初始化,于是对A进行前台初始化,首先写0,写0完成后执行异步任务去处理元数据;具体包括:清理初始化元数据对应该条带A的位移图中条带单元grain标记位为0,此时如果有该条带的后台初始化任务,则会去掉该任务,对于分布式raid后续重新投递fibre queue后执行步骤:检查该条带位移图的条带单元grain标记位元数据是否清0,并检查是否存在该条带的后台初始化任务,如果有则报错。后台初始化过程:后台初始化任务首先扫描条带单元grain标记位元数据,每次同步读取一个字,查找该字中的第一个不为0的条带单元grain标记位;如果查找到,则建立该条带的初始化任务,加入后台任务组,结束;如果未查找到,则投递到fibre queue;前台初始化还执行异步查找,如果异步查找找到未初始化条带对应的条带单元grain标记位后,投递到fibre queue;建立该条带单元的初始化任务,加入后台任务组;上述的前后台初始化过程可能出问题的场景包括:后台初始化查找到该条带A未初始化,元数据标记位设置为1;条带A前台初始化清理该条带元数据标记位为0;该条带后台初始化,由于并不知道该grain被前台初始化清0,仍然建立该条带单元的初始化任务,加入后台任务组;该条带前台初始化检查该条带单元标记位清0,但是有该条带的后台初始化任务。然后报错,随后前台初始化出错完成并生产报错日志。
也就是说,前台初始化还没更新元数据,后台任务认为该条带没有初始化完成,继续初始化,并下发后台初始化IO;一个条带可能被写2次零,被2个控制器都执行一遍初始化操作。之前写入数据会被清除。后台初始化任务添加任务以及下发IO时都会检查位移图bitmap是否被清理掉,如果被前台清理掉是不会运行的,前后台的初始化通过元数据协调保障,但是保障不是强一致性。
对于一个条带初始化处理存在只进行后台初始化、只进行前台初始化、同时有前后台初始化任务。
本申请中,在前台后台同时访问一个条带,前台初始化还没更新元数据的条带单元grain,后台任务认为该条带没有初始化完成,继续初始化,并下发后台初始化IO,后台初始化任务晚于前台初始化完成下发的业务IO时,进行加锁控制:对条带加锁,添加lock字段,对于条带如在进行初始化任务,后台初始化位移图不能被清理,对于当前控制器来说不能对这个条带进行前台初始化。不能控制另一个控制器对其进行前台初始化,此时会出问题,这样,后台初始化任务添加的单控独占锁,此时另一个控制也要等待位移图被清理释放,即另一个控制器也不能进行初始化任务。等用户IO写IO申请条带锁时,会等独占锁释放,就是说用户IO不能和后台初始化IO同时运行,需要等待后台任务释放独占锁,具体提供如下实施例:
如图1所示,本发明实施例提供一种条带初始化控制方法,包括如下步骤:
S1:接收用户提交的IO申请时,检测该条带是否初始化完成;若是,执行步骤S2,否则执行步骤S3;
S2:执行IO操作;
S3:申请条带锁;申请成功,执行步骤S4,否则,执行步骤S5;
S4:执行前台初始化;前台初始化完成后,执行步骤S2;
S5:认为在执行后台初始化,后台初始化完成后,释放独占锁;执行步骤S2。
元数据(后台任务添加work以及下发IO时都会检查bitmap是否被清理掉,如果被前台清理掉是不会运行的),前后台的初始化通过元数据协调保障,但是保障不是强一致性。后台初始化任务添加单控独占锁,等用户提交IO申请时,首先申请条带锁,若此时存在后台初始化任务,则会等后台初始化完成后将单控独占锁释放,就是说用户IO不能和后台初始化IO同时运行,需要等待后台任务释放独占锁,这样就解决了被两次初始化的情况发生。
本发明实施例提供一种条带初始化控制方法,包括如下步骤:
S1:接收用户提交的IO申请时,检测该条带是否初始化完成;若是,执行步骤S2,否则执行步骤S3;
S2:执行IO操作;
S3:申请条带锁;申请成功,执行步骤S4,否则,执行步骤S5;
需要说明的是,若申请条带锁时,后台初始化任务没有释放单控独占锁,则后台初始化正在进行,申请条带锁失败,否则,没有正在进行的后台初始化。
S4:执行前台初始化;前台初始化完成后,执行步骤S2;
本步骤中,执行前台初始化的步骤包括:
S41:将条带写0;
S42:写0完成后执行异步任务去处理元数据,具体包括:将初始化元数据对应该条带的位移图中条带单元的标记位清0;检查该条带位移图中条带单元的的标记位是否清0,并检查是否存在该条带的后台初始化任务,若有则报错退出。
前台初始化是用户提交IO读写相应的条带时,检测到条带未初始化而对该条带进行的初始化,前台初始化完成后,执行相应的IO操作。前台初始化完成后,将初始化元数据对应该条带的位移图中条带单元的标记位清,后台初始化任务扫描到标记位清0时,不会再次进行后台初始化。
S5:认为在执行后台初始化,后台初始化完成后,释放独占锁;执行步骤S2。本步骤中,后台初始化的步骤包括:扫描条带单元的元数据,每次同步读取元数据一个字,查找该字中的第一个不为0的条带单元标志位;建立该条带的初始化任务并且后台初始化任务添加单孔独占锁,加入后台任务组;执行后台任务组的初始化任务,执行完成后,释放单控独占锁。
如图2所示,本发明实施例还提供一种条带初始化控制装置,包括检测模块11、IO操作执行模块22、初始化预处理模块33、前台初始化执行模块44、后台初始化执行模块55;
检测模块11,用于接收用户提交的IO申请时,检测该条带是否初始化完成;
IO操作执行模块22,用于检测模块检测到条带初始化完成时,执行IO操作;前台初始化完成后,执行IO操作;还用于后台初始化释放单控独占锁后,执行IO操作。
初始化预处理模块33,用于检测模块检测到条带未初始化时,申请条带锁;
前台初始化执行模块44,用于初始化预处理模块申请到条带锁时,执行前台初始化;
前台初始化是用户提交IO读写相应的条带时,检测到条带未初始化而对该条带进行的初始化,前台初始化完成后,执行相应的IO操作。前台初始化完成后,将初始化元数据对应该条带的位移图中条带单元的标记位清,后台初始化任务扫描到标记位清0时,不会再次进行后台初始化。
后台初始化执行模块55,用于执行后台初始化,初始化完成后释放独占锁。
后台初始化任务添加单控独占锁,等用户提交IO申请时,首先申请条带锁,若此时存在后台初始化任务,则会等后台初始化完成后将单控独占锁释放,就是说用户IO不能和后台初始化IO同时运行,需要等待后台任务释放独占锁,这样就解决了被两次初始化的情况发生。
本发明实施例还提供一种条带初始化控制装置,包括检测模块11、IO操作执行模块22、初始化预处理模块33、前台初始化执行模块44、后台初始化执行模块55;
检测模块11,用于接收用户提交的IO申请时,检测该条带是否初始化完成;
IO操作执行模块22,用于检测模块检测到条带初始化完成时,执行IO操作;前台初始化完成后,执行IO操作;还用于后台初始化释放单控独占锁后,执行IO操作。
初始化预处理模块33,用于检测模块检测到条带未初始化时,申请条带锁;初始化预处理模块处理过程中,若申请条带锁时,后台初始化任务没有释放单控独占锁,则后台初始化正在进行,申请条带锁失败,否则,没有正在进行的后台初始化。
前台初始化执行模块44,用于初始化预处理模块申请到条带锁时,执行前台初始化;前台初始化执行模块包括写单元、异步处理单元;写单元,用于将条带写0;异步处理单元,用于写0完成后执行异步任务去处理元数据。具体用于将初始化元数据对应该条带的位移图中条带单元的标记位清0;检查该条带位移图中条带单元的的标记位是否清0,并检查是否存在该条带的后台初始化任务,若有则报错退出。
前台初始化是用户提交IO读写相应的条带时,检测到条带未初始化而对该条带进行的初始化,前台初始化完成后,执行相应的IO操作。
后台初始化执行模块55,用于执行后台初始化,初始化完成后释放独占锁。 后台初始化执行模块包括扫描单元、任务创建单元和执行单元;扫描单元,用于扫描条带单元的元数据,每次同步读取元数据一个字,查找该字中的第一个不为0的条带单元标志位;任务创建单元,用于建立该条带的初始化任务并且后台初始化任务添加单孔独占锁,加入后台任务组;执行单元,用于执行后台任务组的初始化任务,执行完成后,释放单控独占锁。
后台初始化任务添加的单控独占锁,等用户IO写IO申请条带锁时,会等单控独占锁释放,就是说用户IO不能和后台初始化IO同时运行,需要等待后台任务释放单控独占锁。
本发明实施例提供的一种计算机设备,该设备可以包括:处理器、通信接口、存储器和总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信。总线可以用于电子设备与传感器之间的信息传输。处理器可以调用存储器中的逻辑指令,以执行如下方法:S1:接收用户提交的IO申请时,检测该条带是否初始化完成;若是,执行步骤S2,否则执行步骤S3;S2:执行IO操作;S3:申请条带锁;申请成功,执行步骤S4,否则,执行步骤S5;S4:执行前台初始化;前台初始化完成后,执行步骤S2;S5:认为在执行后台初始化,后台初始化完成后,释放独占锁;执行步骤S2。
在一些具体的实施例中,处理器可以调用存储器中的逻辑指令,具体可以实现以下步骤:S41:将条带写0;S42:写0完成后执行异步任务去处理元数据,具体包括:将初始化元数据对应该条带的位移图中条带单元的标记位清0;检查该条带位移图中条带单元的的标记位是否清0,并检查是否存在该条带的后台初始化任务,若有则报错退出。
在一些具体的实施例中,处理器可以调用存储器中的逻辑指令,具体可以实现以下步骤:扫描条带单元的元数据,每次同步读取元数据一个字,查找该字中的第一个不为0的条带单元标志位;建立该条带的初始化任务并且后台初始化任务添加单孔独占锁,加入后台任务组;执行后台任务组的初始化任务,执行完成后,释放单控独占锁。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行上述方法实施例所提供的方法,例如包括:S1:接收用户提交的IO申请时,检测该条带是否初始化完成;若是,执行步骤S2,否则执行步骤S3;S2:执行IO操作;S3:申请条带锁;申请成功,执行步骤S4,否则,执行步骤S5;S4:执行前台初始化;前台初始化完成后,执行步骤S2;S5:认为在执行后台初始化,后台初始化完成后,释放独占锁;执行步骤S2。
在一些具体的实施例中,所述可读存储介质中被处理器执行的程序指令,具体可以实现以下步骤:S41:将条带写0;S42:写0完成后执行异步任务去处理元数据,具体包括:将初始化元数据对应该条带的位移图中条带单元的标记位清0;检查该条带位移图中条带单元的的标记位是否清0,并检查是否存在该条带的后台初始化任务,若有则报错退出。
在一些具体的实施例中,所述可读存储介质中被处理器执行的程序指令,具体可以实现以下步骤:扫描条带单元的元数据,每次同步读取元数据一个字,查找该字中的第一个不为0的条带单元标志位;建立该条带的初始化任务并且后台初始化任务添加单孔独占锁,加入后台任务组;执行后台任务组的初始化任务,执行完成后,释放单控独占锁。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种条带初始化控制方法,其特征在于,包括如下步骤:
接收用户提交的IO申请时,检测该条带是否初始化完成;
若是,执行IO操作;
若否,申请条带锁;
若申请成功,执行前台初始化;
前台初始化完成后,执行IO操作;
若申请不成功,则认为在执行后台初始化,后台初始化完成后,释放单控独占锁,执行IO操作;
若申请不成功,则认为在执行后台初始化,后台初始化完成后,释放单控独占锁,执行IO操作的步骤中,后台初始化的步骤包括:
扫描条带单元的元数据,每次同步读取元数据一个字,查找该字中的第一个不为0的条带单元标志位;
建立该条带的初始化任务并且后台初始化任务添加单控独占锁,加入后台任务组;
执行后台任务组的初始化任务,执行完成后,释放单控独占锁。
2.根据权利要求1所述的条带初始化控制方法,其特征在于,执行前台初始化的步骤包括:
将条带写0;
写0完成后执行异步任务去处理元数据。
3.根据权利要求2所述的条带初始化控制方法,其特征在于,写0完成后执行异步任务去处理元数据的步骤包括:
将初始化元数据对应该条带的位移图中条带单元的标记位清0;
检查该条带位移图中条带单元的的标记位是否清0,并检查是否存在该条带的后台初始化任务,若有则报错退出。
4.根据权利要求1所述的条带初始化控制方法,其特征在于,申请条带锁的步骤中,若申请条带锁时,后台初始化任务没有释放单控独占锁,则后台初始化正在进行,申请条带锁失败,否则,没有正在进行的后台初始化。
5.一种条带初始化控制装置,其特征在于,包括检测模块、IO操作执行模块、初始化预处理模块、前台初始化执行模块、后台初始化执行模块;
检测模块,用于接收用户提交的IO申请时,检测该条带是否初始化完成;
IO操作执行模块,用于检测模块检测到条带初始化完成时,执行IO操作;前台初始化完成后,执行IO操作;还用于后台初始化释放单控独占锁后,执行IO操作;
初始化预处理模块,用于检测模块检测到条带未初始化时,申请条带锁;
前台初始化执行模块,用于初始化预处理模块申请到条带锁时,执行前台初始化;
后台初始化执行模块,用于执行后台初始化,初始化完成后释放单控独占锁;
后台初始化执行模块包括扫描单元、任务创建单元和执行单元;
扫描单元,用于扫描条带单元的元数据,每次同步读取元数据一个字,查找该字中的第一个不为0的条带单元标志位;
任务创建单元,用于建立该条带的初始化任务并且后台初始化任务添加单控独占锁,加入后台任务组;
执行单元,用于执行后台任务组的初始化任务,执行完成后,释放单控独占锁。
6.根据权利要求5所述的条带初始化控制装置,其特征在于,前台初始化执行模块包括写单元、异步处理单元;
写单元,用于将条带写0;
异步处理单元,用于写0完成后执行异步任务去处理元数据;具体用于将初始化元数据对应该条带的位移图中条带单元的标记位清0;检查该条带位移图中条带单元的的标记位是否清0,并检查是否存在该条带的后台初始化任务,若有则报错退出。
7.一种计算机设备,其特征在于,包括处理器和存储器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至4任一项权利要求所述的条带初始化控制方法。
8.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至4任一项权利要求所述的条带初始化控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111146438.7A CN113835641B (zh) | 2021-09-28 | 2021-09-28 | 一种条带初始化控制方法、装置、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111146438.7A CN113835641B (zh) | 2021-09-28 | 2021-09-28 | 一种条带初始化控制方法、装置、设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113835641A CN113835641A (zh) | 2021-12-24 |
CN113835641B true CN113835641B (zh) | 2023-07-25 |
Family
ID=78967307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111146438.7A Active CN113835641B (zh) | 2021-09-28 | 2021-09-28 | 一种条带初始化控制方法、装置、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113835641B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609224A (zh) * | 2012-02-16 | 2012-07-25 | 浪潮(北京)电子信息产业有限公司 | 一种独立冗余磁盘阵列系统及其初始化方法 |
CN108536393A (zh) * | 2018-03-20 | 2018-09-14 | 深圳神州数码云科数据技术有限公司 | 一种磁盘初始化方法及装置 |
CN111290711A (zh) * | 2020-01-21 | 2020-06-16 | 苏州浪潮智能科技有限公司 | 一种raid系统的io处理方法及相关装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7979773B2 (en) * | 2007-03-13 | 2011-07-12 | Summit Data Systems Llc | RAID array auto-initialization (RAAI) |
US20170031763A1 (en) * | 2015-07-28 | 2017-02-02 | Futurewei Technologies, Inc. | Hybrid parity initialization |
-
2021
- 2021-09-28 CN CN202111146438.7A patent/CN113835641B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609224A (zh) * | 2012-02-16 | 2012-07-25 | 浪潮(北京)电子信息产业有限公司 | 一种独立冗余磁盘阵列系统及其初始化方法 |
CN108536393A (zh) * | 2018-03-20 | 2018-09-14 | 深圳神州数码云科数据技术有限公司 | 一种磁盘初始化方法及装置 |
CN111290711A (zh) * | 2020-01-21 | 2020-06-16 | 苏州浪潮智能科技有限公司 | 一种raid系统的io处理方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113835641A (zh) | 2021-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4647021B2 (ja) | データ完全性検証メカニズム | |
US7689890B2 (en) | System and method for handling write commands to prevent corrupted parity information in a storage array | |
US7103811B2 (en) | Mechanisms for detecting silent errors in streaming media devices | |
US11003536B2 (en) | Method, device and computer readable storage medium for writing to disk array | |
DE102011075814B4 (de) | Speicherpuffer mit zugänglicher Information nach einem Schreibfehler | |
US10402279B2 (en) | Optimization to permit block based incremental backup across system reboot or crash | |
CN111124738B (zh) | 用于独立冗余磁盘阵列的数据管理方法、设备和计算机程序产品 | |
DE102016108733B4 (de) | Steuern einer redundanten Anordnung von unabhängigen Festplatten (RAID), welche ein Nur-Lese-Flash-Datenspeichergerät einschließt | |
US8365043B2 (en) | Efficient redundant memory unit array | |
CN105630417B (zh) | 一种raid5系统及在raid5系统失效后继续写数据的方法 | |
CN113835641B (zh) | 一种条带初始化控制方法、装置、设备、存储介质 | |
CN114138192A (zh) | 存储节点在线升级方法、装置、系统及存储介质 | |
CN113741811A (zh) | 一种存储系统的磁盘阵列的重构方法、系统、设备及介质 | |
CN112269679B (zh) | 一种云平台的数据库持久化方法、系统、设备及存储介质 | |
US7577804B2 (en) | Detecting data integrity | |
CN109542671B (zh) | 校验数据生成方法及固态硬盘 | |
CN111581024A (zh) | Ssd日志的动态备份恢复方法、装置和计算机设备 | |
CN114064346B (zh) | 一种纠删码数据一致性保障方法及系统 | |
US20220374310A1 (en) | Write request completion notification in response to partial hardening of write data | |
CN111984472B (zh) | 一种数据快照方法、装置及相关设备 | |
CN113625950A (zh) | 一种独立冗余磁盘阵列的初始化方法、系统、设备及介质 | |
CN112650444A (zh) | 一种数据重构方法、系统、设备以及介质 | |
US10733097B2 (en) | Shingled magnetic recording storage system with reduced time to recover | |
US20060129612A1 (en) | Efficient recovery of replicated data items | |
JP4204060B2 (ja) | 情報処理システムのデータ復旧方法及びディスクサブシステム |
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 |