CN107528871B - 存储系统中的数据分析 - Google Patents

存储系统中的数据分析 Download PDF

Info

Publication number
CN107528871B
CN107528871B CN201610459374.9A CN201610459374A CN107528871B CN 107528871 B CN107528871 B CN 107528871B CN 201610459374 A CN201610459374 A CN 201610459374A CN 107528871 B CN107528871 B CN 107528871B
Authority
CN
China
Prior art keywords
data
storage
data analysis
job
storage system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610459374.9A
Other languages
English (en)
Other versions
CN107528871A (zh
Inventor
邹勇
杨祥清
吕满
林伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201610459374.9A priority Critical patent/CN107528871B/zh
Priority to US15/629,659 priority patent/US10579419B2/en
Publication of CN107528871A publication Critical patent/CN107528871A/zh
Application granted granted Critical
Publication of CN107528871B publication Critical patent/CN107528871B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Abstract

本公开的实施例提供了在存储系统中分析数据的方法、存储系统以及计算机程序产品。该方法包括响应于检测到针对数据分析作业的请求,从存储系统中的第一存储设备获取数据分析作业的目标数据。该方法还包括将目标数据存储到存储系统中被指派用于数据分析的第二存储设备并且利用存储系统中的数据处理设备和第二存储设备,执行数据分析作业。

Description

存储系统中的数据分析
技术领域
本公开的实施例涉及数据存储和数据分析领域,并且更具体地,涉及在存储系统中分析数据的方法、存储系统以及计算机程序产品。
背景技术
企业、组织、政府部门或者个人等通常需要存储系统用以存储各类数据,诸如工作文件、电子邮件、或者各种其他应用产生的文本或多媒体数据。这样的存储系统可以包括主存系统和/或备份系统。存储系统不仅包括存储设备用以保存数据,而且还可以包括数据处理设备用以实现数据复制、去重复、恢复等功能。
在许多使用场景中,还期望利用对大数据集合执行数据分析作业,以便从数据中获得期望的信息。这样的数据分析作业由被开发为独立系统的各种大数据分析系统、诸如Hadoop系统等来执行。存储系统中保存的数据可以被用作大数据分析系统的分析对象。大数据分析系统需要专用存储空间,用于存储将要被分析的数据以及在数据分析作业过程期间产生的中间结果。因此,需要将待分析的目标数据从存储系统导出并且再导入到大数据分析系统的专用存储空间。这样的数据导入和导出将会消耗较高的时间成本和跨系统数据传输的带宽成本。
发明内容
本公开的实施例提供一种在存储系统中执行数据分析作业的方案。
根据本公开的第一方面,提供了一种在存储系统中分析数据的方法。该方法包括响应于检测到针对数据分析作业的请求,从存储系统中的第一存储设备获取数据分析作业的目标数据。该方法还包括将目标数据存储到存储系统中被指派用于数据分析的第二存储设备并且利用存储系统中的数据处理设备和第二存储设备,执行数据分析作业。这方面实施例还包括相应的计算机程序产品。
根据本公开的第二方面,提供了一种存储系统。该存储系统包括多个存储设备、数据处理设备和控制器。该控制器被配置为响应于检测到针对数据分析作业的请求,从多个存储设备中的第一存储设备获取数据分析作业的目标数据。该控制器还被配置为将目标数据存储到多个存储设备中被指派用于数据分析的第二存储设备,并且利用数据处理设备和第二存储设备,执行数据分析作业。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了常规的包括存储系统的数据存储场景的示意图;
图2示出了根据本公开的一个实施例的可分析数据的存储系统的框图;
图3示出了根据本公开的一个实施例的在执行数据分析工作时存储系统中的各个组件之间的交互;
图4示出了根据本公开的一个实施例的被集成在存储系统中的数据分析架构的框图;
图5示出了根据本公开的一个实施例的在图4的数据分析架构下各个主机的结构和交互的示意图;
图6示出了根据一个实施例的用于在存储系统中分析数据的方法的流程图;以及
图7示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
如上所述,存储系统用于存储数据,并且数据分析系统用于执行数据分析作业。如果要对存储系统中的数据进行分析,则需要将数据从存储系统中导出并且存储至数据分析系统的专用存储空间中。这样的过程往往会花费较长时间并且消耗较多带宽资源用于跨系统的数据传输。
此外,为了实现数据存储和数据分析两个目的,用户需要较高花费来投资两个单独的系统。因为存储系统和数据分析系统均要求较高的数据处理资源和较大的数据存储空间。例如,除了较大的存储空间用以存储数据之外,存储系统还要配备数据处理设备用以实现数据复制、去重复、恢复等功能。数据分析系统通常需要强大的数据处理(计算)能力,并且除了需要存储空间用于存储待分析的目标数据之外,在数据分析作业的执行期间还可能产生较多的中间结果要被缓存。这意味着每个系统的投资成本都较高。除了投资成本之外,用户还需要对两个单独的系统花费更多的管理和维护成本。
另一问题在于,数据分析作业通常不会频繁执行的。例如,数据分析系统可能会等待一段时间以便收集足够多的数据用于分析。也就是说,数据分析系统中的存储设备和数据处理设备可能会面临长时间的闲置,造成资源的浪费。这对于用户而言也是不期望的。
为了至少部分地解决上述问题以及其他潜在问题,本公开的实施例提供了一种在存储系统中执行数据分析作业的方案。在该方案中,数据分析系统的功能被整合到存储系统中,从而使得单个系统至少具有数据存储和数据分析两种功能。这是考虑到存储系统不仅具有存储空间和数据处理资源,而且通常还具有不执行数据存储作业的空闲时段。因此,数据分析作业可以被调度在存储系统的空闲时段中并且利用存储系统的存储和处理资源来执行。在一些实施例中,存储系统可以是备份系统,因为相较于需要进行频繁数据存取的主存系统,备份系统通常仅在指定的备份时间段内执行数据备份作业并且因此具有较多的空闲时段。在另外一些实施例中,存储系统也可以是主存系统,只要主存系统具有空闲时段。
这样的集成有数据存储和数据分析两个功能的系统可以显著降低成本,因为用户可以仅需要投资、维护和管理单个系统。此外,可以直接对存储系统中存储的数据执行数据分析作业,而不需要跨系统导入和导出数据,节约了时间和传输带宽,进而提高了数据分析作业的整体效率。而且,在单个系统中合理地调度数据存储作业和数据分析作业,不仅提高了系统中的资源(例如处理资源和存储资源)的利用率,并且还提高了系统的工作整体效率。
图1图示了一种常规的包括存储系统130的数据存储场景100。在场景100中,存储服务器110用于从客户端102、104和106捕获数据并且经由网络120将数据存储在存储系统130中。存储服务器110可以维护有存储目录(catalog),其包含与所存储的数据相关联的元数据。元数据可以指示与数据的存储有关的信息,诸如数据的存储位置、数据的类型、数据的文件名称等。网络120可以是任何能够提供设备之间的通信的有线或无线网络,例如因特网、局域网(WLAN)、内联网等。
存储系统130可以包括一个或多个主机,用于执行数据存储作业。图1中图示了存储系统130包括主机142、144和146,但是在其他示例中存储系统130可以包括更多或更少的主机。存储系统130的主机可以通过互连190来相互连接。在一些实施例中,存储系统130可以以超融合(hyper-converged)的方式来将主机可以划分为一个或多个存储节点簇,以便在簇内执行协同管理。例如,主机142、144和146可以被划分为一个存储节点簇。
存储系统130中的每个主机可以托管一个或多个存储设备和/或数据处理设备,以用于支持数据存储作业。数据存储作业可以包括例如简单的数据存放、数据复制、数据去重复、数据恢复等。在示例实施例中,存储设备可以包括各种易失性和/或非易失性数据存储器。存储设备的示例可以包括但不限于磁盘、光盘、硬盘、固态硬盘(SSD)高速缓存。数据处理设备的示例可以包括但不限于中央处理单元(CPU)、控制器、微处理器、数字信号处理器(DSP)和多核处理器。
在一些实施例中,存储系统130中的各种存储设备可以被池化为高速缓存池170和存储池180,从而使得多个主机的存储资源得以集中利用。高速缓存池170可以用于高速缓存在数据存储作业过程中可能被读取/写入的数据。存储池180用于以非易失性的方式保存数据。存储池180可以包括存储系统130中的每个主机非易失性存储空间。在一些实施例中,存储池180的存储空间可以被划分为多个存储块,并且数据被存储到这些存储块中。
在图1的示例中,存储系统的主机被部署有虚拟机(Virtual Machine,VM),用于支持数据存储作业。虚拟机指的是一种机器(例如计算机)的软件实现或仿真,用于像物理机器一样执行程序。例如,虚拟机可以提供完整的系统平台,用于支持操作系统的执行。应当理解的是,虚拟机的技术是已知的并且可以多样地被采用。存储系统的每个主机142、144、146可以运行有一个或多个存储VM 151至156。这些存储VM 151至156可以用于从存储服务器110获取数据并且将数据存储到存储池180中。这些存储VM 151至156还可以用于将数据从存储池180中导出到客户端102、104、106。在一些实施例中,每个主机142、144、146还可以包括监管器(hypervisor)162、164、166,用于管理每个主机上的VM。
应当理解的是,图1仅被示出作为数据存储场景的示例。在另外一些场景中,可以存在更多或更少的实体。例如,虽然被示出为计算机,但是需要将数据进行存储的客户端还可以是服务器或者其他设备。在一些示例中,可以省略客户端,并且因此存储系统的数据是固定的。在另一个示例中,存储服务器可以被省略或者可以与存储系统130结合在一起。
此外,存储系统130可以包括更多或更少的存储节点簇或主机。在一些实施例中,单个主机也是可行的。而且,存储系统130可以不以存储节点簇的形式布置各个主机,各个主机可以单独地被包括在存储系统130中。在一些实施例中,存储系统130的存储设备可以不被池化为存储池或高速缓存池,并且这些存储设备的存储资源可以以离散的方式来管理。在另外一些实施例中,存储系统130的主机也可以不必要运行虚拟机,并且因此也不必要包括监管器。图1的存储系统130可以还包括更多其他的要素,用于支持数据存储作业。例如,存储系统130的各个主机还可以运行有簇软件,用于在主机之间提供簇特征、诸如心跳消息和其他消息传送等。
根据本公开的示例实施例,期望将数据分析的功能集成到存储系统中。在一些实施例中,期望这样的数据分析功能的集成不会要求存储系统的存储资源和处理资源的额外增加用于数据分析作业。也就是说,可以利用存储系统已有的存储资源和处理资源来完成数据分析作业。在一些实施例中,在存储系统中增加的数据分析功能可以(1)根据预定义的准则来调度数据分析作业;(2)从存储系统所存储的数据中获取数据分析作业的目标数据并且将数据存储至存储系统中被指派用于数据分析作业的存储空间中;(3)利用存储系统的处理设备和存储设备执行数据分析作业。
图2图示了根据本公开的一个示例实施例的可分析数据的存储系统200的框图。与图1所示的存储系统130类似,存储系统200也可以包括一个或多个主机。在图2的示例中示出了三个主机212、214和216,但是可以理解的是,还可以包括更多或更少的主机。主机212、214和216可以提供数据处理设备(例如处理器、控制器)和/或存储设备,用以支持存储系统的数据存储作业和数据分析作业。主机212、214和216可以由互连290连接以便相互通信。
在一些实施例中,与图1所示的存储系统130类似,主机212、214和216所托管的存储设备可以被池化为存储池280,并且所托管的高速缓存设备也可以被池化为高速缓存池270。应当理解的是,在其他实施例中,可以不采用池化技术,并且因此主机212、214和216的存储设备和高速缓存设备可以单独地在各个主机内被管理。
在存储系统200中,主机212、214和216可以部署有用于数据存储作业的存储VM242、244和246,并且还部署有用于数据分析作业的数据分析VM 222、224和226。与图1所描述的存储VM类似,存储VM 242、244和246可以从存储服务器(未在图2中示出)获取数据并且将数据存储到存储池280中,还可以将数据从存储池180中导出到客户端或者其他目的地(未在图2中示出)。此外,存储VM242、244和246还可以根据数据分析作业的需要将数据导入到其他存储空间中。数据分析作业可以在数据分析VM 222、224和226中调度。
通常,为了执行数据分析作业,除了需要占用数据处理资源之外还需要存储空间。在一些实施例中,为了不影响存储系统200的数据存储,可以预先指派存储系统200中的一定存储空间支持数据分析作业。通常存储系统的存储量是可观的并且可以依据需要扩展。因此,可以指派用于数据分析的存储空间是可行的。
在执行数据分析作业时,可以从存储系统200的存储池中导出数据分析作业的目标数据并且将目标数据存储至被指派用于数据分析作业的存储空间中。在一些实施例中,该存储空间可以是存储系统200的存储池280中的一个或多个存储块。在没有池化的情况下,可以将主机212、214和216中的一个或多个存储设备(例如,磁盘)中的一些或全部存储空间指派给数据分析作业。如果存储系统200的存储池或存储设备被指派给数据分析作业,则这部分的存储空间将不再用于存储系统200的数据存储作业的数据存储或备份。在一些实施例中,存储系统200的存储池可以被虚拟化为多个虚拟磁盘,并且可以将一个或多个虚拟磁盘指派为专用于数据分析作业。
附加地或备选地,在不进行数据存储作业时,还可以将存储系统200的高速缓存存储空间(例如,高速缓存池270)中的部分或全部存储空间指派用于数据分析作业。这是因为,当不执行数据存储作业时,高速缓存存储空间是可用的。在一些实施例中,可以将高速缓存池270的一个或多个高速缓存盘指派为专用于数据分析作业。也可以对高速缓存盘进行虚拟化,以便将一个或多个虚拟高速缓存盘指派用于数据分析作业。采用高速缓存存储空间用于数据分析作业可以有助于提高数据分析作业过程中的输入/输出(I/O)性能,这将在以下详细讨论。
由于需要在存储系统200内执行数据迁移,因此在一些实施例中,主机212、214和216还可以部署有数据获取VM 232、234和236。以此方式,数据分析作业的目标数据可以从存储池280中被获取并且被存储到被指派用于数据分析作业的存储块中。在一些实施例中,数据获取VM 232、234和236可以维护与存储池280中所存储的数据相关联的元数据。该元数据可以类似于在存储服务器、例如图1的存储服务器110中维护的目录中的元数据。在一些实施例中,主机212、214和216还可以部署有监管器252、254和256,用于管理这些主机上的VM。
在一些实施例中,由于要在存储系统200中执行数据存储作业和数据分析作业两者,存储系统200可以包括调度器260,用以恰当地调度数据分析作业和数据存储作业。调度器260可以发送请求以便使得数据分析VM 222、224、226和存储VM 242、244和246开始或停止相应的工作。在一些实施例中,期望数据分析作业不影响存储系统的正常数据存储作业,因此,调度器260可以在检测到数据存储作业的完成时生成针对数据分析作业的请求,并且将该请求发送至数据分析VM 222、224、226。数据分析VM 222、224、226检测到该请求后,可以开始数据分析作业。
在一些情况中,存储系统200可以被配置有针对数据存储作业的相应时间段和/或针对数据分析作业的相应时间段。调度器260可以通过检测数据存储作业的时间段的结束或者数据分析作业的时间段的到来,以生成对应的针对数据分析作业的请求。在一些实施例中,这个时间段的配置可以由用户指定,并且可以是周期性的。对于某些存储系统、例如备份系统,通常仅需要在某个备份时间段内完成数据备份工作,而不需要持续地执行备份。如果检测到备份时间段已经结束,则可以生成请求以触发数据分析作业。
备选地或附加地,在一些实施例中,是否数据分析作业的启动还可以由用户指定。例如,用户可以预先指定是否要在存储系统200的空闲时间(例如数据存储作业的时间段之外的时间)执行数据分析作业。如果接收到用户关于启动数据分析作业的指示,调度器260可以生成请求以触发数据分析作业。
在一些实施例中,调度器260可以包括分别位于各个主机210、212、214的各个子调度器。这些子调度器中可以包括一个主控子调度器,用于控制其他子调度器在对应的主机中执行相应的调度任务。
图3图示了在执行数据分析工作时存储系统200中的各个组件之间的交互。在图3的示例中,假设VM之间的交互仅限于单个主机210内,但是,应当理解的是,存储系统200的多个主机是协同管理的,并且因此VM之间的交互可以不限于单个主机内。如图3所示,调度器260可以向数据分析VM 222发送针对数据分析作业的请求。
响应于该请求,数据分析VM 222可以开始执行数据分析作业。数据分析VM 222可以知道数据分析作业的目标数据。为了从存储池280中获取该目标数据,数据分析VM 222可以向数据获取VM 232发送针对目标数据的元数据的请求。数据获取VM 232可以维护存储池280中存储的数据的元数据301。数据获取VM 232可以将所请求的目标数据的元数据发送给数据分析VM 222。该元数据可以指示与所述数据的存储有关的信息,例如目标数据的存储位置、文件名称、数据类型等。
数据分析VM 222可以向存储VM 242发送针对目标数据的请求,该请求中可以包括获取的元数据。响应于该请求,存储VM 242可以基于元数据,从存储池280中获取目标数据,并且将目标数据提供给数据分析VM 222。在一些其他实施例中,数据获取VM 232可以直接将数据分析VM 222请求的目标数据的元数据发送给存储VM 242,并且存储VM 242基于该元数据以及数据分析VM 222的请求,向数据分析VM 222提供目标数据。
在一些实施例中,在虚拟机软件层之上还可以设计相应的应用程序接口(API),用于响应于调度器260的请求,将目标数据由存储VM 242中的源路径导出并且导入至数据分析VM 222的目的地路径。设计这样的API用于在存储系统200内进行数据导入和导出是可以想到的。
数据分析VM 222可以将目标数据存储至被指派给数据分析作业的存储空间中,继而可以对目标数据执行相应的分析工作。数据分析VM 222可以利用存储系统200的处理资源(例如,数据处理设备)和所指派的存储空间来执行数据分析作业。在一些实施例中,数据分析VM 222中的数据分析作业的执行结果还可以经由存储VM 242存储至存储池280中。备选地或附加地,该执行结果还可以由数据分析VM 222传输至其他目的地,诸如经由网络传输至客户端。
应当理解的是,在处理资源和存储资源已经可用的情况下,根据数据分析作业的不同类型和相应需求,存储系统200的数据处理设备和存储设备可以恰当地被利用,以便完成数据分析作业。此时,存储系统200可以被视为一个数据分析系统,区别在于存储池280中还存储有存储系统200的数据。
图4图示了根据本公开一个实施例的被集成在存储系统中的数据分析架构400。在图4中以Hadoop架构作为示例来描述数据分析架构400,并且其中待执行的数据分析作业是MapReduce(映射-化简)作业。应当理解的是,这仅仅是示例性的,而无意以任何方式限制本公开的范围。在其实施例中,可以采用其他数据分析架构并且执行其他数据分析作业,不论是目前已知的还是将来开发的。
架构400包括多个MapReduce(M/R)处理引擎404、404、406和408以及相应的文件系统410。MapReduce作业可以在两个阶段中被处理:映射(map)阶段和化简(reduce)阶段。每个阶段可以包括多个并行的任务。映射阶段的任务(或映射任务)直接对目标数据进行分析并且其输出数据(也被称为中间结果)将作为化简阶段的任务(或化简任务)的输入数据,而化简任务的输出数据将是该作业的最终输出数据。M/R处理引擎404、404、406和408可以被配置为执行映射任务或化简任务中的一个或多个任务。在Hadoop架构下,文件系统410可以是Hadoop分布式文件系统(HDFS)。处理引擎404、404、406和408和文件系统410均可以由VM实现,例如由部署在存储系统200的多个主机上的数据分析VM 222、224和226来实现。
HDFS 410可以为数据分析作业提供分布式的数据存储的管理,并且所管理的存储空间可以是先前所描述的被分配用于数据分析作业的存储空间(相应的物理存储设备或虚拟存储设备)。在一些实施例中,HDFS 410可以包括主控节点(NameNode)411和多个数据节点(DataNode)412-415。这些节点与处理引擎一起执行数据分析作业。主控节点411维护数据分析作业的目标数据的元数据(例如,从数据获取VM得到的元数据),并且数据节点412-415中的一个或多个节点可以在数据分析工作期间为处理引擎404-408调度所需的数据。
架构400还包括监管器420,其包括例如存储系统200的监管器252、254和256,用于管理各个主机上的VM。存储系统200的可用计算和互连资源440、包括主机的数据处理设备和互连设备可以用于支持数据分析作业的执行。存储系统200的被指派用于数据分析的存储资源430可以提供由HDFS 410管理的存储空间。
图5图示了在图4的数据分析架构400下存储系统的各个主机中的数据分析VM的结构以及交互。在图5中,省略了存储系统200的一些特征。在图5的示例中,HDFS的主控节点411被实现为单独的数据分析VM 222B,并且M/R处理引擎和数据节点可以成对地被实现为对应的数据分析VM。
例如,M/R处理引擎402和数据节点412被实现为数据分析VM222A,并且与数据分析VM 222B一起被部署在主机210中。数据分析VM 222A和数据分析VM 222B可以被统一地看作是图2中的数据分析VM 222。M/R处理引擎404和数据节点413被实现为数据分析VM 224A,M/R处理引擎406和数据节点414被实现为数据分析VM224B,并且数据分析VM 224A和224B被部署在主机212中。数据分析VM 224A和数据分析VM 224B可以被统一地看作是图2中的数据分析VM 224。M/R处理引擎408和数据节点415被实现为数据分析VM 226并且被部署在主机216中,该数据分析VM 226可以被看作是图2中的数据分析VM 226。
在一些实施例中,调度器260产生的针对数据分析作业的请求可以触发相应的M/R处理引擎执行MapReduce作业的任务。假设M/R处理引擎404被触发。M/R处理引擎404则向HDFS系统的主控节点411发送请求以请求数据分析作业的目标数据。如以上关于图3所描述的,为了将目标数据从存储系统200的存储池280提取到数据分析系统的存储空间中,HDFS系统中的主控节点411的数据分析VM222B从数据获取VM 232请求与目标数据相关联的元数据。如以上所描述的,主机的数据获取VM可以维护与存储池280中的数据相关联的元数据。例如,如图5所示,主机210至214上的数据获取VM 232至236各自都保存有元数据501至503。
在一些实施例中,根据获取到的目标数据的元数据,主控节点411可以确定调度哪个数据节点来执行数据获取。假设数据节点413被调度,那么如关于图3所描述的,数据节点413的数据分析VM 224A将与其所在的主机的存储VM 244交互以从存储池280获取目标数据。存储池280可以包括多个物理存储设备511-514。由于存储池280的池化特点,存储VM244可能从多个物理存储设备(在图5中是存储设备512和513)获取目标数据。数据节点413可以将经由存储VM244获取的目标数据存储至被指派用于数据分析作业的物理存储设备或虚拟存储设备上。
在上述目标数据的获取过程中,由于存储系统的存储池化,在存储级别上可能需要跨主机传输目标数据。例如,可能目标数据实际被存储在主机212托管的物理存储设备上,但是要被复制到主机214的用于数据分析作业的物理存储设备上。在一些实施例中,为了降低目标数据获取过程中的资源(例如传输带宽)消耗,如以上已描述的,被主控节点调度的数据节点413与其所在的主机(主机214)中的存储VM 224交互以获取目标数据,避免了目标数据的可能的进一步跨主机传输。在其他实施例中,数据节点413也可以与其他主机的存储VM 224交互以获取目标数据。
在具有目标数据之后,可以由数据节点和M/R处理引擎一起协同操作以执行MapReduce作业。由于MapReduce作业的并行处理特点,在一些实施例中,可以在多个数据分析VM上调度MapReduce作业的任务。在Hadoop架构下,MapReduce作业(或者其他数据分析作业)还期望具有数据本地性,使得在物理上存储数据的主机上对该数据进行处理。在一些实施例中,期望为多个M/R处理引擎(数据分析VM)指派主机内的本地磁盘。因此,如果被指派由于数据分析作业的物理存储设备无法实现数据本地性的要求,可以将指派的物理存储设备虚拟化为多个虚拟存储设备,并且将多个虚拟存储设备分配给多个虚拟机,使得每个数据分析VM可以具有本地的虚拟存储设备。
在一些实施例中,对于存储有目标数据的虚拟存储设备,可以将数据分析作业的第一任务调度到与该虚拟存储设备相关联的数据分析VM(包括M/R处理引擎)来执行,该第一任务直接分析该目标数据。在一些实施例中,可以将第一任务的中间结果存储到多个虚拟存储设备中的任意虚拟存储设备中。对于数据分析作业中要分析该中间结果的第二任务,其可以被调度给与存储中间结果的虚拟存储设备对应的数据分析VM(包括M/R处理引擎)来执行。
应当理解的是,数据分析作业的数据本地性可以依靠存储设备的虚拟化技术来实现,并且通过相应的调度过程,实现数据分析VM可以从本地的磁盘获取数据用于分析。在其他实施例中,可以不依靠虚拟化技术,而是通过合理地指派物理磁盘,来实现数据分析作业的数据本地化要求。
如上所述,被分配用于数据分析作业的存储资源可以是存储系统200的高速缓存设备,例如高速缓存池270。高速缓存设备在一个示例中可以是固态硬盘(SSD)高速缓存。在另一个示例中,高速缓存设备可以是主机的内存。应当理解的是,还可以采用其他高速缓存设备。
一般而言,存储池(例如存储池280)的非易失性存储设备(例如硬盘)适用于顺序读/写I/O操作,这对于大尺寸数据是有益的。但是在数据分析作业的执行期间,特别是在中间阶段对于中间结果的存取操作,可能会产生大量的针对小尺寸数据的随机I/O操作。在这种情况下,高速缓存设备可以展现良好的I/O性能。因此,将存储系统200的高速缓存设备指派用于支持数据分析作业是有利的。在一些实施例中,高速缓存设备不仅可以用于存储数据分析作业的目标数据,还可以用于存储在数据分析作业期间产生的中间结果。在一些实施例中,如果目标数据具有较大尺寸,则可以预先指派存储池280的存储设备用于存储目标数据,并且指派高速缓存池270的高速缓存设备用于存储中间结果。在作为数据分析作业的数据存储空间时,高速缓存设备也可以如以上所描述的被虚拟化,以实现数据本地性。
在一些实施例中,为了节省存储系统200对高速缓存的需求量并且由于在高速缓存设备在数据分析期间不被用于数据存储作业,因此还可以仅在将要执行数据分析作业时,才将存储系统200的部分或全部高速缓存设备指派用于数据分析。在这种情况下,可以配置高速缓存设备以使得高速缓存设备可以用于数据分析的文件系统、例如HDFS。
在一些实施例中,可以向高速缓存设备发送添加命令、例如热插拔(hot add)命令,以便触发高速缓存设备用于数据分析。该添加命令可以触发高速缓存设备的热插拔事件。可以由调度器260例如在确定要执行数据分析作业时触发该命令。在一些实施例中,可以根据数据分析作业对其存储系统、例如HDFS文件系统的要求来格式化高速数据缓存设备,使得其适用于数据分析作业的存储。在一些实施例中,如果检测到数据分析作业的完成,可以向高速缓存设备发送移除命令、例如热移除(hot remove)命令,使得高速缓存设备停止用于数据分析。该移除命令可以触发高速缓存设备的热移除事件。该命令可以由调度器260触发。
在一些实施例中,可以将存储系统200的高速缓存设备(例如高速缓存池270)的一部分高速缓存设备指派为专用于数据分析(而不用于数据存储作业)。在这些实施例中,可以仅在初始阶段对相应的高速缓存设备发送热插拔命令,并且将其配置成适合于数据分析作业的存储。
以上关于Hadoop架构下的MapReduce数据分析作业来描述本公开的实施例。应当理解的是,可以将其他大数据分析架构集成到存储系统中。尽管以上描述了多种虚拟机,分别用于实现不同的功能,但是这些虚拟机中的一个或多个虚拟机可以合并成单个虚拟机或者可以被划分成多个虚拟机,以实现相同的功能。还应当理解的是,尽管在以上以虚拟机的方式描述存储系统中数据分析功能以及其他功能,但是可以理解的是在一些其他实施例中,存储系统的主机不必要运行虚拟机。在这些实施例中,可以将图2中示出的主机中的虚拟机、调度器、监管器等可以被认为是在各个物理主机上运行的功能模块或逻辑单元,用于执行以上所描述的功能。
在一些实施例中,在存储系统中部署有多个类别的VM的情况中,可以设计存储系统的控制面板用于使得用户方便地管理这些VM。这个控制面板可以类似于基础设施即服务(IAAS)管理软件,其可以管理各个VM的创建、开启、关闭、暂停、恢复等生命周期,也可以管理VM的迁移、资源调度和负载均衡、健康状态、性能监测等。还可以将该控制面板涉及为能够使得用户方便地管理存储系统的存储资源(例如数据分析作业的存储资源指派)、设备虚拟化、VM升级等。
图6图示了根据一个实施例的用于在存储系统中分析数据的方法600的流程图。方法600可以由存储系统、诸如存储系统200中的控制器或处理设备来执行。
在步骤610,响应于检测到针对数据分析作业的请求,从存储系统中的第一存储设备获取数据分析作业的目标数据。在一些实施例中国,第一存储设备可以是例如存储系统200的存储池280中的相应物理存储设备或虚拟存储设备,其用于存储系统200的数据存储作业的数据。
在一些实施例中,针对数据数据分析作业的请求可以由例如存储系统200的调度器260基于预定义的准则来产生。在一些实施例中,可以基于预定的触发周期(例如针对数据存储作业或数据分析作业定义的时间段)来产生针对数据分析作业的请求。备选地或附加地,可以在检测到数据存储作业的完成时产生针对数据分析作业的请求。在另外一些实施例中,可以在接收到要执行数据分析作业的指示、例如来自用户输入的指示时,生成请求。
在一些实施例中,可以确定与目标数据相关联的元数据,元数据指示与目标数据的存储有关的信息。基于元数据,可以从第一存储设备读取目标数据。例如,元数据可以被由存储系统200、例如存储系统200的数据获取VM保持。可以由数据分析VM从数据获取VM请求该元数据,并且基于该元数据向存储系统200的存储VM请求目标数据。存储VM可以基于该元数据从存储池280中将目标数据导出并且导入到用于数据分析的第二存储设备中。
在步骤620,将目标数据存储到存储系统中被指派用于数据分析的第二存储设备。在一些实施例中,第二存储设备可以是存储系统200的存储池280中被指派为专用于数据分析的物理存储设备或虚拟存储设备。备选地或附加地,第二存储设备可以是存储系统200的高速缓存池270中被指派为专用于数据分析的部分物理高速缓存设备或虚拟高速缓存设备。
在一些实施例中,高速缓存池270的部分或全部高速缓存设备可以不专用于数据分析,而是在要执行数据分析作业时才被指派。在这些实施例中,响应于检测到针对数据分析作业的请求,可以向相应的高速缓存设备发送添加(例如热插拔)命令,以使得高速缓存设备被指派用于数据分析。在一些实施例中,响应于数据分析作业的完成,可以向高速缓存设备发送移除命令以停止指派高速缓存设备用于数据分析。
在一些实施例中,数据分析作业包括第一任务和第二任务,第二任务基于第一任务产生的中间结果。在高速缓存设备被指派用于数据分析的实施例中,在执行数据分析作业期间,可以将中间结果存储在存储系统中的高速缓存设备中,这样可以有利于提高中间结果的随机存取性能。
在步骤630,利用存储系统中的数据处理设备和第二存储设备,执行数据分析作业。在一些实施例中,可以在存储系统中创建用于数据分析的多个虚拟机,并且可以在多个虚拟机上调度数据分析作业。例如,在图2的示例中,可以创建多个数据分析VM 222至226用于数据分析。在其他实施例中,可以不采用虚拟机。
在一些实施例中,如果数据分析作业具有数据本地性的要求并且用于数据分析的物理存储设备不足以提供该本地性要求,则可以将用于数据分析的物理存储设备(例如第二存储设备)虚拟化为多个虚拟存储设备并且将多个虚拟存储设备分配给多个虚拟机。在一些实施例中,在调度数据分析作业时,可以将数据分析作业中的第一任务调度到多个虚拟机中的第一虚拟机,第一虚拟机与多个虚拟存储设备中存储目标数据的虚拟存储设备相关联,第一任务直接分析目标数据。此外,将数据分析作业中的第二任务调度到多个虚拟机中的第二虚拟机,第二任务分析由第一任务产生的中间结果。
在一些实施例中,可以将数据分析作业的执行结果存储至第一存储设备中。例如,存储系统200的数据分析VM可以经由存储VM将执行结果存储至存储池280中。备选地或附加地,数据分析VM还可以将执行结果传输到存储系统200之外的设备。
图7示出了可以用来实施本公开的实施例的示例设备700的示意性框图。设备700可以用于实现图2的存储系统200中的一个或多个主机。如图所示,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元701执行上文所描述的各个方法和处理,例如方法600。例如,在一些实施例中,方法600可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由CPU 701执行时,可以执行上文描述的方法600的一个或多个步骤。备选地,在其他实施例中,CPU 701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法600。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。

Claims (23)

1.一种在存储系统中分析数据的方法,包括:
由运行在所述存储系统的第一主机上的存储虚拟机VM执行涉及所述存储系统的第一存储设备的数据存储作业;
在执行所述数据存储作业之后,通过以下来编排关于所述第一存储设备中存储的目标数据的数据分析作业:
由所述存储系统的调度器向运行在所述存储系统的第二主机上的数据分析VM发出数据分析请求;
响应于所述数据分析VM接收到所述数据分析请求,从运行在所述第二主机上的数据获取VM获取指示与所述目标数据相关的信息的元数据,所述信息包括所述目标数据的位置;以及
使用所述元数据,从所述数据分析VM向所述存储VM发出针对所述目标数据的数据请求;
由所述存储VM从所述存储系统的所述第一存储设备获取用于所述数据分析作业的所述目标数据;
将所获取的所述目标数据存储到所述存储系统中被指派用于数据分析的第二存储设备,所述第二存储设备对于所述第二主机是本地的;以及
由所述数据分析VM执行所述数据分析作业,包括所述数据分析VM从所述第二存储设备访问所述目标数据。
2.根据权利要求1所述的方法,其中执行所述数据分析作业包括:
在所述存储系统中创建用于数据分析的多个虚拟机;以及
在所述多个虚拟机上调度所述数据分析作业。
3.根据权利要求2所述的方法,进一步包括:
将所述第二存储设备虚拟化为多个虚拟存储设备;以及
将所述多个虚拟存储设备分配给所述多个虚拟机。
4.根据权利要求3所述的方法,其中在所述多个虚拟机上调度所述数据分析作业包括:
将所述数据分析作业中的第一任务调度到所述多个虚拟机中的第一虚拟机,所述第一虚拟机与所述多个虚拟存储设备中存储所述目标数据的虚拟存储设备相关联,所述第一任务直接分析所述目标数据;以及
将所述数据分析作业中的第二任务调度到所述多个虚拟机中的第二虚拟机,所述第二任务分析由所述第一任务产生的中间结果。
5.根据权利要求1所述的方法,其中所述第二存储设备包括所述存储系统的高速缓存设备,所述方法进一步包括:
响应于所述数据分析VM接收到所述数据分析请求,向所述高速缓存设备发送添加命令以使得所述高速缓存设备被指派用于数据分析;以及
响应于所述数据分析作业的完成,向所述高速缓存设备发送移除命令以停止指派所述高速缓存设备用于数据分析。
6.根据权利要求1所述的方法,其中所述数据分析作业包括第一任务和第二任务,所述第二任务基于所述第一任务产生的中间结果,所述方法进一步包括:
在执行所述数据分析作业期间,将所述中间结果存储在所述存储系统中的高速缓存设备中。
7.根据权利要求1所述的方法,还包括所述调度响应于检测到数据存储作业的完成而发出所述数据分析请求。
8.根据权利要求1至7中任一项所述的方法,进一步包括:
将所述数据分析作业的执行结果存储至所述第一存储设备中。
9.根据权利要求1至7中任一项所述的方法,其中所述数据分析作业包括MapReduce作业。
10.根据权利要求1至7中任一项所述的方法,其中:
所述存储系统是备份系统;
所述数据存储作业是被配置为以备份时间段被执行的备份作业;并且
发出所述数据分析请求是响应于所述调度器检测到所述备份时间段过期而被执行的。
11.根据权利要求1至7中任一项所述的方法,其中所述数据存储作业包括以下之一:
将数据保存到所述第一存储设备;
从所述第一存储设备的数据复制;
关于所述第一存储设备的数据去重复;以及
从所述第一存储设备的数据恢复。
12.一种存储系统,包括:
多个存储设备;
多个主机;以及
调度器;
其中运行在所述多个主机中的第一主机上的存储虚拟机VM被配置为执行涉及所述多个存储设备中的第一存储设备的数据存储作业,
其中所述调度器被配置为:在所述数据存储作业被执行之后,向运行在所述多个主机中的第二主机上的数据分析VM发出数据分析请求,
其中所述数据分析VM被配置为:响应于所述数据分析VM接收到所述数据分析请求,从运行在所述第二主机上的数据获取VM获取指示与所述目标数据相关的信息的元数据,所述信息包括所述目标数据的位置,并且使用所述元数据,从所述数据分析VM向所述存储VM发出针对所述目标数据的数据请求,
其中所述存储VM还被配置为:从所述第一存储设备获取用于所述数据分析作业的所述目标数据,并且将所获取的所述目标数据存储到所述多个存储设备中被指派用于数据分析的第二存储设备,所述第二存储设备对于所述第二主机是本地的;并且
其中所述数据分析VM还被配置为:执行所述数据分析作业,包括从所述第二存储设备访问所述目标数据。
13.根据权利要求12所述的存储系统,其中所述数据分析VM被配置为通过以下来执行所述数据分析作业:
在所述存储系统中创建用于数据分析的多个虚拟机;以及
在所述多个虚拟机上调度所述数据分析作业。
14.根据权利要求13所述的存储系统,其中所述数据分析VM进一步被配置为:
将所述第二存储设备虚拟化为多个虚拟存储设备;以及
将所述多个虚拟存储设备分配给所述多个虚拟机。
15.根据权利要求14所述的存储系统,其中所述数据分析VM被配置为通过以下来在所述多个虚拟机上调度所述数据分析作业:
将所述数据分析作业中的第一任务调度到所述多个虚拟机中的第一虚拟机,所述第一虚拟机与所述多个虚拟存储设备中存储所述目标数据的虚拟存储设备相关联,所述第一任务直接分析所述目标数据;以及
将所述数据分析作业中的第二任务调度到所述多个虚拟机中的第二虚拟机,所述第二任务分析由所述第一任务产生的中间结果。
16.根据权利要求12所述的存储系统,其中所述第二存储设备包括所述存储系统的高速缓存设备,所述调度器进一步被配置为:
响应于所述数据分析VM接收到所述数据分析请求,向所述高速缓存设备发送添加命令以使得所述高速缓存设备被指派用于数据分析;以及
响应于所述数据分析作业的完成,向所述高速缓存设备发送移除命令以停止指派所述高速缓存设备用于数据分析。
17.根据权利要求12所述的存储系统,其中所述数据分析作业包括第一任务和第二任务,所述第二任务基于所述第一任务产生的中间结果,所述存储VM进一步被配置为:
在所述数据分析作业的执行期间,将所述中间结果存储在所述存储系统中的高速缓存设备中。
18.根据权利要求12所述的存储系统,其中所述调度器被配置为响应于检测到数据存储作业的完成而发出所述数据分析请求。
19.根据权利要求12至18中任一项所述的存储系统,其中所述存储VM进一步被配置为:
将所述数据分析作业的执行结果存储至所述第一存储设备中。
20.根据权利要求12至18中任一项所述的存储系统,其中所述数据分析作业包括MapReduce作业。
21.根据权利要求12至18中任一项所述的存储系统,其中:
所述存储系统是备份系统;
所述数据存储作业是被配置为以备份时间段被执行的备份作业;并且
发出所述数据分析请求是响应于所述调度器检测到所述备份时间段过期而被执行的。
22.根据权利要求12至18中任一项所述的存储系统,其中所述数据存储作业包括以下之一:
将数据保存到所述第一存储设备;
从所述第一存储设备的数据复制;
关于所述第一存储设备的数据去重复;以及
从所述第一存储设备的数据恢复。
23.一种非易失性计算机可读介质,其上存储机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至11中任一项所述的方法的步骤。
CN201610459374.9A 2016-06-22 2016-06-22 存储系统中的数据分析 Active CN107528871B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610459374.9A CN107528871B (zh) 2016-06-22 2016-06-22 存储系统中的数据分析
US15/629,659 US10579419B2 (en) 2016-06-22 2017-06-21 Data analysis in storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610459374.9A CN107528871B (zh) 2016-06-22 2016-06-22 存储系统中的数据分析

Publications (2)

Publication Number Publication Date
CN107528871A CN107528871A (zh) 2017-12-29
CN107528871B true CN107528871B (zh) 2020-05-26

Family

ID=60677536

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610459374.9A Active CN107528871B (zh) 2016-06-22 2016-06-22 存储系统中的数据分析

Country Status (2)

Country Link
US (1) US10579419B2 (zh)
CN (1) CN107528871B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10776148B1 (en) * 2018-02-06 2020-09-15 Parallels International Gmbh System and method for utilizing computational power of a server farm
JP7047429B2 (ja) * 2018-02-07 2022-04-05 日本電気株式会社 記憶装置管理システム、記憶装置管理装置、記憶装置管理方法、及び、プログラム
CN111443872A (zh) * 2020-03-26 2020-07-24 深信服科技股份有限公司 分布式存储系统构建方法、装置、设备、介质
CN111782632A (zh) * 2020-06-28 2020-10-16 百度在线网络技术(北京)有限公司 数据处理方法、装置、设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103080894A (zh) * 2010-12-28 2013-05-01 株式会社日立制作所 存储系统、存储系统的管理方法和程序

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4126706B2 (ja) * 2006-03-03 2008-07-30 インターナショナル・ビジネス・マシーンズ・コーポレーション データバックアップのための装置、方法、及びプログラム
JP5026375B2 (ja) * 2008-09-09 2012-09-12 株式会社日立製作所 ストレージ装置及びストレージ装置の制御方法
US9122535B2 (en) * 2011-11-22 2015-09-01 Netapp, Inc. Optimizing distributed data analytics for shared storage
US8997198B1 (en) 2012-12-31 2015-03-31 Emc Corporation Techniques for securing a centralized metadata distributed filesystem
US10642800B2 (en) * 2013-10-25 2020-05-05 Vmware, Inc. Multi-tenant distributed computing and database
JP6252140B2 (ja) * 2013-11-29 2017-12-27 富士通株式会社 タスク割り付けプログラム及びタスク割り付け方法
US9460399B1 (en) 2013-12-30 2016-10-04 Emc Corporation Dynamic event driven storage system optimization
US9378082B1 (en) 2013-12-30 2016-06-28 Emc Corporation Diagnosis of storage system component issues via data analytics
US9396061B1 (en) 2013-12-30 2016-07-19 Emc Corporation Automated repair of storage system components via data analytics
CN106687919B (zh) * 2014-09-02 2020-10-09 起元科技有限公司 用于控制多个组件的执行的方法、系统和计算机可读介质
US9367344B2 (en) * 2014-10-08 2016-06-14 Cisco Technology, Inc. Optimized assignments and/or generation virtual machine for reducer tasks
US9729525B1 (en) 2015-06-29 2017-08-08 EMC IP Holding Company LLC Secure data analytics

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103080894A (zh) * 2010-12-28 2013-05-01 株式会社日立制作所 存储系统、存储系统的管理方法和程序

Also Published As

Publication number Publication date
US10579419B2 (en) 2020-03-03
US20170371707A1 (en) 2017-12-28
CN107528871A (zh) 2017-12-29

Similar Documents

Publication Publication Date Title
KR102031471B1 (ko) 자원 배치 최적화를 위한 기회적 자원 이주
US10726518B2 (en) Capacity reservation for virtualized graphics processing
US10754696B1 (en) Scale out capacity load-balancing for backup appliances
JP5577412B2 (ja) 計算機システム、マイグレーション方法及び管理サーバ
US20150074216A1 (en) Distributed and parallel data processing systems including redistribution of data and methods of operating the same
US11048447B2 (en) Providing direct data access between accelerators and storage in a computing environment, wherein the direct data access is independent of host CPU and the host CPU transfers object map identifying object of the data
US20150269187A1 (en) Apparatus and method for providing virtual machine image file
US9584435B2 (en) Global cloud computing environment resource allocation with local optimization
KR101656360B1 (ko) 자동 분산병렬 처리 하둡 시스템을 지원하는 클라우드 시스템
CN107528871B (zh) 存储系统中的数据分析
US20200301748A1 (en) Apparatuses and methods for smart load balancing in a distributed computing system
US20160335199A1 (en) Extending a cache of a storage system
US11886898B2 (en) GPU-remoting latency aware virtual machine migration
US9645841B2 (en) Dynamic virtual machine storage usage monitoring, provisioning, and migration
US8977752B2 (en) Event-based dynamic resource provisioning
US10812408B1 (en) Preventing concentrated selection of resource hosts for placing resources
JP2012079245A (ja) 仮想計算機のボリューム割当て方法およびその方法を用いた計算機システム
CN111367472A (zh) 虚拟化方法和装置
JP5692355B2 (ja) コンピュータシステム、制御システム、制御方法および制御プログラム
CN110447019B (zh) 存储器分配管理器及由其执行的用于管理存储器分配的方法
US10824640B1 (en) Framework for scheduling concurrent replication cycles
US11327889B2 (en) Multi-access to a data file stored in a data-storage system related to a buffer memory
US9176910B2 (en) Sending a next request to a resource before a completion interrupt for a previous request
US20190332413A1 (en) Migration of services of infrastructure management virtual machines to containers
WO2018173300A1 (ja) I/o制御方法およびi/o制御システム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200413

Address after: Massachusetts, USA

Applicant after: EMC IP Holding Company LLC

Address before: Ma Sazhusaizhou

Applicant before: EMC Corp.

GR01 Patent grant
GR01 Patent grant