在硬件存储控制器中提供差异化i/o服务的制作方法

文档序号:6596223阅读:166来源:国知局
专利名称:在硬件存储控制器中提供差异化i/o服务的制作方法
技术领域
本发明涉及对计算机系统中的不同I/O存储请求提供相区别的服务质量。
背景技术
存储系统输出窄1/0(输入/输出)接口,例如ATA(高级技术附件)或SCSI (小型计算机系统接口),所述窄I/O接口对数据的访问主要包括两种命令读和写。该基于块的接口从诸如应用程序、进程、线程和文件等更高级的构造中提取存储。尽管这允许操作系统和存储系统独立地演化,但是实现端到端应用服务质量(Q0Q可能是困难的任务。


以实例的方式而非受附图限制的方式示出了本发明,在附图中,相似的参考标记指示相似的元件,并且其中图1示出了能够使I/O存储请求中每种I/O类型的存储服务差异化的计算机系统和设备的实施例。图2是提供I/O存储请求中每种I/O类型的差异化存储服务的处理的实施例的流程图。
具体实施例方式公开了提供每个I/O存储请求的差异化存储服务的设备、系统和方法的实施例。在许多实施例中,描述了文件和存储系统的QoS体系结构。QoS体系结构定义了操作系统(OS)接口,文件系统能够通过所述操作系统接口将任意的策略(性能和/或可靠性)分配给I/O流,并且QoS体系结构提供了存储系统能够用来实施这些策略的机制。在许多实施例中,该方法假设可以将流标识符在带内与每个I/O请求包括在一起(例如,使用 SCSI命令集中的组号字段),并且假设可以通过存储系统的管理接口在带外指定针对每个流的策略。以下说明书和权利要求中对所公开技术的“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性包括在所公开技术的至少一个实施例中。因此,贯穿本说明书各个位置出现的短语“在一个实施例中”不必都指同一实施例。在以下的说明书和权利要求中,可以使用术语“包括”和“包含”及其派生词,并且这些词旨在作为彼此的同义词。此外,在以下的说明书和权利要求中,可以使用术语“耦合” 和“连接”及其派生词。应当理解,这些术语并非旨在作为彼此的同义词。而是,在特定的实施例中,“连接”用于指示两个或更多个元件是彼此直接物理或电接触的。“耦合”可以表示两个或更多个元件是直接物理或电接触的。然而,“耦合”还可以表示两个或更多个元件不是彼此直接接触的,但是仍彼此协作或交互。图1示出了能够使I/O存储请求中每种I/O类型的存储服务差异化的计算机系统和设备的实施例。计算机系统100可以包括诸如处理器102等处理器。在没有示出的其它
5实施例中,计算机系统100可以包括两个或更多个处理器。处理器102可以是基于Intel 的中央处理单元(CPU)或另一品牌的CPU。在不同的实施例中,处理器102可以具有一个或多个核心。例如,图1示出了具有两个核心核心0(104)和核心1(106)的处理器102。处理器102通过存储器控制器108耦合到存储器子系统。尽管图1示出了集成到处理器102中的存储器控制器108,但是在没有示出的其它实施例中,存储器控制器可以集成到桥设备或计算机系统中与处理器102分立的其它设备中。存储器子系统包括用于存储要由处理器执行的指令的系统存储器110。存储器子系统中的存储器设备可以是例如双倍数据速率(DDR)同步DRAM等任何类型的易失性动态随机存取存储器(DRAM)和/或例如闪速存储器形式等任何类型的非易失性存储器。处理器通过处理器-存储器接口耦合到存储器,所述处理器-存储器接口可以是包括一个或多个单独线路的链路(即,互连/总线),所述单独线路能够在处理器和存储器之间发送数据、地址、控制和其它信息。主机操作系统(OS) 112表示将被加载到计算机系统100的存储器中的操作系统, 同时该系统可操作为提供对系统和附加到系统的任何外围设备的一般操作控制。主机OS 112可以是Microsoft Windows 、UNIX、LINUX或任何其它功能OS的形式。主机OS 112提供一个或多个程序、服务或代理能够在其中运行的环境。在许多实施例中,诸如应用程序114等一个或多个应用程序在主机OS 112的上层运行。应用程序可以是在使用系统资源的同时执行一个或多个任务的任何类型的软件应用程序。文件系统116与主机OS 112 一起运行,以提供用于文件如何存储在主机OS 112可访问的一个或多个存储介质中的具体结构。在许多实施例中,文件系统116将存储在存储介质中的文件组织在固定大小的块上。例如,如果主机OS 112想要访问特定的文件,则文件系统116可以定位该文件并且指定该文件存储在块的特定集合上。在不同的实施例中,文件系统116可以是Linux Ext2、 Linux Ext3,Microsoft Windows NTFS或任何其它操作文件系统。主机OS 112使用文件系统116来提供关于访问文件所必需的特定块的信息。一旦文件系统116已经提供了与特定文件有关的块信息,那么可以通过主机OS 112的1/0层中的驱动器1 来进行访问实际存储介质的请求。1/0层包括用于处理对一个或多个块的访问请求的代码。在不同的实施例中,驱动器可以实现诸如小型计算机系统接口(SCSI)协议、因特网SCSI协议、串行高级技术附件(SATA)协议或另一 1/0协议等1/0协议。驱动器 1 对该块请求进行处理并且将1/0存储请求发送到存储控制器124,然后该存储控制器 124针对访问存储介质继续进行。存储介质可以位于诸如存储池118、120和122等存储池中。在不同的实施例中,存储池中的存储介质可以包括硬盘驱动器、大型非易失性存储体、固态驱动器、磁带驱动器、 光学驱动器和/或一个或多个附加类型的存储介质。在许多实施例中,给定存储池可以包括单一类型的若干单独存储设备的组。例如, 存储池1(11 可以包括固态驱动器组,存储池2(120)可以包括独立磁盘冗余阵列(RAID) 阵列中的硬盘驱动器组,以及存储池3(12 可以包括磁带驱动器组。在该实例中,由于固态驱动器具有比标准硬盘驱动器或磁带驱动器更好的响应时间,因此存储池1(118)可以提供最高的存储服务质量。由于硬盘速度比固态驱动器速度慢但是比磁带驱动器速度快, 因此存储池2(120)可以提供中等级的服务质量。由于磁带驱动器速度是三个池中最慢的, 因此存储池3(12 可以提供低等级的服务质量。在其它实施例中,可以在一个或多个存储池中提供其它类型的存储介质。主机OS 112或应用程序114通过使驱动器128向存储控制器IM发送I/O存储请求来与存储池中的一个或多个存储介质进行通信。存储控制器1 提供与存储池的通信接口。在许多实施例中,存储控制器IM知道每个存储池的服务(即,性能)等级。因此, 根据上述实例,存储控制器1 知道存储池1(118)提供高等级的服务性能,存储池2(120) 提供中等级的服务性能,以及存储池3(12 提供低等级的服务性能。在一些实施例中,存储池向存储控制器1 提供其各自的服务质量信息。在其它实施例中,存储控制器主动存储将特定服务质量映射到每个存储池的列表。在其它实施例中,存储控制器识别每个可用的存储池并且确定每个池的服务质量等级。存储控制器IM 可以包括性能监视逻辑,所述性能监视逻辑可以监视每个池的事务的性能(例如,延迟), 并且跟踪每个存储池的动态服务质量度量。在其它实施例中,诸如管理员的外部实体可以提供I/O存储请求路由策略,所述I/O存储请求路由策略指定期望由每个存储池提供的服务质量等级以及应当路由到每个池的数据类型。此外,管理员可以通过带外通信信道130 提供该信息,所述带外通信信道130可以通过位于计算机系统中并且耦合到存储控制器 124的系统管理引擎132进行更新。系统管理引擎可以是能够帮助例如公司信息技术部门等远程实体执行与该计算机系统有关的管理任务的分离的集成电路。存储控制器可以集成到I/O逻辑复合体126中。I/O逻辑复合体1 可以包括用于管理本地计算机系统200中的I/O子系统的部分的其它集成控制器。在一些实施例中, I/O逻辑复合体1 可以通过互连(例如,总线接口)耦合到主机处理器102。在没有示出的其它实施例中,存储控制器1 可以是与计算机系统200分立的,并且I/O逻辑复合体可以通过网络(例如,有线或无线网络)与主机处理器102和系统存储器110进行通信。在许多实施例中,在文件系统116中实现I/O标记(tagging)逻辑。I/O标记逻辑可以指定与每个I/O存储请求一起发出的I/O类型。例如,发送到存储控制器124的I/ 0存储请求可以包括文件数据、目录数据或元数据。这些类型的数据中的每一个均可以受益于相区别的服务等级。例如,元数据可以是最重要的数据类型,目录数据可以是第二重要的数据类型,以及文件数据可以是最不重要的数据类型。这些重要性等级是可修改的,并且可以基于实现改变。该重要性等级可以直接与用于为每种类型的数据服务的服务质量一致。 此外,在其它实施例中,可以与I/O存储请求一起发出其它数据类型。无论如何,在元数据、 目录数据和文件数据包括要发出的三种类型的数据的实施例中,文件系统116可以将标记与每个块请求包括在一起,所述标记将数据类型指定为所列出的三种类型中的一种。为了实现这些,可以修改主机OS 112的块I/O层(文件系统层),以将I/O数据类型标记字段添加到针对盘的每个逻辑块请求。因此,该标记可以被传送到块I/O层中的驱动器128。然后,主机OS 112的I/O层中的驱动器1 将I/O数据类型标记与发送到存储控制器124的每个I/O存储请求附加在一起。发送到存储控制器的特定的盘请求(即,SCSI 或ATA请求)将I/O数据类型标记包括在字段中。在一些实施例中,该标记可以存储在SCSI 或ATA命令结构中的保留字节字段中(例如,SCSI块命令包括保留字节,该保留字节可以用来存储标记)。在其它实施例中,每个I/O协议的标准主体可以正式地添加标记作为从驱动器1 发送到存储控制器124的一个或多个标准命令中的字段。存储控制器IM包括用于监视每个I/O存储请求中的I/O数据类型标记字段的逻
7辑。存储控制器1 可以包括用于基于在标记中存储的值来将I/O命令路由到特定的存储池的逻辑。存储控制器可以基本上基于与请求一起发出的数据类型的重要性等级来提供每个I/O存储请求的差异化存储服务。因此,如果数据具有高重要性,则可以将该数据路由到最高服务质量存储池,并且如果数据具有低重要性,则可以将该数据路由到最低服务质量存储池。存储控制器IM提供I/O存储请求中的逻辑块地址到物理存储设备地址的映射。 因此,基于使用I/O数据类型标记字段路由I/O存储请求的可变位置,存储控制器针对I/O 存储请求提供动态映射服务。在一些实施例中,存储控制器124是RAID控制器,并且可以将基于I/O数据类型的差异化存储服务实现为RAID存储系统中新的RAID等级。存储控制器IM可以包括可修改映射表,存储控制器124中的路由逻辑可以使用所述可修改映射表来将每个进入的I/O存储请求从主机OS 1121/0层中的驱动器1 路由到具有期望服务质量等级的特定存储池中。在许多实施例中,服务质量等级包括性能度量, 所述性能度量基于更少的存储延迟来确定该服务质量更高。在其它实施例中,服务质量等级包括安全性度量,所述安全性度量基于数据所需的相关安全性(例如,备份系统、保密性等)来确定该服务质量更高。图2是用于提供I/O存储请求中每种I/O类型的差异化存储服务的处理的实施例的流程图。由可以包括硬件、软件或二者的组合的处理逻辑来执行该处理。该处理以处理逻辑接收具有I/O数据类型标记的I/O存储请求开始(处理框200)。I/O数据类型标记指定与I/O存储请求一起发出的数据类型。在不同的实施例中,数据类型可以是元数据、目录数据或文件数据。接着,处理逻辑使用I/O数据类型标记来确定I/O存储请求应当接收哪种服务质量等级(处理框20 。服务质量等级可以与随I/O存储请求一起发出的I/O类型相匹配。 例如,如果随请求一起发出的I/O类型是最重要的I/O类型,则为该I/O存储请求提供的服务质量也可以被认为是可用的最高等级。在一些实施例中,一旦已经确定了要提供的服务质量,则处理逻辑将附加的服务质量标记添加到该请求。当进行确定I/O数据类型之外的服务质量的附加考虑时,也可以使用服务质量标记。例如,如果最高服务质量存储池过度使用了,则即使与请求一起发出的 I/O数据类型足以分类为最高服务质量,也可以使用下一个最好的可用服务质量存储池来存储该I/O存储请求。在这些实施例中,可以使用额外的服务质量标记来进一步区分每个 I/O存储请求。返回图2,处理继续进行,处理逻辑然后将I/O存储请求发送到确定的存储池(处理框204),然后处理结束。因此,公开了用于提供每个I/O存储请求的差异化存储服务的设备、系统和方法的实施例。已经参考具体示例性实施例描述了这些实施例。对受益于本公开内容的人员而言显而易见的是,可以在不背离本文描述的实施例的宽泛精神和范围的情况下,对这些实施例进行各种修改和改变。因此,本说明书和附图被认为是示例性的而非限制性的含义。
权利要求
1.一种存储控制器设备,包括 路由逻辑,用于接收来自操作系统的I/O存储请求,所述I/O存储请求包括要与所述I/O存储请求一起存储的指定I/O数据类型的输入/输出(I/O)数据类型标记;基于所述I/O数据类型标记确定将所述I/O存储请求发送到多个存储池中的哪个存储池,其中,所述多个存储池中的每一个均包括至少一个服务等级。
2.根据权利要求1所述的设备,其中,所述路由逻辑还操作用于 识别每个可用的存储池;以及确定由所述每个可用的存储池提供的所述服务等级。
3.根据权利要求2所述的设备,其中,所述路由逻辑还操作用于确定所述I/O数据类型标记中列出的所述I/O数据类型所期望的所述服务等级;以及将所述I/O存储请求发送到所述多个存储池中的第一存储池,所述第一存储池提供所确定的服务等级。
4.根据权利要求3所述的设备,其中,所述存储控制器设备包括独立磁盘冗余阵列 (RAID)控制器。
5.根据权利要求4所述的设备,其中,所述I/O存储请求还包括操作系统生成的逻辑块请求。
6.根据权利要求5所述的设备,其中,所述路由逻辑还操作用于将所述逻辑块请求动态地映射到所述多个存储池中的一个中的物理存储设备,所述物理存储设备提供与所述I/O存储请求中的所述I/O数据类型标记对应的所期望的服务等级。
7.根据权利要求1所述的设备,其中,所述路由逻辑还操作用于 接收指定第一 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存储服务质量。
8.根据权利要求1所述的系统,其中,所述I/O数据类型标记指定文件数据、目录数据和元数据中的一种的数据。
9.根据权利要求1所述的系统,其中,所述路由逻辑还操作用于 接收要存储的每种数据类型的路由策略;以及使用所接收的路由策略来将每个I/O存储请求路由到所述多个存储池中的至少一个。
10.根据权利要求9所述的系统,其中,所述路由逻辑还操作用于在带外通信信道中接收所述路由策略。
11.一种系统,包括存储在存储器中的文件系统,所述文件系统用于提供要与I/O存储请求一起存储的指定I/O数据类型的输入/输出(I/O)数据类型标记;存储在所述存储器中的操作系统,所述操作系统用于将所述I/O存储请求发送到存储控制器,所述I/O存储请求包括作为所述I/O存储请求中的字段的所述I/O数据类型标记; 以及所述存储控制器,用于接收来自所述操作系统的所述I/O存储请求;基于所述I/O数据类型标记确定将所述I/O存储请求发送到多个存储池中的哪个存储池,其中,所述多个存储池中的每一个均包括至少一个服务等级。
12.根据权利要求11所述的系统,其中,所述存储控制器还操作用于识别每个可用的存储池;以及确定由所述每个可用的存储池提供的所述服务等级。
13.根据权利要求12所述的系统,其中,所述存储控制器还操作用于确定所述I/O数据类型标记中列出的所述I/O数据类型所期望的所述服务等级;以及将所述I/O存储请求发送到所述多个存储池中的第一存储池,所述第一存储池提供所确定的服务等级。
14.根据权利要求13所述的系统,其中,所述存储控制器包括独立磁盘冗余阵列 (RAID)控制器。
15.根据权利要求14所述的系统,其中,所述操作系统还操作用于将所述I/O存储请求以逻辑块请求的形式发送到所述存储控制器。
16.根据权利要求15所述的系统,其中,所述存储控制器还操作用于将所述逻辑块请求动态地映射到所述可用的存储池中的一个中的物理存储设备,所述物理存储设备提供与所述I/O存储请求中的所述I/O数据类型标记对应的所期望的服务等级。
17.根据权利要求11所述的系统,其中,所述存储控制器还操作用于接收指定第一 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存储服务质量。
18.根据权利要求11所述的系统,其中,所述I/O数据类型标记指定文件数据、目录数据和元数据中的一种的数据。
19.根据权利要求11所述的系统,其中,所述存储控制器还操作用于接收要存储的每种数据类型的路由策略;以及使用所接收的路由策略来将每个I/O存储请求路由到所述多个存储池中的至少一个。
20.根据权利要求19所述的系统,其中,所述存储控制器还操作用于在带外通信信道中接收所述路由策略。
21.一种方法,包括接收输入/输出(I/O)存储请求,所述I/O存储请求包括要存储的指定I/O数据类型的标记;基于所述I/O数据类型标记确定将所述I/O存储请求发送到多个存储池中的哪个存储池,其中,所述多个存储池中的每一个均包括服务等级。
22.根据权利要求21所述的方法,还包括确定所述I/O数据类型期望的所述服务等级;以及基于所述确定将服务质量标记与所述I/O存储请求包括在一起。
23.根据权利要求22所述的方法,还包括将所述I/O数据类型标记包括在来自操作系统块I/O层的每个逻辑盘请求中。
24.根据权利要求22所述的方法,还包括 接收指定第一 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存储请求包括要与I/O存储请求一起存储的指定I/O数据类型的输入/输出(I/O)数据类型标记。路由逻辑还能够基于I/O数据类型标记确定将I/O存储请求发送到多个存储池中的哪个。每个存储池具有相关联的特定服务等级。
文档编号G06F3/06GK102301355SQ200980155568
公开日2011年12月28日 申请日期2009年12月22日 优先权日2008年12月31日
发明者D·库法提, M·梅尼耶 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1