CN113821174A - 存储处理方法、装置、网卡设备及存储介质 - Google Patents
存储处理方法、装置、网卡设备及存储介质 Download PDFInfo
- Publication number
- CN113821174A CN113821174A CN202111131549.0A CN202111131549A CN113821174A CN 113821174 A CN113821174 A CN 113821174A CN 202111131549 A CN202111131549 A CN 202111131549A CN 113821174 A CN113821174 A CN 113821174A
- Authority
- CN
- China
- Prior art keywords
- network card
- storage
- card device
- storage operation
- operation service
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 110
- 238000012545 processing Methods 0.000 claims abstract description 45
- 230000008569 process Effects 0.000 claims abstract description 14
- 238000012360 testing method Methods 0.000 claims abstract description 13
- 230000008602 contraction Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 10
- 230000009286 beneficial effect Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种存储处理方法、装置、网卡设备及存储介质。方法包括:基于数量M和数量L,确定存储操作业务被划分后得到的实际子流程的数量K,其中,数量M为基于存储操作业务的处理流程所确定的存储操作业务的子流程的数量,数量L为在指定带宽下所确定的存储服务系统在达到硬件性能上限时,网卡设备执行指定测试任务的子流程的最小数量;根据逻辑单元号设备的总数量S、数量K及网卡设备的CPU的核数N,确定用于执行存储操作业务的线程数量T;控制网卡设备中的与存储操作业务及所有逻辑单元号设备对应的线程的总数为T。如此,有利于在减少多线程切换的开销的同时,提高CPU资源的利用率。
Description
技术领域
本申请涉及大数据存储技术领域,具体而言,涉及一种存储处理方法、装置、网卡设备及存储介质。
背景技术
云数据中心可以提供大数据处理需要的算力和存储资源。巨量的存储数据流处理对服务器资源消耗大,需要将网络传输层服务、存储业务处理等进行卸载,以便服务器能给大数据处理的业务提供更多的算力资源,基于此类需求智能网卡应运而生。智能网卡可以提供更灵活智能的存储卸载,一般硬件上使用多核中央处理器(Central ProcessingUnit,CPU)来实现,而软件上会基于开源的存储性能开发工具包(Storage PerformanceDevelopment Kit,SPDK)应用框架来构建存储卸载系统。
目前,基于SPDK框架的智能网卡,不能充分利用自身的CPU资源,因此,智能网卡的CPU资源的利用率有待提高。例如,智能网卡的CPU单核性能不足,核数较多,且后端存储共享的块设备较少时,智能网卡并不能充分利用自身的所有CPU资源。
发明内容
本申请实施例的目的在于提供一种存储处理方法、装置、网卡设备及存储介质,有利于在大数据存储过程中,提高网卡设备的CPU资源的利用率。
为了实现上述目的,本申请的实施例通过如下方式实现:
第一方面,本申请实施例提供一种存储处理方法,应用于网卡设备,所述方法包括:基于数量M和数量L,确定存储操作业务被划分后得到的实际子流程的数量K,其中,所述数量M为基于存储操作业务的处理流程所确定的所述存储操作业务的子流程的数量,所述数量L为基于网卡设备的CPU的参数信息,在指定带宽下所确定的存储服务系统在达到硬件性能上限时,所述网卡设备执行指定测试任务的子流程的最小数量,所述指定带宽为所述网卡设备与所述存储服务系统之间的带宽;根据所述存储服务系统中的逻辑单元号设备的总数量S、所述数量K及所述网卡设备的CPU的核数N,确定用于执行所述存储操作业务的线程数量T;控制所述网卡设备中的与所述存储操作业务及所有所述逻辑单元号设备对应的线程的总数为T,其中,T个所述线程与所述CPU的核、所述存储操作业务的所述实际子流程关联,T个所述线程用于执行所述存储操作业务,M、L、K、S、T均为大于0的整数。
在上述的实施方式中,结合逻辑单元号设备的总数量S、实际子流程的数量K及网卡设备的CPU的核数N等多个因素,确定线程数量T,如此,有利于在减少多线程切换的开销的同时,提高CPU资源的利用率。
结合第一方面,在一些可选的实施方式中,基于数量M和数量L,确定存储操作业务被划分后得到的实际子流程的数量K,包括:将所述数量M和所述数量L中的最小数量,确定为所述存储操作业务被划分后得到的所述实际子流程的所述数量K。
在上述的实施方式中,将M、L中的最小数量作为实际子流程的数量,如此,有利于减少多线程切换的开销,提高存储操作的效率。
结合第一方面,在一些可选的实施方式中,根据所述存储服务系统中的逻辑单元号设备的总数量S、所述数量K及所述网卡设备自身的CPU的核数N,确定用于执行所述存储操作业务的线程数量T,包括:
结合第一方面,在一些可选的实施方式中,控制所述网卡设备中的与所述存储操作业务及所有所述逻辑单元号设备对应的线程的总数为T,包括:
当所述网卡设备中的与所述存储操作业务及所有所述逻辑单元号设备对应的线程的总数大于T时,删除所述网卡设备中用于执行所述存储操作业务的部分线程,以使经过删除后的线程总数为T;
当所述网卡设备中的与所述存储操作业务及所有所述逻辑单元号设备对应的线程的总数小于T时,创建新的线程以使新增后的线程总数为T,且将所述新的线程与所述CPU的核、所述存储操作业务的所述实际子流程数量K关联。
结合第一方面,在一些可选的实施方式中,删除所述网卡设备中用于执行所述存储操作业务的部分线程,包括:
将与所述逻辑单元号设备对应的所有线程与所述CPU的指定核进行绑定,并向所述部分线程发送收缩事件消息;
当所述部分线程接收到所述收缩事件消息时,从预先注册有所有线程的轮询器中删除所述部分线程的注册信息,以删除所述部分线程。
结合第一方面,在一些可选的实施方式中,创建新的线程以使新增后的线程总数为T,且将所述新的线程与所述CPU的核、所述存储操作业务的所述实际子流程数量K关联,包括:
在所述网卡设备的内存中创建新的线程,且在所述网卡设备的轮询器中注册与所述新的线程对应的注册信息;
将所述新的线程与所述存储服务系统中的指定逻辑单元号设备、所述CPU的指定核、K个所述实际子流程中的指定子流程绑定,其中,所述新的线程用于通过所述指定核执行所述指定子流程。
结合第一方面,在一些可选的实施方式中,所述方法还包括:
当存在新增逻辑单元号设备的操作或存在删除逻辑单元号设备的操作时,根据所述存储服务系统中当前的逻辑单元号设备的总数量S、所述数量K及所述网卡设备的CPU的核数N,更新用于执行所述存储操作业务的线程数量T;
控制所述网卡设备中的与所述存储操作业务及所有所述逻辑单元号设备对应的线程的总数为更新后的数量T。
在上述的实施方式中,当存在新增逻辑单元号设备的操作或存在删除逻辑单元号设备的操作时,需要再次重新确定线程的总数T,以便于确保执行存储操作业务的线程总数为T。
第二方面,本申请实施例还提供一种存储处理装置,应用于网卡设备,所述装置包括:
第一确定单元,基于数量M和数量L,确定存储操作业务被划分后得到的实际子流程的数量K,其中,所述数量M为基于存储操作业务的处理流程所确定的所述存储操作业务的子流程的数量,所述数量L为基于网卡设备的CPU的参数信息,在指定带宽下所确定的存储服务系统在达到硬件性能上限时,所述网卡设备执行指定测试任务的子流程的最小数量,所述指定带宽为所述网卡设备与所述存储服务系统之间的带宽;
第二确定单元,用于根据所述存储服务系统中的逻辑单元号设备的总数量S、所述数量K及所述网卡设备的CPU的核数N,确定用于执行所述存储操作业务的线程数量T;
控制单元,用于控制所述网卡设备中的与所述存储操作业务及所有所述逻辑单元号设备对应的线程的总数为T,其中,T个所述线程与所述CPU的核、所述存储操作业务的所述实际子流程关联,T个所述线程用于执行所述存储操作业务,M、L、K、S、T均为大于0的整数。
第三方面,本申请实施例还提供一种网卡设备,所述网卡设备包括相互耦合的处理器及存储器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述网卡设备执行上述的方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的服务器系统与存储服务系统的通信连接示意图。
图2为本申请实施例提供的网卡设备的结构示意图。
图3为本申请实施例提供的存储处理方法的流程示意图。
图4为本申请实施例提供的存储处理装置的框图。
图标:10-服务器系统;20-网卡设备;21-处理器;22-存储器;23-FPGA;30-服务器本体;40-存储服务系统;200-存储处理装置;210-第一确定单元;220-第二确定单元;230-控制单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。需要说明的是,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参照图1,在本申请实施例中,服务器系统10包括网卡设备20及服务器本体30。存储服务系统40可以为用于分布式存储系统,可以包括多个用于存储数据的服务器。网卡设备20与服务器本体30连接,且网卡设备20可以通过网络与存储服务系统40连接,以使网卡设备20可以执行相应的存储操作业务。例如,通过网卡设备20与服务器本体30相配合,可以将大量的数据存储在存储服务系统40中。
请参照图2,网卡设备20可以包括包括处理器21及存储器22。存储器22内存储计算机程序,当计算机程序被所述处理器21执行时,使得网卡设备20能够执行下述存储处理方法中的各步骤。
网卡设备20具有iSCSI(Internet Small Computer System Interface,因特网小型计算机系统接口)发起器的功能。iSCSI也可以称为IP-SAN(Internet Protocol StorageArea Network,因特网协议存储局域网络),是一种基于TCP/IP和SCSI-3协议下的存储手段。TCP/IP和SCSI-3协议为本领域技术人员熟知,这里不再赘述。
需要说明的是,网卡设备20还可以包括其他模块,例如,网卡设备20还可以包FPGA(Field-Programmable Gate Array,现场可编程门阵列)23。
在网卡设备20中,处理器可以是具有多个处理核的CPU。CPU可以用于进行相对灵活的存储卸载处理。FPGA23可以用于进行相对固定的卸载处理。网卡设备20提供的存储卸载服务,可使服务器本体30具有如同本地存储一样性能地为远程的存储服务系统40的进行存储服务。
服务器本体30可以是但不限于主机设备、裸金属服务器等设备。服务器本体30在服务器系统10中,可以配合网卡设备20对存储服务系统40的进行存储操作,服务器本体30的功能作用为本领域技术人员熟知,这里不再赘述。
在存储服务系统40中,通常具有多个磁盘、硬盘等存储模块,用于存储相应的数据。多个磁盘、硬盘类的存储模块所具有的存储空间,可以被整合划分成一个或多个LUN(Logic Unit Numbers,逻辑单元号)设备。网卡设备20在执行存储操作业务时,可以将LUN设备作为存储数据的对象,以向LUN设备中存储数据。
请参照图3,本申请还提供一种存储处理方法,可以应用于上述的网卡设备20中,由网卡设备20执行或实现方法中的各步骤,方法可以包括如下步骤:
步骤S110,基于数量M和数量L,确定存储操作业务被划分后得到的实际子流程的数量K,其中,所述数量M为基于存储操作业务的处理流程所确定的所述存储操作业务的子流程的数量,所述数量L为基于网卡设备20的CPU的参数信息,在指定带宽下所确定的存储服务系统40在达到硬件性能上限时,所述网卡设备20执行指定测试任务的子流程的最小数量,所述指定带宽为所述网卡设备20与所述存储服务系统40之间的带宽;
步骤S120,根据所述存储服务系统40中的LUN设备的总数量S、所述数量K及所述网卡设备20的CPU的核数N,确定用于执行所述存储操作业务的线程数量T;
步骤S130,控制所述网卡设备20中的与所述存储操作业务及所有所述LUN设备对应的线程的总数为T,其中,T个所述线程与所述CPU的核、所述存储操作业务的所述实际子流程关联,T个所述线程用于执行所述存储操作业务,M、L、K、S、T均为大于0的整数。
在上述的实施方式中,结合LUN设备的总数量S、实际子流程的数量K及网卡设备20的CPU的核数N等多个因素,确定线程数量T,如此,有利于在减少多线程切换的开销的同时,提高CPU资源的利用率。
下面将对方法的各步骤进行详细阐述,如下:
在步骤S110中,数量M可理解为对存储操作业务进程初步划分所得到的子流程的数量。数量L可理解为基于网卡设备20的CPU,能使存储服务系统40的LUN设备性能达到上限时所确定的可并行执行任务的线程数量。
一个存储操作业务可理解为一个存储应用IO(Input Output,输入输出)操作。比如,一个存储操作业务可以为读写操作的读写请求和响应的完整流程。一个存储操作业务可以根据实际情况,分为多个子流程;多个子流程可由1到K个线程来执行;K个线程可绑定于网卡设备20中CPU的各个处理核组成的存储核组上。在每个线程中,可以通过轮询方式来处理事件队列和数据队列,并执行IO操作的子流程逻辑。
其中,存储操作业务可以通过划分成并发的子流程,使子流程可由K个工作于CPU处理核上的并发线程共同完成,从而提升存储IO操作次数和吞吐量。
存储操作业务的初步划分,可以根据实际情况进行灵活确定。例如,管理员或网卡设备20自身可以根据SPDK框架异步、无锁、事件轮询机制的要求,以及IO操作中的自然的阶段,可以将基于iSCSI驱动的存储操作业务初步划分为多个子流程。例如,在存储操作业务的处理流程中,包括应用IO请求的预处理、iSCSI协议成帧处理、iSCSI请求报文的发送处理、iSCSI响应报文的接收处理及应用IO请求完成后的处理这五个处理流程,此时,可以将存储操作业务根据这五类处理流程,划分为5个子流程,此时M=5。
在本实施例中,CPU的参数信息包括CPU的处理核的数量(即为核数N),CPU的占用量等。指定带宽可以根据网卡设备20与存储服务系统40之间的实际带宽进行灵活确定。指定测试任务可以根据实际情况进行确定。例如,指定测试任务可以为4KB随机读、1MB顺序读、1MB顺序写等任务。4KB与1MB指单次IO操作的块数据大小。示例性地,4KB随机读指随机读的每个数据块大小都是4KB。
通常而言,4KB随机读操作对网卡设备20的性能要求高。如果4KB随机读的性能不是瓶颈,则其它的存储性能衡量指标如4KB随机写,1MB顺序读,1MB顺序写都不会成为瓶颈。在本实施例中,指定测试任务可以为4KB随机读操作,然后,通过逐步增加并行执行4KB随机读操作的子流程的数量(初始的子流程可以为1或2等较小的数量),在达到存储系统40的LUN设备的硬件性能上限时,将并行执行测试任务期间的子流程的最小数量确定为数量L。
需要说明的是,利用指定测试任务,测试LUN设备的存储性能上限的方式为本领域技术人员熟知的方式,这里不再赘述。
示例性地,假设网卡设备20的CPU的核数N=8,网卡设备20通过10GB/s的网络与IPSAN的存储服务系统40建立连接,若最少需要2个子流程的并发处理执行4K随机读,才能使得1个LUN设备达到其存储性能上限,此时,便确定数量L为2。
在本实施例中,步骤S110可以包括:将所述数量M和所述数量L中的最小数量,确定为所述存储操作业务被划分后得到的所述实际子流程的所述数量K。
数量K即为在实际划分存储操作业务后得到的子流程的数量,以确保以确保存储操作业务被划分后,得到K个子流程。
在本实施例中,网卡设备20可以获取存储服务系统40当前已有的LUN设备的总数量S。
在步骤S120中,网络设备可以基于LUN设备的总数量S、子流程数量K及CPU的核数N,来确定出用于执行存储操作业务的线程数量T,避免执行子流程的线程数量过多而增加线程切换开销,或避免线程数量过少导致CPU的资源不能更充分地得到利用。
作为一种可选的实施方式,步骤S120可以包括:
在步骤S130中,网卡设备20可以动态地对执行存储操作业务的线程数量进行控制,以确保执行存储操作业务的线程总数为T,避免线程过多或过少。
在本实施例中,步骤S130可以包括:
当所述网卡设备20中的与所述存储操作业务及所有所述LUN设备对应的线程的总数大于T时,删除所述网卡设备20中用于执行所述存储操作业务的部分线程,以使经过删除后的线程总数为T;
当所述网卡设备20中的与所述存储操作业务及所有所述LUN设备对应的线程的总数小于T时,创建新的线程以使新增后的线程总数为T,且将所述新的线程与所述CPU的核、所述存储操作业务的所述实际子流程数量K关联。
可理解地,当网卡设备20已有用于执行存储操作业务的线程数量,超过所确定的线程数量T,此时,便进行线程收缩操作。当网卡设备20已有用于执行存储操作业务的线程数量,少于所确定的线程数量T,此时,便进行线程扩增操作。
其中,步骤“删除所述网卡设备中用于执行所述存储操作业务的部分线程”,可以包括:
将与所述LUN设备对应的所有线程与所述CPU的指定核进行绑定,并向所述部分线程发送收缩事件消息;
当所述部分线程接收到所述收缩事件消息时,从预先注册有所有线程的轮询器中删除所述部分线程的注册信息,以删除所述部分线程。
示例性地,在进行线程的收缩处理之前,不同的并行子线程与不同的处理核绑定,以实现并行处理。多个并行的子线程可以与一个LUN设备绑定,用于并发地向该LUN设备执行存储操作。在并行执行任务的多个子线程中,通常包括一个主子线程,除去该主子线程的其他子线程为普通子线程。
在进行线程的收缩处理时,首先,针对每个LUN设备,将并行执行任务的多个子线程都绑定于CPU中的同一个处理核,并对该LUN设备设置子线程收缩标志,以向该LUN设备对应的各个子线程发送收缩事件消息。
当子线程接收到收缩事件消息时,可以判断该子线程是否是为主子线程,如果不是主子线程,则网卡设备20的轮询器中注销该子线程的预先已注册的注册信息,再设置该子线程退出标志,然后在该子线程的任务结束时退出,从而实现子线程的删除。
如果该子线程是主子线程,则等待其它各个普通子线程退出,保留该主子线程,并更新轮询器入口函数为完整流程的入口函数,完成轮询器的更新后,再将LUN设备的线程标志更新为单子线程标志。通过该方式,可以保证收缩处理的执行序列,另外,还可以用LUN设备的线程标志实现线程间信息同步。
在轮询器中,预先注册有子流程和线程ID的对应关系,该对应关系即为线程的注册信息。轮询器的作用可以为:当网卡设备20接收到用于执行子流程的请求时,轮询器在绑定的CPU核组上运行相应的线程,在线程中执行注册的子流程处理。
在本实施例中,步骤“创建新的线程以使新增后的线程总数为T,且将所述新的线程与所述CPU的核、所述存储操作业务的所述实际子流程数量K关联”,可以包括:
在所述网卡设备20的内存中创建新的线程,且在所述网卡设备20的轮询器中注册与所述新的线程对应的注册信息;
将所述新的线程与所述存储服务系统40中的指定LUN设备绑定、所述CPU的指定核、K个所述实际子流程中的指定子流程,其中,所述新的线程用于通过所述指定核执行所述指定子流程。
示例性地,针对LUN设备,创建与该LUN设备关联的线程,并在轮询器中对该线程进行注册。注册信息可以包括该子线程的ID和该子线程欲执行的子流程的ID。线程的ID和子流程的ID可以根据实际情况进行灵活绑定。然后,根据该LUN设备的线程数量,设置LUN设备的线程标志(比如,单子线程标志,多子线程标志等),并将新建的线程与存储CPU的处理核绑定,以便于由相绑定的处理核执行该线程的相应子流程任务。
作为一种可选的实施方式,方法还可以包括:
当存在新增LUN设备的操作或存在删除LUN设备的操作时,根据所述存储服务系统40中当前的LUN设备的总数量S、所述数量K及所述网卡设备20的CPU的核数N,更新用于执行所述存储操作业务的线程数量T;
控制所述网卡设备20中的与所述存储操作业务及所有所述LUN设备对应的线程的总数为更新后的数量T。
可理解地,存储服务系统40中,LUN设备作为共享存储空间。当在存储服务系统40中,新增有硬盘或磁盘等存储模块,且需要将新增的存储模块作为共享存储空间时,便需要新增LUN设备,此时,便认为存在新增LUN设备的操作。另外,用户还可以根据实际情况,删除LUN设备。例如,在存储服务系统40中,取消部分的共享存储空间,或拔出部分的存储模块。
基于上述设计,在LUN设备数量增多或减少时,网卡设备20可以根据LUN设备的当前数量,灵活调整存储操作业务被划分后的子流程数量,以及灵活调整执行子流程的线程数量,从而有利于对网卡设备20的CPU资源进行充分利用,提升整机存储性能。
请参照图4,本申请实施例还提供一种存储处理装置200,可以应用于上述的网卡设备20中,用于执行方法中的各步骤。存储处理装置200包括至少一个可以软件或固件(Firmware)的形式存储于存储器中或固化在网卡设备20操作系统(Operating System,OS)中的软件功能模块。处理器用于执行存储器中存储的可执行模块,例如存储处理装置200所包括的软件功能模块及计算机程序等。
存储处理装置200可以包括第一确定单元210、第二确定单元220及控制单元230,可以执行的操作步骤可以如下:
第一确定单元210,基于数量M和数量L,确定存储操作业务被划分后得到的实际子流程的数量K,其中,所述数量M为基于存储操作业务的处理流程所确定的所述存储操作业务的子流程的数量,所述数量L为基于网卡设备20的CPU的参数信息,在指定带宽下所确定的存储服务系统40在达到硬件性能上限时,所述网卡设备20执行指定测试任务的子流程的最小数量,所述指定带宽为所述网卡设备20与所述存储服务系统40之间的带宽;
第二确定单元220,用于根据所述存储服务系统40中的LUN设备的总数量S、所述数量K及所述网卡设备20的CPU的核数N,确定用于执行所述存储操作业务的线程数量T;
控制单元230,用于控制所述网卡设备20中的与所述存储操作业务及所有所述LUN设备对应的线程的总数为T,其中,T个所述线程与所述CPU的核、所述存储操作业务的所述实际子流程关联,T个所述线程用于执行所述存储操作业务,M、L、K、S、T均为大于0的整数。
可选地,第一确定单元210还可以用于:将所述数量M和所述数量L中的最小数量,确定为所述存储操作业务被划分后得到的所述实际子流程的所述数量K。
可选地,控制单元230还可以用于:当所述网卡设备20中的与所述存储操作业务及所有所述LUN设备对应的线程的总数大于T时,删除所述网卡设备20中用于执行所述存储操作业务的部分线程,以使经过删除后的线程总数为T;当所述网卡设备20中的与所述存储操作业务及所有所述LUN设备对应的线程的总数小于T时,创建新的线程以使新增后的线程总数为T,且将所述新的线程与所述CPU的核、所述存储操作业务的所述实际子流程数量K关联。
可选地,控制单元230还可以用于:将与所述LUN设备对应的所有线程与所述CPU的指定核进行绑定,并向所述部分线程发送收缩事件消息;当所述部分线程接收到所述收缩事件消息时,从预先注册有所有线程的轮询器中删除所述部分线程的注册信息,以删除所述部分线程。
可选地,控制单元230还可以用于:在所述网卡设备20的内存中创建新的线程,且在所述网卡设备20的轮询器中注册与所述新的线程对应的注册信息;将所述新的线程与所述存储服务系统40中的指定LUN设备、所述CPU的指定核、K个所述实际子流程中的指定子流程绑定,其中,所述新的线程用于通过所述指定核执行所述指定子流程。
可选地,当存在新增LUN设备的操作或存在删除LUN设备的操作时,第二确定单元220还可以用于根据所述存储服务系统40中当前的LUN设备的总数量S、所述数量K及所述网卡设备20的CPU的核数N,更新用于执行所述存储操作业务的线程数量T;控制单元230还可以用于控制所述网卡设备20中的与所述存储操作业务及所有所述LUN设备对应的线程的总数为更新后的数量T。
在本实施例中,存储器22可以是,但不限于,随机存取存储器,只读存储器,可编程只读存储器,可擦除可编程只读存储器,电可擦除可编程只读存储器等。在本实施例中,存储器可以用于存储各类子流程数量、LUN设备数量、网卡设备20中CPU的核数等参数。当然,存储器还可以用于存储程序,处理器在接收到执行指令后,执行该程序。
可以理解的是,图2所示的结构仅为网卡设备20的一种结构示意图,网卡设备20还可以包括比图2所示更多的组件。图2中所示的各组件可以采用硬件、软件或其组合实现。
需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的网卡设备20的具体工作过程,可以参考前述方法中的各步骤对应过程,在此不再过多赘述。
本申请实施例还提供一种计算机可读存储介质。计算机可读存储介质中存储有计算机程序,当计算机程序在计算机上运行时,使得计算机执行如上述实施例中所述的存储处理方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
综上所述,在本方案中,结合LUN设备的总数量S、实际子流程的数量K及网卡设备的CPU的核数N等多个因素,确定线程数量T,如此,有利于在减少多线程切换的开销的同时,提高CPU资源的利用率。
在本申请所提供的实施例中,应该理解到,所揭露的装置、系统和方法,也可以通过其它的方式实现。以上所描述的装置、系统和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种存储处理方法,其特征在于,应用于网卡设备,所述方法包括:
基于数量M和数量L,确定存储操作业务被划分后得到的实际子流程的数量K,其中,所述数量M为基于存储操作业务的处理流程所确定的所述存储操作业务的子流程的数量,所述数量L为基于网卡设备的CPU的参数信息,在指定带宽下所确定的存储服务系统在达到硬件性能上限时,所述网卡设备执行指定测试任务的子流程的最小数量,所述指定带宽为所述网卡设备与所述存储服务系统之间的带宽;
根据所述存储服务系统中的逻辑单元号设备的总数量S、所述数量K及所述网卡设备的CPU的核数N,确定用于执行所述存储操作业务的线程数量T;
控制所述网卡设备中的与所述存储操作业务及所有所述逻辑单元号设备对应的线程的总数为T,其中,T个所述线程与所述CPU的核、所述存储操作业务的所述实际子流程关联,T个所述线程用于执行所述存储操作业务,M、L、K、S、T均为大于0的整数。
2.根据权利要求1所述的方法,其特征在于,所述基于数量M和数量L,确定存储操作业务被划分后得到的实际子流程的数量K,包括:
将所述数量M和所述数量L中的最小数量,确定为所述存储操作业务被划分后得到的所述实际子流程的所述数量K。
4.根据权利要求1所述的方法,其特征在于,所述控制所述网卡设备中的与所述存储操作业务及所有所述逻辑单元号设备对应的线程的总数为T,包括:
当所述网卡设备中的与所述存储操作业务及所有所述逻辑单元号设备对应的线程的总数大于T时,删除所述网卡设备中用于执行所述存储操作业务的部分线程,以使经过删除后的线程总数为T;
当所述网卡设备中的与所述存储操作业务及所有所述逻辑单元号设备对应的线程的总数小于T时,创建新的线程以使新增后的线程总数为T,且将所述新的线程与所述CPU的核、所述存储操作业务的所述实际子流程数量K关联。
5.根据权利要求4所述的方法,其特征在于,所述删除所述网卡设备中用于执行所述存储操作业务的部分线程,包括:
将与所述逻辑单元号设备对应的所有线程与所述CPU的指定核进行绑定,并向所述部分线程发送收缩事件消息;
当所述部分线程接收到所述收缩事件消息时,从预先注册有所有线程的轮询器中删除所述部分线程的注册信息,以删除所述部分线程。
6.根据权利要求4所述的方法,其特征在于,所述创建新的线程以使新增后的线程总数为T,且将所述新的线程与所述CPU的核、所述存储操作业务的所述实际子流程数量K关联,包括:
在所述网卡设备的内存中创建新的线程,且在所述网卡设备的轮询器中注册与所述新的线程对应的注册信息;
将所述新的线程与所述存储服务系统中的指定逻辑单元号设备、所述CPU的指定核、K个所述实际子流程中的指定子流程绑定,其中,所述新的线程用于通过所述指定核执行所述指定子流程。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当存在新增逻辑单元号设备的操作或存在删除逻辑单元号设备的操作时,根据所述存储服务系统中当前的逻辑单元号设备的总数量S、所述数量K及所述网卡设备的CPU的核数N,更新用于执行所述存储操作业务的线程数量T;
控制所述网卡设备中的与所述存储操作业务及所有所述逻辑单元号设备对应的线程的总数为更新后的数量T。
8.一种存储处理装置,其特征在于,应用于网卡设备,所述装置包括:
第一确定单元,基于数量M和数量L,确定存储操作业务被划分后得到的实际子流程的数量K,其中,所述数量M为基于存储操作业务的处理流程所确定的所述存储操作业务的子流程的数量,所述数量L为基于网卡设备的CPU的参数信息,在指定带宽下所确定的存储服务系统在达到硬件性能上限时,所述网卡设备执行指定测试任务的子流程的最小数量,所述指定带宽为所述网卡设备与所述存储服务系统之间的带宽;
第二确定单元,用于根据所述存储服务系统中的逻辑单元号逻辑单元号设备的总数量S、所述数量K及所述网卡设备的CPU的核数N,确定用于执行所述存储操作业务的线程数量T;
控制单元,用于控制所述网卡设备中的与所述存储操作业务及所有所述逻辑单元号设备对应的线程的总数为T,其中,T个所述线程与所述CPU的核、所述存储操作业务的所述实际子流程关联,T个所述线程用于执行所述存储操作业务,M、L、K、S、T均为大于0的整数。
9.一种网卡设备,其特征在于,所述网卡设备包括相互耦合的处理器及存储器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述网卡设备执行如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111131549.0A CN113821174B (zh) | 2021-09-26 | 2021-09-26 | 存储处理方法、装置、网卡设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111131549.0A CN113821174B (zh) | 2021-09-26 | 2021-09-26 | 存储处理方法、装置、网卡设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113821174A true CN113821174A (zh) | 2021-12-21 |
CN113821174B CN113821174B (zh) | 2024-03-22 |
Family
ID=78915531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111131549.0A Active CN113821174B (zh) | 2021-09-26 | 2021-09-26 | 存储处理方法、装置、网卡设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113821174B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116700999A (zh) * | 2023-08-07 | 2023-09-05 | 上海观安信息技术股份有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205146A1 (en) * | 2003-02-06 | 2004-10-14 | Fujitsu Limited | Information processing apparatus, information processing system, gateway card, gateway device, and computer product |
US20050188177A1 (en) * | 2002-05-31 | 2005-08-25 | The University Of Delaware | Method and apparatus for real-time multithreading |
US20110093638A1 (en) * | 2009-10-19 | 2011-04-21 | International Business Machines Corporation | Hardware multi-threading co-scheduling for parallel processing systems |
CN202145312U (zh) * | 2011-07-29 | 2012-02-15 | 迈普通信技术股份有限公司 | 通信设备的现场配置接口装置及通信设备 |
US20140208330A1 (en) * | 2013-01-22 | 2014-07-24 | Oracle International Corporation | Method and apparatus for efficient scheduling of multithreaded programs |
US20150254088A1 (en) * | 2014-03-08 | 2015-09-10 | Datawise Systems, Inc. | Methods and systems for converged networking and storage |
WO2018018611A1 (zh) * | 2016-07-29 | 2018-02-01 | 华为技术有限公司 | 一种任务处理方法以及网卡 |
KR20180099420A (ko) * | 2017-02-27 | 2018-09-05 | 한국과학기술원 | Cpu와 gpu간에 동기화를 가속화하여 수행하는 데이터 프로세서 |
US20200409603A1 (en) * | 2019-06-26 | 2020-12-31 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Data accessing method and apparatus, and medium |
CN112231102A (zh) * | 2020-10-16 | 2021-01-15 | 苏州浪潮智能科技有限公司 | 一种提升存储系统性能的方法、装置、设备、产品 |
WO2021022964A1 (zh) * | 2019-08-02 | 2021-02-11 | 中兴通讯股份有限公司 | 一种基于多核系统的任务处理方法、装置及计算机可读存储介质 |
CN112735115A (zh) * | 2020-12-28 | 2021-04-30 | 新天科技股份有限公司 | 多线程业务处理方法、装置、服务器及存储介质 |
CN113094172A (zh) * | 2021-04-01 | 2021-07-09 | 北京天融信网络安全技术有限公司 | 应用于分布式存储系统的服务器管理方法和装置 |
-
2021
- 2021-09-26 CN CN202111131549.0A patent/CN113821174B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050188177A1 (en) * | 2002-05-31 | 2005-08-25 | The University Of Delaware | Method and apparatus for real-time multithreading |
US20040205146A1 (en) * | 2003-02-06 | 2004-10-14 | Fujitsu Limited | Information processing apparatus, information processing system, gateway card, gateway device, and computer product |
US20110093638A1 (en) * | 2009-10-19 | 2011-04-21 | International Business Machines Corporation | Hardware multi-threading co-scheduling for parallel processing systems |
CN202145312U (zh) * | 2011-07-29 | 2012-02-15 | 迈普通信技术股份有限公司 | 通信设备的现场配置接口装置及通信设备 |
US20140208330A1 (en) * | 2013-01-22 | 2014-07-24 | Oracle International Corporation | Method and apparatus for efficient scheduling of multithreaded programs |
US20150254088A1 (en) * | 2014-03-08 | 2015-09-10 | Datawise Systems, Inc. | Methods and systems for converged networking and storage |
WO2018018611A1 (zh) * | 2016-07-29 | 2018-02-01 | 华为技术有限公司 | 一种任务处理方法以及网卡 |
KR20180099420A (ko) * | 2017-02-27 | 2018-09-05 | 한국과학기술원 | Cpu와 gpu간에 동기화를 가속화하여 수행하는 데이터 프로세서 |
US20200409603A1 (en) * | 2019-06-26 | 2020-12-31 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Data accessing method and apparatus, and medium |
WO2021022964A1 (zh) * | 2019-08-02 | 2021-02-11 | 中兴通讯股份有限公司 | 一种基于多核系统的任务处理方法、装置及计算机可读存储介质 |
CN112231102A (zh) * | 2020-10-16 | 2021-01-15 | 苏州浪潮智能科技有限公司 | 一种提升存储系统性能的方法、装置、设备、产品 |
CN112735115A (zh) * | 2020-12-28 | 2021-04-30 | 新天科技股份有限公司 | 多线程业务处理方法、装置、服务器及存储介质 |
CN113094172A (zh) * | 2021-04-01 | 2021-07-09 | 北京天融信网络安全技术有限公司 | 应用于分布式存储系统的服务器管理方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116700999A (zh) * | 2023-08-07 | 2023-09-05 | 上海观安信息技术股份有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN116700999B (zh) * | 2023-08-07 | 2023-10-03 | 上海观安信息技术股份有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113821174B (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11144323B2 (en) | Independent mapping of threads | |
US9569245B2 (en) | System and method for controlling virtual-machine migrations based on processor usage rates and traffic amounts | |
US9558005B2 (en) | Reliable and deterministic live migration of virtual machines | |
US9423983B2 (en) | Intelligent storage controller | |
US20170168907A1 (en) | Service Level Agreement-Based Resource Allocation for Failure Recovery | |
US11311722B2 (en) | Cross-platform workload processing | |
CN113641457A (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
US9514072B1 (en) | Management of allocation for alias devices | |
CN113886089B (zh) | 一种任务处理方法、装置、系统、设备及介质 | |
US10698785B2 (en) | Task management based on an access workload | |
CN111338785A (zh) | 资源调度方法及装置、电子设备、存储介质 | |
CN113821174B (zh) | 存储处理方法、装置、网卡设备及存储介质 | |
US10673983B2 (en) | Processing a unit of work | |
US10289329B2 (en) | Burst buffer dynamic logical volume sizing in high performance computing environment | |
CN116483274A (zh) | 一种分布式块存储卷在线迁移方法、装置、设备及介质 | |
CN116303132A (zh) | 一种数据缓存方法、装置、设备以及存储介质 | |
US11571618B1 (en) | Multi-region game server fleets | |
US20150150012A1 (en) | Cross-platform workload processing | |
US11571619B1 (en) | Cross-region management of game server fleets | |
US11983570B2 (en) | Conditionally deploying a reusable group of containers for a job based on available system resources | |
US11797287B1 (en) | Automatically terminating deployment of containerized applications | |
US8850447B2 (en) | Managing resources in a multiprocessing computer system | |
US20230273824A1 (en) | Establishing coherent message analysis across distributed locations | |
CN118113485A (zh) | 任务的执行方法及装置、存储介质及电子设备 | |
CN113050895A (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 |