Data transmission method, cloud platform, computer equipment and storage medium

By obtaining the transmission channel between the cloud platform and the storage device, data transmission between logical volumes is directly carried out within the storage device, the problem of low data transmission efficiency between virtual machines is solved, and resource saving and performance improvement is achieved.

CN119814770AActive Publication Date: 2025-04-11INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
CN202412000297.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-31
Publication Date
2025-04-11
Estimated Expiration
2044-12-31

AI Technical Summary

Technical Problem

In the prior art, data transmission between virtual machines is inefficient and requires a large amount of computing resources, memory resources and network resources.

Method used

By obtaining the transmission channel between the cloud platform and the storage device, data transmission between logical volumes is directly carried out within the storage device, avoiding the passage of the switch.

Benefits of technology

It improves data transmission efficiency, saves virtual machines' computing resources and memory resources, as well as network resources between virtual machines and between virtual machines-switches-storage devices, and improves the performance and user experience of storage devices and cloud platforms.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119814770A_ABST
    Figure CN119814770A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of storage, and discloses a data transmission method, a cloud platform, computer equipment and a storage medium, the method comprises the following steps: receiving a data transmission request, the data transmission request being used for requesting to transmit a target file in a first logical volume in the storage equipment to a second logical volume; acquiring a transmission channel between the cloud platform and the storage device, and acquiring at least one transmission file forming a target file by taking the size of the target data block as a unit; and when both the first logical volume and the second logical volume support the data transmission characteristic of data transmission between the logical volumes, generating at least one transmission request based on each transmission file, and sequentially sending each transmission request to the storage device through the transmission channel, so that the storage device transmits each transmission file to the second logical volume, until the transmission of the at least one transmission file is completed. The problems that the data transmission efficiency is low, and a large number of computing resources, memory resources and network resources between devices of the virtual machine need to be occupied can be solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of storage technology, and in particular to a data transmission method, a cloud platform, a computer device and a storage medium. Background Art

[0002] The OpenStack cloud platform is an open source cloud computing management platform project, which is composed of a series of software open source projects. The goal of the OpenStack cloud platform is to provide scalable and elastic cloud computing services for private and public clouds. It supports almost all types of cloud environments and aims to provide a cloud computing management platform that is simple to implement, scalable, rich, and standardized. The Cinder service is a component in the OpenStack cloud platform that provides block storage services. Users can use the Cinder service to provide virtual disk management services for virtual machine instances. For the same storage device, data can be transferred between multiple logical volumes in the same storage device between the same or different virtual machines on the OpenStack cloud platform.

[0003] In the related art, taking virtual machine A using logical volume A of a storage device and virtual machine B using logical volume B of the storage device as an example, in the scenario of copying files from logical volume A of virtual machine A to logical volume B of virtual machine B, virtual machine A needs to first obtain file data from logical volume A of the storage device through a switch; virtual machine A then copies file data to virtual machine B through the network between virtual machine A and virtual machine B; virtual machine B then writes file data into logical volume B through the switch to complete the file copy. This data transmission method has low data transmission efficiency and requires a large amount of computing resources and memory resources of virtual machines, as well as network resources between virtual machines and between virtual machines, switches and storage devices. Summary of the invention

[0004] In view of this, the present invention provides a data transmission method, a cloud platform, a computer device and a storage medium to solve the problems of low data transmission efficiency and the need to occupy a large amount of computing resources and memory resources of virtual machines, as well as network resources between virtual machines and between virtual machines, switches and storage devices.

[0005] In a first aspect, the present invention provides a data transmission method, which is applied to a cloud platform, and the method includes: receiving a data transmission request sent from a virtual machine, the data transmission request is used to request to transfer a target file in a first logical volume in a storage device to a second logical volume; obtaining a transmission channel between the cloud platform and the storage device, and obtaining at least one transmission file in units of a target data block size, the at least one transmission file constituting the target file; when the first logical volume and the second logical volume both support data transmission characteristics for data transmission between logical volumes, generating at least one transmission request based on each transmission file, and sending each transmission request to the storage device in sequence through the transmission channel, so that the storage device transmits each transmission file to the second logical volume until the transmission of at least one transmission file is completed.

[0006] The method provided by this aspect is that the cloud platform can receive a data transmission request sent from a virtual machine, obtain a transmission channel between the cloud platform and the storage device and at least one transmission file in units of a target data block size, and when both the first logical volume and the second logical volume support data transmission characteristics for data transmission between logical volumes, generate at least one transmission request based on each transmission file, and send each transmission request in turn to the storage device through the transmission channel to transfer the target file.

[0007] Since the transmission channel between the cloud platform and the storage device can be obtained, it means that data can be directly transmitted between the cloud platform and the storage device; in addition, both the first logical volume and the second logical volume support the data transmission characteristics of data transmission between logical volumes, so the storage device can directly transfer the target file in the first logical volume to the second logical volume inside the storage device. When the embodiment of the present invention performs data transmission between the cloud platform and the storage device, there is no need to go through a switch, and the file transfer can be performed directly inside the storage device. Therefore, the data transmission efficiency can be improved, the computing resources and memory resources of the virtual machine can be saved, and the network resources between virtual machines and between virtual machines, switches and storage devices can be saved, the performance of storage devices and cloud platforms can be improved, and the user experience can be improved.

[0008] In combination with the first aspect, in an optional implementation, obtaining a transmission channel between a cloud platform and a storage device includes: obtaining the transmission channel between the cloud platform and the storage device in response to a selection operation of a user on a display interface of the cloud platform.

[0009] In an embodiment of the present invention, a user can select through a graphical interface whether to establish a transmission channel between the cloud platform and the storage device, that is, to obtain a transmission channel between the cloud platform and the storage device, so as to facilitate the subsequent sending of at least one transmission request generated by the target file based on the transmission channel, so that the storage device transmits the target file based on the at least one transmission request.

[0010] In combination with the first aspect, in an optional embodiment, before receiving a data transmission request sent from a virtual machine, the method also includes: when the cloud platform is started, sending a query instruction of a preset protocol to each logical volume in the storage device according to the logical volume granularity; receiving response information for each logical volume returned by the storage device, the response information being used to indicate whether each logical volume supports the data transmission feature and the transmission data block size information set for each logical volume.

[0011] In an embodiment of the present invention, when the cloud platform is started, it is possible to query whether each logical volume in the storage device supports data transmission characteristics and the set transmission data block size information, so as to facilitate the subsequent judgment of whether the storage device can perform data transmission between logical volumes when a data transmission request is received, and also facilitate the subsequent determination of the transmission unit for dividing the target file based on the transmission data block size information.

[0012] In combination with the first aspect, in an optional implementation, obtaining at least one transfer file in units of a target data block size includes: obtaining transfer data block size information set for the second logical volume; determining that the unit of the storage device to transfer the target file is the target data block size based on the transfer data block size information and a preset policy; obtaining the target file, and dividing the target file into at least one transfer file of the target data block size.

[0013] In an implementation manner of the present invention, the unit of the target file to be transmitted can be dynamically adjusted based on the transmission data block size set for the second logical volume, and then the target file can be divided into transmission units to obtain at least one transmission file, so that the cloud platform can send multiple transmission requests in parallel, and then transmit these multiple transmission files in parallel, significantly improving the transmission speed.

[0014] In combination with the first aspect, in an optional implementation, based on the transmission data block size information and a preset strategy, the unit of the target file transmitted by the storage device is determined to be the target data block size, including: when the transmission data block size information indicates that the transmission data block size set for the second logical volume is greater than or equal to the first value, determining the target data block size to be the first value; when the transmission data block size information indicates that the transmission data block size set for the second logical volume is greater than or equal to the second value and less than the first value, determining the target data block size to be the set transmission data block size.

[0015] In an embodiment of the present invention, the transmission data block size information indicates that the transmission data block size set for the second logical volume is greater than or equal to the first value, which means that the transmission data block size set for the second logical volume is too large and needs to be adjusted to the smaller first value; the transmission data block size information indicates that the transmission data block size set for the second logical volume is greater than or equal to the second value and less than the first value, which means that the transmission data block size set for the second logical volume is moderate, and therefore, the target data block size is determined to be the set transmission data block size, thereby avoiding excessive transmission delay caused by excessively large transmission files, or avoiding frequent read and write operations performed by the storage device caused by excessively small transmission files.

[0016] In a second aspect, the present invention provides a data transmission method, which is applied to a storage device, and the method comprises: when a transmission channel between a cloud platform and a storage device has been acquired, receiving in sequence at least one transmission request sent from the cloud platform through the transmission channel, the at least one transmission request is generated by the cloud platform based on a data transmission request received from a virtual machine, and at least one transmission file in units of a target data block size, the data transmission request is used to request to transfer a target file in a first logical volume in the storage device to a second logical volume, and at least one transmission file constitutes the target file; when both the first logical volume and the second logical volume support a data transmission feature for data transmission between logical volumes, each transmission file is transferred to the second logical volume according to each transmission request.

[0017] According to the method provided by the present aspect, the storage device can sequentially receive at least one transmission request sent from the cloud platform through the transmission channel when the transmission channel between the cloud platform and the storage device has been acquired, and when the first logical volume and the second logical volume both support the data transmission feature of data transmission between logical volumes, each transmission file is transferred to the second logical volume according to each transmission request to complete the transmission of the target file.

[0018] Since the transmission channel between the cloud platform and the storage device can be obtained, it means that data can be directly transmitted between the cloud platform and the storage device; in addition, both the first logical volume and the second logical volume support the data transmission characteristics of data transmission between logical volumes, so the storage device can directly transfer the target file in the first logical volume to the second logical volume inside the storage device. When the embodiment of the present invention performs data transmission between the cloud platform and the storage device, there is no need to go through a switch, and the file transfer can be performed directly inside the storage device. Therefore, the data transmission efficiency can be improved, the computing resources and memory resources of the virtual machine can be saved, and the network resources between virtual machines and between virtual machines, switches and storage devices can be saved, the performance of storage devices and cloud platforms can be improved, and the user experience can be improved.

[0019] In combination with the second aspect, in an optional implementation, at least one transfer request includes a first transfer request; the first transfer request is used to transfer a first transfer file; each transfer file is transferred to the second logical volume according to each transfer request, including: obtaining a target address in the second logical volume where the first transfer file carried in the first transfer request needs to be stored; based on the target address, determining a target data block where the first transfer file corresponding to the target address needs to be stored; detecting whether the target data block is in a locked state; if not, locking the target data block and writing the first transfer file to the target data block.

[0020] In an embodiment of the present invention, when writing the first transfer file to the target data block, if it is detected that the target data block is in an unlocked state, the target data block is locked, which can prevent other read and write requests from operating on the target data block and avoid concurrent writing to the target data block causing data confusion.

[0021] In a third aspect, the present invention provides a cloud platform, which includes: a transceiver module, which is used to receive a data transmission request sent from a virtual machine, and the data transmission request is used to request to transfer a target file in a first logical volume in a storage device to a second logical volume. The transceiver module is also used to obtain a transmission channel between the cloud platform and the storage device, and obtain at least one transmission file in units of a target data block size, and at least one transmission file constitutes a target file. A processing module is used to generate at least one transmission request based on each transmission file when both the first logical volume and the second logical volume support data transmission characteristics for data transmission between logical volumes, and send each transmission request to the storage device in sequence through the transmission channel, so that the storage device transmits each transmission file to the second logical volume until at least one transmission file is transferred.

[0022] In a third aspect, the present invention provides a storage device, which includes: a receiving module, which is used to receive at least one transmission request sent from the cloud platform through the transmission channel in sequence when the transmission channel between the cloud platform and the storage device has been acquired, the at least one transmission request being generated by the cloud platform based on a data transmission request received from a virtual machine and at least one transmission file in units of a target data block size, the data transmission request being used to request that a target file in a first logical volume in the storage device be transferred to a second logical volume, and at least one transmission file constitutes the target file; a transmission module, which is used to transfer each transmission file to the second logical volume according to each transmission request when both the first logical volume and the second logical volume support a data transmission feature for data transmission between logical volumes.

[0023] In a third aspect, the present invention provides a computer device, comprising: a memory and a processor, the memory and the processor being communicatively connected to each other, the memory storing computer instructions, and the processor executing the data transmission method of the first aspect or any corresponding embodiment thereof by executing the computer instructions.

[0024] In a fourth aspect, the present invention provides a computer-readable storage medium having computer instructions stored thereon, the computer instructions being used to enable a computer to execute the data transmission method of the first aspect or any corresponding embodiment thereof.

[0025] In a fifth aspect, the present invention provides a computer program product, comprising computer instructions for causing a computer to execute the data transmission method of the first aspect or any corresponding embodiment thereof. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] In order to more clearly illustrate the specific implementation methods of the present invention or the technical solutions in the prior art, the drawings required for use in the specific implementation methods or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are some implementation methods of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0027] Figure 1 is a schematic diagram of a scenario in which data is transmitted between multiple logical volumes on the same storage device between different virtual machines according to an embodiment of the present invention;

[0028] Figure 2 is a topological diagram of a data transmission system according to an embodiment of the present invention;

[0029] Figure 3 is a flow chart of a data transmission method according to an embodiment of the present invention;

[0030] Figure 4 is a flowchart of another data transmission method according to an embodiment of the present invention;

[0031] Figure 5 is a structural block diagram of a cloud platform according to an embodiment of the present invention;

[0032] Figure 6 is a structural block diagram of a storage device according to an embodiment of the present invention;

[0033] Figure 7 It is a schematic diagram of the hardware structure of a computer device according to an embodiment of the present invention. DETAILED DESCRIPTION

[0034] In order to make the purpose, technical solution and advantages of the embodiments of the present invention clearer, the technical solution in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present invention.

[0035] The embodiment of the present invention is applied to a scenario in which data is transmitted between multiple logical volumes in the same storage device, between the same or different virtual machines on an OpenStack cloud platform.

[0036] In related technologies, such as Figure 1 As shown, Figure 1 1 is a schematic diagram of a scenario in which data is transmitted between multiple logical volumes on the same storage device between different virtual machines according to an embodiment of the present invention. Figure 1 In the scenario of copying files from logical volume A of virtual machine A to logical volume B of virtual machine B, virtual machine A must first obtain file data from logical volume A of the storage device through a switch; virtual machine A then copies the file data to virtual machine B through the network between virtual machine A and virtual machine B; virtual machine B then writes the file data to logical volume B through the switch to complete the file copy. This data transmission method has low data transmission efficiency and requires a large amount of computing resources, memory resources, and network resources.

[0037] In order to solve the above technical problems, an embodiment of the present invention provides a data transmission method, which obtains a transmission channel between a cloud platform and a storage device, and when both the first logical volume and the second logical volume support data transmission characteristics for data transmission between logical volumes, requests the storage device to transfer the target file in the first logical volume to the second logical volume, so as to improve data transmission efficiency and save computing resources, memory resources and network resources.

[0038] Below Figure 2 Taking the data transmission system 200 as an example, the method provided in the embodiment of the present application is described. Figure 2 It is only a schematic diagram and does not constitute a limitation on the applicable scenarios of the technical solution provided in this application.

[0039] like Figure 2 As shown, Figure 2 is a topological diagram of a data transmission system according to an embodiment of the present invention. Figure 2 In the embodiment, the data transmission system 200 may include a cloud platform 201 , a storage device 202 and a virtual machine 203 .

[0040] The cloud platform 201 in the embodiment of the present invention can be any device with computing and communication functions. The device has a display interface. OpenStack cloud platform. The cloud platform is an open source cloud computing management platform project. The cloud platform is used to provide scalable and elastic cloud computing services for private clouds and public clouds. The cloud platform supports various types of cloud environments. In terms of architecture, the cloud platform is composed of components such as computing (Nova, Zun), storage (Cinder, Manila, Swift), network (Neutron, Octavia, Designate), hardware (Ironic, Cyborg), workflow (Magnum, Trove, Sahara), application (Murano, Freezer, Solum, Masakari), orchestration (Heat, Mistral, Aodh, Senlin, Zaqar, Blazar), public services (Keystone, Placement, Glance, Barbican) and corresponding services. These components work together to manage resources (such as storage resources, virtual machine resources, and network resources) in the cloud platform through a unified management interface.

[0041] The OpenStack cloud platform includes the Nova computing service, as well as three storage services: Cinder, Manila, and Swift. Cinder is a block storage service, Manila is a file storage service, and Swift is an object storage service. The Cinder service can be based on the drivers of various manufacturers, and can use the basic functions such as volume creation / deletion / capacity expansion / mounting / unmounting provided by the backend storage array, or use the advanced features of the backend storage array such as cloning, replication, and snapshots for management operations.

[0042] The storage device 202 in the embodiment of the present invention may be a storage array. The storage device 202 may include a controller and a storage medium. The storage device 202 includes multiple logical volumes. The multiple logical volumes include a first logical volume and a second logical volume.

[0043] The virtual machine 203 in the embodiment of the present invention may be any virtual machine created by the cloud platform 201 .

[0044] Figure 2 The data transmission system 200 shown is only used as an example and is not used to limit the technical solution of the present application. Those skilled in the art should understand that in the specific implementation process, the data transmission system 200 can also include more storage devices and virtual machines without limitation.

[0045] According to an embodiment of the present invention, a data transmission method embodiment is provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in an order different from that shown here.

[0046] In this embodiment, a data transmission method is provided, which can be used in the above-mentioned cloud platform. Figure 3 is a flow chart of a data transmission method according to an embodiment of the present invention. Figure 3 As shown, the process includes the following steps:

[0047] S301: Receive a data transmission request sent from a virtual machine.

[0048] The data transfer request is used to request to transfer the target file in the first logical volume of the storage device to the second logical volume. The data transfer request includes the device identifier of the storage device, the volume identifier of the first logical volume, the volume identifier of the second logical volume, the source start address and the source end address of the target file stored in the first logical volume, and the target start address and the target end address of the target file to be stored in the second logical volume.

[0049] S302: Acquire a transmission channel between the cloud platform and the storage device, and acquire at least one transmission file in units of a target data block size.

[0050] Therein, at least one transmission file constitutes a target file.

[0051] In one example, the cloud platform obtains a transmission channel between the cloud platform and the storage device in response to a selection operation of a user on a display interface of the cloud platform.

[0052] Exemplarily, the user selects to enable the "downward data transmission feature" on the display interface of the cloud platform. The cloud platform responds to the user's selection operation on the display interface of the cloud platform and enables the transmission channel between the cloud platform and the storage device, that is, obtains the transmission channel between the cloud platform and the storage device. The "downward data transmission feature" is used to indicate that the cloud platform and the storage device support the opening of the transmission channel.

[0053] It is understandable that if the user chooses to turn off the "downward data transmission feature" in the display interface of the cloud platform, the cloud platform will not be able to obtain the transmission channel between the cloud platform and the storage device, and the switch is still required as a transmission device between the cloud platform and the storage device for data transmission.

[0054] In some optional embodiments, before receiving a data transmission request from a virtual machine, when the cloud platform is started, the cloud platform sends a query instruction of a preset protocol to each logical volume in the storage device according to the granularity of the logical volume; and receives response information of each logical volume returned by the storage device.

[0055] The format of the query instruction is the command descriptor block (CDB) structure format. The length of the query instruction is byte-12. As shown in Table 1, Table 1 is a schematic diagram of the query instruction.

[0056]

[0057] Table 1

[0058] In Table 1, the query instruction includes an operation code (OPERATION CODE (F0h)), a storage device identifier (STORIDENTIFIER), and a volume identifier of a logical volume (LUN IDENTIFIER).

[0059] The default protocol is the Small Computer System Interface (SCSI) protocol.

[0060] The response information is used to indicate whether each logical volume supports the data transmission feature and the transmission data block size information set for each logical volume. The format of the response information is the CDB structure format. The length of the response information is byte-6.

[0061] As shown in Table 2, Table 2 is a schematic diagram of the response information; in Table 2, the response information includes whether each logical volume supports the data transmission feature (SUPPORT TYPE) and the transmission data block size information (BLOCK SIZE).

[0062]

[0063] Table 2

[0064] Whether each logical volume supports the data transmission feature may include three states: supported, not supported, and unknown. When each logical volume supports the data transmission feature, the value of RESULT in Table 2 is 1; when each logical volume does not support the data transmission feature, the value of RESULT in Table 2 is 0; when each logical volume is uncertain whether it supports the data transmission feature (i.e., unknown), the value of RESULT in Table 2 is 3.

[0065] It can be understood that when the state of whether each logical volume supports the data transmission feature is "unknown", it will also be regarded as not supporting the data transmission feature.

[0066] In some optional implementations, the cloud platform obtains the transmission data block size information set for the second logical volume; determines that the unit of the storage device transmitting the target file is the target data block size based on the transmission data block size information and a preset policy; obtains the target file, and divides the target file into at least one transmission file of the target data block size.

[0067] In one example, when the transmission data block size information indicates that the transmission data block size set for the second logical volume is greater than or equal to the first value, the cloud platform determines the target data block size to be the first value; when the transmission data block size information indicates that the transmission data block size set for the second logical volume is greater than or equal to the second value and less than the first value, the cloud platform determines the target data block size to be the set transmission data block size.

[0068] The first value or the second value can be set according to actual needs without limitation. For example, the first value can be 4MB, and the second value can be 1MB.

[0069] In some optional implementation sets, if the transmission data block size information indicates a transmission data block size that is not set for the second logical volume, the cloud platform determines that the target data block size is a second value.

[0070] It can be understood that when the transfer data block size is not set for the second logical volume, the cloud platform determines the target data block size as a smaller second value, so that the cloud platform can complete the transmission of each transfer file in a shorter time, reducing the waiting time for each read and write operation, thereby reducing the overall delay.

[0071] In one example, the cloud platform obtains the target file from the first logical volume based on the source start address and the source end address in the data transmission request.

[0072] S303: When both the first logical volume and the second logical volume support data transmission characteristics for data transmission between logical volumes, at least one transmission request is generated based on each transmission file, and each transmission request is sent to the storage device in sequence through the transmission channel, so that the storage device transmits each transmission file to the second logical volume until the transmission of at least one transmission file is completed.

[0073] Each transfer request is used to transfer a transfer file to the second logical volume. The format of each transfer request is a CDB structure format. The length of each transfer request is byte-12.

[0074] As shown in Table 3, Table 3 is a schematic diagram of a transfer request; in Table 3, each transfer request includes an operation code (OPERATION CODE (F1h)) and a parameter list length (PARAMETER LIST LENGTH) corresponding to each transfer file.

[0075]

[0076] Table 3

[0077] As shown in Table 4, each transfer request further includes a parameter list. In Table 4, the parameter list includes a source start address (SOURCE BEGIN LBA) of each transfer file in the first logical volume, a source end address (SOURCEEND LBA) of the first logical volume, a target start address (TARGET BEGIN LBA) of the second logical volume, a target end address (TARGET END LBA) of the second logical volume, and a file size (LENGTH) of each transfer file.

[0078]

[0079] Table 4

[0080] It can be understood that the cloud platform sends each transmission request to the storage device in sequence through the transmission channel.

[0081] Based on the above Figure 3 According to the method, the cloud platform can receive a data transmission request sent from a virtual machine, obtain a transmission channel between the cloud platform and a storage device and at least one transmission file with a target data block size as a unit, and when both the first logical volume and the second logical volume support a data transmission feature for data transmission between logical volumes, generate at least one transmission request based on each transmission file, and send each transmission request to the storage device through the transmission channel in sequence to transmit the target file.

[0082] Since the transmission channel between the cloud platform and the storage device can be obtained, it means that data can be directly transmitted between the cloud platform and the storage device; in addition, both the first logical volume and the second logical volume support the data transmission characteristics of data transmission between logical volumes, so the storage device can directly transfer the target file in the first logical volume to the second logical volume inside the storage device. When the embodiment of the present invention performs data transmission between the cloud platform and the storage device, there is no need to go through a switch, and the file transfer can be performed directly inside the storage device. Therefore, the data transmission efficiency can be improved, the computing resources and memory resources of the virtual machine can be saved, and the network resources between virtual machines and between virtual machines, switches and storage devices can be saved, the performance of storage devices and cloud platforms can be improved, and the user experience can be improved.

[0083] In this embodiment, another data transmission method is provided, which can be used for the above storage device. Figure 4 is a flowchart of another data transmission method according to an embodiment of the present invention. Figure 4 As shown, the process includes the following steps:

[0084] S401, when a transmission channel between a cloud platform and a storage device has been acquired, at least one transmission request sent from the cloud platform is received in sequence through the transmission channel.

[0085] S402: When both the first logical volume and the second logical volume support a data transmission feature for data transmission between logical volumes, each transmission file is transmitted to the second logical volume according to each transmission request.

[0086] The at least one transmission request includes a first transmission request. The first transmission request is used to transmit a first transmission file.

[0087] In one example, a storage device obtains a target address in a second logical volume where a first transfer file carried in a first transfer request needs to be stored; based on the target address, determines a target data block where the first transfer file corresponding to the target address needs to be stored; detects whether the target data block is in a locked state; if not, locks the target data block and writes the first transfer file into the target data block.

[0088] The target address includes a target start address and a target end address of the first transmission file.

[0089] In one example, if the target data block is in a locked state, the storage device sends a prompt message to the cloud platform, where the prompt message is used to indicate that the first transfer file cannot be written to the target data block temporarily.

[0090] It is understandable that if the target data block is in a locked state, it means that the target data block is being modified and cannot be accessed temporarily. During the period when the data block is locked, other attempts to modify the data block will be blocked to avoid data confusion caused by multiple modification operations at the same time.

[0091] In one example, the storage device writes the source data (first transfer file) at the source start address and the source end address in the first transfer request into the target start address and the target end address.

[0092] In one example, after the first transfer file is transferred inside the storage device, the storage device sends a notification message to the cloud platform through the transmission channel and sets the target data block to an unlocked state.

[0093] The notification information is used to inform the cloud platform of the transmission result of the first transmission file. The format of the notification information is the CDB structure format. The length of each notification information is byte-6.

[0094] As shown in Table 5, Table 5 is a schematic diagram of notification information; in Table 5, the notification information includes the transmission result (DATA TRANSFER) of the first transmission file.

[0095]

[0096] Table 5

[0097] Based on the above Figure 4 In the method shown, the storage device can, when the transmission channel between the cloud platform and the storage device has been acquired, sequentially receive at least one transmission request sent from the cloud platform through the transmission channel, and when both the first logical volume and the second logical volume support the data transmission feature for data transmission between logical volumes, transfer each transmission file to the second logical volume according to each transmission request to complete the transmission of the target file.

[0098] Since the transmission channel between the cloud platform and the storage device can be obtained, it means that data can be directly transmitted between the cloud platform and the storage device; in addition, both the first logical volume and the second logical volume support the data transmission characteristics of data transmission between logical volumes, so the storage device can directly transfer the target file in the first logical volume to the second logical volume inside the storage device. When the embodiment of the present invention performs data transmission between the cloud platform and the storage device, there is no need to go through a switch, and the file transfer can be performed directly inside the storage device. Therefore, the data transmission efficiency can be improved, the computing resources and memory resources of the virtual machine can be saved, and the network resources between virtual machines and between virtual machines, switches and storage devices can be saved, the performance of storage devices and cloud platforms can be improved, and the user experience can be improved.

[0099] In this embodiment, a cloud platform or storage device is also provided, which is used to implement the above-mentioned embodiments and preferred implementation modes, and the descriptions that have been made will not be repeated. As used below, the term "module" can implement a combination of software and / or hardware for a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, the implementation of hardware, or a combination of software and hardware, is also possible and conceivable.

[0100] This embodiment provides a cloud platform, such as Figure 5 As shown, Figure 5 is a structural block diagram of a cloud platform according to an embodiment of the present invention; the cloud platform includes:

[0101] The transceiver module 501 is used to receive a data transmission request sent from a virtual machine, where the data transmission request is used to request to transfer a target file in a first logical volume in a storage device to a second logical volume.

[0102] The transceiver module 501 is also used to obtain a transmission channel between the cloud platform and the storage device, and obtain at least one transmission file in units of a target data block size, and the at least one transmission file constitutes a target file.

[0103] The processing module 502 is used to generate at least one transfer request based on each transfer file when both the first logical volume and the second logical volume support data transmission characteristics for data transmission between logical volumes, and send each transfer request in sequence to the storage device through the transmission channel, so that the storage device transfers each transfer file to the second logical volume until the transfer of at least one transfer file is completed.

[0104] In some optional implementations, the transceiver module 501 is specifically configured to obtain a transmission channel between the cloud platform and the storage device in response to a selection operation by a user on a display interface of the cloud platform.

[0105] In some optional embodiments, before receiving a data transmission request sent from a virtual machine, the processing module 502 is also used to send a query instruction of a preset protocol to each logical volume in the storage device according to the logical volume granularity when the cloud platform is started; the transceiver module 501 is also used to receive response information of each logical volume returned by the storage device, and the response information is used to indicate whether each logical volume supports the data transmission feature and the transmission data block size information set for each logical volume.

[0106] In some optional implementations, the transceiver module 501 is also specifically used to obtain the transmission data block size information set for the second logical volume; determine that the unit of the storage device transmitting the target file is the target data block size based on the transmission data block size information and a preset strategy; obtain the target file, and divide the target file into at least one transmission file of the target data block size.

[0107] In some optional embodiments, the transceiver module 501 is further specifically used to determine that the target data block size is a first value when the transmission data block size information indicates that the transmission data block size set for the second logical volume is greater than or equal to the first value; and to determine that the target data block size is the set transmission data block size when the transmission data block size information indicates that the transmission data block size set for the second logical volume is greater than or equal to the second value and less than the first value.

[0108] This embodiment provides a storage device, such as Figure 6 As shown, Figure 6 1 is a structural block diagram of a storage device according to an embodiment of the present invention; the storage device comprises:

[0109] The receiving module 601 is used to sequentially receive at least one transmission request sent from the cloud platform through the transmission channel when the transmission channel between the cloud platform and the storage device has been acquired, the at least one transmission request being generated by the cloud platform based on a data transmission request received from the virtual machine and at least one transmission file in units of a target data block size, the data transmission request being used to request the transfer of a target file in a first logical volume in the storage device to a second logical volume, and the at least one transmission file constituting the target file.

[0110] The transmission module 602 is configured to transmit each transmission file to the second logical volume according to each transmission request when both the first logical volume and the second logical volume support a data transmission feature for data transmission between logical volumes.

[0111] In some optional embodiments, at least one transfer request includes a first transfer request; the first transfer request is used to transfer a first transfer file; a transfer module 602 is specifically used to obtain a target address in the second logical volume where the first transfer file carried in the first transfer request needs to be stored; based on the target address, determine a target data block where the first transfer file corresponding to the target address needs to be stored; detect whether the target data block is in a locked state; if not, lock the target data block and write the first transfer file to the target data block.

[0112] The further functional description of each of the above modules and units is the same as that of the above corresponding embodiments and will not be repeated here.

[0113] The cloud platform or storage device in this embodiment is presented in the form of a functional unit, where the unit refers to an ASIC (Application Specific Integrated Circuit) circuit, a processor and memory that executes one or more software or fixed programs, and / or other devices that can provide the above functions.

[0114] The embodiment of the present invention also provides a computer device having the above Figure 5 The cloud platform shown or Figure 6 Storage devices shown.

[0115] See also Figure 7 , Figure 7 is a schematic diagram of the structure of a computer device provided by an optional embodiment of the present invention, such as Figure 7As shown, the computer device includes: one or more processors 10, a memory 20, and interfaces for connecting various components, including high-speed interfaces and low-speed interfaces. Various components are connected to each other using different buses for communication, and can be installed on a common mainboard or installed in other ways as needed. The processor can process the instructions executed in the computer device, including instructions stored in or on the memory to display the graphical information of the GUI on an external input / output device (such as, a display device coupled to the interface). In some optional embodiments, if necessary, multiple processors and / or multiple buses can be used together with multiple memories and multiple memories. Similarly, multiple computer devices can be connected, and each device provides some necessary operations (for example, as a server array, a group of blade servers, or a multi-processor system). Figure 7 A processor 10 is taken as an example.

[0116] The processor 10 may be a central processing unit, a network processor or a combination thereof. The processor 10 may further include a hardware chip. The hardware chip may be a dedicated integrated circuit, a programmable logic device or a combination thereof. The programmable logic device may be a complex programmable logic device, a field programmable gate array, a general purpose array logic or any combination thereof.

[0117] The memory 20 stores instructions executable by at least one processor 10, so that the at least one processor 10 executes the method shown in the above embodiment.

[0118] The memory 20 may include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function; the data storage area may store data created according to the use of the computer device, etc. In addition, the memory 20 may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some optional embodiments, the memory 20 may optionally include a memory remotely arranged relative to the processor 10, and these remote memories may be connected to the computer device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0119] The memory 20 may include a volatile memory, such as a random access memory; the memory may also include a non-volatile memory, such as a flash memory, a hard disk or a solid state drive; the memory 20 may also include a combination of the above types of memory.

[0120] The computer device further comprises a communication interface 30 for the computer device to communicate with other devices or a communication network.

[0121] The embodiment of the present invention also provides a computer-readable storage medium. The method according to the embodiment of the present invention can be implemented in hardware, firmware, or can be implemented as a computer code that can be recorded in a storage medium, or can be implemented as a computer code that is originally stored in a remote storage medium or a non-temporary machine-readable storage medium and will be stored in a local storage medium through a network download, so that the method described herein can be stored in such software processing on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. Among them, the storage medium can be a magnetic disk, an optical disk, a read-only storage memory, a random access memory, a flash memory, a hard disk or a solid-state hard disk, etc.; further, the storage medium can also include a combination of the above types of memories. It can be understood that a computer, a processor, a microprocessor controller, or programmable hardware includes a storage component that can store or receive software or computer code. When the software or computer code is accessed and executed by a computer, a processor, or hardware, the method shown in the above embodiment is implemented.

[0122] Part of the present application may be applied as a computer program product, such as a computer program instruction, which, when executed by a computer, can call or provide the method and / or technical solution according to the present application through the operation of the computer. Those skilled in the art should understand that the existence of computer program instructions in computer-readable media includes but is not limited to source files, executable files, installation package files, etc., and accordingly, the way in which computer program instructions are executed by a computer includes but is not limited to: the computer directly executes the instruction, or the computer compiles the instruction and then executes the corresponding compiled program, or the computer reads and executes the instruction, or the computer reads and installs the instruction and then executes the corresponding installed program. Here, the computer-readable medium can be any available computer-readable storage medium or communication medium accessible to the computer.

[0123] Although the embodiments of the present invention have been described in conjunction with the accompanying drawings, those skilled in the art may make various modifications and variations without departing from the spirit and scope of the present invention, and such modifications and variations are all within the scope defined by the appended claims.

Claims

1. A data transmission method, characterized in that: Applied to a cloud platform, the method includes: receiving a data transmission request sent from a virtual machine, wherein the data transmission request is used to request to transfer a target file in a first logical volume in a storage device to a second logical volume; Acquire a transmission channel between the cloud platform and the storage device, and acquire at least one transmission file in units of a target data block size, wherein the at least one transmission file constitutes the target file; When both the first logical volume and the second logical volume support data transmission characteristics for data transmission between logical volumes, at least one transmission request is generated based on each of the transmission files, and each of the transmission requests is sent to the storage device in sequence through the transmission channel, so that the storage device transmits each of the transmission files to the second logical volume until the transmission of at least one transmission file is completed.

2. The method according to claim 1, characterized in that: The obtaining of the transmission channel between the cloud platform and the storage device includes: In response to a selection operation of a user on a display interface of the cloud platform, the transmission channel between the cloud platform and the storage device is obtained.

3. The method according to claim 1, characterized in that: Before receiving the data transmission request sent by the virtual machine, the method further includes: When the cloud platform is started, a query instruction of a preset protocol is sent to each of the logical volumes in the storage device according to the granularity of the logical volumes; Response information of each of the logical volumes returned by the storage device is received, where the response information is used to indicate whether each of the logical volumes supports the data transmission feature and transmission data block size information set for each of the logical volumes.

4. The method according to claim 3, characterized in that The obtaining of at least one transmission file in units of a target data block size comprises: Acquire transmission data block size information set by the second logical volume; According to the transmission data block size information and a preset policy, determining that a unit for transmitting the target file by the storage device is the target data block size; The target file is acquired, and the target file is divided into the at least one transmission file of the target data block size.

5. The method according to claim 4, characterized in that The step of determining, according to the transmission data block size information and a preset strategy, that the unit of the target file transmitted by the storage device is the target data block size comprises: When the transmission data block size information indicates that the transmission data block size set for the second logical volume is greater than or equal to a first value, determining that the target data block size is the first value; When the transmission data block size information indicates that the transmission data block size set for the second logical volume is greater than or equal to a second value and less than the first value, the target data block size is determined to be the set transmission data block size.

6. A data transmission method, characterized in that: Applied to a storage device, the method comprises: In the case where the transmission channel between the cloud platform and the storage device has been acquired, at least one transmission request sent from the cloud platform is sequentially received through the transmission channel, the at least one transmission request is generated by the cloud platform based on the data transmission request received from the virtual machine and at least one transmission file in units of a target data block size, the data transmission request is used to request to transfer a target file in a first logical volume in the storage device to a second logical volume, and the at least one transmission file constitutes the target file; When both the first logical volume and the second logical volume support a data transmission feature for data transmission between logical volumes, each of the transmission files is transmitted to the second logical volume according to each of the transmission requests.

7. The method according to claim 6, characterized in that The at least one transmission request includes a first transmission request; the first transmission request is used to transmit a first transmission file; and the transmitting each transmission file to the second logical volume according to each transmission request includes: Obtaining a target address in the second logical volume where the first transmission file carried in the first transmission request needs to be stored; Determine, according to the target address, a target data block to be stored in the first transmission file corresponding to the target address; Detecting whether the target data block is in a locked state; If not, the target data block is locked, and the first transmission file is written into the target data block.

8. A cloud platform, characterized in that: The cloud platform includes: The transceiver module is used to receive a data transmission request sent from the virtual machine, wherein the data transmission request is used to request to transfer a target file in the first logical volume in the storage device to the second logical volume; The transceiver module is further used to obtain a transmission channel between the cloud platform and the storage device, and obtain at least one transmission file in units of a target data block size, wherein the at least one transmission file constitutes the target file; A processing module is used to generate at least one transfer request based on each transfer file when both the first logical volume and the second logical volume support data transmission characteristics for data transmission between logical volumes, and send each transfer request to the storage device in sequence through the transmission channel, so that the storage device transfers each transfer file to the second logical volume until the transfer of at least one transfer file is completed.

9. A computer device, characterized in that: include: A memory and a processor, wherein the memory and the processor are communicatively connected to each other, the memory stores computer instructions, and the processor executes the data transmission method according to any one of claims 1 to 7 by executing the computer instructions.

10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer instructions, and the computer instructions are used to enable a computer to execute the data transmission method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Data migration method applied in storage system and storage devices

    CN105549904A

  • Method for accessing logic equipment utilizing ISCSI agreement

    CN1642170A

  • Method, system, and article of manufacture for consistent copying of storage volumes

    CN1645335A

  • Storage system, and method for controlling the same

    CN1790250A

  • Remote copy for a storgae controller in a heterogeneous environment

    US20050120093A1