WO2011137780A1 - 虚拟存储迁移方法、系统和虚拟机监控器 - Google Patents

虚拟存储迁移方法、系统和虚拟机监控器 Download PDF

Info

Publication number
WO2011137780A1
WO2011137780A1 PCT/CN2011/074189 CN2011074189W WO2011137780A1 WO 2011137780 A1 WO2011137780 A1 WO 2011137780A1 CN 2011074189 W CN2011074189 W CN 2011074189W WO 2011137780 A1 WO2011137780 A1 WO 2011137780A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual machine
storage device
data
migrated
data block
Prior art date
Application number
PCT/CN2011/074189
Other languages
English (en)
French (fr)
Inventor
王志坤
杨晓伟
王�锋
许建辉
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to JP2012545079A priority Critical patent/JP5459811B2/ja
Priority to EP11777199.8A priority patent/EP2437167B1/en
Priority to KR1020127012579A priority patent/KR101403417B1/ko
Publication of WO2011137780A1 publication Critical patent/WO2011137780A1/zh
Priority to US13/340,117 priority patent/US9411620B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Definitions

  • Virtualization technology is a decoupling method that separates the underlying hardware devices from the upper operating system and applications. It is one of the underlying important supporting technologies of the current popular cloud computing platform, which can greatly improve the physical equipment. Resource use efficiency.
  • the virtual machine Virtual Machine; VM
  • VM Virtual Machine
  • a virtual disk Virtual Disk; VD
  • VD Virtual Disk
  • the corresponding physical storage space can be either the local storage system of the host or the network in the data center. Storage System.
  • Virtual storage migration can include both offline migration and online migration.
  • the virtual storage online migration method can be performed without interrupting the virtual machine front-end application.
  • the virtual storage online migration method in the prior art mainly includes a memory online migration pre-copy method and an external presence line migration copy method.
  • the first method is to create a virtual disk snapshot, As a read-only parent disk and a subdisk that records the changed data, after the data copy of the parent disk is completed, the virtual machine needs to be suspended, and the subdisk that records the changed data is merged with the parent disk in the target storage device.
  • the second method uses the combination of pre-copy and loop iterative copy, first sends all the external data to the destination host, records and marks the external update block in the process of sending, and sends the external update block to the destination host in a loop. And repeating the above cyclic transmission step until the set condition is reached, then suspending the virtual machine, and performing copy synchronization on the remaining external update blocks.
  • the first method in the prior art needs to suspend the virtual machine when merging the subdisk of the change data and the parent disk in the target storage device, and when the combined data volume is large or the network state is poor, the virtual machine Suspension may cause business interruption or even error;
  • the second method in the prior art can reduce the downtime of the virtual machine to a certain extent, but when the virtual machine writes more requests during the migration process, more data will be triggered.
  • the embodiment of the present invention provides a virtual storage migration method, a system, and a virtual machine monitor, which are used to solve the problem that the virtual machine access performance is reduced due to service interruption or even error caused by virtual machine shutdown in the prior art and excessive storage migration time.
  • the defect is to process the I/O access request of the virtual machine during the migration process of the virtual machine disk.
  • the entire migration process does not need to suspend the virtual machine, which greatly shortens the storage migration time.
  • the embodiment of the invention provides a virtual storage migration method, including:
  • the data migration is started, and the data blocks in the virtual machine disk to be migrated are copied from the source storage device to the target storage device.
  • the corresponding data is directly read from the source storage device; when the virtual machine front end I/O write request is received, Determining whether the migrated data block corresponding to the virtual machine front-end I/O write request is being migrated, and if so, writing, otherwise performing a write operation corresponding to the virtual machine front-end I/O write request;
  • the data migration is stopped, and the virtual machine disk in the virtual machine manager is switched from the source storage device to the Target storage device.
  • the embodiment of the invention further provides a virtual machine monitor, including:
  • a migration module configured to start data migration, and copy the data block in the virtual machine disk to be migrated from the source storage device to the target storage device;
  • the request processing module reads the corresponding data directly from the source storage device when receiving the virtual machine front end input/output I/O read request during the data migration process; when receiving the virtual machine front end I/O When the request is written, it is determined whether the migrated data block corresponding to the virtual machine front end I/O write request is in the write operation corresponding to the write request, otherwise the write operation corresponding to the virtual machine front end I/O write request is executed; After all the data blocks in the virtual machine disk to be migrated are copied to the target storage device, the data migration is stopped, and the virtual machine disk in the virtual machine manager is switched from the source storage device to the storage device. The target storage device.
  • An embodiment of the present invention provides a virtual storage migration system, including at least one virtual machine, a source storage device, a target storage device, and the foregoing virtual machine monitor.
  • the data migration thread is started by the virtual machine monitor, and the data block in the virtual machine disk to be migrated is copied from the source storage device to the target storage device;
  • the received virtual machine front-end I/O access request is processed according to the current data migration situation, that is, when the read request is received, the corresponding data is directly read, and when the write request is received, First, determine whether the migrated data block corresponding to the write request is being migrated. If yes, wait for the migration to complete before performing the write operation, otherwise directly perform the write operation; and migrate the virtual machine disk from the source storage device to the target storage device.
  • the virtual machine storage is switched from the source storage device to the target storage device, and the whole process is transparent to the upper operating system and applications of the virtual machine. And because the virtual machine front-end I/O access request is processed at the same time during the data migration process, there is no need for additional sub-disks to record the changed data in each request, and there is no need to suspend the virtual machine to update the changed data separately. Therefore, the embodiment avoids the defect of service interruption or even error due to virtual machine shutdown.
  • Embodiment 1 is a flowchart of Embodiment 1 of a virtual storage migration method according to the present invention
  • FIG. 2 is a schematic diagram of a network architecture in a virtual storage migration method according to Embodiment 1 of the present invention
  • FIG. 3 is a flow chart of a virtual machine data migration process in Embodiment 2 of the virtual storage migration method according to the present invention
  • FIG. 4 is a flow chart of a virtual machine I/O processing procedure in Embodiment 2 of the virtual storage migration method of the present invention.
  • FIG. 5 is a schematic diagram of a data migration window in a second embodiment of a virtual storage migration method according to the present invention
  • FIG. 6 is a schematic structural diagram of Embodiment 1 of a virtual machine monitor according to the present invention.
  • FIG. 7 is a schematic structural diagram of Embodiment 2 of a virtual machine monitor according to the present invention. detailed description
  • FIG. 1 is a flowchart of a virtual storage migration method according to Embodiment 1 of the present invention. As shown in FIG. 1, the embodiment provides a virtual storage migration method, which may include the following steps:
  • Step 101 The virtual machine monitor initiates data migration, and copies the data block in the virtual machine disk to be migrated from the source storage device to the target storage device.
  • VMM virtual machine monitor
  • OS operating system
  • the management layer between the hardware and the hardware can directly manage the underlying hardware resources, including CPU, memory, disk, etc., create virtual machines independent of the underlying hardware for use by upper-layer OS and applications, and monitor all VM's input/output (Input/Output; hereinafter referred to as: I/O) access request.
  • I/O input/output
  • multiple virtual machines can be included in the network, and one virtual machine (that is, the first virtual machine on the leftmost side in the figure) belongs to a virtual machine in the privileged domain or the drive domain (Privilege /Driver Domain). It assists the VMM in completing the I/O function.
  • the operating systems and applications in other virtual machines need to be driven by the native devices in the virtual machine to complete access to the underlying storage system. That is, other virtual machines can forward their I/O access requests and the like to virtual machines in the privileged domain or the drive domain, and the virtual machine interacts with the virtual machine monitor to implement I/O access requests to the physical disk DISK. Access.
  • the virtual machine monitor initiates a data migration process to implement virtual storage migration.
  • the virtual machine monitor performs virtual machine execution storage on the data blocks in the migrated virtual machine disk.
  • the migration process can be completed by starting the storage migration thread, which is similar to the following in the following embodiments, and will not be described again.
  • Step 102 During the data migration process, when receiving the virtual machine front-end I/O read request, the virtual The machine monitor directly reads the corresponding data from the source storage device; when receiving the virtual machine front end
  • the virtual machine monitor determines whether the migrated data block corresponding to the virtual machine front end I/O write request is being migrated, and if so, waits for the migration of the migrated data block to complete before executing the virtual machine.
  • the write operation corresponding to the front end I/O write request otherwise the write operation corresponding to the virtual machine front end I/O write request is executed.
  • the virtual machine monitor During the data migration process initiated by the virtual machine monitor, the virtual machine monitor also receives and processes the virtual machine front-end I/O access request sent by the virtual machine, and receives the virtual virtual data according to the current data migration situation.
  • the front-end I/O access request is processed, that is, the I/O request redirection process is performed during the data migration process.
  • the I/O access request may be first queued to the request queue along with the corresponding request in the data migration process, and the virtual machine monitor performs the data migration process.
  • different requests are obtained from the request queue in real time, and corresponding processing is performed, that is, different processing priorities can be set for different I/O requests in the queue according to actual conditions.
  • the first method of the prior art requires additional sub-disk space to record the data changed during the migration process, and suspends the virtual machine after the data migration to perform corresponding processing on the changed data, since this embodiment can be implemented in
  • the data migration process simultaneously processes the virtual machine front-end I/O access request, that is, the data migration process and the processing process of the virtual machine front-end I/O access request are independent, and the two do not affect each other, so that the data
  • the entire process of migration is transparent to virtual machines and their applications.
  • the virtual machine monitor receives the virtual machine front-end I/O access request sent by the virtual machine, and when the virtual machine front-end I/O access request is a read request, the virtual machine monitor It is not necessary to determine whether the data block corresponding to the read request has been migrated or is being migrated, and the data corresponding to the read request is directly read from the source storage device according to the read request, and the process ends. At this time, the execution of the read request is synchronized with the data migration process, and the two do not affect each other.
  • the virtual machine monitor needs to continue to determine whether the migrated data block corresponding to the write request is being migrated, that is, whether the migrated data block in the virtual machine disk to be migrated to be written by the write request is being migrate.
  • the migration data block corresponding to the write request received by the virtual machine monitor is positive.
  • the write operation corresponding to the write request is not performed first, but the migration of the migrated data block is waited for, and after the migration of the migrated data block is completed, the corresponding write operation is performed.
  • the write operation corresponding to the write request is directly executed, and no waiting process is required.
  • Step 103 After all the data blocks in the virtual machine disk to be migrated are copied to the target storage device, the virtual machine monitor stops data migration, and the virtual machine disk in the virtual machine manager is used by the source. The end storage device switches to the target end storage device.
  • the virtual machine monitor stops the data migration process initiated before, and simultaneously the virtual machine The virtual machine disk in the manager is switched to switch from the previously set source storage device to the target storage device.
  • the embodiment of the present invention provides a virtual storage migration method, in which a data migration process is started by a virtual machine monitor, and a data block in a virtual machine disk to be migrated is copied from a source storage device to a target storage device.
  • the received virtual machine front-end I/O access request is processed correspondingly, that is, when the read request is received, the corresponding data is directly read, and when the write request is received, the write request is first determined.
  • the embodiment avoids the defect of service interruption or even error due to virtual machine shutdown.
  • FIG. 3 is a flow of a virtual machine data migration process in Embodiment 2 of the virtual storage migration method of the present invention As shown in FIG. 3, this embodiment provides a virtual storage migration method, which may specifically include the following steps:
  • Step 301 The virtual machine monitor allocates a storage space in the target storage device, and copies the virtual machine configuration file to the target storage device.
  • the source storage device and the target storage device in this embodiment are set according to the direction of data migration.
  • the source storage device is the location where the data is originally stored, and the target storage device is the location stored after the device is migrated.
  • the data migration process is to migrate data from the source storage device to the target storage device.
  • the storage device located at the bottom left of the figure is the source storage device, and the storage device at the bottom right of the figure is the target storage device.
  • the virtual machine monitor allocates storage space in the target storage device to store the data blocks and virtual machine configuration files in the virtual machine disk to be migrated stored in the source storage device.
  • the virtual machine monitor is first connected to the target storage device to establish a data channel between the source storage device and the target storage device. Then, the virtual machine monitor copies the virtual machine configuration file in the source storage device to the target storage device, so that a virtual machine configuration file is saved in each of the source storage device and the target storage device.
  • Step 302 The virtual machine monitor sets a data migration flag to start the data migration process.
  • the virtual machine monitor After completing the preliminary preparation of the data migration process, the virtual machine monitor sets the data migration flag in itself, and simultaneously starts the data migration process, and starts to migrate the data blocks in the migrated virtual disk to be taken from the source storage device. Copy to the target storage device.
  • the data migration identifier can be used to identify that the data migration process is currently in the running state.
  • the virtual machine monitor starts the data migration process, which may be specifically as follows: When the virtual machine is idle, the virtual machine monitor starts the data migration process.
  • this embodiment uses a low-priority data migration process, that is, the virtual machine monitor preferentially serves the virtual machine front end.
  • the front end I/O access request of the application may include an I/O read request and an I/O write request.
  • the virtual machine monitor starts the data migration process, that is, the virtual machine monitor uses idle I/O bandwidth.
  • the virtual machine stores a copy of the data.
  • Step 303 The virtual machine monitor initializes the bitmap of the data block in the migrated virtual machine disk with the size of the block cluster.
  • this embodiment assists the migration process in copying data by setting a bitmap (Bitmap) table of data blocks in the virtual machine disk to be migrated.
  • bitmap Bitmap
  • the bitmap of the data block is initialized first, and the virtual machine monitor may initialize the bitmap of the data block in the virtual machine disk by using a Chunk.
  • the size of the block cluster is set according to the size of the virtual machine disk to be migrated.
  • a bit chart is used to initialize a bit chart, wherein each bit in the bit chart corresponds to a Chunk block to be migrated, and the size of the Chunk block can be based on the virtual machine disk to be migrated before the data migration starts.
  • the size is set, and it is beneficial to improve the read and write performance of the disk by setting a larger Chunk block.
  • the size of the VM disk to be migrated is 100 GB. If the size of each Chunk block used in the migration process is set to 1 MB, the size of the corresponding bitmap is only 12.5 KB. In this embodiment, the bit map is used to assist the data migration process, and the bit chart consumes very little memory space.
  • Step 304 The virtual machine monitor sequentially selects a data block corresponding to the unset block cluster from the bit chart for migration.
  • the embodiment of the present invention sequentially selects a data block corresponding to an unset block cluster from the bit chart for migration, where the unset block cluster is used to identify that the data block has not been completed.
  • the migrated block cluster after each data block completes the migration, the block cluster corresponding to the data block in the bit chart is set to identify that the data block corresponding to the block cluster has been migrated, therefore, the bit chart can be It can be seen that the data blocks corresponding to the block clusters have been migrated, and the data blocks corresponding to the block clusters have not yet been migrated, and the unset block clusters are sequentially selected from the bit chart each time.
  • the above steps may be repeatedly performed until all the clusters in the bitmap are set, indicating that the data blocks in the virtual machine disk to be migrated have been migrated.
  • step 305 the virtual machine monitor updates the bitmap. After the migration of a migrated data block is completed, the virtual machine monitor updates the bit chart, and specifically sets the block cluster corresponding to the migrated data block in the bit chart, indicating that the data block corresponding to the block cluster has been migrated.
  • Step 306 the virtual machine monitor determines whether the data migration process has been completed, and if yes, performs step 307, otherwise returns to step 304.
  • step 307 After the virtual machine updates the alignment chart, it is determined whether the entire data migration process has been completed, and may be determined according to the bit chart, and it is determined whether the block cluster corresponding to each data block in the bit chart has been set, and if so, If all the data blocks in the VM disk to be migrated have been copied to the target storage device, go to step 307. If the block cluster corresponding to the data block is not set, the process returns to step 304, and the unset data blocks are sequentially migrated until all the data blocks in the virtual machine disk to be migrated are Copy to the target storage device.
  • Step 307 The virtual machine monitor stops the data migration process and clears the data migration flag.
  • the virtual machine monitor stops the previously started data migration process and clears the data migration flag, indicating that the virtual machine is not currently in the virtual machine.
  • the data migration status is used by the other devices to access the virtual machine or perform other operations.
  • the data migration flag can be used to learn that the virtual machine is not currently in the data migration state.
  • Step 308 The virtual machine monitor switches the virtual machine disk in the virtual machine manager from the source storage device to the target storage device, and deletes the virtual machine disk in the source storage device. Virtual machine disk image.
  • the virtual machine monitor can directly switch the virtual machine disk, modify the source storage device to the target storage device, and delete the virtual machine disk in the source storage device.
  • the virtual machine disk image after which all read and write requests from the virtual machine will be sent to the target storage device.
  • FIG. 4 is a flow of a virtual machine I/O processing process in Embodiment 2 of a virtual storage migration method according to the present invention.
  • the steps of the virtual machine data migration process in this embodiment are separately described in FIG. 3, and FIG. 4 will specifically explain the steps of the virtual machine I/O processing process in this embodiment.
  • the virtual machine storage migration method provided in this embodiment may further include:
  • Step 401 During the data migration process, the virtual machine monitor receives the virtual machine front end I/O access request sent by the virtual machine.
  • the data begins to migrate.
  • the virtual machine monitor receives the virtual machine front-end I/O access request sent by the virtual machine.
  • the virtual machine front-end I/O access request may carry the data block information that the request will access. For example, when the front-end I/O access request is a read request, the data block information includes the location of the data block to be read from the virtual machine disk.
  • the identification information, or the front-end I/O access request is a write request
  • the data block information includes the location or identification information of the data block that the write request is to be written into the virtual machine disk
  • the virtual machine front-end I/O access request may also be Carrying a new write request data block to be written by the write request to write the new write request data block into the corresponding data block.
  • Step 402 The virtual machine monitor determines whether the received virtual machine front end I/O access request is a read request. If yes, step 403 is performed; otherwise, step 404 is performed.
  • the virtual machine monitor first determines whether the virtual machine front end I/O access request is a read request, and performs subsequent different steps according to different request types. If the front end access request received by the virtual machine monitor is a read request, step 403 is executed to directly read the corresponding data from the source storage device, and the process ends; if the front end access request received by the virtual machine monitor is not If the request is read, and the request is to be written, step 404 is performed to continue to judge the information corresponding to the write request.
  • Step 403 The virtual machine monitor directly reads corresponding data from the source storage device.
  • the virtual machine front-end I/O access request received by the virtual machine monitor is a read request
  • the data in the virtual machine disk is not modified, and the data is migrated.
  • the source storage device always saves all the data in the virtual machine disk to be migrated. Therefore, after receiving the read request sent by the virtual machine, the virtual machine monitor does not need to judge the read request. Whether the corresponding data block has been migrated or is being migrated, and the data corresponding to the read request is directly read from the source storage device according to the read request, and the process ends. At this time, the execution of the read request is synchronized with the data migration process, and the two do not affect each other.
  • Step 404 The virtual machine monitor determines whether the migrated data block corresponding to the write request is being migrated. If yes, step 405 is performed; otherwise, step 406 is performed.
  • the virtual machine monitor When the access request received by the virtual machine monitor is a write request, since the execution of the write request changes the data block in the corresponding virtual machine disk to be migrated, the virtual machine monitor needs to continue to determine the migration corresponding to the write request. Whether the data block is being migrated, that is, whether the migrated data block in the virtual machine disk to be migrated to be written by the write request is being migrated. In this embodiment, after receiving the write request, the virtual machine monitor first performs alignment processing on the new write request data block carried in the write request, aligns it to each migrated data block in the bit chart, and obtains the alignment process. The write request specifically corresponds to the migrated data block.
  • the migration data block corresponding to the write request may be one or more.
  • the write request corresponds to multiple migrated data blocks, and the write request is processed separately for each migrated data block, and is carried in the write request.
  • the total write request total data block is larger than the size of the unit migration data block, it may also correspond to multiple migrated data blocks, that is, corresponding to a part of two adjacent migrated data blocks.
  • the subsequent embodiment only describes the write request that is aligned, that is, if the write request corresponds to multiple migrated data blocks, the new write request total data block carried in the write request is subjected to block processing to form a plurality of new write requests.
  • the data block, each new write request data block corresponds to one migrated data block.
  • the migrated data block is a data block in the virtual machine disk to be migrated, where the migrated data block is a data block to which the write request is to be written.
  • FIG. 5 is a schematic diagram of a data migration window in Embodiment 2 of the virtual storage migration method according to the present invention.
  • the block cluster in the bit chart mentioned above is The minimum unit of the secondary migration data may specifically be a migration window as shown in FIG. 5. As shown in FIG.
  • the virtual machine monitor when data migration is performed, sequentially selects an unset data from the bit chart for migration, and then the migration window falls on the block cluster corresponding to the data block, where A block cluster consists of three squares of data, that is, the migration window falls on these three squares.
  • the virtual machine monitor sequentially selects the next unset data from the bitmap to migrate. As shown in Figure 5, the migration window can move three squares to the left, and so on. The window moves continuously to traverse all the squares in the bitmap until all the data blocks in the bitmap are set.
  • the data block can also be locked.
  • the lock of the data block needs to be acquired first, so that the data block is mutually exclusive accessed. For example, when the data migration process first migrates a data block, the data migration process first acquires the lock of the data block, and when the write request also processes the data block, it must wait for the data migration process to migrate the data block. Finished to perform the write operation.
  • the virtual machine monitor After determining that the migrated data block corresponding to the write request is currently being migrated, the virtual machine monitor performs a subsequent step 405, and after waiting for the migrated data block to complete its migration process, performs a write operation corresponding to the write request; When the corresponding migration data block of the request is not currently in the migration state, the virtual machine monitor performs a subsequent step 406, and performs a write operation corresponding to the write request according to the bit chart, that is, the virtual machine monitor further searches the data block by querying the bit chart. The state is judged, and the write operation corresponding to the write request is executed again according to the judgment result.
  • Step 405 The virtual machine monitor waits for the write operation corresponding to the write request after the migration of the migrated data block is completed.
  • the write operation corresponding to the write request is not performed, but the migration of the migrated data block is waited for, and after the migration of the migrated data block is completed, The corresponding write operation is performed, that is, the subsequent step 406 is performed.
  • Step 406 The virtual machine monitor queries, according to the bit chart, whether the corresponding migrated data block has been migrated. If yes, step 407 is performed; otherwise, step 408 is performed.
  • the virtual machine monitor checks the status of the migrated data block according to the previously set bit chart. The query determines whether the data block has completed migration by the set state of the block cluster corresponding to the migrated data block in the bit chart. If the block cluster corresponding to the migrated data block in the bit chart is set, indicating that the data block has been migrated, step 407 is executed, and the virtual machine monitor directly writes the new write request data block carried in the write request to the block.
  • step 408 is performed to further determine the data block.
  • Step 407 The virtual machine monitor directly writes the new write request data block carried in the write request to the source storage device and the target storage device, and returns to perform the data migration process.
  • the migrated data block corresponding to the write request When the migrated data block corresponding to the write request has been migrated, the migrated data block is already stored in both the source storage device and the target storage device, and the virtual machine monitor directly performs the write operation corresponding to the write request.
  • the new write request data block carried in the write request is written to the source storage device and the target storage device.
  • the new write request data block here is the data that the write request will be written to in its corresponding migrated data block, and the data to be updated on the migrated data block. After the execution of the write operation of this step is completed, the data migration process is returned.
  • Step 408 The virtual machine monitor determines whether the size of the new write request data block carried in the write request is smaller than the size of the migrated data block. If yes, step 409 is performed, and if yes, step 410 is performed.
  • the virtual machine monitor When the migration data block corresponding to the write request does not start migration, the virtual machine monitor further compares the size of the new write request data block carried in the write request with the size of the corresponding migrated data block, that is, determines the write corresponding to the write request. Whether the operation is a full block execution. When the size of the new write request data block is smaller than the size of the migrated data block, the virtual machine monitor performs the following step 409, first copying the migrated data block from the source storage device to the target end storage. In the device, when the size of the new write request data block is exactly equal to the size of the migrated data block, the virtual machine monitor performs a subsequent step 410 to directly write the new write request data block carried in the write request to the source. End storage device and The target end storage device.
  • Step 409 The virtual machine monitor copies the migrated data block from the source storage device to the target storage device, and proceeds to step 410.
  • the virtual machine monitor needs to first move the migrated data block from the source storage device. The data is copied to the target storage device, and the two ends of the migrated data block are backed up to complete the migration of the migrated data block, and then the subsequent step 410 is performed.
  • Step 410 The virtual machine monitor writes a new write request data block carried in the write request to the source storage device and the target storage device, and performs a subsequent step 411.
  • the virtual machine monitor When the write operation corresponding to the write request is only for part of the data in the corresponding migrated data block, the virtual machine monitor first copies the migrated data block, and then performs this step, and writes the new write request data block to the source end. In the storage device and the target storage device, the migration of the migration data block and the execution of the write operation are simultaneously implemented. When the write operation corresponding to the write request is directed to the full block data of the migrated data block, the virtual machine monitor directly writes the new write request data block to the source storage device and the target storage device, so that the migration can be simultaneously performed. The migration of data blocks and the execution of write operations. At this point, after the write operation is completed, the updated migration data block is saved in both the source storage device and the target storage device, and the data is not updated after the entire data migration process ends.
  • Step 411 The virtual machine monitor performs a set process on the block cluster corresponding to the migrated data block in the bit chart.
  • the virtual machine monitor After the migration of a migrated data block is completed, the virtual machine monitor sets the block cluster corresponding to the migrated data block in the bit chart, indicating that the data block corresponding to the block cluster has been migrated.
  • This embodiment provides a virtual storage migration method, which starts a data migration process by using a virtual machine monitor, and redirects the received virtual machine front-end I/O access request according to the current data migration process during the data migration process, and After the virtual machine disk is migrated from the source storage device to the target storage device, the virtual machine storage can be switched from the source storage device to the target storage device.
  • the whole process is transparent to the upper operating system and applications of the virtual machine.
  • Due to virtual machine front-end I/O access The request is processed at the same time during the data migration process, no additional subdisk is needed to record the changed data in each request, and there is no need to suspend the virtual machine to separately update the changed data.
  • this embodiment avoids the virtual
  • the shortcomings of business interruption or even error caused by machine downtime also meet the high availability requirements of "zero downtime" in critical applications such as telecommunications and banking.
  • this embodiment since there is no need to perform cyclic iterative copying on the changed portion of the data block, in the virtual machine disk migration process, each data block is only transmitted once at most, and then the existing existing line migration copy is compared with the prior art. Compared with the method, the amount of migrated data is greatly reduced, the migration time is shortened, and the access performance of the virtual machine is improved, which is especially suitable for a request-intensive write scenario.
  • the data migration process of this embodiment no additional storage space is required to record the changed data, and there is no need to change the storage of data stored in the source storage device, and the virtual machine does not affect the reading and writing of the virtual machine.
  • the virtual machine can still have better read and write performance during data migration.
  • the low-priority data migration process is used, and the virtual machine monitor preferentially serves the normal I/O access of the virtual machine, and utilizes idle I/O bandwidth as much as possible for data transmission. Will affect the normal business of the virtual machine.
  • the traditional block-level storage system data remote replication or synchronization method is based on the entire storage device for data transmission, but in a virtual machine environment, the storage device generally contains multiple virtual machine disk images, and the storage device itself cannot These virtual machine disks are perceived and distinguished so that a single virtual machine disk cannot be migrated separately.
  • the bit map is used to initialize the bit chart of the data block in the virtual machine disk to be migrated, the bit chart is used to assist the data migration process, thereby greatly reducing the memory space consumption. .
  • FIG. 6 is a schematic structural diagram of Embodiment 1 of a virtual machine monitor according to the present invention.
  • this embodiment provides a virtual machine monitor, which can specifically perform the steps in the first embodiment of the foregoing method. Narration.
  • the virtual machine monitor provided in this embodiment may specifically include a migration module 601.
  • the processing module 602 and the switching module 603 are requested.
  • the migration module 601 is configured to start data migration, and copy the data block in the virtual machine disk to be migrated from the source storage device to the target storage device.
  • the request processing module 602 is configured to directly read the corresponding data from the source storage device when receiving the virtual machine front end I/O read request during the data migration process; when receiving the virtual machine front end I/O write When requested, it is determined whether the migrated data block corresponding to the virtual machine front end I/O write request is being migrated, such as a corresponding write operation, otherwise the write operation corresponding to the virtual machine front end I/O write request is executed.
  • the switching module 603 is configured to stop data migration after all the data blocks in the virtual machine disk to be migrated are copied to the target end storage device, and store the virtual machine disk in the virtual machine manager from the source end The device switches to the target storage device.
  • FIG. 7 is a schematic structural diagram of a second embodiment of a virtual machine monitor according to the present invention. As shown in FIG. 7, the embodiment provides a virtual machine monitor. This embodiment may specifically perform the steps in the second embodiment of the foregoing method. I will not repeat them here.
  • the virtual machine monitor provided in this embodiment is based on the foregoing FIG. 6.
  • the migration module 601 may specifically include an initialization unit 611, a migration unit 621, and a setting unit 631.
  • the initializing unit 611 is configured to initialize a bitmap of the data block in the virtual machine disk to be migrated in a block cluster size, and the size of the block cluster is set according to the size of the virtual machine disk to be migrated.
  • the migration unit 621 is configured to sequentially select a data block corresponding to an unset block cluster from the bitmap to perform migration.
  • the setting unit 631 is configured to perform a set process on the block cluster in the bit chart when the data block corresponding to the block cluster is copied from the source storage device to the target storage device.
  • the request processing module 602 may specifically include a read request processing unit 612, a determining unit 622, a waiting unit 632, and an executing unit 642.
  • the read request processing unit 612 is configured to directly read the corresponding data from the source storage device when the received virtual machine front end I/O access request is a read request during the data migration process.
  • the determining unit 622 is configured to determine, during the data migration process, whether the migrated data block corresponding to the virtual machine front end I/O write request is being migrated when receiving the virtual machine front end I/O write request.
  • the waiting unit 632 is configured to when the determination result of the determining unit 622 is the virtual When the migrated data block corresponding to the front end I/O write request is being migrated, the write operation corresponding to the virtual machine front end I/O write request is executed after the data block migration is completed.
  • the executing unit 642 is configured to: when the determination result of the determining unit 622 is that the migrated data block corresponding to the virtual machine front end I/O write request is not being migrated, perform the virtual machine front end I/O write request according to the bit chart. Write operation.
  • the execution unit 642 may specifically include a first execution subunit 6421, a second execution subunit 6422, and a third execution subunit 6423.
  • the first execution sub-unit 6421 is configured to directly write the virtual machine front-end I/O write request when the migrated data block corresponding to the virtual machine front-end I/O write request is migrated according to the bitmap.
  • the carried new write request data block is written into the source storage device and the target storage device.
  • the second execution sub-unit 6422 is configured to: when the migrating data block corresponding to the virtual machine front-end I/O write request is queried according to the bitmap, the new data is not migrated, and the new write is carried in the virtual machine front-end I/O write request.
  • the third execution sub-unit 6423 is configured to: when the migrating data block corresponding to the virtual machine front-end I/O write request is queried according to the bitmap, the new data is not migrated, and the new write is carried in the virtual machine front-end I/O write request.
  • the new write request data block is directly written into the source storage device and the target storage device, and is in the bitmap
  • the block cluster corresponding to the migrated data block is subjected to a set process.
  • the virtual machine monitor provided in this embodiment may further include an allocating module 604, where the allocation module 604 is configured to allocate a storage space in the target storage device and copy the virtual machine configuration file before starting the data migration process. Go to the target storage device, and set a data migration flag, where the data migration flag is used to identify that the data is currently being migrated.
  • the virtual machine monitor provided in this embodiment may further include a deleting module 605, configured to: after the stopping the data migration process, clear the data migration flag, and delete the source storage The virtual machine disk image corresponding to the virtual machine disk in the device. Further, the virtual machine monitor provided in this embodiment may further include a priority processing module.
  • the priority processing module 606 is configured to preferentially process an I/O access request, where the I/O access request includes the virtual machine front end read request and the virtual machine front end I/O write request; Low-priority data migration threads perform data migration.
  • the embodiment of the present invention provides a virtual machine monitor that copies data blocks in the virtual machine disk to be migrated from the source storage device to the target storage device by starting the data migration process.
  • the data is migrated according to the current data.
  • the situation is that the received virtual machine front-end I/O access request is processed correspondingly, that is, when the read request is received, the corresponding data is directly read, and when the write request is received, the migrated data block corresponding to the write request is first determined.
  • the virtual machine storage can be The source storage device switches to the target storage device, and the entire process is transparent to the upper operating system and applications of the virtual machine. And because the virtual machine front-end I/O access request is processed at the same time during the data migration process, there is no need for additional sub-disks to record the changed data in each request, and there is no need to suspend the virtual machine to update the changed data separately. Therefore, the embodiment avoids the defect of service interruption or even error due to virtual machine shutdown.
  • the embodiment provides a virtual storage migration system, which includes at least one virtual machine, a source storage device, a target storage device, and a virtual machine monitor.
  • the virtual machine monitor can use the virtual machine monitor shown in Figure 6 or Figure 7 above.

Description

虚拟存储迁移方法、 系统和虚拟机监控器
本申请要求于 2010 年 11 月 29 日提交中国专利局、 申请号为 201010578913. 3 , 发明名称为 "虚拟存储迁移方法、 系统和虚拟机监控器" 的中国专利申请的优先权, 其全部内容通过引用结合在本申请中。 技术领域 本发明实施例涉及通信技术, 尤其涉及一种虚拟存储迁移方法、 系统 和虚拟机监控器。 背景技术
虚拟化技术是一种将底层硬件设备与上层操作系统和应用程序进行分离 的去耦合方法, 其作为当前流行的云计算( cloud computing )平台的底层重 要支撑技术之一, 可以大大提高物理设备的资源使用效率。 与传统的物理机 相比, 虚拟机( Virtual Machine; 以下简称: VM )具有更好的隔离性和封装 性, 其可以将整个虚拟机的信息保存到虚拟磁盘映像 ( Virtual Disk Image; 以下简称: VDI )文件中, 从而方便地对虚拟机进行快照、 备份等。 虚拟磁 盘( Virtual Disk; 以下简称: VD )是虚拟机监控器提供给虚拟机使用的虚拟 存储设备, 其对应的物理存储空间既可以是宿主机的本地存储系统, 也可以 是数据中心中的网络存储系统。 当宿主机所连接的物理存储空间不足或存储 系统中添加、 删除存储设备时, 需要对 VD进行重新调整和划分, 即进行虚 拟存储迁移, 以便对数据中心存储资源进行负载均衡。 虚拟存储迁移可以包 括离线迁移和在线迁移两种方法, 其中虚拟存储在线迁移方法可以在不中断 虚拟机前端应用的情况下进行。
现有技术中的虚拟存储在线迁移方法主要包括内存在线迁移预拷贝方法 和外存在线迁移后拷贝方法。 其中, 第一种方法通过创建虚拟磁盘快照, 生 成只读的父磁盘和记录变化数据的子磁盘, 在父磁盘的数据拷贝完成后, 需 要暂停虚拟机, 将记录变化数据的子磁盘与目标存储设备中的父磁盘进行合 并。 而第二种方法则利用预拷贝和循环迭代拷贝的结合, 先将全部外存数据 发送至目的主机, 记录并标记发送过程中的外存更新块, 将外存更新块循环 发送至目的主机, 并重复上述循环发送步骤, 直到达到设定条件, 然后暂停 虚拟机, 对剩余的外存更新块进行拷贝同步。
然而, 现有技术中的第一种方法在合并记录变化数据的子磁盘和目标存 储设备中的父磁盘时需要暂停虚拟机, 当合并的数据量较大或网络状态较差 时, 虚拟机的暂停可能会导致业务中断甚至出错; 现有技术中的第二种方法 尽管可以在一定程度上减少虚拟机的停机时间, 但当迁移过程中虚拟机的写 请求较多时, 将触发更多的数据拷贝循环迭代, 而且当虚拟机读请求访问缺 失时, 需要等待相应数据从源端存储设备拷贝到目标端存储设备, 从而引起 较大的读响应延迟, 使得存储迁移时间延长, 从而影响虚拟机正常的 I/O访 问性能。 发明内容
本发明实施例提供一种虚拟存储迁移方法、 系统和虚拟机监控器, 用以 解决现有技术中虚拟机停机导致的业务中断甚至出错以及存储迁移时间过长 导致的虚拟机的访问性能降低的缺陷, 实现在虚拟机磁盘的迁移过程中同时 对虚拟机的 I/O访问请求进行处理, 整个迁移过程无需暂停虚拟机, 大大缩 短存储迁移时间。
本发明实施例提供一种虚拟存储迁移方法, 包括:
启动数据迁移, 将待迁移虚拟机磁盘中的数据块从源端存储设备拷贝至 目标端存储设备;
在数据迁移过程中, 当接收到虚拟机前端输入 /输出 I/O读请求时, 直接 从所述源端存储设备中读取相应的数据; 当接收到虚拟机前端 I/O写请求时, 判断所述虚拟机前端 I/O写请求对应的迁移数据块是否正在迁移, 如果是, 写操作, 否则执行所述虚拟机前端 I/O写请求对应的写操作;
当所述待迁移虚拟机磁盘中的所有数据块均拷贝到所述目标端存储设备 后, 停止数据迁移, 并将虚拟机管理器中的虚拟机磁盘由所述源端存储设备 切换为所述目标端存储设备。
本发明实施例还提供一种虚拟机监控器, 包括:
迁移模块, 用于启动数据迁移, 将待迁移虚拟机磁盘中的数据块从源端 存储设备拷贝至目标端存储设备;
请求处理模块, 在数据迁移过程中, 当接收到虚拟机前端输入 /输出 I/O 读请求时, 直接从所述源端存储设备中读取相应的数据; 当接收到虚拟机前 端 I/O写请求时,判断所述虚拟机前端 I/O写请求对应的迁移数据块是否正在 写请求对应的写操作, 否则执行所述虚拟机前端 I/O写请求对应的写操作; 切换模块, 用于当所述待迁移虚拟机磁盘中的所有数据块均拷贝到所述 目标端存储设备后, 停止数据迁移, 并将虚拟机管理器中的虚拟机磁盘由所 述源端存储设备切换为所述目标端存储设备。
本发明实施例提供一种虚拟存储迁移系统, 包括至少一个虚拟机、 源端 存储设备、 目标端存储设备和上述虚拟机监控器。
本发明实施例的虚拟存储迁移方法、 系统和虚拟机监控器, 通过虚拟机 监控器启动数据迁移线程, 将待迁移虚拟机磁盘中的数据块从源端存储设备 拷贝至目标端存储设备; 在数据迁移过程中, 根据当前数据迁移情况对接收 到的虚拟机前端 I/O访问请求进行相应的处理, 即当接收到读请求时, 直接 读取相应的数据, 而当接收到写请求时, 先判断写请求对应的迁移数据块是 否正在迁移, 如果是, 则先等待其迁移完成后再执行写操作, 否则直接执行 写操作; 且在虚拟机磁盘从源端存储设备迁移到目标端存储设备后, 即可将 虚拟机存储从源端存储设备切换到目标端存储设备, 整个过程对于虚拟机上 层操作系统和应用程序均透明。 且由于虚拟机前端 I/O访问请求在数据迁移 过程中便同时被处理, 无需额外的子磁盘来记录各请求中所改变的数据, 更 无需暂停虚拟机来单独对改变的数据进行更新处理, 因此, 本实施例避免了 由于虚拟机停机导致的业务中断甚至出错的缺陷。 另外, 本实施例与现有技 术中的外存在线迁移后拷贝方法相比, 由于无需对数据块的改变部分进行循 环迭代拷贝, 则大大减少了迁移数据量, 也缩短了迁移时间, 提高了虚拟机 的访问性能。 附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实 施例或现有技术描述中所需要使用的附图作一简单地介绍, 显而易见地, 下 面描述中的附图是本发明的一些实施例, 对于本领域普通技术人员来讲, 在 不付出创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。
图 1为本发明虚拟存储迁移方法实施例一的流程图;
图 2为本发明虚拟存储迁移方法实施例一中的网络架构示意图; 图 3为本发明虚拟存储迁移方法实施例二中的虚拟机数据迁移过程的流 程图;
图 4为本发明虚拟存储迁移方法实施例二中的虚拟机 I/O处理过程的流 程图;
图 5为本发明虚拟存储迁移方法实施例二中的数据迁移窗口示意图; 图 6为本发明虚拟机监控器实施例一的结构示意图;
图 7为本发明虚拟机监控器实施例二的结构示意图。 具体实施方式
为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发 明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例是本发明一部分实施例, 而不是全部的实施例。 基于 本发明中的实施例, 本领域普通技术人员在没有做出创造性劳动前提下所获 得的所有其他实施例, 都属于本发明保护的范围。
图 1为本发明虚拟存储迁移方法实施例一的流程图, 如图 1所示, 本实 施例提供了一种虚拟存储迁移方法, 可以包括如下步骤:
步骤 101 , 虚拟机监控器启动数据迁移, 将待迁移虚拟机磁盘中的数据 块从源端存储设备拷贝至目标端存储设备。
图 2为本发明虚拟存储迁移方法实施例一中的网络架构示意图, 如图 2 所示, 虚拟机监控器(Virtual Machine Monitor; 以下简称: VMM )作为操作 系统( Operating System; 以下简称: OS )和硬件之间的管理层, 可以直接管 理底层硬件资源, 包括 CPU、 存储器(Memory ) 、 磁盘(Disk )等, 创建与 底层硬件无关的虚拟机来供上层 OS和应用程序使用, 还可以监控所有 VM 的输入 /输出 ( Input/Output; 以下简称: I/O )访问请求。 从图 2中可以看出, 网络中可以包括多个虚拟机, 其中一个虚拟机(即图中最左边第一个虚拟机) 属于特权域或驱动域(Privilege /Driver Domain ) 中的虚拟机, 其协助 VMM 完成 I/O功能, 其它虚拟机中的操作系统和应用程序需要通过该虚拟机中的 原生设备驱动, 才能完成对底层存储系统的访问。 即其它虚拟机可以将其 I/O 访问请求等转发到特权域或驱动域中的虚拟机上, 由该虚拟机与虚拟机监控 器进行数据交互, 以实现 I/O访问请求对物理磁盘 DISK的访问。在本发明实 施例中, 通过虚拟机监控器启动数据迁移过程来实现虚拟存储迁移, 在数据 迁移过程的运行过程中, 虚拟机监控器对待迁移虚拟机磁盘中的数据块进行 虚拟机执行的存储迁移过程可以通过启动存储迁移线程来完成, 后续实施例 中与此类似, 不再赘述。
步骤 102, 在数据迁移过程中, 当接收到虚拟机前端 I/O读请求时, 虚拟 机监控器直接从所述源端存储设备中读取相应的数据; 当接收到虚拟机前端
I/O写请求时,虚拟机监控器判断所述虚拟机前端 I/O写请求对应的迁移数据 块是否正在迁移, 如果是, 则等待所述迁移数据块迁移完成后再执行所述虚 拟机前端 I/O写请求对应的写操作,否则执行所述虚拟机前端 I/O写请求对应 的写操作。
在虚拟机监控器启动数据迁移过程进行数据迁移的过程中, 虚拟机监控 器还同时接收并处理由虚拟机发送的虚拟机前端 I/O访问请求, 根据当前的 数据迁移情况对接收到的虚拟机前端 I/O访问请求进行处理,即 I/O请求重定 向过程融合在数据迁移过程中执行。 其中, 当虚拟机前端 I/O访问请求访问 虚拟机磁盘时, 可以先将 I/O访问请求与数据迁移过程中相应的请求一起排 到请求队列中, 虚拟机监控器在进行数据迁移过程中根据一定的策略实时地 从请求队列中获取不同的请求进行相应的处理, 即可以根据实际情况对队列 中的不同 I/O请求设置不同的处理优先级。 与现有技术第一种方式需要额外 的子磁盘空间来记录迁移过程中改变的数据, 在数据迁移之后才暂停虚拟机 以对改变的数据进行相应的处理相比, 由于本实施例可以实现在数据迁移的 同时对虚拟机前端 I/O访问请求进行处理, 即数据迁移过程和对虚拟机前端 I/O访问请求的处理过程之间是独立的,二者之间不会相互影响,使得数据迁 移的整个过程对于虚拟机及其应用来说是透明的。
具体地, 在本步骤中, 在数据迁移过程中, 虚拟机监控器接收虚拟机发 送的虚拟机前端 I/O访问请求, 当虚拟机前端 I/O访问请求为读请求时,虚拟 机监控器无需判断该读请求对应的数据块是否已迁移或正在迁移, 直接根据 该读请求从源端存储设备中读取该读请求对应的数据即可, 并结束本流程。 此时读请求的执行与数据迁移过程同步, 二者互不影响对方。 当虚拟机前端
I/O访问请求为写请求时,虚拟机监控器需要继续判断该写请求对应的迁移数 据块是否正在迁移, 即判断该写请求将要写入的待迁移虚拟机磁盘中的迁移 数据块是否正在迁移。 当虚拟机监控器接收到的写请求对应的迁移数据块正 在迁移时, 先不执行该写请求对应的写操作, 而是等待该迁移数据块的迁移, 当该迁移数据块迁移完成后, 再执行对应的写操作。 当虚拟机监控器接收到 的写请求对应的迁移数据块当前没有正在迁移时, 则直接执行该写请求对应 的写操作, 无需进行等待处理。
步骤 103 , 当所述待迁移虚拟机磁盘中的所有数据块均拷贝到所述目标 端存储设备后, 虚拟机监控器停止数据迁移, 并将虚拟机管理器中的虚拟机 磁盘由所述源端存储设备切换为所述目标端存储设备。
当待迁移虚拟机磁盘中的所有数据块均从源端存储设备拷贝到目标端存 储设备中, 即完成数据迁移的整个过程之后, 虚拟机监控器停止之前启动的 数据迁移过程, 同时对虚拟机管理器中的虚拟机磁盘进行切换, 将其从之前 设置的源端存储设备切换为目标端存储设备。
本实施例提供了一种虚拟存储迁移方法, 通过虚拟机监控器启动数据迁 移过程, 将待迁移虚拟机磁盘中的数据块从源端存储设备拷贝至目标端存储 设备; 在数据迁移过程中,根据当前数据迁移情况对接收到的虚拟机前端 I/O 访问请求进行相应的处理, 即当接收到读请求时, 直接读取相应的数据, 而 当接收到写请求时, 先判断写请求对应的迁移数据块是否正在迁移, 如果是, 则先等待其迁移完成后再执行写操作, 否则直接执行写操作; 且在虚拟机磁 盘从源端存储设备迁移到目标端存储设备后, 即可将虚拟机存储从源端存储 设备切换到目标端存储设备, 整个过程对于虚拟机上层操作系统和应用程序 均透明。 且由于虚拟机前端 I/O访问请求在数据迁移过程中便同时被处理, 无需额外的子磁盘来记录各请求中所改变的数据, 更无需暂停虚拟机来单独 对改变的数据进行更新处理, 因此, 本实施例避免了由于虚拟机停机导致的 业务中断甚至出错的缺陷。 另外, 本实施例与现有技术中的外存在线迁移后 拷贝方法相比, 由于无需对数据块的改变部分进行循环迭代拷贝, 则大大减 少了迁移数据量, 也缩短了迁移时间, 提高了虚拟机的访问性能。
图 3为本发明虚拟存储迁移方法实施例二中的虚拟机数据迁移过程的流 程图, 如图 3所示, 本实施例提供了一种虚拟存储迁移方法, 可以具体包括 如下步骤:
步骤 301 , 虚拟机监控器在所述目标端存储设备中分配存储空间, 将虚 拟机配置文件拷贝到所述目标端存储设备中。
本实施例中的源端存储设备和目标端存储设备是根据数据迁移的方向而 设定的, 源端存储设备为数据原始所存储的位置, 目标端存储设备为设备迁 移后所存储的位置, 数据迁移过程为将数据从源端存储设备迁移到目标端存 储设备。 以图 2为例, 位于图中最下方左侧的存储设备为源端存储设备, 位 于图中最下方右侧的存储设备为目标端存储设备。 在进行数据迁移前, 虚拟 机监控器先在目标端存储设备中分配存储空间, 以存储保存在源端存储设备 中的待迁移虚拟机磁盘中的数据块和虚拟机配置文件, 执行本步骤时, 虚拟 机监控器先连接到该目标端存储设备上, 建立源端存储设备与目标端存储设 备之间的数据通道。 然后虚拟机监控器将源端存储设备中的虚拟机配置文件 拷贝至目标端存储设备中, 使得源端存储设备和目标端存储设备中各保存一 份虚拟机配置文件。
步骤 302, 虚拟机监控器设置数据迁移标志, 启动数据迁移过程。
当完成数据迁移过程的前期准备工作之后, 虚拟机监控器在自身中设置 数据迁移标志, 并同时启动数据迁移过程, 开始对待迁移虚拟磁盘中的数据 块进行迁移, 以将其从源端存储设备拷贝至目标端存储设备。 该数据迁移标 识可以用于标识当前正处于数据迁移过程中,数据迁移过程当前为运行状态。 本步骤中虚拟机监控器启动数据迁移过程还可以具体为: 当虚拟机空闲时, 虚拟机监控器再启动数据迁移过程。 在本实施例中, 为了降低虚拟机存储迁 移对虚拟机前端应用的 I/O性能的影响, 本实施例釆用一种低优先级的数据 迁移过程, 即虚拟机监控器优先服务虚拟机前端应用的前端 I/O访问请求, 该前端 I/O访问请求可以包括 I/O读请求和 I/O写请求。 当虚拟机空闲时, 虚 拟机监控器才启动数据迁移过程, 即虚拟机监控器利用空闲的 I/O带宽进行 虚拟机存储数据的拷贝。
步骤 303 , 虚拟机监控器以块簇为粒度对待迁移虚拟机磁盘中的数据块 的位图表进行初始化。
在运行数据迁移过程时, 本实施例通过设置待迁移虚拟机磁盘中的数据 块的位图 (Bitmap )表来协助迁移过程进行数据拷贝。 具体地, 本实施例中 的数据迁移过程先对数据块的位图表进行初始化, 虚拟机监控器可以以块簇 ( Chunk )为粒度对待迁移虚拟机磁盘中的数据块的位图表进行初始化,所述 块簇的大小根据所述待迁移虚拟机磁盘的大小进行设定。 本实施例中以块簇 为粒度来初始化位图表,其中,位图表中的每个 bit分别对应一个待迁移 Chunk 块, 且 Chunk块的大小可以在数据迁移开始之前, 根据待迁移虚拟机磁盘的 大小来进行设定, 通过设置较大的 Chunk块有利于提高磁盘的读写性能。 例 如, 以待迁移虚拟机磁盘的大小为 100GB为例进行说明, 若将迁移过程中使 用的每个 Chunk块大小设置为 1MB, 则其对应的位图表的大小仅为 12.5KB, 由此可见, 本实施例釆用位图表协助数据迁移过程, 位图表对内存空间的消 耗非常小。
步骤 304, 虚拟机监控器从位图表中顺序地选取一个未置位的块簇对应 的数据块进行迁移。
在进行数据迁移时, 本发明实施例每次都从所述位图表中顺序地选取一 个未置位的块簇对应的数据块进行迁移, 此处的未置位的块簇用于标识尚未 完成迁移的块簇; 在每个数据块完成迁移之后, 便将位图表中该数据块对应 的块簇进行置位处理, 以标识该块簇对应的数据块已完成迁移, 因此, 从位 图表可以看出哪些块簇对应的数据块已完成迁移, 哪些块簇对应的数据块尚 未完成迁移, 每次迁移时从位图表中顺序地选取未置位的块簇即可。 本实施 例在进行数据迁移时, 可以重复执行上述步骤, 直到将位图表中的所有块簇 均置位, 即表明该待迁移虚拟机磁盘中的数据块均已完成迁移。
步骤 305, 虚拟机监控器对位图表进行更新。 当完成一个迁移数据块的迁移之后, 虚拟机监控器对位图表进行更新, 具体对位图表中该迁移数据块对应的块簇进行置位处理, 表明该块簇对应的 数据块已完成迁移。
步骤 306, 虚拟机监控器判断是否已经完成数据迁移过程, 如果是, 则 执行步骤 307, 否则返回执行步骤 304。
虚拟机在对位图表进行更新后, 判断是否已经完成整个数据迁移过程, 具体可以根据位图表来判断, 判断位图表中各数据块对应的块簇是否均已被 置位, 如果是, 则表明待迁移虚拟机磁盘中的所有数据块均已拷贝到目标端 存储设备中, 则执行步骤 307。 如果位图表中还有数据块对应的块簇未被置 位, 则返回执行步骤 304, 顺序地对未置位的数据块进行迁移, 直到将所述 待迁移虚拟机磁盘中的所有数据块均拷贝到所述目标端存储设备中。
步骤 307 , 虚拟机监控器停止所述数据迁移过程, 并清除所述数据迁移 标志。
当待迁移虚拟机磁盘中的所有数据块均拷贝到所述目标端存储设备中 后, 虚拟机监控器将之前启动的数据迁移过程停止, 并清除其中的数据迁移 标志, 表明虚拟机当前未处于数据迁移状态, 则后续其他设备访问该虚拟机 或执行其他操作时可通过该数据迁移标志来获知该虚拟机当前未处于数据迁 移状态。
步骤 308 , 虚拟机监控器将虚拟机管理器中的虚拟机磁盘由所述源端存 储设备切换为所述目标端存储设备, 并删除所述源端存储设备中的所述虚拟 机磁盘对应的虚拟机磁盘映像。
在完成整个数据迁移过程后, 虚拟机监控器即可直接将虚拟机磁盘进行 切换, 将其由源端存储设备修改为目标端存储设备, 并删除源端存储设备中 的所述虚拟机磁盘对应的虚拟机磁盘映像, 之后虚拟机所有的读写请求将全 部发向目标端存储设备。
图 4为本发明虚拟存储迁移方法实施例二中的虚拟机 I/O处理过程的流 程图, 上述图 3 中单独介绍了本实施例中虚拟机数据迁移过程的各个步骤, 图 4将对本实施例中虚拟机 I/O处理过程的各个步骤进行具体解释。 具体地, 本实施例提供的虚拟机存储迁移方法在上述图 3所示的基础之上, 还可以包 括:
步骤 401 , 在数据迁移过程中, 虚拟机监控器接收虚拟机发送的虚拟机 前端 I/O访问请求。
在本实施例中, 虚拟机监控器启动数据迁移过程后, 数据开始迁移, 在 数据迁移过程中, 虚拟机监控器接收虚拟机发送的虚拟机前端 I/O访问请求。 在虚拟机前端 I/O访问请求中可以携带该请求将访问的数据块信息, 如前端 I/O访问请求为读请求时,数据块信息包括将要从虚拟机磁盘中读取的数据块 的位置或标识信息, 或者前端 I/O访问请求为写请求时, 数据块信息包括写 请求将要写入虚拟机磁盘中的数据块的位置或标识信息, 该虚拟机前端 I/O 访问请求中还可以携带写请求将要写入的新写请求数据块, 以将该新写请求 数据块写入到对应的数据块中。
步骤 402,虚拟机监控器判断接收到的虚拟机前端 I/O访问请求是否为读 请求, 如果是, 则执行步骤 403 , 否则执行步骤 404。
本步骤为虚拟机监控器先判断该虚拟机前端 I/O访问请求是否为读请求, 根据不同的请求类型执行后续不同的步骤。 如果虚拟机监控器接收到的前端 访问请求为读请求, 则执行步骤 403 , 直接从源端存储设备中读取相应的数 据, 并结束本流程; 如果虚拟机监控器接收到的前端访问请求不是读请求, 而为写请求, 则执行步骤 404, 继续对该写请求对应的信息进行判断。
步骤 403 , 虚拟机监控器直接从所述源端存储设备中读取相应的数据。 当虚拟机监控器接收到的虚拟机前端 I/O访问请求为读请求时, 由于读 请求只是从虚拟机磁盘中读取数据, 不会对虚拟机磁盘中的数据进行修改, 且在数据迁移过程中源端存储设备始终保存有待迁移虚拟机磁盘中的所有数 据。 因此虚拟机监控器在接收到虚拟机发送的读请求后, 无需判断该读请求 对应的数据块是否已迁移或正在迁移, 直接根据该读请求从源端存储设备中 读取该读请求对应的数据即可, 并结束本流程。 此时读请求的执行与数据迁 移过程同步, 二者互不影响对方。
步骤 404 , 虚拟机监控器判断所述写请求对应的迁移数据块是否正在迁 移, 如果是, 则执行步骤 405 , 否则执行步骤 406。
虚拟机监控器接收到的访问请求为写请求时, 由于写请求的执行会对相 应的待迁移虚拟机磁盘中的数据块进行改变, 因此, 虚拟机监控器需要继续 判断该写请求对应的迁移数据块是否正在迁移, 即判断该写请求将要写入的 待迁移虚拟机磁盘中的迁移数据块是否正在迁移。 在本实施例中, 虚拟机监 控器在接收到写请求后 ,先对写请求中携带的新写请求数据块进行对齐处理 , 将其对齐到位图表中的各迁移数据块上, 通过对齐处理获取该写请求具体对 应的迁移数据块。 写请求对应的迁移数据块可能为一个, 也可能为多个。 当 写请求中携带的新写请求总数据块大于单位迁移数据块的大小时, 该写请求 对应多个迁移数据块, 则将该写请求分别针对各迁移数据块进行处理, 当写 请求中携带的新写请求总数据块大于单位迁移数据块的大小时, 也可能对应 多个迁移数据块, 即分别对应两个相邻迁移数据块的一部分。 后续实施例仅 对经过对齐处理的写请求进行说明, 即如果写请求对应多个迁移数据块, 则 将该写请求中携带的新写请求总数据块进行分块处理, 形成多个新写请求数 据块, 各新写请求数据块分别对应一个迁移数据块。 其中, 迁移数据块为待 迁移虚拟机磁盘中的数据块,此处的迁移数据块为写请求将要写入的数据块。 具体地,图 5为本发明虚拟存储迁移方法实施例二中的数据迁移窗口示意图, 为了便于维护虚拟机存储在线迁移过程中数据的一致性, 以上文提到的位图 表中的块簇为每次迁移数据的最小单位,具体可以为如图 5所示的迁移窗口。 以图 5为例, 当进行数据迁移时, 虚拟机监控器按照顺序从位图表中选取一 块未置位的数据进行迁移, 则此时迁移窗口落在该数据块对应的块簇上, 此 处一个块簇包括 3个方格代表的数据, 即迁移窗口落在这 3个方格上。 当该 数据块完成迁移之后, 虚拟机监控器从位图表中顺序选择下一块未置位的数 据进行迁移, 则如 5图中所示, 迁移窗口可以向左移动三个方格, 以此类推, 迁移窗口不断移动, 以遍历位图表中的所有方格, 直到位图表中所有数据块 均被置位为止。
在判断该写请求对应的迁移数据块是否正在迁移时, 可以具体判断对应 的迁移数据块是否落入当前的迁移窗口中, 如果落入迁移窗口中, 则表明该 迁移数据块正在迁移。 为了便于实现, 还可以对数据块进行加锁处理, 当数 据迁移过程和写请求在处理一个数据块时, 需要先获取该数据块的锁, 以实 现对该数据块进行互斥的访问。 如当数据迁移过程先对一个数据块进行迁移 时, 则数据迁移过程先获取到该数据块的锁, 当写请求也对该数据块进行处 理时, 则必须等待数据迁移过程将该数据块迁移完毕才能执行写操作。 经过 判断, 当该写请求对应的迁移数据块当前正在迁移时, 虚拟机监控器执行后 续步骤 405 , 等待该迁移数据块完成其迁移过程之后, 再执行该写请求对应 的写操作; 当该写请求对应的迁移数据块当前未处于正在迁移状态时, 虚拟 机监控器执行后续步骤 406 , 根据位图表执行写请求对应的写操作, 即虚拟 机监控器通过查询位图表, 进一步对该迁移数据块的状态进行判断, 根据判 断结果再执行写请求对应的写操作。
步骤 405 , 虚拟机监控器等待所述迁移数据块迁移完成后再执行所述写 请求对应的写操作。
当虚拟机监控器接收到的写请求对应的迁移数据块正在迁移时, 先不执 行该写请求对应的写操作, 而是等待该迁移数据块的迁移, 当该迁移数据块 迁移完成后, 再执行对应的写操作, 即执行后续步骤 406。
步骤 406 , 虚拟机监控器根据所述位图表查询到对应的迁移数据块是否 已迁移, 如果是, 则执行步骤 407 , 否则执行步骤 408。
当虚拟机监控器接收到的写请求对应的迁移数据块当前未处于正在迁移 状态时, 虚拟机监控器根据之前设定的位图表对该迁移数据块的状态进行查 询, 即通过位图表中该迁移数据块对应的块簇的置位状态来判断该数据块是 否已完成迁移。 如果位图表中该迁移数据块对应的块簇已置位, 表明该数据 块已完成迁移, 则执行步骤 407 , 虚拟机监控器直接将所述写请求中携带的 新写请求数据块写入到所述源端存储设备和所述目标端存储设备中; 如果位 图表中该迁移数据块对应的块簇未置位, 表明该数据块未完成迁移(实际上, 由于通过步骤 404可以得到该数据块也未处于 "正在迁移" 的状态, 因此, 该数据块的实际状态为并未开始迁移) , 则执行步骤 408 , 对该数据块进行 进一步的判断。
步骤 407 , 虚拟机监控器直接将所述写请求中携带的新写请求数据块写 入到所述源端存储设备和所述目标端存储设备中,并返回执行数据迁移过程。
当写请求对应的迁移数据块已迁移时, 则在源端存储设备和目标端存储 设备中均已存储有该迁移数据块, 则虚拟机监控器在执行该写请求对应的写 操作时, 直接将该写请求中携带的新写请求数据块均写入到源端存储设备和 目标端存储设备中。 此处的新写请求数据块为写请求将要写到其对应的迁移 数据块中的数据, 即将要对迁移数据块进行更新的数据。 在完成本步骤的写 操作的执行后, 返回执行数据迁移过程。
步骤 408 , 虚拟机监控器判断写请求中携带的新写请求数据块的大小是 否小于所述迁移数据块的大小, 如果是, 则执行步骤 409 , 如果等于则执行 步骤 410。
当写请求对应的迁移数据块未开始迁移时, 虚拟机监控器进一步比较该 写请求中携带的新写请求数据块的大小与对应的迁移数据块的大小, 即判断 该写请求所对应的写操作是否为满块执行。 其中, 在当新写请求数据块的大 小小于迁移数据块的大小时, 则虚拟机监控器执行后续步骤 409 , 先将所述 迁移数据块从所述源端存储设备拷贝到所述目标端存储设备中; 当新写请求 数据块的大小正好等于迁移数据块的大小时, 则虚拟机监控器执行后续步骤 410,直接将所述写请求中携带的新写请求数据块写入到所述源端存储设备和 所述目标端存储设备中。
步骤 409, 虚拟机监控器将所述迁移数据块从所述源端存储设备拷贝到 所述目标端存储设备中, 并继续执行步骤 410。
当新写请求数据块的大小小于迁移数据块的大小, 即该写请求对应的写 操作只针对迁移数据块中的部分数据时, 虚拟机监控器需要先将该迁移数据 块从源端存储设备拷贝到目标端存储设备中,实现该迁移数据块的两端备份, 以同时完成该迁移数据块的迁移, 再执行后续步骤 410。
步骤 410, 虚拟机监控器将所述写请求中携带的新写请求数据块写入到 所述源端存储设备和所述目标端存储设备中, 并执行后续步骤 411。
当该写请求对应的写操作只针对对应的迁移数据块中的部分数据时, 虚 拟机监控器先对迁移数据块进行拷贝, 再执行本步骤, 将该新写请求数据块 写入到源端存储设备和目标端存储设备中, 同时实现迁移数据块的迁移和写 操作的执行。 而当写请求对应的写操作针对迁移数据块的满块数据时, 虚拟 机监控器则直接将该新写请求数据块写入到源端存储设备和目标端存储设备 中, 便可同时实现迁移数据块的迁移和写操作的执行。 此时, 写操作执行完 成, 源端存储设备和目标端存储设备中均保存有更新后的迁移数据块, 而无 需在整个数据迁移过程结束之后再对数据进行更新。
步骤 411 , 虚拟机监控器对所述位图表中所述迁移数据块对应的块簇进 行置位处理。
当完成一个迁移数据块的迁移之后, 虚拟机监控器对位图表中该迁移数 据块对应的块簇进行置位处理, 表明该块簇对应的数据块已完成迁移。
本实施例提供了一种虚拟存储迁移方法, 通过虚拟机监控器启动数据迁 移过程, 在数据迁移过程中, 根据当前数据迁移情况对接收到的虚拟机前端 I/O访问请求进行重定向,并在虚拟机磁盘从源端存储设备迁移到目标端存储 设备后, 即可将虚拟机存储从源端存储设备切换到目标端存储设备, 整个过 程对于虚拟机上层操作系统和应用程序均透明。 且由于虚拟机前端 I/O访问 请求在数据迁移过程中便同时被处理, 无需额外的子磁盘来记录各请求中所 改变的数据, 更无需暂停虚拟机来单独对改变的数据进行更新处理, 因此, 本实施例避免了由于虚拟机停机导致的业务中断甚至出错的缺陷, 也满足了 电信、 银行等关键应用场合中 "零停机" 的高可用性要求。 另外, 本实施例 由于无需对数据块的改变部分进行循环迭代拷贝,在虚拟机磁盘迁移过程中, 每个数据块最多只会被传输一次, 则与现有技术中的外存在线迁移后拷贝方 法相比, 大大减少了迁移数据量, 也缩短了迁移时间, 提高了虚拟机的访问 性能, 尤其适合于写请求密集的场景中。 再者, 本实施例的数据迁移过程中 无需占用额外的存储空间来记录改变的数据, 且无需改变源端存储设备中存 储的数据的存放, 不会对虚拟机的读写产生影响, 使得在数据迁移过程中虚 拟机仍可以具有较好的读写性能。 最后, 本实施例中釆用低优先级的数据迁 移过程, 虚拟机监控器优先服务虚拟机的正常 I/O 的访问情况, 同时尽可能 地利用空闲的 I/O带宽来进行数据传输, 不会影响虚拟机的正常业务。
传统的块级存储系统数据远程复制或同步方法, 是以整个存储设备为单 位进行数据传输的, 但在虚拟机环境中, 存储设备中一般会包含多个虚拟机 磁盘映像, 而存储设备本身无法感知并区分这些虚拟机磁盘, 从而无法单独 对某个虚拟机磁盘进行迁移。 与现有技术相比, 由于本实施例釆用以块簇为 粒度来初始化待迁移虚拟机磁盘中的数据块的位图表, 由位图表来协助数据 迁移过程, 大大降低了对内存空间的消耗。
本领域普通技术人员可以理解: 实现上述方法实施例的全部或部分步骤可 以通过程序指令相关的硬件来完成, 前述的程序可以存储于一计算机可读取存 储介质中, 该程序在执行时, 执行包括上述方法实施例的步骤; 而前述的存储 介质包括: ROM、 RAM, 磁碟或者光盘等各种可以存储程序代码的介质。
图 6为本发明虚拟机监控器实施例一的结构示意图, 如图 6所示本实施 例提供了一种虚拟机监控器,可以具体执行上述方法实施例一中的各个步骤, 此处不再赘述。 本实施例提供的虚拟机监控器可以具体包括迁移模块 601、 请求处理模块 602和切换模块 603。 其中, 迁移模块 601用于启动数据迁移, 将待迁移虚拟机磁盘中的数据块从源端存储设备拷贝至目标端存储设备。 请 求处理模块 602用于在数据迁移过程中, 当接收到虚拟机前端 I/O读请求时, 直接从所述源端存储设备中读取相应的数据; 当接收到虚拟机前端 I/O写请 求时, 判断所述虚拟机前端 I/O写请求对应的迁移数据块是否正在迁移, 如 对应的写操作, 否则执行所述虚拟机前端 I/O写请求对应的写操作。 切换模 块 603用于当所述待迁移虚拟机磁盘中的所有数据块均拷贝到所述目标端存 储设备后, 停止数据迁移, 并将虚拟机管理器中的虚拟机磁盘由所述源端存 储设备切换为所述目标端存储设备。
图 7为本发明虚拟机监控器实施例二的结构示意图, 如图 7所示, 本实 施例提供了一种虚拟机监控器, 本实施例可以具体执行上述方法实施例二中 的各个步骤, 此处不再赘述。 本实施例提供的虚拟机监控器在上述图 6所示 的基础之上, 迁移模块 601 可以具体包括初始化单元 611、 迁移单元 621和 置位单元 631。 初始化单元 611用于以块簇为粒度对待迁移虚拟机磁盘中的 数据块的位图表进行初始化, 所述块簇的大小根据所述待迁移虚拟机磁盘的 大小进行设定。 迁移单元 621用于从所述位图表中顺序地选取一个未置位的 块簇对应的数据块进行迁移。 置位单元 631用于当所述块簇对应的数据块从 源端存储设备拷贝到目标端存储设备时, 对所述位图表中的所述块簇进行置 位处理。
具体地, 请求处理模块 602可以具体包括读请求处理单元 612、 判断单元 622、 等待单元 632和执行单元 642。 其中, 读请求处理单元 612用于在数据 迁移过程中, 当接收到的虚拟机前端 I/O访问请求为读请求时, 直接从所述 源端存储设备中读取相应的数据。 判断单元 622用于在数据迁移过程中, 当 接收虚拟机前端 I/O写请求时,判断所述虚拟机前端 I/O写请求对应的迁移数 据块是否正在迁移。 等待单元 632用于当判断单元 622的判断结果为所述虚拟 机前端 I/O写请求对应的迁移数据块正在迁移时, 等待所述数据块迁移完成后 再执行所述虚拟机前端 I/O写请求对应的写操作。 执行单元 642用于当判断单 元 622的判断结果为所述虚拟机前端 I/O写请求对应的迁移数据块未正在迁移 时, 根据所述位图表执行所述虚拟机前端 I/O写请求对应的写操作。
进一步地, 执行单元 642可以具体包括第一执行子单元 6421、 第二执行 子单元 6422和第三执行子单元 6423。 其中, 第一执行子单元 6421用于当根 据所述位图表查询到所述虚拟机前端 I/O写请求对应的迁移数据块已迁移时, 直接将所述虚拟机前端 I/O写请求中携带的新写请求数据块写入到所述源端 存储设备和所述目标端存储设备中。第二执行子单元 6422用于当根据所述位 图表查询到所述虚拟机前端 I/O写请求对应的迁移数据块未迁移, 且所述虚 拟机前端 I/O写请求中携带的新写请求数据块的大小小于所述迁移数据块的 大小时, 将所述迁移数据块从所述源端存储设备拷贝到所述目标端存储设备 中, 将所述新写请求数据块写入到所述源端存储设备和所述目标端存储设备 中, 并对所述位图表中所述迁移数据块对应的块簇进行置位处理。 第三执行 子单元 6423用于当根据所述位图表查询到所述虚拟机前端 I/O写请求对应的 迁移数据块未迁移, 且所述虚拟机前端 I/O写请求中携带的新写请求数据块 的大小等于所述迁移数据块的大小时, 直接将所述新写请求数据块写入到所 述源端存储设备和所述目标端存储设备中, 并对所述位图表中所述迁移数据 块对应的块簇进行置位处理。
更进一步地, 本实施例提供的虚拟机监控器还可以包括分配模块 604, 分 配模块 604用于在启动数据迁移过程之前, 在所述目标端存储设备中分配存 储空间, 将虚拟机配置文件拷贝到所述目标端存储设备中, 并设置数据迁移 标志, 所述数据迁移标志用于标识数据当前正在迁移。
更进一步地, 本实施例提供的虚拟机监控器还可以包括删除模块 605, 删 除模块 605用于在所述停止所述数据迁移过程之后, 清除所述数据迁移标志, 并删除所述源端存储设备中的所述虚拟机磁盘对应的虚拟机磁盘映像。 更进一步地, 本实施例提供的虚拟机监控器还可以包括优先处理模块
606, 优先处理模块 606用于优先处理 I/O访问请求, 所述 I/O访问请求包括 所述虚拟机前端读请求以及所述虚拟机前端 I/O写请求; 在虚拟机空闲时釆 用低优先级的数据迁移线程进行数据迁移。
本实施例提供了一种虚拟机监控器, 通过启动数据迁移过程, 将待迁移 虚拟机磁盘中的数据块从源端存储设备拷贝至目标端存储设备; 在数据迁移 过程中, 根据当前数据迁移情况对接收到的虚拟机前端 I/O访问请求进行相 应的处理, 即当接收到读请求时, 直接读取相应的数据, 而当接收到写请求 时, 先判断写请求对应的迁移数据块是否正在迁移, 如果是, 则先等待其迁 移完成后再执行写操作, 否则直接执行写操作; 且在虚拟机磁盘从源端存储 设备迁移到目标端存储设备后, 即可将虚拟机存储从源端存储设备切换到目 标端存储设备, 整个过程对于虚拟机上层操作系统和应用程序均透明。 且由 于虚拟机前端 I/O访问请求在数据迁移过程中便同时被处理, 无需额外的子 磁盘来记录各请求中所改变的数据, 更无需暂停虚拟机来单独对改变的数据 进行更新处理, 因此, 本实施例避免了由于虚拟机停机导致的业务中断甚至 出错的缺陷。 另外, 本实施例与现有技术中的外存在线迁移后拷贝方法相比, 由于无需对数据块的改变部分进行循环迭代拷贝,则大大减少了迁移数据量, 也缩短了迁移时间, 提高了虚拟机的访问性能。
本实施例提供了一种虚拟存储迁移系统, 包括具体包括至少一个虚拟机、 源端存储设备、 目标端存储设备、 虚拟机监控器。 其中, 虚拟机监控器可以 釆用上述图 6或图 7所示的虚拟机监控器。
最后应说明的是: 以上实施例仅用以说明本发明的技术方案, 而非对 其限制; 尽管参照前述实施例对本发明进行了详细的说明, 本领域的普通 技术人员应当理解: 其依然可以对前述各实施例所记载的技术方案进行修 改, 或者对其中部分技术特征进行等同替换; 而这些修改或者替换, 并不 使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims

权 利 要 求
1、 一种虚拟存储迁移方法, 其特征在于, 包括:
启动数据迁移, 将待迁移虚拟机磁盘中的数据块从源端存储设备拷贝至 目标端存储设备;
在数据迁移过程中, 当接收到虚拟机前端输入 /输出 I/O读请求时, 直接 从所述源端存储设备中读取相应的数据; 当接收到虚拟机前端 I/O写请求时, 判断所述虚拟机前端 I/O写请求对应的迁移数据块是否正在迁移, 如果是, 写操作, 否则执行所述虚拟机前端 I/O写请求对应的写操作;
当所述待迁移虚拟机磁盘中的所有数据块均拷贝到所述目标端存储设备 后, 停止数据迁移, 并将虚拟机管理器中的虚拟机磁盘由所述源端存储设备 切换为所述目标端存储设备。
2、 根据权利要求 1所述的方法, 其特征在于, 所述启动数据迁移, 将待迁 移虚拟机磁盘中的数据块从源端存储设备拷贝至目标端存储设备包括:
以块簇为粒度对待迁移虚拟机磁盘中的数据块的位图表进行初始化, 所 述块簇的大小根据所述待迁移虚拟机磁盘的大小进行设定;
从所述位图表中顺序地选取一个未置位的块簇对应的数据块进行迁移; 当所述块簇对应的数据块从源端存储设备拷贝到目标端存储设备时, 对 所述位图表中的所述块簇进行置位处理。
3、 根据权利要求 2所述的方法, 其特征在于, 在进行数据迁移时, 当接 收到虚拟机前端 I/O写请求时且判断所述虚拟机前端 I/O写请求对应的迁移数 据块未正在迁移, 则执行所述虚拟机前端 I/O写请求对应的写操作包括: 当根据所述位图表查询到所述虚拟机前端 I/O写请求对应的迁移数据块 已迁移时, 直接将所述虚拟机前端 I/O写请求中携带的新写请求数据块写入 到所述源端存储设备和所述目标端存储设备中;
当根据所述位图表查询到所述虚拟机前端 I/O写请求对应的迁移数据块 未迁移, 且所述虚拟机前端 I/O写请求中携带的新写请求数据块的大小小于 所述迁移数据块的大小时, 将所述迁移数据块从所述源端存储设备拷贝到所 述目标端存储设备中, 将所述新写请求数据块写入到所述源端存储设备和所 述目标端存储设备中, 并对所述位图表中所述迁移数据块对应的块簇进行置 位处理;
当根据所述位图表查询到所述虚拟机前端 I/O写请求对应的迁移数据块 未迁移, 且所述虚拟机前端 I/O写请求中携带的新写请求数据块的大小等于 所述迁移数据块的大小时, 直接将所述新写请求数据块写入到所述源端存储 设备和所述目标端存储设备中, 并对所述位图表中所述迁移数据块对应的块 簇进行置位处理。
4、 根据权利要求 1所述的方法, 其特征在于, 在启动数据迁移之前, 还 包括:
在所述目标端存储设备中分配存储空间, 将虚拟机配置文件拷贝到所述 目标端存储设备中, 并设置数据迁移标志, 所述数据迁移标志用于标识数据 当前正在迁移。
5、根据权利要求 4所述的方法,其特征在于,在停止所述数据迁移之后, 还包括:
清除所述数据迁移标志, 并删除所述源端存储设备中的所述虚拟机磁盘 对应的虚拟机磁盘映像。
6、 根据权利要求 1所述的方法, 其特征在于, 还包括:
优先处理前端 I/O访问请求,所述前端 I/O访问请求包括所述虚拟机前端
I/O读请求以及所述虚拟机前端 I/O写请求; 在虚拟机空闲时釆用低优先级的 数据迁移线程进行数据迁移。
7、 一种虚拟机监控器, 其特征在于, 包括:
迁移模块, 用于启动数据迁移, 将待迁移虚拟机磁盘中的数据块从源端 存储设备拷贝至目标端存储设备;
请求处理模块, 在数据迁移过程中, 当接收到虚拟机前端输入 /输出 I/O 读请求时, 直接从所述源端存储设备中读取相应的数据; 当接收到虚拟机前 端 I/O写请求时,判断所述虚拟机前端 I/O写请求对应的迁移数据块是否正在 写请求对应的写操作, 否则执行所述虚拟机前端 I/O写请求对应的写操作; 切换模块, 用于当所述待迁移虚拟机磁盘中的所有数据块均拷贝到所述 目标端存储设备后, 停止数据迁移, 并将虚拟机管理器中的虚拟机磁盘由所 述源端存储设备切换为所述目标端存储设备。
8、根据权利要求 7所述的虚拟机监控器,其特征在于,所述迁移模块包括: 初始化单元, 用于以块簇为粒度对待迁移虚拟机磁盘中的数据块的位图 表进行初始化,所述块簇的大小根据所述待迁移虚拟机磁盘的大小进行设定; 迁移单元, 用于从所述位图表中顺序地选取一个未置位的块簇对应的数 据块进行迁移;
置位单元, 用于当所述块簇对应的数据块从源端存储设备拷贝到目标端 存储设备时, 对所述位图表中的所述块簇进行置位处理。
9、 根据权利要求 8所述的虚拟机监控器, 其特征在于, 所述请求处理模 块包括:
读请求处理单元, 用于在数据迁移过程中, 当接收到虚拟机前端 I/O读请 求时, 直接从所述源端存储设备中读取相应的数据;
判断单元, 用于在数据迁移过程中, 当接收到虚拟机前端 I/O写请求时, 判断所述虚拟机前端 I/O写请求对应的迁移数据块是否正在迁移;
等待单元, 用于当所述判断单元的判断结果为所述虚拟机前端 I/O写请求 对应的迁移数据块正在迁移时, 等待所述数据块迁移完成后再执行所述虚拟机 前端 I/O写请求对应的写操作;
执行单元, 用于当所述判断单元的判断结果为所述虚拟机前端 I/O写请求 对应的迁移数据块未正在迁移时,根据所述位图表执行所述虚拟机前端 I/O写 请求对应的写操作;
其中, 所述执行单元包括:
第一执行子单元, 用于当根据所述位图表查询到所述虚拟机前端 I/O写 请求对应的迁移数据块已迁移时, 直接将所述虚拟机前端 I/O写请求中携带 的新写请求数据块写入到所述源端存储设备和所述目标端存储设备中;
第二执行子单元, 用于当根据所述位图表查询到所述虚拟机前端 I/O写 请求对应的迁移数据块未迁移, 且所述虚拟机前端 I/O写请求中携带的新写 请求数据块的大小小于所述迁移数据块的大小时, 将所述迁移数据块从所述 源端存储设备拷贝到所述目标端存储设备中, 将所述新写请求数据块写入到 所述源端存储设备和所述目标端存储设备中, 并对所述位图表中所述迁移数 据块对应的块簇进行置位处理;
第三执行子单元, 用于当根据所述位图表查询到所述虚拟机前端 I/O写 请求对应的迁移数据块未迁移, 且所述虚拟机前端 I/O写请求中携带的新写 请求数据块的大小等于所述迁移数据块的大小时, 直接将所述新写请求数据 块写入到所述源端存储设备和所述目标端存储设备中, 并对所述位图表中所 述迁移数据块对应的块簇进行置位处理。
10、 根据权利要求 7所述的虚拟机监控器, 其特征在于, 还包括: 分配模块, 用于在启动数据迁移线程之前, 在所述目标端存储设备中分 配存储空间, 将虚拟机配置文件拷贝到所述目标端存储设备中, 并设置数据 迁移标志, 所述数据迁移标志用于标识数据当前正在迁移。
11、 根据权利要求 10所述的虚拟机监控器, 其特征在于, 还包括: 删除模块, 用于在停止数据迁移之后, 清除所述数据迁移标志, 并删除 所述源端存储设备中的所述虚拟机磁盘对应的虚拟机磁盘映像。
12、 根据权利要求 10所述的虚拟机监控器, 其特征在于, 还包括: 优先处理模块, 用于优先处理 I/O访问请求, 所述 I/O访问请求包括所述 虚拟机前端 I/O读请求以及所述虚拟机前端 I/O写请求;在虚拟机空闲时釆用 低优先级的数据迁移线程进行数据迁移。
13、 一种虚拟存储迁移系统, 其特征在于, 包括至少一个虚拟机、 源端存 储设备、 目标端存储设备和上述权利要求 7-12中任一项所述的虚拟机监控器。
PCT/CN2011/074189 2010-11-29 2011-05-17 虚拟存储迁移方法、系统和虚拟机监控器 WO2011137780A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2012545079A JP5459811B2 (ja) 2010-11-29 2011-05-17 仮想ストレージ移行のための方法およびシステム、ならびに仮想マシンモニタ
EP11777199.8A EP2437167B1 (en) 2010-11-29 2011-05-17 Method and system for virtual storage migration and virtual machine monitor
KR1020127012579A KR101403417B1 (ko) 2010-11-29 2011-05-17 가상 스토리지 이주 방법, 가상 스토리지 이주 시스템 및 저장 매체
US13/340,117 US9411620B2 (en) 2010-11-29 2011-12-29 Virtual storage migration method, virtual storage migration system and virtual machine monitor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201010578913.3 2010-11-29
CN2010105789133A CN102073462B (zh) 2010-11-29 2010-11-29 虚拟存储迁移方法、系统和虚拟机监控器

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/340,117 Continuation US9411620B2 (en) 2010-11-29 2011-12-29 Virtual storage migration method, virtual storage migration system and virtual machine monitor

Publications (1)

Publication Number Publication Date
WO2011137780A1 true WO2011137780A1 (zh) 2011-11-10

Family

ID=44032015

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/074189 WO2011137780A1 (zh) 2010-11-29 2011-05-17 虚拟存储迁移方法、系统和虚拟机监控器

Country Status (6)

Country Link
US (1) US9411620B2 (zh)
EP (1) EP2437167B1 (zh)
JP (1) JP5459811B2 (zh)
KR (1) KR101403417B1 (zh)
CN (1) CN102073462B (zh)
WO (1) WO2011137780A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104684068A (zh) * 2013-11-29 2015-06-03 中国移动通信集团公司 一种数据同步的方法和设备
CN109558068A (zh) * 2017-09-27 2019-04-02 北京忆恒创源科技有限公司 数据迁移方法及迁移系统
CN111324413A (zh) * 2018-12-14 2020-06-23 中移(杭州)信息技术有限公司 一种数据迁移方法及数据迁移管理设备

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
CN102073462B (zh) 2010-11-29 2013-04-17 华为技术有限公司 虚拟存储迁移方法、系统和虚拟机监控器
US8549518B1 (en) 2011-08-10 2013-10-01 Nutanix, Inc. Method and system for implementing a maintenanece service for managing I/O and storage for virtualization environment
US8863124B1 (en) 2011-08-10 2014-10-14 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9747287B1 (en) 2011-08-10 2017-08-29 Nutanix, Inc. Method and system for managing metadata for a virtualization environment
US8850130B1 (en) 2011-08-10 2014-09-30 Nutanix, Inc. Metadata for managing I/O and storage for a virtualization
US9009106B1 (en) 2011-08-10 2015-04-14 Nutanix, Inc. Method and system for implementing writable snapshots in a virtualized storage environment
US8601473B1 (en) * 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9652265B1 (en) 2011-08-10 2017-05-16 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment with multiple hypervisor types
US8621463B2 (en) * 2011-09-09 2013-12-31 GM Global Technology Operations LLC Distributed computing architecture with dynamically reconfigurable hypervisor nodes
CN103064733A (zh) * 2011-10-20 2013-04-24 电子科技大学 云计算虚拟机热迁移技术
US9471243B2 (en) 2011-12-15 2016-10-18 Veritas Technologies Llc Dynamic storage tiering in a virtual environment
TWI453669B (zh) * 2011-12-21 2014-09-21 Inventec Corp 虛擬機器遷移方法與雲端伺服系統
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
CN103186423B (zh) * 2011-12-28 2016-08-17 英业达股份有限公司 虚拟机迁移方法与云端伺服系统
US9280380B2 (en) * 2012-02-29 2016-03-08 Red Hat Israel, Ltd. Management of I/O reqeusts in virtual machine migration
CN103309721A (zh) * 2012-03-08 2013-09-18 鸿富锦精密工业(深圳)有限公司 虚拟机监视器管理系统及方法
JP5658197B2 (ja) * 2012-06-04 2015-01-21 株式会社日立製作所 計算機システム、仮想化機構、及び計算機システムの制御方法
CN102724306A (zh) * 2012-06-13 2012-10-10 中山大学 一种基于云计算下的数据迁移方法及其系统
US9575851B1 (en) * 2012-06-27 2017-02-21 EMC IP Holding Company LLC Volume hot migration
EP2687982A1 (en) * 2012-07-16 2014-01-22 NTT DoCoMo, Inc. Hierarchical system for managing a plurality of virtual machines, method and computer program
US9772866B1 (en) 2012-07-17 2017-09-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
US9471355B2 (en) 2012-07-31 2016-10-18 Hewlett-Packard Development Company, L.P. Secure operations for virtual machines
CN102855299A (zh) * 2012-08-16 2013-01-02 上海引跑信息科技有限公司 不中断服务条件下,分布式数据库迭代迁移的方法
JP6094112B2 (ja) * 2012-09-20 2017-03-15 富士通株式会社 ストレージシステム、ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム
US8924443B2 (en) * 2012-10-05 2014-12-30 Gary Robin Maze Document management systems and methods
KR101478354B1 (ko) * 2012-12-12 2015-01-02 한국전자통신연구원 가상 데스크탑 서비스를 위한 이미지 복사 방법
US10162873B2 (en) * 2012-12-21 2018-12-25 Red Hat, Inc. Synchronization of physical disks
CN103885811B (zh) * 2012-12-21 2017-05-31 中国电信股份有限公司 虚拟机系统全系统在线迁移的方法、系统与装置
CN103019847B (zh) * 2012-12-24 2016-04-13 创新科存储技术(深圳)有限公司 对虚拟机数据进行迁移的方法及系统
CN103902233B (zh) * 2012-12-27 2018-09-11 中国电信股份有限公司 虚拟机系统的在线存储迁移方法、装置与服务器
US9817766B1 (en) * 2012-12-28 2017-11-14 EMC IP Holding Company LLC Managing relocation of slices in storage systems
CN103914474B (zh) * 2013-01-05 2018-12-28 腾讯科技(深圳)有限公司 一种数据迁移方法及系统
US20140281306A1 (en) * 2013-03-14 2014-09-18 Hitachi, Ltd. Method and apparatus of non-disruptive storage migration
US9239689B2 (en) * 2013-03-28 2016-01-19 Red Hat Israel, Ltd. Live migration of virtual disks
CN103294546B (zh) * 2013-04-03 2016-04-20 华中科技大学 多维度资源性能干扰感知的虚拟机在线迁移方法及系统
US9940019B2 (en) 2013-06-12 2018-04-10 International Business Machines Corporation Online migration of a logical volume between storage systems
US9274989B2 (en) 2013-06-12 2016-03-01 International Business Machines Corporation Impersonating SCSI ports through an intermediate proxy
US9274916B2 (en) 2013-06-12 2016-03-01 International Business Machines Corporation Unit attention processing in proxy and owner storage systems
US8819317B1 (en) 2013-06-12 2014-08-26 International Business Machines Corporation Processing input/output requests using proxy and owner storage systems
US9779003B2 (en) 2013-06-12 2017-10-03 International Business Machines Corporation Safely mapping and unmapping host SCSI volumes
US9769062B2 (en) 2013-06-12 2017-09-19 International Business Machines Corporation Load balancing input/output operations between two computers
CN103399778B (zh) * 2013-07-01 2016-12-28 华为技术有限公司 一种虚拟机在线整体迁移方法和设备
WO2015000503A1 (en) * 2013-07-02 2015-01-08 Hitachi Data Systems Engineering UK Limited Method and apparatus for migration of a virtualized file system, data storage system for migration of a virtualized file system, and file server for use in a data storage system
US20150032961A1 (en) * 2013-07-23 2015-01-29 Lexmark International Technologies S.A. System and Methods of Data Migration Between Storage Devices
US9882984B2 (en) * 2013-08-02 2018-01-30 International Business Machines Corporation Cache migration management in a virtualized distributed computing system
CN107219999B (zh) * 2013-08-31 2020-06-26 华为技术有限公司 一种服务器中内存模块的数据迁移方法及服务器
CN104468150A (zh) * 2013-09-12 2015-03-25 阿里巴巴集团控股有限公司 一种虚拟主机实现故障迁移的方法及虚拟主机业务装置
CN103500146B (zh) * 2013-09-30 2016-04-27 北京邮电大学 虚拟机磁盘存储数据迁移方法和系统
WO2015054832A1 (en) 2013-10-16 2015-04-23 Empire Technology Development Llc Two-level cloud system migration
CN103559084B (zh) * 2013-10-17 2016-10-26 电子科技大学 一种节能数据中心的虚拟机迁移方法
CN103744765B (zh) * 2013-10-25 2017-04-12 中国科学院计算技术研究所 一种虚拟化环境下的磁盘访问请求监控系统及其方法
CN103577249B (zh) * 2013-11-13 2017-06-16 中国科学院计算技术研究所 虚拟机在线迁移方法与系统
CN103647656B (zh) * 2013-12-09 2017-04-12 华为软件技术有限公司 计费节点负载控制方法、数据访问控制方法及节点
US9436751B1 (en) * 2013-12-18 2016-09-06 Google Inc. System and method for live migration of guest
CN103645936B (zh) * 2013-12-18 2016-08-17 四川卫士通信息安全平台技术有限公司 一种基于设备模拟的数据卡虚拟化实现方法
CN105612498B (zh) * 2013-12-31 2018-03-09 华为技术有限公司 虚拟机热迁移的方法、虚拟机内存数据处理方法、服务器和虚拟机系统
CN103699429A (zh) * 2013-12-31 2014-04-02 华为技术有限公司 虚拟机迁移方法及装置
WO2015100622A1 (zh) 2013-12-31 2015-07-09 华为技术有限公司 虚拟机热迁移的方法和服务器
CN103745170B (zh) * 2014-01-02 2017-01-04 浙江云巢科技有限公司 磁盘数据的处理方法及装置
US20150244795A1 (en) * 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
CN104866234B (zh) * 2014-02-21 2019-01-22 腾讯科技(北京)有限公司 数据迁移方法、装置及系统
US9509769B2 (en) * 2014-02-28 2016-11-29 Sap Se Reflecting data modification requests in an offline environment
US10235053B1 (en) * 2014-03-31 2019-03-19 Emc Corporation Method and system for using host driver for flexible allocation fast-sideways data movements
US10339010B1 (en) 2014-04-05 2019-07-02 Bruce Talley Systems and methods for synchronization of backup copies
US9864874B1 (en) * 2014-05-21 2018-01-09 Amazon Technologies, Inc. Management of encrypted data storage
WO2015186248A1 (ja) * 2014-06-06 2015-12-10 株式会社日立製作所 ストレージシステム、計算機システム及びデータ移行方法
CN106804112B (zh) * 2014-06-17 2021-11-16 诺基亚通信公司 用于控制虚拟机的方法和装置
US9959203B2 (en) * 2014-06-23 2018-05-01 Google Llc Managing storage devices
US10067715B2 (en) 2014-06-27 2018-09-04 Hewlett Packard Enterprise Development Lp Buffer-based update of state data
US11099763B1 (en) * 2014-06-30 2021-08-24 Pure Storage, Inc. Migrating generational storage to a decentralized agreement protocol paradigm
US10402113B2 (en) * 2014-07-31 2019-09-03 Hewlett Packard Enterprise Development Lp Live migration of data
US10540109B2 (en) 2014-09-02 2020-01-21 Hewlett Packard Enterprise Development Lp Serializing access to fault tolerant memory
US10204019B1 (en) 2014-09-07 2019-02-12 Nakivo, Inc. Systems and methods for instantiation of virtual machines from backups
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
CN105404587B (zh) * 2014-09-15 2018-09-07 杭州华为数字技术有限公司 一种数据搬移方法及装置
WO2016064417A1 (en) 2014-10-24 2016-04-28 Hewlett Packard Enterprise Development Lp End-to-end negative acknowledgment
CN104965757B (zh) * 2015-01-21 2018-03-30 深圳市腾讯计算机系统有限公司 虚拟机热迁移的方法、虚拟机迁移管理装置及系统
WO2016122642A1 (en) 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Determine failed components in fault-tolerant memory
US10409681B2 (en) 2015-01-30 2019-09-10 Hewlett Packard Enterprise Development Lp Non-idempotent primitives in fault-tolerant memory
WO2016122610A1 (en) 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Preventing data corruption and single point of failure in a fault-tolerant memory
US10721181B1 (en) * 2015-03-10 2020-07-21 Amazon Technologies, Inc. Network locality-based throttling for automated resource migration
WO2016159996A1 (en) 2015-03-31 2016-10-06 Hewlett Packard Enterprise Development Lp Preventing data corruption and single point of failure in fault-tolerant memory fabrics
CN104866372B (zh) * 2015-05-13 2018-02-27 华中科技大学 一种面向服务器整合的高效物理机到虚拟机转换方法
US10228969B1 (en) * 2015-06-25 2019-03-12 Amazon Technologies, Inc. Optimistic locking in virtual machine instance migration
US10970110B1 (en) 2015-06-25 2021-04-06 Amazon Technologies, Inc. Managed orchestration of virtual machine instance migration
US10678576B1 (en) * 2015-06-30 2020-06-09 EMC IP Holding Company LLC Managing data storage migration for virtual machines
US10535011B2 (en) 2015-07-23 2020-01-14 International Business Machines Corporation Predicting capacity based upon database elements
CN106484312B (zh) * 2015-09-01 2019-07-26 北京金山云网络技术有限公司 一种虚拟机磁盘数据迁移方法及装置
CN106649335A (zh) * 2015-10-30 2017-05-10 阿里巴巴集团控股有限公司 一种数据处理方法及装置
US9753670B2 (en) * 2015-11-05 2017-09-05 International Business Machines Corporation Prioritizing memory pages to copy for memory migration
US9875058B2 (en) 2015-11-05 2018-01-23 International Business Machines Corporation Prioritizing pages to transfer for memory sharing
US10768959B2 (en) * 2015-11-24 2020-09-08 Red Hat Israel, Ltd. Virtual machine migration using memory page hints
CN105488139B (zh) * 2015-11-25 2018-11-30 国电南瑞科技股份有限公司 基于用电信息采集系统的跨平台存储数据迁移的方法
CN105404474A (zh) * 2015-12-07 2016-03-16 上海爱数信息技术股份有限公司 一种异构分布式存储系统的数据迁移方法
CN105511816A (zh) * 2015-12-14 2016-04-20 浪潮(北京)电子信息产业有限公司 一种虚拟机磁盘数据迁移方法及系统
CN105653630B (zh) * 2015-12-25 2019-12-24 北京奇虎科技有限公司 分布式数据库的数据迁移方法与装置
US10210010B1 (en) 2015-12-30 2019-02-19 Nutanix, Inc. Network reconfiguration in hypervisor-agnostic disaster recovery scenarios
CN106970915A (zh) * 2016-01-13 2017-07-21 阿里巴巴集团控股有限公司 一种业务系统数据迁移的处理方法及装置
US9946569B1 (en) 2016-02-08 2018-04-17 Nutanix, Inc. Virtual machine bring-up with on-demand processing of storage requests
CN105653212B (zh) * 2016-03-09 2019-07-12 浙江宇视科技有限公司 一种vd的均衡处理方法和装置
US9936019B2 (en) 2016-03-16 2018-04-03 Google Llc Efficient live-migration of remotely accessed data
US10467103B1 (en) 2016-03-25 2019-11-05 Nutanix, Inc. Efficient change block training
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
CN106227587B (zh) * 2016-07-19 2019-05-10 浪潮(北京)电子信息产业有限公司 一种带快照虚拟机整机动态迁移方法及装置
CN106227469A (zh) * 2016-07-28 2016-12-14 乐视控股(北京)有限公司 用于分布式存储集群的数据删除方法及系统
US10152386B1 (en) * 2016-07-29 2018-12-11 Nutanix, Inc. Efficient disaster rollback across heterogeneous storage systems
CN106469085B (zh) * 2016-08-31 2019-11-08 北京航空航天大学 虚拟机在线迁移方法、装置及系统
CN106445633A (zh) * 2016-09-13 2017-02-22 中国电子科技集团公司第三十二研究所 通过nvram提升虚拟机性能的方法和系统
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
CN107885758B (zh) * 2016-09-30 2021-11-19 华为技术有限公司 一种虚拟节点的数据迁移方法和虚拟节点
US10783046B2 (en) 2016-11-22 2020-09-22 Nutanix, Inc. Executing resource management operations in distributed computing systems
GB2557366B (en) * 2016-12-02 2020-10-28 Advanced Risc Mach Ltd An apparatus and method for transferring data between address ranges in memory
CN106648468A (zh) * 2016-12-29 2017-05-10 郑州云海信息技术有限公司 一种数据迁移过程中对io请求的控制方法及系统
US10530870B2 (en) * 2017-01-04 2020-01-07 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Direct volume migration in a storage area network
WO2018185771A1 (en) 2017-04-06 2018-10-11 Technion Research And Development Foundation Ltd. Moving replicated data in a cloud environment
CN107122235B (zh) * 2017-04-19 2020-09-29 中国舰船研究设计中心 基于应用优先级的公共基础设施资源调度方法
US11275599B1 (en) * 2017-05-09 2022-03-15 Tintri By Ddn, Inc. Hypervisor remote offload for VM data migration between storage devices
CN107197013B (zh) * 2017-05-19 2020-03-20 东莞市盟大塑化科技有限公司 一种增强云计算环境节能系统
US10389342B2 (en) 2017-06-28 2019-08-20 Hewlett Packard Enterprise Development Lp Comparator
CN109213566B (zh) * 2017-06-29 2022-05-13 华为技术有限公司 一种虚拟机迁移的方法、装置和设备
US11216203B2 (en) 2017-09-27 2022-01-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and reallocation component for managing reallocation of information from source to target memory sled
CN109725827B (zh) * 2017-10-27 2022-05-13 伊姆西Ip控股有限责任公司 管理存储系统的方法、系统和计算机程序产品
CN109753229B (zh) * 2017-11-08 2020-09-18 华为技术有限公司 数据迁移方法、装置、网络附属存储设备和存储介质
US10831409B2 (en) 2017-11-16 2020-11-10 International Business Machines Corporation Volume reconfiguration for virtual machines
US10540112B2 (en) * 2018-02-06 2020-01-21 Nutanix, Inc. System and method for migrating virtual machines with storage while in use
US10509567B2 (en) 2018-02-06 2019-12-17 Nutanix, Inc. System and method for migrating storage while in use
US10509584B2 (en) 2018-02-06 2019-12-17 Nutanix, Inc. System and method for using high performance storage with tunable durability
US11074099B2 (en) 2018-02-06 2021-07-27 Nutanix, Inc. System and method for storage during virtual machine migration
US10817333B2 (en) 2018-06-26 2020-10-27 Nutanix, Inc. Managing memory in devices that host virtual machines and have shared memory
CN109189554A (zh) * 2018-08-20 2019-01-11 郑州云海信息技术有限公司 一种虚拟机整机热迁移的方法及装置
WO2020069654A1 (en) * 2018-10-01 2020-04-09 Huawei Technologies Co., Ltd. Method of handling snapshot creation request and storage device thereof
CN109460188A (zh) * 2018-11-13 2019-03-12 郑州云海信息技术有限公司 一种数据迁移方法、系统、设备及计算机可读存储介质
US10924587B1 (en) * 2019-05-01 2021-02-16 Amazon Technologies, Inc. Live migration for highly available data stores
US11119994B1 (en) * 2019-06-06 2021-09-14 Amazon Technologies, Inc. Record-by-record live migration using segmentation
CN110688064A (zh) * 2019-09-05 2020-01-14 浪潮电子信息产业股份有限公司 一种虚拟磁盘迁移方法、装置、设备及可读存储介质
US11620233B1 (en) * 2019-09-30 2023-04-04 Amazon Technologies, Inc. Memory data migration hardware
CN110795035B (zh) * 2019-10-18 2022-07-22 浪潮电子信息产业股份有限公司 一种迁移时间确定方法、装置、设备及可读存储介质
CN111124615A (zh) * 2019-12-22 2020-05-08 北京浪潮数据技术有限公司 一种虚拟机迁移方法、装置、设备及计算机可读存储介质
CN111104206B (zh) * 2019-12-25 2023-09-01 曙光信息产业(北京)有限公司 虚拟机存储迁移方法、装置和计算机设备
CN111273870B (zh) * 2020-01-20 2023-06-06 深圳奥思数据科技有限公司 云存储系统间海量数据迭代迁移方法、设备及存储介质
CN111427868B (zh) * 2020-04-06 2023-05-09 中信银行股份有限公司 数据库迁移中操作请求的处理方法、装置和电子设备
US11409619B2 (en) 2020-04-29 2022-08-09 The Research Foundation For The State University Of New York Recovering a virtual machine after failure of post-copy live migration
CN111581028A (zh) * 2020-05-12 2020-08-25 上海英方软件股份有限公司 一种基于数据块的数据快速备份和一致性验证方法及系统
CN112433669A (zh) * 2020-10-23 2021-03-02 苏州浪潮智能科技有限公司 一种分布式存储卷在线迁移的方法、系统、设备及介质
CN113407114B (zh) * 2021-05-26 2022-03-04 青海师范大学 一种基于热数据和删除重复操作的在线扩容io调度方法
CN113535331B (zh) * 2021-07-30 2024-02-27 新华三大数据技术有限公司 一种数据迁移方法、装置
CN114327745B (zh) * 2021-11-25 2022-10-25 北京志凌海纳科技有限公司 一种跨主机虚拟机存储热迁移的方法及系统
CN117009147A (zh) * 2023-09-28 2023-11-07 新华三技术有限公司 一种云平台虚拟机的数据备份方法、装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464812A (zh) * 2009-01-06 2009-06-24 北京航空航天大学 一种虚拟机迁移方法
JP2010039685A (ja) * 2008-08-04 2010-02-18 Hitachi Ltd 複合型計算機及び複合型計算機の制御方法
US20100082922A1 (en) * 2008-09-30 2010-04-01 Vmware, Inc. Virtual machine migration using local storage
JP2010237737A (ja) * 2009-03-30 2010-10-21 Nec Corp パススルーi/oデバイスを伴うlparの動的マイグレーション装置、その方法及びそのプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007042115A (ja) * 2001-11-02 2007-02-15 Nec Corp スイッチ方法、装置およびプログラム
US7146389B2 (en) * 2002-08-30 2006-12-05 Hitachi, Ltd. Method for rebalancing free disk space among network storages virtualized into a single file system view
US7613889B2 (en) * 2004-06-10 2009-11-03 International Business Machines Corporation System, method, and program for determining if write data overlaps source data within a data migration scheme
US7343467B2 (en) 2004-12-20 2008-03-11 Emc Corporation Method to perform parallel data migration in a clustered storage environment
JP2008021252A (ja) * 2006-07-14 2008-01-31 Hitachi Ltd 計算機システム及びアドレス割当方法
US20080016390A1 (en) * 2006-07-13 2008-01-17 David Maxwell Cannon Apparatus, system, and method for concurrent storage pool migration and backup
JP5244332B2 (ja) * 2006-10-30 2013-07-24 株式会社日立製作所 情報システム、データ転送方法及びデータ保護方法
US8341459B2 (en) * 2007-08-01 2012-12-25 Brocade Communications Systems, Inc. Data migration without interrupting host access and with data lock for write access requests such that held write access requests do not expire
JP2010123055A (ja) * 2008-11-21 2010-06-03 Fujitsu Ltd データ移行プログラム,データ移行方法及びデータ移行装置
JP5218252B2 (ja) * 2009-04-24 2013-06-26 富士通株式会社 バススイッチ,コンピュータシステム及びコンピュータシステムの管理方法
JP5284905B2 (ja) * 2009-08-12 2013-09-11 富士通株式会社 データ移行方法、及びプログラム
JP5585820B2 (ja) * 2010-04-14 2014-09-10 株式会社日立製作所 データ転送装置、計算機システム及びメモリコピー装置
US8490088B2 (en) * 2010-09-10 2013-07-16 International Business Machines Corporation On demand virtual machine image streaming
WO2012063334A1 (ja) * 2010-11-10 2012-05-18 株式会社日立製作所 仮想マシンのライブマイグレーションを支援するためのメモリ制御装置及びi/oスイッチ
CN102073462B (zh) 2010-11-29 2013-04-17 华为技术有限公司 虚拟存储迁移方法、系统和虚拟机监控器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010039685A (ja) * 2008-08-04 2010-02-18 Hitachi Ltd 複合型計算機及び複合型計算機の制御方法
US20100082922A1 (en) * 2008-09-30 2010-04-01 Vmware, Inc. Virtual machine migration using local storage
CN101464812A (zh) * 2009-01-06 2009-06-24 北京航空航天大学 一种虚拟机迁移方法
JP2010237737A (ja) * 2009-03-30 2010-10-21 Nec Corp パススルーi/oデバイスを伴うlparの動的マイグレーション装置、その方法及びそのプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104684068A (zh) * 2013-11-29 2015-06-03 中国移动通信集团公司 一种数据同步的方法和设备
CN104684068B (zh) * 2013-11-29 2018-06-26 中国移动通信集团公司 一种数据同步的方法和设备
CN109558068A (zh) * 2017-09-27 2019-04-02 北京忆恒创源科技有限公司 数据迁移方法及迁移系统
CN109558068B (zh) * 2017-09-27 2024-04-05 北京忆恒创源科技股份有限公司 数据迁移方法及迁移系统
CN111324413A (zh) * 2018-12-14 2020-06-23 中移(杭州)信息技术有限公司 一种数据迁移方法及数据迁移管理设备
CN111324413B (zh) * 2018-12-14 2023-08-15 中移(杭州)信息技术有限公司 一种数据迁移方法及数据迁移管理设备

Also Published As

Publication number Publication date
CN102073462A (zh) 2011-05-25
JP5459811B2 (ja) 2014-04-02
US9411620B2 (en) 2016-08-09
US20120137098A1 (en) 2012-05-31
EP2437167A4 (en) 2012-06-13
EP2437167B1 (en) 2015-11-25
CN102073462B (zh) 2013-04-17
KR101403417B1 (ko) 2014-06-03
EP2437167A1 (en) 2012-04-04
KR20120096489A (ko) 2012-08-30
JP2013515303A (ja) 2013-05-02

Similar Documents

Publication Publication Date Title
WO2011137780A1 (zh) 虚拟存储迁移方法、系统和虚拟机监控器
US9116737B2 (en) Conversion of virtual disk snapshots between redo and copy-on-write technologies
US8458413B2 (en) Supporting virtual input/output (I/O) server (VIOS) active memory sharing in a cluster environment
US9055119B2 (en) Method and system for VM-granular SSD/FLASH cache live migration
US8959323B2 (en) Remote restarting client logical partition on a target virtual input/output server using hibernation data in a cluster aware data processing system
Vaghani Virtual machine file system
US9292211B2 (en) Computer system and data migration method
US8875134B1 (en) Active/active storage and virtual machine mobility over asynchronous distances
US20220121473A1 (en) Method For Migrating Virtual Machine And Apparatus
US9454417B1 (en) Increased distance of virtual machine mobility over asynchronous distances
US8799557B1 (en) System and method for non-volatile random access memory emulation
JP5718533B1 (ja) ストレージシステムのデータ移行方法
US20170359414A1 (en) Management of Advanced Connection State During Migration
JP6663478B2 (ja) データ移行方法及び計算機システム
US9571584B2 (en) Method for resuming process and information processing system
JP2012018556A (ja) 計算機システム及び計算機システムの系切替制御方法
JP2016115253A (ja) 情報処理装置、メモリ管理方法およびメモリ管理プログラム
JP6028415B2 (ja) 仮想サーバ環境のデータ移行制御装置、方法、システム
US10620856B2 (en) Input/output (I/O) fencing with persistent reservation information in shared virtual storage environments
WO2023246843A1 (zh) 数据处理方法、装置及系统
JP2014035767A (ja) I/oデバイス、i/o管理部及びi/oデバイスの管理方法
US8726067B1 (en) Utilizing both application and storage networks for distributed storage over asynchronous distances
US10474394B2 (en) Persistent reservation emulation in shared virtual storage environments
US10530870B2 (en) Direct volume migration in a storage area network
WO2023231572A1 (zh) 一种容器的创建方法、装置及存储介质

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2011777199

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11777199

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012545079

Country of ref document: JP

Ref document number: 4257/CHENP/2012

Country of ref document: IN

ENP Entry into the national phase

Ref document number: 20127012579

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE