Method for storing data and cloud data center

By creating virtual image objects in the cloud data center and directly obtaining data from storage devices, the problems of high IO consumption and increased storage costs during the creation of image objects are solved, achieving more efficient data conversion and reducing storage costs.

CN112860479BActive Publication Date: 2026-05-12HUAWEI TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
HUAWEI TECH CO LTD
Filing Date
2016-12-26
Publication Date
2026-05-12

AI Technical Summary

Technical Problem

When creating image objects in a cloud data center, existing technologies require reading backup copies from storage devices and writing them, resulting in significant I/O time consumption and increased storage costs.

Method used

By creating a virtual image object on the backup server, the target data can be obtained directly from the storage device, avoiding the creation of a real image object on the storage device, reducing storage space usage and shortening data conversion time.

Benefits of technology

It reduces storage costs in cloud data centers and eliminates read/write I/O time consumption when creating cloud disks for virtual machines, thus improving data conversion efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112860479B_ABST
    Figure CN112860479B_ABST
Patent Text Reader

Abstract

Method for storing data and cloud data center. Embodiments of the present application provide a method for realizing data conversion in a cloud data center and a backup server, which can shorten the conversion time of backup data objects when creating a cloud disk of a virtual machine, and reduce the storage cost of users in the cloud data center. The method comprises: a backup server receiving a read request sent by a block storage server, the read request comprising a URL address of a virtual image object to be read in the backup server and an address range of target data in the virtual image object to be read; acquiring, according to the URL address of the virtual image object to be read in the backup server, an address mapping bitmap and a storage path of backup data in a backup copy corresponding to the virtual image object to be read; acquiring the target data from a storage device according to the address range of the target data, the address mapping bitmap and the storage path of the backup data in the backup copy; and sending the target data to the block storage server. The present application is suitable for the field of storage technology.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of storage technology, and in particular to methods for storing data in cloud data centers and cloud data centers. Background Technology

[0002] In the current hybrid cloud backup, data from virtual machines (VMs) or physical machines (PMs) in the on-premises data center is backed up to local storage in units of volumes, or backed up to local storage and then remotely copied to inexpensive storage devices in the cloud data center. The backup server in the cloud data center then restores the virtual machines (also known as cloud hosts) in the cloud data center, thereby achieving the purpose of disaster recovery and data backup.

[0003] In this process, the backup data generated from a single backup is called a backup copy, which includes multiple backup data objects. An object is the basic unit of data storage in object storage technology; an object is a combination of file data and a set of attribute information (metadata). When backup software backs up VM / PM data to storage devices in the form of objects, it stores the data as backup copies. However, the format type that cloud data centers can register is the image object data format. Therefore, the backup server needs to create a cloud data center-registerable image object corresponding to the backup copy on the storage device. Here, "image" refers to an image within the cloud data center. An image object is an object within the cloud data center that is compatible with the cloud data center and can be used to create virtual machines and virtual machine disks.

[0004] However, during the process of creating image objects in the storage devices of cloud data centers, on the one hand, because the backup server needs to read the backup copy from the storage device first, and then issue write operations to the storage device to form the image object, a lot of time is already consumed due to a large amount of input-output (IO) before the cloud disk of the virtual machine is even created; on the other hand, because creating image objects in the storage device consumes the user's storage space in the storage device, it increases the user's storage cost in the cloud data center. Summary of the Invention

[0005] This application provides a method and backup server for data conversion in a cloud data center, which shortens the conversion time of backup data objects when creating a cloud disk for a virtual machine and reduces the storage costs for users in the cloud data center.

[0006] To achieve the above objectives, the embodiments of this application provide the following technical solutions:

[0007] A first aspect provides a method for data transformation in a cloud data center, the cloud data center including a backup server, a block storage server, and a storage device. The backup server stores a virtual image object corresponding to a backup copy in the storage device and a Uniform Resource Locator (URL) address of the virtual image object in the backup server. The method includes: the backup server receiving a read request sent by the block storage server, the read request including the URL address of the virtual image object to be read in the backup server and the address range of target data in the virtual image object to be read; the backup server obtaining an address mapping bitmap and a storage path of the backup data in the backup copy corresponding to the virtual image object to be read based on the URL address of the virtual image object to be read in the backup server; the backup server obtaining the target data from the storage device based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path; and the backup server sending the target data to the block storage server. Based on the data conversion method in cloud data centers provided in this application embodiment, on the one hand, since a virtual image object is created by the backup server instead of a real image object in the storage device, the storage space in the storage device can be saved, thereby reducing the storage cost in the cloud data center. On the other hand, in this application embodiment, the block storage device can directly read the backup data in the storage device through the backup server, instead of the backup server first reading the backup copy from the storage device, then issuing write operations to the storage device to form an image object, and then the block storage device reading the backup data from the image object. Therefore, when creating a cloud disk for a virtual machine, the read IO and write IO consumed by generating a real image object can be eliminated, thereby shortening the conversion time of the backup data object.

[0008] In one possible design, before the backup server receives a read request from the block storage server, the process further includes: the backup server obtaining an identifier for the backup copy; the backup server querying a local database based on the identifier to obtain the storage path of the metadata in the backup copy; the backup server retrieving the metadata from the storage device based on the storage path; the backup server creating a virtual image object to be read based on the metadata; the backup server generating a URL address for the created virtual image object; and the backup server sending the URL address of the created virtual image object to the image server. Through the above method, a virtual image object can be virtualized in the backup server.

[0009] In one possible design, the backup server obtains the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read, based on the URL address of the virtual image object in the backup server. This includes: the backup server determining the identifier of the virtual image object to be read based on the URL address of the virtual image object in the backup server; the backup server obtaining pre-stored metadata of the virtual image object to be read based on the identifier of the virtual image object to be read, the metadata including the storage path of the address mapping bitmap of the backup data in the backup copy corresponding to the virtual image object to be read and the storage path of the backup data in the backup copy; and the backup server obtaining the address mapping bitmap of the backup data in the backup copy from the storage device based on the storage path of the address mapping bitmap of the backup data in the backup copy. That is, in this embodiment of the application, the backup server can obtain the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read based on the pre-stored metadata in the virtual image object to be read.

[0010] In one possible design, the backup server obtains the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read, based on the URL address of the virtual image object in the backup server. This includes: the backup server determining the identifier of the virtual image object to be read based on the URL address of the virtual image object in the backup server; and the backup server obtaining the pre-stored address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read based on the identifier of the virtual image object to be read. That is, in this embodiment, the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object can be obtained only once during the entire access process of the virtual image object, and then stored locally on the backup server. Subsequent use only requires obtaining the pre-stored address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read in the backup server based on the URL address of the virtual image object in the backup server.

[0011] In one possible design, the backup server retrieves the target data from the storage device based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path. This includes: the backup server retrieving the backup data to be read from the storage device based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path; and the backup server retrieving the target data based on the backup data to be read and the address range of the target data. That is, in this embodiment, the backup server can first retrieve the backup data to be read from the storage device, and then retrieve the target data based on the backup data to be read and the address range of the target data.

[0012] In one possible design, the backup server retrieves the backup data to be read from the storage device based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path. This includes: the backup server determining the backup data to be read based on the address range of the target data and the address mapping bitmap of the backup data in the backup copy; then, based on the address mapping bitmap and storage path of the backup data in the backup copy, obtaining the storage path of the backup data to be read in the storage device; furthermore, the backup server creating a data read request for the backup data to be read based on the storage path of the backup data to be read in the storage device, wherein the data read request includes the storage path of the backup data to be read in the storage device; then, the backup server sending the data read request to the storage device; and finally, the backup server receiving the backup data to be read sent by the storage device. Through this method, the backup data to be read can be retrieved from the storage device.

[0013] In one possible design, the backup server obtains the target data based on the backup data to be read and the address range of the target data. This includes: if the address range of the target data is greater than the address range of backup data objects in the backup copy, the backup server combines data from different backup data objects in the backup data to be read to obtain the target data. Specific examples can be found in the detailed implementation section, and will not be repeated here.

[0014] In one possible design, the backup server obtains the target data based on the backup data to be read and the address range of the target data. This includes: if the address range of the target data is not greater than the address range of the backup data objects in the backup copy, the backup server extracts the data corresponding to the address range of the target data from the backup data to be read as the target data. Specific examples can be found in the detailed implementation section, and will not be repeated here.

[0015] In one possible design, the backup server retrieves the target data from the storage device based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path. This includes: if the address range of the target data is not greater than the address range of the backup data objects in the backup copy, the backup server determines the backup data to be read based on the address range of the target data and the address mapping bitmap of the backup data in the backup copy; then, based on the address mapping bitmap and storage path of the backup data in the backup copy, it obtains the storage path of the backup data to be read in the storage device; the backup server creates a data read request for the backup data to be read based on the storage path of the backup data to be read in the storage device, the data read request including the storage path of the backup data to be read in the storage device and the address range of the target data; the backup server sends the data read request to the storage device; and the backup server receives the target data sent by the storage device. That is, in this embodiment, when reading data from the storage device, a segmented reading method or a more refined address range can also be used. Specific examples can be found in the detailed implementation section, and will not be repeated here.

[0016] Secondly, a backup server is provided, comprising: an object storage presentation module, an input / output IO interception and analysis module, and an IO forwarding layer; the object storage presentation module is used to store a virtual image object corresponding to a backup copy in a storage device and the Uniform Resource Locator (URL) address of the virtual image object in the backup server; the object storage presentation module is also used to receive a read request sent by the block storage server, the read request including the URL address of the virtual image object to be read in the backup server and the address range of target data in the virtual image object to be read; the object storage presentation module is also used to determine the target data address range of the virtual image object to be read based on the URL address of the backup copy in the storage device and the URL address of the target data in the virtual image object to be read. The URL address of the virtual image object in the backup server is used to obtain the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read; the IO interception and analysis module is used to intercept the address range of the target data in the object storage rendering module, the address mapping bitmap and storage path of the backup data in the backup copy, and obtain the target data from the storage device through the IO forwarding layer according to the address range of the target data, the address mapping bitmap and storage path of the backup data in the backup copy; the object storage rendering module is also used to send the target data obtained by the IO interception and analysis module to the block storage server.

[0017] In one possible design, the backup server further includes a backup module; the backup module is configured to obtain the identifier of the backup copy before the object storage rendering module receives a read request from the block storage server; the backup module is also configured to query a local database based on the identifier of the backup copy to obtain the storage path of the metadata in the backup copy; the object storage rendering module is also configured to obtain the metadata from the storage device through the IO forwarding layer based on the storage path of the metadata obtained by the backup module; the object storage rendering module is also configured to create the virtual image object to be read based on the metadata and generate the URL address of the created virtual image object; the backup module is also configured to send the URL address of the virtual image object created by the object storage rendering module to the image server.

[0018] In one possible design, the object storage rendering module obtains the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read, based on the URL address of the virtual image object to be read in the backup server. This includes: determining the identifier of the virtual image object to be read based on the URL address of the virtual image object to be read in the backup server; obtaining the metadata of the virtual image object to be read, which is pre-stored in the object storage rendering module, based on the identifier of the virtual image object to be read. The metadata includes the storage path of the address mapping bitmap of the backup data in the backup copy corresponding to the virtual image object to be read and the storage path of the backup data in the backup copy; and obtaining the address mapping bitmap of the backup data in the backup copy from the storage device through the IO forwarding layer based on the storage path of the address mapping bitmap of the backup data in the backup copy.

[0019] In one possible design, the object storage rendering module obtains the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read, based on the URL address of the virtual image object to be read in the backup server. This includes: determining the identifier of the virtual image object to be read based on the URL address of the virtual image object to be read in the backup server; and obtaining the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read, which are pre-stored based on the identifier of the virtual image object to be read.

[0020] In one possible design, the IO interception and analysis module obtains the target data from the storage device through the IO forwarding layer based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path. This includes: obtaining the backup data to be read from the storage device through the IO forwarding layer based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path; and obtaining the target data based on the backup data to be read and the address range of the target data.

[0021] In one possible design, the IO interception and analysis module obtains the backup data to be read from the storage device through the IO forwarding layer based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path. This includes: determining the backup data to be read based on the address range of the target data and the address mapping bitmap of the backup data in the backup copy; obtaining the storage path of the backup data to be read in the storage device based on the address mapping bitmap and the storage path of the backup data in the backup copy; creating a data read request for the backup data to be read based on the storage path of the backup data to be read in the storage device, wherein the data read request includes the storage path of the backup data to be read in the storage device; sending the data read request to the storage device through the IO forwarding layer; and receiving the backup data to be read sent by the storage device through the IO forwarding layer.

[0022] In one possible design, the IO interception and analysis module obtains the target data based on the address range of the backup data to be read and the target data. This includes: if the address range of the target data is greater than the address range of backup data objects in the backup copy, the IO interception and analysis module combines the data of different backup data objects in the backup data to be read to obtain the target data. Specific examples can be found in the detailed implementation section, and will not be repeated here.

[0023] In one possible design, the IO interception and analysis module obtains the target data based on the backup data to be read and the address range of the target data. This includes: if the address range of the target data is not greater than the address range of the backup data object in the backup copy, the IO interception and analysis module extracts the data corresponding to the address range of the target data from the backup data to be read as the target data. Specific examples can be found in the detailed implementation section, and will not be repeated here.

[0024] In one possible design, the IO interception and analysis module obtains the target data from the storage device through the IO forwarding layer based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path. This includes: if the address range of the target data is not greater than the address range of the backup data object in the backup copy, determining the backup data to be read based on the address range of the target data and the address mapping bitmap of the backup data in the backup copy; then obtaining the storage path of the backup data to be read in the storage device based on the address mapping bitmap and the storage path of the backup data in the backup copy; creating a data read request for the backup data to be read based on the storage path of the backup data to be read in the storage device, the data read request including the storage path of the backup data to be read in the storage device and the address range of the target data; sending the data read request to the storage device through the IO forwarding layer; and receiving the target data sent by the storage device through the IO forwarding layer.

[0025] Thirdly, a backup server is provided, comprising: a processor, a memory, a bus, and a communication interface; the memory is used to store computer execution instructions, the processor is connected to the memory via the bus, and when the backup server is running, the processor executes the computer execution instructions stored in the memory to cause the backup server to perform the method for implementing data transformation in a cloud data center as described in any one of the first aspects above.

[0026] Fourthly, a computer storage medium is provided for storing computer software instructions used by the aforementioned backup server, comprising programs designed for executing the methods described in the embodiments. By executing the stored programs, a data transformation method can be implemented in a cloud data center.

[0027] Fifthly, a computer program is provided, the computer program including instructions that, when executed by a computer, cause the computer to perform the method for implementing data transformation in a cloud data center as described in any of the first aspects above.

[0028] Sixthly, a cloud data center system is provided, comprising a block storage device, a mirror server, a storage device, and a backup server as described in either the second or third aspect; wherein the mirror server is configured to receive and store the URL address of the created virtual image object sent by the backup server; the block storage server is configured to query the URL address of the created virtual image object from the mirror server and send a read request to the backup server; the block storage server is further configured to receive target data sent by the backup server and create a cloud disk for the virtual machine based on the target data.

[0029] Furthermore, the technical effects of any of the design methods in aspects two through five can be found in the technical effects of different design methods in aspect one, and will not be repeated here. Attached Figure Description

[0030] Figure 1 A logical framework diagram of a hybrid cloud backup system provided in this application embodiment;

[0031] Figure 2 This is a schematic diagram of a data object in a storage device provided in an embodiment of this application;

[0032] Figure 3 This is a schematic diagram of the backup server provided in an embodiment of this application;

[0033] Figure 4 Flowchart of the data conversion method provided in the embodiments of this application Figure 1 ;

[0034] Figure 5 This is a schematic diagram of the overall framework for data conversion provided in the embodiments of this application;

[0035] Figure 6 This is a schematic diagram illustrating the process of creating a virtual image object provided in an embodiment of this application;

[0036] Figure 7 This is a schematic diagram of the overall framework for creating a virtual image object provided in an embodiment of this application;

[0037] Figure 8 This is a schematic diagram of the hardware structure of the backup server provided in an embodiment of this application. Detailed Implementation

[0038] The technical solutions of the embodiments of this application will be described below with reference to the accompanying drawings. In the description of this application, unless otherwise stated, " / " means "or," for example, A / B can mean A or B; "and / or" in this document is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone. Furthermore, in the description of this application, "multiple" refers to two or more.

[0039] This application provides a method for data conversion in a cloud data center. This method is applicable to both hybrid cloud backup systems (where data is backed up from an on-premises data center to a cloud data center) and cloud backup systems (where data is backed up from a cloud data center to other cloud data centers). This application uses a hybrid cloud backup system as an example for illustration.

[0040] like Figure 1 The diagram shown is a logical framework diagram of the hybrid cloud backup system provided in this application embodiment. The hybrid cloud backup system includes an on-premises data center and a cloud data center. The on-premises data center deploys VMs and / or PMs, a disaster recovery / migration management server, a backup management server, and backup server 1. The cloud data center deploys backup server 2, storage devices, image servers, and block storage servers, wherein the storage devices store data in an object storage manner. A brief description of these devices in the on-premises data center and the cloud data center is as follows:

[0041] VM / PM: Machines that provide business services to users, such as file servers and database servers, can exist in the form of VM / PM.

[0042] Disaster recovery / migration management server: controls the entire disaster recovery and data migration process.

[0043] Backup management server: A management server used to schedule backup-related tasks to different backup servers.

[0044] Backup server: A server that performs backup-related tasks. There can be multiple backup servers distributed across different sites, all managed by the same backup management server. These sites include on-premises data centers and cloud data centers. For example... Figure 1 As shown, backup server 1 is located in an on-premises data center, and backup server 2 is located in a cloud data center. Of course, Figure 1 The example only provides two backup servers, and this application does not specifically limit the number of backup servers.

[0045] Storage devices: Storage devices are deployed in cloud data centers and use object storage technology to store data. They can provide storage services to on-premises tenants or to cloud servers using object storage. Examples include Amazon Web Services (AWS) S3.

[0046] Image server: A server used to manage cloud host images. A cloud host image refers to the creation of virtual machines in a cloud data center based on an image object. In this embodiment, the backup server creates a virtual image object, which is presented externally as an object storage interface. The virtual image object appears identical to the image object, but unlike the image object, it only contains metadata objects and not backup data objects. Furthermore, the storage path of the data objects in the metadata object of the virtual image object points to the data objects of the backup copy on the storage device. In contrast, the image object contains both metadata objects and backup data objects, and the storage path of the data objects in the metadata object points to the data objects in the image object. Therefore, in this embodiment, a cloud host image actually refers to the creation of virtual machines in a cloud data center based on a virtual image object. Additionally, since the core of creating a virtual machine lies in creating a cloud disk for the virtual machine in the cloud data center, the core of a cloud host image in this embodiment lies in creating a cloud disk for the virtual machine in the cloud data center based on the virtual image object. In this embodiment, the image server records the Uniform Resource Locator (URL) address of each virtual image object. For example, the URL address of the virtual image object for Backup-2 can be: http: / / BackupServer-IP / / IMG-objectID-Backup-2. Here, BackupServer-IP refers to the IP address of the backup server that virtualized the virtual image object; IMG-objectID-Backup-2 refers to the identity (ID) of the virtual image object for Backup-2. In addition, the image server also records some metadata information of the virtual image object, such as the virtual image object's identifier, format, and size. In this embodiment, when creating virtual machines, especially virtual machine cloud disks, in a cloud data center, it is necessary to create them based on virtual image objects. All virtual machine image objects are managed by the image server, which provides services such as image object registration and query.

[0047] Block storage server: A server used to create cloud disks for virtual machines. Generally, it obtains the address of an image object from an image server, and then retrieves the image object's data from the storage device based on that address to create the virtual machine's disk. In this embodiment, the address of the image object specifically refers to the URL address of the virtual image object.

[0048] The following is a brief description of the process for creating a virtual machine cloud disk in a hybrid cloud backup system based on the equipment in the aforementioned on-premises data center and cloud data center. In this embodiment, backup server 1 is located in the on-premises data center, and backup server 2 is located in the cloud data center. The specific implementation process is as follows:

[0049] S1. The disaster recovery / migration management server sends a request to the backup management server to back up the specified VM / PM. The request carries the identifier of the specified VM / PM and the destination address of the backup. In this embodiment, the destination address of the backup is actually the URL address of the storage device.

[0050] S2. The backup management server sends an instruction to the backup server 1, which instructs the backup server 1 to back up the disk data of the specified VM / PM in the form of objects to the storage device of the cloud data center according to the VM / PM identifier and the backup destination address.

[0051] S3. Backup server 1 backs up the data of the specified VM / PM disk to the storage device in the cloud data center, obtaining a backup copy. The format of this backup copy on the storage device is only recognizable by the backup software on backup server 1. Backup server 1 automatically generates the name of the backup data object and combines it with the URL address of the storage device to obtain the storage path of the backup data object. For example, if the URL address of the storage device is http: / / IP and the name of the backup data object is Object-1, then the storage path of the backup data object is http: / / IP / Object-1.

[0052] Specifically, in this embodiment, the backup data generated by a single backup is called a backup copy, and a backup copy includes multiple backup data objects. For example, a backup data object includes multiple backup data objects, an address mapping bitmap object for the backup data (hereinafter referred to as the address mapping bitmap object), and a metadata object for the backup copy. The data in each backup data object is backup data, and the addresses of the backup data in multiple backup data objects increment according to the address location of the data on the disk of the original virtual machine or physical machine. The data in the address mapping bitmap object is the address mapping bitmap, and the data in the metadata object is metadata. Typical backup data is divided into several data blocks of equal size, each data block being a backup data object in the storage device; the address mapping bitmap indicates which backup data objects are needed to form a complete disk backup for a certain disk of the virtual machine; the metadata includes the size of the virtual machine disk in this backup, the backup copy time point, and the storage path of the backup copy, etc. Here, the storage path of the backup copy is actually the URL address of the storage device, such as http: / / IP.

[0053] like Figure 2 As shown, taking a 32MB disk as an example, with each 4MB partition divided into objects, the process of backing up a virtual machine disk is explained as follows:

[0054] The backup data in the multiple backup data objects generated during the first backup is stored in ascending order of its address on the original virtual machine or physical machine's disk, from Backup-1-1 to Backup-1-8. Backup-1-1 is the first backup data object in the first backup, storing data in the 0-4MB range of the disk; Backup-1-2 is the second backup data object, storing data in the 5-8MB range of the disk, and so on. After the first backup, the backup data includes data A from Backup-1-1, data B from Backup-1-2, data C from Backup-1-3, data D from Backup-1-4, data F from Backup-1-5, data E from Backup-1-6, data G from Backup-1-7, and data H from Backup-1-8.

[0055] The address mapping bitmap generated during the first backup is also stored as objects on the storage device. This bitmap contains the names of all the backup data objects needed to form a complete disk for this backup, and they are stored sequentially according to their address locations on the original virtual machine or physical machine's disk, such as... Figure 2 Backups 1-1, 1-2, 1-3, 1-4, 1-5, 1-6, 1-7, and 1-8 are included.

[0056] Only two of the backup data objects changed during the second backup, but the address mapping bitmap generated during the second backup still contained the names of all the backup data objects required to form a complete disk at backup-2 time point, such as... Figure 2 The backups are named 2-1, 2-2, 1-3, 1-4, 1-5, 1-6, 1-7, and 1-8. Backup 2-1 is the first backup data object in the second backup, storing data in the range of 0-4MB on the disk. Backup 2-2 is the second backup data object in the second backup, storing data in the range of 5-8MB on the disk, and so on.

[0057] Since only two backup data objects changed during the second backup, the backup data after the second backup includes data A1 from backup-2-1, data B1 from backup-2-2, data C from backup-1-3, data D from backup-1-4, data F from backup-1-5, data E from backup-1-6, data G from backup-1-7, and data H from backup-1-8.

[0058] In other words, during the two backup processes, the backup data is as follows: Figure 2As shown, the backup includes data A from backup-1-1, data B from backup-1-2, data C from backup-1-3, data D from backup-1-4, data F from backup-1-5, data E from backup-1-6, data G from backup-1-7, data H from backup-1-8, data A1 from backup-2-1, and data B1 from backup-2-2.

[0059] Based on the above definition of backup copies, the backup copies in this example include... Figure 2 The backup data object, address mapping bitmap object, and metadata object in the database.

[0060] S4. Backup server 1 sends the path of the backup data object to the disaster recovery / migration management server through the backup management server.

[0061] S5, the disaster recovery / migration management server sends instructions to the backup server 2 in the cloud data center through the backup management server. The instructions carry the identifier of the backup copy and are used to instruct the backup server 2 to perform format conversion on the backup data object of the backup copy in the storage device, converting it into an image object that can be recognized by the block storage server.

[0062] S6. Backup server 2 creates a virtual image object based on the selected backup copy and sends the URL address of the virtual image object to the disaster recovery / migration management server through the backup management server. This process will be described in detail in the following section on the creation of the virtual image object in this application, and will not be repeated here.

[0063] S7. The disaster recovery / migration management server sends an image registration instruction to the image server. This instruction contains the URL address of the virtual image object and the image format type. The image format type can be, for example, raw disk, open virtualization format (OVF), or open virtualization appliance (OVA), etc. In this embodiment, the image format type is described as raw disk, and this will be repeated hereafter.

[0064] S8. The image server registers the virtual image object, that is, it records the URL address and type of the virtual image object and assigns an image ID to the virtual image object.

[0065] S9. The image server sends the image ID assigned to the virtual image object to the disaster recovery / migration management server.

[0066] S10. The disaster recovery / migration management server sends an instruction message to the block storage server to create a cloud disk. The instruction message carries the image ID assigned by the image server to the virtual image object.

[0067] S11. The block storage server retrieves the URL of the virtual image object from the image server based on the image ID, and then creates the virtual machine's cloud disk. This process will be described in detail in the data conversion method section below of this application, and will not be repeated here.

[0068] In step S11 above, how to shorten the conversion time of backup data objects and reduce the storage costs for users in cloud data centers is a key technical problem that this application embodiment needs to solve, and will be explained in detail below.

[0069] The method for data transformation in a cloud data center provided in this application mainly involves... Figure 1 This is achieved using backup server 2 in the Zhongyun data center. For example... Figure 3 The diagram shown is a structural schematic of the backup server 30 provided in this embodiment of the application. The backup server 30 includes: a backup module 31, an object storage presentation module 32, an IO interception and analysis module 33, and an IO forwarding layer 34. A brief description of each module follows:

[0070] The backup module 31 is used to receive backup and restore instructions from the backup management server and complete backup and restore tasks. Additionally, in this embodiment, the backup module 31 also participates in the task of creating a virtual image object.

[0071] The object storage presentation module 32 is used to present a virtual storage device to the outside world through an object storage interface. Specifically, the object storage presentation module 32 includes an HTTP server component 321, an object storage device (OSD) component 322, and a metadata management component 323.

[0072] The metadata management component 323 stores metadata such as the size and creation time of the virtual image object.

[0073] OSD component 322 is logically a data storage component, providing an HTTP interface for data access. The stored data consists of objects, not blocks or files. OSD component 322 uploads or downloads object data using PUT / Get methods of the Representational State Transfer (REST) ​​interface. In this embodiment, OSD component 322 does not actually store object data; it primarily assists the IO interception and analysis module 33 in performing interception and analysis.

[0074] The HTTP server component 321 is used to respond to various HTTP access requests from the object storage access HTTP client 341, including HTTP access requests for uploading and downloading object data.

[0075] The IO interception and analysis module 33 is used to intercept read requests and analyze IO ranges. In this embodiment, the read request is used to read data from a virtual image object. The read request includes the URL address of the virtual image object to be read on the backup server and the address range of the target data in the virtual image object. For example, the read request could be a Get operation on data at addresses 0-8MB in the virtual image object corresponding to http: / / BackupServer-IP / / IMG-objectID-Backup-2. Here, the URL address of the virtual image object to be read on the backup server is http: / / BackupServer-IP / / IMG-objectID-Backup-2, and the address range of the target data is 0-8MB. Specifically, the IO interception and analysis module 33 includes an IO interception component 331 and an IO analysis component 332.

[0076] The IO interception component 331 is used to intercept the read request after the OSD component 322 obtains the read request and send the read request to the IO analysis component 332.

[0077] The IO analysis component 332 is used to analyze the address range of the target data in the read request, and, in conjunction with the address mapping bitmap and storage path of the backup data in the backup copy, decompose the read request into one or more HTTP-based requests to the storage device.

[0078] Additionally, the IO analysis component 332, upon receiving backup data to be read from the storage device, retrieves the target data based on the address range of the backup data to be read and the target data, and then sends the target data to the IO interception component 331, which in turn returns it to the OSD component 322. For a detailed implementation of how the IO analysis component 332 retrieves the target data based on the address range of the backup data to be read and the target data, please refer to [reference needed]. Figure 4 The descriptions in the method embodiments shown are not repeated here.

[0079] Alternatively, the IO analysis component 332 may also, after receiving target data sent by the storage device, send the target data to the IO interception component 331, which then returns the data to the OSD component 322. See details for further information. Figure 4 The descriptions in the method embodiments shown are not repeated here.

[0080] The IO forwarding layer 34 includes an object storage access HTTP client 341, which forwards HTTP requests to the storage device; after obtaining the backup data or target data to be read, it forwards the backup data or target data to be read to the IO analysis component 332.

[0081] The following will describe a method for data conversion in a cloud data center, based on the backup server 30 provided in this embodiment. The backup server 30 stores virtual image objects corresponding to backup copies in the storage device and the URL addresses of these virtual image objects within the backup server. Figure 4 As shown, the method for implementing data transformation in a cloud data center includes the following steps:

[0082] S401. The backup server receives a read request sent by the block storage server. The read request includes the URL address of the virtual image object to be read in the backup server and the address range of the target data in the virtual image object to be read.

[0083] As described in step S6 above, in this embodiment of the application, the backup server needs to create a virtual image object based on the selected backup copy. The specific creation process will be described in the following embodiments and will not be repeated here.

[0084] The URL address of the virtual image object in the block storage server is obtained by the block storage server after receiving the instruction message to create a cloud disk from the disaster recovery / migration management server, based on the image ID assigned to the virtual image object by the image server carried in the instruction message (see step S11 above). The URL address of the virtual image object in the image server is generated by the backup server 30, sent to the disaster recovery / migration management server through the backup management server, and then obtained through steps S7 and S8 above. For example, taking the URL address of the virtual image object of backup-2 as an example, the URL address of the virtual image object can be Http: / / BackupServer-IP / IMG-objectID-Backup-2.

[0085] The address range of the target data indicates the range of the mirror object data to be transmitted, such as data with addresses from 0 to 8 MB.

[0086] Specifically, in combination Figure 3 Backup server 30 shown. Figure 5 A schematic diagram of the overall framework for data transformation implemented by the backup server 30 in a cloud data center is provided. The HTTP server component 321 in the backup server 30 is used to support the backup server 30 in executing step S401 in this embodiment.

[0087] S402. The backup server obtains the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read, based on the URL address of the virtual image object to be read in the backup server.

[0088] Optionally, the backup server obtains the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read based on the URL address of the virtual image object in the backup server. Specifically, this may include: the backup server determining the identifier of the virtual image object to be read based on the URL address of the virtual image object in the backup server; then, the backup server obtaining the pre-stored metadata of the virtual image object to be read based on the identifier of the virtual image object to be read, which includes the storage path of the address mapping bitmap of the backup data in the backup copy corresponding to the virtual image object to be read and the storage path of the backup data in the backup copy; then, the backup server obtaining the address mapping bitmap of the backup data in the backup copy from the storage device based on the storage path of the address mapping bitmap of the backup data in the backup copy.

[0089] For example, such as Figure 5 As shown, if the URL address of the virtual image object to be read is Http: / / BackupServer-IP / IMG-objectID-Backup-2, then after receiving the read request, the Http server component 321 can analyze the URL address of the virtual image object to be read and determine that the identifier of the virtual image object to be read is IMG-objectID-Backup-2, which is the virtual image object corresponding to Backup-2. Then, the Http server component 321 can send a data acquisition instruction to the OSD component 322, which carries the identifier of the virtual image object to be read and the address range of the target data. After receiving the data acquisition instruction, the OSD component 322 can obtain the metadata of Backup-2 in the virtual image object to be read from the metadata management component 323 based on the identifier of the virtual image object to be read carried in the data acquisition instruction. This metadata includes the storage path of the address mapping bitmap of Backup-2 corresponding to the virtual image object to be read and the storage path of the backup data of Backup-2. Furthermore, OSD component 322 can send an address mapping bitmap acquisition request to the physical storage device through object storage access HTTP client 341 and obtain the address mapping bitmap of backup-2.

[0090] It should be noted that the address mapping bitmap and storage path of the backup data in the backup copy can be obtained only once during the entire access process of the virtual image object, and then stored locally on the backup server 30. When used subsequently, it is only necessary to obtain the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read, which are pre-stored in the backup server 30, based on the URL address of the virtual image object to be read in the backup server.

[0091] Optionally, the backup server may also store the URL address of the backup copy on the storage device. Based on the URL address of the virtual image object to be read on the backup server, the backup server obtains the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read. Specifically, this may include: the backup server obtaining the URL address of the backup copy corresponding to the virtual image object to be read on the storage device based on the URL address of the virtual image object to be read on the backup server; and retrieving the metadata of the backup copy corresponding to the virtual image object to be read from the storage device based on the URL address of the backup copy corresponding to the virtual image object to be read. The metadata includes the storage path of the address mapping bitmap of the backup data and the storage path of the backup data.

[0092] For example, such as Figure 5 As shown, if the URL address of the virtual image object to be read is Http: / / BackupServer-IP / IMG-objectID-Backup-2, then after receiving the read request, the HTTP server component 321 can obtain the URL address of the backup copy of the virtual image object in the storage device based on the URL address of the virtual image object to be read. For example, it could be...

[0093] http: / / object-storage / objectID-Backup-2 is the URL address of Backup-2 on the storage device. The HTTP server component 321 can then send a data retrieval command to the OSD component 322, carrying the URL address of Backup-2 on the storage device and the address range of the target data. Upon receiving the data retrieval command, the OSD component 322 can retrieve the metadata of Backup-2 from the storage device via the object storage access HTTP client 341, based on the URL address of Backup-2. The metadata includes the storage path of the address mapping bitmap of Backup-2 and the storage path of the backup data of Backup-2.

[0094] S403. The backup server retrieves the target data from the storage device based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path.

[0095] In one possible implementation, the backup server retrieves the target data from the storage device based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path. Specifically, this may include: the backup server retrieving the backup data to be read from the storage device based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path; and the backup server retrieving the target data based on the backup data to be read and the address range of the target data.

[0096] Specifically, such as Figure 5 As shown, the IO interception component 331 intercepts the data acquisition command sent by the OSD component 322 to the object storage access HTTP client 341, and sends the data acquisition command to the IO analysis component 332. As mentioned above, the data acquisition command carries the identifier of the virtual image object and the address range of the target data, such as 0-8MB. Then, the IO analysis component 332, based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path, retrieves the backup data to be read from the storage device through the object storage access HTTP client 341, and obtains the target data based on the backup data to be read and the address range of the target data.

[0097] Optionally, the IO analysis component 332 retrieves the backup data to be read from the storage device via the object storage access HTTP client 341, based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path. This includes: the IO analysis component 332 determines the backup data to be read based on the address range of the target data and the address mapping bitmap of the backup data in the backup copy; then, based on the address mapping bitmap and storage path of the backup data in the backup copy, obtains the storage path of the backup data to be read in the storage device; and then, based on the storage path of the backup data to be read in the storage device, creates a data read request for the backup data to be read, wherein the data read request includes the storage path of the backup data to be read in the storage device. Subsequently, the IO analysis component 332 sends the data read request to the storage device via the object storage access HTTP client 341; and receives the backup data to be read from the storage device via the object storage access HTTP client 341.

[0098] For example, one scenario is that the address range of the target data to be retrieved is larger than the address range of the backup data objects in the backup copy. For instance, let's take retrieving 0-8MB of data from backup-2 as an example. Figure 5As shown, according to the address mapping bitmap of Backup-2, the data from 0 to 8 MB is stored in two different backup data objects, namely "Backup-2-1" (corresponding to data A1) and "Backup-2-2" (corresponding to data B1). Therefore, the IO analysis component 332 needs to split the data acquisition instruction into two data read requests and send them to the storage device through the object storage access HTTP client 341, such as: performing a Get operation on the data in the backup data object corresponding to http: / / object-storage / objectID-Backup-2-1; and performing a Get operation on the data in the backup data object corresponding to http: / / object-storage / objectID-Backup-2-1.

[0099] The backup data object corresponding to http: / / object-storage / objectID-Backup-2-2 is accessed via a Get operation. Then, the backup server's IO analysis component 332 receives the data from the storage device, namely "Backup-2-1" and "Backup-2-2", via the object storage access HTTP client 341.

[0100] Another scenario involves obtaining target data whose address range is no greater than the address range of backup data objects in the backup copy. For example, let's take obtaining 0-2MB of data from backup-2 as an example. Figure 5 As shown, according to the address mapping bitmap of Backup-2, the data from 0 to 2 MB is in "Backup-2-1" (corresponding data is A1). Therefore, the IO analysis component 332 sends a data read request to the storage device through the object storage access HTTP client 341, such as performing a Get operation on the data in the backup data object corresponding to http: / / object-storage / objectID-Backup-2-1.

[0101] It should be noted that if the address range of the target data to be obtained is greater than the address range of the backup data objects in the backup copy, the target data to be obtained may not necessarily be all the data in multiple backup data objects. For example, to obtain the data from 0 to 6 MB of backup-2, then... Figure 5 As shown, according to the address mapping bitmap of Backup-2, the data from 0 to 6 MB is in two different backup data objects, namely "Backup-2-1" (corresponding data is A1) and "Backup-2-2" (corresponding data is B1). At this time, the IO analysis component 332 still needs to split the data acquisition instruction into two data read requests for processing. For details, please refer to the implementation method of the first case above. This application embodiment will not be repeated here.

[0102] Optionally, the IO analysis component 332 obtains the target data based on the address range of the backup data to be read and the target data. Specifically, if the address range of the target data is greater than the address range of the backup data objects in the backup copy, the IO analysis component 332 combines the backup data of different backup data objects in the backup data to be read to obtain the target data.

[0103] For example, continuing from the above example, if we take obtaining 0-8MB of data from backup-2 as an example, then... Figure 5 As shown, after receiving the data of "Backup-2-1" and "Backup-2-2" sent by the storage device through the object storage access HTTP client 341, the IO analysis component 332 can combine the data of "Backup-2-1" and "Backup-2-2" to obtain 0-8MB of data of Backup-2, i.e., the target data.

[0104] Alternatively, the IO analysis component 332 may obtain the target data based on the address range of the backup data to be read and the target data. Specifically, if the address range of the target data is not greater than the address range of the backup data object in the backup copy, the IO analysis component 332 may extract the data corresponding to the address range of the target data from the backup data to be read as the target data.

[0105] For example, continuing from the above example, if we take obtaining 0 to 2 MB of data from backup-2 as an example, then... Figure 5 As shown, the IO analysis component 332 receives the data "backup-2-1" sent by the storage device through the object storage access HTTP client 341. Since the data "backup-2-1" is 0 to 4 MB of data from backup-2, the IO analysis component 332 can extract 0 to 2 MB of data from the data "backup-2-1" as the target data.

[0106] It should be noted that if the address range of the target data to be obtained is greater than the address range of the backup data objects in the backup copy, the target data to be obtained may not necessarily be all the data in multiple backup data objects. For example, to obtain the data from 0 to 6MB of backup-2, then... Figure 5As shown, after the IO analysis component 332 receives the data of "Backup-2-1" and "Backup-2-2" sent by the storage device through the object storage access HTTP client 341, since the data of "Backup-2-2" is 5-8MB of Backup-2, if the IO analysis component 332 directly combines the data of "Backup-2-1" and "Backup-2-2", it will obtain 0-8MB of data of Backup-2. At this time, it can extract 5-6MB of data from the data of "Backup-2-2" and then combine the 5-6MB of data of Backup-2 with the data of "Backup-2-1" to obtain the 0-6MB of data of Backup-2, which is the target data. This embodiment of the application does not specifically limit this situation, and it can be implemented by combining the two implementation methods described above.

[0107] In one possible implementation, the backup server retrieves the target data from the storage device based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path. Specifically, this may include: if the address range of the target data is not greater than the address range of the backup data objects in the backup copy, the backup server determines the backup data to be read based on the address range of the target data and the address mapping bitmap of the backup data in the backup copy; then, based on the address mapping bitmap and storage path of the backup data in the backup copy, the backup server obtains the storage path of the backup data to be read in the storage device; furthermore, the backup server creates a data read request for the backup data to be read based on the storage path of the backup data to be read in the storage device, the data read request including the storage path of the backup data to be read in the storage device and the address range of the target data; the backup server sends the data read request to the storage device; and the backup server receives the target data sent by the storage device.

[0108] In other words, in this embodiment of the application, when reading data from the storage device, a segmented reading method or a more precise address range can be used.

[0109] for example, Figure 5 As shown, the IO interception component 331 intercepts the data acquisition command sent by the OSD component 322 to the object storage access HTTP client 341, and sends the data acquisition command to the IO analysis component 332. As mentioned above, the data acquisition command carries the identifier of the virtual image object and the address range of the target data. For example, taking the acquisition of 0 to 2 MB of data from backup-2 as an example, the address range of the target data is 0 to 2 MB. Furthermore, the IO analysis component 332, based on... Figure 5The address mapping bitmap of Backup-2 indicates that data from 0 to 2 MB is located in "Backup-2-1" (corresponding to data A1). Therefore, the IO analysis component 332 sends a data read request to the storage device via the object storage access HTTP client 341, such as:

[0110] The 0-2MB data in the backup data object corresponding to http: / / object-storage / objectID-Backup-2-1 is used for a Get operation. Then, the IO analysis component 332 can directly receive the 0-2MB data (i.e., the target data) from the storage device in "Backup-2-1" via the object storage access HTTP client 341.

[0111] S404. The backup server sends the target data to the block storage server.

[0112] Specifically, the IO analysis component 332 can send the target data to the IO interception component 331, which in turn sends the target data to the OSD component 322, and then to the block storage server via the HTTP server component 321.

[0113] It should be noted that, Figure 5 The backup server 30 shown is only an illustration of implementation in a cloud data center. Figure 4 The illustrated embodiment provides the functional modules and interaction relationships required in the data conversion process. Clearly, this is only a part of it. Figure 3 A portion of the backup server 30 shown.

[0114] like Figure 6 As shown, before step S401, the virtual image object creation process described in step S6 above may also be included. That is, based on the selected backup copy, the backup server ultimately presents an access path for a virtual image object. For example, converting backup-2 into an access path for a virtual image object:

[0115] http: / / BackupServer-IP / IMG-objectID-Backup-2, the following will be combined with Figure 3 The backup server 30 shown illustrates the creation process of this virtual image object, as follows:

[0116] S601. The backup server receives an instruction sent by the backup management server. The instruction carries the identifier of the backup copy, such as backup-2. This instruction is used to instruct the backup server to perform format conversion on the backup data object of the backup copy in the storage device, converting it into an image object that the block storage server can recognize.

[0117] S602. The backup server queries the local database based on the identifier of the backup copy to obtain the storage path of the metadata in the backup copy.

[0118] Specifically, the local database is generally a basic configuration in the backup server, and usually includes the storage path of the metadata of each backup copy. This application embodiment will not elaborate on this in detail.

[0119] Specifically, in combination Figure 3 Backup server 30 shown. Figure 7 A schematic diagram illustrating the overall framework for creating a virtual image object in backup server 30 is provided. The backup module 31 in backup server 30 is used to support backup server 30 in executing steps S601 and S602 in the embodiments of this application.

[0120] S603. The backup server retrieves metadata from the storage device based on the metadata storage path.

[0121] Specifically, such as Figure 7 As shown, the backup module 31 in the backup server 30 sends the storage path of the metadata to the metadata management component 323. Then, the metadata management component 323 can obtain the metadata from the backup copy identified as backup-2 through the object storage access HTTP client 341, and store this metadata. For example, Figure 7 As shown, the metadata may include disk size, backup copy time point, and backup copy storage path, etc.

[0122] S604. The backup server creates a virtual image object of the data to be read based on the metadata, and generates the URL address of the created virtual image object.

[0123] Specifically, such as Figure 7 As shown, the metadata management component 323 in the backup server 30 can generate a virtual image object record based on metadata. The information in this virtual image object record may include: the identifier, size, and URL address of the virtual image object. The identifier of the virtual image object is automatically assigned by the metadata management component 323 for new objects; the URL address of the virtual image object whose data is to be read is generated by the metadata management component 323 in the following manner:

[0124] The metadata management component 323 in backup server 30 can generate a local file on backup server 30. This local file contains no data and is only used as a placeholder to assist the metadata management component 323 in generating the URL address of the virtual image object. This local file can be named IMG-objectID-Backup-2, which is the identifier of the virtual image object for backup-2. Therefore, the metadata management component 323 can generate the URL address of the virtual image object for backup-2 as: Http: / / BackupServer-IP / IMG-objectID-Backup-2. Here, BackupServer-IP refers to the IP address of the backup server that virtualized the virtual image object.

[0125] IMG-objectID-Backup-2 refers to the identifier of the virtual image object of Backup-2.

[0126] It should be noted that, in the embodiments of this application, the process of generating a virtual image object record is the same as the process of creating a virtual image object, which will be explained uniformly here and will not be repeated below.

[0127] S605. The backup server sends the URL address of the created virtual image object to the disaster recovery / migration management server through the backup management server.

[0128] Specifically, such as Figure 7 As shown, after the metadata management component 323 in the backup server 30 generates the URL address of the created virtual image object, it can send the URL address of the created virtual image object to the backup module 31, which then sends it to the backup management server, and finally to the disaster recovery / migration management server.

[0129] It should be noted that, Figure 7 The backup server 30 only illustrates the process of creating the virtual machine's cloud disk. Figure 6 The illustrated embodiment provides the functional modules and interaction relationships required in the process of creating a virtual image object. Clearly, this is only a partial explanation. Figure 3 A portion of the backup server 30 shown.

[0130] Based on the data conversion method in cloud data centers provided in this application embodiment, on the one hand, since a virtual image object is created by the backup server instead of a real image object in the storage device, the storage space in the storage device can be saved, thereby reducing the storage cost in the cloud data center. On the other hand, in this application embodiment, the block storage device can directly read the backup data in the storage device through the backup server, instead of the backup server first reading the backup copy from the storage device, then issuing write operations to the storage device to form an image object, and then the block storage device reading the backup data from the image object. Therefore, when creating a cloud disk for a virtual machine, the read IO and write IO consumed by generating a real image object can be eliminated, thereby shortening the conversion time of the backup data object.

[0131] The foregoing primarily describes the solutions provided in this application's embodiments from the perspective of combining methods with software modules. It is understood that the aforementioned computer device, in order to achieve the above functions, includes corresponding hardware structures and / or software modules for executing each function. Those skilled in the art should readily recognize that, based on the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0132] like Figure 8 The diagram shown is a hardware structure diagram of a backup server provided in an embodiment of this application. The backup server 800 includes at least one processor 801, a communication bus 802, a memory 803, and at least one communication interface 804.

[0133] The processor 801 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits used to control the execution of the program of the present application.

[0134] The communication bus 802 may include a path for transmitting information between the aforementioned components.

[0135] The communication interface 804 uses any transceiver-like device for communicating with other devices or communication networks, such as Ethernet, Radio Access Network (RAN), Wireless Local Area Networks (WLAN), etc.

[0136] The memory 803 may be a read-only memory (ROM) or other type of static storage device capable of storing static information and instructions, random access memory (RAM) or other type of dynamic storage device capable of storing information and instructions, or electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital versatile optical discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto. The memory may exist independently and be connected to the processor via a bus. The memory may also be integrated with the processor.

[0137] The memory 803 stores the application code that executes the solution of this application, and its execution is controlled by the processor 801. The processor 801 executes the application code stored in the memory 803, thereby implementing the data transformation method in the cloud data center described in the above embodiments.

[0138] In a specific implementation, as one example, the processor 801 may include one or more CPUs, for example... Figure 8 CPU0 and CPU1 in the CPU.

[0139] In a specific implementation, as one example, the backup server 800 may include multiple processors, for example... Figure 8 The processors 801 and 808 are described in the text. Each of these processors can be a single-core (CPU) processor or a multi-core (CPU) processor. Here, "processor" can refer to one or more devices, circuits, and / or processing cores used to process data (e.g., computer program instructions).

[0140] In a specific implementation, as one embodiment, the backup server 800 may further include an output device 805 and an input device 806. The output device 805 communicates with the processor 801 and can display information in various ways. For example, the output device 805 may be a liquid crystal display (LCD), a light-emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector, etc. The input device 806 communicates with the processor 801 and can accept user input in various ways. For example, the input device 806 may be a mouse, keyboard, touchscreen device, or sensor device, etc.

[0141] The aforementioned backup server 800 can be a general-purpose backup server or a dedicated backup server. In specific implementations, the backup server 800 can be a desktop computer, laptop, network server, PDA (Personal Digital Assistant), mobile phone, tablet computer, wireless terminal device, communication equipment, embedded device, or other similar device. Figure 8 Devices with similar structures. This application does not limit the type of backup server 800 to any particular embodiment.

[0142] Since the backup server provided in this application embodiment can be used to execute the above-described method for data conversion in a cloud data center, the technical effects it can achieve can be referred to the above-described method embodiment, and will not be repeated here.

[0143] This application also provides a computer storage medium for storing computer software instructions used by the backup server described above, which includes a program designed to execute the method embodiments described above. By executing the stored program, a data transformation method can be implemented in a cloud data center.

[0144] This application also provides a computer program that includes instructions that, when executed by a computer, enable the computer to perform the processes described in the method embodiments.

[0145] Although this application has been described herein in conjunction with various embodiments, those skilled in the art, by reviewing the accompanying drawings, disclosure, and appended claims, will understand and implement other variations of the disclosed embodiments in carrying out the claimed application. In the claims, the word "comprising" does not exclude other components or steps, and "a" or "an" does not exclude a plurality. A single processor or other unit can implement several functions listed in the claims. While different dependent claims may recite certain measures, this does not mean that these measures cannot be combined to produce good results.

[0146] Those skilled in the art will understand that embodiments of this application can be provided as methods, apparatus (devices), or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code. The computer program may be stored / distributed in a suitable medium, provided with or as part of other hardware, or may take other distribution forms, such as via the Internet or other wired or wireless telecommunications systems.

[0147] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (devices), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0148] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0149] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0150] Although this application has been described in conjunction with specific features and embodiments, it is obvious that various modifications and combinations can be made thereto without departing from the spirit and scope of this application. Accordingly, this specification and drawings are merely exemplary illustrations of this application as defined by the appended claims, and are considered to cover any and all modifications, variations, combinations, or equivalents within the scope of this application. Clearly, those skilled in the art can make various alterations and modifications to this application without departing from the spirit and scope of this application. Thus, if such modifications and modifications of this application fall within the scope of the claims of this application and their equivalents, this application is also intended to include such modifications and modifications.

Claims

1. A method for storing data in a cloud data center, the cloud data center comprising storage devices and a backup server for performing backup-related tasks, characterized in that, The storage device stores data objects; When a backup request is received, the backup server creates a virtual image object of the source object. The virtual image object is presented to the outside world through an object storage interface. The virtual image object contains metadata objects but does not contain data objects. The metadata objects point to the data objects in the storage device. in, The cloud data center also includes a block storage server, and the method further includes: The backup server receives a read request sent by the block storage server. The read request includes the URL address of the virtual image object to be read in the backup server and the address range of the target data in the virtual image object to be read. The backup server obtains the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read based on the URL address of the virtual image object to be read in the backup server. The backup server retrieves the target data from the storage device based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path; the backup server then sends the target data to the block storage server.

2. The method according to claim 1, characterized in that, The cloud data center also includes a mirror server, and the method further includes: The backup server creates the URL address of the virtual image object; The backup server sends the URL address to the mirror server; The mirror server stores the URL address.

3. The method according to claim 2, characterized in that, Before the backup server receives the read request sent by the block storage server, the following steps are also included: The backup server obtains the identifier of the backup copy; The backup server queries the local database based on the identifier of the backup copy to obtain the storage path of the metadata in the backup copy; The backup server retrieves the metadata from the storage device according to the storage path of the metadata; The backup server creates the virtual image object to be read based on the metadata; The backup server sends the URL address of the virtual image object it created to the image server.

4. The method according to claim 1, characterized in that, The backup server obtains the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read, based on the URL address of the virtual image object to be read in the backup server, including: The backup server determines the identifier of the virtual image object to be read based on the URL address of the virtual image object in the backup server. The backup server obtains the metadata of the virtual image object to be read in advance based on the identifier of the virtual image object to be read. The metadata includes the storage path of the address mapping bitmap of the backup data in the backup copy corresponding to the virtual image object to be read and the storage path of the backup data in the backup copy. The backup server obtains the address mapping bitmap of the backup data in the backup copy from the storage device according to the storage path of the address mapping bitmap of the backup data in the backup copy.

5. The method according to claim 3, characterized in that, The backup server obtains the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read, based on the URL address of the virtual image object to be read in the backup server, including: The backup server determines the identifier of the virtual image object to be read based on the URL address of the virtual image object in the backup server. The backup server obtains the metadata of the virtual image object to be read in advance based on the identifier of the virtual image object to be read. The metadata includes the storage path of the address mapping bitmap of the backup data in the backup copy corresponding to the virtual image object to be read and the storage path of the backup data in the backup copy. The backup server obtains the address mapping bitmap of the backup data in the backup copy from the storage device according to the storage path of the address mapping bitmap of the backup data in the backup copy.

6. The method according to claim 1 or 3, characterized in that, The backup server obtains the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read, based on the URL address of the virtual image object to be read in the backup server, including: The backup server determines the identifier of the virtual image object to be read based on the URL address of the virtual image object in the backup server. The backup server obtains the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read, based on the identifier of the virtual image object to be read.

7. The method according to claim 1, characterized in that, The backup server retrieves the target data from the storage device based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path, including: The backup server retrieves the backup data to be read from the storage device based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path. The backup server obtains the target data based on the backup data to be read and the address range of the target data.

8. The method according to claim 7, characterized in that, The backup server retrieves the backup data to be read from the storage device based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path, including: The backup server determines the backup data to be read based on the address range of the target data and the address mapping bitmap of the backup data in the backup copy, and then obtains the storage path of the backup data to be read in the storage device based on the address mapping bitmap and storage path of the backup data in the backup copy. The backup server creates a data read request for the backup data to be read based on the storage path of the backup data to be read in the storage device, wherein the data read request includes the storage path of the backup data to be read in the storage device; The backup server sends the data read request to the storage device; The backup server receives the backup data to be read from the storage device.

9. The method according to claim 1, characterized in that, The backup server retrieves the target data from the storage device based on the address range of the target data, the address mapping bitmap of the backup data in the backup copy, and the storage path, including: If the address range of the target data is not greater than the address range of the backup data object in the backup copy, the backup server determines the backup data to be read based on the address range of the target data and the address mapping bitmap of the backup data in the backup copy, and then obtains the storage path of the backup data to be read in the storage device based on the address mapping bitmap and storage path of the backup data in the backup copy. The backup server creates a data read request for the backup data to be read based on the storage path of the backup data to be read in the storage device. The data read request includes the storage path of the backup data to be read in the storage device and the address range of the target data. The backup server sends the data read request to the storage device; The backup server receives the target data sent by the storage device.

10. A cloud data center, characterized in that, This includes storage devices and backup servers used to perform backup-related tasks; The storage device is used to store data objects; The backup server is used to create a virtual image object of the source object when it receives a backup request. The virtual image object is presented to the outside world in the form of an object storage interface. The virtual image object contains metadata objects but does not contain data objects. The metadata objects point to the data objects in the storage device. The cloud data center also includes block storage servers; The backup server is also configured to: receive a read request sent by the block storage server, the read request including the URL address of the virtual image object to be read in the backup server and the address range of the target data in the virtual image object to be read; Based on the URL address of the virtual image object to be read in the backup server, obtain the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read; based on the address range of the target data, the address mapping bitmap and storage path of the backup data in the backup copy, obtain the target data from the storage device; the backup server sends the target data to the block storage server.

11. The cloud data center according to claim 10, characterized in that, The cloud data center also includes a mirror server; The backup server is also used to create the URL address of the virtual image object and send the URL address to the image server; The mirror server is used to store the URL address.

12. The cloud data center according to claim 10, characterized in that, The backup server is also used for: Before receiving a read request from the block storage server, obtain the identifier of the backup copy; Based on the identifier of the backup copy, query the local database to obtain the storage path of the metadata in the backup copy; The metadata is retrieved from the storage device according to the storage path of the metadata; The virtual image object to be read is created based on the metadata; Send the URL address of the virtual image object you just created to the image server.

13. The cloud data center according to claim 10, characterized in that, The backup server is specifically used for: determining the identifier of the virtual image object to be read based on the URL address of the virtual image object to be read in the backup server; and obtaining the metadata of the virtual image object to be read from the pre-stored metadata based on the identifier of the virtual image object to be read, wherein the metadata includes the storage path of the address mapping bitmap of the backup data in the backup copy corresponding to the virtual image object to be read and the storage path of the backup data in the backup copy. Based on the storage path of the address mapping bitmap of the backup data in the backup copy, obtain the address mapping bitmap of the backup data in the backup copy from the storage device.

14. The cloud data center according to claim 12, characterized in that, The backup server is specifically used for: determining the identifier of the virtual image object to be read based on the URL address of the virtual image object to be read in the backup server; and obtaining the metadata of the virtual image object to be read from the pre-stored metadata based on the identifier of the virtual image object to be read, wherein the metadata includes the storage path of the address mapping bitmap of the backup data in the backup copy corresponding to the virtual image object to be read and the storage path of the backup data in the backup copy. Based on the storage path of the address mapping bitmap of the backup data in the backup copy, obtain the address mapping bitmap of the backup data in the backup copy from the storage device.

15. The cloud data center according to claim 12 or 10, characterized in that, The backup server is specifically used to determine the identifier of the virtual image object to be read based on the URL address of the virtual image object to be read in the backup server; and to obtain the address mapping bitmap and storage path of the backup data in the backup copy corresponding to the virtual image object to be read in a pre-stored backup based on the identifier of the virtual image object to be read.

16. The cloud data center according to claim 11, Its characteristics are: The block storage server is configured to query the URL address of the created virtual image object from the image server and send the read request to the backup server. The block storage server is also used to receive the target data sent by the backup server and create a cloud disk for the virtual machine based on the target data.

17. A backup server, characterized in that, include: Processor, memory, bus, and communication interface; The memory is used to store computer-executed instructions. The processor is connected to the memory via the bus. When the backup server is running, the processor executes the computer execution instructions stored in the memory to cause the backup server to perform the method executed by the backup server as described in any one of claims 1 to 9.

18. A computer storage medium, characterized in that, Computer software instructions for use as a backup server, comprising a program designed to perform the method executed by the backup server as claimed in any one of claims 1 to 9.

19. A computer program product, characterized in that, The computer program product includes instructions that, when executed by a computer, cause the computer to perform the method performed by the backup server as described in any one of claims 1 to 9.