CN113608699A - 数据写入方法、装置及电子设备 - Google Patents
数据写入方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113608699A CN113608699A CN202110907176.5A CN202110907176A CN113608699A CN 113608699 A CN113608699 A CN 113608699A CN 202110907176 A CN202110907176 A CN 202110907176A CN 113608699 A CN113608699 A CN 113608699A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- current
- data block
- writing
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0674—Disk device
- G06F3/0676—Magnetic disk device
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)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据写入方法、装置及电子设备,其中,方法应用于分布式块存储系统的管理服务器,管理服务器中预先创建有虚拟磁盘与逻辑存储设备的对应关系;其中,一个虚拟磁盘对应多个逻辑存储设备;每个逻辑存储设备对应的存储空间分布于系统的至少一个存储节点中;方法包括:接收客户端的数据写入请求;其中,数据写入请求中携带有虚拟磁盘标识和待存储数据;将待存储数据切分为多个数据块;根据对应关系确定虚拟磁盘标识对应的多个目标逻辑存储设备;将多个数据块轮询写入多个目标逻辑存储设备分别对应的存储空间。本申请能够提高数据写入时的系统带宽,提高数据写入效率。
Description
技术领域
本申请涉及软件技术领域,尤其是涉及一种数据写入方法、装置及电子设备。
背景技术
分布式块存储系统包括多个数据存储节点,可将数据分散存储于多个数据存储节点上,其采用可扩展的系统结构,利用多台存储服务器分担存储负荷,不但提高了系统的可靠性、可用性和存取效率,还易于扩展。现有技术中,用户基于分布式块存储系统进行写操作时,需要通过客户端发现登录可用的虚拟磁盘LUN(Logical Unit Number,逻辑单元号,可看作虚拟磁盘),一个LUN对应一个逻辑存储设备Volume,一个Volume对应多个地址段Segment,LUN在接收到客户端持续大量数据写入时,会出现大数据写入只由一个Volume中的一个地址段Segment也即底层的存储空间VolBLock负责的情况,导致系统带宽变为单个VolBlock处理带宽,限制了系统并行能力,即数据写入效率低,无法发挥分布式系统的优势。
发明内容
本申请的目的在于提供一种数据写入方法、装置及电子设备,能够提高数据写入时的系统带宽,提高数据写入效率。
第一方面,本申请实施例提供一种数据写入方法,方法应用于分布式块存储系统的管理服务器,管理服务器中预先创建有虚拟磁盘与逻辑存储设备的对应关系;其中,一个虚拟磁盘对应多个逻辑存储设备;每个逻辑存储设备对应的存储空间分布于系统的至少一个存储节点中;方法包括:接收客户端的数据写入请求;其中,数据写入请求中携带有虚拟磁盘标识和待存储数据;将待存储数据切分为多个数据块;根据对应关系确定虚拟磁盘标识对应的多个目标逻辑存储设备;将多个数据块轮询写入多个目标逻辑存储设备分别对应的存储空间。
进一步的,上述管理服务器中配置有数据切分参数;数据切分参数包括:数据块大小或数据块个数;将待存储数据切分为多个数据块的步骤,包括:按照数据切分参数对待存储数据进行切分,得到多个数据块。
进一步的,上述将多个数据块轮询写入多个目标逻辑存储设备分别对应的存储空间的步骤,包括:将每个数据块作为当前数据块,均执行以下步骤:获取当前数据块对应的数据块标识及目标逻辑存储设备的数量;根据数据块标识和目标逻辑存储设备的数量,从多个目标逻辑存储设备中确定出当前逻辑存储设备;将当前数据块写入当前逻辑存储设备对应的存储空间。
进一步的,上述数据块标识为数据块切分序号;根据数据块标识和目标逻辑存储设备的数量,从多个目标逻辑存储设备中确定出当前逻辑存储设备的步骤,包括:计算当前数据块对应的数据块切分序号除以目标逻辑存储设备的数量所得的余数;以余数为序号,将多个目标逻辑存储设备中与序号对应的目标逻辑存储设备作为当前逻辑存储设备。
进一步的,上述当前逻辑存储设备对应多个地址段,每个地址段对应多个分布于不同存储节点上的存储空间;将当前数据块写入当前逻辑存储设备对应的存储空间的步骤,包括:获取当前数据块对应存储偏移参数;根据存储偏移参数,从当前逻辑存储设备对应的多个地址段中确定出当前地址段;将当前数据块写入当前地址段对应的存储空间。
进一步的,上述获取当前数据块对应的存储偏移参数的步骤,包括:获取待存储数据对应的初始存储偏移量;根据初始存储偏移量、当前数据块之前的数据块大小之和、当前数据块对应的数据块大小,确定当前数据块对应的存储偏移参数。
进一步的,上述每个地址段对应大小均相同;根据存储偏移参数,从当前逻辑存储设备对应的多个地址段中确定出当前地址段的步骤,包括:求取存储偏移参数除以地址段大小的商;以商为序号,将多个地址段中与序号对应的地址段作为当前地址段。
进一步的,上述当前地址段对应有第一存储空间和第二存储空间;第二存储空间以多副本的形式分布于系统中的不同存储节点上;将当前数据块写入当前地址段对应的存储空间的步骤,包括:将当前数据块写入第一存储空间;通过第一存储空间将当前数据块回放至第二存储空间。
进一步的,上述虚拟磁盘的创建过程如下:获取预先创建的多个逻辑存储设备分别对应的标识;将多个逻辑存储设备分别对应的标识添加至同一虚拟磁盘标识对应的设备列表中;基于设备列表及TGT导出块设备驱动程序生成虚拟磁盘。
进一步的,上述接收客户端的数据写入请求的步骤之前,方法还包括:接收客户端的磁盘登录请求;磁盘登录请求中携带有客户端标识;根据客户端标识进行用户身份认证;认证成功后,向客户端返回登录成功的提示信息。
第二方面,本申请实施例还提供一种数据写入装置,装置应用于分布式块存储系统的管理服务器,管理服务器中预先创建有虚拟磁盘与逻辑存储设备的对应关系;其中,一个虚拟磁盘对应多个逻辑存储设备;每个逻辑存储设备对应的存储空间分布于系统的至少一个存储节点中;装置包括:请求接收模块,用于接收客户端的数据写入请求;其中,数据写入请求中携带有虚拟磁盘标识和待存储数据;数据切分模块,用于将待存储数据切分为多个数据块;目标设备确定模块,用于根据对应关系确定虚拟磁盘标识对应的多个目标逻辑存储设备;数据写入模块,用于将多个数据块轮询写入多个目标逻辑存储设备分别对应的存储空间。
第三方面,本申请实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述第一方面所述的方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述第一方面所述的方法。
本申请实施例提供的数据写入方法、装置及电子设备中,方法应用于分布式块存储系统的管理服务器,管理服务器中预先创建有虚拟磁盘与逻辑存储设备的对应关系;其中,一个虚拟磁盘对应多个逻辑存储设备;在管理服务器接收到客户端的数据写入请求后,首先将请求中携带的待存储数据切分为多个数据块,并根据请求中携带的虚拟磁盘标识和上述对应关系确定出多个目标逻辑存储设备,然后将多个数据块轮询写入多个目标逻辑存储设备分别对应的存储空间中,由于每个逻辑存储设备对应的存储空间分布于系统的至少一个存储节点中,因此,通过多个目标逻辑存储设备对待存储数据的多个数据块进行并行数据写入,可以提高数据写入时的系统带宽,提高数据写入效率。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据写入方法的流程图;
图2为本申请实施例提供的一种数据写入示意图;
图3为本申请实施例提供的另一种数据写入方法的流程图;
图4为本申请实施例提供的一种Volume对应的地址空间的示意图;
图5为本申请实施例提供的一种数据写入装置的结构框图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合实施例对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,用户基于分布式块存储系统进行写操作时,需要通过客户端发现登录可用的虚拟磁盘LUN,现有技术中,一个LUN对应一个逻辑存储设备Volume,一个Volume对应多个地址段Segment,LUN在接收到客户端持续大量数据写入时,会出现大数据写入只由一个Volume中的一个Segment也即底层的VolBLock负责的情况,导致系统带宽变为单个VolBlock处理带宽,限制了系统并行能力,即数据写入效率低,无法发挥分布式系统的优势。
基于此,本申请实施例提供一种数据写入方法、装置及电子设备,能够提高数据写入时的系统带宽,提高数据写入效率。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种数据写入方法进行详细介绍。
图1为本申请实施例提供的一种数据写入方法的流程图,该方法应用于分布式块存储系统的管理服务器,管理服务器中预先创建有虚拟磁盘LUN与逻辑存储设备Volume的对应关系;其中,一个虚拟磁盘LUN对应多个逻辑存储设备Volume;每个逻辑存储设备Volume对应的存储空间分布于系统的至少一个存储节点中。上述数据写入方法具体包括以下步骤:
步骤S102,接收客户端的数据写入请求;其中,数据写入请求中携带有虚拟磁盘标识和待存储数据。
用户在通过客户端进行数据写入时,需要针对某个虚拟磁盘发起数据写入请求,表示想要将待存储数据写入该虚拟磁盘中,该数据写入请求中会携带该虚拟磁盘的标识,以及想要写入的待存储数据。
步骤S104,将待存储数据切分为多个数据块。
获取到待存储数据后,根据服务器中的配置信息可以将待存储数据进行数据切分,以得到多个小的数据块,比如,可以根据配置信息中的数据切分参数进行数据切分,其中,数据切分参数可以是每个数据块的大小,也可以是数据块的切分数量。
步骤S106,根据对应关系确定虚拟磁盘标识对应的多个目标逻辑存储设备。
由于数据写入请求中携带有虚拟磁盘标识,因此,可以根据该标识从上述对应关系中确定出该标识对应的多个目标逻辑存储设备。
需要说明的是,步骤S104和步骤S106没有必然的先后执行顺序,可以互换或同时执行。
步骤S108,将多个数据块轮询写入多个目标逻辑存储设备分别对应的存储空间。
参见图2所示,LUN和Volume的对应关系为1:6,这种情况下,先对用户数据即待存储数据以data_entry(比如2MB)为单位进行切分,切分后的数据块有4个,轮询写入LUN对应的多个Volume中,也就是写入LUN对应的前4个Volume中。比如,切分后的数据块有24个,而目标逻辑存储设备有8个,那么轮询写入的方式就可以为:先将前8个数据块分别写入8个目标逻辑存储设备对应的存储空间中,然后再将中间8个数据块分别写入8个目标逻辑存储设备对应的存储空间中,最后再将最后的8个数据块分别写入8个目标逻辑存储设备对应的存储空间中。在写入8个目标逻辑存储设备时,8个数据块是并行写入的,因此,可以提高数据写入带宽,及数据写入效率。
本申请实施例提供的数据写入方法,应用于分布式块存储系统的管理服务器,管理服务器中预先创建有虚拟磁盘与逻辑存储设备的对应关系;其中,一个虚拟磁盘对应多个逻辑存储设备;在管理服务器接收到客户端的数据写入请求后,首先将请求中携带的待存储数据切分为多个数据块,并根据请求中携带的虚拟磁盘标识和上述对应关系确定出多个目标逻辑存储设备,然后将多个数据块轮询写入多个目标逻辑存储设备分别对应的存储空间中,由于每个逻辑存储设备对应的存储空间分布于系统的至少一个存储节点中,因此,通过多个目标逻辑存储设备对待存储数据的多个数据块进行并行数据写入,可以提高数据写入时的系统带宽,提高数据写入效率。
本申请实施例还提供另一种数据写入方法,该方法在上述实施例的基础上实现;本实施例重点描述数据切分过程和数据写入过程。参见图3所示的另一种数据写入方法的流程图,本实施例中的数据写入方法包括如下步骤:
步骤S302,接收客户端的数据写入请求;其中,数据写入请求中携带有虚拟磁盘标识和待存储数据。
本申请实施例提供的方法可以应用于有大量数据需要写入的场景中,比如,在安防场景下,成百上千路摄像头会把大量数据持续性写到这个分布式块存储系统中。也就是说,待存储数据通常为字节数很庞大的数据。
步骤S304,按照数据切分参数对待存储数据进行切分,得到多个数据块。
上述管理服务器中预先配置有数据切分参数;该数据切分参数包括:数据块大小或数据块个数;如果设定了数据块大小,那么就可以以该数据块大小为单位,切分为多个数据块;如果设定了数据块个数,那就可以将待存储数据按照该数据块个数进行均匀切分。在一种优选实施方式中,该数据切分参数为数据块大小,如2MB,也就是说,将待存储数据按照2MB大小进行均匀切分,比如,可以切分为数据块1、数据块2、数据块3…,每个数据块大小均为2MB。
步骤S306,根据对应关系确定虚拟磁盘标识对应的多个目标逻辑存储设备。
比如,在创建该虚拟磁盘时就创建了它与8个逻辑存储设备之间的对应关系,那么根据虚拟磁盘标识确定出的目标逻辑存储设备就是8个。将上述多个数据块轮询写入目标逻辑存储设备的过程如下:
步骤S308,将每个数据块作为当前数据块,均执行以下步骤:获取当前数据块对应的数据块标识及目标逻辑存储设备的数量;根据数据块标识和目标逻辑存储设备的数量,从多个目标逻辑存储设备中确定出当前逻辑存储设备;将当前数据块写入当前逻辑存储设备对应的存储空间。
上述数据块标识为数据块切分序号;根据数据块标识和目标逻辑存储设备的数量,从多个目标逻辑存储设备中确定出当前逻辑存储设备的步骤,包括:计算当前数据块对应的数据块切分序号除以目标逻辑存储设备的数量所得的余数;以余数为序号,将多个目标逻辑存储设备中与序号对应的目标逻辑存储设备作为当前逻辑存储设备。
比如,目标逻辑存储设备的数量为8,当前数据块对应的切分序号为1,即第一个数据块,那么,1除以8的余数为1,也就是将第一个目标逻辑存储设备作为当前数据块对应的当前逻辑存储设备进行数据写入。再比如,当前数据块对应的切分序号为10,即第十个数据块,那么,10除以8的余数为2,也就是将第二个目标逻辑存储设备作为当前数据块对应的当前逻辑存储设备进行数据写入,以此类推。
参见图4所示的本申请实施例提供的一种Volume对应的地址空间的示意图,由图4可知,上述当前逻辑存储设备Volume对应多个地址段segment,每个地址段segment对应多个分布于不同存储节点上的存储空间,如图中的各个Block;Volume只是一个逻辑概念,真正存储数据的是图中的LogBlock和VolBlock,一个Volume所包含的Blocks可能分布到任何一个存储节点上,上述将当前数据块写入当前逻辑存储设备对应的存储空间的步骤,可以通过以下方式实现:
(1)获取当前数据块对应存储偏移参数。
具体的,首先获取待存储数据对应的初始存储偏移量;然后根据初始存储偏移量、当前数据块之前的数据块大小之和、当前数据块对应的数据块大小,确定当前数据块对应的存储偏移参数。
比如,待存储数据对应的初始存储偏移量为offset,以数据块大小为2MB进行切分为例进行说明,切分后的数据块对应的存储偏移参数为:offset+2MB*(i-1)。其中,i表示数据块序号,即,第一个数据块对应的存储偏移参数为offset,第二个数据块对应的存储偏移参数为offset+2MB,第三个数据块对应的存储偏移参数为offset+2MB*2,以此类推。
(2)根据存储偏移参数,从当前逻辑存储设备对应的多个地址段中确定出当前地址段。
上述每个地址段对应大小均相同,为系统设定值8GB;上述根据存储偏移参数,从当前逻辑存储设备对应的多个地址段中确定出当前地址段的步骤可以通过以下步骤实现:
求取存储偏移参数除以地址段大小的商;以商为序号,将多个地址段中与序号对应的地址段作为当前地址段。
比如,当前数据块对应的存储偏移参数为8GB+2MB,那么利用8GB+2MB除以地址段大小8GB,商为1,则将第一个地址段作为当前地址段。再比如,当前数据块对应的存储偏移参数为16GB+4MB,那么利用16GB+4MB除以地址段大小8GB,商为2,则将第二个地址段作为当前地址段。
(3)将当前数据块写入当前地址段对应的存储空间。
参见图4,上述当前地址段对应有第一存储空间LogBlock和第二存储空间ValBlock;第二存储空间ValBlock以多副本(如三副本)的形式分布于系统中的不同存储节点上;将当前数据块写入当前地址段对应的存储空间的步骤可以通过以下方式实现:将当前数据块写入第一存储空间;通过第一存储空间将当前数据块回放至第二存储空间。
一种优选的实施方式中,Volume地址空间分为多个segment,每个segment大小为8GB,每个segment对应一个VolBlock和多个LogBlock,VolBlock存储磁盘基础数据,支持随机写,LogBlock保存WAL数据,顺序写,LogBlock数据回放到VolBlock后删除。每个VolBlock以三副本的形式存在,每副本存在不同存储节点上。写入时先写主副本,再同步到两从本,三次写入成功才算成功。
需要说明的是,用户的待存储数据只写入LogBlock中,每个LogBlock写满1GB或者用户发现当前LogBlock无法写入,EBS SDK会创建新的LogBlock。
下面详细阐述一下虚拟磁盘的创建过程:
获取预先创建的多个逻辑存储设备分别对应的标识;将多个逻辑存储设备分别对应的标识添加至同一虚拟磁盘标识对应的设备列表中;基于设备列表及TGT导出块设备驱动程序生成虚拟磁盘。
在创建LUN的时候,系统管理员已经指定该LUN包含了哪几个Volume(默认1:8),也就是确定好LUN与8个Volume的对应关系,然后通过TGT导出块设备驱动程序生成虚拟磁盘LUN,LUN对用户可见,用户可以选择某个LUN进行数据写操作。
在实际应用中,上述创建的虚拟磁盘通常是根据用户的需求进行创建的,这种情况下,就会对虚拟磁盘LUN设置有使用权限,并非人人都可使用,因此,本申请实施例提供的数据写入方法中,在接收客户端的数据写入请求的步骤之前,还可以包括以下步骤:
接收客户端的磁盘登录请求;磁盘登录请求中携带有客户端标识;根据客户端标识进行用户身份认证;认证成功后,向客户端返回登录成功的提示信息。
上述客户端标识可以是用户使用的IP地址,也可以是账号密码之类的验证信息。在用户身份认证成功后,用户才可以使用该虚拟磁盘进行数据写操作。
本申请实施例提供的数据写入方法,通过多个目标逻辑存储设备对待存储数据的多个数据块进行并行数据写入,可以使数据同时写入到多个地址段对应的存储空间中,如多个Volume对应的多个segment对应的多个VolBlock中,提高数据写入时的系统带宽,提高数据写入效率。
基于上述方法实施例,本申请实施例还提供一种数据写入装置,该装置应用于分布式块存储系统的管理服务器,管理服务器中预先创建有虚拟磁盘与逻辑存储设备的对应关系;其中,一个虚拟磁盘对应多个逻辑存储设备;每个逻辑存储设备对应的存储空间分布于系统的至少一个存储节点中;参见图5所示,该装置包括:
请求接收模块52,用于接收客户端的数据写入请求;其中,数据写入请求中携带有虚拟磁盘标识和待存储数据;数据切分模块54,用于将待存储数据切分为多个数据块;目标设备确定模块56,用于根据对应关系确定虚拟磁盘标识对应的多个目标逻辑存储设备;数据写入模块58,用于将多个数据块轮询写入多个目标逻辑存储设备分别对应的存储空间。
本申请实施例提供的数据写入装置,应用于分布式块存储系统的管理服务器,管理服务器中预先创建有虚拟磁盘与逻辑存储设备的对应关系;其中,一个虚拟磁盘对应多个逻辑存储设备;在管理服务器在进行待存储数据写入时,可以通过多个目标逻辑存储设备对待存储数据的多个数据块进行并行数据写入,可以提高数据写入时的系统带宽,提高数据写入效率。
上述管理服务器中配置有数据切分参数;数据切分参数包括:数据块大小或数据块个数;上述数据切分模块54,还用于按照数据切分参数对待存储数据进行切分,得到多个数据块。
上述数据写入模块58,还用于将每个数据块作为当前数据块,均执行以下步骤:获取当前数据块对应的数据块标识及目标逻辑存储设备的数量;根据数据块标识和目标逻辑存储设备的数量,从多个目标逻辑存储设备中确定出当前逻辑存储设备;将当前数据块写入当前逻辑存储设备对应的存储空间。
上述数据块标识为数据块切分序号;上述数据写入模块58,还用于计算当前数据块对应的数据块切分序号除以目标逻辑存储设备的数量所得的余数;以余数为序号,将多个目标逻辑存储设备中与序号对应的目标逻辑存储设备作为当前逻辑存储设备。
上述当前逻辑存储设备对应多个地址段,每个地址段对应多个分布于不同存储节点上的存储空间;上述数据写入模块58,还用于获取当前数据块对应存储偏移参数;根据存储偏移参数,从当前逻辑存储设备对应的多个地址段中确定出当前地址段;将当前数据块写入当前地址段对应的存储空间。
上述数据写入模块58,还用于获取待存储数据对应的初始存储偏移量;根据初始存储偏移量、当前数据块之前的数据块大小之和、当前数据块对应的数据块大小,确定当前数据块对应的存储偏移参数。
上述每个地址段对应大小均相同;上述数据写入模块58,还用于求取存储偏移参数除以地址段大小的商;以商为序号,将多个地址段中与序号对应的地址段作为当前地址段。
上述当前地址段对应有第一存储空间和第二存储空间;第二存储空间以多副本的形式分布于系统中的不同存储节点上;上述数据写入模块58,还用于将当前数据块写入第一存储空间;通过第一存储空间将当前数据块回放至第二存储空间。
上述装置还包括虚拟磁盘创建模块,用于获取预先创建的多个逻辑存储设备分别对应的标识;将多个逻辑存储设备分别对应的标识添加至同一虚拟磁盘标识对应的设备列表中;基于设备列表及TGT导出块设备驱动程序生成虚拟磁盘。
上述装置还包括:验证模块,用于接收客户端的磁盘登录请求;磁盘登录请求中携带有客户端标识;根据客户端标识进行用户身份认证;认证成功后,向客户端返回登录成功的提示信息。
本申请实施例提供的数据写入装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,数据写入装置的实施例部分未提及之处,可参考前述方法实施例中相应内容。
本申请实施例还提供了一种电子设备,如图6所示,为该电子设备的结构示意图,其中,该电子设备包括处理器61和存储器60,该存储器60存储有能够被该处理器61执行的计算机可执行指令,该处理器61执行该计算机可执行指令以实现上述方法。
在图6示出的实施方式中,该电子设备还包括总线62和通信接口63,其中,处理器61、通信接口63和存储器60通过总线62连接。
其中,存储器60可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口63(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线62可以是ISA(IndustryStandard Architecture,工业标准体系结构)总线、PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线62可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器61可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器61中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器61可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器61读取存储器中的信息,结合其硬件完成前述实施例的方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现上述方法,具体实现可参见前述方法实施例,在此不再赘述。
本申请实施例所提供的数据写入方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本申请的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (13)
1.一种数据写入方法,其特征在于,所述方法应用于分布式块存储系统的管理服务器,所述管理服务器中预先创建有虚拟磁盘与逻辑存储设备的对应关系;其中,一个所述虚拟磁盘对应多个所述逻辑存储设备;每个所述逻辑存储设备对应的存储空间分布于所述系统的至少一个存储节点中;所述方法包括:
接收客户端的数据写入请求;其中,所述数据写入请求中携带有虚拟磁盘标识和待存储数据;
将所述待存储数据切分为多个数据块;
根据所述对应关系确定所述虚拟磁盘标识对应的多个目标逻辑存储设备;
将多个所述数据块轮询写入多个所述目标逻辑存储设备分别对应的存储空间。
2.根据权利要求1所述的方法,其特征在于,所述管理服务器中配置有数据切分参数;所述数据切分参数包括:数据块大小或数据块个数;
将所述待存储数据切分为多个数据块的步骤,包括:
按照所述数据切分参数对所述待存储数据进行切分,得到多个所述数据块。
3.根据权利要求1所述的方法,其特征在于,将多个所述数据块轮询写入多个所述目标逻辑存储设备分别对应的存储空间的步骤,包括:
将每个所述数据块作为当前数据块,均执行以下步骤:
获取所述当前数据块对应的数据块标识及所述目标逻辑存储设备的数量;
根据所述数据块标识和所述目标逻辑存储设备的数量,从多个所述目标逻辑存储设备中确定出当前逻辑存储设备;
将所述当前数据块写入所述当前逻辑存储设备对应的存储空间。
4.根据权利要求3所述的方法,其特征在于,所述数据块标识为数据块切分序号;
根据所述数据块标识和所述目标逻辑存储设备的数量,从多个所述目标逻辑存储设备中确定出当前逻辑存储设备的步骤,包括:
计算所述当前数据块对应的数据块切分序号除以所述目标逻辑存储设备的数量所得的余数;
以所述余数为序号,将多个所述目标逻辑存储设备中与所述序号对应的目标逻辑存储设备作为当前逻辑存储设备。
5.根据权利要求3所述的方法,其特征在于,所述当前逻辑存储设备对应多个地址段,每个地址段对应多个分布于不同存储节点上的存储空间;
将所述当前数据块写入所述当前逻辑存储设备对应的存储空间的步骤,包括:
获取所述当前数据块对应存储偏移参数;
根据所述存储偏移参数,从所述当前逻辑存储设备对应的多个地址段中确定出当前地址段;
将所述当前数据块写入所述当前地址段对应的存储空间。
6.根据权利要求5所述的方法,其特征在于,获取所述当前数据块对应的存储偏移参数的步骤,包括:
获取所述待存储数据对应的初始存储偏移量;
根据所述初始存储偏移量、所述当前数据块之前的数据块大小之和、所述当前数据块对应的数据块大小,确定所述当前数据块对应的存储偏移参数。
7.根据权利要求5所述的方法,其特征在于,每个所述地址段对应大小均相同;
根据所述存储偏移参数,从所述当前逻辑存储设备对应的多个地址段中确定出当前地址段的步骤,包括:
求取所述存储偏移参数除以所述地址段大小的商;
以所述商为序号,将多个所述地址段中与所述序号对应的地址段作为当前地址段。
8.根据权利要求5所述的方法,其特征在于,所述当前地址段对应有第一存储空间和第二存储空间;所述第二存储空间以多副本的形式分布于所述系统中的不同存储节点上;
将所述当前数据块写入所述当前地址段对应的存储空间的步骤,包括:
将所述当前数据块写入所述第一存储空间;
通过所述第一存储空间将所述当前数据块回放至所述第二存储空间。
9.根据权利要求1所述的方法,其特征在于,所述虚拟磁盘的创建过程如下:
获取预先创建的多个逻辑存储设备分别对应的标识;
将多个所述逻辑存储设备分别对应的标识添加至同一虚拟磁盘标识对应的设备列表中;
基于所述设备列表及TGT导出块设备驱动程序生成虚拟磁盘。
10.根据权利要求1所述的方法,其特征在于,接收客户端的数据写入请求的步骤之前,所述方法还包括:
接收所述客户端的磁盘登录请求;所述磁盘登录请求中携带有客户端标识;
根据所述客户端标识进行用户身份认证;
认证成功后,向所述客户端返回登录成功的提示信息。
11.一种数据写入装置,其特征在于,所述装置应用于分布式块存储系统的管理服务器,所述管理服务器中预先创建有虚拟磁盘与逻辑存储设备的对应关系;其中,一个所述虚拟磁盘对应多个所述逻辑存储设备;每个所述逻辑存储设备对应的存储空间分布于所述系统的至少一个存储节点中;所述装置包括:
请求接收模块,用于接收客户端的数据写入请求;其中,所述数据写入请求中携带有虚拟磁盘标识和待存储数据;
数据切分模块,用于将所述待存储数据切分为多个数据块;
目标设备确定模块,用于根据所述对应关系确定所述虚拟磁盘标识对应的多个目标逻辑存储设备;
数据写入模块,用于将多个所述数据块轮询写入多个所述目标逻辑存储设备分别对应的存储空间。
12.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1至10任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现权利要求1至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110907176.5A CN113608699A (zh) | 2021-08-09 | 2021-08-09 | 数据写入方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110907176.5A CN113608699A (zh) | 2021-08-09 | 2021-08-09 | 数据写入方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113608699A true CN113608699A (zh) | 2021-11-05 |
Family
ID=78339950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110907176.5A Pending CN113608699A (zh) | 2021-08-09 | 2021-08-09 | 数据写入方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113608699A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114301575A (zh) * | 2021-12-21 | 2022-04-08 | 阿里巴巴(中国)有限公司 | 数据处理方法、系统、设备及介质 |
CN114579061A (zh) * | 2022-04-28 | 2022-06-03 | 苏州浪潮智能科技有限公司 | 一种数据存储方法、装置、设备及介质 |
CN116737619A (zh) * | 2023-08-15 | 2023-09-12 | 苏州浪潮智能科技有限公司 | 数据请求系统、方法、装置、计算机设备和存储介质 |
-
2021
- 2021-08-09 CN CN202110907176.5A patent/CN113608699A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114301575A (zh) * | 2021-12-21 | 2022-04-08 | 阿里巴巴(中国)有限公司 | 数据处理方法、系统、设备及介质 |
WO2023116141A1 (zh) * | 2021-12-21 | 2023-06-29 | 阿里巴巴(中国)有限公司 | 数据处理方法、系统、设备及介质 |
CN114301575B (zh) * | 2021-12-21 | 2024-03-29 | 阿里巴巴(中国)有限公司 | 数据处理方法、系统、设备及介质 |
CN114579061A (zh) * | 2022-04-28 | 2022-06-03 | 苏州浪潮智能科技有限公司 | 一种数据存储方法、装置、设备及介质 |
CN116737619A (zh) * | 2023-08-15 | 2023-09-12 | 苏州浪潮智能科技有限公司 | 数据请求系统、方法、装置、计算机设备和存储介质 |
CN116737619B (zh) * | 2023-08-15 | 2023-11-03 | 苏州浪潮智能科技有限公司 | 数据请求系统、方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113608699A (zh) | 数据写入方法、装置及电子设备 | |
CN109831487B (zh) | 分片文件验证方法及终端设备 | |
CN111030936B (zh) | 网络访问的限流控制方法、装置及计算机可读存储介质 | |
CN110750382B (zh) | 用于提高数据修复性能的最小存储再生码编码方法及系统 | |
US10127233B2 (en) | Data processing method and device in distributed file storage system | |
CN108681572B (zh) | 区块链的数据存储方法、装置及电子设备 | |
KR20210055734A (ko) | 블록 처리 방법들, 노드 및 시스템 | |
US11385830B2 (en) | Data storage method, apparatus and system, and server, control node and medium | |
CN106648440B (zh) | 操作存储设备的控制方法和存储设备 | |
CN108268344B (zh) | 一种数据处理方法和装置 | |
CN112398692B (zh) | 共识流程处理方法、装置和电子设备 | |
CN112333289A (zh) | 反向代理访问方法、装置、电子设备及存储介质 | |
EP3370166B1 (en) | Method and apparatus for model parameter fusion | |
CN114185558A (zh) | 基于K8s的原生应用选主方法、装置及存储介质 | |
CN111708763B (zh) | 分片集群的数据迁移方法、装置和分片集群系统 | |
CN110209347B (zh) | 一种可追溯的数据存储方法 | |
WO2020034695A1 (zh) | 数据存储方法、数据恢复方法、装置、设备及存储介质 | |
CN106412018B (zh) | 消息推送方法和装置 | |
CN113794581B (zh) | 分布式cp统一部署方法及网络设备、存储介质 | |
CN111966845B (zh) | 图片管理方法、装置、存储节点及存储介质 | |
CN110471922B (zh) | 记账节点的内容扩展方法、设备及计算机可读存储介质 | |
CN113411364B (zh) | 资源获取方法、装置及服务器 | |
CN112434237A (zh) | 页面加载方法、装置、电子设备及存储介质 | |
CN110209727B (zh) | 一种数据存储方法、终端设备及介质 | |
CN116663068B (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 |