[发明专利]一种基于SCST的缓存设计方法在审

专利信息
申请号: 201510135293.9 申请日: 2015-03-26
公开(公告)号: CN104750433A 公开(公告)日: 2015-07-01
发明(设计)人: 张凡凡;陈乃阔;吴登勇;李保来 申请(专利权)人: 浪潮集团有限公司
主分类号: G06F3/06 分类号: G06F3/06;G06F12/08
代理公司: 济南信达专利事务所有限公司 37100 代理人: 姜明
地址: 250101 山东*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 scst 缓存 设计 方法
【说明书】:

技术领域

发明提供了一种基于SCST的缓存设计方法,用于服务器存储领域,主要涉及多路控制器存储。

背景技术

随着计算机技术、网络技术的快速发展,对于数据存储的可靠性也逐渐得到了重视。现在的存储方式多采用价格较为磁盘组合成为巨大容量的磁盘组,配合数据分散排列的设计,将数据分割为不同的区段,分别进行存储,从而构成了磁盘阵列。这样系统的可靠性瓶颈为磁盘阵列控制器,目前的方式可以采用多路磁盘阵列控制器共享磁盘阵列的方式,这样既可以增加阵列系统的可靠性,又可以通过多路控制器对外进行数据存储服务,提高了存储效率。

现有的基于磁盘阵列存储系统主要是LIO和SCST两种方式,scst是一款开源的企业级ISCSI TARGET系统,SCST经常被用在网络存储架构中。SCST可以作为SCSI目标端中间层子系统作为模块加入到Linux内核中, SCST 为不同类型的目标端驱动程序提供统一的接口,屏蔽不同类型驱动程序的差异性,便于多种目标端驱动程序以统一的方式和底层各种存储设备的连接。SCST的核心模块处于 Linux 存储结构的块设备层之上。SCST支持多种I/O模式,常用的方式为BlockIO和FileIO两种模式。其中,FileIO模式,允许使用文件系统上的文件或者块设备做为虚拟的 SCSI 设备,该模式可以充分利用 Linux 系统的缓存功能;Block IO 模式,绕开系统的 page-缓存直接与块设备进行Block IO。

发明内容

为了解决该问题,本文提出了一种基于SCST的缓存设计方法。本发明通过缓存机制来缓存系统 I/O 数据,由于是块 IO 模式可以绕开文件系统的处理路径,减少 I/O 路径上的额外处理,满足海量阵列存储系统的吞吐量需求。可以通过SCSI协议对对外提供服务,并且缓存数据通过socket接口对外进行备份,保证了数据安全。

本发明用的 SCST 的 BlockIO 模式来处理 I/O 请求的。通过缓存机制来缓存系统 I/O 数据,由于是Block IO 模式可以绕开文件系统的处理路径,减少 I/O 路径上的额外处理,满足海量阵列存储系统的吞吐量需求。本发明主要设计SCST缓存区的数据结构,解决本地Block IO数据存储,并可以按照结构将数据进行读写,将数据备份至其他控制器中。

本发明的技术方案是:

i.当SCST模块启动时,首先对缓存区基树进行初始化,建立根节点和子节点进行初始化。

 ii.当发送端将数据发送至BlockIO时,将数据缓存到缓存区,将缓存区指针保存到基树中。随着缓存数据的增多,需要增加子节点层数,并将下一层的指针保存至上一层子节点中。

 iii.队列中对叶子节点结构体进行调度管理,将数据写回至硬盘中。

 iv.刷新硬盘的策略分为两种,第一是基于缓存容量;第二是定时刷新。

本发明的主要目的在于,提供一种基于SCST的缓存区数据结构和刷新功能设计,将该模块与SCST结合,可以实现Block IO的数据缓存,该方案满足系统吞吐量需求。该方案可以用于服务器存储领域,并且可以通过socket进行数据的备份。缓存区设计包括三个部分,第一是数据结构设计;第二是缓存区存储,第三是刷新策略设计。

Block IO数据结构设计

SCST缓存以控制器主机的主存为存储器。缓存块大小按照内存页面的 4KB 大小设计,缓存块由一个内存页组成。一个缓存块的内容是磁盘上一个逻辑块内容在内存中的映射,缓存块与磁盘逻辑块构成一一映射关系。由于磁盘中一个扇区的大小无法与缓存块形成有效的一一映射关系。因此,需要将缓存块和磁盘扇区逻辑映射关系和大小映射统一,因此将N个连续的磁盘扇区组成一个磁盘逻辑块。这样发起端的SCSI命令可以通过中间层以后形成SCST命令,包含有磁盘逻辑块信息。通过磁盘逻辑块在逻辑上与缓存块一一对应,因此可以将写入磁盘逻辑块的信息保存到缓存块中。

缓存区需要同时保存未写入磁盘的数据和已写入磁盘的数据(加快文件读)。因此,缓存块的逻辑组织采用基树(Radix tree)的方式实现缓存块的快速查找索引,通过树形设计可以动态增减缓存容量。基数上设置标志位确定数据是否写入硬盘。缓存块之间再通过队列来便于插入、删除和调度等管理。

LINUX基树分为根节点和子节点,根节点用于保存树的基本信息并指向第一层的子节点。每个子节点有若干个指针指向数据或其他子节点,可以通过扩大子节点层数将更多的数据保存到基树,完全可以满足存储容量的需求。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮集团有限公司,未经浪潮集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201510135293.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top