CN100357873C - 输入输出调适性写入快取政策调整作业 - Google Patents
输入输出调适性写入快取政策调整作业 Download PDFInfo
- Publication number
- CN100357873C CN100357873C CNB2005100860935A CN200510086093A CN100357873C CN 100357873 C CN100357873 C CN 100357873C CN B2005100860935 A CNB2005100860935 A CN B2005100860935A CN 200510086093 A CN200510086093 A CN 200510086093A CN 100357873 C CN100357873 C CN 100357873C
- Authority
- CN
- China
- Prior art keywords
- crossfire
- output
- write
- request
- gradualness
- 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
- 230000003044 adaptive effect Effects 0.000 title abstract description 6
- 238000003860 storage Methods 0.000 claims abstract description 198
- 238000000034 method Methods 0.000 claims abstract description 72
- VEMKTZHHVJILDY-UHFFFAOYSA-N resmethrin Chemical compound CC1(C)C(C=C(C)C)C1C(=O)OCC1=COC(CC=2C=CC=CC=2)=C1 VEMKTZHHVJILDY-UHFFFAOYSA-N 0.000 claims description 339
- 230000004083 survival effect Effects 0.000 claims description 28
- 230000007246 mechanism Effects 0.000 claims description 27
- 238000004458 analytical method Methods 0.000 claims description 8
- 230000032696 parturition Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明是有关于一种用以在一储存虚拟化子***中执行调适性写入快取的方法。该方法包括如下步骤:定义为执行写入快取处理而相关于该储存虚拟化子***的一操作状态的标准;分析由一主机单元(host entity)所送出的至少一写入输出入(IO)请求串流的特征,以令决定该串流是否符合该标准;由该子***接收一来自该主机单元的新的写入输出入请求;以及根据该决定结果执行写入快取处理,以将关联于该新写入输出入请求的数据写入至该实体储存装置(PSD)阵列。
Description
技术领域
本发明涉及一种储存虚拟化子***中的输出入串流调适性写入快取政策调整作业。
背景技术
储存虚拟化是一种藉由将实体储存装置(PSD)的各区段合并成为逻辑储存个体,兹称之为逻辑媒体单元,而令由一主机***能够加以接取,俾运以将实体储存虚拟化的技术。此项技术既已主要运用在独立冗余磁碟阵列(RAID)的储存虚拟化作业,这可通过独立冗余磁碟阵列技术,将较小的实体储存装置合并成为较大、容错、更高效能的逻辑媒体单元。
一逻辑媒体单元,简称LMU,是一储存个体,其个别储存元素(即如储存区块)可由一逻辑储存位址所唯一地定址。一逻辑媒体单元常见范例即为一硬式磁碟机(HDD)的实体储存通过该主机输出入装置互连而对一主机的表现方式。在此情况下,当在该实体层级时,该硬式磁碟机会被分割成圆柱、头区及区段,而对该主机所呈现的则是由一单一逻辑区块位址所定址的一组连续储存区块(各区段)。另一范例则是储存磁带通过该主机的输出入装置互连对于一主机的表现方式。
一“储存虚拟化控制器”,简称SVC,是一装置,而其主要目的为将实体储存媒体的各区段的组合对映到该主机***可见的逻辑媒体单元。接收自该主机***的输出入请求会被剖析及解译,并且将相关的操作及数据转译成为实体储存装置输出入请求。这项处理可间接经快取、延迟(即如回写)、预期(先读)、群组化等等的操作,以改善效能及其他操作性特征,因此一主机输出入请求并不必然地会按一对一方式直接地导致实体储存装置输出入请求。
一“外部(有时称为“单立式”)储存虚拟化控制器”是一“储存虚拟化控制器”,通过一输出入介面连接至该主机***,并且能够支援接往常驻于该主机***外部的装置的连接,且另能够独立于该主机而运作。
一外部“储存虚拟化控制器”的范例即为一外部,或单立式、直接接取的独立冗余磁碟阵列控制器。一独立冗余磁碟阵列控制器可将于一或多个实体储存装置(PSD)上的各区段加以合并,此等的组合是由一特定独立冗余磁碟阵列层级的本质决定,以构成可由一主机***连续定址的逻辑媒体单元,而该主机***可获用此逻辑媒体单元。一单一独立冗余磁碟阵列控制器会通常支援多个独立冗余磁碟阵列层级,因此不同逻辑媒体单元可含有依照描述不同单元的特征的不同独立冗余磁碟阵列层级,而按不同方式合并的实体储存装置的各区段。
另一外部“储存虚拟化控制器”范例即为一JBOD模拟控制器。一JBOD,“碟机成堆”的简写,是将通过一或更多的多重装置输出入装置互连通道而将一组实体储存装置直接地连接到一主机***。实作点对点输出入装置互连以连接到该主机***的各实体储存装置(即如平行先进技术接取介面硬式磁碟机(Parallel ATA HDD)、序列先进技术接取介面硬式磁碟机(SerialATA HDD)等等)无法直接地被合并以构成如前定义的“碟机成堆”***,这是因为该等并不允许多个装置直接地连接到该输出入装置通道。
另一外部“储存虚拟化控制器”的范例为一外部磁带备份子***的控制器。
一“储存虚拟化子***”(简写成SV子***,或SVS)含有一或更多的上述储存虚拟化控制器或外部储存虚拟化控制器,以及至少一个连接至此以对其提供储存的实体储存装置。
“储存虚拟化”通常并入数据快取处理,以强化整体效能及数据产出量。这项数据快取通常包括快取读取数据及快取写入数据。快取写入数据可进一步分成回写快取(Write-Back Caching)及径写快取(Write-ThroughCaching)。在回写快取里,当该储存虚拟化子***收到相关数据并登注于快取内之后,随即就会对该主机送出一既已完成一写入作业的回应。一直到稍后时刻才会承载至实体媒体。在径写快取处理中,会将对于该主机的既已完成一写入作业的回应加以延迟,一直到相关数据完全地承载至实体媒体之后为止。
一般说来,回写快取具有改善效能的益处。藉由当数据抵达之后随即回应至该主机,而非等待一直到经承载至实体媒体上为止,通常每单位时间里可处理更多的主机写入输出入请求。此外,藉由在真正承载至实体媒体之前先累积大量的数据在快取内,可在该承载处理过程中执行最佳化。这种最佳化包括藉由将大量数据群组化成为单一写入作业以减少对各实体储存装置写入作业的次数、将数据加以排序以缩短实体储存装置机械性延迟。
径写快取具有改善的数据安全性的优点。例如一突发的电力漏失或失效储存虚拟化控制器不会造成数据漏失。在某些环境下,像是当该写入输出入串流在本质上属循序性,且该储存虚拟化控制器是经组态设定成为备援储存虚拟化子***时,径写快取可实际地提供较佳效能。在此一储存虚拟化子***里,为避免在发生失效储存虚拟化控制器时漏失数据,可将回写快取处理合并于控制器间快取写入同步,使得在该备援对里的其他控制器中会有所有未经承载写入数据的备份。这个当来自该主机时,将该写入数据按即时方式备份于其他控制器内的处理或会造成显著的效能劣化结果。在此情况下,特别是如该写入输出入串流本质上属循序性者,径写快取可实际地获致较佳效能,这是因为不需要将数据备份至其他控制器以避免在发生储存虚拟化控制器失效的情况下漏失数据。
为努力提供使用者调整写入快取政策以设定该使用者认为适合于该特定组态及输出入串流特征的能力,一典型储存虚拟化子***会支援写入快取政策的手动调整作业。在许多***里,此项政策可动态地加以调整,意思是会随即生效而不需要令相关逻辑媒体单元或甚整个***离线然后再连接上线。此外,各逻辑媒体单元或甚通过该主机侧输出入装置互连而呈现予该主机的各逻辑单元可具有其本身的独立组态设定写入快取政策。有些储存虚拟化子***甚至能够藉由在该输出入命令资讯本身内所载送的资讯,来支援按逐一输出入为基础的写入快取政策调整作业。
由此可见,有鉴于上述缺陷,本发明人基于从事此类产品设计制造多年丰富的实务经验及专业知识,并配合学理的运用,积极加以研究创新,以期创设一种新的输入输出调适性写入快取政策调整作业方法。经过不断的研究、设计,并经反复试作及改进后,终于创设出确具实用价值的本发明。
发明内容
即如前述,在许多情况下,回写快取可提供佳于径写快取的经改善效能。不过,在有些情况,径写快取政策会因为数据安全性考量而为较优。这些情况或会随时间而变,因此在有些的情况下,于一第一时段过程中考量到数据安全性及效能两者,施用回写处理或为最佳快取政策,而在不同的情况下,于一第二时段过程中,或许因为发生或会造成漏失存驻于该数据快取内的未经承载数据的事件的风险提高,故径写处理可为最佳的快取政策。为了调适于环境的变化,可将动态调整写入数据快取合并于一种当登注一触发事件时即启动一写入快取政策调整的机制。一种会造成一写入政策调整的常见触发事件范例即为一备用电源的状态改变。当一像是电池的备用电源在能够维持该快取数据一直到将其承载至一非挥发性储存装置(即如实体储存装置)的状态下时,可将该整体写入快取政策设定为回写以利提高整体效能。如该备用电源的状态改变成无法维持该经快取数据一直到予以承载(即如电池不是完全充电或该电源按某方式故障),则可立即地将存驻于该数据快取内的未经承载数据承载至非挥发性储存装置,并且可将整体写入快取政策修改为径写处理,以确保来自主电源的突发电力漏失不会造成未经承载数据的漏失。
一般说来,回写数据快取会获得较佳效能,相较于径写数据快取。然而,即如前述,会有某些情况,径写快取或会展现比起回写效能为佳的效能。在这些情况下,使用者可手动地将该写入快取政策调整至一可将该效能最佳化的设定。该使用者可通常必须监视该主机输出入串流的本质及相关于此的效能特征,并据此而手动地调整该写入快取政策设定。此项该使用者部分的监视处理及重新组态设定对于整体拥有成本及***维护是一另增成本。将该处理自动化可消除对此使用者监视及重新组态设定的需要,藉此消除之而同时仍达到关于将该写入快取政策保持在为该等情况而随即调整至其最佳设定的最佳效能水准。
本发明的目的就是在提供一种方法和***,以藉由适当地调整写入快取政策,对于目前组态设定及操作状态而在不同输出入负载下达到最佳效能。这称为“输出入串流调适性写入快取政策调整作业”,因为写入快取政策“调适”于不同组态与不同种类的输出入负载。对此的先决条件为可支援写入快取政策的动态调整作业。这也会要求实作一种考量到目前组态及操作状态,根据输出入负载来决定何时一写入快取政策调整作业为适当的机制。
在一示范性具体实施例里,揭示一种用以在一其中包括至少一储存虚拟化控制器以及一含有至少一实体储存装置(PSD)而连接于此的实体储存装置阵列的储存虚拟化子***中执行调适性写入快取的方法,该方法包括:分析一由一主机单元所送出的至少一写入输出入请求的串流的特征;从该分析步骤决定该串流是否实质上为循序性;由该子***接收一来自该主机单元的新写入输出入请求;以及当该串流被决定为实质上属循序性时,自动地执行径写快取以将相关于该新写入输出入请求的数据写入至该实体储存装置阵列,或是当该串流被决定为并非实质上属循序性时,自动地执行回写快取以将相关于该新写入输出入请求的数据写入至该实体储存装置阵列。
在另一示范性具体实施例里,揭示一种用以于一其中包括至少一储存虚拟化控制器以及一含有至少一实体储存装置(PSD)而连接于此的实体储存装置阵列的储存虚拟化子***中执行调适性写入快取,以将数据从该控制器对写入至该实体储存装置阵列的方法,该方法包括:由该子***接收一组来自该主机单元的至少一写入输出入请求;从该组至少一写入输出入请求决定一输出入串流实质上为循序性;由该子***接收一来自该主机单元的新写入输出入请求;以及如该新写入输出入请求被决定为属于该输出入串流,自动地执行径写快取以将相关于该新写入输出入请求的数据写入至该实体储存装置阵列,或是如该新写入输出入请求被决定为不属于该输出入串流,自动地执行回写快取以将相关于该新写入输出入请求的数据写入至该实体储存装置阵列。
在另一示范性具体实施例,揭示一种用以于一其中包括至少一储存虚拟化控制器以及一含有至少一实体储存装置(PSD)而连接于此的实体储存装置阵列的储存虚拟化子***中执行调适性写入快取,以将数据从该控制器对写入至该实体储存装置阵列的方法,该方法包括:由该子***接收一组来自该主机单元的至少一写入输出入请求;从该组的至少一写入输出入请求决定一组至少一输出入串流;对该组的至少一输出入串流各者决定是否为实质上循序性;以及自动地执行径写快取,以将相关于一经决定为属于该实质上为循序性的至少一输出入串流第一者的第一新写入输出入请求的数据写入至该实体储存装置阵列,或是自动地执行回写快取,以将相关于一经决定为属于该并非实质上为循序性的至少一输出入串流第二者的第二新写入输出入请求的数据写入至该实体储存装置阵列。
在另一示范性具体实施例,揭示一种其中包括至少一储存虚拟化控制器以及一含有至少一实体储存装置(PSD)而连接于此的实体储存装置阵列,以将数据从该至少一控制器写入至该实体储存装置阵列的储存虚拟化子***,其中包括:一为以执行从该至少一储存虚拟化控制器至该实体储存装置阵列的调适性写入快取的写入快取机制,该写入快取机制执行如下步骤:由该子***接收一组来自该主机单元的至少一写入输出入请求;从该组的至少一写入输出入请求决定一组至少一输出入串流;对该组的至少一输出入串流各者决定是否为实质上循序性;以及自动地执行径写快取,以将相关于一经决定为属于该实质上为循序性的至少一输出入串流第一者的第一新写入输出入请求的数据写入至该实体储存装置阵列,或是自动地执行回写快取,以将相关于一经决定为属于该并非实质上为循序性的至少一输出入串流第二者的第二新写入输出入请求的数据写入至该实体储存装置阵列。
在另一示范性具体实施例,揭示一种其中包括一连接于此的储存虚拟化子***(SVS)的电脑***,该储存虚拟化子***包括至少一储存虚拟化控制器(SVC)及一含有至少一实体储存装置(PSD)而连接于此的实体储存装置阵列,以将数据从该至少一控制器写入至该实体储存装置阵列,并且包括一写入快取机制,以执行从该至少一储存虚拟化控制器至该实体储存装置阵列的调适性写入快取,该写入快取机制执行如下步骤:由该子***接收一组来自该主机单元的至少一写入输出入请求;从该组的至少一写入输出入请求决定一组至少一输出入串流;对该组的至少一输出入串流各者决定是否为实质上循序性;以及自动地执行径写快取,以将相关于一经决定为属于该实质上为循序性的至少一输出入串流第一者的第一新写入输出入请求的数据写入至该实体储存装置阵列,或是自动地执行回写快取,以将相关于一经决定为属于该并非实质上为循序性的至少一输出入串流第二者的第二新写入输出入请求的数据写入至该实体储存装置阵列。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种用以于一其中包括至少一储存虚拟化控制器以及一含有至少一实体储存装置(PSD)而连接于该至少一储存虚拟化控制器的实体储存装置阵列的储存虚拟化子***中执行调适性写入快取,以将数据从该控制器对写入至该实体储存装置阵列的方法,其包括以下步骤:由该子***接收一组来自一主机单元的至少一写入输出入请求;从该组的至少一写入输出入请求决定一组至少一输出入串流;对该组的至少一输出入串流各者决定是否为实质上循序性;以及自动地执行径写快取,以将相关于一经决定为属于该实质上为循序性的至少一输出入串流第一者的第一新写入输出入请求的数据写入至该实体储存装置阵列,或是自动地执行回写快取,以将相关于一经决定为属于该并非实质上为循序性的至少一输出入串流第二者的第二新写入输出入请求的数据写入至该实体储存装置阵列。
本发明的目的及解决其技术问题还采用以下技术措施来进一步实现。
前述的方法,当该输出入串流包括某个数的连续性输出入请求时,该输出入串流会被决定成实质上为循序性。
前述的方法,当该输出入串流的成长速率维持一最低串流存活成长速率时,该输出入串流会维持其属实质上为循序性的决定结果。
前述的方法,当该输出入串流的成长速率低于一最低串流存活成长速率时,该输出入串流会被决定为非可生长者。
前述的方法,当该输出入串流的成长速率低于一最低串流存活成长速率时,该输出入串流会被决定为非实质上为循序性。
前述的方法,其中所述的最低串流存活成长速率会被一现存输出入串流的个数所正范化。
前述的方法,其中所述的最低串流存活成长速率会被一现存输出入串流的个数所正范化。
前述的方法,其中所述的最低串流存活成长速率会被一现存输出入串流的个数所正范化。
前述的方法,其中所述的输出入串流成长速率会被一现存输出入串流的个数所正范化。
前述的方法,其中所述的输出入串流成长速率会被一现存输出入串流的个数所正范化。
前述的方法,其中所述的输出入串流成长速率会被一现存输出入串流的个数所正范化。
本发明的目的及解决其技术问题还采用以下技术方案来实现。依据本发明提出的一种用以在一其中包括至少一储存虚拟化控制器以及一含有至少一实体储存装置(PSD)而连接于该至少一储存虚拟化控制器的实体储存装置阵列的储存虚拟化子***中执行调适性写入快取的方法,其包括以下步骤:分析一由一主机单元所送出的至少一写入输出入请求的串流的特征;从该分析步骤决定该串流是否实质上为循序性;由该子***接收一来自该主机单元的新写入输出入请求;以及当该串流被决定为实质上属循序性时,自动地执行径写快取以将相关于该新写入输出入请求的数据写入至该实体储存装置阵列,或是当该串流被决定为并非实质上属循序性时,自动地执行回写快取以将相关于该新写入输出入请求的数据写入至该实体储存装置阵列。
本发明的目的及解决其技术问题还采用以下技术措施来进一步实现。
前述的方法,当某个数的接续性所收写入输出入请求外的各写入输出入请求为连续于先前者,则该串流会被决定为实质上为循序性。
前述的方法,其中所述的串流会在一第一时间被决定为实质上为循序性;而若该并不连续于该串流里最近一个写入输出入请求的写入输出入请求,除以另一某个数的接续所收写入输出入请求的比例值超过一第一门槛值,则该串流会在稍后于该第一时间的一第二时间被决定非实质上为循序性。
本发明的目的及解决其技术问题还采用以下技术方案来实现。依据本发明提出的一种用以于一其中包括至少一储存虚拟化控制器以及一含有至少一实体储存装置(PSD)而连接于该至少一储存虚拟化控制器的实体储存装置阵列的储存虚拟化子***中执行调适性写入快取,以将数据从该控制器对写入至该实体储存装置阵列的方法,其包括以下步骤:由该子***接收一组来自一主机单元的至少一写入输出入请求;从该组至少一写入输出入请求决定一输出入串流实质上为循序性;由该子***接收一来自该主机单元的新写入输出入请求;以及如该新写入输出入请求被决定为属于该输出入串流,自动地执行径写快取以将相关于该新写入输出入请求的数据写入至该实体储存装置阵列,或是如该新写入输出入请求被决定为不属于该输出入串流,自动地执行回写快取以将相关于该新写入输出入请求的数据写入至该实体储存装置阵列。
本发明的目的及解决其技术问题还采用以下技术措施来进一步实现。
前述的方法,当该输出入串流包括某个数的连续性输出入请求时,该输出入串流会被决定成实质上为循序性。
前述的方法,当该输出入串流包括某个数的连续性输出入请求时,并且一并不连续于该输出入串流的最近一个写入输出入请求的写入输出入请求,除以一循序性串流维持窗口的比例值并未超过一非循序性串流门槛值输出入比例值,则该输出入串流会被决定成实质上为循序性。
本发明的目的及解决其技术问题还采用以下技术方案来实现。依据本发明提出的一种储存虚拟化子***,用以将资料从一储存虚拟化控制器写入一实体储存装置阵列,该储存虚拟化子***包含该储存虚拟化控制器以及电性连接于该储存虚拟化控制器的该实体储存装置阵列,该实体储存装置阵列包含至少一实体储存装置,其包括一为以执行从该至少一储存虚拟化控制器至该实体储存装置阵列的调适性写入快取的写入快取机制,该写入快取机制执行如下步骤:由该子***接收一组来自一主机单元的至少一写入输出入请求;从该组的至少一写入输出入请求决定一组至少一输出入串流;对该组的至少一输出入串流各者决定是否为实质上循序性;以及自动地执行径写快取,以将相关于一经决定为属于该实质上为循序性的至少一输出入串流第一者的第一新写入输出入请求的数据写入至该实体储存装置阵列,或是自动地执行回写快取,以将相关于一经决定为属于该并非实质上为循序性的至少一输出入串流第二者的第二新写入输出入请求的数据写入至该实体储存装置阵列。
本发明的目的及解决其技术问题还采用以下技术措施来进一步实现。
前述的储存虚拟化子***,当该第一输出入串流含有某个数的连续性输出入请求时,该第一串流会被决定为实质上为循序性。
前述的储存虚拟化子***,当该第一输出入串流含有某个数的连续性输出入请求,并且一并不连续于该第一输出入串流的最近一个写入输出入请求的写入输出入请求,除以一循序性串流维持窗口的比例值并未超过一非循序性串流门槛值输出入比例值时,该第一串流会被决定为实质上为循序性。
本发明的目的及解决其技术问题还采用以下技术方案来实现。依据本发明提出的一种储存虚拟化控制器,是应用于一电脑***之上,该电脑***包含一主机单元、一储存虚拟化子***以及一写入快取机制,该储存虚拟化子***包含该储存虚拟化控制器以及电性连接于该储存虚拟化控制器的一实体储存装置阵列,该实体储存装置阵列则包含至少一实体储存装置,其中该写入快取机制是用以执行一调适性写入快取,将资料由该储存虚拟化控制器写入该实体储存装置阵列,其利用该写入快取机制执行如下步骤:由该子***接收一组来自该主机单元的至少一写入输出入请求;从该组的至少一写入输出入请求决定一组至少一输出入串流;对该组的至少一输出入串流各者决定是否为实质上循序性;以及自动地执行径写快取,以将相关于一经决定为属于该实质上为循序性的至少一输出入串流第一者的第一新写入输出入请求的数据写入至该实体储存装置阵列,或是自动地执行回写快取,以将相关于一经决定为属于该并非实质上为循序性的至少一输出入串流第二者的第二新写入输出入请求的数据写入至该实体储存装置阵列。
本发明的目的及解决其技术问题还采用以下技术措施来进一步实现。
前述的储存虚拟化控制器,当该第一输出入串流含有某个数的连续性输出入请求时,该第一串流会被决定为实质上为循序性。
前述的储存虚拟化控制器,当该第一输出入串流含有某个数的连续性输出入请求,并且一并不连续于该第一输出入串流的最近一个写入输出入请求的写入输出入请求,除以一循序性串流维持窗口的比例值并未超过一非循序性串流门槛值输出入比例值时,该第一串流会被决定为实质上为循序性。
经由上述可知,本发明是有关于一种用以在一储存虚拟化子***中执行调适性写入快取的方法。该方法包括如下步骤:定义为执行写入快取处理而相关于该储存虚拟化子***的一操作状态的标准;分析由一主机单元(host entity)所送出的至少一写入输出入(IO)请求串流的特征,以令决定该串流是否符合该标准;由该子***接收一来自该主机单元的新的写入输出入请求;以及根据该决定结果执行写入快取处理,以将关联于该新写入输出入请求的数据写入至该实体储存装置(PSD)阵列。
综上所述,本发明特殊的输入输出调适性写入快取政策调整作业,具有上述诸多的优点及实用价值,并在同类方法中未见有类似的设计公开发表或使用而确属创新,其不论在方法上或功能上皆有较大的改进,在技术上有较大的进步,并产生了好用及实用的效果,更加适于实用,而具有产业的广泛利用价值,诚为一新颖、进步、实用的新设计。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1说明一根据本发明的一具体实施例,对于输出入串流调适性写入快取政策动态调整作业的处理的流程图;
图2说明一根据本发明的一具体实施例,用以分析该整体输出入串流以决定是否实质上为循序性的处理的流程图;
图3显示一用以决定一输出入请求是否属于一现有的输出入串流,并且决定一现有的输出入串流是否为循序性的处理的流程图;
图4A至图4D显示根据本发明的各项具体实施例,该等用以决定会施用哪种写入快取政策的处理的流程图;
图5显示一如图4所述的决定机制范例的略图;
图6显示一根据本发明的一具体实施例,用以决定会施用哪种写入快取政策的流程图;
图7A至图7B显示根据本发明的进一步具体实施例,用以决定会施用哪种写入快取政策的各流程图;
图8A至图8B显示如图7A所示的决定机制范例;以及
图9显示一根据本发明的进一步具体实施例,用以决定会施用哪种写入快取政策的流程图。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的输入输出调适性写入快取政策调整作业其具体实施方式、方法、步骤、特征及其功效,详细说明如后。
现将详细参照于本发明的较佳具体实施例,各随附图式中所说明其等范例。只要可能,会在各图式中利用相同参考编号及说明以参指于相同或类似部分。
一般说来,对几乎任何一种的输出入负载,回写快取政策展现出最佳效能。然而,即如前述,对于本质上实质为循序性的输出入串流,会有其中径写快取政策会获致较佳效能的情况。对于此等串流,当选择回写快取政策时,相较于选择径写处理时,实体储存装置里的机械性延迟及时间耗用会显著地减少,且实际上会被或将更为严重的该***内其他位置的效能瓶颈所盖过。这些瓶颈与特定组态相关,存在于一些组态里而不在其他组态里。这种其中回写快取政策或会在实质上为循序性输出入负载下递送比起径写而为较劣的效能的组态其一即为备援储存虚拟化子***,其中会将在一储存虚拟化控制器内的快取里的未经承载数据备份至该其他储存虚拟化控制器。在当该写入输出入串流本质上为实质上循序性时,将未经承载数据拷贝至该其他储存虚拟化控制器以确保会被备份于此的处理实际上会是此一子***里的主要写入效能限制因素。因此,在该等组态下,根据于该特定时间点处该写入输出入串流的本质如何地循序性以动态地调整写入快取政策会为有利。
此者之一简易具体实施例可为连续地分析该整体输出入串流,以决定此者是否实质上为循序性。如该分析表示此者本质上实质为循序性,则会对所有进来的写入输出入请求施用径写快取政策,一直到目前分析结果显示此者在本质上已不再属实质上为循序性为止,此时会对所有进来的写入输出入请求施用回写快取政策。该项具体实施例的流程图可如图1所示。
图1说明一根据本发明的一具体实施例,用于输出入串流调适性写入快取政策动态性调整作业的处理的流程图。在步骤102里,会连续地分析该整体输出入串流以决定此者是否实质上为循序性。步骤104利用该分析结果以决定该输出入串流在本质上是否实质上为循序性。如该输出入串流在本质上并非实质上为循序性,则步骤106会对进来的写入输出入请求施用回写快取政策,或是如该输出入串流在本质上实质为循序性,则另采取步骤108而对进来的写入输出入请求施用径写快取政策。
决定该整体写入输出入串流在本质上如何地循序性按其最简单形式可为如下:若某个数的接续性所收写入输出入请求(在此称为“循序性串流门槛值输出入计数值”)的各写入输出入请求为连续于先前者,则该输出入串流会被视为是在本质上循序性。一旦该写入输出入串流由上述机制决定为在本质上实质为循序性,则只有在并不连续于该循序性串流的最近一个写入输出入请求的写入输出入请求,除以另一某个数的接续所收写入输出入请求(在此称为“循序性串流维持窗口”)的比例值超过一门槛值(在此称为“非循序性串流门槛值输出入比例值”)后,该写入输出入串流才会被视为本质上不再是实质上为循序性。该决定机制的流程图可如图2所示。
图2说明一根据本发明的一具体实施例,用以分析该整体输出入串流以决定是否实质上为循序性的处理的流程图。开始于步骤202,分析各写入输出入请求,步骤204决定该写入输出入请求是否被视为是在本质上实质为循序性,而若该步骤204内的决定结果为“否”,则在步骤206进一步决定在某个数的接续性所收写入输出入请求外的各写入输出入请求是否为连续于先前者。然后,如该步骤204或步骤206里的决定结果为“是”,则程序前进到步骤208。步骤208决定并不连续于该循序性串流的最近一个写入输出入请求的写入输出入请求,除以该循序性串流维持窗口的比例值是否超过该非循序性串流门槛值输出入比例值。最后,若在步骤208里的决定结果为“是”或在步骤206里为“否”,则在步骤210中该输出入串流不会被视为是在本质上实质为循序性。或另者,若在步骤208里的决定结果为“否”,则在步骤212中该输出入串流会被视为是在本质上实质为循序性。
当在任何时间仅单一循序性写入输出入串流为作用中时,上述具体实施例确可令人满意地运作。然而,如多个循序性写入输出入串流,各者相互独立,被送至该储存虚拟化子***时,该储存虚拟化子***或无法决定该写入输出入串流是否为实质上为循序性,这是因为来自不同串流的各写入输出入不会是连续性。为克服这项缺点,需以一种藉由对所有属于显示一实质上为循序性本质的输出入串流的写入输出入运用径写快取政策,而对所有属于并非实质上为循序性串流的写入输出入或是对并未显示出属于任何特定串流的输出入则运用回写快取政策,按个别输出入串流的基础,根据各项输出入串流特征的更复杂写入快取政策动态调整具体实施例来选择该写入快取政策。
或可按如下方式决定什么输出入组成一输出入串流且一输出入串流在本质上是否实质上为循序性:如一写入输出入请求为连续于一现存串流内的最近一个写入输出入,则这会被视为属于该串流,且变成该串流的最新的“最近”写入输出入。否则,这会被视为一新写入输出入串流的第一输出入。该项决定机制的流程图可如图3所示。
图3显示一用以决定一输出入请求是否属于一现有的输出入串流,并且决定一现有的输出入串流是否为循序性的处理的流程图。开始于步骤302,接收一写入输出入请求而步骤304执行决定该写入输出入请求是否属于一现存串流的标准。如该步骤304里的决定结果为“是”,则程序前进到步骤308,这会执行决定一输出入串流是否符合在本质上实质为循序性的标准。最后,如在步骤308里或在步骤304里的决定结果为“否”,则在步骤306里会施用回写快取政策。或另者,如在步骤308里的决定结果为“是”,则步骤310里会采用施用径写快取政策。
注意可在同时间或在不同时间执行该一输出入请求是否属于一现有输出入串流的决定作业以及一现有输出入串流是否为循序性的决定作业。
当在一写入输出入串流里的输出入请求个数超过某一计数值(在此再次地称之为“循序性串流门槛值输出入计数值”),则该输出入串流会被视为在本质上循序性,并且会对所有被决定为属于该特定串流的新近所收写入输出入施用径写快取政策。该项决定机制的流程图可如图4A所示。
图4A至图4D显示根据本发明的各项具体实施例,该等用以决定会施用哪种写入快取政策的处理的流程图。图4A的处理包括如下步骤。开始于步骤402,接收一写入输出入请求,且步骤404决定该写入输出入请求是否连续于一现存串流内的最近写入输出入。如步骤404的决定结果为“否”,则在步骤406里该写入输出入请求会被视为一新写入输出入串流的第一输出入,并且变成该新写入输出入串流的最近写入输出入,且将写入输出入串流内的输出入请求“C”的个数设定为(C=1)。或是,若在步骤404内的决定结果为“是”,则在步骤408里该写入输出入请求会被视为是属于该串流,且变得该串流的最新的最近写入输出入,且将写入输出入串流内的输出入请求“C”的个数设定为(C=C+1)。最后,步骤410决定该“C”是否超过该循序性串流门槛值输出入计数值。如在该步骤410里的决定结果为“否”,则在412步骤该输出入串流不会被视为是在本质上实质为循序性,且施用回写快取政策。或者,如在该步骤410里的决定结果为“是”,则在414步骤该输出入串流会被视为是在本质上实质为循序性,且施用径写快取政策。注意由于各写入输出入串流具有其本身的“C”,这表示在该特定写入输出入串流内的输出入请求个数,因此在步骤406里的“C”会不同于步骤408内的“C”。相同的道理适用于此说明书。
或另者,该输出入串流里超过某一量值(在此称之为“循序性串流门槛值数据长度”)的数据总数,而非超过该“循序性串流门槛值输出入计数值”的输出入请求个数,或可为决定何时将一输出入串流视为在本质上属循序性的主要标准。此项决定机制的流程可如图4B所述。
图4B的处理包括如下步骤。开始于步骤422,接收一写入输出入请求,而步骤424决定该写入输出入请求是否为连续于一现存串流内的最近写入输出入。如在步骤424内的决定结果为“否”,则在步骤426该写入IO请求会被视为是一新写入输出入串流的第一输出入,并且变成该新写入输出入处理的最近写入输出入,同时将一写入输出入串流内的数据总数“D”记录为(D=“该写入输出入请求的数据量”)。或者,如在步骤424内的决定结果为“是”,则在步骤428该写入输出入请求会被视为是属于该串流,并且变成该串流的最新的最近写入输出入串流,且将该写入输出入串流内的数据量“D”记录为(D=D+“该写入输出入请求的数据量”)。最后,在步骤430决定该“D”是否超过该循序性串流门槛值数据长度。如步骤430的决定结果为“否”,则会在步骤432该输出入串流不会被视为在本质上实质为循序性,且施用回写快取政策。或者,如步骤430的决定结果为“是”,则在步骤434该输出入串流会被视为在本质上实质为循序性,且施用径写快取政策。注意,由于各写入输出入串流具有其本身的“D”,这代表在该特定写入输出入串流内的数据总量,因此在步骤426内的“D”会不同于步骤428内的“D”。相同的道理适用于此项说明书。
或另者,数据长度或输出入计数值任一超过该等个别门槛值,或数据长度及输出入计数值两者超过该等个别的门槛值,或可用来作为决定何时一输出入串流属循序性的标准。这些决定机制的流程图可分别地如图4C及图4D所述。
图4C的处理包括如下步骤。开始于步骤442,接收一写入输出入请求,而步骤444决定该写入输出入请求是否为连续于一现存串流内的最近写入输出入。如在步骤444内的决定结果为“否”,则在步骤446将在该写入输出入串流内的输出入请求个数“C”设定为(C=1),并且将一写入输出入串流内的数据总数“D”记录为(D=“该写入输出入请求的数据量”)。或如步骤444内的决定结果为“是”,则在步骤448将在该写入输出入串流内的输出入请求个数“C”设定为(C=C+1),并且将一写入输出入串流内的数据总数“D”记录为(D=D+“该写入输出入请求的数据量”)。然后,步骤450决定该“C”是否超过该循序性串流门槛值输出入计数值,在步骤452决定该“D”是否超过该循序性串流门槛值数据长度。如在步骤450及步骤452的决定结果两者皆为“否”,则该输出入串流不会被视为在本质上实质为循序性,且会在步骤456施用回写快取政策。或者,如在步骤450或452中的任一决定结果为“是”,则该输出入串流会会在步骤454被视为在本质上实质为循序性,且施用径写快取政策。
此外,图4D的处理包括如下步骤。开始于步骤462,接收一写入输出入请求,而步骤464决定该写入输出入请求是否为连续于一现存串流内的最近写入输出入。如在步骤464内的决定结果为“否”,则在步骤466将在该写入输出入串流内的输出入请求个数“C”设定为(C=1),并且将一写入输出入串流内的数据总数“D”记录为(D=“该写入输出入请求的数据量”)。或如步骤464内的决定结果为“是”,则在步骤468将在该写入输出入串流内的输出入请求个数“C”设定为(C=C+1),并且将一写入输出入串流内的数据总数“D”记录为(D=D+“该写入输出入请求的数据量”)。然后,步骤470决定该“C”是否超过该循序性串流门槛值输出入计数值,在步骤472决定该“D”是否超过该循序性串流门槛值数据长度。如在步骤470或是步骤472任一的决定结果为“否”,则该输出入串流不会被视为在本质上实质为循序性,且会在步骤476施用回写快取政策。或者,如在步骤470及472两者中的决定结果皆为“是”,则会在步骤474将该输出入串流视为在本质上实质为循序性,且施用径写快取政策。
图5为一解释如图4A所示的决定机制的范例,其中该“循序性串流门槛值输出入计数值”被假定成设定为2。进入该储存虚拟化控制器的各写入输出入请求被给定一写入输出入序号,像是1、2、3,且分别地经标注为I1、I2、I3。属于一特定输出入串流的各输出入会被给定一串流内序号,像是1、2、3,且分别地被标注为c1、c2、c 3。在此范例里,I1为第一写入输出入,并因此产生一新输出入串流且被标注为S1。该I1变成S1的第一输出入且被标注为c1,以及该S1的最近输出入。由于并未超过该“循序性串流门槛值输出入计数值”,因此S1被标注为“ns”,这表示在此刻为“非实质上为循序性”。当该第二写入输出入,I2,来到后,会决定此非连续于该I1,并因此不属于S1。因此,会产生一第二输出入串流,S2,其第一(c1)及最近输出入两者皆为I2,并为与I1相同的原因而标注为“ns”。然后I3来到,且被决定为连续于该I1,并因此属于S1。I3变成S1的第二(c2)及最近输出入,并被标注为“ns”。I4被决定为属于一新输出入串流S3,标注为c1及“ns”。对于I5,这被决定为属于一新输出入串流S4,经标注于c1及“ns”,而对于I6,S3、c2及“ns”。当I7到来时,这被决定连续于I6,并因此属于S3而I6变成c3。由于超过该“循序性串流门槛值输出入计数值(2)”,因此该S3又会被决定为实质上为循序性,且因此将I7标注为“s”。此一处理会对所有后续输出入继续进行。对于所有的输出入串流,前两个输出入会被标注为“ns”,这是因为尚未超过该“循序性串流门槛值输出入计数值”,在本范例中为2,而对在各串流里除了前两个以外的所有输出入,会标注为“s”,意思是从第三个输出入,c3,开始会将该输出入串流决定为实质上为循序性。
一种对于上述决定什么输出入组成一输出入串流,以及一输出入串流是否在本质上实质为循序性方法的改善结果会要求一输出入串流必须按一相对于进来的输出入或数据速率的最低速率(称为“最低串流存活成长速率”)而成长,以“存活”作为一输出入串流。图6描述此一具体实施例的流程图。
图6的处理包括如下步骤。开始于步骤602,接收一写入输出入请求。然后,步骤604执行决定该写入输出入请求是否属于一现存串流的标准,步骤608执行决定一输出入串流是否为一可生长输出入串流的标准,而步骤610执行决定一输出入串流是否符合为在本质上实质为循序性的标准。如在步骤604、608及610的决定皆为“是”,则在步骤612会施用径写快取政策。或者,若在步骤604、608及610的决定任一者为“否”,则在步骤606会施用回写快取政策。
此速率可为每进来的写入输出入请求的总数中增加至一输出入串流的写入输出入请求最低个数,这可如图7A所述。
图7A的处理包括如下步骤。开始于步骤702,接收一写入输出入请求。然后,步骤704执行决定该写入输出入请求是否连续于一现存串流内的最近写入输出入,在步骤708决定该输出入串流是否按一最低串流存活成长速率而成长。如在步骤704及708内的决定皆为“是”,则会在步骤710里将在该写入输出入串流内的输出入请求个数“C”设定为(C=C+1),且将进来的写入输出入请求的总数记录为(I)。或者,若在步骤704或708任一者内的决定为“否”,则会在步骤706里将在该写入输出入串流内的输出入请求个数“C”设定为(C=1),并且将进来的写入输出入请求的总数记录为(I)。最后,步骤712决定该“C”是否超过该循序性串流门槛值输出入计数值。如在该步骤712内的决定结果为“否”,则该输出入串流不会被视为是本质上实质为循序性,且会施用回写快取政策。或者,如在该步骤712内的决定结果为“是”,则该输出入串流会被视为是本质上实质为循序性,且会施用径写快取政策。
或另者,可利用数据量,而非输出入计数值,来决定该速率,作为每进来的写入数据的总量中增加至一输出入串流的最低写入数据量,这可如图7B中所示。或者,一输出入串流的成长或必须符合上述速率标准的其一或其他或两者,以继续被视为是一可生长输出入串流。
图7B的处理包括如下步骤。开始于步骤722,接收一写入输出入请求。然后,步骤724执行决定该写入输出入请求是否连续于一现存串流内的最近写入输出入,在步骤728决定该输出入串流是否按一最低串流存活成长速率而成长。如在步骤724及728内的决定皆为“是”,则会在步骤730里将一写入输出入串流内的数据总数“D”记录为(D=D+“该写入输出入请求的数据量”),并且将进来的写入数据的总量记录为(T)。或者,若在步骤724或728任一者内的决定为“否”,则会在步骤726里将一写入输出入串流内的数据总数“D”记录为(D=“该写入输出入请求的数据量”),并且将进来的写入数据的总量记录为(T)。最后,步骤732决定该“D”是否超过该循序性串流门槛值数据长度。如在该步骤732内的决定结果为“否”,则该输出入串流不会被视为是本质上实质为循序性,且会施用回写快取政策。或者,如在该步骤732内的决定结果为“是”,则该输出入串流会被视为是本质上实质为循序性,且会施用径写快取政策。
图8A是一用以解释如图7A中所述的决定机制的范例,其中“最低串流存活成长速率”会被假定设定为14%,且该“循序性串流门槛值输出入计数值”会被假定设定为2。在此范例里,会有各种方式来计算一输出入串流的成长速率。一种直观方式即为按仅有该最近输出入请求的基础来计算成长速率。例如,若七个最近进来的输出入之其一者被决定为属于一特定输出入串流,则成长速率会为1/7,或14.3%,刚好超过该“最低串流存活成长速率”,而若八个之其一者则会使得成长速率为1/8,或12.5%,刚好在该“最低串流存活成长速率”之下。因此,可藉一除以该最近输出入与其先前者间的写入输出入请求的序号差值,来计算基于仅有一串流内的最近输出入的成长速率。例如,在S1里,对于I3的成长速率为1/(3-1)=1/2,或50%;对于I9,这会是1/(9-3)=1/6,或16.7%,对于I12,这会是1/(12-9)=1/3,或33.3%,而对于I22,1/10,或10%。由于该“最低串流存活成长速率”为14%,因此S1会被决定为可生长,一直到I22为止。当I22到来时,由于该S1的成长速率会低于14%,因此串流内序号会被重新设定为1(c1),且S1会被标注为“ns”,即如S1为一开始于I22的新近产生输出入串流。或者,这可被解释为S1目前非属可生长,并且只有在I22之后,满足该“最低串流存活成长速率”及该“循序性串流门槛值输出入计数值”两者的要求才会属于可生长。请注意S5,由于I26及其先前者I17远远相隔,因此成长速率1/(26-17)=1/9,或11.1%,因此落于该“最低串流存活成长速率”之下,从而该串流内序号会被重新设定为1(c1),且S5会被标注为“ns”。然而,在S5.里出现I28及I30后,该成长速率保持在高于14%并且串流内序号会累积至3,S5再次地属于可生长,而因此现在会执行径写政策。
图8B是一用以解释如图7A中所述的决定机制的另一范例,其中利用与图8A相同的“最低串流存活成长速率”及“循序性串流门槛值输出入计数值”与方式来计算该成长速率。在此范例里,当一输出入串流被决定为非属可生长时,这就不会再度为可生长。相反地,会对于该新的输出入产生一新的输出入串流,且该新的输出入会变成该新输出入串流的第一输出入。该非可生长输出入串流会被忽略不计。请注意在S3,其中该新来者I15具有一1/(15-7)=1/8=12.5%<14%的成长速率,且因此S3会被决定为非可生长。然后,I15会变成新近产生的输出入串流S7的c1,而该串流内序号被重新设定为1(c1)且标注为“ns”。
请参照图9所示。进一步的细致化作业即为在与该“最低串流存活成长速率”相比较之前,将该进来的写入输出入请求的总数或写入数据量正范化于目前存在的输出入串流的个数。在此情况下,经正范化的成长速率会是每(每现存输出入串流的进来的写入输出入请求个数)而增加至一输出入串流的写入输出入请求的个数,或是每(每现存输出入串流的进来的数据量)增加至一输出入串流的写入数据量。换言之,经正范化的成长速率=(成长速率*现存输出入串流的个数)。或另者,该细致化作业可为将该“最低串流存活成长”速率正范化于目前存在的输出入串流的个数。在此情况下,该“经正范化的最低串流存活成长”速率会是每现存输出入串流的(每进来的写入输出入请求个数的增加至一输出入串流的写入输出入请求的最低个数),或是每现存输出入串流的(每进来的数据量的增加至一输出入串流的写入数据的最低个数)。换言之,该(经正范化的最低串流存活成长速率)=(最低串流存活成长速率)/(现储存输出入串流的个数)。
图9的处理包括如下步骤。开始于步骤902,接收一写入输出入请求。然后在步骤904执行该决定该写入输出入请求是否属于一现存串流的标准,在步骤908执行决定一输出入串流是否为可生长输出入串流的经正范化标准,而在步骤910执行决定一输出入串流是否符合为在本质上实质为循序性的标准。如在步骤904、908及910的决定结果皆为“是”,则会在步骤912施用径写快取政策。或者,若在步骤904、908及910任一者的决定结果为“否”,则会于步骤906施用回写快取政策。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的方法及技术内容作出些许的更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (23)
1、一种用以于一其中包括至少一储存虚拟化控制器以及一含有至少一实体储存装置而连接于该至少一储存虚拟化控制器的实体储存装置阵列的储存虚拟化子***中执行调适性写入快取、以将数据从该控制器对写入至该实体储存装置阵列的方法,其特征在于其包括以下步骤:
由该子***接收一组来自一主机单元的至少一写入输出入请求;
从该组的至少一写入输出入请求决定一组至少一输出入串流;
对该组的至少一输出入串流各者决定是否为实质上循序性;以及
自动地执行径写快取,以将相关于一经决定为属于该实质上为循序性的至少一输出入串流第一者的第一新写入输出入请求的数据写入至该实体储存装置阵列,或是自动地执行回写快取,以将相关于一经决定为属于该并非实质上为循序性的至少一输出入串流第二者的第二新写入输出入请求的数据写入至该实体储存装置阵列。
2、根据权利要求1所述的方法,其特征在于当该输出入串流包括某个数的连续性输出入请求时,该输出入串流会被决定成实质上为循序性。
3、根据权利要求1所述的方法,其特征在于当该输出入串流的成长速率维持一最低串流存活成长速率时,该输出入串流会维持其属实质上为循序性的决定结果。
4、根据权利要求1所述的方法,其特征在于当该输出入串流的成长速率低于一最低串流存活成长速率时,该输出入串流会被决定为非可生长者。
5、根据权利要求1所述的方法,其特征在于当该输出入串流的成长速率低于一最低串流存活成长速率时,该输出入串流会被决定为非实质上为循序性。
6、根据权利要求3所述的方法,其特征在于其中所述的最低串流存活成长速率会被一现存输出入串流的个数所正范化。
7、根据权利要求4所述的方法,其特征在于其中所述的最低串流存活成长速率会被一现存输出入串流的个数所正范化。
8、根据权利要求5所述的方法,其特征在于其中所述的最低串流存活成长速率会被一现存输出入串流的个数所正范化。
9、根据权利要求3所述的方法,其特征在于其中所述的输出入串流成长速率会被一现存输出入串流的个数所正范化。
10、根据权利要求4所述的方法,其特征在于其中所述的输出入串流成长速率会被一现存输出入串流的个数所正范化。
11、根据权利要求5所述的方法,其特征在于其中所述的输出入串流成长速率会被一现存输出入串流的个数所正范化。
12、一种用以在一其中包括至少一储存虚拟化控制器以及一含有至少一实体储存装置而连接于该至少一储存虚拟化控制器的实体储存装置阵列的储存虚拟化子***中执行调适性写入快取的方法,其特征在于其包括以下步骤:
分析一由一主机单元所送出的至少一写入输出入请求的串流的特征;
从该分析步骤决定该串流是否实质上为循序性;
由该子***接收一来自该主机单元的新写入输出入请求;以及
当该串流被决定为实质上属循序性时,自动地执行径写快取以将相关于该新写入输出入请求的数据写入至该实体储存装置阵列,或是当该串流被决定为并非实质上属循序性时,自动地执行回写快取以将相关于该新写入输出入请求的数据写入至该实体储存装置阵列。
13、根据权利要求12所述的方法,其特征在于当某个数的接续性所收写入输出入请求外的各写入输出入请求为连续于先前者,则该串流会被决定为实质上为循序性。
14、根据权利要求12所述的方法,其特征在于其中所述的串流会在一第一时间被决定为实质上为循序性;而若该并不连续于该串流里最近一个写入输出入请求的写入输出入请求,除以另一某个数的接续所收写入输出入请求的比例值超过一第一门槛值,则该串流会在稍后于该第一时间的一第二时间被决定非实质上为循序性。
15、一种用以于一其中包括至少一储存虚拟化控制器以及一含有至少一实体储存装置而连接于该至少一储存虚拟化控制器的实体储存装置阵列的储存虚拟化子***中执行调适性写入快取、以将数据从该控制器对写入至该实体储存装置阵列的方法,其特征在于其包括以下步骤:
由该子***接收一组来自一主机单元的至少一写入输出入请求;
从该组至少一写入输出入请求决定一输出入串流实质上为循序性;
由该子***接收一来自该主机单元的新写入输出入请求;以及
如该新写入输出入请求被决定为属于该输出入串流,自动地执行径写快取以将相关于该新写入输出入请求的数据写入至该实体储存装置阵列,或是如该新写入输出入请求被决定为不属于该输出入串流,自动地执行回写快取以将相关于该新写入输出入请求的数据写入至该实体储存装置阵列。
16、根据权利要求15所述的方法,其特征在于当该输出入串流包括某个数的连续性输出入请求时,该输出入串流会被决定成实质上为循序性。
17、根据权利要求15所述的方法,其特征在于当该输出入串流包括某个数的连续性输出入请求时,并且一并不连续于该输出入串流的最近一个写入输出入请求的写入输出入请求,除以一循序性串流维持窗口的比例值并未超过一非循序性串流门槛值输出入比例值,则该输出入串流会被决定成实质上为循序性。
18、一种储存虚拟化子***,用以将资料从一储存虚拟化控制器写入一实体储存装置阵列,该储存虚拟化子***包含该储存虚拟化控制器以及电性连接于该储存虚拟化控制器的该实体储存装置阵列,该实体储存装置阵列包含至少一实体储存装置,其特征在于:包括一为以执行从该至少一储存虚拟化控制器至该实体储存装置阵列的调适性写入快取的写入快取机制,其特征在于该写入快取机制执行如下步骤:
由该子***接收一组来自一主机单元的至少一写入输出入请求;
从该组的至少一写入输出入请求决定一组至少一输出入串流;
对该组的至少一输出入串流各者决定是否为实质上循序性;以及
自动地执行径写快取,以将相关于一经决定为属于该实质上为循序性的至少一输出入串流第一者的第一新写入输出入请求的数据写入至该实体储存装置阵列,或是自动地执行回写快取,以将相关于一经决定为属于该并非实质上为循序性的至少一输出入串流第二者的第二新写入输出入请求的数据写入至该实体储存装置阵列。
19、根据权利要求18所述的储存虚拟化子***,其特征在于当该第一输出入串流含有某个数的连续性输出入请求时,该第一串流会被决定为实质上为循序性。
20、根据权利要求18所述的储存虚拟化子***,其特征在于当该第一输出入串流含有某个数的连续性输出入请求,并且一并不连续于该第一输出入串流的最近一个写入输出入请求的写入输出入请求,除以一循序性串流维持窗口的比例值并未超过一非循序性串流门槛值输出入比例值时,该第一串流会被决定为实质上为循序性。
21、一种储存虚拟化控制器,是应用于一电脑***之上,该电脑***包含一主机单元、一储存虚拟化子***以及一写入快取机制,该储存虚拟化子***包含该储存虚拟化控制器以及电性连接于该储存虚拟化控制器的一实体储存装置阵列,该实体储存装置阵列则包含至少一实体储存装置,其中该写入快取机制是用以执行一调适性写入快取,将资料由该储存虚拟化控制器写入该实体储存装置阵列,其特征在于利用该写入快取机制执行如下步骤:
由该子***接收一组来自该主机单元的至少一写入输出入请求;
从该组的至少一写入输出入请求决定一组至少一输出入串流;
对该组的至少一输出入串流各者决定是否为实质上循序性;以及
自动地执行径写快取,以将相关于一经决定为属于该实质上为循序性的至少一输出入串流第一者的第一新写入输出入请求的数据写入至该实体储存装置阵列,或是自动地执行回写快取,以将相关于一经决定为属于该并非实质上为循序性的至少一输出入串流第二者的第二新写入输出入请求的数据写入至该实体储存装置阵列。
22、根据权利要求21所述的储存虚拟化控制器,其特征在于当该第一输出入串流含有某个数的连续性输出入请求时,该第一串流会被决定为实质上为循序性。
23、根据权利要求21所述的储存虚拟化控制器,其特征在于当该第一输出入串流含有某个数的连续性输出入请求,并且一并不连续于该第一输出入串流的最近一个写入输出入请求的写入输出入请求,除以一循序性串流维持窗口的比例值并未超过一非循序性串流门槛值输出入比例值时,该第一串流会被决定为实质上为循序性。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US52191004P | 2004-07-19 | 2004-07-19 | |
US60/521,910 | 2004-07-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1725171A CN1725171A (zh) | 2006-01-25 |
CN100357873C true CN100357873C (zh) | 2007-12-26 |
Family
ID=34910674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100860935A Active CN100357873C (zh) | 2004-07-19 | 2005-07-19 | 输入输出调适性写入快取政策调整作业 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7380067B2 (zh) |
CN (1) | CN100357873C (zh) |
GB (1) | GB2416413B (zh) |
TW (1) | TWI269976B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10515016B2 (en) | 2015-12-03 | 2019-12-24 | Hitachi, Ltd. | Method and apparatus for caching in software-defined storage systems |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070079070A1 (en) * | 2005-09-30 | 2007-04-05 | Arm Limited | Cache controller |
US7930481B1 (en) | 2006-12-18 | 2011-04-19 | Symantec Operating Corporation | Controlling cached write operations to storage arrays |
US9329800B2 (en) | 2007-06-29 | 2016-05-03 | Seagate Technology Llc | Preferred zone scheduling |
US7987754B2 (en) * | 2007-07-31 | 2011-08-02 | Newell Window Furnishings, Inc. | Window covering sizing method and apparatus |
JP5217929B2 (ja) | 2008-11-13 | 2013-06-19 | ソニー株式会社 | 割込検出装置および情報処理システム |
US9600182B1 (en) * | 2009-06-24 | 2017-03-21 | EMC IP Holding Company LLC | Application resource usage behavior analysis |
WO2011114384A1 (en) * | 2010-03-19 | 2011-09-22 | Hitachi, Ltd. | Storage system and method for changing configuration of cache memory for storage system |
US9098422B2 (en) * | 2010-05-10 | 2015-08-04 | Dell Products L.P. | System and method for management of cache configuration |
US8966184B2 (en) | 2011-01-31 | 2015-02-24 | Intelligent Intellectual Property Holdings 2, LLC. | Apparatus, system, and method for managing eviction of data |
US8578111B2 (en) * | 2011-10-11 | 2013-11-05 | Hewlett-Packard Development Company, L.P. | Backup optimization policy table for controlling buffered/un-buffered input/output |
US10318445B2 (en) * | 2011-11-28 | 2019-06-11 | International Business Machines Corporation | Priority level adaptation in a dispersed storage network |
US11474958B1 (en) | 2011-11-28 | 2022-10-18 | Pure Storage, Inc. | Generating and queuing system messages with priorities in a storage network |
US10558592B2 (en) | 2011-11-28 | 2020-02-11 | Pure Storage, Inc. | Priority level adaptation in a dispersed storage network |
US10102117B2 (en) | 2012-01-12 | 2018-10-16 | Sandisk Technologies Llc | Systems and methods for cache and storage device coordination |
US9251052B2 (en) | 2012-01-12 | 2016-02-02 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer |
US9767032B2 (en) * | 2012-01-12 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for cache endurance |
TWI485560B (zh) * | 2012-08-31 | 2015-05-21 | Ibm | 資料分析系統、快取裝置、與資料處理方法 |
US9740426B2 (en) | 2014-09-19 | 2017-08-22 | Lenovo (Singapore) Pte. Ltd. | Drive array policy control |
EP3021209A1 (en) * | 2014-11-14 | 2016-05-18 | Dot Hill Systems Corporation | Method and apparatus for processing slow infrequent streams |
EP3021208B1 (en) * | 2014-11-14 | 2019-01-09 | Dot Hill Systems Corporation | Method and apparatus for processing fast asynchronous streams |
US10761590B1 (en) * | 2017-09-15 | 2020-09-01 | Seagate Technology Llc | Data storage performance scaling based on external energy |
CN109445996B (zh) * | 2018-11-09 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种分配io流的方法、***及相关组件 |
TWI730454B (zh) | 2019-07-10 | 2021-06-11 | 慧榮科技股份有限公司 | 主機輸出入命令的執行裝置及方法及電腦程式產品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6192432B1 (en) * | 1994-06-27 | 2001-02-20 | Microsoft Corporation | Caching uncompressed data on a compressed drive |
US6427184B1 (en) * | 1997-06-03 | 2002-07-30 | Nec Corporation | Disk drive with prefetch and writeback algorithm for sequential and nearly sequential input/output streams |
US20020156972A1 (en) * | 2001-04-20 | 2002-10-24 | International Business Machines Corporation | Method and system for improving raid controller performance through adaptive write back/write through caching |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4536836A (en) * | 1981-11-27 | 1985-08-20 | Storage Technology Corporation | Detection of sequential data stream |
US6760807B2 (en) * | 2001-11-14 | 2004-07-06 | International Business Machines Corporation | System, apparatus and method providing adaptive write policy for disk array controllers |
-
2005
- 2005-07-15 US US11/181,837 patent/US7380067B2/en active Active
- 2005-07-19 GB GB0514836A patent/GB2416413B/en active Active
- 2005-07-19 TW TW094124410A patent/TWI269976B/zh active
- 2005-07-19 CN CNB2005100860935A patent/CN100357873C/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6192432B1 (en) * | 1994-06-27 | 2001-02-20 | Microsoft Corporation | Caching uncompressed data on a compressed drive |
US6427184B1 (en) * | 1997-06-03 | 2002-07-30 | Nec Corporation | Disk drive with prefetch and writeback algorithm for sequential and nearly sequential input/output streams |
US20020156972A1 (en) * | 2001-04-20 | 2002-10-24 | International Business Machines Corporation | Method and system for improving raid controller performance through adaptive write back/write through caching |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10515016B2 (en) | 2015-12-03 | 2019-12-24 | Hitachi, Ltd. | Method and apparatus for caching in software-defined storage systems |
Also Published As
Publication number | Publication date |
---|---|
TWI269976B (en) | 2007-01-01 |
US20060015688A1 (en) | 2006-01-19 |
CN1725171A (zh) | 2006-01-25 |
TW200604827A (en) | 2006-02-01 |
GB0514836D0 (en) | 2005-08-24 |
US7380067B2 (en) | 2008-05-27 |
GB2416413A (en) | 2006-01-25 |
GB2416413B (en) | 2008-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100357873C (zh) | 输入输出调适性写入快取政策调整作业 | |
CN101976175B (zh) | 一种水平型分组并行集中校验的磁盘阵列的构建方法 | |
CN101604226B (zh) | 一种基于虚拟raid构建动态缓存池提高存储***性能的方法 | |
CN102122235B (zh) | 一种raid4***及其数据读写方法 | |
CN103823728B (zh) | 一种独立冗余磁盘阵列智能重建的方法 | |
US20140115384A1 (en) | Fast data recovery from hdd failure | |
US20070192538A1 (en) | Automatic RAID disk performance profiling for creating optimal RAID sets | |
CN106066890B (zh) | 一种分布式高性能数据库一体机*** | |
CN1258713C (zh) | 基于磁盘特征的数据分布动态映射的方法 | |
CN111984200A (zh) | 海量视频数据存储*** | |
CN102024044A (zh) | 分布式文件*** | |
CN104778018A (zh) | 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法 | |
CN101976177B (zh) | 一种垂直型分组并行集中校验的磁盘阵列的构建方法 | |
CN103577454A (zh) | 一种文件合并方法和装置 | |
CN103150128A (zh) | 基于ssd和磁盘的可靠混合存储***实现方法 | |
CN102637147A (zh) | 利用固态硬盘作为计算机写缓存的存储***以及相应的管理调度方法 | |
CN104679442A (zh) | 一种提高磁盘阵列性能的方法及装置 | |
CN101976178A (zh) | 一种垂直排布集中校验的节能型磁盘阵列的构建方法 | |
CN101625586A (zh) | 一种管理存储设备节能的方法、设备和计算机 | |
CN201797568U (zh) | 一种基于节能磁盘阵列的视频监控*** | |
CN106227464A (zh) | 一种双层冗余存储***及其数据写入、读取及恢复方法 | |
US9990134B2 (en) | Command tunneling in a hybrid data storage device | |
CN201698255U (zh) | 具有磁盘高速读写功能的服务器 | |
CN102609486A (zh) | 一种Linux文件***的数据读写加速方法 | |
CN101976179B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |