WO2012081099A1 - データ移行プログラム、計算機およびデータ移行方法 - Google Patents
データ移行プログラム、計算機およびデータ移行方法 Download PDFInfo
- Publication number
- WO2012081099A1 WO2012081099A1 PCT/JP2010/072583 JP2010072583W WO2012081099A1 WO 2012081099 A1 WO2012081099 A1 WO 2012081099A1 JP 2010072583 W JP2010072583 W JP 2010072583W WO 2012081099 A1 WO2012081099 A1 WO 2012081099A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- migration
- data
- migration source
- hash value
- computer
- Prior art date
Links
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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
Definitions
- the present invention relates to a data migration program for performing data migration, a computer, and a data migration method.
- live migration a virtual machine running on hardware is moved to other hardware almost without interruption, so the OS (Operating System) and applications running on the hardware virtual machine are very short. You can move to other hardware with downtime. For this reason, live migration is used for the purpose of maintaining hardware while continuing the service.
- OS Operating System
- Patent Document 1 As a related prior art, there is a technique for sharing memory between virtual machines operating on one physical computer (see, for example, Patent Document 1 below). Further, there is a technique for dynamically changing a physical resource configuration and a virtual device configuration in a virtual environment (see, for example, Patent Document 2 below).
- the present invention provides a data migration program, a computer, and a data migration method capable of reducing the amount of data transfer by suppressing the transfer of data that does not require copying between computers in order to solve the above-described problems caused by the prior art.
- the purpose is to do.
- the disclosed data migration program, computer, and data migration method use the hash value of the migration source data stored in any memory block constituting the migration source memory. For each memory block that is received from the migration source computer and constitutes the migration destination memory, the hash value of the migration destination data stored in the memory block is compared with the received hash value of the migration source data. The compared comparison result is transmitted to the migration source computer, and as a result of the comparison result being transmitted, the migration source data from which the hash value that does not match the hash value of the migration destination data is not migrated. Receive from the original calculator.
- the disclosed data migration program, computer, and data migration method are provided for each memory block that constitutes the migration source memory.
- the data hash value is transmitted to the migration destination computer, and the transmitted hash value of the migration source data is compared with the hash value for each migration destination data stored in each memory block constituting the migration destination memory.
- the result is received from the migration destination computer, based on the received comparison result, it is determined whether the migration source data needs to be copied to the migration destination memory, and it is determined that the copy is necessary
- the migration source data is transmitted to the migration destination computer.
- the disclosed data migration program, computer and data migration method include a hash value for each migration destination data stored in each memory block constituting the migration destination memory.
- the migration source data of the calculation source of the hash value that does not match the hash value for each migration destination data is converted to the migration source computer. Receive from.
- the disclosed data migration program, computer and data migration method include a hash value for each migration destination data stored in each memory block constituting the migration destination memory. For each memory block constituting the migration source memory, and a hash value of the migration source data stored in the memory block and a hash value for each received migration destination data Based on the comparison result, it is determined whether or not the migration source data needs to be copied to the migration destination memory. If it is determined that copying is necessary, the migration source data is transferred to the migration destination To the calculator.
- the disclosed data migration program, computer, and data migration method are provided for each memory block that constitutes the migration source memory. Based on the data attribute information, it is determined whether or not the migration source data needs to be copied to the migration destination memory. If it is determined that copying is necessary, the migration source data is transmitted to the migration destination computer.
- This data migration program, computer, and data migration method have the effect of suppressing the transfer of data that does not require copying between computers and reducing the amount of data transferred.
- FIG. 6 is an explanatory diagram illustrating an example of a data migration method according to the first exemplary embodiment
- FIG. 3 is a block diagram illustrating an example of a hardware configuration of a server according to a second embodiment.
- FIG. 10 is an explanatory diagram of an example of the network system according to the second embodiment; It is explanatory drawing (the 1) which shows an example of the memory content of a memory management table. It is a block diagram which shows the functional structure of the server concerning Embodiment 2.
- FIG. It is explanatory drawing (the 1) which shows an example of the memory content of a hash table. It is explanatory drawing which shows an example of live migration. It is explanatory drawing (the 2) which shows an example of the memory content of a memory management table.
- FIG. 10 is a flowchart illustrating an example of a data migration processing procedure of a migration source server according to the second exemplary embodiment
- 10 is a flowchart (part 1) illustrating an example of a data migration processing procedure of a migration destination server according to the second exemplary embodiment
- 10 is a flowchart (part 2) illustrating an example of a data migration processing procedure of a migration destination server according to the second exemplary embodiment
- 10 is a flowchart (part 3) illustrating an example of a data migration processing procedure of a migration destination server according to the second exemplary embodiment
- FIG. 10 is a flowchart illustrating an example of a data migration processing procedure of a server according
- FIG. 1 is an explanatory diagram of an example of the data migration method according to the first embodiment.
- the first embodiment for each memory block constituting the migration source memory, it is determined in advance whether or not the migration source data stored in the memory block needs to be copied, and transfer of migration source data that does not require copying is suppressed. To do.
- computers 101 and 102 are computers having a function of transferring data between computers.
- the computer 101 is a migration source computer including the migration source memory 110.
- the computer 102 is a migration destination computer including the migration destination memory 120.
- the memory 110 is divided into memory blocks 110-1 to 110-4, which are divided in predetermined data units.
- the data unit that delimits the memory 110 can be arbitrarily set.
- the memory 110 is partitioned in megabyte units, page units, or block units.
- One page is, for example, 4 to 64 [KB (kilobytes)].
- One block is a group of a plurality of pages, for example.
- data d1 to d4 to be migrated are stored in the memory blocks 110-1 to 110-4 constituting the memory 110.
- the data stored in the memory block 110-i is represented as “data di”.
- the memory 120 is divided into memory blocks 120-1 to 120-9, which are divided in predetermined data units.
- the data unit that delimits the memory 120 is the same as the data unit that delimits the memory 110.
- data D1 to D9 are stored in the memory blocks 120-1 to 120-9 constituting the memory 120.
- data Dj The data stored in the memory block 120-j is represented as “data Dj”.
- the data according to the first embodiment will be described by taking as an example the case where the data d1 to d4 stored in the memory blocks 110-1 to 110-4 of the migration source memory 110 are migrated to the migration destination memory 120.
- An embodiment of the migration method will be described.
- the migration source computer 101 selects an arbitrary memory block 110-i from among the memory blocks 110-1 to 110-4 constituting the migration source memory 110.
- the selection process of the memory block 110-i is repeatedly performed until there is no unselected memory block selected from the memory blocks 110-1 to 110-4.
- the migration source computer 101 transmits the hash value of the data di stored in the selected memory block 110-i (hereinafter referred to as “hash value hi”) to the migration destination computer 102. .
- the hash value is, for example, a fixed-length random number calculated by giving data as a calculation source to the hash function as an argument.
- the hash function is a function that generates a fixed-length pseudorandom number from data given as an argument.
- the length of the hash value is set to an arbitrary length that is shorter than the bit length of the calculation source data.
- the migration destination computer 102 receives the hash value hi of the data di from the migration source computer 101.
- the migration destination computer 102 For each memory block 120-j constituting the migration destination memory 120, the migration destination computer 102 has a hash value (hereinafter referred to as “hash value Hj”) of the data Dj stored in the memory block 120-j. 2) and the hash value hi of the data di. In the drawing, a part of the migration destination memory 120 is extracted and displayed.
- the hash value has a feature that if the calculation source data is different, the probability that the same hash value is calculated is very low. For this reason, the identity of the data di and Dj can be determined by comparing the hash values hi and Hj of the two data di and Dj.
- the 2-bit numbers shown in the squares representing the memory blocks 110-i and 120-j represent the hash values hi and Hj of the data di and Dj.
- the hash value of the data d1 stored in the memory block 110-1 is “12”.
- the hash value of the data D1 stored in the memory block 120-1 is “56”.
- the migration destination computer 102 transmits the comparison result between the hash value hi of the data di and the hash value Hj of the data Dj to the migration source computer 101.
- the hash value hi of the data di does not match the hash values H1 to H9 of all the data D1 to D9, or matches the hash value Hj of at least one of the hash values H1 to H9 This is information representing the fact.
- the migration source computer 101 compares the hash value hi of the data di with the hash value Hj for each data Dj stored in each memory block 120-j constituting the migration destination memory 120. Received from the destination computer 102.
- the migration source computer 101 determines whether or not the data di needs to be copied to the migration destination memory 120 based on the received comparison result. Here, if the migration source data di and the migration destination data Dj have the same contents, it is not necessary to copy the data di to the migration destination memory 120.
- the migration source computer 101 matches the hash value hi of the data di with at least one hash value Hj of the hash values H1 to H9 of the data D1 to D9, It is determined that copying is unnecessary. On the other hand, if the hash value hi of the data di does not match the hash values H1 to H9 of all the data D1 to D9, the migration source computer 101 needs to copy the data di to the migration destination memory 120. judge.
- the migration source computer 101 determines that copying of the data d1 to the migration destination memory 120 is unnecessary. Further, the hash value “77” of the migration source data d4 matches the hash value “77” of the migration destination data D7. For this reason, the migration source computer 101 determines that copying of the data d4 to the migration destination memory 120 is unnecessary. On the other hand, the migration source data d2 and d3 do not match the hash values with all the migration destination data D1 to D9. For this reason, the migration source computer 101 determines that copying of the data d2 and d3 to the migration destination memory 120 is necessary.
- the migration source computer 101 transmits the data di stored in the memory block 110-i to the migration destination computer 102.
- the migration source computer 101 transmits data d2 and d3 among the migration source data d1 to d4 to the migration destination computer 102.
- the migration destination computer 102 the migration source data d2 and d3 are written in the free area of the migration destination memory 120.
- the migration source data d1 and d4 that have not been transmitted from the migration destination computer 101 are transferred to the migration destination memory 102 by, for example, data D2 and D7 having the same hash value as the data d1 and d4. It is generated by copying to 120 free areas.
- whether or not the data di stored in the memory block 110-i needs to be copied is determined for each memory block 110-i constituting the migration source memory 110. It can be determined in advance. As a result, it is possible to suppress the transfer of data d1 and d4 that do not need to be copied among the data d1 to d4 to be transferred, and to reduce the data transfer amount between the computers 101 and 102.
- Embodiment 2 In the second embodiment, a case where the computers 101 and 102 described in the first embodiment are applied to a server SV (for example, servers SV1 and SV2 described later) will be described. Note that the description of the same content as that described in Embodiment 1 is omitted.
- FIG. 2 is a block diagram of an example of a hardware configuration of the server according to the second embodiment.
- the server SV includes a CPU (Central Processing Unit) 201, a memory 202, a network I / F (Interface) 203, and an input / output device 204. Each component is connected by a bus 200.
- the CPU 201 controls the entire server SV.
- the memory 202 is a storage device that stores data.
- the memory 202 is, for example, a ROM (Read-Only Memory) or a RAM (Random Access Memory).
- the network I / F 203 is connected to a network 205 such as a LAN (Local Area Network), a WAN (Wide Area Network), or the Internet through a communication line, and is connected to another computer via the network 205.
- a network I / F 203 controls an internal interface with the network 205 and controls input / output of data from other computers.
- a modem or a LAN adapter can be employed as the network I / F 203.
- the input / output device 204 inputs and outputs data.
- Examples of the input / output device 204 include a display device that displays data such as documents, images, and function information, and a keyboard for inputting characters, numbers, and various instructions.
- the server SV may be configured to include a storage device such as a magnetic disk or an optical disk.
- FIG. 3 is an explanatory diagram of an example of the network system according to the second embodiment.
- the network system 300 includes a server SV1 and a server SV2.
- the server SV1 and the server SV2 are connected via a network 205 so that they can communicate with each other.
- the servers SV1 and SV2 are computers including the VM hosts HT1 and HT2 and capable of building a plurality of execution environments by dividing hardware resources.
- the VM hosts HT1 and HT2 virtualize the hardware resources of the servers SV1 and SV2 (for example, the CPU 201, the memory 202, the network I / F 203, etc. shown in FIG. 2), and perform control so that a plurality of different OSs can be executed.
- Software Specifically, for example, the VM hosts H1 and HT2 operate the OS by a virtual machine VM that operates in an execution environment constructed by dividing the hardware resources of the servers SV1 and SV2.
- the virtual machine VM is a virtual computer that operates in an execution environment constructed by dividing the hardware resources of the servers SV1 and SV2.
- the virtual machine VM includes, for example, information such as software such as a program or OS, variables given to the software, and hardware resources for executing the software.
- three virtual machines VM1, VM2, and VM3 are operating in an execution environment constructed by dividing the hardware resources of the server SV1.
- the VM host HT1 operates a plurality of different OSs by the virtual machines VM1 to VM3.
- two virtual machines VM4 and VM5 are operating in an execution environment constructed by dividing the hardware resources of the server SV2.
- the VM host HT2 operates a plurality of different OSs by the virtual machines VM4 and VM5.
- the logical memory divided from the physical memory of each of the servers SV1, SV2 (hereinafter referred to as “physical memory PM1, PM2”) is allocated to the virtual machine VM.
- the physical memories PM1 and PM2 of the servers SV1 and SV2 are, for example, the memory 202 shown in FIG.
- the memory of the virtual machine VM is divided into a plurality of memory blocks divided in units of pages.
- the page is a data unit for the VM hosts HT1 and HT2 to manage the memory of the virtual machine VM.
- Each memory block constituting the memory of the virtual machine VM corresponds to one of the memory blocks divided by dividing the physical memories PM1 and PM2.
- the data stored in each memory block is, for example, a program such as an OS or an application, or content such as video or audio.
- live migration for migrating a virtual machine VM running on a server SV to another server SV is performed for the purpose of load distribution between the servers SV and maintenance of the server SV.
- live migration the contents of the memory allocated to the virtual machine VM to be migrated are copied to the migration destination server SV.
- the transfer cost is higher than when data is copied to a storage device or the like connected via the network 205.
- an arbitrary virtual machine VM operating on the server SV is denoted as “virtual machine VMk”, and a memory allocated to the virtual machine VMk is denoted as “memory Mk”.
- data stored in the memory block bi is referred to as “migration source data di”.
- the memory management table is information for managing the memory Mk that is assigned to each virtual machine VMk that is running on the server SV.
- a memory management table 400 for managing the memory M3 allocated to the virtual machine VM3 operating on the server SV1 will be described as an example.
- the memory management table 400 is realized by, for example, the memory 202 illustrated in FIG.
- FIG. 4 is an explanatory diagram (part 1) of an example of the contents stored in the memory management table.
- the memory management table 400 has fields of machine ID, memory ID, block ID, and hash value, and stores memory management data of the virtual machine VM3 by setting information in each field.
- the machine ID is an identifier of the virtual machine VMk.
- the memory ID is an identifier of the memory Mk assigned to the virtual machine VMk.
- the block ID is an identifier of the memory block bi constituting the memory Mk of the virtual machine VMk.
- the hash value is the hash value hi of the migration source data di stored in the memory block bi.
- the memory blocks b1 to b9 constituting the memory M3 allocated to the virtual machine VM3 can be specified. Further, according to the memory management table 400, the hash values h1 to h9 of the migration source data d1 to d9 stored in the memory blocks b1 to b9 can be specified.
- FIG. 5 is a block diagram of a functional configuration of the server according to the second embodiment.
- the server SV has a configuration including a receiving unit 501, a selecting unit 502, a transmitting unit 503, a determining unit 504, a comparing unit 505, and a writing unit 506.
- each function unit realizes its function, for example, by causing the CPU 201 to execute a program stored in the memory 202 illustrated in FIG. 2 or by the network I / F 203. More specifically, for example, each functional unit is realized by the VM hosts HT1 and HT2 illustrated in FIG. The processing result of each functional unit is stored in the memory 202.
- the server SV may be the migration source server SV that operates the migration target virtual machine VMk or the migration destination server SV of the migration target virtual machine VMk.
- the processing content of each functional unit when the server SV is the migration source will be described.
- the receiving unit 501 receives a migration instruction for the virtual machine VMk.
- the migration instruction of the virtual machine VMk is an instruction to migrate the virtual machine VMk operating on the own server to another server.
- the migration instruction for the virtual machine VMk includes, for example, a machine ID of the virtual machine VMk and a server ID for identifying the migration destination server SV.
- the VM host HT1 of the server SV1 receives, from the external computer, a migration instruction that instructs the virtual machine VM3 to migrate to the server SV2 via the network 205. Further, the VM host HT1 may receive a migration instruction for the virtual machine VM3 by a user operation input using the input / output device 204 illustrated in FIG.
- the selection unit 502 selects an arbitrary memory block bi from the memory blocks b1 to bn constituting the memory Mk allocated to the virtual machine VMk when the migration instruction of the virtual machine VMk is received.
- a migration instruction that instructs to migrate the virtual machine VM3 to the server SV2 is received will be described as an example.
- the VM host HT1 refers to, for example, the memory management table 400 shown in FIG. 4, and selects an arbitrary memory block bi from the memory blocks b1 to b9 of the memory M3 allocated to the virtual machine VM3. select.
- the selection process by the selection unit 502 is repeatedly executed until there is no unselected memory block bi not selected from the memory blocks b1 to bn, for example.
- the transmission unit 503 transmits the hash value hi of the migration source data di stored in the selected memory block bi to the migration destination server SV.
- the hash value hi of the migration source data di is calculated, for example, by giving the migration source data di as an argument to the hash function by the VM host HT1 of the migration source server SV1.
- the calculation timing of the hash value hi of the migration source data di may be, for example, after the memory block bi is selected by the selection unit 502, or may be when the migration source data di is recorded or updated in the memory block bi. .
- the calculated hash value hi of the migration source data di is stored in the memory management table 400 in association with the block ID of the memory block bi, for example.
- the VM host HT1 refers to the memory management table 400 and identifies the hash value hi of the migration source data di stored in the selected memory block bi. Then, the VM host HT1 transmits the hash value hi of the specified migration source data di together with the block ID of the memory block bi to the VM host HT2 of the migration destination server SV2 via the network 205.
- the receiving unit 501 compares the hash value hi of the migration source data di with the hash value Hj for each migration destination data Dj stored in each memory block 120-j constituting the migration destination physical memory PM. Are received from the migration destination server SV.
- the comparison result is, for example, that the hash value hi of the migration source data di does not match the hash values H1 to Hm of all the migration destination data D1 to Dm, or at least one of the hash values H1 to Hm Information indicating that the hash value Hj matches.
- the comparison result may represent a comparison result between the hash value hi of the migration source data di and the hash value Hj of each migration destination data Dj.
- the VM host HT1 transmits the hash value hi of the migration source data di and the hash value Hj for each migration destination data Dj via the network 205.
- the comparison result is received from the VM host HT2 of the migration destination server SV2.
- the determination unit 504 determines whether or not it is necessary to copy the migration source data di to the physical memory PM of the migration destination server SV based on the compared result. Specifically, for example, when the VM host HT1 matches the hash value hi of the migration source data di with at least one of the hash values H1 to Hm of the migration destination data D1 to Dm, the migration source It is determined that copying of data di is unnecessary. On the other hand, if the hash value hi of the migration source data di does not match the hash values H1 to Hm of all the migration destination data D1 to Dm, the VM host HT1 determines that the migration source data di needs to be copied. .
- the transmission unit 503 transmits the migration source data di to the migration destination server SV based on the determined determination result. Specifically, for example, when it is determined that copying of the migration source data di is necessary, the VM host HT1 transmits a copy instruction of the migration source data di to the VM host HT2 via the network 205.
- the copy instruction includes, for example, the block ID of the memory block bi and the migration source data di.
- the VM host HT1 does not transmit the migration source data di to the migration destination server SV2.
- the receiving unit 501 has the hash of the migration source data di stored in the memory block bi for each memory block bi constituting the migration source memory Mk from the migration source server SV.
- the value hi is received.
- the VM host HT2 of the server SV2 receives the hash value hi of the migration source data di from the VM host HT1 of the server SV1 via the network 205.
- the comparison unit 505 compares the hash value Hj of the migration destination data Dj stored in the memory block Bj, the hash value hi of the received migration source data di, Compare
- the hash value Hj of the migration destination data Dj is calculated, for example, by giving the migration destination data Dj as an argument to the hash function by the VM host HT2 of the migration destination server SV2.
- the hash value hi of the migration source data di and the hash value Hj of the migration destination data Dj are calculated using the same algorithm (for example, the same hash function).
- the calculation timing of the hash value Hj of the migration destination data Dj may be, for example, when the comparison unit 505 executes the comparison process, or when the migration destination data Dj is recorded or updated in the memory block Bj.
- the calculated hash value Hj of the migration destination data Dj is stored in, for example, the hash table 600 shown in FIG.
- the hash table 600 is realized by the memory 202, for example.
- FIG. 6 is an explanatory diagram (part 1) illustrating an example of the contents stored in the hash table.
- the hash table 600 stores the hash value Hj of the migration destination data Dj stored in the memory block Bj for each memory block Bj constituting the physical memory PM2 of the migration destination server SV2.
- the VM host HT2 refers to the hash table 600, the hash value Hj of the migration destination data Dj stored in the memory block Bj, the hash value hi of the received migration source data di, Compare
- the transmission unit 503 transmits the compared result of comparison to the server SV of the migration source. Specifically, for example, the VM host HT2 transmits the determination result of the migration source data di to the VM host HT1 of the migration source server SV1 via the network 205.
- the reception unit 501 receives the migration source data di from the migration source server SV as a result of the transmission of the comparison result.
- the VM host HT2 receives from the VM host HT1 a copy instruction of the migration source data di from which the hash value hi that does not match the hash values H1 to Hm of all the migration destination data D1 to Dm To do.
- the writing unit 506 writes the received migration source data di into the migration destination physical memory PM. Specifically, for example, when a copy instruction for the transfer source data di is received, the VM host HT2 transfers the transfer source data di of the memory block bi included in the copy instruction to the free area of the transfer destination physical memory PM. Write.
- the migration source data di is copied to the free area of the migration destination physical memory PM, and the memory block bi of the virtual machine VMk is generated.
- the writing unit 506 writes the migration destination data Dj of the calculation source of the hash value Hj that matches the hash value hi of the migration source data di to the migration destination physical memory PM based on the compared result of comparison.
- the VM host HT2 reads the migration destination data Dj from which the hash value Hj that matches the hash value hi of the migration source data di is read from the memory block Bj, and the migration destination physical memory PM is free. Write to the area.
- the migration destination data Dj of the calculation source of the hash value Hj that matches the hash value hi of the migration source data di is copied to the free area of the migration destination physical memory PM, and the virtual machine VMk. Memory block bi is generated.
- the migration destination server SV performs the comparison process between the hash value hi of the migration source data di and the hash value Hj of the migration destination data Dj.
- the present invention is not limited to this.
- the migration source VM host HT1 sends a transmission request for the hash value Hj of the migration destination data Dj to the migration destination VM host HT2, and the hash value Hj of the migration destination data Dj (for example, in the hash table 600) Storage content) is received from the VM host HT2.
- the migration source VM host HT1 may compare the hash value hi of the migration source data di and the hash value Hj of the migration destination data Dj. In this case, the migration source VM host HT1 compares the hash value hi of the migration source data di and the hash value Hj of the migration destination data Dj based on the comparison result of the migration source data di for the migration destination physical memory PM2. Determine whether copying is necessary.
- the migration destination VM host HT2 does not know the block ID of the memory block Bj of the migration destination data Dj whose hash value matches the migration source data di. For this reason, the VM host HT1 together with the block ID of the memory block bi of the migration source data di, the block ID of the memory block Bj of the migration destination data Dj from which the hash value Hj that matches the hash value hi of the migration source data di is calculated. Is transmitted to the migration destination VM host HT2.
- the migration destination data Dj of the calculation source of the hash value Hj that matches the hash value hi of the migration source data di is copied to the free area of the migration destination physical memory PM, and the virtual machine VMk. Memory block bi is generated.
- the switching of the context of the program being executed by the virtual machine VMk may be performed, for example, immediately after the migration instruction of the virtual machine VMk is given, or the memory block of the virtual machine VMk is added to the migration destination physical memory PM. It may be performed after b1 to bn are generated.
- the context is state information (for example, a register value of the CPU 201) regarding a program being executed by the virtual machine VMk. Specifically, for example, the switching of the context is performed by the migration source VM host HT1 copying the value of the register of the CPU 201 allocated to the virtual machine Mk to the CPU 201 of the migration destination server SV2.
- FIG. 7 is an explanatory diagram showing an example of live migration.
- the migration source data d1 to d9 of the memory blocks b1 to b9 constituting the memory M3 of the virtual machine VM3 it is determined that the migration source data d1, d6, d8 needs to be copied, and the migration source data d2 It is determined that copying of .about.d5, d7, d9 is unnecessary.
- the VM host HT1 transmits a copy instruction of the migration source data d1, d6, d8 determined to be copied to the migration destination VM host HT2. Then, the VM host HT2 writes the migration source data d1, d6, d8 in the free area of the physical memory PM2. As a result, the migration source data d1, d6, d8 are copied to the free area of the physical memory PM2, and the memory blocks b1, b6, b8 of the virtual machine VM3 are generated.
- the migration destination data D2, D4, D8, D10, D14, and D16 are migration destination data Dj whose hash values match that of the migration source data d2 to d5, d7, and d9 determined to be unnecessary for copying.
- the VM host HT2 reads the migration destination data D2, D4, D8, D10, D14, and D16 from the memory blocks B2, B4, B8, B10, B14, and B16 and writes them in the free area of the physical memory PM2.
- the migration destination data D2, D4, D8, D10, D14, and D16 are copied to the empty area of the physical memory PM2, and the memory blocks b2 to b5, b7, and b9 of the virtual machine VM3 are generated.
- the memory blocks b1 to b9 of the virtual machine VM3 are generated in the physical memory PM2 of the migration destination server SV2, and the migration of the virtual machine VM3 is completed. In this way, it is possible to reduce the amount of data transferred between servers by determining in advance whether or not copying of the migration source data di is necessary and suppressing the transfer of data di that does not require copying.
- the migration source data di and the migration destination data Dj have different data contents, there is a possibility that the hash value hi and the hash value Hj match (collision). For this reason, when the identity of the migration source data di and the migration destination data Dj is determined only by the hash value match determination, the migration source data di that normally needs to be copied is not transferred to the migration destination server SV. There is.
- the determination of the identity of the migration source data di and the migration destination data Dj may be further performed by the determination methods 1 to 4 described below.
- Determination method 1 First, the determination method 1 for determining the identity of the migration source data di and the migration destination data Dj with a plurality of hash values calculated using different algorithms will be described. Here, a plurality of different hash values of the migration source data di and the migration destination data Dj are calculated using different first and second hash functions.
- the hash value calculated by giving the migration source data di to the first hash function is expressed as “first hash value h 1 i”, and the migration destination data Dj is stored in the first hash function.
- the hash value calculated by giving is expressed as “first hash value H 1 j”.
- the hash value calculated by giving the migration source data di to the second hash function is expressed as “second hash value h 2 i”, and the migration destination data Dj is given to the second hash function.
- the calculated hash value is expressed as “second hash value H 2 j”.
- the comparison unit 505 calculates, for each hash function included in a plurality of different hash functions, the hash value (for example, the first and second hash values H 1 j of the migration destination data Dj calculated using the hash function). , H 2 j) and the hash value (for example, the first and second hash values h 1 i, h 2 i) of the migration source data di.
- the comparison unit 505 performs the first hash value H 1 j of the migration destination data Dj of the memory block Bj and the first of the migration source data di of the memory block bi.
- the hash value h 1 i is compared.
- the comparison unit 505 determines whether the second hash value H 2 j of the migration destination data Dj and the migration source data di
- the second hash value h 2 i is compared.
- the determination unit 504 determines whether or not it is necessary to copy the migration source data di of the memory block bi to the physical memory PM of the migration destination server SV based on the comparison result.
- the determination method 1 specific processing contents regarding the determination method 1 will be described.
- the memory management table 800 that stores the first hash value h 1 i and the second hash value h 2 i of the migration source data di will be described.
- the memory management table 800 is realized by the memory 202 of the migration source server SV, for example.
- FIG. 8 is an explanatory diagram (part 2) showing an example of the contents stored in the memory management table.
- the memory management table 800 has fields of a machine ID, a memory ID, a block ID, a first hash value, and a second hash value. By setting information in each field, the virtual machine VM3 Memory management data is stored.
- the first hash value is a first hash value h 1 i calculated by giving the migration source data di stored in the memory block bi to the first hash function.
- the second hash value is a second hash value h 2 i calculated by giving the migration source data di stored in the memory block bi to the second hash function.
- the first hash values h 1 1 to h 1 9 and the second hash values h 2 1 to h 2 9 of the migration source data d1 to d9 stored in the memory blocks b1 to b9 are stored. Can be specified.
- the migration source VM host HT1 refers to the memory management table 800 to identify the first and second hash values h 1 i, h 2 i of the migration source data di. Then, the VM host HT1 transmits the first and second hash values h 1 i and h 2 i of the specified migration source data di to the migration destination VM host HT2.
- the migration destination VM host HT2 determines, for each memory block Bj, the first hash value H 1 j of the migration destination data Dj of the memory block Bj and the first hash value h 1 i of the migration source data di. Compare Here, the hash table 900 that stores the first hash value H 1 j and the second hash value H 2 j of the migration destination data Dj will be described.
- the hash table 900 is realized by the memory 202 of the migration destination server SV, for example.
- FIG. 9 is an explanatory diagram (part 2) of an example of the stored contents of the hash table.
- the hash table 900 includes the first hash value H 1 j and the first hash value H 1 j of the migration destination data Dj stored in the memory block Bj for each memory block Bj constituting the physical memory PM2 of the migration destination server SV2. 2 hash values H 2 j are stored.
- the migration destination VM host HT2 refers to, for example, the hash table 900, for each memory block Bj, the first hash value H 1 j of the migration destination data Dj of the memory block Bj and the first of the migration source data di. Is compared with the hash value h 1 i.
- the VM host HT2 further refers to the hash table 900, and the second hash of the migration destination data Dj
- the value H 2 j is compared with the second hash value h 2 i of the migration source data di. Then, the VM host HT2 transmits the compared result of comparison to the VM host HT1.
- the VM host HT1 determines whether or not it is necessary to copy the migration source data di of the memory block bi to the migration destination physical memory PM2 based on the received comparison result. Specifically, for example, if the second hash value H 2 j and the second hash value h 2 i match, the VM host HT1 determines that copying of the migration source data di is unnecessary. On the other hand, if the first hash value H 1 j and the first hash value h 1 i do not match, or if the second hash value H 2 j and the second hash value h 2 i do not match, The VM host HT1 determines that copying of the migration source data di is necessary.
- the migration destination VM host HT2 is the source of calculation of the hash value that does not match at least one of the first and second hash values H 1 j and H 2 j of the migration destination data Dj.
- the migration source data di is received from the migration source VM host HT1.
- the migration destination server SV When the comparison unit 505 performs comparison processing in the migration source server SV, the migration destination server SV responds to a transmission request from the migration source server SV by the first and second destination data Dj.
- the hash values H 1 j and H 2 j are transmitted to the migration source server SV.
- the migration source data di and the migration destination data Dj are identical by determining whether or not the migration source data di and the migration destination data Dj have the same hash value (for example, the first hash value described above).
- a determination method 2 for determining sex will be described.
- the comparison unit 505 compares the partial data extracted from the migration destination data Dj based on a predetermined extraction rule, and the migration source The partial data extracted from the data di based on the extraction rule is compared.
- the partial data extracted from the migration source data di is referred to as “partial data pi”.
- the partial data extracted from the migration destination data Dj is denoted as “partial data Pj”.
- the partial data pi of the migration source data di is extracted from the migration source data di based on a predetermined extraction rule, for example, by the VM host HT1 of the migration source server SV1.
- a predetermined extraction rule for example, by the VM host HT1 of the migration source server SV1.
- the extraction rule for example, a rule for extracting data of a predetermined number of bits from the beginning or the end of the migration source data di is set.
- the partial data Pj of the migration destination data Dj is extracted from the migration destination data Dj based on a predetermined extraction rule by, for example, the VM host HT2 of the migration destination server SV2.
- the partial data pi and Pj are extracted based on the same extraction rule.
- the extraction timing of each partial data pi, Pj may be, for example, when recording or updating the migration source data di and the migration destination data Dj.
- the determination unit 504 determines whether or not it is necessary to copy the migration source data di of the memory block bi to the physical memory PM of the migration destination server SV based on the comparison result.
- the determination method 2 specific processing contents regarding the determination method 2 will be described.
- the migration destination VM host HT2 matches the first hash value H 1 j and the first hash value h 1 i, the partial data Pj of the migration destination data Dj and the migration source The partial data pi of the data di is compared.
- the partial data pi of the migration source data di is transmitted from the migration source VM host HT1 to the VM host HT2, for example, in response to a transmission request from the migration destination VM host HT2. Then, the VM host HT2 transmits the compared result of comparison to the VM host HT1.
- the VM host HT1 determines whether or not it is necessary to copy the migration source data di of the memory block bi to the migration destination physical memory PM2 based on the received comparison result. Specifically, for example, when the partial data Pj and the partial data pi match, the VM host HT1 determines that copying of the migration source data di is unnecessary. On the other hand, if the partial data Pj and the partial data pi do not match, the VM host HT1 determines that the migration source data di needs to be copied.
- the migration destination VM host HT2 receives from the migration source VM host HT1 the migration source data di of the extraction source of the partial data pi that does not match the partial data Pj of the migration destination data Dj.
- the migration destination server SV transfers the partial data Pj of the migration destination data Dj in response to a transmission request from the migration source server SV. To the server SV.
- the execution subject that performs the comparison process between the partial data pi of the migration source data di and the partial data Pj of the migration destination data Dj may be determined.
- the comparison unit 505 determines the communication quality among the bidirectional communication paths between the servers SV. Select a higher communication path.
- the communication quality for example, a data transfer rate or an error rate can be used.
- the transfer rate is the amount of data transferred per unit time (for example, bits per second).
- the error rate is the probability that the received data includes bits different from the transmitted data when data is transmitted / received.
- the transfer rate and the error rate may be measured in advance and stored in the memory 202, or may be measured each time a communication path is selected.
- the VM host HT2 matches the first hash value H 1 j and the first hash value h 1 i, among the bidirectional communication paths between the servers SV1 and SV2, Select a communication channel with high communication quality.
- the VM host HT2 transmits a transmission request for the partial data pi of the migration source data di to the migration source VM host HT1.
- the VM host HT2 receives the partial data pi of the migration source data di from the VM host HT1, and performs a comparison process between the partial data pi of the migration source data di and the partial data Pj of the migration destination data Dj.
- the VM host HT2 transmits the partial data Pj of the migration destination data Dj to the migration source VM host HT1.
- the migration source VM host HT1 performs a comparison process between the partial data pi of the migration source data di and the partial data Pj of the migration destination data Dj.
- the comparison unit 505 selects a communication path with high communication quality among the bidirectional communication paths between the servers SV. Specifically, for example, when the VM host HT2 matches the first hash value H 1 j and the first hash value h 1 i, communication is performed among the bidirectional communication paths between the servers SV1 and SV2. Select a high-quality channel.
- the VM host HT2 transmits the migration destination data Dj to the migration source VM host HT1. Thereafter, the migration source VM host HT1 compares the migration source data di and the migration destination data Dj. Then, the VM host HT1 determines whether or not it is necessary to copy the migration source data di of the memory block bi to the migration destination physical memory PM2 based on the comparison result.
- the VM host HT1 determines that copying of the migration source data di is unnecessary. On the other hand, if the migration source data di and the migration destination data Dj do not match, the VM host HT1 determines that copying of the migration source data di is necessary.
- the migration destination VM host HT2 receives from the migration source VM host HT1 the migration source data di that does not match the migration destination data Dj.
- the migration source data di is transferred from the migration source VM host HT1 to the migration destination VM host HT2 in order to determine a match with the migration destination data Dj. There is no point in sending. Therefore, when a communication path in the direction from the server SV1 to the server SV2 is selected, the VM host HT2 compares the first hash value H 1 j and the first hash value h 1 i to match. The result may be transmitted to the VM host HT1.
- the VM host HT1 determines that it is necessary to copy the migration source data di of the memory block bi to the migration destination physical memory PM2. That is, when the communication path in the direction from the server SV1 to the server SV2 is selected, it is determined that copying of the migration source data di is necessary without performing a match determination between the migration source data di and the migration destination data Dj. .
- the migration source data di and the migration destination data Dj are identical by determining whether the migration source data di and the migration destination data Dj having the same hash value (for example, the above-described first hash value) match.
- a determination method 4 for determining the sex will be described.
- FIG. 10 is an explanatory diagram showing an example of shared storage for storing migration source data and migration destination data.
- a storage apparatus 1000 is a shared storage that can be accessed by the migration source server SV1 and the migration destination server SV2 via the network 205.
- the virtual machine VM3 operating on the server SV1 is a virtual machine to be migrated.
- the migration source data d5 is stored in the logical volume LV1 of the storage apparatus 1000.
- the migration destination data D10 is stored in the logical volume LV2 of the storage apparatus 1000.
- the storage apparatus 1000 has a deduplication function, and logical blocks having the same contents are stored in the same physical block. That is, when the migration source data d5 and the migration destination data D10 are data D stored in the volume PV1 having the same physical address, d5 and D10 have the same contents and indicate the same data source.
- the migration destination server SV2 stores the memory block B10 in which the migration destination data D10 is stored in a plurality of virtual machines VM (for example, virtual machines VM3, VM3). VM4) can be shared. For this reason, it is not necessary to copy the migration source data d5 to the migration destination physical memory PM2.
- VM virtual machines
- the comparison unit 505 further transfers the address of the storage area in the storage that stores the migration destination data Dj, and the migration The address of the storage area in the storage that stores the original data di is compared.
- the storage is, for example, the storage device 1000 that can be accessed by the migration destination server SV and the migration source server SV. Then, the determination unit 504 determines whether or not it is necessary to copy the migration source data di of the memory block bi to the physical memory PM of the migration destination server SV based on the comparison result.
- the VM host HT2 inquires of the migration source VM host HT1 about the volume ID for identifying the logical volume LV1 storing the migration source data d5. Then, the VM host HT2 inquires of the storage apparatus 1000 about a physical address corresponding to the logical volume LV1 that stores the migration source data d5.
- the VM host HT2 inquires of the storage apparatus 1000 about a physical address corresponding to the logical volume LV2 that stores the migration destination data D10. Next, the VM host HT2 compares the physical address corresponding to the logical volume LV1 storing the migration source data d5 and the physical address corresponding to the logical volume LV2 storing the migration destination data D10. Then, the VM host HT2 transmits the compared result of comparison to the VM host HT1.
- the VM host HT1 determines whether or not it is necessary to copy the migration source data di of the memory block bi to the migration destination physical memory PM2 based on the received comparison result. Specifically, for example, when the physical address of the logical volume LV1 matches the physical address of the logical volume LV2, the VM host HT1 determines that copying of the migration source data d5 is unnecessary. As a result, in the migration destination server SV2, for example, the memory block B10 that stores the migration destination data D10 is shared by the plurality of virtual machines VM3 and VM4.
- the VM host HT1 determines that copying of the migration source data d5 is necessary.
- the migration destination VM host HT2 converts the migration source data di stored in the logical volume LV1 having a physical address that does not match the physical address of the logical volume LV2 that stores the migration destination data Dj into the migration source VM host HT1. Will receive from.
- the migration source data di and the migration destination data Dj are combined by combining a plurality of determination methods 1 to 4 described above.
- the identity may be determined.
- FIG. 11 is a flowchart of an example of a data migration processing procedure of the migration source server according to the second embodiment.
- the receiving unit 501 determines whether an instruction to migrate the virtual machine VMk has been received (step S1101).
- the reception unit 501 waits to receive a migration instruction for the virtual machine VMk (step S1101: No).
- the selection unit 502 selects the memory block bi from the memory blocks b1 to bn configuring the memory Mk of the virtual machine VMk (step S1103). Then, the transmission unit 503 transmits the first and second hash values h 1 i and h 2 i of the migration source data di stored in the selected memory block bi to the migration destination server SV (step S1104). ).
- the reception unit 501 compares the hash value hi of the migration source data di with the hash value Hj for each migration destination data Dj stored in each memory block 120-j constituting the migration destination physical memory PM. It is determined whether the result is received from the migration destination server SV (step S1105).
- step S1105: No it waits for the reception of the comparison result
- step S1105: Yes the determination unit 504 uses the physical result of the migration destination server SV based on the received comparison result. It is determined whether or not it is necessary to copy the migration source data di to the memory PV (step S1106).
- the transmission unit 503 transmits a copy instruction of the migration source data di to the migration destination server SV (step S1108). Then, the selection unit 502 increments “i” of the memory block bi (step S1109), and determines whether “i” is greater than “n” (step S1110).
- step S1110: No when “i” is equal to or less than “n” (step S1110: No), the process returns to step S1103. On the other hand, when “i” is larger than “n” (step S1110: Yes), a series of processes according to this flowchart is ended. If it is not necessary to copy the migration source data di in step S1107 (step S1107: No), the process proceeds to step S1109.
- (Data migration processing procedure of migration destination server SV) 12 to 14 are flowcharts illustrating an example of a data migration processing procedure of the migration destination server according to the second embodiment.
- the receiving unit 501 determines whether or not the first and second hash values h 1 i and h 2 i of the migration source data di have been received from the migration source server SV (step S1201).
- the comparison unit 505 compares the first hash value H 1 j of the migration destination data Dj stored in the memory block Bj with the first hash value h 1 i of the received migration source data di. (Step S1203). Then, the comparison unit 505 determines whether or not the first hash value H 1 j of the migration destination data Dj matches the first hash value h 1 i of the migration source data di (step S1204).
- step S1204 when the first hash value H 1 j and the first hash value h 1 i do not match (step S1204: No), the comparison unit 505 increments “j” of the memory block Bj (step S1204). In step S1205, it is determined whether “j” is larger than “m” (step S1206). If “j” is equal to or less than “m” (step S1206: No), the process returns to step S1203.
- step S1206 when “j” is larger than “m” (step S1206: Yes), the transmission unit 503 transmits the comparison result compared by the comparison unit 505 to the migration source server SV (step S1207). The series of processes by is terminated.
- step S1204 when the first hash value H 1 j matches the first hash value h 1 i (step S1204: Yes), the comparison unit 505 stores the migration destination stored in the memory block Bj.
- the second hash value H 2 j of the data Dj is compared with the second hash value h 2 i of the migration source data di (step S1208).
- the comparison unit 505 determines whether or not the second hash value H 2 j of the migration destination data Dj matches the second hash value h 2 i of the migration source data di (step S1209).
- the process proceeds to step S1205.
- step S1209 Yes
- the process proceeds to step S1301 shown in FIG.
- the transmission unit 503 transmits a transmission request for the partial data pi of the migration source data di to the migration source server SV (step S1301).
- the receiving unit 501 determines whether or not the partial data pi of the migration source data di is received from the migration source server SV (step S1302).
- step S1302 After waiting for reception of the partial data pi (step S1302: No), if received (step S1302: Yes), the comparison unit 505 causes the partial data Pj of the transfer destination data Dj and the transfer source data di to be changed. The partial data pi is compared (step S1303).
- the comparison unit 505 determines whether or not the partial data Pj of the migration destination data Dj matches the partial data pi of the migration source data di (step S1304). If the partial data Pj and the partial data pi do not match (step S1304: NO), the process proceeds to step S1205 shown in FIG.
- step S1304 Yes
- the process proceeds to step S1401 shown in FIG.
- the comparison unit 505 inquires the migration source server SV about the volume ID of the logical volume storing the migration source data di (step S1401). Then, the comparison unit 505 inquires the storage apparatus 1000 about the physical address corresponding to the logical volume storing the migration source data di (step S1402).
- the comparison unit 505 inquires the storage apparatus 1000 about a physical address corresponding to the logical volume storing the migration destination data Dj (step S1403).
- the comparison unit 505 compares the physical address corresponding to the logical volume storing the migration source data di and the physical address corresponding to the logical volume storing the migration destination data Dj (step S1404).
- the comparison unit 505 determines whether or not the physical address of the compared migration source data di matches the physical address of the migration destination data Dj (step S1405). If the physical address of the migration source data di and the physical address of the migration destination data Dj do not match (step S1405: No), the process proceeds to step S1205 shown in FIG.
- Step S1405 if the physical address of the migration source data di matches the physical address of the migration destination data Dj (step S1405: Yes), the transmission unit 503 sends the comparison result compared by the comparison unit 505 to the migration source server SV. (Step S1406), and a series of processing according to this flowchart is terminated.
- the information (comparison result) for determining the identity between the migration source data di stored in the migration source memory block bi and the migration destination data Dj stored in the migration destination memory block Bj. Can be transmitted to the server SV of the migration source.
- step S1207 when the comparison result is transmitted to the migration source server SV and the receiving unit 501 receives a copy instruction for the migration source data di, the writing unit 506 causes the migration source data to be copied. Write di to the migration destination physical memory PM.
- step S1406 if the compared result is transmitted to the migration source server SV, for example, the writing unit 506 converts the migration destination data Dj whose hash value matches the migration source data di to the physical data of the migration destination. Write to memory PM.
- the context switching is performed after, for example, the memory blocks b1 to bn constituting the memory Mk of the virtual machine VMk are generated on the physical memory PM of the migration destination server SV.
- the server SV According to the server SV according to the second embodiment, necessity of copying of the migration source data di of the memory block bi for each memory block bi constituting the memory Mk of the virtual machine VMk to be migrated. Can be determined. As a result, when live migration is performed, copying of data di that does not need to be copied can be suppressed, and the amount of data transferred between servers SV can be reduced.
- the hash value hi of the migration source data di and the hash value Hj of the migration destination data Dj are compared, and the identity of the migration source data di and the migration destination data Dj is determined. It is possible to determine whether the bi data di needs to be copied.
- the server SV by determining the identity of the migration source data di and the migration destination data Dj using a plurality of different hash values, a problem caused by the collision of the hash values of the migration source data di and the migration destination data Dj can be solved. It can be avoided.
- the identity of the migration source data di and the partial data pi and Pj of the migration destination data Dj is determined to be identical, whereby the hash value of the migration source data di and the migration destination data Dj collides. It is possible to avoid problems caused by.
- a communication path with high communication quality can be selected from the two-way communication paths between the server SV1 and the server SV2, and the comparison process between the partial data pi and the partial data Pj can be performed. . Thereby, the coincidence determination between the partial data pi and the partial data Pj can be performed quickly and efficiently.
- the server SV by performing identity determination by determining whether the migration source data di and the migration destination data Dj match, it is possible to avoid problems caused by collision of hash values of the migration source data di and the migration destination data Dj. Can do.
- a memory block table for managing the memory blocks b1 to bn constituting the memory Mk by the OS (hereinafter referred to as “guest OSk”) being executed by the virtual machine VMk on the server SV will be described.
- guest OSk a memory block table used by the guest OS 3 being executed by the virtual machine VM3 on the server SV1
- the memory block table 1500 is realized by, for example, the memory 202 illustrated in FIG.
- FIG. 15 is an explanatory diagram of an example of the contents stored in the memory block table.
- the memory block table 1500 has fields of block ID, type, status, and other block ID. By setting information in each field, management data for each memory block bi is stored.
- the block ID is an identifier of the memory block bi constituting the memory Mk of the virtual machine VMk.
- the type is the data type of the data di stored in the memory block bi.
- “kern” represents kernel data.
- the kernel data includes, for example, a memory block table 1500.
- “Text” represents text data such as a program code.
- “Free” represents a memory block included in the free memory.
- Data represents data such as a data area of the program.
- “Anno” represents data (anonymous data) other than “kern”, “text”, “free”, and “data”.
- the status represents the state of the data di stored in the memory block bi.
- “nostore” represents a state where there is no backing store.
- the backing store is a storage area in the swap area that stores backup data of the data di.
- “Sync” indicates that the memory block is synchronized with another memory block different from the memory block bi.
- “Nosync” indicates that the memory block is not synchronized with another memory block different from the memory block bi.
- Null indicates that the memory block bi is initialized.
- the other block ID is a block ID of another memory block that stores data related to the data di stored in the memory block bi.
- Examples of other memory blocks include a memory block on the file system and a memory block in the swap area.
- FIG. 16 is a block diagram of a functional configuration of the server according to the third embodiment.
- the server SV is configured to include a reception unit 501, a selection unit 502, a transmission unit 503, a determination unit 1601, and a determination unit 1602.
- each function unit realizes its function, for example, by causing the CPU 201 to execute a program stored in the memory 202 illustrated in FIG. 2 or the like, or by the network I / F 203. More specifically, for example, each functional unit is realized by the VM hosts HT1 and HT2 illustrated in FIG. 3 or the guest OSk executed on the virtual machine VMk. The processing result of each functional unit is stored in the memory 202.
- the determination unit 1601 determines whether or not the memory block bi is an unused storage area based on the attribute information of the migration source data di stored in the memory block bi.
- the guest OS 3 of the virtual machine VM 3 refers to the memory block table 1500 and determines whether or not the memory block bi is a memory block included in the free memory. More specifically, for example, when “free” is set in the type field of the memory block bi, the guest OS 3 determines that the memory block bi is a memory block included in the free memory.
- the determination unit 1602 determines whether or not it is necessary to copy the transfer source data di to the physical memory PM of the transfer destination server SV based on the determined determination result. Specifically, for example, when the guest OS 3 determines that the memory block bi is a memory block included in the free memory, it determines that copying of the migration source data di is unnecessary.
- the guest OS 3 shifts the status of the memory block bi to the page stealed state.
- the page steal is, for example, a state in which the memory block bi is taken by another virtual machine VM.
- Information indicating that the status of the memory block bi is shifted to the page stealed state is transferred from the VM host HT1 to the VM host HT2.
- the status of the memory block bi is reflected in the memory block table 1500 used by the guest OS 3 of the virtual machine VM3 operating on the migration destination server SV2.
- the guest OS 3 secures a free space in the physical memory PM2 and generates the memory block bi.
- the determination unit 1601 determines whether or not the migration source data di is stored in a storage device accessible to the migration destination server SV based on the attribute information of the migration source data di stored in the memory block bi. to decide.
- the guest OS 3 of the virtual machine VM 3 refers to the memory block table 1500 and determines whether the migration source data di is stored in a file system accessible by the migration destination server SV. .
- the guest OS 3 determines whether “text” or “data” is set in the type field of the memory block bi.
- the guest OS 3 further determines whether “sync” is set in the status field of the memory block bi.
- the guest OS 3 determines that the migration source data di is stored in the file system.
- the guest OS 3 determines that copying of the migration source data di is unnecessary. Next, the guest OS 3 shifts the status of the memory block bi to the page stealed state.
- the guest OS 3 secures a free area in the physical memory PM2, acquires the data di from the file system, and acquires the memory block. Generate bi.
- the determination unit 1601 determines whether the migration source data di is backed up in another storage area different from the memory Mk based on the attribute information of the migration source data di stored in the memory block bi.
- the other storage area may be provided in a storage device such as a magnetic disk or an optical disk of the migration source server SV, and is accessible to the migration source server SV and the migration destination server SV. It may be provided in the storage device.
- the guest OS 3 of the virtual machine VM 3 refers to the memory block table 1500 and determines whether there is a backing store for the migration source data di. More specifically, for example, first, the guest OS 3 determines whether or not “anno” is set in the type field of the memory block bi. Here, when “anno” is set, the guest OS 3 further determines whether “sync” is set in the status field of the memory block bi.
- the guest OS 3 determines that there is a backing store of the migration source data di. Then, the guest OS 3 determines that copying of the migration source data di is unnecessary. Then, the guest OS 3 shifts the status of the memory block bi to the page stealed state.
- the guest OS 3 secures a free area in the physical memory PM2 and accesses the memory block by acquiring data di from the swap area when an access to the memory block bi in the page stealed state occurs. Generate bi.
- the determination unit 1601 determines whether or not the memory block bi is initialized based on the attribute information of the migration source data di stored in the memory block bi. Specifically, for example, the guest OS 3 of the virtual machine VM3 refers to the memory block table 1500 and determines whether or not the memory block bi has been initialized.
- the guest OS 3 determines whether or not “null” is set in the status field of the memory block bi.
- “null” the guest OS 3 determines that the memory block bi is initialized. Then, the guest OS 3 determines that copying of the migration source data di is unnecessary.
- the guest OS 3 shifts the status of the memory block bi to the page stealed state.
- the guest OS 3 generates a memory block bi by securing a free space in the physical memory PM2 when an access to the memory block bi in the page stealed state occurs.
- FIG. 17 is a flowchart of an example of a data migration processing procedure of the server according to the third embodiment.
- the receiving unit 501 determines whether or not a migration instruction for the virtual machine VMk has been received (step S1701).
- the reception unit 501 waits to receive a migration instruction for the virtual machine VMk (step S1701: No).
- the selection unit 502 selects the memory block bi from the memory blocks b1 to bn configuring the memory Mk of the virtual machine VMk (step S1703). Then, the determination unit 1601 determines whether or not the memory block bi is a memory block included in the free memory (step S1704).
- step S1704 when the memory block bi is a memory block included in the free memory (step S1704: Yes), the determination unit 1602 determines that copying of the migration source data di is unnecessary (step S1705). Then, the determination unit 1602 shifts the status of the memory block bi to the page stealed state (step S1706), and proceeds to step S1712.
- step S1704 if the memory block bi is a memory block that is not included in the free memory (step S1704: No), the determination unit 1601 determines whether the migration source data di is stored in the file system. (Step S1707). If the migration source data di is stored in the file system (step S1707: YES), the process proceeds to step S1705.
- step S1707 determines whether there is a backing store for the migration source data di. If there is a backing store for the migration source data di (step S1708: Yes), the process proceeds to step S1705.
- step S1708 determines whether the memory block bi is initialized (step S1709). If the memory block bi is initialized (step S1709: YES), the process proceeds to step S1705.
- step S1709 NO
- the determination unit 1602 determines that the copy of the migration source data di is necessary (step S1710). Then, the transmission unit 503 transmits a copy instruction for the migration source data di of the memory block bi to the migration destination server SV (step S1711).
- the selection unit 502 increments “i” of the memory block bi (step S1712), and determines whether “i” is greater than “n” (step S1713). If “i” is equal to or less than “n” (step S1713: NO), the process returns to step S1703. On the other hand, when “i” is larger than “n” (step S1713: Yes), a series of processes according to this flowchart is ended.
- step S1706 and step S1711 may be performed in a lump after determining whether or not copying is required for all the memory blocks b1 to bn, for example.
- the migration source data is based on the attribute information of the migration source data di stored in the memory block bi.
- the necessity of copying di can be determined. As a result, when live migration is performed, copying of data di that does not need to be copied can be suppressed, and the amount of data transferred between servers can be reduced.
- the server SV it is determined whether or not the migration source data di stored in the memory block bi needs to be copied by determining whether or not the memory block bi is a memory block included in the free memory. be able to.
- the server SV by determining whether or not the migration source data di stored in the memory block bi is stored in a file system accessible by the migration destination server SV, The necessity of copying can be determined.
- the server SV it is possible to determine whether or not copying of the migration source data di is necessary by determining whether or not there is a backing store of the migration source data di stored in the memory block bi.
- the server SV it is possible to determine whether or not copying of the migration source data di stored in the memory block bi is necessary by determining whether or not the memory block bi is initialized.
- the data migration method described in this embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation.
- the data migration program is recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM, an MO, and a DVD, and is executed by being read from the recording medium by the computer.
- the data migration program may be distributed via a network such as the Internet.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
図1は、実施の形態1にかかるデータ移行手法の一実施例を示す説明図である。実施の形態1では、移行元のメモリを構成するメモリブロックごとに、メモリブロックに記憶されている移行元データの複写の要否を事前に判定して、複写不要な移行元データの転送を抑止する。
実施の形態2では、実施の形態1で説明した計算機101,102をサーバSV(例えば、後述するサーバSV1,SV2)に適用した場合について説明する。なお、実施の形態1で説明した内容と同一内容については説明を省略する。
図2は、実施の形態2にかかるサーバのハードウェア構成の一例を示すブロック図である。図2において、サーバSVは、CPU(Central Processing Unit)201と、メモリ202と、ネットワークI/F(Interface)203と、入出力装置204と、を備えている。また、各構成部はバス200によってそれぞれ接続されている。
図3は、実施の形態2にかかるネットワークシステムの一実施例を示す説明図である。図3において、ネットワークシステム300は、サーバSV1と、サーバSV2と、を含む構成である。ネットワークシステム300において、サーバSV1およびサーバSV2は、ネットワーク205を介して相互に通信可能に接続されている。
図4は、メモリ管理テーブルの記憶内容の一例を示す説明図(その1)である。図4において、メモリ管理テーブル400は、マシンID、メモリID、ブロックIDおよびハッシュ値のフィールドを有し、各フィールドに情報を設定することで、仮想マシンVM3のメモリ管理データを記憶している。
図5は、実施の形態2にかかるサーバの機能的構成を示すブロック図である。図5において、サーバSVは、受信部501と、選択部502と、送信部503と、判定部504と、比較部505と、書込部506と、を含む構成である。各機能部は、具体的には、例えば、図2に示したメモリ202に記憶されたプログラムをCPU201に実行させることにより、または、ネットワークI/F203により、その機能を実現する。より具体的には、例えば、各機能部は、図3に示したVMホストHT1,HT2によって実現される。なお、各機能部の処理結果は、メモリ202に記憶される。
受信部501は、仮想マシンVMkの移行指示を受信する。ここで、仮想マシンVMkの移行指示とは、自サーバで動作中の仮想マシンVMkを他サーバに移行するように指示するものである。仮想マシンVMkの移行指示には、例えば、仮想マシンVMkのマシンIDと、移行先のサーバSVを識別するサーバIDが含まれている。
受信部501は、移行元のサーバSVから、移行元のメモリMkを構成するメモリブロックbiごとに、メモリブロックbiに記憶されている移行元データdiのハッシュ値hiを受信する。具体的には、例えば、サーバSV2のVMホストHT2が、ネットワーク205を介して、移行元データdiのハッシュ値hiをサーバSV1のVMホストHT1から受信する。
まず、異なるアルゴリズムを用いて算出された複数のハッシュ値により、移行元データdiと移行先データDjの同一性の判定を行う判定手法1について説明する。ここでは、互いに異なる第1および第2のハッシュ関数を用いて、移行元データdiおよび移行先データDjの複数の異なるハッシュ値を算出する。
つぎに、ハッシュ値(例えば、上述した第1のハッシュ値)が一致する移行元データdiと移行先データDjの部分データの一致判定を行うことにより、移行元データdiと移行先データDjの同一性の判定を行う判定手法2について説明する。
つぎに、ハッシュ値(例えば、上述した第1のハッシュ値)が一致する移行元データdiと移行先データDjの一致判定を行うことにより、移行元データdiと移行先データDjの同一性の判定を行う判定手法3について説明する。
つぎに、ハッシュ値(例えば、上述した第1のハッシュ値)が一致する移行元データdiと移行先データDjのデータソースの一致判定を行うことにより、移行元データdiと移行先データDjの同一性の判定を行う判定手法4について説明する。
図11は、実施の形態2にかかる移行元のサーバのデータ移行処理手順の一例を示すフローチャートである。図11のフローチャートにおいて、まず、受信部501により、仮想マシンVMkの移行指示を受信したか否かを判断する(ステップS1101)。
図12~図14は、実施の形態2にかかる移行先のサーバのデータ移行処理手順の一例を示すフローチャートである。図12のフローチャートにおいて、まず、受信部501により、移行元データdiの第1および第2のハッシュ値h1i,h2iを移行元のサーバSVから受信したか否かを判断する(ステップS1201)。
つぎに、実施の形態3にかかるサーバSVについて説明する。実施の形態3では、移行対象となる仮想マシンVMkのメモリブロックbiごとに、メモリブロックbiに記憶されている移行元データdiの属性情報に基づいて、移行元データdiの複写の要否を判定する。なお、実施の形態1,2で説明した内容と同一の内容については説明を省略する。
図15は、メモリブロックテーブルの記憶内容の一例を示す説明図である。図15において、メモリブロックテーブル1500は、ブロックID、タイプ、ステータスおよび他ブロックIDのフィールドを有する。各フィールドに情報を設定することで、メモリブロックbiごとの管理データが記憶されている。
図16は、実施の形態3にかかるサーバの機能的構成を示すブロック図である。図16において、サーバSVは、受信部501と、選択部502と、送信部503と、判断部1601と、判定部1602と、を含む構成である。各機能部は、具体的には、例えば、図2に示したメモリ202などに記憶されたプログラムをCPU201に実行させることにより、または、ネットワークI/F203により、その機能を実現する。より具体的には、例えば、各機能部は、図3に示したVMホストHT1,HT2、または、仮想マシンVMk上で実行されるゲストOSkによって実現される。なお、各機能部の処理結果は、メモリ202に記憶される。
図17は、実施の形態3にかかるサーバのデータ移行処理手順の一例を示すフローチャートである。図17のフローチャートにおいて、まず、受信部501により、仮想マシンVMkの移行指示を受信したか否かを判断する(ステップS1701)。
110,110-1~110-4,120,120-1~120-9 記憶領域
300 ネットワークシステム
400,800 メモリ管理テーブル
501 受信部
502 選択部
503 送信部
504,1602 判定部
505 比較部
506 書込部
600,900 ハッシュテーブル
1500 メモリブロックテーブル
1601 判断部
SV,SV1,SV2 サーバ
VM,VMk 仮想マシン
Claims (24)
- 計算機間のデータ移行を行う移行先の計算機に、
移行元のメモリを構成するいずれかのメモリブロックに記憶されている移行元データのハッシュ値を移行元の計算機から受信する第1の受信工程と、
移行先のメモリを構成するメモリブロックごとに、当該メモリブロックに記憶されている移行先データのハッシュ値と、前記第1の受信工程によって受信された前記移行元データのハッシュ値とを比較する比較工程と、
前記比較工程によって比較された比較結果を前記移行元の計算機に送信する送信工程と、
前記送信工程によって前記比較結果が送信された結果、前記移行先データのハッシュ値と不一致となったハッシュ値の算出元の前記移行元データを前記移行元の計算機から受信する第2の受信工程と、
を実行させることを特徴とするデータ移行プログラム。 - 前記第1の受信工程は、
複数の異なるハッシュ関数を用いて算出された前記移行元データの複数のハッシュ値を前記移行元の計算機から受信し、
前記比較工程は、
前記複数の異なるハッシュ関数に含まれるハッシュ関数ごとに、当該ハッシュ関数を用いて算出された、前記移行先データのハッシュ値と、前記第1の受信工程によって受信された前記移行元データのハッシュ値とを比較し、
前記第2の受信工程は、
前記複数の異なるハッシュ関数を用いて算出された前記移行先データの複数のハッシュ値の少なくともいずれかのハッシュ値と不一致となったハッシュ値の算出元の前記移行元データを、前記移行元の計算機から受信することを特徴とする請求項1に記載のデータ移行プログラム。 - 前記第1の受信工程は、
さらに、所定の抽出ルールに基づいて前記移行元データから抽出された部分データを前記移行元の計算機から受信し、
前記比較工程は、
前記移行先データのハッシュ値と前記移行元データのハッシュ値とが一致する場合、さらに、前記抽出ルールに基づいて前記移行先データから抽出された部分データと、前記第1の受信工程によって受信された前記移行元データの部分データとを比較し、
前記第2の受信工程は、
前記移行先データの部分データと不一致となった部分データの抽出元の前記移行元データを前記移行元の計算機から受信することを特徴とする請求項1に記載のデータ移行プログラム。 - 前記移行先の計算機に、
前記移行先データのハッシュ値と前記移行元データのハッシュ値とが一致する場合、前記移行先の計算機と前記移行元の計算機との間の双方向の通信路のうち通信品質の高い通信路を選択する選択工程を実行させ、
前記送信工程は、
前記選択工程によって前記移行先の計算機から前記移行元の計算機の方向の通信路が選択された場合、所定の抽出ルールに基づいて前記移行先データから抽出された部分データを前記移行元の計算機に送信し、
前記第2の受信工程は、
前記送信工程によって前記移行先データの部分データが送信された結果、前記移行先データの部分データと不一致の部分データの抽出元の前記移行元データを前記移行元の計算機から受信することを特徴とする請求項1に記載のデータ移行プログラム。 - 前記送信工程は、
前記選択工程によって前記移行先の計算機から前記移行元の計算機の方向の通信路が選択された場合、前記移行先データを前記移行元の計算機に送信し、
前記第2の受信工程は、
前記送信工程によって前記移行先データが送信された結果、前記移行先データと不一致の前記移行元データを前記移行元の計算機から受信することを特徴とする請求項4に記載のデータ移行プログラム。 - 前記比較工程は、
前記移行先データのハッシュ値と前記移行元データのハッシュ値とが一致する場合、さらに、前記移行先の計算機および前記移行元の計算機がアクセス可能なストレージ内の、前記移行先データを記憶する記憶領域のアドレスと、前記移行元データを記憶する記憶領域のアドレスとを比較し、
前記第2の受信工程は、
前記移行先データを記憶する記憶領域のアドレスと不一致のアドレスの記憶領域に記憶されている前記移行元データを前記移行元の計算機から受信することを特徴とする請求項1に記載のデータ移行プログラム。 - 計算機間のデータ移行を行う移行元の計算機に、
移行元のメモリを構成するメモリブロックごとに、当該メモリブロックに記憶されている移行元データのハッシュ値を移行先の計算機に送信する第1の送信工程と、
前記第1の送信工程によって送信された前記移行元データのハッシュ値と、移行先のメモリを構成する各メモリブロックに記憶されている移行先データごとのハッシュ値との比較結果を、前記移行先の計算機から受信する受信工程と、
前記受信工程によって受信された比較結果に基づいて、前記移行先のメモリに対する前記移行元データの複写の要否を判定する判定工程と、
前記判定工程によって複写が必要であると判定された場合、前記移行元データを前記移行先の計算機に送信する第2の送信工程と、
を実行させることを特徴とするデータ移行プログラム。 - 計算機間のデータ移行を行う移行先の計算機に、
移行先のメモリを構成する各メモリブロックに記憶されている移行先データごとのハッシュ値を移行元の計算機に送信する送信工程と、
前記送信工程によって前記移行先データごとのハッシュ値が送信された結果、前記移行先データごとのハッシュ値と不一致のハッシュ値の算出元の移行元データを、前記移行元の計算機から受信する受信工程と、
を実行させることを特徴とするデータ移行プログラム。 - 計算機間のデータ移行を行う移行元の計算機に、
移行先のメモリを構成する各メモリブロックに記憶されている移行先データごとのハッシュ値を移行元の計算機から受信する受信工程と、
移行元のメモリを構成するメモリブロックごとに、当該メモリブロックに記憶されている移行元データのハッシュ値と、前記受信工程によって受信された前記移行先データごとのハッシュ値とを比較する比較工程と、
前記比較工程によって比較された比較結果に基づいて、前記移行先のメモリに対する前記移行元データの複写の要否を判定する判定工程と、
前記判定工程によって複写が必要であると判定された場合、前記移行元データを前記移行先の計算機に送信する送信工程と、
を実行させることを特徴とするデータ移行プログラム。 - 計算機間のデータ移行を行う移行元の計算機に、
移行元のメモリを構成するメモリブロックごとに、当該メモリブロックに記憶されている移行元データの属性情報に基づいて、移行先のメモリに対する前記移行元データの複写の要否を判定する判定工程と、
前記判定工程によって複写が必要であると判定された場合、前記移行元データを移行先の計算機に送信する送信工程と、
を実行させることを特徴とするデータ移行プログラム。 - 前記移行元の計算機に、
前記移行元データの属性情報に基づいて、当該移行元データを記憶する前記メモリブロックが使用されていない空きのメモリブロックか否かを判断する判断工程をさらに実行させ、
前記判定工程は、
前記判断工程によって空きのメモリブロックではないと判断された場合、前記移行元データの複写が必要であると判定することを特徴とする請求項10に記載のデータ移行プログラム。 - 前記判断工程は、
前記移行元データの属性情報に基づいて、前記移行先の計算機がアクセス可能な記憶装置に前記移行元データが記憶されているか否か判断し、
前記判定工程は、
前記判断工程によって前記記憶装置に前記移行元データが記憶されていないと判断された場合、前記移行元データの複写が必要であると判定することを特徴とする請求項11に記載のデータ移行プログラム。 - 前記判断工程は、
前記移行元データの属性情報に基づいて、前記移行元のメモリとは異なる他の記憶領域に前記移行元データがバックアップされているか否か判断し、
前記判定工程は、
前記判断工程によってバックアップされていないと判断された場合、前記移行元データの複写が必要であると判定することを特徴とする請求項12に記載のデータ移行プログラム。 - 前記判断工程は、
前記移行元データの属性情報に基づいて、当該移行元データを記憶する前記メモリブロックが初期化されているか否かを判断し、
前記判定工程は、
前記判断工程によって初期化されていないと判断された場合、前記移行元データの複写が必要であると判定することを特徴とする請求項13に記載のデータ移行プログラム。 - 計算機間のデータ移行を行う移行先の計算機において、
移行元のメモリを構成するいずれかのメモリブロックに記憶されている移行元データのハッシュ値を移行元の計算機から受信する第1の受信部と、
移行先のメモリを構成するメモリブロックごとに、当該メモリブロックに記憶されている移行先データのハッシュ値と、前記第1の受信部によって受信された前記移行元データのハッシュ値とを比較する比較部と、
前記比較部によって比較された比較結果を前記移行元の計算機に送信する送信部と、
前記送信部によって前記比較結果が送信された結果、前記移行先データのハッシュ値と不一致となったハッシュ値の算出元の前記移行元データを前記移行元の計算機から受信する第2の受信部と、
を備えることを特徴とする計算機。 - 計算機間のデータ移行を行う移行元の計算機において、
移行元のメモリを構成するメモリブロックごとに、当該メモリブロックに記憶されている移行元データのハッシュ値を移行先の計算機に送信する第1の送信部と、
前記第1の送信部によって送信された前記移行元データのハッシュ値と、移行先のメモリを構成する各メモリブロックに記憶されている移行先データごとのハッシュ値との比較結果を、前記移行先の計算機から受信する受信部と、
前記受信部によって受信された比較結果に基づいて、前記移行先のメモリに対する前記移行元データの複写の要否を判定する判定部と、
前記判定部によって複写が必要であると判定された場合、前記移行元データを前記移行先の計算機に送信する第2の送信部と、
を備えることを特徴とする計算機。 - 計算機間のデータ移行を行う移行先の計算機において、
移行先のメモリを構成する各メモリブロックに記憶されている移行先データごとのハッシュ値を移行元の計算機に送信する送信部と、
前記送信部によって前記移行先データごとのハッシュ値が送信された結果、前記移行先データごとのハッシュ値と不一致のハッシュ値の算出元の移行元データを、前記移行元の計算機から受信する受信部と、
を備えることを特徴とする計算機。 - 計算機間のデータ移行を行う移行元の計算機において、
移行先のメモリを構成する各メモリブロックに記憶されている移行先データごとのハッシュ値を移行元の計算機から受信する受信部と、
移行元のメモリを構成するメモリブロックごとに、当該メモリブロックに記憶されている移行元データのハッシュ値と、前記受信部によって受信された前記移行先データごとのハッシュ値とを比較する比較部と、
前記比較部によって比較された比較結果に基づいて、前記移行先のメモリに対する前記移行元データの複写の要否を判定する判定部と、
前記判定部によって複写が必要であると判定された場合、前記移行元データを前記移行先の計算機に送信する送信部と、
を備えることを特徴とする計算機。 - 計算機間のデータ移行を行う移行元の計算機において、
移行元のメモリを構成するメモリブロックごとに、当該メモリブロックに記憶されている移行元データの属性情報に基づいて、移行先のメモリに対する前記移行元データの複写の要否を判定する判定部と、
前記判定部によって複写が必要であると判定された場合、前記移行元データを移行先の計算機に送信する送信部と、
を備えることを特徴とする計算機。 - 計算機間のデータ移行を行う移行先の計算機が、
移行元のメモリを構成するいずれかのメモリブロックに記憶されている移行元データのハッシュ値を移行元の計算機から受信する第1の受信工程と、
移行先のメモリを構成するメモリブロックごとに、当該メモリブロックに記憶されている移行先データのハッシュ値と、前記第1の受信工程によって受信された前記移行元データのハッシュ値とを比較する比較工程と、
前記比較工程によって比較された比較結果を前記移行元の計算機に送信する送信工程と、
前記送信工程によって前記比較結果が送信された結果、前記移行先データのハッシュ値と不一致となったハッシュ値の算出元の前記移行元データを前記移行元の計算機から受信する第2の受信工程と、
を実行することを特徴とするデータ移行方法。 - 計算機間のデータ移行を行う移行元の計算機が、
移行元のメモリを構成するメモリブロックごとに、当該メモリブロックに記憶されている移行元データのハッシュ値を移行先の計算機に送信する第1の送信工程と、
前記第1の送信工程によって送信された前記移行元データのハッシュ値と、移行先のメモリを構成する各メモリブロックに記憶されている移行先データごとのハッシュ値との比較結果を、前記移行先の計算機から受信する受信工程と、
前記受信工程によって受信された比較結果に基づいて、前記移行先のメモリに対する前記移行元データの複写の要否を判定する判定工程と、
前記判定工程によって複写が必要であると判定された場合、前記移行元データを前記移行先の計算機に送信する第2の送信工程と、
を実行することを特徴とするデータ移行方法。 - 計算機間のデータ移行を行う移行先の計算機が、
移行先のメモリを構成する各メモリブロックに記憶されている移行先データごとのハッシュ値を移行元の計算機に送信する送信工程と、
前記送信工程によって前記移行先データごとのハッシュ値が送信された結果、前記移行先データごとのハッシュ値と不一致のハッシュ値の算出元の移行元データを、前記移行元の計算機から受信する受信工程と、
を実行することを特徴とするデータ移行方法。 - 計算機間のデータ移行を行う移行元の計算機が、
移行先のメモリを構成する各メモリブロックに記憶されている移行先データごとのハッシュ値を移行元の計算機から受信する受信工程と、
移行元のメモリを構成するメモリブロックごとに、当該メモリブロックに記憶されている移行元データのハッシュ値と、前記受信工程によって受信された前記移行先データごとのハッシュ値とを比較する比較工程と、
前記比較工程によって比較された比較結果に基づいて、前記移行先のメモリに対する前記移行元データの複写の要否を判定する判定工程と、
前記判定工程によって複写が必要であると判定された場合、前記移行元データを前記移行先の計算機に送信する送信工程と、
を実行することを特徴とするデータ移行方法。 - 計算機間のデータ移行を行う移行元の計算機が、
移行元のメモリを構成するメモリブロックごとに、当該メモリブロックに記憶されている移行元データの属性情報に基づいて、移行先のメモリに対する前記移行元データの複写の要否を判定する判定工程と、
前記判定工程によって複写が必要であると判定された場合、前記移行元データを移行先の計算機に送信する送信工程と、
を実行することを特徴とするデータ移行方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP10860696.3A EP2653970A4 (en) | 2010-12-15 | 2010-12-15 | DATA TRANSFER PROGRAM, COMPUTER, AND DATA TRANSFER METHOD |
JP2012548578A JP5534031B2 (ja) | 2010-12-15 | 2010-12-15 | データ移行プログラム、計算機およびデータ移行方法 |
PCT/JP2010/072583 WO2012081099A1 (ja) | 2010-12-15 | 2010-12-15 | データ移行プログラム、計算機およびデータ移行方法 |
US13/917,082 US20130275708A1 (en) | 2010-12-15 | 2013-06-13 | Computer product, computing device, and data migration method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/072583 WO2012081099A1 (ja) | 2010-12-15 | 2010-12-15 | データ移行プログラム、計算機およびデータ移行方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/917,082 Continuation US20130275708A1 (en) | 2010-12-15 | 2013-06-13 | Computer product, computing device, and data migration method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012081099A1 true WO2012081099A1 (ja) | 2012-06-21 |
Family
ID=46244226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/072583 WO2012081099A1 (ja) | 2010-12-15 | 2010-12-15 | データ移行プログラム、計算機およびデータ移行方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20130275708A1 (ja) |
EP (1) | EP2653970A4 (ja) |
JP (1) | JP5534031B2 (ja) |
WO (1) | WO2012081099A1 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103412929A (zh) * | 2013-08-16 | 2013-11-27 | 蓝盾信息安全技术股份有限公司 | 一种海量数据的存储方法 |
JP2014178939A (ja) * | 2013-03-15 | 2014-09-25 | Nec Corp | 重複データ管理装置、データ転送制御装置、データ転送制御システム、重複データ管理方法、データ転送制御方法、および、コンピュータ・プログラム |
JP2014182859A (ja) * | 2013-03-21 | 2014-09-29 | Hitachi Automotive Systems Ltd | 電子制御装置 |
JP2016143221A (ja) * | 2015-02-02 | 2016-08-08 | 富士通株式会社 | ストレージ装置,制御プログラム,ストレージシステム及びデータ転送方法 |
JP2017535196A (ja) * | 2014-11-03 | 2017-11-24 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | 仮想ネットワーク機能インスタンスをマイグレーションさせるための方法、装置およびシステム |
JP2019152945A (ja) * | 2018-03-01 | 2019-09-12 | Necソリューションイノベータ株式会社 | ストレージ装置、データ移行方法、プログラム |
JP2021026298A (ja) * | 2019-07-31 | 2021-02-22 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5804189B2 (ja) * | 2012-03-19 | 2015-11-04 | 富士通株式会社 | 情報処理システム,情報処理方法,プログラム |
US9459902B2 (en) * | 2013-08-16 | 2016-10-04 | Red Hat Israel, Ltd. | Memory duplication by destination host in virtual machine live migration |
US9454400B2 (en) * | 2013-08-16 | 2016-09-27 | Red Hat Israel, Ltd. | Memory duplication by origin host in virtual machine live migration |
US9712610B2 (en) * | 2013-10-01 | 2017-07-18 | Vmware, Inc. | System and method for increasing physical memory page sharing by workloads |
CN103559143A (zh) * | 2013-11-08 | 2014-02-05 | 华为技术有限公司 | 数据拷贝管理装置及其数据拷贝方法 |
US9811367B2 (en) | 2014-11-13 | 2017-11-07 | Nsp Usa, Inc. | Method and apparatus for combined hardware/software VM migration |
JP6558059B2 (ja) * | 2015-05-01 | 2019-08-14 | 富士通株式会社 | ストレージ制御装置、ストレージ制御プログラム、およびストレージシステム |
US9619270B2 (en) | 2015-06-27 | 2017-04-11 | Vmware, Inc. | Remote-direct-memory-access-based virtual machine live migration |
US10817321B2 (en) * | 2017-03-21 | 2020-10-27 | International Business Machines Corporation | Hardware independent interface for cognitive data migration |
US11526470B2 (en) * | 2018-01-03 | 2022-12-13 | Salesforce, Inc. | Data validation for data record migrations |
US20190250946A1 (en) * | 2018-02-13 | 2019-08-15 | International Business Machines Corporation | Migrating a software container taking into account resource constraints |
US11422851B2 (en) * | 2019-04-22 | 2022-08-23 | EMC IP Holding Company LLC | Cloning running computer systems having logical partitions in a physical computing system enclosure |
US20220318042A1 (en) * | 2021-04-01 | 2022-10-06 | RAMScaler, Inc. | Distributed memory block device storage |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008225546A (ja) | 2007-03-08 | 2008-09-25 | Nec Corp | 仮想装置構成システム、及びその方法 |
JP2008250903A (ja) * | 2007-03-30 | 2008-10-16 | Toshiba Corp | ファイル更新装置、プログラム及び方法 |
JP2010033206A (ja) | 2008-07-28 | 2010-02-12 | Fujitsu Ltd | 仮想マシンモニタ装置およびプログラム,ならびに仮想マシン間メモリ共有管理方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU5386796A (en) * | 1995-04-11 | 1996-10-30 | Kinetech, Inc. | Identifying data in a data processing system |
US7165088B2 (en) * | 2001-01-24 | 2007-01-16 | Microsoft Corporation | System and method for incremental and reversible data migration and feature deployment |
US6922761B2 (en) * | 2002-03-25 | 2005-07-26 | Emc Corporation | Method and system for migrating data |
JP3991760B2 (ja) * | 2002-04-26 | 2007-10-17 | 株式会社日立製作所 | データベース管理方法および装置およびその処理プログラム |
US7366859B2 (en) * | 2005-10-06 | 2008-04-29 | Acronis Inc. | Fast incremental backup method and system |
US8055902B2 (en) * | 2007-01-12 | 2011-11-08 | International Business Machines Corporation | Method, system, and computer program product for data upload in a computing system |
US7925850B1 (en) * | 2007-02-16 | 2011-04-12 | Vmware, Inc. | Page signature disambiguation for increasing the efficiency of virtual machine migration in shared-page virtualized computer systems |
EP3361371A1 (en) * | 2008-11-07 | 2018-08-15 | Dell International L.L.C. | Thin import for a data storage system |
JP5160483B2 (ja) * | 2009-03-11 | 2013-03-13 | 株式会社日立ソリューションズ | ストレージシステム及びデータマイグレーション対応検索システム |
US8386731B2 (en) * | 2009-09-14 | 2013-02-26 | Vmware, Inc. | Method and system for optimizing live migration of persistent data of virtual machine using disk I/O heuristics |
US8327060B2 (en) * | 2009-11-30 | 2012-12-04 | Red Hat Israel, Ltd. | Mechanism for live migration of virtual machines with memory optimizations |
US20120005557A1 (en) * | 2010-06-30 | 2012-01-05 | Eitan Mardiks | Virtual copy and virtual write of data in a storage device |
US8826272B2 (en) * | 2010-11-29 | 2014-09-02 | International Business Machines Corporation | Planning a reliable migration in a limited stability virtualized environment |
-
2010
- 2010-12-15 WO PCT/JP2010/072583 patent/WO2012081099A1/ja active Application Filing
- 2010-12-15 EP EP10860696.3A patent/EP2653970A4/en not_active Withdrawn
- 2010-12-15 JP JP2012548578A patent/JP5534031B2/ja not_active Expired - Fee Related
-
2013
- 2013-06-13 US US13/917,082 patent/US20130275708A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008225546A (ja) | 2007-03-08 | 2008-09-25 | Nec Corp | 仮想装置構成システム、及びその方法 |
JP2008250903A (ja) * | 2007-03-30 | 2008-10-16 | Toshiba Corp | ファイル更新装置、プログラム及び方法 |
JP2010033206A (ja) | 2008-07-28 | 2010-02-12 | Fujitsu Ltd | 仮想マシンモニタ装置およびプログラム,ならびに仮想マシン間メモリ共有管理方法 |
Non-Patent Citations (2)
Title |
---|
KUNIO MIYAMOTO, XEN TETTEI NYUMON, 19 December 2007 (2007-12-19), pages 271 * |
RYOZO KIYOHARA: "Reprogramming Method for Mobile Devices", IPSJ SIG NOTES HEISEI 21 NENDO (6) KUMIKOMI SYSTEM (EMB-16), 15 April 2010 (2010-04-15), pages 1 - 8 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014178939A (ja) * | 2013-03-15 | 2014-09-25 | Nec Corp | 重複データ管理装置、データ転送制御装置、データ転送制御システム、重複データ管理方法、データ転送制御方法、および、コンピュータ・プログラム |
JP2014182859A (ja) * | 2013-03-21 | 2014-09-29 | Hitachi Automotive Systems Ltd | 電子制御装置 |
US9996296B2 (en) | 2013-03-21 | 2018-06-12 | Hitachi Automotive Systems, Ltd. | Electronic control unit and method for rewriting data |
CN103412929A (zh) * | 2013-08-16 | 2013-11-27 | 蓝盾信息安全技术股份有限公司 | 一种海量数据的存储方法 |
JP2017535196A (ja) * | 2014-11-03 | 2017-11-24 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | 仮想ネットワーク機能インスタンスをマイグレーションさせるための方法、装置およびシステム |
US10455412B2 (en) | 2014-11-03 | 2019-10-22 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for migrating virtual network function instance |
JP2016143221A (ja) * | 2015-02-02 | 2016-08-08 | 富士通株式会社 | ストレージ装置,制御プログラム,ストレージシステム及びデータ転送方法 |
JP2019152945A (ja) * | 2018-03-01 | 2019-09-12 | Necソリューションイノベータ株式会社 | ストレージ装置、データ移行方法、プログラム |
JP2021026298A (ja) * | 2019-07-31 | 2021-02-22 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置 |
US11327741B2 (en) | 2019-07-31 | 2022-05-10 | Sony Interactive Entertainment Inc. | Information processing apparatus |
Also Published As
Publication number | Publication date |
---|---|
US20130275708A1 (en) | 2013-10-17 |
JP5534031B2 (ja) | 2014-06-25 |
EP2653970A1 (en) | 2013-10-23 |
JPWO2012081099A1 (ja) | 2014-05-22 |
EP2653970A4 (en) | 2014-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5534031B2 (ja) | データ移行プログラム、計算機およびデータ移行方法 | |
US10970104B2 (en) | Resource access method applied to computer and computer | |
US9201875B2 (en) | Partition file system for virtual machine memory management | |
US9063793B2 (en) | Virtual server and virtual machine management method for supporting zero client by providing host interfaces from classified resource pools through emulation or direct connection modes | |
US20090216986A1 (en) | Apparatus and method for managing logical volume in distributed storage systems | |
US7792918B2 (en) | Migration of a guest from one server to another | |
WO2011033582A1 (en) | Storage system for eliminating duplicated data | |
JP2018518733A (ja) | ファイル操作方法及び装置 | |
CN104965757A (zh) | 虚拟机热迁移的方法、虚拟机迁移管理装置及系统 | |
US10552089B2 (en) | Data processing for managing local and distributed storage systems by scheduling information corresponding to data write requests | |
US9529618B2 (en) | Migrating processes between source host and destination host using a shared virtual file system | |
WO2021098267A1 (zh) | 一种磁盘处理的方法、系统、设备及可读存储介质 | |
WO2015114745A1 (ja) | 計算機及び計算機のi/o制御方法 | |
US20170054720A1 (en) | Managing Data Storage in Distributed Virtual Environment | |
US20150006818A1 (en) | Data access method and computer-readable storage medium storing computer program | |
JP2022541261A (ja) | リソース割振り方法、記憶デバイス、および記憶システム | |
CN112328365A (zh) | 一种虚拟机迁移方法、装置、设备及存储介质 | |
US11157456B2 (en) | Replication of data in a distributed file system using an arbiter | |
WO2019071431A1 (zh) | 处理i/o请求的方法、设备及主机 | |
KR101601877B1 (ko) | 분산 파일시스템에서 클라이언트가 데이터 저장에 참여하는 장치 및 방법 | |
CN107577733B (zh) | 一种数据复制的加速方法及系统 | |
US20200201691A1 (en) | Enhanced message control banks | |
US11347532B2 (en) | Hot-swapping storage pool backend functional modules | |
CN106293994A (zh) | 网络文件系统中的虚拟机克隆方法和网络文件系统 | |
JPWO2018173300A1 (ja) | I/o制御方法およびi/o制御システム |
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: 10860696 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2012548578 Country of ref document: JP Kind code of ref document: A |
|
REEP | Request for entry into the european phase |
Ref document number: 2010860696 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2010860696 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |