CN109783002B - 数据读写方法、管理设备、客户端和存储系统 - Google Patents
数据读写方法、管理设备、客户端和存储系统 Download PDFInfo
- Publication number
- CN109783002B CN109783002B CN201711120476.9A CN201711120476A CN109783002B CN 109783002 B CN109783002 B CN 109783002B CN 201711120476 A CN201711120476 A CN 201711120476A CN 109783002 B CN109783002 B CN 109783002B
- Authority
- CN
- China
- Prior art keywords
- partition
- hard disks
- hard disk
- data
- client
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供了提供一种数据读写方法、管理设备、客户端和存储系统,能够实现完全的读写分离。该方法应用于存储系统,该方法包括:管理设备接收客户端在接收到第一读请求时发送的第一指示消息,第一指示消息包括第二分区的分区标识,第一读请求携带第一数据的标识,其中,第二分区的可用容量为0,并且所述第二分区所在的M个硬盘与所述第一分区所在的M个硬盘部分相同,第二分区所在的M个硬盘中的每一个硬盘均存储所述第一数据;管理设备根据第一指示消息从第二分区所在的M个硬盘中确定第一目标硬盘,第一目标硬盘不属于所述第一分区所在的M个硬盘;管理设备向客户端发送第一目标硬盘的地址。
Description
技术领域
本申请涉及数据存储领域,并且更具体地,涉及一种数据读写方法、管理设备、客户端和存储系统。
背景技术
随着存储虚拟化的发展,特别是云存储的发展,现在的存储系统都是把所有的硬盘组成一个统一的资源池给各种应用使用。存储虚拟化导致多种应用会同时访问一个硬盘,对硬盘的访问冲突加大,所有的读写操作都变成了随机访问。而所有类型的硬盘对随机写都不是友好的,会严重影响硬盘的性能。
现有技术提供了一种将硬盘的读操作和写操作分离开的方案,即读写分离的方案。即,当硬盘D0和D1构成两个副本时,向D0的缓存(cache)和D1写数据,当在写数据的过程中需要读数据,可以从D0上读取数据,在写操作结束后,可以将D0的缓存中的数据写入D0。待下一次需要写数据时,向D1的缓存和D0进行写数据,当在写数据的过程中需要读数据,可以从D1上读取数据,在写操作结束后,可以将D1的缓存中的数据写入D1。然而,为保持两个副本数据完全相同,缓存的数据的掉电时不能丢失,这就需要依靠高性能的介质做缓存。从而导致成本较高,对硬件依赖性强。
发明内容
本申请提供一种数据读写方法、管理设备、客户端和存储系统,能够在不增加硬件成本的基础下实现完全的读写分离,提高硬盘的读写性能。
第一方面,提供了一种数据读写方法,所述方法应用于存储系统中,所述存储系统包括N个硬盘,所述N个硬盘包括多个分区,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数;
所述方法包括:
管理设备接收客户端在接收到第一读请求时发送的第一指示消息,所述第一指示消息包括第二分区的分区标识,所述第一读请求携带第一数据的标识,其中,第二分区的可用容量为0,并且所述第二分区所在的M个硬盘与所述第一分区所在的M个硬盘部分相同,所述第二分区所在的M个硬盘中的每一个硬盘均存储所述第一数据;
所述管理设备根据所述第一指示消息,从所述第二分区所在的M个硬盘中确定第一目标硬盘,其中,所述第一目标硬盘不属于所述第一分区所在的M个硬盘;
所述管理设备向所述客户端发送所述第一目标硬盘的地址,以用于所述客户端根据所述第一目标硬盘的地址从所述第一目标硬盘读取所述第一数据。
本申请实施例的方法,通过将硬盘进行分区,并使同一分区用于存储相同数据且不同分区所在硬盘不完全相同,能够在读取一个分区的数据时,可以从该分区所在的多个硬盘中当前未进行写操作的至少一个硬盘中读取数据,从而实现写一个硬盘时不读取该硬盘上的数据。在不增加硬件成本的基础下,能够实现完全的读写分离,提高硬盘的读写性能。
在一种可能的实现方式中,所述第一分区所在的M个硬盘中的每一个硬盘均对应一个缓存设备,每个缓存设备缓存有所述第一分区存储的数据副本;
所述方法还包括:
所述管理设备接收所述客户端在接收到第二读请求时发送的第二指示消息,所述第二指示消息包括所述第一分区的分区标识,所述第二读请求携带第二数据的标识,所述第一分区所在的M个硬盘中的每一个硬盘均存储所述第二数据;
所述管理设备根据所述第二指示消息,确定所述第一分区所在的M个硬盘中的至少一个硬盘;
所述管理设备向所述客户端发送所述第一分区所在的M个硬盘中的至少一个硬盘的地址,以用于所述客户端根据所述第一分区所在的M个硬盘中的至少一个硬盘的地址从所述第一分区所在的M个硬盘中的至少一个硬盘中的任一硬盘所对应的缓存设备中读取所述第二数据。
本申请实施例的数据读写方法,通过设置与硬盘对应的缓存设备,可以在对某一分区进行写操作的同时从该分区所在的硬盘所对应的缓存设备上读取数据,能够避免在写一个分区的同时不能读取这个分区,从而能够进一步提高数据读写性能。
另外,由于与缓存设备与与其所对应的硬盘所存储的数据相同,因此,即使缓存设备在掉电时丢失了数据,也不会对于其所对应的硬盘所存储的数据有任何影响。因此,本申请实施例可以降低对缓存设备的性能要求,进而能降低设备成本,降低对硬件的依赖。
在一种可能的实现方式中,所述方法还包括:
所述管理设备接收所述客户端在接收到写请求时发送的分配分区请求消息,所述写请求用于请求向所述存储系统写入第三数据;
所述管理设备根据所述分配分区请求消息,确定所述第一分区以及所述第一分区所在的M个硬盘中每个硬盘的地址;
所述管理设备向所述客户端发送分配分区响应消息,所述分配分区响应消息包括所述第一分区所在的M个硬盘中每个硬盘的地址,以用于所述客户端根据所述第一分区所在的M个硬盘中每个硬盘的地址,向所述第一分区所在的M个硬盘中每个硬盘同时写入所述第三数据。
本申请实施例的方法,通过将硬盘进行分区,并使同一分区用于存储相同数据且不同分区所在硬盘不完全相同,在写数据时,向未写满的分区所在的多个硬盘同时写数据,使得在读取一个分区的数据时,可以从该分区所在的多个硬盘中当前未进行写操作的至少一个硬盘中读取数据,从而实现写一个硬盘时不读取该硬盘上的数据。在不增加硬件成本的基础下,能够实现完全的读写分离,提高硬盘的读写性能。
可选地,在本申请实施例中,所述N个硬盘中每个硬盘的容量相等,且所述多个分区中每个分区的容量相等,每个硬盘上的分区均分该硬盘的容量。
进一步地,每个硬盘所对应的缓存设备的容量等于该硬盘上每个分区的容量。
更进一步地,预估分区数量P满足下述公式:
每个硬盘的容量为Ra,每个分区的容量为Rr,每个分区的预估容量RH满足下述公式:
若RH大于或等于预设值RY,则Rr=RH,H=P;
若RH小于RY,则Rr=RY,且RY满足下述公式:
m、n、P、Ra、Rr、RY、RH均为正整数。
可选地,RY=1GB。
第二方面,提供了一种数据读写方法,所述方法应用于存储系统中,所述存储系统包括N个硬盘,所述N个硬盘包括多个分区,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数;
所述方法包括:
客户端接收第一读请求,所述第一读请求包括第一数据的标识;
所述客户端根据所述第一读请求,确定用于存储所述第一数据的所述多个分区中的第二分区;
所述客户端向管理设备发送第一指示消息,所述第一指示消息包括所述第二分区的分区标识,所述第一指示信息用于所述管理设备从所述第二分区所在的M个硬盘中确定第一目标硬盘,其中,所述第一目标硬盘不属于所述第一分区所在的M个硬盘;
所述客户端接收所述管理设备发送的所述第一目标硬盘的地址;
所述客户端根据所述第一目标硬盘的地址,从所述第一目标硬盘读取所述第一数据。
本申请实施例的方法,通过将硬盘进行分区,并使同一分区用于存储相同数据且不同分区所在硬盘不完全相同,能够在读取一个分区的数据时,可以从该分区所在的多个硬盘中当前未进行写操作的至少一个硬盘中读取数据,从而实现写一个硬盘时不读取该硬盘上的数据。在不增加硬件成本的基础下,能够实现完全的读写分离,提高硬盘的读写性能。
在一种可能的实现方式中,所述第一分区所在的M个硬盘中的每一个硬盘均对应一个缓存设备,每个缓存设备缓存有所述第一分区存储的数据副本;
所述方法还包括:
所述客户端接收第二读请求,所述第二读请求包括第二数据的标识;
所述客户端根据所述第二读请求,确定用于存储所述第二数据的所述多个分区中的所述第一分区;
所述客户端向管理设备发送第二指示消息,所述第二指示消息包括所述第一分区的分区标识,所述第二指示信息用于所述管理设备确定所述第一分区所在的M个硬盘中的至少一个硬盘;
所述客户端接收所述管理设备发送的第一分区所在的M个硬盘中的至少一个硬盘的地址;
所述客户端根据所述第一分区所在的M个硬盘中的至少一个硬盘的地址,从所述第一分区所在的M个硬盘中的至少一个硬盘中的任一硬盘所对应的缓存设备中读取所述第二数据。
本申请实施例的数据读写方法,通过设置与硬盘对应的缓存设备,可以在对某一分区进行写操作的同时从该分区所在的硬盘所对应的缓存设备上读取数据,能够避免在写一个分区的同时不能读取这个分区,从而能够进一步提高数据读写性能。
另外,由于与缓存设备与与其所对应的硬盘所存储的数据相同,因此,即使缓存设备在掉电时丢失了数据,也不会对于其所对应的硬盘所存储的数据有任何影响。因此,本申请实施例可以降低对缓存设备的性能要求,进而能降低设备成本,降低对硬件的依赖。
在一种可能的实现方式中,所述方法还包括:
所述客户端接收写请求,所述写请求用于请求向所述存储系统写入第三数据;
所述客户端根据所述写请求向所述管理设备发送分配分区请求消息,所述分配分区请求消息用于所述管理设备确定所述第一分区以及所述第一分区所在的M个硬盘中每个硬盘的地址;
所述客户端接收所述管理设备发送的分配分区响应消息,所述分配分区响应消息包括所述第一分区所在的M个硬盘中每个硬盘的地址;
所述客户端根据所述第一分区所在的M个硬盘中每个硬盘的地址,向所述第一分区所在的M个硬盘中每个硬盘同时写入所述第一数据。
进一步地,在所述第一分区所在的M个硬盘中的每一个硬盘均对应一个缓存设备的情况下,客户端向第一分区所在的M个硬盘中每个硬盘的写第三数据的同时,还向第一分区所在的M个硬盘中每个硬盘所对应的缓存设备写第三数据。
进一步地,当一个分区写满后,就可以将该分区所对应的缓存设备中所存储的数据清空。
第三方面,提供了一种管理设备,其特征在于,所述管理设备能够与存储系统进行通信,并能够获知所述存储系统中的N个硬盘中每个硬盘所包括的多个分区中每个分区当前执行的读操作和/或写操作以及当前的可用容量,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数;
所述管理设备包括用于执行第一方面或第一方面任一种可能实现方式中的各个单元。
第四方面,提供了一种客户端,所述客户端能够与存储系统通信,并能够获知所述存储系统中的N个硬盘中每个硬盘所包括的多个分区中每个分区当前执行的读操作和/或写操作以及当前的可用容量,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数;所述客户端包括用于执行第二方面或第二方面任一种可能实现方式中的各个单元。
第五方面,提供了一种管理设备,包括输入/输出接口、处理器和存储器,所述处理器用于控制所述输入/输出接口收发信号,所述存储器用于存储计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,使得该管理设备执行上述第一方面中的方法。
第六方面,提供了一种客户端,包括输入/输出接口、处理器和存储器,所述处理器用于控制所述输入/输出接口收发信号,所述存储器用于存储计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,使得该客户端执行第二方面中的方法。
第七方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述各方面中的方法。
第八方面,提供了一种计算机可读介质,所述计算机可读介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述各方面中的方法。
第九方面,提供了一种存储系统,所述存储系统包括N个硬盘和管理设备;
所述N个硬盘包括多个分区,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数;
所述管理设备用于执行第一方面或第一方面任一种可能实现方式中的各个单元。
第十方面,提供了一种存储系统,所述存储系统包括N个硬盘和客户端;
所述N个硬盘包括多个分区,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数;
所述客户端用于执行第二方面或第二方面任一种可能实现方式中的各个单元。
第十一方面,提供了一种存储系统,所述存储系统包括N个硬盘,客户端和管理设备;
所述N个硬盘包括多个分区,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数;
所述管理设备用于执行第一方面或第一方面任一种可能实现方式中的各个单元。
所述客户端用于执行第二方面或第二方面任一种可能实现方式中的各个单元。
第十二方面,提供了一种芯片系统,该芯片系统包括处理器,用于管理设备和/或客户端实现上述方面中所涉及的功能,例如,生成,接收,发送,或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存必要的计算机指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
附图说明
图1是应用于本申请实施例的系统架构的示意图。
图2是根据本申请实施例的对硬盘分区的示意图。
图3是根据本申请另一实施例的硬盘分区的示意图。
图4是根据本申请实施例的数据读写方法的示意性流程图。
图5是根据本申请另一实施例的数据读写方法的示意性流程图。
图6是根据本申请再一实施例的数据读写方法的示意性流程图。
图7是根据本申请实施例的管理设备的示意性框图。
图8是根据本申请另一实施例的管理设备的示意性框图。
图9是根据本申请实施例的客户端的示意性框图。
图10是根据本申请另一实施例的客户端的示意性框图。
图11是根据本申请实施例的存储系统的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
图1是适用于本申请的数据读写方法的一个系统架构示意。该系统架构可以包括应用层、客户端、控制器和服务节点。应用层、客户端、控制器和服务节点的数量均可以为一个或者多个,本申请实施例对此不作限定。比如,在图1中,示出了客户端(client)101a、客户端101b、客户端101c、控制器(manager)102、服务节点103a、服务节点103b和服务节点103c。
服务节点可以是服务器(server),本申请实施例对此不作限定。每个服务节点可以包括一个或多个硬盘,这一个或多个硬盘可用于存储数据。此外,每个服务节点还可以包括缓存(cache),用于缓存数据,缓存的容量可以小于或者等于该服务节点的存储容量。客户端用于接收外部的读/写请求,比如客户端(client)101a、客户端101b或客户端101c接收图1所示的应用层104发送的读/写请求,然后将读/写请求发送至控制器102。控制器102根据该读/写请求,确定需要进行读操作或写操作的硬盘,然后将需要进行读操作或写操作的硬盘的地址返回给客户端101。客户端101根据该地址将数据写入硬盘或从硬盘上读取数据。
应理解,本申请实施例中,客户端从硬盘读取数据可以理解为:该硬盘所在的服务节点从该硬盘上读取数据,然后该服务节点将所读取的数据发送给客户端。客户端向硬盘写入数据可以理解为:客户端接收应用层发送的数据,然后向服务节点发送该数据,接收服务节点将该数据写入硬盘中。
还应理解,控制器102可以作为硬件或者软件,或者作为硬件和软件的结合。应用层和客户端可以集成于一个模块或者单元或者设备中。应用层、客户端和控制器(manager)也可以集成于一个模块或者单元或者设备中。本申请实施例对此都不做限定。
若图1所示的服务节点103a包括硬盘D0,服务节点103b包括硬盘D1,D0和D1作为两个数据副本,即D0和D1用于存储相同的数据。因此,在写数据时,需要同时向D0和D1写数据。若在向D0和D1写数据的过程中,需要读取数据,则从D0或者D1上读取数据。相对于单独对硬盘进行读操作或者写操作,同时对硬盘进行读操作和写操作将会影响硬盘的读写性能,例如会降低从硬盘读数据和向硬盘写数据时的速度等。
为提高读写性能,现有技术提供了一种读写分离的方案。具体来讲,就是在需要写数据时对服务节点103a中的缓存和D1进行写操作,当在写数据的过程中需要读数据,可以从D0上读取数据,在写操作结束后,可以将服务节点103a中的缓存中的数据写入D0。待下一次需要写数据时,向服务节点104中的缓存和D0进行写数据,当在写数据的过程中需要读数据,可以从D1上读取数据,在写操作结束后,可以将服务节点104中的缓存中的数据写入D1。
然而,为保持两个副本数据完全相同,缓存里的数据的掉电时不能丢失,这就需要依靠高性能的介质做缓存。从而导致成本较高,对硬件依赖性强。
基于此,本申请提供了一种数据读写方法,该方法可以应用于存储系统中,该方法能够在对实现硬盘读写分离的同时,降低成本,降低对硬件的依赖。
下面,对本申请实施例进行详细描述。
首先,对本申请实施例的数据读写方法所应用的存储系统进行描述。
本申请实施例的方法可以应用于存储系统中,该存储系统包括N个硬盘。例如,存储系统可以是图1所示的系统架构,该多个硬盘可以分布于多个服务节点,每个服务节点可以包括一个或多个硬盘。
以下,为了便于理解和描述,将这N个硬盘记作:D0~Dm,m=N-1。其中,Di为D0~Dm中的任一硬盘,0≤i≤m,且i为整数。应理解,本申请并不限定所述存储系统中是是否还包括其他的硬盘,比如,所述存储系统还可以包括除D0~Dm外的其他硬盘。
D0~Dm中的每个硬盘可以包括多个分区。以下,为了便于理解和描述,将该多个分区记作:分区1~分区H,H≥2,且H为整数。其中,分区j为分区1~分区H中的任一分区,0≤j≤H,且j为整数。
每个分区分布在M个硬盘上,M个硬盘中的每一个硬盘为该分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同。也就是说,分区j可以对应M个硬盘,即这M个硬盘中的每个硬盘都包括分区j,且该每个硬盘上的分区j的容量相同且用于存储相同的数据。
需要说明的是,分区的容量是指允许向该分区写入的数据的最大量。应理解,分区1~分区H的容量可以相等,也可以不等,本申请实施例对此不作限定。
以N=3,H=3,D0~D2中的每个硬盘包括分区1~分区3中的两个分区为例,硬盘和分区的对应情况可以如图2所示。如图2所示,分区1在D0和D1上,分区2在D1和D2上,分区3在D0和D2上。D0和D1上的分区1为两个副本,即D0和D1上的分区1用于存储相同的数据。在写分区1时,同时写D0和D1上的分区1。对于分区2和分区3类似,此处不再详述。
以N=4,H=3,D0和D1均包括分区1~分区3中的两个分区为例。如图3所示,分区1在D0和D1上,分区2在D1和D3上,分区3在D0和D2上。D0和D1上的分区1为两个副本,即D0和D1上的分区1用于存储相同的数据。在写分区1时,同时写D0和D1上的分区1。对于分区2和分区3类似,此处不再详述。
分区1~分区H中同时只有一个分区所在的M个硬盘能够执行(或进行)写操作,或者说同时只有一个分区能够执行写操作。以下,为了便于理解和描述,将当前执行写操作的分区记作:第一分区。
其中,第一分区的可用容量大于0,分区1~分区H中当前未执行写操作的每个分区的可用容量为0或等于分区的容量。换句话说,第一分区当前所存储的数据的容量可以为0,也可以大于0但小于该分区的容量。即,第一分区可以是一个空的分区,也可以是当前未写满的分区,本申请实施例对此不作限定。而分区1~分区H中除第一分区外的分区为空的分区,或者是已经写满的分区。
还应理解,本申请实施例所谓的“对分区进行写操作”可以理解为,向该分区所在的所有硬盘写数据,“对硬盘进行写操作”可以理解为,向硬盘写数据。
结合图2进行举例说明。若分区1~分区3中,D0和D1上的分区1当前所存储的数据的容量大于0且均小于分区1的容量,D1和D2上的分区2当前所存储的数据的容量均等于分区2的容量或者为0,D0和D2上的分区3当前所存储的数据的容量均等于分区2的容量或者为0,那么同一时刻只能对D0和D1上的分区1进行写操作,而不能同时对分区1~分区3都进行写操作。
若分区1~分区3中,D0和D1上的分区1当前所存储的数据的容量等于0,D1和D2上的分区2当前所存储的数据的容量均等于分区2的容量,D0和D2上的分区3当前所存储的数据的容量均为0,那么同一时刻可以只对D0和D1上的分区1进行写操作,或者只对D0和D2上的分区3进行写操作。
总之,同一时刻只能对分区1~分区3中的一个分区进行写操作,而不能同时对多个分区进行写操作。
可选地,第一分区所在的M个硬盘中的每一个硬盘均对应一个缓存设备。该缓存设备例如可以是缓存(cache)。每个缓存设备缓存有第一分区存储的数据副本,即每个缓存设备缓存的数据与第一分区所存储的数据相同。比如,第一分区可以是图2所示的分区1,那么D0和D1均对应一个缓存设备。D0所对应的缓存设备和D1所对应的缓存设备缓存有第一分区存储的数据副本。
为实现第一分区所对应的缓存设备缓存第一分区存储的数据副本,可在写第一分区时,同时将数据写入第一分区所对应的缓存设备中。
本申请实施例中,由于与缓存设备与其所对应的硬盘或分区所存储的数据相同,因此,即使缓存设备在掉电时丢失了数据,也不会对其所对应的硬盘所存储的数据有任何影响。因此,本申请实施例可以降低对缓存设备的性能要求,进而能降低设备成本,降低对硬件的依赖。
可选地,作为本申请一个实施例,该存储系统可以包括多组硬盘。其中,D0~Dm为该存储系统的一组硬盘,或者,分区1~分区H所在的所有硬盘为一组硬盘,例如,记作硬盘组#1。对于该存储系统的其他组硬盘,可以参照对硬盘组#1中的硬盘的处理方式对其进行相应处理,此处不再详述。应理解,各硬盘组所包括的分区个数可以相同也可以不同,本申请实施例对此不作限定。
需要说明的是,在该存储系统包括多组硬盘的情况下,可以对每组硬盘进行独立的读写操作,即这多组硬盘之间相互解耦。若该存储系统包括3组硬盘,则同一时刻可以对每组硬盘中的一个分区进行写操作,相当于同一时刻可以对3个分区进行写操作,从而能够提高写性能。
可选地,在本申请实施例中,硬盘D0~Dm中每个硬盘的容量相等,且分区1~分区H中每个分区的容量相等,每个硬盘上的分区均分该硬盘的容量。
进一步地,第一分区所在的任一硬盘所对应的缓存设备的容量等于该任一硬盘上每个分区的容量。
比如,以图2所示的分区情况为例,若D0~D2这3个硬盘的容量都是64GB,则分区1、分区2和分区3的容量都为32GB。D0~D2这3个硬盘所对应的3个缓存设备也都为32GB。
更进一步地,在本申请实施例中,M为数据副本个数,预估分区数量P满足下述公式:
每个硬盘的容量为Ra,每个分区的容量为Rr,每个分区的预估容量RH满足下述公式:
若RH大于或等于预设值RY,则Rr=RH,H=P;
若RH小于RY,则Rr=RY,且RY满足下述公式:
其中,P、Ra、Rr、RY、RH均为正整数。
具体来讲,如果有N个硬盘,数据的副本个数是M,即每个分区对应M个硬盘,则N个硬盘最多可以被划分为的不完全重叠分区个数是P,即预估分区数量为P。
分区个数H由单个硬盘上单个分区的容量确定。单个硬盘上单个分区的容量为RH。假设RY=1GB,实际的分区个数H确定方法如下:
(1)如果最大分区数计算出的单个硬盘上单个分区的容量大于或等于1GB,即RH≥1GB,则分区数H是最大分区数,即H=P。
例如,每个硬盘的容量是3.6TB,m=9,数据的副本数是3,则最大的分区数是120,计算出的单个硬盘上单个分区的容量=3.6TB/(120*3)=10GB,大于1GB,则分区数H等于最大分区数也就是120。
(2)如果最大分区数计算出的单个硬盘上单个分区的容量小于1GB,则选择使单个硬盘上单个分区的容量大于或等于1GB的最小分区数作为分区数H。
例如,每个硬盘的容量是180GB,m=9,数据的副本数是3,则最大的分区数是120,计算出的单个硬盘上单个分区的容量=180GB/(120*3)=0.5GB,小于1GB,则分区数H选择60,使单个硬盘上单个分区的容量刚好等于1GB。
每个硬盘上的分区数=(总的分区数*数据的副本数)/硬盘个数。因为不同硬盘上同一个分区的数据相同,而且分区被均匀分布到所有的硬盘上。所以一个硬盘上的分区数越多,就说明有越多的其他硬盘上也有和这个硬盘相同的分区。假设有100个硬盘,单个硬盘上的分区数为120,数据的副本数是2,则可以认为每个硬盘的数据还有一个副本被分布到了其他的99块盘上。这样当一个硬盘故障后,其他99块硬盘都可以参与重建。参与重建的硬盘越多,重建速度越快,可靠性就越高。
下面具体介绍可以应用于上述存储系统的数据读写方法。
图4是根据本申请实施例的数据读写方法的示例性流程图。应理解,图4示出了数据读写方法的步骤或操作,但这些步骤或操作仅是示例,本申请实施例还可以执行其他操作或者图4中的各个操作的变形。此外,图4中的各个步骤可以按照与图4呈现的不同的顺序来执行,并且有可能并非要执行图4中的全部操作。
S201,应用层向客户端发送第一读请求,该第一读请求包括第一数据的标识(Identification,ID)(记作:ID#1)。
S202,客户端根据ID#1,确定第二分区。下文中以第二分区为分区2举例说明。
具体来讲,应用层需要从存储系统中读取数据时,向客户端发送读请求,该读请求可以携带应用层需要读取的数据的ID。比如,应用层需要读取第一数据时,向客户端(例如,客户端101a)发送第一读请求。分区1~分区H中每个分区可以保存一个或多个数据(或数据块),客户端存储有分区(或分区的ID)与数据ID之间的对应关系。客户端从应用层接收到第一读请求后,根据该读请求中的ID#1以及分区与数据ID之间的对应关系,可以确定ID#1对应的分区。比如,分区的ID可以根据公式确定:分区的ID=数据ID%分区个数。其中,“%”表示取余。这里,客户端所确定出的应用层需要读取的分区的标识(Identification,ID)即为分区2的ID。
S203,客户端向管理设备发送第一指示消息。其中,该第一指示消息包括分区2的ID。
可选地,分区2的ID可以是分区2的编号,即2。
具体地,客户端根据ID#1确定分区2后,向管理设备发送分区2的ID,请求管理设备返回相应地硬盘地址,以从该硬盘上读取第一数据。
S204,管理设备根据该第一指示消息,从第二分区所在的M个硬盘中确定第一目标硬盘。
具体地,管理设备(例如,控制器102)可以保存分区与硬盘的对应关系。在分区2当前所存储的数据的容量等于分区2的容量的情况下,即分区2的可用容量为0的情况下,管理设备确定分区2所在的M个硬盘中当前未进行写操作的至少一个硬盘,即确定分区2所在的M个硬盘中不属于第一分区所在的至少一个硬盘,将该至少一个硬盘中的一个或多个作为第一目标硬盘。
结合图2所示的分区情况,管理设备所确定的第一目标硬盘可以是D1和D2中未包括第一分区的硬盘。若第一分区为分区1,,那么第一目标硬盘为D2;若第一分区为分区3,,那么第一目标硬盘为D1。下文中以第一分区为分区1进行举例说明。
应理解,本申请实施例仅以分区情况如图2所示为例进行说明。这里的示例性说明中,该第一目标硬盘仅包括一个硬盘,但在实际情况中,若分区2的副本个数大于2,该第一目标硬盘可能包括2个或者更多个硬盘。
S205,管理设备向客户端发送该第一目标硬盘的地址。
具体地,管理设备向客户端发送D2的地址。
S206,客户端根据该第一目标硬盘的地址,从第一目标硬盘上读取标识为ID#1的数据(即,第一数据)。
具体地,客户端接收到管理设备发送的D2的地址后,直接从D2上读取第一数据。若管理设备发送的地址是多个,那么客户端可以从多个地址中的任一地址所对应的硬盘上读取第一数据。
可选地,在第二分区所在的M个硬盘均包括一个对应的缓存设备的情况下,S206还可以采用以下两种方式实现。
方式一
客户端根据该第一目标硬盘的地址,先从该第一目标硬盘中的任一硬盘所对应的缓存设备中读取第一数据。若该缓存设备中没有数据,则客户端从该第一目标硬盘中的任一硬盘中读取第一数据。
即,客户端先从D2所对应的缓存设备(记作:C2)上读取数据,若C2上没有数据,再从D2上读取第一数据。
在本申请实施例中,因C2只会存储D2上的分区2和分区3中当前未写满的分区的数据,而分区2已经写满,因此C2不会保存分区2的数据,客户端只能从D2上读取分区2的数据。
方式二
客户端根据该第一目标硬盘的地址,确定要从第一目标硬盘中的任一硬盘上读取数据后,向所选定的硬盘所在的服务节点发送读指示消息。该服务节点接收到读指示信息后,判断该硬盘是否正在进行写操作。如果该硬盘当前没有进行写操作,则该服务节点控制客户端从该硬盘上读取第一数据。如果该硬盘正在进行写操作,且该硬盘所对应的缓存设备上有数据,则该服务节点控制客户端从该硬盘所对应的缓存设备上读取第一数据。
具体地,客户端向D2所在的服务节点(记作:服务节点#2)发送读指示消息。服务节点#2接收到读指示消息后,判断D2当前是否正在进行写操作。本申请实施例中,由S220中的描述可知,D2当前未进行写操作。因此,服务节点#2从D2上读取第一数据,然后将第一数据发送给客户端。
S207,客户端可以向应用层发送第一数据。
具体地,客户端从D2读取第一数据后,向应用层返回第一数据。
本申请实施例的方法,通过将硬盘进行分区,并使同一分区用于存储相同数据且不同分区所在硬盘不完全相同,能够在读取一个分区的数据时,可以从该分区所在的多个硬盘中当前未进行写操作的至少一个硬盘中读取数据,从而实现写一个硬盘时不读取该硬盘上的数据。在不增加硬件成本的基础下,能够实现完全的读写分离,提高硬盘的读写性能。
可选地,作为一个实施例,若第一分区所在的M个硬盘中的每一个硬盘均对应一个缓存设备,,该方法还可以包括如图5所示的步骤。
S301,应用层向客户端发送第二读请求,该第二读请求包括第二数据的标识(记作:ID#2)。
S302,客户端根据ID#2,确定第一分区。下文中以第一分区为分区1举例说明。
具体来讲,应用层需要从存储系统中读取数据时,向客户端发送读请求,该读请求可以携带应用层需要读取的数据的ID。比如,应用层需要读取第二数据时,向客户端(例如,客户端101b)发送第二读请求。分区1~分区H中每个分区可以保存一个或多个数据(或数据块),客户端存储有分区(或分区的ID)与数据ID之间的对应关系。客户端从应用层接收到第二读请求后,根据该读请求中的ID#2以及分区与数据ID之间的对应关系,可以确定ID#2对应的分区。比如,分区的ID可以根据公式确定:分区的ID=数据ID%分区个数。其中,“%”表示取余。这里,客户端所确定出的应用层需要读取的分区的标识(Identification,ID)即为分区1的ID。
S303,客户端向管理设备发送第二指示消息。其中,该第二指示消息包括分区1的ID。
可选地,分区1的ID可以是分区1的编号,即1。
S304,管理设备根据该第一指示消息,确定所述第一分区所在的M个硬盘中的至少一个硬盘。
具体地,管理设备可以保存分区与硬盘的对应关系。在分区1当前执行写操作的情况下,管理设备确定分区1所在的M个硬盘中的至少一个硬盘。
S305,管理设备向客户端发送第一分区所在的M个硬盘中至少一个硬盘的地址。
S306,客户端根据第一分区所在的M个硬盘中至少一个硬盘的地址,从第一分区所在的M个硬盘中至少一个硬盘中的任一硬盘所对应的缓存设备中读取第二数据。
具体地,在分区1当前执行写操作的若需要读取分区1中的第二数据,则从分区1所对应的多个硬盘中的任一硬盘所对应的缓存中读取第二数据,即从D0或D1所对应的缓存设备中读取第二数据。
S307,客户端可以向应用层发送第二数据。
本申请实施例的数据读写方法,通过设置与硬盘对应的缓存设备,可以在对某一分区进行写操作的同时从该分区所在的硬盘所对应的缓存设备上读取数据,能够避免在写一个分区的同时不能读取这个分区,从而能够进一步提高数据读写性能。
上文中以读取第一数据和第二数据为例,主要描述了如何读数据。下文中结合图6所示的方法主要介绍如何向硬盘写入数据。
S401,应用层向客户端发送写请求。
具体地,在应用层需要向存储系统写数据(例如,第三数据)时,向客户端发送写请求。
S402,客户端向管理设备发送分配分区请求消息。
具体地,客户端(例如,客户端101c)接收到应用层发送的写请求后,向管理设备发送分配分区请求消息,请求管理设备分配一个分区供客户端写第三数据。
S403,管理设备根据分配分区请求消息,确定第一分区,以及第一分区所在的M个硬盘中每个硬盘的地址。具体来讲,管理设备根据客户端发送的分配分区响应消息,确定分区1~分区H中可用容量大于0的分区作为第一分区,或者若分区1~分区H中任一分区当前所存储的数据的容量为0,则从分区1~分区H中任选一分区作为第一分区。也就是说,在进行写数据时,只有一个分区写满后,即该分区所存储的数据的容量等于该分区的容量时,才从其他没有写数据的分区中选择一个分区向其写数据。
S404,管理设备向客户端发送分配分区响应消息。
其中,分配分区响应消息包括第一分区所在的M个硬盘中每个硬盘的地址。
S405,客户端根据第一分区所在的M个硬盘中每个硬盘的地址,向第一分区所在的M个硬盘中每个硬盘的写数据。
具体地,客户端根据第一分区所在的硬盘的地址,向第一分区所在的硬盘中的每个硬盘上的第一分区写入第三数据。
S406,客户端写入第三数据成功后,向应用层返回第三数据的ID。
进一步地,若第一分区所在的M个硬盘中的每一个硬盘均对应一个缓存设备,,在S405中,客户端向第一分区所在的M个硬盘中每个硬盘的写第一数据的同时,还向第一分区所在的M个硬盘中每个硬盘所对应的缓存设备写第一数据。
可选地,若在客户端向第一分区写数据的过程中,第一分区被写满,则第一分区所对应的服务节点向客户端返回分区已写满指示消息,客户端根据分区已写满指示消息向管理设备申请一个新的分区进行写入。客户端向管理设备申请新的分区进行写入数据的具体过程可以参照S401~S406的描述,此处不再赘述。
进一步地,在本申请实施例中,当一个分区写满后,就可以将该分区所对应的缓存设备中所存储的数据清空。
上文结合图1至图6详细地说明了本申请实施例的数据读写方法,下文结合图7至图11简单介绍本申请实施例的用于数据读写的装置,应理解,图7至图11中所示的装置可以实现上文中描述的方法,为了简洁,在此不再赘述。
图7是本申请实施例的管理设备示意性框图。图7所示的管理设备500包括接收单元510、确定单元520和发送单元530。
管理设备500能够与存储系统进行通信,并能够获知所述存储系统中的N个硬盘中每个硬盘所包括的多个分区中每个分区当前执行的读操作和/或写操作以及当前的可用容量,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数。
接收单元510,用于接收客户端在接收到第一读请求时发送的第一指示消息,所述第一指示消息包括第二分区的分区标识,所述第一读请求携带第一数据的标识,其中,第二分区的可用容量为0,并且所述第二分区所在的M个硬盘与所述第一分区所在的M个硬盘部分相同,所述第二分区所在的M个硬盘中的每一个硬盘均存储所述第一数据;
确定单元520,用于根据所述第一指示消息,从所述第二分区所在的M个硬盘中确定第一目标硬盘,其中,所述第一目标硬盘不属于所述第一分区所在的M个硬盘;
发送单元530,用于向所述客户端发送所述第一目标硬盘的地址,以用于所述客户端根据所述第一目标硬盘的地址从所述第一目标硬盘读取所述第一数据可选地,所述第一分区所在的M个硬盘中的每一个硬盘均对应一个缓存设备,每个缓存设备缓存有所述第一分区存储的数据副本;
以及,所述接收单元510还用于:
接收所述客户端在接收到第二读请求时发送的第二指示消息,所述第二指示消息包括所述第一分区的分区标识,所述第二读请求携带第二数据的标识,所述第一分区所在的M个硬盘中的每一个硬盘均存储所述第二数据;
所述确定单元520还用于,根据所述第二指示消息,确定所述第一分区所在的M个硬盘中的至少一个硬盘;
所述发送单元530还用于,向所述客户端发送所述第一分区所在的M个硬盘中的至少一个硬盘的地址,以用于所述客户端根据所述第一分区所在的M个硬盘中的至少一个硬盘的地址从所述第一分区所在的M个硬盘中的至少一个硬盘中的任一硬盘所对应的缓存设备中读取所述第二数据。可选地,所述接收单元510还用于:
接收所述客户端在接收到写请求时发送的分配分区请求消息,所述写请求用于请求向所述存储系统写入第三数据;
所述确定单元520还用于,根据所述分配分区请求消息,确定所述第一分区以及所述第一分区所在的M个硬盘中每个硬盘的地址
所述发送单元530还用于,向所述客户端发送分配分区响应消息,所述分配分区响应消息包括所述第一分区所在的M个硬盘中每个硬盘的地址,以用于所述客户端根据所述第一分区所在的M个硬盘中每个硬盘的地址,向所述第一分区所在的M个硬盘中每个硬盘同时写入所述第三数据。
在可选的实施例中,所述接收单元和发送单元可以为输入/输出接口630,所述确定单元可以为处理器620和存储器610,处理器620执行存储器610中的计算机指令实现确定单元的功能,具体如图8所示。输入/输出接口630可以为网络接口卡,如以太接口或Infiniband接口卡等。
图8是本申请另一实施例的管理设备的示意性框图。图8所示的管理设备600可以包括:存储器610、处理器620和输入/输出接口630。其中,存储器610、处理器620和输入/输出接口630通过内部连接通路相连,该存储器610用于存储计算机指令,该处理器620用于执行该存储器610存储的计算机指令,以控制输入/输出接口630接收管理设备600的外部及内部输入的数据、信息和信号,输出操作结果、发送信息和信号等
应理解,在本申请实施例中,该处理器620可以采用通用的中央处理器(CentralProcessing Unit,CPU),微处理器,应用专用集成电路(Application SpecificIntegrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
还应理解,输入/输出接口630又称通信接口,使用例如但不限于收发器一类的收发装置,来实现管理设备600与其它设备,例如存储系统、客户端等之间的通信。
该存储器610可以包括只读存储器和随机存取存储器,并向处理器620提供指令和数据。处理器620的一部分还可以包括非易失性随机存取存储器。例如,处理器620还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器620中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的数据读写方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器610,处理器620读取存储器610中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应理解,本申请实施例中,该处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其它通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
图9是本申请实施例的客户端的示意性框图。图9所示的客户端700包括接收单元710、确定单元720、发送单元730和读数据单元740。
客户端700能够与存储系统通信,并能够获知所述存储系统中的N个硬盘中每个硬盘所包括的多个分区中每个分区当前执行的读操作和/或写操作以及当前的可用容量,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数。接收单元710,用于接收第一读请求,所述第一读请求包括第一数据的标识;
确定单元720,用于根据所述第一读请求,确定用于存储所述第一数据的所述多个分区中的第二分区;
发送单元730,用于向管理设备发送第一指示消息,所述第一指示消息包括所述第二分区的分区标识,所述第一指示信息用于所述管理设备从所述第二分区所在的M个硬盘中确定第一目标硬盘,其中,所述第一目标硬盘不属于所述第一分区所在的M个硬盘;
所述接收单元710还用于,接收所述管理设备发送的所述第一目标硬盘的地址;
读数据单元740,根据所述第一目标硬盘的地址,从所述第一目标硬盘读取所述第一数据。
可选地,
所述第一分区所在的M个硬盘中的每一个硬盘均对应一个缓存设备,每个缓存设备缓存有所述第一分区存储的数据副本;
以及,所述接收单元710还用于:
接收第二读请求,所述第二读请求包括第二数据的标识;
所述确定单元720还用于,根据所述第二读请求,确定用于存储所述第二数据的所述多个分区中的所述第一分区;
所述发送单元730还用于,向管理设备发送第二指示消息,所述第二指示消息包括所述第一分区的分区标识,所述第二指示信息用于所述管理设备确定所述第一分区所在的M个硬盘中的至少一个硬盘;
所述接收单元710还用于,接收所述管理设备发送的第一分区所在的M个硬盘中的至少一个硬盘的地址;
所述读数据单元740还用于,根据所述第一分区所在的M个硬盘中的至少一个硬盘的地址,从所述第一分区所在的M个硬盘中的至少一个硬盘中的任一硬盘所对应的缓存设备中读取所述第二数据。
可选地,所述接收单元710还用于:
接收写请求,所述写请求用于请求向所述存储系统写入第三数据;
所述发送单元730还用于,根据所述写请求向所述管理设备发送分配分区请求消息,所述分配分区请求消息用于所述管理设备确定所述第一分区以及所述第一分区所在的M个硬盘中每个硬盘的地址;
所述接收单元710还用于,接收所述管理设备发送的分配分区响应消息,所述分配分区响应消息包括所述第一分区所在的M个硬盘中每个硬盘的地址;
以及,所述客户端700还包括:
写数据单元750,根据所述第一分区所在的M个硬盘中每个硬盘的地址,向所述第一分区所在的M个硬盘中每个硬盘同时写入所述第一数据。
在可选的实施例中,所述接收单元710、发送单元可以为输入/输出接口830,所述确定单元720可以为处理器820,所述读数据单元740和写数据单元750可以为输入/输出接口830,也可以为处理器820。所述客户端还可以包括存储器810,具体如图10所示。
图10是本申请另一实施例的客户端的示意性框图。图10所示的客户端800可以包括:存储器810、处理器820和输入/输出接口830。其中,存储器810、处理器820和输入/输出接口830通过内部连接通路相连,该存储器810用于存储指令,该处理器820用于执行该存储器810存储的指令,以控制输入/输出接口830接收客户端800的外部及内部输入的数据、信息和信号,输出操作结果、发送信息和信号等。
应理解,在本申请实施例中,该处理器820可以采用通用的中央处理器(CentralProcessing Unit,CPU),微处理器,应用专用集成电路(Application SpecificIntegrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
还应理解,输入/输出接口830又称通信接口,使用例如但不限于收发器一类的收发装置,来实现客户端800与其它设备或通信网络之间的通信。
该存储器810可以包括只读存储器和随机存取存储器,并向处理器820提供指令和数据。处理器820的一部分还可以包括非易失性随机存取存储器。例如,处理器820还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器820中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的数据读写方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器810,处理器820读取存储器810中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应理解,本申请实施例中,该处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其它通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
图11是本申请实施例的存储系统的示意性框图。该存储系统900包括硬盘910。其中,硬盘910包括M个硬盘。可选地,该存储系统900还可以包括存储设备920,和/或客户端930。
所述N个硬盘包括多个分区,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数。
所述管理设备920可以用于执行图4~图6所示的方法中管理设备所执行的操作。具体地参考参照上述方法的描述,为了简洁,此处不再赘述。
所述客户端930可以用于执行图4~图6所示的方法中客户端所执行的操作。具体地参考参照上述方法的描述,为了简洁,此处不再赘述。
管理设备920可以是上文中的管理设备500或管理设备600,客户端930可以是上文中的客户端700或客户端800,对此本申请实施例并不作限定。
应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(Digital Video Disc,DVD))或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种数据读写方法,其特征在于,所述方法应用于存储系统中,所述存储系统包括N个硬盘,所述N个硬盘包括多个分区,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数;
所述方法包括:
管理设备接收客户端在接收到第一读请求时发送的第一指示消息,所述第一指示消息包括第二分区的分区标识,所述第一读请求携带第一数据的标识,其中,第二分区的可用容量为0,并且所述第二分区所在的M个硬盘与所述第一分区所在的M个硬盘部分相同,所述第二分区所在的M个硬盘中的每一个硬盘均存储所述第一数据;
所述管理设备根据所述第一指示消息,从所述第二分区所在的M个硬盘中确定第一目标硬盘,其中,所述第一目标硬盘不属于所述第一分区所在的M个硬盘;
所述管理设备向所述客户端发送所述第一目标硬盘的地址,以用于所述客户端根据所述第一目标硬盘的地址从所述第一目标硬盘读取所述第一数据。
2.如权利要求1所述的方法,其特征在于,所述第一分区所在的M个硬盘中的每一个硬盘均对应一个缓存设备,每个缓存设备缓存有所述第一分区存储的数据副本;
所述方法还包括:
所述管理设备接收所述客户端在接收到第二读请求时发送的第二指示消息,所述第二指示消息包括所述第一分区的分区标识,所述第二读请求携带第二数据的标识,所述第一分区所在的M个硬盘中的每一个硬盘均存储所述第二数据;
所述管理设备根据所述第二指示消息,确定所述第一分区所在的M个硬盘中的至少一个硬盘;
所述管理设备向所述客户端发送所述第一分区所在的M个硬盘中的至少一个硬盘的地址,以用于所述客户端根据所述第一分区所在的M个硬盘中的至少一个硬盘的地址从所述第一分区所在的M个硬盘中的至少一个硬盘中的任一硬盘所对应的缓存设备中读取所述第二数据。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述管理设备接收所述客户端在接收到写请求时发送的分配分区请求消息,所述写请求用于请求向所述存储系统写入第三数据;
所述管理设备根据所述分配分区请求消息,确定所述第一分区以及所述第一分区所在的M个硬盘中每个硬盘的地址;
所述管理设备向所述客户端发送分配分区响应消息,所述分配分区响应消息包括所述第一分区所在的M个硬盘中每个硬盘的地址,以用于所述客户端根据所述第一分区所在的M个硬盘中每个硬盘的地址,向所述第一分区所在的M个硬盘中每个硬盘同时写入所述第三数据。
4.一种数据读写方法,其特征在于,所述方法应用于存储系统中,所述存储系统包括N个硬盘,所述N个硬盘包括多个分区,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数;
所述方法包括:
客户端接收第一读请求,所述第一读请求包括第一数据的标识;
所述客户端根据所述第一读请求,确定用于存储所述第一数据的所述多个分区中的第二分区;
所述客户端向管理设备发送第一指示消息,所述第一指示消息包括所述第二分区的分区标识,所述第一指示消息用于所述管理设备从所述第二分区所在的M个硬盘中确定第一目标硬盘,其中,所述第一目标硬盘不属于所述第一分区所在的M个硬盘;
所述客户端接收所述管理设备发送的所述第一目标硬盘的地址;
所述客户端根据所述第一目标硬盘的地址,从所述第一目标硬盘读取所述第一数据。
5.如权利要求4所述的方法,其特征在于,所述第一分区所在的M个硬盘中的每一个硬盘均对应一个缓存设备,每个缓存设备缓存有所述第一分区存储的数据副本;
所述方法还包括:
所述客户端接收第二读请求,所述第二读请求包括第二数据的标识;
所述客户端根据所述第二读请求,确定用于存储所述第二数据的所述多个分区中的所述第一分区;
所述客户端向管理设备发送第二指示消息,所述第二指示消息包括所述第一分区的分区标识,所述第二指示消息用于所述管理设备确定所述第一分区所在的M个硬盘中的至少一个硬盘;
所述客户端接收所述管理设备发送的第一分区所在的M个硬盘中的至少一个硬盘的地址;
所述客户端根据所述第一分区所在的M个硬盘中的至少一个硬盘的地址,从所述第一分区所在的M个硬盘中的至少一个硬盘中的任一硬盘所对应的缓存设备中读取所述第二数据。
6.如权利要求4或5所述的方法,其特征在于,所述方法还包括:
所述客户端接收写请求,所述写请求用于请求向所述存储系统写入第三数据;
所述客户端根据所述写请求向所述管理设备发送分配分区请求消息,所述分配分区请求消息用于所述管理设备确定所述第一分区以及所述第一分区所在的M个硬盘中每个硬盘的地址;
所述客户端接收所述管理设备发送的分配分区响应消息,所述分配分区响应消息包括所述第一分区所在的M个硬盘中每个硬盘的地址;
所述客户端根据所述第一分区所在的M个硬盘中每个硬盘的地址,向所述第一分区所在的M个硬盘中每个硬盘同时写入所述第三数据。
7.一种管理设备,其特征在于,所述管理设备能够与存储系统进行通信,并能够获知所述存储系统中的N个硬盘中每个硬盘所包括的多个分区中每个分区当前执行的读操作和/或写操作以及当前的可用容量,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数;
所述管理设备包括:
接收单元,用于接收客户端在接收到第一读请求时发送的第一指示消息,所述第一指示消息包括第二分区的分区标识,所述第一读请求携带第一数据的标识,其中,第二分区的可用容量为0,并且所述第二分区所在的M个硬盘与所述第一分区所在的M个硬盘部分相同,所述第二分区所在的M个硬盘中的每一个硬盘均存储所述第一数据;
确定单元,用于根据所述第一指示消息,从所述第二分区所在的M个硬盘中确定第一目标硬盘,其中,所述第一目标硬盘不属于所述第一分区所在的M个硬盘;
发送单元,用于向所述客户端发送所述第一目标硬盘的地址,以用于所述客户端根据所述第一目标硬盘的地址从所述第一目标硬盘读取所述第一数据。
8.如权利要求7所述的管理设备,其特征在于,所述第一分区所在的M个硬盘中的每一个硬盘均对应一个缓存设备,每个缓存设备缓存有所述第一分区存储的数据副本;
所述接收单元还用于:
接收所述客户端在接收到第二读请求时发送的第二指示消息,所述第二指示消息包括所述第一分区的分区标识,所述第二读请求携带第二数据的标识,所述第一分区所在的M个硬盘中的每一个硬盘均存储所述第二数据;
所述确定单元还用于,根据所述第二指示消息,确定所述第一分区所在的M个硬盘中的至少一个硬盘;
所述发送单元还用于,向所述客户端发送所述第一分区所在的M个硬盘中的至少一个硬盘的地址,以用于所述客户端根据所述第一分区所在的M个硬盘中的至少一个硬盘的地址从所述第一分区所在的M个硬盘中的至少一个硬盘中的任一硬盘所对应的缓存设备中读取所述第二数据。
9.如权利要求7或8所述的管理设备,其特征在于,所述接收单元还用于:
接收所述客户端在接收到写请求时发送的分配分区请求消息,所述写请求用于请求向所述存储系统写入第三数据;
所述确定单元还用于,根据所述分配分区请求消息,确定所述第一分区以及所述第一分区所在的M个硬盘中每个硬盘的地址;
所述发送单元还用于,向所述客户端发送分配分区响应消息,所述分配分区响应消息包括所述第一分区所在的M个硬盘中每个硬盘的地址,以用于所述客户端根据所述第一分区所在的M个硬盘中每个硬盘的地址,向所述第一分区所在的M个硬盘中每个硬盘同时写入所述第三数据。
10.一种客户端,其特征在于,所述客户端能够与存储系统通信,并能够获知所述存储系统中的N个硬盘中每个硬盘所包括的多个分区中每个分区当前执行的读操作和/或写操作以及当前的可用容量,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数;
所述客户端包括:
接收单元,用于接收第一读请求,所述第一读请求包括第一数据的标识;
确定单元,用于根据所述第一读请求,确定用于存储所述第一数据的所述多个分区中的第二分区;
发送单元,用于向管理设备发送第一指示消息,所述第一指示消息包括所述第二分区的分区标识,所述第一指示消息用于所述管理设备从所述第二分区所在的M个硬盘中确定第一目标硬盘,其中,所述第一目标硬盘不属于所述第一分区所在的M个硬盘;
所述接收单元还用于,接收所述管理设备发送的所述第一目标硬盘的地址;
读数据单元,用于根据所述第一目标硬盘的地址,从所述第一目标硬盘读取所述第一数据。
11.如权利要求10所述的客户端,其特征在于,所述第一分区所在的M个硬盘中的每一个硬盘均对应一个缓存设备,每个缓存设备缓存有所述第一分区存储的数据副本;
所述接收单元还用于:
接收第二读请求,所述第二读请求包括第二数据的标识;
所述确定单元还用于,根据所述第二读请求,确定用于存储所述第二数据的所述多个分区中的所述第一分区;
所述发送单元还用于,向管理设备发送第二指示消息,所述第二指示消息包括所述第一分区的分区标识,所述第二指示消息用于所述管理设备确定所述第一分区所在的M个硬盘中的至少一个硬盘;
所述接收单元还用于,接收所述管理设备发送的第一分区所在的M个硬盘中的至少一个硬盘的地址;
所述读数据单元还用于,根据所述第一分区所在的M个硬盘中的至少一个硬盘的地址,从所述第一分区所在的M个硬盘中的至少一个硬盘中的任一硬盘所对应的缓存设备中读取所述第二数据。
12.如权利要求10或11所述的客户端,其特征在于,所述接收单元还用于:
接收写请求,所述写请求用于请求向所述存储系统写入第三数据;
所述发送单元还用于,
根据所述写请求向所述管理设备发送分配分区请求消息,所述分配分区请求消息用于所述管理设备确定所述第一分区以及所述第一分区所在的M个硬盘中每个硬盘的地址;
所述接收单元还用于,接收所述管理设备发送的分配分区响应消息,所述分配分区响应消息包括所述第一分区所在的M个硬盘中每个硬盘的地址;
以及,所述客户端还包括:
写数据单元,根据所述第一分区所在的M个硬盘中每个硬盘的地址,向所述第一分区所在的M个硬盘中每个硬盘同时写入所述第三数据。
13.一种存储系统,其特征在于,所述存储系统包括N个硬盘和管理设备;
所述N个硬盘包括多个分区,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数;
所述管理设备用于执行如权利要求1至3中任一项所述的方法。
14.一种存储系统,其特征在于,所述存储系统包括N个硬盘和客户端;
所述N个硬盘包括多个分区,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数;
所述客户端用于执行如权利要求4至6中任一项所述的方法。
15.一种存储系统,其特征在于,所述存储系统包括N个硬盘,客户端和管理设备;
所述N个硬盘包括多个分区,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数;
所述管理设备用于执行如权利要求1至3中任一项所述的方法;
所述客户端用于执行如权利要求4至6中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,包括计算机指令,当其在计算机上运行时,使得计算机执行如权利要求1至3中任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,包括计算机指令,当其在计算机上运行时,使得计算机执行如权利要求4至6中任一项所述的方法。
18.一种管理设备,其特征在于,包括:输入/输出接口、处理器和存储器,
其中,所述处理器用于控制所述输入/输出接口收发信号,所述存储器用于存储计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,以使得所述管理设备执行如权利要求1至3中任一项所述的方法。
19.一种客户端,其特征在于,包括:输入/输出接口、处理器和存储器,
其中,所述处理器用于控制所述输入/输出接口收发信号,所述存储器用于存储计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,以使得所述客户端执行如权利要求4至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711120476.9A CN109783002B (zh) | 2017-11-14 | 2017-11-14 | 数据读写方法、管理设备、客户端和存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711120476.9A CN109783002B (zh) | 2017-11-14 | 2017-11-14 | 数据读写方法、管理设备、客户端和存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109783002A CN109783002A (zh) | 2019-05-21 |
CN109783002B true CN109783002B (zh) | 2021-02-26 |
Family
ID=66494921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711120476.9A Active CN109783002B (zh) | 2017-11-14 | 2017-11-14 | 数据读写方法、管理设备、客户端和存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783002B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825704B (zh) * | 2019-09-27 | 2023-09-01 | 华为云计算技术有限公司 | 一种读数据方法、写数据方法及服务器 |
CN111399766B (zh) * | 2020-01-08 | 2021-10-22 | 华为技术有限公司 | 存储系统中的数据存储方法、数据读取方法、装置及系统 |
CN114442935B (zh) * | 2021-12-29 | 2023-08-04 | 天翼云科技有限公司 | 刷脏数据的方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529887B1 (en) * | 2006-03-30 | 2009-05-05 | Emc Corporation | Methods, systems, and computer program products for postponing bitmap transfers and eliminating configuration information transfers during trespass operations in a disk array environment |
CN103051691A (zh) * | 2012-12-12 | 2013-04-17 | 华为技术有限公司 | 分区分配方法、装置以及分布式存储系统 |
CN105630419A (zh) * | 2015-12-25 | 2016-06-01 | 华为技术有限公司 | 一种资源池的分区视图发送方法及管理节点 |
CN106063226A (zh) * | 2014-11-05 | 2016-10-26 | 华为技术有限公司 | 数据处理方法和装置 |
-
2017
- 2017-11-14 CN CN201711120476.9A patent/CN109783002B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529887B1 (en) * | 2006-03-30 | 2009-05-05 | Emc Corporation | Methods, systems, and computer program products for postponing bitmap transfers and eliminating configuration information transfers during trespass operations in a disk array environment |
CN103051691A (zh) * | 2012-12-12 | 2013-04-17 | 华为技术有限公司 | 分区分配方法、装置以及分布式存储系统 |
CN106063226A (zh) * | 2014-11-05 | 2016-10-26 | 华为技术有限公司 | 数据处理方法和装置 |
CN105630419A (zh) * | 2015-12-25 | 2016-06-01 | 华为技术有限公司 | 一种资源池的分区视图发送方法及管理节点 |
Also Published As
Publication number | Publication date |
---|---|
CN109783002A (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113810312B (zh) | 用于管理存储器资源的系统和方法 | |
CN105573839B (zh) | 用于端口选择的基于成本的负载平衡的方法和装置 | |
CN110727617B (zh) | 同时通过PCIe EP和网络接口访问双线SSD装置的方法和系统 | |
US11822963B2 (en) | Technologies for dynamically sharing remote resources across remote computing nodes | |
CN110096220B (zh) | 一种分布式存储系统、数据处理方法和存储节点 | |
EP2711841A1 (en) | Data processing method, device and system based on block storage | |
US9940020B2 (en) | Memory management method, apparatus, and system | |
CN109783002B (zh) | 数据读写方法、管理设备、客户端和存储系统 | |
WO2021008197A1 (zh) | 资源分配方法、存储设备和存储系统 | |
JP6514329B2 (ja) | メモリアクセス方法、スイッチ、およびマルチプロセッサシステム | |
CN106936931B (zh) | 分布式锁的实现方法、相关设备及系统 | |
CN112417036A (zh) | 分布式存储系统中处理对象的元数据的方法及装置 | |
CN107430584B (zh) | 经由具有完全连接网格拓扑的pci express结构从存储读取数据 | |
CN107533526B (zh) | 经由具有完全连接网格拓扑的pci express结构向存储写入数据 | |
JP6331944B2 (ja) | 情報処理装置、メモリ制御装置及び情報処理装置の制御方法 | |
US20210311767A1 (en) | Storage system, storage device therefor, and operating method thereof | |
CN110471627B (zh) | 一种共享存储的方法、系统及装置 | |
US20230244417A1 (en) | Storage node, storage device, and network chip | |
CN116594551A (zh) | 一种数据存储方法及装置 | |
CN108196786B (zh) | 用于存储系统分区的方法和管理设备 | |
CN112445413A (zh) | 一种数据存储的方法、装置及相关设备 | |
US20230153239A1 (en) | Method and apparatus for allocating memory addresses in resource-centric networks | |
KR102683711B1 (ko) | PCIe EP 및 네트워크 인터페이스를 통해 동시에 듀얼 라인 SSD 장치에 액세스하는 방법 | |
US20230229498A1 (en) | Systems and methods with integrated memory pooling and direct swap caching | |
CN114911411A (zh) | 一种数据存储方法、装置及网络设备 |
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 |