在多层级虚拟化存储结构中管理存储数据的布置的方法、 系统和计算机程序产品 技术领域 本发明涉及数据处理领域, 并且具体地涉及多层级虚拟化存储结构中的存储管理 和数据布置优化。
背景技术 企业面临由它们的存储需要的快速增长、 管理存储的增加复杂度以及对存储的高 可用性的需求造成的主要挑战。存储区域网络 (SAN) 技术使得能够通过存储池 (pooling) 从主机计算机单独地构造存储系统, 导致改进的效率。
还可以使用为用户屏蔽物理存储器的复杂度的存储管理技术、 存储虚拟化。块虚 拟化 ( 有时也称作块聚集 ) 给服务器提供实际存储数据的物理存储器 ( 诸如盘驱动器、 固 态盘、 以及带驱动器 ) 的逻辑视图。逻辑视图可以包括将可用存储空间划分 ( 或聚集 ) 而 成的许多虚拟存储区域, 而不用考虑实际存储器的物理布局。服务器不再查看特定物理目 标, 而是查看可以专为它们使用的逻辑量 (volume)。服务器向虚拟存储区域发送它们的数 据, 就像是虚拟存储区域是它们的直接附接所有物。
虚拟化可在量的等级、 单独文件或者在表示盘驱动器内特定的位置的块的等级上 发生。可以在主机 ( 服务器 )、 和 / 或存储设备 ( 智能盘阵列 ) 内执行块聚集。
在数据存储中, 在一套存储层级中的精确数据布置 (placement) 的问题是最难以 解决的问题之一。层级存储是指定不同类别 (category) 的数据分配到不同类型的存储介 质以便减少总存储开销。类别可以基于所需保护的等级、 性能需求、 使用频率、 容量以及其 它考虑。
用于用户的布置的用户要求经常宽松地指定或者基于希望而不是精确的容量计 划。此外, 即使初始条件充足, 应用在贯穿它们的生命周期中也可经历激烈的数据访问改 变。 例如, 未来用户的数目难以预测的因特网应用的发布, 很有可能具有在给定时间与初始 配置值和 / 或计划的活动非常不同的实际数据访问行为。时间流逝, 该应用可能从引起数 据访问行为中上向改变的功能增强中获益。 随后, 所选择的功能可能变得不被使用, 因为他 们具有的功能被更新的应用接替导致在数据访问模式中的下向改变。 除了应用行为不确定 性以外, 单一应用内的数据访问行为可能完全不同类。 例如, 高度活跃的数据库日志和静态 参数表将呈现非常不同的数据访问模式的特征。全部跨越这些生命周期改变, 存储管理员 面临宽松指定的并且变化的环境, 其中不能认为用户技术输入是精确并且可信的, 从而采 用正确的数据布置判断。
与它们的冗余建立 (RAID 5、 RAID 10 等 ...) 相结合的、 在存储层级 ( 光纤信道 (FC)、 串联 AT 附件 (SATA)、 固态驱动器 (SSD)) 中使用的大量的存储技术在存储层级中造成 甚至更加复杂的应用数据布置判断, 其中每单位存储容量的代价在 SATA 和 SSD 之间可以在 从 1 到 20 的范围内。使用应用数据的正确层级现在对于企业在保持应用性能的同时降低 它们的开销是重要的。
在美国专利 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/O 速率访问密度的层 级等级。本发明包括组织严密的 (top down) 方法, 其基于从虚拟化引擎采集的数据与每 个离散虚拟存储池的读取 I/O 能力和空间容量相比较以便确定是否存在重新排列层级 (re-tiering) 情况, 以及深度 (drill-in) 分析算法, 其基于有关读取 I/O 访问密度以便识 别在离散虚拟存储池中容纳的混合工作量中哪个数据应该正确排列层级。
本方法操作离散存储虚拟池以及存储虚拟盘等级, 并且利用在多数聚集混合工作 量中出现的机遇性互补工作量简档。 本方法显著地降低将要通过在块或存储虚拟盘等级的 微分析生成的重新排列层级动作的量, 并且提供更加经济的推荐。
基于组织严密的尝试分析存储资源的行为, 该方法检测工作量重新排列层级合适 的情况, 并且提供重新排列层级 ( 向上或向下 ) 推荐。
所建议的重新排列层级 / 正确排列层级动作可以被存储管理员分析, 用于验证或 者自动传给虚拟化引擎用于虚拟盘迁移。
该方法还包括覆盖服务质量问题的写入响应时间组件。 该方法使用基于由存储管 理员定义的阈值的警报。该处理包括虚拟化的存储架构的结构化以及可重复评估、 导致数 据工作量重新排列层级动作的处理流程。该处理还包括结构化流程用于分析写入响应时 间服务质量警报, 判断是否需要重新排列层级以及识别应该对哪个数据工作量重新排列层
级。 根据本发明, 提供了一种如在所附独立权利要求中所描述的方法和系统。
在所附从属权利要求中定义进一步实施例。
现在将参照附图, 以优选实施例和示例的方式描述本发明的前述的和其它目标、 模块以及优点。
附图说明
图 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, 其可以是例如诸如 系统存储器 DS8000 的企业级存储器 ; 层级 2, 其可以是中间范围存储器, 诸如配备 FC 盘的 系统存储器 DS5000 ; 以及层级 3, 其可以是低端存储器, 诸如配备串行先进技术附件 (SATA) 驱动器的 系统存储器 DS4700。
典型地, 每个 M 盘 (MDisk) 与单个层级对应并且每个 RAID 阵列 101 属于单个层级。每个 RAID 控制器 103 可以控制属于不同层级的 RAID 存储器。除了应用不同层级于不同的 物理盘类型以外, 还可以将不同层级应用于不同的 RAID 类型 ; 例如, 可以将 RAID-5 阵列放 置于比 RAID-0 阵列更高的层级。
SAN 通过位于所有 SAN 数据的数据路径中的存储器虚拟引擎 104 被虚拟化, 并且向 主机服务器和工作站 102 呈现虚拟盘 106a 至 106n。这些虚拟盘由横跨三个层级的存储设 备提供的容量构成。
虚拟化引擎 104 包括多个节点 110( 示出了四个 ) 之一, 该多个节点向主机提供虚 拟化、 高速缓存和复制服务。 典型地, 节点成对地部署并且构成节点的集群 (cluster), 其中 每对节点已知为输入 / 输出 (I/O) 组。
由于存储器附接到 SAN, 它被添加到各种存储池, 每个由 RAID 控制器 103 控制。 每 个 RAID 控制器向虚拟化引擎呈现 SCSI( 小型计算机系统接口 ) 盘。所呈现的盘可以通过 虚拟化引擎管理, 并且被称为被管理盘或 M 盘。这些 M 盘被划分成扩展区 (extent), 固定 大小块的可使用容量, 其从每个 M 盘的开始到结束顺序地标号。可以连接、 剥去 (strip) 拆 散这些扩展区, 或者可以使用任何期望的算法来产生通过节点呈现给主机的更大的虚拟盘 (VDisk)。 在被管理盘组或 MDG 108 中可以集合 M 盘 M1、 M2...M9, 典型地通过诸如性能、 RAID 等级、 可靠性、 制造商等的因素体现特征。根据优选实施例, 如图 1 所示, MDG 中的所有 M 盘 表示相同层级等级的存储器。 在虚拟化存储架构中可以有相同层级的多 MDG, 每个都是离散 虚拟存储池。
虚拟化引擎将虚拟盘的逻辑块地址 (LBA) 转化到 V 盘的扩展区, 并且映射 V 盘的 扩展区到 M 盘扩展区。图 2 示出了从 V 盘到 M 盘的映射的示例。将 V 盘 A 的每个扩展区映 射到被管理盘 M1、 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 分钟 ) 在其本地存储库 (repository) 中插入该一系列数据, 并且将其存储更 长时间段 ( 典型地 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/ O 处理能力除以 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 图 示 了 在 本 发 明 特 定 实 施 例 中 使 用 的 三 维 模 型。 在 基 于 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 盘中容纳 ) 的数据工作量。以下方程提供附加细节。
●对于 MDG : 最大访问密度= I/O 处理能力 / 总存储容量
●对于应用 : 最大访问密度=实际最大 I/O 速率 / 分配的存储空间
●对于 V 盘 : 最大访问密度=实际最大 I/O 速率 / 分配的存储空间
读取 I/O 速率访问密度以 IO/ 秒 / 兆字节的方式测量, 并且当使用其中高访问密 度应用为 “热” 存储工作量并且第访问密度应用为 “冷” 存储工作量的热量比喻时, 可以轻易 理解其代数。如图 9 和 10 中所图示的, 应用于温水 ( 热 + 冷 ) 的加权热量方程应用于 “热” 和 “冷” 数据工作量。
如果在 MDG 中容纳的所有 V 盘的聚集工作量 “靠近” MDG 理论访问密度并且该 MDG 容量几乎全部使用, 则该 MDG 在其经济地域内操作。本发明提出针对由与不同访问密度的 其它 MDG 交换工作量而产生优化 MDG 使用的处理。本发明的优选实施例是使用读取 I/O 速 率密度以便在各种层级中将 MDG 容量分类。在层级 1RAID 控制器上容纳的 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/ O 能力” 的中间状态, 不需要考虑任何动作。即使在 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, 其中使用趋势分析结果来推演 ( 例如使用线性建模 ) 未来的成批持续时间值。
处理在步骤 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 盘被 称为虚拟存储逻辑单元。