CN100405777C - 以太网存储区域网络中基于目标器内存设备的缓存方法 - Google Patents
以太网存储区域网络中基于目标器内存设备的缓存方法 Download PDFInfo
- Publication number
- CN100405777C CN100405777C CNB2006100889317A CN200610088931A CN100405777C CN 100405777 C CN100405777 C CN 100405777C CN B2006100889317 A CNB2006100889317 A CN B2006100889317A CN 200610088931 A CN200610088931 A CN 200610088931A CN 100405777 C CN100405777 C CN 100405777C
- Authority
- CN
- China
- Prior art keywords
- data
- scsi command
- disk
- san
- scsi
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 title 2
- 238000013507 mapping Methods 0.000 claims abstract description 4
- 235000019580 granularity Nutrition 0.000 claims description 38
- 230000003139 buffering effect Effects 0.000 claims description 11
- 239000008187 granular material Substances 0.000 claims description 6
- 230000006870 function Effects 0.000 description 24
- 239000007858 starting material Substances 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005194 fractionation Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 230000002860 competitive effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
以太网存储区域网络中基于目标器内存设备的缓存方法属于存储区域网络存储技术领域,其特征在于:它使用由IP SAN系统目标器上丰富的DARM内存资源所构成的大容量快速设备作为缓存资源,将IP SAN系统的磁盘空间划分为大小一致的映射粒度,自动的对磁盘空间的热点粒度进行缓存,它认为某一个粒度一旦被访问即为热点粒度,并且一直认为这个粒度是热点粒度直到此粒度由于长时间没有被访问而被替换出缓存设备为止,我们针对读操作占优的应用实现了写直达策略的缓存。它可以充分利用IP SAN系统目标器上的CPU以及DRAM内存资源,减少I/O延迟,减轻存储磁盘的I/O负载从而提高系统的整体性能。
Description
技术领域
以太网存储区域网络中基于目标器内存设备的缓存方法属于存储区域网络(SAN)存储技术领域。
背景技术
随着处理器和内存性能的迅速增长,在信息系统中存储系统由于其磁盘的机械特性而成为整个系统的瓶颈,并且这种瓶颈作用越来越明显地制约了系统性能的提高。特别是随着近年来科学计算和高性能网络服务等应用都采用高性能的机群系统进行事务处理,存储系统所承受的压力在不断增加:存储系统往往被要求具有越来越大的存储容量,越来越快的I/O访问速度以及越来越便宜的部署成本。这样基于以太网存储区域网络(IP SAN)技术的存储系统因为容量易扩展、部署成本低廉以及使用方便的优势而受到越来越多的用户的青睐。
然而由于IP SAN系统需要花费较多的开销将SCSI命令封装成IP包进行传输,IP SAN系统的性能一直是人们所关心的问题,IP SAN系统也往往难以很好的满足应用对存储系统在性能上的要求。事实上,磁盘的寻道和旋转延迟使得IP SAN系统的I/O性能更加不能满足应用对存储系统在性能要求,尤其是对于大规模在线事务处理以及科学计算等高性能应用。这样在IP SAN系统的各个级别对热点数据加以缓存能够有效的缓解存储磁盘的I/O压力并且有效的提高IP SAN系统的存储性能。
由于随机访问DRAM资源没有寻道和旋转延迟,并且近年来DRAM密度不断增长,单位存储价格不断降低,DRAM的性能也不断提高,使用DRAM作为大容量存储设备的性价比越来越高,IP SAN系统就可以利用这样的DRAM快速设备来提高系统的性能,从而使得IP SAN技术在存储解决方案中具有越来越明显的竞争优势。IP SAN系统的目标器拥有丰富的DRAM内存资源,并且目标器的功能比较简单,只需要很少的内存资源就可以满足需求,这样剩余的DRAM就可以被用作高速存储资源,形成高速的DRAM设备。
这样,如果用户对于应用程序的行为比较了解,也就是用户能够清晰的判断应用程序所经常访问的数据,用户就可以将这些经常访问的数据放置在高速的DRAM设备中,这样就可以有效地提高存储系统的整体性能。然而通常的情况是,用户对于应用程序的行为并不是很了解,从而不能清晰的判断应用程序经常所要访问的数据,也就是用户不能提前判断应用程序所要访问的全局热点数据,这样就不可能依靠用户来人为的将热点数据放置到DRAM设备中来减轻存储磁盘的I/O压力以便提高存储系统的性能,而只能通过自动缓存热点数据来为应用程序提供尽可能多的高速的I/O。
本发明就是针对用户对于应用程序的行为不了解,不能清晰判断哪些数据是应用程序所要经常访问的热点数据的情况,在IP SAN系统的目标器上不依靠用户的干预实现了对热点数据的自动缓存,从而减轻存储磁盘的I/O压力,提高存储系统的性能。
发明内容
本发明的目的在于提供一种利用IP SAN系统目标器内存设备对IP SAN系统中的热点数据进行自动缓存的方法,它可以充分利用IP SAN系统目标器上的CPU以及DRAM内存资源,减少I/O延迟,减轻存储磁盘的I/O负载和提高系统的整体性能。
本发明的特征在于:该方法利用IP SAN中目标器上富余的CPU以及DRAM内存资源对热点数据进行自动缓存,依次含有以下步骤:
步骤(1)在作为存储管理节点的IP SAN目标器上的SCSI目标器中间层模块上建立一个
缓存管理模块,该缓存管理模块和IP SAN目标器软件共同运行在IP SAN系统目标器节点的嵌入式操作系统上;
步骤(2)按以下步骤为SCSI目标器中间层命令中所包含的SCSI命令分配I/O数据缓冲区:
步骤(2.1)把该IP SAN系统的磁盘空间按照磁盘的块地址逻辑地划分为大小与缓
存块大小一致的映射粒度;
步骤(2.2) 当为SCSI目标器中间层命令所包含的SCSI命令分配I/O数据缓冲区时,将SCSI命令所访问数据的块起始地址和块结束地址按照磁盘空间所划分的粒度大小进行对齐,块起始地址将会被对齐到所访问数据所在的第一个磁盘粒度的块起始地址,块结束地址将会被对齐到所访问数据所在的最后一个磁盘粒度的块结束地址,而所分配的数据缓冲区将用于存取磁盘空间地址位于对齐后的块起始地址和块结束地址之间的数据,这些空间对应若干个完整的磁盘存储粒度;
步骤(2.3)把一个SCSI目标器中间层命令所包含的一个SCSI命令按照其所访问的数据所跨越的所述磁盘粒度进行拆分,为数据所在的每一个磁盘存储粒度都生成一个新的SCSI命令,将原来的SCSI命令中整段的缓冲区相应地分割给每一个新生成的SCSI命令;
步骤(3)当SCSI目标器中间层命令所包含的SCSI命令为读命令时,按以下步骤执行:
步骤(3.1)以SCSI命令访问数据所在的磁盘存储粒度的块起始地址作为索引、利用一种作为可扩展哈希树的基树结构对由内存资源所组成的缓存进行快速查找;
步骤(32)若所要访问的数据在基于目标器内存设备缓冲区中,则直接利用该缓冲区中的相应数据对SCSI命令的I/O数据缓冲区进行填充,并且把SCSI命令返回给IP SAN的前端启动器;否则,则直接把所要访问的数据从磁盘读入到该SCSI命令的I/O数据缓冲区中,然后再把此SCSI命令I/O数据缓冲区中的数据填充到基于目标器的内存设备缓冲区中以备后续对相同数据区的访问,填充之后把该SCSI命令返回给IP SAN的前端启动器;
步骤(4)当SCSI目标器中间层命令所包含的SCSI命令为写命令时,执行如下步骤:
步骤(4.1)在所述IP SAN前端启动器把数据写入到SCSI命令的I/O数据缓冲区后,按步骤(3.1)所属的方法对内存资源所组成的缓存资源进行快速查找,以确定所要写入的数据是否在缓存中;
步骤(4.2)若在缓存中,则首先把该SCSI命令I/O数据缓冲区中的数据直接写入到磁盘中相应的区域,然后利用SCSI命令I/O数据缓冲区中的数据对缓存中相应缓存块中的数据进行更新,在更新完成后,把该SCSI命令返回给IP SAN的的端启动器;若不在缓存中,则直接把该SCSI命令的I/O数据缓冲区中的数据写入到磁盘中的相应区域,然后把该SCSI命令返回给IP SAN前端启动器。
测试结果表明:与目标器不具缓存功能的IPSAN系统相比较而言,目标器具有缓存功能的IP SAN系统的性能得到了有效的提高:对于比较典型的情况随机的请求块大小为4KB的100%读I/O请求,系统的IOPS提高了15.6倍,系统的I/O带宽提高了15.4倍,系统的平均相应时间缩短了93%。
附图说明
图1:IP SAN系统示意图。
图2:存储管理节点的硬件结构。
图3:目标器具有缓存功能的IP SAN系统软件结构。
图4:系统程序流程图。
图5:为SCSI目标器中间层命令所包含的SCSI命令分配I/O数据缓冲区时地址对齐示意图。
图6:SCSI命令拆分示意图。
图7:缓存查找示意图。
具体实施方式
IP SAN将存储设备与主机分离,对存储空间进行统一的管理和分配,其结构如图1所示。
服务器节点的硬件子系统包括INTEL CPU、标准的PCI总线、SCSI接口卡、标准的光纤网络接口卡(FC HBA)、以太网络接口卡、硬盘。服务器节点可以运行WINDOWS 2000等多种操作系统和WEB服务器软件系统。
以太网交换机采用NETGEAR GS516T千兆交换机。管理主机采用商用PC机,使用以太网络接口卡连接到以太网络,管理IP SAN系统。
存储管理节点采用商业化商用PC机如联想天瑞3130,硬件子系统的模块结构如图2。
存储管理节点的主板采用商用的服务器主板,如Supermicro(超微)公司X5DA8、X5DAE主板等,所有的CPU采用INTEL公司XEON系列CPU。存储管理节点包括2个商用的光纤通道HBA,如QLOGIC公司的QLA2310F系列,它们之间可以实现容错备份或者捆绑功能。存储管理节点包括2-3个商用的SCSI接口卡,如ADAPTEC公司的7XXX系列接口卡,他们连接高密度的磁盘阵列子系统如ISD PinnacleRAID 500。电源子系统采用目前标准的、商用的N+1方式电源如山特公司的3C3系列,FLASH DISK负责存储各种软件,如M-SYSTEMS公司的DOC2000系列。Myrinet接口卡采用Myricom公司的LANai9系列接口卡。
本项发明基于内存设备的缓存方法实现在SCSI目标器中间层模块之上,与IP SAN的目标器软件一起运行在存储管理节点上。IP SAN系统的软件结构以及缓存管理模块的位置如图3所示。
各软件模块的功能如下表:
缓存管理模块作为内核模块,在存储管理节点的嵌入式操作系统中运行(操作系统在图3中没有给出,实际上所有软件部分包括的模块都运行在操作系统当中)。缓存管理模块所实现的写直达策略的缓存主要是针对有大量的突发读操作的应用程序,其程序流程如图4所示。
缓存方法主要通过对读写操作所请求的数据操作完成方法功能,过程如下:
1.为SCSI目标器中间层命令所包含的SCSI命令分配I/O数据缓冲区IP SAN系统的磁盘空间按照磁盘的块地址被逻辑地划分为大小与缓存管理单位(缓存块)一致的映射粒度。如果缓存管理模块决定对某一个命令所访问的数据进行缓存,则必须对此命令访问的数据所在的所有的磁盘存储粒度整块进行缓存,因此在为SCSI目标器中间层命令所包含的SCSI命令分配I/O数据缓冲区的时候,需要对命令所访问数据的块起始地址和结束地址按照磁盘空间所划分的粒度大小进行对齐,分配的数据缓冲区将用来存取块地址对齐后所形成的磁盘空间中的数据,这些数据空间为若干个完整的磁盘存储粒度。比如,如果缓存块大小为128KB,则磁盘空间在逻辑上由大小为128KB的磁盘存储粒度组成,假设某一个命令需要访问地址在210KB到430KB之间的磁盘数据,这些数据所在的磁盘存储粒度为粒度2、粒度3以及粒度4,这样为此命令分配的I/O数据缓冲区大小为540KB,用以对粒度2、粒度3以及粒度4进行访问,地址对齐如图5所示。
2.SCSI命令的拆分
为了便于缓存块的查找和替换,我们将一个SCSI目标器中间层命令所包含的一个SCSI命令按照其所访问的数据所跨越的磁盘存储粒度进行了拆分,为数据所在的每一个磁盘存储粒度都生成一个新的SCSI命令,原来的整段的I/O数据缓冲区也相应地被分割给每一个新生成的SCSI命令,如图6所示,这样缓存管理模块将对命令拆分所生成的SCSI命令进行逐个处理。
3.在缓存中对新生成的SCSI命令所访问的数据进行查找
对于读SCSI命令,在为其分配I/O数据缓冲区并且命令拆分之后,即可在缓存中对此命令所访问的数据进行查找;对于写命令则需要在IP SAN启动器将要写入到磁盘的数据填充到此SCSI命令的I/O数据缓冲区并且返回给IP SAN目标器后再在缓存中对此SCSI命令所访问的数据进行查找并且将数据更新。缓存中所缓存的数据都是完整的磁盘存储粒度,因此我们利用SCSI命令所访问的数据所在的磁盘存储粒度的块起始地址作为索引来进行缓存查找。由于缓存容量大,缓存块数目多,我们需要一种快速有效的方法来实现对缓存的查找。我们采用已有的基树(radix tree,一种可扩展哈希树)结构来实现对数据的索引和查找,基树结构能够实现大量数据的快速查找,从而大大提高大容量缓存的查找和管理速度。
每一个基树节点都有64个关联槽,每一个关联槽可以关联一个基树节点。在利用磁盘存储粒度的块起始地址作为键值查找所索引的信息时,基树根据当前树的高度将键值拆分成若干段,我们称之为键值段,拆分所生成的每一个键值段都与基树中的一层相对应,基树会从最顶层的根节点开始依次利用键值拆分所生成的键值段进行HASH得到相对应的关联槽,然后再利用下一个键值段在得到的关联槽所对应的节点中HASH得到下一个关联槽,直到基树的叶节点层(键值拆分所生成段的最后一段)。这时候,如果叶节点中对应的关联槽为空,则所需要进行读写的数据没有在缓存中,反之,如果叶节点中对应的关联槽为非空,则关联槽中保存有相对应的缓存块的指针信息,这时候可以直接对所得到的缓存块指针所指向的缓存块进行读写操作即可,基树的查找过程如图7所示。
基树高度 | 最大索引值 | 叶子节点最多容纳关联槽数目 |
0 | None | 0 |
1 | 2<sup>6</sup>-1=63 | 64 |
2 | 2<sup>12</sup>-1=4 095 | 64 |
3 | 2<sup>18</sup>-1=262 143 | 64 |
4 | 2<sup>24</sup>-1=16 777 215 | 64 |
5 | 2<sup>30</sup>-1=1 073 741 823 | 64 |
6 | 2<sup>32</sup>-1=4 294 967 295 | 4 |
表4.1基树高度与最大索引值对照表
在使用32位的索引值的情况下,树的最大高度为6,每个叶子节点上最多4个关联槽。也就是说,在该情况下,查找一个节点一般最多需要6次访存,时间复杂度为O(1)。在空间复杂度方面,基树与普通的HASH树不同,其中不存在无孩子的节点,这就使得它可以显著的节省内存空间。
4.对需要缓存的数据进行缓存
在对SCSI命令所访问的数据进行缓存查找之后,对于读操作的SCSI命令,如果缓存命中,则直接利用缓存中的数据填充SCSI命令的I/O数据缓冲区;如果缓存没有命中,则调用SCSI驱动程序的函数将所要访问的数据从磁盘读入到SCSI命令的I/O数据缓冲区中。在数据被读入到缓冲区之后,缓存管理模块将缓冲区中的数据填充到缓存中,并将此SCSI命令返回给IP SAN启动器。
对于写操作的SCSI命令,则首先将SCSI命令的I/O数据缓冲区中的数据写入到磁盘中。此后,如果缓存命中,则在将SCSI命令的I/O数据缓冲区中的数据更新到相应的缓存块中之后将此命令返回给IP SAN启动器;如果没有命中,则直接将此命令返回给IP SAN启动器。
调用SCSI驱动程序的函数接口从磁盘中读取数据以及往磁盘中写入数据是一个异步的过程,因此会出现如下的这种情况:在缓存管理模块调用SCSI驱动程序函数将一个SCSI命令发往磁盘正在被执行的过程中,接着被缓存管理模块处理的SCSI命令对同一块数据进行访问。如果没有采取某种策略来确保这种情况的正确处理,可能会出现同一个磁盘存储粒度在缓存中对应有多个缓存块的现象,同时也可能会出现读取数据无效以及更新数据无效的现象。
我们采取了如下的策略来确保一个被缓存的磁盘存储粒度只对应一个缓存块:在调用SCSI驱动程序的函数之前为需要缓存的磁盘存储粒度分配一个缓存块,这样当接着被处理的SCSI命令访问同一个数据块的时候就能够得知这个磁盘存储粒度已经有某一个缓存块与之对应,从而不会为这个磁盘存储粒度重复申请缓存块。我们采取如下的策略来确保读取以及更新的数据是有效的:对于某一个SCSI命令所访问的磁盘存储粒度是需要被缓存的情况,在此SCSI命令被发往磁盘正在被执行的过程中,我们标记已经为这个磁盘存储粒度分配好的缓存块为DATA_BEING_UPDATED,以表明此磁盘存储粒度正在被缓存只是缓存中的数据还未有效,在数据被完全更新到缓存之后,我们将缓存块标记为DATA_AVAILABLE以表明目前此缓存块中的数据是有效的。
这样,在接着被处理的SCSI命令对同一个磁盘存储粒度中的数据进行访问的时候,经过缓存查询之后,如果发现所访问的数据缓存命中并且相对应的缓存块被标识为DATA_BEING_UPDATED,则此命令暂时不会被处理直到缓存块的标识被更改为DATA_AVAILABLE;如果缓存块的标识为DATA_AVAILABLE,那么对于读操作的SCSI命令,缓存块中相应的数据段会被填充到SCSI命令的I/O数据缓冲区中,对于写操作的SCSI命令,命令I/O数据缓冲区中会在其被写入到磁盘之后更新到缓存块中。
对目标器具有缓存功能的IP SAN系统进行了实验,采用的测试工具是Iometer,使用随机读写命令流,其中我们测试了读请求与写请求各占50%以及全部是读请求,数据块大小为128KB和4KB的情况。
表1.目标器具有写直达缓存功能的IP SAN系统性能
100%读请求,4KB请求块大小
目标器具有缓存功能的IP SAN系统 | 目标器不具缓存功能的IP SAN系统 | |
IOPS | 2735 | 175 |
I/O带宽 | 10.5MB/s | 0.68MB/s |
平均响应时间 | 1.45ms | 22.9ms |
50%读请求50%写请求,4KB请求块大小
目标器具有缓存功能的IP SAN系统 | 目标器不具缓存功能的IP SAN系统 | |
IOPS | 3050 | 153 |
I/O带宽 | 11.8MB/s | 1.21MB/s |
平均响应时间 | 1.33ms | 12.9ms |
100%读请求,128KB请求块大小
目标器具有缓存功能的IP SAN系统 | 目标器不具缓存功能的IP SAN系统 | |
IOPS | 91 | 86 |
I/O带宽 | 11.3MB/s | 10.9MB/s |
平均响应时间 | 44.3ms | 46.1ms |
50%读请求50%写请求,128KB请求块大小
目标器具有缓存功能的IP SAN系统 | 目标器不具缓存功能的IP SAN系统 | |
IOPS | 114 | 54 |
I/O带宽 | 14.3MB/s | 13.6MB/s |
平均响应时间 | 35.3ms | 36.7ms |
测试结果表明:与目标器不具缓存功能的IPSAN系统相比较而言,目标器具有缓存功能的IP SAN系统的性能得到了有效的提高:对于比较典型的情况是,随机的请求块大小为4KB的100%读I/O请求,系统的IOPS提高了15.6倍,系统的I/O带宽提高了15.4倍,系统的平均相应时间缩短了93%。
基于目标器内存设备的缓存方法具有如下主要特点:
1、充分利用IP SAN目标器的CPU以及DRAM内存资源;
2、自动的对磁盘空间的热点粒度进行缓存,减少了I/O延迟,减轻了存储磁盘的I/O负载和提高系统的整体性能。
Claims (2)
1.以太网存储区域网络中基于目标器内存设备的缓存方法,其特征在于,该方法利用以太网存储区域网络IP SAN中目标器上富余的CPU以及DRAM内存资源对热点数据进行自动缓存时依次含有以下步骤:
步骤(1)在作为存储管理节点的IP SAN目标器上的小型计算机系统接口SCSI目标器中间层模块上建立一个缓存管理模块,该缓存管理模块和IP SAN目标器软件共同运行在IP SAN系统目标器节点的嵌入式操作系统上;
步骤(2)按以下步骤为SCSI目标器中间层命令中所包含的SCSI命令分配I/O数据缓冲区:步骤(2.1)把该IP SAN系统的磁盘空间按照磁盘的块地址逻辑地划分为大小与基于目标器内存设备缓冲区缓存块大小一致的映射粒度;
步骤(2.2)当为SCSI目标器中间层命令所包含的SCSI命令分配I/O数据缓冲区时,将SCSI命令所访问数据的块起始地址和块结束地址按照磁盘空间所划分的粒度大小进行对齐,块起始地址将会被对齐到所访问数据所在的第一个磁盘粒度的块起始地址,块结束地址将会被对齐到所访问数据所在的最后一个磁盘粒度的块结束地址,而所分配的数据缓冲区将用于存取磁盘空间地址位于对齐后的块起始地址和块结束地址之间的数据,这些空间对应若干个完整的磁盘存储粒度;
步骤(2.3)把一个SCSI目标器中间层命令所包含的一个SCSI命令按照其所访问的数据所跨越的所述磁盘粒度进行拆分,为数据所在的每一个磁盘存储粒度都生成一个新的SCSI命令,将原来的SCSI命令中整段的缓冲区相应地分割给每一个新生成的SCSI命令;
步骤(3)当SCSI目标器中间层命令所包含的SCSI命令为读命令时,按以下步骤执行:步骤(3.1)以SCSI命令访问数据所在的磁盘存储粒度的块起始地址作为索引、利用一种作为可扩展哈希树的基树结构对由内存资源所组成的缓存进行快速查找;
步骤(3.2)若所要访问的数据在基于目标器的内存设备缓冲区中,则直接利用该缓冲区中的相应数据对SCSI命令的I/O数据缓冲区进行填充,并且把SCSI命令返回给IP SAN的前端启动器;否则,则直接把所要访问的数据从磁盘读入到该SCSI命令的I/O数据缓冲区中,然后再把此SCSI命令I/O数据缓冲区中的数据填充到基于目标器的内存设备缓冲区中以备后续对相同数据区的访问,填充之后把该SCSI命令返回给IP SAN的前端启动器;
步骤(4)当SCSI目标器中间层命令所包含的SCSI命令为写命令时,执行如下步骤:步骤(4.1)在所述IP SAN前端启动器把数据写入到SCSI命令的I/O数据缓冲区后,按步骤(3.1)所述的方法对内存资源所组成的缓存进行快速查找,以确定所要写入的数据是否在缓存中;
步骤(4.2)若在缓存中,则首先把该SCSI命令I/O数据缓冲区中的数据直接写入到磁盘中相应的区域,然后利用SCSI命令I/O数据缓冲区中的数据对缓存中相应缓存块中的数据进行更新,在更新完成后,把该SCSI命令返回给IP SAN的前端启动器;若不在缓存中,则直接把该SCSI命令的I/O数据缓冲区中的数据写入到磁盘中的相应区域,然后把该SCSI命令返回给IP SAN前端启动器。
2.根据权利要求1所述的以太网存储区域网络中基于目标器内存设备的缓存方法,其特征在于,在将SCSI命令发往磁盘执行的同时,把为此SCSI命令访问的磁盘粒度所分配好的缓存块标记为“数据正在更新”,以避免这些内存缓存区中的缓存块数据在更新时被其他的SCSI命令进行访问,在数据完全更新到缓存中之后,再将这些缓存块标记为“数据有效”,以避免同一个磁盘存储粒度在缓存中对应有多个缓存块的现象,保证了缓存中数据的唯一性,并且保证了数据更新的有效性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100889317A CN100405777C (zh) | 2006-07-27 | 2006-07-27 | 以太网存储区域网络中基于目标器内存设备的缓存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100889317A CN100405777C (zh) | 2006-07-27 | 2006-07-27 | 以太网存储区域网络中基于目标器内存设备的缓存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1946049A CN1946049A (zh) | 2007-04-11 |
CN100405777C true CN100405777C (zh) | 2008-07-23 |
Family
ID=38045267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100889317A Expired - Fee Related CN100405777C (zh) | 2006-07-27 | 2006-07-27 | 以太网存储区域网络中基于目标器内存设备的缓存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100405777C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262657B (zh) * | 2011-06-29 | 2014-12-03 | 华为数字技术(成都)有限公司 | 多媒体数据存储方法及系统 |
CN103544191A (zh) * | 2012-07-17 | 2014-01-29 | 人人游戏网络科技发展(上海)有限公司 | 一种用于读取缓存数据的方法和设备 |
CN107506156B (zh) * | 2017-09-28 | 2020-05-12 | 焦点科技股份有限公司 | 一种块设备的io优化方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1540524A (zh) * | 2003-10-31 | 2004-10-27 | 清华大学 | 存储区域网络中分布式虚拟化存储的方法 |
CN1543135A (zh) * | 2003-11-07 | 2004-11-03 | 清华大学 | San系统中基于负载自适应的异步远程镜像方法 |
US20040267902A1 (en) * | 2001-08-15 | 2004-12-30 | Qing Yang | SCSI-to-IP cache storage device and method |
CN1652091A (zh) * | 2004-02-07 | 2005-08-10 | 华为技术有限公司 | 一种在数据存储系统中预取数据的方法 |
US6965934B1 (en) * | 1999-11-12 | 2005-11-15 | Crossroads Systems, Inc. | Encapsulation protocol for linking storage area networks over a packet-based network |
-
2006
- 2006-07-27 CN CNB2006100889317A patent/CN100405777C/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6965934B1 (en) * | 1999-11-12 | 2005-11-15 | Crossroads Systems, Inc. | Encapsulation protocol for linking storage area networks over a packet-based network |
US20040267902A1 (en) * | 2001-08-15 | 2004-12-30 | Qing Yang | SCSI-to-IP cache storage device and method |
CN1540524A (zh) * | 2003-10-31 | 2004-10-27 | 清华大学 | 存储区域网络中分布式虚拟化存储的方法 |
CN1543135A (zh) * | 2003-11-07 | 2004-11-03 | 清华大学 | San系统中基于负载自适应的异步远程镜像方法 |
CN1652091A (zh) * | 2004-02-07 | 2005-08-10 | 华为技术有限公司 | 一种在数据存储系统中预取数据的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1946049A (zh) | 2007-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100405304C (zh) | 基于存储区域网络的高速固态存储设备的实现方法 | |
US8595463B2 (en) | Memory architecture with policy based data storage | |
AU2010234648B2 (en) | Method and apparatus for storing data in a flash memory data storage device | |
US20160085585A1 (en) | Memory System, Method for Processing Memory Access Request and Computer System | |
CN104903872A (zh) | 用于自适应持久化的系统、方法和接口 | |
CN102073533B (zh) | 支持动态二进制翻译的多核体系结构 | |
US20090106507A1 (en) | Memory System and Method for Using a Memory System with Virtual Address Translation Capabilities | |
CN102521330A (zh) | 一种桌面虚拟化环境下的镜像分布式存储方法 | |
CN106066890B (zh) | 一种分布式高性能数据库一体机系统 | |
CN107832423B (zh) | 一种用于分布式文件系统的文件读写方法 | |
US8694563B1 (en) | Space recovery for thin-provisioned storage volumes | |
CN112632069B (zh) | 哈希表数据存储管理方法、装置、介质和电子设备 | |
CN101751233A (zh) | 存储设备容量的扩展方法及系统 | |
US20190004968A1 (en) | Cache management method, storage system and computer program product | |
WO2023035646A1 (zh) | 一种扩展内存的方法、装置及相关设备 | |
CN113568562A (zh) | 一种存储系统、内存管理方法和管理节点 | |
CN104519103A (zh) | 网络数据的同步处理方法、服务器及相关系统 | |
CN111736764B (zh) | 一种数据库一体机的存储系统及数据请求处理方法、装置 | |
US8239427B2 (en) | Disk layout method for object-based storage devices | |
US10572464B2 (en) | Predictable allocation latency in fragmented log structured file systems | |
Guo et al. | HP-mapper: A high performance storage driver for docker containers | |
CN100405777C (zh) | 以太网存储区域网络中基于目标器内存设备的缓存方法 | |
CN112379825A (zh) | 基于数据特征分池的分布式数据存储方法及装置 | |
CN101377788A (zh) | 一种机群文件系统中缓存管理的方法及系统 | |
CN113010452A (zh) | 一种高效且支持QoS的虚拟内存架构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080723 Termination date: 20110727 |