一种数据读写方法、装置、电子设备及介质制造方法及图纸

技术编号:26890162 阅读:18 留言:0更新日期:2020-12-29 16:05
本发明专利技术实施例提供了一种数据读写方法、装置、电子设备及介质,涉及计算机技术领域,可以缩短读写操作的路径,减少读写操作消耗的时间,从而减少由于读写操作消耗的时间过长而导致读写操作失败的情况发生。本发明专利技术的实施例包括:根据虚拟磁盘中,用于存储待读写数据的存储位置,确定虚拟磁盘中,用于存储待读写数据的分片,虚拟磁盘中包括多个分片,每个分片用于存储指定大小的数据。然后确定用于存储待读写数据的分片映射的虚拟节点,虚拟节点对应存储集群中预设数量的服务器。再向虚拟节点对应的服务器发送输入/输出I/O请求,I/O请求用于请求从存储位置处读写待读写数据。

【技术实现步骤摘要】
一种数据读写方法、装置、电子设备及介质
本专利技术涉及计算机
,特别是涉及一种数据读写方法、装置、电子设备及介质。
技术介绍
相关技术中,数据的存储形式包括:本地存储和分布式存储。本地存储是指任何读写操作都不经过网络,仅在本地磁盘中进行。由于本地存储的读写操作都是在本地磁盘中进行,所以本地存储的磁盘容量有限,而且使用本地存储的服务器若发生宕机,则无法执行读写操作。为了解决上述问题,出现了分布式存储。分布式存储指的是:存储系统中包括各元数据节点和各存储节点,元数据节点用于存储文件或数据块的元数据信息,任何读写操作都要先经过元数据节点,以获取到存储数据块或文件的设备标识、磁盘标识和偏移地址等,然后再向获取的设备标识对应的数据存储服务器发送读写请求,进行相应的读写操作。但是,在分布式存储系统中,由于每次进行读写操作,都要先经过元数据节点,使得读写操作的执行路径较长,消耗时间较长,甚至导致读写操作失败。例如:若网络出现抖动,网络中各终端的读写请求会发生排队现象,而排队产生的延迟会影响客户端到服务器端的传输的数据延迟,容易导致读写请求失败。
技术实现思路
本专利技术实施例的目的在于提供一种数据读写方法、装置、电子设备及介质,以实现缩短读写操作的路径,减少读写操作消耗的时间,从而减少由于读写操作消耗的时间过长而导致读写操作失败的情况发生。具体技术方案如下:第一方面,提供了一种数据读写方法,应用于终端,所述方法包括:根据虚拟磁盘中,用于存储待读写数据的存储位置,确定所述虚拟磁盘中,用于存储所述待读写数据的分片,所述虚拟磁盘中包括多个分片,每个分片用于存储指定大小的数据;确定用于存储所述待读写数据的分片映射的虚拟节点,所述虚拟节点对应存储集群中预设数量的服务器;向所述虚拟节点对应的服务器发送输入/输出I/O请求,所述I/O请求用于请求从所述存储位置处读写所述待读写数据。可选的,在所述根据虚拟磁盘中,用于存储待读写数据的存储位置,确定所述虚拟磁盘中,用于存储所述待读写数据的分片之前,还包括:获取虚拟节点列表,所述虚拟节点列表中包括各虚拟节点对应的硬盘标识,以及硬盘所属的服务器互联网协议IP地址。可选的,所述获取虚拟节点列表,包括:向指定服务器发送获取请求,所述获取请求用于请求获取所述虚拟节点列表;接收所述虚拟节点列表,并与发送所述虚拟节点列表的服务器建立长连接。可选的,所述根据虚拟磁盘中,用于存储待读写数据的存储位置,确定所述虚拟磁盘中,用于存储所述待读写数据的分片,包括:根据所述虚拟磁盘中,用于存储所述待读写数据的起始存储位置和所述虚拟磁盘中各分片的大小,确定所述待读写数据对应的起始分片;根据所述起始分片和所述待读写数据的大小,确定所述待读写数据对应的结尾分片,并将所述起始分片、所述结尾分片和所述起始分片与所述结尾分片之间的分片确定为用于存储所述待读写数据的分片。可选的,在所述确定用于存储所述待读写数据的分片映射的虚拟节点之后,还包括:根据所述虚拟节点列表,确定用于存储所述待读写数据的硬盘集,所述硬盘集包括用于存储所述待读写数据的分片映射的虚拟节点对应的硬盘。可选的,所述I/O请求为写入请求,所述向所述虚拟节点对应的服务器发送输入/输出I/O请求,包括:确定所述硬盘集的最后一个硬盘,并向所述最后一个硬盘所属的服务器发送所述写入请求,以使得所述最后一个硬盘写入所述待读写数据后,根据所述硬盘集中的各硬盘标识,向所述硬盘集中的其他硬盘同步所述最后一个硬盘写入的所述待写入数据,所述写入请求包括:待写入数据和所述虚拟节点的标识;或者,分别向所述硬盘集中的各硬盘所属的服务器发送所述写入请求。可选的,所述I/O请求为读取请求,所述向所述虚拟节点对应的服务器发送输入/输出I/O请求,包括:确定所述硬盘集的最后一个硬盘,并向所述最后一个硬盘所属的服务器发送所述读取请求,所述读取请求包括:待读取数据的标识和所述虚拟节点的标识。第二方面,提供了一种数据读写装置,应用于终端,所述装置包括:确定模块,用于根据虚拟磁盘中,用于存储待读写数据的存储位置,确定所述虚拟磁盘中,用于存储所述待读写数据的分片,所述虚拟磁盘中包括多个分片,每个分片用于存储指定大小的数据;所述确定模块,还用于确定用于存储所述待读写数据的分片映射的虚拟节点,所述虚拟节点对应存储集群中预设数量的服务器;发送模块,用于向所述确定模块确定的所述虚拟节点对应的服务器发送输入/输出I/O请求,所述I/O请求用于请求从所述存储位置处读写所述待读写数据。可选的,所述装置还包括:获取模块;所述获取模块,用于在所述根据虚拟磁盘中,用于存储待读写数据的存储位置,确定所述虚拟磁盘中,用于存储所述待读写数据的分片之前,获取虚拟节点列表,所述虚拟节点列表中包括各虚拟节点对应的硬盘标识,以及硬盘所属的服务器互联网协议IP地址。可选的,所述获取模块,具体用于:向指定服务器发送获取请求,所述获取请求用于请求获取所述虚拟节点列表;接收所述虚拟节点列表,并与发送所述虚拟节点列表的服务器建立长连接。可选的,所述确定模块,具体用于:根据所述虚拟磁盘中,用于存储所述待读写数据的起始存储位置和所述虚拟磁盘中各分片的大小,确定所述待读写数据对应的起始分片;根据所述起始分片和所述待读写数据的大小,确定所述待读写数据对应的结尾分片,并将所述起始分片、所述结尾分片和所述起始分片与所述结尾分片之间的分片确定为用于存储所述待读写数据的分片。可选的,所述确定模块,还用于在所述确定用于存储所述待读写数据的分片映射的虚拟节点之后,根据所述虚拟节点列表,确定用于存储所述待读写数据的硬盘集,所述硬盘集包括用于存储所述待读写数据的分片映射的虚拟节点对应的硬盘。可选的,所述I/O请求为写入请求,所述发送模块,具体用于:确定所述硬盘集的最后一个硬盘,并向所述最后一个硬盘所属的服务器发送所述写入请求,以使得所述最后一个硬盘写入所述待读写数据后,根据所述硬盘集中的各硬盘标识,向所述硬盘集中的其他硬盘同步所述最后一个硬盘写入的所述待写入数据,所述写入请求包括:待写入数据和所述虚拟节点的标识;或者,分别向所述硬盘集中的各硬盘所属的服务器发送所述写入请求。可选的,所述I/O请求为读取请求,所述发送模块,具体用于:确定所述硬盘集的最后一个硬盘,并向所述最后一个硬盘所属的服务器发送所述读取请求,所述读取请求包括:待读取数据的标识和所述虚拟节点的标识。第三方面,提供了一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一所述的数据读写方法步骤。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存本文档来自技高网...

【技术保护点】
1.一种数据读写方法,其特征在于,应用于终端,所述方法包括:/n根据虚拟磁盘中,用于存储待读写数据的存储位置,确定所述虚拟磁盘中,用于存储所述待读写数据的分片,所述虚拟磁盘中包括多个分片,每个分片用于存储指定大小的数据;/n确定用于存储所述待读写数据的分片映射的虚拟节点,所述虚拟节点对应存储集群中预设数量的服务器;/n向所述虚拟节点对应的服务器发送输入/输出I/O请求,所述I/O请求用于请求从所述存储位置处读写所述待读写数据。/n

【技术特征摘要】
1.一种数据读写方法,其特征在于,应用于终端,所述方法包括:
根据虚拟磁盘中,用于存储待读写数据的存储位置,确定所述虚拟磁盘中,用于存储所述待读写数据的分片,所述虚拟磁盘中包括多个分片,每个分片用于存储指定大小的数据;
确定用于存储所述待读写数据的分片映射的虚拟节点,所述虚拟节点对应存储集群中预设数量的服务器;
向所述虚拟节点对应的服务器发送输入/输出I/O请求,所述I/O请求用于请求从所述存储位置处读写所述待读写数据。


2.根据权利要求1所述的方法,其特征在于,在所述根据虚拟磁盘中,用于存储待读写数据的存储位置,确定所述虚拟磁盘中,用于存储所述待读写数据的分片之前,还包括:
获取虚拟节点列表,所述虚拟节点列表中包括各虚拟节点对应的硬盘标识,以及硬盘所属的服务器互联网协议IP地址。


3.根据权利要求2所述的方法,其特征在于,所述获取虚拟节点列表,包括:
向指定服务器发送获取请求,所述获取请求用于请求获取所述虚拟节点列表;
接收所述虚拟节点列表,并与发送所述虚拟节点列表的服务器建立长连接。


4.根据权利要求3所述的方法,其特征在于,所述根据虚拟磁盘中,用于存储待读写数据的存储位置,确定所述虚拟磁盘中,用于存储所述待读写数据的分片,包括:
根据所述虚拟磁盘中,用于存储所述待读写数据的起始存储位置和所述虚拟磁盘中各分片的大小,确定所述待读写数据对应的起始分片;
根据所述起始分片和所述待读写数据的大小,确定所述待读写数据对应的结尾分片,并将所述起始分片、所述结尾分片和所述起始分片与所述结尾分片之间的分片确定为用于存储所述待读写数据的分片。


5.根据权利要求3所述的方法,其特征在于,在所述确定用于存储所述待读写数据的分片映射的虚拟节点之后,还包括:
根据所述虚拟节点列表,确定用于存储所述待读写数据的硬盘集,所述硬盘集包括用于存储所述待读写数据的分片映射的虚拟节点对应的硬盘。


6.根据权利要求5所述的方法,其特征在于,所述I/O请求为写入请求,所述向所述虚拟节点对应的服务器发送输入/输出I/O请求,包括:
确定所述硬盘集的最后一个硬盘,并向所述最后一个硬盘所属的服务器发送所述写入请求,以使得所述最后一个硬盘写入所述待读写数据后,根据所述硬盘集中的各硬盘标识,向所述硬盘集中的其他硬盘同步所述最后一个硬盘写入的所述待写入数据,所述写入请求包括:待写入数据和所述虚拟节点的标识;或者,
分别向所述硬盘集中的各硬盘所属的服务器发送所述写入请求。


7.根据权利要求5所述的方法,其特征在于,所述I/O请求为读取请求,所述向所述虚拟节点对应的服务器发送输入/输出I/O请求,包括:
确定所述硬盘集的最后一个硬盘,并向所述最后一个硬盘所属的服务器发送所述读取请求,所述读取请求包括:待读取数据的标识和所述虚拟节点的标识。


8.一种数据读写装置,其特征在于,应用于终端,所述装置包括:
确定模块,用于根据虚拟磁盘中,用于存储待读写数据的存储位置,确定所述虚拟磁盘中,用于存储所述待读写数据的分片,所述虚拟磁盘中包括多...

【专利技术属性】
技术研发人员:杨稼晟姚国涛
申请(专利权)人:北京金山云网络技术有限公司北京金山云科技有限公司
类型:发明
国别省市:北京;11

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

1