用隐藏存储子系统详情的控制设备来将该存储子系统与电子设备连接的制作方法

文档序号:6479932阅读:165来源:国知局
专利名称:用隐藏存储子系统详情的控制设备来将该存储子系统与电子设备连接的制作方法
用隐藏存储子系统详情的控制设备来将该存储子系统与电
子设备连接
背景技术
机顶盒或其它电子设备可具有外部存储连接端口以使机顶盒能连接于外部存储 设备。一些机顶盒具有录制视频节目的能力。在机顶盒上提供外部存储连接端口允许能方 便地扩充机顶盒的存储容量。由于录制的视频节目往往消耗相对大量的存储容量,因此为 机顶盒增加存储容量是合需的。使机顶盒能连接于外部存储设备的一种示例类型的存储连 接接口遵循外部串行高级技术附件(eSATA)协议,它定义了用于在主机和存储设备之间传 递数据的通信路径。图1示出包括机顶盒10的示例性布局,机顶盒10具有用于在eSATA 链路14上与外部存储设备16 (例如外部硬盘驱动器)通信的eSATA端口 12。与常规eSATA连接端口——例如图1的eSATA连接端口 12——相关联的问题是 它们只能识别单驱动器单卷存储设备。单驱动器单卷存储设备是具有单个存储驱动器(例 如硬盘驱动器)并且具有定义在该驱动器上的单个卷的存储设备。卷是存储设备的一个逻 辑分区。由于电子设备可能无法对具有多个驱动器或具有多个卷的存储设备正常地发挥作 用,因此当使用这种外部存储连接端口时灵活性下降。


参照以下附图作为示例来对本发明的一些实施例进行描述,在附图中图1是机顶盒和外部存储设备的常规布局的示意图;图2是根据一实施例的机顶盒、存储子系统、以及具有抽象控制器的服务器的示 例性布局的示意图;图3是根据一实施例的图2的布局连同抽象控制器和存储子系统的更多详情的框 图;图4是根据一实施例由抽象控制器执行的RAID (廉价盘冗余阵列)任务过程的流 程图;图5是根据一实施例由抽象控制器执行的卷扩充过程的流程图;以及图6是根据一实施例由抽象控制器执行的热插拔控制过程的流程图。
具体实施例方式根据一些实施例,在电子设备(例如机顶盒、计算机、游戏控制台等)与包括多个 物理存储设备及多个逻辑存储卷的存储子系统之间提供抽象控制器。电子设备能向存储子 系统提交执行读和写访问的请求。“逻辑存储卷”是指存储子系统中由物理存储设备形成的 物理存储基础结构的某个逻辑分区。逻辑存储卷可跨多个物理存储设备来实现。抽象控制器执行对存储子系统的抽象,其中抽象是指对电子设备隐藏或掩盖与存 储子系统相关联的详情。例如,存储子系统可实现相对高性能的RAID(廉价盘冗余阵列) 架构,例如RAID5或RAID6架构。RAID 5或RAID 6提供对抗存储子系统中例如盘驱动器的 物理存储设备的故障的强健保护。通过使用抽象控制器来对电子设备隐藏与RAID架构相关联的详情,电子设备就不一定要配置成能应付与存储系统相关联的详情,这简化了电子 设备的设计。抽象控制器还允许实现可伸缩性,以使存储子系统的存储容量能容易地扩充(例 如通过增设物理存储设备或扩大存储子系统的至少一个逻辑存储卷的大小)。根据一些实施例的抽象控制器还提供端口复联器控制。端口复联器控制允许外 部串行高级技术附件(eSATA)端口复联器连接于抽象控制器或成为抽象控制器的一部分。 eSATA端口复联器是单向分路设备,用来允许一个eSATA端口连接到与端口复联器的相应 端口连接着的多个存储子系统(或设备)。更一般化地,可代替地使用端口扩充器,其中端 口扩充器是将单个端口扩充至多个端口以允许将多个设备连接于该单个端口的设备。在接 下来的讨论中,尽管是对“端口复联器”进行引述,然而要注意,所描述的技术或机制也可应 用于其它类型的端口扩充器,例如集线器、交换机等。通过使用根据一些实施例的抽象控制器,就不必改变电子设备内的功能性以容适 相对复杂或高性能的存储子系统。当电子设备是例如机顶盒(它连接于电视机或其它进行 音频/视频信号通信的外部源)、游戏控制台、或具有精简能力外部存储连接接口的任何其 它电子设备之类的相对低成本的设备时,这是尤为有利的。电子设备的精简能力外部存储 连接接口不允许该电子设备连接于相对复杂的存储子系统,例如提供多个存储设备和/或 多个逻辑存储卷的存储子系统。图2示出包括机顶盒104的示例性布局,该机顶盒104具有用于在第一通信路径 102上与服务器101相连的端口 112,所述服务器101进而在第二通信路径106上与包括诸 存储设备140的存储子系统108相连。通信路径可包括电缆、无线连接、或电缆和无线连接 的组合。尽管在接下来的讨论中是对“机顶盒”进行引述,然而要注意,根据一些实施例的 机制也可应用于其它类型的电子设备。服务器101包括抽象控制器100,该抽象控制器100包括根据一些实施例的能力。 如图3中进一步描述的那样,抽象控制器100具有用来与机顶盒104中的相应eSATA端口 112通信的外部串行高级技术附件(eSATA)端口 110。eSATA端口是从抽象控制器100至电 子设备的外部接口端口的一个示例。根据一些实施例,在第一通信路径102上的控制消息 和数据的通信遵循eSATA协议。替代地,可以不是采用eSATA协议在机顶盒104与抽象控 制器100之间的通信路径102上通信,而是采用不同的串行通信协议。“串行通信协议”是 指其中数据或控制消息作为机顶盒104与抽象控制器100之间每个方向上的串行流在通信 路径上的两个端点之间交换的任何通信协议。抽象控制器100还具有存储接口 112以在第二通信路径106上与存储子系统108 通信。要注意,存储子系统108可以不是连接于单独的存储接口 112,而是替代地连接于端 口复联器114中与抽象控制器100相关联的端口。端口复联器114具有多个端口 116A、 116B、116C等。端口复联器114可以是抽象控制器100的一部分,或可位于抽象控制器100 的外部但连接于抽象控制器100。存储子系统108包括物理存储设备140以及包含在物理存储设备140中的逻辑存 储卷142。抽象控制器100还包括为机顶盒104提供对存储子系统108的抽象的虚拟化引擎 120。虚拟化引擎120可实现为包括中央处理单元(CPU) 122、存储器124、以及可在CPU 122上执行的软件126的嵌入式系统。替代地,虚拟化引擎120可实现为集成电路芯片,例如专 用集成电路(ASIC)、可编程门阵列(PGA)等。通常来说,虚拟化引擎是指能够执行对存储 子系统(例如存储子系统108)的抽象的控制设备。在一些实施例中,由虚拟化引擎120执 行的任务包括⑴用于控制RAID存储子系统的RAID控制,⑵存储子系统的卷扩充,(3) 端口复联器的控制、以及其它任务。执行前述任务的能力使虚拟化引擎120能够隐藏存储 子系统108的详情。存储器IM可提供高速缓存和/或缓冲。例如,从存储子系统108检索到的数据 可被高速缓存在存储器124中以便能从高速缓存来满足将来对该数据的请求以改善性能。 存储器1 也可缓冲从机顶盒104接收的命令。虚拟化引擎120的软件1 包括与机顶盒104通信的主机接口控制模块128。主 机接口控制模块1 能识别由机顶盒104发出并在通信路径102上并通过eSATA端口 110 接收的命令。主机接口控制模块1 也能(响应来自机顶盒104的命令)将从存储子系统 108检索到的数据发送至机顶盒104。虚拟化引擎120的主机接口控制模块1 被设计成 用关联于机顶盒104的现有命令/数据协议来工作,如此使得机顶盒104将无须作出改型 以使用存储子系统108。主机接口控制模块1 与存储接口控制模块1 配合以将来自机顶盒104的命令 映射成对存储子系统108的命令。这种映射是因所使用的机顶盒104的类型和所使用的存 储子系统108的类型而异的。在虚拟化引擎中执行的该映射连同虚拟化引擎120的其它任 务允许对机顶盒104隐藏存储子系统108的复杂性。虚拟化引擎120还包括执行对于存储子系统108的各种RAID任务的RAID控制 模块130。RAID任务包括(1)检错和纠错;(2)响应于物理存储设备故障对物理存储设备 140内容的RAID重建,其中对数据的重建是在出故障的物理存储设备已被具备功能的物理 存储设备替代之后执行的;C3)RAID恢复,其中已丢失(例如由于意外删除、介质污损等) 的数据被恢复;(4) RAID迁移,其中存储在存储子系统的现有物理存储设备中的一部分数 据被迁移到向存储子系统108增设的新物理存储设备(这可能发生在从一个RAID级向另 一 RAID级迁移的上下文中);以及其它任务。作为一个示例,RAID层迁移涉及从RAID 1向RAID 5迁移。RAID 1配置提供没 有奇偶性的镜像集,其中提供两组物理存储设备,其中一组物理存储设备用来镜像(复制) 另一组物理存储设备。RAID 5配置提供具有分布式奇偶性的条切集,它包括至少三组(最 多至五组)物理存储设备。RAID 5能容忍其中一组物理存储设备出故障。从RAID 1级向 RAID 5级的迁移将涉及增设额外的物理存储设备以允许RAID 5实现。虚拟化引擎120还包括卷扩充模块132以使存储子系统108中的任何一个或多个 逻辑存储卷142在存储容量上得到扩充。例如,如果确定更大的逻辑存储卷将提供存储子 系统108更高效或增强的操作,则卷扩充模块132能将每个逻辑存储卷的大小重定义为更 大的大小。每个逻辑存储卷更大的大小可由用户指定,或替换地可由卷扩充模块132自动 决定。注意,卷扩充模块132也能使逻辑存储卷的大小缩减。虚拟化引擎120还包括热插拔控制模块134,用来控制存储子系统108的物理存储 设备的热插拔。热插拔物理存储设备是指热增设物理存储设备、或热移除物理存储设备、或 两者兼有。热增设或热移除物理存储设备是指在存储子系统108仍保持通电和工作的同时插入、或移除物理存储设备。热插拔控制模块134能接收热插拔事件(物理存储设备正被 移除或增设)的指示,并且热插拔控制模块134可响应于热插拔事件执行任务(例如配置 新增设的物理存储设备,管理物理存储设备的移除等)。虚拟化引擎120还包括端口复联器控制模块136,该端口复联器控制模块136连接 于端口复联器114。端口复联器控制模块136能够识别与端口复联器114的多个端口 116A、 116C相连的多个存储设备(或子系统)。根据一些实施例的抽象控制器100是与机顶盒104分离的实体。抽象控制器100 可具有其本身的外壳150(由图3中的外边界一般化地表示),该外壳150包含抽象控制器 100的各种组件。抽象控制器100还具有向抽象控制器100的其它组件供电的电源152。另 外,抽象控制器100可包括各种指示器、按钮和其它组件(未示出)。图4示出能由图3的RAID控制模块130执行的某些任务。RAID控制模块130可 响应来自用户的请求执行图4所指出的任务,或替代地,RAID控制模块130可基于检测到 的事件自动执行任务。控制模块130(在202)决定是否要执行物理存储设备内容的重建。这可由检测到 物理存储设备已出故障而引起。在这种情景中,用户可作出对出故障的物理存储设备的内 容进行重建的请求。如果RAID控制模块130检测到希望重建物理存储设备内容,则RAID 控制模块130接下来(在204)确定重建是否可行。取决于所采用的RAID级,如果超出一 定数量的物理存储设备已出故障则重建或许是不可行的。如果重建是不可行的,则RAID控 制模块130(在206)输出出错指示。然而,如果重建是可行的,则RAID控制模块130(在208)等待出故障的物理存储 设备已被更换的指示。这可通过用户移除出故障的物理存储设备并插入新的物理存储设备 来达成。可在热插拔控制模块134 (图幻的控制下热移除出故障的物理存储设备,并热增设 新的物理存储设备。一旦接收到物理存储设备已被更换的指示,RAID控制模块130就(在 210)执行RAID重建。替代地,如果没有请求物理存储设备内容的重建,则RAID控制模块130可(在 212)确定是否希望恢复丢失的数据。数据可能因为意外的删除、存储介质的污损等而丢失。 如果请求了恢复丢失的数据,则RAID控制模块130(在214)应用相应的RAID算法以恢复 丢失的数据。RAID控制模块130也可(在216)检测是否希望RAID迁移。RAID迁移是指从一 个RAID级向另一 RAID级(例如从RAID 1向RAID 5)迁移。假定迁移是从较低的RAID级向较高的RAID级迁移,则RAID控制模块130 (在218) 等待物理存储设备的增设。同样,物理存储设备的增设可以是热增设。一旦已增设额外的 物理存储设备,RAID控制模块130就可(在220)执行现有RAID级向新RAID级的迁移。替代地,RAID迁移可指从较高RAID级(例如RAID 5)向较低RAID级(例如RAID 1)的迁移。图5示出根据一实施例的如由图3的卷扩充模块132执行的扩充逻辑存储卷 142(图幻的过程。卷扩充模块132(在30 接收逻辑存储卷142的当前大小。接着,卷扩 充模块132(在304)确定是否希望重定逻辑存储卷142的大小。例如,用户可能已手动改 变设置以指定更大的逻辑存储卷。替代地,系统可能已检测到更大或更小的逻辑存储卷将提高系统性能。响应于确定希望重定逻辑存储卷的大小,卷扩充模块132(在306)重定义 逻辑存储卷142的大小。图6示出执行如由图3的热插拔控制模块134执行的用于执行热插拔控制的过 程。热插拔控制模块134(在40 检测热插拔事件(例如由因热增设或热移除物理存储设 备引起的中断来指示)。响应于热插拔事件,热插拔控制模块134(在404)确定是否已热增 设或热移除物理存储设备。如果已热增设物理存储设备,则热插拔控制模块134(在406) 对所增设的物理存储设备进行配置。然而,如果已热移除物理存储设备,则热插拔控制模块 134(在408)管理物理存储设备的移除,例如向操作系统软件提供此移除的指示。前述软件(包括图3的软件126)的指令被加载以在处理器(例如图3中的CPU 122)上执行。处理器包括微处理器、微控制器、处理器模块或子系统(包括一个或多个微处 理器或微控制器)或其它控制或计算器件。“处理器”可指单个组件或多个组件。(软件的)数据和指令被存储在各自相应的存储设备中,这些存储设备被实现为 一个或多个计算机可读或计算机可使用存储介质。存储介质包括不同形式的存储器,包括 例如动态或静态随机存取存储器(DRAM或SRAM)、可擦除和可编程只读存储器(EPROM)、电 可擦除和可编程只读存储器(EEPROM)和闪存之类的半导体存储器件;例如固定盘、软盘 和可移动盘之类的磁盘;包括磁带的其它磁性介质;以及例如压缩盘(CD)或数字视频盘 (DVD)之类的光学介质。注意,前述软件的指令可在一个计算机可读或计算机可使用存储介 质上提供,或者替换地可在分布于可能具有多个节点的大型系统中的多个计算机可读或计 算机可使用存储介质上提供。这种计算机可读或计算机可使用存储介质或媒体被视为物品 (或制品)的一部分。物品或制品可指任何制造而成的单个组件或多个组件。在前面的描述中,陈述了许多细节以提供对本发明的理解。然而,本领域技术人员 将理解,没有这些细节也可实践本发明。尽管本发明已针对有限的几个实施例作了公开,然 而本领域技术人员将会从其中领会到许多修改和变型。所附权利要求旨在覆盖这样的修改 和变型,只要它们落在本发明的真实精神和范围内。
8
权利要求
1.一种装置,包括连接于外部电子设备的外部接口端口,所述外部接口端口用于遵照串行通信协议在通 信路径上与所述外部电子设备通信;存储接口端口,所述存储接口端口连接于具有多个逻辑存储卷的存储子系统;以及对所述外部电子设备隐藏所述存储子系统的详情的控制设备,所述控制设备配置成执 行下面至少一个动作(1)扩充至少一个所述逻辑存储卷的存储容量;以及(2)将存储在所述存储子系统中的一部分数据迁移至新的物理存储设备。
2.如权利要求1所述的装置,其特征在于,所述串行通信协议包括外部串行高级技术 附件(eSATA)协议。
3.如权利要求2所述的装置,其特征在于,所述外部接口端口用于根据所述eSATA协议 与机顶盒通信,所述电子设备是所述机顶盒。
4.如权利要求1所述的装置,其特征在于,所述控制设备配置成通过执行RAID(廉价盘 冗余阵列)迁移来迁移所述数据。
5.如权利要求4所述的装置,其特征在于,所述控制设备配置成进一步响应所述存储 子系统中丢失数据来执行一个或多个RAID恢复,并响应于所述存储子系统的部分的故障 来执行RAID重建。
6.如权利要求1所述的装置,其特征在于,所述控制设备配置成支持所述存储子系统 的物理存储设备的热插拔。
7.如权利要求1所述的装置,其特征在于,还包括具有多个端口的端口扩充器,其中所 述控制设备配置成提供对所述端口扩充器的控制。
8.如权利要求1所述的装置,其特征在于,还包括外壳,其中所述外部接口端口、存储 接口端口和控制设备被容纳在所述外壳内。
9.一种向电子设备抽象存储子系统的方法,包括提供与所述电子设备分离的抽象控制器,所述抽象控制器具有用于连接于所述电子设 备的外部接口端口以及用于连接于存储子系统的存储接口端口;遵照串行通信协议在所述抽象控制器与所述电子设备之间进行通信;以及由所述抽象控制器执行以下任务中的至少一个(1)扩充所述存储子系统中的至少一个逻辑存储卷的存储容量;以及(2)将存储在所述存储子系统中的一部分数据迁移至已增设至所述存储子系统的新物 理存储设备。
10.如权利要求9所述的方法,其特征在于,将存储在所述存储子系统中的一部分数据 迁移至所述新物理存储设备是作为从第一 RAID (廉价盘冗余阵列)级向第二不同的RAID 级的迁移的一部分来执行的。
11.如权利要求9所述的方法,其特征在于,遵照所述串行通信协议在所述抽象控制器 与所述电子设备之间进行通信包括遵照外部串行高级技术附件(eSATA)协议进行通信。
12.如权利要求9所述的方法,其特征在于,还包括由所述抽象控制器使用RAID算法来 执行对所述存储子系统中丢失的数据的重建。
13.如权利要求9所述的方法,其特征在于,还包括检测与所述存储子系统中的物理存储设备相关的热插拔事件的指示;以及 响应于接收到所述热插拔事件的指示而执行任务。
14.一种系统,包括 具有接口端口的电子设备;具有用于遵照串行通信协议与所述电子设备通信的接口端口的控制器;以及 连接于所述控制器的存储子系统,其中所述控制器配置成对所述电子设备隐藏所述存储子系统的详情,所述控制器配置 成执行在所述存储子系统的不同RAID(廉价盘冗余阵列)级之间的RAID迁移。
15.如权利要求14所述的系统,其特征在于,所述存储子系统具有多个物理存储设备 和多个逻辑存储卷,其中所述电子设备和所述控制器配置成遵照外部串行高级技术附件 (eSTAT)协议来通信,并且其中所述电子设备的所述接口端口无法识别多个物理存储设备 和多个逻辑存储卷。
全文摘要
一种装置包括用于连接于外部电子设备的外部接口端口,其中该外部接口端口用于遵照串行通信协议在通信路径上与外部电子设备通信。该装置具有对外部电子设备隐藏存储子系统的详情的控制设备。该控制设备配置成执行下面至少一个动作(1)扩充存储子系统的至少一个逻辑存储卷的存储容量;以及(2)将存储在存储子系统中的一部分数据迁移至新的物理存储设备。
文档编号G06F13/00GK102112970SQ200880130686
公开日2011年6月29日 申请日期2008年7月29日 优先权日2008年7月29日
发明者P·A·伯尔格 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1