在多层级虚拟化存储结构中管理存储数据的布置的方法、系统和计算机程序产品的制作方法

文档序号:6348522阅读:187来源:国知局
专利名称:在多层级虚拟化存储结构中管理存储数据的布置的方法、系统和计算机程序产品的制作方法
技术领域
本发明涉及数据处理领域,并且具体地涉及多层级虚拟化存储结构中的存储管理和数据布置优化。
背景技术
企业面临由它们的存储需要的快速增长、管理存储的增加复杂度以及对存储的高可用性的需求造成的主要挑战。存储区域网络(SAN)技术使得能够通过存储池(pooling) 从主机计算机单独地构造存储系统,导致改进的效率。还可以使用为用户屏蔽物理存储器的复杂度的存储管理技术、存储虚拟化。块虚拟化(有时也称作块聚集)给服务器提供实际存储数据的物理存储器(诸如盘驱动器、固态盘、以及带驱动器)的逻辑视图。逻辑视图可以包括将可用存储空间划分(或聚集)而成的许多虚拟存储区域,而不用考虑实际存储器的物理布局。服务器不再查看特定物理目标,而是查看可以专为它们使用的逻辑量(volume)。服务器向虚拟存储区域发送它们的数据,就像是虚拟存储区域是它们的直接附接所有物。虚拟化可在量的等级、单独文件或者在表示盘驱动器内特定的位置的块的等级上发生。可以在主机(服务器)、和/或存储设备(智能盘阵列)内执行块聚集。在数据存储中,在一套存储层级中的精确数据布置(placement)的问题是最难以解决的问题之一。层级存储是指定不同类别(category)的数据分配到不同类型的存储介质以便减少总存储开销。类别可以基于所需保护的等级、性能需求、使用频率、容量以及其它考虑。用于用户的布置的用户要求经常宽松地指定或者基于希望而不是精确的容量计划。此外,即使初始条件充足,应用在贯穿它们的生命周期中也可经历激烈的数据访问改变。例如,未来用户的数目难以预测的因特网应用的发布,很有可能具有在给定时间与初始配置值和/或计划的活动非常不同的实际数据访问行为。时间流逝,该应用可能从引起数据访问行为中上向改变的功能增强中获益。随后,所选择的功能可能变得不被使用,因为他们具有的功能被更新的应用接替导致在数据访问模式中的下向改变。除了应用行为不确定性以外,单一应用内的数据访问行为可能完全不同类。例如,高度活跃的数据库日志和静态参数表将呈现非常不同的数据访问模式的特征。全部跨越这些生命周期改变,存储管理员面临宽松指定的并且变化的环境,其中不能认为用户技术输入是精确并且可信的,从而采用正确的数据布置判断。与它们的冗余建立(RAID 5、RAID 10等...)相结合的、在存储层级(光纤信道 (FC)、串联AT附件(SATA)、固态驱动器(SSD))中使用的大量的存储技术在存储层级中造成甚至更加复杂的应用数据布置判断,其中每单位存储容量的代价在SATA和SSD之间可以在从1到20的范围内。使用应用数据的正确层级现在对于企业在保持应用性能的同时降低它们的开销是重要的。
3
在美国专利US 5,345,584中已经提出了一种用于在多个存储设备中管理数据集的分配的方法。基于用于数据集和存储设备的数据存储因素的方法对于在没有本地高速缓冲层的情况下访问的单独存储设备中的单独数据集布置良好合适。当今大多废弃了这个结构,这是因为现代存储设备在横跨具有能够缓冲高数目写入访问指令的高速缓冲层的多存储设备的拆散(stripped)模式中容纳(host)数据集。此外使用总访问率(即,读取活动和写入活动的和)对于表现现代存储设备的特征非常不准确;例如,300GB光纤信道驱动器典型地可以支持每秒100-150个随机访问,而写入高速缓冲层可以持续15分钟缓冲每秒1000 个写入指令,每一个为8K字节(典型的数据库块大小),导致总访问率变得不准确。这个问题使得任何将要基于总读取和写入活动和容量的模型受挫。在来自受让人的WO 2007/009910中已经提出了一种存储区域网络(SAN)中的分级(hierarchical)存储数据的方法,其中SAN包括与存储虚拟化引擎耦接的多个主机数据处理器,其与多个物理存储介质耦接。每个物理介质被指定一个层级等级。该方法基于当数据块的访问行为超过层级介质阈值时的数据块的选择性重定位。这种方法可能导致对于包括由高需求应用和低需求应用组成的多应用的混合工作量的不经济的解决方法。对于这样的工作量,这个方法将导致推荐或选择两种类型的存储资源。第一种存储资源类型将是 “高性能SSD等”类型并且第二种存储资源将是“低性能SATA驱动器等”类型,而基于光纤信道(FC)盘的解决方法可能对于支持聚集的工作量的“平均”性能特征是足够的并且更加经济。本质上,使用SATA、FC和SSD的容量的类型价格/单元的1、2和20比例将导致FC 解决方案比合并的SSD和SATA解决方案便宜五倍。 本发明针对解决上述弓I用的问题。

发明内容
本发明提出一种用于在宽松定义的并且改变的环境中的虚拟化的多层级存储结构中管理数据布置的方法。每个物理存储介质被分配基于其读取I/O速率访问密度的层级等级。本发明包括组织严密的(top down)方法,其基于从虚拟化引擎采集的数据与每个离散虚拟存储池的读取I/O能力和空间容量相比较以便确定是否存在重新排列层级 (re-tiering)情况,以及深度(drill-in)分析算法,其基于有关读取I/O访问密度以便识别在离散虚拟存储池中容纳的混合工作量中哪个数据应该正确排列层级。本方法操作离散存储虚拟池以及存储虚拟盘等级,并且利用在多数聚集混合工作量中出现的机遇性互补工作量简档。本方法显著地降低将要通过在块或存储虚拟盘等级的微分析生成的重新排列层级动作的量,并且提供更加经济的推荐。基于组织严密的尝试分析存储资源的行为,该方法检测工作量重新排列层级合适的情况,并且提供重新排列层级(向上或向下)推荐。所建议的重新排列层级/正确排列层级动作可以被存储管理员分析,用于验证或者自动传给虚拟化弓I擎用于虚拟盘迁移。该方法还包括覆盖服务质量问题的写入响应时间组件。该方法使用基于由存储管理员定义的阈值的警报。该处理包括虚拟化的存储架构的结构化以及可重复评估、导致数据工作量重新排列层级动作的处理流程。该处理还包括结构化流程用于分析写入响应时间服务质量警报,判断是否需要重新排列层级以及识别应该对哪个数据工作量重新排列层级。根据本发明,提供了一种如在所附独立权利要求中所描述的方法和系统。在所附从属权利要求中定义进一步实施例。现在将参照附图,以优选实施例和示例的方式描述本发明的前述的和其它目标、 模块以及优点。


图1示出了其中可以实施本发明的存储区域网络的示例;图2示出了块虚拟化的简单视图;图3示出了其中可以实施本发明的虚拟化引擎的组件;图4示出了根据本发明的用于正确排列层级的存储排列层级分析器(START)的组件;图5图示了在正确排列层级处理的实施例中使用的优选数据服务模型维数;图6图示了使用的存储数据服务技术和经济领域;图7A、7B、7C和7D示出了用于存储池的使用的技术领域中混合数据工作量的实际情况的示例;图8图示了本发明所使用的三维模型的读取I/O速率密度;图9示出了由不同读取I/O速率密度的两个数据工作量组成的数据的读取I/O速率密度并且图示了适用的热类比;图10示出了在移除组成数据工作量之一时怎样修改混合工作量的读取I/O速率密度;图11示出了支持本发明的基于阈值的警报系统;图12提供了由于其涉及读取I/O速率密度和空间应用的支持本发明中描述的方法的处理流程;以及图13提供了由于其涉及写入I/O响应时间警报的分析的支持方法的实施例的处
理流程。
具体实施例方式本发明提出使用虚拟化引擎以及分析器组件,该虚拟化引擎具有数据和数据的位置两者的知识,该分析器组件用于识别应受数据重新排列层级并且推荐实际数据重新排列层级动作的情况。参照图1,示出了具有若干主机应用服务器102所附接的SAN 100。这些可以是许多不同的类型,典型地一些数量的企业服务器,以及一些数量的用户工作站。还附接到SAN(经由盘冗余阵列(RAID))的是各种等级的物理存储器。在本示例中,存在三个等级的物理存储器层级1,其可以是例如诸如IBM 系统存储器DS8000 的企业级存储器;层级2,其可以是中间范围存储器,诸如配备FC盘的IBM 系统存储器 DS5000;以及层级3,其可以是低端存储器,诸如配备串行先进技术附件(SATA)驱动器的 IBM 系统存储器DS4700。典型地,每个M盘(MDisk)与单个层级对应并且每个RAID阵列101属于单个层级。每个RAID控制器103可以控制属于不同层级的RAID存储器。除了应用不同层级于不同的物理盘类型以外,还可以将不同层级应用于不同的RAID类型;例如,可以将RAID-5阵列放置于比RAID-O阵列更高的层级。SAN通过位于所有SAN数据的数据路径中的存储器虚拟引擎104被虚拟化,并且向主机服务器和工作站102呈现虚拟盘106a至106η。这些虚拟盘由横跨三个层级的存储设备提供的容量构成。虚拟化引擎104包括多个节点110 (示出了四个)之一,该多个节点向主机提供虚拟化、高速缓存和复制服务。典型地,节点成对地部署并且构成节点的集群(cluster),其中每对节点已知为输入/输出(I/O)组。由于存储器附接到SAN,它被添加到各种存储池,每个由RAID控制器103控制。每个RAID控制器向虚拟化引擎呈现SCSI (小型计算机系统接口)盘。所呈现的盘可以通过虚拟化引擎管理,并且被称为被管理盘或M盘。这些M盘被划分成扩展区(extent),固定大小块的可使用容量,其从每个M盘的开始到结束顺序地标号。可以连接、剥去(strip)拆散这些扩展区,或者可以使用任何期望的算法来产生通过节点呈现给主机的更大的虚拟盘 (VDisk)。在被管理盘组或MDG 108中可以集合M盘Ml、M2. . . M9,典型地通过诸如性能、RAID 等级、可靠性、制造商等的因素体现特征。根据优选实施例,如图1所示,MDG中的所有M盘表示相同层级等级的存储器。在虚拟化存储架构中可以有相同层级的多MDG,每个都是离散虚拟存储池。虚拟化引擎将虚拟盘的逻辑块地址(LBA)转化到V盘的扩展区,并且映射V盘的扩展区到M盘扩展区。图2示出了从V盘到M盘的映射的示例。将V盘A的每个扩展区映射到被管理盘Ml、M2或M3之一的扩展区。可以从由每个节点存储的元数据创建的映射表显示一些被管理盘扩展区未被使用。这些未使用的扩展区对于创建新的V盘、迁移、扩展等可用。典型地,创建并分发虚拟盘使得企业级服务器初始地使用企业级存储器或者基于应用所有者需求。这不能通过实际数据访问特征来完全诠释。本发明提供一种使用结构化正确排列层级处理来识别更好的数据布置情况的方法。本发明支持用于应用的不同的并且更便宜的初始数据布置。例如,可以在层级2存储介质中释放用于所有应用的初始数据布置,并且本发明将基于整体虚拟化存储结构的实际情况来支持这个数据的部分或全部的重新排列层级。为此,除了用于跟踪被管理盘扩展区向虚拟盘的映射的元数据以外,还监控向每个扩展区的访问率。当对任何给出的扩展区读取并写入数据时,使用访问计数更新元数据。现在将参照图3来描述I/O流。如图3所示,节点110的虚拟化引擎包括以下模块SCSI前端302、存储器虚拟化310、SCSI后端312、存储器管理器314以及事件管理器 316。SCSI前端层从主机接收I/O请求;进行LUN映射(即,在虚拟盘A和C之间的LBA 到逻辑单元数目(LUN)(或扩展区));以及将SCSI读取和写入命令转化成节点的内部格式。SCSI后端处理通过上面的虚拟化层向其发送的对被管理盘的请求,并且将命令寻址到 RAID控制器。
I/O堆栈可以还包括诸如远程复制、闪速复制或高速缓存的其它模块(未示出)。 高速缓存通常在虚拟化引擎和RAID控制器等级二者呈现。图3中显示的节点属于向其分配V盘A和B的I/O组。这意味着该节点向V盘A 和B呈现接口用于主机。被管理盘1、2和3还可以与分配给其它节点的其它虚拟盘对应。事件管理器316管理元数据318,其包括用于每个扩展区的映射信息以及用于扩展区的层级等级数据和访问值。这个元数据对于虚拟化层310和存储器管理器314也是可用的。现在考虑来自主机的写入请求350的接收,所述写入请求350包括请求所指向的虚拟盘的ID以及应当对其进行写入的LBA。在接收到写入请求时,前端将指定LBA转化为虚拟盘的扩展区ID (LUN),假设这是V盘A的扩展区3 (A-3)。虚拟化组件310使用以图2 中映射表的形式所示的元数据,来映射扩展区A-3到M盘2的扩展区6 (M2-6)。写入请求然后经由SCSI后端312被传给M盘2的有关控制器,并且数据被写入到扩展区M2-6。虚拟化层向事件管理器发送消息304,指示已经请求向M盘2的扩展区6的写入。事件管理器然后关于扩展区M2-6更新元数据以便指示该扩展区现在已满。事件管理器还更新用于该扩展区的元数据中的访问值。这可以通过重置元数据中的计数值,通过存储在其发生写入作为访问值的时间来实现。事件管理器向虚拟化组件返回消息304,用于指示已经更新了元数据以便反映写入操作。现在将参照图4来描述允许正确排列层级动作的用于正确排列层级的存储排列层级分析器(START)管理器组件。START执行SAN活动的分析以便识别应受正确排列层级动作的情况并且准备适当的V盘迁移动作列表。首先,数据采集器401通过周期性地采集在虚拟化引擎中包括的拓扑结构数据以及每个LUN和V盘的访问活动,用作存储器资源管理器。这可以包括写入和读取活动计数、响应时间和其它监控数据。这可以包括虚拟化引擎的后端和前端活动数据以及内部测量,如队列等级。数据采集器周期性地(优选周期是典型地每15分钟)在其本地存储库(i^pository)中插入该一系列数据,并且将其存储更长时间段(典型地6个月)。数据聚集器402通过访问数据采集器存储库(使用诸如一批报告的机制)来处理覆盖更长时间段的SAN数据(比方说一天例如96个样本,每个15分钟),并且产生包括最小、最大、平均、形状因素...的聚集值用于由SAN的虚拟化引擎管理的V盘和MDG。可以将由数据聚集器产生的数据与包含对于每个MDG的I/O处理能力的SAN模型元数据403相比较。该I/O处理能力可以基于盘阵列制造商规格、盘阵列建模活动特性 (figure)(诸如由Disk Magic应用软件产生的)、或者被RAID控制器控制的盘一般接收的工业科技能力特性,它们的数目、它们的冗余建立以及在RAID控制器等级的高速缓存适配率(hit ratio)值。还可使用其它I/O处理建模能力算法。由数据聚集器产生的数据还可以与每个MDG的总空间容量相比较,MDG可以存储于SAN模型元数据中或者从虚拟化引擎采集。数据分析器组件404执行这些比较并且基于由存储器管理器设置的阈值发出正确排列层级警报。这些警报覆盖没有平衡应用的以及对其需要考虑V盘迁移动作的MDG。对于警报中的任何MDG,数据分析器提供以读取访问率密度排列的由MDG容纳的所有V盘的深入视图。这个视图允许“热”V盘和“冷”V盘的立即识别。根据警报的类型,该深入视图轻易地指向V盘,其向另一层级的迁移将解决该MDG警报。通过对这些V盘正确排列层级,源MDG将看到由该MDG容纳的混合工作量的读取访问率密度值变得更加接近 MDG固有能力,使得这个MDG使用关于其使用领域更好地平衡。对于所有MDG,数据分析器计算净(net)读取I/O访问密度作为MDG剩余读取I/ 0处理能力除以MDG剩余空间容量的比例。读取I/O访问密度将等于净读取I/O访问密度的工作量将被考虑作为用于该MDG在其当前状态中的互补工作量。根据警报的类型由“热”或“冷”V盘组成的V盘迁移动作列表,由数据分析器组件准备并且可以被传给虚拟引擎用于如405所示的或者自动地或者在存储器管理器验证以后在SAN中实施。可以使用以下算法来确定对其应该重新排列层级特定V盘的MGD目标。首先,其剩余空间容量或读取I/O处理能力不足以容纳V盘痕迹(footprint) (V盘痕迹等于用于该 V盘的空间和读取I/O需求)的MDG被消除作为可能的目标。然后,选择与V盘读取I/O访问密度最接近的净读取I/O访问密度的MDG(例如,V盘工作量简档是与MDG在其当前状态中互补的工作量)。为警报中的MDG中的V盘重复这个操作,直至重新排列层级的V盘的累积相关权重解决该警报。还对于所有警报中的MDG重复这个操作。可以考虑其它算法以便在警报解决处理中协助。图5图示了在本发明特定实施例中使用的三维模型。在基于IBM TotalStomge SAN虚拟化控制器(SVC)的实施例中,通过“被管理盘组”(MDG)联合一系列在存储阵列上容纳的被管理盘(LUN)并且在“剥离模式”通过SVC层被访问而提供了后端存储服务。如通过数据处理主机所见的前端存储服务由V盘所提供。多V盘的混合工作量,例如在给出的MDG中容纳的所有V盘,也可以根据这个三维模型描述。图6图示了诸如RAID阵列、MDG、LUN或V盘的存储服务的应用的两个主要领域。第一领域是存储服务的功能领域。其位于存储池的总空间(以M字节方式)的边界内,其最大读取I/O速率处理能力和其最大可接受响应时间由存储管理员定义。第二领域是存储服务的使用的经济领域。这是位于先前领域以内的位于靠近最大读取I/O能力和存储空间的边界的在可接受响应时间限制以内的减少容量。图7A-7D提供了在两个使用领域内的工作量情况的图示示例。在图7A中,数据占用全部存储容量,I/O处理能力被良好使用并且写入响应时间值不成问题。数据布置和存储池之间存在良好匹配。在图7B中,I/O处理能力几乎被全部使用,仅仅非常部分地分配存储容量并且写入I/O响应时间值不成问题。进一步容量分配很有可能造成I/O限制。移动所选择数据到更高I/O能力的存储池将是合适的。在图7C中,数据占用几乎全部存储容量,I/O处理能力未充分利用并且写入I/O响应时间值不成问题。存在使用很有可能更加经济的更低I/O处理能力的存储池的机会。在图7D中,存储容量被几乎完全分配,I/O处理能力良好平衡,然而,写入I/O响应时间值过高。有需要在判断任何动作之前评定高响应时间值是否造成工作量SLA(典型地成批流逝时间)的风险。图8介绍了读取I/O速率访问密度因素,其可以被评估用于存储设备(在容量方面)或诸如应用或应用的部分(在一个V盘活多V盘中容纳)的数据工作量。以下方程提
8供附加细节。 对于MDG 最大访问密度=I/O处理能力/总存储容量 对于应用最大访问密度=实际最大I/O速率/分配的存储空间 对于V盘最大访问密度=实际最大I/O速率/分配的存储空间读取I/O速率访问密度以10/秒/兆字节的方式测量,并且当使用其中高访问密度应用为“热”存储工作量并且第访问密度应用为“冷”存储工作量的热量比喻时,可以轻易理解其代数。如图9和10中所图示的,应用于温水(热+冷)的加权热量方程应用于“热” 和“冷”数据工作量。如果在MDG中容纳的所有V盘的聚集工作量“靠近”MDG理论访问密度并且该MDG 容量几乎全部使用,则该MDG在其经济地域内操作。本发明提出针对由与不同访问密度的其它MDG交换工作量而产生优化MDG使用的处理。本发明的优选实施例是使用读取I/O速率密度以便在各种层级中将MDG容量分类。在层级IRAID控制器上容纳的MDG具有在所有 MDG中最高的读取I/O速率密度,而最低读取I/O速率访问密度的MDG将属于更低等级的层级(根据虚拟化结构中的层级分组典型地层级3-5)。当基于由存储器管理员定义的阈值发出警报是通过数据分析器实施本发明的优选实施例。以下列出了三个不同的警报1.存储容量几乎全部分配在这种情况下,分配给V盘的被管理盘组容量接近 (以%形式)MDG存储器容量。2. IO容量几乎全部使用在这种情况下在后端盘(被管理盘组)的最大读取I/O 速率接近(以%形式)最大理论值。3. “高”响应时间值在这种情况下当与写入指令的总数相比较时在SVC高速缓存中保留的写入指令的数量“重要”(以%形式)。这个现象揭示了写入响应时间的增加,其可能造成对于成批工作量的SLA目标值的破坏。图11示出了这三个警报阈值,如它们指向MDG使用领域。存储池优化的驱动原理如下1.如果“分配的容量”接近“最大容量”并且“读取I/O活动”比“读取I/O能力,, 显著地更低,则“读取I/O能力”没有完全平衡。那么,必须从离散虚拟存储池(即,MDG)中移除最低访问率密度的应用数据以便释放空间来容纳更高访问率密度的应用数据。应该将被移除的最低访问率密度的应用数据发送至更低读取访问率密度能力的存储池。这个处理称为“向下排列层级”。2.如果“读取I/O活动”接近“读取I/O能力”并且“分配的容量”比“最大容量”显著地更低,存储池的容量不平衡并且添加更多应用数据很有可能产生不期望的性能限制。 处理这个情况需要从存储池中移除最高访问率密度的应用数据以便释放读取I/O能力。这个容量将在以后用来容纳更低访问率密度的应用数据。移除的应用数据(最高访问率密度的)可以需要被发送至更高“读取I/O密度能力”的存储池。这个处理称为“向上排列层级”。3.当写入高速缓存缓存被填满时“写入响应时间”值增加并且这可将应用服务等级协定(SLA)置于风险中。在这种情况下,有必要执行趋势分析以便计划未来“写入响应时间”值并且评定释放将要危及应用SLA。如是这种情况,相关应用数据(V盘)必须被“向上排列层级”至更高写入I/O能力的存储池。如果SLA不处于风险中,应用数据布置在其当前存储池中必须保持不改变。4.如存储池处于其中所有空间没有完全分配并且其读取I/O活动不接近“读取I/ 0能力”的中间状态,不需要考虑任何动作。即使在MDG中呈现热工作量,其行为可以通过冷工作量平衡造成在MDG能力中的平均工作量。这个机遇性情况显著地降低正确排列层级的假想量,其可能被微分析尝试不适当地推荐。5.如果“读取I/O活动”接近“读取I/O能力”并且“分配的容量”几乎等于“最大容量”,存储池容量良好平衡只要“写入响应时间”值保持在可接受限制内并且两个警报彼此补偿。6.当确定哪个V盘应该被正确排列层级时,绝对读取I/O速率V盘实际值不能“照原样”使用,这是因为在虚拟化引擎等级出现的高速缓存。这个高速缓存允许在不招致后端读取指令的情况下供应读取I/O请求给前端数据处理器。本发明的方法使用在MDG中容纳的前端聚集工作量相比较的每个V盘的相关读取I/O速率活动以便在“热”和“冷”之间排列V盘并且进行实际重新排列层级判断。本领域技术人员将清楚的是,本发明的方法可以合适地在包括执行方法的步骤的部件的逻辑装置中实施,并且这样的逻辑部件可以包括固件组件的硬件组件。可以通过支持如现在参照图12所描述的处理流程的微处理器来支持这个优化尝试的实现。步骤1200检验分配的存储容量是否大于被管理盘组的总容量的90%,其中存储器管理员可以根据本地策略建立阈值(90% )。如果结果为否,则执行测试(步骤1202)来确定实际读取I/O速率是否大于MDG 的读取I/O能力的75%,其中存储器管理员可以根据本地策略建立阈值(75% )。-如果结果为否,意味着池处于中间状态,不执行进一步动作并且处理去往步骤 1216。-如果测试1202的结果为是,意味着在没有消耗全部空间的情况下聚集工作量已经正在使用读取I/O能力的高百分比,存在添加其它工作量可能使读取I/O能力饱和,造成工作量SLA承受艰难的高概率。因此,在步骤1206中推荐向上排列层级操作。下一步,在步骤1208,通过选择当前在MDG中容纳的最高访问密度的V盘,并且向上排列层级到V盘对其是良好的互补工作量的另一 MDG来执行向上排列层级。在这个V盘正确排列层级操作之后,源MDG将看到其读取访问率密度实际值减少并且变得与其固有能力接近,使得这个MDG 使用关于其使用领域更好地平衡。处理然后去往步骤1216。回到在步骤1200上执行的测试,如果结果为是,则执行与步骤1202类似的测试。-如果结果为是,意味着聚集工作量正在使用高百分比的读取I/O能力并且消耗了大部分空间,MDG正在其经济邻域操作,不执行进一步动作,并且处理停止。-如果结果为否,意味着读取I/O能力未充分利用并且已经消耗了大部分空间,那么,MDG读取I/O能力很有可能保持未充分利用。MDG中的V盘将更加经济地容纳在更低层级的MDG上。因此在步骤1212推荐向下排列层级操作。下一步,在步骤1214上,通过选择 MDG中的最低访问密度的V盘执行向下排列层级,并且向下排列层级到V盘对其是良好互补工作量的另一 MDG。在这个V盘正确排列层级操作之后,源MDG将看到起读取访问率密度实际值增加并且变得与其固有能力更加接近,使得这个MDG使用关于其使用领域更好地平衡。处理然后去往步骤1216。最后,在步骤1216上,可用MDG存储空间被分配给互补访问密度简档的其它工作量,并且处理回到步骤1200来分析后面的MDG。当分析了所有MDG时,处理将等待直至下一评估时段,以便对于列表的第一 MDG在1200中重启。可将分析/警报方法集成于可重复存储管理处理中作为定期监控任务。例如,每天,本方法的系统实现方式可以产生存储管理仪表板,其对于每个MDG报告,与当适用时具有突出警报的能力和容量和写入响应时间情况相对的实际值。仪表板将伴随以提供由每个 MDG容纳的V盘的行为的深入视图,这个视图以读取I/O访问率密度和可能由存储管理员评估的用于向虚拟引擎传递的正确排列层级运动列表来排列。图13示出了用于照顾写入I/O服务质量方面的分析/警报方法的流程图。在该图中,以另一写入I/O速率指示符(indicator)替换写入I/O响应时间触发。这个指示符基于前端写入高速缓存延迟I/O速率和总写入I/O速率值之间的比率。写入高速缓存延迟 I/O操作是在虚拟引擎的写入高速缓存中保留的写入I/O操作,这是因为后端存储池由于饱和而不能接受它们。当写入高速缓存延迟I/O操作的量到达总写入I/O活动的显著百分比时,前端应用很有可能变慢并且响应时间增加。这个指示符作为重排列层级警报的使用是本发明的另一实施例。在步骤1300,执行测试来检验前端写入高速缓存延迟I/O速率是否已经到达阈值,其中该阈值由存储管理员根据本地策略建立。如果结果为否,则处理去往步骤1320。如果结果为是,那么在步骤1302跟踪造成警报的V盘至使用这些V盘的应用。下一步,在步骤1303,采集用于应用成批时间流逝值[A]和成批流逝时间SLA目标[T]的值。 典型地在IT操作人员负责下,通过应用性能指示符将这些值外部地提供至本发明。下一步在步骤1304,新测试通过将A和T与安全阈值等级相比较来检验应用SLA (典型地成批流逝时间目标)是否处于风险。如果结果为否,意味着A显著地比T更低,那么观察到的高响应时间值对于成批持续时间不重要,在步骤1306上不执行进一步动作,并且处理去往步骤1320。如果结果为是,意味着A接近T,那么在步骤1308,使用例如TPC图形报告作为实施例执行写入I/O响应时间和写入I/O速率值的趋势分析。在步骤1310继续处理,其中执行新的测试来检验应用等待写入I/O操作的总时间是否为增加值(这个总写入时间等于所有警报中的V盘的写入I/O响应时间与写入I/O速率的乘积的所有采样时段的和)-如果结果为否,意味着在成批处理期间应用等待写入I/O操作的总时间没有随时间增加,并且因此没有劣化成批持续时间SLA,那么在步骤1312上不执行进一步动作,并且在步骤1320接着处理。-如果结果为是,意味着在成批处理期间应用等待写入I/O操作的总时间增加,并且可能造成成批持续时间变得有风险,处理去往步骤1314,其中使用趋势分析结果来推演 (例如使用线性建模)未来的成批持续时间值。
11
处理在步骤1316继续来检验SLA目标(T)是否在短期未来有风险。如果结果为否,处理去往步骤1312,否则如果结果为是,处理去往步骤1318以对一些(或所有)V盘进行向上排列层级,为具有更高I/O能力的MDG创建应用SLA风险。最后,在步骤1320,将可用的MDG存储容量分配给互补访问密度简档的其它工作量,并且处理返回到步骤1300以便分析接下来的MDG。当分析了所有MDG时,处理将等待直至下一评估时段,以对于列表的第一 MDG在1300中重启。图12和13中描述的分析/警报方法还可用于体现I/O简档未知的新工作量的特征。在某时段(例如一个月)内可以在“保育”MDG中容纳这个工作量用于其I/O行为测量,以便采集足够行为数据。在该时段以后,应用V盘可以基于由数据分析器组件提供的空间需求、读取I/O需求和读取I/O密度值来正确排列层级。这个“保育”处理可以以低开销代替在决定将使用哪个存储器层级以及哪个MDG最合适之前所需的对复杂存储性能估计作业的需要。那么将通过定期监控任务来处理应用行为中的未来改变,以确保应用需求和存储结构的对准而不需要昂贵的存储工程师的干预。在可替换实施例中,当与虚拟化存储结构相连接的后端盘阵列需要去委托 (de-commisioning)时,本发明的分析/警报方法可以用来重新定位应用数据。在这种情况下,在数据分析器组件可用的数据可以被用来判断为每个逻辑存储单元应该使用哪个存储层级以及哪个离散存储池(例如,MDG)对于每一个逻辑存储单元最合适。在另一实施例中,当不与虚拟化存储结构连接的盘阵列需要去委托时,本发明的分析/警报方法可以用来重新定位应用数据。在这种情况下,在将虚拟逻辑存储单元重新定位到其它离散虚拟存储池之前,盘可能与虚拟化存储架构相连接并且经历保育特征化处理。可替代地,该处理可能包括使用在盘阵列上采集的已存在性能数据,并且使用由数据分析器组件提供的数据在虚拟化存储结构上重新安装应用。本领域技术人员将要理解的是,虽然已经关于前述示例实施例描述了本发明,但是本发明不限于此,并且存在许多落入本发明的范围内的可能的变形和修改。本发明的范围包括在此公开的特征的结合的任何新颖特征。申请人在此给出这样的通知,在本申请进行期间,在从本申请导出的任何其它申请的这样特征或特征的结合可以形成新的权利要求。具体地,参照所附权利要求,可以以任何适当的方式结合各个独立权利要求的特征而不是仅仅以权利要求中列举的特定结合。为了避免疑惑,如在此贯穿描述和权利要求使用的术语“包括”将不被解释为“仅
由......组成”的意思。本领域技术人员将要了解的是,虽然本发明通过使用SAN量控制
器词语关于前述示例实施例已经描述,但是本发明不限于此,并且存在描述MDG或V盘的许多可能的措辞。例如,MDG可以被称为存储池、虚拟存储池或离散虚拟存储池,并且V盘被称为虚拟存储逻辑单元。
权利要求
1.一种用于管理网络中的数据存储的方法,所述网络包括通过存储虚化拟引擎与多个物理存储介质耦接的多个主机数据处理器,所述存储虚拟化引擎包括用于在虚拟盘(V盘) 到被管理盘(M盘)之间映射的映射单元,其中相同层级等级的多个被管理盘被分组以便形成离散虚拟存储池(MDG),所述方法包括 存储描述每个离散虚拟存储池的空间容量和量化读取I/O能力的元数据; 周期性地从虚拟化引擎中采集关于虚拟盘的存储使用、读取I/O和写入I/O活动的 fn息; 聚集采集的信息; 将聚集的数据与每个离散虚拟存储池的元数据相比较;以及 根据比较步骤的结果,基于阈值达到来生成虚拟盘的重新排列层级动作的列表。
2.如权利要求1所述的方法,其中采集的读取和写入I/O信息能够为速率访问、响应时间、后端和/或前端活动数据、和/或队列等级之一。
3.如权利要求1或2所述的方法,其中采集步骤还包括以下步骤在各个时间时段将采集的信息存储到本地存储库。
4.如权利要求1至3中任意一项所述的方法,其中聚集的数据包括V盘的最小、最大、 平均、形状因素的值。
5.如权利要求1至4中任意一项所述的方法,其中比较步骤还包括以下步骤检验分配的存储容量是否大于预定义的容量阈值。
6.如权利要求5所述的方法,其中将预定义的容量阈值设置到离散虚拟存储池的总容量的90%。
7.如权利要求5或6所述的方法,还包括以下步骤检验实际读取I/O速率是否大于预定义的能力阈值。
8.如权利要求8所述的方法,其中将预定义的能力阈值设置到读取I/O能力的75%。
9.如权利要求1至8中任意一项所述的方法,其中比较步骤还包括以下步骤检验写入高速缓存延迟I/O速率是否大于实际写入I/O速率值的预定义的百分比阈值。
10.如权利要求1至9中任意一项所述的方法,其中由存储管理员建立阈值。
11.如权利要求1至10中任意一项所述的方法,其中生成重新排列层级动作的列表的步骤还包括以下步骤生成包括虚拟存储池能力、容量、实际使用以及发出的警报的存储池仪表板。
12.如权利要求1至11中任意一项所述的方法,其中生成重新排列层级动作的列表的步骤还包括以下步骤生成以相关读取I/O速率密度排列的V盘的深入视图。
13.一种用于管理网络中的数据存储的系统,所述网络包括通过存储虚化拟引擎与多个物理存储介质耦接的多个主机数据处理器,所述存储虚拟化引擎包括用于在虚拟盘(V 盘)到被管理盘(M盘)之间映射的映射单元,相同层级等级的多个被管理盘被分组以便形成离散虚拟存储池(MDG),所述系统包括用于实施权利要求1至12任意一项的方法的步骤的部件。
14.一种计算机程序,包括用于当在合适的计算机设备上执行所述计算机程序时执行如权利要求1至12中任意一项的方法的步骤的指令。
15.一种计算机可读介质,在其上具有编码如权利要求14所述的计算机程序。
全文摘要
一种用于在宽松定义的并且改变的环境中的基于SAN的虚拟化多层级存储结构中使用的存储管理方法。每个物理存储介质基于其读取I/O速率访问密度被分配层级等级。本发明包括组织严密的方法,其基于从虚拟化引擎采集的数据与每个离散虚拟存储池的读取I/O能力和空间容量相比较以便确定是否存在重新排列层级情况,以及深度分析算法,其基于有关读取I/O访问密度以便识别在离散虚拟存储池中容纳的混合工作量中哪个数据应该正确排列层级。
文档编号G06F3/06GK102341779SQ201080010236
公开日2012年2月1日 申请日期2010年1月12日 优先权日2009年3月2日
发明者P.萨布罗尼尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1