具体实施方式
请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。
在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行之作业的步骤及符号来说明,除非另有述明。因此,其将可了解到这些步骤及操作,其中有数次提到为由计算机执行,包括了由代表了以一结构化型式中的数据之电子信号的计算机处理单元所操纵。此操纵转换该数据或将其维持在该计算机之内存系统中的位置处,其可重新配置或另外以本领域技术人员所熟知的方式来改变该计算机之运作。该数据所维持的数据结构为该内存之实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域技术人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
如本申请所使用的术语“组件”、“模块”、“系统”、“接口”、“进程”等等一般地旨在指计算机相关实体:硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于是运行在处理器上的进程、处理器、对象、可执行应用、执行的线程、程序和/或计算机。通过图示,运行在控制器上的应用和该控制器二者都可以是组件。一个或多个组件可以有在于执行的进程和/或线程内,并且组件可以位于一个计算机上和/或分布在两个或更多计算机之间。
而且,要求保护的主题可以被实现为使用标准编程和/或工程技术产生软件、固件、硬件或其任意组合以控制计算机实现所公开的主题的方法、装置或制造品。本文所使用的术语“制造品”旨在包含可从任意计算机可读设备、载体或介质访问的计算机程序。当然,本领域技术人员将认识到可以对该配置进行许多修改,而不脱离要求保护的主题的范围或精神。
图1和随后的讨论提供了对实现本发明所述的数据读写装置所在的电子设备的工作环境的简短、概括的描述。图1的工作环境仅仅是适当的工作环境的一个实例并且不旨在建议关于工作环境的用途或功能的范围的任何限制。实例电子设备112包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。
尽管没有要求,但是在“计算机可读指令”被一个或多个电子设备执行的通用背景下描述实施例。计算机可读指令可以经由计算机可读介质来分布(下文讨论)。计算机可读指令可以实现为程序模块,比如执行特定任务或实现特定抽象数据类型的功能、对象、应用编程接口(API)、数据结构等等。典型地,该计算机可读指令的功能可以在各种环境中随意组合或分布。
图1图示了包括本发明的数据读写装置的一个或多个实施例的电子设备112的实例。在一种配置中,电子设备112包括至少一个处理单元116和存储器118。根据电子设备的确切配置和类型,存储器118可以是易失性的(比如RAM)、非易失性的(比如ROM、闪存等)或二者的某种组合。该配置在图1中由虚线114图示。
在其他实施例中,电子设备112可以包括附加特征和/或功能。例如,设备112还可以包括附加的存储装置(例如可移除和/或不可移除的),其包括但不限于磁存储装置、光存储装置等等。这种附加存储装置在图1中由存储装置120图示。在一个实施例中,用于实现本文所提供的一个或多个实施例的计算机可读指令可以在存储装置120中。存储装置120还可以存储用于实现操作系统、应用程序等的其他计算机可读指令。计算机可读指令可以载入存储器118中由例如处理单元116执行。
本文所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。存储器118和存储装置120是计算机存储介质的实例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光存储装置、盒式磁带、磁带、磁盘存储装置或其他磁存储设备、或可以用于存储期望信息并可以被电子设备112访问的任何其他介质。任意这样的计算机存储介质可以是电子设备112的一部分。
电子设备112还可以包括允许电子设备112与其他设备通信的通信连接126。通信连接126可以包括但不限于调制解调器、网络接口卡(NIC)、集成网络接口、射频发射器/接收器、红外端口、USB连接或用于将电子设备112连接到其他电子设备的其他接口。通信连接126可以包括有线连接或无线连接。通信连接126可以发射和/或接收通信媒体。
术语“计算机可读介质”可以包括通信介质。通信介质典型地包含计算机可读指令或诸如载波或其他传输机构之类的“己调制数据信号”中的其他数据,并且包括任何信息递送介质。术语“己调制数据信号”可以包括这样的信号:该信号特性中的一个或多个按照将信息编码到信号中的方式来设置或改变。
电子设备112可以包括输入设备124,比如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外相机、视频输入设备和/或任何其他输入设备。设备112中也可以包括输出设备122,比如一个或多个显示器、扬声器、打印机和/或任意其他输出设备。输入设备124和输出设备122可以经由有线连接、无线连接或其任意组合连接到电子设备112。在一个实施例中,来自另一个电子设备的输入设备或输出设备可以被用作电子设备112的输入设备124或输出设备122。
电子设备112的组件可以通过各种互连(比如总线)连接。这样的互连可以包括外围组件互连(PCI)(比如快速PCI)、通用串行总线(USB)、火线(IEEE1394)、光学总线结构等等。在另一个实施例中,电子设备112的组件可以通过网络互连。例如,存储器118可以由位于不同物理位置中的、通过网络互连的多个物理存储器单元构成。
本领域技术人员将认识到,用于存储计算机可读指令的存储设备可以跨越网络分布。例如,可经由网络128访问的电子设备130可以存储用于实现本发明所提供的一个或多个实施例的计算机可读指令。电子设备112可以访问电子设备130并且下载计算机可读指令的一部分或所有以供执行。可替代地,电子设备112可以按需要下载多条计算机可读指令,或者一些指令可以在电子设备112处执行并且一些指令可以在电子设备130处执行。
本文提供了实施例的各种操作。在一个实施例中,所述的一个或多个操作可以构成一个或多个计算机可读介质上存储的计算机可读指令,其在被电子设备执行时将使得计算设备执行所述操作。描述一些或所有操作的顺序不应当被解释为暗示这些操作必需是顺序相关的。本领域技术人员将理解具有本说明书的益处的可替代的排序。而且,应当理解,不是所有操作必需在本文所提供的每个实施例中存在。
而且,本文所使用的词语“优选的”意指用作实例、示例或例证。奉文描述为“优选的”任意方面或设计不必被解释为比其他方面或设计更有利。相反,词语“优选的”的使用旨在以具体方式提出概念。如本申请中所使用的术语“或”旨在意指包含的“或”而非排除的“或”。即,除非另外指定或从上下文中清楚,“X使用A或B”意指自然包括排列的任意一个。即,如果X使用A;X使用B;或X使用A和B二者,则“X使用A或B”在前述任一示例中得到满足。
而且,尽管已经相对于一个或多个实现方式示出并描述了本公开,但是本领域技术人员基于对本说明书和附图的阅读和理解将会想到等价变型和修改。本公开包括所有这样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件(例如元件、资源等)执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文所示的本公开的示范性实现方式中的功能的公开结构不等同。此外,尽管本公开的特定特征已经相对于若干实现方式中的仅一个被公开,但是这种特征可以与如可以对给定或特定应用而言是期望和有利的其他实现方式的一个或多个其他特征组合。而且,就术语“包括”、“具有”、“含有”或其变形被用在具体实施方式或权利要求中而言,这样的术语旨在以与术语“包含”相似的方式包括。
请参照图2A,图2A为本发明的数据读写装置的第一优选实施例的结构示意图。本优选实施例的数据读写装置20可设置在上述的电子设备112中,用于在将迁移数据从第一存储系统25迁移到第二存储系统26的过程中,对迁移数据进行读写操作。本优选实施例的数据读写装置20包括迁移状态获取模块21、读写操作模块22以及接收模块29,接收模块29用于在将迁移数据从第一存储系统25迁移到第二存储系统26的过程中,接收在线业务请求,其中在线业务请求包括业务操作类型;迁移状态获取模块21用于获取在线业务请求对应的业务迁移状态,其中业务迁移状态包括迁移前、迁移中以及迁移后;读写操作模块22用于根据在线业务请求23的业务操作类型以及在线业务请求23对应的业务迁移状态,对与在线业务请求43相关的迁移数据进行业务操作。
其中在线业务请求23的业务操作类型是指该在线业务请求23对与该在线业务请求相关的迁移数据进行业务操作的类型,例如写操作、读操作或删除操作等。在线业务请求23对应的业务迁移状态是指在线业务请求23进行业务操作的迁移数据的状态,该业务迁移状态包括迁移前、迁移中以及迁移后。
下面参照图2B、图2C以及图2D具体说明读写操作模块22如何根据在线业务请求23的业务操作类型以及在线业务请求23的业务迁移状态,对迁移数据进行读写操作,图2B为本发明的数据读写装置的第一优选实施例的进行写操作的示意图,图2C为本发明的数据读写装置的第一优选实施例的进行删除操作的示意图,图2D为本发明的数据读写装置的第一优选实施例的进行读操作的示意图。
首先接收模块29接收到在线业务请求23,迁移状态获取模块21获取在线业务请求23的业务迁移状态。即通过迁移调度平台24(用于调度迁移数据)获取正在迁移的数据、未迁移的数据以及已迁移的数据,其中未迁移的数据的状态为迁移前,正在迁移的数据的状态的为迁移中,已迁移的数据的状态的迁移后。从而获取在线业务请求23对应的业务迁移状态,如与在线业务请求23相关的任何迁移数据为正在迁移的数据,则该在线业务请求23对应的业务迁移状态为迁移中,如与在线业务请求23相关的所有迁移数据均为未迁移的数据,则该在线业务请求23对应的业务迁移状态为迁移前,如与在线业务请求23相关的所有迁移数据均为已迁移的数据,则该在线业务请求23对应的业务迁移状态为迁移后。然后迁移状态获取模块21将在线业务请求23对应的业务迁移状态发送至读写操作模块22。
如图2B所示,如在线业务请求23的业务操作类型为写操作,则读写操作模块22对与在线业务请求23相关的迁移前状态的迁移数据在第一存储系统25进行写操作,对与在线业务请求23相关的迁移中状态的迁移数据在第二存储系统26进行写操作,对与在线业务请求23相关的迁移后状态的迁移数据在第二存储系统26进行写操作。
由于迁移前状态的迁移数据会在后续操作中迁移至第二存储系统26中,因此在第一存储系统25中进行写操作不会影响将来第二存储系统26中的迁移数据的准确性。对迁移中状态的迁移数据在第二存储系统26进行写操作,由于写操作数据与迁移操作的数据均在第二存储系统26上,不会影响到正在进行中的迁移操作,只需要设定迁移操作不能修改写操作已经操作过的数据。对迁移后状态的迁移数据,当然是直接在第二存储系统26中进行写操作的效率最高。
如图2C所示,如在线业务请求23的业务操作类型为删除操作,则读写操作模块22对与在线业务请求23相关的迁移前状态的迁移数据在第一存储系统25进行删除操作,对与在线业务请求23相关的迁移中状态的迁移数据在第二存储系统26进行删除标记写操作,对与在线业务请求23相关的迁移后状态的迁移数据在第二存储系统26进行删除操作。
由于迁移前状态的迁移数据会在后续操作中迁移至第二存储系统26中,因此在第一存储系统25中进行删除操作不会影响将来第二存储系统26中迁移数据的准确性。对迁移中状态的迁移数据在第二存储系统26进行写入删除标记操作,由于删除标记与迁移操作的数据均在第二存储系统26上,不会影响到正在进行中的迁移操作,但需要设定读写操作模块22对删除标记对应的迁移数据不会进行其他的修改业务操作(如写操作以及删除操作,应允许读操作)。即进行业务操作时会判断该迁移数据是不存在还是被业务操作标记了删除标记,如为标记了删除标记,则读写操作模块22直接返回数据不存在,否则读写操作模块22正常进行相应的业务操作。对迁移后状态的迁移数据,当然是直接在第二存储系统26中进行删除操作的效率最高。
优选的,本优选实施例的数据读写装置20还包括标记删除模块(图中未示出),当数据迁移全部完成后,可通过该标记删除模块将删除标记全部删除(如内部滚动数据过滤的方法),以保证第二存储系统26中数据的准确性。
如图2D所示,如在线业务请求23的业务操作类型为读操作,则读写操作模块22对与在线业务请求23相关的迁移前状态的迁移数据在第一存储系统25进行读操作;对与在线业务请求23相关的迁移中状态的迁移数据依次在第二存储系统26和第一存储系统25进行读操作;对与在线业务请求23相关的迁移后状态的迁移数据在第二存储系统26进行读操作。
迁移前状态的迁移数据在第一存储系统25中进行读操作,迁移后状态的迁移数据在第二存储系统26中进行读操作可保证读取数据的准确性。对迁移中状态的迁移数据则首先在第二存储系统26进行读操作,如该迁移数据已经迁移至第二存储系统26,则该读操作成功,读写操作模块22可继续进行其他业务操作;如该迁移数据还未迁移至第二存储系统26,则该读操作失败,读写操作模块22会继续在第一存储系统25继续进行读操作,以读取到该迁移中状态的迁移数据。
优选的,本优选实施例的迁移状态获取模块21和读写操作模块22可分开设置也可设置在同一模块中。
这样即可实现数据读写装置20对三种业务迁移状态下的迁移数据,随时在线进行读操作、写操作或删除操作。
这样即完成了本优选实施例的数据读写装置20的数据读写过程。
本优选实施例的数据读写装置针对在线业务请求的业务操作类型和业务迁移状态在线进行相应的数据处理,保证了数据处理的准确性以及实时性。
请参照图2A、图2B、图2C、图2D和图3,图3为本发明的数据读写方法的第一优选实施例的流程图。本优选实施例的数据读写方法可通过上述的数据读写装置的第一优选实施例进行实施。该数据读写方法包括:
步骤S301,在将迁移数据从第一存储系统迁移到第二存储系统的过程中,接收在线业务请求;
步骤S302,获取在线业务请求对应的业务迁移状态;
步骤S303,根据在线业务请求的业务操作类型以及在线业务请求对应的业务迁移状态,对与在线业务请求相关的迁移数据进行业务操作;
本优选实施例的数据读写方法结束于步骤S303。
下面详细说明本优选实施例的数据读写方法的各步骤的详细流程。
在步骤S301中,在将迁移数据从第一存储系统迁移到第二存储系统的过程中,接收模块29接收到在线业务请求23,随后转到步骤S302。
在步骤S302中,迁移状态获取模块21获取在线业务请求23的业务迁移状态。即通过迁移调度平台24获取正在进行迁移的数据、未迁移的数据以及已迁移的数据,其中未迁移的数据的状态为迁移前,进行迁移的数据的状态的为迁移中,已迁移的数据的状态的迁移后。从而获取在线业务请求23对应的业务迁移状态,如与在线业务请求23相关的任何迁移数据为正在迁移的数据,则该在线业务请求23对应的业务迁移状态为迁移中,如与在线业务请求23相关的所有迁移数据均为未迁移的数据,则该在线业务请求23对应的业务迁移状态为迁移前,如与在线业务请求23相关的所有迁移数据均为已迁移的数据,则该在线业务请求23对应的业务迁移状态为迁移后。然后迁移状态获取模块21将在线业务请求23对应的业务迁移状态发送至读写操作模块22。随后转到步骤S303。
在步骤S303中,如在线业务请求23的业务操作类型为写操作,则读写操作模块22对与在线业务请求23相关的迁移前状态的迁移数据在第一存储系统25进行写操作,对与在线业务请求23相关的迁移中状态的迁移数据在第二存储系统26进行写操作,对与在线业务请求23相关的迁移后状态的迁移数据在第二存储系统26进行写操作。
由于迁移前状态的迁移数据会在后续操作中迁移至第二存储系统26中,因此在第一存储系统25中进行写操作不会影响将来第二存储系统26中的迁移数据的准确性。对迁移中状态的迁移数据在第二存储系统26进行写操作,由于写操作数据与迁移操作的数据均在第二存储系统26上,不会影响到正在进行中的迁移操作,只需要设定迁移操作不能修改写操作已经操作过的数据。对迁移后状态的迁移数据,当然是直接在第二存储系统26中进行写操作的效率最高。
如在线业务请求23的业务操作类型为删除操作,则读写操作模块22对与在线业务请求23相关的迁移前状态的迁移数据在第一存储系统25进行删除操作,对与在线业务请求23相关的迁移中状态的迁移数据在第二存储系统26进行删除标记写操作,对与在线业务请求23相关的迁移后状态的迁移数据在第二存储系统26进行删除操作。
由于迁移前状态的迁移数据会在后续操作中迁移至第二存储系统26中,因此在第一存储系统25中进行删除操作不会影响将来第二存储系统26中迁移数据的准确性。对迁移中状态的迁移数据在第二存储系统26进行写入删除标记操作,由于删除标记与迁移操作的数据均在第二存储系统26上,不会影响到正在进行中的迁移操作,但需要设定读写操作模块22对删除标记对应的迁移数据不会进行其他的修改业务操作(如写操作以及删除操作,应允许读操作)。即进行业务操作时会判断该迁移数据是不存在还是被业务操作标记了删除标记,如为标记了删除标记,则读写操作模块22直接返回数据不存在,否则读写操作模块22正常进行相应的业务操作。对迁移后状态的迁移数据,当然是直接在第二存储系统26中进行删除操作的效率最高。
优选的,当数据迁移全部完成后,可通过该标记删除模块将删除标记全部删除(如内部滚动数据过滤的方法),以保证第二存储系统26中数据的准确性。
如在线业务请求23的业务操作类型为读操作,则读写操作模块22对与在线业务请求23相关的迁移前状态的迁移数据在第一存储系统25进行读操作;对与在线业务请求23相关的迁移中状态的迁移数据依次在第二存储系统26和第一存储系统25进行读操作;对与在线业务请求23相关的迁移后状态的迁移数据在第二存储系统26进行读操作。
迁移前状态的迁移数据在第一存储系统25中进行读操作,迁移后状态的迁移数据在第二存储系统26中进行读操作可保证读取数据的准确性。对迁移中状态的迁移数据则首先在第二存储系统26进行读操作,如该迁移数据已经迁移至第二存储系统26,则该读操作成功,读写操作模块22可继续进行其他业务操作;如该迁移数据还未迁移至第二存储系统26,则该读操作失败,读写操作模块22会继续在第一存储系统25继续进行读操作,以读取到该迁移中状态的迁移数据。
这样即完成了本优选实施例的数据读写方法的数据读写过程。
本优选实施例的数据读写方法针对在线业务请求的业务操作类型和业务迁移状态在线进行相应的数据处理,保证了数据处理的准确性以及实时性。
请参照图4,图4为本发明的数据读写装置的第二优选实施例的结构示意图。本优选实施例的数据读写装置40可设置在上述的电子设备112中,用于在将迁移数据从第一存储系统45迁移至第二存储系统46的过程中,对迁移数据进行读写操作。本优选实施例的数据读写装置40包括接收模块410、迁移状态获取模块41、读写操作模块42、分类模块47、任务组生成模块48以及迁移模块49。接收模块410,用于在将迁移数据从第一存储系统迁移到第二存储系统的过程中,接收在线业务请求;迁移状态获取模块41用于获取在线业务请求的业务迁移状态;读写操作模块42用于根据在线业务请求43的业务操作类型以及在线业务请求43对应的业务迁移状态,对与在线业务请求43相关的迁移数据进行读写操作。分类模块47用于将第一存储系统45和第二存储系统46以硬盘为单位进行分类,得到第一存储系统45的数据单元以及第二存储系统46的数据单元;任务组生成模块48用于根据并发任务数量、第一存储系统45的数据单元以及第二存储系统46的数据单元,生成迁移调度平台44中的数据迁移任务组441(即全部迁移数据中的迁移中数据);迁移模块49用于根据数据迁移任务组441,将迁移数据从第一存储系统45迁移到第二存储系统46。
请参照图5,图5为本发明的数据读写装置的第二优选实施例的任务组生成模块的具体结构示意图。该任务组生成模块48包括均衡任务获取单元482、任务组生成单元483以及任务删除单元481。均衡任务获取单元482用于根据所有空闲的任务、所有空闲的第一存储系统45的数据单元以及所有空闲的第二存储系统46的数据单元,获取空闲的任务中的均衡任务;任务组生成单元483用于将均衡任务从空闲的任务中去除,并将均衡任务加入数据迁移任务组441。任务删除单元481用于将已经完成的任务从数据迁移任务组441中删除。
请参照图6,图6为本发明的数据读写装置的第二优选实施例的均衡任务获取单元的具体结构示意图。该均衡任务获取单元482包括最大入度数据单元设定子单元4821、最大出度数据单元获取子单元4822以及均衡任务设定子单元4823。最大入度数据单元设定子单元4821用于设定对应空闲的任务的数量最多的空闲的第二存储系统46的数据单元为最大入度数据单元;最大出度数据单元获取子单元4822用于根据最大入度数据单元对应的所有的空闲的任务,获取空闲的第一存储系统45的最大出度数据单元,其中最大出度数据单元对应最大入度数据单元具有最大空闲的任务的数量;均衡任务设定子单元4823用于将同时对应最大入度数据单元与最大出度数据单元的任一空闲的任务设定为均衡任务。
本优选实施例的数据读写装置40的接收模块410、迁移状态获取模块41和读写操作模块42的工作原理与上述的数据读写装置20的第一优选实施例中的描述相同,具体请参见上述数据读写装置20的第一优选实施例中的描述。
本优选实施例的数据读写装置40还包括迁移调度平台44、分类模块47、任务组生成模块48以及迁移模块49,以提高迁移数据从第一存储系统45迁移到第二存储系统46的迁移速度。
本优选实施例的数据读写装置40进行数据迁移时,首先分类模块47将第一存储系统45和第二存储系统46以硬盘为单位进行分类,得到第一存储系统45的数据单元以及第二存储系统46的数据单元,即将第一存储系统45和第二存储系统46中的硬盘作为迁移的基本单元,具体的迁移任务一定落在某个第一存储系统45的数据单元和某个第二存储系统46的数据单元上。
随后任务组生成模块48根据预设的并发任务数量、第一存储系统45的数据单元以及第二存储系统46的数据单元,生成迁移调度平台44中的数据迁移任务组441。
具体为首先任务组生成模块48的任务删除单元481将已经完成的任务从数据迁移任务组441中删除,如数据迁移任务组441中没有任务则自动跳过该步骤(一旦有任务完成,即触发该任务删除单元481将该任务删除)。随后任务组生成模块48的均衡任务获取单元482根据所有空闲的任务、所有空闲的第一存储系统45的数据单元以及所有空闲的第二存储系统46的数据单元,获取空闲的任务中的均衡任务。其中空闲的任务是指还未进行的数据迁移任务,空闲的第一存储系统45的数据单元为未进行数据迁移的第一存储系统45的数据单元,空闲的第二存储系统46的数据单元为未进行数据迁移的第二存储系统46的数据单元。已完成自身数据迁移的第一存储系统45的数据单元不属于空闲的第一存储系统45的数据单元,已完成自身数据迁移的第二存储系统46的数据单元也不属于第二存储系统46的数据单元。具体如何获取均衡任务在下面有详细描述。然后任务组生成模块48的任务组生成单元483将均衡任务从空闲的任务中去除,并将均衡任务加入到数据迁移任务组441中。
之后均衡任务获取单元482继续获取均衡任务,任务组生成单元483继续将其他的均衡任务加入到数据迁移任务组441中,直至数据迁移任务组441中的任务数量达到预设的并发任务数量。
由于第二存储系统46和第一存储系统45上的硬盘(即数据单元)提供固定的读写能力,如果同时在同一数据单元上进行多个迁移任务,会使得迁移速度受限,数据单元上存在局部热点。因此为了保证迁移任务进行的效率,数据迁移任务组441中的任一任务对应的第一存储系统45的数据单元均不同,数据迁移任务组441中的任一任务对应的第二存储系统46的数据单元也均不同,这样当空闲的第一存储系统45的数据单元的数量为零(即所有的第一存储系统45的数据单元均在迁移数据)或空闲的第二存储系统46的数据单元的数量为零(即所有的第二存储系统46的数据单元均在迁移数据)时,任务组生成单元483也停止将任务加入到数据迁移任务组441中,以保证迁移任务的高效进行。因此数据迁移任务组441中的迁移任务一直处于动态变化中,完成的任务会被移出数据迁移任务组441,同时新的任务又会及时地移入数据迁移任务组441。
最后迁移模块49并行执行数据迁移任务组441中的所有任务,将迁移数据从第一存储系统45迁移至第二存储系统46。
下面详细说明均衡任务获取单元482如何获取均衡任务。其中均衡任务获取单元482包括最大入度数据单元设定子单元4821、最大出度数据单元设定子单元4822以及均衡任务设定子单元4823。最大入度数据单元设定子单元4821用于设定对应空闲的任务的数量最多的空闲的第二存储系统46的数据单元为最大入度数据单元;最大出度数据单元获取子单元4822用于根据最大入度数据单元对应的所有的空闲的任务,获取空闲的第一存储系统45的最大出度数据单元,其中对应最大入度数据单元的最大出度数据单元具有最大空闲的任务的数量。均衡任务设定子单元4823用于将同时对应最大入度数据单元与最大出度数据单元的任一空闲的任务设定为均衡任务。
如具有10个空闲的任务A1-A10,其中A1-A2对应的第一存储系统45的数据单元B1,A3-A5对应第一存储系统45的数据单元B2,A6-A10对应第一存储系统45的数据单元B3;同时A1-A5对应第二存储系统46的数据单元C1,A6-A8对应第二存储系统46的数据单元C2,A9-A10对应第二存储系统46的数据单元C3。则最大入度数据单元设定子单元设定第二存储系统46的数据单元C1为最大入度数据单元,最大入度数据单元C1对应的空闲的任务A1-A5,其中第一存储系统45的数据单元B2与最大入度数据单元C1具有最大空闲的任务的数量(3个),因此设定第一存储系统45的数据单元B2为最大出度数据单元。最后均衡任务设定子单元随机选定A3-A5中的任一任务作为均衡任务。
本实施例获取均衡任务的方法以满足最大入度数据单元的迁移要求为基础(由于写的速度低于读的速度),保证了现有迁移量最大的数据单元优先进行迁移任务,从而缩短了整个数据迁移时间。
本优选实施例的数据读写装置在第一优选实施例的基础上设置有分类模块、任务组生成模块以及迁移模块来控制数据的迁移,最大程度的提升了迁移数据从第一存储系统迁移到第二存储系统的迁移效率。
请参照图4、图5、图6以及图7,图7为本发明的数据读写方法的第二优选实施例的流程图。本优选实施例的数据读写方法可通过上述的数据读写装置40的第二优选实施例进行实施,本优选实施例的数据读写方法中根据在线业务请求的迁移数据的业务操作类型以及在线业务请求的迁移数据的数据迁移状态,对迁移数据进行读写操作的具体步骤与上述数据读写方法的第一优选实施例中描述相同,具体请参见上述数据读写方法的第一优选实施例中的描述。
本优选实施例的数据读写方法具有以下步骤以提高迁移数据从第一存储系统迁移到第二存储系统的迁移速度。具体包括:
步骤S701,将第一存储系统和第二存储系统以硬盘为单位进行分类,得到第一存储系统的数据单元以及第二存储系统的数据单元;
步骤S702,根据并发任务数量、第一存储系统的数据单元以及第二存储系统的数据单元,生成数据迁移任务组;
步骤S703,根据数据迁移任务组,将迁移数据从第一存储系统迁移到第二存储系统;
本优选实施例的数据读写方法结束于步骤S703。
下面详细说明本优选实施例的数据读写方法的各步骤的详细流程。
在步骤S701中,分类模块47将第一存储系统45和第二存储系统46以硬盘为单位进行分类,得到第一存储系统45的数据单元以及第二存储系统46的数据单元,即将第一存储系统45和第二存储系统46中的硬盘作为迁移的基本单元,具体的迁移任务一定落在某个第一存储系统45的数据单元和某个第二存储系统46的数据单元上。随后转到步骤S702。
在步骤S702中,任务组生成模块48根据预设的并发任务数量、第一存储系统45的数据单元以及第二存储系统46的数据单元,生成迁移调度平台44中的数据迁移任务组441。具体请参见图8,图8为本发明的数据读写方法的第二优选实施例的步骤S702的详细流程图。其包括:
步骤S801,将已经完成的任务从数据迁移任务组中删除;
步骤S802,根据所有空闲的任务、所有空闲的第一存储系统的数据单元以及所有空闲的第二存储系统的数据单元,获取空闲的任务中的均衡任务;
步骤S803,将均衡任务从空闲的任务中去除,并将均衡任务加入数据迁移任务组;
步骤S804,判断是否满足设定条件,如不满足设定条件则返回步骤S802,如满足设定条件则转到步骤S805;
步骤S805,数据迁移任务组生成完毕。
在步骤S801中,任务组生成模块48的任务删除单元481将已经完成的任务从数据迁移任务组441中删除,如数据迁移任务组441中没有任务则自动跳过该步骤(一旦有任务完成即触发该任务删除单元将该任务删除)。随后转到步骤S802。
在步骤S802中,任务组生成模块48的均衡任务获取单元482根据所有空闲的任务、所有空闲的第一存储系统45的数据单元以及所有空闲的第二存储系统46的数据单元,获取空闲的任务中的均衡任务。其中空闲的任务是指还未进行的数据迁移任务,空闲的第一存储系统45的数据单元为未进行数据迁移的第一存储系统45的数据单元,空闲的第二存储系统46的数据单元为未进行数据迁移的第二存储系统46的数据单元。已完成自身数据迁移的第一存储系统45的数据单元不属于空闲的第一存储系统45的数据单元,已完成自身数据迁移的第二存储系统46的数据单元也不属于第二存储系统46的数据单元。具体如何获取均衡任务在下面有详细描述。随后转到步骤S803。
在步骤S803中,任务组生成模块48的任务组生成单元483将均衡任务从空闲的任务中去除,并将均衡任务加入到数据迁移任务组441中。随后转到步骤S804。
在步骤S804中,判断是否满足设定条件,该设定条件可为数据迁移任务组441中的任务数量达到预设的并发任务数量、空闲的第一存储系统45的数据单元的数量为零或空闲的第二存储系统46的数据单元的数量为零。如不满足设定条件则返回步骤S802继续获取均衡任务,如满足设定条件则转到步骤S805。
由于第二存储系统46和第一存储系统45上的硬盘(即数据单元)提供固定的读写能力,如果同时在同一数据单元上进行多个迁移任务,会使得迁移速度受限,数据单元上存在局部热点。因此为了保证迁移任务进行的效率,数据迁移任务组441中的任一任务对应的第一存储系统45的数据单元均不同,数据迁移任务组441中的任一任务对应的第二存储系统46的数据单元也均不同,这样当数据迁移任务组44中的任务数量达到预设的并发任务数量、空闲的第一存储系统45的数据单元的数量为零(即所有的第一存储系统45的数据单元均在迁移数据)或空闲的第二存储系统46的数据单元的数量为零(即所有的第二存储系统46的数据单元均在迁移数据)时,任务组生成单元483停止将任务加入到数据迁移任务组441中,以保证迁移任务的高效进行。因此数据迁移任务组441中的迁移任务一直处于动态变化中,完成的任务会被移出数据迁移任务组441,同时新的任务又会及时的移入数据迁移任务组441。
在步骤S805中,数据迁移任务组44生成完毕。随后转到步骤S703。
在步骤S703中,迁移模块49并行执行数据迁移任务组44中的所有任务,将迁移数据从第一存储系统45迁移至第二存储系统46。
请参照图9,图9为本发明的数据读写方法的第二优选实施例的步骤S802的详细流程图。下面通过图9详细说明如何获取均衡任务,其包括:
步骤S901,最大入度数据单元设定子单元4821设定对应空闲的任务的数量最多的空闲的第二存储系统46的数据单元为最大入度数据单元;
步骤S902,最大出度数据单元获取子单元4822根据最大入度数据单元对应的所有的空闲的任务,获取空闲的第一存储系统45的最大出度数据单元,其中对应最大入度数据单元的最大出度数据单元具有最大空闲的任务的数量;
步骤S903,均衡任务设定子单元4823将同时对应最大入度数据单元与最大出度数据单元的任一空闲的任务设定为均衡任务。
如具有10个空闲的任务A1-A10,其中A1-A2对应的第一存储系统45的数据单元B1,A3-A5对应第一存储系统45的数据单元B2,A6-A10对应第一存储系统45的数据单元B3;同时A1-A5对应第二存储系统46的数据单元C1,A6-A8对应第二存储系统46的数据单元C2,A9-A10对应第二存储系统46的数据单元C3。则最大入度数据单元设定子单元设定第二存储系统46的数据单元C1为最大入度数据单元,最大入度数据单元C1对应的空闲的任务A1-A5,其中第一存储系统45的数据单元B2与最大入度数据单元C1具有最大空闲的任务的数量(3个),因此设定第一存储系统45的数据单元B2为最大出度数据单元。最后均衡任务设定子单元随机选定A3-A5中的任一任务作为均衡任务。
本实施例获取均衡任务的方法以满足最大入度数据单元的迁移要求为基础(由于写的速度低于读的速度),保证了现有迁移量最大的数据单元优先进行迁移任务,从而缩短了整个数据迁移时间。
本优选实施例的数据读写方法在第一优选实施例的基础上设置有分类模块、任务组生成模块以及迁移模块来控制数据的迁移,最大程度的提升了迁移数据从第一存储系统迁移到第二存储系统的迁移效率。
下面通过一具体实施例说明使用本发明的数据读写方法和数据读写装置的数据迁移的具体工作流程。请参照图10,图10为使用本发明的数据读写方法及数据读写装置的数据迁移的具体实施例的流程图。
首先进行迁移环境检查步骤(S1001),如检查是否所有在线业务请求都能访问到数据读写装置,第二存储系统的存储容量以及是否存在相同的在线数据迁移任务等。
如环境检查合格(步骤S1002),则通过迁移模块启动数据迁移(步骤S1003)。
然后进行迁移准备(如将第一存储系统中的缓存落盘等)以及生成数据迁移任务组中并发任务(步骤S1004)。
随后进行迁移操作直至迁移完成(步骤S1005),在迁移过程中,所有在线业务请求均能通过数据读写装置进行业务操作。并且可通过任务组生成模块及时更新数据迁移任务组以及通过迁移模块对迁移操作进行控制,如果出现迁移任务失败,支持对失败的迁移任务进行重试。
这样即完成整个数据迁移过程。
本发明的数据读写方法及数据读写装置针对迁移数据的业务操作类型和数据迁移状态进行相应的数据处理;解决了现有的数据读写方法及数据读写装置的在线数据操作的效率较低以及数据迁移的数据遗失风险较高的技术问题。
本发明实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。上述的各装置或系统,可以执行相应方法实施例中的方法。
综上所述,虽然本发明已以优选实施例揭露如上,但上述优选实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。