用于管理数据存储的方法、系统和计算机程序产品以及虚拟化引擎的制作方法

文档序号:6568134阅读:129来源:国知局
专利名称:用于管理数据存储的方法、系统和计算机程序产品以及虚拟化引擎的制作方法
技术领域
本发明涉及数据处理领域,并且特别涉及存储管理和数据迁移。
技术背景企业面临主要的存储挑战是由于其存储需求的快速M、存储管理的日益复杂性,以及对存储器的高可用性的需求。存储区域网(SAN)技术 使得能够通过合并(pooling)存储而将存储系统与主计算机分开设计,从 而改进了效率。还可以使用存储虛拟化,其是使物理存储复杂性对用户屏蔽的一种存 储管理技术。块虚拟化(blockvisualization)(有时也称为块聚合(block aggregation))为服务器提供了在其上实际存储数据的物理存储器(例如 磁盘驱动、固态盘和磁带驱动)的逻辑视图。逻辑视图可以包括多个虛拟 存储区域,在不考虑实际存储器的物理布局的情况下,将可用存储空间划 分(或聚合)成该多个虚拟存储区域。服务器不再看到具体的物理目标, 而是看到其可以专用的逻辑巻。服务器将其数据发送到虛拟存储区域,就 好像这些虛拟存储区域是其直接附属的所有物。虛拟化可以在巻的级别上、各个文件的级别上或者表示磁盘驱动内特 定位置的块的级别上发生。可以在主机(服务器)、存储网络(存储路由 器、存储控制器)和/或存#^殳备(智能盘阵列)中进行块聚合。在数据存储系统中,数据流通(data currency )问M普遍问题。很 可能新数据会在其创建的最初几天或几周内被定期访问,并且随着时间的 流逝该数据将逐渐被访问得越来越少。举例来说,设想这样的存储体 (bank),即在其中存储了有关股份交易的数据。很可能会在最近几天内 所发生的股份交易上进行分析以发现趋势。 一星期之后,由于市场会有所改变,该数据便不太重要了。几星期之后,该数据将不再相关。存储数据 本身,以便可以由进行分析的服务器(通常是高性能服务器和快速可靠的 存储器)对其进行访问,并且可以将其作为记录存储在数据库中。 一旦数 据已变得不太有用时,便不再需要将其存储在快速(昂贵)的存储器中, 但其却可能仍然需要偶尔被访问。因此,系统管理员会需要手动地将数据 从数据库中移到另一数据库中,或者移到较便宜的存储介质上。最终,可 以将数据移到磁带存储器上用于长期*。在美国专利US 6, 032, 224中已经提出了 一种在计算机中分级存储数 据的方法。该计算机包括解释器和分级性能驱动器,该分级性能驱动器监 控对存储在计算机的存储设备上的数据块的访问率,并且将不常被访问的 数据块从较快速的数据存储设备转移到较慢速的数据存储设备。由于在主机级上进行存储管理,因此当可以使用不同操作系统的两个 或更多的不同主机共享相同的存储设备时就会有问题。会要求额外的数据 聚集系统(extra data gathering system )查看整个系统的访问统计,并且 如果主机使用不同的操作系统,则该额外的数据聚集系统将必须兼容所有 不同的操作系统。可选地,可以将主机之一实现为控制器,但是然后必须 将所有其它主机的活动通知给该控制器,并且将再次出现不同操作系统的 问题。这两种选项均导致使用额外的带宽、时间和处理器能力。本发明旨在解决这些问题。发明内容本发明的第一方面提供了一种用于在网络中管理数据存储的方法,所 述网络包括耦合于存储虛拟化引擎的多个主机数据处理器,所述存储虛拟 化引擎耦合于多个物理存储介质,每个物理存储介质均被分派了层次级别。 所述方法包括存储与每个层次级别关联的门F^储访问值,向主机数据处 理器提供至少一个虚拟盘,以及从所述主机数据处理器接收对所述虚拟盘 的I/O请求。另外,为物理存储块存储元数据。所述元数据标识物理块到一个或多个对应的虚拟盘块的映射;每个物理块的访问值,其表示通过主机数据处 理器对所述块的访问率;以及所述块的层次级别。周期性地将物理块的访 问值与关联于其层次级别的门限访问值进行比较,并且根据所述比较的结 果,将所述块标记用于迁移到另一层次级别。所述存储虛拟化引擎充当耦合于所述主机数据处理器以及还耦合于多 个物理存储介质的共享存储互连,并且使得所述主机数据处理器能够维持 "分区(zoned)"于所述物理存储介质。所述物理存储介质对于所述主机 数据处理器不可见,所述主机数据处理器仅看见由所述虚拟化引擎所提供 的虚拟盘。从所述主机数据处理器到所述虚拟盘的I/O请求由所述虛拟化引擎根 据其映射而引导至对应的物理数据块。同时,所述虚拟化引擎维护每个物 理块的访问值,其根据接收到的1/0请求更新所述访问值。所述虚拟化引擎将所述物理存储器分割成组块(chunk),或者"区 段(extent)"。所述引擎内的元数据跟踪区段到虛拟盘的映射。另外, 用元数据标记每个区段,所述元数据表示其上驻留有所述区段的数据的物 理存储器的层次。通常,高层次意味着所述数据经常被使用并且需要处在 昂贵的存储器上;以及低层次意味着所述数据已经有些时间没有被访问了 , 并且适合备盼到磁带。周期性地将物理块的访问值与关联于其层次级别的门限率进行比较, 并且根据所述比较的结果,然后可以将存储块标记用于将其数据迁移到另 一层次级别的存储介质。该步骤可以包括由存储管理器使用算法来确认区段被标记的层次。所 述访问值标识所述区段上的数据的最近访问历史。根据所述算法,所述存 储管理器要么维持区段标记其当前的层次,要么标记所述区段用于在分层 系统中向上或向下迁移。所述算法可以包括月良务级协定(service level agreement),其标识门限访问值以及任何其它的因素。通过一次设置各种 SLA属性,所述系统自动将数据在层次之间移动,释放高端存储器中的容 量,并且最终将所述数据备份到磁带以及完全释放较为昂贵的高端存储器。所述主机数据处理器可以是不同供应商的主机数据处理器,并且可以具有不同的^Mt系统,而且不需要主树目互通知其i/o请求。


现在将参照附图,仅通过例子的方式描述本发明的优选实施例,在附图中图l示出了可以在其中实现本发明的存储区域网的例子;图2示出了块虛拟化的简单视图;以及图3示出了才艮据本发明的实施例的虛拟化引擎的组件。
具体实施方式
本发明提出使用虛拟化引擎来基于服务级协定进行数据迁移,该虛拟 化引擎既知道数据又知道数据的位置。参照图1,其中示出了附设有几个主机应用服务器102的SAN 100。 这些主机应用服务器可以是很多不同的类型,通常是一定数量的企业服务 器,以及一定数量的用户工作站。同样依附于SAN (通过冗余廉价盘阵列(RAID)控制器A、 B和C) 的是各级物理存储器。在本例中,有三种级别层次1,举例来说,其可 以是诸如IBM⑧企业存储服务器⑧(ESS)这样的企业级存储器;层次2, 其可以是诸如IBM光纤阵列存储技术TM (FAStT)这样的中档存储器; 以及层次3,其可以是诸如IBMFAStT串行高级技术配件(SATA)这样 的较低端存储器。通常,每个Mdisk对应于单个层次并且每个RAID阵列101属于单个 层次。每个RAID控制器103可以控制属于不同层次的RAID阵列。除了 将不同的层次应用于不同的物理盘类型外,如上所述,还可以将不同的层 次应用于不同的RAID类型;例如,可以将RAID-5阵列置于比RAID-0 阵列更高的层次中。SAN是借助于处在(sit in)所有SAN数据的数据路径中的存储虚拟化引擎104来虛拟化的,并且其将虛拟盘106a到106n提供给主机服务器 和工作站102。这些虛拟盘是由跨三层存储设备所提供的容量构成的。虚拟化引擎104包括一个或多个节点110 (示出了四个),其向主机 提供虛拟化、高速緩存和复制服务。通常,节点被成对部署并且构成节点 群集,每对节点被称为输^/输出(I/O)组。由于存储器依附于SAN,因此将其添加到各自由RAID控制器103所 控制的不同存储池。每个RAID控制器向虛拟化引擎提供SCSI(小型计算 机系统接口)盘。所提供的盘可以由虛拟化引擎来管理,并且被称为受管 盘或MDisk。将这些MDisk分成区段(固定大小的可用容量块),从开头 到结尾顺序为每个MDisk编号。然后,可以对这些区段进行连接 (concatenated)、分条(striped),或者可以使用任何期望的算法来产 生较大的虛拟盘(VDisks),其可由节点提供给主机。可以在受管盘组或MDGs 108中将MDisk Ml、 M2、…M9分组到一 起,通常以诸如性能、RAID级别、可靠性、供应商等因素为特征。根据 优选实施例,一 MDG中所有的MDisks均表示相同层次级别的存储器, 如图1所示。虛拟化引擎将虚拟盘的逻辑块地址(LBAs)转换成VDisk的区段, 并且将VDisk的区段映射到MDisk区段。在图2中示出了从VDisk到 MDisk的映射的例子。每个VDisk A的区段均被映射到受管盘Ml、 M2 或M3之一的区段。可以根据每个节点所存储的元数据而创建的映射表显 示出未使用一些受管盘区段。在创建新的VDisk、迁移、扩展等时可以使 用这些未使用的区段。通常,创建并这样分布虛拟盘,即企业级服务器使用企业级存储器, 等等。然而,如文中所描述的,可以将已经有一些时间没有被访问的区段 迁移到不同级别的存储器。为实现该目的,除了用于跟踪受管盘区段到虛拟盘的映射的元数据之 外,还用表示该区段上的数据所属的存储器的"层次"的元数据来标记每 个区段。监控对每个区段的访问率并且将其与存储迁移策略或服务级协定(SLA)进行比较,服务级协定(SLA)指定应当将数据迁移到不同层次 的存储器的条件。当将数据读取和写入到任何给定的区段时,SLA用于确 认区段被标记的层次,并且要么维持区段标记其当前的层次,要么在分层 系统中向上或向下移动区段。存储管理系统因而在层次之间自动移动数据, 释放高端存储器中的容量,并且最终将数据备除到磁带以及完全释放高级 存储器。服务级协定的属性可以由系统管理员来定义。现将参照图3来描述I/0流。如图3中所示,虚拟化引擎或节点110 包括以下才莫块SCSI前端302、存储虛拟化310、 SCSI后端312、存储管 理器314和事件管理器316。SCSI前端层接收来自主机的I/O请求;实施LUN映射(即在LBA到 虛拟盘A和C的逻辑单元号(LUNs)(或区段)之间);以及将SCSI 读和写命令转换成节点的内部格式。存储虛拟化层负责虛拟盘A和B与受管盘1、 2和3之间的映射,并且负责进行数据迁移。SCSI后端处理由上面的虛拟化层向其发送的对受管盘的请求,并且将 命令寻址到RAID控制器。I/O堆栈还可以包括其它模块(未示出),例如远程复制、闪速复制 以及高速緩存。图3中所显示的节点属于向虚拟盘A和B分派的I/O组。这意p未着该 节点向主机提供了到虚拟盘A和B的接口。受管盘l、 2和3还可以对应于分派给其它节点的其它虛拟盘。事件管理器316管理元数据318,其包括用于每个受管区段的映射信 息以及用于该区段的层次级别数据和访问值。该元数据对虚拟化层310和 存储管理器314也是可用的。现在考虑从主机接收写请求350,其包括该请求所引用的虚拟盘的ID, 以及应当向其进行写入的LBA。在收到写请求时,前端将指定的LBA转 换成虛拟盘的区段ID (LUN),举例来说,其是VDisk A的区段3 (A, 3)。 虚拟化组件310使用元数据(在图2中以映射表的形式示出)来将区段A,3映射到MDisk 2的区段6 (M2, 6)。然后通过SCSI后端312将写请求 传递给用于MDisk2的相关盘控制器,并且将数据写到区段M2, 6。虚拟 化层向事件管理器发送消息304,指示已经请求写到MDisk 2的区段6。 事件管理器然后更新关于区段M2, 6的元数据以指示该区段现在是满的。 事件管理器还更新该区段的元数据中的访问值。这可以通过将发生写入的 时间存储为访问值,或者通过重置由存储管理器所监控的元数据中的计数 值,如稍后将描述的。事件管理器向虚拟化组件返回消息304以指示已经 更新了元数据以反映写操作。存储管理器314监控对物理区段的使用,并且根据其SLA来判定是否 将区段上的数据从其当前层次迁移到另一层次。存储管理器可以使用很多 不同的因素来确定特定区段的访问值,例如最后访问的日期;近来一段时 间期间访问的次数;近来访问的类型(例如,读或写)。其4吏用元数据来 确定这些细节。当建立节点时,系统管理员可以建立对"近来"的分类。现在将进一步详细描述根据优选实施例通过存储管理器来迁移数据。 根据其SLA,存储管理器314以规则间隔扫描元数据318,例如每隔一天, 以便检查每个区段的层次级别处于该SLA内。该检查可以包括查阅与每个受管区段关联的元数据中的计数值。该计 数值可以指示自从最后访问该区段以来所发生的检查扫描数。在该例中, 事件管理器被配置成当受管区段被访问时(例如,对读或写操作)重置计 数值。对每个存储层次来说,服务级协定可以指定与计数值相比较的一个 或多个门限。例如,对于层次l区段,可以设置为五的计数值的单个"降 级(demote)"门限,以便如果用于任何区段的计数值等于或超过五,即 该层次很少被访问,那么通过迁移到较低层次存储区段而将该区段"降级"。 有些层次可以具有超过一个的门限,区段的计数值与该门限进行比较,以 便确定是否应当将该区段上的数据上移或下移层次,或者其是否应当留在 其当前的层次中。如果发现区段的计数值低于其层次的"晋级(promote)" 门限,则存储管理器将标记该区段用于"晋级",即迁移到较高层次。在对优选实施例的修改中,区段的计数值可以指示该区段已经被访问的次数,例如,每次访问该区段的时候,可以增加或减少该计数值,而不 是将其重置成特定值。会相应地修改门限访问值。存储管理器然后标记区段用于迁移,并且将其名称和当前位置,连同 对该区段上的数据将要迁移到的层次的指示一起,添加到数据迁移队列。该数据迁移队列可以是被建立仅用于实现层次改变迁移;或者可以是通用 的数据迁移队列;并且通常在后台处理期间实现层次改变迁移。在迁移期间,暂停所有节点上的MDisk的源区段上的I/0;进行迁移 的节点在正确层次的盘上选择目标区段,并且然后选择源区段的组块。使 用RAID控制器,该节点从源区段同步读取数据组块,并且将该数据组块 写到目标盘上的目标区段。 一旦已经复制了整个组块,便对该区段的下一 组块重复该过程。 一旦已经迁移了整个区段,便通知事件管理器已经成功 移动并且更新了用于虛拟盘映射的元数据以指示不同受管盘上的数据的新 位置,例如,对应于已经向其移动了数据的目标盘的M5。可以以各种方式修改服务级算法,例如,每当发现区段要中断 (breaking)用于该层次的SLA时,例如高于/低于特定门限,便向该区段 添加"中断"计数,并且仅在已经达到例如为三的计数时,才启动数据迁 移。当系统通常正在使用数据,但却有一小段时间事情是静止的(quiescing ) 的时候,这将停止不必要的数据迁移。该算法优选地考虑了对系统的一般使用。举例来说,如果整个系统已 经静止,则I/0率将会很低,或者为零,并且系统应当桂起对数据区段的 层次级别进行确认的过程。否则,会因为系统没有负载而将该系统中的所 有数据通过存储层次向下迁移。由用户设置的SLA需要足够细致(granular),以便用户可以微调该 自动迁移。然而,其还应当足够简明(terse),以便不会不必要地通过层 次来弹回和转发数据。优选地,在实现向下迁移之前没有数据访问或更新 所涉及的时间周期是大约几天,并且在进行向上迁移之前每天发生若干访 问。使用数据迁移队列确保系统不会变得过度进行基于层次的数据迁移而以用户(正常的)1/0操作为代价。这还可以由用户在全系统范围 (system-wide) SLA中定制。在另一种^"改中,当发现区段落在用于其层次的SLA所要求的使用范 围之外时,迁移该区段所映射到的整个VDisk的数据,而不是仅仅迁移该 区段上的数据。这会使得VDisk的所有区段能够一起移动到不同的受管盘 组,并且将避免使区段与不同的MDGs相关联。可选地,当发现其一定数 量或百分比的区段具有处在用于其层次的SLA之外的访问率时,可以选择 整个VDisk用于迁移。本领域的技术人员应当清楚,本发明的方法可以适当地体现于包括用 于实现该方法的步骤的逻辑装置的逻辑设备中,并且这样的逻辑装置可以 包^^硬件组件或固件组件。在可实现所描述的本发明的实施例的范围之内,至少部分地,使用软 件控制的可编程处理设备,例如,微处理器、数字信号处理器或其它处理 设备、数字处理装置或系统,应当理解,可以将用于配置可编程设备、装 置或系统以实现前述方法的计算机程序设想为本发明的一方面。该计算机 程序可以体现为用于在处理设备、装置或系统上实现的源代码或经受的编 译,或者可以体现为例如目标代码。适当地,该计算才几程序存储在机器或设备可读形式的载体介质上,例 如,固态存储器、诸如磁盘或磁带的磁存储器、诸如光盘(CD)或数字通 用光盘(DVD)等的光或磁-光可读存储器,并且处理i殳备利用该程序或 其部分来配置其:^作。可以从体现于诸如电子信号、射频载波或光载波这 样的通信介质中的远程源提供该计算机程序。也将这样的载体介质设想为 本发明的方面。本领域的技术人员可以理解,尽管已经关于前面的例子实施例描述了 本发明,然而本发明并不限于此,并且还可以有落入本发明的范围之内的 很多可能的变化和修改。本公开的范围包括文中所公开的任何新颖的特征或特征的组合。申请 人因此提醒,在该申请或由其引发的任何这样的进一步的申请的执行期间,可以将新的权利要求表示成这样的特征或特征的组合。特别地,参照所附 权利要求,可以将从属权利要求的特征与独立权利要求的特征进行组合, 并且可以以适当的方式对各个独立权利要求的特征进行组合,而不是仅仅 以权利要求中所列举的具体组合方式来进行组合。为了避免疑问,如贯穿本说明书和权利要求书所使用的术语"包括" 并不被解释为意味着"仅由......组成"。
权利要求
1.一种用于在网络中管理数据存储的方法,所述网络包括耦合于存储虚拟化引擎的多个主机数据处理器,所述存储虚拟化引擎耦合于多个物理存储介质,每个物理存储介质均被分派了层次级别,所述方法包括存储与每个层次级别关联的门限存储访问值;向主机数据处理器提供至少一个虚拟盘;从所述主机数据处理器接收对所述虚拟盘的I/O请求;存储用于物理存储块的元数据,所述元数据标识物理块到一个或多个对应的虚拟盘块的映射;每个物理块的访问值,其表示通过主机数据处理器对所述块的访问率;以及所述块的层次级别;以及周期性地将物理块的访问值与关联于其层次级别的门限访问值进行比较,并且根据所述比较的结果,将所述块标记用于迁移到另一层次级别。
2. 根据权利要求1的方法,其进一步包括接收寻址于虚拟盘块的I/O 请求,并且确定对应的物理存储块。
3. 根据权利要求2的方法,其进一步包括更新与被确定对应于1/0 请求中所寻址的虛拟盘块的物理存储块相关联的访问值。
4. 根据任何一项前述权利要求的方法,其中,物理块的所述访问值包 括检查扫描计数,并且所述周期性地比较所述访问值的步骤包括更新所述 检查扫描计数。
5. 根据权利要求4的方法,其包括响应于收到寻址于对应的虛拟盘 块的i/o请求,重置物理块的所述检查扫描计数。
6. 根据任何一项前^利要求的方法,其进一步包括根据所述比较 的结果,将中断计数值存储在用于物理块的元数据中。
7. 根据权利要求6的方法,其进一步包括存储中断计数值门限;将 物理块的所述中断计数值与所述门限中断计数值进行比较;以及如果所述 中断计数值超过了所述中断计数门限,则将所述块标记用于迁移。
8. 根据任何一项前述权利要求的方法,其进一步包括将所述物理存 储器作为具有一个或多个受管盘的块提供给所述虛拟化引擎,并且所述提 供虛拟盘的步骤包括虛拟化来自所述受管盘的存储数据。
9. 一种用于在网络中使用的虚拟化引擎,所述网络包括可操作以便与 所述虛拟化引擎通信的多个主机数据处理器;所述虚拟化引擎可操作以便与多个物理存储介质通信,每个物理存储介质均被分派了层次级别;以及向主才几数据处理器提供至少一个虛拟盘,以及从所述主机数据处理器 接收对所述虛拟盘的I/O请求;并且所述虚拟化引擎包括 标识了与每个层次级别关联的门PIM^储访问值的数据; 用于物理存储块的元数据,其标识 物理存储块到对应的虛拟盘块之间的映射;每个物理块的访问值,其表示通过主机数据处理器对所述块的访问率; 以及所述块的层次级别;存储管理器,其用于周期性地将物理块的访问值与关联于其层次级别 的门限访问值进行比较,并且根据所述比较的结果,将所述块标记用于迁 移到另一层次级别。
10. 根据权利要求9的虛拟化引擎,其可操作以便接收寻址于虚拟盘 块的i/o请求,以及确定对应的物理存储块。
11. 根据权利要求10的虛拟化引擎,其进一步包括事件管理器,所 述事件管理器用于更新与被确定对应于I/O请求中所寻址的虚拟盘块的物 理存储块相关联的访问值。
12. 根据权利要求9、 10或11的虚拟化引擎,其中物理块的所述访 问值包括检查扫描计数,每当进行周期性比较的时候,所述存储管理器可 操作以便更新所述检查扫描计数。
13. 根据权利要求12的虚拟化引擎,其中所述元数据包括事件管理 器,响应于收到寻址于对应的虚拟盘块的1/0请求,所述事件管理器可操 作以^更重置物理块的所述检查扫描计数。
14. 根据权利要求9至13中任何一项的虛拟化引擎,其根据所述周
15. 根据权利要求14的虛拟化引擎,其包括标识了中断计数值门限 的数据;并且其可操作以便将物理块的所述中断计数值与所述门限中断计 数值进行比较,以及如果所述中断计数值超过了所述中断计数门限,则将 所述块标记用于迁移。
16. 根据权利要求9至15中任何一项的虚拟化引擎,其耦合于作为 具有一个或多个受管盘的块而被提供给所述虛拟化引擎的物理存储介质, 所述虚拟化引擎可操作以便将来自所述受管盘的存储数据虛拟化到虛拟盘 中,用于提供给所述主机数据处理器。
17. —种用于管理数据存储的系统,所述系统包括耦合于根据权利要 求9至16中任何一项的存储虛拟化引擎的多个主机数据处理器,所述存储 虛拟化引擎耦合于多个物理存储介质,每个物理存储介质均被分派了层次 级别。
18. 根据权利要求17的系统,其进一步包括一个或多个存储控制器, 所述一个或多个存储控制器将存储在所述物理存储介质上的数据作为多个 受管盘提供给所述虛拟化引擎。
19. 一种计算机程序元件,其包括可操作以便实现权利要求1至8中 任何一项的方法的程序代码。
20. 载体介质上根据权利要求19的程序元件。
21. —种实质上如文中参照附图所描述的用于管理数据存储的虚拟 化引擎。
22. —种实质上如文中参照附图所描述的用于管理数据存储的方法 或系统。
全文摘要
本发明提供了一种用于在存储区域网中使用的存储管理方法。所述存储区域网包括耦合于存储虚拟化引擎的多个主机数据处理器,该存储虚拟化引擎耦合于多个物理存储介质。每个物理存储介质均被分派了层次级别。该方法包括提供存储管理策略,其标识与每个层次级别关联的门限存储访问率;将物理存储块映射到对应的虚拟盘块;以及存储关联于块的元数据,该元数据标识了该块所对应的物理存储器的层次级别、在该块与虚拟盘块之间的映射,以及指示对数据的访问率的访问率。周期性地将访问值与关联于其层次级别的至少一个门限率进行比较。根据比较的结果,然后可以将存储块标记用于迁移到另一层次级别的物理存储介质。
文档编号G06F3/06GK101223498SQ200680025626
公开日2008年7月16日 申请日期2006年7月11日 优先权日2005年7月15日
发明者B·D·怀特, D·J·卡尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1