WO2024003962A1 - コンテナ移行装置、コンテナ移行方法およびコンテナ移行プログラム - Google Patents
コンテナ移行装置、コンテナ移行方法およびコンテナ移行プログラム Download PDFInfo
- Publication number
- WO2024003962A1 WO2024003962A1 PCT/JP2022/025423 JP2022025423W WO2024003962A1 WO 2024003962 A1 WO2024003962 A1 WO 2024003962A1 JP 2022025423 W JP2022025423 W JP 2022025423W WO 2024003962 A1 WO2024003962 A1 WO 2024003962A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- migration
- container
- destination
- proxy
- source
- Prior art date
Links
- 230000005012 migration Effects 0.000 title claims abstract description 265
- 238000013508 migration Methods 0.000 title claims abstract description 260
- 238000000034 method Methods 0.000 title claims description 38
- 238000012545 processing Methods 0.000 claims abstract description 37
- 230000007704 transition Effects 0.000 claims abstract description 24
- 230000005540 biological transmission Effects 0.000 claims abstract description 4
- 238000012546 transfer Methods 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 11
- 230000006870 function Effects 0.000 description 22
- 238000004891 communication Methods 0.000 description 16
- 230000010365 information processing Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000004913 activation Effects 0.000 description 4
- 206010000117 Abnormal behaviour Diseases 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Definitions
- This disclosure relates to software container migration.
- OSS Open Source Software
- third-party apps can occupy hardware and system resources and affect the operation of critical applications.
- applications are often composed of multiple functions.
- the applications are a cloud communication function, an AI anomaly detection function, and a database function.
- AI is an abbreviation for artificial intelligence.
- containerizing an application instead of containerizing the entire application, by containerizing each function, the impact of abnormal behavior can be suppressed for each function.
- a plurality of containers are executed on the device, and functions are mutually called between the containers.
- An example of such a mechanism is Representational State Transfer (REST).
- Patent Document 1 discloses a method for shortening container stop time by differentially transferring container images. However, this method does not eliminate container downtime. Therefore, when requests and data are sent from other containers to a stopped container, the requests and data are not accepted by the destination container.
- the present disclosure aims to enable container migration without losing data during container migration.
- a container migration device of the present disclosure migrates a container that performs data processing from a migration source device to a migration destination device.
- the migration source device is a device on which a migration source container and a migration source proxy operate.
- the migration destination device is a device on which a migration destination container and a migration destination proxy operate.
- the container transfer device includes: The operation mode of the migration source proxy is changed from a transfer mode in which data is received from a request source container that requests the data processing, and the received data is transferred to the request destination container, which is the source container.
- a first transition part that transitions to a queuing mode in which it is stored without being transferred; After the operation mode of the source proxy is transitioned to the queuing mode and the destination container is started, the operation mode of the source proxy is changed to send the saved data to the destination proxy.
- a second transition section for transitioning to queue sending mode; a destination changing unit that causes the requesting container to change the data destination from the migration source proxy to the migration destination proxy after the sending of the saved data is completed; Equipped with.
- containers can be migrated without losing data during container migration.
- FIG. 1 is a configuration diagram of an information processing system 100 in Embodiment 1.
- FIG. FIG. 2 is a configuration diagram of a migration source device 200 in the first embodiment.
- FIG. 2 is a configuration diagram of a migration management unit 230 in the first embodiment.
- FIG. 3 is a configuration diagram of a migration destination device 300 in the first embodiment.
- 1 is a schematic diagram of a container migration method in Embodiment 1.
- FIG. 1 is a schematic diagram of a container migration method in Embodiment 1.
- FIG. 1 is a schematic diagram of a container migration method in Embodiment 1.
- FIG. 1 is a schematic diagram of a container migration method in Embodiment 1.
- FIG. 5 is a flowchart of a container migration method in Embodiment 1.
- FIG. 4 is an operation sequence of information processing system 100 in Embodiment 1.
- 4 is an operation sequence of information processing system 100 in Embodiment 1.
- 4 is an operation sequence of information processing system 100 in Embodiment 1.
- FIG. 2 is a hardware configuration diagram of a migration source device 200 in Embodiment 1.
- FIG. 3 is a hardware configuration diagram of a migration destination device 300 in the first embodiment.
- Embodiment 1 A mode of migrating a container that performs data processing will be described based on FIGS. 1 to 14.
- container means a software container or a functional block corresponding to a software container.
- proxy means a software proxy or a functional block equivalent to a software proxy.
- the configuration of the information processing system 100 will be explained based on FIG. 1.
- the information processing system 100 includes a migration source device 200 and a migration destination device 300.
- the migration source device 200 and the migration destination device 300 communicate with each other via the network 101.
- the migration source device 200 and the migration destination device 300 have different IP addresses.
- IP is an abbreviation for Internet Protocol.
- the migration source device 200 includes a request source container 110, a migration source proxy 120, and a migration source container 130.
- the request source container 110 is a container that sends data and requests processing for the data.
- the migration source proxy 120 is a proxy that receives data from the request source container 110 and transfers the received data to the migration source container 130 before migration.
- the migration source container 130 is a request destination container before migration.
- the request destination container is a container that processes data sent from the request source container 110.
- the destination device 300 includes a destination proxy 140 and a destination container 150.
- the migration destination proxy 140 is a proxy that receives data from the requesting container 110 after migration and transfers the received data to the migration destination container 150.
- the migration destination container 150 is a request destination container after migration.
- the migration source device 200 functions as a container migration device.
- the container migration device migrates a container that performs data processing from the migration source device 200 to the migration destination device 300.
- solid arrows indicate the flow of data before migration
- dashed arrows indicate the flow of data after migration
- dashed-dotted arrows indicate the flow of data during migration.
- the configuration of the migration source device 200 will be explained based on FIG. 2.
- the migration source device 200 is a computer that includes hardware such as a processor 201, a memory 202, an auxiliary storage device 203, a communication device 204, and an input/output interface 205. These pieces of hardware are connected to each other via signal lines.
- the processor 201 is an IC that performs arithmetic processing and controls other hardware.
- processor 201 is a CPU.
- IC is an abbreviation for Integrated Circuit.
- CPU is an abbreviation for Central Processing Unit.
- Memory 202 is a volatile or non-volatile storage device. Memory 202 is also called main storage or main memory. For example, memory 202 is a RAM. The data stored in memory 202 is stored in auxiliary storage device 203 as needed. RAM is an abbreviation for Random Access Memory.
- the auxiliary storage device 203 is a nonvolatile storage device.
- the auxiliary storage device 203 is a ROM, an HDD, a flash memory, or a combination thereof. Data stored in auxiliary storage device 203 is loaded into memory 202 as needed.
- ROM is an abbreviation for Read Only Memory.
- HDD is an abbreviation for Hard Disk Drive.
- Communication device 204 is a receiver and transmitter.
- communication device 204 is a communication chip or NIC.
- Communication between the migration source device 200 is performed using the communication device 204.
- NIC is an abbreviation for Network Interface Card.
- the input/output interface 205 is a port to which an input device and an output device are connected.
- the input/output interface 205 is a USB terminal
- the input device is a keyboard and a mouse
- the output device is a display.
- Input/output of the migration source device 200 is performed using the input/output interface 205.
- USB is an abbreviation for Universal Serial Bus.
- the migration source device 200 includes elements such as a container section 210, a proxy section 220, and a migration management section 230. These elements are implemented in software.
- the container unit 210 executes the request source container 110 and the migration source container 130.
- the proxy unit 220 executes the migration source proxy 120.
- the migration management unit 230 executes container migration.
- the auxiliary storage device 203 stores migration source programs that cause the computer to function as a container section 210, a proxy section 220, and a migration management section 230.
- the migration source program includes a container migration program that causes the computer to function as the migration management unit 230.
- the migration source program is loaded into memory 202 and executed by processor 201.
- the auxiliary storage device 203 further stores an OS. At least a portion of the OS is loaded into memory 202 and executed by processor 201.
- the processor 201 executes the migration source program while executing the OS.
- OS is an abbreviation for Operating System.
- the input/output data of the migration source program is stored in the storage unit 290.
- Memory 202 functions as storage section 290.
- storage devices such as the auxiliary storage device 203, a register in the processor 201, and a cache memory in the processor 201 may function as the storage unit 290 instead of the memory 202 or together with the memory 202.
- the migration source device 200 may include a plurality of processors that replace the processor 201.
- the migration source program can be recorded (stored) in a computer-readable manner on a non-volatile recording medium such as an optical disk or a flash memory.
- the configuration of the migration management section 230 will be explained based on FIG. 3.
- the migration management unit 230 includes a migration destination generation unit 231, a first transition unit 232, a migration source stop unit 233, a volume migration unit 234, a migration destination activation unit 235, a second transition unit 236, and a destination change 237.
- the configuration of the migration destination device 300 will be explained based on FIG. 4.
- the migration destination device 300 is a computer that includes hardware such as a processor 301 , a memory 302 , an auxiliary storage device 303 , a communication device 304 , and an input/output interface 305 . These pieces of hardware are connected to each other via signal lines.
- a processor 301 is an IC that performs arithmetic processing and controls other hardware.
- processor 301 is a CPU.
- Memory 302 is a volatile or non-volatile storage device. Memory 302 is also called main storage or main memory.
- memory 302 is a RAM.
- the data stored in memory 302 is saved in auxiliary storage device 303 as needed.
- Auxiliary storage device 303 is a nonvolatile storage device.
- the auxiliary storage device 303 is a ROM, an HDD, a flash memory, or a combination thereof. Data stored in auxiliary storage device 303 is loaded into memory 302 as needed.
- Communication device 304 is a receiver and transmitter.
- communication device 304 is a communication chip or NIC.
- the input/output interface 305 is a port to which an input device and an output device are connected.
- the input/output interface 305 is a USB terminal
- the input device is a keyboard and a mouse
- the output device is a display.
- Input/output of the migration destination device 300 is performed using the input/output interface 305.
- the migration destination device 300 includes elements such as a container section 310 and a proxy section 320. These elements are implemented in software.
- the container unit 310 generates and executes the migration destination container 150.
- the proxy unit 320 generates and executes the migration destination proxy 140.
- the auxiliary storage device 303 stores a migration destination program for causing the computer to function as a container unit 310 and a proxy unit 320.
- the destination program is loaded into memory 302 and executed by processor 301.
- the auxiliary storage device 303 further stores an OS. At least a portion of the OS is loaded into memory 302 and executed by processor 301.
- the processor 301 executes the migration destination program while executing the OS.
- the input/output data of the migration destination program is stored in the storage unit 390.
- Memory 302 functions as storage section 390.
- storage devices such as the auxiliary storage device 303, a register in the processor 301, and a cache memory in the processor 301 may function as the storage unit 390 instead of the memory 302 or together with the memory 302.
- the migration destination device 300 may include a plurality of processors that replace the processor 301.
- the migration destination program can be recorded (stored) in a computer-readable manner on a non-volatile recording medium such as an optical disk or a flash memory.
- the operation procedure of the migration management unit 230 corresponds to a container migration method. Further, the operation procedure of the migration management unit 230 corresponds to the processing procedure by the container migration program.
- FIG. 5 shows the status of the information processing system 100 before migration.
- a request source container 110 has destination information 111.
- the destination information 111 indicates the migration source proxy 120 as the data destination. Proxies are distinguished, for example, by port number or URL. URL is an abbreviation for Uniform Resource Locator.
- the migration source proxy 120 has a queue 121.
- the migration source container 130 has a volume 131 and an image 132.
- the volume 131 is provided as a readable and writable storage area, and data is mainly read and written therein for data processing.
- the image 132 is prepared in a read-only area, and stores libraries, programs, etc. for data processing.
- the requesting container 110 sends the packet to the source proxy 120.
- the packet includes a request for data processing and the data to be processed.
- the source proxy 120 receives packets transmitted from the request source container 110, adds the received packets to the queue 121, takes out the packets in the order in which they were added, and transfers the packets to the source container 130.
- the source container 130 receives the packet transferred from the source proxy 120 and processes the data in the received packet according to the request in the received packet.
- FIG. 6 shows the status of the information processing system 100 during migration (1).
- the source proxy 120 receives the packet transmitted from the request source container 110, stores the received packet in the queue 121 (queuing), and does not transfer the packet to the source container 130.
- the migration source container 130 is stopped.
- a destination proxy 140 and a destination container 150 are generated.
- the migration destination proxy 140 has a queue 141. Queue 141 corresponds to queue 121.
- the migration destination container 150 has a volume 151 and an image 152. Volume 151 corresponds to volume 131. Image 152 corresponds to image 132.
- FIG. 7 shows the status of the information processing system 100 during migration (2).
- the migration destination container 150 is started.
- the source proxy 120 transmits the packets stored in the queue 121 to the destination proxy 140 in the order in which they were stored.
- the destination proxy 140 receives the packets transmitted from the source proxy 120, adds the received packets to the queue 141, takes out the packets in the order in which they were added, and transfers them to the destination container 150.
- the destination container 150 receives the packet transferred from the destination proxy 140 and processes the data in the received packet according to the request in the received packet.
- FIG. 8 shows the status of the information processing system 100 after migration. Transmission of the packet from the source proxy 120 to the destination proxy 140 has been completed.
- the requesting container 110 updates the destination information 111 to the destination information 112.
- the destination information 112 indicates the migration destination proxy 140 as the data destination.
- the requesting container 110 sends the packet to the destination proxy 140.
- the migration destination proxy 140 receives the packets transmitted from the request source container 110, adds the received packets to the queue 141, takes out the packets in the order in which they were added, and transfers the packets to the migration destination container 150.
- the destination container 150 receives the packet transferred from the destination proxy 140 and processes the data in the received packet according to the request in the received packet.
- FIG. 9 shows a flowchart of the container migration method.
- 10 to 12 show the operation sequence of the information processing system 100.
- the operation mode of the migration source proxy 120 is the transfer mode.
- the transfer mode is an operation mode in which data transmitted from the request source container 110 is received and the received data is transferred to the request destination container.
- the request destination container is the migration source container 130. Data is also included in packets.
- the migration source container 130 is in operation.
- step S110 the destination generation unit 231 causes the destination device 300 to generate the destination container 150 and the destination proxy 140.
- the migration destination container 150 is generated as follows.
- the migration destination generation unit 231 transmits a container generation request including the image 132 of the migration source container 130 to the migration destination device 300.
- the container unit 310 receives the container generation request and generates the migration destination container 150 using the image 132. However, the container unit 310 does not start the migration destination container 150. In other words, the migration destination container 150 is stopped.
- the migration destination proxy 140 is generated as follows.
- the migration destination generation unit 231 receives a proxy generation request to the migration destination device 300.
- the proxy unit 320 generates the destination proxy 140, starts the destination proxy 140, and sets the operation mode of the destination proxy 140 to transfer mode.
- step S120 the first transition unit 232 transitions the operation mode of the migration source proxy 120 from transfer mode to queuing mode.
- Queuing mode is an operation mode in which data is stored without being transferred.
- the operation mode of the migration source proxy 120 is transitioned as follows.
- the first transition unit 232 instructs the proxy unit 220 to change the operation mode to queuing mode.
- the proxy unit 220 changes the operation mode of the migration source proxy 120 to queuing mode according to the instruction.
- the source proxy 120 stores data sent from the requesting container 110 in the queue 121.
- step S130 the migration source stop unit 233 stops the migration source container 130.
- the migration source container 130 is stopped as follows.
- the migration source stop unit 233 instructs the container unit 210 to stop the migration source container 130.
- the container unit 210 stops the migration source container 130 according to the instruction.
- step S140 the volume migration unit 234 migrates the volume 131 from the migration source container 130 to the migration destination container 150.
- Volume 131 is migrated as follows.
- the volume migration unit 234 transfers the volume 131 of the migration source container 130 to the migration destination device 300.
- the container unit 310 receives the volume 131 and uses the volume 131 to update the volume 151 of the migration destination container 150.
- step S150 the migration destination startup unit 235 starts the migration destination container 150.
- the destination container 150 is started as follows.
- the migration destination activation unit 235 transmits a container activation request to the migration destination device 300.
- the container unit 310 receives the container startup request and starts the migration destination container 150.
- the destination container 150 becomes operational.
- step S160 the second transition unit 236 transitions the operation mode of the migration source proxy 120 from the queuing mode to the queue sending mode.
- the queue sending mode is an operation mode in which saved data is sent to the destination proxy 140.
- the operation mode of the migration source proxy 120 is transitioned as follows.
- the second transition unit 236 instructs the proxy unit 220 to change the operation mode to queue sending mode.
- the proxy unit 220 changes the operation mode of the migration source proxy 120 to queue transfer mode according to the instruction.
- the source proxy 120 transmits the data stored in the queue 121 to the destination proxy 140 in the order in which they were stored. Further, when data is received from the request source container 110, the migration source proxy 120 adds the received data to the queue 121. The added data is sent to the destination proxy 140 in order.
- the proxy unit 220 When all the data stored in the queue 121 has been transmitted and the queue 121 is empty, the proxy unit 220 notifies the migration management unit 230 of the completion of transmission. If data is subsequently received from the request source container 110, the migration source proxy 120 adds the received data to the queue 121. The added data is sent to the destination proxy 140 in order.
- step S170 the destination changing unit 237 causes the requesting container 110 to change the data destination from the source proxy 120 to the destination proxy 140.
- the data destination will be changed as follows.
- the destination changing unit 237 instructs the container unit 210 to change the destination to the migration destination proxy 140.
- the container unit 210 changes the destination indicated in the destination information 111 from the source proxy 120 to the destination proxy 140 in accordance with the instruction.
- step S170 container migration is completed.
- the requesting container 110 sends the data to the destination proxy 140.
- the destination proxy 140 receives data from the requesting container 110 and transfers the received data to the destination container 150.
- Destination container 150 receives data from destination proxy 140 and processes the received data.
- the migration management unit 230 may be provided in the migration destination device 300 instead of the migration source device 200, or may be provided in another device.
- the image 132 of the source container 130 does not need to be transferred when the destination container 150 is generated (S110).
- the image 132 may be transferred before the migration destination container 150 is started.
- the image 132 may be transferred when the volume 131 is migrated (S140).
- S140 volume 131 is migrated
- Embodiment 1 provides a technique that allows a container to perform processing in the order of requests without losing requests from a requesting functional block while the container is stopped.
- Embodiment 1 introduces a communication proxy that can queue packets (requests, data) between containers.
- the migration target container can process all packets in order without losing any packets even during container migration.
- the hardware configuration of the migration source device 200 will be described based on FIG. 13.
- the migration source device 200 includes a processing circuit 209 .
- the processing circuit 209 is hardware that implements the container section 210, proxy section 220, and migration management section 230.
- the processing circuit 209 may be dedicated hardware or may be the processor 201 that executes a program stored in the memory 202.
- processing circuit 209 is dedicated hardware, processing circuit 209 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
- ASIC is an abbreviation for Application Specific Integrated Circuit.
- FPGA is an abbreviation for Field Programmable Gate Array.
- the migration source device 200 may include a plurality of processing circuits that replace the processing circuit 209.
- processing circuit 209 some functions may be realized by dedicated hardware, and the remaining functions may be realized by software or firmware.
- the functions of the migration source device 200 can be realized by hardware, software, firmware, or a combination of these.
- the hardware configuration of the migration destination device 300 will be described based on FIG. 14.
- the migration destination device 300 includes a processing circuit 309 .
- the processing circuit 309 is hardware that implements the container section 310 and the proxy section 320.
- the processing circuit 309 may be dedicated hardware or may be the processor 301 that executes a program stored in the memory 302.
- the processing circuit 309 is dedicated hardware, the processing circuit 309 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
- the migration source device 200 may include a plurality of processing circuits that replace the processing circuit 209.
- processing circuit 309 some functions may be realized by dedicated hardware, and the remaining functions may be realized by software or firmware.
- the functions of the migration destination device 300 can be realized by hardware, software, firmware, or a combination thereof.
- Embodiment 1 is an illustration of a preferred embodiment and is not intended to limit the technical scope of the present disclosure. Embodiment 1 may be implemented partially or in combination with other embodiments. The procedures described using flowcharts and the like may be modified as appropriate.
- the "unit" of each element of the migration source device 200 and the migration destination device 300 may be read as “process”, “process”, “circuit”, or “circuitry”.
- 100 Information processing system 101 Network, 110 Request source container, 111 Destination information, 112 Destination information, 120 Migration source proxy, 121 Queue, 130 Migration source container, 131 Volume, 132 Image, 140 Migration destination proxy, 141 Queue, 150 Migration destination container, 151 Volume, 152 Image, 200 Migration source device, 201 Processor, 202 Memory, 203 Auxiliary storage device, 204 Communication device, 205 I/O interface, 209 Processing circuit, 210 Container part, 220 Proxy part, 230 Migration Management unit, 231 Destination generation unit, 232 First transition unit, 233 Migration source stop unit, 234 Volume migration unit, 235 Destination activation unit, 236 Second transition unit, 237 Destination change unit, 290 Storage unit, 300 Migration destination device, 301 processor, 302 memory, 303 auxiliary storage device, 304 communication device, 305 input/output interface, 309 processing circuit, 310 container section, 320 proxy section, 390 storage section.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
コンテナ移行装置は、移行元プロキシ(120)の動作モードを、データ処理を要求する要求元コンテナ(110)から送信されるデータを受信して受信したデータを要求先コンテナである移行元コンテナ(130)へ転送する転送モードから、前記データを転送せずに保存するキューイングモードへ、遷移させる。前記移行元プロキシの前記動作モードが前記キューイングモードへ遷移されて且つ移行先コンテナ(150)が起動された後に、前記コンテナ移行装置は、前記移行元プロキシの前記動作モードを、保存されたデータを移行先プロキシへ送出するキュー送出モードへ、遷移させる。前記保存されたデータの送出が完了した後に、前記コンテナ移行装置は、前記要求元コンテナにデータの送信先を前記移行元プロキシから移行先プロキシ(140)へ変更させる。
Description
本開示は、ソフトウェアコンテナの移行に関するものである。
近年の組込み機器では、製品開発でOpen Source Software(OSS)が利用される場合がある。また、製品購入後にサードパーティ製アプリを追加することが可能な組込み機器がある。
OSSまたは追加アプリといった非重要なアプリケーションが異常な動作をすると、ハードウェアリソースおよびシステムリソースが占有されてしまい、重要なアプリケーションの動作に影響を与える可能性がある。
OSSまたは追加アプリといった非重要なアプリケーションが異常な動作をすると、ハードウェアリソースおよびシステムリソースが占有されてしまい、重要なアプリケーションの動作に影響を与える可能性がある。
このような問題を防ぐために、それぞれの非重要なアプリケーションをソフトウェアコンテナ化する、という手段がある。
この手段により、非重要なアプリケーションの異常動作に伴うリソース占有による影響を抑えることができる。そして、重要なアプリケーションの安定動作が可能となる。
この手段により、非重要なアプリケーションの異常動作に伴うリソース占有による影響を抑えることができる。そして、重要なアプリケーションの安定動作が可能となる。
一般に、アプリケーションは複数の機能から構成される場合が多い。機能の具体例は、アプリケーションは、クラウド通信機能、AI異常検知機能およびデータベース機能である。AIは人工知能の略称である。
アプリケーションをコンテナ化する場合、アプリケーション全体をコンテナ化するのではなく、各機能をコンテナ化することで、異常動作の影響を機能ごとに抑えることができる。
このようなアプリケーションが機器上で実行される場合、機器では、複数のコンテナが実行され、コンテナ間で相互に機能が呼び出される。このような仕組みの例として、Representational State Transfer(REST)が挙げられる。
アプリケーションをコンテナ化する場合、アプリケーション全体をコンテナ化するのではなく、各機能をコンテナ化することで、異常動作の影響を機能ごとに抑えることができる。
このようなアプリケーションが機器上で実行される場合、機器では、複数のコンテナが実行され、コンテナ間で相互に機能が呼び出される。このような仕組みの例として、Representational State Transfer(REST)が挙げられる。
ここで、機器のメモリ不足、機器の保守または機器のアップグレードなどの事由のために、動作中のコンテナを他の機器へ移行(マイグレーション)したいというニーズがある。
動作中のコンテナを移動するには、コンテナを一旦停止して、必要なデータを転送する必要がある。
特許文献1は、コンテナイメージの差分転送により、コンテナの停止時間を短くする手法を開示している。
しかし、この手法を用いても、コンテナの停止時間がゼロになるわけではない。そのため、他のコンテナから停止中のコンテナへ要求およびデータが送信されると、要求およびデータが送信先のコンテナで受け付けられない。
動作中のコンテナを移動するには、コンテナを一旦停止して、必要なデータを転送する必要がある。
特許文献1は、コンテナイメージの差分転送により、コンテナの停止時間を短くする手法を開示している。
しかし、この手法を用いても、コンテナの停止時間がゼロになるわけではない。そのため、他のコンテナから停止中のコンテナへ要求およびデータが送信されると、要求およびデータが送信先のコンテナで受け付けられない。
また、センサデータの収集などのために、コンテナの移行中でも収集データを失うことなく収集データを継続してコンテナで処理したい、という要求がある。
本開示は、コンテナの移行中にデータを失うことなく、コンテナを移行できるようにすることを目的とする。
本開示のコンテナ移行装置は、データ処理を行うコンテナを移行元機器から移行先機器へ移行する。
前記移行元機器は、移行元コンテナと移行元プロキシが動作する機器である。
前記移行先機器は、移行先コンテナと移行先プロキシが動作する機器である。
前記コンテナ移行装置は、
前記移行元プロキシの動作モードを、前記データ処理を要求する要求元コンテナから送信されるデータを受信して受信したデータを要求先コンテナである前記移行元コンテナへ転送する転送モードから、前記データを転送せずに保存するキューイングモードへ、遷移させる第1遷移部と、
前記移行元プロキシの前記動作モードが前記キューイングモードへ遷移されて且つ前記移行先コンテナが起動された後に、前記移行元プロキシの前記動作モードを、保存されたデータを前記移行先プロキシへ送出するキュー送出モードへ、遷移させる第2遷移部と、
前記保存されたデータの送出が完了した後に、前記要求元コンテナにデータの送信先を前記移行元プロキシから前記移行先プロキシへ変更させる送信先変更部と、
を備える。
前記移行元機器は、移行元コンテナと移行元プロキシが動作する機器である。
前記移行先機器は、移行先コンテナと移行先プロキシが動作する機器である。
前記コンテナ移行装置は、
前記移行元プロキシの動作モードを、前記データ処理を要求する要求元コンテナから送信されるデータを受信して受信したデータを要求先コンテナである前記移行元コンテナへ転送する転送モードから、前記データを転送せずに保存するキューイングモードへ、遷移させる第1遷移部と、
前記移行元プロキシの前記動作モードが前記キューイングモードへ遷移されて且つ前記移行先コンテナが起動された後に、前記移行元プロキシの前記動作モードを、保存されたデータを前記移行先プロキシへ送出するキュー送出モードへ、遷移させる第2遷移部と、
前記保存されたデータの送出が完了した後に、前記要求元コンテナにデータの送信先を前記移行元プロキシから前記移行先プロキシへ変更させる送信先変更部と、
を備える。
本開示によれば、コンテナの移行中にデータを失うことなく、コンテナを移行することができる。
実施の形態および図面において、同じ要素または対応する要素には同じ符号を付している。説明した要素と同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
実施の形態1.
データ処理を行うコンテナを移行する形態について、図1から図14に基づいて説明する。
データ処理を行うコンテナを移行する形態について、図1から図14に基づいて説明する。
実施の形態1において、「コンテナ」は、ソフトウェアコンテナまたはソフトウェアコンテナに相当する機能ブロックを意味する。
また、「プロキシ」は、ソフトウェアプロキシまたはソフトウェアプロキシに相当する機能ブロックを意味する。
また、「プロキシ」は、ソフトウェアプロキシまたはソフトウェアプロキシに相当する機能ブロックを意味する。
***構成の説明***
図1に基づいて、情報処理システム100の構成を説明する。
情報処理システム100は、移行元機器200と、移行先機器300と、を備える。
移行元機器200と移行先機器300は、ネットワーク101を介して、互いに通信する。
移行元機器200と移行先機器300は、互いにIPアドレスが異なる。IPは、インターネットプロトコルの略称である。
図1に基づいて、情報処理システム100の構成を説明する。
情報処理システム100は、移行元機器200と、移行先機器300と、を備える。
移行元機器200と移行先機器300は、ネットワーク101を介して、互いに通信する。
移行元機器200と移行先機器300は、互いにIPアドレスが異なる。IPは、インターネットプロトコルの略称である。
移行元機器200は、要求元コンテナ110と、移行元プロキシ120と、移行元コンテナ130と、を有する。
要求元コンテナ110は、データを送信してデータに対する処理を要求するコンテナである。
移行元プロキシ120は、移行前に要求元コンテナ110からデータを受信して受信したデータを移行元コンテナ130へ転送するプロキシである。
移行元コンテナ130は、移行前の要求先コンテナである。
要求先コンテナは、要求元コンテナ110から送信されたデータに対する処理を行うコンテナである。
要求元コンテナ110は、データを送信してデータに対する処理を要求するコンテナである。
移行元プロキシ120は、移行前に要求元コンテナ110からデータを受信して受信したデータを移行元コンテナ130へ転送するプロキシである。
移行元コンテナ130は、移行前の要求先コンテナである。
要求先コンテナは、要求元コンテナ110から送信されたデータに対する処理を行うコンテナである。
移行先機器300は、移行先プロキシ140と、移行先コンテナ150と、を有する。
移行先プロキシ140は、移行後に要求元コンテナ110からデータを受信して受信したデータを移行先コンテナ150へ転送するプロキシである。
移行先コンテナ150は、移行後の要求先コンテナである。
移行先プロキシ140は、移行後に要求元コンテナ110からデータを受信して受信したデータを移行先コンテナ150へ転送するプロキシである。
移行先コンテナ150は、移行後の要求先コンテナである。
移行元機器200は、コンテナ移行装置として機能する。
コンテナ移行装置は、データ処理を行うコンテナを移行元機器200から移行先機器300へ移行する。
コンテナ移行装置は、データ処理を行うコンテナを移行元機器200から移行先機器300へ移行する。
図1において、実線矢印は移行前のデータの流れを示し、破線矢印は移行後のデータの流れを示し、一点鎖線矢印は移行中のデータの流れを示す。
図2に基づいて、移行元機器200の構成を説明する。
移行元機器200は、プロセッサ201とメモリ202と補助記憶装置203と通信装置204と入出力インタフェース205といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
移行元機器200は、プロセッサ201とメモリ202と補助記憶装置203と通信装置204と入出力インタフェース205といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
プロセッサ201は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ201はCPUである。
ICは、Integrated Circuitの略称である。
CPUは、Central Processing Unitの略称である。
ICは、Integrated Circuitの略称である。
CPUは、Central Processing Unitの略称である。
メモリ202は揮発性または不揮発性の記憶装置である。メモリ202は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ202はRAMである。メモリ202に記憶されたデータは必要に応じて補助記憶装置203に保存される。
RAMは、Random Access Memoryの略称である。
RAMは、Random Access Memoryの略称である。
補助記憶装置203は不揮発性の記憶装置である。例えば、補助記憶装置203は、ROM、HDD、フラッシュメモリまたはこれらの組み合わせである。補助記憶装置203に記憶されたデータは必要に応じてメモリ202にロードされる。
ROMは、Read Only Memoryの略称である。
HDDは、Hard Disk Driveの略称である。
ROMは、Read Only Memoryの略称である。
HDDは、Hard Disk Driveの略称である。
通信装置204はレシーバ及びトランスミッタである。例えば、通信装置204は通信チップまたはNICである。移行元機器200の通信は通信装置204を用いて行われる。
NICは、Network Interface Cardの略称である。
NICは、Network Interface Cardの略称である。
入出力インタフェース205は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース205はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。移行元機器200の入出力は入出力インタフェース205を用いて行われる。
USBは、Universal Serial Busの略称である。
USBは、Universal Serial Busの略称である。
移行元機器200は、コンテナ部210とプロキシ部220と移行管理部230といった要素を備える。これらの要素はソフトウェアで実現される。
コンテナ部210は、要求元コンテナ110と移行元コンテナ130を実行する。
プロキシ部220は、移行元プロキシ120を実行する。
移行管理部230は、コンテナ移行を実行する。
コンテナ部210は、要求元コンテナ110と移行元コンテナ130を実行する。
プロキシ部220は、移行元プロキシ120を実行する。
移行管理部230は、コンテナ移行を実行する。
補助記憶装置203には、コンテナ部210とプロキシ部220と移行管理部230としてコンピュータを機能させる移行元プログラムが記憶されている。移行元プログラムは、移行管理部230としてコンピュータを機能させるコンテナ移行プログラムを含む。
移行元プログラムは、メモリ202にロードされて、プロセッサ201によって実行される。
補助記憶装置203には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ202にロードされて、プロセッサ201によって実行される。
プロセッサ201は、OSを実行しながら、移行元プログラムを実行する。
OSは、Operating Systemの略称である。
移行元プログラムは、メモリ202にロードされて、プロセッサ201によって実行される。
補助記憶装置203には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ202にロードされて、プロセッサ201によって実行される。
プロセッサ201は、OSを実行しながら、移行元プログラムを実行する。
OSは、Operating Systemの略称である。
移行元プログラムの入出力データは記憶部290に記憶される。
メモリ202は記憶部290として機能する。但し、補助記憶装置203、プロセッサ201内のレジスタおよびプロセッサ201内のキャッシュメモリなどの記憶装置が、メモリ202の代わりに、又は、メモリ202と共に、記憶部290として機能してもよい。
メモリ202は記憶部290として機能する。但し、補助記憶装置203、プロセッサ201内のレジスタおよびプロセッサ201内のキャッシュメモリなどの記憶装置が、メモリ202の代わりに、又は、メモリ202と共に、記憶部290として機能してもよい。
移行元機器200は、プロセッサ201を代替する複数のプロセッサを備えてもよい。
移行元プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
図3に基づいて、移行管理部230の構成を説明する。
移行管理部230は、移行先生成部231と、第1遷移部232と、移行元停止部233と、ボリューム移行部234と、移行先起動部235と、第2遷移部236と、送信先変更部237と、を備える。
移行管理部230は、移行先生成部231と、第1遷移部232と、移行元停止部233と、ボリューム移行部234と、移行先起動部235と、第2遷移部236と、送信先変更部237と、を備える。
図4に基づいて、移行先機器300の構成を説明する。
移行先機器300は、プロセッサ301とメモリ302と補助記憶装置303と通信装置304と入出力インタフェース305といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
移行先機器300は、プロセッサ301とメモリ302と補助記憶装置303と通信装置304と入出力インタフェース305といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
プロセッサ301は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ301はCPUである。
メモリ302は揮発性または不揮発性の記憶装置である。メモリ302は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ302はRAMである。メモリ302に記憶されたデータは必要に応じて補助記憶装置303に保存される。
補助記憶装置303は不揮発性の記憶装置である。例えば、補助記憶装置303は、ROM、HDD、フラッシュメモリまたはこれらの組み合わせである。補助記憶装置303に記憶されたデータは必要に応じてメモリ302にロードされる。
通信装置304はレシーバ及びトランスミッタである。例えば、通信装置304は通信チップまたはNICである。移行先機器300の通信は通信装置304を用いて行われる。
入出力インタフェース305は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース305はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。移行先機器300の入出力は入出力インタフェース305を用いて行われる。
メモリ302は揮発性または不揮発性の記憶装置である。メモリ302は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ302はRAMである。メモリ302に記憶されたデータは必要に応じて補助記憶装置303に保存される。
補助記憶装置303は不揮発性の記憶装置である。例えば、補助記憶装置303は、ROM、HDD、フラッシュメモリまたはこれらの組み合わせである。補助記憶装置303に記憶されたデータは必要に応じてメモリ302にロードされる。
通信装置304はレシーバ及びトランスミッタである。例えば、通信装置304は通信チップまたはNICである。移行先機器300の通信は通信装置304を用いて行われる。
入出力インタフェース305は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース305はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。移行先機器300の入出力は入出力インタフェース305を用いて行われる。
移行先機器300は、コンテナ部310とプロキシ部320といった要素を備える。これらの要素はソフトウェアで実現される。
コンテナ部310は、移行先コンテナ150を生成して実行する。
プロキシ部320は、移行先プロキシ140を生成して実行する。
コンテナ部310は、移行先コンテナ150を生成して実行する。
プロキシ部320は、移行先プロキシ140を生成して実行する。
補助記憶装置303には、コンテナ部310とプロキシ部320としてコンピュータを機能させるための移行先プログラムが記憶されている。移行先プログラムは、メモリ302にロードされて、プロセッサ301によって実行される。
補助記憶装置303には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ302にロードされて、プロセッサ301によって実行される。
プロセッサ301は、OSを実行しながら、移行先プログラムを実行する。
補助記憶装置303には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ302にロードされて、プロセッサ301によって実行される。
プロセッサ301は、OSを実行しながら、移行先プログラムを実行する。
移行先プログラムの入出力データは記憶部390に記憶される。
メモリ302は記憶部390として機能する。但し、補助記憶装置303、プロセッサ301内のレジスタおよびプロセッサ301内のキャッシュメモリなどの記憶装置が、メモリ302の代わりに、又は、メモリ302と共に、記憶部390として機能してもよい。
メモリ302は記憶部390として機能する。但し、補助記憶装置303、プロセッサ301内のレジスタおよびプロセッサ301内のキャッシュメモリなどの記憶装置が、メモリ302の代わりに、又は、メモリ302と共に、記憶部390として機能してもよい。
移行先機器300は、プロセッサ301を代替する複数のプロセッサを備えてもよい。
移行先プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
***動作の説明***
移行管理部230の動作の手順はコンテナ移行方法に相当する。また、移行管理部230の動作の手順はコンテナ移行プログラムによる処理の手順に相当する。
移行管理部230の動作の手順はコンテナ移行方法に相当する。また、移行管理部230の動作の手順はコンテナ移行プログラムによる処理の手順に相当する。
図5から図8に基づいて、コンテナ移行方法の概要を説明する。
図5に、移行前の情報処理システム100の状況を示す。
移行元機器200では、要求元コンテナ110と移行元プロキシ120と移行元コンテナ130が実行されている。
要求元コンテナ110は、送信先情報111を有する。送信先情報111は、データの送信先として移行元プロキシ120を示す。プロキシは、例えばポート番号またはURLによって区別される。URLはUniform Resource Locatorの略称である。
移行元プロキシ120は、キュー121を有する。
移行元コンテナ130は、ボリューム131とイメージ132を有する。ボリューム131は、読み書き可能な記憶領域に用意され、データ処理のために主にデータが読み書きされる。イメージ132は、読み取り専用領域に用意され、データ処理のためのライブラリおよびプログラムなどが記憶される。
図5に、移行前の情報処理システム100の状況を示す。
移行元機器200では、要求元コンテナ110と移行元プロキシ120と移行元コンテナ130が実行されている。
要求元コンテナ110は、送信先情報111を有する。送信先情報111は、データの送信先として移行元プロキシ120を示す。プロキシは、例えばポート番号またはURLによって区別される。URLはUniform Resource Locatorの略称である。
移行元プロキシ120は、キュー121を有する。
移行元コンテナ130は、ボリューム131とイメージ132を有する。ボリューム131は、読み書き可能な記憶領域に用意され、データ処理のために主にデータが読み書きされる。イメージ132は、読み取り専用領域に用意され、データ処理のためのライブラリおよびプログラムなどが記憶される。
要求元コンテナ110は、パケットを移行元プロキシ120へ送信する。パケットは、データ処理の要求と処理されるデータを含む。
移行元プロキシ120は、要求元コンテナ110から送信されたパケットを受信し、受信したパケットをキュー121に追加し、追加された順にパケットを取り出して移行元コンテナ130へ転送する。
移行元コンテナ130は、移行元プロキシ120から転送されたパケットを受信し、受信したパケットの中の要求に従って、受信したパケットの中のデータを処理する。
移行元プロキシ120は、要求元コンテナ110から送信されたパケットを受信し、受信したパケットをキュー121に追加し、追加された順にパケットを取り出して移行元コンテナ130へ転送する。
移行元コンテナ130は、移行元プロキシ120から転送されたパケットを受信し、受信したパケットの中の要求に従って、受信したパケットの中のデータを処理する。
図6に、移行中(1)の情報処理システム100の状況を示す。
移行元プロキシ120は、要求元コンテナ110から送信されたパケットを受信し、受信したパケットをキュー121に保存し(キューイング)、移行元コンテナ130へのパケットの転送を行わない。
移行元コンテナ130は、停止される。
移行先機器300では、移行先プロキシ140と移行先コンテナ150が生成される。
移行先プロキシ140は、キュー141を有する。キュー141はキュー121に相当する。
移行先コンテナ150は、ボリューム151とイメージ152を有する。ボリューム151はボリューム131に相当する。イメージ152はイメージ132に相当する。
移行元プロキシ120は、要求元コンテナ110から送信されたパケットを受信し、受信したパケットをキュー121に保存し(キューイング)、移行元コンテナ130へのパケットの転送を行わない。
移行元コンテナ130は、停止される。
移行先機器300では、移行先プロキシ140と移行先コンテナ150が生成される。
移行先プロキシ140は、キュー141を有する。キュー141はキュー121に相当する。
移行先コンテナ150は、ボリューム151とイメージ152を有する。ボリューム151はボリューム131に相当する。イメージ152はイメージ132に相当する。
図7に、移行中(2)の情報処理システム100の状況を示す。
移行先コンテナ150は、起動される。
移行元プロキシ120は、キュー121に保存されているパケットを保存された順に移行先プロキシ140へ送信する。
移行先プロキシ140は、移行元プロキシ120から送信されたパケットを受信し、受信したパケットをキュー141に追加し、追加された順にパケットを取り出して移行先コンテナ150へ転送する。
移行先コンテナ150は、移行先プロキシ140から転送されたパケットを受信し、受信したパケットの中の要求に従って、受信したパケットの中のデータを処理する。
移行先コンテナ150は、起動される。
移行元プロキシ120は、キュー121に保存されているパケットを保存された順に移行先プロキシ140へ送信する。
移行先プロキシ140は、移行元プロキシ120から送信されたパケットを受信し、受信したパケットをキュー141に追加し、追加された順にパケットを取り出して移行先コンテナ150へ転送する。
移行先コンテナ150は、移行先プロキシ140から転送されたパケットを受信し、受信したパケットの中の要求に従って、受信したパケットの中のデータを処理する。
図8に、移行後の情報処理システム100の状況を示す。
移行元プロキシ120から移行先プロキシ140へのパケットの送信は、完了している。
移行元プロキシ120から移行先プロキシ140へのパケットの送信は、完了している。
要求元コンテナ110は、送信先情報111を送信先情報112に更新する。送信先情報112は、データの送信先として移行先プロキシ140を示す。
要求元コンテナ110は、パケットを移行先プロキシ140へ送信する。
移行先プロキシ140は、要求元コンテナ110から送信されたパケットを受信し、受信したパケットをキュー141に追加し、追加された順にパケットを取り出して移行先コンテナ150へ転送する。
移行先コンテナ150は、移行先プロキシ140から転送されたパケットを受信し、受信したパケットの中の要求に従って、受信したパケットの中のデータを処理する。
移行先プロキシ140は、要求元コンテナ110から送信されたパケットを受信し、受信したパケットをキュー141に追加し、追加された順にパケットを取り出して移行先コンテナ150へ転送する。
移行先コンテナ150は、移行先プロキシ140から転送されたパケットを受信し、受信したパケットの中の要求に従って、受信したパケットの中のデータを処理する。
図9から図12に基づいて、コンテナ移行方法の手順を説明する。
図9は、コンテナ移行方法のフローチャートを示す。
図10から図12は、情報処理システム100の動作シーケンスを示す。
図9は、コンテナ移行方法のフローチャートを示す。
図10から図12は、情報処理システム100の動作シーケンスを示す。
コンテナ移行の開始前において、移行元プロキシ120の動作モードは、転送モードである。
転送モードは、要求元コンテナ110から送信されるデータを受信して受信したデータを要求先コンテナへ転送する動作モードである。このとき、要求先コンテナは、移行元コンテナ130である。また、データは、パケットに含まれる。
移行元コンテナ130は、動作中である。
転送モードは、要求元コンテナ110から送信されるデータを受信して受信したデータを要求先コンテナへ転送する動作モードである。このとき、要求先コンテナは、移行元コンテナ130である。また、データは、パケットに含まれる。
移行元コンテナ130は、動作中である。
以下に、コンテナ移行の開始後の手順を説明する。
ステップS110において、移行先生成部231は、移行先機器300に移行先コンテナ150と移行先プロキシ140を生成させる。
ステップS110において、移行先生成部231は、移行先機器300に移行先コンテナ150と移行先プロキシ140を生成させる。
移行先コンテナ150は、以下のように生成される。
移行先生成部231は、移行元コンテナ130のイメージ132を含めてコンテナ生成要求を移行先機器300へ送信する。
コンテナ部310は、コンテナ生成要求を受信し、イメージ132を使って移行先コンテナ150を生成する。
但し、コンテナ部310は、移行先コンテナ150を起動しない。つまり、移行先コンテナ150は、停止している。
移行先生成部231は、移行元コンテナ130のイメージ132を含めてコンテナ生成要求を移行先機器300へ送信する。
コンテナ部310は、コンテナ生成要求を受信し、イメージ132を使って移行先コンテナ150を生成する。
但し、コンテナ部310は、移行先コンテナ150を起動しない。つまり、移行先コンテナ150は、停止している。
移行先プロキシ140は、以下のように生成される。
移行先生成部231は、プロキシ生成要求を移行先機器300へ受信する。
プロキシ部320は、移行先プロキシ140を生成し、移行先プロキシ140を起動し、移行先プロキシ140の動作モードを転送モードにする。
移行先生成部231は、プロキシ生成要求を移行先機器300へ受信する。
プロキシ部320は、移行先プロキシ140を生成し、移行先プロキシ140を起動し、移行先プロキシ140の動作モードを転送モードにする。
ステップS120において、第1遷移部232は、移行元プロキシ120の動作モードを転送モードからキューイングモードへ遷移させる。
キューイングモードは、データを転送せずに保存する動作モードである。
キューイングモードは、データを転送せずに保存する動作モードである。
移行元プロキシ120の動作モードは、以下のように遷移される。
第1遷移部232は、キューイングモードへの動作モードの変更をプロキシ部220に指示する。
プロキシ部220は、指示にしたがって、移行元プロキシ120の動作モードをキューイングモードに変更する。
第1遷移部232は、キューイングモードへの動作モードの変更をプロキシ部220に指示する。
プロキシ部220は、指示にしたがって、移行元プロキシ120の動作モードをキューイングモードに変更する。
キューイングモードの間、移行元プロキシ120は、要求元コンテナ110から送信されたデータをキュー121に保存する。
ステップS130において、移行元停止部233は、移行元コンテナ130を停止させる。
移行元コンテナ130は、以下のように停止される。
移行元停止部233は、移行元コンテナ130の停止をコンテナ部210に指示する。
コンテナ部210は、指示にしたがって、移行元コンテナ130を停止させる。
移行元停止部233は、移行元コンテナ130の停止をコンテナ部210に指示する。
コンテナ部210は、指示にしたがって、移行元コンテナ130を停止させる。
ステップS140において、ボリューム移行部234は、移行元コンテナ130から移行先コンテナ150へボリューム131を移行する。
ボリューム131は、以下のように移行される。
ボリューム移行部234は、移行元コンテナ130のボリューム131を移行先機器300へ転送する。
コンテナ部310は、ボリューム131を受信し、ボリューム131を使って移行先コンテナ150のボリューム151を更新する。
ボリューム移行部234は、移行元コンテナ130のボリューム131を移行先機器300へ転送する。
コンテナ部310は、ボリューム131を受信し、ボリューム131を使って移行先コンテナ150のボリューム151を更新する。
ステップS150において、移行先起動部235は、移行先コンテナ150を起動させる。
移行先コンテナ150は、以下のように起動される。
移行先起動部235は、コンテナ起動要求を移行先機器300へ送信する。
コンテナ部310は、コンテナ起動要求を受信し、移行先コンテナ150を起動する。
移行先コンテナ150は、動作中になる。
移行先起動部235は、コンテナ起動要求を移行先機器300へ送信する。
コンテナ部310は、コンテナ起動要求を受信し、移行先コンテナ150を起動する。
移行先コンテナ150は、動作中になる。
ステップS160において、第2遷移部236は、移行元プロキシ120の動作モードをキューイングモードからキュー送出モードへ遷移させる。
キュー送出モードは、保存されたデータを移行先プロキシ140へ送出する動作モードである。
キュー送出モードは、保存されたデータを移行先プロキシ140へ送出する動作モードである。
移行元プロキシ120の動作モードは、以下のように遷移される。
第2遷移部236は、キュー送出モードへの動作モードの変更をプロキシ部220に指示する。
プロキシ部220は、指示にしたがって、移行元プロキシ120の動作モードをキュー転出モードに変更する。
第2遷移部236は、キュー送出モードへの動作モードの変更をプロキシ部220に指示する。
プロキシ部220は、指示にしたがって、移行元プロキシ120の動作モードをキュー転出モードに変更する。
キュー送出モードの間、移行元プロキシ120は、キュー121に保存されているデータを保存された順に移行先プロキシ140へ送信する。
また、要求元コンテナ110からデータを受信した場合、移行元プロキシ120は、受信したデータをキュー121に追加する。追加されたデータは、移行先プロキシ140へ順番に送信される。
また、要求元コンテナ110からデータを受信した場合、移行元プロキシ120は、受信したデータをキュー121に追加する。追加されたデータは、移行先プロキシ140へ順番に送信される。
キュー121の保存された全てのデータが送信されてキュー121が空になったとき、プロキシ部220は、送出完了を移行管理部230に通知する。
その後に要求元コンテナ110からデータを受信した場合、移行元プロキシ120は、受信したデータをキュー121に追加する。追加されたデータは、移行先プロキシ140へ順番に送信される。
その後に要求元コンテナ110からデータを受信した場合、移行元プロキシ120は、受信したデータをキュー121に追加する。追加されたデータは、移行先プロキシ140へ順番に送信される。
ステップS170において、送信先変更部237は、要求元コンテナ110にデータの送信先を移行元プロキシ120から移行先プロキシ140へ変更させる。
データの送信先は、以下のように変更される。
送信先変更部237は、移行先プロキシ140への送信先の変更をコンテナ部210に指示する。
コンテナ部210は、指示にしたがって、送信先情報111に示される送信先を移行元プロキシ120から移行先プロキシ140に変更する。
送信先変更部237は、移行先プロキシ140への送信先の変更をコンテナ部210に指示する。
コンテナ部210は、指示にしたがって、送信先情報111に示される送信先を移行元プロキシ120から移行先プロキシ140に変更する。
ステップS170の後、コンテナ移行が完了する。
コンテナ移行の完了後、要求元コンテナ110は、データを移行先プロキシ140へ送信する。
移行先プロキシ140は、要求元コンテナ110からデータを受信し、受信したデータを移行先コンテナ150へ転送する。
移行先コンテナ150は、移行先プロキシ140からデータを受信し、受信したデータを処理する。
コンテナ移行の完了後、要求元コンテナ110は、データを移行先プロキシ140へ送信する。
移行先プロキシ140は、要求元コンテナ110からデータを受信し、受信したデータを移行先コンテナ150へ転送する。
移行先コンテナ150は、移行先プロキシ140からデータを受信し、受信したデータを処理する。
***実施例の説明***
移行管理部230は、移行元機器200の代わりに移行先機器300に備わってもよいし、別の装置に備わってもよい。
移行管理部230は、移行元機器200の代わりに移行先機器300に備わってもよいし、別の装置に備わってもよい。
移行元コンテナ130のイメージ132は、移行先コンテナ150の生成時(S110)に転送されなくてもよい。
イメージ132は、移行先コンテナ150の起動前に転送されればよい。例えば、イメージ132は、ボリューム131の移行時(S140)に転送されてもよい。
但し、イメージ132が事前に転送されることにより、移行元コンテナ130の停止から移行先コンテナ150の軌道までの時間を短くすることができる。
イメージ132は、移行先コンテナ150の起動前に転送されればよい。例えば、イメージ132は、ボリューム131の移行時(S140)に転送されてもよい。
但し、イメージ132が事前に転送されることにより、移行元コンテナ130の停止から移行先コンテナ150の軌道までの時間を短くすることができる。
***実施の形態1の効果***
実施の形態1は、コンテナの停止中に要求元機能ブロックからの要求を失うことなく、要求順序のとおりにコンテナでの処理が行えるようにする技術を提供する。
実施の形態1は、コンテナの停止中に要求元機能ブロックからの要求を失うことなく、要求順序のとおりにコンテナでの処理が行えるようにする技術を提供する。
実施の形態1は、コンテナ間のパケット(要求、データ)をキューイングできる通信プロキシを導入する。そして、実施の形態1は、コンテナの移行時にその動作モードを適切に切り替えることで、コンテナの移行中でもパケットが失われることなく、移行対象コンテナが全てのパケットを順序通りに処理できる。
***実施の形態1の補足***
図13に基づいて、移行元機器200のハードウェア構成を説明する。
移行元機器200は処理回路209を備える。
処理回路209は、コンテナ部210とプロキシ部220と移行管理部230を実現するハードウェアである。
処理回路209は、専用のハードウェアであってもよいし、メモリ202に格納されるプログラムを実行するプロセッサ201であってもよい。
図13に基づいて、移行元機器200のハードウェア構成を説明する。
移行元機器200は処理回路209を備える。
処理回路209は、コンテナ部210とプロキシ部220と移行管理部230を実現するハードウェアである。
処理回路209は、専用のハードウェアであってもよいし、メモリ202に格納されるプログラムを実行するプロセッサ201であってもよい。
処理回路209が専用のハードウェアである場合、処理回路209は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
ASICは、Application Specific Integrated Circuitの略称である。
FPGAは、Field Programmable Gate Arrayの略称である。
ASICは、Application Specific Integrated Circuitの略称である。
FPGAは、Field Programmable Gate Arrayの略称である。
移行元機器200は、処理回路209を代替する複数の処理回路を備えてもよい。
処理回路209において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
このように、移行元機器200の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
図14に基づいて、移行先機器300のハードウェア構成を説明する。
移行先機器300は処理回路309を備える。
処理回路309は、コンテナ部310とプロキシ部320を実現するハードウェアである。
処理回路309は、専用のハードウェアであってもよいし、メモリ302に格納されるプログラムを実行するプロセッサ301であってもよい。
移行先機器300は処理回路309を備える。
処理回路309は、コンテナ部310とプロキシ部320を実現するハードウェアである。
処理回路309は、専用のハードウェアであってもよいし、メモリ302に格納されるプログラムを実行するプロセッサ301であってもよい。
処理回路309が専用のハードウェアである場合、処理回路309は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
移行元機器200は、処理回路209を代替する複数の処理回路を備えてもよい。
処理回路309において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
このように、移行先機器300の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
実施の形態1は、好ましい形態の例示であり、本開示の技術的範囲を制限することを意図するものではない。実施の形態1は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
移行元機器200および移行先機器300の各要素の「部」は、「処理」、「工程」、「回路」または「サーキットリ」と読み替えてもよい。
100 情報処理システム、101 ネットワーク、110 要求元コンテナ、111 送信先情報、112 送信先情報、120 移行元プロキシ、121 キュー、130 移行元コンテナ、131 ボリューム、132 イメージ、140 移行先プロキシ、141 キュー、150 移行先コンテナ、151 ボリューム、152 イメージ、200 移行元機器、201 プロセッサ、202 メモリ、203 補助記憶装置、204 通信装置、205 入出力インタフェース、209 処理回路、210 コンテナ部、220 プロキシ部、230 移行管理部、231 移行先生成部、232 第1遷移部、233 移行元停止部、234 ボリューム移行部、235 移行先起動部、236 第2遷移部、237 送信先変更部、290 記憶部、300 移行先機器、301 プロセッサ、302 メモリ、303 補助記憶装置、304 通信装置、305 入出力インタフェース、309 処理回路、310 コンテナ部、320 プロキシ部、390 記憶部。
Claims (5)
- データ処理を行うコンテナを移行元機器から移行先機器へ移行するコンテナ移行装置であって、
前記移行元機器は、移行元コンテナと移行元プロキシが動作する機器であり、
前記移行先機器は、移行先コンテナと移行先プロキシが動作する機器であり、
前記コンテナ移行装置は、
前記移行元プロキシの動作モードを、前記データ処理を要求する要求元コンテナから送信されるデータを受信して受信したデータを要求先コンテナである前記移行元コンテナへ転送する転送モードから、前記データを転送せずに保存するキューイングモードへ、遷移させる第1遷移部と、
前記移行元プロキシの前記動作モードが前記キューイングモードへ遷移されて且つ前記移行先コンテナが起動された後に、前記移行元プロキシの前記動作モードを、保存されたデータを前記移行先プロキシへ送出するキュー送出モードへ、遷移させる第2遷移部と、
前記保存されたデータの送出が完了した後に、前記要求元コンテナにデータの送信先を前記移行元プロキシから前記移行先プロキシへ変更させる送信先変更部と、
を備えるコンテナ移行装置。 - 前記移行先機器に前記移行先コンテナと前記移行先プロキシを生成させる移行先生成部と、
前記移行元プロキシの前記動作モードが前記キューイングモードへ遷移された後に、前記移行元コンテナを停止させる移行元停止部と、
前記移行元コンテナが停止された後に、前記移行元コンテナから前記移行先コンテナへボリュームを移行させるボリューム移行部と、
前記ボリュームが移行された後に、前記移行先コンテナを起動させる移行先起動部と、
を備える
請求項1に記載のコンテナ移行装置。 - データ処理を行うコンテナを移行元機器から移行先機器へ移行するコンテナ移行方法であって、
前記移行元機器は、移行元コンテナと移行元プロキシが動作する機器であり、
前記移行先機器は、移行先コンテナと移行先プロキシが動作する機器であり、
前記コンテナ移行方法は、
前記移行元プロキシの動作モードを、前記データ処理を要求する要求元コンテナから送信されるデータを受信して受信したデータを要求先コンテナである前記移行元コンテナへ転送する転送モードから、前記データを転送せずに保存するキューイングモードへ、遷移させ、
前記移行元プロキシの前記動作モードが前記キューイングモードへ遷移されて且つ前記移行先コンテナが起動された後に、前記移行元プロキシの前記動作モードを、保存されたデータを前記移行先プロキシへ送出するキュー送出モードへ、遷移させ、
前記保存されたデータの送出が完了した後に、前記要求元コンテナにデータの送信先を前記移行元プロキシから前記移行先プロキシへ変更させる
コンテナ移行方法。 - データ処理を行うコンテナを移行元機器から移行先機器へ移行するコンテナ移行方法であって、
前記移行元機器は、移行元コンテナと移行元プロキシが動作する機器であり、
前記移行先機器は、移行先コンテナと移行先プロキシが動作する機器であり、
前記コンテナ移行方法は、
データ処理を要求する要求元コンテナから送信されるデータを受信し、受信したデータを要求先コンテナである前記移行元コンテナへ転送し、
転送モードからキューイングモードへの遷移の指示を受けた後に、前記要求元コンテナから送信されるデータを受信し、受信したデータを転送せずに保存し、
前記キューイングモードからキュー送出モードへの遷移の指示を受けた後に、保存されたデータを前記移行先プロキシへ送出する
コンテナ移行方法。 - データ処理を行うコンテナを移行元機器から移行先機器へ移行するためのコンテナ移行プログラムであって、
前記移行元機器は、移行元コンテナと移行元プロキシが動作する機器であり、
前記移行先機器は、移行先コンテナと移行先プロキシが動作する機器であり、
前記移行元プロキシの動作モードを、前記データ処理を要求する要求元コンテナから送信されるデータを受信して受信したデータを要求先コンテナである前記移行元コンテナへ転送する転送モードから、前記データを転送せずに保存するキューイングモードへ、遷移させる第1遷移処理と、
前記移行元プロキシの前記動作モードが前記キューイングモードへ遷移されて且つ前記移行先コンテナが起動された後に、前記移行元プロキシの前記動作モードを、保存されたデータを前記移行先プロキシへ送出するキュー送出モードへ、遷移させる第2遷移処理と、
前記保存されたデータの送出が完了した後に、前記要求元コンテナにデータの送信先を前記移行元プロキシから前記移行先プロキシへ変更させる送信先変更処理と、
をコンピュータに実行させるためのコンテナ移行プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2022/025423 WO2024003962A1 (ja) | 2022-06-26 | 2022-06-26 | コンテナ移行装置、コンテナ移行方法およびコンテナ移行プログラム |
JP2024519239A JP7527523B2 (ja) | 2022-06-26 | 2022-06-26 | コンテナ移行装置、コンテナ移行方法およびコンテナ移行プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2022/025423 WO2024003962A1 (ja) | 2022-06-26 | 2022-06-26 | コンテナ移行装置、コンテナ移行方法およびコンテナ移行プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024003962A1 true WO2024003962A1 (ja) | 2024-01-04 |
Family
ID=89381774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2022/025423 WO2024003962A1 (ja) | 2022-06-26 | 2022-06-26 | コンテナ移行装置、コンテナ移行方法およびコンテナ移行プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7527523B2 (ja) |
WO (1) | WO2024003962A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020198046A (ja) * | 2019-06-05 | 2020-12-10 | 富士通株式会社 | 情報処理装置、ログ参照プログラム |
US20220050705A1 (en) * | 2020-08-17 | 2022-02-17 | Exotanium, Inc. | Methods and systems for instantiating and transparently migrating executing containerized processes |
-
2022
- 2022-06-26 JP JP2024519239A patent/JP7527523B2/ja active Active
- 2022-06-26 WO PCT/JP2022/025423 patent/WO2024003962A1/ja unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020198046A (ja) * | 2019-06-05 | 2020-12-10 | 富士通株式会社 | 情報処理装置、ログ参照プログラム |
US20220050705A1 (en) * | 2020-08-17 | 2022-02-17 | Exotanium, Inc. | Methods and systems for instantiating and transparently migrating executing containerized processes |
Also Published As
Publication number | Publication date |
---|---|
JP7527523B2 (ja) | 2024-08-02 |
JPWO2024003962A1 (ja) | 2024-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6055310B2 (ja) | 仮想記憶ターゲットオフロード技術 | |
US9588807B2 (en) | Live logical partition migration with stateful offload connections using context extraction and insertion | |
US8966499B2 (en) | Virtual switch extensibility | |
WO2018120986A1 (zh) | 转发报文的方法和物理主机 | |
US9880954B2 (en) | Method and apparatus for providing data access | |
JP7069672B2 (ja) | アプリケーションの更新方法およびプログラム | |
US7383555B2 (en) | Apparatus and method for sharing a network I/O adapter between logical partitions | |
JP5377091B2 (ja) | 情報処理装置及びその制御方法 | |
JP2008083897A (ja) | 負荷低減システム、負荷低減方法、及びプログラム | |
JP5669851B2 (ja) | 論理的にパーティション化されたシステムにおいてパーティション間の効率的なコミュニケーションを行うための装置、方法、及びコンピュータ・プログラム | |
JP6115331B2 (ja) | トランザクション再開プログラム、情報処理装置及びトランザクション再開方法 | |
WO2022143717A1 (zh) | 一种虚拟机迁移方法、装置及系统 | |
EP2375334A1 (en) | Management device, management method, and program | |
JP2007323354A (ja) | マシン管理システム | |
US11722368B2 (en) | Setting change method and recording medium recording setting change program | |
WO2018107433A1 (zh) | 信息处理方法和装置 | |
US9558149B2 (en) | Dual system | |
WO2024003962A1 (ja) | コンテナ移行装置、コンテナ移行方法およびコンテナ移行プログラム | |
JP2008021059A (ja) | 情報処理装置およびプロセッサ機能変更方法 | |
US20080259951A1 (en) | Method and apparatus for unplanned and uninterrupted network adapter replacement | |
JP6677052B2 (ja) | 通信管理装置、通信管理方法及びプログラム | |
US11272005B1 (en) | Communicating state information in a distributed storage environment | |
WO2024169436A1 (zh) | 一种数据处理方法、装置、存储介质及电子装置 | |
JP7326234B2 (ja) | 情報処理装置、情報処理方法及びコンピュータプログラム | |
CN111104199B (zh) | 虚拟机高可用的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22949241 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2024519239 Country of ref document: JP Kind code of ref document: A |