CN112199044B - 面向多租户的ftl设置方法、系统、计算机程序及存储介质 - Google Patents

面向多租户的ftl设置方法、系统、计算机程序及存储介质 Download PDF

Info

Publication number
CN112199044B
CN112199044B CN202011078074.9A CN202011078074A CN112199044B CN 112199044 B CN112199044 B CN 112199044B CN 202011078074 A CN202011078074 A CN 202011078074A CN 112199044 B CN112199044 B CN 112199044B
Authority
CN
China
Prior art keywords
tenant
data
resources
pblk
buffer area
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
CN202011078074.9A
Other languages
English (en)
Other versions
CN112199044A (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.)
Renmin University of China
Original Assignee
Renmin University of China
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 Renmin University of China filed Critical Renmin University of China
Priority to CN202011078074.9A priority Critical patent/CN112199044B/zh
Publication of CN112199044A publication Critical patent/CN112199044A/zh
Application granted granted Critical
Publication of CN112199044B publication Critical patent/CN112199044B/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种面向多租户的FTL设置方法、系统、计算机程序及存储介质,其包括:写请求到来时,先将写请求写入缓冲区,如果缓冲区满,则采用先进先出算法替换失效数据;将缓冲区中的数据批量写入到设备端,如果设备端的可用空间小于预设阈值,则启动垃圾回收机制;判断租户的带宽是否达到预设值,达到则返回设备端,反之则等待直到租户带宽低于预设值才继续写入设备端,在写入设备端前通过地址映射进行数据摆放;读请求到来时,如果数据已在缓冲区中,则从缓冲区中读取数据,否则从设备端读取数据;写请求和读请求完成后,返回数据和成功信息,并判断请求数是否达到预先设定阈值,达到则进行资源交换。本发明能够解决资源分配不公平、整体系统效率较低等问题。

Description

面向多租户的FTL设置方法、系统、计算机程序及存储介质
技术领域
本发明涉及一种云存储、FTL、Open-Channel SSD及资源隔离领域,特别是关于一种在基于Open-Channel SSD的面向多租户的FTL设置方法、系统、计算机程序及存储介质。
背景技术
闪存:闪存(Flash)是过去几年内最为成功的新型存储介质,可以提供比磁盘高很多的性能,尤其是在随机访问性能方面优势非常明显。一般以固态硬盘(SSD)的产品形态出现,是标准的块设备,与磁盘的访问方式一样。按照接口不同一般分为PCIe接口、SAS接口和SATA接口的不同固态硬盘产品。
FTL:即闪存转换层(Flash Translation Layer)。由于闪存颗粒的硬件特性,固态硬盘在覆盖已有数据时必须先进行擦除操作,而闪存颗粒的可擦除次数是有限制的。为了使固态硬盘兼容已有的读写接口和平衡擦除次数提高整体寿命,闪存转换层成为了固态硬盘不可缺少的部分。FTL也成为了固态硬盘的软件核心技术。
Open-Channel SSD:即开放通道固态硬盘(OCSSD),是近两年出现的新型存储硬盘。闪存转换层给固态硬盘提高兼容性和寿命的同时,也带来了不可预测延迟和数据物理写入位置不可控制等问题。目前对于可预测延迟和可控制数据物理写入位置的需求,导致了开放通道固态硬盘的出现。开放通道固态硬盘将原来位于底层硬件的FTL转移到主机端,使应用能够精准的控制数据摆放位置,从而达到可预测延迟的目的。但也存在FTL开发难度高的问题。
资源隔离:资源隔离是指对系统每个用户(或者进程组)得到的包括CPU、内存、I/O带宽、网络等在内的系统资源,进行统计、控制的技术,目标是为了使用户(或进程)之间工作互不影响。在云环境中,不同用户经常共享使用资源。应用资源隔离技术,一方面可以避免某用户占用其它用户资源的情况,另一方面可以对用户使用的资源进行计数,方便云厂商制定公平合理的收费策略。
现有的LightNVM是Linux内核中为开放通道固态硬盘而设计的系统,主要由三部分组成,如图1所示:(1)NVMe设备驱动层。物理页地址(Physical Page Address)I/O接口负责将垂直逻辑结构地址转换为硬件的物理地址。具有LightNVM支持的NVMe设备驱动层利用物理页地址接口访问开放通道固态硬盘。设备驱动层将开放通道固态硬盘封装成Linux块设备暴露给用户空间,使之能够接受ioctl指令。(2)LightNVM子系统。该子系统通过nvm_dev和sysfs结构体显示开放通道固态硬盘的物理设备信息,FTL和上层用户可以获取这些信息。该子系统支持向量I/O。(3)更高层次的I/O接口层。该层次包括FTL以及具体应用使用的接口。
现有的pblk是LightNVM系统中的FTL层,负责为上层应用提供读写接口,其主要功能有:(1)与硬件和控制器进行交互。(2)数据摆放以及将逻辑地址转换为物理地址。(3)处理错误和故障恢复。(4)垃圾回收机制。pblk是针对单用户而设计的FTL,没有考虑到多租户的场景,在云计算时代的多租户场景下却出现了问题:问题一是多租户的数据交叉摆放,每个租户的数据进行垃圾回收时会影响到其他租户。问题二是不能精准控制每个租户使用的读写带宽资源,造成资源分配不均衡现象。问题三是全局的垃圾回收机制对于写更新不频繁的租户不公平。问题四是多个租户共用一个固定大小的缓冲区,缺乏对具体应用做定制的灵活性。
发明内容
针对上述问题,本发明的目的是提供一种面向多租户的FTL设置方法、系统、计算机程序及存储介质,其能够解决资源分配不公平、整体系统效率较低等问题。
为实现上述目的,本发明采取以下技术方案:一种面向多租户的FTL设置方法,其包括以下步骤:S1:写请求到来时,先将写请求写入缓冲区,如果缓冲区满,则采用先进先出算法替换失效数据;S2:将缓冲区中的数据批量写入到设备端,如果设备端的可用空间小于预设阈值,则启动垃圾回收机制,反之则进入步骤S3;S3:判断租户的带宽是否达到预设值,达到则返回步骤S2,反之则等待直到租户带宽低于预设值才后继续写入设备端,在写入设备端前通过地址映射进行数据摆放;S4:读请求到来时,如果数据已在缓冲区中,则从缓冲区中读取数据,否则从设备端读取数据;S5:写请求和读请求完成后,返回数据和成功信息,并判断请求数是否达到预先设定阈值,达到则进行资源交换。
进一步,所述步骤S2中,采用为每个租户设立独立的垃圾回收机制。
进一步,租户能设置自己的垃圾回收阈值和预留空间大小,低于阈值便启动垃圾回收机制。
进一步,所述独立的垃圾回收机制为:选取租户所拥有的pblk_line中有效数据最少的一个,将其中的有效数据读取出来写入到缓冲区中,然后把该pblk_line的数据进行擦除,使用户得到一个新的干净的pblk_line。
进一步,所述步骤S3中,带宽控制是通过在FTL中计算用户I/O请求和垃圾回收I/O请求,控制租户单位时间内的I/O请求量来实现的。
进一步,所述步骤S3中,数据摆放是将每个租户的数据进行分离,具体为:将设备所有可用空间按pblk_line的结构组织起来,每个租户拥有预先设定限额的pblk_line的数量;检查某租户当前拥有的pblk_line内是否有空闲空间,如果没有,则分两种情况考虑:一是租户拥有的pblk_line的数量未到限额,那么就再给租户分配一条新的pblk_line;二是租户拥有的pblk_line的数量达到限额,写入失败并通知租户。
进一步,所述步骤S5中,资源交换的方法包括以下步骤:
S51:对所有租户的所有请求进行计数,达到预设阈值则启动资源交换;
S52:将每个租户的资源按照资源转化率进行排序,资源转化率即单位资源能够提升的读写效率;
S53:确定每个租户资源转化率最高和最低的资源,分别为租户想要换入和换出的资源;
S54:将每个租户想要换出的资源放到公共的资源池中,然后对于每个租户判断资源池是否满足其换入资源的需求,如果不满足,则将该租户的换出资源从资源池中拿走,如果满足则循环判断提供资源的租户,直至所有租户的换入资源都得到满足;
S55:找到所有满足条件的现有资源交换方案,并挑选出使总体转化率最高的资源交换方案进行资源交换。
一种面向多租户的FTL设置系统,其包括写请求理模块、垃圾回收模块、带宽判断模块、读请求处理模块和资源交换模块;
所述写请求处理模块在写请求到来时,先将写请求写入缓冲区,如果缓冲区满,则采用先进先出算法替换失效数据;
所述垃圾回收模块将缓冲区中的数据批量写入到设备端,如果设备端的可用空间小于预设阈值,则启动垃圾回收机制,反之则进入所述带宽判断模块;
所述带宽判断模块用于判断租户的带宽是否达到预设值,达到则返回所述垃圾回收模块,反之则等待直到租户带宽低于预设值才继续写入设备端,在写入设备端前通过地址映射进行数据摆放;
所述读请求处理模块在读请求到来时,如果数据已在缓冲区中,则从缓冲区中读取数据,否则从设备端读取数据;
所述资源交换模块在写请求和读请求完成后,返回数据和成功信息,并判断请求数是否达到预先设定阈值,达到则进行资源交换。
一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行上述方法中的任一方法。
一种计算设备,其包括:一个或多个处理器、存储器及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为所述一个或多个处理器执行,所述一个或多个程序包括用于执行上述的方法中的任一方法的指令。
本发明由于采取以上技术方案,其具有以下优点:本发明能够解决资源分配不公平、整体系统效率较低等问题。
附图说明
图1是现有技术中的LightNVM子系统结构示意图;
图2是本发明的整体流程示意图;
图3是数据摆放示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述。
在本发明的第一实施方式中,如图2所示,提供一种基于Open-Channel SSD的面向多租户的FTL设置方法,包括以下步骤:
S1:写请求到来时,先将写请求写入缓冲区,如果缓冲区满,则采用先进先出算法替换失效数据;
S2:将缓冲区中的数据批量写入到设备端,如果设备端的可用空间小于预设阈值,则启动垃圾回收机制,反之则进入步骤S3;
其中,设备端指的是物理块设备,是Open-Channel SSD;
S3:判断租户的带宽是否达到预设值,达到则返回步骤S2,反之则等待直到租户带宽低于预设值才继续写入设备端,在写入设备端前通过地址映射进行数据摆放:将数据摆放到租户当前空间中的第一个空闲位置,即租户正在写的pblk_line的第一个空闲地址。
S4:读请求到来时,如果数据已在缓冲区中,则从缓冲区中读取数据,否则从设备端读取数据。
S5:写请求和读请求完成后,返回数据和成功信息,并判断请求数是否达到预先设定阈值,当请求数达到预先设定阈值时,则进行资源交换。
上述步骤S2中,采用为每个租户设立独立的垃圾回收机制。由于固态硬盘颗粒的硬件特性,写入数据时总是异位写,导致会出现有效数据和无效数据摆在一起的情况。与pblk全局的垃圾回收机制相比,本发明为每个租户设立独立的垃圾回收机制,租户可以设置自己的垃圾回收阈值和预留空间大小,低于阈值便启动垃圾回收机制。具体方法为:选取租户所拥有的pblk_line中有效数据最少的一个,将其中的有效数据读取出来写入到缓冲区中,然后把该pblk_line的数据进行擦除,使用户得到一个新的干净的pblk_line。阈值较高,垃圾回收较为频繁,能给租户带来更高质量的写入速度和更低的延迟,牺牲了部分硬件使用寿命;阈值较低,垃圾回收次数较少,牺牲了部分读写质量的但是延长了硬件的使用寿命。每个租户只在自己的空间内做垃圾回收,不会影响其他租户的数据。
上述步骤S3中,带宽控制是通过在FTL中计算用户I/O请求和垃圾回收I/O请求,控制租户单位时间内的I/O请求量来实现带宽控制的目的。相较于现有的带宽控制,本发明在更底层做限速,能够涵盖垃圾回收I/O请求,从而使带宽控制更加精准。
上述步骤S3中,原有的数据摆放是pblk将所有租户的数据按写入先后的顺序混合在一起摆放,而本发明采用的数据摆放是将每个租户的数据进行分离(如图3所示)。具体为:将设备所有可用空间按pblk_line的结构组织起来,每个租户拥有预先设定限额的pblk_line的数量。检查某租户当前拥有的pblk_line内是否有空闲空间,如果没有,则分两种情况考虑:一是租户拥有的pblk_line的数量未到限额,那么就再给租户分配一条新的pblk_line;二是租户拥有的pblk_line的数量达到限额,写入失败并通知租户。
上述步骤S5中,每个租户拥有的资源有四种:读缓冲区、写缓冲区、带宽和空间。由于每个租户的I/O模式不同,租户对资源的利用率也不同,租户可能会存在瓶颈资源限制了读写效率。多个租户的瓶颈资源不一定相同,本发明采用资源交换使得每个租户的读写效率提升,从而达到总体最优的目的。资源交换的方法包括以下步骤:
S51:对所有租户的所有请求进行计数,达到预设阈值则启动资源交换;
S52:将每个租户的资源按照资源转化率进行排序,资源转化率即单位资源能够提升的读写效率;
S53:确定每个租户资源转化率最高和最低的资源,分别为租户想要换入和换出的资源;
S54:将每个租户想要换出的资源放到公共的资源池中,然后对于每个租户判断资源池是否满足其换入资源的需求,如果不满足,则将该租户的换出资源从资源池中拿走,如果满足则循环判断提供资源的租户,直至所有租户的换入资源都得到满足;
S55:找到所有满足条件的现有资源交换方案,并挑选出使总体转化率最高的资源交换方案进行资源交换。
在本发明的第二实施方式中,提供一种面向多租户的FTL设置系统,其包括写请求理模块、垃圾回收模块、带宽判断模块、读请求处理模块和资源交换模块;
写请求处理模块在写请求到来时,先将写请求写入缓冲区,如果缓冲区满,则采用先进先出算法替换失效数据;
垃圾回收模块将缓冲区中的数据批量写入到设备端,如果设备端的可用空间小于预设阈值,则启动垃圾回收机制,反之则进入带宽判断模块;
带宽判断模块用于判断租户的带宽是否达到预设值,达到则返回垃圾回收模块,反之则等待直到租户带宽低于预设值才继续写入设备端,在写入设备端前通过地址映射进行数据摆放;
读请求处理模块在读请求到来时,如果数据已在缓冲区中,则从缓冲区中读取数据,否则从设备端读取数据;
资源交换模块在写请求和读请求完成后,返回数据和成功信息,并判断请求数是否达到预先设定阈值,达到则进行资源交换。
在本发明的第三实施方式中,提供一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,指令当由计算设备执行时,使得计算设备执行如实施方式一中的任一方法。
在本发明的第四实施方式中,提供一种计算设备,其包括:一个或多个处理器、存储器及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为一个或多个处理器执行,一个或多个程序包括用于执行如实施方式一中的任一方法的指令。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

Claims (8)

1.一种面向多租户的FTL设置方法,其特征在于,包括以下步骤:
S1:写请求到来时,先将写请求写入缓冲区,如果缓冲区满,则采用先进先出算法替换失效数据;
S2:将缓冲区中的数据批量写入到设备端,如果设备端的可用空间小于预设阈值,则启动垃圾回收机制,反之则进入步骤S3;
S3:判断租户的带宽是否达到预设值,达到则返回步骤S2,反之则等待直到租户带宽低于预设值才后继续写入设备端,在写入设备端前通过地址映射进行数据摆放;
S4:读请求到来时,如果数据已在缓冲区中,则从缓冲区中读取数据,否则从设备端读取数据;
S5:写请求和读请求完成后,返回数据和成功信息,并判断请求数是否达到预先设定阈值,达到则进行资源交换;
所述步骤S3中,数据摆放是将每个租户的数据进行分离,具体为:将设备所有可用空间按pblk_line的结构组织起来,每个租户拥有预先设定限额的pblk_line的数量;检查某租户当前拥有的pblk_line内是否有空闲空间,如果没有,则分两种情况考虑:一是租户拥有的pblk_line的数量未到限额,那么就再给租户分配一条新的pblk_line;二是租户拥有的pblk_line的数量达到限额,写入失败并通知租户;
所述步骤S5中,资源交换的方法包括以下步骤:
S51:对所有租户的所有请求进行计数,达到预设阈值则启动资源交换;
S52:将每个租户的资源按照资源转化率进行排序,资源转化率即单位资源能够提升的读写效率;
S53:确定每个租户资源转化率最高和最低的资源,分别为租户想要换入和换出的资源;
S54:将每个租户想要换出的资源放到公共的资源池中,然后对于每个租户判断资源池是否满足其换入资源的需求,如果不满足,则将该租户的换出资源从资源池中拿走,如果满足则循环判断提供资源的租户,直至所有租户的换入资源都得到满足;
S55:找到所有满足条件的现有资源交换方案,并挑选出使总体转化率最高的资源交换方案进行资源交换。
2.如权利要求1所述FTL设置方法,其特征在于,所述步骤S2中,采用为每个租户设立独立的垃圾回收机制。
3.如权利要求2所述FTL设置方法,其特征在于,租户能设置自己的垃圾回收阈值和预留空间大小,低于阈值便启动垃圾回收机制。
4.如权利要求2所述FTL设置方法,其特征在于,所述独立的垃圾回收机制为:选取租户所拥有的pblk_line中有效数据最少的一个,将其中的有效数据读取出来写入到缓冲区中,然后把该pblk_line的数据进行擦除,使用户得到一个新的干净的pblk_line。
5.如权利要求1所述FTL设置方法,其特征在于,所述步骤S3中,带宽控制是通过在FTL中计算用户I/O请求和垃圾回收I/O请求,控制租户单位时间内的I/O请求量来实现的。
6.一种面向多租户的FTL设置系统,其特征在于,包括写请求理模块、垃圾回收模块、带宽判断模块、读请求处理模块和资源交换模块;
所述写请求处理模块在写请求到来时,先将写请求写入缓冲区,如果缓冲区满,则采用先进先出算法替换失效数据;
所述垃圾回收模块将缓冲区中的数据批量写入到设备端,如果设备端的可用空间小于预设阈值,则启动垃圾回收机制,反之则进入所述带宽判断模块;
所述带宽判断模块用于判断租户的带宽是否达到预设值,达到则返回所述垃圾回收模块,反之则等待直到租户带宽低于预设值才继续写入设备端,在写入设备端前通过地址映射进行数据摆放;
所述读请求处理模块在读请求到来时,如果数据已在缓冲区中,则从缓冲区中读取数据,否则从设备端读取数据;
所述资源交换模块在写请求和读请求完成后,返回数据和成功信息,并判断请求数是否达到预先设定阈值,达到则进行资源交换;
所述带宽判断模块中,数据摆放是将每个租户的数据进行分离,具体为:将设备所有可用空间按pblk_line的结构组织起来,每个租户拥有预先设定限额的pblk_line的数量;检查某租户当前拥有的pblk_line内是否有空闲空间,如果没有,则分两种情况考虑:一是租户拥有的pblk_line的数量未到限额,那么就再给租户分配一条新的pblk_line;二是租户拥有的pblk_line的数量达到限额,写入失败并通知租户;
所述资源交换模块中,资源交换的方法包括以下步骤:
S51:对所有租户的所有请求进行计数,达到预设阈值则启动资源交换;
S52:将每个租户的资源按照资源转化率进行排序,资源转化率即单位资源能够提升的读写效率;
S53:确定每个租户资源转化率最高和最低的资源,分别为租户想要换入和换出的资源;
S54:将每个租户想要换出的资源放到公共的资源池中,然后对于每个租户判断资源池是否满足其换入资源的需求,如果不满足,则将该租户的换出资源从资源池中拿走,如果满足则循环判断提供资源的租户,直至所有租户的换入资源都得到满足;
S55:找到所有满足条件的现有资源交换方案,并挑选出使总体转化率最高的资源交换方案进行资源交换。
7.一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行如权利要求1至5所述方法中的任一方法。
8.一种计算设备,其特征在于,包括:一个或多个处理器、存储器及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为所述一个或多个处理器执行,所述一个或多个程序包括用于执行如权利要求1至5所述的方法中的任一方法的指令。
CN202011078074.9A 2020-10-10 2020-10-10 面向多租户的ftl设置方法、系统、计算机程序及存储介质 Active CN112199044B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011078074.9A CN112199044B (zh) 2020-10-10 2020-10-10 面向多租户的ftl设置方法、系统、计算机程序及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011078074.9A CN112199044B (zh) 2020-10-10 2020-10-10 面向多租户的ftl设置方法、系统、计算机程序及存储介质

Publications (2)

Publication Number Publication Date
CN112199044A CN112199044A (zh) 2021-01-08
CN112199044B true CN112199044B (zh) 2023-04-25

Family

ID=74013953

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011078074.9A Active CN112199044B (zh) 2020-10-10 2020-10-10 面向多租户的ftl设置方法、系统、计算机程序及存储介质

Country Status (1)

Country Link
CN (1) CN112199044B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104160381A (zh) * 2012-03-08 2014-11-19 国际商业机器公司 多租户环境中租户特定数据集的管理
CN110515862A (zh) * 2018-05-22 2019-11-29 东芝存储器株式会社 存储器系统及非易失性存储器的控制方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9619381B2 (en) * 2013-12-24 2017-04-11 International Business Machines Corporation Collaborative health management in a storage system
US9710198B2 (en) * 2014-05-07 2017-07-18 Sandisk Technologies Llc Method and computing device for controlling bandwidth of swap operations
US10642497B2 (en) * 2016-08-31 2020-05-05 International Business Machines Corporation System, method and computer program product for instantiating blocks of a solid-state disk to include different flash characteristics
US10452290B2 (en) * 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
JP2019008730A (ja) * 2017-06-28 2019-01-17 東芝メモリ株式会社 メモリシステム
CN109558334B (zh) * 2017-09-27 2022-10-25 北京忆恒创源科技股份有限公司 垃圾数据回收方法及固态存储设备
CN112823331B (zh) * 2018-10-10 2024-03-29 阿里巴巴集团控股有限公司 用于具有较细粒度的并行多租户ssd中的数据恢复的系统和方法
CN111582739B (zh) * 2020-05-13 2022-02-18 华中科技大学 一种多租户固态盘性能隔离条件下实现高带宽的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104160381A (zh) * 2012-03-08 2014-11-19 国际商业机器公司 多租户环境中租户特定数据集的管理
CN110515862A (zh) * 2018-05-22 2019-11-29 东芝存储器株式会社 存储器系统及非易失性存储器的控制方法

Also Published As

Publication number Publication date
CN112199044A (zh) 2021-01-08

Similar Documents

Publication Publication Date Title
US20210216453A1 (en) Systems and methods for input/output computing resource control
TWI531965B (zh) 控制器及用以執行背景操作之方法
US8250271B2 (en) Command and interrupt grouping for a data storage device
EP2849076B1 (en) Dma transmission method and system
US8924659B2 (en) Performance improvement in flash memory accesses
EP3382557B1 (en) Method and apparatus for persistently caching storage data in a page cache
JP2018049522A (ja) メモリシステム及び制御方法
CN1961300A (zh) 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法
WO2013170731A1 (zh) 将数据写入存储设备的方法与存储设备
WO2012122796A1 (zh) 一种创建虚拟机的方法、虚拟机监控器及虚拟机系统
US10642727B1 (en) Managing migration events performed by a memory controller
CN108153482A (zh) Io命令处理方法与介质接口控制器
TW202101227A (zh) 閃存實體資源集合管理裝置及方法以及電腦程式產品
TW202015044A (zh) 資料處理方法及使用所述方法的儲存控制器
WO2024078342A1 (zh) 内存交换方法、装置、计算机设备及存储介质
Huang et al. Providing SLO compliance on NVMe SSDs through parallelism reservation
WO2024108825A1 (zh) 内存备份加速方法、装置、设备及非易失性可读存储介质
CN110647359A (zh) 半导体装置、其操作方法和具有其的层叠存储装置
US10459662B1 (en) Write failure handling for a memory controller to non-volatile memory
CN108153582B (zh) Io命令处理方法与介质接口控制器
CN112199044B (zh) 面向多租户的ftl设置方法、系统、计算机程序及存储介质
CN114253656A (zh) 用于微服务工作负载的覆盖式容器存储驱动器
CN104899158A (zh) 访存优化方法和装置
US11650747B2 (en) High throughput memory page reclamation
KR20150096177A (ko) 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치

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