CN110580127A - 一种基于多租户云存储的资源管理方法和资源管理系统 - Google Patents

一种基于多租户云存储的资源管理方法和资源管理系统 Download PDF

Info

Publication number
CN110580127A
CN110580127A CN201810577638.XA CN201810577638A CN110580127A CN 110580127 A CN110580127 A CN 110580127A CN 201810577638 A CN201810577638 A CN 201810577638A CN 110580127 A CN110580127 A CN 110580127A
Authority
CN
China
Prior art keywords
tenant
request
file
virtual machine
block
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
Application number
CN201810577638.XA
Other languages
English (en)
Other versions
CN110580127B (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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201810577638.XA priority Critical patent/CN110580127B/zh
Publication of CN110580127A publication Critical patent/CN110580127A/zh
Application granted granted Critical
Publication of CN110580127B publication Critical patent/CN110580127B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/0662Virtualisation aspects
    • 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]

Abstract

本发明公开了一种基于多租户云存储的资源管理方法及管理系统,方法包括:得到每一个租户的租户性能需求,并对应地记录在租户所使用的虚拟机镜像文件的元数据内;为每一个虚拟机镜像文件的元数据添加一个令牌桶;在IO栈的页缓存层,获取被访问的虚拟机镜像文件的索引节点对象,并利用令牌桶算法对内存资源进行调度;在IO栈的文件系统层,将文件IO请求转换成对应的块IO请求;对于每一个文件IO请求,获取其所访问的虚拟机镜像文件的索引节点对象,从中获取租户性能需求并附加到由该文件IO请求转换得到的每一个块IO请求中;在IO栈的块层,从块IO请求中获取租户性能需求,并利用令牌桶算法对硬盘资源进行调度。本发明能够有效实现租户间的性能隔离。

Description

一种基于多租户云存储的资源管理方法和资源管理系统
技术领域
本发明属于云存储领域,更具体地,涉及一种基于多租户云存储的资源管理方法及管理系统。
背景技术
越来越多的企业和用户通过租用虚拟机的方式将负载部署在云环境中,而云提供商为了简化管理以及降低成本,将虚拟机以大文件形式存放在用网络连接的共享存储服务器上面。但是共享存储会使得租户间产生资源竞争,从而对彼此的性能造成干扰。
为了保障不同租户的性能需求,实现租户间的性能隔离,已有的方法大多是在Hypervisor层通过IO调度实现资源管理,也有一些方法在协同Hypervisor和存储服务器来实现资源管理。这些IO调度方法均未考虑到存储服务器端文件系统的影响,导致无法了解底层存储资源的使用情况,比如虚拟机发出的一个IO请求到达存储服务器端,如果该请求被页缓存服务了,那么它就不会消耗硬盘资源,如果是一个写请求,那么由于文件系统使用的日志机制等,可能会导致额外的写操作,从而消耗了更多的硬盘资源。不了解资源使用情况,无法做到准确的资源分配,导致租户的性能无法得到保障,性能隔离也就毫无效果。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种基于多租户云存储的资源管理方法及管理系统,其目的在于,在多租户的云存储环境中实现虚拟机级的性能隔离。
为实现上述目的,按照本发明第一方面,提供了一种基于多租户云存储的资源管理方法,包括:
(1)根据资源分配策略,得到每一个租户的租户性能需求,并将所有租户的租户性能需求对应地记录在租户所使用的虚拟机镜像文件的元数据内;根据租户性能需求,为每一个虚拟机镜像文件的元数据添加一个令牌桶;
(2)在IO栈的页缓存层,从内存获取被文件IO请求访问的虚拟机镜像文件的索引节点对象,并利用令牌桶算法对内存资源进行调度;完成调度后,将文件IO请求传递到IO栈的文件系统层;
(3)在IO栈的文件系统层,将每一个文件IO请求转换成对应的块IO请求;对于每一个文件IO请求,从内存中获取其所访问的虚拟机镜像文件的索引节点对象,并从中获取租户性能需求,然后将获取到的租户性能需求附加到由该文件IO请求转换得到的每一个块IO请求中;若文件IO请求为写请求并且在将文件IO请求转换成块IO请求时使用日志机制保障数据一致性,则在转换的过程中会产生额外的用于写日志的块IO请求,对于额外的块IO请求,跨层标记模块同样会将租户性能需求附加到其中;将携带有租户性能需求的块IO请求传递到IO栈的块层;
(4)在IO栈的块层,从块IO请求中获取租户性能需求,并利用令牌桶算法对硬盘资源进行调度;
其中,租户性能需求包括租户标记和性能标记,租户标记用于唯一标识租户,性能标记用于指示对应的租户要求固定吞吐率保障或最小吞吐率保障;IO栈为多租户云存储系统中处理读写请求时所需要的各个层次阶段,包括:页缓存层、文件系统层和块层;文件IO请求为访问虚拟机镜像文件的IO请求,块IO请求为访问硬盘的请求。
进一步地,步骤(1)中,租户性能需求记录在内存中虚拟机镜像文件的索引节点对象中;相比于将租户性能需求记录在硬盘中虚拟机镜像文件的索引节点中,将租户性能需求记录在内存中虚拟机镜像文件的索引节点对象中能够避免更改硬盘布局。
进一步地,步骤(1)中,根据租户性能需求,为每一个虚拟机镜像文件的元数据添加的令牌桶生成令牌的速率根据如下规则设定:若虚拟机镜像文件的元数据中记录的租户性能需求中性能标记指示租户要求吞吐率为T的固定吞吐率保障,则附加于该虚拟机镜像文件的元数据中的令牌桶生成令牌的速率为T;若虚拟机镜像文件的元数据中记录的租户性能需求中性能标记指示租户要求最小吞吐率保障,则附加于该虚拟机镜像文件的元数据中的令牌桶生成令牌的速率足够大以保证该令牌桶总是满的,从而保证文件IO请求不会被阻塞,实现内存资源利用的最大化。
进一步地,步骤(2)中,在IO栈的页缓存层,利用令牌桶算法对内存资源进行调度,包括:若文件IO请求为读请求,则访问内存时不消耗令牌;若文件IO请求为写请求,则访问内存时消耗令牌,且消耗的令牌数等于该文件IO请求的大小;若文件IO请求为写请求,且附加于该文件IO请求所访问的虚拟机镜像文件的索引节点对象中的令牌桶中令牌数不足以服务该文件IO请求,则发起该文件IO请求的进程休眠,直至该令牌桶中生成足够的令牌。
进一步地,步骤(4)中,在IO栈的块层根据所获取的租户性能需求利用令牌桶算法对硬盘资源进行调度,包括:
(41)为每一个虚拟机镜像文件构建一个IO队列,用于接收由文件IO请求转换得到的块IO请求;在一个IO队列中,所有块IO请求携带的租户性能需求相同;
(42)为每一个IO队列创建一个令牌桶;无论块IO请求为读请求还是写请求,访问硬盘时均消耗令牌,且消耗的令牌数由底层存储设备的存储机制决定;
(43)获得当前的空闲硬盘资源,并根据IO队列的租户性能需求为IO队列分配硬盘资源:若IO队列的租户性能需求中性能标记指示用户要求吞吐率为T’的固定吞吐率保障,则该IO队列的令牌桶生成令牌的速率为T’;若IO队列的租户性能需求中性能标记指示用户要求吞吐率不低于T”的最小吞吐率保障,则该IO队列的令牌桶生成令牌的速率为T”;若在所有IO队列均分配硬盘资源后还有剩余的空闲硬盘资源,且存在其租户性能需求为要求最小吞吐率保障的IO队列,则将剩余的空闲硬盘资源在具有最小吞吐率要求的IO队列之间按比例分配,分配比例为对应的最小吞吐率之比,由此实现硬盘资源利用的最大化;
(44)遍历所有的IO队列,若存在其中有块IO请求待处理,且其令牌桶中有足够令牌的IO队列,则选择这些队列进行服务;否则,等待预设的时间间隔后重复执行步骤(44);
其中,IO队列的租户性能需求为IO队列中块IO请求所携带的租户性能需求。
按照本发明的第二方面,本发明还提供了一种基于多租户云存储的资源管理系统,包括控制平面和数据平面;
控制平面包括:租户性能需求生成模块,用于根据资源分配策略,得到每一个租户的租户性能需求;控制接口,用于将所有租户性能需求记录在对应租户使用的虚拟机镜像文件的元数据内;跨层标记模块,用于在IO栈的文件系统层当文件IO请求被转换为块IO请求时从内存获取被访问的虚拟机镜像文件的索引节点对象,并从其元数据中获取租户性能需求,然后将租户性能需求对应地附加到每一个块IO请求中;
数据平面包括:页缓存调度器,用于根据租户性能需求,为每一个虚拟机镜像文件的元数据添加一个令牌桶,以及在IO栈的页缓存层,从内存获取被文件IO请求访问的虚拟机镜像文件的索引节点对象,并利用令牌桶算法对内存资源进行调度,完成调度后,将文件IO请求传递到IO栈的文件系统层;文件系统,用于在IO栈的文件系统层将文件IO请求转换为块IO请求,并将携带租户性能需求的块IO请求传递到块层,若文件系统使用日志机制保障数据一致性且文件IO请求R为写请求时,在转换的过程中会产生额外的用于写日志的块IO请求,对于额外的块IO请求,跨层标记模块同样会将租户性能需求附加到其中;块层调度器,用于在IO栈的块层从块IO请求中获取租户性能需求,并根据租户性能需求利用令牌桶算法对硬盘资源进行调度;
其中,租户性能需求包括租户标记和性能标记,租户标记用于唯一标识租户,性能标记用于指示对应的租户要求固定吞吐率保障或最小吞吐率保障;IO栈为多租户云存储系统中处理读写请求时所需要的各个层次阶段,包括:页缓存层、文件系统层和块层;文件IO请求为访问虚拟机镜像文件的请求,块IO请求为访问硬盘资源的请求。
进一步地,控制接口用于将租户性能需求记录在内存中虚拟机镜像文件的索引节点对象中;相比于将租户性能需求记录在硬盘中虚拟机镜像文件的索引节点中,将租户性能需求记录在内存中虚拟机镜像文件的索引节点对象中能够避免更改硬盘布局。
进一步地,页缓存调度器根据租户性能需求,为每一个虚拟机镜像文件的元数据添加的令牌桶生成令牌的速率根据如下规则设定:若虚拟机镜像文件的元数据中记录的租户性能需求中性能标记指示租户要求吞吐率为T的固定吞吐率保障,则附加于该虚拟机镜像文件的元数据中的令牌桶生成令牌的速率为T;若虚拟机镜像文件的元数据中记录的租户性能需求中性能标记指示租户要求最小吞吐率保障,则附加于该虚拟机镜像文件的元数据中的令牌桶生成令牌的速率足够大以保证该令牌桶总是满的,从而保证文件IO请求不会被阻塞,实现内存资源利用的最大化。
进一步地,页缓存调度器在IO栈的页缓存层,从内存获取被文件IO请求访问的虚拟机镜像文件的索引节点对象,利用令牌桶算法对内存资源进行调度,包括:若文件IO请求为读请求,则访问内存时不消耗令牌;若文件IO请求为写请求,则访问内存时消耗令牌,且消耗的令牌数等于该文件IO请求的大小;若文件IO请求为写请求,且附加于该文件IO请求所访问的虚拟机镜像文件的索引节点对象中的令牌桶中令牌数不足以服务该文件IO请求,则发起该文件IO请求的进程休眠,直至该令牌桶中生成足够的令牌。
进一步地,块层调度器在IO栈的块层根据租户性能需求利用令牌桶算法对硬盘资源进行调度,包括:为每一个虚拟机镜像文件构建一个IO队列,用于接收由文件IO请求转换得到的块IO请求;在一个IO队列中,所有块IO请求携带的租户性能需求相同;为每一个IO队列创建一个令牌桶;无论块IO请求为读请求还是写请求,访问硬盘时均消耗令牌,且消耗的令牌数由底层存储设备的存储机制决定;获得当前的空闲硬盘资源,并根据IO队列的租户性能需求为IO队列分配硬盘资源:若IO队列的租户性能需求中性能标记指示用户要求吞吐率为T’的固定吞吐率保障,则该IO队列的令牌桶生成令牌的速率为T’;若IO队列的租户性能需求中性能标记指示用户要求吞吐率不低于T”的最小吞吐率保障,则该IO队列的令牌桶生成令牌的速率为T”;若在所有IO队列均分配硬盘资源后还有剩余的空闲硬盘资源,且存在其租户性能需求为要求最小吞吐率保障的IO队列,则将剩余的空闲硬盘资源在具有最小吞吐率要求的IO队列之间按比例分配,分配比例为对应的最小吞吐率之比,由此实现硬盘资源利用的最大化;遍历所有的IO队列,若存在其中有块IO请求待处理,且其令牌桶中有足够令牌的IO队列,则选择这些队列进行服务;否则,等待预设的时间间隔后重复遍历所有的IO队列,以查找可服务的IO队列;其中,IO队列的租户性能需求为IO队列中块IO请求所携带的租户性能需求。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明所提供的基于多租户云存储的资源管理方法,分别在IO栈的页缓存层和块层实现对内存资源和硬盘资源的调度,能够控制文件系统对资源使用的影响,从而有效降低租户间的性能干扰,实现租户间的性能隔离。
(2)本发明所提供的基于多租户云存储的资源管理方法,利用虚拟机镜像文件的元数据携带租户性能需求,从而通过复用数据路径即可将租户性能需求传播至IO栈的块层,有效避免了控制开销。
(3)本发明所提供的基于多租户云存储的资源管理方法,在存储系统系统内部基于访问虚拟机镜像文件的文件IO请求进行调度,能够充分掌握内存资源和硬盘资源的使用情况,从而能充分利用空闲资源,提高资源利用率。
(4)本发明所提供的基于多租户云存储的资源管理系统,通过设计控制平面和数据平面,将资源管理策略和实施机制分离开来,由此能够通过软件定义的方式简化管理。
附图说明
图1为本发明实施例提供的基于多租户云存储的资源管理系统架构图;
图2为本发明实施例提供的应用基于多租户云存储的资源管理系统的存储系统示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在Linux环境下,本发明所提供的基于多租户云存储的资源管理系统如图1所示,包括控制平面和数据平面;
控制平面包括:租户性能需求生成模块,用于根据资源分配策略,得到每一个租户的租户性能需求;控制接口,用于将所有租户性能需求记录在对应租户使用的虚拟机镜像文件的元数据内;跨层标记模块,用于在IO栈的文件系统层当文件IO请求被转换为块IO请求时从内存获取被访问的虚拟机镜像文件的索引节点对象,并从其元数据中获取租户性能需求,然后将租户性能需求对应地附加到每一个块IO请求中;
数据平面包括:页缓存调度器,用于根据租户性能需求,为每一个虚拟机镜像文件的元数据添加一个令牌桶,以及在IO栈的页缓存层,从内存获取被文件IO请求访问的虚拟机镜像文件的索引节点对象,并利用令牌桶算法对内存资源进行调度,完成调度后,将文件IO请求传递到IO栈的文件系统层;文件系统,用于在IO栈的文件系统层将文件IO请求转换为块IO请求,并将携带租户性能需求的块IO请求传递到块层,本实施例中,文件系统为Ext4文件系统;块层调度器,用于在IO栈的块层从块IO请求中获取租户性能需求,并根据租户性能需求利用令牌桶算法对硬盘资源进行调度;
其中,租户性能需求包括租户标记和性能标记,租户标记用于唯一标识租户,性能标记用于指示对应的租户要求固定吞吐率保障或最小吞吐率保障;IO栈为多租户云存储系统中处理读写请求时所需要的各个层次阶段,包括:页缓存层、文件系统层和块层;文件IO请求为访问虚拟机镜像文件的请求,块IO请求为访问硬盘资源的请求;具体地:
控制接口用于将租户性能需求记录在内存中虚拟机镜像文件的索引节点对象中;相比于将租户性能需求记录在硬盘中虚拟机镜像文件的索引节点中,将租户性能需求记录在内存中虚拟机镜像文件的索引节点对象中能够避免更改硬盘布局;
页缓存调度器根据租户性能需求,为每一个虚拟机镜像文件的元数据添加的令牌桶生成令牌的速率根据如下规则设定:若虚拟机镜像文件的元数据中记录的租户性能需求中性能标记指示租户要求吞吐率为T的固定吞吐率保障,则附加于该虚拟机镜像文件的元数据中的令牌桶生成令牌的速率为T;若虚拟机镜像文件的元数据中记录的租户性能需求中性能标记指示租户要求最小吞吐率保障,则附加于该虚拟机镜像文件的元数据中的令牌桶生成令牌的速率足够大以保证该令牌桶总是满的,从而保证文件IO请求不会被阻塞,实现内存资源利用的最大化;页缓存调度器在IO栈的页缓存层,从内存获取被文件IO请求访问的虚拟机镜像文件的索引节点对象,利用令牌桶算法对内存资源进行调度,包括:若文件IO请求为读请求,则访问内存时不消耗令牌;若文件IO请求为写请求,则访问内存时消耗令牌,且消耗的令牌数等于该文件IO请求的大小;若文件IO请求为写请求,且附加于该文件IO请求所访问的虚拟机镜像文件的索引节点对象中的令牌桶中令牌数不足以服务该文件IO请求,则发起该文件IO请求的进程休眠,直至该令牌桶中生成足够的令牌;
块层调度器在IO栈的块层根据租户性能需求利用令牌桶算法对硬盘资源进行调度,包括:为每一个虚拟机镜像文件构建一个IO队列,用于接收由文件IO请求转换得到的块IO请求;在一个IO队列中,所有块IO请求携带的租户性能需求相同;为每一个IO队列创建一个令牌桶;无论块IO请求为读请求还是写请求,访问硬盘时均消耗令牌,且消耗的令牌数由底层存储设备的存储机制决定;获得当前的空闲硬盘资源,并根据IO队列的租户性能需求为IO队列分配硬盘资源:若IO队列的租户性能需求中性能标记指示用户要求吞吐率为T’的固定吞吐率保障,则该IO队列的令牌桶生成令牌的速率为T’;若IO队列的租户性能需求中性能标记指示用户要求吞吐率不低于T”的最小吞吐率保障,则该IO队列的令牌桶生成令牌的速率为T”;若在所有IO队列均分配硬盘资源后还有剩余的空闲硬盘资源,且存在其租户性能需求为要求最小吞吐率保障的IO队列,则将剩余的空闲硬盘资源在具有最小吞吐率要求的IO队列之间按比例分配,分配比例为对应的最小吞吐率之比,由此实现硬盘资源利用的最大化;遍历所有的IO队列,若存在其中有块IO请求待处理,且其令牌桶中有足够令牌的IO队列,则选择这些队列进行服务;否则,等待预设的时间间隔后重复遍历所有的IO队列,以查找可服务的IO队列;其中,IO队列的租户性能需求为IO队列中块IO请求所携带的租户性能需求;
块IO请求访问硬盘时消耗的令牌数由底层存储设备的存储机制决定,例如,当底层存储设备为磁盘时,由于磁盘的寻道特性,随机请求的代价和顺序请求的代价会有较大差异,相应地,顺序请求产生的块IO请求访问磁盘时消耗的令牌数等于请求的大小,随机请求产生的块IO请求访问内存时消耗的令牌数等于请求的大小加上一定量额外的令牌,比如顺序的4KB请求消耗4K个令牌,而随机的4KB请求,会消耗4K加上64K一共68K个令牌。
在图2所示的存储系统中,基于图1所示资源管理系统进行资源管理;在图2所示的存储系统中,包括3台虚拟机,对应的有三个租户VM1、VM2和VM3,对应的虚拟机镜像文件分别为VM1.img、VM2.img和VM3.img;管理者所制定资源管理策略为:租户VM1要求吞吐量为T1的固定吞吐率保障,租户VM2要求吞吐量不小于T2的最小吞吐率保障,租户VM3要求不吞吐量不小于T3的最小吞吐率保障;在上述存储系统中,本发明所提供的基于多租户云存储的资源管理方法包括:
(1)根据资源分配策略,利用租户性能需求生成模块得到每一个租户的租户性能需求,并利用控制接口将所有租户的租户性能需求对应地记录在租户所使用的虚拟机镜像文件的索引节点对象内;根据租户性能需求,利用页缓存调度器为每一个虚拟机镜像文件的索引节点对象添加一个令牌桶;对于虚拟机镜像文件VM1.img,其令牌桶生成令牌的速率为T1;对于虚拟机镜像文件VM2.img和VM3.img,其令牌桶生成令牌的速率均足够大,以保证令牌桶总是满的,从而保证文件IO请求不会被阻塞,实现内存资源利用的最大化;
(2)在IO栈的页缓存层,利用页缓存调度器从内存获取被文件IO请求访问的虚拟机镜像文件的索引节点对象,并利用令牌桶算法对内存资源进行调度,包括:若文件IO请求为读请求,则访问内存时不消耗令牌;若文件IO请求为写请求,则访问内存时消耗令牌,且消耗的令牌数等于该文件IO请求的大小;若文件IO请求为写请求,且附加于该文件IO请求所访问的虚拟机镜像文件的索引节点对象中的令牌桶中令牌数不足以服务该文件IO请求,则发起该文件IO请求的进程休眠,直至该令牌桶中生成足够的令牌;
完成调度后,利用页缓存调度器将文件IO请求传递到IO栈的文件系统层;
(3)在IO栈的文件系统层,利用文件系统将每一个文件IO请求转换成对应的块IO请求;对于每一个文件IO请求,利用跨层标记模块从内存中获取其所访问的虚拟机镜像文件的索引节点对象,并从中获取租户性能需求,然后将获取到的租户性能需求附加到由该文件IO请求转换得到的每一个块IO请求中;由于Ext4文件系统使用日志机制保障数据一致性,当文件IO请求为写请求时,在转换的过程中会产生额外的用于写日志的块IO请求,对于额外的块IO请求,同样需要将租户性能需求附加到其中;
(4)在IO栈的块层,利用块层调度器从块IO请求中获取租户性能需求,并利用令牌桶算法对硬盘资源进行调度;包括:
(41)为每一个虚拟机镜像文件构建一个IO队列,用于接收由文件IO请求转换得到的块IO请求;在一个IO队列中,所有块IO请求携带的租户性能需求相同;
(42)为每一个IO队列创建一个令牌桶;无论块IO请求为读请求还是写请求,访问硬盘时均消耗令牌,且消耗的令牌数由底层存储设备的存储机制决定;
(43)获得当前的空闲硬盘资源,并根据IO队列的租户性能需求为IO队列分配硬盘资源:若IO队列的租户性能需求中性能标记指示用户要求吞吐率为T’的固定吞吐率保障,则该IO队列的令牌桶生成令牌的速率为T’;若IO队列的租户性能需求中性能标记指示用户要求吞吐率不低于T”的最小吞吐率保障,则该IO队列的令牌桶生成令牌的速率为T”;若在所有IO队列均分配硬盘资源后还有剩余的空闲硬盘资源,且存在其租户性能需求为要求最小吞吐率保障的IO队列,则将剩余的空闲硬盘资源在具有最小吞吐率要求的IO队列之间按比例分配,分配比例为对应的最小吞吐率之比,由此实现硬盘资源利用的最大化;例如,T1=10Mtokens/s,T2=10Mtokens/s,T3=20Mtokens/s,当前的空闲硬盘资源为55Mtokens/s,则首先分别设置租户VM1、租户VM2和租户VM3的令牌桶生成令牌的速率为10Mtokens/s、10Mtokens/s和20Mtokens/s;资源分配完成后,剩余15Mtokens/s的空闲硬盘资源,将剩余的空闲硬盘资源按照T2:T3=1:2的比例分配给租户VM2和租户VM3,最终租户VM1、租户VM2和租户VM3分配到的硬盘资源分别为10Mtokens/s、15Mtokens/s和30Mtokens/s;
(44)遍历所有的IO队列,若存在其中有块IO请求待处理,且其令牌桶中有足够令牌的IO队列,则选择这些队列进行服务;否则,等待预设的时间间隔后重复执行步骤(44);
其中,IO队列的租户性能需求为IO队列中块IO请求所携带的租户性能需求。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于多租户云存储的资源管理方法,其特征在于,包括:
(1)根据资源分配策略,得到每一个租户的租户性能需求,并将所有租户的租户性能需求对应地记录在租户所使用的虚拟机镜像文件的元数据内;根据租户性能需求,为每一个虚拟机镜像文件的元数据添加一个令牌桶;
(2)在IO栈的页缓存层,从内存获取被文件IO请求访问的虚拟机镜像文件的索引节点对象,并利用令牌桶算法对内存资源进行调度;完成调度后,将文件IO请求传递到IO栈的文件系统层;
(3)在IO栈的文件系统层,将每一个文件IO请求转换成对应的块IO请求;对于每一个文件IO请求,从内存中获取其所访问的虚拟机镜像文件的索引节点对象,并从中获取租户性能需求,然后将获取到的租户性能需求附加到由该文件IO请求转换得到的每一个块IO请求中;将携带有租户性能需求的块IO请求传递到IO栈的块层;
(4)在IO栈的块层,从块IO请求中获取租户性能需求,并利用令牌桶算法对硬盘资源进行调度;
其中,所述租户性能需求包括租户标记和性能标记,所述租户标记用于唯一标识租户,所述性能标记用于指示对应的租户要求固定吞吐率保障或最小吞吐率保障;所述IO栈为多租户云存储系统中处理读写请求时所需要的各个层次阶段,包括:页缓存层、文件系统层和块层;所述文件IO请求为访问虚拟机镜像文件的IO请求,所述块IO请求为访问硬盘的请求。
2.如权利要求1所述的基于多租户云存储的资源管理方法,其特征在于,所述步骤(1)中,租户性能需求记录在内存中虚拟机镜像文件的索引节点对象中。
3.如权利要求1所述的基于多租户云存储的资源管理方法,其特征在于,所述步骤(1)中,根据租户性能需求,为每一个虚拟机镜像文件的元数据添加的令牌桶生成令牌的速率根据如下规则设定:
若虚拟机镜像文件的元数据中记录的租户性能需求中性能标记指示租户要求吞吐率为T的固定吞吐率保障,则附加于该虚拟机镜像文件的元数据中的令牌桶生成令牌的速率为T;若虚拟机镜像文件的元数据中记录的租户性能需求中性能标记指示租户要求最小吞吐率保障,则附加于该虚拟机镜像文件的元数据中的令牌桶生成令牌的速率足够大以保证该令牌桶总是满的。
4.如权利要求1所述的基于多租户云存储的资源管理方法,其特征在于,所述步骤(2)中,在IO栈的页缓存层,利用令牌桶算法对内存资源进行调度,包括:若文件IO请求为读请求,则访问内存时不消耗令牌;若文件IO请求为写请求,则访问内存时消耗令牌,且消耗的令牌数等于该文件IO请求的大小;若文件IO请求为写请求,且附加于该文件IO请求所访问的虚拟机镜像文件的索引节点对象中的令牌桶中令牌数不足以服务该文件IO请求,则发起该文件IO请求的进程休眠,直至该令牌桶中生成足够的令牌。
5.如权利要求1所述的基于多租户云存储的资源管理方法,其特征在于,所述步骤(4)中,在IO栈的块层根据所获取的租户性能需求利用令牌桶算法对硬盘资源进行调度,包括:
(41)为每一个虚拟机镜像文件构建一个IO队列,用于接收由文件IO请求转换得到的块IO请求;在一个IO队列中,所有块IO请求携带的租户性能需求相同;
(42)为每一个IO队列创建一个令牌桶;无论块IO请求为读请求还是写请求,访问硬盘时均消耗令牌,且消耗的令牌数由底层存储设备的存储机制决定;
(43)获得当前的空闲硬盘资源,并根据IO队列的租户性能需求为IO队列分配硬盘资源:若IO队列的租户性能需求中性能标记指示用户要求吞吐率为T’的固定吞吐率保障,则该IO队列的令牌桶生成令牌的速率为T’;若IO队列的租户性能需求中性能标记指示用户要求吞吐率不低于T”的最小吞吐率保障,则该IO队列的令牌桶生成令牌的速率为T”;若在所有IO队列均分配硬盘资源后还有剩余的空闲硬盘资源,且存在其租户性能需求为要求最小吞吐率保障的IO队列,则将剩余的空闲硬盘资源在具有最小吞吐率要求的IO队列之间按比例分配,分配比例为对应的最小吞吐率之比;
(44)遍历所有的IO队列,若存在其中有块IO请求待处理,且其令牌桶中有足够令牌的IO队列,则选择这些队列进行服务;否则,等待预设的时间间隔后重复执行步骤(44);
其中,所述IO队列的租户性能需求为所述IO队列中块IO请求所携带的租户性能需求。
6.一种基于多租户云存储的资源管理系统,其特征在于,包括控制平面和数据平面;
所述控制平面包括:租户性能需求生成模块,用于根据资源分配策略,得到每一个租户的租户性能需求;控制接口,用于将所有租户性能需求记录在对应租户使用的虚拟机镜像文件的元数据内;跨层标记模块,用于在IO栈的文件系统层当文件IO请求被转换为块IO请求时从内存获取被访问的虚拟机镜像文件的索引节点对象,并从其元数据中获取租户性能需求,然后将租户性能需求对应地附加到每一个块IO请求中;
所述数据平面包括:页缓存调度器,用于根据租户性能需求,为每一个虚拟机镜像文件的元数据添加一个令牌桶,以及在IO栈的页缓存层,从内存获取被文件IO请求访问的虚拟机镜像文件的索引节点对象,并利用令牌桶算法对内存资源进行调度,完成调度后,将文件IO请求传递到IO栈的文件系统层;文件系统,用于在IO栈的文件系统层将文件IO请求转换为块IO请求,并将携带租户性能需求的块IO请求传递到块层;块层调度器,用于在IO栈的块层从块IO请求中获取租户性能需求,并根据租户性能需求利用令牌桶算法对硬盘资源进行调度;
其中,所述租户性能需求包括租户标记和性能标记,所述租户标记用于唯一标识租户,所述性能标记用于指示对应的租户要求固定吞吐率保障或最小吞吐率保障;所述IO栈为多租户云存储系统中处理读写请求时所需要的各个层次阶段,包括:页缓存层、文件系统层和块层;所述文件IO请求为访问虚拟机镜像文件的请求,所述块IO请求为访问硬盘资源的请求。
7.如权利要求6所述的基于多租户云存储的资源管理系统,其特征在于,所述控制接口用于将租户性能需求记录在内存中虚拟机镜像文件的索引节点对象中。
8.如权利要求6所述的基于多租户云存储的资源管理系统,其特征在于,所述页缓存调度器根据租户性能需求,为每一个虚拟机镜像文件的元数据添加的令牌桶生成令牌的速率根据如下规则设定:
若虚拟机镜像文件的元数据中记录的租户性能需求中性能标记指示租户要求吞吐率为T的固定吞吐率保障,则附加于该虚拟机镜像文件的元数据中的令牌桶生成令牌的速率为T;若虚拟机镜像文件的元数据中记录的租户性能需求中性能标记指示租户要求最小吞吐率保障,则附加于该虚拟机镜像文件的元数据中的令牌桶生成令牌的速率足够大以保证该令牌桶总是满的。
9.如权利要求6所述的基于多租户云存储的资源管理系统,其特征在于,所述页缓存调度器在IO栈的页缓存层,从内存获取被文件IO请求访问的虚拟机镜像文件的索引节点对象,利用令牌桶算法对内存资源进行调度,包括:若文件IO请求为读请求,则访问内存时不消耗令牌;若文件IO请求为写请求,则访问内存时消耗令牌,且消耗的令牌数等于该文件IO请求的大小;若文件IO请求为写请求,且附加于该文件IO请求所访问的虚拟机镜像文件的索引节点对象中的令牌桶中令牌数不足以服务该文件IO请求,则发起该文件IO请求的进程休眠,直至该令牌桶中生成足够的令牌。
10.如权利要求6所述的基于多租户云存储的资源管理系统,其特征在于,所述块层调度器在IO栈的块层根据租户性能需求利用令牌桶算法对硬盘资源进行调度,包括:
为每一个虚拟机镜像文件构建一个IO队列,用于接收由文件IO请求转换得到的块IO请求;在一个IO队列中,所有块IO请求携带的租户性能需求相同;
为每一个IO队列创建一个令牌桶;无论块IO请求为读请求还是写请求,访问硬盘时均消耗令牌,且消耗的令牌数由底层存储设备的存储机制决定;
获得当前的空闲硬盘资源,并根据IO队列的租户性能需求为IO队列分配硬盘资源:若IO队列的租户性能需求中性能标记指示用户要求吞吐率为T’的固定吞吐率保障,则该IO队列的令牌桶生成令牌的速率为T’;若IO队列的租户性能需求中性能标记指示用户要求吞吐率不低于T”的最小吞吐率保障,则该IO队列的令牌桶生成令牌的速率为T”;若在所有IO队列均分配硬盘资源后还有剩余的空闲硬盘资源,且存在其租户性能需求为要求最小吞吐率保障的IO队列,则将剩余的空闲硬盘资源在具有最小吞吐率要求的IO队列之间按比例分配,分配比例为对应的最小吞吐率之比;
遍历所有的IO队列,若存在其中有块IO请求待处理,且其令牌桶中有足够令牌的IO队列,则选择这些队列进行服务;否则,等待预设的时间间隔后重复遍历所有的IO队列,以查找可服务的IO队列;
其中,所述IO队列的租户性能需求为所述IO队列中块IO请求所携带的租户性能需求。
CN201810577638.XA 2018-06-07 2018-06-07 一种基于多租户云存储的资源管理方法和资源管理系统 Active CN110580127B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810577638.XA CN110580127B (zh) 2018-06-07 2018-06-07 一种基于多租户云存储的资源管理方法和资源管理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810577638.XA CN110580127B (zh) 2018-06-07 2018-06-07 一种基于多租户云存储的资源管理方法和资源管理系统

Publications (2)

Publication Number Publication Date
CN110580127A true CN110580127A (zh) 2019-12-17
CN110580127B CN110580127B (zh) 2020-10-16

Family

ID=68810007

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810577638.XA Active CN110580127B (zh) 2018-06-07 2018-06-07 一种基于多租户云存储的资源管理方法和资源管理系统

Country Status (1)

Country Link
CN (1) CN110580127B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111582739A (zh) * 2020-05-13 2020-08-25 华中科技大学 一种多租户固态盘性能隔离条件下实现高带宽的方法
CN111831618A (zh) * 2020-07-21 2020-10-27 北京青云科技股份有限公司 数据写入方法、数据读取方法、装置、设备及存储介质
CN112597102A (zh) * 2020-12-29 2021-04-02 武汉噢易云计算股份有限公司 一种高效的镜像文件系统实现方法
CN113329096A (zh) * 2021-06-23 2021-08-31 未鲲(上海)科技服务有限公司 消息传输方法、装置、电子设备和存储介质
CN114217733A (zh) * 2021-04-30 2022-03-22 无锡江南计算技术研究所 一种面向io转发系统的io处理框架及io请求处理方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110131499A1 (en) * 2009-11-30 2011-06-02 James Michael Ferris Methods and systems for monitoring cloud computing environments
CN103095720A (zh) * 2013-01-30 2013-05-08 中国科学院自动化研究所 一种基于会话管理服务器的云存储系统的安全管理方法
CN103218175A (zh) * 2013-04-01 2013-07-24 无锡成电科大科技发展有限公司 多租户的云存储平台访问控制系统
US20150096011A1 (en) * 2013-10-01 2015-04-02 Racemi, Inc. Migration of complex applications within a hybrid cloud environment
CN104506514A (zh) * 2014-12-18 2015-04-08 华东师范大学 一种基于hdfs的云存储访问控制方法
CN105871751A (zh) * 2016-03-25 2016-08-17 中国科学院计算技术研究所 一种数据中心网络带宽保证方法及系统
CN105893139A (zh) * 2015-01-04 2016-08-24 伊姆西公司 在云存储环境中用于向租户提供存储服务的方法和装置
US20180059932A1 (en) * 2016-08-31 2018-03-01 International Business Machines Corporation System, method and computer program product for instantiating blocks of a solid-state disk to include different flash characteristics

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110131499A1 (en) * 2009-11-30 2011-06-02 James Michael Ferris Methods and systems for monitoring cloud computing environments
CN103095720A (zh) * 2013-01-30 2013-05-08 中国科学院自动化研究所 一种基于会话管理服务器的云存储系统的安全管理方法
CN103218175A (zh) * 2013-04-01 2013-07-24 无锡成电科大科技发展有限公司 多租户的云存储平台访问控制系统
US20150096011A1 (en) * 2013-10-01 2015-04-02 Racemi, Inc. Migration of complex applications within a hybrid cloud environment
CN104506514A (zh) * 2014-12-18 2015-04-08 华东师范大学 一种基于hdfs的云存储访问控制方法
CN105893139A (zh) * 2015-01-04 2016-08-24 伊姆西公司 在云存储环境中用于向租户提供存储服务的方法和装置
CN105871751A (zh) * 2016-03-25 2016-08-17 中国科学院计算技术研究所 一种数据中心网络带宽保证方法及系统
US20180059932A1 (en) * 2016-08-31 2018-03-01 International Business Machines Corporation System, method and computer program product for instantiating blocks of a solid-state disk to include different flash characteristics

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨龙: "多租户Java虚拟机的设计与实现", 《中国优秀硕士学位论文全文数据库》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111582739A (zh) * 2020-05-13 2020-08-25 华中科技大学 一种多租户固态盘性能隔离条件下实现高带宽的方法
CN111831618A (zh) * 2020-07-21 2020-10-27 北京青云科技股份有限公司 数据写入方法、数据读取方法、装置、设备及存储介质
CN112597102A (zh) * 2020-12-29 2021-04-02 武汉噢易云计算股份有限公司 一种高效的镜像文件系统实现方法
CN112597102B (zh) * 2020-12-29 2022-06-17 武汉噢易云计算股份有限公司 一种高效的镜像文件系统实现方法
CN114217733A (zh) * 2021-04-30 2022-03-22 无锡江南计算技术研究所 一种面向io转发系统的io处理框架及io请求处理方法
CN114217733B (zh) * 2021-04-30 2023-10-13 无锡江南计算技术研究所 一种面向io转发系统的io处理框架及io请求处理方法
CN113329096A (zh) * 2021-06-23 2021-08-31 未鲲(上海)科技服务有限公司 消息传输方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN110580127B (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
CN110580127B (zh) 一种基于多租户云存储的资源管理方法和资源管理系统
CN107066319B (zh) 一种面向异构资源的多维调度系统
CN105339897B (zh) 高效的优先级感知线程调度
CN107832153B (zh) 一种Hadoop集群资源自适应分配方法
US9973512B2 (en) Determining variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time
KR101356033B1 (ko) 하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법
EP3779694A1 (en) Method and apparatus for resource management, electronic device, and storage medium
JP2017514243A (ja) ネットワーク・アクセス可能なブロック・ストレージのための協調アドミッション制御
TW201441833A (zh) 虛擬磁碟的io口調度方法及其調度裝置
CN102981973B (zh) 在存储系统中执行请求的方法
CN103095788A (zh) 一种基于网络拓扑的云资源调度策略
KR20130033020A (ko) 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법
WO2013139037A1 (zh) 用于调度资源的方法及装置
US7680763B2 (en) Administration of resources in system-wide search systems
KR20080112093A (ko) 멀티 프로세서 환경에서 효율적인 데이터 전송을 위한 방법및 시스템
US20210191751A1 (en) Method and device for allocating resource in virtualized environment
CN113014408B (zh) 分布式系统及其管理方法
CN116302581B (zh) 一种新型智能配电终端及系统
Wang et al. Provision of storage QoS in distributed file systems for clouds
CN115063282A (zh) 一种gpu资源调度方法、装置、设备及存储介质
CN113703945B (zh) 微服务集群的调度方法、装置、设备及存储介质
CN111506407B (zh) Pull模式与Push模式相结合的资源管理与作业调度方法、系统
CN110399206B (zh) 一种基于云计算环境下idc虚拟化调度节能系统
US9672067B2 (en) Data processing method and system with application-level information awareness
Divya et al. Big Data Analysis and Its Scheduling Policy–Hadoop

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