数据块迁移的制作方法

文档序号:15384439发布日期:2018-09-08 00:24阅读:225来源:国知局
目前,机构可能需要处理大量的业务数据,其可能范围从几太字节(terabytes)至数拍字节(petabytes)的数据。数据的损失或者不能访问数据可能以各种方式影响企业,诸如潜在业务的损失和较低的客户满意度。附图说明为了更好地理解方案,现在将仅以示例性的方式参考附图来描述示例,其中:图1是用于迁移数据块的示例性计算环境的示意图;图2是用于迁移数据块的示例性数据存储系统的框图;图3是用于迁移数据块的示例性数据存储系统的框图;图4是用于迁移数据块的示例性方法的框图;以及图5是用于迁移数据块的包括机器可读存储介质中的指令的示例性系统的框图。具体实施方式目前,企业可能需要管理相当大量的数据。确保关键任务数据持续可用可能是数据管理流程的令人满意的方面。计划升级其信息技术(it)基础架构、特别是存储系统的机构可能由于各种原因,例如满足服务水平协议(sla),而期望在数据迁移过程中其数据的停机时间为零。因此,确保当数据从源数据存储设备向目的数据存储设备迁移时数据可用性没有中断可能是数据管理系统令人满意的方面。在主机应用和迁移应用之间可以共享带宽的联合环境中,该任务可能会带来进一步的挑战。为了解决此问题,本公开描述了用于迁移数据块的各种示例。如这里使用的,“数据块”可对应于物理磁盘空间的特定数量的字节。在一个示例中,可以识别用于从源数据存储设备到目的数据存储设备迁移的数据块。可以为每个该数据块确定迁移优先级。在一个示例中,该确定可包括基于与主机系统相关的数据块的各自的输入/输出(i/o)操作的分析来为所述数据块中的每一个确定多个参数。该参数可作为输入提供给人工神经网络引擎的输入层。该输入可由该人工神经网络引擎的隐藏层处理。该人工神经网络引擎的输出层可提供输出,其可包括例如用于每个该数据块的迁移优先级。图1是用于迁移数据块的示例性计算环境100的框图。计算环境100可包括主机系统102、源数据存储设备104和目的数据存储设备106。虽然在图1中示出了一个主机系统、一个源数据存储设备和一个目的数据存储设备,但是本公开的其他示例可包括多于一个主机系统、多于一个源数据存储设备和/或多于一个目的数据存储设备。主机系统102可以是能够执行机器可读指令的任意类型的计算设备。主机系统102的示例可以包括但不限于服务器、台式电脑、笔记本电脑、平板电脑、瘦客户机、移动设备、个人数字助理(pda)、平板手机等。在一个示例中,主机系统102可包括一个或多个应用,例如电子邮件应用和数据库。在一个示例中,源数据存储设备104和目的数据存储设备106可以分别是内部存储设备、外部存储设备或网络附属存储设备。源数据存储设备104和目的数据存储设备106的一些非限定示例可以分别包括硬盘驱动器、存储盘(例如,cd-rom、dvd等)、存储磁带、固态硬盘、usb驱动、串行高级技术附件(sata)磁盘驱动器、光纤通道(fc)磁盘驱动器、串行连接scsi(sas)磁盘驱动器、磁带驱动器、光盘库等。在一个示例中,源数据存储设备104和目的数据存储设备106可以分别是直连式存储(das)设备、网络附属存储(nas)设备、廉价磁盘冗余阵列(raid)、数据档案存储系统或存储区域网络(san)上的基于块的设备。在另一示例中,源数据存储设备104和目的数据存储设备106可以分别是存储阵列,其可包括一个或多个存储设备(例如,硬盘驱动器、固态硬盘等)。在另一示例中,源数据存储设备104(例如,磁盘驱动器)和目的数据存储设备106(例如,磁盘驱动器)可为同一数据存储系统(例如,存储阵列)的一部分。在一个示例中,源数据存储设备104和目的数据存储设备106提供的物理存储空间可以分别被呈现为逻辑存储空间。这种逻辑存储空间(也称为“逻辑容量”、“虚拟磁盘”或“存储容量”)可使用“逻辑单元”识别。在另一示例中,源数据存储设备104和目的数据存储设备106提供的物理存储空间可以分别被呈现为多个逻辑容量。如果源数据存储设备104(或目的数据存储设备106)为物理磁盘,逻辑单元可以指整个物理磁盘或者物理磁盘的一个子集。在另一示例中,如果源数据存储设备104(或目的数据存储设备106)为包括多个存储磁盘驱动器的存储阵列,则由磁盘驱动器提供的物理存储空间可以聚合为单个逻辑存储空间或多个逻辑存储空间。主机系统102可例如经由网络(未示出)与源数据存储设备104和目的数据存储设备106通信。计算机网络可以是无线或有线网络。计算机网络可包括例如局域网(lan)、无线局域网(wan)、城域网(man)、存储区域网(san)、校园局域网(can)等。进一步地,计算机网络可为公共网络(例如,互联网)或者专用网(例如,内联网)。源数据存储设备104可例如经由网络(未示出)与目的数据存储设备106通信。这种网络可类似于上述的网络。源数据存储设备104可经由合适的接口或协议与目的数据存储设备106通信,例如但不限于互联网小型计算机系统接口(iscsi)、光纤通道、光纤连接(ficon)、超级scsi和以太网ata。在一个示例中,源数据存储设备104和目的数据存储设备106可包括在联合存储环境中。如这里使用的,“联合存储”可指作为经由公共管理平台管理的一个逻辑资源的对等存储设备。联合存储可以表示将多个存储设备分组以用于并发、无中断的和/或双向数据移动性的逻辑结构。联合存储可支持用于负载平衡、可扩展性和/或存储分层的存储设备之间的无中断的数据移动。在一个示例中,目的数据出处设备106可包括识别引擎160、确定引擎162、人工神经网络引擎164和迁移引擎166。在另一示例中,引擎160、162、164和166可存在于源数据存储设备104上。在进一步的示例中,引擎160、162、164和166可存在于计算环境100中的独立的计算系统(未示出)上。在进一步的示例中,如果源数据存储设备104和目的数据存储设备106为相同的数据存储系统(例如,存储阵列)的构件,引擎160、162、164和166可作为例如数据存储系统上的管理平台的一部分而存在。引擎160、162、164和166可包括硬件和程序的任意组合以实现本文所述引擎的功能。在这里描述的示例中,硬件和软件的这种组合可以数个不同的方式实现。例如,用于引擎的程序可以是存储在至少一个非瞬时机器可读存储介质上的处理器可执行指令,并且用于引擎的硬件可包括至少一个处理资源以执行那些指令。在一些示例中,硬件还可包括其他电路以至少部分地实现目的数据存储设备106的至少一个引擎。在一些示例中,至少一个机器可读存储介质可存储指令,当所述指令由至少一个处理资源执行时至少部分地实现目的数据存储设备106的一些或所有引擎。在这种示例中,目的数据存储设备106可包括存储指令的至少一个机器可读存储介质和至少一个处理资源以执行指令。目的数据存储设备106上的识别引擎160可用于识别用于从源数据存储设备104到目的数据存储设备106迁移的数据块。在一个示例中,识别引擎160可由用户使用以选择用于从源数据存储设备104到目的数据存储设备106迁移的数据块。在这点上,识别引擎160可为用户提供用户界面以选择用于迁移的数据块。在另一示例中,识别引擎160可基于预定义参数(例如,数据块中的数据量)自动地选择用于从源数据存储设备104到目的数据存储设备106迁移的数据块。目的数据存储设备106上的确定引擎162可确定由识别引擎160识别的数据块中的每一个的迁移优先级。在一个示例中,该确定可包括基于与主机系统102相关的已识别的数据块的各自的输入/输出(i/o)操作的分析来为所述已识别的数据块中的每一个确定多个参数。在一个示例中,确定引擎162可以将目的数据存储设备106置于直通模式。在直通模式中,与主机系统相关的已识别的数据块的输入/输出(i/o)操作可经由目的数据存储设备106被路由至源数据存储设备104。路由可允许确定引擎162确定与每个已识别的数据块的各种参数相关的主机i/o通信模式(在目的数据存储设备106)。由确定引擎162为每个已识别的数据块确定的参数的示例可包括对与主机102相关的数据块的写i/o操作的量;对与主机102相关的数据块的读i/o操作的量;数据块的每秒输入/输出操作(iops);受数据块的读/写i/o操作影响的逻辑块地址(lba)的范围;由主机102上的应用从数据块请求的i/o块尺寸;和由用户分配给数据块的数据块优先级。由用户分配给数据块的数据块优先级可以是数值(例如,1,2,3,4,5等)或非数值(例如,高、中或低)。在一个示例中,对数据块的写i/o操作的量可以被认为是参数,因为如果对数据块的写i/o操作的次数增加,则逻辑块可能会被频繁地修改,这可能会影响用于数据块的迁移持续时间。同样地,可以考虑对数据块的读i/o操作的量,因为其可能在数据块的迁移期间影响网络带宽。可以考虑数据块的每秒输入/输出操作(iops),因为具有高活动性的数据块可能消耗更多的网络带宽。由数据块的读/写i/o操作影响的逻辑块地址(lba)的范围可以被认为是参数,因为如果源数据存储设备处的块被改变到更大的lba范围,则其可能影响数据块的迁移持续时间,并消耗更多的网络带宽。由主机(例如,102)上的应用从数据块请求的i/o块尺寸可以被考虑在内,因为其与写i/o操作结合,则可能影响在任意给定时间改变的逻辑块的量。例如,在非结构化应用的情况下,逻辑块尺寸可能很大,其与写i/o操作结合可以影响数据块的迁移的持续时间,因为迁移过程可能涉及顺序块的区域的多个阶段。在一个示例中,一旦确定了用于每个已识别的数据块的参数,确定引擎162就可将该参数作为输入提供给目的数据存储设备106上的人工神经网络(ann)引擎164的输入层。如这里使用的,人工神经网络引擎164可以指包括模拟生物神经网络的结构的相互连接的处理元件的信息处理系统。相互连接的处理元件可称为“人工神经元”或“节点”。在一个示例中,人工神经网络引擎164可包括多个人工神经元,其可被组织为多个层。在一个示例中,人工神经网络引擎164可包括三层:输入层、隐藏层和输出层。在一个示例中,人工神经网络引擎164可为前馈神经网络,其中单元之间的连接可能不形成循环。在前馈神经网络中,信息可在一个方向上移动,从输入层通过隐藏层至输出层。在网络中可能没有循环或回路。在一个示例中,人工神经网络引擎164可基于反向传播架构。反向传播可用于训练人工神经网络引擎164。当输入矢量被呈现到人工神经网络引擎164时,其可以通过人工神经网络引擎164逐层地向前传播,直至其到达输出层。可使用损失函数将网络的输出与期望的输出比较,并且可以针对输出层中的每个人工神经元计算误差值。误差值可以从输出开始向后传播,直至每个人工神经元具有相关的误差值,该误差值大致表示其对原始输出的贡献。反向传播可使用这些误差值计算相对于网络中的权重的损失函数的梯度。此梯度可以备提供给优化方法,该优化方法又可以用它来更新权重,以试图使损失函数最小化。在训练人工神经网络引擎时,中间层中的神经元可以按照不同的神经可学会识别总输入的不同特征的方式来组织自身。在训练之后,如果任意输入模式被呈现给人工神经网络引擎,则如果新输入包含类似于单独的神经元在其训练期间已经学会识别的特征的模式,则网络的隐藏层中的神经元可以用输出进行响应。在一个示例中,人工神经网络引擎164的输入层可包括六个人工神经元,隐藏层可包括三个人工神经元,并且输出层可包括一个人工神经元。在一些其他的示例中,输入层可以包括输入层中的多于或少于六个人工神经元,隐藏层可包括多于或少于三个人工神经元,并且输出层可包括多于一个人工神经元。在一个示例中,确定引擎162可以为目的数据存储设备106上的人工神经网络(ann)引擎164的输入层的六个人工神经元中的每一个提供一个单独的参数作为输入。在一个示例中,该六个参数可包括对与主机102相关的数据块的写i/o操作的数量;对与主机102相关的读i/o操作的数量;数据块的每秒输入/输出操作(iops);受数据块的读/写i/o操作影响的逻辑块地址(lba)的范围;由主机102上的应用从数据块请求的i/o块尺寸;和由用户分配给数据块的数据块优先级。在一些示例中,可以将相对权重或重要性分配给每个参数,作为人工神经网络引擎104的输入层的输入的一部分。以下的表1示出了分配给输入参数的相对权重(1,2,3,4,5,和6)的示例。参数相对权重(降序)iops6写i/o%5lba范围4块尺寸3数据块优先级2读i/o%1表1响应于由输入层接收输入参数(以及关联的权重,如果分配的话),可被连接到输入层的隐藏层中的人工神经元可以例如使用激活函数来处理输入参数。节点的激活函数可以在给定一个输入或一组输入下定义该节点的输出。激活函数可以被认为是确定特定特征的存在的决策函数。例如,隐藏层中的人工神经元可以使用激活函数来基于从输入层接收的给定的一组输入值来决定该单元的激活值可以是什么值。然后可以使用许多这种单元的激活值来基于输入做出决策。一旦输入参数(以及相关联的权重,如果有的话)由隐藏层处理,可被连接到人工神经网络引擎164的隐藏层的输出层中的人工神经元可提供输出。在一个示例中,输出可包括用于每个已识别的数据块的迁移优先级。因此,已识别的用于迁移的每个数据块可由确定引擎162分配迁移优先级。可以使用数字(例如,1,2,3,4和5)或非数值(例如,高、中和低,其可以表示相对值)来分配迁移优先级。在一个示例中,确定引擎162可基于它们各自的迁移优先级为所述数据块中的每一个识别合适的存储等级。在一个示例中,计算环境100中可用的存储介质可以基于例如性能、可用性、成本和恢复需求而被分类为不同的等级。在一个示例中,确定引擎162可为具有相对较高的迁移优先级的数据块识别相对较高的存储等级。在一个示例中,在确定引擎162可被用于为每个已识别的数据块确定迁移优先级之前,确定引擎162可通过将人工神经网络引擎164置于学习阶段而校准人工神经网络引擎164。在学习阶段中,关于源数据存储设备104的主机系统i/o操作可经由目的数据存储设备106以预定时间间隔路由,该时间间隔可从几分钟至几小时。在另一示例中,校准可例如经由在源数据存储设备104处实时捕获的i/o操作提供的后台处理而发生在目的数据存储设备106以外。预定时段可以是用户定义的或系统定义的。在该时间间隔期间,确定引擎162可以针对每个已识别的数据块的各种参数确定主机i/o通信模式(在目的数据存储设备106处)。这些参数可类似于之前提到的那些参数。在该时间段期间收集的数据可作为输入数据通过确定引擎162提供给人工神经网络引擎164的输入层。表2示出了与一组数据块的六个输入参数有关的i/o数据的26个样本。样本i/o写i/o(%)读i/o(%)iopslba范围块尺寸数据块优先级迁移优先级i:o1000100000506400040.9000i:11000100000506400050.9100i:21000100000506400010.8500i:39010100000506400030.8500i:48020120000506400030.8500i:58020120000606400030.8700i:68020120000601280030.8800i:770301200006001280030.8000t:870301400006001280030.8100i:930701400006001280030.4000i:1030701400005001280030.3900i:ll30701200006001280030.3700i:1250501200005001280030.5000i:1350501200005006400030.4500i:1450501200005051230.4000i:1560401200005051230.4100i:160000050.1000i:170000030.0500t:180000010.0100i:19505012000050200030.4200i:20505012000050100030.4100i:21505014000050200030.4500i:226040160000506400050.6000i:236040160000706400030.7000i:241000100000506400030.8600i:251000100000606400030.8600表2响应于由输入层接收到输入参数(以及关联的权重,如果分配的话),隐藏层可例如通过使用激活函数来处理输入参数。一旦输入参数(以及关联的权重,如果有的话)由隐藏层处理,则输出层可识别一组高lba影响数据块。输出层也可以为数据块确定迁移优先级的顺序。输出层也可基于其各自的迁移优先级为所述数据块中的每一个确定存储等级。人工神经网络引擎164的学习(或训练)阶段可为重复过程,其中数据块的i/o通信样本可以一次一个地呈现给人工神经网络引擎,且与输入值关联的任意权重可每次调整。在呈现所有的样本以后,可再次重复该过程,直至其达到期望的误差水平。初始的权重可被设置为任意值,例如初始权重可随机选择。人工神经网络引擎164可使用隐藏层中的权重和函数一次一个地处理训练样本,然后将结果输出与期望的输出比较。人工神经网络引擎164可在下一个样本被处理之前使用反向传播测量误差范围并调整权重。一旦人工神经网络引擎使用具有可接受的误差范围的样本进行训练或校准,如前所述,确定引擎可以使用人工神经网络引擎来为给定的一组数据块确定迁移优先级。一旦由确定引擎162为每个已识别的数据块确定了迁移优先级,则迁移引擎166可基于它们的迁移优先级将数据块从源数据存储设备104迁移到目的数据存储设备106。在一个示例中,如果确定引擎162基于迁移优先级识别用于数据块的存储等级,迁移引擎166可将数据块迁移至已识别的存储等级。图2是用于迁移数据块的示例性数据存储系统200的框图。在一个示例中,系统200可通过任意合适的,例如,如本文中所述,与图1的源数据存储设备104或目的数据存储设备106相关的设备来实现。数据存储系统200可为内部存储设备、外部存储设备或网络附属存储设备。存储系统200的一些非限制性示例可包括硬盘驱动器、存储盘(例如,cd-rom、dvd等)、存储磁带、固态硬盘、usb驱动器、串行高级技术附件(sata)磁盘驱动器、光纤通道(fc)磁盘驱动器、串行连接scsi(sas)磁盘驱动器、磁带驱动器、光盘库等。在一个示例中,数据存储系统200可为直连式存储(das)设备、网络附属存储(nas)设备、廉价磁盘冗余阵列(raid)、数据档案存储系统或存储区域网络(san)上的基于块的设备。在另一示例中,数据存储系统200可为存储阵列,其可包括一个或多个存储设备(例如,硬盘驱动器、固态硬盘等)。在一个示例中,数据存储系统200可包括识别引擎160、确定引擎162、人工神经网络引擎164和迁移引擎166。在一个示例中,识别引擎160可识别用于从源数据存储设备(例如,104)到数据存储系统200迁移的数据块。确定引擎162可以为所述数据块中的每一个确定迁移优先级。在一个示例中,该确定可包括基于与主机系统相关的数据块的各自的输入/输出(i/o)操作的分析来为所述数据块中的每一个确定多个参数。确定引擎162可将多个参数作为输入提供给人工神经网络引擎164的输入层。该输入可由人工神经网络引擎164的隐藏层处理,其中该隐藏层可被连接到输入层。可被连接到隐藏层的人工神经网络引擎164的输出层可提供输出。在一个示例中,该输出可包括用于所述数据块中的每一个的迁移优先级。迁移引擎166可基于数据块各自的的优先级迁移该数据块。图3是用于迁移数据块的示例性数据存储系统300的框图。在一个示例中,数据存储系统300可为存储阵列,其可包括一个或多个存储驱动器(例如,硬盘驱动器、固态硬盘等)。在一个示例中,数据存储系统300可包括源数据存储设备(例如,104)和目的数据存储设备(例如,106)。在一个示例中,数据存储系统300可包括识别引擎160、确定引擎162、人工神经网络引擎164和迁移引擎166。在一个示例中,识别引擎160可识别用于从源数据存储设备104到目的数据存储设备106迁移的数据块。确定引擎162可以为所述数据块中的每一个确定迁移优先级。在一个示例中,该确定可包括基于与主机系统相关的数据块的各自的输入/输出(i/o)操作的分析来为所述数据块中的每一个确定多个参数。确定引擎162可将多个参数作为输入提供给人工神经网络引擎164的输入层。该输入可由人工神经网络引擎164的隐藏层处理,其中隐藏层可被连接到输入层。可被连接到隐藏层的人工神经网络引擎164的输出层可提供输出。在一个示例中,该输出可包括用于所述数据块中的每一个的迁移优先级。迁移引擎166可基于数据块各自的优先级迁移该数据块。图4是用于迁移数据块的示例性方法400的框图。以下描述的方法400可以在诸如图1的源数据存储设备104和目的数据存储设备106、图2的数据存储系统200或图3的数据存储系统300的设备上部分地或完全地执行。然而,其他合适的计算设备也可执行方法400。在块402,可以识别用于从源数据存储设备到目的数据存储设备迁移的数据块。在块404,可在目的数据存储设备处确定用于所述数据块中的每一个的迁移优先级。在一个示例中,该确定可包括基于与主机系统相关的数据块的各自的输入/输出(i/o)操作的分析来为所述数据块中的每一个确定多个参数(块406)。在块408,多个参数可作为输入提供给人工神经网络引擎的输入层。在块410,该输入可由人工神经网络引擎的隐藏层处理,其中该隐藏层可被连接到输入层。在块412,输出可由人工神经网络引擎的输出层提供。在一个示例中,该输出可包括用于所述数据块中的每一个的迁移优先级。图5是用于迁移数据块的示例性系统500的框图。系统500包括通过系统总线通信地连接的处理器502和机器可读存储介质504。在一个示例中,系统500可以类似于图1的源数据存储设备104和目的数据存储设备106、图2的数据存储系统200或图3的数据存储系统300。处理器502可以是译码并执行存储在机器可读存储介质504中的机器可读指令的任意类型的中央处理单元(cpu)、微处理器或处理逻辑。机器可读存储介质504可以是随机存取存储器(ram)或可存储可由处理器502执行的信息和机器可读指令的另一种类型的动态存储设备。例如,机器可读存储介质504可为同步dram(sdram)、双倍数据速率(ddr)、rambusdram(rdram)、rambusram等,或诸如软盘、硬盘、cd-rom、dvd、笔式驱动器等存储介质。在一个示例中,机器可读存储介质可为非瞬时机器可读介质。机器可读存储介质504可存储指令506、508、510和512。例如,指令506可由处理器502执行以识别用于从源数据阵列到目的数据阵列迁移的数据块。指令508可由处理器502执行以确定用于所述数据块中的每一个的迁移优先级。在一个示例中,指令508可包括在目的存储阵列上基于与主机系统相关的数据块的各自的输入/输出(i/o)操作的分析来为所述数据块中的每一个确定多个参数的指令。指令508可进一步包括将多个参数作为输入提供给人工神经网络引擎的输入层的指令。指令508可进一步包括由人工神经网络引擎164的隐藏层处理该输入的指令,其中隐藏层被连接到输入层。指令508可进一步包括通过人工神经网络引擎的输出层提供输出的指令,其中输出层可被连接到隐藏层。在一个示例中,输出可包括用于所述数据块中的每一个的迁移优先级。指令510可由处理器502执行以基于数据块各自的迁移优先级迁移数据块。指令512可由处理器502执行以基于数据块各自的迁移优先级识别用于所述数据块中的每一个的存储等级。为了解释的简便性,虽然图5的示例性方法示出为顺序地执行,但是应该理解和明白的是,本发明和其他的示例不受所示的顺序的限制。图1、2、3和5的示例性系统和图4的方法可以以包括计算机可执行指令(诸如可以在任何合适的结合了合适的操作系统(例如,微软视窗软件、linux、unix等)的计算设备上运行的程序代码)的计算机程序产品的形式来实现。本方案的范围内的示例也可包括程序产品,其包括用于携带或具有存储在其上的计算机可执行指令或数据结构的非瞬时计算机可读介质。这种计算机可读介质可以是可以被通用或专用计算机访问的任意可用的介质。举例来说,这种计算机可读介质可以包括ram、rom、eprom、eeprom、cd-rom、存盘存储器或其他存储设备,或者任何其他可以用来携带或存储以计算机可执行指令的形式的所需的程序代码并可以被通用或专用计算机访问的介质。该计算机可读指令也可从存储器访问并由处理器执行。应当注意到,以上描述的本方案的示例是用于例示的目的。尽管已经结合其具体示例描述了该方案,但是在不实质上脱离本文描述的主题的教导和益处的情况下,可以进行多种修改。在不背离本方案的精神的情况下可做出其他替代、改进和改变。本说明书(包括任何所附权利要求、摘要和附图)中公开的所有特征,和/或公开的任何方法或过程的所有部分可以组合在任意组合中,除非至少其中一些特征和/或部分是相互排斥的组合。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1