CN104750433A - 一种基于scst的缓存设计方法 - Google Patents

一种基于scst的缓存设计方法 Download PDF

Info

Publication number
CN104750433A
CN104750433A CN201510135293.9A CN201510135293A CN104750433A CN 104750433 A CN104750433 A CN 104750433A CN 201510135293 A CN201510135293 A CN 201510135293A CN 104750433 A CN104750433 A CN 104750433A
Authority
CN
China
Prior art keywords
data
scst
hard disk
cache
buffer
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
CN201510135293.9A
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.)
Inspur Group Co Ltd
Original Assignee
Inspur Group 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 Inspur Group Co Ltd filed Critical Inspur Group Co Ltd
Priority to CN201510135293.9A priority Critical patent/CN104750433A/zh
Publication of CN104750433A publication Critical patent/CN104750433A/zh
Pending legal-status Critical Current

Links

Abstract

本发明提供一种基于SCST的缓存设计方法,涉及多路控制器存储领域,当SCST模块启动时,首先对缓存区基树进行初始化,建立根节点和子节点进行初始化;当发送端将数据发送至BlockIO时,将数据缓存到缓存区,将缓存区指针保存到基树中;随着缓存数据的增多,需要增加子节点层数,并将下一层的指针保存至上一层子节点中;队列中对叶子节点结构体进行调度管理,将数据写回至硬盘中;刷新硬盘的策略分为两种,第一是基于缓存容量;第二是定时刷新。可以通过SCSI协议对对外提供服务,并且缓存数据通过socket接口对外进行备份,保证了数据安全。

Description

一种基于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基树分为根节点和子节点,根节点用于保存树的基本信息并指向第一层的子节点。每个子节点有若干个指针指向数据或其他子节点,可以通过扩大子节点层数将更多的数据保存到基树,完全可以满足存储容量的需求。
叶子节点定义为保存缓存块信息的节点,因此,需要对页内数据进行准确定位并包含用于缓存操作的自旋锁。
缓存区存储
   SCST核心层将发送端发送的数据传递至相应的处理句柄,前述对数据结构的设计,将N个连续的磁盘扇区组成一个磁盘逻辑块,大小与缓存块相同。因此,将对磁盘逻辑块的存储转变成对缓存区的存储。
当数据进入SCST中,通过指令将数据分成若干个缓存块,并将缓存块指针保存到基树上,同时将该信息保存到队列中用于IO调度。
刷新策略
将缓存区数据刷新至硬盘中,既要保证缓存数据不能大于缓冲区大小,又要使得缓冲数据不能长时间占用缓冲区,影响硬盘数据完整性。因此,缓存区数据需要刷写到硬盘中,实行两种不同的刷新策略。第一,判断缓存数据容量大于开辟缓存区空间,将若干开辟缓存区空间内的缓存数据刷写到硬盘中。第二,定时刷新策略,设置定时时间,将缓存区空间内的数据全部刷写到硬盘中。
附图说明
图1是SCST结构和BlockIO 缓存管理模块位置图。
图2是缓存刷新策略示意图。
具体实施方式
下面对本发明的内容进行更加详细的阐述:
本发明的无驱动加解密认证通信方案,其具体的实施方式如下:
i.当SCST模块启动时,首先对缓存区基树进行初始化,建立根节点和子节点进行初始化。
ii.当发送端将数据发送至BlockIO时,将数据缓存到缓存区,将缓存区指针保存到基树中。随着缓存数据的增多,需要增加子节点层数,并将下一层的指针保存至上一层子节点中。
iii.队列中对叶子节点结构体进行调度管理,将数据写回至硬盘中。
iv.刷新硬盘的策略分为两种,第一是基于缓存容量;第二是定时刷新。
如图1所示,将该模块与SCST结合,可以实现Block IO的数据缓存,该方案满足系统吞吐量需求。该方案可以用于服务器存储领域,并且可以通过socket进行数据的备份。缓存区设计包括三个部分,第一是数据结构设计;第二是缓存区存储,第三是刷新策略设计。
如图2所示,将缓存区数据刷新至硬盘中,既要保证缓存数据不能大于缓冲区大小,又要使得缓冲数据不能长时间占用缓冲区,影响硬盘数据完整性。因此,缓存区数据需要刷写到硬盘中,实行两种不同的刷新策略。第一,判断缓存数据容量大于开辟缓存区空间,将若干开辟缓存区空间内的缓存数据刷写到硬盘中。第二,定时刷新策略,设置定时时间,将缓存区空间内的数据全部刷写到硬盘中。

Claims (5)

1.一种基于SCST的缓存设计方法,其特征在于,
i.当SCST模块启动时,首先对缓存区基树进行初始化,建立根节点和子节点进行初始化;
ii.当发送端将数据发送至BlockIO时,将数据缓存到缓存区,将缓存区指针保存到基树中;随着缓存数据的增多,需要增加子节点层数,并将下一层的指针保存至上一层子节点中;
iii.队列中对叶子节点结构体进行调度管理,将数据写回至硬盘中;
iv.刷新硬盘的策略分为两种,第一是基于缓存容量;第二是定时刷新。
2.根据权利要求1所述的方法,其特征在于,SCST缓存以控制器主机的主存为存储器。
3.根据权利要求2所述的方法,其特征在于,当数据进入SCST中,通过指令将数据分成若干个缓存块,并将缓存块指针保存到基树上,同时将该信息保存到队列中用于IO调度。
4.根据权利要求1所述的方法,其特征在于,基树分为根节点和子节点,根节点用于保存树的基本信息并指向第一层的子节点;每个子节点有若干个指针指向数据或其他子节点,可以通过扩大子节点层数将更多的数据保存到基树。
5.根据权利要求1所述的方法,其特征在于,基于缓存容量策略,判断缓存数据容量大于开辟缓存区空间,将若干开辟缓存区空间内的缓存数据刷写到硬盘中;定时刷新策略,设置定时时间,将缓存区空间内的数据全部刷写到硬盘中。
CN201510135293.9A 2015-03-26 2015-03-26 一种基于scst的缓存设计方法 Pending CN104750433A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510135293.9A CN104750433A (zh) 2015-03-26 2015-03-26 一种基于scst的缓存设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510135293.9A CN104750433A (zh) 2015-03-26 2015-03-26 一种基于scst的缓存设计方法

Publications (1)

Publication Number Publication Date
CN104750433A true CN104750433A (zh) 2015-07-01

Family

ID=53590196

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510135293.9A Pending CN104750433A (zh) 2015-03-26 2015-03-26 一种基于scst的缓存设计方法

Country Status (1)

Country Link
CN (1) CN104750433A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117307A (zh) * 2015-09-25 2015-12-02 北京飞杰信息技术有限公司 数据实时备份方法及系统
CN105138276A (zh) * 2015-07-14 2015-12-09 苏州科达科技股份有限公司 数据储存方法及数据储存系统
CN105183370A (zh) * 2015-08-13 2015-12-23 浪潮(北京)电子信息产业有限公司 一种实现双控制器通信的通信方法及通信模型
CN106210045A (zh) * 2016-07-11 2016-12-07 浪潮(北京)电子信息产业有限公司 一种scst及其数据处理方法
CN108897698A (zh) * 2018-06-29 2018-11-27 郑州云海信息技术有限公司 一种文件数据块寻址方法、系统及设备和存储介质
CN109492005A (zh) * 2018-11-07 2019-03-19 郑州云海信息技术有限公司 一种b+树读缓存方法及相关装置
CN113590520A (zh) * 2021-06-15 2021-11-02 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统
CN116540943A (zh) * 2023-05-19 2023-08-04 合芯科技有限公司 基于分布式文件系统的iscsi服务生成方法、系统及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1690944A (zh) * 2004-04-21 2005-11-02 华为技术有限公司 一种磁盘阵列系统
CN101739220A (zh) * 2009-02-25 2010-06-16 浪潮电子信息产业股份有限公司 一种多控制器存储阵列的设计方法
CN103019893A (zh) * 2012-11-16 2013-04-03 华中科技大学 一种多盘容错的二维混合盘raid4系统架构及其读写方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1690944A (zh) * 2004-04-21 2005-11-02 华为技术有限公司 一种磁盘阵列系统
CN101739220A (zh) * 2009-02-25 2010-06-16 浪潮电子信息产业股份有限公司 一种多控制器存储阵列的设计方法
CN103019893A (zh) * 2012-11-16 2013-04-03 华中科技大学 一种多盘容错的二维混合盘raid4系统架构及其读写方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨巍: "采用基树的磁盘阵列Cache技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138276A (zh) * 2015-07-14 2015-12-09 苏州科达科技股份有限公司 数据储存方法及数据储存系统
CN105138276B (zh) * 2015-07-14 2018-05-18 苏州科达科技股份有限公司 数据储存方法及数据储存系统
CN105183370B (zh) * 2015-08-13 2018-07-06 浪潮(北京)电子信息产业有限公司 一种实现双控制器通信的通信方法及通信模型
CN105183370A (zh) * 2015-08-13 2015-12-23 浪潮(北京)电子信息产业有限公司 一种实现双控制器通信的通信方法及通信模型
CN105117307A (zh) * 2015-09-25 2015-12-02 北京飞杰信息技术有限公司 数据实时备份方法及系统
CN105117307B (zh) * 2015-09-25 2018-06-19 北京飞杰信息技术有限公司 数据实时备份方法及系统
CN106210045A (zh) * 2016-07-11 2016-12-07 浪潮(北京)电子信息产业有限公司 一种scst及其数据处理方法
CN108897698A (zh) * 2018-06-29 2018-11-27 郑州云海信息技术有限公司 一种文件数据块寻址方法、系统及设备和存储介质
CN108897698B (zh) * 2018-06-29 2021-10-29 郑州云海信息技术有限公司 一种文件数据块寻址方法、系统及设备和存储介质
CN109492005A (zh) * 2018-11-07 2019-03-19 郑州云海信息技术有限公司 一种b+树读缓存方法及相关装置
CN113590520A (zh) * 2021-06-15 2021-11-02 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统
CN113590520B (zh) * 2021-06-15 2024-05-03 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统
CN116540943A (zh) * 2023-05-19 2023-08-04 合芯科技有限公司 基于分布式文件系统的iscsi服务生成方法、系统及介质

Similar Documents

Publication Publication Date Title
CN104750433A (zh) 一种基于scst的缓存设计方法
CN107967124B (zh) 一种分布式持久性内存存储系统及方法
CN101840308B (zh) 一种分级存储系统及其逻辑卷管理方法
CN104903872B (zh) 用于自适应持久化的系统、方法和接口
US9298384B2 (en) Method and device for storing data in a flash memory using address mapping for supporting various block sizes
CN102598020B (zh) 用于改进的数据去重的装置、系统及方法
CN102521147B (zh) 一种使用高速非易失介质做缓存的管理方法
US8645610B2 (en) Organizing and managing a memory blade with super pages and buffers
CN107967221A (zh) 具有非易失性存储器的计算系统及其操作方法
US20160253123A1 (en) NVMM: An Extremely Large, Logically Unified, Sequentially Consistent Main-Memory System
US20120290786A1 (en) Selective caching in a storage system
CN104395904A (zh) 高效的数据对象存储和检索
CN104765575A (zh) 信息存储处理方法
US20110283046A1 (en) Storage device
KR20140112717A (ko) 키 값 기반 데이터 스토리지 시스템 및 이의 운용 방법
US11755491B2 (en) Mapping supporting non-sequential writes at sequentially-written memory devices
WO2017025039A1 (zh) 一种面向闪存存储的数据访问方法及其装置
CN107832423B (zh) 一种用于分布式文件系统的文件读写方法
CN104239234B (zh) 一种高效的本地缓存管理及读写方法
CN104765574A (zh) 数据云端存储方法
JP2015026379A (ja) 磁気ランダムアクセスメモリ(mram)を使用する記憶デバイスのメモリアレイのコントローラ管理
US9558124B2 (en) Data storage system with passive partitioning in a secondary memory
WO2021168020A1 (en) Sequential read optimization in a memory sub-system that programs sequentially
CN109739696B (zh) 一种双控存储阵列固态硬盘缓存加速方法
JP2020502606A (ja) 記憶動作待ち行列

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150701

WD01 Invention patent application deemed withdrawn after publication