发明名称 一种双控存储服务器的缓存管理方法
摘要 本发明公开了一种双控存储服务器的缓存管理方法,属于一种缓存管理方法,在ISCSI网络存储服务器架构中,对双控存储服务器进行缓存管理,从linux系统管理的内存中划分出一块连续空间作为独立缓存模块,将独立缓存模块均匀划分为多个缓存块,将物理磁盘均匀划分为多个磁盘逻辑块,一个缓存块可以映射任意一个磁盘逻辑块的数据,将缓存块标记状态,使用双向循环链表分别管理空闲缓存块和使用缓存块。本发明的一种双控存储服务器的缓存管理方法和现有技术相比,提高存储服务器的可靠性,解决因为存储控制器单点故障导致的数据丢失和服务中断的问题。
申请公布号 CN104049918B 申请公布日期 2016.12.07
申请号 CN201410313259.1 申请日期 2014.07.03
申请人 浪潮集团有限公司 发明人 戴鸿君;于治楼
分类号 G06F3/06(2006.01)I;G06F12/0877(2016.01)I;G06F12/0893(2016.01)I;G06F11/16(2006.01)I;G06F12/123(2016.01)I 主分类号 G06F3/06(2006.01)I
代理机构 济南信达专利事务所有限公司 37100 代理人 姜明
主权项 一种双控存储服务器的缓存管理方法,其特征在于在ISCSI网络存储服务器架构中,对双控存储服务器进行缓存管理,包括如下步骤:(1)、双控存储服务器linux系统启动时从linux系统管理的内存中划分出一块连续空间作为独立缓存模块,该独立缓存模块自主管理;(2)、将独立缓存模块均匀划分为多个缓存块,将双控存储服务器的物理磁盘均匀划分为多个磁盘逻辑块,每个磁盘逻辑块中含有相同数量的磁盘扇区,每个磁盘逻辑块所含磁盘扇区的数量对应磁盘逻辑块最大的数据容量,每个磁盘逻辑块最大的数据容量与每个缓存块最大可缓存的数据容量一致;(3)、一个缓存块可以映射任意一个磁盘逻辑块的数据;(4)、基于缓存块与对应映射的磁盘逻辑块之间的数据状态关系,把缓存块标记为如下状态:空闲状态、干净状态、脏块状态、无效状态;空闲状态为该缓存块没有映射到任何磁盘逻辑块,可以被分配存放数据;干净状态为该缓存块已经映射到某个磁盘逻辑块,缓存块中的数据和磁盘逻辑块中的数据是一致的;脏块状态为该缓存块中的数据比相映射的磁盘逻辑块中的数据要新;无效状态为该缓存块不可用;(5)、每一个缓存块都有一一对应的数据结构体,数据结构体保存该缓存块的相关信息,通过数据结构体来对该缓存块进行操作;(6)、将所有非无效状态的缓存块分为两种:空闲缓存块与使用缓存块,空闲状态的缓存块为空闲缓存块,干净状态与脏块状态的缓存块为使用缓存块;使用双向循环链表分别管理空闲缓存块和使用缓存块,双向循环链表内保存的是指向对应缓存块的数据结构体的指针;双向循环链表包括空闲链表、LRU链表、写回链表,空闲链表保存的指针为指向空闲缓存块的数据结构体的指针,LRU链表保存的指针为指向使用缓存块的数据结构体的指针,写回链表保存的指针为指向需要写回磁盘的脏块状态的缓存块的数据结构体的指针;(7)、双控存储服务器linux系统中,当需要申请新的缓存块时,从空闲链表头部获得;(8)、双控存储服务器linux系统中,若访问的缓存块的数据结构体的指针在LRU链表中,表示该缓存块为使用缓存块;(9)、双控存储服务器linux系统中,缓存同步模块访问写回链表,将脏块状态的缓存块内的数据同步刷新到相对应的磁盘逻辑块内。
地址 250101 山东省济南市高新区舜雅路1036号