CN116501267B - 一种独立冗余磁盘阵列卡控制方法和装置 - Google Patents
一种独立冗余磁盘阵列卡控制方法和装置 Download PDFInfo
- Publication number
- CN116501267B CN116501267B CN202310768358.8A CN202310768358A CN116501267B CN 116501267 B CN116501267 B CN 116501267B CN 202310768358 A CN202310768358 A CN 202310768358A CN 116501267 B CN116501267 B CN 116501267B
- Authority
- CN
- China
- Prior art keywords
- tree
- new application
- drop
- hash
- cache node
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 99
- 230000004044 response Effects 0.000 claims abstract description 43
- 230000008569 process Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 17
- 230000000903 blocking effect Effects 0.000 claims description 13
- 230000015572 biosynthetic process Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000003780 insertion Methods 0.000 description 5
- 230000037431 insertion Effects 0.000 description 5
- 238000012163 sequencing technique Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012005 ligant binding assay Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
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/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache 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
- G06F3/0658—Controller construction arrangements
-
- 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/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种独立冗余磁盘阵列卡控制方法和装置;涉及计算机系统及存储技术领域;包括接收来自主机的读写数据,依据所述读写数据确定新申请缓存节点;判断所述新申请缓存节点是否满足预设缓存超限条件;响应于所述新申请缓存节点不满足预设缓存超限条件,将所述新申请缓存节点挂入所述形成树;响应于所述新申请缓存节点满足预设缓存超限条件,依据所述落盘树进行数据落盘。本发明实施例可以提高独立冗余磁盘阵列卡的写性能。
Description
技术领域
本发明涉及计算机系统及存储技术领域,特别是涉及一种独立冗余磁盘阵列卡控制方法、一种独立冗余磁盘阵列卡控制装置,一种电子设备和一种存储介质。
背景技术
近些年随着科技的高速发展,越来越多的用户数据需要安全高效的存储在数据中心,面对与日俱增的大数据计算业务量,用户不仅对数据可靠性和数据安全性的要求越来越高,而且对读写I/O(Input/Output,输入输出)数据效率的要求呈指数级增长。因此当今存储领域的专有技术人员一直在两个方面寻求突破:提高存储I/O性能和增加数据安全性。在提高I/O性能方面,业界在软RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列)存储技术的基础上提出了硬RAID存储技术,硬RAID存储技术的最重要构成单元是RAID卡。而目前RAID卡的写性能,将极大的增加RAID阵列中条带的不一致风险概率。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种独立冗余磁盘阵列卡控制方法、一种独立冗余磁盘阵列卡控制装置,一种电子设备和一种存储介质。
在本发明的第一个方面,本发明实施例公开了一种独立冗余磁盘阵列卡控制方法,独立冗余磁盘阵列卡配置有形成树和落盘树;所述形成树用于所述独立冗余磁盘阵列卡内的真实物理地址进行排序生成地址顺序,所述落盘树用于按所述地址顺序进行数据落盘,所述方法包括:
接收来自主机的读写数据,依据所述读写数据确定新申请缓存节点;
判断所述新申请缓存节点是否满足预设缓存超限条件;
响应于所述新申请缓存节点不满足预设缓存超限条件,将所述新申请缓存节点挂入所述形成树;
响应于所述新申请缓存节点满足预设缓存超限条件,依据所述落盘树进行数据落盘。
可选地,所述独立冗余磁盘阵列卡对应有哈希表,所述读写数据包括主机输入输出值,所述依据所述读写数据确定新申请缓存节点的步骤包括:
在所述哈希表中,依据所述主机输入输出值,确定未命中哈希项;
依据所述未命中哈希项确定所述新申请缓存节点。
可选地,在所述依据所述读写数据确定新申请缓存节点的步骤之后,所述方法还包括:
锁定所述未命中哈希项。
可选地,所述方法还包括:
判断所述未命中哈希项是否锁定成功;
响应于所述未命中哈希项锁定成功,执行所述判断所述新申请缓存节点是否满足预设缓存超限条件的步骤;
响应于所述未命中哈希项未锁定成功,等待所述独立冗余磁盘阵列卡的锁定冲突解除后执行所述锁定所述未命中哈希项的步骤。
可选地,所述依据所述未命中哈希项确定所述新申请缓存节点的包括:
对所述未命中哈希项分配缓存节点,得到所述新申请缓存节点;
向所述新申请缓存节点填充预设独立冗余磁盘阵列卡参数。
可选地,所述预设独立冗余磁盘阵列卡参数包括独立冗余磁盘阵列卡参数真实逻辑地址和独立冗余磁盘阵列卡参数身份标识;所述向所述新申请缓存节点填充预设独立冗余磁盘阵列卡参数的步骤包括:
向所述新申请缓存节点填充所述独立冗余磁盘阵列卡参数真实逻辑地址和所述独立冗余磁盘阵列卡参数身份标识。
可选地,所述方法还包括:
将所述新申请缓存节点挂入所述哈希表。
可选地,在所述将所述新申请缓存节点挂入所述哈希表的步骤之后,所述方法还包括:
解锁所述未命中哈希项。
可选地,所述方法还包括:
响应于所述未命中哈希项发生冲突,将所述新申请缓存节点挂在预设哈希冲突链表中。
可选地,所述将所述新申请缓存节点挂入所述形成树的步骤包括:
在所述形成树中申请新的树节点;
将所述新申请缓存节点挂入所述新的树节点。
可选地,所述在所述哈希表中,依据所述主机输入输出值,确定未命中哈希项的步骤包括:
在所述哈希表中,查找所述主机输入输出值命中的哈希项为命中哈希项;
将所述哈希表中所述命中哈希项之外的哈希项确定为所述未命中哈希项。
可选地,所述依据所述落盘树进行数据落盘的步骤包括:
判断是否存在所述落盘树;
响应于存在所述落盘树,执行所述落盘树进行数据落盘;
响应于不存在所述落盘树,依据所述形成树生成所述落盘树,执行所述落盘树,进行数据落盘。
可选地,所述响应于存在所述落盘树,依据所述形成树生成所述落盘树,执行所述落盘树,进行数据落盘的步骤包括:
阻塞所述落盘树,执行所述落盘树进行落盘,直至落盘完成;并继续处理所述读写数据。
可选地,所述响应于不存在所述落盘树,依据所述形成树生成所述落盘树,执行所述落盘树,进行数据落盘的步骤包括:
响应于不存在所述落盘树,将所述形成树转化为所述落盘树,执行所述落盘树,进行数据落盘。
可选地,所述将所述形成树转化为所述落盘树,执行所述落盘树,进行数据落盘的步骤包括:
将所述形成树转化为所述落盘树,阻塞所述落盘树,执行所述落盘树进行落盘的步骤,直至落盘完成;并继续处理所述读写数据。
可选地,所述预设缓存超限条件为在所述独立冗余磁盘阵列卡的当前缓存节点上增加所述新申请缓存节点超过预设缓存占有率。
可选地,所述形成树与所述落盘树均为红黑树。
在本发明的第二个方面,本发明实施例公开了一种独立冗余磁盘阵列卡控制装置,独立冗余磁盘阵列卡配置有形成树和落盘树;所述形成树用于所述独立冗余磁盘阵列卡内的真实物理地址进行排序生成地址顺序,所述落盘树用于按所述地址顺序进行数据落盘,所述装置包括:
申请模块,用于接收来自主机的读写数据,依据所述读写数据确定新申请缓存节点;
第一判断模块,用于判断所述新申请缓存节点是否满足预设缓存超限条件;
挂入模块,用于响应于所述新申请缓存节点不满足预设缓存超限条件,将所述新申请缓存节点挂入所述形成树;
落盘模块,用于响应于所述新申请缓存节点满足预设缓存超限条件,依据所述落盘树进行数据落盘。
在本发明的第三个方面,本发明实施例还公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的独立冗余磁盘阵列卡控制方法的步骤。
在本发明的第四个方面,本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的独立冗余磁盘阵列卡控制方法的步骤。
本发明实施例包括以下优点:
本发明实施例通过接收来自主机的读写数据,依据所述读写数据确定新申请缓存节点;判断所述新申请缓存节点是否满足预设缓存超限条件;响应于所述新申请缓存节点不满足预设缓存超限条件,将所述新申请缓存节点挂入所述形成树;响应于所述新申请缓存节点满足预设缓存超限条件,依据所述落盘树进行数据落盘。通过在确定缓存节点后,形成树将主机下发的随机读写数据做真实物理地址排序,供落盘树在真实物理地址顺序进行落盘,以提高磁盘写性能。
附图说明
图1是本发明的一种独立冗余磁盘阵列卡控制方法实施例的步骤流程图;
图2是本发明的另一种独立冗余磁盘阵列卡控制方法实施例的步骤流程图;
图3是本发明的另一种独立冗余磁盘阵列卡控制方法实施例的红黑树结构示意图;
图4是本发明的另一种独立冗余磁盘阵列卡控制方法实施例的形成树和落盘树结构示意图;
图5是本发明的另一种独立冗余磁盘阵列卡控制方法实施例的哈希冲突示意图;
图6是本发明的一种独立冗余磁盘阵列卡控制方法示例的步骤流程图;
图7是本发明的一种独立冗余磁盘阵列卡控制装置实施例的结构框图;
图8是本发明实施例提供的一种电子设备的结构框图;
图9是本发明实施例提供的一种存储介质的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
在存储领域,目前业界有软RAID存储技术和硬RAID存储技术,软RAID存储技术顾名思义就是对RAID阵列中条带和分块的管理都使用软件实现,而硬RAID存储技术(即RAID卡)对数据的管理是通过硬件实现。在RAID卡中增加RAID卡控制器,RAID卡控制器是一颗芯片,由I/O处理器、磁盘控制器、磁盘连接器和缓存等一系列组件组成。显而易见,RAID卡将软RAID存储技术中的一些算法和功能都交给了硬件实现,因此RAID卡的I/O性能会强过软RAID存储技术的I/O性能。缓存作为RAID卡控制器的重要组件,可以极大提高存储性能,加速读写响应。当写I/O数据的策略为WB策略(Write Back,指写回模式)时,主机请求的写I/O数据会暂存在RAID卡的缓存中,I/O数据写入缓存后RAID卡立即向主机发送数据写入完成信号(即立即响应主机),这样极大的降低了给主机的响应延迟。目前业界设计的RAID卡控制器在创建RAID阵列时,会生成管理缓存的缓存节点(cache)。因为目前业界RAID卡没有一种将多个缓存节点维护的随机读写数据按照连续PBA地址落盘的技术手段,所以当主机下发的随机读写数据在磁盘上的PBA是不连续的情况出现时,不连续的PBA地址会导致极低的落盘效率。如果将多个缓存节点维护的随机读写数据按照连续PBA地址落盘的话,那么可以大大提升磁盘的落盘速度,因此如何将随机PBA地址按照连续PBA地址下盘已成为本技术领域专业技术人员亟待解决的问题。
综上可以观察到,不论是软RAID存储技术还是硬RAID存储技术(RAID卡)的技术核心都是RAID阵列,提升RAID阵列的缓存性能就能够提升RAID卡的缓存性能。在RAID卡需要处理大量的主机I/O请求时,由于RAID卡较低的缓存性能,最终将极大的增加RAID阵列中条带stripe的不一致风险概率。
参照图1,示出了本发明的一种独立冗余磁盘阵列卡控制方法实施例的步骤流程图,独立冗余磁盘阵列卡配置有形成树和落盘树;所述形成树用于所述独立冗余磁盘阵列卡内的真实物理地址进行排序生成地址顺序,所述落盘树用于按所述地址顺序进行数据落盘。
在本发明实施例中,独立冗余磁盘阵列卡配置有形成树和落盘树两种树形数据结构。形成树是对独立冗余磁盘阵列卡内的真实物理地址进行排序生成地址顺序,落盘树用于按地址顺序进行数据落盘,从而通过形成树和落盘树对数据缓存进行落盘控制。
所述独立冗余磁盘阵列卡控制方法具体可以包括如下步骤:
步骤101,接收来自主机的读写数据,依据所述读写数据确定新申请缓存节点。
接收来自主机的读写数据,可以为读写数据确定对应新申请缓存节点,通过该新申请缓存节点确定对应的缓存处理流程。
其中,该读写数据是为主机的随机读写数据,该随机读写数据是指地址随机的数据。
步骤102,判断所述新申请缓存节点是否满足预设缓存超限条件。
在本发明实施例中,需要判断新增加的新申请缓存节点,是否满足预设缓存超限条件;以此判断独立冗余磁盘阵列卡在当前的缓存节点基础上,增加新申请缓存节点是否会导致缓存超限。
步骤103,响应于所述新申请缓存节点不满足预设缓存超限条件,将所述新申请缓存节点挂入所述形成树。
当新申请缓存节点不满足预设缓存超限条件时,说明增加该新申请缓存节点不会导致缓存超限,此时可以响应于新申请缓存节点不满足预设缓存超限条件,将新申请缓存节点挂入到形成树,通过挂入形成树中,对新申请缓存节点的真实物理地址进行排序。
步骤104,响应于所述新申请缓存节点满足预设缓存超限条件,依据所述落盘树进行数据落盘。
当新申请缓存节点满足预设缓存超限条件时,说明增加该新申请缓存节点会导致缓存超限,此时,可以响应于新申请缓存节点满足预设缓存超限条件,先控制落盘树进行数据落盘,以释放出缓存资源供该新申请缓存节点进行使用。
本发明实施例通过接收来自主机的读写数据,依据所述读写数据确定新申请缓存节点;判断所述新申请缓存节点是否满足预设缓存超限条件;响应于所述新申请缓存节点不满足预设缓存超限条件,将所述新申请缓存节点挂入所述形成树;响应于所述新申请缓存节点满足预设缓存超限条件,依据所述落盘树进行数据落盘。通过在确定缓存节点后,形成树将主机下发的随机读写数据做真实物理地址排序,供落盘树在真实物理地址顺序进行落盘,以提高磁盘写性能。
参照图2,示出了本发明的另一种独立冗余磁盘阵列卡控制方法实施例的步骤流程图,独立冗余磁盘阵列卡配置有形成树和落盘树;所述形成树用于所述独立冗余磁盘阵列卡内的真实物理地址进行排序生成地址顺序,所述落盘树用于按所述地址顺序进行数据落盘。
在本发明实施例中,形成树和落盘树可以均为红黑树。红黑树的结构可以参照图3,红黑树的节点用来维护PBA(Physical Block Address,真实物理地址)先后顺序,缓存节点用来保存真正的主机下发的读写数据以及互斥访问标志等。当插入的缓存节点存在前续连续的缓存节点时,则不需要插入红黑树节点,直接将新的缓存节点挂入连续节点链表中,以减少红黑树操作。
形成树用来做新写入数据的插入操作,落盘棵树用来做老写入数据的落盘操作。考虑到红黑树删除逻辑复杂,且需要频繁进行再平衡调整,而落盘需要将整个树上的节点遍历删除,所以不需要对落盘树进行再平衡,将落盘的数据直接从落盘树中删除即可。落盘PBA排序需要先从小到大落盘,再从大到小删除。所以可以参照图4,形成树和落盘树的插入顺序也不相同,红黑树排序相反,但连续的缓存节点数据链表排序相同。
此外,独立冗余磁盘阵列卡对应有哈希表,主机的读写数据包括主机输入输出值即主机IO。
所述独立冗余磁盘阵列卡控制方法具体可以包括如下步骤:
步骤201,接收来自主机的读写数据,在所述哈希表中,依据所述主机输入输出值,确定未命中哈希项。
接收来自主机的读写数据,可以在哈希表中,依据所述主机输入输出值,确定出未命中哈希项,其中未命中哈希项在哈希表中未被读写数据命中的哈希项。
在本发明的一可选实施例中,所述在所述哈希表中,依据所述主机输入输出值,确定未命中哈希项的步骤包括:
子步骤S2011,在所述哈希表中,查找所述主机输入输出值命中的哈希项为命中哈希项。
子步骤S2012,将所述哈希表中所述命中哈希项之外的哈希项确定为所述未命中哈希项。
在本发明实施例中,可以才使用哈希表数据结构来快速查找缓存是否命中,具体hash(哈希)函数可以根据不同的需求进行设置本发明实施例不作具体限定。
为此,可以在哈希表中,依据哈希函数查找主机输入输出值命中的哈希项为命中哈希项,命中哈希项即为已经具有对应的真实物理地址的哈希项,并不需要对其进行排序;然后再将哈希表中命中哈希项之外的哈希项确定为未命中哈希项,通过在未命中哈希项中进行数据处理。
步骤202,锁定所述未命中哈希项。
在确定未命中哈希项后,可以对未命中哈希项进行锁定,避免其他操作对未命中哈希项进行处理导致出现错误。
在本发明的一可选实施例中,为了保证所述未命中哈希项,可以对锁定进行判断。所述方法还包括:
步骤S1,判断所述未命中哈希项是否锁定成功;
在锁定后,可以判断对未命中哈希项是否真正的锁定成功,以此进行不同的操作。
步骤S2,响应于所述未命中哈希项锁定成功,执行所述判断所述新申请缓存节点是否满足预设缓存超限条件的步骤;
当未命中哈希项锁定成功时,响应于未命中哈希项锁定成功,执行所述判断所述新申请缓存节点是否满足预设缓存超限条件的步骤,对未命中哈希项挂入红黑树前进行负载的判断。
步骤S3,响应于所述未命中哈希项未锁定成功,等待所述独立冗余磁盘阵列卡的锁定冲突解除后执行所述锁定所述未命中哈希项的步骤。
当未命中哈希项未锁定成功时,即独立冗余磁盘阵列卡有其他操作对哈希表中的项目进行处理,此时,响应于未命中哈希项未锁定成功,等待独立冗余磁盘阵列卡的锁定冲突解除后,再次执行锁定所述未命中哈希项的步骤,直至将未命中哈希项锁定成功。
步骤203,判断所述新申请缓存节点是否满足预设缓存超限条件。
在锁定成功后,对新申缓存节点进行判断,确定其是否满足预设缓存超限条件。
具体地,所述预设缓存超限条件为在所述独立冗余磁盘阵列卡的当前缓存节点上增加所述新申请缓存节点超过预设缓存占有率。
即在可以判断新申缓存节点增加到独立冗余磁盘阵列卡的当前缓存节点上是否会导致超过预设缓存占有率。其中预设缓存占有率可以根据实际情况进行设置,本发明实施例对此不作限定。
步骤204,依据所述未命中哈希项确定所述新申请缓存节点。
在本发明实施例中,可以依据未命中哈希项确定对应的新申请缓存节点。以新增到红黑树中。
在本发明的一可选实施例中,所述依据所述未命中哈希项确定所述新申请缓存节点的包括:
子步骤S2041,对所述未命中哈希项分配缓存节点,得到所述新申请缓存节点;
可以在缓存中向未命中哈希项分配缓存节点分配缓存节点,将该缓存确定为新申请缓存节点。
子步骤S2042,向所述新申请缓存节点填充预设独立冗余磁盘阵列卡参数。
在对新申请缓存节点填充对应的预设独立冗余磁盘阵列卡参数。
具体地,所述预设独立冗余磁盘阵列卡参数包括独立冗余磁盘阵列卡参数真实逻辑地址和独立冗余磁盘阵列卡参数身份标识;所述向所述新申请缓存节点填充预设独立冗余磁盘阵列卡参数的步骤包括:向所述新申请缓存节点填充所述独立冗余磁盘阵列卡参数真实逻辑地址和所述独立冗余磁盘阵列卡参数身份标识。
在实际应用中,可以向新申请缓存节点填充所述独立冗余磁盘阵列卡参数真实逻辑地址和所述独立冗余磁盘阵列卡参数身份标识,以使新申请缓存节点具备对应的地址信息和标识。
步骤205,将所述新申请缓存节点挂入所述哈希表。
对于填充预设独立冗余磁盘阵列卡参数的新申请缓存节点挂入到哈希表中,令该新申请缓存节点可以在哈希表中具备对应的值。
在本发明的一可选实施例中,所述方法还包括:
步骤S1,响应于所述未命中哈希项发生冲突,将所述新申请缓存节点挂在预设哈希冲突链表中。
此外,有由于当前确定未命中哈希项可能存在与其他操作的未命中哈希项可能会存在冲突,在未命中哈希项发生冲突时,可以将新申请缓存节点挂在预设哈希冲突链表中。可以如图5,将缓存节点挂在哈希冲突链表中。
步骤206,解锁所述未命中哈希项。
在将新申请缓存节点挂入所述哈希表后,可以对未命中哈希项进行解锁,释放哈希表供其他操作使用。
步骤207,响应于所述新申请缓存节点不满足预设缓存超限条件,将所述新申请缓存节点挂入所述形成树。
在新申请缓存节点不满足预设缓存超限条件时,则可以将新申请缓存节点挂入到形成树中,对其进行排序。
在本发明的一可选实施例中,所述将所述新申请缓存节点挂入所述形成树的步骤包括:
子步骤S2071,在所述形成树中申请新的树节点;
子步骤S2072,将所述新申请缓存节点挂入所述新的树节点。
在形成树中申请新的树节点,并将新申请缓存节点挂入该新的树节点中,通过新的树节点在形成树中进行排序。
步骤208,响应于所述新申请缓存节点满足预设缓存超限条件,依据所述落盘树进行数据落盘。
当新申请缓存节点满足预设缓存超限条件时,则需要进行数据落盘,以释放出缓存资源。
在本发明的一可选实施例中,所述依据所述落盘树进行数据落盘的步骤包括:
子步骤S2081,判断是否存在所述落盘树;
可以判断当前是否存在落盘树,以确定是否可以直接进行数据落盘。
子步骤S2082,响应于存在所述落盘树,执行所述依据所述落盘树进行数据落盘的步骤;
当存在落盘树时,可以直接执行落盘树各个树节点的操作进行数据落盘。
具体地,所述响应于存在所述落盘树,执行所述依据所述落盘树进行数据落盘的步骤包括:阻塞所述落盘树,执行所述依据所述落盘树进行数据落盘的步骤,直至落盘完成;并继续处理所述读写数据。
当存在落盘树,可以新的输入输出操作阻塞到落盘树,直到有落盘操作完成缓存资源被释放时,继续执行被阻塞的新的输入输出操作。
子步骤S2083,响应于不存在所述落盘树,依据所述形成树生成所述落盘树,执行所述依据所述落盘树进行数据落盘的步骤。
当不存在落盘树时,则依据形成树生成所述落盘树,在执行落盘树中的各个树节点,进行数据落盘。
具体地,所述将所述形成树转化为所述落盘树,执行所述依据所述落盘树进行数据落盘的步骤包括:将所述形成树转化为所述落盘树,阻塞所述落盘树,执行所述依据所述落盘树进行数据落盘的步骤,直至落盘完成;并继续处理所述读写数据。
当不存在落盘树时,将形成树转为落盘树,且新输入输出操作阻塞到落盘树,落盘树进行落盘操作后有新缓存资源时,继续执行被阻塞的新的输入输出操作。
本发明实施例中,通过形成树将主机下发的随机读写数据做独立冗余磁盘阵列卡内物理地址排序,供落盘树在落盘时按物理地址顺序进行落盘操作,以提高磁盘写性能;并且对形成树和落盘树行乒乓算法,形成树用来做新IO插入,落盘树用来做老IO数据落盘操作;减少插入和删除的耦合;并且落盘PBA排序需要先从小到大落盘,再从大到小删除,所以形成树和落盘树的插入顺序也不相同,红黑树排序相反,但连续的缓存节点数据链表排序相同;并且冷热数据可通过形成树和落盘树进行天然支持。当访问的热数据位于正在落盘树中时,将其挪到形成树中,可避免本轮落盘,让热数据继续留在缓存中,可以很好的将热数据继续留在缓存中,提高缓存效率。
为了使本领域技术人员能够更好地理解本发明实施例,下面通过一个例子对本发明实施例加以说明:
参照图6,示出了本发明的一种独立冗余磁盘阵列卡控制方法示例的步骤流程图,所述独立冗余磁盘阵列卡控制方法如下:
1、根据主机IO查找哈希表命中的缓存节点,锁定未命中数据的Hash项。
2、判断是否锁定成功,未成功则等待锁定冲突解除,重新进行操作;锁定成功则继续判断新申请缓存节点是否会导致RAID阵列的缓存占有率超过预设值。
3、超过预设值则继续判断是否存在落盘树,如果此时存在落盘树,则新I/O阻塞到落盘树,直到有落盘操作完成缓存资源被释放时,继续执行被阻塞的新I/O。如果不存在落盘树,则将形成树转为落盘树,且新I/O阻塞到落盘树,落盘树进行落盘操作后有新缓存资源时,继续执行被阻塞的新I/O。
4、未超过预设值则为未命中数据分配缓存节点,向缓存节点填充RAID阵列的LBA和RAID阵列的ID。
5、将缓存节点挂入哈希表,并解锁Hash项。
6、申请新的红黑树(形成树)节点,进行红黑树节点插入。
7、将缓存节点挂入红黑树节点下。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图7,示出了本发明的一种独立冗余磁盘阵列卡控制装置实施例的结构框图,独立冗余磁盘阵列卡配置有形成树和落盘树;所述形成树用于所述独立冗余磁盘阵列卡内的真实物理地址进行排序生成地址顺序,所述落盘树用于按所述地址顺序进行数据落盘,所述独立冗余磁盘阵列卡控制装置具体可以包括如下模块:
申请模块701,用于接收来自主机的读写数据,依据所述读写数据确定新申请缓存节点;
第一判断模块702,用于判断所述新申请缓存节点是否满足预设缓存超限条件;
挂入模块703,用于响应于所述新申请缓存节点不满足预设缓存超限条件,将所述新申请缓存节点挂入所述形成树;
落盘模块704,用于响应于所述新申请缓存节点满足预设缓存超限条件,依据所述落盘树进行数据落盘。
在本发明的一可选实施例中,所述独立冗余磁盘阵列卡对应有哈希表,所述申请模块701包括:
未命中哈希项确定子模块,用于在所述哈希表中,依据所述主机输入输出值,确定未命中哈希项;
新申请缓存节点确定子模块,用于依据所述未命中哈希项确定所述新申请缓存节点。
在本发明的一可选实施例中,所述装置还包括:
锁定模块,用于锁定所述未命中哈希项。
在本发明的一可选实施例中,所述装置还包括:
第二判断模块,用于判断所述未命中哈希项是否锁定成功;
第一执行模块,用于响应于所述未命中哈希项锁定成功,执行所述判断所述新申请缓存节点是否满足预设缓存超限条件的步骤;
第二执行模块,用于响应于所述未命中哈希项未锁定成功,等待所述独立冗余磁盘阵列卡的锁定冲突解除后执行所述锁定所述未命中哈希项的步骤。
在本发明的一可选实施例中,所述新申请缓存节点确定子模块包括:
分配单元,用于对所述未命中哈希项分配缓存节点,得到所述新申请缓存节点;
填充单元,用于向所述新申请缓存节点填充预设独立冗余磁盘阵列卡参数。
在本发明的一可选实施例中,所述预设独立冗余磁盘阵列卡参数包括独立冗余磁盘阵列卡参数真实逻辑地址和独立冗余磁盘阵列卡参数身份标识;所述填充单元包括:
填充子单元,用于向所述新申请缓存节点填充所述独立冗余磁盘阵列卡参数真实逻辑地址和所述独立冗余磁盘阵列卡参数身份标识。
在本发明的一可选实施例中,所述装置还包括:
挂表模块,用于将所述新申请缓存节点挂入所述哈希表。
在本发明的一可选实施例中,所述装置还包括:
解锁模块,用于解锁所述未命中哈希项。
在本发明的一可选实施例中,所述装置还包括:
冲突模块,用于响应于所述未命中哈希项发生冲突,将所述新申请缓存节点挂在预设哈希冲突链表中。
在本发明的一可选实施例中,所述挂入模块703包括:
树节点申请子模块,用于在所述形成树中申请新的树节点;
节点挂入子模块,用于将所述新申请缓存节点挂入所述新的树节点。
在本发明的一可选实施例中,所述未命中哈希项确定子模块包括:
命中单元,用于在所述哈希表中,查找所述主机输入输出值命中的哈希项为命中哈希项;
未命中哈希项确定单元,用于将所述哈希表中所述命中哈希项之外的哈希项确定为所述未命中哈希项。
在本发明的一可选实施例中,所述落盘模块704包括:
落盘判断子模块,用于判断是否存在所述落盘树;
第一落盘子模块,用于响应于存在所述落盘树,执行所述落盘树,进行数据落盘;
第二落盘子模块,用响应于不存在所述落盘树,依据所述形成树生成所述落盘树,执行所述落盘树,进行数据落盘。
在本发明的一可选实施例中,所述第一落盘子模块包括:
第一落盘执行单元,用于阻塞所述落盘树,执行所述落盘树进行落盘,直至落盘完成;并继续处理所述读写数据。
在本发明的一可选实施例中,所述第二落盘子模块包括:
第二落盘执行单元,用于响应于不存在所述落盘树,将所述形成树转化为所述落盘树,执行所述落盘树,进行数据落盘。
在本发明的一可选实施例中,所述第二落盘执行单元包括:
转化子单元,用于将所述形成树转化为所述落盘树,阻塞所述落盘树,执行所述落盘树进行落盘,直至落盘完成;并继续处理所述读写数据。
在本发明的一可选实施例中,所述预设缓存超限条件为在所述独立冗余磁盘阵列卡的当前缓存节点上增加所述新申请缓存节点超过预设缓存占有率。
在本发明的一可选实施例中,所述形成树与所述落盘树均为红黑树。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
参照图8,本发明实施例还提供了一种电子设备,包括:
处理器801和存储介质802,所述存储介质802存储有所述处理器801可执行的计算机程序,当电子设备运行时,所述处理器801执行所述计算机程序,以执行如本发明实施例任一项所述的独立冗余磁盘阵列卡控制方法。所述独立冗余磁盘阵列卡控制方法包括:独立冗余磁盘阵列卡配置有形成树和落盘树;所述形成树用于所述独立冗余磁盘阵列卡内的真实物理地址进行排序生成地址顺序,所述落盘树用于按所述地址顺序进行数据落盘,所述方法包括:
接收来自主机的读写数据,依据所述读写数据确定新申请缓存节点;
判断所述新申请缓存节点是否满足预设缓存超限条件;
响应于所述新申请缓存节点不满足预设缓存超限条件,将所述新申请缓存节点挂入所述形成树;
响应于所述新申请缓存节点满足预设缓存超限条件,依据所述落盘树进行数据落盘。
可选地,所述独立冗余磁盘阵列卡对应有哈希表,所述读写数据包括主机输入输出值,所述依据所述读写数据确定新申请缓存节点的步骤包括:
在所述哈希表中,依据所述主机输入输出值,确定未命中哈希项;
依据所述未命中哈希项确定所述新申请缓存节点。
可选地,在所述依据所述读写数据确定新申请缓存节点的步骤之后,所述方法还包括:
锁定所述未命中哈希项。
可选地,所述方法还包括:
判断所述未命中哈希项是否锁定成功;
响应于所述未命中哈希项锁定成功,执行所述判断所述新申请缓存节点是否满足预设缓存超限条件的步骤;
响应于所述未命中哈希项未锁定成功,等待所述独立冗余磁盘阵列卡的锁定冲突解除后执行所述锁定所述未命中哈希项的步骤。
可选地,所述依据所述未命中哈希项确定所述新申请缓存节点的包括:
对所述未命中哈希项分配缓存节点,得到所述新申请缓存节点;
向所述新申请缓存节点填充预设独立冗余磁盘阵列卡参数。
可选地,所述预设独立冗余磁盘阵列卡参数包括独立冗余磁盘阵列卡参数真实逻辑地址和独立冗余磁盘阵列卡参数身份标识;所述向所述新申请缓存节点填充预设独立冗余磁盘阵列卡参数的步骤包括:
向所述新申请缓存节点填充所述独立冗余磁盘阵列卡参数真实逻辑地址和所述独立冗余磁盘阵列卡参数身份标识。
可选地,所述方法还包括:
将所述新申请缓存节点挂入所述哈希表。
可选地,在所述将所述新申请缓存节点挂入所述哈希表的步骤之后,所述方法还包括:
解锁所述未命中哈希项。
可选地,所述方法还包括:
响应于所述未命中哈希项发生冲突,将所述新申请缓存节点挂在预设哈希冲突链表中。
可选地,所述将所述新申请缓存节点挂入所述形成树的步骤包括:
在所述形成树中申请新的树节点;
将所述新申请缓存节点挂入所述新的树节点。
可选地,所述在所述哈希表中,依据所述主机输入输出值,确定未命中哈希项的步骤包括:
在所述哈希表中,查找所述主机输入输出值命中的哈希项为命中哈希项;
将所述哈希表中所述命中哈希项之外的哈希项确定为所述未命中哈希项。
可选地,所述依据所述落盘树进行数据落盘的步骤包括:
判断是否存在所述落盘树;
响应于存在所述落盘树,执行所述落盘树进行数据落盘;
响应于不存在所述落盘树,依据所述形成树生成所述落盘树,执行所述落盘树,进行数据落盘。
可选地,所述响应于存在所述落盘树,依据所述形成树生成所述落盘树,执行所述落盘树,进行数据落盘的步骤包括:
阻塞所述落盘树,执行所述落盘树进行落盘,直至落盘完成;并继续处理所述读写数据。
可选地,所述响应于不存在所述落盘树,依据所述形成树生成所述落盘树,执行所述落盘树,进行数据落盘的步骤包括:
响应于不存在所述落盘树,将所述形成树转化为所述落盘树,执行所述落盘树,进行数据落盘。
可选地,所述将所述形成树转化为所述落盘树,执行所述落盘树,进行数据落盘的步骤包括:
将所述形成树转化为所述落盘树,阻塞所述落盘树,执行所述落盘树进行落盘的步骤,直至落盘完成;并继续处理所述读写数据。
可选地,所述预设缓存超限条件为在所述独立冗余磁盘阵列卡的当前缓存节点上增加所述新申请缓存节点超过预设缓存占有率。
可选地,所述形成树与所述落盘树均为红黑树。
其中,存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
参照图9,本发明实施例还提供了一种计算机可读存储介质901,所述存储介质901上存储有计算机程序,所述计算机程序被处理器运行时执行如本发明实施例任一项所述的独立冗余磁盘阵列卡控制方法。所述独立冗余磁盘阵列卡控制方法包括:独立冗余磁盘阵列卡配置有形成树和落盘树;所述形成树用于所述独立冗余磁盘阵列卡内的真实物理地址进行排序生成地址顺序,所述落盘树用于按所述地址顺序进行数据落盘,所述方法包括:
接收来自主机的读写数据,依据所述读写数据确定新申请缓存节点;
判断所述新申请缓存节点是否满足预设缓存超限条件;
响应于所述新申请缓存节点不满足预设缓存超限条件,将所述新申请缓存节点挂入所述形成树;
响应于所述新申请缓存节点满足预设缓存超限条件,依据所述落盘树进行数据落盘。
可选地,所述独立冗余磁盘阵列卡对应有哈希表,所述读写数据包括主机输入输出值,所述依据所述读写数据确定新申请缓存节点的步骤包括:
在所述哈希表中,依据所述主机输入输出值,确定未命中哈希项;
依据所述未命中哈希项确定所述新申请缓存节点。
可选地,在所述依据所述读写数据确定新申请缓存节点的步骤之后,所述方法还包括:
锁定所述未命中哈希项。
可选地,所述方法还包括:
判断所述未命中哈希项是否锁定成功;
响应于所述未命中哈希项锁定成功,执行所述判断所述新申请缓存节点是否满足预设缓存超限条件的步骤;
响应于所述未命中哈希项未锁定成功,等待所述独立冗余磁盘阵列卡的锁定冲突解除后执行所述锁定所述未命中哈希项的步骤。
可选地,所述依据所述未命中哈希项确定所述新申请缓存节点的包括:
对所述未命中哈希项分配缓存节点,得到所述新申请缓存节点;
向所述新申请缓存节点填充预设独立冗余磁盘阵列卡参数。
可选地,所述预设独立冗余磁盘阵列卡参数包括独立冗余磁盘阵列卡参数真实逻辑地址和独立冗余磁盘阵列卡参数身份标识;所述向所述新申请缓存节点填充预设独立冗余磁盘阵列卡参数的步骤包括:
向所述新申请缓存节点填充所述独立冗余磁盘阵列卡参数真实逻辑地址和所述独立冗余磁盘阵列卡参数身份标识。
可选地,所述方法还包括:
将所述新申请缓存节点挂入所述哈希表。
可选地,在所述将所述新申请缓存节点挂入所述哈希表的步骤之后,所述方法还包括:
解锁所述未命中哈希项。
可选地,所述方法还包括:
响应于所述未命中哈希项发生冲突,将所述新申请缓存节点挂在预设哈希冲突链表中。
可选地,所述将所述新申请缓存节点挂入所述形成树的步骤包括:
在所述形成树中申请新的树节点;
将所述新申请缓存节点挂入所述新的树节点。
可选地,所述在所述哈希表中,依据所述主机输入输出值,确定未命中哈希项的步骤包括:
在所述哈希表中,查找所述主机输入输出值命中的哈希项为命中哈希项;
将所述哈希表中所述命中哈希项之外的哈希项确定为所述未命中哈希项。
可选地,所述依据所述落盘树进行数据落盘的步骤包括:
判断是否存在所述落盘树;
响应于存在所述落盘树,执行所述落盘树进行数据落盘;
响应于不存在所述落盘树,依据所述形成树生成所述落盘树,执行所述落盘树,进行数据落盘。
可选地,所述响应于存在所述落盘树,依据所述形成树生成所述落盘树,执行所述落盘树,进行数据落盘的步骤包括:
阻塞所述落盘树,执行所述落盘树进行落盘,直至落盘完成;并继续处理所述读写数据。
可选地,所述响应于不存在所述落盘树,依据所述形成树生成所述落盘树,执行所述落盘树,进行数据落盘的步骤包括:
响应于不存在所述落盘树,将所述形成树转化为所述落盘树,执行所述落盘树,进行数据落盘。
可选地,所述将所述形成树转化为所述落盘树,执行所述落盘树,进行数据落盘的步骤包括:
将所述形成树转化为所述落盘树,阻塞所述落盘树,执行所述落盘树进行落盘的步骤,直至落盘完成;并继续处理所述读写数据。
可选地,所述预设缓存超限条件为在所述独立冗余磁盘阵列卡的当前缓存节点上增加所述新申请缓存节点超过预设缓存占有率。
可选地,所述形成树与所述落盘树均为红黑树。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种独立冗余磁盘阵列卡控制方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (19)
1.一种独立冗余磁盘阵列卡控制方法,其特征在于,独立冗余磁盘阵列卡配置有形成树和落盘树;所述形成树用于所述独立冗余磁盘阵列卡内的真实物理地址进行排序生成地址顺序,所述落盘树用于按所述地址顺序进行数据落盘,所述方法包括:
接收来自主机的读写数据,依据所述读写数据确定新申请缓存节点;
判断所述新申请缓存节点是否满足预设缓存超限条件;
响应于所述新申请缓存节点不满足预设缓存超限条件,将所述新申请缓存节点挂入所述形成树;
响应于所述新申请缓存节点满足预设缓存超限条件,依据所述落盘树进行数据落盘;
其中,所述独立冗余磁盘阵列卡对应有哈希表,所述读写数据包括主机输入输出值,所述依据所述读写数据确定新申请缓存节点的步骤包括:
在所述哈希表中,依据所述主机输入输出值,确定未命中哈希项;
依据所述未命中哈希项确定所述新申请缓存节点。
2.根据权利要求1所述的方法,其特征在于,在所述依据所述读写数据确定新申请缓存节点的步骤之后,所述方法还包括:
锁定所述未命中哈希项。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
判断所述未命中哈希项是否锁定成功;
响应于所述未命中哈希项锁定成功,执行所述判断所述新申请缓存节点是否满足预设缓存超限条件的步骤;
响应于所述未命中哈希项未锁定成功,等待所述独立冗余磁盘阵列卡的锁定冲突解除后执行所述锁定所述未命中哈希项的步骤。
4.根据权利要求1所述的方法,其特征在于,所述依据所述未命中哈希项确定所述新申请缓存节点的包括:
对所述未命中哈希项分配缓存节点,得到所述新申请缓存节点;
向所述新申请缓存节点填充预设独立冗余磁盘阵列卡参数。
5.根据权利要求4所述的方法,其特征在于,所述预设独立冗余磁盘阵列卡参数包括独立冗余磁盘阵列卡参数真实逻辑地址和独立冗余磁盘阵列卡参数身份标识;所述向所述新申请缓存节点填充预设独立冗余磁盘阵列卡参数的步骤包括:
向所述新申请缓存节点填充所述独立冗余磁盘阵列卡参数真实逻辑地址和所述独立冗余磁盘阵列卡参数身份标识。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
将所述新申请缓存节点挂入所述哈希表。
7.根据权利要求6所述的方法,其特征在于,在所述将所述新申请缓存节点挂入所述哈希表的步骤之后,所述方法还包括:
解锁所述未命中哈希项。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
响应于所述未命中哈希项发生冲突,将所述新申请缓存节点挂在预设哈希冲突链表中。
9.根据权利要求1所述的方法,其特征在于,所述将所述新申请缓存节点挂入所述形成树的步骤包括:
在所述形成树中申请新的树节点;
将所述新申请缓存节点挂入所述新的树节点。
10.根据权利要求1所述的方法,其特征在于,所述在所述哈希表中,依据所述主机输入输出值,确定未命中哈希项的步骤包括:
在所述哈希表中,查找所述主机输入输出值命中的哈希项为命中哈希项;
将所述哈希表中所述命中哈希项之外的哈希项确定为所述未命中哈希项。
11.根据权利要求1所述的方法,其特征在于,所述依据所述落盘树进行数据落盘的步骤包括:
判断是否存在所述落盘树;
响应于存在所述落盘树,执行所述落盘树进行数据落盘的步骤;
响应于不存在所述落盘树,依据所述形成树生成所述落盘树,执行所述落盘树,进行数据落盘。
12.根据权利要求11所述的方法,其特征在于,所述响应于存在所述落盘树,依据所述形成树生成所述落盘树,执行所述落盘树,进行数据落盘的步骤包括:
阻塞所述落盘树,执行所述落盘树进行落盘,直至落盘完成;并继续处理所述读写数据。
13.根据权利要求11所述的方法,其特征在于,所述响应于不存在所述落盘树,依据所述形成树生成所述落盘树,执行所述落盘树,进行数据落盘的步骤包括:
响应于不存在所述落盘树,将所述形成树转化为所述落盘树,执行所述落盘树,进行数据落盘。
14.根据权利要求13所述的方法,其特征在于,所述将所述形成树转化为所述落盘树,执行所述落盘树,进行数据落盘的步骤包括:
将所述形成树转化为所述落盘树,阻塞所述落盘树,执行所述落盘树进行落盘,直至落盘完成;并继续处理所述读写数据。
15.根据权利要求1所述的方法,其特征在于,所述预设缓存超限条件为在所述独立冗余磁盘阵列卡的当前缓存节点上增加所述新申请缓存节点超过预设缓存占有率。
16.根据权利要求1所述的方法,其特征在于,所述形成树与所述落盘树均为红黑树。
17.一种独立冗余磁盘阵列卡控制装置,其特征在于,独立冗余磁盘阵列卡配置有形成树和落盘树;所述形成树用于所述独立冗余磁盘阵列卡内的真实物理地址进行排序生成地址顺序,所述落盘树用于按所述地址顺序进行数据落盘,所述装置包括:
申请模块,用于接收来自主机的读写数据,依据所述读写数据确定新申请缓存节点;
第一判断模块,用于判断所述新申请缓存节点是否满足预设缓存超限条件;
挂入模块,用于响应于所述新申请缓存节点不满足预设缓存超限条件,将所述新申请缓存节点挂入所述形成树;
落盘模块,用于响应于所述新申请缓存节点满足预设缓存超限条件,依据所述落盘树进行数据落盘;
其中,所述独立冗余磁盘阵列卡对应有哈希表,所述申请模块包括:
未命中哈希项确定子模块,用于在所述哈希表中,依据所述主机输入输出值,确定未命中哈希项;
新申请缓存节点确定子模块,用于依据所述未命中哈希项确定所述新申请缓存节点。
18.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至16中任一项所述的独立冗余磁盘阵列卡控制方法的步骤。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至16中任一项所述的独立冗余磁盘阵列卡控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310768358.8A CN116501267B (zh) | 2023-06-27 | 2023-06-27 | 一种独立冗余磁盘阵列卡控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310768358.8A CN116501267B (zh) | 2023-06-27 | 2023-06-27 | 一种独立冗余磁盘阵列卡控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116501267A CN116501267A (zh) | 2023-07-28 |
CN116501267B true CN116501267B (zh) | 2023-09-29 |
Family
ID=87330529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310768358.8A Active CN116501267B (zh) | 2023-06-27 | 2023-06-27 | 一种独立冗余磁盘阵列卡控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116501267B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117055822B (zh) * | 2023-10-11 | 2024-02-06 | 苏州元脑智能科技有限公司 | NVME SSD Raid卡板载备电系统及控制方法 |
CN117075822B (zh) * | 2023-10-17 | 2024-02-06 | 苏州元脑智能科技有限公司 | 数据读写方法、装置、设备及存储介质 |
CN117234431B (zh) * | 2023-11-14 | 2024-02-06 | 苏州元脑智能科技有限公司 | 缓存管理方法、装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040056308A (ko) * | 2002-12-23 | 2004-06-30 | 한국전자통신연구원 | 다중 레이드 제어기를 통한 데이터 분산 공유 레이드 제어시스템 |
CN1851635A (zh) * | 2006-06-01 | 2006-10-25 | 杭州华为三康技术有限公司 | 对廉价磁盘冗余阵列进行读写操作的方法和系统 |
CN110147204A (zh) * | 2019-05-22 | 2019-08-20 | 苏州浪潮智能科技有限公司 | 一种元数据落盘方法、装置、系统及计算机可读存储介质 |
CN110795042A (zh) * | 2019-10-29 | 2020-02-14 | 北京浪潮数据技术有限公司 | 一种全闪存储系统元数据写缓存刷盘方法及相关组件 |
CN111400083A (zh) * | 2020-03-17 | 2020-07-10 | 上海七牛信息技术有限公司 | 数据存储方法及系统、存储介质 |
CN113868280A (zh) * | 2021-11-25 | 2021-12-31 | 芯和半导体科技(上海)有限公司 | 参数化单元数据更新方法、装置、计算机设备和存储介质 |
WO2022126551A1 (zh) * | 2020-12-17 | 2022-06-23 | 北京涛思数据科技有限公司 | 一种时序数据的存储方法 |
CN116244219A (zh) * | 2023-03-09 | 2023-06-09 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于raid缓存状态的落盘方法及系统 |
-
2023
- 2023-06-27 CN CN202310768358.8A patent/CN116501267B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040056308A (ko) * | 2002-12-23 | 2004-06-30 | 한국전자통신연구원 | 다중 레이드 제어기를 통한 데이터 분산 공유 레이드 제어시스템 |
CN1851635A (zh) * | 2006-06-01 | 2006-10-25 | 杭州华为三康技术有限公司 | 对廉价磁盘冗余阵列进行读写操作的方法和系统 |
CN110147204A (zh) * | 2019-05-22 | 2019-08-20 | 苏州浪潮智能科技有限公司 | 一种元数据落盘方法、装置、系统及计算机可读存储介质 |
CN110795042A (zh) * | 2019-10-29 | 2020-02-14 | 北京浪潮数据技术有限公司 | 一种全闪存储系统元数据写缓存刷盘方法及相关组件 |
CN111400083A (zh) * | 2020-03-17 | 2020-07-10 | 上海七牛信息技术有限公司 | 数据存储方法及系统、存储介质 |
WO2022126551A1 (zh) * | 2020-12-17 | 2022-06-23 | 北京涛思数据科技有限公司 | 一种时序数据的存储方法 |
CN113868280A (zh) * | 2021-11-25 | 2021-12-31 | 芯和半导体科技(上海)有限公司 | 参数化单元数据更新方法、装置、计算机设备和存储介质 |
CN116244219A (zh) * | 2023-03-09 | 2023-06-09 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于raid缓存状态的落盘方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116501267A (zh) | 2023-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116501267B (zh) | 一种独立冗余磁盘阵列卡控制方法和装置 | |
US9430388B2 (en) | Scheduler, multi-core processor system, and scheduling method | |
US10901619B2 (en) | Selecting pages implementing leaf nodes and internal nodes of a data set index for reuse | |
WO2017050014A1 (zh) | 一种数据存储处理方法和装置 | |
CN101013381B (zh) | 基于对象存储系统的分布式锁 | |
US20070043726A1 (en) | Affinity-based recovery/failover in a cluster environment | |
CN110858162B (zh) | 内存管理方法及装置、服务器 | |
CN107451853B (zh) | 一种红包实时派发的方法、装置、系统及存储介质 | |
CN106802939B (zh) | 一种解决数据冲突的方法和系统 | |
CN109086141B (zh) | 内存管理方法和装置以及计算机可读存储介质 | |
CN112866136B (zh) | 业务数据处理方法和装置 | |
CN108111325A (zh) | 一种资源分配方法及装置 | |
CN112000281A (zh) | 一种存储系统重删元数据的缓存方法、系统及装置 | |
CN106936931A (zh) | 分布式锁的实现方法、相关设备及系统 | |
CN107181773A (zh) | 分布式存储系统的数据存储及数据管理方法、设备 | |
US10146833B1 (en) | Write-back techniques at datastore accelerators | |
US7509461B1 (en) | Method and apparatus for intelligent buffer cache pre-emption | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
US10108624B1 (en) | Concurrent directory move operations using ranking rules | |
CN115951845B (zh) | 一种磁盘管理方法、装置、设备及存储介质 | |
CN110569112B (zh) | 日志数据写入方法及对象存储守护装置 | |
CN115167778A (zh) | 存储的管理方法、系统及服务器 | |
CN111104435B (zh) | 一种元数据组织方法、装置、设备及计算机可读存储介质 | |
CN110716814B (zh) | 一种进程间大数据量通讯的性能优化方法和装置 | |
US6834281B1 (en) | Method and apparatus to support multi-node direct access to file system data |
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 |