CN112817533A - Ssd管理方法、装置计算机设备及存储介质 - Google Patents
Ssd管理方法、装置计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112817533A CN112817533A CN202110134748.0A CN202110134748A CN112817533A CN 112817533 A CN112817533 A CN 112817533A CN 202110134748 A CN202110134748 A CN 202110134748A CN 112817533 A CN112817533 A CN 112817533A
- Authority
- CN
- China
- Prior art keywords
- data
- subprocess
- sub
- subprocesses
- state information
- 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.)
- Pending
Links
Images
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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种SSD管理方法、装置计算机设备及存储介质,方法包括将SSD划分成N个物理独立的存储分区;运行一个主进程和N个子进程,将N个子进程一一对应运行于N个存储分区上;获取并解析主机的下发命令;若下发命令为写命令,则获取所有子进程的写状态信息,并根据写状态信息选择可写入的子进程进行数据写入;若下发命令为读命令,则获取所有子进程的读状态信息,并根据读状态信息选择可读取的子进程进行数据读取。本方案通过将SSD划分成N个物理独立的存储分区,运行一个主进程和N个子进程,并将N个子进程一一对应运行于N个所述存储分区上,主进程分配子进程并行写入数据或读取数据,提高了SSD的稳定性和可靠性。
Description
技术领域
本发明涉及到SSD领域,更具体地说是指一种SSD管理方法、装置计算机设备及存储介质。
背景技术
SSD,英文全称为Solid State Drive,也称为固态硬盘,已经被广泛应用于各种场合,目前在PC市场,已经逐步替代传统的HDD,从可靠性和性能方面为用户提供较好的体验。
一般SSD内部有多个任务/CPU,分别负责主机读写工作的一部分。当接收到主机的访问请求时,每个任务/CPU依次完成命令的解析/分解,映射表的查询,NAND(计算机闪存设备)的读写等。
在此过程中,如果某个任务/CPU因为异常而终止,则整个SSD无法对外提供服务,在某些应用场景中,对于SSD的可靠性要求很高,需要保障SSD的高可靠性运作,而现有的SSD架构则无法满足这点。
公开于该背景技术部分的信息仅仅旨在加深对本发明的总体背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。
发明内容
为了解决上述现有技术的缺陷,本发明的目的是提供一种SSD管理方法、装置计算机设备及存储介质。
为达到上述目的,本发明的技术方案是:
第一方面,本发明提出一种SSD管理方法,包括以下步骤:
将SSD划分成N个物理独立的存储分区;
运行一个主进程和N个子进程,将N个子进程一一对应运行于N个所述存储分区上;
获取并解析主机的下发命令;
若所述下发命令为写命令,则获取所有子进程的写状态信息,并根据写状态信息选择可写入的子进程进行数据写入;
若所述下发命令为读命令,则获取所有子进程的读状态信息,并根据读状态信息选择可读取的子进程进行数据读取。
第二方面,本发明提出一种SSD管理装置,包括:
存储分区单元,用于将SSD划分成N个物理独立的存储分区;
进程分配单元,用于运行一个主进程和N个子进程,将N个子进程一一对应运行于N个所述存储分区上;
命令解析单元,用于获取并解析主机的下发命令;
数据写入单元,用于在所述下发命令为写命令时,获取所有子进程的写状态信息,并根据写状态信息选择可写入的子进程进行数据写入;
数据读取单元,用于在所述下发命令为读命令时,获取所有子进程的读状态信息,并根据读状态信息选择可读取的子进程进行数据读取。
第三方面,本发明提出一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的SSD管理方法。
第四方面,本发明提出一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现如上所述的SSD管理方法。
本发明与现有技术相比的有益效果是:本发明提出一种SSD管理方法、装置计算机设备及存储介质,方法通过将SSD划分成N个物理独立的存储分区,运行一个主进程和N个子进程,并将N个子进程一一对应运行于N个所述存储分区上,主进程根据各个子进程的可用空间以及负载均衡状况,分配相应数量的子进程并行写入数据或读取数据,避免单个任务进程异常时整个SSD无法正常访问,提高了SSD的稳定性和可靠性。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种SSD的内部原理框图;
图2为本发明实施例提供的一种SSD管理方法的流程示意图;
图3为本发明实施例提供的一种SSD管理方法的子流程示意图;
图4为本发明实施例提供的一种SSD管理方法的子流程示意图;
图5为本发明实施例提供的一种SSD管理方法的子流程示意图;
图6为本发明实施例提供的主机数据写入过程的时序图;
图7为本发明实施例提供的主机数据读写过程的时序图;
图8为本发明实施例提供的一种SSD管理装置的示意性框图;
图9为本发明实施例提供的一种SSD管理装置的数据写入单元的示意性框图;
图10为本发明实施例提供的一种SSD管理装置的数据读取单元的示意性框图;以及
图11为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本发明实施例提供的SSD管理方法,该SSD管理方法应用于SSD中,该SSD与主机进行数据交互。本方案将SSD划分成N个物理独立的存储分区,并运行一个主进程和N个子进程,将N个子进程一一对应运行于N个所述存储分区上,在主机下发命令时,SSD对下发命令进行解析,根据下发命令的具体类型,通过对应的子进程进行数据并发写入或读取,避免单个任务进程异常时整个SSD无法正常访问,提高了SSD的稳定性和可靠性。
图2是本发明实施例提供的SSD管理方法的流程示意图。如图2所示,该方法包括以下步骤S110至S150。
在传统的SSD访问模型中,主机提交读写命令到SSD的前端模块,SSD前端模块将命令分割成映射单元(典型如4KB),提交操作请求到缓冲区管理模块,分配读写缓冲区;如果主机提交的是写命令,则根据所分配的缓冲区,建立与主机的数据传输,且在完成数据传输后告知主机命令完成;如果主机提交的是读命令,则提交操作请求到映射表管理模块,映射表管理模块负责根据逻辑地址分配对应的物理地址(写命令)或者把逻辑地址转换成NAND物理地址(读命令),提交操作请求到后端模块,后端模块根据物理地址发起对NAND读/写请求,等待NAND读/写操作请求完成。具体的,如果主体提交的是读命令,此时数据会加载到NAND Cache Register中,数据加载完成后,启动数据从NAND Cache Register到主机的传输。
传统的SSD访问模型在整个数据读写的过程中,完成主机的读写命令,需要多个模块的配合,任意一个模块出现问题,则导致主机命令无法访问。
S110、将SSD划分成N个物理独立的存储分区。
在本实施例中,参考图1,将SSD的NAND划分为各自物理独立的存储分区,每个存储分区均具备一定的存储空间,可独立进行读写数据,便于后续通过主进程控制不同子进程并发进行数据读写,提高数据读写的稳定性和可靠性,同时,将同个数据写入不同的存储分区,实现对于数据的有效备份,保证数据的安全性。
S120、运行一个主进程和N个子进程,将N个子进程一一对应运行于N个所述存储分区上。
在本实施例中,参考图1,SSD内运行一个主进程和N个子进程,N个子进程一一对应运行于N个所述存储分区上。其中,主进程运行轻量任务,提高了主进程的健壮性,以保证SSD任务进程的稳定性和可靠性;各自独立的子进程只负责处理对应存储分区的数据读/写和映射关系维护,且各自的读写进程各自独立,各不影响。
在本实施例中,参考图1,在主进程上维护子进程数据表,子进程数据表内包含有所有子进程的子进程ID信息、子进程状态信息、子进程有效数据信息和子进程可用空间信息,主进程基于子进程数据表即可查询得到不同子进程的状态(子进程状态信息)、剩余空间/负载状况(子进程可用空间信息)和数据备份状况(子进程有效数据信息)。
其中,子进程数据表中各项信息的用途如下:
1)子进程ID信息,是子进程唯一标志,可以为进程ID号/CPU号等实际实现。
2)子进程状态信息,用来表征子进程状态,如初始化/正常运行/出错…等状态,以便于主进程动态决定主机读写请求的定向。具体的,当子进程出错时,主进程可以指示对应的子进程进行数据恢复,也即是基于其他子进程的数据备份进行恢复。
3)子进程有效数据信息,是子进程内有效的用户数据数量,用来辅助主进程进行垃圾回收以及负载均衡。
4)子进程可用空间信息,是子进程对应的存储分区当前可用的物理空间,用来辅助主进程进行垃圾回收以及负载均衡。
S130、获取并解析主机的下发命令。
在本实施例中,正常情况下,主机根据任务需要向SSD提交下发命令,下发命令可以是读命令,也可以是写命令。因此在获取到主机的下发命令之后,需要对下发命令进行解析,以确定具体的命令类型和命令的具体信息,以确定下发命令是读命令还是写命令,以执行后续读操作和写操作。
S140、若所述下发命令为写命令,则获取所有子进程的写状态信息,并根据写状态信息选择可写入的子进程进行数据写入。
在本实施例中,在下发命令为写命令时,基于子进程数据表获取所有子进程的写状态信息,这里的写状态信息指的是子进程状态信息和子进程可用空间信息,根据子进程状态信息和子进程可用空间信息可以筛选出可以用于写入数据的子进程,并从其中选出对应数量的子进程并行写入数据,完成数据写入,选出的子进程的数量由写命令携带,通过解析写命令可以得到。
具体的,主机在向SSD写入数据时,可以根据数据的重要性,指定其需要的备份数(X),满足X<N,通过同时写入多份备份,可以在部分数据出错或者丢失时,可以从备份数据读取目标数据,保证数据的安全性。
参考图3,在一实施例中,步骤S140包括步骤S141-S143。
S141、根据子进程数据表获取子进程的子进程状态信息和子进程可用空间信息。
S142、根据子进程状态信息和子进程可用空间信息,筛选出可写入数据的子进程,并将选择其中一个子进程为代表进程,以及至少一个子进程作为备份进程。
S143、接收主机的待写入数据,将待写入数据同时写入到所述代表进程和备份进程中,并更新主进程上的子进程数据表,完成数据写入。
在本实施例中,根据子进程状态信息和子进程可用空间信息筛选出可以用于写入数据的子进程,并进一步根据需要选择一个子进程作为代表进程,以及至少一个子进程作为备份进程,将待写入数据同时写入到代表进程和备份进程中,在后续如果代表进程中的数据出错,则可以从备份进程中读取对应的数据,同时,写入过程同时独立进行,不相干涉。进一步的,写入数据之后,相应的子进程的信息发生变化,同步更新子进程数据表,以被下一次查询使用。
图6为本发明一具体实施例中主机数据写入过程得时序图,具体过程包括a0-a6,具体如下所述:
a0:主机发送写命令,且标识需要3份备份保护
a1:SSD主进程查询子进程数据分布以及负载状况,选择3个子进程(如1/2/4)存储数据,且标记子进程1作为代表进程
a2:SSD主进程通知子进程1准备数据接收以及拷贝到子进程2/4
a3:SSD主进程返回主机,告知子进程1作为代表进程接受数据
a4:主机写入数据到子进程1
a4.1:子进程1并行将数据拷贝到子进程2
a4.2:子进程2并行将数据拷贝到子进程4
a4.4:子进程4通知子进程2所有数据完成写入
a4.3:子进程2通知子进程1所有数据完成写入
a5:子进程通知主进程所有数据完成写入,主进程更新子进程数据表
a6:主进程通知主机命令写入完成
参考图4,在一实施例中,步骤S140还包括步骤S144-S146。
S144、根据子进程数据表获取子进程的子进程状态信息。
S145、根据子进程状态信息判断该子进程是否出错。
S146、若子进程出错,则获取其他子进程的备份数据并写入到出错的子进程中。
在本实施例中,根据子进程状态信息判断子进程是否处于非正常状态,如果子进程出错,其中的数据可能丢失,此时主进程主动查询子进程数据表,将存储于其他子进程(存储分区)的备份数据复制到出错的子进程中,进行数据恢复,保证数据的安全性。
S150、若所述下发命令为读命令,则获取所有子进程的读状态信息,并根据读状态信息选择可读取的子进程进行数据读取。
在本实施例中,在下发命令为写命令时,基于子进程数据表获取所有子进程的读状态信息,这里的读状态信息指的是子进程状态信息和子进程有效数据信息,根据子进程有效数据信息确定存储有待读取数据的子进程,并根据子进程状态信息确定可读取的子进程,同时从不同的子进程读取出待读取数据,以完成主机数据读取。
参考图5,在一实施例中,步骤S150包括步骤S151-S154。
S151、根据读命令查询子进程数据表,获取存储有待读取数据的子进程的子进程状态信息。
S152、根据子进程状态信息,确定可读取的K个子进程。
S153、将待读取数据等分成K份,并从K个子进程并行读取相应的数据份。
S154、将来自K份来自不同子进程的数据份返回主机,完成数据读取。
在本实施例中,待读取数据可能同时存储于K个子进程中,本方案通过将待读取数据均分成K份,并并行地从不同的子进程中获取相应的数据份返回主机,提高了SSD数据读取响应速度;且当出现某个子进程的数据错误时候,主机可以从其他的备份子进程获取数据。
图7为本发明一具体实施例中主机数据读取过程的时序图,具体过程包括b0-b4.2,具体如下所述:
b0:主机发送读命令
b1:主进程查询子进程数据表,获得对应待读取数据的分布以及子进程负载状况,选择合适的子进程(如1/3)告知主机。
b2:主进程返回主机,告知子进程1和3包含待读取数据。
b3.1:主机将待读取数据等分,一部分从子进程1获取。
b3.2:主机将待读取数据等分,一部分从子进程3获取。
b4.1:子进程1返回对应数据份。
b4.2:子进程3返回对应数据份。
本发明提出一种SSD管理方法,通过将SSD划分成N个物理独立的存储分区,运行一个主进程和N个子进程,并将N个子进程一一对应运行于N个所述存储分区上,主进程根据各个子进程的可用空间以及负载均衡状况,分配相应数量的子进程并行写入数据或读取数据,避免单个任务进程异常时整个SSD无法正常访问,提高了SSD的稳定性和可靠性。
图8是本发明实施例提供的一种SSD管理装置的示意性框图。如图8所示,对应于以上SSD管理方法,本发明还提供一种SSD管理装置。该SSD管理装置包括用于执行上述SSD管理方法的单元,该装置可以被配置于台式电脑、平板电脑、手提电脑、等终端中。具体地,请参阅图8,该SSD管理装置包括存储分区单元10,进程分配单元20,命令解析单元30,数据写入单元40和数据读取单元50。
存储分区单元10,用于将SSD划分成N个物理独立的存储分区。
在本实施例中,参考图1,将SSD的NAND划分为各自物理独立的存储分区,每个存储分区均具备一定的存储空间,可独立进行读写数据,便于后续通过主进程控制不同子进程并发进行数据读写,提高数据读写的稳定性和可靠性,同时,将同个数据写入不同的存储分区,实现对于数据的有效备份,保证数据的安全性。
进程分配单元20,用于运行一个主进程和N个子进程,将N个子进程一一对应运行于N个所述存储分区上。
在本实施例中,参考图1,SSD内运行一个主进程和N个子进程,N个子进程一一对应运行于N个所述存储分区上。其中,主进程运行轻量任务,提高了主进程的健壮性,以保证SSD任务进程的稳定性和可靠性;各自独立的子进程只负责处理对应存储分区的数据读/写和映射关系维护,且各自的读写进程各自独立,各不影响。
在本实施例中,参考图1,在主进程上维护子进程数据表,子进程数据表内包含有所有子进程的子进程ID信息、子进程状态信息、子进程有效数据信息和子进程可用空间信息,主进程基于子进程数据表即可查询得到不同子进程的状态(子进程状态信息)、剩余空间/负载状况(子进程可用空间信息)和数据备份状况(子进程有效数据信息)。
其中,子进程数据表中各项信息的用途如下:
1)子进程ID信息,是子进程唯一标志,可以为进程ID号/CPU号等实际实现。
2)子进程状态信息,用来表征子进程状态,如初始化/正常运行/出错…等状态,以便于主进程动态决定主机读写请求的定向。具体的,当子进程出错时,主进程可以指示对应的子进程进行数据恢复,也即是基于其他子进程的数据备份进行恢复。
3)子进程有效数据信息,是子进程内有效的用户数据数量,用来辅助主进程进行垃圾回收以及负载均衡。
4)子进程可用空间信息,是子进程对应的存储分区当前可用的物理空间,用来辅助主进程进行垃圾回收以及负载均衡。
命令解析单元30,用于获取并解析主机的下发命令。
在本实施例中,正常情况下,主机根据任务需要向SSD提交下发命令,下发命令可以是读命令,也可以是写命令。因此在获取到主机的下发命令之后,需要对下发命令进行解析,以确定具体的命令类型和命令的具体信息,以确定下发命令是读命令还是写命令,以执行后续读操作和写操作。
数据写入单元40,用于在所述下发命令为写命令时,获取所有子进程的写状态信息,并根据写状态信息选择可写入的子进程进行数据写入。
在本实施例中,在下发命令为写命令时,基于子进程数据表获取所有子进程的写状态信息,这里的写状态信息指的是子进程状态信息和子进程可用空间信息,根据子进程状态信息和子进程可用空间信息可以筛选出可以用于写入数据的子进程,并从其中选出对应数量的子进程并行写入数据,完成数据写入,选出的子进程的数量由写命令携带,通过解析写命令可以得到。
具体的,主机在向SSD写入数据时,可以根据数据的重要性,指定其需要的备份数(X),满足X<N,通过同时写入多份备份,可以在部分数据出错或者丢失时,可以从备份数据读取目标数据,保证数据的安全性。
参考图9,在一实施例中,数据写入单元40包括第一获取模块41,进程选择模块42、写入更新模块43、第三获取模块44、进程判断模块45和数据备份模块46。
第一获取模块41,用于根据子进程数据表获取子进程的子进程状态信息和子进程可用空间信息。
进程选择模块42,用于根据子进程状态信息和子进程可用空间信息,筛选出可写入数据的子进程,并将选择其中一个子进程为代表进程,以及至少一个子进程作为备份进程。
写入更新模块43,用于接收主机的待写入数据,将待写入数据同时写入到所述代表进程和备份进程中,并更新主进程上的子进程数据表,完成数据写入。
在本实施例中,根据子进程状态信息和子进程可用空间信息筛选出可以用于写入数据的子进程,并进一步根据需要选择一个子进程作为代表进程,以及至少一个子进程作为备份进程,将待写入数据同时写入到代表进程和备份进程中,在后续如果代表进程中的数据出错,则可以从备份进程中读取对应的数据,同时,写入过程同时独立进行,不相干涉。进一步的,写入数据之后,相应的子进程的信息发生变化,同步更新子进程数据表,以被下一次查询使用。
第三获取模块44,用于根据子进程数据表获取子进程的子进程状态信息。
进程判断模块45,用于根据子进程状态信息判断该子进程是否出错。
数据备份模块46,若子进程出错,则获取其他子进程的备份数据并写入到出错的子进程中。
在本实施例中,根据子进程状态信息判断子进程是否处于非正常状态,如果子进程出错,其中的数据可能丢失,此时主进程主动查询子进程数据表,将存储于其他子进程(存储分区)的备份数据复制到出错的子进程中,进行数据恢复,保证数据的安全性。
数据读取单元50,用于在所述下发命令为读命令时,获取所有子进程的读状态信息,并根据读状态信息选择可读取的子进程进行数据读取。
在本实施例中,在下发命令为写命令时,基于子进程数据表获取所有子进程的读状态信息,这里的读状态信息指的是子进程状态信息和子进程有效数据信息,根据子进程有效数据信息确定存储有待读取数据的子进程,并根据子进程状态信息确定可读取的子进程,同时从不同的子进程读取出待读取数据,以完成主机数据读取。
参考图10,在一实施例中,数据读取单元50包括第二获取模块51,进程确定模块53,并行读取模块54和数据返回模块55。
第二获取模块51,用于根据读命令查询子进程数据表,获取存储有待读取数据的子进程的子进程状态信息。
进程确定模块52,用于根据子进程状态信息,确定可读取的K个子进程。
并行读取模块53,用于将待读取数据等分成K份,并从K个子进程并行读取相应的数据份。
数据返回模块54,用于将来自K份来自不同子进程的数据份返回主机,完成数据读取。
在本实施例中,待读取数据可能同时存储于K个子进程中,本方案通过将待读取数据均分成K份,并并行地从不同的子进程中获取相应的数据份返回主机,提高了SSD数据读取响应速度;且当出现某个子进程的数据错误时候,主机可以从其他的备份子进程获取数据。
本发明提出一种SSD管理装置,通过将SSD划分成N个物理独立的存储分区,运行一个主进程和N个子进程,并将N个子进程一一对应运行于N个所述存储分区上,主进程根据各个子进程的可用空间以及负载均衡状况,分配相应数量的子进程并行写入数据或读取数据,避免单个任务进程异常时整个SSD无法正常访问,提高了SSD的稳定性和可靠性。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述SSD管理装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
请参阅图11,图11是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图11,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种SSD管理方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种SSD管理方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种SSD管理方法,其特征在于,包括以下步骤:
将SSD划分成N个物理独立的存储分区;
运行一个主进程和N个子进程,将N个子进程一一对应运行于N个所述存储分区上;
获取并解析主机的下发命令;
若所述下发命令为写命令,则获取所有子进程的写状态信息,并根据写状态信息选择可写入的子进程进行数据写入;
若所述下发命令为读命令,则获取所有子进程的读状态信息,并根据读状态信息选择可读取的子进程进行数据读取。
2.根据权利要求1所述的SSD管理方法,其特征在于,所述运行一个主进程和N个子进程,将N个子进程一一对应运行于N个所述存储分区上的步骤,包括:
在主进程上维护子进程数据表,子进程数据表内包含有所有子进程的子进程ID信息、子进程状态信息、子进程有效数据信息和子进程可用空间信息。
3.根据权利要求2所述的SSD管理方法,其特征在于,所述获取所有子进程的写状态信息,并根据写状态信息选择可写入的子进程进行数据写入的步骤,包括:
根据子进程数据表获取子进程的子进程状态信息和子进程可用空间信息;
根据子进程状态信息和子进程可用空间信息,筛选出可写入数据的子进程,并将选择其中一个子进程为代表进程,以及至少一个子进程作为备份进程;
接收主机的待写入数据,将待写入数据同时写入到所述代表进程和备份进程中,并更新主进程上的子进程数据表,完成数据写入。
4.根据权利要求2所述的SSD管理方法,其特征在于,所述获取所有子进程的读状态信息,并根据读状态信息选择可读取的子进程进行数据读取的步骤,包括:
根据读命令查询子进程数据表,获取存储有待读取数据的子进程的子进程状态信息;
根据子进程状态信息,确定可读取的K个子进程;
将待读取数据等分成K份,并从K个子进程并行读取相应的数据份;
将来自K份来自不同子进程的数据份返回主机,完成数据读取。
5.根据权利要求3所述的SSD管理方法,其特征在于,所述接收主机的待写入数据,将待写入数据同时写入到所述代表进程和备份进程中,并更新主进程上的子进程数据表,完成数据写入之后,还包括:
根据子进程数据表获取子进程的子进程状态信息;
根据子进程状态信息判断该子进程是否出错;
若子进程出错,则获取其他子进程的备份数据并写入到出错的子进程中。
6.一种SSD管理装置,其特征在于,包括:
存储分区单元,用于将SSD划分成N个物理独立的存储分区;
进程分配单元,用于运行一个主进程和N个子进程,将N个子进程一一对应运行于N个所述存储分区上;
命令解析单元,用于获取并解析主机的下发命令;
数据写入单元,用于在所述下发命令为写命令时,获取所有子进程的写状态信息,并根据写状态信息选择可写入的子进程进行数据写入;
数据读取单元,用于在所述下发命令为读命令时,获取所有子进程的读状态信息,并根据读状态信息选择可读取的子进程进行数据读取。
7.根据权利要求6所述的SSD管理装置,其特征在于,所述数据写入单元包括第一获取模块,进程选择模块和写入更新模块;
所述第一获取模块,用于根据子进程数据表获取子进程的子进程状态信息和子进程可用空间信息;
所述进程选择模块,用于根据子进程状态信息和子进程可用空间信息,筛选出可写入数据的子进程,并将选择其中一个子进程为代表进程,以及至少一个子进程作为备份进程;
所述写入更新模块,用于接收主机的待写入数据,将待写入数据同时写入到所述代表进程和备份进程中,并更新主进程上的子进程数据表,完成数据写入。
8.根据权利要求6所述的SSD管理装置,其特征在于,所述数据读取单元包括第二获取模块,进程确定模块,并行读取模块和数据返回模块;
所述第二获取模块,用于根据读命令查询子进程数据表,获取存储有待读取数据的子进程的子进程状态信息;
所述进程确定模块,用于根据子进程状态信息,确定可读取的K个子进程;
所述并行读取模块,用于将待读取数据等分成K份,并从K个子进程并行读取相应的数据份;
所述数据返回模块,用于将来自K份来自不同子进程的数据份返回主机,完成数据读取。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的SSD管理方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现如权利要求1至5中任一项所述的SSD管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110134748.0A CN112817533A (zh) | 2021-01-29 | 2021-01-29 | Ssd管理方法、装置计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110134748.0A CN112817533A (zh) | 2021-01-29 | 2021-01-29 | Ssd管理方法、装置计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112817533A true CN112817533A (zh) | 2021-05-18 |
Family
ID=75861131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110134748.0A Pending CN112817533A (zh) | 2021-01-29 | 2021-01-29 | Ssd管理方法、装置计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817533A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113341933A (zh) * | 2021-06-23 | 2021-09-03 | 中国第一汽车股份有限公司 | 车用中央控制器的诊断系统及方法 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101101569A (zh) * | 2007-06-28 | 2008-01-09 | 忆正存储技术(深圳)有限公司 | 基于多通道闪存设备逻辑条带的自适应控制方法 |
CN101963891A (zh) * | 2010-09-25 | 2011-02-02 | 成都市华为赛门铁克科技有限公司 | 数据存储处理方法与装置、固态硬盘系统与数据处理系统 |
CN102567257A (zh) * | 2011-12-26 | 2012-07-11 | 华中科技大学 | 一种控制多通道固态盘数据读写的方法 |
CN103493002A (zh) * | 2011-04-05 | 2014-01-01 | 株式会社东芝 | 存储器系统 |
US20140380092A1 (en) * | 2012-02-09 | 2014-12-25 | Tli Inc. | Efficient raid technique for reliable ssd |
US20160246521A1 (en) * | 2015-02-25 | 2016-08-25 | HGST Netherlands B.V. | System and method for copy on write on an ssd |
CN105912307A (zh) * | 2016-04-27 | 2016-08-31 | 浪潮(北京)电子信息产业有限公司 | 一种Flash控制器数据处理方法及装置 |
CN106875977A (zh) * | 2017-02-27 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种固态硬盘调试方法及装置 |
CN107193486A (zh) * | 2016-03-14 | 2017-09-22 | 三星电子株式会社 | 数据存储设备和包括该数据存储设备的数据处理系统 |
CN107678690A (zh) * | 2017-09-29 | 2018-02-09 | 山东超越数控电子有限公司 | 一种固态硬盘及其冗余独立磁盘阵列的实现方法 |
CN107885456A (zh) * | 2016-09-29 | 2018-04-06 | 北京忆恒创源科技有限公司 | 减少io命令访问nvm的冲突 |
CN107885457A (zh) * | 2016-09-30 | 2018-04-06 | 华为技术有限公司 | 一种固态硬盘ssd、存储装置及数据存储方法 |
CN108255414A (zh) * | 2017-04-14 | 2018-07-06 | 紫光华山信息技术有限公司 | 固态硬盘访问方法及装置 |
CN108509352A (zh) * | 2017-02-28 | 2018-09-07 | 三星电子株式会社 | 数据存储装置及其操作方法以及包括该装置的电子系统 |
CN109213435A (zh) * | 2017-07-06 | 2019-01-15 | 爱思开海力士有限公司 | 存储器系统以及存储器系统的操作方法 |
CN110275800A (zh) * | 2019-06-20 | 2019-09-24 | 深圳忆联信息系统有限公司 | Ssd数据物理备份方法、装置、计算机设备及存储介质 |
US20190340120A1 (en) * | 2018-05-01 | 2019-11-07 | Fujitsu Limited | Method, apparatus for data management, and non-transitory computer-readable storage medium for storing program |
-
2021
- 2021-01-29 CN CN202110134748.0A patent/CN112817533A/zh active Pending
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101101569A (zh) * | 2007-06-28 | 2008-01-09 | 忆正存储技术(深圳)有限公司 | 基于多通道闪存设备逻辑条带的自适应控制方法 |
CN101963891A (zh) * | 2010-09-25 | 2011-02-02 | 成都市华为赛门铁克科技有限公司 | 数据存储处理方法与装置、固态硬盘系统与数据处理系统 |
CN103493002A (zh) * | 2011-04-05 | 2014-01-01 | 株式会社东芝 | 存储器系统 |
CN102567257A (zh) * | 2011-12-26 | 2012-07-11 | 华中科技大学 | 一种控制多通道固态盘数据读写的方法 |
US20140380092A1 (en) * | 2012-02-09 | 2014-12-25 | Tli Inc. | Efficient raid technique for reliable ssd |
US20160246521A1 (en) * | 2015-02-25 | 2016-08-25 | HGST Netherlands B.V. | System and method for copy on write on an ssd |
CN107193486A (zh) * | 2016-03-14 | 2017-09-22 | 三星电子株式会社 | 数据存储设备和包括该数据存储设备的数据处理系统 |
CN105912307A (zh) * | 2016-04-27 | 2016-08-31 | 浪潮(北京)电子信息产业有限公司 | 一种Flash控制器数据处理方法及装置 |
CN107885456A (zh) * | 2016-09-29 | 2018-04-06 | 北京忆恒创源科技有限公司 | 减少io命令访问nvm的冲突 |
CN107885457A (zh) * | 2016-09-30 | 2018-04-06 | 华为技术有限公司 | 一种固态硬盘ssd、存储装置及数据存储方法 |
CN106875977A (zh) * | 2017-02-27 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种固态硬盘调试方法及装置 |
CN108509352A (zh) * | 2017-02-28 | 2018-09-07 | 三星电子株式会社 | 数据存储装置及其操作方法以及包括该装置的电子系统 |
CN108255414A (zh) * | 2017-04-14 | 2018-07-06 | 紫光华山信息技术有限公司 | 固态硬盘访问方法及装置 |
CN109213435A (zh) * | 2017-07-06 | 2019-01-15 | 爱思开海力士有限公司 | 存储器系统以及存储器系统的操作方法 |
CN107678690A (zh) * | 2017-09-29 | 2018-02-09 | 山东超越数控电子有限公司 | 一种固态硬盘及其冗余独立磁盘阵列的实现方法 |
US20190340120A1 (en) * | 2018-05-01 | 2019-11-07 | Fujitsu Limited | Method, apparatus for data management, and non-transitory computer-readable storage medium for storing program |
CN110275800A (zh) * | 2019-06-20 | 2019-09-24 | 深圳忆联信息系统有限公司 | Ssd数据物理备份方法、装置、计算机设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113341933A (zh) * | 2021-06-23 | 2021-09-03 | 中国第一汽车股份有限公司 | 车用中央控制器的诊断系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100592271C (zh) | 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法 | |
US8352718B1 (en) | Method, system, and computer-readable medium for expediting initialization of computing systems | |
US20230214956A1 (en) | Resiliency Schemes for Distributed Storage Systems | |
US11579992B2 (en) | Methods and systems for rapid failure recovery for a distributed storage system | |
US6968382B2 (en) | Activating a volume group without a quorum of disks in the volume group being active | |
US7734842B2 (en) | Computer-implemented method, apparatus, and computer program product for managing DMA write page faults using a pool of substitute pages | |
US8713230B2 (en) | Method for adjusting link speed and computer system using the same | |
US20040260917A1 (en) | Multi-processing in a BIOS environment | |
US11561860B2 (en) | Methods and systems for power failure resistance for a distributed storage system | |
CN1489059A (zh) | 管理多处理器系统中虚拟化的物理存储器的方法和系统 | |
US10152278B2 (en) | Logical to physical sector size adapter | |
CN109313593B (zh) | 存储系统 | |
US7222117B1 (en) | Segmented global area database | |
CN115357262A (zh) | 一种驱动器固件批量升级的方法 | |
US7076648B2 (en) | Methods and computer systems for selection of a DSDT | |
CN112817533A (zh) | Ssd管理方法、装置计算机设备及存储介质 | |
US7536694B2 (en) | Exception handling in a multiprocessor system | |
WO2021135742A1 (zh) | 对账清算方法及装置 | |
US7058801B2 (en) | Methods and computer systems for updating values of a DSDT | |
CN113111020A (zh) | 用于存储器管理的嵌入式信息系统和方法 | |
US6931571B2 (en) | Method and apparatus for handling transient memory errors | |
US7234039B1 (en) | Method, system, and apparatus for determining the physical memory address of an allocated and locked memory buffer | |
CN116185275A (zh) | 用于raid存储装置的直接存储器访问数据路径 | |
CN113031863B (zh) | Ssd命令相关性管理方法、装置、计算机设备及存储介质 | |
US10732901B2 (en) | Storage system and storage control method |
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 |