CN103136043A - 一种异步io的迁移方法、系统和网络节点 - Google Patents
一种异步io的迁移方法、系统和网络节点 Download PDFInfo
- Publication number
- CN103136043A CN103136043A CN2013100318683A CN201310031868A CN103136043A CN 103136043 A CN103136043 A CN 103136043A CN 2013100318683 A CN2013100318683 A CN 2013100318683A CN 201310031868 A CN201310031868 A CN 201310031868A CN 103136043 A CN103136043 A CN 103136043A
- Authority
- CN
- China
- Prior art keywords
- asynchronous
- request
- data
- migrated
- treatment state
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种异步IO方法、系统和网络节点,该方法包括:当检测到迁移指令时,确定该迁移指令所指示的目标应用程序;冻结该目标应用程序;确定与该目标应用程序相关的IO请求中的异步IO请求,并获取该异步IO请求的当前处理状态;依据预置的处理状态与处理规则的对应关系,获取与异步IO请求的当前处理状态相关的待迁移数据;将待迁移数据传输至目标节点,以便目标节点的操作系统依据待迁移数据完成对所述异步IO请求的处理,并将对异步IO请求的处理结果通知目标应用程序。该方法可以提高处理异步IO请求的可靠性。
Description
技术领域
本申请涉及通信和信息处理技术领域,特别涉及一种异步IO的迁移方法、系统和网络节点。
背景技术
应用程序在运行过程中经常需要对文件系统进行读写操作。该应用程序一般会将访问的文件数据封装成一个输入输出请求即IO请求,并将该IO请求提交给操作系统,进而由操作系统对该IO请求进行处理,以完成IO操作并通知该应用程序。
异步IO请求是IO请求的一种,应用程序向操作系统提交异步IO请求后,该应用程序可进行其他处理,无需进行等待,当IO操作完成时,操作系统会通知该应用程序,从而提高了系统的吞吐量。目前,通过异步IO请求进行文件系统的读写操作被广泛应用。但是当节点的操作系统在处理应用程序提交的异步IO请求的过程中,经常会出现由于需要对操作系统升级或节点故障等原因,导致应用程序暂停服务。
发明内容
本申请所要解决的技术问题是提供一种异步IO的迁移方法、系统和网络节点,以提高系统处理异步IO请求的可靠性。
为解决以上问题本申请提供了如下技术方案:
本申请的第一方面提供了一种异步IO的迁移方法,包括:
当检测到迁移指令时,确定所述迁移指令所指示的目标应用程序;
冻结所述目标应用程序;
确定与所述目标应用程序相关的IO请求中的异步IO请求,并获取所述异步IO请求的当前处理状态;
依据预置的处理状态与处理规则的对应关系,获取与所述异步IO请求的当前处理状态相关的待迁移数据;
将所述待迁移数据传输至目标节点,以便所述目标节点的操作系统依据所述待迁移数据完成对所述异步IO请求的处理,并将对所述异步IO请求的处理结果通知所述目标应用程序。
结合第一方面或第一方面的第一种可能实现方式,在第二种可能实现方式中,所述获取所述异步IO请求的当前处理状态,包括:
获取是否已经启动对所述异步IO请求的处理、是否完成所述异步IO请求对应的异步IO操作和/或是否将IO操作结果通知给所述目标应用程序的状态信息。
结合第一方面或第一方面的第一种可能实现方式,在第三种可能实现方式中,所述预置的处理状态与处理规则的对应关系,包括:
当所述异步IO请求的处理状态为未被启动时,则将所述异步IO请求的请求数据作为待迁移数据。
结合第一方面或第一方面的第一种可能实现方式,在第四种可能实现方式中,所述预置的处理状态与处理规则的对应关系,包括:
当所述异步IO请求的处理状态为已被启动但并未完成所述异步IO请求对应的IO操作时,则继续运行执行所述异步IO请求直至完成所述异步IO请求所请求的IO操作,并将对所述IO操作结果数据作为待迁移数据。
结合第一方面或第一方面的第一种可能实现方式,在第五种可能实现方式中,所述预置的处理状态与处理规则的对应关系,包括:
当所述异步IO请求的处理状态为完成所述异步IO请求所请求的IO操作但并未将所述IO操作结果通知所述目标应用程序时,将所述IO操作结果数据作为待迁移数据。
结合第一方面或第一方面的第一种可能实现方式,在第六种可能实现方式中,所述将所述待迁移数据传输至目标节点,包括:
从集群系统中选择负载较低的节点作为目标节点,并将所述待迁移数据传输至所述目标节点。
结合第一方面或第一方面的第一种可能实现方式,在第七种可能实现方式中,所述检测到迁移指令,包括:
检测到由用户输入的迁移指令;
或者,检测到周期性生成的迁移指令。
本申请的第二方面提供了一种异步IO的迁移系统,包括:
对象确定单元,用于当检测到迁移指令时,确定所述迁移指令所指示的目标应用程序;
冻结单元,用于冻结所述目标应用程序;
状态获取单元,用于确定与所述目标应用程序相关的IO请求中的异步IO请求,并获取所述异步IO请求的当前处理状态;
迁移数据确定单元,用于依据预置的处理状态与处理规则的对应关系,获取与所述异步IO请求的当前处理状态相关的待迁移数据;
数据迁移单元,用于将所述待迁移数据传输至目标节点,以便所述目标节点的操作系统依据所述待迁移数据完成对所述异步IO请求的处理,并将对所述异步IO请求的处理结果通知所述目标应用程序。
结合第二方面或第二方面的第一种可能实现方式,在第二种可能实现方式中,所述状态获取单元获取到的处理状态包括:
获取是否已经启动对所述异步IO请求的处理、是否完成所述异步IO请求对应的异步IO操作和/或是否将IO操作结果通知给所述异步IO请求对应的应用程序的状态信息。
结合第二方面或第二方面的第一种可能实现方式,在第三种可能实现方式中,所述迁移数据确定单元,包括:
第一迁移数据确定单元,用于当所述异步IO请求的处理状态为未被启动时,则将所述异步IO请求的请求数据作为待迁移数据。
结合第二方面或第二方面的第一种可能实现方式,在第四种可能实现方式中,所述迁移数据确定单元,包括:
第二迁移数据确定单元,用于当所述异步IO请求的处理状态为已被启动但并未完成所述异步IO请求对应的IO操作时,则继续执行所述异步IO请求直至完成所述异步IO请求所请求的IO操作,并将对所述IO操作结果数据作为待迁移数据。
结合第二方面或第二方面的第一种可能实现方式,在第五种可能实现方式中,所述迁移数据确定单元,包括:
第三迁移数据确定单元,用于当所述异步IO请求的处理状态为完成所述异步IO请求所请求的IO操作但并未将所述IO操作结果通知所述目标应用程序时,将所述IO操作结果数据作为待迁移数据。
结合第二方面或第二方面的第一种可能实现方式,在第六种可能实现方式中,所述数据迁移单元,包括:
目标节点确定单元,用于从集群系统中选择负载较低的节点作为目标节点,并将所述待迁移数据传输至所述目标节点。
结合第二方面或第二方面的第一种可能实现方式,在第七种可能实现方式中,所述对象确定单元,包括:
第一对象确定单元,用于检测到由用户输入的迁移指令,确定所述迁移指令所指示的目标应用程序;
或者,第二对象确定单元,用于检测周期性触发生成的迁移指令,并确定所述迁移指令所指示的目标应用程序。
本申请的第三方面提供了一种网络节点,所述网络节点至少包括存储器和处理器;
其中,所述存储器用于至少存储应用程序相关的IO请求中的异步IO请求的当前处理状态,以及与所述当前处理状态相关的待迁移数据;
所述处理器用于当检测到迁移指令时,确定所述迁移指令所指示的目标应用程序,冻结所述目标应用程序,并确定与所述目标应用程序相关的IO请求中的异步IO请求,并从所述存储器中获取所述异步IO请求的当前处理状态;依据预置的处理状态与处理规则的对应关系,从所述存储器中获取与所述异步IO请求的当前处理状态相关的待迁移数据;将所述待迁移数据传输至目标节点,以便所述目标节点的操作系统依据所述待迁移数据完成对所述异步IO请求的处理,并将对所述异步IO请求的处理结果通知所述目标应用程序。
与现有技术相比,本申请包括以下优点:当本地操作系统需要升级等原因使得本地操作系统无法继续对该应用程序进行处理时,则可以通过对应用程序产生的异步IO请求的迁移操作,将未完成的异步IO请求的相关数据迁移到目标节点,进而由目标节点的操作系统继续完成相应的异步IO请求的处理,从而减少了在本地系统需要升级等情况下应用程序的中断。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的一种异步IO的迁移方法一个实施例的流程示意图;
图2是本申请中一种异步IO的迁移方法另一个实施例的流程示意图;
图3是本申请一种异步IO的迁移系统一个实施例的结构示意图;
图4是本申请一种网络节点的一个实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。
参考图1,其示出了本申请一种异步IO的迁移方法一个实施例的流程示意图,本实施例的方法包括:
步骤101:当检测到迁移指令时,确定该迁移指令所指示的目标应用程序。
节点的操作系统可以接收并处理不同应用程序提交的多个IO请求。为了区分出需要迁移的对象,在该迁移指令中包含了目标应用程序的信息,进而根据该迁移指令可以确定出目标应用程序。
在实际应用中,需要进行应用程序的异步IO请求的迁移可能会有多种情况。相应的,触发生成迁移指令的方式也有多种,其中,该迁移指令可以由操作系统生成,如,操作系统可以按照预设的时间周期,在达到预设的迁移时刻时生成迁移指令,以触发迁移操作;又如,当检测到系统需要进行升级或者其他某种可能出现的故障,如内存条过热等问题时,操作系统也可以生成迁移指令,以触发迁移操作,从而避免应用程序无法继续被处理以及应用程序发起的IO请求无法被操作系统处理的情况。
另外,用户也可以根据需要触发迁移操作,如,当在某个节点上运行某个应用程序的过程中,如果需要将对该应用程序提交的异步IO请求迁移到其他节点的操作系统中进行处理时,用户则可以输入迁移指令,当系统检测到的用户输入的迁移指令时,依据该迁移指令指示的目标应用程序,触发相应的迁移操作。
步骤102:冻结该目标应用程序。
在本申请实施例中,确定出迁移指令指示的目标应用程序时,冻结该目标应用程序,使得该目标应用程序暂停到某一个状态,该目标应用程序暂时不能执行任何指令。
步骤103:确定与该目标应用程序相关的IO请求中的异步IO请求,并获取异步IO请求的当前处理状态。
其中,该目标应用程序相关的IO请求是由该目标应用程序提交的且操作系统未向该目标应用程序返回处理结果的IO请求。
一般操作系统接收到应用程序提交的IO请求时,对接收到的IO请求进行缓存,并在需要启动对该IO请求的处理时,将相应的IO请求加入到对应的IO请求队列中,进而由驱动程序依据IO请求队列中的IO请求,在合适的时机执行读写操作即IO操作。当操作系统检测到完成异步IO操作时,会将IO操作的处理结果通知给相应的应用程序。因此,确定出的与该目标应用程序相关的IO请求中不包括已经处理完成的且已将处理结果通知给目标应用程序的IO请求。
例如,某应用程序向操作系统提交过三个IO请求即请求A、请求B和请求C,其中操作系统已经完成请求A所请求的读写操作,并将对请求A的处理结果返回给该应用程序。而操作系统还未完成对请求B和请求C所请求的IO操作,则当前时刻与该应用程序相关的IO请求为请求B和请求C。
该目标应用程序相关的IO请求中可能会包括同步IO请求和异步IO请求两种类型的IO请求。冻结该目标应用程序后,在目标应用程序当前所处的状态下,操作系统获取当前时刻该目标应用程序相关的各个异步IO请求的处理状态。
其中,该处理状态表明该操作系统当前对异步IO请求处理的程度以及IO操作完成状态等。如,该处理状态可以包括:操作系统是否已经启动对异步IO请求的处理,是否完成异步IO请求对应的异步IO操作(即完成异步IO请求相应的读或写操作),是否将IO操作结果通知给该异步IO请求对应的应用程序等状态信息。
在本申请中仅仅确定出与该目标应用程序相关的异步IO请求,对于该目标应用程序相关的同步IO请求,在本实施例中不进行限定,在实际应用中可以继续运行同步IO请求,直至结束;也可以将该同步IO请求进行迁移。
步骤104:依据预置的处理状态与处理规则的对应关系,获取与该异步IO请求的当前处理状态相关的待迁移数据。
在本申请实施例中,针对异步IO请求的不同处理状态,预先设定了与该不同处理状态相对应的处理规则。根据该异步IO请求当前的处理状态,查询出相应的处理规则,进而依据该处理规则,获取与该异步IO请求的当前处理状态相关的待迁移数据。
步骤105:将该待迁移数据传输至目标节点,以便目标节点的目标操作系统依据该待迁移数据完成对异步IO请求的处理,并将对异步IO请求的处理结果通知该目标应用程序。
将该待迁移数据发送至目标节点后,目标节点中的操作系统将根据待迁移数据继续执行对异步IO请求的处理。
为了便于区分将目标节点中的操作系统称为目标操作系统,该目标操作系统根据待迁移数据,确定出该目标应用程序中各个异步IO请求的处理状态,并依据该待迁移数据,从该异步IO请求的处理状态继续执行对异步IO请求的处理,以完成该异步IO请求所请求的读或写操作,并将对异步IO请求的处理结果通知该目标应用程序。
在实际应用中,该目标节点可以是预先设定的,当本节点操作系统获取到待迁移数据时,可以将该待迁移数据传输给预先设定的目标节点,进而由该目标节点的操作系统继续执行对相应的异步IO请求的处理。
进一步的,为了能够更好的实现负载均衡,在选择目标节点时,还可以是从集群系统中选择负载较低的节点作为目标节点,并将确定出的待迁移数据传输至该负载较低的目标节点。
在实际应用中,为了在该目标操作系统完成对异步IO请求的处理后,能够将异步IO请求的处理结果通知给该目标应用程序,在冻结目标应用程序之后,还需要将该目标应用程序迁移到目标操作系统。将该目标应用程序迁移到该目标操作系统具体包括:该目标应用程序相关的进程指令执行状态的迁移、网络链路状态的迁移和该目标应用程序相关的内存堆栈的迁移。将该目标应用程序迁移到该目标操作系统可以采用现有的应用程序迁移技术,在此不加以限制。
在本实施例中当检测到迁移指令时,冻结该迁移指令所指示的目标应用程序,并获取该目标应用程序相关的异步IO请求的处理状态,根据该异步IO请求的处理状态获取与该处理状态相关的待迁移数据,进而将待迁移数据发送至目标操作系统,由目标操作系统对未完成的异步IO请求进行后续处理。这样,当本地操作系统需要升级等原因导致应用程序无法被继续处理时,则可以通过将该应用程序和该应用程序的异步IO请求迁移到目标操作系统,进而由目标操作系统继续执行未完成的异步IO请求的处理,从而减少了由于系统升级等原因,影响到应用程序对文件的读写操作。
可以理解的是,当应用程序提交了IO请求后,该IO请求的类型也相应的确定,因此,可以确定出目标应用程序相关的异步IO请求。具体的,由于不同类型的IO请求的标识位的标识不同,因此,在区分该目标应用程序的IO请求中的异步IO请求时,可以依据IO请求中的标识位来识别出异步IO请求。当然,还可以通过其他方式来确定出该目标应用程序相关的异步IO请求,在此不加以限制。
参见图2,其示出了本发明一种异步IO迁移方法另一个实施例的流程示意图,本实施例为图1所示实施例的一种具体实现方式,本实施例的方法包括:
步骤201:当检测到迁移指令时,确定该迁移指令所指示的目标应用程序。
步骤202:冻结该目标应用程序。
步骤203:确定与该目标应用程序相关的IO请求中的异步IO请求,并获取异步IO请求的当前处理状态。
步骤201至步骤203的操作与图1所示实施例中步骤101至步骤103的操作过程相似,在此不再赘述。
步骤204:当异步IO请求的处理状态为未被启动时,获取异步IO请求的请求数据,将异步IO请求的请求数据作为待迁移数据。
在本实施例中针对不同的处理请求状态设置了不同的处理规则。当目标应用程序向操作系统提交异步IO请求后,操作系统并未启动对该异步IO请求的处理,则直接从缓存区获取该目标应用程序提交的该异步IO请求的请求数据,将该请求数据作为待迁移数据。
步骤205:当异步IO请求的处理状态为正在处理该异步IO请求但未完成IO操作时,则继续执行该异步IO请求,直至完成IO操作,并将IO操作结果数据作为待迁移数据。
当操作系统已经启动该目标应用程序提交的异步IO请求,需要确定出该IO请求的执行进度,如果确定出未完成对该异步IO请求所对应的读或写操作即IO操作时,则需要继续执行该IO操作,并将IO操作结果数据作为待迁移数据。
步骤206:当异步IO请求的处理状态为完成该异步IO请求所请求的IO操作但未将IO操作结果通知给目标应用程序时,则可以获取IO操作结果数据,并将IO操作结果数据作为待迁移数据。
当操作系统完成对该异步IO请求所请求IO操作时,则直接获取IO操作结果数据,并将该IO操作结果数据作为待迁移数据。
步骤207:将该待迁移数据传输至目标节点,以便该目标节点的目标操作系统依据待迁移数据完成对异步IO请求的处理,并将异步IO请求对应的IO操作结果通知目标应用程序。
将该待迁移数据传输至目标节点的目标操作系统后,该目标操作系统依据接收到的待迁移数据的不同,对相应的异步IO请求进行相应的处理。
当传输给目标操作系统的待迁移数据为异步IO请求的请求数据时,相当于该目标应用程序重新向该目标操作系统提交了异步IO请求,该目标操作系统将启动对该异步IO请求的处理,完成相应的IO操作,并将IO操作结果通知给目标应用程序。
当传输给目标操作系统的待迁移数据为该异步IO请求对应的IO操作结果数据,则表明该异步IO请求所对应的IO操作已经完成,则该目标操作系统可以直接将异步IO请求的处理结果通知给该目标应用程序即可,如以事件通道等形式将该异步IO请求的处理结果通知给该目标应用程序。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
与上述本申请图1所示实施例所提供的一种异步IO的迁移方法相对应,参见图3,本申请还提供了一种异步IO的迁移系统一个实施例的结构示意图,在本实施例中,该系统可以包括:对象确定单元310、请求冻结单元320、状态获取单元330、迁移数据确定单元340和数据迁移单元350。
该对象确定单元310,用于当检测到迁移指令时,确定该迁移指令所指示的目标应用程序。
其中,对象确定单元检测到迁移指令可能会有多种情况,对应的,该对象确定单元,可以包括:
第一对象确定单元,用于检测到由用户输入的迁移指令,确定迁移指令所指示的目标应用程序;
或者,第二对象确定单元,用于检测周期性触发生成的迁移指令,并确定迁移指令所指示的目标应用程序。
冻结单元320,用于冻结该目标应用程序。
在实际应用中为了区分出异步IO请求,该请求冻结单元,具体为,用于确定所述目标应用程序相关的IO请求,并依据所述IO请求中标识位来识别出所述IO请求中的异步IO请求,冻结执行所述异步IO请求的进程。
该状态获取单元330,用于确定与所述目标应用程序相关的IO请求中的异步IO请求,获取异步IO请求的当前处理状态。
其中,该状态获取单元获取到的处理状态可以包括:
获取是否已经启动对异步IO请求的处理、是否完成异步IO请求对应的异步IO操作和/或是否将IO操作结果通知给异步IO请求对应的目标应用程序的状态信息。
该迁移数据确定单元340,用于依据预置的处理状态与处理规则的对应关系,获取与异步IO请求的当前处理状态相关的待迁移数据。
数据迁移单元350,用于将所述待迁移数据传输至目标节点,以便目标节点的操作系统依据待迁移数据完成对异步IO请求的处理,并将对异步IO请求的处理结果通知所述目标应用程序。
在本实施例中当检测到迁移指令时,冻结该迁移指令所指示的目标应用程序,并获取该目标应用程序相关的异步IO请求的处理状态,根据该异步IO请求的处理状态获取与该处理状态相关的待迁移数据,进而将待迁移数据发送至目标操作系统,由目标操作系统对未完成的异步IO请求进行后续处理。这样,当本地操作系统需要升级等原因导致应用程序无法被继续处理时,则可以通过将该应用程序的异步IO请求迁移到目标操作系统,进而由目标操作系统继续执行未完成的异步IO请求的处理,从而减少了由于系统升级等原因,影响到应用程序对文件的读写操作。
在本申请实施例确定迁移数据时,针对异步IO请求的不同处理状态,预先设定了与该不同处理状态相对应的处理规则。对应其中一种情况,该迁移数据确定单元,可以包括:
第一迁移数据确定单元,用于当所述异步IO请求的处理状态为未被启动时,则将所述异步IO请求的请求数据作为待迁移数据。
对应异步IO请求的另一种处理状态,该迁移数据确定单元可以包括:
第二迁移数据确定单元,用于当所述异步IO请求的处理状态为已被启动但并未完成所述异步IO请求对应的IO操作时,则继续执行所述异步IO请求,直至完成所述异步IO请求,并将对所述IO操作结果数据作为待迁移数据。
对应异步IO的另一种迁移状态,该迁移数据确定单元可以包括:
第三迁移数据确定单元,用于当所述异步IO请求的处理状态为完成所述异步IO请求所请求的IO操作但并未将所述IO操作结果通知所述目标应用程序时,将所述IO操作结果数据作为待迁移数据。
在确定目标节点时,可以预先设定目标节点,也可以是选择负载较低的节点作为目标节点,相应的,该数据迁移单元,可以包括:
目标节点确定单元,用于从集群系统中选择负载较低的节点作为目标节点,并将所述待迁移数据传输至所述目标节点。
另外,本申请还提供了一种网络节点,参见图4,示出了本发明一种网络节点一个实施例的结构示意图,本实施例中该网络节点至少包括存储器401和处理器402。
其中,该存储器401用于存储应用程序相关的IO请求中的异步IO请求的当前处理状态,以及与异步IO请求的当前处理状态相关的待迁移数据。
该处理器402用于当检测到迁移指令时,确定迁移指令所指示的目标应用程序,冻结该目标应用程序;确定与该目标应用程序相关的IO请求中的异步IO请求,并从该存储器401中获取确定出异步IO请求的当前处理状态;依据预置的处理状态与处理规则的对应关系,从存储器401中获取与该异步IO请求的当前处理状态相关的待迁移数据;将该待迁移数据传输至目标节点,以便目标节点的操作系统依据所述待迁移数据完成对该异步IO请求的处理,并将对该异步IO请求的处理结果通知目标应用程序。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
以上对本申请所提供的一种异步IO的迁移方法、系统和网络节点进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (15)
1.一种异步IO的迁移方法,其特征在于,包括:
当检测到迁移指令时,确定所述迁移指令所指示的目标应用程序;
冻结所述目标应用程序;
确定与所述目标应用程序相关的IO请求中的异步IO请求,并获取所述异步IO请求的当前处理状态;
依据预置的处理状态与处理规则的对应关系,获取与所述异步IO请求的当前处理状态相关的待迁移数据;
将所述待迁移数据传输至目标节点,以便所述目标节点的操作系统依据所述待迁移数据完成对所述异步IO请求的处理,并将对所述异步IO请求的处理结果通知所述目标应用程序。
2.根据权利要求1所述的方法,其特征在于,所述获取所述异步IO请求的当前处理状态,包括:
获取是否已经启动对所述异步IO请求的处理、是否完成所述异步IO请求对应的异步IO操作和/或是否将IO操作结果通知给所述目标应用程序的状态信息。
3.根据权利要求1或2所述的方法,其特征在于,所述预置的处理状态与处理规则的对应关系,包括:
当所述异步IO请求的处理状态为未被启动时,则将所述异步IO请求的请求数据作为待迁移数据。
4.根据权利要求1或2所述的方法,其特征在于,所述预置的处理状态与处理规则的对应关系,包括:
当所述异步IO请求的处理状态为已被启动但并未完成所述异步IO请求对应的IO操作时,则继续运行执行所述异步IO请求直至完成所述异步IO请求所请求的IO操作,并将对所述IO操作结果数据作为待迁移数据。
5.根据权利要求1或2所述的方法,其特征在于,所述预置的处理状态与处理规则的对应关系,包括:
当所述异步IO请求的处理状态为完成所述异步IO请求所请求的IO操作但并未将所述IO操作结果通知所述目标应用程序时,将所述IO操作结果数据作为待迁移数据。
6.根据权利要求1所述的方法,其特征在于,所述将所述待迁移数据传输至目标节点,包括:
从集群系统中选择负载较低的节点作为目标节点,并将所述待迁移数据传输至所述目标节点。
7.根据权利要求1所述的方法,其特征在于,所述检测到迁移指令,包括:
检测到由用户输入的迁移指令;
或者,检测到周期性生成的迁移指令。
8.一种异步IO的迁移系统,其特征在于,包括:
对象确定单元,用于当检测到迁移指令时,确定所述迁移指令所指示
的目标应用程序;
冻结单元,用于冻结所述目标应用程序;
状态获取单元,用于确定与所述目标应用程序相关的IO请求中的异步IO请求,并获取所述异步IO请求的当前处理状态;
迁移数据确定单元,用于依据预置的处理状态与处理规则的对应关系,获取与所述异步IO请求的当前处理状态相关的待迁移数据;
数据迁移单元,用于将所述待迁移数据传输至目标节点,以便所述目标节点的操作系统依据所述待迁移数据完成对所述异步IO请求的处理,并将对所述异步IO请求的处理结果通知所述目标应用程序。
9.根据权利要求8所述的系统,其特征在于,所述状态获取单元获取到的处理状态包括:
获取是否已经启动对所述异步IO请求的处理、是否完成所述异步IO请求对应的异步IO操作和/或是否将IO操作结果通知给所述异步IO请求对应的应用程序的状态信息。
10.根据权利要求8或9所述的系统,其特征在于,所述迁移数据确定单元,包括:
第一迁移数据确定单元,用于当所述异步IO请求的处理状态为未被启动时,则将所述异步IO请求的请求数据作为待迁移数据。
11.根据权利要求8或9所述的系统,其特征在于,所述迁移数据确定单元,包括:
第二迁移数据确定单元,用于当所述异步IO请求的处理状态为已被启动但并未完成所述异步IO请求对应的IO操作时,则继续执行所述异步IO请求直至完成所述异步IO请求所请求的IO操作,并将对所述IO操作结果数据作为待迁移数据。
12.根据权利要求8或9所述的系统,其特征在于,所述迁移数据确定单元,包括:
第三迁移数据确定单元,用于当所述异步IO请求的处理状态为完成所述异步IO请求所请求的IO操作但并未将所述IO操作结果通知所述目标应用程序时,将所述IO操作结果数据作为待迁移数据。
13.根据权利要求8所述的系统,其特征在于,所述数据迁移单元,包括:
目标节点确定单元,用于从集群系统中选择负载较低的节点作为目标节点,并将所述待迁移数据传输至所述目标节点。
14.根据权利要求8所述的系统,其特征在于,所述对象确定单元,包括:
第一对象确定单元,用于检测到由用户输入的迁移指令,确定所述迁移指令所指示的目标应用程序;
或者,第二对象确定单元,用于检测周期性触发生成的迁移指令,并确定所述迁移指令所指示的目标应用程序。
15.一种网络节点,其特征在于,至少包括存储器和处理器;
其中,所述存储器用于存储应用程序相关的IO请求中的异步IO请求的当前处理状态,以及与所述当前处理状态相关的待迁移数据;
所述处理器用于当检测到迁移指令时,确定所述迁移指令所指示的目标应用程序,冻结所述目标应用程序,并确定与所述目标应用程序相关的IO请求中的异步IO请求,并从所述存储器中获取所述异步IO请求的当前处理状态;依据预置的处理状态与处理规则的对应关系,从所述存储器中获取与所述异步IO请求的当前处理状态相关的待迁移数据;将所述待迁移数据传输至目标节点,以便所述目标节点的操作系统依据所述待迁移数据完成对所述异步IO请求的处理,并将对所述异步IO请求的处理结果通知所述目标应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310031868.3A CN103136043B (zh) | 2013-01-28 | 2013-01-28 | 一种异步io的迁移方法、系统和网络节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310031868.3A CN103136043B (zh) | 2013-01-28 | 2013-01-28 | 一种异步io的迁移方法、系统和网络节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103136043A true CN103136043A (zh) | 2013-06-05 |
CN103136043B CN103136043B (zh) | 2016-05-25 |
Family
ID=48495904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310031868.3A Expired - Fee Related CN103136043B (zh) | 2013-01-28 | 2013-01-28 | 一种异步io的迁移方法、系统和网络节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103136043B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750554A (zh) * | 2013-12-31 | 2015-07-01 | 中国移动通信集团公司 | 一种虚拟机间数据迁移的方法和设备 |
CN106844417A (zh) * | 2016-11-21 | 2017-06-13 | 深圳市深信服电子科技有限公司 | 基于文件目录的热迁移方法及装置 |
WO2017215089A1 (zh) * | 2016-06-15 | 2017-12-21 | 宇龙计算机通信科技(深圳)有限公司 | 应用冻结方法及移动终端 |
CN111142788A (zh) * | 2019-11-29 | 2020-05-12 | 浪潮电子信息产业股份有限公司 | 一种数据迁移方法、装置和计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035010A (zh) * | 2006-03-09 | 2007-09-12 | 中兴通讯股份有限公司 | 一种无源光网络中网元设备的配置方法 |
CN101364186A (zh) * | 2008-09-27 | 2009-02-11 | 腾讯科技(深圳)有限公司 | 数据迁移方法、系统、数据迁移服务器及数据接口服务器 |
US20120221875A1 (en) * | 2011-02-24 | 2012-08-30 | Microsoft Corporation | Multi-phase resume from hibernate |
-
2013
- 2013-01-28 CN CN201310031868.3A patent/CN103136043B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035010A (zh) * | 2006-03-09 | 2007-09-12 | 中兴通讯股份有限公司 | 一种无源光网络中网元设备的配置方法 |
CN101364186A (zh) * | 2008-09-27 | 2009-02-11 | 腾讯科技(深圳)有限公司 | 数据迁移方法、系统、数据迁移服务器及数据接口服务器 |
US20120221875A1 (en) * | 2011-02-24 | 2012-08-30 | Microsoft Corporation | Multi-phase resume from hibernate |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750554A (zh) * | 2013-12-31 | 2015-07-01 | 中国移动通信集团公司 | 一种虚拟机间数据迁移的方法和设备 |
CN104750554B (zh) * | 2013-12-31 | 2018-03-23 | 中国移动通信集团公司 | 一种虚拟机间数据迁移的方法和设备 |
WO2017215089A1 (zh) * | 2016-06-15 | 2017-12-21 | 宇龙计算机通信科技(深圳)有限公司 | 应用冻结方法及移动终端 |
CN106844417A (zh) * | 2016-11-21 | 2017-06-13 | 深圳市深信服电子科技有限公司 | 基于文件目录的热迁移方法及装置 |
CN106844417B (zh) * | 2016-11-21 | 2020-07-28 | 深信服科技股份有限公司 | 基于文件目录的热迁移方法及装置 |
CN111142788A (zh) * | 2019-11-29 | 2020-05-12 | 浪潮电子信息产业股份有限公司 | 一种数据迁移方法、装置和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103136043B (zh) | 2016-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105357038B (zh) | 监控虚拟机集群的方法和系统 | |
CN105786405B (zh) | 一种在线升级方法、装置及系统 | |
US20200239234A1 (en) | Method and device for sorting cargo | |
US9195510B2 (en) | Information handling system application decentralized workload management | |
US20090327556A1 (en) | Processor Interrupt Selection | |
CN109033814B (zh) | 智能合约触发方法、装置、设备及存储介质 | |
EP2739097B1 (en) | A mobile telecommunication device in a cellular-digital wireless telecommunication system and a method for operating thereof | |
US9400767B2 (en) | Subgraph-based distributed graph processing | |
US8868874B2 (en) | Managing remote data replication | |
CN103136043A (zh) | 一种异步io的迁移方法、系统和网络节点 | |
CN105205143A (zh) | 一种文件存储及处理方法、设备和系统 | |
CN112787999B (zh) | 跨链调用方法、装置、系统与计算机可读存储介质 | |
CN104321764A (zh) | 预测动作的执行 | |
CN110673959A (zh) | 用于处理任务的系统、方法和装置 | |
CN106815080A (zh) | 分布式图数据处理方法和装置 | |
CN109873861B (zh) | 跨区块链节点的交互方法及装置、存储介质及电子设备 | |
KR102545045B1 (ko) | 정보 생성 방법 및 장치 | |
CN103677996B (zh) | 用于平衡工作负荷分布的协作方法和系统 | |
US8024504B2 (en) | Processor interrupt determination | |
CN112631994A (zh) | 数据迁移方法及系统 | |
CN102141906B (zh) | 基于阵列的线程倒计时 | |
CN117056123A (zh) | 数据恢复方法、装置、介质及电子设备 | |
KR102045997B1 (ko) | 분산 파일 시스템을 기반으로 하는 빅데이터 처리 플랫폼의 태스크 스케줄링 방법, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독 가능 기록 매체 | |
EP4036751A1 (en) | Method and apparatus for performing modification task, electronic device and readable storage medium | |
CN104750772A (zh) | 防止内容管理系统中部分项目发布的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160525 Termination date: 20190128 |
|
CF01 | Termination of patent right due to non-payment of annual fee |