CN113220368B - 一种存储客户端资源隔离方法、系统、终端及存储介质 - Google Patents

一种存储客户端资源隔离方法、系统、终端及存储介质 Download PDF

Info

Publication number
CN113220368B
CN113220368B CN202110582668.1A CN202110582668A CN113220368B CN 113220368 B CN113220368 B CN 113220368B CN 202110582668 A CN202110582668 A CN 202110582668A CN 113220368 B CN113220368 B CN 113220368B
Authority
CN
China
Prior art keywords
control group
thread
resource
storage
newly
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
CN202110582668.1A
Other languages
English (en)
Other versions
CN113220368A (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.)
Inspur Jinan data Technology Co ltd
Original Assignee
Inspur Jinan data 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 Inspur Jinan data Technology Co ltd filed Critical Inspur Jinan data Technology Co ltd
Priority to CN202110582668.1A priority Critical patent/CN113220368B/zh
Publication of CN113220368A publication Critical patent/CN113220368A/zh
Application granted granted Critical
Publication of CN113220368B publication Critical patent/CN113220368B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种存储客户端资源隔离方法、系统、终端及存储介质,包括:设置多个控制组;配置控制组的资源限制参数;为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表。本发明通过RBD命令行,解析配置文件的绑核策略,创建控制组群下的多个控制组;Librbd创建线程时,将线程的PID信息加入cpuset和memory控制组的tasks中,完成资源隔离。本发明运行在Linux平台,利用控制组群为Librbd分配独立的内存和cpu资源,实现和其他软件实体资源隔离。

Description

一种存储客户端资源隔离方法、系统、终端及存储介质
技术领域
本发明涉及服务器技术领域,具体涉及一种存储客户端资源隔离方法、系统、终端及存储介质。
背景技术
Librbd以动态链接库的方式,供宿主进程调用,Librbd内部会创建一系列线程,完成IO的读、写、下刷等操作,实现对存储集群的访问。
Openstack Nova计算节点一般是包含多个CPU核心的NUMA架构,其上运行的软件实体包含3部分:Host OS,VM进程,Librbd客户端。为了实现3者互不干扰,也为了减少各自的多线程任务在多个CPU之间的迁移,需要为它们分配独立的资源,即进行资源隔离。
Host OS和VM是独立的进程,可以在进程内部以进程为单位控制资源的访问,但是Librbd没有独立进程,Librbd可以使用的所有资源来自宿主进程,而Librbd又是动态链接库,需要时才会被调用,宿主进程无法单独为Librbd分配独立的资源。
发明内容
针对现有技术的上述不足,本发明提供一种存储客户端资源隔离方法、系统、终端及存储介质,以解决上述技术问题。
第一方面,本发明提供一种存储客户端资源隔离方法,包括:
设置多个控制组;
配置控制组的资源限制参数;
为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表。
进一步的,所述设置多个控制组,包括:
利用块设备工具创建控制组群下的多个控制组。
进一步的,所述配置控制组的资源限制参数,包括:
通过数据交换格式的的文件描述资源限制参数,所述资源限制参数包括线程能够使用的内存总大小和线程能够使用的CPU资源。
进一步的,所述为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表,包括:
在通过分布式块存储链接库访问存储前,连接存储并创建存储的上下文信息;
将控制组的路径信息保存到所述上下文中;
在新建线程时,将线程的控制符写入目标控制组的任务列表。
第二方面,本发明提供一种存储客户端资源隔离系统,包括:
分组设置单元,配置用于设置多个控制组;
资源限制单元,配置用于配置控制组的资源限制参数;
线程分配单元,配置用于为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表。
进一步的,所述分组设置单元包括:
控制创建模块,配置用于利用块设备工具创建控制组群下的多个控制组。
进一步的,所述资源限制单元包括:
资源限制模块,配置用于通过数据交换格式的的文件描述资源限制参数,所述资源限制参数包括线程能够使用的内存总大小和线程能够使用的CPU资源。
进一步的,所述线程分配单元包括:
信息创建模块,配置用于在通过分布式块存储链接库访问存储前,连接存储并创建存储的上下文信息;
路径保存模块,配置用于将控制组的路径信息保存到所述上下文中;
任务写入模块,配置用于在新建线程时,将线程的控制符写入目标控制组的任务列表。
第三方面,提供一种终端,包括:
处理器、存储器,其中,
该存储器用于存储计算机程序,
该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明的有益效果在于,
本发明提供的存储客户端资源隔离方法、系统、终端及存储介质,通过RBD命令行,解析配置文件的绑核策略,创建控制组群下的多个控制组;Librbd创建线程时,将线程的PID信息加入cpuset和memory控制组的tasks中,完成资源隔离。本发明运行在Linux平台,利用控制组群为Librbd分配独立的内存和cpu资源,实现和其他软件实体资源隔离。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的系统的示意性框图。
图3为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
下面对本发明中出现的关键术语进行解释。
CPU Central Processing Unit中央处理器
CGroup Control Groups控制组群
Host OS Host Operation Systen主机操作系统
PID Process Identification进程/线程控制符
JSON JavaScript Object Notation一种轻量级的数据交换格式
NUMA Non-Uniform Memory Access非一致存储器访问
VM Virtual Machine虚拟机
I/O Input/output输入输出
RBD Rados Block Device基于Rados的块设备
Librbd library of rados block device分布式块存储链接库
图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种存储客户端资源隔离系统。
如图1所示,该方法包括:
步骤110,设置多个控制组;
步骤120,配置控制组的资源限制参数;
步骤130,为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表。
具体的,所述存储客户端资源隔离方法包括:
S1、资源限制参数配置和解析
通过JSON格式文件描述资源限制信息:mem对象描述Librbd线程能够使用的内存总大小,size字段的单位为MBtye;cores对象描述Librbd线程能够使用的cpu资源,以列表形式表示。
Figure BDA0003086598060000051
Figure BDA0003086598060000061
S2、创建CGroup控制组
通过RBD工具(Librbd客户端安装时的附带工具)创建cpuset和memory控制组,并配置上一步解析的参数,详细步骤如下:
检查系统是否挂载CGroup
在cpuset和memory控制组下创建Librbd.slice控制组
Librbd.slice继承父控制组的配置
根据配置信息,刷新Librbd.slice的相关配置:
cpuset:刷新cpuset.cpus和cpuset.memory_migrate
memory:刷新memory.limit_in_bytes
将tasks文件属性设置为0666。
S3、线程资源控制
通过Librbd访问存储前,需要连接存储并创建存储的上下文信息,将CGroup控制组的路径信息保存到上下文中;Librbd创建线程时,将线程的PID写入控制组的tasks内。
如图2所示,该系统200包括:
分组设置单元210,配置用于设置多个控制组;
资源限制单元220,配置用于配置控制组的资源限制参数;
线程分配单元230,配置用于为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表。
可选地,作为本发明一个实施例,所述分组设置单元包括:
控制创建模块,配置用于利用块设备工具创建控制组群下的多个控制组。
可选地,作为本发明一个实施例,所述资源限制单元包括:
资源限制模块,配置用于通过数据交换格式的的文件描述资源限制参数,所述资源限制参数包括线程能够使用的内存总大小和线程能够使用的CPU资源。
可选地,作为本发明一个实施例,所述线程分配单元包括:
信息创建模块,配置用于在通过分布式块存储链接库访问存储前,连接存储并创建存储的上下文信息;
路径保存模块,配置用于将控制组的路径信息保存到所述上下文中;
任务写入模块,配置用于在新建线程时,将线程的控制符写入目标控制组的任务列表。
图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的存储客户端资源隔离方法。
其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器310可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
因此,本发明通过RBD命令行,解析配置文件的绑核策略,创建控制组群下的多个控制组;Librbd创建线程时,将线程的PID信息加入cpuset和memory控制组的tasks中,完成资源隔离。本发明运行在Linux平台,利用控制组群为Librbd分配独立的内存和cpu资源,实现和其他软件实体资源隔离,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (6)

1.一种存储客户端资源隔离方法,其特征在于,包括:
设置多个控制组;
配置控制组的资源限制参数;
为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表;
所述配置控制组的资源限制参数,包括:
通过数据交换格式的的文件描述资源限制参数,所述资源限制参数包括线程能够使用的内存总大小和线程能够使用的CPU资源;
所述为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表,包括:
在通过分布式块存储链接库访问存储前,连接存储并创建存储的上下文信将控制组的路径信息保存到所述上下文中;
在新建线程时,将线程的控制符写入目标控制组的任务列表。
2.根据权利要求1所述的方法,其特征在于,所述设置多个控制组,包括:
利用块设备工具创建控制组群下的多个控制组。
3.一种存储客户端资源隔离系统,其特征在于,包括:
分组设置单元,配置用于设置多个控制组;
资源限制单元,配置用于配置控制组的资源限制参数;
线程分配单元,配置用于为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表;
所述资源限制单元包括:
资源限制模块,配置用于通过数据交换格式的的文件描述资源限制参数,所述资源限制参数包括线程能够使用的内存总大小和线程能够使用的CPU资源;
所述线程分配单元包括:
信息创建模块,配置用于在通过分布式块存储链接库访问存储前,连接存储并创建存储的上下文信息;
路径保存模块,配置用于将控制组的路径信息保存到所述上下文中;
任务写入模块,配置用于在新建线程时,将线程的控制符写入目标控制组的任务列表。
4.根据权利要求3所述的系统,其特征在于,所述分组设置单元包括:
控制创建模块,配置用于利用块设备工具创建控制组群下的多个控制组。
5.一种终端,其特征在于,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-2任一项所述的方法。
6.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-2中任一项所述的方法。
CN202110582668.1A 2021-05-27 2021-05-27 一种存储客户端资源隔离方法、系统、终端及存储介质 Active CN113220368B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110582668.1A CN113220368B (zh) 2021-05-27 2021-05-27 一种存储客户端资源隔离方法、系统、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110582668.1A CN113220368B (zh) 2021-05-27 2021-05-27 一种存储客户端资源隔离方法、系统、终端及存储介质

Publications (2)

Publication Number Publication Date
CN113220368A CN113220368A (zh) 2021-08-06
CN113220368B true CN113220368B (zh) 2023-02-28

Family

ID=77099705

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110582668.1A Active CN113220368B (zh) 2021-05-27 2021-05-27 一种存储客户端资源隔离方法、系统、终端及存储介质

Country Status (1)

Country Link
CN (1) CN113220368B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113821306B (zh) * 2021-09-24 2023-09-05 亿咖通(湖北)技术有限公司 资源隔离方法、装置和终端设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992398A (zh) * 2017-12-29 2019-07-09 广东欧珀移动通信有限公司 资源管理方法、装置、移动终端及计算机可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6738974B1 (en) * 1998-09-10 2004-05-18 International Business Machines Corporation Apparatus and method for system resource object deallocation in a multi-threaded environment
US7380235B1 (en) * 2003-06-27 2008-05-27 Microsoft Corporation Application program interface call replay tool
US8103769B1 (en) * 2009-09-03 2012-01-24 Amazon Technologies, Inc. Dynamic isolation of shared resources
KR102203204B1 (ko) * 2019-05-08 2021-01-13 고려대학교 산학협력단 가상화 환경에서의 성능 제어 방법 및 이를 위한 정보 처리 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992398A (zh) * 2017-12-29 2019-07-09 广东欧珀移动通信有限公司 资源管理方法、装置、移动终端及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Control Group(CGroup)资源限制";不专业的李花花;《CSDN》;20190927;正文全文 *

Also Published As

Publication number Publication date
CN113220368A (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
CN108132838B (zh) 一种图数据处理的方法、装置及系统
US10977086B2 (en) Workload placement and balancing within a containerized infrastructure
CN108462760B (zh) 电子装置、集群访问域名自动生成方法及存储介质
CN112000463B (zh) 一种基于cuda的gpu资源分配方法、系统、终端及存储介质
US9886299B2 (en) System and method for dynamically allocating resources of virtual machines based on service-level agreements (SLA) and privilege levels of users
CN111723079A (zh) 数据迁移方法、装置、计算机设备及存储介质
CN109445690B (zh) 一种raid卡性能优化方法、装置、终端及存储介质
CN111414391A (zh) 一种访问多数据源的方法及系统
CN111669284A (zh) OpenStack自动化部署方法、电子设备、存储介质及系统
CN113220368B (zh) 一种存储客户端资源隔离方法、系统、终端及存储介质
CN113535087B (zh) 数据迁移过程中的数据处理方法、服务器及存储系统
CN111258950B (zh) 原子访存方法、存储介质、计算机设备、装置和系统
US10983832B2 (en) Managing heterogeneous memory resource within a computing system
CN111124772A (zh) 一种云平台存储性能测试方法、系统、终端及存储介质
US20210389994A1 (en) Automated performance tuning using workload profiling in a distributed computing environment
CN110908644B (zh) 状态节点的配置方法、装置、计算机设备和存储介质
CN112003730A (zh) 一种集群快速部署的方法、系统、终端及存储介质
CN111124890A (zh) 一种分布式数据库性能测试方法、系统、终端及存储介质
CN110908783A (zh) 一种云数据中心虚拟机的管控方法、系统及设备
CN113392052B (zh) 一种基于四路服务器的bios系统、方法及计算机可读存储介质
EP3343370A1 (en) Method of processing opencl kernel and computing device therefor
CN109582411A (zh) 图形用户界面生成方法、装置、计算机设备及存储介质
US20230111884A1 (en) Virtualization method, device, board card and computer-readable storage medium
CN115150268A (zh) Kubernetes集群的网络配置方法、装置、及电子设备
US11574087B2 (en) Multi-processor simulation on a multi-core machine

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