CN111897492B - 一种基于块设备驱动的数据处理方法、装置及电子设备 - Google Patents

一种基于块设备驱动的数据处理方法、装置及电子设备 Download PDF

Info

Publication number
CN111897492B
CN111897492B CN202010682129.0A CN202010682129A CN111897492B CN 111897492 B CN111897492 B CN 111897492B CN 202010682129 A CN202010682129 A CN 202010682129A CN 111897492 B CN111897492 B CN 111897492B
Authority
CN
China
Prior art keywords
read
write
instruction
block device
request
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
Application number
CN202010682129.0A
Other languages
English (en)
Other versions
CN111897492A (zh
Inventor
曹祯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision System Technology Co Ltd
Original Assignee
Hangzhou Hikvision System Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision System Technology Co Ltd filed Critical Hangzhou Hikvision System Technology Co Ltd
Priority to CN202010682129.0A priority Critical patent/CN111897492B/zh
Publication of CN111897492A publication Critical patent/CN111897492A/zh
Application granted granted Critical
Publication of CN111897492B publication Critical patent/CN111897492B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供一种基于块设备驱动的数据处理方法、装置及电子设备,该方法包括:接收基于互联网小型计算机系统接口iSCSI协议的读写请求;通过已设置的接口层对所述读写请求进行解析,以获取读写指令;通过所述接口层基于指定网络协议将所述读写指令发送至系统用户态中的块设备驱动runner服务,以使所述runner服务依据所述读写指令执行读写操作;接收所述runner服务基于所述指定网络协议发送的读写响应,并基于iSCSI协议将所述读写响应返回给读写请求发起方。该方法可以提高数据处理的效率。

Description

一种基于块设备驱动的数据处理方法、装置及电子设备
技术领域
本申请涉及一种分布式存储技术领域,尤其涉及一种基于块设备驱动的数据处理方法、装置及电子设备。
背景技术
分布式存储系统采用可扩展的系统结构,利用多台存储设备分担存储负荷,不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
块设备是分布式存储系统对外的一种接口形态,TCMU(Target Core Module inUserspace,用户空间的目标核心模块)是一种分布式存储系统生成块设备的常用方式。
TCMU实现的是iSCSI(Internet Small Computer System Interface,互联网小型计算机系统接口)用户态的块设备驱动方式。
然而实践发现,传统的基于TCMU实现的块设备驱动方案中,进行数据读写的IO(Input/output,输入/输出)路径过长,且由于数据传输采用iSCSI协议,需要反复的封装PDU(Protocol Data Unit,协议数据单元)包和解析,处理效率较低;此外,TCMU方案中内核态的目标(Target)和用户态的runner服务之间的交互需要依赖共享区域UIO(UserspaceI/O,用户空间输入/输出)区域,UIO区域目前限制的是8M空间,在一定程度上限制了当前整个路径上请求的并发数量,在处理性能上也带来了限制。
发明内容
有鉴于此,本申请提供一种基于块设备驱动的数据处理方法、装置及电子设备。
根据本申请实施例的第一方面,提供一种基于块设备驱动的数据处理方法,应用于小型计算机系统接口SCSI存储设备,所述方法包括:
接收基于互联网小型计算机系统接口iSCSI协议的读写请求;
通过已设置的接口层对所述读写请求进行解析,以获取读写指令;
通过所述接口层基于指定网络协议将所述读写指令发送至系统用户态中的块设备驱动runner服务,以使所述runner服务依据所述读写指令执行读写操作;
接收所述runner服务基于所述指定网络协议发送的读写响应,并基于iSCSI协议将所述读写响应返回给读写请求发起方。
根据本申请实施例的第二方面,提供一种基于块设备驱动的数据处理装置,应用于小型计算机系统接口SCSI存储设备,所述装置包括:
接收单元,用于接收基于互联网小型计算机系统接口iSCSI协议的读写请求;
解析单元,用于通过已设置的接口层对所述读写请求进行解析,以获取读写指令;
发送单元,用于通过所述接口层基于指定网络协议将所述读写指令发送至系统用户态中的块设备驱动runner服务,以使所述runner服务依据所述读写指令执行读写操作;
所述接收单元,还用于接收所述runner服务基于所述指定网络协议发送的读写响应;
所述发送单元,还用于基于iSCSI协议将所述读写响应返回给读写请求发起方。
根据本申请实施例的第三方面,提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述基于块设备驱动的数据处理方法。
应用本申请实施例,当接收到基于iSCSI协议的读写请求时,通过已设置的接口层对读写请求进行解析,以获取读写指令,并通过该接口层基于指定网络协议将该读写指令发送至系统用户态中的块设备驱动runner服务,以使runner服务依据读写指令执行读写操作,当接收到runner服务基于指定网络协议发送的读写响应时,基于iSCSI协议将读写响应返回给读写请求发起方,避免了内核态和用户态之间的数据传输过程中反复封装PDU包和解析PDU包,且内核态和用户态之间的交互不再依赖UIO区域,提高了数据处理的效率。
附图说明
图1为本申请一示例性实施例示出的一种基于块设备驱动的数据处理方法的实施例流程图;
图2为本申请一示例性实施例示出的一种创建块设备的实现流程图;
图3为本申请一示例性实施例示出的一种SCSI存储设备的操作系统架构示意图;
图4为本申请一示例性实施例示出的一种登录块设备的实现流程图;
图5为本申请一示例性实施例示出的一种读写流程图;
图6为本申请一示例性实施例示出的一种基于块设备驱动的数据处理装置的实施例结构图;
图7为本申请一示例性实施例示出的一种电子设备的硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
请参见图1,为本申请一示例性实施例提供的一种基于块设备驱动的数据处理方法的实施例流程图。
如图1所示,包括以下步骤:
步骤101:接收基于iSCSI协议的读写请求。
步骤102:通过已设置的接口层对读写请求进行解析,以获取读写指令。
步骤103:通过该接口层基于指定网络协议将读写指令发送至系统用户态中的runner服务,以使runner服务依据读写指令执行读写操作。
为了避免数据传输过程中反复封装PDU包和解析PDU包,内核态和用户态之间的数据传输不再采用iSCSI协议,而是可以采用指定网络协议,如IP协议。
在应用中,可以在SCSI存储设备中设置接口层,该接口层用于对数据进行iSCSI协议与指定网络协议的转封装。
例如,可以在SCSI存储设备的内核态与用户态之间设置接口层。
当接收到基于iSCSI协议的数据时,该接口层可以对该数据进行解析,解除其iSCSI协议封装,并基于指定网络协议对解析得到的数据重新进行封装。
同理,当接收到基于指定网络协议的数据时,该接口层可以对该数据进行解析,解除其指定网络协议封装,并基于iSCSI协议对解析得到的数据重新进行封装。
相应地,当SCSI存储设备接收到基于iSCSI协议的读写请求时,可以通过已设置的接口层对该读写请求进行解析,以获取读写指令。
示例性的,该读写指令携带的信息可以包括但不限于用于指示数据读写的目标块设备的块设备标识、数据读写的位置以及待读取的数据长度或待写入的数据等信息。
在解析到读写指令时,可以基于指定网络协议将该读写指令发送至系统用户态的runner服务(块设备驱动服务,本申请中可以称为hikblock-runner或块设备驱动模块)。
runner服务接收到该读写指令时,可以依据该读写指令执行读写操作。
步骤104:接收runner服务基于指定网络协议发送的读写响应,并基于iSCSI协议将读写响应返回给读写请求发起方。
在应用中,runner服务依据接收到的读写指令完成读写操作之后,可以返回读写响应。
示例性的,对于读取请求,可以返回读取的数据;对于写入请求,可以返回写入成功/失败响应。
runner服务可以基于指定网络协议对该读写响应进行封装,并将封装后的读写响应发送给内核态的target。
内核态与用户态之间的接口层接收到该读写响应时,可以对该读写响应进行解析,解除指定网络协议封装,并基于iSCSI协议对其进行重新封装,将iSCSI协议封装后的读写响应发送给内核态的target,由内核态的targer将该基于iSCSI协议的读写响应返回给读写请求发起方。
在一个实施例中,上述步骤103中,基于指定网络协议将读写指令发送至系统用户态中的runner服务,可以包括:
基于指定网络协议对读写指令进行封装;
在已配置的读写线程中选择一个空闲的读写线程作为目标读写线程;
调用目标读写线程将封装后的读写指令发送至系统用户态中的runner服务。
与目前的用户态和内核态之间基于UIO进行交互,以处理针对块设备的读写操作不同,本申请实施例中,SCSI存储设备可以调用已配置的读写线程中空闲的读写线程实现数据读写,从而,内核态与用户态之间的交互不再需要依赖UIO共享区域,不再受限于UIO共享区域的空闲限制,可以有效提高数据读写的并发数量和处理性能。
在一个示例中,上述在已配置的读写线程中选择一个空闲的读写线程作为目标读写线程,可以包括:
利用设定的哈希函数对所述读写指令中携带的块设备标识进行映射,得到对应的哈希值;
若与所述哈希值匹配的读写线程空闲,则将所述匹配的读写线程确定为目标读写线程。
示例性的,为了实现多读写进程的负载分担,可以预先设定用于进行读写进程分配的哈希函数。
当获取到读写指令时,可以利用设定的哈希函数对读写指令中携带的块设备的标识进行映射,得到对应的哈希值。
当与该哈希值匹配的读写线程空闲,则将匹配的读写线程确定为目标读写线程。
需要说明的是,当与该哈希值匹配的读写线程未处于空闲,则可以等待该读写线程空闲后再执行该读写指令,或者,可以按照其他策略重新从空闲的读写线程中选择用于处理该读写指令的读写线程,其具体实现在此不做赘述。
至此,完成图1所示流程。
通过图1所示实施例,通过设置接口层,用于对内核态和用户态之间交互的数据进行iSCSI协议与指定网络协议的转封装,从而,可以实现内核态与用户态之间通过指定网络协议进行数据传输,而不需要通过iSCSI协议进行数据传输,避免了内核态与用户态之间进行数据传输时的反复PDU封装和解析,提高了数据处理性能。
下面对SCSI存储设备如何创建块设备进行描述:
请参见图2,为本申请一示例性实施例提供的一种创建块设备的实现流程。
为了更好地理解,在描述图2所示流程之前,首先对本申请实施例中SCSI存储设备的操作系统架构进行说明:
请参见图3,为本申请实施例中SCSI存储设备的操作系统架构的示意图。
如图3所示,块设备驱动模块(即上述runner服务)位于操作系统的用户空间,即用户态,为了描述方便,以下简称用户态块设备驱动模块。用户态块设备驱动模块可以负责接收各种接口类型的IO请求(比如创建请求、登录请求、读写请求)等。
模式适配模块(本申请中也可以称为hik_core_mod.ko模块)、SCSI协议处理模块(本申请中也可以称为hik_core_pscsi.ko模块),以及块设备接口模块(本申请中也可以称为hik_core_iblock.ko模块)则位于操作系统的内核空间,即内核态。其中,块设备接口模块用于将接收到的SCSI数据分发给SCSI协议处理模块,SCSI协议处理模块用于对SCSI协议进行解析,模式适配模块用于指定内部请求。
在图3所示操作系统架构的基础上,图2可包括以下步骤:
步骤201:通过runner服务接收块设备创建请求。
示例性的,用户可以通过客户端/网页(cli/web)工具来发起块设备创建。
块设备创建请求基于socket协议传输。
步骤202:runner服务将创建请求发送至块设备接口模块。
步骤203:块设备接口模块将创建请求发送至SCSI协议处理模块,通过SCSI协议处理模块将创建请求发送给模式适配模块。
示例性的,由于创建请求不是文件系统下发的读写请求,属于内部的创建请求,不需要进行SCSI解析,转发至模式适配模块。
步骤204:模式适配模块从创建请求中解析出块设备属性并创建与块设备属性匹配的块设备。
示例性的,块设备属性可以包括但不限于块设备的类型,大小,最小发送块大小等属性。
可见,在该实施例中,可以通过在块设备创建请求中携带块设备属性,以实现指定块设备属性的块设备的创建,提高了块设备创建的灵活性和可控性。
另外,模式适配模块创建块设备之后,可以将用于指示已创建块设备的响应消息基于socket协议返回给用户态块设备驱动,以由用户态块设备驱动将该响应消息返回给客户端SCSI设备。
示例性的,模式适配模块返回响应消息给SCSI协议处理模块,由于是针对创建请求的响应消息,因此,不对该响应消息进行SCSI封装,并转发给块设备接口模块,由块设备接口模块将该响应消息通过socket返回给用户态的runner服务。runner服务接收到该响应消息时,返回给cli/web客户端工具。
下面在图3所示操作系统架构的基础上,对目标端SCSI设备如何登录块设备进行描述:
请参见图4,为本申请一示例性实施例提供的一种登录块设备的实现流程。
如图4所示,包括以下步骤:
步骤401:接收基于iSCSI协议的登录请求。
步骤402:通过已设置的接口层对登录请求进行解析,以获取登录指令。
步骤403:基于指定网络协议对登录指令进行封装,并将封装后的登录指令发送给runner服务,以使runner服务对封装后的登录指令进行解析,并保存解封装得到的登录信息。
示例性的,登录过程需要将当前块设备在本地创建出来(可以称为SCSI发送端设备)。
用于监控当前本地块设备的服务的后台监控服务(可以称为hikscsid服务)可以对登录请求进行监控。当该后台监控服务器监控到登录请求服务时,可以通过当前文件系统层将登录请求发送给SCSI传输模块(本申请中也可以称为hik_scsi_transport.ko模块),由SCSI传输模块将登录请求适配至对应的Target(可以称为SCSI接收端设备),并将其转发给TCP处理模块(本申请中可以称为hik_core_pscsi.ko),由TCP处理模块通过socket将其转发给对应的SCSI接收端设备。
当SCSI存储设备作为SCSI接收端设备接收到登录请求时,可以通过接口层对该登录请求进行解析,以获取登录指令。
其中,SCSI存储设备可以通过块设备接口模块接收登录请求,接口层通过SCSI协议处理模块对接收到的登录请求进行SCSI协议解析,以得到登录指令,并发送给模式适配模块,由模式适配模块对其进行指定网络协议封装,如IP协议封装,然后,发送给runner服务。
runner服务接收到指定网络协议进行封装的登录指令时,进行解析,获取登录信息并保存。
下面在图3所示操作系统架构的基础上,对目标端SCSI设备如何对块设备进行读写进行描述:
请参见图5,为本申请一示例性实施例提供的一种读写流程。
如图5所示,包括以下步骤:
步骤501:接收基于iSCSI协议的读写请求。
步骤502:通过接口层对读写请求进行解析,以获取读写指令。
步骤503:通过接口层基于指定网络协议对读写指令进行封装。
步骤504:在已配置的读写线程中选择一个空闲的读写线程作为目标读写线程。
步骤505、调用目标读写线程将封装后的读写指令发送至runner服务。
示例性的,可以通过设置不同hash桶数来增加当前用户态的runner服务与内核态交互的并发数,根据实际机器环境来动态调整当前块大小以及hash桶的数量,优化当前系统,增强系统的适应性。
例如,可以根据脚本设置参数,创建N个hash桶(也就是当前系统并发数,每个桶分配一个读写线程),当前bucketname+offset(桶名+偏移量)来计算当前key值,再%N,就可以获得当前请求所在的队列(一个队列对应一个读写线程),将请求回挂请求队列。
步骤506、runner服务基于接收到的读写指令执行读写操作。
本申请实施例中,当接收到基于iSCSI协议的读写请求时,通过已设置的接口层对读写请求进行解析,以获取读写指令,并通过该接口层基于指定网络协议将该读写指令发送至系统用户态中的块设备驱动runner服务,以使runner服务依据读写指令执行读写操作,当接收到runner服务基于指定网络协议发送的读写响应时,基于iSCSI协议将读写响应返回给读写请求发起方,避免了内核态和用户态之间的数据传输过程中反复封装PDU包和解析PDU包,且内核态和用户态之间的交互不再依赖UIO区域,提高了数据处理的效率。
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
请参见图6,为本申请实施例提供的一种基于块设备驱动的数据处理装置的结构示意图,其中,该基于块设备驱动的数据处理装置可以应用于上述方法实施例中的SCSI存储设备,如图6所示,该基于块设备驱动的数据处理装置可以包括:
接收单元610,用于接收基于互联网小型计算机系统接口iSCSI协议的读写请求;
解析单元620,用于通过已设置的接口层对所述读写请求进行解析,以获取读写指令;
发送单元630,用于通过所述接口层基于指定网络协议将所述读写指令发送至系统用户态中的块设备驱动runner服务,以使所述runner服务依据所述读写指令执行读写操作;
所述接收单元610,还用于接收所述runner服务基于所述指定网络协议发送的读写响应;
所述发送单元630,还用于基于iSCSI协议将所述读写响应返回给读写请求发起方。
在一个实施例中,所述发送单元630,具体用于基于指定网络协议对所述读写指令进行封装;在已配置的读写线程中选择一个空闲的读写线程作为目标读写线程;调用所述目标读写线程将封装后的读写指令发送至系统用户态中的runner服务。
在一个实施例中,所述发送单元630,具体用于利用设定的哈希函数对所述读写指令中携带的块设备标识进行映射,得到对应的哈希值;若与所述哈希值匹配的读写线程空闲,则将所述匹配的读写线程确定为目标读写线程。
在一个实施例中,所述接收单元610,还用于接收基于iSCSI协议的登录请求;
所述解析单元620,还用于通过所述已设置的接口层对所述登录请求进行解析,以获取登录指令;
所述发送单元630,还用于基于所述指定网络协议对所述登录指令进行封装,并将所述封装后的登录指令发送至所述runner服务,以使所述runner服务对所述封装后的登录指令进行解析,并保存解封装得到的登录信息。
在一个实施例中,所述接收单元610,还用于通过所述runner服务接收块设备创建请求;
所述发送单元630,还用于通过所述runner服务将所述创建请求发送至块设备接口模块,通过所述块设备接口模块将所述创建请求发送至SCSI协议处理模块;
所述发送单元630,还用于通过所述SCSI协议处理模块将所述创建请求发送给模式适配模块,由所述模式适配模块根据所述创建请求中携带的块设备属性,创建与所述块设备属性匹配的块设备。
请参见图7,为本申请实施例提供的一种电子设备的硬件结构示意图。该电子设备可以包括处理器701、通信接口702、存储器703和通信总线704。处理器701、通信接口702以及存储器703通过通信总线704完成相互间的通信。其中,存储器703上存放有计算机程序;处理器701可以通过执行存储器703上所存放的程序,执行上文描述的基于块设备驱动的数据处理方法。
本文中提到的存储器703可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,存储器702可以是:RAM(Radom AccessMemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
本申请实施例还提供了一种存储有计算机程序的机器可读存储介质,例如图7中的存储器703,所述计算机程序可由图7所示电子设备中的处理器701执行以实现上文描述的基于块设备驱动的数据处理方法。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (7)

1.一种基于块设备驱动的数据处理方法,其特征在于,应用于小型计算机系统接口SCSI存储设备,所述方法包括:
接收基于互联网小型计算机系统接口iSCSI协议的读写请求;
通过已设置的接口层对所述读写请求进行解析,以获取读写指令;
通过所述接口层基于指定网络协议将所述读写指令发送至系统用户态中的块设备驱动runner服务,以使所述runner服务依据所述读写指令执行读写操作;
接收所述runner服务基于所述指定网络协议发送的读写响应,并基于iSCSI协议将所述读写响应返回给读写请求发起方;
其中,所述基于指定网络协议将所述读写指令发送至系统用户态中的runner服务,包括:
基于指定网络协议对所述读写指令进行封装;
利用设定的哈希函数对所述读写指令中携带的块设备标识进行映射,得到对应的哈希值;
若与所述哈希值匹配的读写线程空闲,则将所述匹配的读写线程确定为目标读写线程;
调用所述目标读写线程将封装后的读写指令发送至系统用户态中的runner服务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收基于iSCSI协议的登录请求;
通过所述已设置的接口层对所述登录请求进行解析,以获取登录指令;
基于所述指定网络协议对所述登录指令进行封装,并将所述封装后的登录指令发送至所述runner服务,以使所述runner服务对所述封装后的登录指令进行解析,并保存解封装得到的登录信息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述runner服务接收块设备创建请求;
通过所述runner服务将所述创建请求发送至块设备接口模块,通过所述块设备接口模块将所述创建请求发送至SCSI协议处理模块;
通过所述SCSI协议处理模块将所述创建请求发送给模式适配模块,由所述模式适配模块根据所述创建请求中携带的块设备属性,创建与所述块设备属性匹配的块设备。
4.一种基于块设备驱动的数据处理装置,其特征在于,应用于小型计算机系统接口SCSI存储设备,所述装置包括:
接收单元,用于接收基于互联网小型计算机系统接口iSCSI协议的读写请求;
解析单元,用于通过已设置的接口层对所述读写请求进行解析,以获取读写指令;
发送单元,用于通过所述接口层基于指定网络协议将所述读写指令发送至系统用户态中的块设备驱动runner服务,以使所述runner服务依据所述读写指令执行读写操作;
所述接收单元,还用于接收所述runner服务基于所述指定网络协议发送的读写响应;
所述发送单元,还用于基于iSCSI协议将所述读写响应返回给读写请求发起方;
其中,所述发送单元,具体用于基于指定网络协议对所述读写指令进行封装;利用设定的哈希函数对所述读写指令中携带的块设备标识进行映射,得到对应的哈希值;若与所述哈希值匹配的读写线程空闲,则将所述匹配的读写线程确定为目标读写线程;调用所述目标读写线程将封装后的读写指令发送至系统用户态中的runner服务。
5.根据权利要求4所述的装置,其特征在于,
所述接收单元,还用于接收基于iSCSI协议的登录请求;
所述解析单元,还用于通过所述已设置的接口层对所述登录请求进行解析,以获取登录指令;
所述发送单元,还用于基于所述指定网络协议对所述登录指令进行封装,并将所述封装后的登录指令发送至所述runner服务,以使所述runner服务对所述封装后的登录指令进行解析,并保存解封装得到的登录信息。
6.根据权利要求4所述的装置,其特征在于,
所述接收单元,还用于通过所述runner服务接收块设备创建请求;
所述发送单元,还用于通过所述runner服务将所述创建请求发送至块设备接口模块,通过所述块设备接口模块将所述创建请求发送至SCSI协议处理模块;
所述发送单元,还用于通过所述SCSI协议处理模块将所述创建请求发送给模式适配模块,由所述模式适配模块根据所述创建请求中携带的块设备属性,创建与所述块设备属性匹配的块设备。
7.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-3任一项所述的方法步骤。
CN202010682129.0A 2020-07-15 2020-07-15 一种基于块设备驱动的数据处理方法、装置及电子设备 Active CN111897492B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010682129.0A CN111897492B (zh) 2020-07-15 2020-07-15 一种基于块设备驱动的数据处理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010682129.0A CN111897492B (zh) 2020-07-15 2020-07-15 一种基于块设备驱动的数据处理方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN111897492A CN111897492A (zh) 2020-11-06
CN111897492B true CN111897492B (zh) 2023-02-28

Family

ID=73191271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010682129.0A Active CN111897492B (zh) 2020-07-15 2020-07-15 一种基于块设备驱动的数据处理方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN111897492B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860190A (zh) * 2021-02-25 2021-05-28 西北民族大学 一种基于计算机设备的数据读写方法
CN113542412B (zh) * 2021-07-16 2024-01-05 天翼云科技有限公司 数据传输方法、装置、电子设备及存储介质
CN115174703B (zh) * 2022-06-16 2023-11-10 阿里云计算有限公司 设备驱动处理方法、设备通信方法、处理系统及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101808105A (zh) * 2009-02-16 2010-08-18 闪联信息技术工程中心有限公司 一种访问数据的方法、装置和系统
CN103441948A (zh) * 2013-07-03 2013-12-11 华为技术有限公司 一种数据访问方法、网卡及存储系统
CN103873504A (zh) * 2012-12-12 2014-06-18 鸿富锦精密工业(深圳)有限公司 数据分块存储至分布式服务器的系统及方法
CN109710402A (zh) * 2018-12-17 2019-05-03 平安普惠企业管理有限公司 处理资源获取请求的方法、装置、计算机设备和存储介质
CN110874336A (zh) * 2019-10-21 2020-03-10 无锡江南计算技术研究所 一种基于申威平台的分布式块存储低延迟控制方法及系统
CN111078154A (zh) * 2019-12-20 2020-04-28 厦门市超游网络科技股份有限公司 一种数据快速加载方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8072883B2 (en) * 2005-09-29 2011-12-06 Emc Corporation Internet small computer systems interface (iSCSI) distance acceleration device
CN107577539B (zh) * 2016-07-05 2021-03-16 阿里巴巴集团控股有限公司 用于内核态和用户态通讯的共享内存结构及其应用

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101808105A (zh) * 2009-02-16 2010-08-18 闪联信息技术工程中心有限公司 一种访问数据的方法、装置和系统
CN103873504A (zh) * 2012-12-12 2014-06-18 鸿富锦精密工业(深圳)有限公司 数据分块存储至分布式服务器的系统及方法
CN103441948A (zh) * 2013-07-03 2013-12-11 华为技术有限公司 一种数据访问方法、网卡及存储系统
CN109710402A (zh) * 2018-12-17 2019-05-03 平安普惠企业管理有限公司 处理资源获取请求的方法、装置、计算机设备和存储介质
CN110874336A (zh) * 2019-10-21 2020-03-10 无锡江南计算技术研究所 一种基于申威平台的分布式块存储低延迟控制方法及系统
CN111078154A (zh) * 2019-12-20 2020-04-28 厦门市超游网络科技股份有限公司 一种数据快速加载方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于iSCSI协议的加密存储区域网模型设计与实现;任星等;《计算机工程与设计》;20090228(第04期);全文 *

Also Published As

Publication number Publication date
CN111897492A (zh) 2020-11-06

Similar Documents

Publication Publication Date Title
CN111897492B (zh) 一种基于块设备驱动的数据处理方法、装置及电子设备
JP3730563B2 (ja) セッション管理装置およびセッション管理方法およびプログラムおよび記録媒体
US7823023B2 (en) Test framework for testing an application
US20170272499A1 (en) Method and device for loading webpage
US20180210752A1 (en) Accelerator virtualization method and apparatus, and centralized resource manager
CN111490963B (zh) 基于quic协议栈的数据处理方法、系统、设备及存储介质
CN109815384B (zh) 爬虫实现的方法、系统、设备及存储介质
CN103685213A (zh) 一种减少针对dns的攻击的装置、系统和方法
CN109564502A (zh) 应用于存储设备中的访问请求的处理方法和装置
CN107977260B (zh) 任务提交方法及装置
CN111901386A (zh) 一种远端文件处理的方法、系统、设备及可读存储介质
CN113438295A (zh) 容器组地址分配方法、装置、设备及存储介质
CN114281263A (zh) 容器集群管理系统的存储资源处理方法、系统和设备
CN114465770A (zh) 数据处理方法及相关装置
CN112100146A (zh) 一种高效的纠删分布式存储写入方法、系统、介质及终端
CN113438184A (zh) 网卡的队列管理方法、装置及电子设备
CN115639954A (zh) 一种数据传输方法、装置、设备及介质
CN113220481A (zh) 请求处理及反馈方法、装置、计算机设备及可读存储介质
CN113986133B (zh) 数据处理方法、装置、数据存储系统及电子设备
CN108829340B (zh) 存储处理方法、装置、存储介质及处理器
CN110798366B (zh) 任务逻辑的处理方法、装置及设备
CN114816668A (zh) 一种虚拟机内核监测方法、装置、设备及存储介质
CN114003342A (zh) 一种分布式存储方法、装置、电子设备及存储介质
CN111857964A (zh) 一种虚拟机can口数据透传到物理机can口设备的方法和设备
CN113741912A (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