Data storage method and related equipment
By merging files with the same attributes as distributed storage on the cloud management platform, the problem of low file retrieval efficiency in cloud storage systems is solved, and more efficient data recovery and storage reliability are achieved.
Patent Information
- Application Number
- CN202311368172.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-06-29
- Filing Date
- 2023-10-20
- Publication Date
- 2024-12-31
AI Technical Summary
Existing cloud storage systems are inefficient when retrieving big data files, due to the number of drives and robotic arm loading time, and the erasure coding technology increases access complexity, resulting in low file recovery efficiency.
By combining files with the same attributes into a data block collection on the cloud management platform and storing them in a single storage device, reducing the number of accessed storage devices, and using distributed storage and verification of data block collections to improve data storage reliability and efficiency.
It significantly improves the speed and efficiency of file retrieval, reduces the number of accesses to storage devices, and enhances the reliability and availability of data storage.
Smart Images

Figure CN119225629A_ABST
Abstract
Description
[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office on June 29, 2023, with application number 202310786193.7, and priority to the Chinese patent application with the invention name “A method, device and other equipment for archiving data”, all contents of which are incorporated by reference in this application. Technical Field
[0002] The present application relates to the field of cloud computing, and more specifically, to a data storage method, a data storage device, a computing device cluster, a computer program product, and a computer-readable storage medium. Background Art
[0003] Existing cloud vendors can provide data storage services for tenants. For data that tenants need to store for a long time at a low cost, cloud vendors can provide offline storage devices for storage. The offline storage device may include, for example, non-volatile storage devices such as magnetic tapes and optical disks. However, when the tenant needs to retrieve data, the offline storage device must be loaded into the drive and addressed to the specified location before the data can be retrieved. Therefore, the delay in retrieving data mainly depends on the sum of the queue time waiting for the drive to be idle, the time for the robot to load the offline storage device, and the addressing time. However, when the amount of data that the tenant needs to retrieve is large, it is limited by the number of drives, and the time to retrieve the data is long and the efficiency is low. In addition, for the reliability of data storage, the commonly used storage technology is erasure code (EC) technology. EC technology can divide a file into multiple slices, and the multiple slices are stored in multiple different storage devices respectively. When using EC technology for storage, retrieving a file requires calling multiple drives to access multiple storage devices respectively before all the data of the file can be retrieved, which leads to low efficiency in retrieving files.
[0004] Therefore, how to improve the efficiency of the storage method when retrieving files becomes an urgent problem to be solved. Summary of the invention
[0005] The present application provides a data storage method, a data storage device, a computing device cluster, a computer program product, and a computer-readable storage medium, which can improve the efficiency of the data storage method when retrieving files.
[0006] In a first aspect, a data storage method is provided, which is applied to a cloud management platform. The cloud management platform is used to manage an infrastructure that provides cloud services, and the infrastructure includes a storage device cluster. The storage device cluster includes multiple distributed storage devices. The method includes: receiving a first request information from a tenant, the first request information is used to obtain a first file; according to the first request information, determining a first data block set where the first file is located, the first data block set includes one or more files, the properties of the files included in the first data block set are the same, and the first data block set is stored in a storage device in multiple distributed storage devices; according to the first data block set, determining a first storage device where the first data block set is located; and reading the first file from the first storage device.
[0007] In the embodiment of the present application, the cloud management platform can merge at least one file with the same attribute into a data block set, and store the data block set in a storage device. That is, a tenant's file can be stored in one storage device as much as possible, and multiple tenants' files with the same attribute can be stored in one storage device as much as possible. Therefore, when retrieving the one or more files, the number of storage devices that need to be accessed is small, so the time for retrieving files can be saved and the efficiency of retrieving files can be improved.
[0008] In combination with the first aspect, in certain implementations of the first aspect, a second request information of the tenant is received, and the second request information is used to obtain multiple files, and the attributes of the multiple files are the same; based on the second request information, a second data block set where the multiple files are located is determined; based on the second data block set, a second storage device where the second data block set is located is determined; and multiple files are read from the second storage device.
[0009] In an embodiment of the present application, the cloud management platform can merge multiple files with the same attributes into a data block set and store it in a storage device, so that only one storage device needs to be accessed when retrieving the multiple files, thereby improving the efficiency of retrieving files.
[0010] In combination with the first aspect, in certain implementations of the first aspect, configuration information of a tenant is received, the configuration information including attributes of each file in at least one file; based on the configuration information and at least one file, N data block sets are determined, each of the N data block sets includes one or more files in at least one file, the attributes of the files included in each data block set are the same, the N data block sets include a first data block set, and N is a positive integer greater than or equal to 1; the N data block sets are respectively stored in N storage devices in at least one distributed storage device.
[0011] In an embodiment of the present application, the cloud management platform can merge at least one file with the same attributes into a data block set, and store the data block set in a storage device, so that when retrieving the one or more files, only fewer storage devices need to be accessed, thereby saving time in retrieving files and improving the efficiency of retrieving files.
[0012] In combination with the first aspect, in certain implementations of the first aspect, the attributes of a file include at least one of the following: identification information of the storage bucket to which the file belongs, the directory where the file is located, the storage time of the file, the storage type of the file, the size of the file, and the name of the file, wherein the storage type of the file is used to indicate the access frequency of the file.
[0013] In the embodiment of the present application, multiple files with the same attributes can be merged into a data block set according to the different attributes of the files, thereby improving the efficiency of retrieving files when the tenant needs to retrieve the files.
[0014] In combination with the first aspect, in certain implementations of the first aspect, at least one file set is determined based on the attributes of each file in at least one file, and each file set includes all files with the same attributes in at least one file; based on the at least one file set, N data block sets are determined, each data block set includes one or more files in a file set in at least one file set, and the size of each data block set is less than or equal to a first preset threshold.
[0015] In an embodiment of the present application, at least one file of a tenant may be divided into different file sets according to the attributes of the file, so that the files in one file set are merged to determine at least one data block set.
[0016] In combination with the first aspect, in certain implementations of the first aspect, M check data block sets are determined based on N data block sets, and the M check data block sets are used for recovery when one or more data block sets in the N data block sets fail, and M is a positive integer greater than or equal to 1; the M check data block sets are stored in M storage devices in at least one distributed storage device, and the M storage devices and the N storage devices are different storage devices.
[0017] In an embodiment of the present application, when storing N data block sets, M check data block sets can also be determined based on the N data block sets, so as to facilitate recovery when some data block sets in the N data block sets fail, thereby improving the reliability of data storage.
[0018] In combination with the first aspect, in certain implementations of the first aspect, each data block set includes P data blocks, each check data block set includes P check data blocks, and the p-th check data block of each check data block set in the M check data block sets is determined based on the p-th data block of each data block set in the N data block sets, and the size of the p-th data block and / or the p-th check data block is less than or equal to a second preset threshold, p=1,...,P, P is a positive integer greater than or equal to 1.
[0019] In an embodiment of the present application, each data block set in the N data block sets can be divided into at least one data block, and a verification data block of the M verification data block sets can be determined based on a data block in each data block set, thereby determining the M verification data block sets, thereby saving computing resource overhead and memory overhead when determining the M verification data block sets.
[0020] In combination with the first aspect, in certain implementations of the first aspect, the p-th data block of each data block set in the N data block sets is stored in N storage devices respectively; the p-th check data block of each check data block set in the M check data block sets is stored in M storage devices respectively.
[0021] In an embodiment of the present application, N data block sets and M verification data block sets may be stored in N+M storage devices respectively, thereby achieving distributed storage, thereby improving the reliability of data storage.
[0022] In combination with the first aspect, in certain implementations of the first aspect, P data blocks of a data block set are stored continuously in a storage device, and P check data blocks of a check data block set are stored continuously in a storage device.
[0023] In an embodiment of the present application, a set of data blocks can be stored continuously in a storage device, so that when a tenant retrieves a file, it only needs to read the continuous storage space in a storage device to retrieve the file, thereby improving the efficiency of retrieving files.
[0024] In combination with the first aspect, in certain implementations of the first aspect, the attributes of the N data block sets are the same, the attributes of each data block set are determined according to the attributes of the files included in each data block set, and the N storage devices are a group of storage devices.
[0025] In an embodiment of the present application, a set of N data blocks with the same attributes may be stored in a group of storage devices, thereby improving the efficiency of retrieving multiple files.
[0026] Exemplarily, the group of storage devices may be a group of storage devices with close physical locations. For example, the group of storage devices may be storage devices located on the same rack. Alternatively, the group of storage devices may be storage devices located at the same position on different racks. Alternatively, the group of storage devices may be a group of storage devices with close identification information. For example, when the identification information of the group of storage devices is a number, the identification information of each storage device in the group of storage devices may be sequentially decreased or increased.
[0027] In combination with the first aspect, in some implementations of the first aspect, a first mapping relationship is generated, where the first mapping relationship is used to indicate identification information of a data block set where each file is located.
[0028] In the embodiment of the present application, when N data block sets are generated, the correspondence between each data block set and each file can be recorded, so as to facilitate the tenant to retrieve the file.
[0029] In combination with the first aspect, in some implementations of the first aspect, a second mapping relationship is generated, where the second mapping relationship is used to indicate identification information of a storage device where each data block set is located.
[0030] In the embodiment of the present application, when N data block sets are stored in N storage devices, the correspondence between each storage device and each data block set can be recorded, thereby facilitating the tenant to retrieve files.
[0031] In combination with the first aspect, in some implementations of the first aspect, the at least one distributed storage device is a non-volatile storage device.
[0032] In the embodiment of the present application, the storage device storing the file or data block set may be a non-volatile storage device, thereby improving the reliability of data storage.
[0033] In a second aspect, a data storage device is provided, wherein the device includes a module for implementing the first aspect or any possible implementation manner of the first aspect.
[0034] In a third aspect, the present application provides a computing device cluster, comprising at least one computing device, each computing device comprising a processor and a memory; the processor of at least one computing device is used to execute instructions stored in the memory of at least one computing device, so that the computing device cluster executes the method of the above-mentioned first aspect or any one of the implementation methods of the first aspect.
[0035] In a fourth aspect, the present application provides a computer program product comprising instructions, which, when executed by a computer device cluster, causes the computer device cluster to execute the method of the first aspect or any one of the implementation modes of the first aspect.
[0036] In a fifth aspect, the present application provides a computer-readable storage medium, including computer program instructions. When the computer program instructions are executed by a computing device cluster, the computing device cluster executes the method of the above-mentioned first aspect or any one of the implementation modes of the first aspect. BRIEF DESCRIPTION OF THE DRAWINGS
[0037] Figure 1 It is a schematic structural diagram of a data storage system according to an embodiment of the present application.
[0038] Figure 2 is a schematic structural diagram of a data storage system according to another embodiment of the present application.
[0039] Figure 3 It is a schematic flow chart of a data storage method according to an embodiment of the present application.
[0040] Figure 4 is a schematic flow chart of a data storage method according to another embodiment of the present application.
[0041] Figure 5 is a schematic diagram of a second graphical interface 500 according to an embodiment of the present application.
[0042] Figure 6 It is a schematic diagram of determining a data block set according to an embodiment of the present application.
[0043] Figure 7 is a schematic flow chart of a data storage method according to another embodiment of the present application.
[0044] Figure 8 It is a schematic diagram of determining a check data block set according to an embodiment of the present application.
[0045] Fig. 9 It is a schematic diagram of storing N data block sets and M check data block sets in N+M storage devices according to an embodiment of the present application.
[0046] Fig.10 is a schematic structural diagram of a data storage device according to an embodiment of the present application.
[0047] Fig.11 is a schematic structural diagram of a computing device according to an embodiment of the present application.
[0048] Fig.12 It is a schematic structural diagram of a computing device cluster according to an embodiment of the present application.
[0049] Fig.13 It is a schematic diagram of a connection between computing devices 1100A and 1100B via a network according to one embodiment of the present application. DETAILED DESCRIPTION
[0050] The technical solution in this application will be described below in conjunction with the accompanying drawings.
[0051] The embodiments of the present application will present various aspects, embodiments or features around a system including multiple devices, components, modules, etc. It should be understood and appreciated that each system may include additional devices, components, modules, etc., and / or may not include all devices, components, modules, etc. discussed in conjunction with the figures. In addition, combinations of these schemes may also be used.
[0052] In addition, in the embodiments of the present application, words such as "exemplary" and "for example" are used to indicate examples, illustrations or explanations. Any embodiment or design described as "exemplary" in the embodiments of the present application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of the word "exemplary" is intended to present concepts in a concrete way.
[0053] The business scenarios described in the embodiments of the present application are intended to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided in the embodiments of the present application. Ordinary technicians in this field can know that with the evolution of technology and the emergence of new business scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.
[0054] References to "one embodiment" or "some embodiments" etc. described in this specification mean that a particular feature, structure or characteristic described in conjunction with the embodiment is included in one or more embodiments of the present application. Thus, the phrases "in one embodiment", "in some embodiments", "in some other embodiments", "in some other embodiments", etc. that appear at different places in this specification do not necessarily refer to the same embodiment, but mean "one or more but not all embodiments", unless otherwise specifically emphasized in other ways. The terms "including", "comprising", "having" and their variations all mean "including but not limited to", unless otherwise specifically emphasized in other ways.
[0055] In the embodiments of the present application, "at least one" refers to one or more, and "plurality" refers to two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can be represented by: including the existence of A alone, the existence of A and B at the same time, and the existence of B alone, where A and B can be singular or plural. The character " / " generally indicates that the previous and subsequent associated objects are in an "or" relationship. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can be represented by: a, b, c, ab, ac, bc, or abc, where a, b, c can be single or multiple.
[0056] The method in the embodiment of the present application can be applied to various cloud management platforms. The cloud management platform is used to manage the infrastructure for providing cloud services, and the infrastructure includes a storage device cluster. The storage device cluster includes at least one distributed storage device. The at least one distributed storage device can be a non-volatile storage device, or the at least one distributed storage device includes a non-volatile storage medium. The at least one distributed storage device can be, for example, a magnetic tape, an optical disk, etc., which is not limited in the embodiment of the present application.
[0057] Figure 1 It is a schematic structural diagram of a data storage system provided in an embodiment of the present application. Figure 1 The data storage system 100 may include a cloud management platform 110 and a storage device 121 .
[0058] The cloud management platform 110 is used to manage the infrastructure for providing cloud services, and the infrastructure includes a storage device cluster. The storage device cluster includes a storage device 121, and the storage device 121 is a distributed storage device. The cloud management platform 110 can provide at least one cloud service for tenants, and the at least one cloud service can include, for example, storage services, computing services, etc. The tenant is a tenant of a public cloud who has registered a public cloud account and purchased public cloud resources. After the tenant purchases the storage service in the cloud management platform 110, the tenant can upload the files or data to be stored to the cloud management platform 110, so that they are stored in the storage device 121. The storage device 121 is a non-volatile storage device. The tenant can also read the stored files or data from the cloud management platform 110.
[0059] In some embodiments, the storage device 121 may perform storage based on files. Alternatively, the storage device 121 may perform storage based on objects. That is, the storage device 121 may store at least one file of the tenant.
[0060] In some embodiments, the storage device 121 is disposed in the storage device library 120. The storage device library 120 may include at least one storage device, such as the storage device 121 and / or the storage device 122. The storage device library 120 may also correspond to one or more drivers, each of which may receive first indication information from the cloud management platform 110. The first indication information is used to instruct the driver to read the data or files in the storage device 121 and / or the storage device 122. The driver may also read the data or files in the storage device 121 and / or the storage device 122 according to the first indication information. When the storage device library 120 includes multiple storage devices (such as the storage device 121 and the storage device 122), the storage device library 120 may also include at least one mechanical device (such as a mechanical arm). Each mechanical device may be used to determine the storage device to be read (such as the storage device 121) from the multiple storage devices in the storage device library 120, and place the storage device 121 in the driver.
[0061] For example, the storage device 121 may be a magnetic tape or an optical disk. The storage device library 120 may be a magnetic tape library or an optical disk library.
[0062] In some embodiments, the cloud management platform 110 may manage at least one storage device library, such as a storage device library 120 and / or a storage device library 130. The storage device library 130 may include at least one storage device, such as a storage device 131 and / or a storage device 132. The storage device library 130 is similar to the storage device library 120 and will not be described in detail here. The storage device 131, the storage device 132 and the storage device 121 are similar and will not be described in detail here.
[0063] In some embodiments, the storage devices included in a storage device library may belong to the same storage device cluster. Alternatively, the storage devices included in multiple storage device libraries may belong to the same storage device cluster. Alternatively, at least one storage device managed by the cloud management platform 110 may belong to a storage device cluster. Multiple storage devices in a storage device cluster may be directly connected or connected via a network. The network may be, for example, a wide area network or a local area network.
[0064] The cloud management platform 110 can receive a first request information from a tenant, and the first request information is used to obtain a first file. The first file can be any one of at least one file stored by the tenant. The cloud management platform 110 can also determine the first data block set where the first file is located based on the first request information. The first data block set includes one or more files, and the properties of the files included in the first data block set are the same. The first data block set is stored in a storage device among multiple distributed storage devices. The cloud management platform 110 can also determine the first storage device where the first data block set is located based on the first data block set, and read the first file from the first storage device.
[0065] In some embodiments, the cloud management platform 110 may receive a second request information from the tenant, where the second request information is used to obtain multiple files. The multiple files have the same attributes. The cloud management platform 110 may also determine the second data block set where the multiple files are located based on the second request information. That is, the multiple files are located in the same data block set. The cloud management platform 110 may also determine the second storage device where the second data block set is located based on the second data block set, and read the multiple files from the second storage device.
[0066] In some embodiments, the cloud management platform 110 may receive configuration information of a tenant, and the configuration information includes the attributes of each file in at least one file of the tenant. The cloud management platform 110 may also determine N data block sets based on the configuration information and at least one file. Each of the N data block sets includes one or more files of the tenant, and the attributes of the files included in each data block set are the same, and N is a positive integer greater than or equal to 1. The cloud management platform 110 may also store the N data block sets in N storage devices in at least one distributed storage device, respectively.
[0067] In some embodiments, the attributes of a file may include at least one of the following: identification information of the storage bucket to which the file belongs, the directory where the file is located, the storage time of the file, the storage type of the file, the size of the file, and the name of the file. The storage type of the file is used to indicate the access frequency of the file.
[0068] In some embodiments, the cloud management platform 110 may determine M check data block sets based on the N data block sets. The M check data block sets are used to recover when one or more data block sets in the N data block sets fail, where M is a positive integer greater than or equal to 1. The cloud management platform 110 may also store the M check data block sets in M storage devices in at least one distributed storage device. The M storage devices and the N storage devices are different storage devices.
[0069] In some embodiments, the cloud management platform 110 may generate a first mapping relationship. The first mapping relationship may be used to indicate identification information of a data block set where each file is located. The cloud management platform 110 may also generate a second mapping relationship. The second mapping relationship is used to indicate identification information of a storage device where each data block set is located.
[0070] Figure 2 It is a schematic structural diagram of another data storage system provided in an embodiment of the present application. Figure 2 The data storage system in the embodiment includes a cloud management platform. The cloud management platform can manage the service access module 210, the metadata management module 220, the distributed management module 230, the cache module 240, and the storage device library 250. The cloud management platform can be, for example, Figure 1 The cloud management platform 110 in.
[0071] The service access module 210 may provide an object interface and / or a file interface. The object interface may be used to receive at least one object stored by the tenant, each object being stored in the form of a file. The file interface may receive at least one file stored by the tenant. The service access module 210 may also send at least one file stored by the tenant to the distributed management module 230 and / or the cache module 240. The service access module 210 may also receive metadata for each file stored by the tenant. The service access module 210 may send the metadata for each file to the metadata management module 220.
[0072] The metadata management module 220 can manage the metadata of each file stored by the tenant. The metadata of the file can be used to describe the attributes of the file. The metadata of the file can include at least one of the following: identification information of the storage bucket to which the file belongs, the directory where the file is located, the save time of the file, the storage type of the file, the size of the file, the name of the file, and the storage location of the file. The storage type of the file is used to indicate the access frequency of the file.
[0073] For example, the storage type of the file may include at least one of the following types: standard storage, low-frequency storage, archive storage, and deep archive storage. The file access frequency indicated by the standard storage is higher than the file access frequency indicated by the low-frequency storage, the file access frequency indicated by the low-frequency storage is higher than the file access frequency indicated by the archive storage, and the file access frequency indicated by the archive storage is higher than the access frequency indicated by the deep archive storage.
[0074] In some embodiments, the tenant may configure the storage type of the file when uploading the file. Alternatively, the tenant may configure the storage type of the file to be the first storage type when uploading the file. The metadata management module 220 may modify the storage type of the file to be the second storage type after the file meets the first preset condition. The second storage type is different from the first storage type. The access frequency indicated by the second storage type is lower than the access frequency indicated by the first storage type. The first preset condition may be determined by the metadata management module 220 itself, or may be configured by the tenant.
[0075] For example, when uploading a file, the tenant can directly configure the storage type of the file to be a deep archive storage type. Alternatively, when uploading a file, the tenant can configure the storage type of the file to be a standard storage type. The metadata management module 220 can modify the storage type of the file to be a deep archive storage type when the file is cold data with an actual storage time of more than 90 days.
[0076] The cache module 240 can temporarily store at least one file of the tenant. When the data amount of the file cached in the cache module 240 is greater than or equal to the third preset threshold, the cache module 240 can send the cached file to the distributed management module 230. The cache module 240 may include a hard disk drive (HDD) and / or a solid state drive (SSD), etc. The embodiment of the present application does not limit the size of the third preset threshold.
[0077] The distributed management module 230 can perform distributed storage on at least one file of the tenant. For example, the distributed management module 230 can generate an erasure code (EC) or a replica based on the at least one file, and then store the at least one file, the erasure code or the replica in at least one storage device. The distributed management module 230 can manage at least one storage device library, such as the storage device library 250 and / or the storage device library 260. Each storage device library may include at least one storage device, for example, the storage device library 250 may include a storage device 251 and / or a storage device 252, and the storage device library 260 may include a storage device 261 and / or a storage device 262.
[0078] In some embodiments, the service access module 210, the metadata management module 220, the distributed management module 230, and the cache module 240 may be integrated in the same device. Alternatively, the service access module 210, the metadata management module 220, the distributed management module 230, and the cache module 240 may be integrated in multiple devices, and the embodiments of the present application do not limit the modules included in each of the multiple devices.
[0079] Figure 1 or Figure 2 The cloud management platform can merge at least one file with the same attribute into a data block set, and store the data block set in a storage device. That is, a tenant's file can be stored in one storage device as much as possible, and multiple tenants' files with the same attribute can be stored in one storage device as much as possible, so that when retrieving the one or more files, the number of storage devices that need to be accessed is small, thereby saving time for retrieving files and improving the efficiency of retrieving files.
[0080] Figure 3 It is a schematic flow chart of the data storage method provided in an embodiment of the present application. Figure 3 The method in can be Figure 1 or Figure 2 The cloud management platform is executed in. Figure 3 The method comprises the following steps.
[0081] Step S310: receiving the first request information of the tenant.
[0082] The cloud management platform may receive first request information from a tenant, where the first request information is used to obtain a first file. The first file is any one of at least one file stored in advance by the tenant.
[0083] Optionally, the cloud management platform may provide a first graphical interface for the tenant, so that the tenant may request to obtain the first file in the first graphical interface. The embodiment of the present application does not limit the specific content displayed in the first graphical interface.
[0084] Step S320: Determine a first data block set where the first file is located according to the first request information.
[0085] The cloud management platform can determine, based on the first request information, a first data block set where the first file is located. The first data block set includes one or more files, and the attributes of the files included in the first data block set are the same. The first data block set is stored in a storage device in a plurality of distributed storage devices.
[0086] Optionally, the cloud management platform may determine the first data block set according to the first mapping relationship and the first request information. The first mapping relationship may be used to indicate identification information of the data block set where each file is located. The first mapping relationship may refer to the description in step S720.
[0087] For example, assuming that the first mapping relationship is expressed in a tabular form (as shown in Table 4 below), the cloud management platform can determine the first data block set corresponding to the first file by querying the first mapping relationship table.
[0088] Step S330: Determine, according to the first data block set, a first storage device where the first data block set is located.
[0089] Optionally, the cloud management platform can determine the first storage device where the first data block set is located based on the second mapping relationship and the first data block set. The first storage device is one of the multiple distributed storage devices. The second mapping relationship is used to indicate the identification information of the storage device where each data block set is located. The second mapping relationship can refer to the description in step S740.
[0090] For example, assuming that the second mapping relationship is expressed in a table form (as shown in Table 5 below), the cloud management platform can determine the first storage device corresponding to the first data block set by querying the second mapping relationship table.
[0091] Step S340: read the first file from the first storage device.
[0092] After determining the first storage device, the cloud management platform can directly read the first file from the first storage device.
[0093] Optionally, the first mapping relationship can also be used to indicate the offset address of each file in the corresponding data block set and / or the internal storage bucket where each file is located. The second mapping relationship can also be used to indicate the offset address of each data block set in the corresponding storage device. The cloud management platform can determine the storage address of the first data block set in the first storage device and the storage address of the first file in the first data block set based on the first mapping relationship and the second mapping relationship, thereby directly reading the first file from the first storage device.
[0094] Optionally, the cloud management platform may receive a second request information from the tenant, and the second request information is used to obtain multiple files, and the attributes of the multiple files are the same. Since the attributes of the multiple files are the same, the multiple files may be located in the same data block set. The cloud management platform may also determine the second data block set where the multiple files are located based on the second request information. The specific implementation method is similar to step S320 and will not be repeated here. The cloud management platform may also determine the second storage device where the second data block set is located based on the second data block set. The specific implementation method is similar to step S330 and will not be repeated here. The cloud management platform may also read the multiple files directly from the second storage device, and the specific implementation method is similar to step S340 and will not be repeated here.
[0095] In the embodiment of the present application, the cloud management platform can obtain stored files for the tenant according to the tenant's request. Since the cloud management platform can merge at least one file with the same attribute into a data block set, and store the data block set in a storage device. That is, a tenant's file can be stored in one storage device as much as possible, and multiple tenants' files with the same attribute can be stored in one storage device as much as possible, so that when retrieving the one or more files, the number of storage devices that need to be accessed is small, so that the time for retrieving files can be saved and the efficiency of retrieving files can be improved.
[0096] Figure 4 It is a schematic flow chart of the data storage method provided in an embodiment of the present application. Figure 4 The method in can be Figure 1 or Figure 2 The cloud management platform is executed in. Figure 4 The method comprises the following steps.
[0097] Step S410: receiving the tenant's configuration information.
[0098] The cloud management platform may receive configuration information of the tenant, where the configuration information includes attributes of each file in at least one file of the tenant.
[0099] Optionally, the attributes of each file may include at least one of the following: identification information of the storage bucket to which the file belongs, the directory where the file is located, the file's save time, the file's storage type, the file's size, and the file's name. Among them, the file's save time may include a first save time and / or a second save time. The first save time is used to indicate the file's storage time, that is, when the file's actual save time is greater than or equal to the first save time, the cloud management platform can delete the file. The file's second save time is used to indicate the file's archiving time, that is, when the file's actual save time is greater than or equal to the second save time, the cloud management platform can set the file's storage type to a preset storage type (e.g., a deep archive storage type). The file's storage type can be used to indicate the file's access frequency.
[0100] When a file belongs to an object storage system, the name of the file can be used to indicate the directory where the file is located. For example, the name of the file can be "directory 1 / file 1", where "directory 1" is the directory where the file is located.
[0101] Optionally, the cloud management platform may provide a second graphical interface to the tenant, so that the tenant may select or upload the configuration information on the second graphical interface.
[0102] For example, the cloud management platform can provide a second graphical interface such as Figure 5 shown. Figure 5is a schematic diagram of a second graphical interface 500 provided in an embodiment of the present application. Figure 5 As shown in the second graphical interface 500 in the figure, the tenant can select or input the following four items in the second graphical interface 500: identification information of the storage bucket, name of the file, first saving time, and storage type. Among them, the tenant can select or input the identification information of the storage bucket where the file is located in the selection box or input box corresponding to "identification information of the storage bucket", such as the name or number of the storage bucket where the file is located. The tenant can select or input the name of the file in the selection box or input box corresponding to "name of the file". The tenant can select or input the first saving time of the file in the selection box or input box corresponding to "first saving time". The tenant can select or input the storage type of the file in the selection box or input box corresponding to "storage type".
[0103] like Figure 5 As shown, the configuration information may include the following contents: the first retention time of file 1 located in directory 1 in bucket 1 is 30 days, and the storage type of file 1 is a deep archive storage type; the first retention time of file 2 located in directory 1 in bucket 1 is 30 days, and the storage type of file 2 is a deep archive storage type; the first retention time of file 1 located in directory 2 in bucket 1 is 30 days, and the storage type of file 1 is a deep archive storage type.
[0104] It should be understood that the second graphical interface 500 is only an exemplary description. The cloud management platform may provide the tenant with a second graphical interface in other forms, so that the tenant can select or input configuration information in the second graphical interface in other forms.
[0105] Optionally, the cloud management platform may display the second graphical interface 500 to the tenant when the tenant uploads a file, thereby receiving the tenant's configuration information.
[0106] Step S420: Determine N data block sets according to the configuration information and at least one file.
[0107] The cloud management platform may determine N data block sets according to the configuration information and at least one file. Each of the N data block sets includes one or more files in the at least one file, the attributes of the files included in each data block set are the same, and N is a positive integer greater than or equal to 1.
[0108] For example, assuming that the configuration information indicates that the attributes of file A, file B, and file C are the same, the cloud management platform can determine a data block set based on file A, file B, and file C, such as Figure 6 shown. Figure 6 It is a schematic diagram of determining a data block set provided in an embodiment of the present application. Figure 6The data block set 600 includes file A, file B and file C, and the three files have the same attributes. The cloud management platform can directly arrange and merge file A, file B and file C in sequence to obtain a data block set 600.
[0109] Optionally, the size of each data block set may be less than or equal to a first preset threshold. The embodiment of the present application does not limit the size of the first preset threshold, for example, it may be 1 gigabyte (GB), 10 GB, etc.
[0110] When determining a data block set, the cloud management platform may divide a file into multiple parts, so that the multiple parts of the file belong to different data block sets respectively, and the size of each data block set is less than or equal to a first preset threshold.
[0111] For example, assuming that the sum of the sizes of file A, file B, and file C is greater than a first preset threshold, the cloud management platform may divide file C into a first part and a second part. The cloud management platform may determine a data block set A based on file A, file B, and the first part of file C, and may also determine a data block set B based on the second part of file C and other files. The other files are files other than file A, file B, and file C. The sizes of the data block set A and the data block set B are both less than or equal to the first preset threshold.
[0112] When determining a data block set, the cloud management platform may determine at least one file with the same attributes as at least one data block set of similar size according to the allocation algorithm. That is, the cloud management platform may not divide the file into multiple parts, but directly determine N data block sets as much as possible according to the allocation algorithm, and the size of the N data block sets is within a preset range. The embodiments of the present application do not limit the preset range. The embodiments of the present application do not limit the specific implementation of the allocation algorithm.
[0113] Optionally, the cloud management platform may determine at least one file set based on the attributes of each file in at least one file. Each file set includes all files with the same attribute in the at least one file. The cloud management platform may also determine N data block sets based on at least one file set. Each data block set in the N data block sets includes one or more files in a file set, and the size of each data block set is less than or equal to a first preset threshold.
[0114] Optionally, when determining the data block set, the cloud management platform may also generate a first mapping relationship. The first mapping relationship may be used to indicate the storage location of each file. The storage location of each file may include identification information of the data block set where each file is located. The storage location of each file may also include an offset address of each file in the data block set and / or an internal storage bucket where each file is located.
[0115] Step S430: store the N data block sets in N storage devices in at least one distributed storage device respectively.
[0116] The cloud management platform can store the determined N data block sets in N storage devices respectively, that is, the cloud management platform can store a data block set in one storage device, and the storage devices where the N data block sets are located are different. The N storage devices belong to a storage device cluster managed by the cloud management platform, and the storage device cluster includes at least one distributed storage device.
[0117] Optionally, the N storage devices may belong to the same storage device library. Alternatively, at least two storage devices among the N storage devices may belong to different storage device libraries. The storage device library may be Figure 1 The storage device library 120 in the Figure 1 The storage device 121 in.
[0118] Optionally, when storing N data block sets in N storage devices, the cloud management platform may also generate a second mapping relationship. The second mapping relationship is used to indicate the identification information of the storage device where each data block set is located. The second mapping relationship may also be used to indicate the offset address of each data block set in the storage device.
[0119] Optionally, before step S430, the cloud management platform may determine M check data block sets based on the N data block sets. The M check data block sets are used to recover when one or more data block sets in the N data block sets fail, where M is a positive integer greater than or equal to 1. The cloud management platform may also store the M check data block sets in M storage devices in at least one distributed storage device, where the M storage devices are different from the N storage devices.
[0120] The cloud management platform can merge at least one file with the same attribute into a data block set, and store the data block set in a storage device. That is, a tenant's file can be stored in one storage device as much as possible, and multiple tenants' files with the same attribute can be stored in one storage device as much as possible, so that when retrieving the one or more files, the number of storage devices that need to be accessed is small, thus saving time for retrieving files and improving the efficiency of retrieving files.
[0121] Figure 7 It is a schematic flow chart of the data storage method provided in an embodiment of the present application. Figure 7 The method in can be Figure 1 or Figure 2 The cloud management platform is executed in. Figure 7The method comprises the following steps.
[0122] Step S710: determining at least one file set according to the attribute of each file in at least one file.
[0123] The cloud management platform may determine at least one file set according to the attribute of each file of the tenant. Each file set in the at least one file set may include all files with the same attribute of at least one file of the tenant.
[0124] Optionally, the cloud management platform can directly store all files with the same attribute into a file collection according to the attribute of each file. Alternatively, the cloud management platform can classify and label each file according to the attribute of each file. Files with the same attribute can be set with the same label. The cloud management platform can also classify files with the same label into the same file collection.
[0125] For example, assume that the tenant's configuration information is as shown in Table 1 below.
[0126] Table 1 Tenant configuration information table
[0127] Bucket identification information The name of the file First save time Storage Type Bucket 1 Directory 1 / File 1 30 days Deep Archive Bucket 1 Directory 1 / File 2 30 days Deep Archive Bucket 1 Directory 1 / File 3 90 days Deep Archive Bucket 1 Directory 1 / File 4 30 days Deep Archive Bucket 1 Directory 2 / File 1 30 days Deep Archive Bucket 1 Directory 2 / File 2 60 days Deep Archive Bucket 1 Directory 2 / File 3 30 days Deep Archive Bucket 1 Directory 2 / File 4 30 days Deep Archive Bucket 2 Directory 1 / File 1 30 days Deep Archive Bucket 2 Directory 1 / File 2 30 days Deep Archive Bucket 2 Directory 1 / File 3 30 days Deep Archive
[0128] Assume that the attributes of a file include the following four items: identification information of the storage bucket, the directory where the file is located, and the first saving time. According to the attributes of the file, after classifying and labeling each file, the classification label information table that can be obtained is shown in Table 2 below.
[0129] Table 2 Classification label information table
[0130] Bucket identification information The name of the file First save time Storage Type Tag information Bucket 1 Directory 1 / File 1 30 days Deep Archive Tag 1 Bucket 1 Directory 1 / File 2 30 days Deep Archive Tag 1 Bucket 1 Directory 1 / File 3 90 days Deep Archive Tag 2 Bucket 1 Directory 1 / File 4 30 days Deep Archive Tag 1 Bucket 1 Directory 2 / File 1 30 days Deep Archive Tag 3 Bucket 1 Directory 2 / File 2 60 days Deep Archive Tag 4 Bucket 1 Directory 2 / File 3 30 days Deep Archive Tag 3 Bucket 1 Directory 2 / File 4 30 days Deep Archive Tag 3 Bucket 2 Directory 1 / File 1 30 days Deep Archive Tag 5 Bucket 2 Directory 1 / File 2 30 days Deep Archive Tag 5 Bucket 2 Directory 1 / File 3 30 days Deep Archive Tag 5
[0131] As shown in Table 2, since the storage buckets, directories and first saving times of files 1, 2 and 4 in directory 1 in bucket 1 are the same, the tag information of files 1, 2 and 4 in directory 1 in bucket 1 is all tag 1. Since the first saving time of file 3 in directory 1 in bucket 1 is different from the first saving time of file 1 in directory 1 in bucket 1, the tag information of file 3 in directory 1 in bucket 1 is tag 2. Since the storage buckets, directories and first saving times of files 1, 3 and 4 in directory 2 in bucket 1 are the same, and the directories of files 1, 3 and 4 in directory 2 in bucket 1 are different from the directories of files 1 and 3 in directory 1 in bucket 1, the tag information of files 1, 3 and 4 in directory 2 in bucket 1 is all tag 3. Similarly, the tag information of file 2 in directory 2 in bucket 1 is tag 4, and the tag information of files 1, 2 and 3 in directory 1 in bucket 2 is all tag 5.
[0132] According to the classification label information shown in Table 2, the cloud management platform can classify files with the same label information into the same file set. For example, file 1, file 2, and file 4 in directory 1 in bucket 1 belong to file set 1. File 3 in directory 1 in bucket 1 belongs to file set 2. File 1, file 3, and file 4 in directory 2 in bucket 1 belong to file set 3. File 2 in directory 2 in bucket 1 belongs to file set 4. File 1, file 2, and file 3 in directory 1 in bucket 2 belong to file set 5.
[0133] Step S720: Determine N data block sets according to at least one file set.
[0134] The cloud management platform may determine N data block sets based on at least one file set, where N is a positive integer greater than or equal to 1. Each data block set includes one or more files in a file set in the at least one file set, and the size of each data block set is less than or equal to a first preset threshold.
[0135] Optionally, the cloud management platform may sequentially arrange and merge one or more files in a file set, thereby determining one or more data block sets in the N data block sets. Figure 6 Alternatively, the cloud management platform may allocate one or more files in a file set according to an allocation algorithm, thereby determining one or more data block sets in N data block sets. The size of each data block set in the N data block sets is less than or equal to the first preset threshold.
[0136] In some embodiments, the cloud management platform may divide a file into multiple parts, so that the multiple parts of the file belong to different data block sets, and the size of each data block set is less than or equal to a first preset threshold. Alternatively, when the cloud management platform determines the data block set according to the allocation algorithm, the cloud management platform may not divide a file into multiple parts, thereby ensuring that all data of a file can be stored in one storage device.
[0137] Optionally, the cloud management platform may merge one or more files in a file set into a data block set through data migration, for example, through a multi-segment interface of an object.
[0138] Optionally, the cloud management platform may record the attributes of each data block set in the N data block sets. The attributes of each data block set include at least one of the following: identification information of the storage bucket to which the data block set belongs, identification information of the data block set, size of the data block set, and tag information of the data block set. The identification information of the data block set may include, for example, the name or number of the data block set. The tag information of the data block set may be tag information of a file included in the data block set.
[0139] For example, assume that the properties of the obtained N data block sets are as shown in Table 3.
[0140] Table 3 Attribute table of data block set
[0141] Bucket identification information Identification information of the data block set The size of the data block set Tag information of the data block collection Internal barrel 1 Data block set 1 10GB Tag 1 Internal barrel 1 Data block set 2 10GB Tag 1 Internal barrel 1 Data block set 3 10GB Tag 2 Internal barrel 1 Data block set 4 10GB Tag 3 Internal barrel 1 Data Block Collection 5 10GB Tag 4 Internal barrel 1 Data Block Set 6 10GB Tag 5
[0142] As shown in Table 3, data block set 1 can be stored in internal bucket 1, the size of data block set 1 is 10GB, and the tag information of data block set 1 is tag 1. Among them, internal bucket 1 is a storage bucket managed by the cloud management platform and may be irrelevant to the tenant. That is, the tenant may not be aware of internal bucket 1.
[0143] Optionally, the cloud management platform may generate a first mapping relationship, which may be used to indicate the storage location of each file. The storage location of each file may include identification information of the data block set where each file is located. The storage location of each file may also include an offset address of each file in the data block set and / or an internal storage bucket where each file is located.
[0144] For example, the first mapping relationship may be as shown in Table 4. The storage location of the file may be represented by an array, and the format of the array is (internal storage bucket where the file is located, data block set where the file is located, and offset address of the file in the data block set). That is, the first data in the storage location of the file represents the internal storage bucket where the file is located, the second data is used to represent the data block set where the file is located, and the third data is used to represent the offset address of the file in the data block set.
[0145] Table 4 First mapping relationship table
[0146] Bucket identification information The name of the file Where to store files Bucket 1 Directory 1 / File 1 (internal bucket 1, data block set 1, offset address 1) Bucket 1 Directory 1 / File 2 (internal bucket 1, data block set 1, offset address 2) Bucket 1 Directory 1 / File 3 (internal bucket 1, data block set 3, offset address 3) Bucket 1 Directory 1 / File 4 (internal bucket 1, data block set 2, offset address 4) Bucket 1 Directory 2 / File 1 (internal bucket 1, data block set 4, offset address 5) Bucket 1 Directory 2 / File 2 (internal bucket 1, data block set 5, offset address 6) Bucket 1 Directory 2 / File 3 (internal bucket 1, data block set 4, offset address 7) Bucket 1 Directory 2 / File 4 (internal bucket 1, data block set 4, offset address 8) Bucket 2 Directory 1 / File 1 (internal bucket 1, data block set 6, offset address 9) Bucket 2 Directory 1 / File 2 (internal bucket 1, data block set 6, offset address 10) Bucket 2 Directory 1 / File 3 (internal bucket 1, data block set 6, offset address 11)
[0147] As shown in Table 4, the first mapping relationship can be used to indicate that the storage location of file 1 under directory 1 in bucket 1 is (internal bucket 1, data block set 1, offset address 1). That is, file 1 under directory 1 in bucket 1 is located in data block set 1 in internal bucket 1, and the offset address of file 1 in data block set 1 is offset address 1. According to the first mapping relationship, the data block set where each file is located and the specific location of each file in the data block set can be determined.
[0148] Step S730: Determine M check data block sets according to the N data block sets.
[0149] The cloud management platform may determine M check data block sets based on the N data block sets. The M check data block sets are used for recovery when one or more data block sets in the N data block sets fail, where M is a positive integer greater than or equal to 1.
[0150] Optionally, the cloud management platform can determine the M check data block sets corresponding to the N data block sets based on EC technology. The embodiments of the present application do not limit the specific EC technology, for example, it may include array erasure code (array code), Reed-Solomon erasure code (Reed-Solomon, RS) and low-density parity check erasure code (low density parity check code, LDPC), etc. Alternatively, the cloud management platform can also determine the M check data block sets corresponding to the N data block sets based on other verification methods, and the embodiments of the present application do not limit the specific verification methods. When at most M data in the N data block sets and the M check data block sets fail, the cloud management platform can recover the failed data based on other data except the failed data, thereby enhancing the reliability of data storage.
[0151] Optionally, the cloud management platform may directly calculate M check data block sets based on the N data block sets. Alternatively, the cloud management platform may divide each data block set in the N data block sets into P data blocks, and determine the p-th check data block of each check data block set in the M check data block sets based on the p-th data block of each data block set in the N data block sets, thereby determining the M check data block sets, such as Figure 8 As shown. Each of the M check data block sets includes P check data blocks. P is a positive integer greater than or equal to 1, p=1, ..., P.
[0152] Figure 8 It is a schematic diagram of determining a set of verification data blocks provided in an embodiment of the present application. Figure 8 The data block set 810, the data block set 820 and the verification data block set 830 are included. The data block set 810 and the data block set 820 each include P data blocks, and the P data blocks are respectively the 1st data block to the Pth data block. The cloud management platform can determine the 1st verification data block of the verification data block set 830 according to the 1st data block of the data block set 810 and the 1st data block of the data block set 820 through the EC technology. Similarly, the cloud management platform can determine the pth verification data block of the verification data block set 830 according to the pth data block of the data block set 810 and the pth data block of the data block set 820 through the EC technology, p=1,...,P.
[0153] The following uses RS technology as an example. Assuming that the value of N is 5 and the value of M is 3, then N+M is 8. The cloud management platform can concatenate the pth data block of each data block set in the 5 data block sets into a matrix D. When the 5 data blocks are D1, D2, D3, D4, and D5, D=[D1, D2, D3, D4, D5] T . Where T represents transpose. If the number of rows in each of the five data blocks is d1 and the number of columns is d2, then the number of rows in the matrix D is 5*d1 and the number of columns is d2. The cloud management platform can also construct a matrix B with 8*d1 rows and d2 columns. Moreover, any five row vectors of the matrix B are independent of each other, that is, a 5*5 matrix composed of any five row vectors is reversible. The cloud management platform can also determine the matrix C based on B*D=C, and according to C=[D,C1,C2,C3] T , determine the pth check data block in each of the three check data block sets. The three check data blocks are C1, C2, and C3 respectively.
[0154] Exemplarily, the cloud management platform may represent each data block set in a matrix form, or may represent the data blocks of each data block set in a matrix form.
[0155] In some embodiments, the size of the pth data block of each data block set and / or the pth check data block of each check data block set is less than or equal to a second preset threshold. The embodiment of the present application does not limit the size of the second preset threshold, for example, the size of the second preset threshold may be 1 mebibyte (MB), 2MB, 5MB, etc.
[0156] In some embodiments, the attributes of the N data block sets are the same. The attributes of each data block set are determined according to the attributes of the files included in each data block set. The N data blocks are respectively stored in N storage devices, and the N storage devices are a group of storage devices.
[0157] Exemplarily, the group of storage devices may be a group of storage devices with close physical locations. For example, the group of storage devices may be storage devices located on the same rack. Alternatively, the group of storage devices may be storage devices located at the same position on different racks. Alternatively, the group of storage devices may be a group of storage devices with close identification information. For example, when the identification information of the group of storage devices is a number, the identification information of each storage device in the group of storage devices may be sequentially decreased or increased.
[0158] In other words, the cloud management platform can determine at least one data block set based on the configuration information and at least one file of the tenant. The cloud management platform can also store N data block sets with the same attributes in the at least one data block set in N storage devices respectively. The cloud management platform can also determine M verification data block sets based on the N data block sets with the same attributes, and store the M verification data block sets in M storage devices respectively.
[0159] Step S740: Store the N data block sets and the M check data block sets in N+M storage devices respectively.
[0160] The cloud management platform may store N data block sets in N storage devices respectively, and may also store M verification data block sets in M storage devices respectively, wherein the N storage devices and the M storage devices are different devices.
[0161] Optionally, after determining N complete data block sets, the cloud management platform can directly store the N complete data block sets in N storage devices. The cloud management platform can also directly store the M complete verification data block sets in M storage devices after determining M complete verification data block sets.
[0162] Optionally, after determining the p-th check data block of each check data block set in the M check data block sets according to the p-th data block of each data block set in the N data block sets, the cloud management platform may store the p-th data block of each data block set in the N data block sets in N storage devices, respectively, and may also store the p-th check data block of each check data block set in the M check data block sets in M storage devices, respectively, such as Fig. 9 shown.
[0163] Fig. 9 It is a schematic diagram of storing N data block sets and M verification data block sets in N+M storage devices provided by an embodiment of the present application. Fig. 9 The cloud management platform includes storage device 910, storage device 920 and storage device 930. Figure 8After determining the first check data block of the check data block set 830 based on the first data block of the data block set 810 and the first data block of the data block set 820, the first data block of the data block set 810 can be stored in the storage device 910, the first data block of the data block set 820 can be stored in the storage device 920, and the first check data block of the check data block set 830 can be stored in the storage device 930. Similarly, after determining the second check data block of the check data block set 830 based on the second data block of the data block set 810 and the second data block of the data block set 820, the second data block of the data block set 810, the second data block of the data block set 820, and the second check data block of the check data block set 830 can be stored in the storage device 910, the storage device 920, and the storage device 930, respectively.
[0164] For example, Fig. 9 At least two of the three storage devices in may be located in the same or different storage device libraries.
[0165] Exemplarily, after storing the p-th data block of each data block set in the N data block sets and the p-th verification data block of each verification data block set in the M verification data block sets respectively in N+M storage devices, the cloud management platform can continue to determine the p+1-th verification data block of each verification data block set in the M verification data block sets based on the p+1-th data block of each data block set in the N data block sets. The cloud management platform can also store the p+1-th data block of each data block set in the N data block sets and the p+1-th verification data block of each verification data block set in the M verification data block sets respectively in N+M storage devices. Wherein, each data block of the n-th data block set in the N data block sets is stored in the n-th storage device in the N storage devices, and each data block of the n-th data block set is continuously stored in the n-th storage device, n=1,...,N. Each check data block of the mth check data block set among the M check data block sets is stored in the mth storage device among the M storage devices, and each check data block of the mth check data block set is stored continuously in the mth storage device, m=1,...,M.
[0166] Optionally, the P data blocks of a data block set are stored continuously in one storage device, and the P check data blocks of a check data block set are stored continuously in one storage device.
[0167] Optionally, the cloud management platform may generate a second mapping relationship, which is used to indicate the storage location of each data block set. The storage location of each data block set may include identification information of the storage device where each data block set is located. The storage location of each data block set may also include an offset address of each data block set in the storage device.
[0168] For example, the second mapping relationship may be as shown in Table 5. The storage location of the data block set may be represented by an array, and the format of the array is (storage device where the data block set is located, offset address of the data block set in the storage device). That is, the first data in the storage location of the data block set represents the storage device where the data block set is located, and the second data is used to represent the offset address of the data block set in the storage device.
[0169] Table 5 Second mapping relationship table
[0170] Identification information of the data block set The storage location of the data block collection Data block set 1 (storage device 1, offset address 12) Data block set 2 (storage device 1, offset address 13) Data block set 3 (storage device 1, offset address 14) Data block set 4 (storage device 1, offset address 15) Data Block Collection 5 (storage device 1, offset address 16) Data Block Set 6 (storage device 1, offset address 17)
[0171] As shown in Table 5, the second mapping relationship can be used to indicate that the storage location of data block set 1 is (storage device 1, offset address 12). That is, data block set 1 is located in storage device 1, and the offset address of data block set 1 in storage device 1 is offset address 12. According to the second mapping relationship, the storage device where each data block set is located and the specific location of each data block set in the storage device can be determined.
[0172] It should be understood that Tables 1 to 5 are only exemplary, and other forms (such as matrices, arrays, functions, etc.) may also be used to represent Tables 1 to 5, which are not limited in the embodiments of the present application. The embodiments of the present application do not limit the specific form of some of the data in Tables 1 to 5. For example, some of the data in Tables 1 to 5 may include at least one character, and the at least one character may include any one or more of letters, numbers, and symbols. Alternatively, some of the data in Tables 1 to 5 may be represented in the form of matrices, arrays, functions, etc.
[0173] Optionally, the cloud management platform may generate a third mapping relationship, which is used to indicate the storage location of each verification data block set. The storage location of each verification data block set may include identification information of the storage device where each verification data block set is located. The storage location of each verification data block set may also include the offset address of each verification data block set in the storage device. The specific expression of the third mapping relationship is similar to the second mapping relationship and will not be repeated here.
[0174] In an embodiment of the present application, the cloud management platform can merge at least one file with the same attribute into a data block set, and store the data block set in a storage device. That is, a tenant's file can be stored in one storage device as much as possible, and multiple tenants' files with the same attribute can be stored in one storage device as much as possible, so that when retrieving the one or more files, the number of storage devices that need to be accessed is small, thereby saving time for retrieving files and improving the efficiency of retrieving files. At the same time, the method of determining the verification data block of the verification data block set based on the data blocks of the data block set can save memory overhead when calculating the verification data block set.
[0175] Fig.10 It is a schematic structural diagram of a data storage device provided in an embodiment of the present application. Fig.10 The data storage device 1000 includes a receiving module 1010 and a processing module 1020. Fig.10 The data storage device 1000 in the embodiment can be applied to a cloud management platform, for example Figure 1 or Figure 2 Cloud management platform in.
[0176] The receiving module 1010 may be used to receive first request information of a tenant, where the first request information is used to obtain a first file. The receiving module 1010 may be used to execute Figure 3 Step S310 in Figure 4 Step S410 in .
[0177] The processing module 1020 may be used to determine the first data block set where the first file is located according to the first request information. The processing module 1020 may also be used to determine the first storage device where the first data block set is located according to the first data block set, and read the first file from the first storage device. The processing module 1020 may execute Figure 3 Steps S320 to S340, Figure 4 Steps S420 to S430, Figure 7 Steps S710 to S740 in .
[0178] The receiving module 1010 and the processing module 1020 may be implemented by software or hardware. For example, the implementation of the receiving module 1010 is described below by taking the receiving module 1010 as an example. Similarly, the implementation of the processing module 1020 may refer to the implementation of the receiving module 1010.
[0179] As an example of a software functional unit, the receiving module 1010 may include code running on a computing instance. Among them, the computing instance may include at least one of a physical host (computing device), a virtual machine, and a container. Further, the above-mentioned computing instance may be one or more. For example, the receiving module 1010 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code may be distributed in the same region (region) or in different regions. Furthermore, the multiple hosts / virtual machines / containers used to run the code may be distributed in the same availability zone (AZ) or in different AZs, each AZ including a data center or multiple data centers with similar geographical locations. Among them, usually a region may include multiple AZs.
[0180] Similarly, multiple hosts / virtual machines / containers used to run the code can be distributed in the same VPC or in multiple VPCs. Usually, a VPC is set up in a region. For cross-region communication between two VPCs in the same region and between VPCs in different regions, a communication gateway needs to be set up in each VPC to achieve interconnection between VPCs through the communication gateway.
[0181] As an example of a hardware functional unit, the receiving module 1010 may include at least one computing device, such as a server, etc. Alternatively, the receiving module 1010 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.
[0182] The multiple computing devices included in the receiving module 1010 can be distributed in the same region or in different regions. The multiple computing devices included in the receiving module 1010 can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in the receiving module 1010 can be distributed in the same VPC or in multiple VPCs. The multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.
[0183] Therefore, the modules of each example described in the embodiments of the present application can be implemented with electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the present application.
[0184] It should be noted that: when the device provided in the above embodiment executes the above method, only the division of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. For example, the receiving module 1010 can be used to execute any step in the above method, and the processing module 1020 can be used to execute any step in the above method. The steps that the receiving module 1010 and the processing module 1020 are responsible for implementing can be specified as needed, and all the functions of the above device can be realized by respectively implementing different steps in the above method through the receiving module 1010 and the processing module 1020.
[0185] In addition, the device and method embodiments provided in the above embodiments belong to the same concept, and their specific implementation processes are detailed in the method embodiments above, which will not be repeated here.
[0186] The method provided in the embodiment of the present application can be performed by a computing device, which can also be referred to as a computer system. It includes a hardware layer, an operating system layer running on the hardware layer, and an application layer running on the operating system layer. The hardware layer includes hardware such as a processing unit, a memory and a memory control unit, and then the function and structure of the hardware are described in detail. The operating system is any one or more computer operating systems that implement business processing through a process, for example, a Linux operating system, a Unix operating system, an Android operating system, an iOS operating system, or a windows operating system. The application layer includes applications such as a browser, an address book, a word processing software, and an instant messaging software. In addition, optionally, the computer system is a handheld device such as a smart phone, or a terminal device such as a personal computer, and the present application is not particularly limited, as long as the method provided by the embodiment of the present application can be used. The execution subject of the method provided in the embodiment of the present application can be a computing device, or a functional module in a computing device that can call a program and execute a program.
[0187] Fig.11 1 is a schematic structural block diagram of a computing device 1100 provided in an embodiment of the present application. The computing device 1100 may be a server or a computer or other device with computing capabilities. Fig.11 The computing device 1100 shown includes at least one processor 1110 and a memory 1120 .
[0188] It should be understood that the present application does not limit the number of processors and memories in the computing device 1100 .
[0189] The processor 1110 executes the instructions in the memory 1120, so that the computing device 1100 implements the method provided by the present application. Alternatively, the processor 1110 executes the instructions in the memory 1120, so that the computing device 1100 implements the functional modules provided by the present application, thereby implementing the method provided by the present application.
[0190] Optionally, the computing device 1100 further includes a communication interface 1130. The communication interface 1130 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 1100 and other devices or a communication network.
[0191] Optionally, the computing device 1100 further includes a system bus 1140, wherein the processor 1110, the memory 1120 and the communication interface 1130 are respectively connected to the system bus 1140. The processor 1110 can access the memory 1120 through the system bus 1140. For example, the processor 1110 can read and write data or execute code in the memory 1120 through the system bus 1140. The system bus 1140 is a peripheral component interconnect express (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The system bus 1140 is divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig.11 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.
[0192] In a possible implementation, the function of the processor 1110 is mainly to interpret the instructions (or codes) of the computer program and process the data in the computer software. The instructions of the computer program and the data in the computer software can be stored in the memory 1120 or the cache of the processor 1110.
[0193] Optionally, the processor 1110 may be an integrated circuit chip with signal processing capabilities. As an example and not limitation, the processor 1110 is a general-purpose processor, a digital signal processor (DSP), an ASIC, an FPGA or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component. Among them, the general-purpose processor is a microprocessor, etc. For example, the processor 1110 is a central processing unit (CPU).
[0194] The memory 1120 can provide a running space for the processes in the computing device 1100. For example, the computer program (specifically, the program code) used to generate the process is stored in the memory 1120. After the computer program is executed by the processor to generate the process, the processor allocates a corresponding storage space for the process in the memory 1120. Furthermore, the above storage space further includes a text segment, an initialized data segment, a bit initialized data segment, a stack segment, a heap segment, etc. The memory 1120 stores the data generated during the running of the process in the storage space corresponding to the above process, such as intermediate data, process data, etc.
[0195] Optionally, the storage is also called memory, which is used to temporarily store the calculation data in the processor 1110 and the data exchanged with the external storage such as the hard disk. As long as the computer is running, the processor 1110 will transfer the data to be calculated to the memory for calculation, and transmit the result after the calculation is completed.
[0196] As an example and not limitation, the memory 1120 is a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. The non-volatile storage medium may be, for example, a read-only memory (ROM), a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory is a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct rambus DRAM (DRDRAM). It should be noted that the memory 1120 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0197] The structure of the computing device 1100 listed above is only an example, and the present application is not limited thereto. The computing device 1100 of the embodiment of the present application includes various hardware in the computer system in the prior art. For example, the computing device 1100 also includes other memories besides the memory 1120, such as disk storage, etc. Those skilled in the art should understand that the computing device 1100 may also include other devices necessary for normal operation. At the same time, according to specific needs, those skilled in the art should understand that the above-mentioned computing device 1100 may also include hardware devices for implementing other additional functions. In addition, those skilled in the art should understand that the above-mentioned computing device 1100 may also include only the devices necessary to implement the embodiment of the present application, and does not necessarily include Fig.11 All devices shown in .
[0198] The embodiment of the present application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device may be a server. In some embodiments, the computing device may also be a terminal device such as a desktop computer, a laptop computer, or a smart phone.
[0199] like Fig.12 As shown, the computing device cluster includes at least one computing device 1100. The memory 1120 in one or more computing devices 1100 in the computing device cluster may store the same instructions for executing the above method.
[0200] In some possible implementations, the memory 1120 in one or more computing devices 1100 in the computing device cluster may also store partial instructions for executing the above method. In other words, the combination of one or more computing devices 1100 may jointly execute the instructions of the above method.
[0201] It should be noted that the memory 1120 in different computing devices 1100 in the computing device cluster may store different instructions, which are respectively used to execute part of the functions of the above-mentioned apparatus. That is, the instructions stored in the memory 1120 in different computing devices 1100 may implement the functions of one or more modules in the above-mentioned apparatus.
[0202] In some possible implementations, one or more computing devices in the computing device cluster may be connected via a network, which may be a wide area network or a local area network. Fig.13 A possible implementation is shown. Fig.13 As shown, two computing devices 1100A and 1100B are connected via a network. Specifically, they are connected to the network via a communication interface in each computing device.
[0203] It should be understood that Fig.13The functions of the computing device 1100A shown in FIG. 1100A may also be completed by multiple computing devices 1100. Similarly, the functions of the computing device 1100B may also be completed by multiple computing devices 1100.
[0204] In this embodiment, a computer program product including instructions is also provided, and the computer program product may be software or a program product including instructions that can be run on a computing device or stored in any available medium. When the computer program product is run on a computing device, the computing device is caused to execute the method provided above, or the computing device is caused to implement the function of the apparatus provided above.
[0205] In this embodiment, a computer program product including instructions is also provided, and the computer program product may be software or a program product including instructions that can be run on a computing device cluster or stored in any available medium. When the computer program product is run by a computing device cluster, the computing device cluster executes the method provided above, or the computing device cluster implements the function of the apparatus provided above.
[0206] In this embodiment, a computer-readable storage medium is also provided, and the computer-readable storage medium can be any available medium that can be stored by a computing device or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a digital video disc (DVD)), or a semiconductor medium (e.g., a solid-state hard disk), etc. The computer-readable storage medium includes instructions, and when the instructions in the computer-readable storage medium are executed on a computing device, the computing device executes the method provided above.
[0207] In this embodiment, a computer-readable storage medium is also provided, and the computer-readable storage medium can be any available medium that can be stored by a computing device or a data storage device such as a data center that includes one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state hard disk), etc. The computer-readable storage medium includes instructions, and when the instructions in the computer-readable storage medium are executed by a computing device cluster, the computing device cluster executes the method provided above.
[0208] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0209] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0210] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0211] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0212] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0213] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application can be essentially or partly embodied in the form of a software product that contributes to the prior art. The computer software product is stored in a storage medium and includes several instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the methods described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.
[0214] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.
Claims
1. A data storage method, characterized in that: The method is applied to a cloud management platform, the cloud management platform is used to manage the infrastructure for providing cloud services, the infrastructure includes a storage device cluster, the storage device cluster includes a plurality of distributed storage devices, the method includes: Receive first request information from a tenant, where the first request information is used to obtain a first file; Determine, according to the first request information, a first data block set where the first file is located, the first data block set including one or more files, the files included in the first data block set have the same attributes, and the first data block set is stored in one of the multiple distributed storage devices; Determine, according to the first data block set, a first storage device where the first data block set is located; The first file is read from the first storage device.
2. The method according to claim 1, characterized in that The method further comprises: receiving second request information of the tenant, where the second request information is used to obtain multiple files, and the multiple files have the same attributes; Determine, according to the second request information, a second data block set where the plurality of files are located; Determine, according to the second data block set, a second storage device where the second data block set is located; The plurality of files are read from the second storage device.
3. The method according to claim 1 or 2, characterized in that: The attributes of the file include at least one of the following: identification information of the storage bucket to which the file belongs, the directory where the file is located, the storage time of the file, the storage type of the file, the size of the file, and the name of the file. The storage type of the file is used to indicate the access frequency of the file.
4. The method according to any one of claims 1 to 3, characterized in that The method further comprises: receiving configuration information of the tenant, the configuration information comprising attributes of each file in at least one file; Determine N data block sets according to the configuration information and the at least one file, each data block set in the N data block sets includes one or more files in the at least one file, the files included in each data block set have the same attributes, the N data block sets include the first data block set, and N is a positive integer greater than or equal to 1; The N data block sets are stored in N storage devices in the at least one distributed storage device respectively.
5. The method according to claim 4, characterized in that The determining, according to the configuration information and the at least one file, N data block sets comprises: Determine at least one file set according to the attribute of each file in the at least one file, each file set including all files with the same attribute in the at least one file; According to the at least one file set, the N data block sets are determined, each data block set includes one or more files in a file set in the at least one file set, and the size of each data block set is less than or equal to a first preset threshold.
6. The method according to claim 4 or 5, characterized in that: The method further comprises: Determine M check data block sets according to the N data block sets, where the M check data block sets are used to perform recovery when one or more data block sets in the N data block sets fail, where M is a positive integer greater than or equal to 1; The M check data block sets are stored in M storage devices in the at least one distributed storage device, where the M storage devices and the N storage devices are different storage devices.
7. The method according to claim 6, characterized in that Each data block set includes P data blocks, each check data block set includes P check data blocks, and determining M check data block sets according to the N data block sets includes: According to the p-th data block of each data block set in the N data block sets, determine the p-th check data block of each check data block set in the M check data block sets, the size of the p-th data block and / or the p-th check data block is less than or equal to a second preset threshold, p=1,...,P, P is a positive integer greater than or equal to 1.
8. The method according to claim 7, characterized in that The storing the N data block sets respectively in N storage devices in the at least one distributed storage device includes: storing the p-th data block of each data block set in the N data block sets in the N storage devices respectively; The storing the M check data block sets in M storage devices in the at least one distributed storage device includes: The p-th check data block of each check data block set in the M check data block sets is stored in the M storage devices respectively.
9. The method according to claim 7 or 8, characterized in that: The P data blocks of a data block set are stored continuously in a storage device, and the P check data blocks of a check data block set are stored continuously in a storage device.
10. The method according to any one of claims 4 to 9, characterized in that The N data block sets have the same attributes, the attributes of each data block set are determined according to the attributes of the files included in each data block set, and the N storage devices are a group of storage devices.
11. The method according to any one of claims 4 to 10, characterized in that After determining N data block sets according to the configuration information and the at least one file, the method further includes: A first mapping relationship is generated, where the first mapping relationship is used to indicate identification information of a data block set where each file is located.
12. The method according to any one of claims 4 to 11, characterized in that After storing the N data block sets in N storage devices in the at least one distributed storage device respectively, the method further includes: A second mapping relationship is generated, where the second mapping relationship is used to indicate identification information of a storage device where each data block set is located.
13. A data storage device, characterized in that: The device is applied to a cloud management platform, the cloud management platform is used to manage the infrastructure for providing cloud services, the infrastructure includes a storage device cluster, the storage device cluster includes a plurality of distributed storage devices, and the device includes: A receiving module, configured to receive first request information from a tenant, where the first request information is used to obtain a first file; a processing module, configured to determine, according to the first request information, a first data block set where the first file is located, wherein the first data block set includes one or more files, the files included in the first data block set have the same attributes, and the first data block set is stored in one of the multiple distributed storage devices; The processing module is further used to determine the first storage device where the first data block set is located according to the first data block set; The processing module is further configured to read the first file from the first storage device.
14. The device according to claim 13, characterized in that The receiving module is further used to receive second request information of the tenant, where the second request information is used to obtain multiple files, and the multiple files have the same attributes; The processing module is further used to determine the second data block set where the multiple files are located according to the second request information; The processing module is further used to determine the second storage device where the second data block set is located according to the second data block set; The processing module is further configured to read the multiple files from the second storage device.
15. The device according to claim 13 or 14, characterized in that The attributes of the file include at least one of the following: identification information of the storage bucket to which the file belongs, the directory where the file is located, the storage time of the file, the storage type of the file, the size of the file, and the name of the file. The storage type of the file is used to indicate the access frequency of the file.
16. The device according to any one of claims 13 to 15, characterized in that The receiving module is further used to receive configuration information of the tenant, where the configuration information includes attributes of each file in at least one file; The processing module is further used to determine N data block sets according to the configuration information and the at least one file, each data block set in the N data block sets includes one or more files in the at least one file, the attributes of the files included in each data block set are the same, the N data block sets include the first data block set, and N is a positive integer greater than or equal to 1; The processing module is further used to store the N data block sets in N storage devices in the at least one distributed storage device respectively.
17. The device according to claim 16, characterized in that The processing module is specifically used for: Determine at least one file set according to the attribute of each file in the at least one file, each file set including all files with the same attribute in the at least one file; According to the at least one file set, the N data block sets are determined, each data block set includes one or more files in a file set in the at least one file set, and the size of each data block set is less than or equal to a first preset threshold.
18. The device according to claim 16 or 17, characterized in that The processing module is further used for: Determine M check data block sets according to the N data block sets, where the M check data block sets are used to perform recovery when one or more data block sets in the N data block sets fail, where M is a positive integer greater than or equal to 1; The M check data block sets are stored in M storage devices in the at least one distributed storage device, where the M storage devices and the N storage devices are different storage devices.
19. The device according to claim 18, characterized in that Each data block set includes P data blocks, each check data block set includes P check data blocks, and the processing module is specifically used to: According to the p-th data block of each data block set in the N data block sets, determine the p-th check data block of each check data block set in the M check data block sets, the size of the p-th data block and / or the p-th check data block is less than or equal to a second preset threshold, p=1,...,P, P is a positive integer greater than or equal to 1.
20. The device according to claim 19, characterized in that The processing module is specifically used for: storing the p-th data block of each data block set in the N data block sets in the N storage devices respectively; The p-th check data block of each check data block set in the M check data block sets is stored in the M storage devices respectively.
21. The device according to claim 19 or 20, characterized in that The P data blocks of a data block set are stored continuously in one storage device, and the P check data blocks of a check data block set are stored continuously in one storage device.
22. The device according to any one of claims 16 to 21, characterized in that The N data block sets have the same attributes, the attributes of each data block set are determined according to the attributes of the files included in each data block set, and the N storage devices are a group of storage devices.
23. The device according to any one of claims 16 to 22, characterized in that After determining N data block sets according to the configuration information and the at least one file, the processing module is further used to generate a first mapping relationship, where the first mapping relationship is used to indicate identification information of the data block set where each file is located.
24. The device according to any one of claims 16 to 23, characterized in that After storing the N data block sets in N storage devices in the at least one distributed storage device respectively, the processing module is further used to generate a second mapping relationship, where the second mapping relationship is used to indicate identification information of the storage device where each data block set is located.
25. A computing device cluster, characterized in that: comprising at least one computing device, each computing device comprising a processor and a memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method according to any one of claims 1 to 12.
26. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device cluster, the computing device cluster is caused to perform the method according to any one of claims 1 to 12.
27. A computer-readable storage medium, characterized in that: The method comprises computer program instructions, and when the computer program instructions are executed by a computing device cluster, the computing device cluster performs the method according to any one of claims 1 to 12.
Citation Information
Cited By
Data storage method and related device
EP4715558A1
Data storage method and related device
WO2025001246A1