Controller, migration server, migration system, and migration method

WO2025186859A8PCT designated stage Publication Date: 2025-10-02NT T INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/007988
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-04
Publication Date
2025-10-02

AI Technical Summary

Technical Problem

Conventional live migration techniques in IoT systems face challenges in controlling the timing of the end process, leading to potential packet loss during the migration of IoT control applications, resulting in data loss or control errors.

Method used

A controller identifies communication gaps based on the control period of IoT devices and switches the server controlling the device at these times to prevent packet loss, using a migration server to coordinate the live migration process.

Benefits of technology

Prevents packet loss during live migration by ensuring that communication with IoT devices occurs outside critical control periods, maintaining data integrity and device control stability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024007988_02102025_PF_FP_ABST
    Figure JP2024007988_02102025_PF_FP_ABST
Patent Text Reader

Abstract

This controller comprises: an identification unit that identifies, on the basis of a control cycle of a device in a device control application running on a first server, a timing at which communication is not performed between the first server and the device; and a switching unit that switches a server for controlling the device from the first server to a second server at said timing.
Need to check novelty before this filing date? Find Prior Art

Description

Controller, migration server, migration system, and migration method

[0001] The present invention relates to a controller, a migration server, a migration system, and a migration method.

[0002] There is an IoT (Internet of Things) system that connects IoT devices and a cloud server via a communication network. In such an IoT system, the cloud server can, for example, collect sensor data from the IoT devices at a predetermined cycle and remotely control the IoT devices at a predetermined cycle. Recently, a technique of controlling IoT devices by installing an edge server (edge ​​cloud) near the IoT devices has been used. The edge server runs a virtual machine, such as an IoT control application that controls the IoT devices. Performing computational processing on an edge server installed near the IoT devices can, for example, speed up processing, reduce communication costs, enhance security, and reduce the load on the host system.

[0003] However, when an edge server controlling an IoT device becomes overloaded or when maintenance is required, it may be necessary to migrate the IoT control application from the edge server to another edge server. In this case, it is desirable to perform live migration, which allows the IoT control application to be migrated without stopping its operation.

[0004] C. Puliafito, C. Vallati, E. Mingozzi, G. Merlino, F. Longo and A. Puliafito, "Container Migration in the Fog: A Performance Evaluation," Sensors, 19(7), 1488, 2019.

[0005] However, with conventional live migration, it is difficult to arbitrarily control the timing of starting the end process of live migration. Note that the end process of live migration here refers to the process of completing the memory copy process from the memory of the edge server at the migration source to the memory of the edge server at the migration destination, and switching the edge server that communicates with the IoT device.

[0006] Therefore, in conventional live migration, if the start timing of the live migration termination process coincides with the timing of data transmission and reception between the IoT device and the edge server, a momentary interruption may occur, resulting in packet loss. For example, sensor data transmitted from the IoT device to the edge server may be lost, or a control signal transmitted from the edge server to the IoT device may be lost. In this case, there is a problem that sensor data collected by the IoT device may be lost or a control error may occur in the IoT device.

[0007] In view of the above circumstances, an object of the present invention is to provide a technique that can prevent packet loss from occurring during live migration.

[0008] One aspect of the present invention is a controller comprising: an identification unit that identifies a timing when communication does not occur between a first server and a device based on the control period of the device in a device control application running on the first server; and a switching unit that switches the server controlling the device from the first server to a second server at that timing.

[0009] Another aspect of the present invention is a migration server that includes a communication unit that receives instruction information sent from a controller at a timing identified based on the control period of a device in a device control application running on the device, the timing being a timing at which no communication is performed between the device and the device, and a termination processing execution unit that terminates a switching process that switches the server that controls the device from the device to another server at the timing at which the instruction information is received.

[0010] Another aspect of the present invention is a migration system having a first server, a second server, and a control unit, wherein the control unit is equipped with an identification unit that identifies a timing when communication does not occur between the first server and the device based on the device control period of a device control application running on the first server, and a switching unit that switches the server that controls the device from the first server to the second server at that timing.

[0011] Another aspect of the present invention is a computer-based migration method, which includes a step of identifying a timing when communication does not occur between a first server and a device based on the control period of the device in a device control application running on the first server, and a switching step of switching the server controlling the device from the first server to a second server at the timing.

[0012] Another aspect of the present invention is a migration method by a computer of a first server, the migration method including a communication step of receiving instruction information transmitted from a controller at a timing identified based on the control period of a device in a device control application running on the first server, the timing being a timing at which no communication is performed between the first server and the device, and an end processing execution unit that ends a process of switching the server controlling the device from the first server to a second server at the timing at which the instruction information is received.

[0013] Another aspect of the present invention is a migration method by a computer of a control unit of a migration system having a first server, a second server, and a control unit, the migration method including: a step of identifying a timing when communication does not occur between the first server and the device based on the control period of the device in a device control application running on the first server; and a switching step of switching the server controlling the device from the first server to the second server at the timing.

[0014] The present invention makes it possible to prevent packet loss during live migration.

[0015] FIG. 1 is an overall configuration diagram of an IoT system 1 in a first embodiment of the present invention. FIG. 2 is a block diagram showing the functional configuration of a controller 10 in the first embodiment of the present invention. FIG. 3 is a diagram showing an example of IoT communication status information in the first embodiment of the present invention. FIG. 4 is a block diagram showing the functional configuration of an edge server 20 in the first embodiment of the present invention. FIG. 5 is a flowchart showing the operation of the controller 10 in the first embodiment of the present invention. FIG. 6 is a flowchart showing the operation of an edge server 20-1 in the first embodiment of the present invention. FIG. 7 is a flowchart showing the operation of an edge server 20-2 in the first embodiment of the present invention. FIG. 8 is a flowchart showing the operation of a controller 10a in a second embodiment of the present invention. FIG. 9 is a flowchart showing the operation of an edge server 20a-1 in the second embodiment of the present invention. FIG. 10 is a flowchart showing the operation of an edge server 20a-2 in the second embodiment of the present invention. FIG. 11 is a diagram showing an example of information for identifying a migration source server and a migration destination server in the second embodiment of the present invention.

[0016] Hereinafter, a controller, a migration server, a migration system, and a migration method according to an embodiment of the present invention will be described in detail with reference to the drawings. In order to make the features of the present invention easier to understand, a conventional general live migration method will be described first for comparison.

[0017] Live migration is the process of moving a virtual machine running on a server to another server without stopping the virtual machine. In live migration, the contents of the memory being used by the running program must be transferred to the memory of the destination server. Here, it is important to consider that the contents of the memory being used by the running program are constantly changing. Below, we will explain the flow of a typical conventional live migration process.

[0018] (1) First, a copy of the entire memory image used by the virtual machine running on the migration source server is made. The copied memory image is then copied from the migration source server to the migration destination server.

[0019] (2) The contents of the memory of the migration source server are rewritten even while the memory image copy process is being executed. Therefore, only the differences in the memory image that were rewritten during the copy process (hereinafter referred to as "dirty pages") are further copied from the migration source server to the memory of the migration destination server.

[0020] (3) The differential copy process of (2) above is repeatedly executed until the amount of dirty pages to be copied decreases to a predetermined reference value or less.

[0021] (4) When the number of dirty pages falls below a predetermined threshold, the virtual machine running on the migration source server is stopped, and the remaining dirty pages are copied. By stopping the virtual machine, the contents of the memory on the migration source server can no longer be rewritten.

[0022] (5) Information indicating processors such as the CPU (Central Processing Unit) of the migration source server is copied from the migration source server to the migration destination server. Information about the device to be controlled and its status (device ID, etc.) and information about the communication status (session, TCP connection information, etc.) are also copied from the migration source server to the migration destination server. Hereinafter, this copied information is collectively referred to as "status information."

[0023] (6) After the copy is complete, the virtual machine on the migration destination server is started. The operation of the virtual machine on the migration destination server continues from the operation that the virtual machine on the migration source server had been performing up to that point.

[0024] The live migration process is performed according to the above procedure, which makes it possible to copy a memory image with minimal inconsistencies even while the virtual machine is in operation.

[0025] However, in the case of conventional live migration as described above, a slight interruption occurs between the processes (4) to (6). This can result in packet loss. Below, we will explain a migration system according to an embodiment of the present invention that can prevent such packet loss.

[0026] In the following description, the above processes (1) to (3) are referred to as "memory copy processing," and the above processes (4) to (6) are referred to as "live migration termination processing."

[0027] <First Embodiment> A first embodiment of the present invention will be described below. Fig. 1 is a diagram showing the overall configuration of an IoT system 1 according to the first embodiment of the present invention. The IoT system 1 is an example of a migration system according to the present invention.

[0028] As shown in FIG. 1, the IoT system 1 includes a controller 10, two edge servers 20-1 and 20-2, and an IoT device 30.

[0029] In the following description, when there is no need to distinguish between the edge server 20-1 and the edge server 20-2, they will simply be referred to as "edge server 20." To simplify the drawing, only two edge servers 20 and one IoT device 30 are shown in FIG. 1, but it is assumed that in reality, more edge servers 20 and IoT devices 30 will be used.

[0030] The controller 10 and the edge server 20 are communicatively connected via a network 50. The network 50 is a communication network such as the Internet that connects geographically distant bases. The edge server 20 and the IoT device 30 are communicatively connected via wireless communication such as LPWA (LPWA stands for Low Power Wide Area), Wi-Fi (registered trademark), or Bluetooth (registered trademark).

[0031] The controller 10 is an information processing device such as a general-purpose computer, and remotely controls the edge servers 20. For example, the controller 10 controls a live migration process performed between the edge servers 20-1 and 20-2.

[0032] The controller 10 in this embodiment also serves as a cloud server that collects, for example, sensor data obtained by the IoT device 30 via the edge server 20. However, the cloud server function may be provided in a device separate from the controller 10.

[0033] The edge server 20 is an information processing device such as a general-purpose computer. The edge server 20 may be a server equipped with a field-programmable gate array (FPGA) or a processor such as a CPU. The edge server 20 is installed near the IoT device 30. The edge server 20 is an example of a migration server of the present invention.

[0034] The edge server 20 executes an IoT control application and controls the operation of the IoT device 30. The edge server 20 receives sensor data from the IoT device 30, for example, at a predetermined cycle. The edge server 20 also processes the received sensor data, for example, and transmits a control signal to the IoT device 30 at a predetermined cycle. The edge server 20 processes the received sensor data as appropriate, for example, and transmits the data to the controller 10 (cloud server).

[0035] The IoT device 30 is, for example, a device equipped with various sensors. While FIG. 1 illustrates a drone equipped with a sensor (camera) as an example, the present invention is not limited to this. The IoT device 30 transmits sensor data obtained by the sensor to the edge server 20. The IoT device 30 operates in accordance with a control signal transmitted from the edge server 20.

[0036] When an event that triggers migration (hereinafter referred to as a "migration trigger") occurs, the controller 10 executes live migration of the edge server 20 connected to the IoT device 30. A migration trigger is an event that requires switching (migration) of the edge server 20 connected to the IoT device 30, such as when the edge server 20 is in a high-load state or when maintenance of the edge server 20 is required.

[0037] 1, the edge server of the migration source is denoted as edge server 20-1, and the edge server of the migration destination is denoted as edge server 20-2. By executing live migration, the communication connection destination of the IoT device 30 can be switched from the edge server 20-1 to the edge server 20-2 without stopping the control of the IoT device 30.

[0038] [Configuration of Controller] The following describes the functional configuration of the controller 10. Fig. 2 is a block diagram showing the functional configuration of the controller 10 in the first embodiment of the present invention. As shown in Fig. 2, the controller 10 includes an edge server monitoring unit 11, a memory copy execution control unit 12, a memory copy status monitoring unit 13, an IoT communication status monitoring unit 14, an IoT communication status storage unit 15, a termination timing control unit 16, a termination process execution control unit 17, a network switching unit 18, and a communication unit 19.

[0039] The edge server monitoring unit 11 monitors the edge server 20 by collecting data indicating, for example, resource usage status from the edge server 20. The edge server monitoring unit 11 detects the occurrence of a migration trigger, such as a high load state of the edge server 20, through monitoring. When the edge server monitoring unit 11 detects the occurrence of a migration trigger, it notifies the memory copy execution control unit 12 of information about the edge server 20-1, which is the migration source, and information about the edge server 20-2, which is the migration destination.

[0040] Upon receiving the notification from the edge server monitoring unit 11, the memory copy execution control unit 12 transmits a live migration execution instruction to the edge server 20-1, which is the migration source, to start the memory copy process of the live migration. The memory copy execution control unit 12 also transmits information about the edge server 20-2, which is the migration destination, to the edge server 20-1, which is the migration source.

[0041] Furthermore, the memory copy execution control unit 12 controls the process so that the end process of the live migration is not automatically started. As described above, the end process of the live migration includes the process of stopping the operation of the virtual machine (IoT control application) of the migration source server.

[0042] Any method can be used to prevent the live migration termination process from starting automatically, but for example, it is sufficient to prevent the IoT control application running on the migration source edge server 20 from stopping even when the amount of dirty pages in the process (3) described above falls below a predetermined reference value. Specifically, for example, a method of temporarily setting the predetermined reference value to 0, and a method of stopping the IoT control application only when an explicit instruction to stop the IoT control application is received from the controller 10 can be considered.

[0043] The memory copy status monitoring unit 13 constantly monitors the number of dirty pages repeatedly generated in the memory copy process and detects whether the number of dirty pages has fallen below a predetermined reference value. When the memory copy status monitoring unit 13 detects that the number of dirty pages has fallen below the predetermined reference value, it notifies the end timing control unit 16.

[0044] The IoT communication status monitoring unit 14 monitors the communication status between the IoT control application of the edge server 20 and the IoT device 30. Specifically, the IoT communication status monitoring unit 14 identifies, for example, the control period of the IoT device 30 by the IoT control application of the edge server 20-1 and the time of transmission of the most recent control signal from the IoT control application 21 of the edge server 20-1 to the IoT device 30. The IoT communication status monitoring unit 14 stores IoT communication status information indicating the above identified information in the IoT communication status storage unit 15.

[0045] The IoT communication status storage unit 15 stores IoT communication status information. The IoT communication status storage unit 15 is configured to include, for example, a semiconductor memory such as a random access memory (RAM) and an electrically erasable programmable read-only memory (EEPROM), a flash memory such as a solid state drive (SSD), a magnetic disk such as a hard disk drive (HDD), an optical disk, or any combination of these storage media.

[0046] 3 is a diagram showing an example of IoT communication status information in the first embodiment of the present invention. As shown in Fig. 3, the IoT communication status information is information in which identification information of an IoT control application that transmits a control signal, identification information of an IoT device to be controlled, a control period (e.g., a predetermined transmission interval of a control signal or a reception interval of sensor data), and a value of the transmission completion time of the most recent control signal are associated with each other.

[0047] Upon receiving the notification from the memory copy status monitoring unit 13, the end timing control unit 16 determines the start timing of the end processing of the live migration based on the IoT communication status information stored in the IoT communication status storage unit 15. The end timing control unit 16 determines the start timing of the end processing of the live migration so as not to affect the control of the IoT device 30.

[0048] Specifically, the termination timing control unit 16 determines the start timing of the termination process of the live migration so that the timing does not overlap with the timing at which communication takes place between the IoT control application of the edge server 20-1 and the IoT device 30.

[0049] The timing at which communication is performed between the IoT control application of the edge server 20-1 and the IoT device 30 is, for example, the timing at which sensor data is transmitted from the IoT device 30 to the IoT control application of the edge server 20-1 at a predetermined cycle, and the timing at which a control signal is transmitted from the IoT control application of the edge server 20-1 at a predetermined cycle to the IoT device 30. These timings can be calculated, for example, from the value of the control cycle included in the IoT communication status information stored in the IoT communication status storage unit 15 and the value of the transmission completion time of the most recent control signal.

[0050] The termination timing control unit 16 outputs information indicating the determined start timing of the termination process of the live migration to the termination process execution control unit 17 and the network switching unit 18 .

[0051] The termination process execution control unit 17 acquires information indicating the start timing of the termination process of the live migration output from the termination timing control unit 16. The termination process execution control unit 17 waits until the timing based on the acquired information, and then transmits an instruction to start the termination process of the live migration to the edge server 20-1 via the communication unit 19. As a result, the edge server 20-1 starts the termination process of the live migration at the timing determined by the termination timing control unit 16.

[0052] The network switching unit 18 transmits a switching instruction for switching the communication connection destination of the IoT device 30 from the edge server 20-1 to the edge server 20-2 to the edge server 20-1, which is the migration source server, and the edge server 20-2, which is the migration destination server, via the communication unit 19. As a result, the edge server 20 that controls the IoT device 30 is switched at the timing determined by the termination timing control unit 16.

[0053] The communication unit 19 is a communication interface for communicating with the edge server 20 .

[0054] [Configuration of Edge Server] The following describes the functional configuration of the edge server 20. Fig. 4 is a block diagram showing the functional configuration of the edge server 20 in the first embodiment of the present invention. As shown in Fig. 4, the edge server 20 includes an IoT control application 21, a sensor data storage unit 22, a sensor data processing unit 23, a memory copy execution unit 24, a memory image storage unit 25, a termination processing execution unit 26, and a communication unit 27.

[0055] The IoT control application 21 is an application that communicates with the IoT device 30 via the communication unit 27 and controls the IoT device 30. For example, the IoT control application 21 acquires sensor data transmitted from the IoT device 30 at a predetermined control period via the communication unit 27. Furthermore, for example, the IoT control application 21 transmits a control signal for controlling the IoT device 30 to the IoT device 30 via the communication unit 27 at a predetermined control period.

[0056] The IoT control application 21 is an application that runs in a virtual environment such as a virtual machine (VM) or a container. However, the IoT control application 21 may be an application that runs in a physical environment (on a physical server).

[0057] The sensor data storage unit 22 stores sensor data acquired by the IoT control application 21 from the IoT device 30. The IoT communication status storage unit 15 stores IoT communication status information. The sensor data storage unit 22 is configured to include, for example, a storage medium such as a RAM, a semiconductor memory such as an EEPROM, a flash memory such as an SSD, a magnetic disk such as an HDD, an optical disk, or any combination of these storage media.

[0058] The sensor data processing unit 23 processes and analyzes, as necessary, the sensor data stored in the sensor data storage unit 22. The sensor data processing unit 23 transmits the processed and analyzed sensor data or the sensor data itself stored in the sensor data storage unit 22 to the controller 10 (cloud server) via the communication unit 27.

[0059] The memory copy execution unit 24 of the edge server 20-1, which is the migration source server, starts executing the memory copy process when it receives the instruction to execute live migration sent from the controller 10 via the communication unit 27. The memory copy execution unit 24 copies an image of the entire memory used by the IoT control application 21 (hereinafter also referred to as the “memory image”) and temporarily stores the copied memory image in the memory image storage unit 25.

[0060] The memory image storage unit 25 temporarily stores the memory image copied by the memory copy execution unit 24. The memory image storage unit 25 is configured to include, for example, a storage medium such as a semiconductor memory such as RAM and EEPROM, a flash memory such as SSD, a magnetic disk such as HDD, an optical disk, or any combination of these storage media. Note that the sensor data storage unit 22 and the memory image storage unit 25 may be configured on the same storage medium.

[0061] The memory copy execution unit 24 of the edge server 20-1, which is the migration source server, transmits the memory image temporarily stored in the memory image storage unit 25 to the edge server 20-2, which is the migration destination server, via the communication unit 27. Upon receiving the memory image transmitted from the edge server 20-1, the edge server 20-2 temporarily stores the received memory image in the memory image storage unit 25.

[0062] Furthermore, the memory copy execution unit 24 of the edge server 20-1, which is the migration source server, generates dirty pages until it receives an instruction to start the live migration end process sent from the controller 10. The memory copy execution unit 24 transmits the generated dirty pages to the edge server 20-2, which is the migration destination server, via the communication unit 27. Upon receiving the dirty pages sent from the edge server 20-1, the edge server 20-2 updates the memory image temporarily stored in the memory image storage unit 25 using the received dirty pages.

[0063] The termination processing execution unit 26 of the edge server 20-1, which is the migration source server, starts executing the termination processing of the live migration when it receives the instruction to start the termination processing of the live migration sent from the controller 10. The termination processing execution unit 26 stops the operation of the IoT control application 21 and sends the remaining generated dirty pages to the edge server 20-2, which is the migration destination server, via the communication unit 27.

[0064] When the memory copy execution unit 24 of the edge server 20-2 receives the remaining dirty pages transmitted from the edge server 20-1, it uses the remaining received dirty pages to update the memory image temporarily stored in the memory image storage unit 25. The memory copy execution unit 24 loads the updated memory image into memory (not shown) so that it can be used by the IoT control application 21. The IoT control application 21 of the edge server 20-2 starts operation using the loaded memory image.

[0065] The communication unit 27 is a communication interface for communicating with the controller 10 and the IoT device 30 .

[0066] When the communication unit 27 of the edge server 20-1, which is the migration source server, receives the switching instruction transmitted from the controller 10, it terminates communication with the IoT device 30. When the communication unit 27 of the edge server 20-1, which is the migration source server, receives the switching instruction transmitted from the controller 10, it starts communication with the IoT device 30. As a result, the communication connection destination of the IoT device 30 is switched from the edge server 20-1 to the edge server 20-2, and the live migration is completed.

[0067] The operations of the controller 10, the edge server 20-1, and the edge server 20-2 when performing live migration will be described below.

[0068] [Operation of Controller] An example of the operation of the controller 10 when performing live migration will be described below. Fig. 5 is a flowchart showing the operation of the controller 10 in the first embodiment of the present invention.

[0069] The edge server monitoring unit 11 monitors the status of the edge server 20 by collecting data indicating, for example, resource usage status from the edge server 20 (step S001). The edge server monitoring unit 11 detects the occurrence of a migration trigger, such as a high load state of the edge server 20, through monitoring.

[0070] When the edge server monitoring unit 11 detects the occurrence of a migration trigger (Yes in step S002), it notifies the memory copy execution control unit 12 of information about the edge server 20-1 that is the migration source and information about the edge server 20-2 that is the migration destination. Upon receiving the notification from the edge server monitoring unit 11, the memory copy execution control unit 12 sends a live migration execution instruction to the edge server 20-1 that is the migration source, and starts the memory copy process of the live migration (step S003). The memory copy execution control unit 12 also sends information about the edge server 20-2 that is the migration destination to the edge server 20-1 that is the migration source.

[0071] The memory copy status monitoring unit 13 constantly acquires and monitors information indicating the amount of dirty pages repeatedly generated in the memory copy process (step S004), and detects whether the amount of dirty pages has become equal to or less than a predetermined reference value (step S005). When the memory copy status monitoring unit 13 detects that the amount of dirty pages has become equal to or less than the predetermined reference value (step S005, Yes), it notifies the end timing control unit 16.

[0072] Upon receiving the notification from the memory copy status monitoring unit 13, the termination timing control unit 16 determines the start timing of the termination processing of the live migration based on the IoT communication status information stored in the IoT communication status storage unit 15 (step S006). The termination timing control unit 16 determines the start timing of the termination processing of the live migration so as not to affect the control of the IoT device 30. The termination timing control unit 16 outputs information indicating the determined start timing of the termination processing of the live migration to the termination processing execution control unit 17 and the network switching unit 18.

[0073] The termination process execution control unit 17 acquires information indicating the start timing of the termination process of the live migration output from the termination timing control unit 16. The termination process execution control unit 17 waits until the timing based on the acquired information (step S007), and then transmits an instruction to start the termination process of the live migration to the edge server 20-1 via the communication unit 19 (step S008). As a result, the edge server 20-1 starts the termination process of the live migration at the timing determined by the termination timing control unit 16.

[0074] The network switching unit 18 transmits a switching instruction for switching the communication connection destination of the IoT device 30 from the edge server 20-1 to the edge server 20-2 via the communication unit 19 to the edge server 20-1, which is the migration source server, and the edge server 20-2, which is the migration destination server (step S009). As a result, the edge server 20 that controls the IoT device 30 is switched at the timing determined by the termination timing control unit 16.

[0075] This completes the operation of the controller 10 shown in the flowchart of FIG.

[0076] [Operation of Edge Server (Migration Source)] An example of the operation of the edge server 20-1, which is the migration source server, when performing live migration will be described below. Fig. 6 is a flowchart showing the operation of the edge server 20-1 in the first embodiment of the present invention.

[0077] The edge server 20-1 periodically transmits information indicating the status of the edge server 20-1 to the controller 10 via the communication unit 27, for example, until an instruction to execute live migration is received from the controller 10 (step S101). The information indicating the status of the edge server 20-1 includes, for example, data indicating the resource usage status.

[0078] When the memory copy execution unit 24 receives the instruction to execute live migration from the controller 10 via the communication unit 27 (Yes in step S102), the memory copy execution unit 24 starts executing the memory copy process. The memory copy execution unit 24 copies the memory image and transmits it to the edge server 20-2, which is the migration destination server, via the communication unit 27 (step S103).

[0079] The memory copy execution unit 24 repeatedly generates dirty pages until it receives an instruction to start the end process of the live migration from the controller 10. The memory copy execution unit 24 transmits each generated dirty page to the edge server 20-2 via the communication unit 27 (step S104).

[0080] In addition, the memory copy execution unit 24 sends information indicating the amount of dirty pages generated to the controller 10 via the communication unit 27 each time until it receives an instruction to start the end processing of the live migration sent from the controller 10 (step S105).

[0081] When the termination processing execution unit 26 receives an instruction to start the termination processing of the live migration transmitted from the controller 10 via the communication unit 27 (Yes in step S106), the termination processing execution unit 26 starts executing the termination processing of the live migration. The termination processing execution unit 26 stops the operation of the IoT control application 21 (step S107) and transmits the remaining generated dirty pages to the edge server 20-2, which is the migration destination server, via the communication unit 27 (step S108).

[0082] The termination process execution unit 26 generates status information and transmits it to the edge server 20-2 (step S109). As described above, the status information includes, for example, information about the IoT device 30 to be controlled and its status (such as a device ID), information about the communication status (such as a session and TCP connection information), and information indicating the status of a processor such as a CPU of the edge server 20-1 (its own device).

[0083] The communication unit 27 performs network switching by terminating communication with the IoT device 30 in accordance with the switching instruction transmitted from the controller 10 (step S110).

[0084] This completes the operation of the edge server 20-1 shown in the flowchart of FIG.

[0085] [Operation of Edge Server (Migration Destination)] An example of the operation of the edge server 20-2, which is the migration destination server, when performing live migration will be described below. Fig. 7 is a flowchart showing the operation of the edge server 20-2 in the first embodiment of the present invention.

[0086] The edge server 20-2 periodically transmits information indicating the status of the edge server 20-2 to the controller 10 via the communication unit 27, for example, until an instruction to execute live migration is received from the controller 10 (step S201). The information indicating the status of the edge server 20-2 includes, for example, data indicating the resource usage status.

[0087] When the memory copy execution unit 24 receives the instruction to execute live migration from the controller 10 via the communication unit 27 (Yes in step S202), it starts executing the memory copy process. The memory copy execution unit 24 receives the memory image transmitted from the edge server 20-1, which is the migration source server. The memory copy execution unit 24 copies the received memory image to the memory image storage unit 25 (step S203).

[0088] The memory copy execution unit 24 receives the dirty page transmitted from the edge server 20-1. The memory copy execution unit 24 uses the received dirty page to update the memory image temporarily stored in the memory image storage unit 25 (step S204). The memory copy execution unit 24 repeatedly receives and copies the dirty page until it acquires an instruction to start the live migration termination process transmitted from the controller 10.

[0089] When the termination processing execution unit 26 receives an instruction to start the termination processing of the live migration transmitted from the controller 10 via the communication unit 27 (Yes in step S205), it starts executing the termination processing of the live migration. When the memory copy execution unit 24 receives the remaining dirty pages transmitted from the edge server 20-1, it updates the memory image temporarily stored in the memory image storage unit 25 using the received remaining dirty pages (step S206). The memory copy execution unit 24 loads the updated memory image in memory (not shown) so that it can be used by the IoT control application 21.

[0090] The termination process execution unit 26 receives the status information transmitted from the edge server 20-1 via the communication unit 27 and copies it to a memory (not shown) (step S207). As described above, the status information includes, for example, information about the IoT device 30 to be controlled and its status (such as a device ID), information about the communication status (such as session and TCP connection information), and information indicating the status of a processor such as a CPU of the edge server 20-1, which is the migration source server.

[0091] The termination process execution unit 26 starts the IoT control application 21 (step S208). The communication unit 27 performs network switching by starting communication with the IoT device 30 in accordance with the switching instruction transmitted from the controller 10 (step S209).

[0092] This completes the operation of the edge server 20-2 shown in the flowchart of FIG.

[0093] As described above, the IoT system 1 according to the first embodiment of the present invention has a configuration in which the IoT control application 21 of the edge server 20 starts the end processing of live migration in consideration of the control period for controlling the IoT device 30. Specifically, the controller 10 executes the end processing of live migration so as not to overlap with the timing of communication between the edge server 20 and the IoT device 30.

[0094] With this configuration, according to the IoT system 1 of the first embodiment of the present invention, even if a momentary interruption occurs in communication between the edge server 20 and the IoT device 30 due to the termination process of live migration, no transmission or reception of sensor data or control signals is performed at that timing, thereby preventing packet loss. This allows the IoT system 1 to prevent loss of sensor data collected by the IoT device 30 and control errors in the IoT device.

[0095] Second Embodiment A second embodiment of the present invention will now be described.

[0096] In the IoT system 1 in the first embodiment described above, the controller 10 is configured to execute live migration after detecting a migration trigger. In contrast, in the second embodiment described below, the controller is configured to start executing the memory copy process of live migration before detecting the migration trigger. Then, when the controller detects the migration trigger, it executes the process of terminating the live migration. With this configuration, the IoT system in the second embodiment can complete live migration more quickly than the IoT system 1 in the first embodiment described above.

[0097] The following description will focus on the differences from the first embodiment. In the following description, the IoT system, controller, and edge server in the second embodiment will be referred to as the "IoT system 1a," the "controller 10a," and the "edge server 20a," respectively.

[0098] The operations of the controller 10a, the edge server 20a-1, and the edge server 20a-2 during live migration will be described below.

[0099] [Operation of Controller] An example of the operation of the controller 10a when performing live migration will now be described. Fig. 8 is a flowchart showing the operation of the controller 10a in the second embodiment of the present invention.

[0100] The memory copy execution control unit 12 transmits a live migration execution instruction to the edge server 20a-1, which is the migration source, to start the memory copy process of the live migration (step S301). The memory copy execution control unit 12 also transmits information about the edge server 20a-2, which is the migration destination, to the edge server 20a-1, which is the migration source.

[0101] The edge server monitoring unit 11 monitors the status of the edge server 20a by collecting data indicating, for example, resource usage status from the edge server 20a (step S302). The edge server monitoring unit 11 detects the occurrence of a migration trigger, such as a high load state of the edge server 20a, through monitoring.

[0102] When the edge server monitoring unit 11 detects the occurrence of a migration trigger (step S303, Yes), the memory copy status monitoring unit 13 constantly acquires and monitors information indicating the amount of dirty pages repeatedly generated in the memory copy process (step S304), and detects whether the amount of dirty pages has become equal to or less than a predetermined reference value (step S305).When the memory copy status monitoring unit 13 detects that the amount of dirty pages has become equal to or less than the predetermined reference value (step S305, Yes), it notifies the end timing control unit 16.

[0103] Upon receiving the notification from the memory copy status monitoring unit 13, the termination timing control unit 16 determines the start timing of the termination processing of the live migration based on the IoT communication status information stored in the IoT communication status storage unit 15 (step S306). The termination timing control unit 16 determines the start timing of the termination processing of the live migration so as not to affect the control of the IoT device 30. The termination timing control unit 16 outputs information indicating the determined start timing of the termination processing of the live migration to the termination processing execution control unit 17 and the network switching unit 18.

[0104] The termination processing execution control unit 17 acquires information indicating the start timing of the termination processing of the live migration output from the termination timing control unit 16. The termination processing execution control unit 17 waits until the timing based on the acquired information (step S307), and then transmits an instruction to start the termination processing of the live migration to the edge server 20 a-1 via the communication unit 19 (step S308). As a result, the edge server 20 a-1 starts the termination processing of the live migration at the timing determined by the termination timing control unit 16.

[0105] The network switching unit 18 transmits a switching instruction for switching the communication connection destination of the IoT device 30 from the edge server 20a-1 to the edge server 20a-2 via the communication unit 19 to the edge server 20a-1, which is the migration source server, and the edge server 20a-2, which is the migration destination server (step S309). As a result, the edge server 20a that controls the IoT device 30 is switched at the timing determined by the termination timing control unit 16.

[0106] This completes the operation of the controller 10a shown in the flowchart of FIG.

[0107] [Operation of Edge Server (Migration Source)] An example of the operation of the edge server 20a-1, which is the migration source server, when performing live migration will be described below. Fig. 9 is a flowchart showing the operation of the edge server 20a-1 in the second embodiment of the present invention.

[0108] When the memory copy execution unit 24 receives the instruction to execute live migration from the controller 10a via the communication unit 27 (Yes in step S401), the memory copy execution unit 24 starts executing the memory copy process. The memory copy execution unit 24 copies the memory image and transmits it to the edge server 20a-2, which is the migration destination server, via the communication unit 27 (step S402).

[0109] The communication unit 27 transmits information indicating the status of the edge server 20a-1 to the controller 10a, for example, periodically via the communication unit 27, until it receives an instruction to start the end process of the live migration transmitted from the controller 10a (step S403). The information indicating the status of the edge server 20a-1 includes, for example, data indicating the resource usage status.

[0110] The memory copy execution unit 24 also repeatedly generates dirty pages until it receives an instruction to start the end processing of the live migration from the controller 10a. The memory copy execution unit 24 transmits each generated dirty page to the edge server 20a-2 via the communication unit 27 (step S404). The memory copy execution unit 24 also transmits information indicating the amount of generated dirty pages to the controller 10a via the communication unit 27 each time until it receives an instruction to start the end processing of the live migration from the controller 10a (step S405).

[0111] When the termination processing execution unit 26 receives the instruction to start the termination processing of the live migration transmitted from the controller 10a via the communication unit 27 (step S406: Yes), the termination processing execution unit 26 starts the execution of the termination processing of the live migration. The termination processing execution unit 26 stops the operation of the IoT control application 21 (step S407) and transmits the remaining generated dirty pages to the edge server 20a-2, which is the migration destination server, via the communication unit 27 (step S408).

[0112] The termination process execution unit 26 generates status information and transmits it to the edge server 20 a-2 (step S409). As described above, the status information includes, for example, information about the IoT device 30 to be controlled and its status (such as a device ID), information about the communication status (such as session and TCP connection information), and information indicating the status of a processor such as a CPU of the edge server 20 a-1 (its own device).

[0113] The communication unit 27 performs network switching by terminating communication with the IoT device 30 in accordance with the switching instruction transmitted from the controller 10a (step S410).

[0114] This completes the operation of the edge server 20a-1 shown in the flowchart of FIG.

[0115] [Operation of Edge Server (Migration Destination)] An example of the operation of the edge server 20a-2, which is the migration destination server, when performing live migration will be described below. Fig. 10 is a flowchart showing the operation of the edge server 20a-2 in the second embodiment of the present invention.

[0116] When the memory copy execution unit 24 receives an instruction to execute live migration from the controller 10a via the communication unit 27 (Yes in step S501), it starts executing the memory copy process. The memory copy execution unit 24 receives a memory image transmitted from the edge server 20a-1, which is the source server of the migration. The memory copy execution unit 24 copies the received memory image to the memory image storage unit 25 (step S502).

[0117] The communication unit 27 transmits information indicating the status of the edge server 20a-2 to the controller 10a, for example, periodically via the communication unit 27, until it receives an instruction to start the end process of the live migration transmitted from the controller 10a (step S503). The information indicating the status of the edge server 20a-2 includes, for example, data indicating the resource usage status.

[0118] The memory copy execution unit 24 also receives dirty pages transmitted from the edge server 20a-1 until it receives an instruction to start the end processing of the live migration transmitted from the controller 10a. The memory copy execution unit 24 uses the received dirty pages to update the memory image temporarily stored in the memory image storage unit 25 (step S504). The memory copy execution unit 24 repeatedly receives and copies dirty pages until it receives an instruction to start the end processing of the live migration transmitted from the controller 10a.

[0119] When the termination processing execution unit 26 receives an instruction to start the live migration termination processing transmitted from the controller 10a via the communication unit 27 (step S505: Yes), it starts executing the live migration termination processing. When the memory copy execution unit 24 receives the remaining dirty pages transmitted from the edge server 20a-1, it updates the memory image temporarily stored in the memory image storage unit 25 using the received remaining dirty pages (step S506). The memory copy execution unit 24 loads the updated memory image in memory (not shown) so that it can be used by the IoT control application 21.

[0120] The termination process execution unit 26 receives the status information transmitted from the edge server 20 a-1 via the communication unit 27 and copies it to memory (not shown) (step S507). As described above, the status information includes, for example, information about the IoT device 30 to be controlled and its status (device ID, etc.), information about the communication status (session, TCP connection information, etc.), and information indicating the status of a processor such as a CPU of the edge server 20 a-1, which is the migration source server.

[0121] The termination process execution unit 26 starts the IoT control application 21 (step S508). The communication unit 27 performs network switching by starting communication with the IoT device 30 in accordance with the switching instruction transmitted from the controller 10a (step S509).

[0122] This completes the operation of the edge server 20a-2 shown in the flowchart of FIG.

[0123] In the processing of step S401 in the flowchart of Figure 9 above and step S501 in the flowchart of Figure 10 above, when the memory copy execution unit 24 of each of the edge servers 20a-1 and 20a-2 receives an instruction to perform live migration, each memory copy execution unit 24 may store in memory (not shown) information for identifying the source server and the destination server for migration for each IoT control application 21 to be migrated.

[0124] 11 is a diagram illustrating an example of information for identifying a migration source server and a migration destination server in the second embodiment of the present invention. As shown in FIG. 11, the information for identifying the migration source server and the migration destination server is information in which identification information of the IoT control application to be migrated, identification information of the edge server 20 a-1 which is the migration source server, and identification information of the edge server 20 a-2 which is the migration destination server are associated with each other.

[0125] As described above, the IoT system 1a according to the second embodiment of the present invention has a configuration in which the IoT control application 21 of the edge server 20a starts the end processing of live migration in consideration of the control period for controlling the IoT device 30. Specifically, the controller 10a executes the end processing of live migration so as not to overlap with the timing of communication between the edge server 20a and the IoT device 30.

[0126] With this configuration, according to the IoT system 1a of the second embodiment of the present invention, even if a momentary interruption occurs in communication between the edge server 20a and the IoT device 30 due to the termination process of live migration, the occurrence of packet loss can be prevented because no transmission or reception of sensor data or control signals is performed at that timing. This allows the IoT system 1a to prevent loss of sensor data collected by the IoT device 30 and the occurrence of control errors in the IoT device.

[0127] As described above, in the second embodiment, the controller 10a is configured to start the execution of the memory copy process of the live migration before detecting a migration trigger. Then, when the controller 10a detects the migration trigger, it executes the process of terminating the live migration. With this configuration, the IoT system 1a in the second embodiment can complete the live migration more quickly than the IoT system 1 in the first embodiment.

[0128] According to the above-described embodiment, the controller includes an identifying unit and a switching unit. For example, the controller is the controller 10 or 10a in the embodiment, the identifying unit is the termination timing control unit 16 in the embodiment, and the switching unit is the termination process execution control unit 17 and the network switching unit 18 in the embodiment.

[0129] The identifying unit identifies a timing when communication is not performed between the first server and the device based on a device control cycle of a device control application running on the first server. For example, the first server is edge server 20-1 or 20a-1 in the embodiment, the device control application is IoT control application 21 in the embodiment, the device is IoT device 30 in the embodiment, and the timing is the start timing of end processing of live migration in the embodiment. The switching unit switches the server controlling the device from the first server to the second server at the above timing. For example, the second server is edge server 20-2 or 20a-2 in the embodiment.

[0130] Furthermore, according to the above-described embodiment, the migration server includes a communication unit and a termination processing execution unit. For example, the migration server is the edge server 20-1 or 20a-1 in the embodiment, the communication unit is the communication unit 27 in the embodiment, and the termination processing execution unit is the termination processing execution unit 26 in the embodiment.

[0131] The communication unit receives instruction information transmitted from the controller at a timing specified based on the device control cycle of a device control application running on the host device, and at a timing when communication is not taking place between the host device and a device. For example, the device control application is the IoT control application 21 in the embodiment, the device is the IoT device 30 in the embodiment, the timing is a start timing of a live migration termination process in the embodiment, the controller is the controller 10 in the embodiment, and the instruction information is an instruction to start a live migration termination process in the embodiment. The termination process execution unit terminates a switching process that switches the server controlling the device from the host device to another server at the timing when the instruction information is received. For example, the other server is the edge server 20-2 or 20a-2 in the embodiment, and the switching process is a live migration termination process in the embodiment.

[0132] The migration server may further include a memory copy execution unit. For example, the memory copy execution unit is the memory copy execution unit 24 in the embodiment. Upon receiving the instruction information, the memory copy execution unit executes a memory copy process to copy the contents of the memory used by the device control application to another server. The termination process execution unit terminates the switching process after the memory copy process is completed.

[0133] Alternatively, the memory copy execution unit may start a memory copy process for copying the contents of the memory used by the device control application to another server before receiving the instruction information. In this case, the termination process execution unit terminates the switching process when the instruction information is received after the memory copy process is completed.

[0134] Furthermore, according to the above-described embodiment, the migration system includes a first server, a second server, and a control unit. For example, the migration server is the IoT system 1 in the embodiment, the first server is the edge servers 20-1 and 20a-1 in the embodiment, the second server is the edge servers 20-2 and 20a-2 in the embodiment, and the control unit is the controllers 10 and 10a in the embodiment.

[0135] The control unit includes an identifying unit and a switching unit. The identifying unit corresponds to the termination timing control unit 16 in the embodiment, and the switching unit corresponds to the termination process execution control unit 17 and network switching unit 18 in the embodiment. The identifying unit identifies a timing when communication does not occur between the first server and the device based on a device control cycle of a device control application running on the first server. For example, the device control application corresponds to the IoT control application 21 in the embodiment, the device corresponds to the IoT device 30 in the embodiment, and the timing corresponds to the start timing of termination process of live migration in the embodiment. The switching unit switches the server controlling the device from the first server to the second server at the above timing.

[0136] The controller 10, 10a and the edge server 20, 20a in the above-described embodiments may be partially or entirely implemented by a computer. In this case, a program for implementing the functions may be recorded on a computer-readable recording medium, and the program may be loaded into a computer system and executed. Note that the term "computer system" as used herein includes hardware such as an OS and peripheral devices. Furthermore, the term "computer-readable recording medium" refers to portable media such as flexible disks, optical magnetic disks, ROMs, and CD-ROMs, as well as storage devices such as hard disks built into a computer system. Furthermore, the term "computer-readable recording medium" may also include media that dynamically store programs for a short period of time, such as communication lines used when transmitting programs via networks such as the Internet or telephone lines, or media that store programs for a fixed period of time, such as volatile memory within the computer system serving as the server or client. The program may be designed to implement some of the functions described above, or may be capable of implementing the functions in combination with a program already stored in the computer system, or may be implemented using a programmable logic device such as an FPGA (Field Programmable Gate Array).

[0137] 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 that do not deviate from the gist of the present invention.

[0138] 1, 1a...IoT system, 10, 10a...controller, 11...edge server monitoring unit, 12...memory copy execution control unit, 13...memory copy status monitoring unit, 14...IoT communication status monitoring unit, 15...IoT communication status storage unit, 16...termination timing control unit, 17...termination processing execution control unit, 18...network switching unit, 19...communication unit, 20, 20a, 20-1, 20a-1, 20-2, 20a-2...edge server, 21...IoT control application, 22...sensor data storage unit, 23...sensor data processing unit, 24...memory copy execution unit, 25...memory image storage unit, 26...termination processing execution unit, 27...communication unit, 30...IoT device, 50...network

Claims

1. A controller comprising: an identification unit that identifies a timing when communication does not occur between a first server and a device based on the control period of the device in a device control application running on the first server; and a switching unit that switches the server that controls the device from the first server to a second server at the timing.

2. A migration server comprising: a communication unit that receives instruction information sent from a controller at a timing identified based on the control period of a device in a device control application running on the device itself, the timing being a timing at which no communication is performed between the device itself and the device; and a termination processing execution unit that terminates a switching process that switches the server that controls the device from the device itself to another server at the timing at which the instruction information is received.

3. The migration server according to claim 2, further comprising a memory copy execution unit that executes a memory copy process to copy the contents of the memory used by the device control application to the other server when the instruction information is received, and the termination process execution unit terminates the switching process after the memory copy process is completed.

4. The migration server of claim 2, further comprising a memory copy execution unit that starts a memory copy process to copy the contents of the memory used by the device control application to the other server before receiving the instruction information, and the termination process execution unit terminates the switching process at the timing when the instruction information is received after the memory copy process is completed.

5. A migration system having a first server, a second server, and a control unit, wherein the control unit comprises: an identification unit that identifies a timing when communication does not occur between the first server and the device based on a device control period in a device control application running on the first server; and a switching unit that switches the server that controls the device from the first server to the second server at that timing.

6. A computer-implemented migration method comprising: a step of identifying a timing when communication does not occur between a first server and a device based on the control period of the device in a device control application running on the first server; and a switching step of switching the server controlling the device from the first server to a second server at the timing.

7. A migration method by a computer of a first server, comprising: a communication step of receiving instruction information transmitted from a controller at a timing specified based on the control period of a device in a device control application running on the first server, the timing being a timing when no communication is taking place between the first server and the device; and a termination processing execution unit that terminates the process of switching the server controlling the device from the first server to a second server at the timing when the instruction information is received.

8. A migration method by a computer in a control unit of a migration system having a first server, a second server, and a control unit, comprising: a step of identifying a timing when communication does not occur between the first server and the device based on the control period of the device in a device control application running on the first server; and a switching step of switching the server controlling the device from the first server to the second server at said timing.