Control device and control method
The control device and method for application migration in cloud and edge computing environments address prolonged migration times by pre-activating applications on destination servers and transferring their states post-event, ensuring efficient and available migrations.
Patent Information
- Application Number
- PCT/JP2024/031235
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-30
- Publication Date
- 2026-03-05
AI Technical Summary
Conventional application migration techniques in cloud and edge computing environments result in prolonged migration times and reduced availability due to the large capacity of applications, especially when migrating to a new server.
A control device and method that involves pre-activating an identical application on a destination server through a first migration and then transferring the operating state of the source application to the destination server based on analyzed status, utilizing a migration control device with units for monitoring, first and second migration control, and application status analysis.
This approach significantly reduces migration time and maintains application availability by performing a first migration before a trigger event and completing the second migration efficiently upon detection, thereby minimizing downtime.
Smart Images

Figure JP2024031235_05032026_PF_FP_ABST
Abstract
Description
Control device and control method
[0001] The present invention relates to a control device and a control method for controlling application migration.
[0002] Conventionally, when running applications on a server using cloud computing, edge computing, or the like, it is necessary to migrate the functions of the target server to another server when the target server experiences a high load or when system maintenance is performed. When migrating an application running on a target server to another server, it is necessary to migrate not only the application itself but also the state maintained by the running application. Regarding such migration, for example, technologies for live migration of containers and virtual machines (VMs) running on FPGAs have been proposed (see, for example, Non-Patent Documents 1 and 2).
[0003] Puliafito, C., Vallati, C., Mingozzi, E., Merlino, G., Longo, F., & Puliafito, A. (2019). Container migration in the fog: A performance evaluation. Sensors, 19(7), 1488. Huang, Che, et al. "Proposal of OSS-based FPGA container automatic migration system between servers." IEICE Communications Express 11.11 (2022): 703-708.
[0004] However, with conventional technology, if the capacity of the application to be migrated is large, the time required to move the target application to the destination server and the time required to start the target application on the destination server can be long, which can increase the overall migration time and potentially reduce the availability of the application.
[0005] In view of the above circumstances, an object of the present invention is to provide a technique that can suppress a decrease in availability when migrating an application.
[0006] One aspect of the present invention is a migration control device that moves an application running on a first server to a second server corresponding to the application, the control device comprising: a first control unit that controls a first migration in which an application identical to the application running on the first server is started in advance on the second server; an analysis unit that analyzes the operating state of the application running on the first server; and a second control unit that controls a second migration in which the operating state of the application running on the first server is transferred to the application already started on the second server based on the analysis result of the operating state by the analysis unit.
[0007] One aspect of the present invention is a method for a control device to control a migration in which an application running on a first server is moved to a second server corresponding to the application, the control method comprising: a first control step in which the control device controls a first migration in which an application identical to the application running on the first server is started in advance on a second server; an analysis step in which the operation status of the application running on the first server is analyzed; and a second control step in which the control device controls a second migration in which the operation status of the application running on the first server is transferred to the application already started on the second server based on the analysis result of the operation status by the analysis step.
[0008] The present invention makes it possible to suppress a decrease in availability when migrating an application.
[0009] It is a diagram showing an example of a system configuration of a communication system of an embodiment. It is a diagram showing an example of a configuration of a migration control device of an embodiment. It is a diagram showing an example of the contents of a migration definition table. It is a diagram showing an example of the flow of migration processing in the communication system of an embodiment. It is a diagram explaining the effect of migration by the communication system of an embodiment.
[0010] An embodiment of the present invention will be described in detail with reference to the drawings. FIG. 1 is a diagram showing an example of a system configuration of a communication system 1 according to the embodiment. The communication system 1 includes a plurality of application servers 100 and a migration control device 200. The plurality of application servers 100 and the migration control device 200 can communicate with each other via a network NW. The network NW may be a network using wireless communication or a network using wired communication. The network NW may be configured using, for example, the Internet or a local area network (LAN). The network NW may also be configured by combining a plurality of networks.
[0011] The application server 100 is a server device that provides a predetermined function to any client terminal (not shown). The application server 100 can provide the predetermined function by running a predetermined application. The application server 100 can migrate an application running on its own server to another server in cooperation with the migration control device 200. The migration referred to here is so-called "live migration," which means moving the memory contents (operating state) from the source application server 100 to the destination application server 100 while leaving the target application in an executing state. Note that in this embodiment, the functions provided by the application to the client terminal are not limited to specific ones.
[0012] The migration control device 200 is a device that manages or controls the migration of applications running on the application servers 100. More specifically, the migration control device 200 monitors the operating status of multiple application servers 100 that are being monitored, and when it detects the occurrence of an event that requires application migration (hereinafter referred to as a "trigger event") in one of the application servers 100, it executes the migration of an application running on the target application server 100 (hereinafter referred to as a "target application"). The type of event that is determined as the trigger event may be arbitrarily designed taking into consideration the impact that the occurrence of the event has on the operation of the application. For example, the trigger event may be a high load on the CPU of the application server 100, a failure in the network NW or a failure in the application server 100 that causes the application server 100 to be unable to communicate, or the occurrence of another hardware failure in the application server 100.
[0013] For example, Fig. 1 illustrates application servers 100A to 100D as multiple application servers 100 to be monitored. The example in Fig. 1 illustrates a case in which migration control device 200 migrates application AP, which is running on application server 100B where a trigger event has occurred, to application server 100C together with its operating state ST. After application AP and its operating state ST are migrated from application server 100B to application server 100C, client terminals can use the functions of application AP by accessing application server 100C.
[0014] FIG. 2 is a diagram illustrating an example configuration of a migration control device 200 according to an embodiment. The migration control device 200 includes, for example, a communication unit 210, a storage unit 220, and a control unit 230. The control unit 230 is configured using a processor such as a central processing unit (CPU) and a memory. The control unit 230 functions as a server monitoring unit 231, a first migration control unit 232, an application status analysis unit 233, and a second migration control unit 234 when the processor executes a program. Note that all or part of the functions of the control unit 230 may be realized using hardware such as an application specific integrated circuit (ASIC), a programmable logic device (PLD), or a field programmable gate array (FPGA). The above program may be recorded on a computer-readable recording medium. Examples of computer-readable recording media include portable media such as flexible disks, magneto-optical disks, ROMs, CD-ROMs, and semiconductor storage devices (e.g., SSDs: Solid State Drives), as well as storage devices such as hard disks and semiconductor storage devices built into computer systems. The above programs may be transmitted via telecommunications lines.
[0015] The communication unit 210 is a communication device. The communication unit 210 may be configured as, for example, a network interface. The communication unit 210 communicates data with other devices via the network NW in accordance with the control of the control unit 230. The communication unit 210 may be a device that performs wireless communication or a device that performs wired communication.
[0016] The storage unit 220 is configured using a storage device such as a magnetic hard disk device or a semiconductor storage device. The storage unit 220 stores data used by the control unit 230. The storage unit 220 is used, for example, as an area for storing a migration definition table 221, which will be described later.
[0017] The control unit 230 monitors the status of the application server 100 and performs a process of migrating a target application (hereinafter referred to as a "migration process"). More specifically, the migration process of the target application includes a process related to a first migration that is performed before the occurrence of a trigger event is detected, and a process related to a second migration that is performed after the occurrence of a trigger event is detected. The control unit 230 realizes the migration process using a server monitoring unit 231, a first migration control unit 232, an application state analysis unit 233, and a second migration control unit 234.
[0018] The server monitoring unit 231 monitors the operating status of the multiple application servers 100 that are the monitoring targets. More specifically, the server monitoring unit 231 periodically communicates with the multiple application servers 100 that are the monitoring targets to acquire status information indicating the status of each application server 100 from each application server 100, and determines whether a trigger event has occurred in each application server 100 based on the acquired status information. When the server monitoring unit 231 detects that a trigger event has occurred in any of the application servers 100, it notifies the first migration control unit 232 of the detected application server 100 (hereinafter referred to as the "target server").
[0019] The first migration control unit 232 executes the first migration for the application under management. As described above, the first migration is a process of pre-activating the application's main program on the destination application server 100. The main program may be transferred from the source server to the destination server each time, or may be stored in advance on both the source server and the destination server. As described above, the first migration is performed in advance before a trigger event is detected on the application server 100 on which the application runs. For example, the first migration control unit 232 may execute the first migration for the application running on each source application server 100 when it starts monitoring each application server 100. The first migration control unit 232 may also execute the first migration for the application in response to the application being activated on the source application server 100. The first migration control unit 232 can identify the destination application server 100 based on the contents of the migration definition table 221, which will be described later.
[0020] Furthermore, when the first migration control unit 232 is notified of a target server by the server monitoring unit 231, the first migration control unit 232 identifies the application server 100 to be the migration destination for the notified target server based on the contents of the migration definition table 221, and notifies the application server 100 identified as the migration destination to the application status analysis unit 233. Note that, although a case will be described here in which the first migration control unit 232 identifies the migration destination application server 100 when the target server is detected, the migration destination application server 100 may be identified by the server monitoring unit 231 and notified to the application status analysis unit 233 directly by the server monitoring unit 231 without going through the first migration control unit 232.
[0021] The application status analysis unit 233 analyzes the operating status of the target application at the migration source. For example, the operating status of an application can be identified by the contents of memory used by the process of the application. Note that part of the operating status may be written from memory to an associated file on disk. In this case, the application status analysis unit 233 may recognize the operating status of the target application based on the contents of memory and the contents of the associated file. The application status analysis unit 233 notifies the second migration control unit 234 of the results of analyzing the operating status of the target application.
[0022] The second migration control unit 234 executes the second migration for the target application running on the target server. More specifically, the second migration control unit 234 transfers the operating state of the target application running on the migration source application server 100 to the target application already started on the migration destination application server 100 based on the analysis result notified by the application state analysis unit 233. When the second migration control unit 234 completes the second migration, the migration of the target application ends.
[0023] FIG. 3 is a diagram illustrating an example of the contents of the migration definition table 221. The migration definition table 221 may be configured as a table that defines, for example, a combination of a managed application, an application server 100 (source server) that is the migration source for the application, and an application server 100 (destination server) that is the migration destination for the application. In the example of FIG. 3, record R1 indicates that the migration destination for "application A" running on "server 01" is defined as "server 02." Record R2 indicates that the migration destination for "application B" running on "server 03" is defined as "server 04." Note that multiple records may be defined for the same application as long as the combinations of the source server and destination server are different. The contents of the migration definition table 221 are designed in advance by the administrator of the application server 100. The administrator can review the contents of the migration definition table 221 as appropriate depending on the addition or deletion of applications and application servers 100, the resource status of the application server 100, etc.
[0024] FIG. 4 illustrates an example of the flow of migration processing in the communication system 1 according to the embodiment. In FIG. 4, dashed lines indicate the timing of a trigger event. First, a first migration of a managed application is performed before the trigger event occurs. More specifically, for example, the first migration control unit 232 instructs the application server 100 (source server) to perform the first migration (S101). The source server then transfers the application's main program to the application server 100 (destination server) that will be the destination (S102). The destination server then executes the main program transferred from the source server to launch the application (S103). Furthermore, before the trigger event occurs, the server monitoring unit 231 begins status monitoring of multiple application servers 100, including the source server and the destination server (S104). Due to space limitations, only the source server and the destination server are illustrated here. However, in reality, the server monitoring unit 231 begins status monitoring of all application servers 100 that are the targets of monitoring.
[0025] Next, the server monitoring unit 231 detects the application server 100 (target server) on which the trigger event occurred (S105), and notifies the first migration control unit 232 of the detected target server (S106).
[0026] Next, the first migration control unit 232 identifies the target application and its destination server based on the target server notified in S106 and the contents of the migration definition table 221 (S107). For example, in the example of the migration definition table 221 in FIG. 3, if "Server 01" is detected as the target server, the first migration control unit 232 selects record R1 in which the source server value is "Server 01," and obtains the application value ("App A") and the destination server value ("Server 02") from record R1. The first migration control unit 232 stops processing the target application identified in S107 (S107), and notifies the application status analysis unit 233 of the target application, the source server, and the destination server (S109).
[0027] Note that the purpose of stopping the processing of the target application here is to prevent further updates to the operating state of the target application on the source server, and may be achieved in any manner as long as the operating state can be analyzed after the processing is stopped and the necessary operating state can be taken over. For example, the processing of the target application may be stopped by temporarily suspending the process, by stopping the application, or by transitioning the operating state of the target application to a state in which it does not accept processing requests from outside.
[0028] Next, the application state analysis unit 233 analyzes the operation state of the target application notified in S109 (S110). More specifically, the application state analysis unit 233 identifies parts of the operation state of the target application that have been updated from the initial operation state at the time of launching the target application (hereinafter referred to as the "initial state"). The method of state analysis is not limited to a specific method, but the following three methods are exemplified here.
[0029] (First Method) First, the application status analysis unit 233 identifies a memory area used by the process of the target application on the source server. Next, the application status analysis unit 233 acquires data stored in the memory area and the update time of the data. The application status analysis unit 233 then identifies data whose update time differs from the target application's launch time (i.e., the time the memory area was allocated in memory) (i.e., data that has been updated from its initial state), thereby identifying parts of the target application's operating state that have been updated from their initial state. Note that the data update time may be acquired using a user interface, such as an API or command provided by the operating system. Furthermore, for example, an application may be configured to save the data update time when saving data in the memory area of its own process or updating data in the memory area.
[0030] (Second Method) In the second method, it is assumed that the target application is configured to store the part to be updated from the initial state in a specific memory area. In this case, the application state analysis unit 233 can identify the part of the operating state of the target application that has been updated from the initial state by referring to the specific memory area.
[0031] (Third Method) The application state analysis unit 233 identifies memory areas used by processes of a target application on the source server and the destination server. Next, the application state analysis unit 233 acquires data stored in each of the identified memory areas on each of the source server and the destination server and the update time of the data. Then, the application state analysis unit 233 can identify data whose update time on the source server and that on the destination server are different as data that has been updated since the initial state.
[0032] The application state analysis unit 233 notifies the second migration control unit 234 of the update content of the operation state identified in S110 (S111). The second migration control unit 234 recognizes the operation state of the migration target based on the update content notified from the application state analysis unit 233 (S112), and instructs the source server to execute the second migration for the operation state recognized as the migration target (S113).
[0033] Next, in response to the instruction of S113, the source server transfers information (status update information) related to at least the updated portion of the operating status to the destination server (S114). Then, based on the status update information received from the source application server 100 in S114, the destination server takes over the operating status of the target application running on the source server to the target application started on the destination server in S103 (S115). The processing up to S115 completes the second migration of the target application, and the series of migration processing ends.
[0034] FIG. 5 is a diagram illustrating the effect of migration by the communication system 1 of the embodiment. The upper part of FIG. 5 shows the flow of a conventional migration process, and the lower part shows the flow of the migration process of the embodiment. In the conventional migration process, after the occurrence of a trigger event is detected, the following processes (1-1) to (1-7) are executed sequentially. (1-1) The application body is transferred to the destination server. (1-2) The difference between the current operating state of the source application (in processing) and the initial state is analyzed. (1-3) The difference between the operating state analyzed in (1-2) is transferred to the destination server. (1-4) Processing of the source application is stopped. (This prevents the operating state of the source application from being updated.) (1-5) The difference between the operating state of the source application (in processing stopped) and the time point (1-2) is analyzed. (1-6) The difference between the operating state analyzed in (1-5) is transferred to the destination server. (1-7) The application transferred in (1-1) is started on the destination server, and the operating states transferred in (1-3) and (1-6) are reflected in the operating states of the started application.
[0035] On the other hand, the migration process in the communication system 1 of the embodiment involves performing the following process (2-1) (first migration) before the occurrence of a trigger event is detected, and then sequentially performing the following processes (3-1) to (3-4) (second migration) after the trigger event is detected. (2-1) The application running on the source server is started up in advance (hot standby) on the destination server. (3-1) Processing of the source application is stopped. (This prevents the operating state of the source application from being updated.) (3-2) The operating state of the source application (while processing is stopped) is analyzed to determine the difference from the initial state. (3-3) The difference in the operating state analyzed in (3-2) is transferred to the destination server. (3-4) The operating state transferred in (3-3) is reflected in the operating state of the application started up on the destination server in (2-1).
[0036] That is, according to the communication system 1 of the embodiment, by starting the application on the destination server before the trigger event is detected on the source server, the time required for the migration process can be shortened by the time required for the migration process. Furthermore, according to the communication system 1 of the embodiment, since the processing of the source application is stopped immediately upon detection of the trigger event, the analysis and handover of the operating state can be completed only once, thereby further shortening the time required for the migration process.
[0037] According to the communication system 1 of the embodiment configured in this manner, it is possible to suppress a decrease in availability when migrating an application.
[0038] Although an embodiment of the present invention has been described above in detail with reference to the drawings, the specific configuration is not limited to this embodiment, and includes designs within the scope of the gist of the present invention.
[0039] The present invention is applicable to a technique for migrating a running application to another device along with its operating state.
[0040] 1...communication system, 100, 100A to 100D...application server, 200...migration control device, 210...communication unit, 220...storage unit, 221...migration definition table, 230...control unit, 231...server monitoring unit, 232...first migration control unit, 233...application status analysis unit, 234...second migration control unit
Claims
1. A migration control device that moves an application running on a first server to a second server corresponding to the application, comprising: a first control unit that controls a first migration in which an application identical to the application running on the first server is started in advance on the second server; an analysis unit that analyzes the operating state of the application running on the first server; and a second control unit that controls a second migration in which the operating state of the application running on the first server is transferred to the application already started on the second server based on the analysis results of the operating state by the analysis unit.
2. The control device according to claim 1, further comprising a server monitoring unit that monitors a plurality of servers including the first server and the second server, wherein the server monitoring unit detects a server among the plurality of servers that satisfies predetermined migration conditions as the first server.
3. The control device described in claim 2, wherein the server monitoring unit identifies a second server for an application running on the target server based on the target server detected as the first server and definition information that defines a destination server for the application running on the multiple servers.
4. The control device according to claim 1, wherein the analysis unit identifies the memory area used by the process of the application on the first server, and identifies the updated portion of the operating state of the application from its initial state by comparing the update time of the data stored in that memory area with the start time of the application.
5. The control device according to claim 1, wherein the application stores the portion to be updated from the initial state at startup in a specific memory area, and the analysis unit identifies the portion of the application's operating state that is to be updated from the initial state by referring to the specific memory area.
6. The control device according to claim 1, wherein the analysis unit identifies memory areas used by the process of the application on the first server and the second server, and identifies updated portions of the operating state of the application from an initial state by comparing the update times of data stored in each of the identified memory areas on the first server and the second server.
7. The control device described in claim 2, wherein when the server monitoring unit detects the first server, it promptly stops processing of the application running on the first server, and the second control unit promptly reflects the difference in operating state from when the application is started on the first server to when the processing is stopped in the operating state of the application running on the second server.
8. A method for a control device to control migration of an application running on a first server to a second server corresponding to the application, the control device having: a first control step for controlling a first migration in which an application identical to the application running on the first server is started in advance on a second server; an analysis step for analyzing the operating status of the application running on the first server; and a second control step for controlling a second migration in which the operating status of the application running on the first server is passed on to the application already started on the second server based on the analysis result of the operating status by the analysis step.
Citation Information
Patent Citations
Remote copy system and method of saving power in remote site
JP2010026940A
Optimum arrangement method for software of off-road server, and program
JP2020137017A
Pre-warming destination for fast live migration
US20130326174A1
Software update control device, software update control system, software update control method, and recording medium having software update control program stored thereon
WO2017179537A1