CN104598166B - 系统管理方法和装置 - Google Patents
系统管理方法和装置 Download PDFInfo
- Publication number
- CN104598166B CN104598166B CN201410853647.9A CN201410853647A CN104598166B CN 104598166 B CN104598166 B CN 104598166B CN 201410853647 A CN201410853647 A CN 201410853647A CN 104598166 B CN104598166 B CN 104598166B
- Authority
- CN
- China
- Prior art keywords
- cache layer
- page
- data
- write
- cache
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种系统管理方法和装置,该系统管理方法包括:在内核的LVM层和RAID层的中间建立一个缓存层;获得所述LVM层下发的指令使得数据到达所述缓存层;通过所述缓存层对所述数据进行处理。本发明通过在LVM层和RAID层的中间创建一个缓存层,并可以通过该缓存层实现对系统数据的优化处理从而可以大大提升系统对数据处理的性能。
Description
技术领域
本发明涉及计算机领域,具体来说,涉及一种系统管理方法和装置。
背景技术
在以数据为中心的信息时代,妥善有效地保护数据显得尤为重要。信息的丢失将会给企业或用户造成大量的损失。冗余磁盘阵列(Redundant Array of IndependentDisks)技术是各种企业信息系统和个人广泛使用的解决方案,一般的中高档服务器多使用硬件RAID控制器,但是由于硬件RAID控制器的价格昂贵,导致系统成本大大增加。而随着处理器的性能快速发展,使得软件RAID的解决方法得到人们的重视。
在磁盘阵列系统中,页缓存(page cache):页缓存是Linux内核一种重要的磁盘高速缓存,它通过软件机制实现。但页缓存和硬件cache的原理基本相同,将容量大而低速设备中的部分数据存放到容量小而快速的设备中,这样速度快的设备将作为低速设备的缓存,当访问低速设备中的数据时,可以直接从缓存中获取数据而不需再访问低速设备,从而节省了整体的访问时间。
页缓存以页为大小进行数据缓存,它将磁盘中最常用和最重要的数据存放到部分物理内存中,使得系统访问块设备时可以直接从主存中获取块设备数据,而不需从磁盘中获取数据。
在大多数情况下,内核在读写磁盘时都会使用页缓存。内核在读文件时,首先在已有的页缓存中查找所读取的数据是否已经存在。如果该页缓存不存在,则一个新的页将被添加到高速缓存中,然后用从磁盘读取的数据填充它。如果当前物理内存足够空闲,那么该页将长期保留在高速缓存中,使得其他进程再使用该页中的数据时不再访问磁盘。写操作与读操作时类似,直接在页缓存中修改数据,但是页缓存中修改的数据(该页此时被称为Dirty Page)并不是马上就被写入磁盘,而是延迟几秒钟,以防止进程对该页缓存中的数据再次修改。页缓存在内核中的结构如图1所示。
在传统的磁盘阵列中,当在系统中建立完raid之后,用户开始读写数据,系统就会发送读写请求到raid这一层,raid则收到读写请求后向底层下发,磁盘收到这些请求后开始准备数据,而这个读写请求操作过程中会等待磁盘去准备这些数据,而磁盘的机械操作相对于内存中读写这些数据性能要低的多。所以也就降低了整个系统的性能。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出一种系统管理方法,能够实现对系统数据的优化处理从而可以大大提升系统对数据处理的性能。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种系统管理方法,该系统管理方法包括:在内核的LVM层和RAID层的中间建立一个缓存层;获得LVM层下发的指令使得数据到达缓存层;通过缓存层对数据进行处理。
其中,缓存层至少具备以下功能之一:将数据缓存后再读写、直接读写数据、直接读写数据的功能与将数据缓存后再读写的功能之间相互转换、预读数据、页回写、页回收、强制同步缓存数据到硬盘、断电后自动保护获取的数据。
其中,缓存层包含至少一个子缓存层,且子缓存层的数量与RAID层的数量相同并且一一对应。
优选地,每个子缓存层均含有独立的基数树及处理请求的线程。
其中,该系统管理方法包括:对缓存层初始化使缓存层形成页的结构;建立页的管理结构和页的存储结构的映射。
其中,缓存层进一步用于存储页的元数据。
根据本发明的另一方面,提供了一种系统管理装置,该系统管理装置包括:
建立模块,用于在内核的LVM层和RAID层的中间建立一个缓存层;
获取模块,用于获得LVM层下发的指令使得数据到达缓存层;
处理模块,用于通过缓存层对数据进行处理。
其中,缓存层至少具备以下功能之一:将数据缓存后再读写、直接读写数据、直接读写数据的功能与将数据缓存后再读写的功能之间相互转换、预读数据、页回写、页回收、强制同步缓存数据到硬盘、断电后自动保护获取的数据。
其中,缓存层包含至少一个子缓存层,且子缓存层的数量与RAID层的数量相同并且一一对应,并且每个子缓存层均含有独立的基数树及处理请求的线程。
其中,该系统管理装置包括:
初始化模块,用于对缓存层初始化使缓存层形成页的结构;
创建模块,用于建立页的管理结构和页的存储结构的映射。
本发明上述方法和装置能够实现对系统数据的优化处理从而可以大大提升系统对数据处理的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术的内核数据处理方法的示意图;
图2是根据本发明实施例的系统管理方法的流程图;
图3是根据本发明实施例的系统管理方法的结构示意图;
图4是根据本发明一具体实施例的系统管理方法的示意性流程图;
图5是根据本发明另一具体实施例的系统管理方法的示意性流程图;
图6是根据本发明实施例的系统管理装置的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种系统管理方法。
如图2所示,根据本发明实施例的系统管理方法包括:
步骤S201,在内核的LVM层和RAID层的中间建立一个缓存层;
步骤S203,获得LVM层下发的指令使得数据到达缓存层;
步骤S205,通过缓存层对数据进行处理。
其中,缓存层至少具备以下功能之一:将数据缓存后再读写、直接读写数据、直接读写数据的功能与将数据缓存后再读写的功能之间相互转换、预读数据、页回写、页回收、强制同步缓存数据到硬盘、断电后自动保护获取的数据。
其中,缓存层包含至少一个子缓存层,且子缓存层的数量与RAID层的数量相同并且一一对应。
优选地,每个子缓存层均含有独立的基数树及处理请求的线程。
其中,该系统管理方法还包括:对缓存层初始化使缓存层形成页的结构;建立页的管理结构和页的存储结构的映射。
其中,缓存层进一步用于存储页的元数据。
为了更清楚的理解本发明的技术方案,下面以多个具体实施例来进行阐述,本发明主要在linux内核中LVM层和RAID层之间建立一个缓存层(包含多个target_cache层)来实现。
如图3所示,在LVM层和RAID层增加一层缓存层。Bio通过LVM层下发后修改属性,让bio(请求)经过缓存这一层。这个缓存层(target_cache层)可以实现的功能:支持经缓存读写和直读写;支持经缓存读写和直读写的转换;支持预读策略;支持页回写和页回收功能;支持强制同步缓存数据到硬盘;支持断电数据保护机制。
在本发明中,缓存层(target_cache层)建立在RAID层之上,为每个RAID创建一个target_cache数据结构与之对应,target_cache与raid数目是一一对应的关系。对每个RAID上的cahce都有独立的缓存树和处理bio的线程等资源。
其中,物理内存布局如下所述:
读写缓存池使用一段物理地址联系的内存地址空间,此空间在系统初始化时保留,操作系统使用保留空间以外的内存空间,保留空间通过ioremap映射给缓存层(target_cache层)使用,其他模块无法使用这段内存。这段空间除了用于存放数据外,还存放页page的元数据。该段内存地址空间又划分为读缓存池和写缓存池。读写缓存池经过初始化,初始化为页的结构并建立页的管理结构和页的存储结构的映射。这样页就可用于读写时存储数据的载体。
其中,缓存写流程如下所述:
当缓存层(target_cache层)接收到缓存写bio时,首先要从基数树上查找是否存在该页。如果该页没有找到,则从写缓存池中申请页,把页内的块标志置成WRITING标志,然后将其挂到基数树上。最后,在endbio处理线程中将数据拷贝到对应页。若要找的页已经在于基数树上,则需要判断其是否为写页,以及判断访问范围内块的状态,然后根据这些块的状态进行不同的处理,若块间存在互斥,则还需要加入相应等待队列。
其中,缓存读流程如下所述:
缓存读流程和缓存写类似,当缓存层(target_cache层)收到LVM层传来的读bio请求时,首先从基数树上遍历查找页,根据查找结果,分别进行处理,与缓存写不同的是,块标志的设置、互斥的考虑有所不同。
如图4进一步示出了本发明实施例的系统管理方法的示意性流程图,其中页面写回为:
这个功能仅针对写缓存池,当写缓存池中空闲页很少,而用户写数据较多时,需要将一些dirty数据写回到RAID释放所占用的页。这个过程对每个target_cache就是启用一个回刷线程,不断扫描基数树如果所扫描到的页符合回刷要求,则对页内的数据回刷到硬盘。
页面回收为:
这个过程主要针对回刷完的页和最近最少使用的读页进行回收操作,回收线程扫描每个target_cache结构如果该页的引用为1(表示符合回收要求)则进行回收,否则,继续判断下一个页。
如图5所示,断电数据保护为:
当系统出现崩溃和断电时,缓存层(target_cache层)对地址区间特定范围内的数据进行保存,将数据写到SSD硬盘的某个分区,并设置SSD的元数据头标志用来标识保存的数据有效。当系统遇到断电崩溃重启后,首先判断SSD状态有效标识符来判断所保存的数据是否有效,然后根据保存的元数据找到相应的数据并写到相应的位置进行恢复。
通过本发明的上述方案,能够实现对系统数据的优化处理从而可以大大提升系统对数据处理的性能。
根据本发明的实施例,还提供了一种系统管理装置。
如图6所示,根据本发明实施例的系统管理装置包括:
建立模块61,用于在内核的LVM层和RAID层的中间建立一个缓存层;
获取模块62,用于获得LVM层下发的指令使得数据到达缓存层;
处理模块63,用于通过缓存层对数据进行处理。
其中,缓存层至少具备以下功能之一:将数据缓存后再读写、直接读写数据、直接读写数据的功能与将数据缓存后再读写的功能之间相互转换、预读数据、页回写、页回收、强制同步缓存数据到硬盘、断电后自动保护获取的数据。
其中,缓存层包含至少一个子缓存层,且子缓存层的数量与RAID层的数量相同并且一一对应,并且每个子缓存层均含有独立的基数树及处理请求的线程。
其中,该系统管理装置还可以进一步包括:
初始化模块(未示出),用于对缓存层初始化使缓存层形成页的结构;
创建模块(未示出),用于建立页的管理结构和页的存储结构的映射。
综上所述,借助于本发明的上述技术方案,通过在LVM层和RAID层的中间创建一个缓存层,并可以通过该缓存层实现对系统数据的优化处理从而可以大大提升系统对数据处理的性能。
发明人通过采用本发明的技术方案进行了测试,在6块SAS盘创建的RAID5基础之上,将有无采用本发明技术方案的顺序读写的性能进行对比,根据对比结果可以得到,采用本发明技术方案对顺序写的性能的提升是非常明显的,最高提升至不采用本发明技术方案的200多倍。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种系统管理方法,其特征在于,包括:
在内核的LVM层和RAID层的中间建立一个缓存层;
获得所述LVM层下发的指令使得数据到达所述缓存层;
通过所述缓存层对所述数据进行处理;
当所述指令为写指令时,所述缓存层在基数树上查找是否存在与所述写指令对应的页,若不存在,则从所述缓存层的缓存池中获取申请页,并对所述申请页的块标志进行配置后将所述申请页挂到所述基数树上。
2.根据权利要求1所述的方法,其特征在于,所述缓存层至少具备以下功能之一:
将所述数据缓存后再读写、直接读写所述数据、直接读写所述数据的功能与将所述数据缓存后再读写的功能之间相互转换、预读所述数据、页回写、页回收、强制同步缓存数据到硬盘、断电后自动保护获取的数据。
3.根据权利要求1所述的方法,其特征在于,所述缓存层包含至少一个子缓存层,且子缓存层的数量与RAID层的数量相同并且一一对应。
4.根据权利要求3所述的方法,其特征在于,每个子缓存层均含有独立的基数树及处理请求的线程。
5.根据权利要求1所述的方法,其特征在于,包括:
对所述缓存层初始化使所述缓存层形成页的结构;
建立页的管理结构和页的存储结构的映射。
6.根据权利要求1所述的方法,其特征在于,所述缓存层进一步用于存储页的元数据。
7.一种系统管理装置,其特征在于,包括:
建立模块,用于在内核的LVM层和RAID层的中间建立一个缓存层;
获取模块,用于获得所述LVM层下发的指令使得数据到达所述缓存层;
处理模块,用于通过所述缓存层对所述数据进行处理;
当所述指令为写指令时,所述缓存层在基数树上查找是否存在与所述 写指令对应的页,若不存在,则从所述缓存层的缓存池中获取申请页,并对所述申请页的块标志进行配置后将所述申请页挂到所述基数树上。
8.根据权利要求7所述的装置,其特征在于,所述缓存层至少具备以下功能之一:
将所述数据缓存后再读写、直接读写所述数据、直接读写所述数据的功能与将所述数据缓存后再读写的功能之间相互转换、预读所述数据、页回写、页回收、强制同步缓存数据到硬盘、断电后自动保护获取的数据。
9.根据权利要求7所述的装置,其特征在于,所述缓存层包含至少一个子缓存层,且子缓存层的数量与RAID层的数量相同并且一一对应,并且每个子缓存层均含有独立的基数树及处理请求的线程。
10.根据权利要求7所述的装置,其特征在于,包括:
初始化模块,用于对所述缓存层初始化使所述缓存层形成页的结构;
创建模块,用于建立页的管理结构和页的存储结构的映射。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410853647.9A CN104598166B (zh) | 2014-12-31 | 2014-12-31 | 系统管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410853647.9A CN104598166B (zh) | 2014-12-31 | 2014-12-31 | 系统管理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104598166A CN104598166A (zh) | 2015-05-06 |
CN104598166B true CN104598166B (zh) | 2018-01-30 |
Family
ID=53123993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410853647.9A Active CN104598166B (zh) | 2014-12-31 | 2014-12-31 | 系统管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104598166B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740172A (zh) * | 2016-01-26 | 2016-07-06 | 浪潮(北京)电子信息产业有限公司 | 一种块设备数据缓存掉电保护的方法及系统 |
CN109471671B (zh) * | 2017-09-06 | 2023-03-24 | 武汉斗鱼网络科技有限公司 | 一种程序冷启动方法和系统 |
CN112000287B (zh) * | 2020-08-14 | 2022-06-17 | 北京浪潮数据技术有限公司 | 一种io请求处理装置、方法、设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6629211B2 (en) * | 2001-04-20 | 2003-09-30 | International Business Machines Corporation | Method and system for improving raid controller performance through adaptive write back/write through caching |
US7051156B2 (en) * | 2002-11-06 | 2006-05-23 | Synology Inc. | Raid-5 disk having cache memory |
CN1851635A (zh) * | 2006-06-01 | 2006-10-25 | 杭州华为三康技术有限公司 | 对廉价磁盘冗余阵列进行读写操作的方法和系统 |
CN102446261A (zh) * | 2011-11-15 | 2012-05-09 | 浪潮电子信息产业股份有限公司 | 一种提高raid写效率的方法 |
CN103309820A (zh) * | 2013-06-28 | 2013-09-18 | 曙光信息产业(北京)有限公司 | 磁盘阵列缓存的实现方法 |
-
2014
- 2014-12-31 CN CN201410853647.9A patent/CN104598166B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6629211B2 (en) * | 2001-04-20 | 2003-09-30 | International Business Machines Corporation | Method and system for improving raid controller performance through adaptive write back/write through caching |
US7051156B2 (en) * | 2002-11-06 | 2006-05-23 | Synology Inc. | Raid-5 disk having cache memory |
CN1851635A (zh) * | 2006-06-01 | 2006-10-25 | 杭州华为三康技术有限公司 | 对廉价磁盘冗余阵列进行读写操作的方法和系统 |
CN102446261A (zh) * | 2011-11-15 | 2012-05-09 | 浪潮电子信息产业股份有限公司 | 一种提高raid写效率的方法 |
CN103309820A (zh) * | 2013-06-28 | 2013-09-18 | 曙光信息产业(北京)有限公司 | 磁盘阵列缓存的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104598166A (zh) | 2015-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9229653B2 (en) | Write spike performance enhancement in hybrid storage systems | |
CN108572796B (zh) | 具有异构nvm类型的ssd | |
US11163699B2 (en) | Managing least recently used cache using reduced memory footprint sequence container | |
CN104903872B (zh) | 用于自适应持久化的系统、方法和接口 | |
KR101790913B1 (ko) | 플래시 메모리에 저장된 데이터의 추론적 프리페칭 | |
US20160042005A1 (en) | Techniques for implementing hybrid flash/hdd-based virtual disk files | |
US11188262B2 (en) | Memory system including a nonvolatile memory and a volatile memory, and processing method using the memory system | |
US10740251B2 (en) | Hybrid drive translation layer | |
US20150006788A1 (en) | Techniques for Implementing Hybrid Flash/HDD-based Virtual Disk Files | |
US10782904B2 (en) | Host computing arrangement, remote server arrangement, storage system and methods thereof | |
US20180107601A1 (en) | Cache architecture and algorithms for hybrid object storage devices | |
JP7057435B2 (ja) | ハイブリッドメモリシステム | |
US9612975B2 (en) | Page cache device and method for efficient mapping | |
KR20170038853A (ko) | 호스트-관리 비휘발성 메모리 | |
US9183127B2 (en) | Sequential block allocation in a memory | |
CN105095113B (zh) | 一种缓存管理方法和系统 | |
CN111919201A (zh) | 混合式存储器系统 | |
CN104598166B (zh) | 系统管理方法和装置 | |
CN105988720B (zh) | 数据存储装置和方法 | |
KR101026634B1 (ko) | 하이브리드 플래시 메모리의 데이터 저장 방법 | |
US10089348B2 (en) | Computer device and storage device | |
US11861222B2 (en) | Object management in tiered memory systems | |
US20220365705A1 (en) | Object management in tiered memory systems | |
CN105404471A (zh) | 一种分布式云存储高速缓存层实现方法 | |
CN106649135A (zh) | 一种单控存储的缓存管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190909 Address after: 610000 Sichuan city of Chengdu province Tianfu Tianfu Avenue South Huayang Street No. 846 Co-patentee after: Sugon Information Industry Co., Ltd. Patentee after: CHINESE CORPORATION DAWNING INFORMATION INDUSTRY CHENGDU CO., LTD. Address before: 300384 Tianjin city Xiqing District Huayuan Industrial Zone (outer ring) Haitai Huake Street No. 15 1-3 Patentee before: Sugon Information Industry Co., Ltd. |
|
TR01 | Transfer of patent right |