CN116244219A - 一种基于raid缓存状态的落盘方法及系统 - Google Patents

一种基于raid缓存状态的落盘方法及系统 Download PDF

Info

Publication number
CN116244219A
CN116244219A CN202310239202.0A CN202310239202A CN116244219A CN 116244219 A CN116244219 A CN 116244219A CN 202310239202 A CN202310239202 A CN 202310239202A CN 116244219 A CN116244219 A CN 116244219A
Authority
CN
China
Prior art keywords
data
stripe
cache
cold
disk
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.)
Pending
Application number
CN202310239202.0A
Other languages
English (en)
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.)
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center 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 Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202310239202.0A priority Critical patent/CN116244219A/zh
Publication of CN116244219A publication Critical patent/CN116244219A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提出了一种基于RAID缓存状态的落盘方法及系统,其中,方法包括:响应于接收到主机的写请求,查找写请求中的数据在缓存中的命中情况,为未命中的数据分配缓存空间并写入;根据写请求中的目标逻辑块更新条带冷热数据表;更新全局门限及虚拟盘门限;响应于缓存中的数据达到全局门限或对应条带下的虚拟盘达到虚拟盘门限,基于条带冷热数据表发起落盘操作;根据冷条带内的有效数据数量采用读更新写方式或读构造写方式进行数据落盘。本发明以条带为单位进行冷热数据管理,降低了软件管理缓存的复杂度与性能需求,同时能够最大限度的进行RCW(读构造写),提高了磁盘带宽的利用率。使用硬件进行缓存数据查找提高了缓存管理的性能。

Description

一种基于RAID缓存状态的落盘方法及系统
技术领域
本发明涉及RAID存储技术领域,尤其涉及一种基于RAID缓存状态的落盘方法及系统。
背景技术
随着互联网技术的发展,对数据存取的性能与可靠性需求越来越高。RAID将多个独立硬盘组合为一个阵列,通过对数据的合理分布及冗余校验,提供了对外并行读写数据的性能以及能力范围内的数据恢复能力。近年来,云存储、人工智能等新兴应用对存储系统的性能提出了更高的要求,然而硬盘(尤其是磁盘HDD)已经无法支撑业务性能需求,在RAID控制器和硬盘之间增加缓存已成为必然。对缓存的管理维护,会对存储系统性能产生巨大的影响。如何针对RAID系统的特点设计一种高效的缓存管理方法是本领域内所亟需的。
发明内容
为解决上述技术问题,在本发明的第一方面,提出了一种基于RAID缓存状态的落盘方法,所述方法包括:响应于接收到主机的写请求,查找所述写请求中的数据在缓存中的命中情况,为未命中的数据分配缓存空间并写入;根据所述写请求中的目标逻辑块更新条带冷热数据表;更新全局门限及虚拟盘门限;响应于所述缓存中的数据达到所述全局门限或对应条带下的虚拟盘达到所述虚拟盘门限,基于所述条带冷热数据表发起落盘操作;根据冷条带内的有效数据数量采用读更新写方式或读构造写方式进行数据落盘。
在一个或多个实施例中,本发明的一种基于RAID缓存状态的落盘方法还包括:通过对缓存的硬件设计实现缓存查找功能、全局门限及虚拟盘门限管理功能以及条带信息管理功能;通过对缓存的软件设计维护所述条带冷热数据表以及基于所述冷热数据表的数据落盘功能。
在一个或多个实施例中,本发明的一种基于RAID缓存状态的落盘方法还包括:将写请求的目标逻辑块所涉及的条带加入条带环形队列;为所述条带配置参考行标志以及参考列标志,其中,参考行标志的每一位有效位表明对应子条带内的数据是否均为有效数据,参考列标志的每一位有效位表明对应子条带下的组成所述缓存的对应数据盘中是否存在效数据。
在一个或多个实施例中,根据所述写请求中的目标逻辑块更新条带冷热数据表,包括:从所述条带环形队列中获取条带信息;通过条带信息中的虚拟盘号和条带号计算哈希值,并在对应的哈希表中查找对应的条带信息块;当在所述哈希表中未查找到所述条带信息块时,向所述哈希表中插入新的条带信息块,并将对应的条带信息更新到该条带信息块中以及将该条带信息块插入到所述条带冷热数据表的表头;当在所述哈希表中查找到所述条带信息块时,将对应的条带信息更新到条带信息块中,并将该条带信息块插入到所述条带冷热数据表的表头。
在一个或多个实施例中,响应于所述缓存中的数据达到所述全局门限或对应条带下的虚拟盘达到所述虚拟盘门限,基于所述条带冷热数据表发起落盘操作,包括:对被判断为冷条带的一个或多个条带的存在于缓存中的数据进行落盘操作。
在一个或多个实施例中,更新全局门限及虚拟盘门限,包括:响应于每向缓存中的对应逻辑块中写入数据,为对应所述逻辑块的虚拟盘门限计数加1,并为全局门限计数加1。
在一个或多个实施例中,本发明的一种基于RAID缓存状态的落盘方法还包括:使用多级比较器对虚拟盘缓存的占用情况进行比较,输出缓存占用率最大的虚拟盘号。
在一个或多个实施例中,根据冷条带内的有效数据数量采用读更新写方式或读构造写方式进行数据落盘,包括:判断对应冷条带内的有效数据是否大于预设阈值;响应于冷条带内的有效数据大于预设阈值,按照读构造写方式对该冷条带内的有效数据进行数据落盘;响应于冷条带内的有效数据小于等于预设阈值,判断所述冷条带的参考行标志是否为0;对参考行标志为1的子条带进行数据落盘;对参考行标志为0且参考列标志为1的子条带从最低位开始按照读更新写方式进行数据落盘。
在一个或多个实施例中,本发明的一种基于RAID缓存状态的落盘方法还包括:响应于对应条带中的剩余数据为0,通过条带信息中的虚拟盘号和条带号计算哈希值,并在所述条带环形队列的哈希表中查找对应的条带信息块;响应于查找到所述条带信息块,将所述条带信息块和对应的条带信息从所述哈希表和所述条带冷热数据表中删除。
在本发明的第二方面,提出了一种基于RAID缓存状态的落盘系统,包括:缓存查找更新模块,配置用于响应于接收到主机的写请求,查找所述写请求中的数据在缓存中的命中情况,为未命中的数据分配缓存空间并写入;条带信息输出模块,配置用于根据的所述写请求中的目标逻辑块更新条带冷热数据表;门限管理模块,配置用于更新全局门限及虚拟盘门限;冷热数据维护模块,配置用于响应于所述缓存中的数据达到所述全局门限或对应条带下的虚拟盘达到所述虚拟盘门限,基于所述条带冷热数据表发起落盘操作;根据冷条带内的有效数据数量采用读更新写方式或读构造写方式进行数据落盘。
本发明的有益效果包括:本发明以条带为单位进行冷热数据管理,降低了软件管理缓存的复杂度与性能需求,增加了冷热数据管理的灵活度,同时能够最大限度的进行RCW(读构造写),提高了磁盘带宽的利用率。使用硬件进行缓存数据查找、分配与更新,以及落盘策略选择与输出,提高了缓存管理的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明的一种基于RAID缓存状态的落盘方法的工作流程图;
图2为本发明的缓存查找过程示意图;
图3为本发明的需要落盘的冷条带的数据结构示意图;
图4为本发明的环形条带结构示意图;
图5为本发明冷热数据维护模块框架示意图;
图6为本发明的条带信息块的组成示意图;
图7为本发明的落盘方式判断逻辑示意图;
图8为本发明的一种基于RAID缓存状态的落盘系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
图1为本发明的一种基于RAID缓存状态的落盘方法的工作流程图。如图1所示,本发明的一种基于RAID缓存状态的落盘方法的工作流程包括:步骤S1、响应于接收到主机的写请求,查找写请求中的数据在缓存中的命中情况,为未命中的数据分配缓存空间并写入;步骤S2、根据的写请求中的目标逻辑块更新条带冷热数据表;步骤S3、更新全局门限及虚拟盘门限;步骤S4、响应于缓存中的数据达到全局门限或对应条带下的虚拟盘达到虚拟盘门限,基于条带冷热数据表发起落盘操作;步骤S5、根据冷条带内的有效数据数量采用读更新写方式或读构造写方式进行数据落盘。
在本实施例中,本发明提出了以逻辑块为单元对缓存数据进行管理,以条带为单元进行缓存冷热数据管理的缓存管理方法,实现了以条带的冷热状态而有选择性的对缓存中的数据进行落盘,从而实现了对RAID缓存数据的高效管理。
在一个实现例中,为了进一步提升对缓存数据的处理速度,本发明的方法还包括:通过对缓存的硬件设计实现缓存查找功能、全局门限及虚拟盘门限管理功能以及条带信息管理功能;通过对缓存的软件设计维护条带冷热数据表以及基于冷热数据表的数据落盘功能。
具体的,软件实现和硬件实现的区别包括:通过cpu建立从指令到电路逻辑映射关系,将代码编译为机器指令,然后就通过cpu译码、执行的即为软件设计实现方式。而硬件设计实现中,没有上述中的从指令到电路逻辑映射关系,而是直接采用电路的线路实现逻辑,不可更改。此外,软件映射成的指令也是一种数据,用电容存储在内存,然后读入cpu执行。软件就是数据+程序,通过cpu解释程序然后修改数据。而硬件则是电路,直接把执行逻辑烧录到电路中。
更具体的,缓存查找功能(由于采用硬件设计实现,也即后续中的缓存查找模块)主要负责接收两方面的查找请求,一是来自上游命令处理模块(如主机)的请求(如写请求);二是来自冷热数据维护的查找请求,查找对象即为由条带信息管理功能维护的条带环形队列。
其中,对于上游命令处理模块的请求。如主机的写请求,其主要包含要访问的虚拟盘号(由为组成缓存的物理磁盘统一分配逻辑地址并重新划分而确定)、起始逻辑块(虚拟盘中的存储单位)地址及长度。图2为本发明的缓存查找过程示意图。如图2所示,设目前缓存的逻辑块3-7中存在有效数据,当主机的写请求要向缓存的逻辑块1-14写入数据时,缓存查找模块查找到缓存中的逻辑块1-2、8-14中不存在有效数据,则为1-2、8-14数据分配新的存储空间,并将主机的写数据更新到逻辑块1-2、3-7及8-14的空间列表中。其中,逻辑块3-7即为缓存查找命中的逻辑块。
b)软件冷热数据维护模块的请求。当缓存数据需要落盘时,由软件冷热数据维护模块以条带为单位向缓存查找模块发起查找请求,该请求主要包含虚拟盘号,起始逻辑块地址、长度、参考行标志、参考列标志及条带内有效数据块数。为了实现上述查找,
在进一步的实施例中,本发明的方法还包括:将写请求的目标逻辑块所涉及的条带加入条带环形队列;为条带配置参考行标志以及参考列标志,其中,参考行标志的每一位有效位表明对应子条带内的数据是否均为有效数据,参考列标志的每一位有效位表明对应子条带下的组成缓存的对应数据盘中是否存在效数据。
具体的,设需要落盘的条带内数据如图3所示,图3为本发明的需要落盘的冷条带的数据结构示意图。其中参考行标志、参考列标志有效位与条带大小和RAID数据盘数有关。参考行标志的每一位有效位表明该子条带内数据是否都有效,如果都有效,则对应位置1,对应图3中的例子参考行标志为0x6。参考列标志的每一位有效位表明该条带在缓存中对应的数据盘数是否有有效数据,缓存中该盘在该条带内有任意数据有效,则对应位置1,对应图3中例子参考列标志为0xF。条带内有效数据块数为该条带在缓存中的有效数据个数,对应图3所示的例子,条带内有效数据块数为14。硬件缓存查找模块收到软件的请求后,会根据软件提供的条带信息,进行落盘方式判断,并输出对应的数据列表以供落盘。
图4为本发明的环形条带结构示意图。条带信息输出模块主要功能是根据缓存查找更新模块的操作将条带最新信息通知软件进行冷热数据及条带信息维护。条带信息主要包括虚拟盘号、条带号、参考行标志、参考列标志、条带内有效数据块数及操作标志。操作标志主要表明产生本次条带信息的操作是主机操作还是落盘操作。条带信息会放在一个环形队列中,硬件维护尾索引,条带信息输出模块每输出一条条带信息,尾索引加1。软件维护头索引,软件每取走一条条带信息,头索引加1。当头索引等于尾索引时,环形队列为空。条带信息环形队列如图4所示:软件根据轮询(或中断)该环形队列,如果该队列中存在有效信息,则根据该信息维护冷热数据链表。
图5为本发明冷热数据维护模块框架示意图。冷热数据维护模块主要包含一个哈希表、多个哈希冲突链表(图中虚线)以及多个(与虚拟盘数量一致)冷热数据链表(图中实线)。哈希冲突链表和冷热数据链表中的元素都是条带信息块。条带信息块的组成如图6所示;其中,
1.)哈希表和哈希冲突链表
哈希表主要用于软件从条带信息环形队列中取出相应信息后快速计算索引该条带信息是否存在于冷热数据表中。哈希索引通过虚拟盘号和条带号计算得出。哈希冲突链表为解决虚拟盘号和条带号计算得出相同的索引值引起的哈希冲突,为单向链表。为提高哈希查找速度,哈希冲突链表为有序表,按照虚拟盘号进行排序,虚拟盘号一致的,按照条带号排序。
2.)冷热数据链表
冷热数据链表维护虚拟盘的冷热数据。软件根据硬件输出的条带信息对该链表进行管理。
在进一步的实施例中,响应于缓存中的数据达到全局门限或对应条带下的虚拟盘达到虚拟盘门限,基于条带冷热数据表发起落盘操作,包括:对被判断为冷条带的一个或多个条带的存在于缓存中的数据进行落盘操作。
在进一步的实施例中,更新全局门限及虚拟盘门限,包括:响应于每向缓存中的对应逻辑块中写入数据,为对应逻辑块的虚拟盘门限计数加1,并为全局门限计数加1。
在进一步的实施例中,方法还包括:使用多级比较器对虚拟盘缓存的占用情况进行比较,输出缓存占用率最大的虚拟盘号。在一个可选的实施例中,在对冷条带的数据进行落盘时,优先对该条带下的缓存占用率最大的虚拟盘中的数据进行落盘。
具体的,缓存管理支持设置缓存占用总门限和每个虚拟盘占用门限。当缓存占用总数超过总门限或某个虚拟盘超过设置门限后,门限管理模块通过中断或事件通知软件进行落盘操作。门限管理模块会使用多级比较器对虚拟盘缓存占用情况进行比较,输出缓存占用率最大(或剩余缓存数最少)的虚拟盘号。其中,
虚拟盘缓存占用率=虚拟盘缓存占用数/虚拟盘缓存门限。
考虑到如果支持的虚拟盘数量较多,需要多个除法器做运算,考虑到除法器硬件效率的问题,可以优化为输出虚拟盘剩余缓存数最小的虚拟盘号。虚拟盘剩余缓存数=虚拟盘缓存门限-虚拟盘缓存占用数。当软件收到超门限通知后,读取比较器输出寄存器,就可以知道需要进行优先落盘的虚拟盘号,然后将该虚拟盘数据进行落盘操作。
在进一步的实施例中,图7为本发明的落盘方式判断逻辑示意图。如图7所示,本发明根据冷条带内的有效数据数量采用读更新写方式或读构造写方式进行数据落盘,包括:判断对应冷条带内的有效数据是否大于预设阈值;响应于冷条带内的有效数据大于预设阈值,按照读构造写方式对该冷条带内的有效数据进行数据落盘;响应于冷条带内的有效数据小于等于预设阈值,判断冷条带的参考行标志是否为0;对参考行标志为1的子条带进行数据落盘;对参考行标志为0且参考列标志为1的子条带从最低位开始按照读更新写方式进行数据落盘(上述过程可参见图3);当参考列标志为0时,表明对应条带中的数据均被取走,则需要通知固件没有有效数据,从而退出数据落盘中断。
在进一步的实施例中,本发明的方法还包括:响应于对应条带中的剩余数据为0,通过条带信息中的虚拟盘号和条带号计算哈希值,并在条带环形队列的哈希表中查找对应的条带信息块;响应于查找到条带信息块,将条带信息块和对应的条带信息从哈希表和条带冷热数据表中删除。
具体的,哈希表和哈希冲突链表的作用如下:哈希表主要用于软件从条带信息环形队列中取出相应信息后快速计算索引该条带信息是否存在于冷热数据表中。哈希索引通过虚拟盘号和条带号计算得出。哈希冲突链表为解决虚拟盘号和条带号计算得出相同的索引值引起的哈希冲突,为单向链表。为提高哈希查找速度,哈希冲突链表为有序表,按照虚拟盘号进行排序,虚拟盘号一致的,按照条带号排序。
条带冷热数据表的作用如下:冷热数据链表维护虚拟盘的冷热数据。软件根据硬件输出的条带信息对该链表进行管理。
通过上述方式,软件以条带为单位进行冷热数据管理,降低了软件管理缓存的复杂度与性能需求,增加了冷热数据管理的灵活度,同时能够最大限度的进行RCW(读构造写),提高了磁盘带宽的利用率。使用硬件进行缓存数据查找、分配与更新,以及落盘策略选择与输出,提高了缓存管理的性能。
在本发明的第二方面,图8为本发明的一种基于RAID缓存状态的落盘系统的结构示意图。如图8所示,本发明的一种基于RAID缓存状态的落盘系统包括:缓存查找更新模块100,配置用于响应于接收到主机的写请求,查找写请求中的数据在缓存中的命中情况,为未命中的数据分配缓存空间并写入;条带信息输出模块200,配置用于根据的写请求中的目标逻辑块更新条带冷热数据表;门限管理模块300,配置用于更新全局门限及虚拟盘门限;冷热数据维护模块400,配置用于响应于缓存中的数据达到全局门限或对应条带下的虚拟盘达到虚拟盘门限,基于条带冷热数据表发起落盘操作;根据冷条带内的有效数据数量采用读更新写方式或读构造写方式进行数据落盘。
在上述落盘系统中本发明由软件进行冷热数据维护、硬件进行缓存查找更新;硬件针对虚拟盘缓存占用排序输出供软件快速选择落盘目标;硬件输出参考行标志、参考列标志与条带内有效数据个数等信息由软件记录,落盘时软件再将相关信息提供给硬件进行决策。通过上述方式,软件以条带为单位进行冷热数据管理,降低了软件管理缓存的复杂度与性能需求,增加了冷热数据管理的灵活度,同时能够最大限度的进行RCW(读构造写),提高了磁盘带宽的利用率。使用硬件进行缓存数据查找、分配与更新,以及落盘策略选择与输出,提高了缓存管理的性能。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (10)

1.一种基于RAID缓存状态的落盘方法,其特征在于,所述方法包括:
响应于接收到主机的写请求,查找所述写请求中的数据在缓存中的命中情况,为未命中的数据分配缓存空间并写入;
根据所述写请求中的目标逻辑块更新条带冷热数据表;
更新全局门限及虚拟盘门限;
响应于所述缓存中的数据达到所述全局门限或对应条带下的虚拟盘达到所述虚拟盘门限,基于所述条带冷热数据表发起落盘操作;
根据冷条带内的有效数据数量采用读更新写方式或读构造写方式进行数据落盘。
2.根据权利要求1所述的一种基于RAID缓存状态的落盘方法,其特征在于,所述方法还包括:
通过对缓存的硬件设计实现缓存查找功能、全局门限及虚拟盘门限管理功能以及条带信息管理功能;
通过对缓存的软件设计维护所述条带冷热数据表以及基于所述冷热数据表的数据落盘功能。
3.根据权利要求1所述的一种基于RAID缓存状态的落盘方法,其特征在于,所述方法还包括:
将写请求的目标逻辑块所涉及的条带加入条带环形队列;
为所述条带配置参考行标志以及参考列标志,
其中,参考行标志的每一位有效位表明对应子条带内的数据是否均为有效数据,参考列标志的每一位有效位表明对应子条带下的组成所述缓存的对应数据盘中是否存在效数据。
4.根据权利要求3所述的一种基于RAID缓存状态的落盘方法,其特征在于,根据所述写请求中的目标逻辑块更新条带冷热数据表,包括:
从所述条带环形队列中获取条带信息;
通过条带信息中的虚拟盘号和条带号计算哈希值,并在对应的哈希表中查找对应的条带信息块;
当在所述哈希表中未查找到所述条带信息块时,向所述哈希表中插入新的条带信息块,并将对应的条带信息更新到该条带信息块中以及将该条带信息块插入到所述条带冷热数据表的表头;
当在所述哈希表中查找到所述条带信息块时,将对应的条带信息更新到条带信息块中,并将该条带信息块插入到所述条带冷热数据表的表头。
5.根据权利要求4所述的一种基于RAID缓存状态的落盘方法,其特征在于,响应于所述缓存中的数据达到所述全局门限或对应条带下的虚拟盘达到所述虚拟盘门限,基于所述条带冷热数据表发起落盘操作,包括:
对被判断为冷条带的一个或多个条带的存在于缓存中的数据进行落盘操作。
6.根据权利要求1所述的一种基于RAID缓存状态的落盘方法,其特征在于,更新全局门限及虚拟盘门限,包括:
响应于每向缓存中的对应逻辑块中写入数据,为对应所述逻辑块的虚拟盘门限计数加1,并为全局门限计数加1。
7.根据权利要求6所述的一种基于RAID缓存状态的落盘方法,其特征在于,所述方法还包括:
使用多级比较器对虚拟盘缓存的占用情况进行比较,输出缓存占用率最大的虚拟盘号。
8.根据权利要求3所述的一种基于RAID缓存状态的落盘方法,其特征在于,根据冷条带内的有效数据数量采用读更新写方式或读构造写方式进行数据落盘,包括:
判断对应冷条带内的有效数据是否大于预设阈值;
响应于冷条带内的有效数据大于预设阈值,按照读构造写方式对该冷条带内的有效数据进行数据落盘;
响应于冷条带内的有效数据小于等于预设阈值,判断所述冷条带的参考行标志是否为0;
对参考行标志为1的子条带进行数据落盘;
对参考行标志为0且参考列标志为1的子条带从最低位开始按照读更新写方式进行数据落盘。
9.根据权利要求8所述的一种基于RAID缓存状态的落盘方法,其特征在于,所述方法还包括:
响应于对应条带中的剩余数据为0,通过条带信息中的虚拟盘号和条带号计算哈希值,并在所述条带环形队列的哈希表中查找对应的条带信息块;
响应于查找到所述条带信息块,将所述条带信息块和对应的条带信息从所述哈希表和所述条带冷热数据表中删除。
10.一种基于RAID缓存状态的落盘系统,其特征在于,包括:
缓存查找更新模块,配置用于响应于接收到主机的写请求,查找所述写请求中的数据在缓存中的命中情况,为未命中的数据分配缓存空间并写入;
条带信息输出模块,配置用于根据的所述写请求中的目标逻辑块更新条带冷热数据表;
门限管理模块,配置用于更新全局门限及虚拟盘门限;
冷热数据维护模块,配置用于响应于所述缓存中的数据达到所述全局门限或对应条带下的虚拟盘达到所述虚拟盘门限,基于所述条带冷热数据表发起落盘操作;根据冷条带内的有效数据数量采用读更新写方式或读构造写方式进行数据落盘。
CN202310239202.0A 2023-03-09 2023-03-09 一种基于raid缓存状态的落盘方法及系统 Pending CN116244219A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310239202.0A CN116244219A (zh) 2023-03-09 2023-03-09 一种基于raid缓存状态的落盘方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310239202.0A CN116244219A (zh) 2023-03-09 2023-03-09 一种基于raid缓存状态的落盘方法及系统

Publications (1)

Publication Number Publication Date
CN116244219A true CN116244219A (zh) 2023-06-09

Family

ID=86633006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310239202.0A Pending CN116244219A (zh) 2023-03-09 2023-03-09 一种基于raid缓存状态的落盘方法及系统

Country Status (1)

Country Link
CN (1) CN116244219A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116501267A (zh) * 2023-06-27 2023-07-28 苏州浪潮智能科技有限公司 一种独立冗余磁盘阵列卡控制方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116501267A (zh) * 2023-06-27 2023-07-28 苏州浪潮智能科技有限公司 一种独立冗余磁盘阵列卡控制方法和装置
CN116501267B (zh) * 2023-06-27 2023-09-29 苏州浪潮智能科技有限公司 一种独立冗余磁盘阵列卡控制方法和装置

Similar Documents

Publication Publication Date Title
JP6832187B2 (ja) データストレージサブシステムにおけるキャッシングのための方法およびシステム
CN110502452B (zh) 访问电子设备中的混合缓存的方法及装置
CN101221537B (zh) 降级数据的方法和系统
US10725878B2 (en) Storage apparatus, storage system, and control method of storage system for dynamically securing free space when a storage apparatus is disused
US20180129600A1 (en) Memory system and control method
JP5943095B2 (ja) 複合不揮発性記憶装置のためのデータ移行
US7321955B2 (en) Control device, control method and storage medium recording a control program for controlling write-back schedule of data from cache memory to a plurality of storage devices
US11403224B2 (en) Method and system for managing buffer device in storage system
US9015111B2 (en) Storage system and storage system control method
US20200167252A1 (en) Method and apparatus for managing storage system
CN104137081A (zh) 偏移在先的高等待时间操作的存储器重排序队列
JPH0816482A (ja) フラッシュメモリを用いた記憶装置およびその記憶制御方法
US9063794B2 (en) Multi-threaded processor context switching with multi-level cache
CN110858162B (zh) 内存管理方法及装置、服务器
US9569381B2 (en) Scheduler for memory
JP6402647B2 (ja) データ配置プログラム、データ配置装置およびデータ配置方法
US20080244118A1 (en) Method and apparatus for sharing buffers
CN116244219A (zh) 一种基于raid缓存状态的落盘方法及系统
US9465745B2 (en) Managing access commands by multiple level caching
CN106164874B (zh) 多核系统中数据访问者目录的访问方法及设备
JP7500991B2 (ja) ストレージ制御装置及びストレージ制御プログラム
US9858204B2 (en) Cache device, cache system, and cache method
US20070294475A1 (en) Raid apparatus, cache management method, and computer program product
CN106537321B (zh) 存取文件的方法、装置和存储系统
JP2005339299A (ja) ストレージ装置のキャッシュ制御方法

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