Data processing method in virtualized environment, and related device

By booting a new operating system on the original operating system and transferring the runtime environment and status data, the problems of resource waste and long-term interruption during cloud service software upgrades are solved, and efficient virtualization device migration is achieved.

WO2025227768A1PCT designated stage Publication Date: 2025-11-06HUAWEI TECH CO LTD
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/140481
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-04-30
Filing Date
2024-12-19
Publication Date
2025-11-06

AI Technical Summary

Technical Problem

Existing technologies require a backup host machine to temporarily accommodate virtual machines during cloud service software upgrades, resulting in resource waste and long virtual machine hot migration times, leading to prolonged service interruptions for users.

Method used

The new operating system is started on the original operating system. The startup dependency process of the virtualization device is created using the image file, and the running environment and status data of the original virtualization device are passed to the dependency process to realize the migration of the virtualization device, avoid the need for backup equipment and reduce the amount of data transmission.

Benefits of technology

It effectively reduced the downtime of virtualization device services, avoided resource waste, improved migration efficiency and reliability, and shortened downtime.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024140481_06112025_PF_FP_ABST
    Figure CN2024140481_06112025_PF_FP_ABST
Patent Text Reader

Abstract

A data processing method in a virtualized environment, applied to scenarios where execution of service migration of virtualized devices is required to implement software version upgrading related to the virtualized devices. In the method, during running of an original virtualized device, a new operating system is started on the same apparatus to run a start dependent process of a new virtualized device, and after a running environment of the original virtualized device is transmitted to the start dependent process in advance, running of the original virtualized device is stopped and state data of the original virtualized device is transmitted to the start dependent process to start the new virtualized device, thereby effectively reducing the amount of data transmitted when running of the virtualized device is stopped, effectively shortening the service interruption time, and avoiding resource waste because no additional standby apparatus needs to be prepared to run the virtualized device.
Need to check novelty before this filing date? Find Prior Art

Description

Data processing method of virtualization environment and related apparatus

[0001] The present application claims priority from the Chinese patent application No. 202410564484.6 filed on April 30, 2024, and entitled "Data processing method of virtualization environment and related apparatus", the content of which is incorporated herein by reference in its entirety. TECHNICAL FIELD

[0002] The present application relates to the field of cloud computing technology, and in particular, to a data processing method of virtualization environment and related apparatus. BACKGROUND

[0003] A cloud service provider usually runs a virtual machine on a host machine to provide corresponding cloud services for users. In order to support the normal operation of the virtual machine business, the cloud service provider runs necessary cloud service software on the host machine, such as an operating system, cloud service management software, cloud storage service software, cloud network service software, and cloud virtualization software.

[0004] During the running of the cloud service software, in order to add new features or fix bugs, it is often necessary to upgrade and update. Among them, most of the cloud service software will interrupt the data services provided to users during the upgrade process. Therefore, in order to ensure the high availability of cloud services, it is necessary to shorten the interruption time of user business as much as possible during the cloud service software update process.

[0005] At present, the process of executing cloud service software update in the related technology is: migrating the virtual machine from the original host machine to the idle standby host machine, and then completing the upgrade of the cloud service software on the original host machine through the shutdown and restart mode; after the cloud service software on the original host machine is upgraded, migrating the virtual machine from the standby host machine back to the original host machine.

[0006] However, the cloud service software update method in the related technology needs standby host machines to temporarily accommodate virtual machines, and these standby host machines are only used during hot migration, so a large amount of resources is wasted. In addition, a large amount of data needs to be transmitted through the network during the virtual machine hot migration process, and the hot migration time is long, resulting in a long interruption time of user business. SUMMARY

[0007] The present application provides a data processing method of virtualization environment, which can effectively reduce the business interruption time caused by virtualization device business migration.

[0008] In a first aspect, a data processing method of a virtualization environment is provided, which is applied to a scenario of software version upgrade of a virtualization device and needs to perform service migration of the virtualization device. The method comprises the following steps. First, an image file is obtained, the image file comprising files relied on by the virtualization device for starting. That is, the image file is a file required for starting a new virtualization device, and the image file can comprise a plurality of files of different types, such as program files and configuration files used for starting the virtualization device. The virtualization device can be a virtual machine or a container.

[0009] During running of the first operating system, the second operating system is started based on the image file. The first operating system runs the first virtualization device providing cloud services, and the first virtualization device is also in a running state and used to provide cloud services for users. The second operating system is used to run a starting dependent process of the second virtualization device, and the first operating system and the second operating system run on the same device. The starting dependent process of the second virtualization device can be one or more processes, such as at least one of a process generated by a cloud storage service software runtime, a process generated by a cloud network service software runtime, and a process generated by a cloud virtualization software runtime.

[0010] Then, the running environment of the first virtualization device is passed to the starting dependent process, so that the starting dependent process creates a running environment for the second virtualization device. During the passing of the running environment to the starting dependent process and the creation of the running environment by the starting dependent process, the first virtualization device does not stop running but keeps running, so as to ensure normal execution of services.

[0011] Secondly, the first virtualization device is stopped, and state data generated by the first virtualization device during running is passed to the starting dependent process, so as to ensure that the starting dependent process can restore services executed by the first virtualization device before the first virtualization device is stopped when starting the second virtualization device.

[0012] Finally, based on the state data generated by the first virtualization device, the second virtualization device is run, and the second virtualization device is used to continue to execute the services executed by the first virtualization device before the first virtualization device is stopped.

[0013] In the scheme, during normal running of the original operating system, a new operating system is started based on the files relied on by the virtualization device, and the new operating system is used to run the starting dependent process of the virtualization device. When the new operating system is running, the running environment of the virtualization device on the original operating system is transferred to the starting dependent process in advance, so that the starting dependent process creates a running environment for the new virtualization device in advance. Then, after the original virtualization device is stopped, the state data generated when the original virtualization device is running is transferred to the starting dependent process, so that the newly started virtualization device of the starting dependent process can continue to perform the service performed by the original virtualization device, thereby realizing migration of the service of the virtualization device. In the scheme, a new operating system is started on the same device to run the starting dependent process of the new virtualization device during running of the original virtualization device, and the running environment of the original virtualization device is transferred to the starting dependent process in advance, then the original virtualization device is stopped and the state data of the original virtualization device is transferred to the starting dependent process to start the new virtualization device, which effectively reduces the amount of data transmitted when the virtualization device is stopped, effectively reduces the service interruption time, and avoids wasting resources by preparing a standby device to run the virtualization device.

[0014] In a possible implementation, the process of obtaining the image file can include: based on the file type relied on by the virtualization device, extracting the file relied on by the virtualization device from the virtualization device file set to obtain the image file. The virtualization device file set includes the file relied on by the virtualization device and the file used to start the virtualization device management service, and the virtualization device file set is a file set after software version upgrade.

[0015] The file type relied on by the virtualization device can be indicated by a configuration file prepared in advance, for example, the type of program file and / or the type of configuration file relied on by the virtualization device are recorded in the configuration file. In this way, the execution device can obtain the file type to be extracted from the virtualization device file set by reading the configuration file prepared in advance, and then extract the image file.

[0016] In the scheme, based on the pre-defined file type relied on by the virtualization device, the minimum file set relied on by the virtualization device can be extracted from the virtualization device file set, thereby generating the image file, and the resources occupied during running of the image file are reduced as much as possible.

[0017] In a possible implementation, based on the state data, the process of running the second virtualization apparatus can include: determining a storage area where the virtualization apparatus file set is located; then, based on the files stored in the storage area, starting a virtualization apparatus management service, which is used to take over the second virtualization apparatus; and after the virtualization apparatus management service takes over the second virtualization apparatus, running the second virtualization apparatus based on the state data.

[0018] In this solution, in the process of starting the virtualization apparatus, only the files relied on by the virtualization apparatus are extracted from the virtualization apparatus file set, and after the starting of the virtualization apparatus is implemented, the virtualization apparatus management service is started based on the virtualization apparatus file set to take over the started virtualization apparatus, so that the separation of the data plane and the control plane is implemented. On the one hand, the separation of the data plane and the control plane reduces the device resources occupied when a new virtualization apparatus is started during the running of the original virtualization apparatus; on the other hand, the separation of the data plane and the control plane guarantees the reliability of starting a new virtualization apparatus based on the running virtualization apparatus, and avoids the failure of the virtualization apparatus caused by the control plane controlling the virtualization apparatus according to the set control logic during the starting of the new virtualization apparatus.

[0019] In a possible implementation, in the process of running the second virtualization apparatus, the storage area where the mirror file is located is mounted as a read-only layer, and the storage area where the virtualization apparatus file set is located is mounted as a read-write layer, and the second virtualization apparatus is mounted in a stacked manner to enable the read-write operation on the storage area where the virtualization apparatus file set is located during the running of the second virtualization apparatus.

[0020] That is, when the second virtualization apparatus runs, if the read-write operation on the file in the disk is needed, the read-write operation is not performed on the mirror file used to start the second virtualization apparatus, but the read-write operation is performed on the additionally mounted virtualization apparatus file set. In this way, the mirror file used to start the second virtualization apparatus is actually a read-only mirror file, and is only used to be loaded into the memory to realize the fast starting of the second virtualization apparatus. After the starting of the second virtualization apparatus, the second virtualization apparatus is also mounted to the virtualization apparatus file set to ensure the normal running of the second virtualization apparatus.

[0021] In a possible implementation, to implement the transmission of the running environment of the first virtualization device to the start-dependent process, the data corresponding to the running environment of the first virtualization device can be stored in the shared memory first; then, the start-dependent process of the second virtualization device is informed to obtain the data corresponding to the running environment of the first virtualization device from the shared memory. In this way, after the start-dependent process obtains the notification message, the start-dependent process can read the data corresponding to the running environment of the first virtualization device from the shared memory, thereby creating the running environment for the second virtualization device.

[0022] The shared memory is a memory space divided for communication between different processes. Since the first operating system and the second operating system are both running in the same device, the process responsible for transmitting the running environment in the first operating system can write the data corresponding to the running environment into the shared memory, and then inform the start-dependent process to take out the data corresponding to the running environment from the shared memory, thereby efficiently implementing the transmission of the running environment.

[0023] In a possible implementation, the transmission of the running environment of the first virtualization device to the start-dependent process includes: transmitting the network-facing running environment, the storage-facing running environment and the virtualization environment of the first virtualization device to the start-dependent process. The network-facing running environment is used to establish the connection between the second virtualization device and the external network, the storage-facing running environment is used to establish the connection between the second virtualization device and the storage device, and the virtualization environment is used to run the second virtualization device.

[0024] In a possible implementation, a virtual communication device can be established on the first operating system. In the process of establishing the connection between the start-dependent process and the remote storage device by the second virtualization device, the virtual communication device on the first operating system is used to forward the communication data between the start-dependent process and the remote storage device.

[0025] In this scheme, when the new operating system is started during the running of the original operating system, the communication data between the start-dependent process in the new operating system and the external network device can be forwarded by the original operating system proxy, so that the new physical network port does not need to be configured for the new operating system to realize the communication with the external network in the case of tight physical network port, thereby improving the realizability of the scheme.

[0026] In a possible implementation, to reduce the data transmission amount caused by the virtualization device service migration, when the running environment of the first virtualization device is passed to the starting dependent process, the address of the memory space used by the first virtualization device is passed to the starting dependent process, so that the starting dependent process configures the memory space used by the second virtualization device. The address of the memory space used by the second virtualization device is the same as the address of the memory space used by the first virtualization device.

[0027] In the scheme, by allocating the same memory space to the original virtualization device and the new virtualization device, the original virtualization device can be directly taken over by the new virtualization device for the corresponding memory space after the original virtualization device stops running. On the one hand, the memory space required for creating the new virtualization device can be effectively reduced, and it is ensured that starting two operating systems on the same device does not require too much memory resource. On the other hand, the data amount required for the virtualization device service migration can be reduced, the efficiency of the virtualization device service migration is improved, and the service interruption time is shortened.

[0028] In a possible implementation, the mirror file includes at least one of a file for providing a cloud network service, a file for providing a cloud storage service, and a file for providing a virtualization environment.

[0029] In a possible implementation, the version of the second operating system is obtained by performing an update on the version of the first operating system, that is, the software version of the operating system is upgraded.

[0030] Alternatively, the version of the second virtualization device is obtained by performing an update on the version of the first virtualization device. The version of the second virtualization device performing the update can mean that the version of any one or more of the cloud storage service software, the cloud network service software, and the cloud virtualization software used for starting the second virtualization device performs the update.

[0031] In a second aspect, a data processing apparatus of a virtualization environment is provided, comprising: an obtaining module configured to obtain an image file, the image file comprising files relied on by a virtualization apparatus to start up; a processing module configured to start up a second operating system based on the image file during running of a first operating system, wherein the first operating system runs a first virtualization apparatus providing cloud services, the second operating system is configured to run a start-up dependent process of a second virtualization apparatus, and the first operating system and the second operating system run on a same device; the processing module is further configured to pass a running environment of the first virtualization apparatus to the start-up dependent process, so that the start-up dependent process creates a running environment for the second virtualization apparatus; the processing module is further configured to stop running the first virtualization apparatus, and pass state data generated during running of the first virtualization apparatus to the start-up dependent process; and the processing module is further configured to run the second virtualization apparatus based on the state data, the second virtualization apparatus being configured to continue to perform a service performed by the first virtualization apparatus before the first virtualization apparatus stopped running.

[0032] In a possible implementation, the obtaining module is specifically configured to: extract the files relied on by the virtualization apparatus to start up from a virtualization apparatus file set based on a file type relied on by the virtualization apparatus to start up, to obtain the image file; wherein the virtualization apparatus file set comprises the files relied on by the virtualization apparatus to start up and files used to start up a virtualization apparatus management service, and the virtualization apparatus file set is a file set after a software version upgrade is performed.

[0033] In a possible implementation, the processing module is further configured to: determine a storage area where the virtualization apparatus file set is located; start up the virtualization apparatus management service based on files stored in the storage area; and run the second virtualization apparatus based on the state data after the virtualization apparatus management service takes over the second virtualization apparatus.

[0034] In a possible implementation, during running of the second virtualization apparatus, a storage area where the image file is located is taken as a read-only layer, and a storage area where the virtualization apparatus file set is located is taken as a read-write layer, and the second virtualization apparatus is mounted and run in a stacked manner, so that the second virtualization apparatus performs read-write operations on the storage area where the virtualization apparatus file set is located during running of the second virtualization apparatus.

[0035] In a possible implementation, the processing module is further configured to: store data corresponding to the running environment of the first virtualization apparatus in a shared memory; and notify the start-up dependent process to obtain the data corresponding to the running environment of the first virtualization apparatus from the shared memory.

[0036] In a possible implementation, the processing module is further configured to: pass the network side running environment, the storage side running environment, and the virtualization environment of the first virtualization device to the startup dependent process; the network side running environment is used to establish a connection between the second virtualization device and an external network, the storage side running environment is used to establish a connection between the second virtualization device and a storage device, and the virtualization environment is used to run the second virtualization device.

[0037] In a possible implementation, in a process in which the startup dependent process establishes a connection between the second virtualization device and the remote storage device, the virtual communication device on the first operating system is configured to forward communication data between the startup dependent process and the remote storage device.

[0038] In a possible implementation, the processing module is further configured to: pass an address of a memory space used by the first virtualization device to the startup dependent process, so that the startup dependent process configures the memory space used by the second virtualization device; the address of the memory space used by the second virtualization device is the same as the address of the memory space used by the first virtualization device.

[0039] In a possible implementation, the mirror image file includes at least one of a file used to provide a cloud network service, a file used to provide a cloud storage service, and a file used to provide a virtualization environment.

[0040] In a possible implementation, the version of the second operating system is obtained by performing an update on the version of the first operating system.

[0041] Alternatively, the version of the second virtualization device is obtained by performing an update on the version of the first virtualization device.

[0042] In a third aspect, a data processing apparatus of a virtualization environment is provided, which can include a processor and a memory coupled to the processor, and the memory stores program instructions. When the program instructions stored in the memory are executed by the processor, the method of the first aspect or any implementation manner of the first aspect is implemented. For the processor to execute the steps in each possible implementation manner of the first aspect, specific details can be referred to the first aspect, and will not be described here.

[0043] In a fourth aspect, a computer readable storage medium is provided, and the computer readable storage medium stores a computer program. When the computer program is run on a computer, the computer is caused to execute the method of any implementation manner of the first aspect.

[0044] In a fifth aspect, a circuit system is provided, and the circuit system includes a processing circuit. The processing circuit is configured to execute the method of any implementation manner of the first aspect.

[0045] In a sixth aspect, a computer program product is provided, which, when executed on a computer, causes the computer to perform the method of any implementation form of the first aspect.

[0046] In a seventh aspect, a chip system is provided, which comprises a processor for supporting a server to implement the functions involved in any implementation form of the first aspect, e.g., processing the data and / or information involved in the method. In a possible design, the chip system further comprises a memory for storing the program instructions and data necessary for the server. The chip system can be composed of a chip, or can comprise a chip and other discrete devices.

[0047] The advantages of the second aspect to the seventh aspect can refer to the introduction of the first aspect, which will not be repeated here. BRIEF DESCRIPTION OF DRAWINGS

[0048] FIG. 1 is a schematic diagram of a system architecture provided by the present application;

[0049] FIG. 2 is a structural schematic diagram of an execution device 101 provided by the present application;

[0050] FIG. 3 is a flow schematic diagram of a data processing method of a virtualization environment provided by the present application;

[0051] FIG. 4 is a schematic diagram of an architecture in which a virtualization apparatus runs;

[0052] FIG. 5 is a schematic diagram of an architecture in which a virtualization apparatus migrates services provided by the present application;

[0053] FIG. 6 is a flow schematic diagram of a system hot upgrade provided by the present application;

[0054] FIG. 7 is a schematic diagram of numerical control dynamic separation provided by the present application;

[0055] FIG. 8 is a schematic diagram of a comparison between a regular system startup and a hot upgrade startup provided by the present application;

[0056] FIG. 9 is a schematic diagram of implementing remote storage scanning based on a system communication bridge module provided by the present application;

[0057] FIG. 10 is a structural schematic diagram of a data processing apparatus of a virtualization environment provided by the present application;

[0058] FIG. 11 is a structural schematic diagram of a computing device provided by the present application;

[0059] FIG. 12 is a structural schematic diagram of a computing device cluster provided by the present application;

[0060] FIG. 13 is a structural schematic diagram of another computing device cluster provided by the present application;

[0061] FIG. 14 is a structural diagram of a computer readable storage medium provided by the present application. DETAILED DESCRIPTION

[0062] The technical solutions in the embodiments of the present application will be clearly and completely described in combination with the drawings in the embodiments of the present application. Obviously, the described embodiments are only some of the embodiments of the present application, not all the embodiments.

[0063] The terms "first", "second", "third", "fourth" and the like (if any) in the specification and claims of the present application and the above drawings are used to distinguish similar objects, and do not necessarily indicate a specific order or sequence. It should be understood that the data thus used can be interchanged under appropriate circumstances, so that the embodiments described herein can be implemented in an order other than that illustrated or described herein.

[0064] In addition, the terms "include" and "have" and any variations thereof are intended to cover non-exclusive inclusion, for example, a process, method, system, product or device that includes a list of steps or units does not necessarily limit to those clearly listed steps or units, but can include other steps or units not clearly listed or inherent to these processes, methods, products or devices.

[0065] For ease of understanding, some technical terms related to the embodiments of the present application will be introduced first.

[0066] (1) Virtual Machine (Virtual Machine)

[0067] Virtual machine refers to a complete computer system running in a completely isolated environment through software simulation, which has complete hardware system functions. The work that can be completed in the entity computer can be realized in the virtual machine. When creating a virtual machine in the computer, part of the hard disk and memory capacity of the entity machine needs to be used as the hard disk and memory capacity of the virtual machine. Moreover, each virtual machine has independent hard disk and operating system, and the virtual machine can be operated like using the entity machine.

[0068] (2) Host Machine

[0069] Host machine refers to a physical host or server that hosts virtual machines and manages virtual environments in virtualization technology. In virtualization, the host machine is responsible for creating, configuring and maintaining various virtual machines and virtual operating systems, and provides underlying resources to the virtual machine.

[0070] A host machine is a hardware infrastructure, and a virtual machine is a virtual environment managed by virtualization software on the host machine. Different operating systems and applications can run on the virtual machine, and the different operating systems and applications are independent of each other. The virtual machine running on the host machine can be increased or reduced at any time, which is achieved by dynamic allocation of resources by the host machine.

[0071] (3) Cold upgrade

[0072] Cold upgrade refers to upgrading the operating system kernel or other components by means of shutdown and restart. During cold upgrade, all services on the host machine are interrupted, and are restarted after the cold upgrade is completed.

[0073] (4) Hot migration

[0074] Hot migration refers to a method of migrating a virtual machine from one host machine to another host machine. During hot migration, the running state of the virtual machine is completely saved and restored on the destination host machine. During hot migration, the virtual machine stops executing services, resulting in service interruption.

[0075] (5) Cloud service software

[0076] In order to support the normal operation of virtual machine services, necessary cloud service software is usually run on the host machine. The cloud service software usually includes an operating system, cloud service management software, cloud storage service software, cloud network service software, and cloud virtualization software.

[0077] The operating system software is mainly used to enable and schedule physical server hardware capabilities, and provides a standard system application programming interface (API) to the upper layer software. Common operating systems on servers include Linux.

[0078] The cloud service management software is used to manage the life cycle of user virtual machines, such as virtual machine distribution, shutdown, migration, etc., and cluster scheduling of cloud service providers, such as load balancing, hot spot elimination, cluster switching, etc. Common cloud service management software includes Openstack.

[0079] The cloud storage service software is used to provide remote storage services, present remote storage arrays to virtual machines on the current host machine through network transmission, and provide operations such as remote storage disk mounting, unmounting, reading and writing. Common cloud storage service software includes SPDK and open-iscsi.

[0080] The cloud network service software is used to provide network services. Common cloud network service software includes openvswitch and dpdk.

[0081] Cloud virtualization software is used to provide virtual machine services, simulate cloud storage services, cloud network services through a virtualization emulator, and present specific virtual machine operating systems, cloud storage devices, and cloud network devices in virtual machines. Common cloud virtualization software includes KVM and Qemu, for example.

[0082] Among them, the cloud service management software is mainly responsible for cluster management and does not actually provide virtual machine data services, so it is usually called management and control plane software. The operating system, cloud storage service software, cloud network service software, and cloud virtualization software directly provide virtual machine data services, so they are usually called data plane software.

[0083] During the running process of the cloud service software, it is often necessary to upgrade and update in order to add new features or fix bugs. Among them, the upgrade of the management and control plane software usually does not affect the user's virtual machine business, and can be upgraded through software upgrade and service restart; the data plane software will interrupt the data services provided to the user during the upgrade process. Therefore, in order to ensure the high availability of cloud services, the user business interruption time needs to be shortened as much as possible during the cloud service software update process.

[0084] Currently, the process of executing cloud service software updates in the related art is: migrating the virtual machine from the original host to the idle standby host, and then completing the upgrade of the cloud service software on the original host through the shutdown and restart method; after the cloud service software on the original host is upgraded, the virtual machine is migrated back from the standby host to the original host. In the entire process, the user business interruption time is the downtime of the hot migration.

[0085] However, the cloud service software update method in the related art requires standby hosts to temporarily accommodate virtual machines, and these standby hosts are only used during hot migration, thus causing a large waste of resources. Moreover, in order to avoid network congestion or excessive bandwidth occupation, virtual machines can only be migrated in series. In a large cloud, it is common to migrate hundreds of thousands or even millions of virtual machines, so a large amount of data needs to be transmitted through the network during the virtual machine migration process, and the hot migration time is long, resulting in a long user business interruption time.

[0086] In addition, virtual machine hot migration can cause temporary performance degradation and service downtime. The more memory occupied by the virtual machine, the longer the migration time. High-end cloud customers may use virtual machines with hundreds of gigabytes (GB) of memory to run big data and other applications. These applications are particularly sensitive to performance degradation and downtime, and the virtual machine hot migration failure rate is usually high, so the virtual machine can only be shut down to interrupt the tenant business for upgrading.

[0087] In general, with the continuous growth of the number of host machines running in the network, in the scenario of cloud service software upgrade in the existing network cloud platform, hot migration as a regular operation and maintenance means has the problems of long business interruption time and large resource consumption, which is unsustainable.

[0088] Therefore, the present application provides a data processing method of a virtualization environment. During the normal running of a virtualization device on an original operating system, a new operating system is started based on files relied on by the starting of the virtualization device, and the new operating system is used to run a starting dependent process of the virtualization device. Moreover, when the new operating system is running, the running environment of the virtualization device on the original operating system is transferred to the starting dependent process in advance, so as to facilitate the starting dependent process to create a running environment for the new virtualization device. In addition, after the original virtualization device is stopped, the state data generated during the running of the original virtualization device is transferred to the starting dependent process, so as to facilitate the new virtualization device started by the starting dependent process to continue to execute the business executed by the original virtualization device, thereby realizing the migration of the virtualization device business.

[0089] In the present application, a new operating system is started on the same device to run the starting dependent process of the new virtualization device during the running of the original virtualization device, and the running environment of the original virtualization device is transferred to the starting dependent process in advance, and then the original virtualization device is stopped and the state data of the original virtualization device is transferred to the starting dependent process to start the new virtualization device. Therefore, the amount of data transmitted when the virtualization device is stopped is effectively reduced, the business interruption time is effectively reduced, and a standby device is not needed to run the virtualization device, thereby avoiding resource waste.

[0090] Referring to FIG. 1, FIG. 1 is a schematic diagram of a system architecture provided by the present application. As shown in FIG. 1, in the system architecture, the execution device 101 can be a physical host or a physical server, etc. Moreover, the execution device 101 is in communication connection with the data storage system 102, and is used to obtain the files relied on by the starting of the virtualization device stored in the data storage system 102. The data storage system 102 can be realized by a storage device deployed on the execution device 101, for example, the execution device 101 is a physical server, and the data storage system 102 is a hard disk deployed on the physical server. The data storage system 102 can also be realized by a storage device independent of the execution device, for example, the execution device 101 is a computing server, and the data storage system 102 is a data server specially storing files.

[0091] During the operation of the execution device 101, the execution device 101 can obtain the files relied by the virtualization apparatus from the data storage system 102, and create the virtualization apparatus on the execution device 101 based on the data processing method of the virtualization environment provided by the embodiments of the present application, and implement the service migration between the virtualization apparatuses.

[0092] Please refer to FIG. 2, which is a structural schematic diagram of the execution device 101 provided by the embodiments of the present application. As shown in FIG. 2, the execution device 101 to which the data processing method of the virtualization environment provided by the embodiments of the present application is applied includes a processor 103, and the processor 103 is coupled with a system bus 105. The processor 103 can be one or more processors, and each processor can include one or more processor cores. A display adapter 107 can drive a display 109, and the display 109 is coupled with the system bus 105. The system bus 105 is coupled with a bus bridge 111 and an input / output (I / O) bus. An I / O interface 115 is coupled with the I / O bus. The I / O interface 115 communicates with various I / O devices, such as an input device 117 (e.g., a touch screen), an external storage 121 (e.g., a hard disk, a floppy disk, an optical disk or a USB disk), a multimedia interface, etc.), a transceiver 123 (which can send and / or receive radio communication signals), a camera 155 (which can capture static and dynamic digital video images) and an external USB port 125. Optionally, the interface connected with the I / O interface 115 can be a USB interface.

[0093] The processor 103 can be any conventional processor, including a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor or a combination thereof. Optionally, the processor can be a special-purpose device such as an ASIC.

[0094] The execution device 101 can communicate with a software deployment server 149 through a network interface 129. The network interface 129 is an example of a hardware network interface, such as a network card. The network 127 can be an external network such as the Internet, or an internal network such as an Ethernet or a virtual private network (VPN). Optionally, the network 127 can also be a wireless network such as a WiFi network, a cellular network, etc.

[0095] The hard drive interface 131 is coupled to the system bus 105. The hard drive interface and the hard drive 133 are connected. The system memory 135 is coupled to the system bus 105. Data running in the system memory 135 can include an operating system (OS) 137 of the execution device 101, an application program 143, and a schedule.

[0096] The operating system includes a shell 139 and a kernel 141. The shell 139 is an interface between a user and the kernel of the operating system. The shell is the outermost layer of the operating system. The shell manages the interaction between the user and the operating system: waiting for the user's input, explaining the user's input to the operating system, and processing various outputs of the operating system.

[0097] The kernel 141 is composed of those parts of the operating system for managing memory, files, peripherals, and system resources. The kernel 141 directly interacts with hardware, and the operating system kernel usually runs processes and provides inter-process communication, provides CPU time slice management, interrupts, memory management, and IO management, etc.

[0098] Referring to FIG. 3, FIG. 3 is a flowchart of a data processing method of a virtualization environment of a virtualization apparatus provided by the present application. As shown in FIG. 3, the data processing method of the virtualization environment includes the following steps 301-305.

[0099] Step 301, obtaining an image file, the image file including files relied on by the virtualization apparatus for starting.

[0100] Specifically, the image file is a file required for starting a new virtualization apparatus, and the image file can include multiple different types of files, such as program files and configuration files for starting the virtualization apparatus, which are specifically determined according to the constitution of the virtualization apparatus to be started, and are not specifically limited here.

[0101] In the embodiment, the virtualization apparatus can be a virtual machine or a container, and for ease of description, the virtualization apparatus will be taken as a virtual machine in the following description.

[0102] Optionally, the image file includes at least one of a file for providing a cloud network service, a file for providing a cloud storage service, and a file for providing a virtualization environment. Generally, since the virtualization apparatus runs relies on an operating system, the image file also includes files relied on by the operating system for starting, i.e., operating system files. In addition, the virtualization apparatus does not rely on cloud service management software when starting, and the cloud service management software is usually only used for managing the running virtualization apparatus, so the image file can not include files related to the cloud service management software.

[0103] Exemplarily, at present, in order to realize the running and management of the virtualization device, a virtualization device file set is usually provided, which includes all files relied on by the running of the virtualization device and all files relied on by the management of the virtualization device. By loading and running the files in the virtualization device file set, the starting and management of the virtualization device can be realized.

[0104] In the case of obtaining the virtualization device file set, the files relied on by the starting of the virtualization device can be extracted from the virtualization device file set based on the file type relied on by the starting of the virtualization device, so as to obtain the mirror file. The file type relied on by the starting of the virtualization device can be indicated by a configuration file prepared in advance, for example, the types of program files and / or configuration files relied on by the starting of the virtualization device are recorded in the configuration file. In this way, the execution equipment can know the file type to be extracted from the virtualization device file set by reading the configuration file prepared in advance, and then realize the extraction of the mirror file.

[0105] The virtualization device file set includes the files relied on by the starting of the virtualization device and the files for starting the management service of the virtualization device. For example, the files relied on by the starting of the virtualization device can include the related files of the operating system software, the related files of the cloud storage service software, the related files of the cloud network service software and the related files of the cloud virtualization software. The files for starting the management service of the virtualization device can include the related files of the cloud service management software. In addition, the virtualization device file set can be a file set after software version upgrade. That is, compared with the currently running virtualization device, the files in the virtualization device file set are after software version upgrade.

[0106] Since the files relied on by the starting of the virtualization device and the files for starting the management service of the virtualization device are usually presented in a unified virtualization device file set, and the files relied on by the starting of the virtualization device and the files for starting the management service of the virtualization device are usually mixed together, for example, the files relied on by the starting of the virtualization device and the files for starting the management service of the virtualization device are included in the same file directory. Therefore, in this scheme, based on the pre-defined file type relied on by the starting of the virtualization device, the minimum file set relied on by the starting of the virtualization device can be extracted from the virtualization device file set, so as to generate the mirror file, and the resources occupied during the running of the mirror file are reduced as much as possible.

[0107] Step 302, during the running of the first operating system, starting the second operating system based on the mirror file, wherein the first operating system runs the first virtualization device providing cloud services, the second operating system is used to run the starting dependent process of the second virtualization device, and the first operating system and the second operating system run on the same device.

[0108] In this application, during the running of the first operating system, the first operating system runs the first virtualization device, and the first virtualization device is also in a running state, which is used to provide cloud services for users. While running the first operating system, the mirror file can be loaded into the memory and executed, thereby starting the second operating system based on the mirror file, so that the first operating system and the second operating system are simultaneously running on the same device.

[0109] In addition, after the second operating system is started, by continuing to execute the mirror file, the starting dependent process of the second virtualization device will also run on the second operating system, which is used to implement the starting of the second virtualization device. Exemplarily, the starting dependent process of the second virtualization device can specifically be one or more processes, such as at least one of the processes generated by the cloud storage service software runtime, the processes generated by the cloud network service software runtime, and the processes generated by the cloud virtualization software runtime.

[0110] Since the reason for triggering the virtualization device service migration is usually that the operating system software version, the cloud storage service software version, the cloud network service software version, or the cloud virtualization software version needs to be updated, compared with the original first operating system, the version of the second operating system can be obtained after updating the version of the first operating system, that is, the software version of the operating system is upgraded.

[0111] Alternatively, the version of the second virtualization device is obtained after updating the version of the first virtualization device. The version of the second virtualization device performs the update can mean that the version of any one or more of the cloud storage service software, the cloud network service software, and the cloud virtualization software used to start the second virtualization device performs the update.

[0112] Step 303, passing the running environment of the first virtualization device to the starting dependent process, so as to create a running environment for the second virtualization device by the starting dependent process.

[0113] It can be understood that when the virtualization apparatus is running, a corresponding running environment is usually established for the virtualization apparatus, so that the virtualization apparatus can perform normal services in the running environment. Moreover, the running environment established for the virtualization apparatus usually has no strong correlation with the specific service being executed by the virtualization apparatus. That is, regardless of the type of service executed by the virtualization apparatus, the same running environment is usually corresponded; and the running environment of the virtualization apparatus does not change with the service execution.

[0114] Therefore, in this application, the running environment of the first virtualization apparatus can be transferred to the start-dependent process in advance in the process of running the first virtualization apparatus and starting the start-dependent process, so that the start-dependent process can create a running environment for the second virtualization apparatus in advance, thereby speeding up the subsequent start of the second virtualization apparatus. Moreover, during the transfer of the running environment to the start-dependent process and the creation of the running environment by the start-dependent process, the first virtualization apparatus does not stop running, but keeps running to ensure normal service execution.

[0115] Optionally, in order to realize the transfer of the running environment of the first virtualization apparatus to the start-dependent process, the data corresponding to the running environment of the first virtualization apparatus can be stored in the shared memory first; then, the start-dependent process of the second virtualization apparatus is notified to obtain the data corresponding to the running environment of the first virtualization apparatus from the shared memory. In this way, after the start-dependent process obtains the notification message, it can read the data corresponding to the running environment of the first virtualization apparatus from the shared memory, thereby creating a running environment for the second virtualization apparatus.

[0116] Among them, in order to realize the notification of the start-dependent process of the second virtualization apparatus, the start-dependent process can be notified to obtain data from the shared memory in an interrupt mode or a polling notification mode through a sending queue and a receiving queue. That is, the process responsible for transferring the running environment data in the first operating system maintains a sending queue, and the start-dependent process of the second virtualization apparatus maintains a receiving queue. When data needs to be transferred to the start-dependent process, the process responsible for transferring the running environment data stores the data in the sending queue and writes it into the shared memory in sequence; after the data is written into the shared memory, the data is added to the receiving queue of the start-dependent process. In this way, the start-dependent process can obtain data in an interrupt mode, that is, each time data is transferred to the start-dependent process, an interrupt request notification is sent to the start-dependent process to obtain data; the start-dependent process can also obtain data in a polling notification mode, that is, the start-dependent process periodically polls whether there is data to be obtained in the receiving queue.

[0117] The shared memory is a memory space divided for communication between different processes. Since the first operating system and the second operating system are running in the same device, the process responsible for transferring the running environment in the first operating system can write the data corresponding to the running environment into the shared memory, and then notify the dependent process to take out the data corresponding to the running environment from the shared memory, thereby efficiently transferring the running environment.

[0118] In step 304, the first virtualization device is stopped, and the state data generated by the first virtualization device during running is transferred to the dependent process.

[0119] After the dependent process successfully creates the running environment for the second virtualization device, the dependent process can send a notification message to the process responsible for transferring the running environment in the first operating system to indicate that the dependent process has successfully created the running environment. In this way, in the first operating system, the first virtualization device can be stopped, and the state data generated by the first virtualization device during running is transferred to the dependent process, thereby ensuring that the dependent process can restore the service executed by the first virtualization device before the first virtualization device is stopped when starting the second virtualization device.

[0120] Specifically, in this step, the state data generated by the first virtualization device during running is strongly related to the service executed by the first virtualization device, such as calculation data generated by the first virtualization device during executing a calculation service, or a calculation state reached by the first virtualization device during executing a calculation service, or a storage progress reached by the first virtualization device during executing a storage service. It can be understood that for different types of virtualization devices and different services executed by the virtualization devices, the virtualization devices will often generate various types of state data, and the type of state data generated by the virtualization device is not limited in this embodiment.

[0121] Since the state data generated by the first virtualization device during running of the first virtualization device usually changes continuously, in this step, the first virtualization device is stopped to ensure that the state data generated by the first virtualization device does not change before the state data generated by the first virtualization device is transferred to the dependent process.

[0122] In step 305, based on the state data, the second virtualization device is run, and the second virtualization device is used to continue executing the service executed by the first virtualization device before the first virtualization device is stopped.

[0123] After the second virtualization device obtains the state data generated by the first virtualization device, the second virtualization device can be started and run based on the obtained state data. During the running of the second virtualization device, the second virtualization device can continue to perform the service that the first virtualization device performed before the first virtualization device stopped running based on the obtained state data.

[0124] That is, in the present application, the time of service interruption of the user is actually the time of transmitting the state data of the virtualization device. Since the running environment of the second virtualization device is created in advance with reference to the running environment of the first virtualization device when the second virtualization device is newly created, only the state data of the virtualization device needs to be transmitted, and the second virtualization device can quickly resume the execution of the service, effectively shortening the time of service interruption of the user.

[0125] In the present application, since the mirror image file used to start the second virtualization device is essentially a file subset extracted from the virtualization device file set, in order to ensure that the second virtualization device can normally run after being started, a virtualization device management service can also be started to take over the second virtualization device.

[0126] Exemplarily, based on the state data, the specific process of running the second virtualization device can include: determining a storage area where the virtualization device file set is located. The virtualization device file set includes all files required for the virtualization device to run, and is a file set used to extract the mirror image file. Then, based on the files stored in the storage area, a virtualization device management service is started, which is used to take over the second virtualization device. For example, based on the files corresponding to the cloud service management software stored in the storage area, the virtualization device management service is started. In this way, after the virtualization device management service takes over the second virtualization device, the second virtualization device can be run based on the obtained state data.

[0127] In the present application, in the process of starting the virtualization device, only the files required for starting the virtualization device are extracted from the virtualization device file set, and after the virtualization device is started, the virtualization device management service is started based on the virtualization device file set to take over the started virtualization device, thereby realizing the separation of the data plane and the control plane. On the one hand, the separation of the data plane and the control plane reduces the device resources occupied when a new virtualization device is started during the running of the original virtualization device. On the other hand, the separation of the data plane and the control plane ensures the reliability of starting a new virtualization device based on the running virtualization device, and avoids the failure of the virtualization device due to the control of the virtualization device by the control plane according to the set control logic during the startup of the new virtualization device.

[0128] Optionally, in the process of running the second virtualization device, the storage area where the mirror file is located can be a read-only layer, and the storage area where the virtualization device file set is located can be a read-write layer, and the second virtualization device is mounted and run in an overlay manner, so that the second virtualization device performs read-write operations on the storage area where the virtualization device file set is located during running. That is, when the second virtualization device needs to perform read-write operations on the files in the disk during running, it will not perform read-write operations on the mirror file used to start the second virtualization device, but will perform read-write operations on the additionally mounted virtualization device file set. In this way, the mirror file used to start the second virtualization device is actually a read-only mirror file, and is only used to be loaded into the memory to realize the fast start of the second virtualization device. After the second virtualization device is started, the second virtualization device will also be mounted to the virtualization device file set to ensure the normal running of the second virtualization device.

[0129] For ease of understanding, how to pass the running environment of the first virtualization device to the start dependent process will be introduced below.

[0130] Specifically, in the process of passing the running environment of the first virtualization device to the start dependent process, the network surface running environment, the storage surface running environment, and the virtualization environment of the first virtualization device can be passed to the start dependent process, so that the start dependent process establishes the network surface running environment, the storage surface running environment, and the virtualization environment.

[0131] The network surface running environment is used to establish the connection between the second virtualization device and the external network, the storage surface running environment is used to establish the connection between the second virtualization device and the storage device, and the virtualization environment is used to run the second virtualization device.

[0132] Exemplarily, the network surface running environment includes but is not limited to: the virtual network device and the virtual network port created by the cloud network service software in the first operating system, and the network flow table information used by the first virtualization device. Therefore, based on the passed network surface running environment, the start dependent process can create the same virtual network device and virtual network port for the second virtualization device as those created in the first operating system, and configure the same network flow table information for the second virtualization device.

[0133] The storage surface running environment includes but is not limited to: the remote storage array of the external network connected by the first virtualization device, and the storage device created by the cloud storage service software in the first operating system for the first virtualization device. Therefore, based on the passed storage surface running environment, the start dependent process can connect the same remote storage array of the external network for the second virtualization device, and create the same storage device for the second virtualization device.

[0134] The virtualization environment includes, but is not limited to, command line parameters used by the first virtualization device, the number and type of devices configured by the first virtualization device, memory addresses used by the first virtualization device, and a virtualization device emulation process created. In this way, based on the virtualization environment passed, the start dependent process can create the same virtualization environment for the second virtualization device, thereby ensuring that the virtualization environment run by the second virtualization device is the same as the virtualization environment run by the first virtualization.

[0135] Optionally, in order to reduce the amount of data transmission caused by the virtualization device service migration, when the running environment of the first virtualization device is passed to the start dependent process, the address of the memory space used by the first virtualization device can be passed to the start dependent process, so that the start dependent process configures the memory space used by the second virtualization device. Wherein, the address of the memory space used by the second virtualization device is the same as the address of the memory space used by the first virtualization device. That is, the start dependent process obtains the address of the memory space used by the first virtualization device, and also configures the same memory space for the second virtualization device based on the address of the memory space, thereby ensuring that the memory space used by the second virtualization device is the same as the memory space used by the first virtualization device.

[0136] Generally speaking, virtualization devices usually need to allocate corresponding memory space for virtualization devices when in use. In this application, for the newly created second virtualization device, the same memory space as the first virtualization device can be allocated to the second virtualization device. That is, the memory space allocated to the first virtualization device will continue to be used by the second virtualization device, and since the second virtualization device is truly started and run, the first virtualization device has stopped running, so there will be no problem in allocating the memory space used by the first virtualization device to the second virtualization device. And, allocating the memory space used by the first virtualization device to the second virtualization device also enables the second virtualization device to directly reuse the data generated by the first virtualization device in the memory space when running, without the need to transmit a large amount of data generated by the first virtualization device in the memory space, greatly reducing the amount of data to be transmitted when the virtualization device service migrates, saving a lot of time, and ensuring that the service interruption time is short.

[0137] In general, in the present solution, by allocating the same memory space for the original virtualization device and the new virtualization device, the original virtualization device can be directly taken over by the new virtualization device after stopping running, which can effectively reduce the required memory space when creating a new virtualization device, ensure that two operating systems are started on the same device without occupying too much memory resource; on the other hand, it can reduce the amount of data required for transmission during virtualization device service migration, improve the efficiency of virtualization device service migration, and shorten the service interruption time.

[0138] Optionally, a virtual communication device can be established on the first operating system. In the process of starting the dependent process to establish a connection between the second virtualization device and the remote storage device, the virtual communication device on the first operating system is used to forward the communication data between the dependent process and the remote storage device.

[0139] Since the first virtualization device on the first operating system is already running, a physical network port is often connected on the first operating system, and since the physical network port is occupied by the first operating system, in the case of no redundant physical network port, the second operating system is often not connected with the physical network port. In this case, the communication data between the dependent process in the second operating system and the remote storage device can be forwarded by the virtual communication device on the first operating system, thereby realizing the communication between the dependent process and the external remote storage device.

[0140] Specifically, when the dependent process establishes a connection with the remote storage device, it often needs to first send a storage scanning request to the remote storage device, and then the remote storage device returns the disk volume information to the dependent process. In this way, the storage scanning request sent by the dependent process is first forwarded to the virtual communication device on the first operating system, and the virtual communication device forwards the storage scanning request to the physical network port connected by the first operating system, and then sends the storage scanning to the remote storage device. Similarly, when the first operating system receives the disk volume information sent by the remote storage device to the dependent process on the physical network port, the virtual communication device on the first operating system forwards the disk volume information to the dependent process on the second operating system, thereby realizing the communication between the dependent process on the second operating system and the remote storage device.

[0141] In the present solution, when the new operating system is started during the running of the original operating system, the communication data between the dependent process in the new operating system and the external network device can be forwarded by the original operating system proxy, so that in the case of tight physical network port, the new operating system can realize communication with the external network without configuring a new physical network port, improving the realizability of the solution.

[0142] The data processing method of the virtualization environment provided in the present application is introduced above. In order to facilitate understanding, the execution process of the data processing method of the virtualization environment will be introduced in detail below in combination with specific examples.

[0143] Referring to FIG. 4, FIG. 4 is a schematic diagram of an architecture in which a virtualization device provided in the present application runs. As shown in FIG. 4, an operating system can run in a host computer. The operating system can create and manage virtualization devices by running various software (such as cloud management software, cloud service software, cloud virtualization software, and cloud storage service software), and then create one or more virtualization devices on the operating system for executing user services. Specifically, when the cloud management software, the cloud network service software, the cloud virtualization software, and the cloud storage service software, and other virtualization device related software run on the operating system, corresponding processes are created, and then the processes are used to implement the creation and management of the virtualization device. For example, the cloud management software, the cloud network service software, the cloud virtualization software, and the cloud storage service software run on the operating system in the form of a cloud management process, a cloud network service process, a virtualization device service process, and a cloud storage service process. Among them, the cloud network service process, the virtualization device service process, and the cloud storage service process correspond to the start dependent processes introduced in the above embodiments, and the cloud management process is responsible for managing the virtualization device after the virtualization device is started.

[0144] Referring to FIG. 5, FIG. 5 is a schematic diagram of an architecture for executing virtualization device service migration provided in the present application. As shown in FIG. 5, in the architecture for executing virtualization device service migration, a data dynamic separation module, a system communication bridge module, and a data plane pre-copy module are included.

[0145] The data dynamic separation module is used to dynamically extract files relied on by the virtualization device startup in a root partition where the data plane software and the management plane software are stored together, so as to form a data plane read-only image (i.e., the mirror file in the above embodiments). Based on the extracted data plane read-only image, a new operating system (i.e., the second operating system introduced in the above embodiments) can be started during the running of the original operating system (i.e., the first operating system introduced in the above embodiments), and the cloud network service process, the virtualization device service process, and the cloud storage service, and other start dependent processes are started on the new operating system. The start dependent processes interact with the original operating system to complete the data plane state switching. In addition, after the data plane state switching is completed, the management plane software is started from the root partition, and the cloud management process generated by the start takes over the data plane process, so as to complete the virtualization device service migration, that is, the system startup process of the hot upgrade.

[0146] The data plane read-only image essentially refers to a minimum set of program files and configuration files directly relied on by services related to user business, including but not limited to program files and configuration files for providing storage read-write services, program files and configuration files for providing network data exchange services, program files and configuration files for providing virtualization device running environments. In addition, the data plane read-only image also includes operating system related program files and configuration files. In general, the data plane read-only image includes files in data plane software such as operating system software, cloud network service software, cloud virtualization software, and cloud storage service software. The data plane read-only image does not need to include all files in the data plane software, but only needs to ensure that the data plane state exchange for the virtualization device can be completed. For example, in the operating system software, there may be library files in some specific languages, which are not needed for the virtualization device to perform data plane state exchange, so these library files can not be extracted into the data plane read-only image.

[0147] The system communication bridge module is used to realize communication between the data plane process in the new operating system and the data plane process in the original operating system, so as to realize state synchronization and pre-copy of the data plane process, and data communication between the new operating system and the external network.

[0148] Specifically, the system communication bridge module can realize data exchange between the new operating system and the original operating system by allocating a shared memory. The shared memory is visible to both the new operating system and the original operating system, so the new operating system and the original operating system can exchange data by writing data into the shared memory.

[0149] In addition, when using the shared memory, the system communication bridge module realizes data notification between the new operating system and the original operating system based on sending queue notification and receiving queue notification, where the implementation of the sending queue notification and the receiving queue notification includes but is not limited to interrupt notification and polling notification. In addition, the system communication bridge module can also provide a virtual communication device for processes in the original operating system and the new operating system to perform read-write operations, where the implementation of the virtual communication device includes but is not limited to Transmission Control Protocol / Internet Protocol (TCP / IP), Unix domain socket (unix socket) device communication protocol, and shared memory.

[0150] The data plane pre-copy module is used to realize state synchronization between a data plane process running in an original operating system and a data plane process running in a new operating system, and to perform a last round of state fast switching after the virtualization device of the original operating system is paused. Based on the data plane pre-copy module, the data plane process in the new operating system can create a running environment for the virtualization device and obtain state data of the virtualization device in the original operating system before the virtualization device stops running.

[0151] Referring to FIG. 6, FIG. 6 is a flowchart of a system hot upgrade provided by the present application. As shown in FIG. 6, in order to realize virtualization device service migration, the flow of the system hot upgrade includes the following steps 601-615.

[0152] Step 601, data plane read-only image extraction.

[0153] First, a virtualization device file set in a root partition in which software version upgrade has been performed is determined, where the root partition is a disk space specially used for storing files required for starting an operating system and a virtualization device. Then, based on file types specified in a configuration file, specified binary program files and configuration files are obtained from the virtualization device file set, and original file permissions and paths are kept and packaged into a data plane read-only image. In the virtualization device files, different data plane program files and configuration files can be extracted in a componentized manner through independent file configuration, thereby forming the data plane read-only image.

[0154] Step 602, starting a new operating system based on the data plane read-only image.

[0155] In this step, partial hardware resources, for example, hardware resources composed of partial central processing unit (CPU) resources and partial memory resources, are used to load the data plane read-only image into the memory while the original operating system is running, thereby starting the new operating system. The hardware resources used to start the new operating system are independent of the hardware resources required by the original operating system. In the process of starting the new operating system, only a read operation of the hardware resources exists, and physical peripheral devices of the original operating system cannot be operated.

[0156] After the new operating system is started, read and write operations of the data plane process cannot be persisted to a disk partition. After the management plane process is started from a root partition in which data plane software and management plane software are stored and the data plane process is taken over by the management plane process, read and write persistence can be realized.

[0157] Step 603, system communication bridge initialization.

[0158] In this step, a system communication bridge module is inserted into the original operating system and the new operating system respectively, and the system communication bridge module is specifically a software module for realizing communication between the original operating system and the new operating system. After the system communication bridge module is inserted, a virtual communication bridge device can be created on the original operating system and the new operating system respectively, and the corresponding communication protocol is enabled.

[0159] In addition, a network address translation (NAT) protocol is configured on the original operating system, so that data sent from the new operating system to the external network can be forwarded to the physical port connected by the original operating system, and data sent from the external network to the new operating system can also be forwarded to the new operating system from the physical port connected by the original operating system. The network address translation protocol is also configured on the new operating system, so that data sent from the new operating system to the external network can be forwarded to the original operating system.

[0160] Step 604, new network surface state synchronization.

[0161] Specifically, the new network surface state synchronization refers to that the cloud network service process in the new operating system synchronizes the state with the cloud network service process in the original operating system through the system communication bridge, so that the cloud network service process in the new operating system can create a network surface running environment for the virtualization device. Under the new network surface state synchronization, the cloud network service process includes but is not limited to creating the same virtual network device and virtual network port as in the original operating system, and synchronizing the corresponding network flow table information.

[0162] Step 605, new storage surface state synchronization.

[0163] Specifically, the new storage surface state synchronization refers to that the cloud storage service process in the new operating system synchronizes the state with the cloud storage service process in the original operating system through the system communication bridge, so that the cloud storage service process in the new operating system can create a storage surface running environment for the virtualization device. Under the new storage surface state synchronization, the cloud storage service process includes but is not limited to connecting a remote storage array of an external network and creating the same storage device as in the original operating system.

[0164] The steps 604 and 605 have no sequence limitation, and can be executed in parallel, or the step 604 can be executed first and then the step 605, or the step 605 can be executed first and then the step 604, which is not limited in the embodiment.

[0165] Step 606, new virtualization state synchronization.

[0166] Specifically, the new virtualization state synchronization refers to that the virtualization device service process in the new operating system synchronizes the state with the virtualization device service process in the original operating system through the system communication bridge, so that the virtualization device service process in the new operating system can create a virtualization environment for the virtualization device. Under the new virtualization state synchronization, the virtualization device service process includes but is not limited to obtaining the command line parameters and the address of the memory space used by the virtualization device in the original operating system, the number and type of devices configured by the virtualization device, and creating a virtualization device simulation process with the same command line parameters as the virtualization device service process in the original operating system according to the obtained state information.

[0167] Step 607, the original virtualization stops service.

[0168] Specifically, the virtualization device service process in the original operating system enters the shutdown phase, stops providing services, and saves the last round of state of the virtualization surface.

[0169] Step 608, the original network surface stops service.

[0170] Specifically, the cloud network service process in the original operating system enters the shutdown phase, stops providing services, and saves the last round of state of the network surface.

[0171] Step 609, the original storage surface stops service.

[0172] Specifically, the cloud storage service process in the original operating system enters the shutdown phase, stops providing services, and saves the last round of state of the storage surface.

[0173] In general, the virtualization device in the original operating system stops running, and saves the last round of state data before stopping running.

[0174] Step 610, the new network surface state switching.

[0175] Specifically, the cloud network service process in the new operating system enters the recovery phase, synchronizes the last round of state from the cloud network service process in the original operating system, and starts traffic forwarding after realizing the last round of state synchronization.

[0176] Step 611, the new storage surface state switching.

[0177] Specifically, the cloud storage service process in the new operating system enters the recovery phase, synchronizes the last round of state from the cloud storage service process in the original operating system, and starts read and write operations on the remote storage array after realizing the last round of state synchronization.

[0178] Step 612, the new virtualization state switching.

[0179] Specifically, the virtualization device service process in the new operating system enters a recovery stage, synchronizes the last round state from the virtualization device service process in the original operating system, and starts the new virtualization device after the last round state synchronization is implemented.

[0180] In general, after the virtualization device in the original operating system stops running, the last round state data saved by the virtualization device in the original operating system is transmitted to the new operating system, so as to implement the start of the virtualization device in the new operating system.

[0181] Step 613, switching of operating system resources.

[0182] Since all the state data of the virtualization device in the original operating system has been synchronized to the virtualization device in the new operating system, the virtualization device in the original operating system can be closed, and the hardware resources occupied by the original operating system are switched to the new operating system.

[0183] Optionally, step 613 can also be executed before steps 610-612. For example, most of the resources in the original operating system are switched to the new operating system first, and the remaining part of the resources is used to execute steps 610-612; then, after the execution of steps 610-612, the remaining resources in the original operating system are switched to the new operating system.

[0184] Step 614, mounting of root partition stacking.

[0185] The new operating system identifies the root partition in which the data plane software and the management plane software (i.e., the virtualization device file set) are loaded, mounts and runs the root partition in a stacked manner by taking the data plane read-only image as a read-only layer and the root partition in which the data plane software and the management plane software are stored together as a read-write layer, so as to realize read-write persistence.

[0186] Step 615, takeover of the data plane by the management plane.

[0187] After the virtualization device is mounted to the root partition, the management plane software in the root partition is loaded and started, so that the data plane process that is currently running is taken over by the management plane process, thereby completing the system hot upgrade. When the management plane software in the root partition is started, the data plane process started through the data plane read-only image is not stopped, but the corresponding process is taken over to the designated data plane process for management, so that the read-write of the data plane process to the file will be persisted to the disk partition.

[0188] In general, in the present scheme, the data plane software that needs to be upgraded is dynamically extracted from the data plane read-only image, and a small amount of hardware resources is used to start the new operating system using the data plane read-only image while the original operating system is running, and the data plane software in the new operating system is started while the data plane software in the original operating system is running, thereby realizing the function of dynamic separation of numerical control. Secondly, the program state of the data plane software in the original operating system is pre-copied to the data plane software in the new operating system; and when the original operating system is switched to the new operating system, the data plane software in the original operating system will be stopped, and the last program state will be synchronized to the data plane software in the new operating system and started, thereby realizing the effect of service interruption time less than sub-second level (i.e. service interruption time within 1 second).

[0189] Exemplarily, please refer to FIG. 7, which is a schematic diagram of dynamic separation of numerical control provided by the present application. FIG. 7 shows the running condition of numerical control integration in the conventional virtualization device startup process, and the running condition of dynamic separation of numerical control in the hot upgrade process proposed in the present scheme. Among them, the cloud network service software includes dpdk and other software, the cloud storage service software includes spdk and other software, and the cloud virtualization software includes qemu and other software to form a data plane service, which directly provides network, storage, computing and other related services for the virtualization device.

[0190] In FIG. 7, in the conventional virtualization device startup process, the startup of the virtualization device is often realized based on the root partition storing the data plane software and the management plane software, so as to load and start various data plane software and management plane software, so that the virtualization device can provide storage, network and computing data plane services after startup, and also can provide monitoring, alarm and control virtualization device management services.

[0191] When the virtualization device is started based on the dynamic separation of numerical control proposed in the present scheme, the data plane read-only image is dynamically extracted from the root partition storing the data plane software and the management plane software, and the virtualization device is started by loading the data plane read-only image, so that the virtualization device only provides storage, network and computing data plane services after startup, i.e. the running state service temporarily does not provide monitoring, alarm and control virtualization device management services.

[0192] Please refer to FIG. 8, which is a comparison diagram of conventional system startup and hot upgrade startup provided by the present application. As shown in FIG. 8, in the conventional system startup process, the initial root file system (initrd) process is usually loaded first to identify the root partition storing the data plane software and the management plane software; then, the initrd process is cleaned up, and switched to the root partition to start the management plane by loading the files in the root partition, and then start the data plane based on the management plane.

[0193] In the hot upgrade starting scheme provided in the application, the data plane read-only image is loaded first to start the data plane service; then, the data plane service is kept running and switched to the root partition to start the control plane service. At this time, the data plane read-only image is used as a read-only layer, the root partition is used as a read-write layer, and the data plane service is mounted and run in a stacked manner. Finally, after the control plane service is started, the control plane service takes over the data plane service instead of restarting the corresponding data plane service.

[0194] Please refer to FIG. 9, which is a schematic diagram of remote storage scanning based on a system communication bridge module provided in the application. As shown in FIG. 9, in the original operating system, the storage service communicates with the external network based on the physical network card through IP address 1 and port 1, and maintains a connection state with the remote storage array.

[0195] After the system communication bridge module is inserted on the original operating system and the new operating system, a virtual communication bridge device is created on the original operating system and the new operating system respectively, and the corresponding communication protocol is enabled.

[0196] In addition, the new operating system creates a virtual network card and configures a static IP address. At this time, the virtual network card in the new operating system only communicates with the internal network, the new operating system starts the storage service, and the storage service communicates with the external network through IP address 2 and port 2. The storage service will always listen to the traffic involving IP address 2 and port 2.

[0197] When the storage service in the new operating system needs to send a scanning request to the remote storage array in the external network, the storage service sends the scanning request to the virtual network card with the source address of IP address 2 and port 2. Then, the virtual network card forwards the scanning request with the source address of IP address 2 and port 2 to the virtual communication bridge device in the new operating system based on the pre-configured traffic forwarding rule (i.e. the NAT protocol). The virtual communication bridge device in the new operating system writes the scanning request into the shared memory and notifies the virtual communication bridge device in the original operating system by sending an interrupt request. In this way, when the virtual communication bridge device in the original operating system processes the interrupt request, it reads the scanning request from the shared memory and forwards the scanning request with the destination address of the external network to the physical network card based on the traffic forwarding rule. Finally, the physical network card forwards the scanning request to the remote storage array in the external network.

[0198] Similarly, after the remote storage array sends the disk volume information to the physical network card in the original operating system from the external network in response to the scan request, the physical network card forwards the disk volume information with the destination address of IP address 2 and port 2 to the virtual communication bridge device in the original operating system based on the traffic forwarding rule, and the virtual communication bridge device writes the disk volume information into the shared memory. Then, the virtual communication bridge device in the original operating system notifies the virtual communication bridge device in the new operating system by sending an interrupt request. In this way, when the virtual communication bridge device in the new operating system processes the interrupt request, it reads the disk volume information from the shared memory and forwards the disk volume information with the destination address of IP address 2 and port 2 to the virtual network card based on the traffic forwarding rule, and finally the storage service obtains the disk volume information by listening to the virtual network card and establishes a local storage-related data structure.

[0199] The method provided in the present application is described in detail above. Next, a device for executing the above method provided in the present application will be introduced.

[0200] Referring to FIG. 10, FIG. 10 is a structural schematic diagram of a data processing apparatus of a virtualization environment provided in the present application. As shown in FIG. 10, the data processing apparatus of the virtualization environment includes: an acquisition module 1001 configured to acquire an image file, the image file including files on which a virtualization apparatus depends for starting; a processing module 1002 configured to start a second operating system based on the image file during running of a first operating system, wherein the first operating system runs a first virtualization apparatus providing a cloud service, the second operating system is used to run a start-dependent process of a second virtualization apparatus, and the first operating system and the second operating system run on the same device; the processing module 1002 is further configured to pass a running environment of the first virtualization apparatus to the start-dependent process, so that the start-dependent process creates a running environment for the second virtualization apparatus; the processing module 1002 is further configured to stop running the first virtualization apparatus and pass state data generated during running of the first virtualization apparatus to the start-dependent process; and the processing module 1002 is further configured to run the second virtualization apparatus based on the state data, the second virtualization apparatus being used to continue to execute a service executed before the first virtualization apparatus stops running.

[0201] In a possible implementation, the acquisition module 1001 is specifically configured to: extract the files on which the virtualization apparatus depends for starting from a virtualization apparatus file set based on a file type on which the virtualization apparatus depends for starting, to obtain the image file; wherein the virtualization apparatus file set includes the files on which the virtualization apparatus depends for starting and files used to start a virtualization apparatus management service, and the virtualization apparatus file set is a file set after software version upgrade is performed.

[0202] In a possible implementation, the processing module 1002 is further configured to: determine a storage area where the virtualization device file set is located; start a virtualization device management service based on the files stored in the storage area; and run the second virtualization device based on the state data after the virtualization device management service takes over the second virtualization device.

[0203] In a possible implementation, in the process of running the second virtualization device, the storage area where the mirror file is located is mounted as a read-only layer, and the storage area where the virtualization device file set is located is mounted as a read-write layer, and the second virtualization device is run in a stacked manner, so that the second virtualization device performs read-write operations on the storage area where the virtualization device file set is located during running.

[0204] In a possible implementation, the processing module 1002 is further configured to: store data corresponding to a running environment of the first virtualization device into a shared memory; and notify a start-dependent process to obtain the data corresponding to the running environment of the first virtualization device from the shared memory.

[0205] In a possible implementation, the processing module 1002 is further configured to: pass a network-facing running environment, a storage-facing running environment, and a virtualization environment of the first virtualization device to the start-dependent process; the network-facing running environment is used to establish a connection between the second virtualization device and an external network, the storage-facing running environment is used to establish a connection between the second virtualization device and a storage device, and the virtualization environment is used to run the second virtualization device.

[0206] In a possible implementation, in the process of establishing, by the start-dependent process, a connection between the second virtualization device and a remote storage device, a virtual communication device on the first operating system is configured to forward communication data between the start-dependent process and the remote storage device.

[0207] In a possible implementation, the processing module 1002 is further configured to: pass an address of a memory space used by the first virtualization device to the start-dependent process, so that the start-dependent process configures the memory space used by the second virtualization device; and the address of the memory space used by the second virtualization device is the same as the address of the memory space used by the first virtualization device.

[0208] In a possible implementation, the mirror file includes at least one of a file used to provide a cloud network service, a file used to provide a cloud storage service, and a file used to provide a virtualization environment.

[0209] In a possible implementation, the version of the second operating system is obtained by updating the version of the first operating system;

[0210] Alternatively, the version of the second virtualization appliance is obtained after performing an update to the version of the first virtualization appliance.

[0211] The obtaining module 1001 or the processing module 1002 can be implemented by software or by hardware. For example, the implementation of the processing module 1002 is described below. The implementation of the obtaining module 1001 can be similar to the implementation of the processing module 1002.

[0212] As an example of a software functional unit, the processing module 1002 can include code running on a computing instance. The computing instance can include at least one of a physical host (computing device), a virtual machine, and a container. Further, the computing instance can be one or more. For example, the A module can include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers running the code can be distributed in the same region, or in different regions. Further, the multiple hosts / virtual machines / containers running the code can be distributed in the same availability zone (AZ), or in different AZs. Each AZ includes one data center or multiple data centers in close geographical proximity. Typically, one region includes multiple AZs.

[0213] Similarly, the multiple hosts / virtual machines / containers running the code can be distributed in the same virtual private cloud (VPC), or in multiple VPCs. Typically, one VPC is set up in one region. Interconnection between two VPCs in the same region, or between VPCs in different regions, requires a communication gateway in each VPC to achieve interconnection between VPCs.

[0214] As an example of a hardware functional unit, the processing module 1002 can include at least one computing device, such as a server or the like. Alternatively, the processing module 1002 can also be a device implemented by a central processing unit (CPU), an application-specific integrated circuit (ASIC), or a programmable logic device (PLD) or the like. The PLD can be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), a data processing unit (DPU), a neural network processing unit (NPU), a system on chip (SoC), an offload card, an acceleration card, or any combination thereof.

[0215] The multiple computing devices included in the processing module 1002 can be distributed in the same region or in different regions. The multiple computing devices included in the processing module 1002 can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in the processing module 1002 can be distributed in the same VPC or in multiple VPCs. The multiple computing devices can be any combination of servers, ASICs, PLDs, CPLDs, FPGAs, GALs, DPUs, NPUs, SoCs, offload cards, acceleration cards, and the like.

[0216] Referring to FIG. 11, FIG. 11 is a structural schematic diagram of a computing device provided by the present application. The computing device 1100 shown in FIG. 11 can be used to execute the data processing method of the virtualized environment provided by the present embodiment. As shown in FIG. 11, the computing device 1100 includes a bus 1102, a processor 1104, a memory 1106, and a communication interface 1108. The processor 1104, the memory 1106, and the communication interface 1108 communicate through the bus 1102. The computing device 1100 can be a server or a terminal device. It should be understood that the number of processors and memories in the computing device 1100 is not limited by the present application.

[0217] The bus 1102 can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For the convenience of representation, only one line is represented in FIG. 11, but it does not mean that there is only one bus or only one type of bus. The bus 1102 can include a path for transmitting information between the components (for example, the memory 1106, the processor 1104, the communication interface 1108) of the computing device 1100.

[0218] The processor 1104 can include any one or more of a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP), etc.

[0219] The memory 1106 can include a volatile memory (for example, a random access memory (RAM)), and the processor 1104 can further include a non-volatile memory (for example, a read-only memory (ROM), a flash memory, a hard disk drive (HDD), or a solid state drive (SSD)).

[0220] The memory 1106 stores executable program codes, and the processor 1104 executes the executable program codes to respectively implement the functions of the foregoing acquisition module and processing module, so as to implement the model processing method described above. That is, the memory 1106 has instructions for executing the model processing method.

[0221] The communication interface 1108 uses a transceiver module such as, but not limited to, a network interface card, a transceiver, etc., to implement the communication between the computing device 1100 and other devices or communication networks.

[0222] It should be understood that the computing device 1100 according to the present application is used to execute the data processing method of the virtualization environment as described in FIGS. 3 to 9, and can correspond to the execution of the corresponding subject in the method according to the present application. For the sake of brevity, it will not be repeated here.

[0223] The application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a notebook computer, or a smart phone.

[0224] Referring to FIG. 12, FIG. 12 is a structural diagram of a computing device cluster provided by the application. As shown in FIG. 12, the computing device cluster includes at least one computing device 1100. The memory 1106 in one or more computing devices 1100 in the computing device cluster can store the same instructions for performing the data processing method of the virtualization environment.

[0225] In some possible implementations, the memory 1106 in one or more computing devices 1100 in the computing device cluster can also respectively store partial instructions for performing the data processing method of the virtualization environment. In other words, the combination of one or more computing devices 1100 can collectively execute the instructions for performing the data processing method of the virtualization environment.

[0226] It should be noted that the memory 1106 in different computing devices 1100 in the computing device cluster can store different instructions for respectively performing partial functions of the data processing apparatus. That is, the instructions stored in the memory 1106 in different computing devices 1100 can implement the functions of one or more of the above-described obtaining module and processing module.

[0227] In some possible implementations, one or more computing devices in the computing device cluster can be connected through a network. The network can be a wide area network or a local area network, etc. FIG. 13 shows a possible implementation. FIG. 13 is a structural diagram of another computing device cluster provided by the application. As shown in FIG. 13, in the computing device cluster 1300, two computing devices 1100A and 1100B are connected through a network. Specifically, the communication interface in each computing device is connected to the network. In this type of possible implementation, the memory 1106 in the computing device 1100A stores instructions for performing the functions of the obtaining module. Meanwhile, the memory 1106 in the computing device 1100B stores instructions for performing the functions of the processing module.

[0228] It should be understood that the functions of the computing device 1100A shown in FIG. 13 can also be completed by multiple computing devices 1100. Similarly, the functions of the computing device 1100B can also be completed by multiple computing devices 1100.

[0229] It should be understood that the computing device 1100 or the computing device cluster 1300 in the present application can correspond to the data processing apparatus of the virtualization environment in the present application, and can correspond to the corresponding subject performing the data processing method of the virtualization environment in the present application. Also, the above and other operations and / or functions of each module in the computing device 1100 or the computing device cluster 1300 are respectively for realizing the corresponding flow of the data processing method of the virtualization environment in the present application, and for the sake of brevity, will not be repeated here.

[0230] Referring to FIG. 14, FIG. 14 is a structural schematic diagram of a computer readable storage medium provided by the present application. The present application also provides a computer readable storage medium, in some embodiments, the method disclosed in FIG. 3 above can be implemented as computer program instructions encoded in a computer readable storage medium or other non-transitory medium or article in a machine readable format.

[0231] FIG. 14 schematically illustrates a conceptual partial view of an example computer readable storage medium arranged in accordance with at least some embodiments presented herein, the example computer readable storage medium including a computer program for executing a computer process on a computing device. In one embodiment, the computer readable storage medium 1400 is provided using a signal bearing medium 1401. The signal bearing medium 1401 can include one or more program instructions 1402, which when executed by one or more processors can provide the functionality or some portion of the functionality described above with respect to FIG. 3.

[0232] In some examples, the signal bearing medium 1401 can embody a computer readable medium 1403, such as, but not limited to, a hard disk drive, a compact disk (CD), a digital video disk (DVD), a digital tape, memory, ROM, RAM, etc.

[0233] In some implementations, the signal bearing medium 1401 can embody a computer recordable medium 1404, such as, but not limited to, memory, a read / write (R / W) CD, a R / W DVD, etc. In some implementations, the signal bearing medium 1401 can embody a communication medium 1405, such as, but not limited to, a digital and / or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communication link, a wireless communication link, etc.). Thus, for example, the signal bearing medium 1401 can be conveyed by a wireless form of the communication medium 1405 (e.g., a wireless communication medium complying with the IEEE 1202.X standard or another transmission protocol).

[0234] The one or more program instructions 1402 can be, for example, computer-executable instructions or logic-implementing instructions. In some examples, a computing device of a computing device can be configured to provide various operations, functions, or actions in response to the program instructions 1402 being communicated to the computing device by one or more of the computer-readable media 1403, the computer-recordable media 1404, and / or the communication media 1405.

[0235] It should be understood that the computer-readable storage medium 1400 in the present application can be a data processing apparatus deployed in the virtualization environment introduced in FIG. 10, or the computing device 1100 or the computing device cluster 1300 of the present application. In this way, the data processing apparatus of the virtualization environment, the computing device 1100 or the computing device cluster 1300 provided by the present application realizes the data processing method of the virtualization environment introduced in FIG. 3 by reading one or more program instructions 1402 on the computer-readable storage medium 1400.

[0236] In addition, it should be noted that the apparatus embodiments described above are only schematic, and units described as separate units can or can not be physically separate, and units shown as units can or can not be physical units, i.e. can be located in one place, or can be distributed on multiple network units. Part or all of the modules can be selected according to actual needs to achieve the purpose of the present embodiment. In addition, in the apparatus embodiment provided by the present application, the connection relationship between the modules indicates that there is a communication connection between them, which can be implemented as one or more communication buses or signal lines.

[0237] Through the description of the above embodiments, those skilled in the art can clearly understand that the present application can be realized by means of software and necessary general hardware, of course, it can also be realized by special hardware including special integrated circuits, special CPUs, special memories, special components, etc. Generally, functions completed by computer programs can be easily realized by corresponding hardware, and specific hardware structures for realizing the same function can also be various, such as analog circuits, digital circuits or special circuits. However, for the present application, software program implementation is a better embodiment. Based on such understanding, the technical solutions of the present application can be embodied in the form of a software product, which is stored in a readable storage medium, such as a computer's floppy disk, U disk, mobile hard disk, ROM, RAM, magnetic disk or optical disk, etc., including a plurality of instructions to make a computer device (which can be a personal computer, a training device, or a network device, etc.) execute the methods of various embodiments of the present application.

[0238] In the above-described embodiments, all or part can be implemented by software, hardware, firmware, or any combination thereof. When implemented by software, all or part can be implemented in the form of a computer program product.

[0239] The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the procedures or functions according to the present application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another, for example, the computer instructions can be transmitted from one website, computer, training device or data center to another website, computer, training device or data center through wired (such as coaxial cable, optical fiber, digital subscriber line) or wireless (such as infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that the computer can store or be integrated into a data storage device such as a training device, a data center, etc. containing one or more available media sets. The available media can be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk (SSD)), etc.

[0240] The above is only a specific embodiment of the present application. Those skilled in the art can think of changes or replacements based on the specific embodiments provided by the present application, which should be covered within the protection scope of the present application.

Claims

1. A data processing method of a virtualization environment, characterized by, The method comprises: obtaining an image file, the image file comprising files relied on by a virtualization device to start up; starting up a second operating system based on the image file during running of a first operating system, wherein the first operating system runs a first virtualization device providing cloud services, the second operating system is used to run a start-up dependent process of a second virtualization device, and the first operating system and the second operating system run on the same device; passing a running environment of the first virtualization device to the start-up dependent process, so that the start-up dependent process creates a running environment for the second virtualization device; stopping running of the first virtualization device, and passing state data generated during running of the first virtualization device to the start-up dependent process; based on the state data, running the second virtualization device, the second virtualization device being used to continue to execute services executed before the first virtualization device is stopped.

2. The method of claim 1, wherein, The obtaining of the image file comprises: based on a file type relied on by a virtualization device to start up, extracting files relied on by the virtualization device to start up from a virtualization device file set, to obtain the image file; wherein the virtualization device file set comprises the files relied on by the virtualization device to start up and files used to start up a virtualization device management service, and the virtualization device file set is a file set after software version upgrade is executed.

3. The method of claim 2, wherein, The running of the second virtualization device based on the state data comprises: determining a storage area where the virtualization device file set is located; based on files stored in the storage area, starting up a virtualization device management service; after the virtualization device management service takes over the second virtualization device, based on the state data, running the second virtualization device.

4. The method according to claim 2 or 3, characterized in that, In the process of running the second virtualization device, a storage area where the image file is located is taken as a read-only layer, and a storage area where the virtualization device file set is located is taken as a read-write layer, and the second virtualization device is mounted and run in a stacked manner, so that the second virtualization device performs read-write operations on the storage area where the virtualization device file set is located during running.

5. The method according to any one of claims 1 to 4, characterized in that, The passing of the running environment of the first virtualization device to the start-up dependent process comprises: storing data corresponding to the running environment of the first virtualization device in shared memory; informing the start-up dependent process to obtain the data corresponding to the running environment of the first virtualization device from the shared memory.

6. The method according to any one of claims 1 to 5, characterized in that, The passing of the running environment of the first virtualization device to the start-up dependent process comprises: passing a network-side running environment, a storage-side running environment, and a virtualization environment of the first virtualization device to the start-up dependent process; wherein the network-side running environment is used to establish connection of the second virtualization device with an external network, the storage-side running environment is used to establish connection of the second virtualization device with a storage device, and the virtualization environment is used to run the second virtualization device.

7. The method of claim 6, wherein, In the process of establishing the connection between the second virtualization device and the remote storage device by the start-dependent process, the virtual communication device on the first operating system is configured to forward communication data between the start-dependent process and the remote storage device.

8. The method according to any one of claims 1 to 7, characterized in that, The process of passing the running environment of the first virtualization device to the start-dependent process comprises: passing the address of the memory space used by the first virtualization device to the start-dependent process, so that the start-dependent process configures the memory space used by the second virtualization device; wherein the address of the memory space used by the second virtualization device is the same as the address of the memory space used by the first virtualization device.

9. The method according to any one of claims 1 to 8, characterized in that, The image file comprises at least one of a file for providing a cloud network service, a file for providing a cloud storage service, and a file for providing a virtualization environment.

10. The method according to any one of claims 1 to 9, characterized in that, The version of the second operating system is obtained by updating the version of the first operating system; Alternatively, the version of the second virtualization device is obtained by updating the version of the first virtualization device.

11. A data processing apparatus of a virtualization environment, characterized in that, comprise: an acquisition module configured to acquire an image file, the image file comprising files on which a virtualization device depends for starting; a processing module configured to start a second operating system based on the image file during the running of a first operating system, wherein the first operating system runs a first virtualization device providing a cloud service, the second operating system is used to run a start-dependent process of a second virtualization device, and the first operating system and the second operating system run on the same device; the processing module is further configured to pass the running environment of the first virtualization device to the start-dependent process, so that the start-dependent process creates a running environment for the second virtualization device; the processing module is further configured to stop running the first virtualization device and pass state data generated during the running of the first virtualization device to the start-dependent process; the processing module is further configured to run the second virtualization device based on the state data, the second virtualization device being used to continue to perform services performed by the first virtualization device before the first virtualization device stopped running.

12. The apparatus of claim 11, wherein, The acquisition module is specifically configured to: extract the files on which the virtualization device depends for starting from a virtualization device file set based on the type of the files on which the virtualization device depends for starting, to obtain the image file; wherein the virtualization device file set comprises the files on which the virtualization device depends for starting and files for starting a virtualization device management service, and the virtualization device file set is a file set after software version upgrade.

13. The apparatus of claim 12, wherein, The processing module is further configured to: determine a storage area where the virtualization device file set is stored; start a virtualization device management service based on the files stored in the storage area; after the virtualization device management service takes over the second virtualization device, run the second virtualization device based on the state data.

14. The apparatus of claim 12 or 13, wherein, In a process of running the second virtualization device, a storage area where the mirror file is located is taken as a read-only layer, and a storage area where the virtualization device file set is located is taken as a read-write layer, and the second virtualization device is mounted in a stacked manner to enable the second virtualization device to perform read-write operations on the storage area where the virtualization device file set is located during running.

15. The apparatus of any of claims 11-14, wherein, The processing module is further configured to: store data corresponding to a running environment of the first virtualization device in the shared memory; inform the start-dependent process to obtain the data corresponding to the running environment of the first virtualization device from the shared memory.

16. The apparatus of any one of claims 11-15, wherein, The processing module is further configured to: deliver a network-facing running environment, a storage-facing running environment, and a virtualization environment of the first virtualization device to the start-dependent process; The network-facing running environment is configured to establish a connection between the second virtualization device and an external network, the storage-facing running environment is configured to establish a connection between the second virtualization device and a storage device, and the virtualization environment is configured to run the second virtualization device.

17. The apparatus of claim 16, wherein, In a process in which the start-dependent process establishes a connection between the second virtualization device and a remote storage device, a virtual communication device on the first operating system is configured to forward communication data between the start-dependent process and the remote storage device.

18. The apparatus of any of claims 11-17, wherein, The processing module is further configured to: deliver an address of a memory space used by the first virtualization device to the start-dependent process, so that the start-dependent process configures a memory space used by the second virtualization device; The address of the memory space used by the second virtualization device is the same as the address of the memory space used by the first virtualization device.

19. The apparatus of any of claims 11-18, wherein, The mirror file includes at least one of a file used to provide a cloud network service, a file used to provide a cloud storage service, and a file used to provide a virtualization environment.

20. The apparatus of any of claims 11-19, wherein, The version of the second operating system is obtained by updating the version of the first operating system; Alternatively, the version of the second virtualization device is obtained by updating the version of the first virtualization device.

21. A data processing apparatus of a virtualization environment, the data processing apparatus comprising: The apparatus includes a memory and a processor; the memory stores code, and the processor is configured to execute the code, and when the code is executed, the apparatus performs the method of any one of claims 1 to 10.

22. A computer storage medium, comprising, The computer storage medium stores instructions, and the instructions, when executed by a computer, cause the computer to implement the method of any one of claims 1 to 10.

23. A computer program product, characterised in that, The computer program product stores instructions, and the instructions, when executed by a computer, cause the computer to implement the method of any one of claims 1 to 10.

Citation Information

Patent Citations

  • Virtual machine thermal migration method, device and system, storage medium and equipment

    CN107247619A

  • Method for migrating a virtual machine

    CN109522088A

  • Application mirror image construction method and device, electronic equipment and storage medium

    CN112256282A

  • Cloud platform resource migration method, device and storage medium

    CN112445570A

  • Virtual machine migration method and device, upgrading method and server

    CN115599494A