数据读写方法、管理设备、客户端和存储系统技术方案

技术编号:21183475 阅读:38 留言:0更新日期:2019-05-22 14:36
本申请提供了提供一种数据读写方法、管理设备、客户端和存储系统,能够实现完全的读写分离。该方法应用于存储系统,该方法包括:管理设备接收客户端在接收到第一读请求时发送的第一指示消息,第一指示消息包括第二分区的分区标识,第一读请求携带第一数据的标识,其中,第二分区的可用容量为0,并且所述第二分区所在的M个硬盘与所述第一分区所在的M个硬盘部分相同,第二分区所在的M个硬盘中的每一个硬盘均存储所述第一数据;管理设备根据第一指示消息从第二分区所在的M个硬盘中确定第一目标硬盘,第一目标硬盘不属于所述第一分区所在的M个硬盘;管理设备向客户端发送第一目标硬盘的地址。

Data Reading and Writing Method, Management Equipment, Client and Storage System

The application provides a data reading and writing method, a management device, a client and a storage system capable of achieving complete separation of reading and writing. The method is applied to a storage system. The method includes: the management device receives the first instruction message sent by the client upon receiving the first read request, the first instruction message includes the partition identification of the second partition, the identification of the first read request carrying the first data, where the available capacity of the second partition is 0, and the hard disk in which the second partition is located and the first partition is located. The first data is stored in each of the M hard disks in which the second partition is located; the management device determines the first target hard disk from the M hard disks in which the second partition is located according to the first instruction message; the first target hard disk does not belong to the M hard disks in which the first partition is located; and the management device sends the address of the first target hard disk to the client.

【技术实现步骤摘要】
数据读写方法、管理设备、客户端和存储系统
本申请涉及数据存储领域,并且更具体地,涉及一种数据读写方法、管理设备、客户端和存储系统。
技术介绍
随着存储虚拟化的发展,特别是云存储的发展,现在的存储系统都是把所有的硬盘组成一个统一的资源池给各种应用使用。存储虚拟化导致多种应用会同时访问一个硬盘,对硬盘的访问冲突加大,所有的读写操作都变成了随机访问。而所有类型的硬盘对随机写都不是友好的,会严重影响硬盘的性能。现有技术提供了一种将硬盘的读操作和写操作分离开的方案,即读写分离的方案。即,当硬盘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个硬盘;所述客户端接收所述管理设备发送的所述第一目标硬盘的地址;所述客户端根据所述第一目标硬盘的地址,从所述第一目标硬盘读取所述第一数据。本申请实施例的方法,通过将硬盘进行分区,并使同一分区用于存储相同数据且不同分区所在硬盘不完全相同,能够在读取一个分区的数据时,可以从该分区所在的多个硬盘中当前未进行写操作的至少一个硬盘中读取数据,从而实现写一个硬盘时不读取该硬盘上的数据。在不本文档来自技高网...

【技术保护点】
1.一种数据读写方法,其特征在于,所述方法应用于存储系统中,所述存储系统包括N个硬盘,所述N个硬盘包括多个分区,每个分区分布在M个硬盘上,所述M个硬盘中的每一个硬盘为所述分区提供的容量相同,并且用于存储相同的数据副本,不同的分区所在的M个硬盘不完全相同,所述多个分区中同时只有第一分区执行写操作,并且所述第一分区的可用容量大于0,未执行写操作的每个分区的可用容量为0或等于分区的容量,其中,N≥3,2≤M<N,且N和M为正整数;所述方法包括:管理设备接收客户端在接收到第一读请求时发送的第一指示消息,所述第一指示消息包括第二分区的分区标识,所述第一读请求携带第一数据的标识,其中,第二分区的可用容量为0,并且所述第二分区所在的M个硬盘与所述第一分区所在的M个硬盘部分相同,所述第二分区所在的M个硬盘中的每一个硬盘均存储所述第一数据;所述管理设备根据所述第一指示消息,从所述第二分区所在的M个硬盘中确定第一目标硬盘,其中,所述第一目标硬盘不属于所述第一分区所在的M个硬盘;所述管理设备向所述客户端发送所述第一目标硬盘的地址,以用于所述客户端根据所述第一目标硬盘的地址从所述第一目标硬盘读取所述第一数据。

【技术特征摘要】
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个...

【专利技术属性】
技术研发人员:刘强夏勇于传帅
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1