具有多个处理栈的存储控制器中使用区域锁定转移I/O请求的方法和结构技术

技术编号:17127007 阅读:34 留言:0更新日期:2018-01-27 02:05
存储控制器(100)内的方法和结构,该存储控制器(100)用于使用区域锁定来有效地将从附接的主机系统接收的I/O请求转移到该控制器中的多个处理栈(102、104)的其中之一。控制器内的区域锁定模块(106)允许每个处理栈针对存储装置的一定范围的块地址请求区域锁定。转移类型锁定请求可以被建立,以标识块地址的范围,针对该范围,I/O请求应当被转移到多个处理栈中的特定的一个。

【技术实现步骤摘要】
具有多个处理栈的存储控制器中使用区域锁定转移I/O请求的方法和结构
本专利技术总体上涉及存储控制器,并且,更具体地,涉及使用区域锁定来将I/O请求转移到存储控制器的多个I/O处理栈中的一个的方法与结构。相关专利本专利技术涉及下列共同拥有的美国专利和/或专利申请(在本文中被总称为“相关专利”):提交于2010年4月14日的名称为“APPARATUSANDMETHODSFORTREEMANAGEMENTASSISTCIRCUITINASTORAGESYSTEM”的美国专利申请12/760,415,提交于2010年4月14日的名称为“APPARATUSANDMETHODSFORREGIONLOCKMANAGEMENTASSISTCIRCUITINASTORAGESYSTEM”的美国专利申请12/760,434,以及提交于2005年10月19日的名称为“METHODSANDSYSTEMSFORLOCKINGINSTORAGECONTROLLERS”的美国专利7,529,902。通过引用的方式将上述所有专利并入本文。
技术介绍
存储控制器是这样一种装置,其适于从一个或多个主机系统接收I/O请求并处理所接收的请求,以存储或取回(retrieve)与该存储控制器耦接的存储装置上的数据。例如,RAID(独立驱动器的冗余阵列)存储控制器管理一个或多个逻辑卷,每个逻辑卷都包括一个或多个物理存储装置的若干部分。RAID控制器将逻辑卷的逻辑块地址映射到对应的存储装置的物理块,并提供用于增强可靠性和/或性能的数据的冗余和/或分条(striping)(根据针对逻辑卷定义的特定RAID存储管理技术的冗余和分条策略)。在处理I/O请求中,高性能存储控制器采用高速缓冲存储器来增强该存储控制器的性能是很普遍的。例如,由主机系统写到逻辑卷的数据可以被存储在存储控制器的高速缓冲存储器中,从而通过从高速缓冲存储器取回所述请求的数据可以满足后续的读取I/O请求,通过从高速缓冲存储器取回所请求的数据比通过从包含逻辑卷的存储装置取回所请求的数据要快得多。某些存储控制器可以将高速缓冲存储器作为“直写式”高速缓存来管理,其中,数据被写到高速缓冲存储器和存储装置两者。某些控制器可以管理处于“回写”模式的高速缓冲存储器,其中,数据被写到高速缓冲存储器并且仅在稍后的某一时间被提交(post)/清洗(flush)到存储装置(例如,当存储控制器不是那么忙于处理I/O请求时)。在回写模式中,可能会存在这样的数据(被称为“脏数据”),其驻留在高速缓冲存储器中但还未存储在存储装置上。某些存储控制器(例如,高性能RAID存储控制器)在存储控制器内提供多个处理通路(pathway)或栈以用于处理I/O请求。例如,某些来自LSI公司的存储控制器提供“快速路径”处理电路(例如,第一处理通路/栈),其可以与固件处理栈(例如,通常被实现为由该控制器的通用或专用处理器执行的固件指令的第二/传统处理通路)。LSI公司快速路径处理电路与主机系统上的专用驱动器结合工作,以更快速地处理I/O请求,该I/O请求被格式化以允许快速路径电路快速处理该请求(例如,主机系统增强驱动器理解RAID映射并生成快速路径请求以直接访问下层的物理存储装置,这样允许快速路径电路快速地处理I/O请求)。固件处理通路适于处理从任何主机系统接收的任何类型的I/O请求(例如,用于处理I/O请求,而不管其是否格式化为快速路径I/O请求)。固件栈使用执行指令并提供完全RAID映射和管理的通用处理器来处理各种一般化的处理。这样,尽管更灵活,但是固件处理栈处理I/O请求比快速路径电路慢得多。在具有多个处理栈(例如,具有快速路径电路通路和固件处理栈)的这样的存储控制器中,由存储控制器进行的某些初始处理需要确定多个处理栈中的哪个适合于处理特定的I/O请求。该初始处理可以是依赖于多种因素的复杂处理。例如,如果控制存储器利用它的处于回写模式的高速缓冲存储器,那么如果当前在存储控制器的该高速缓冲存储器中存在仍未被清洗或未提交到存储装置的脏数据,则使用快速路径处理电路会造成数据完整性问题。在这样的控制器中,可以对快速路径电路进行最佳调节,从而使得其不知道高速缓冲存储器的内容,这样,可以将数据写到存储装置,如果脏数据被清洗,那么该存储装置稍后可能被覆写。或者,由于对于快速路径电路所访问的块,在高速缓冲存储器中当前存储有脏数据(更加新的数据),因此快速路径电路可能从存储装置读取不是最新的数据。此外,例如,如果固件处理栈保持在来自逻辑卷或特定存储装置的数据的存储或取回中要避免的坏块的列表,那么快速路径处理电路可能不知道坏块的列表,并且由于试图访问潜在的坏块,因此可能会再次造成数据完整性问题。快速路径电路可能试图读或写数据到这样的坏块,仅有固件处理栈知道该坏块可能是坏的。还可能出现其它的情形,其中,固件I/O请求处理栈当前处于某种优化中,诸如结合(coalescing)较小的I/O请求以形成全带写(full-stripewrites)、针对流I/O请求的优化等。这些以及其它原因可能会造成对存储控制器的某一个I/O请求处理器优先于另一个I/O请求处理器,而不管主机对请求的编码对特定处理器的指定或优选。在确定多个处理栈中的哪个最适合于处理I/O请求时,考虑这些各种情况会是花费时间、复杂的过程。因此,如果会出现某种或某些种情况,那么当前的技术可以简单地禁止使用多个处理栈其中的一个(例如,禁止使用LSI公司存储控制器的快速路径I/O处理电路),以避免这些或其它的潜在问题。例如,如果任何脏数据当前被存储在回写高速缓冲存储器中(不管特定的快速路径I/O请求是否可以访问该脏数据)或者任何块被固件处理栈指定为“坏块”(不管特定的快速路径I/O请求是否可以访问这些坏块),那么固件处理栈禁用快速路径处理电路,并选择通过其更慢但是更通用的处理通路来处理所有的I/O请求。在保守的设计方法中,可以简单地禁用LSI快速路径I/O处理电路,以避免由于被引导到快速路径电路的I/O请求的处理而导致的这些和其它问题。禁用快速路径I/O处理电路可能会降低存储控制器的性能。因此,在没有数据完整性的风险的情况下,有效并高效地确定哪个I/O处理栈最适于处理特定的I/O请求并将接收到的I/O请求转移到该优先选择的I/O处理栈,称为一个持续的挑战。
技术实现思路
通过提供用于使用区域锁定来高效地将从附接的主机系统接收的I/O请求转移到控制器中的多个处理栈的其中之一的存储控制器内的结构和方法,本专利技术解决了上述和其它问题,从而改进了现有实用技术。控制器内的区域锁定模块允许每个处理栈针对存储装置的一块地址范围请求区域锁定。可以建立转移类型锁定请求,以标识块地址的范围,针对该范围,I/O请求应当被转移到多个处理栈中的特定的一个。在具有用于处理快速路径格式化的I/O请求的快速路径电路和用于处理任何形式的I/O请求的固件处理栈的控制器的一个示例性实施例中,固件处理栈可以请求区域锁定模块针对块地址范围建立转移类型区域锁定。该范围的块地址与高速缓存中的脏数据和/或潜在的坏块地址相关联。当快速路径电路试图锁定块的范围以处理I/O请求时,覆盖针对该I/O请求的块的范围的任意部分的转换类型锁定将使得该I/O请求被本文档来自技高网
...
具有多个处理栈的存储控制器中使用区域锁定转移I/O请求的方法和结构

【技术保护点】
一种存储控制器(100),适于与一个或多个主机系统(120)耦接,并适于管理与该存储控制器耦接的一个或多个存储装置(130)上的数据,该存储控制器包括:快速路径电路(102),该快速路径电路(102)适于处理从附接的主机系统接收的针对快速路径处理而格式化的I/O请求;在该控制器的处理器上操作的固件处理栈(104),该固件处理栈适于处理任何格式的I/O请求;以及与快速路径电路耦接并与固件处理栈耦接的区域锁定模块(106),该区域锁定模块适于处理来自所述快速路径电路的锁定所述存储控制器的高速缓冲存储器中指定的块地址范围的锁定请求信号,该区域锁定模块还适于基于当前锁定的块地址范围的状态来确定接收到的快速路径格式化的I/O请求是否应当被转移到固件处理栈,其中,存储控制器适于:响应于确定快速路径格式化的I/O请求的处理应当被转移到固件处理栈,将快速路径格式化的I/O请求转移到固件处理栈以进行处理,其中,所述固件处理栈适于:响应于确定试图访问块地址范围中的块的快速路径格式化的I/O请求应当由固件处理栈处理,向区域锁定模块施加锁定请求以建立针对所述块地址范围的转移类型区域锁定,其中,所述区域锁定模块还适于针对响应于从所述固件处理栈接收所述锁定请求的块地址范围建立所述转移类型区域锁定,以及其中,该控制器还适于:响应于检测到已经针对会受到快速路径格式化的I/O请求的快速路径电路处理的影响的块地址的范围建立了所述转移类型区域锁定,将接收到的快速路径格式化的I/O请求转移到所述固件处理栈。...

【技术特征摘要】
2012.12.12 US 13/711,8851.一种存储控制器(100),适于与一个或多个主机系统(120)耦接,并适于管理与该存储控制器耦接的一个或多个存储装置(130)上的数据,该存储控制器包括:快速路径电路(102),该快速路径电路(102)适于处理从附接的主机系统接收的针对快速路径处理而格式化的I/O请求;在该控制器的处理器上操作的固件处理栈(104),该固件处理栈适于处理任何格式的I/O请求;以及与快速路径电路耦接并与固件处理栈耦接的区域锁定模块(106),该区域锁定模块适于处理来自所述快速路径电路的锁定所述存储控制器的高速缓冲存储器中指定的块地址范围的锁定请求信号,该区域锁定模块还适于基于当前锁定的块地址范围的状态来确定接收到的快速路径格式化的I/O请求是否应当被转移到固件处理栈,其中,存储控制器适于:响应于确定快速路径格式化的I/O请求的处理应当被转移到固件处理栈,将快速路径格式化的I/O请求转移到固件处理栈以进行处理,其中,所述固件处理栈适于:响应于确定试图访问块地址范围中的块的快速路径格式化的I/O请求应当由固件处理栈处理,向区域锁定模块施加锁定请求以建立针对所述块地址范围的转移类型区域锁定,其中,所述区域锁定模块还适于针对响应于从所述固件处理栈接收所述锁定请求的块地址范围建立所述转移类型区域锁定,以及其中,该控制器还适于:响应于检测到已经针对会受到快速路径格式化的I/O请求的快速路径电路处理的影响的块地址的范围建立了所述转移类型区域锁定,将接收到的快速路径格式化的I/O请求转移到所述固件处理栈。2.根据权利要求1所述的控制器,其中:所述高速缓冲存储器适于存储受所述固件处理栈的写I/O请求的处理影响的块地址的写数据,其中,所述固件处理栈还适于:响应于将数据存储在与块地址范围内的块地址相关的高速缓冲存储器中,针对所述块地址范围将转移类型区域锁定请求施加到区域锁定模块。3.根据权利要求2所述的控制器,其中,所述固件处理栈将所述高速缓冲存储器管理作为回写高速缓冲存储器。4.根据权利要求1所述的控制器,还包括:与所述固件处理栈耦接的坏块存储器(110),该坏块存储器适于存储标识存储装置的潜在坏块的块地址的坏块信息,其中,所述固件处理栈还适于:响应于将标识块地址范围内的块地址的条目存储在坏块存储器中,针对所述块地址范围将转移类型区域锁定请求施加到所述区域锁定模块。5.根据权利要求1所述的控制器,其中,所述快速路径电路将关于快速路径格式化的I/O请求的内容信息施加到区域锁定模块,并且其中,所述区域锁定模块还适于将快速路径格式化的I/O请求转移到所述固件处理栈,以根据该内容信息进行处理。6.根据权利要求1所述的控制器,其中,所述快速路径电路还适于:响应于来自所述区域锁定模块的、指示...

【专利技术属性】
技术研发人员:A·维纳R·L·施费尔德N·克里施纳姆斯K·桑德拉尼R·S·莫西A·纳拉亚纳莫西H·C·西米欧纳斯库J·A·里佐
申请(专利权)人:安华高科技通用IP新加坡公司
类型:发明
国别省市:新加坡,SG

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1