Method, apparatus and computer program product for hierarchical storage of files

By comprehensively considering the IO mode, file size and storage cost of the target file in file hierarchical storage technology, and optimizing the storage hierarchy selection, the problems of unreasonable resource utilization, high cost and limited performance improvement in the existing technology are solved, and more efficient storage resource utilization and performance improvement are achieved.

CN119690936APending Publication Date: 2025-03-25DELL PROD LP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311246206.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-09-25
Publication Date
2025-03-25

AI Technical Summary

Technical Problem

When determining the storage level, existing file hierarchical storage technology fails to fully consider the IO mode and storage cost of the file, resulting in the inability to reasonably utilize resources, high costs and limited performance improvement.

Method used

When determining the storage hierarchy of the target file, obtain its IO mode and file size, and calculate the IO mode performance score and storage cost scores at different storage hierarchies, comprehensively considering access frequency, IO mode and storage cost, and optimizing the file hierarchy strategy.

Benefits of technology

By optimizing file hierarchy strategies, we can make full use of the lower-priced storage hierarchy, save the cost of the storage system, and reduce response time, improving the performance and user experience of the storage system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119690936A_ABST
    Figure CN119690936A_ABST
Patent Text Reader

Abstract

The embodiment of the invention relates to a method and equipment for file hierarchical storage and a computer program product. The method comprises the following steps: determining an input / output (IO) mode, a file size and a file access frequency of a target file; the method also includes determining a plurality of IO mode performance of the IO mode over a plurality of tiers of the storage system. The method further includes determining, based on the file size of the target file, a plurality of storage costs when the target file is stored at the plurality of tiers of the storage system. In addition, the method also includes determining a target hierarchy at which the target file is stored based on the plurality of IO mode performance, the plurality of storage costs, the file size, and the file access frequency. In this way, the storage hierarchy with the low price can be fully utilized, the cost of the storage system is saved, the response time can be shortened, and the performance of the storage system is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of data storage, and more particularly, to a method, device, and computer program product for hierarchical file storage. Background Art

[0002] File tiered storage is a data management method that aims to efficiently manage and store large amounts of data and store them in different storage tiers based on the access frequency and importance of the data to achieve cost-effectiveness and performance optimization. These storage tiers usually include a high-performance tier, a medium-performance tier, and a low-performance tier. Storage devices in the high-performance tier have the fastest file access speed and are the most expensive. Storage devices in the medium-performance tier are less expensive and have larger capacities, but file access speeds are slower than those in the high-performance tier. Storage devices in the low-performance tier are the cheapest, but at the same time, file access speeds are the slowest.

[0003] The key advantage of file tiered storage is that it allows enterprises to find a balance between performance and cost to meet the needs of storing different data. By storing files in tiers, enterprises can reduce storage costs while still being able to quickly access the most commonly used data. The migration and management of data is usually performed automatically by storage management software to ensure that data is located at the appropriate tier. This approach helps optimize the use of storage resources, improve performance, and ensure the availability of critical data. Summary of the invention

[0004] The embodiments of the present disclosure propose a method, device and computer program product for file tiered storage. In the scheme provided by the embodiments of the present disclosure, when determining the storage tier of a target file, in addition to obtaining the access frequency of the target file, the input and output (IO) mode of the target file and the file size of the target file can also be obtained. Then, the scheme can determine multiple IO mode performance scores of the IO mode on different storage tiers for the IO mode of the target file. In addition, the scheme can also determine multiple storage costs corresponding to the target file when it is stored in different storage tiers based on the file size of the target file. After determining multiple IO mode performance scores and multiple storage cost scores corresponding to multiple storage tiers, it can be determined based on the multiple IO mode performance scores, the multiple storage costs, and the file size and access frequency of the target file which storage tier is most suitable for the target file to be stored. In this way, when determining the storage tier for the target file, not only the access frequency of the target file is based on the target file, but also the IO mode of the target file and its storage cost are taken into account, so that the file tiering strategy can be optimized, so that the storage tier with a lower price can be fully utilized to save the cost of the storage system. In addition, files that are more suitable for storage in the high-performance tier can be migrated to a higher storage tier, thereby reducing response time and improving storage system performance.

[0005] In a first aspect of the present disclosure, a method for hierarchical file storage is provided. The method includes determining an input / output IO mode, a file size, and a file access frequency of a target file. The method also includes determining multiple IO mode performances of the IO mode at multiple levels of a storage system. The method also includes determining multiple storage costs when the target file is stored at multiple levels of a storage system based on the file size of the target file. In addition, the method also includes determining a target level at which the target file is stored based on multiple IO mode performances, multiple storage costs, file size, and file access frequency.

[0006] In a second aspect of the present disclosure, an electronic device is provided. The electronic device includes one or more processors; and a memory coupled to the at least one processor and having instructions stored thereon, which, when executed by the at least one processor, causes the electronic device to perform an action, the action including determining an input / output IO mode, a file size, and a file access frequency of a target file. The action also includes determining multiple IO mode performances of the IO mode at multiple levels of a storage system. The action also includes determining multiple storage costs when the target file is stored at multiple levels of a storage system based on the file size of the target file. In addition, the action also includes determining the target level at which the target file is stored based on multiple IO mode performances, multiple storage costs, file sizes, and file access frequencies.

[0007] In a third aspect of the present disclosure, a computer-readable storage medium is provided, on which a computer program is stored, and when the program is executed by a processor, a method for hierarchical file storage is implemented. The method includes determining the input and output IO mode, file size and file access frequency of a target file. The method also includes determining multiple IO mode performances of the IO mode at multiple levels of a storage system. The method also includes determining multiple storage costs when the target file is stored at multiple levels of a storage system based on the file size of the target file. In addition, the method also includes determining the target level at which the target file is stored based on multiple IO mode performances, multiple storage costs, file size and file access frequency.

[0008] It should be understood that the contents described in the summary of the invention are not intended to limit the key or important features of the embodiments of the present disclosure, nor are they intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] The above and other features, advantages and aspects of the embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. In the accompanying drawings, the same or similar reference numerals represent the same or similar elements, wherein:

[0010] Figure 1 A schematic diagram illustrating an example environment in which various embodiments of the present disclosure may be implemented;

[0011] Figure 2 A flowchart of a method for hierarchical file storage according to some embodiments of the present disclosure is shown;

[0012] Figure 3 A schematic diagram showing examples of IO mode performance scores of different IO modes on different types of storage devices according to some embodiments of the present disclosure;

[0013] Figure 4 A flowchart illustrating an example process for determining a target level for a target file according to some embodiments of the present disclosure;

[0014] FIG. 5A to FIG. 5D A schematic diagram showing an example process of determining the normalized bandwidth, normalized IOPS, normalized response time, and IO pattern performance differences of the IO pattern of a target file at various levels according to some embodiments of the present disclosure;

[0015] Figure 6 A schematic diagram showing an example process of determining storage cost differences when a target file is stored at various levels according to some embodiments of the present disclosure;

[0016] Figure 7A schematic diagram showing an example process of determining a comprehensive score of a target file according to some embodiments of the present disclosure;

[0017] Figure 8 A schematic diagram showing an example process of determining a target level for storing a target file based on a comprehensive score of the target file according to some embodiments of the present disclosure; and

[0018] Fig. 9 A block diagram of a device in which various embodiments of the present disclosure may be implemented is shown. DETAILED DESCRIPTION

[0019] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as being limited to the embodiments described herein, which are instead provided for a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are only for exemplary purposes and are not intended to limit the scope of protection of the present disclosure.

[0020] In the description of the embodiments of the present disclosure, the term "including" and similar terms should be understood as open inclusion, that is, "including but not limited to". The term "based on" should be understood as "based at least in part on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The terms "first", "second", etc. may refer to different or the same objects. Other explicit and implicit definitions may also be included below.

[0021] File tiered storage can move files between different storage tiers of a storage system according to specific rules. In some traditional solutions, the file tiering strategy can select a suitable storage tier for the target file based on the access frequency of the target file. For example, if the access frequency of the target file is high, the file tiering strategy can move the file to a storage tier with higher performance, such as a tier with a solid-state drive (SSD) drive. If the access frequency of the target file is low, the file tiering strategy can move the file to a storage tier with lower performance, such as a storage tier with a serial attached small computer system interface (SAS) drive or a near-line SAS (NL-SAS) drive, which can save costs and improve the use efficiency of storage devices.

[0022] However, storage workloads from client applications accessing files usually have specific IO patterns, and different IO patterns have different performance on different storage tiers. For some IO patterns, the performance difference between the high-performance storage tier and the low-performance storage tier is small. If files with these IO patterns are stored on the high-performance storage tier due to the high access frequency, it will not bring obvious performance improvement, and expensive high-performance storage resources will be occupied. On the contrary, for other IO patterns, the performance difference between the high-performance storage tier and the low-performance storage tier is large. If files with these IO patterns are stored on the low-performance storage tier because the access frequency is not very high, the potential performance gain and the opportunity to improve user experience are missed.

[0023] In addition, the traditional solution does not consider the impact of the cost difference between storage tiers on file tiered storage. For example, if the cost difference between multiple storage tiers is large, if two files have the same access frequency, moving the larger file to the high-performance storage tier will occupy more expensive high-performance storage resources, thereby consuming higher storage costs, which will prevent the storage system resources from being used reasonably.

[0024] To this end, an embodiment of the present disclosure proposes a solution for file tiered storage, which, when determining the storage tier of a target file, can obtain not only the access frequency of the target file, but also the IO mode of the target file and the file size of the target file. Then, the solution can determine multiple IO mode performance scores of the IO mode on different storage tiers for the IO mode of the target file. In addition, the solution can also determine multiple storage costs corresponding to the target file when it is stored in different storage tiers based on the file size of the target file. After determining multiple IO mode performance scores and multiple storage cost scores corresponding to multiple storage tiers, it can be determined based on the multiple IO mode performance scores, the multiple storage costs, and the file size and access frequency of the target file which storage tier is most suitable for the target file to be stored. In this way, when determining the storage tier for the target file, not only the access frequency of the target file is taken into account, but also the IO mode of the target file and its storage cost are taken into account, so that the file tiering strategy can be optimized, so that the storage tier with a lower price can be fully utilized, saving the cost of the storage system. In addition, files that are more suitable for storage in a high-performance tier can be migrated to a higher storage tier, so that the response time can be reduced, and the performance and user experience of the storage system can be improved.

[0025] Figure 1 1 is a schematic diagram of an example environment 100 in which various embodiments of the present disclosure may be implemented. Figure 1As shown, the environment 100 includes a target file 102 for which a storage tier is to be determined, a storage system 103, and a management application 110, and the storage system 103 includes a high-performance tier 104, a medium-performance tier 106, and a low-performance tier 108. The high-performance tier 104 can be, for example, a storage tier with an SSD drive, which is characterized by the fastest file access speed, but the price of the storage device contained therein is also the most expensive. The medium-performance tier 106 can be, for example, a storage tier with a SAS drive, which is characterized by a slow file access speed, and the price of the storage device contained therein is also low. The low-performance tier 108 can be, for example, a storage tier with an NL-SAS drive, which is characterized by the slowest file access speed, but the price of the storage device contained therein is also the lowest. It should be understood that although the storage systems in the embodiments of the present disclosure all include three storage tiers, it is not intended to limit the number of storage tiers in the storage system. The solution provided by the embodiments of the present disclosure can be applied to storage systems having other numbers of storage tiers, such as a storage system having two storage tiers (e.g., a high-performance tier and a low-performance tier), a storage system having four storage tiers (e.g., a highest performance tier, a higher performance tier, a lower performance tier, and a lowest performance tier), and so on.

[0026] The target file 102 may be a file that has been stored in any storage tier in the storage system 103, and the management application 110 may determine whether to migrate it to another storage tier and to which storage tier as needed. Figure 1 As shown, the target file 102 has multiple attributes, including an IO mode 112, an access frequency 114, and a file size 116. The IO mode 112 may be related to the data size of an IO operation (e.g., 4KB or 8KB, etc.), the ratio of read operations to write operations (e.g., 100% read operations, 100% write operations, or 70% read operations and 30% write operations, etc.), and the access mode (e.g., sequential access or random access). In the environment 100, different storage tiers in the storage system 103 contain different types of storage devices, so the unit costs (i.e., price per GB) of different storage tiers are also different, such as Figure 1 As shown, the high performance tier 104 has a unit cost 124 , the medium performance tier 106 has a unit cost 126 , and the low performance tier 108 has a unit cost 128 .

[0027] like Figure 1As shown, the management application 110 can determine the IO pattern performance and storage cost corresponding to the target file 102 when it is stored in each storage tier of the storage system 103. For example, the management application 110 can determine the IO pattern performance 134 of the IO pattern 112 on the high-performance tier 104 and the storage cost 144 consumed by storing the target file 102 on the high-performance tier 104, the IO pattern performance 136 of the IO pattern 112 on the medium-performance tier 106 and the storage cost 146 consumed by storing the target file 102 on the medium-performance tier 106, and the IO pattern performance 138 of the IO pattern 112 on the low-performance tier 108 and the storage cost 148 consumed by storing the target file 102 on the low-performance tier 108. In some embodiments, the IO pattern performance of the IO pattern on a specific storage tier can be determined based on bandwidth, IO operations per second (IOPS), and response time (for example, the IO pattern performance can be expressed in the form of a score). In some embodiments, the storage cost of storing the target file 102 on a storage tier may be determined based on the file size 116 of the target file 102 and the unit cost of the storage tier.

[0028] like Figure 1 As shown, after determining the IO mode performance 134, 136 and 138 and the storage cost 144, 146 and 148, the management application 110 can determine the IO mode performance difference of the IO mode 112 on different storage tiers, and a larger IO mode performance difference can indicate that migrating the target file 102 to a storage tier with higher performance can bring a larger IO mode performance benefit, and a smaller IO mode performance difference can indicate that migrating the target file 102 to a storage tier with lower performance can bring a smaller IO mode performance loss. In addition, the management application 110 can also determine the storage cost difference of storing the target file 102 on different storage tiers, and a larger storage cost difference can indicate that it will cost more to migrate the target file 102 to a storage tier with higher performance, and a smaller storage cost difference can indicate that the storage cost change is smaller when migrating the target file 102 to other storage tiers. Then, the management application 110 may determine a target tier 150 based on the IO pattern performance difference, the storage cost difference, the access frequency 114 and the file size 116 of the target file 102 , and migrate the target file 102 from the storage tier to the target tier 150 .

[0029] In this way, when the IO mode performance difference of the IO mode 112 on each storage layer is small and the storage cost difference of storing the target file 102 on each storage layer is large, although the access frequency 114 of the target file 102 may be high, it is still possible to choose to store the target file 102 on the storage layer with lower storage cost, thereby being able to significantly save storage cost while hardly affecting the file access speed. At the same time, files with large IO mode performance differences but whose access frequency is not enough to reach a higher threshold in the previous tiering strategy can be migrated to a storage layer with higher performance, thereby being able to improve the performance of the entire storage system and improve user experience.

[0030] Figure 2 FIG. 2 is a flowchart of a method 200 for hierarchical file storage according to some embodiments of the present disclosure. Figure 2 As shown, at block 202, method 200 may determine the IO mode, file size, and file access frequency of the target file. Figure 1 In the illustrated environment 100, the management application 110 may determine an IO pattern 112, an access frequency 114, and a file size 116 of the target file 102. The IO pattern 112 may include, for example, a data size of an IO operation, a ratio of read operations to write operations, and an access mode. An example of the IO pattern 112 may be a data size of 4 KB, 100% read operations, and a sequential access mode for an IO operation.

[0031] At block 204, method 200 may determine multiple IO mode performances of the IO mode at multiple levels of the storage system. Figure 1 In the environment 100 shown, the management application 100 can determine the IO mode performance 134 of the IO mode 112 of the target file 102 on the high-performance tier 104 of the storage system 103, the IO mode performance 136 on the medium-performance tier 106, and the IO mode performance 138 on the low-performance tier 108. For example, the IO mode performances 134, 136, and 138 can be represented in the form of scores. In some embodiments, multiple IO mode performances of various IO modes on various storage tiers can be predetermined, and these predetermined IO mode performances can be stored in appropriate locations. When the management application 110 needs to determine the target tier 150 of the target file 102, multiple IO mode performances corresponding to the IO mode 112 of the target file 102 can be read from the appropriate location. In this way, the time used to determine multiple IO mode performances can be saved and the response speed can be improved.

[0032] At block 206, method 200 may determine multiple storage costs when the target file is stored in multiple tiers based on the file size of the target file. Figure 1In the illustrated environment 100, the management application 100 may determine the storage cost 144 when the target file 102 is stored in the high-performance tier 104 of the storage system 103, the storage cost 146 when the target file 102 is stored in the medium-performance tier 106, and the storage cost 148 when the target file 102 is stored in the low-performance tier 108 based on the file size 116 of the target file 102. Generally, the storage cost 144 when the target file 102 is stored in the high-performance tier 104 is the largest, and the storage cost when the target file 102 is stored in the low-performance tier 108 is the smallest, which depends on the unit cost 124 of the storage device on the high-performance tier 104, the unit cost 126 of the storage device on the medium-performance tier 106, and the unit cost 128 of the storage device on the low-performance tier 108. However, the embodiments of the present disclosure are not limited to the order of the unit costs of the various storage tiers.

[0033] At block 208, method 200 determines a target tier at which the target file is to be stored based on a plurality of IO mode performances, a plurality of storage costs, a file size, and a file access frequency. Figure 1 In the illustrated environment 100, the management application 110 may determine a target tier 150 based on the IO pattern performance 134, 136, and 138 of the target file 102 on the high-performance tier 104, the medium-performance tier 106, and the low-performance tier 108, respectively, the storage costs 144, 146, and 148 of the target file 102 being stored on the high-performance tier 104, the medium-performance tier 106, and the low-performance tier 108, respectively, the access frequency 114 of the target file 102, and the file size 116 of the target file 102. The management application 110 may then migrate the target file 102 to the target tier 150.

[0034] In this way, when determining the target tier 150 where the target file 102 is to be stored, not only the access frequency 114 of the target file 102 is considered, but also the IO mode 112 of the target file 102 and the storage cost of the target file 102 are considered, so that the file tiering strategy can be optimized, so that the storage tiers with lower prices can be fully utilized, saving the cost of the storage system 103. In addition, files that are more suitable for storage in a high-performance storage tier can be migrated to a higher storage tier, so that the response time can be reduced and the performance of the storage system 103 can be improved.

[0035] Figure 3 FIG. 3 is a schematic diagram showing an example 300 of IO mode performance scores of different IO modes on different types of storage devices according to some embodiments of the present disclosure. Figure 3As shown, example 300 includes four IO modes, and the characteristics of the IO mode are embodied in the name of the IO mode, for example, 4K_0R_100S, 4K_0R_0S, 8K_70R_0S, and 64K_90R_100S. 4K, 8K, and 64K in the IO mode name indicate the data size for an IO operation. It should be understood that, although only 4K, 8K, and 64K are shown in example 300, the data size of an IO operation can also be other values. The R in the IO mode name represents the proportion of read operations in all IO operations (and implicitly represents the proportion of write operations in all IO operations). For example, 0R represents that the proportion of read operations in all IO operations is zero (the proportion of corresponding write operations is 100%), 70R represents that the proportion of read operations in all IO operations is 70% (the proportion of corresponding write operations is 30%), and 90R represents that the proportion of read operations in all IO operations is 90% (the proportion of corresponding write operations is 10%). It should be understood that, although only 0R, 70R and 90R are shown in example 300, the ratio of read operations in IO operations can also be other values. In addition, the S in the IO mode name represents the ratio of sequential operations in all IO operations (and implicitly represents the ratio of random operations). For example, 0S represents that the ratio of sequential operations in all IO operations is zero (the corresponding ratio of random operations is 100%), and 100S represents that the ratio of sequential operations in all IO operations is 100% (the corresponding ratio of random operations is zero). It should be understood that, although only 0S and 100S are shown in example 300, the ratio of sequential operations in IO operations can also be other values.

[0036] like Figure 3 As shown, example 300 also includes three types of storage devices, namely, SSD, SAS and NL-SAS, wherein SSD has the highest performance and is the most expensive, SAS has lower performance than SSD but is also cheaper than SSD, and NL-SAS has the lowest performance and is also the cheapest. Figure 1 The high performance tier 104 in the illustrated environment 100 may include SSD drives, the medium performance tier 106 may include SAS drives, and the low performance tier 108 may include NL-SAS drives. It should be understood that the storage device types in the example 300 are only examples, and the storage device types may include other types depending on the number and configuration of storage tiers in the storage system.

[0037] like Figure 3As shown, example 300 can determine the IOPS (e.g., times per second), bandwidth (e.g., MB per second), and response time (e.g., seconds or milliseconds) of each IO mode on different types of storage devices (representing different storage tiers). In addition, in example 300, an IO mode performance score can also be determined based on IOPS, bandwidth, and response time, and a higher IO mode performance score indicates that a specific IO mode has a higher performance on a specific type of storage device. Figure 3 As shown in the figure, some IO modes do not get performance improvement after being promoted from SAS or NL-SAS to SSD. For example, the performance score of IO mode 4K_0R_100S on SAS is 0.9897, and the performance score on NL-SAS is 1.0345, but its performance score on SSD is only 0.9752, which is lower than the performance scores of SAS and NL-SAS. It can be seen that if a file with IO mode 4K_0R_100S is migrated from SAS or NL-SAS to SSD, the performance of the storage system will not be improved, and the file consumes expensive SSD resources, so it is not worth migrating these files to SSD.

[0038] like Figure 3 As shown, other IO modes can achieve significant performance improvements after being promoted from SAS or NL-SAS to SSD. For example, the performance score of IO mode 8K_70R_0S on SAS is 0.3475, the performance score on NL-SAS is 0.2520, and the performance score on SSD is as high as 2.4005. It can be seen that if files with IO mode 8K_70R_0S are migrated from SAS or NL-SAS to SSD, the performance of the storage system will be significantly improved, so it is worth migrating these files to SSD. In this way, files with IO modes with small performance differences on different storage tiers can be migrated to a storage tier with lower performance but cheaper, thereby saving costs while ensuring that performance is not significantly reduced.

[0039] Figure 4 FIG. 4 is a flow chart showing an example process 400 for determining a target level for a target file according to some embodiments of the present disclosure. Figure 4 As shown, at block 402, process 400 may collect various information related to the storage system, such as bandwidth, IOPS, and response time of various IO modes on different storage tiers, multiple unit costs corresponding to multiple storage tiers, and access frequency and file size of various files stored in the storage system. Figure 1In the environment 100 shown, the management application 110 may collect the bandwidth (e.g., MB per second), IOPS (e.g., times per second), and response time (e.g., seconds or milliseconds) of the IO pattern 112 (e.g., 8KB of data per operation, 70% read operations, and 100% random operations) of the target file 102 on the high-performance tier 104 (e.g., a storage tier with SSDs), the medium-performance tier 106 (e.g., a storage tier with SAS), and the low-performance tier 108 (e.g., a storage tier with NL-SAS) of the storage system 103, so as to determine the IO pattern performance 134, 136, and 138 in subsequent steps. The management application 110 may also collect the file size 116 (e.g., MB or GB) of the target file 102, the unit cost 124 (e.g., price per GB) of the high-performance tier 104, so as to determine the storage costs 144, 146, and 148. In addition, the management application 110 may also collect the access frequency 114 of the target file 102 for determining the target tier 150. In addition to the target file 102, the management application 110 may also collect information about other files for determining the target tier of the other files. Then, the process 400 proceeds to block 404.

[0040] At block 404, process 400 may determine whether it is currently necessary to re-determine the tier of the file. In some embodiments, the tier of the file may be re-determined periodically (e.g., every one hour, two hours, etc.). In some embodiments, the re-tiering of the file may be triggered according to a predetermined schedule. If it is not currently necessary to re-determine the tier of the file, process 400 returns to block 402 to continue collecting relevant information, otherwise process 400 proceeds to block 406.

[0041] At block 406, process 400 may determine the performance differences of the IO patterns of the target file at multiple levels. Figure 1In the environment 100 shown, the difference between IO mode performance 134, 136 and 138 can be determined by the management application 110. In some embodiments, multiple bandwidths, multiple IOPS and multiple response times corresponding to multiple tiers in the IO mode can be determined, and then multiple IO mode performances of the IO mode on multiple tiers of the storage system can be determined based on the multiple bandwidths, multiple IOPS and multiple response times. In some embodiments, multiple standardized bandwidths, multiple standardized IOPS and multiple standardized response times corresponding to the multiple tiers can be determined based on the multiple bandwidths, multiple IOPS and multiple response times corresponding to the multiple tiers, and then multiple IO mode performance scores corresponding to the multiple tiers can be determined based on the multiple standardized bandwidths, multiple standardized IOPS and multiple response times, and the IO mode performance scores indicate the IO mode performance of the corresponding tiers. In some embodiments, an average IO mode performance score for the multiple tiers can be determined based on the multiple IO mode performance scores, and then the discreteness of the multiple IO mode performance scores can be determined based on the multiple IO mode performance scores and the average IO mode performance score as the performance difference of the IO mode on the multiple tiers.

[0042] The following will combine FIG. 5A to FIG. 5D The process of determining the performance differences of the IO pattern of the target file at multiple levels is described in detail. The IO performance of the storage system can be determined by determining the bandwidth, IOPS, and response time. Since the units of bandwidth, IOPS, and response time are different, they need to be standardized to unify the units, and then the IO pattern performance score is determined based on the standardized bandwidth (also known as the bandwidth score), the standardized IOPS (also known as the IOPS score), and the standardized response time (also known as the response time score). FIG. 5A to FIG. 5C A schematic diagram illustrating an example process of determining normalized bandwidth, normalized IOPS, and normalized response time according to some embodiments of the present disclosure is shown.

[0043] Figure 5A FIG. 5 is a schematic diagram showing an example process 500 for determining the normalized bandwidth of the IO pattern of a target file at various levels according to some embodiments of the present disclosure. Figure 5A As shown, the process 500 can determine a bandwidth 504 of the IO pattern 112 of the target file 102 on the high-performance tier 104, a bandwidth 506 of the IO pattern 112 on the medium-performance tier 106, and a bandwidth 508 of the IO pattern 112 on the low-performance tier 108. Then, the process 500 can use the bandwidths 504, 506, and 508 to normalize each of them to obtain a normalized bandwidth 514 for the high-performance tier 104, a normalized bandwidth 516 for the medium-performance tier 106, and a normalized bandwidth 518 for the low-performance tier 108.

[0044] In this paper, I is used to represent the number of files on the storage system. For each file f i (1≤i≤I), use fs i Represents file f i In addition, J is used to represent the type of IO mode, p j Indicates the jth IO mode. There are K storage levels in the storage system, t k Indicates the kth storage level. k,j Indicates IO mode p j At the storage level k Since the larger the bandwidth of an IO pattern at the storage level, the higher the performance of the IO pattern, the standardized bandwidth NB can be calculated by the following equation (1): k,j :

[0045]

[0046] Figure 5B FIG. 5 is a schematic diagram showing an example process 520 of determining the standardized IOPS of the IO pattern of a target file at various levels according to some embodiments of the present disclosure. Figure 5B As shown, the process 520 can determine the IOPS 524 of the IO pattern 112 of the target file 102 on the high-performance tier 104, the IOPS 526 of the IO pattern 112 on the medium-performance tier 106, and the IOPS 528 of the IO pattern 112 on the low-performance tier 108. Then, the process 520 can use the IOPS 524, 526, and 528 to normalize each of them to obtain a normalized IOPS 534 for the high-performance tier 104, a normalized IOPS 536 for the medium-performance tier 106, and a normalized IOPS 538 for the low-performance tier 108.

[0047] In this article, IOPS is used k,j Indicates IO mode p j At the storage level k Since the larger the IOPS of an IO pattern at the storage level, the higher the performance of the IO pattern, the standardized IOPS can be calculated by the following equation (2), that is, NIOPS k,j :

[0048]

[0049] Figure 5C FIG. 5 is a schematic diagram showing an example process 540 for determining the standardized response time of the IO mode of a target file at various levels according to some embodiments of the present disclosure. Figure 5CAs shown, the process 540 can determine the response time 544 of the IO pattern 112 of the target file 102 on the high-performance tier 104, the response time 546 of the IO pattern 112 on the medium-performance tier 106, and the response time 548 of the IO pattern 112 on the low-performance tier 108. Then, the process 520 can use the response times 544, 546, and 548 to normalize each of them to obtain a normalized response time 534 for the high-performance tier 104, a normalized response time 536 for the medium-performance tier 106, and a normalized response time 538 for the low-performance tier 108.

[0050] In this paper, L k,j Indicates IO mode p j At the storage level k Since the smaller the response time of an IO pattern at the storage level, the higher the performance of the IO pattern, the standardized response time can be calculated by the following equation (3), that is, NL k,j :

[0051]

[0052] Figure 5D FIG. 5 is a schematic diagram showing an example process 560 for determining IO mode performance differences of target files at various levels according to some embodiments of the present disclosure. Figure 5D As shown, the process 560 may determine an IO pattern performance score 564 for the IO pattern 112 at the high performance tier 104 based on the normalized bandwidth 514, the normalized IOPS 534, and the normalized response time 554. The process 560 may also determine an IO pattern performance score 566 for the IO pattern 112 at the medium performance tier 106 based on the normalized bandwidth 516, the normalized IOPS 536, and the normalized response time 556. In addition, the process 560 may also determine an IO pattern performance score 568 for the IO pattern 112 at the low performance tier 108 based on the normalized bandwidth 518, the normalized IOPS 538, and the normalized response time 558. Then, the process 560 may calculate an average performance score 570 based on the IO pattern performance scores 564, 566, and 568, and calculate a performance score standard deviation 572 for the IO pattern performance scores 564, 566, and 568 based on the average performance score 570. The performance score standard deviation 572 may indicate the degree of dispersion of the IO pattern performance scores 564 , 566 , and 568 , and may indicate the performance differences of the IO pattern 112 of the target file 102 at the high performance tier 104 , the medium performance tier 106 , and the low performance tier 108 .

[0053] In this article, using Perf k,j Indicates IO mode pj At the storage level k As mentioned above, the IO mode performance score can be determined based on the bandwidth, IOPS and response time of the IO mode at the storage level, so the Perf can be calculated by the following equation (4): k,j :

[0054] Perf k,j =NIOPS k,j +NB k,j +NL k,j Equation (4)

[0055] Then, the IO mode p can be calculated by the following equation (5): j The standard deviation σ of the performance scores on K storage tiers j :

[0056]

[0057] Among them, NPerf average Is the IO mode p j The average of the performance scores across K storage tiers.

[0058] In this way, the IO mode performance at each storage level can be quantitatively determined based on the bandwidth, IOPS and response time of the IO mode at each storage level, so that the performance dispersion of the IO mode at each storage level can be further quantitatively determined, providing a basis for decision-making on whether it is worth migrating the target file to a higher-performance storage level.

[0059] In some embodiments, the performance differences of various IO modes at multiple levels of the storage system can be predetermined, and the predetermined performance differences can be stored in appropriate locations. When the target level of the target file is re-determined, the IO mode performance differences of the predetermined target file's IO mode at different storage levels can be directly read and found for subsequent operations. In this way, the time consumed in determining the performance differences of the target file's IO mode at different storage levels can be saved, and computing resources can be saved, thereby improving the performance of management applications.

[0060] Return to reference Figure 4 At block 408, process 400 may calculate the storage cost differences of the target file at multiple levels. Figure 1In the environment 100 shown, the management application 110 can determine the storage cost 144 of the target file 102 being stored on the high-performance tier 104, the storage cost 146 of the target file 102 being stored on the medium-performance tier 106, and the storage cost 148 of the target file 102 being stored on the low-performance tier 108, as well as the difference between the storage costs 144, 146 and 148. In some embodiments, multiple storage costs when the target file is stored in multiple tiers can be determined based on the file size of the target file and multiple unit storage space costs corresponding to multiple tiers of the storage system. In some embodiments, an average storage cost for multiple tiers can be determined based on the multiple storage costs, and then the discreteness of the multiple storage costs is determined as the storage cost difference based on the multiple storage costs and the average storage cost.

[0061] The following will combine Figure 6 The following describes in detail the process of determining the storage cost differences when a target file is stored on multiple tiers. Figure 6 FIG. 6 is a schematic diagram showing an example process 600 for determining storage cost differences when a target file is stored at various levels according to some embodiments of the present disclosure. Figure 6 As shown, the process 600 may determine a storage cost 604 for storing the target file 102 on the high-performance tier 104 based on the file size 112 of the target file 102 and the unit cost 124 of the high-performance tier 104. The process 600 may also determine a storage cost 606 for storing the target file 102 on the medium-performance tier 106 based on the file size of the target file 102 and the unit cost 126 of the medium-performance tier 106. In addition, the process 600 may also determine a storage cost 608 for storing the target file 102 on the low-performance tier 108 based on the file size of the target file 102 and the unit cost 128 of the low-performance tier 108. Then, the process 600 may calculate an average storage cost 610 of the storage costs 604, 606, and 608, and calculate a storage cost standard deviation 612 for the storage costs 604, 606, and 608 using the average storage cost 610. The storage cost standard deviation 612 may indicate the degree of dispersion of the storage costs 604 , 606 , and 608 , and may indicate the difference in storage costs when the target file 102 is stored on the high performance tier 104 , the medium performance tier 106 , and the low performance tier 108 .

[0062] In this paper, c k denote the unit cost of storage tier k (e.g., price per GB), and c i,k represents the file f stored on storage level k i The storage cost of c can be calculated by the following equation (6): i,k :

[0063] ci,k =c k *fs i Equation (6)

[0064] Since the storage cost is as small as possible, the file f can be calculated by the following equation (7): i The average storage cost c stored on each storage tier i,avg :

[0065]

[0066] Then, the file f can be calculated by the following equation (8): i The standard deviation of the storage cost stored on each storage tier, σc j :

[0067]

[0068] When the storage cost standard deviation σc j When it is large, it means that the storage costs of different storage tiers are quite different, so the file f i Migrating from a lower performance storage tier to a higher performance storage tier incurs more storage cost. j When it is small, it means that there is no significant difference in storage costs between different storage tiers, so the file f i Migrating from a lower-performance storage tier to a higher-performance storage tier incurs less storage costs.

[0069] In this way, when determining the storage level of the target file, the change in storage cost caused by the migration can be quantified, thereby providing a cost decision-making basis when determining the level of the target file.

[0070] Return to reference Figure 4 In box 410, a comprehensive score for the target file can be calculated based on the performance difference of the IO mode of the target file at multiple levels and the storage cost difference of the target file at multiple levels, and the comprehensive score indicates the benefits associated with performance and cost brought by migrating the target file from the low-performance level of the storage system to the high-performance level. In some embodiments, the file access density of the target file can be determined based on the file size and file access frequency of the target file, and the file access density indicates the average access frequency per unit file size. In some embodiments, the comprehensive score for the target file can be calculated based on the IO mode performance difference, the storage cost difference and the file access density. In some embodiments, a first weight for the IO mode performance difference and a second weight for the storage cost difference can be determined, and the comprehensive score for the target file can be determined based on the IO mode performance difference, the first weight, the storage cost difference, the second weight and the access density.

[0071] The following will combine Figure 7 The detailed process of determining the comprehensive score for the target file is described in detail. Figure 7 FIG. 7 is a schematic diagram showing an example process 700 for determining a comprehensive score for a target file according to some embodiments of the present disclosure. Figure 7 As shown, the process 700 can determine the access density 706 based on the access frequency 114 and the file size 116 of the target file 102, and the access density 706 indicates the access frequency of the unit file size of the target file 102. In addition, the process 700 can also assign a weight 702 to the performance score standard deviation 572 of the IO mode of the target file, and assign a weight 704 to the storage cost standard deviation 612 of the target file. In some embodiments, the sum of the weight 702 and the weight 704 is one. When the administrator of the storage system attaches more importance to IO performance, the weight 702 can be increased, and the weight 704 is reduced accordingly; when the administrator attaches more importance to cost, the weight 704 can be increased, and the weight 702 is reduced accordingly. Then, the process 700 can calculate the comprehensive score 708 of the target file 102 based on the performance score standard deviation 573, the weight 702, the storage cost standard deviation 612, the weight 704, and the access density 706. The higher the comprehensive score 708, the more worthy the target file 102 is to be migrated to the high-performance storage tier.

[0072] In this article, fq i Indicates that in the last monitoring cycle, file f i The total access frequency of the file can be calculated by the following equation (9): i :

[0073]

[0074] Then, the density fr can be accessed according to the file i , IO mode performance standard deviation σ j , and the storage cost standard deviation σc j The comprehensive score cs of the target file is calculated by the following equation (10): i :

[0075] cs i =(w p ·(1+σ j )+w c ·(1-σc i ))·fr i Equation (10) where w p is the standard deviation of IO mode performance σ j The weight of w c is the standard deviation of storage cost σc jThe weight of w p +w c =1. According to equation (10), the greater the performance difference of the target file's IO mode on different storage tiers, the more worthy the target file is to be migrated to the high-performance storage tier. The greater the storage cost difference of the target file on each storage tier, the more expensive the storage device of the high-performance tier is. For cost considerations, the comprehensive score of the target file cs i The smaller.

[0076] In this way, a comprehensive score can be determined for the target file based on the performance differences of IO modes at various storage levels, the storage costs of the target files at various storage levels, and the access density of the target files, so that a more comprehensive consideration can be made when determining the target level of the target file, and thus the overall performance of the storage system can be improved and costs can be reduced.

[0077] Return to reference Figure 4 , in box 412, process 400 can determine the target level of the target file based on the comprehensive scores of the multiple files. In some embodiments, multiple comprehensive scores corresponding to the multiple files to be stored can be determined, wherein the multiple files include the target file. In some embodiments, the target level at which the target file is stored can be determined based on the multiple comprehensive scores. In some embodiments, the sorted multiple comprehensive scores can be determined by sorting the multiple comprehensive scores. In some embodiments, the level at which the multiple files are stored can be determined based on the sorted multiple comprehensive scores, wherein the files with higher rankings in the multiple files are stored in the level with higher performance, and the files with lower rankings in the multiple files are stored in the level with lower performance. In other embodiments, multiple thresholds corresponding to the various levels can be predetermined, and the target level of the target file can be determined based on the comprehensive scores of the target file and the multiple thresholds.

[0078] The following will combine Figure 8 This section describes in detail the process of determining the target tier for storing files. Figure 8 FIG. 8 is a schematic diagram showing an example process 800 for determining a target level for storing a target file based on a comprehensive score of the target file according to some embodiments of the present disclosure. Figure 8As shown, process 800 requires determining the hierarchy of files 802, 812, and 822. Process 802 can determine the IO pattern performance difference 804, storage cost difference 806, and access density 808 of the target file 802, and calculate a composite score 810 based on these indicators. Process 802 can also determine the IO pattern performance difference 814, storage cost difference 816, and access density 818 of the target file 812, and calculate a composite score 820 based on these indicators. In addition, process 802 can also determine the IO pattern performance difference 824, storage cost difference 826, and access density 828 of the target file 822, and calculate a composite score 830 based on these indicators. Figure 8 As shown, the access density 808 of file 802 is the highest. In the traditional solution, file 802 will be migrated to the high-performance tier. However, in process 800, since the IO mode performance difference 804 of file 802 is low and the storage cost 806 is high, it means that migrating file 802 to the high-performance tier will not bring significant IO performance improvement, but will significantly increase the storage cost, so the comprehensive score 810 of file 802 is not the highest score.

[0079] like Figure 8 As shown, file 812 has the lowest access density 818 and a high storage cost difference 816. Although its IO mode performance difference 814 is not low, its comprehensive score 820 is the lowest, indicating that file 812 has a low access frequency and the cost of storing it in a high-performance tier is high. Therefore, file 812 has the lowest comprehensive score 820. Figure 8 As shown, the IO mode performance difference 824 of file 822 is the highest, and the storage cost difference 826 and access density 828 are medium, indicating that migrating file 822 to the high-performance tier can improve performance more without paying a large storage cost, so the comprehensive score 830 of file 822 is the highest. Then, process 800 can sort files 802, 812, and 822 based on the comprehensive scores 810, 820, and 830, and then determine the target tier based on the sorting results. For example, in Figure 8 In the example shown, process 800 may migrate file 802 to the medium performance tier 106 , file 812 to the low performance tier 108 , and file 822 to the high performance tier 104 .

[0080] In some embodiments, multiple ratios corresponding to each level can be predetermined, and then the files can be layered based on the multiple ratios. For example, after sorting by comprehensive score, the top 20 percent of files can be migrated to the high-performance level 104, the files ranked between 20 percent and 40 percent can be migrated to the medium-performance level 106, and the other files can be migrated to the low-performance level 108. In some embodiments, multiple comprehensive score thresholds corresponding to each level can be predetermined, and then the files can be layered based on the multiple comprehensive score thresholds. For example, files with a comprehensive score greater than a first threshold are migrated to the high-performance level 104, files with a comprehensive score between the first threshold and the second threshold are migrated to the medium-performance level 106, and files with a comprehensive score less than the second threshold are migrated to the low-performance level 108.

[0081] In this way, when determining the storage tier for the target file, not only the access frequency of the target file is considered, but also the IO mode of the target file and its storage cost are taken into account, so that the file tiering strategy can be optimized, so that the lower-priced storage tiers can be fully utilized and the cost of the storage system can be saved. In addition, files that are more suitable for storage in the high-performance tier can be migrated to a higher storage tier, thereby reducing response time and improving the performance of the storage system.

[0082] Fig. 9 900 is a schematic block diagram of an example device 900 that can be used to implement an embodiment of the present disclosure. Figure 1 The device for managing the application 110 shown may be as follows Fig. 9 The example device 900 shown. As shown, the device 900 includes a computing unit 901, which can perform various appropriate actions and processes according to computer program instructions stored in a read-only memory (ROM) 902 or loaded from a storage unit 908 into a random access memory (RAM) 903. In the RAM 903, various programs and data required for the operation of the device 900 can also be stored. The computing unit 901, the ROM 902, and the RAM 903 are connected to each other via a bus 904. An input / output (I / O) interface 905 is also connected to the bus 904.

[0083] A number of components in the device 900 are connected to the I / O interface 905, including: an input unit 906, such as a keyboard, a mouse, etc.; an output unit 907, such as various types of displays, speakers, etc.; a storage unit 908, such as a disk, an optical disk, etc.; and a communication unit 909, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 909 allows the device 900 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.

[0084] The computing unit 901 may be a variety of general and / or special processing components with processing and computing capabilities. Some examples of the computing unit 901 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, digital signal processors (DSPs), and any appropriate processors, controllers, microcontrollers, etc. The computing unit 901 performs the various methods and processes described above, such as method 200. For example, in some embodiments, method 200 may be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as a storage unit 908. In some embodiments, part or all of the computer program may be loaded and / or installed on the device 900 via ROM 902 and / or communication unit 909. When the computer program is loaded into RAM 903 and executed by the computing unit 901, one or more steps of the method 200 described above may be performed. Alternatively, in other embodiments, the computing unit 901 may be configured to perform method 200 in any other appropriate manner (e.g., by means of firmware).

[0085] The functions described above herein may be performed at least in part by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chip systems (SOCs), load programmable logic devices (CPLDs), and the like.

[0086] The program code for implementing the method of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device, so that the program code, when executed by the processor or controller, enables the functions / operations specified in the flow chart and / or block diagram to be implemented. The program code may be executed entirely on the machine, partially on the machine, partially on the machine and partially on a remote machine as a stand-alone software package, or entirely on a remote machine or server.

[0087] In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or equipment. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In addition, although each operation is depicted in a specific order, this should be understood as requiring such operations to be performed in the specific order shown or in a sequential order, or requiring that all illustrated operations should be performed to obtain the desired result. In certain environments, multitasking and parallel processing may be advantageous. Similarly, although several specific implementation details are included in the above discussion, these should not be interpreted as limiting the scope of the present disclosure. Certain features described in the context of separate embodiments can also be implemented in a single implementation in combination. On the contrary, the various features described in the context of a single implementation can also be implemented in multiple implementations individually or in any suitable sub-combination.

[0088] Although the subject matter has been described in language specific to structural features and / or methodological logical actions, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. On the contrary, the specific features and actions described above are merely example forms of implementing the claims.

Claims

1. A method for hierarchical file storage, comprising: Determine the target file's input and output IO mode, file size, and file access frequency; determining a plurality of IO pattern performances of the IO pattern on a plurality of tiers of a storage system, wherein the storage system comprises a plurality of tiers; Based on the file size of the target file, determining a plurality of storage costs when the target file is stored in the plurality of tiers of the storage system; as well as A target tier at which the target file is stored is determined based on the multiple IO pattern performances, the multiple storage costs, the file size, and the file access frequency.

2. The method according to claim 1, wherein determining the plurality of IO pattern performances of the IO pattern on the plurality of tiers of the storage system comprises: Determine, in the IO mode, a plurality of bandwidths, a plurality of input / output operations per second (IOPS), and a plurality of response times corresponding to the plurality of levels; as well as Based on the plurality of bandwidths, the plurality of IOPS, and a plurality of response times, the plurality of IO pattern performances of the IO pattern on the plurality of tiers of the storage system are determined.

3. The method according to claim 2, wherein determining the plurality of IO pattern performances of the IO pattern on the plurality of tiers of the storage system further comprises: determining a plurality of normalized bandwidths, a plurality of normalized IOPS, and a plurality of normalized response times corresponding to the plurality of tiers based on the plurality of bandwidths, a plurality of IOPS, and a plurality of response times corresponding to the plurality of tiers; as well as Based on the multiple standardized bandwidths, the multiple standardized IOPS, and the multiple standardized response times, a plurality of IO pattern performance scores corresponding to the multiple tiers are determined, wherein an IO pattern performance score in the multiple IO pattern performance scores indicates an IO pattern performance of a corresponding tier.

4. The method of claim 1 , wherein determining the plurality of storage costs when the target file is stored in the plurality of tiers of the storage system comprises: Based on the file size of the target file and a plurality of unit storage space costs corresponding to the plurality of tiers of the storage system, a plurality of storage costs when the target file is stored in the plurality of tiers, respectively, are determined.

5. The method of claim 1 , wherein determining the target tier at which the target file is stored comprises: Based on the multiple IO mode performance scores, determining IO mode performance differences of the IO mode at the multiple levels of the storage system; Based on the plurality of storage costs, determining a difference in the storage costs when the target file is stored in the plurality of tiers of the storage system; as well as The target tier at which the target file is stored is determined based on the IO mode performance difference, the storage cost difference, the file size, and the file access frequency.

6. The method according to claim 5, wherein determining IO pattern performance differences of the IO pattern at the plurality of tiers of the storage system comprises: Based on the plurality of IO pattern performances, determining an average IO pattern performance for the plurality of tiers; as well as Based on the multiple IO pattern performances and the average IO pattern performance, the dispersion degree of the multiple IO pattern performances is determined as the IO pattern performance difference.

7. The method of claim 5, wherein determining the storage cost difference when the target file is stored in the plurality of tiers of the storage system comprises: determining an average storage cost for the plurality of tiers based on the plurality of storage costs; as well as Based on the plurality of storage costs and the average storage cost, a degree of dispersion of the plurality of storage costs is determined as the storage cost difference.

8. The method of claim 5, wherein determining the target tier at which the target file is stored comprises: determining a file access density of the target file based on the file size and the file access frequency of the target file, the file access density indicating an average access frequency per unit file size; and The target tier at which the target file is stored is determined based on the IO mode performance difference, the storage cost difference, and the file access density.

9. The method of claim 8, wherein determining the target level at which the target file is stored further comprises: Determining a first weight for the IO mode performance difference and a second weight for the storage cost difference; Determining a comprehensive score for the target file based on the IO mode performance difference, the first weight, the storage cost difference, the second weight, and the access density, the comprehensive score indicating a benefit associated with performance and storage cost of migrating the target file from a low performance tier to a high performance tier of the storage system; as well as The target level at which the target file is stored is determined based on the comprehensive score of the target file.

10. The method of claim 9, wherein determining the target level at which the target file is stored further comprises: determining a plurality of composite scores corresponding to a plurality of files to be stored, wherein the plurality of files includes the target file; as well as The target tier at which the target file is stored is determined based on the multiple comprehensive scores.

11. The method according to claim 10, wherein determining the target level at which the target file is stored further comprises: determining a ranked plurality of composite scores by ranking the plurality of composite scores; as well as Based on the ranked multiple comprehensive scores, the tiers in which the multiple files are stored are determined, wherein files ranked higher among the multiple files are stored in a tier with higher performance, and files ranked lower among the multiple files are stored in a tier with lower performance. 12 . The method according to claim 1 , wherein the IO mode indicates at least one of a data size of an IO operation, a read operation ratio, and a sequential access ratio.

13. An electronic device, comprising: at least one processor; as well as a memory coupled to the at least one processor and having instructions stored thereon, the instructions, when executed by the at least one processor, causing the electronic device to perform actions, the actions comprising: Determine the target file's input and output IO mode, file size, and file access frequency; Determining multiple IO mode performances of the IO mode at multiple levels of the storage system; Based on the file size of the target file, determining a plurality of storage costs when the target file is stored in the plurality of tiers of the storage system; and A target tier at which the target file is stored is determined based on the multiple IO pattern performances, the multiple storage costs, the file size, and the file access frequency.

14. The apparatus of claim 13, wherein determining the plurality of IO pattern performances of the IO pattern at the plurality of tiers of a storage system comprises: Determine, in the IO mode, a plurality of bandwidths, a plurality of input / output operations per second (IOPS), and a plurality of response times corresponding to the plurality of levels; as well as Based on the plurality of bandwidths, the plurality of IOPS, and a plurality of response times, the plurality of IO pattern performances of the IO pattern on the plurality of tiers of the storage system are determined.

15. The apparatus of claim 14, wherein determining the plurality of IO pattern performances of the IO pattern on the plurality of tiers of the storage system further comprises: determining a plurality of normalized bandwidths, a plurality of normalized IOPS, and a plurality of normalized response times corresponding to the plurality of tiers based on the plurality of bandwidths, a plurality of IOPS, and a plurality of response times corresponding to the plurality of tiers; as well as Based on the multiple standardized bandwidths, the multiple standardized IOPS, and the multiple standardized response times, a plurality of IO pattern performance scores corresponding to the multiple tiers are determined, wherein an IO pattern performance score in the multiple IO pattern performance scores indicates an IO pattern performance of a corresponding tier.

16. The apparatus of claim 13, wherein determining the plurality of storage costs when the target file is stored in the plurality of tiers of the storage system comprises: Based on the file size of the target file and a plurality of unit storage space costs corresponding to the plurality of tiers of the storage system, a plurality of storage costs when the target file is stored in the plurality of tiers, respectively, are determined.

17. The apparatus of claim 13, wherein determining the target tier at which the target file is stored comprises: Based on the multiple IO mode performance scores, determining IO mode performance differences of the IO mode at the multiple levels of the storage system; Based on the plurality of storage costs, determining a difference in the storage costs when the target file is stored in the plurality of tiers of the storage system; as well as The target tier at which the target file is stored is determined based on the IO mode performance difference, the storage cost difference, the file size, and the file access frequency.

18. The apparatus of claim 17, wherein determining IO pattern performance differences of the IO pattern at the plurality of tiers of the storage system comprises: Based on the plurality of IO pattern performances, determining an average IO pattern performance for the plurality of tiers; as well as Based on the multiple IO pattern performances and the average IO pattern performance, the dispersion degree of the multiple IO pattern performances is determined as the IO pattern performance difference.

19. The apparatus of claim 17, wherein determining the storage cost difference when the target file is stored in the plurality of tiers of the storage system comprises: determining an average storage cost for the plurality of tiers based on the plurality of storage costs; as well as Based on the plurality of storage costs and the average storage cost, a degree of dispersion of the plurality of storage costs is determined as the storage cost difference.

20. A computer program product tangibly stored on a non-transitory computer readable medium and comprising machine executable instructions which, when executed, cause a machine to: Determine the target file's input and output IO mode, file size, and file access frequency; determining a plurality of IO pattern performances of the IO pattern on a plurality of tiers of a storage system, wherein the storage system comprises a plurality of tiers; Based on the file size of the target file, determining a plurality of storage costs when the target file is stored in the plurality of tiers of the storage system; as well as A target tier at which the target file is stored is determined based on the multiple IO pattern performances, the multiple storage costs, the file size, and the file access frequency.