Method, apparatus, and computer program product for managing a storage device

By managing the movement of data access components based on the data access frequency in the storage device, the problem of poor adaptability of data access frequency for different users is solved, and the effect of reducing data access delay and improving the performance of storage devices is achieved.

CN115016725BActive Publication Date: 2025-06-27EMC IP HLDG CO LLC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202110244300.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-03-05
Publication Date
2025-06-27
Estimated Expiration
2041-03-05

AI Technical Summary

Technical Problem

When managing storage devices, the prior art cannot effectively adapt to the data access frequency of different users, resulting in undesired movement of the magnetic head, resulting in performance degradation and cache read efficiency decrease.

Method used

It is determined whether the data access component will move based on the data access frequency of the storage device. If it is determined that the movement will occur, the first storage unit is determined based on the data storage location of the previous access, and a read request for the adjacent second storage unit is sent, so that the data access component can move from the first spatial location to the second spatial location.

Benefits of technology

This solution can adapt to the data access frequency of different users, reduce undesired movement of the magnetic head, reduce data access delay, improve storage device performance and cache reading efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115016725B_ABST
    Figure CN115016725B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to a method, an electronic device, and a computer program product for managing a storage device. The method includes determining whether a data access component of the storage device will move based on the data access frequency of the storage device; if it is determined that the data access component will move, determining a first storage unit in the storage device based on the storage location of the data accessed last time in the storage device, where the data access component is located at a first spatial position corresponding to the first storage unit; and sending a read request for data in a second storage unit adjacent to the first storage unit in the storage device, so that the data access component moves from the first spatial position to a second spatial position corresponding to the second storage unit. Embodiments of the present disclosure can reduce the latency of data access in the storage device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure generally relate to the field of data storage, and more particularly, to methods, devices, and computer program products for managing storage devices. Background Art

[0002] Different users usually access a storage device with different data access frequencies. During a period when the data access frequency of the storage device is low, the time interval between input / output (I / O) requests is long, and such a time is usually referred to as the idle time of the storage device. During the idle time of the storage device, the head of the storage device may move significantly. Such a large movement of the head sometimes causes an increase in the data access latency of the storage device, and further causes a decline in the performance of the storage device. Summary of the Invention

[0003] Embodiments of the present disclosure provide methods, devices, and computer program products for managing storage devices.

[0004] In a first aspect of the present disclosure, a method for managing a storage device is provided. The method includes determining whether a data access component of the storage device will move based on the data access frequency of the storage device; if it is determined that the data access component will move, determining a first storage unit in the storage device based on the storage location of the data accessed last time in the storage device, where the data access component is located at a first spatial position corresponding to the first storage unit; and sending a read request for data in a second storage unit adjacent to the first storage unit in the storage device, so that the data access component moves from the first spatial position to a second spatial position corresponding to the second storage unit.

[0005] In a second aspect of the present disclosure, an electronic device is provided. The electronic device includes at least one processing unit and at least one memory. The at least one memory is coupled to the at least one processing unit and stores instructions for execution by the at least one processing unit. When executed by the at least one processing unit, the instructions cause the electronic device to perform operations, the operations including determining whether a data access component of the storage device will move based on the data access frequency of the storage device; if it is determined that the data access component will move, determining a first storage unit in the storage device based on the storage location of the data accessed last time in the storage device, where the data access component is located at a first spatial position corresponding to the first storage unit; and sending a read request for data in a second storage unit adjacent to the first storage unit in the storage device, so that the data access component moves from the first spatial position to a second spatial position corresponding to the second storage unit.

[0006] In a third aspect of the present disclosure, a computer program product is provided. The computer program product is tangibly stored in a non-transitory computer storage medium and includes machine-executable instructions. When executed by a device, the machine-executable instructions cause the device to perform any of the steps of the method described in the first aspect of the present disclosure.

[0007] The Summary of the Invention is provided to introduce a selection of concepts in a simplified form, which will be further described in the Detailed Description below. The Summary of the Invention is not intended to identify the key features or essential features of the present disclosure, nor is it intended to limit the scope of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] By describing the exemplary embodiments of the present disclosure in more detail in conjunction with the accompanying drawings, the above and other objects, features, and advantages of the present disclosure will become more apparent. In the exemplary embodiments of the present disclosure, the same reference numerals generally represent the same components.

[0009] Figure 1 A schematic diagram of an example system in which some embodiments of the present disclosure can be implemented is shown;

[0010] Figure 2 A schematic diagram of an example method for managing a storage device according to some embodiments of the present disclosure is shown;

[0011] Figure 3 A schematic block diagram of managing a storage device according to some embodiments of the present disclosure is shown;

[0012] Figure 4 A schematic diagram of an example method for determining whether a data access component of a storage device will move according to some embodiments of the present disclosure is shown;

[0013] Figure 5 A schematic diagram of an example method for determining the time to send a read request according to some embodiments of the present disclosure is shown; and

[0014] Figure 6 A schematic block diagram of an example device that can be used to implement the embodiments of the present disclosure is shown.

[0015] In each of the drawings, the same or corresponding reference numerals denote the same or corresponding parts. DETAILED DESCRIPTION

[0016] Preferred embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although the preferred embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments set forth herein. On the contrary, these embodiments are provided to make the present disclosure more thorough and complete, and to fully convey the scope of the present disclosure to those skilled in the art.

[0017] As used herein, the term "including" and its variations mean open inclusion, i.e., "including but not limited to". Unless otherwise stated, the term "or" means "and / or". The term "based on" means "at least partially based on". The terms "an example embodiment" and "an embodiment" mean "at least one example embodiment". The term "another embodiment" means "at least one additional embodiment". The terms "first", "second", etc. may refer to different or the same objects. There may also be other explicit and implicit definitions hereinafter.

[0018] A period of time with a relatively low data access frequency of a storage device is generally referred to as idle time. For some storage devices, the head usually moves during idle time. For example, for some storage devices, the long-term immobility of the head may cause lubricating oil to drip onto the disk of the storage device, resulting in damage to the storage device. Therefore, a predetermined idle time value is usually preset in the firmware of the storage device. If no data access occurs on the storage device within a period of time up to the predetermined idle time value, the firmware will perform an operation to move the head.

[0019] For another example, for some storage devices, a predetermined idle time value is set in their firmware. If no data access occurs on the storage device within a period of time up to the predetermined idle time value, the firmware will perform an operation to move the head to a certain predetermined position for logging, etc.

[0020] This operation of moving the head of the storage device during idle time may cause problems such as a decrease in the performance of the storage device and a reduction in the efficiency of reading data from the cache. For example, if the head moves during the process of data access, then for the next data access that follows, the head needs to move back to the original position for data access. Therefore, this causes repeated movement of the head. This repeated movement of the head increases the latency of I / O requests, thereby affecting the performance of the storage device. On the other hand, this head movement may occur before a cache read is completed. The cache needs to wait until the head moves back to the original position again to continue this unfinished read. This reduces the efficiency of reading data from the cache. Therefore, in order to improve the performance of the storage device and the efficiency of reading data from the cache, it is necessary to manage the head movement of the storage device.

[0021] In the conventional solution, the predetermined idle time value is changed by upgrading the firmware of the storage device, thereby preventing the undesired movement of the head. For example, the impact of head movement on the performance of the storage device can be solved by setting the predetermined idle time value in the firmware of the storage device to a larger value, such as 1 second (s).

[0022] Some problems have been encountered in the actual use of the above conventional solutions. For example, in order to prevent the undesired movement of the magnetic head, some manufacturers set the predetermined idle time value in the firmware to 1 s. The data access frequency of some users may have the following characteristics: data is always accessed at relatively long time intervals, such as 0.99 s. In this case, the magnetic head of the storage device will remain basically stationary. This long-term basic immobility of the magnetic head of the storage device may cause problems such as lubricating oil dripping and disk damage.

[0023] In fact, for different users, the data access situations of storage devices are not the same. Therefore, setting the same idle time value for the storage devices of different users may cause many potential problems, such as the problem of disk damage caused by lubricating oil dripping described above. However, the firmware of the same type of storage device is set by the manufacturer of the storage device and is the same, and cannot be changed by the customer himself. Therefore, the method of modifying the predetermined idle time value by upgrading the firmware of the storage device cannot meet the needs of different users.

[0024] In addition, the release cycle of the upgrade of the firmware of the storage device is relatively long, and users need to wait for a quite long time to obtain the upgraded firmware of the storage device to solve the problem of the movement of the magnetic head. In addition, since the firmware of different types of storage devices is different, it is necessary to upgrade the firmware of all types of storage devices to solve the above problems.

[0025] Embodiments of the present disclosure propose a solution for managing a storage device to solve one or more of the above problems and other potential problems. In this solution, based on the data access frequency of the storage device, it is determined whether the data access component (for example, the magnetic head) of the storage device will move. If it is determined that the data access component will move, based on the storage location of the data accessed last time in the storage device, the first spatial position where the data access component is located is determined. This solution further includes sending a data read request corresponding to a second spatial position adjacent to the first spatial position, so that the data access component moves from the first spatial position to the second spatial position.

[0026] Embodiments of the present disclosure can adapt to different users. By determining the data access frequencies of different users to determine whether the magnetic head will move, the undesired movement of the magnetic head can be avoided. In this way, the data access latency of the storage device can also be reduced, and the efficiency of reading data from the cache can be improved.

[0027] Embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings.

[0028] Figure 1FIG. 0 shows a schematic diagram of an exemplary storage system 100 that can be implemented in accordance with some embodiments of the present disclosure. The storage system 100 includes a computing device 110 and a storage device 120 for storing data. The storage device 120 includes firmware 130 and a data access component 140. The computing device 110 can access the data stored in the storage device 120. For example, the computing device 110 can access the data in the storage device 120 through the data access component 140.

[0029] In some embodiments, when the computing device 110 issues an access request (e.g., a read request or a write request) for the data in the storage device 120, the data access component 140 moves to the spatial location where the data is located and accesses the data. The computing device 110 can access the data accessed by the data access component 140 through various data transmission protocols or methods. The computing device 110 can send access requests (e.g., read requests or write requests) for the data in the storage device 120 in a sequential manner or a random manner. In some embodiments, the storage device 120 can be a magnetic disk, and the data access component can be the magnetic head of the magnetic disk. In some embodiments, the storage device 120 can be a magnetic tape, and the data access component 140 can be the magnetic head of the magnetic tape.

[0030] The storage device 120 further includes firmware 130, which is the firmware 130 pre-installed in the storage device 120 and released by the manufacturer of the storage device 120. A predetermined idle time value and a predetermined operation for the data access component 140 are set in the firmware 130. If it is determined that the data access component 140 of the storage device 120 has not performed a data access operation for a time period up to the predetermined idle time value, the predetermined operation for the data access component 140 in the firmware 130 is triggered. For example, the predetermined operation can be to move the data access component 140 a relatively large distance, or to move to a predetermined spatial location at a relatively far distance. It should be understood that the firmware 130 can also include other parameters of the storage device 120 and other predetermined operations.

[0031] It should be understood that Figure 1 the exemplary storage system 100 in FIG. is merely exemplary and not restrictive. According to the embodiments of the present disclosure, the storage system 100 can be implemented in any suitable manner. For example, the storage system 100 can include any appropriate number of storage devices 120, and these storage devices 120 can be connected or arranged in any appropriate manner. Examples of the storage device 120 can include but are not limited to hard disk devices, hard disk drive (HDD), redundant array of independent disks (RAID), or other hard disk devices, etc.

[0032] Figure 2FIG. 200 is a flowchart of an exemplary method for managing a storage device 120 in accordance with some embodiments of the present disclosure. Method 200 may be performed, for example, by a computing device 110 of a storage system 100 as shown in Figure 1 FIG. 1. It should be understood that method 200 may also be performed by other suitable devices or apparatuses. Method 200 may include additional acts not shown and / or may omit the acts shown, and the scope of the present disclosure is not limited in this regard. Method 200 will be described in detail below in conjunction with Figure 1 FIGS. 3-5.

[0033] As shown in Figure 2 FIG. 3, at 210, based on the data access frequency of the storage device 120, it is determined whether the data access component 140 of the storage device 120 will move. If the data access frequency of the storage device 120 is low, it is determined that the data access component 140 will move.

[0034] In some embodiments, the data access frequency of the storage device 120 may be determined based on the historical record of data access of the storage device 120. For example, based on the historical record, a plurality of time intervals of I / O requests of the storage device 120 within a predetermined length of time (e.g., 10 s) before the current time may be determined. If each of the plurality of time intervals is greater than a time interval threshold, it indicates that the data access frequency of the storage device 120 is low, and it is determined that the data access component 140 will move. For example, the time interval threshold may be preset to 100 milliseconds (ms). It should be understood that this is merely illustrative, and in some embodiments, the time interval threshold may be set to any value of time length.

[0035] In some embodiments, other ways may also be used to determine the data access frequency of the storage device 120. For example, based on the historical record, the average time interval of I / O requests of the storage device 120 within a predetermined length of time before the current time may be determined. If the average time interval is greater than a predetermined time interval threshold, it indicates that the data access frequency of the storage device 120 is low, and it is determined that the data access component 140 will move.

[0036] Additionally or alternatively, in some embodiments, other ways may also be used to determine whether the data access component 140 will move. In the following description with reference to Figures 3 - 4 FIGS. 4-5, the process of determining whether the data access component 140 will move will be described in more detail.

[0037] If it is determined at 210 that the data access component 140 will move, then method 200 proceeds to 220. At 220, the computing device 110 determines a first storage unit of the storage device 120 based on the storage location of the data accessed previously in the storage device 120, where the data access component 140 is located at a first spatial position corresponding to the first storage unit. For example, the computing device 110 determines a first storage unit (e.g., a first sector) of the storage device 120 based on the storage location corresponding to a batch of I / O requests accessed previously in the storage device 120.

[0038] In some embodiments, the computing device 110 may determine a first storage location of the storage address with the largest offset among the storage locations corresponding to the data accessed previously, and determine the storage unit including the first storage location in the storage device 120 as the first storage unit. For example, the computing device 110 may determine a first storage location of the storage address with an offset among the storage locations of the storage device 120 corresponding to a batch of I / O requests accessed previously, and determine the storage unit (e.g., a sector) including the first storage location in the storage device 120 as the first storage unit.

[0039] At 230, the computing device 110 sends a read request for the data in a second storage unit adjacent to the first storage unit in the storage device 120, so that the data access component 140 moves from the first spatial position to a second spatial position corresponding to the second storage unit. For example, in some embodiments, the second storage unit adjacent to the first storage unit is the storage unit immediately following the first storage unit along the predetermined movement direction of the data access component 140. The predetermined movement direction of the data access component 140 (such as a magnetic head) may be, for example, the clockwise direction or the counterclockwise direction. It should be understood that the predetermined movement direction of the data access component 140 may also be other appropriate directions.

[0040] When the computing device 110 sends a read request for the data in the second storage unit, the data access component 140 of the storage device 120 moves to the spatial position corresponding to the second storage unit, so that the computing device 110 reads the data in the second storage unit via the data access component 140.

[0041] It should be understood that the above description of sending a read request for the data in the second storage unit is merely illustrative and not restrictive. In other embodiments, other ways may also be used to send the read request. In the following references Figure 3 and Figure 5 the process of sending a read request for the data in the second storage unit will be described in more detail.

[0042] In the above manner, the movement of the data access component 140 of the storage device 120 during idle time can be predicted. If the movement of the data access component 140 during idle time is predicted, a read request is sent to cause the data access component 140 to make a very small movement (for example, move to the spatial position corresponding to the second storage unit adjacent to the first storage unit corresponding to the current one).

[0043] In this way, an undesired large-scale movement of the data access component 140 can be avoided. In addition, since the large movement of the data access component 140 is avoided, the data access latency can be reduced and the performance of the storage device 120 can be improved. In this way, the efficiency of reading data from the cache can also be improved. In addition, this method can be applied to different types of storage devices 120 for different users. Compared with the conventional scheme using firmware upgrade, it is more flexible and has stronger adaptability.

[0044] Figure 3 A more detailed schematic block diagram of managing the storage device 120 according to some embodiments of the present disclosure is shown. Figure 3 The movement determination module 310, the read request sending module 330, etc. in Figure 1 the computing device 110 shown can be implemented. It should be understood that the movement determination module 310, the read request sending module 330, etc. can also be executed by other appropriate devices or apparatuses.

[0045] As Figure 3 shown, the movement determination module 310 can be used to determine whether the data access component 140 will move. In some embodiments, the movement determination module 310 includes a device parameter detection sub-module 315 and a data access frequency determination sub-module 320. The device parameter detection sub-module 315 can obtain the system parameters of the storage device 120 stored in the firmware 130 of the storage device 120, such as the model, manufacturer, etc. of the storage device 120. It should be understood that in some embodiments, the system parameters can also include some other parameters related to the storage device 120. For example, the device parameter detection sub-module 315 can determine that the storage device 120 belongs to a storage device with a problem of performance degradation due to the movement of the data access component 140 based on the model parameter of the storage device 120.

[0046] The data access frequency determination sub-module 320 may determine the data access frequency of the storage device 120 based on the historical record of data access. For example, the data access frequency determination sub-module 320 may determine, based on the historical record, multiple time intervals of I / O requests of the storage device 120 within a predetermined length of time (e.g., 10 s) before the current time. If each of the multiple time intervals is greater than the time interval threshold (e.g., 100 ms), it indicates that the data access frequency of the storage device 120 is low.

[0047] For another example, the data access frequency determination sub-module 320 may determine, based on the historical record, the average time interval of I / O requests of the storage device 120 within a predetermined length of time (e.g., 10 s) before the current time. If the average time interval is greater than the predetermined time interval threshold (e.g., 100 ms), it indicates that the data access frequency of the storage device 120 is low, and it is determined that the data access component 140 will move.

[0048] It should be understood that the above-described time length of 10 s and the time interval threshold of 100 ms are merely illustrative and not restrictive. In some embodiments, other time lengths and / or other time interval thresholds may be selected.

[0049] It should be understood that, as Figure 3 shown, the device parameter detection sub-module 315 and the data access frequency determination sub-module 320 may be two modules that execute in parallel or two modules that execute serially. In the following reference Figure 4 description, the process of using the serially-executed device parameter detection sub-module 315 and data access frequency determination sub-module 320 to determine whether the data access component 140 will move will be described in more detail.

[0050] In the above manner, it is possible to predict whether the data access component 140 will undergo an unexpected movement. In this way, it is possible to avoid the delay in data access caused by the movement of the data access component 140, thereby improving the performance of the storage device 120. In addition, in this way, the efficiency of reading data from the cache can also be improved.

[0051] Returning to Figure 3 , Figure 3 also shows a read request sending module 330, which may include a data access monitoring sub-module 335, a timing sub-module 340, and a read request generation sub-module 345. In some embodiments, the data access monitoring sub-module 335 may determine the storage location of the previously accessed data in the storage device 120 based on the historical record of the storage device 120 to determine the first storage unit in the storage device 120.

[0052] In some embodiments, the data access monitoring sub-module 335 may determine the first storage unit based on the positions of a batch of I / O requests of the previous access at the current time in the historical record in the storage device 120. For example, each I / O request in a batch of I / O requests of the previous access has a corresponding offset value and data size value. The sums of the offset values and data size values of each I / O request in a batch of I / O requests of the previous access are sorted, and the maximum value of the sums of the offset values and data size values is determined as the first storage position. The storage unit in the storage device 120 that includes the first storage position is determined as the first storage unit. The data access monitoring sub-module 335 may send the information of the first storage unit to the read request generation sub-module 345 for subsequent use.

[0053] Figure 3 The timing sub-module 340 is also shown, which is used to determine the first time interval for the time of sending the read request. The timing sub-module 340 sends the first time interval to the read request generation sub-module 345, so that the read request generation sub-module 345 generates and sends a read request at a time interval of the first time interval from the previous data access. In some embodiments, the timing sub-module 340 sets the first time interval to the predetermined idle time value (for example, 400 ms) stored in the firmware 130 of the storage device 120.

[0054] It should be understood that the process of determining the first time interval described above is merely exemplary and not restrictive. In other embodiments, other methods may also be used to set the first time interval. In some embodiments, the timing sub-module 340 may also be based on the following reference Figure 5 The method 500 described in more detail to determine the first time interval.

[0055] The read request generation sub-module 345 receives the information of the first storage unit sent by the data access monitoring sub-module 335, and receives the first time interval sent by the timing sub-module 340. Based on the information of the first storage unit, the read request generation sub-module 345 may determine the second storage unit adjacent to the first storage unit. The second storage unit may be the storage unit immediately following the first storage unit along the predetermined moving direction of the data access component 140.

[0056] In some embodiments, the read request generation sub-module 345 generates a read request for the data in the second storage unit (for example, a read request with a size of 4k), and sends the read request to the storage device 120 at a time interval of the first time interval from the previous data access. It should be understood that the size 4k of the read request is merely illustrative and not restrictive, and the read request may also be set to other sizes.

[0057] In this way, it is possible to determine when to send a read request for which storage unit to the storage device 120. The storage device 120 receives the read request and moves the data access component to a spatial position adjacent to the current spatial position, thereby avoiding a large movement of the data access component 140. In this way, the latency of data access of the storage device 120 can be reduced, and the performance of the storage device 120 can be improved.

[0058] In some embodiments, a method 400 as shown in Figure 4 can be used to determine whether the data access component 140 of the storage device will move. Several embodiments for determining whether the data access component 140 of the storage device will move will be described in more detail below in conjunction with Figure 4 ...

[0059] Figure 4 FIG. shows a schematic diagram of an example method 400 for determining whether the data access component 140 of the storage device will move according to some embodiments of the present disclosure. The method 400 can be regarded as an example implementation of block 210 in the method 200. The method 400 can be executed, for example, by a computing device 110 of the storage system 100 as shown in Figure 1 ... For example, the method 400 can be executed by a movement determination module 310 (including a device parameter detection sub-module 315 and a data access frequency determination sub-module 320) implemented at the computing device 110 as shown in Figure 3 ... It should be understood that the method 400 can also be executed by other suitable devices or apparatuses. The method 400 may include additional actions not shown and / or may omit the actions shown, and the scope of the present disclosure is not limited in this regard. The method 400 will be described in detail below in conjunction with Figure 1 and Figure 3 ...

[0060] As shown in Figure 4 ... at 410, the device parameter detection sub-module 315 can determine whether the movement of the data access component 140 will cause a performance degradation of the storage device 120 based on the system parameters of the storage device 120 (for example, the model, manufacturer, etc. of the storage device 120). In some embodiments, the device parameter detection sub-module 315 can determine whether the storage device 120 belongs to a storage device 120 that has a problem of performance degradation due to the movement of the data access component 140 based on the model parameters of the storage device 120. If the device parameter detection sub-module 315 determines that the storage device 120 belongs to a storage device 120 that has a problem of performance degradation due to the movement of the data access component 140, it is determined that the movement of the data access component 140 will cause a performance degradation of the storage device 120.

[0061] If it is determined at 410 that the movement of the data access component 140 will cause a performance degradation of the storage device 120, the method 400 proceeds to 420. At 420, the data access frequency determination sub-module 320 determines a plurality of data access time intervals during which the storage device 120 performs data access within a predetermined length of time before the current time. For example, the data access frequency determination sub-module 320 may determine, based on historical records, a plurality of data access time intervals of I / O requests of the storage device 120 within a predetermined length of time (e.g., 10 s) before the current time.

[0062] At 430, the data access frequency determination sub-module 320 determines whether each of the plurality of data access time intervals is greater than a time interval threshold (e.g., 100 ms). Alternatively, in some embodiments, the data access frequency determination module 320 may determine whether the average data access time interval of the plurality of data access time intervals is greater than the time interval threshold (e.g., 100 ms).

[0063] If it is determined at 430 that each of the plurality of data access time intervals is greater than the time interval threshold, the method 400 proceeds to 440. At 440, it is determined that the data access component 140 will move. Next, the subsequent process may be executed by the computing device 110 or the read request sending module 330 implemented as shown in Figure 3 at the computing device 110. For example, the process described in connection with 220 in Figure 2 may be executed by the computing device 110.

[0064] In this way, the device parameter detection sub-module 315 may first determine whether the movement of the data access component 140 will cause a performance degradation of the storage device. If it is determined that the movement of the data access component 140 will not cause a performance degradation of the storage device, the data access frequency determination sub-module 320 does not need to execute the subsequent process. By doing so, the computing resources of the computing device 110 can be saved and unnecessary processing processes can be avoided.

[0065] In addition, in this way, the data access frequencies of different types of storage devices 120 of different users can be determined separately. Thus, different storage devices 120 of different users with different data access patterns can be adapted, thereby reducing the data access latency of different storage devices 120 of different users. In addition, this way avoids the need to upgrade the firmware 130 of the storage device 120 and reduces the workload of the developers of the storage device 120. This way can be applied to different types of storage devices 120 for different users. Compared with the conventional scheme using firmware upgrade, it is more flexible and has stronger adaptability.

[0066] In some embodiments, the timing sub-module 340 may also refer to Figure 5 the method 500 described in more detail to set the first time interval. Figure 5 FIG. shows a schematic diagram of an example method 500 for determining a first time interval according to some embodiments of the present disclosure. The method 500 may be executed, for example, by a computing device 110 of a storage system 100 as shown in Figure 1 . For example, the method 500 may also be executed by a timing sub-module 340 implemented in a read request sending module 330 at the computing device 110 as shown in Figure 3 . It should be understood that the method 500 may also be executed by other suitable devices or apparatuses. The method 500 may include additional actions not shown and / or may omit the actions shown, and the scope of the present disclosure is not limited in this regard. The following will be described in detail in conjunction with Figure 1 and Figure 3 for the method 500.

[0067] At 510, the timing sub-module 340 sets the value of the first time interval to a predetermined minimum time interval value. For example, the first time interval value may be set to a predetermined 60 ms. It should be understood that this is merely illustrative and not restrictive, and the predetermined minimum time interval value may also be other suitable time lengths.

[0068] At 520, the timing sub-module 340 determines whether the delay of the storage device 120 for data access exceeds a threshold (e.g., 20 ms). In some embodiments, the threshold may also be set to other suitable time lengths.

[0069] If at 520, the timing sub-module 340 determines that the delay of the storage device 120 for data access does not exceed the threshold, the method 500 proceeds to 530. At 530, the value of the first time interval is increased by a predetermined increment (e.g., 10 ms). It should be understood that other sizes of increments may also be used to increase the value of the first time interval. After increasing the value of the first time interval, the method 500 returns to 520 for continued execution.

[0070] If at 520, the timing sub-module 340 determines that the delay of the storage device 120 for data access exceeds the threshold, the method 500 proceeds to 540. At 540, the timing sub-module 340 stops increasing the value of the first time interval, i.e., provides the current value of the first time interval as the preferred value to the subsequent process.

[0071] In the above manner, the first time interval can be determined dynamically. This avoids multiple small movements of the data access component 140 caused by setting the first time interval to a very small value. Additionally, by incrementing the value of the first time interval and monitoring whether the data access latency exceeds a threshold, the first time interval can be set to the largest possible value. By doing so, it is possible to better avoid large, unwanted movements of the data access component 140, thereby reducing the data access latency.

[0072] For the solution described in this reference Figures 1 - 5 A certain model of storage device was used to conduct multiple experimental verifications for the described solution. Table 1 below shows a comparison of the data access latency without using this solution and with using this solution for random read request data access. From the comparison results in Table 1, it can be seen that for random read requests of different sizes, the data access latency with using this solution is significantly reduced.

[0073] Table 1 Example of Latency Comparison for Random Read Requests

[0074]

[0075] Tables 2 - 3 below respectively show a comparison of the data access latency without using this solution and with using this solution for sequential read requests and sequential write requests. From the comparison results in Tables 2 - 3, it can be seen that for sequential read requests and sequential write requests of different sizes, the data access latency with using this solution is significantly reduced.

[0076] Table 2 Example of Latency Comparison for Sequential Read Requests

[0077]

[0078]

[0079] Table 3 Example of Latency Comparison for Sequential Write Requests

[0080]

[0081] From Tables 1 - 3 above, it can be seen that the solution described in this disclosure can well reduce the data access latency of the storage device 120 and improve the performance of the storage device 120. Especially for sequential data access, this reduction in data access latency is more significant. Therefore, the solution of this disclosure can significantly improve the performance of the storage device 120 during periods of low data access frequency.

[0082] Figure 6 FIG. shows a schematic block diagram of an example device 600 that can be used to implement the embodiments of the present disclosure. For example, as Figure 1The storage system 100 shown can be implemented by a device 600. As Figure 6 shown, the device 600 includes a central processing unit (CPU) 601, which can perform various appropriate actions and processes according to computer program instructions stored in a read-only memory (ROM) 602 or computer program instructions loaded from a storage unit 608 into a random access memory (RAM) 603. In the RAM 603, various programs and data required for the operation of the device 600 can also be stored. The CPU 601, ROM 602, and RAM 603 are connected to each other via a bus 604. An input / output (I / O) interface 605 is also connected to the bus 604.

[0083] Multiple components in the device 600 are connected to the I / O interface 605, including: an input unit 606, such as a keyboard, a mouse, etc.; an output unit 607, such as various types of displays, speakers, etc.; a storage unit 608, such as a magnetic disk, an optical disk, etc.; and a communication unit 609, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 609 allows the device 600 to exchange information / data with other devices via a computer network such as the Internet and / or various telecommunication networks.

[0084] Each of the processes and processes described above, such as methods 200, 400, and / or 500, can be executed by the processing unit 601. For example, in some embodiments, methods 200, 400, and / or 500 can be implemented as a computer software program, which is tangibly included in a machine-readable medium, such as the storage unit 608. In some embodiments, part or all of the computer program can be loaded and / or installed onto the device 600 via the ROM 602 and / or the communication unit 609. When the computer program is loaded into the RAM 603 and executed by the CPU 601, one or more actions of the methods 200, 400, and / or 500 described above can be executed.

[0085] The present disclosure can be a method, an apparatus, a system, and / or a computer program product. The computer program product can include a computer-readable storage medium having thereon computer-readable program instructions for performing various aspects of the present disclosure.

[0086] A computer-readable storage medium can be a tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium may be, for example—but not limited to—an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer-readable storage medium include: 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), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanically encoded device such as a punched card or raised structures in grooves having instructions stored thereon, and any suitable combination of the foregoing. The computer-readable storage medium as used herein is not construed as being a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., an optical pulse through an optical fiber cable), or an electrical signal transmitted through a wire.

[0087] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to respective computing / processing devices, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include a copper transmission cable, an optical fiber transmission, a wireless transmission, a router, a firewall, a switch, a gateway computer, and / or an edge server. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in each computing / processing device.

[0088] The computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine - related instructions, microcode, firmware instructions, state - setting data, or source code or object code written in any combination of one or more programming languages, including object - oriented programming languages such as Smalltalk, C++, etc., and conventional procedural programming languages such as the "C" language or similar programming languages. The computer - readable program instructions may be executed entirely on the user's computer, partially on the user's computer, executed as a stand - alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or alternatively, may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, by using the state information of the computer - readable program instructions to customize an electronic circuit, such as a programmable logic circuit, a field - programmable gate array (FPGA), or a programmable logic array (PLA), the electronic circuit can execute the computer - readable program instructions to implement various aspects of the present disclosure.

[0089] Aspects of the present disclosure are described herein with reference to the flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It should be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer - readable program instructions.

[0090] These computer - readable program instructions can be provided to a processing unit of a general - purpose computer, a special - purpose computer, or other programmable data - processing apparatus to produce a machine such that, when the instructions are executed by the processing unit of the computer or other programmable data - processing apparatus, a device is created that implements the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer - readable program instructions can also be stored in a computer - readable storage medium, which causes a computer, a programmable data - processing apparatus, and / or other devices to operate in a particular manner, so that the computer - readable medium storing the instructions includes a manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0091] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices, causing a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other devices to produce a computer-implemented process such that the instructions executed on the computer, other programmable data processing apparatus, or other devices implement the functions / acts specified in one or more boxes of the flowchart and / or block diagram.

[0092] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagram may represent a module, a segment of code, or a portion of an instruction, which contains one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two consecutive blocks may in fact be executed substantially in parallel, or they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block of the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented by a dedicated hardware-based system that performs the specified functions or acts, or by a combination of dedicated hardware and computer instructions.

[0093] The embodiments of the present disclosure have been described above. The above description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The choice of terms used herein is intended to best explain the principles of the embodiments, the practical application, or improvements made to the technology in the market, or to enable other ordinary skill in the art to understand the embodiments disclosed herein.

Claims

1. A method for managing a storage device, comprising: Determining whether a data access component of the storage device will move by comparing a time interval threshold with a plurality of data access time intervals between multiple data accesses within a predetermined length of time before the current time of the storage device, wherein the determination is based on whether each data access time interval among the plurality of data access time intervals is greater than the time interval threshold; If it is determined that the data access component will move, determining a first storage unit in the storage device based on the storage location of the data accessed last time in the storage device, the first storage unit corresponding to a first spatial position where the data access component is currently located; And Sending a read request for data in a second storage unit adjacent to the first storage unit in the storage device, so that the data access component moves from the first spatial position to a second spatial position corresponding to the second storage unit.

2. The method according to claim 1, wherein determining the first storage unit of the storage device comprises: Determining a first storage position of a storage address having a maximum offset in the storage position of the data accessed last time; And Determining that the first storage position is included in the first storage unit.

3. The method according to claim 1, wherein sending the read request comprises: Sending the read request at a time interval of a first time interval from the last data access.

4. The method according to claim 3, further comprising: Incrementing the value of the first time interval; And If it is determined that the delay of data access by the storage device exceeds a delay threshold, stopping incrementing the value of the first time interval.

5. The method according to claim 1, wherein determining the data access time interval comprises: Based on system parameters of the storage device, determining whether the movement of the data access component will cause a performance degradation of the storage device; And If it is determined that the movement of the data access component will cause a performance degradation of the storage device, determining the plurality of data access time intervals.

6. The method according to claim 1, wherein the storage device is a disk and the data access component is a magnetic head of the disk.

7. An electronic device, comprising: At least one processor; And At least one memory storing computer program instructions, the at least one memory and the computer program instructions being configured to, together with the at least one processor, cause the electronic device to perform actions for managing a storage device, the actions including: Determining whether a data access component of the storage device will move by comparing a time interval threshold with a plurality of data access time intervals between multiple data accesses within a predetermined length of time before the current time of the storage device, wherein the determination is based on whether each data access time interval among the plurality of data access time intervals is greater than the time interval threshold; If it is determined that the data access component will move, determine a first storage unit in the storage device based on the storage location of the data accessed last time in the storage device, where the first storage unit corresponds to a first spatial location where the data access component is currently located; and Send a read request for data in a second storage unit adjacent to the first storage unit in the storage device, so that the data access component moves from the first spatial location to a second spatial location corresponding to the second storage unit.

8. The electronic device according to claim 7, wherein determining the first storage unit of the storage device includes:[[]] Determine a first storage location of a storage address with the largest offset in the storage location of the data accessed last time; And Determine that the first storage location is included in the first storage unit.

9. The electronic device according to claim 7, wherein sending the read request includes:[[]] Send the read request at a time interval of a first time interval from the previous data access.

10. The electronic device according to claim 9, wherein the action further includes:[[]] Increment the value of the first time interval; And If it is determined that the delay of data access by the storage device exceeds a delay threshold, stop incrementing the value of the first time interval.

11. The electronic device according to claim 7, wherein determining the data access time interval includes:[[]] Based on system parameters of the storage device, determine whether the movement of the data access component will cause a performance degradation of the storage device; And If it is determined that the movement of the data access component will cause a performance degradation of the storage device, determine the plurality of data access time intervals.

12. The electronic device according to claim 7, wherein the storage device is a disk and the data access component is a magnetic head of the disk.

13. A computer program product, the computer program product being tangibly stored on a non-volatile computer-readable medium and including machine-executable instructions that, when executed, cause a device to perform the method according to any one of claims 1-6.

Citation Information

Patent Citations

  • Temperature-based disk defragmentation

    US20180095695A1