Adaptive tape calibration criteria based on number of write stops.
Adaptive tape calibration criteria address unnecessary calibrations due to write stalls by adjusting thresholds based on rewrite frequency, enhancing tape drive efficiency and throughput.
Patent Information
- Application Number
- JP2023546018
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-02-11
- Filing Date
- 2022-01-24
- Publication Date
- 2025-11-10
- Estimated Expiration
- 2042-01-24
AI Technical Summary
Tape drives experience unnecessary calibration due to write stalls, leading to decreased transfer speed and throughput, as existing methods fail to differentiate between rewrites caused by write stalls and other issues.
Adaptive tape calibration criteria that determine the number of write stalls and rewrites, adjusting calibration thresholds based on the ratio of rewrites to write stalls to minimize unnecessary calibrations.
Reduces unnecessary calibrations by accounting for write stalls, maintaining tape drive efficiency and throughput by performing calibration only when necessary.
Smart Images

Figure 0007766695000001 
Figure 0007766695000002 
Figure 0007766695000003
Abstract
Description
[Technical Field]
[0001] The present invention relates generally to the field of tape-based data storage, and more particularly to adaptive tape calibration criteria based on the number of write stops. [Background technology]
[0002] Magnetic tape data storage is a system for storing digital information on magnetic tape using digital recording. Currently, most magnetic tapes are packaged in cartridges and cassettes. Because much of the data currently recorded does not need to be accessed immediately, magnetic tape is the preferred solution for long-term data storage. Although it may seem outdated, the technology has advanced significantly since its introduction. The first commercial digital tape storage systems stored roughly 1 megabyte of data per tape, but modern cartridges hold over 15 terabytes of data, and capacity is constantly increasing.
[0003] Magnetic tape drives are still in use today, especially for offline data backup, due to their long-term storage stability and very favorable unit cost. Although data stored on tape cannot be accessed as quickly as data stored on a hard drive, tape storage is more energy-efficient and reliable. Furthermore, magnetic tape storage is cost-effective, typically costing one-sixth the cost of storing the same amount of data on disk. And while the rate of capacity growth for disk drives is slowing, magnetic tape storage capacity is still growing at approximately 33 percent per year.
[0004] In a tape drive, a channel is the process that converts digital signals to analog signals and outputs those analog signals from data tracks to tape, or that reads analog signals from tape and converts them to digital signals. Depending on the state of each head element, the channel determines the optimal values for various parameters based on the amount of current flowing through the head to optimize signal input and output. These values are stored in the tape drive's nonvolatile memory, the tape drive vital product data (VPD) for each head. When writing data to or reading data from tape, the values stored in the VPD are set in registers in the components that control the channel.
[0005] These channel parameters are adjusted during initial configuration immediately after a tape drive is shipped, or whenever their values need to be reconfigured due to head degradation or the condition of the tape media. This adjustment is called calibration. Calibration is the process of adjusting the channel settings for each track. During calibration, various parameters are optimized by moving to an area on the tape media where no user data has been written and repeatedly writing and reading data until the optimal values are determined. For example, during calibration, data is written to the tape while varying the voltage / amplitude levels for each track, and then the signal-to-noise ratio is measured when the data is read back. Calibration then independently selects the channel parameters from the best results for each track. This calibration process takes time, which slows down the tape drive's transfer speed because new data cannot be written while calibration is taking place.
[0006] In recent years, as capacity has increased, the area per bit (linear density x track width) that tape drives use to write to tape media has become extremely narrow. For example, before writing, the head must be aligned over the track. Alignment is not a problem when both the drive and media are in good condition, but if the condition deteriorates after use, alignment with the track width becomes difficult. If the drive writes data without accurate alignment, it may overwrite data written on other tracks or be unable to read the data. If the drive determines that the head is not properly aligned over the track, it will stop writing to the tape. This is called a stop write. Writing resumes when the head returns to the track, but a stop write increases the number of rewrites.
[0007] An increasing number of users are concerned about the slowdown in transfer rates caused by calibration. These users want tape drives that do not perform calibration when it is not necessary. One such case where calibration is not necessary is when the calibration is attempting to reduce rewrites that are actually caused by a write stall, because calibration cannot correct a write stall. The problem solved by this invention is to avoid tape drive calibrations that reduce tape throughput when rewrites are caused by a write stall. Summary of the Invention
[0008] Embodiments of the present invention include computer-implemented methods, computer program products, and systems for adaptive tape calibration criteria based on the number of write stalls. In a first embodiment, the number of rewrite occurrences caused by write stalls is determined for a particular tape drive type. In response to detecting a write stall during a write operation, the total number of write stalls is stored on the tape drive. A rewrite calibration threshold is determined. The rewrite calibration threshold includes the total number of write stalls on the tape drive and a calibration criterion value for the particular tape drive type. In response to the number of rewrite occurrences caused by write stalls exceeding the rewrite calibration threshold during a write operation on the tape drive, calibration of the tape drive is performed.
[0009] Embodiments of the present invention include computer-implemented methods and computer program products for adaptive tape calibration criteria based on the number of write stalls. In a second embodiment, a rewrite calibration threshold for a tape drive is determined. The rewrite calibration threshold includes a total number of write stall-based rewrites on the tape drive and a calibration criterion value for a particular tape drive type. Calibration of the tape drive is performed in response to the number of write stall-induced rewrite occurrences during a write operation on the tape drive exceeding the rewrite calibration threshold.
[0010] Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings, in which: [Brief explanation of the drawings]
[0011] [Figure 1] 1 is a functional block diagram illustrating a distributed data processing environment, according to one embodiment of the present invention. [Figure 2] 10(a) and 10(b) illustrate an example of determining the number of rewrites caused by a write stall, according to one embodiment of the present invention; [Figure 3]2 is a flowchart illustrating operational steps performed by an adaptive calibration program on a magnetic tape device in the distributed data processing environment of FIG. 1 for a preparatory procedure for determining the number of rewrite occurrences caused by each occurrence of a write stall during a write operation of a data set, in accordance with one embodiment of the present invention. [Figure 4] 2 is a flowchart illustrating operational steps performed by an adaptive calibration program on a magnetic tape drive in the distributed data processing environment of FIG. 1 to determine a criterion for rewriting based on the number of occurrences of write stalls while writing a data set, in accordance with one embodiment of the present invention. [Figure 5] 2 is a flowchart illustrating operational steps performed by an adaptive calibration program on a magnetic tape drive in the distributed data processing environment of FIG. 1 to determine whether calibration should be performed, according to one embodiment of the present invention. [Figure 6] 2 is a block diagram of components of a magnetic tape drive executing an adaptive calibration program in the distributed data processing environment of FIG. 1 according to one embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0012] In tape drives, a write head and a read head are arranged in pairs, and during a write operation, the read head reads back data from the tape immediately after writing it to the tape media. If the read data does not match the written data, the drive uses a different head to write the data that was not written. This mechanism of rewriting is called a rewrite. While moving the tape and writing data, the tape drive counts the number of rewrites and determines whether calibration is necessary. If calibration is determined to be necessary and the tape approaches the calibration area, calibration is performed to optimize the channel parameters.
[0013] This study investigates the impact of write stalls on rewrites when the head cannot be aligned over the track. When the head becomes difficult to align over the track due to media degradation from repeated use of the tape or debris on the drive head, the frequency of rewrites increases at a constant rate. Because the impact of write stalls is not considered, even if a small amount of debris causes rewrites, the frequency of rewrites may exceed a threshold, resulting in unnecessary calibration and a decrease in transfer speed.
[0014] An embodiment of the present invention describes a mechanism for modifying the reference value for the rewrite-triggered calibration to account for the number of rewrites caused by a write stall when a write stall is detected.
[0015] A data set is the smallest unit that a tape drive writes to tape. In a typical tape drive, such as an LTO tape drive with 32 head elements, a data set consists of 192 Codeword Interleave (CWI) set data units, which are written simultaneously using 32 heads. In one embodiment, the number of rewrites per write stall is pre-determined for each specific type of tape drive product. Each time a data set is written, the tape drive records the number of write stalls per data set in the tape drive's non-volatile memory while writing the data.
[0016] In one embodiment, when determining whether to perform calibration, the frequency of rewrite occurrences corresponding to the number of write stops is added to a reference value of the number of rewrites required to perform calibration. In one embodiment, whether to perform calibration is determined by comparing a rewrite reference value including the number of rewrites due to write stops with the frequency of rewrites occurring during actual writing.
[0017] FIG. 1 is a functional block diagram illustrating a distributed data processing environment, generally designated 100, suitable for operation of an adaptive calibration program 132 in accordance with at least one embodiment of the present invention. As used herein, the term "distributed" refers to a computer system that includes multiple physically separate devices that operate together as a single computer system. FIG. 1 illustrates only one embodiment and is not intended to imply any limitation with respect to the environments in which different embodiments may be implemented. Those skilled in the art will recognize that many modifications to the depicted environment may be implemented without departing from the scope of the present invention as defined by the claims.
[0018] Distributed data processing environment 100 includes computing device 110 connected to network 120 and magnetic tape device 130 connected to computing device 110. Network 120 may be, for example, a telecommunications network, a local area network (LAN), a wide area network (WAN), such as the Internet, or a combination of these three networks, and may include wired, wireless, or fiber optic connections. Network 120 may include one or more wired and / or wireless networks capable of transmitting and receiving data, voice, or video signals, or combinations thereof, including multimedia signals including voice, data, and video information. In general, network 120 may be any combination of connections and protocols that support communication between computing device 110 and other computing devices (not shown) in distributed data processing environment 100.
[0019] Computing device 110 may be a standalone computing device, an administrative server, a web server, a mobile computing device, or other electronic device or computing system capable of receiving, transmitting, and processing data. In one embodiment, computing device 110 may be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or a programmable electronic device capable of communicating with other computing devices (not shown) in distributed data processing environment 100 via network 120. In another embodiment, computing device 110 may represent a server computing system that utilizes multiple computers as a server system, for example, in a cloud computing environment. In another embodiment, computing device 110 represents a computing system that utilizes clustered computers and components (e.g., database server computers, application server computers) that function as a single, seamless pool of resources when accessed within distributed data processing environment 100.
[0020] In one embodiment, magnetic tape drive 130 includes adaptive calibration program 132. In one embodiment, adaptive calibration program 132 is a program, application, or subprogram of a larger program for adaptive tape calibration criteria based on the number of write stops.
[0021] In one embodiment, magnetic tape drive 130 includes information repository 134. In one embodiment, adaptive calibration program 132 may manage information repository 134. In an alternative embodiment, the operating system of the computing device may manage information repository 134, either alone or together with adaptive calibration program 132. Information repository 134 is a data repository capable of storing, collecting, comparing, or combining information, or any combination thereof. In some embodiments, information repository 134 is located external to magnetic tape drive 130 and is accessed via a communications network, such as network 120. In some embodiments, information repository 134 is stored on magnetic tape drive 130. In some embodiments, information repository 134 may be located on another computing device (not shown), provided that magnetic tape drive 130 has access to information repository 134. Information repository 134 includes, but is not limited to, tape drive configuration data, tape drive error data, tape cartridge error data, tape calibration data, storage system configuration data, file system data, and other data received by adaptive calibration program 132 from one or more sources, as well as data generated by adaptive calibration program 132.
[0022] The information repository 134 may be implemented using any volatile or non-volatile storage medium for storing information known in the art, as well as any suitable storage architecture known in the art, such as a relational database, an object-oriented database, or one or more tables.
[0023] Figures 2(a) and 2(b) show an example of determining the number of rewrites caused by write stops according to one embodiment of the present invention. In the example of Figures 2(a) and 2(b), a tape approximately 1000 meters long was divided into 80 areas, and statistical information for each area was recorded. The recorded information includes the number of write stop and rewrite occurrences within each area. In the tables of Figures 2(a) and 2(b), Area indicates the area number, Wrap indicates the identification of the written track, CO Rewrites indicates the number of rewrites, and Write Stops indicates the number of write stops.
[0024] The table in Figure 2(a) shows the number of rewrites and write stalls in regions 1 and 2. The table in Figure 2(b) shows that there were zero rewrites and write stalls in regions 21, 22, and 24. From this data, we can see that even when no write stalls occurred, approximately 1,628 rewrites occurred per area. In region 1, 2,853 rewrites occurred, compared to 647 write stalls. The number of retries caused by write stalls is 2,853 (region 1) - 1,628 (region 2) = 1,225. Therefore, the number of rewrites per write stall is 1,225 / 647 = 1.89, or approximately 2. In other words, the tape drive performs approximately two rewrites per write stall. It should be noted that this calculation of the number of rewrites per write stop is an approximation, as this value is only used to determine the threshold for calibration.
[0025] The table shown in Figure 2(b) shows that the occurrences of rewrites and stop writes in region 23 were 1830 and 25, respectively. The number of rewrites in regions 21, 22, and 24 does not include rewrites due to stop writes; all rewrites in these regions are due to other causes. Therefore, the baseline number of rewrites in these regions is approximately 1630, and the number of rewrites due to stop writes is approximately 200. This results in a ratio of rewrites per stop write for these regions of approximately 8.
[0026] Therefore, it is preferable to use a minimum value of 2 as the criterion for rewrites to determine whether to perform a calibration on this drive. This value avoids many unnecessary calibration operations, but does not use the higher thresholds seen in only a small sample of regions 21-24.
[0027] Therefore, to determine whether a calculation should be performed on the drive, the number of write stalls is multiplied by 2, the result is added to a predetermined rewrite criterion for the particular drive type, and this is compared to the number of rewrite occurrences per data set during actual writing.
[0028] For example, when the number of write stall occurrences for a data set is n, the number of rewrite occurrences is 2n. In the exemplary case of a tape drive with a calibration threshold set to 9, if five or more write stalls occur, the number of rewrites will reach 10 even if there are no problems with the drive (i.e., two rewrites per write stall x five write stalls). Because the number of rewrites exceeds the threshold of 9, existing techniques cause the conventional calibration threshold to perform unnecessary calibrations, even if the rewrites are caused by write stalls that cannot be corrected by calibration. However, by using the present invention, the rewrites caused by write stalls change the threshold to 9 + 2n = 19 in this example, and unnecessary calibrations are avoided. In other words, the present invention takes into account rewrites caused by write stalls and performs calibration only when truly necessary.
[0029] 3 is a flowchart illustrating operational steps performed by adaptive calibration program 132 on a magnetic tape drive in the distributed data processing environment of FIG. 1 for a preliminary procedure for calculating the percentage of rewrites caused by each occurrence of a write stall during a write operation of a data set, according to one embodiment of the present invention. In alternative embodiments, the steps of workflow 300 may be performed while other programs are running alongside adaptive calibration program 132. In one embodiment, adaptive calibration program 132 measures the number of rewrites on the drive for each data set being analyzed. In one embodiment, adaptive calibration program 132 measures the number of write stalls on the drive for each data set being analyzed. In one embodiment, adaptive calibration program 132 calculates the rewrites per write stall.
[0030] It should be appreciated that embodiments of the present invention provide a preliminary procedure for the adaptive calibration program 132 that determines, at a minimum, the number of rewrite occurrences caused by each occurrence of a write pause during a write operation of a data set. However, Figure 3 is illustrative of only one embodiment and is not intended to imply limitations with respect to the environments in which different embodiments may be implemented. Those skilled in the art will recognize that many modifications to the depicted environments may be implemented without departing from the scope of the present invention as defined by the appended claims.
[0031] The adaptive calibration program 132 measures the number of rewrites per data set → RW (step 302). In one embodiment, the adaptive calibration program 132 measures the number of rewrites caused by write stalls on the drive for each data set being analyzed. In one embodiment, the number of data sets to analyze is a system default value. In another embodiment, the number of data sets to analyze is received from a user or system administrator. In one embodiment, the adaptive calibration program 132 stores this value in RW. In the example of Figures 2(a) and 2(b) above, 80 areas were analyzed to determine the number of rewrites.
[0032] The adaptive calibration program 132 measures the number of rewrites on the GOOD drive → SW DS (Step 304). In one embodiment, the adaptive calibration program 132 measures the number of write stalls on the drive for each data set being analyzed. In one embodiment, the number of data sets to analyze is a system default value. In another embodiment, the number of data sets to analyze is received from a user or system administrator. In one embodiment, the adaptive calibration program 132 calculates this value as SW DS In the example shown in Figures 2(a) and 2(b) above, 80 areas were analyzed to determine the number of write stalls.
[0033] The adaptive calibration program 132 calculates the rewrites per write stop, step 306. In one embodiment, the adaptive calibration program 132 calculates the ratio of rewrites to write stops using equation (1). R=RW / SW DS (1)
[0034] In one embodiment, the ratio of rewrites to write stalls is measured on drives currently in use as well as on drives used for internal testing to establish a baseline ratio of rewrites to write stalls. In one embodiment, the adaptive calibration program 132 is then finished for this cycle.
[0035] 4 is a flow diagram illustrating operational steps performed by adaptive calibration program 132 on a magnetic tape drive in the distributed data processing environment of FIG. 1 to determine a criterion for rewriting based on the number of occurrences of write stalls while writing a data set, according to one embodiment of the present invention. In an alternative embodiment, other programs may perform the steps of workflow 400 while running alongside adaptive calibration program 132. In one embodiment, adaptive calibration program 132 takes the number of occurrences of write stalls while writing, determined in FIG. 2, and assigns this value to SW WRT In one embodiment, adaptive calibration program 132 retrieves the criteria value for that drive type and stores it in C. In one embodiment, adaptive calibration program 132 calculates a specific criteria value for a particular drive by considering the number of write stalls. In one embodiment, adaptive calibration program 132 then ends for this cycle.
[0036] It should be appreciated that embodiments of the present invention provide operational steps performed by adaptive calibration program 112 to determine a criterion for rewriting based on at least the number of write stall occurrences while writing a data set. However, FIG. 4 is illustrative of only one embodiment and is not intended to imply limitations with respect to the environments in which different embodiments may be implemented. Those skilled in the art will recognize that many modifications to the depicted environments may be implemented without departing from the scope of the present invention as defined by the appended claims.
[0037] The adaptive calibration program 132 counts the number of write stops during writing → SW WRT (Step 402). In one embodiment, the adaptive calibration program 132 counts the number of write stall occurrences during a data write operation and sets this value as SW WRT Store in.
[0038] The adaptive calibration program 132 gets a criterion for the drive type → C (step 404). In one embodiment, the adaptive calibration program 132 retrieves the criterion value for that drive type and stores it in C. In one embodiment, this criterion value is a previously measured rewrite criterion value for each drive type that is used to determine whether a calibration should be performed.
[0039] The adaptive calibration program 132 determines a criterion Cd for the drive (step 406). In one embodiment, the adaptive calibration program 132 calculates a specific reference value or criterion for a particular drive by considering the number of write stalls. In one embodiment, the adaptive calibration program 132 calculates a specific reference value Cd for a particular drive using equation (2). Cd = C + (SW WRT ×(RW / SW DS )) (2)
[0040] In one embodiment, equation (2) takes into account the number of write stalls to determine whether calibration should be performed.WRT is the number of write stalls encountered during the current write cycle, and RW / SW DS is the ratio of rewrites to write stalls determined in Figure 3 above. In one embodiment, Cd is calculated to determine if the number of rewrites exceeds the number of rewrites caused by write stalls plus a criterion value C for this drive type. This calculation is performed because if the number of rewrites not caused by write stalls exceeds a threshold, the rewrites can be corrected by calibration. In one embodiment, the adaptive calibration program 132 then ends for this cycle.
[0041] Figure 5 is a flow diagram illustrating operational steps performed by adaptive calibration program 132 on a magnetic tape drive in the distributed data processing environment of Figure 1 to determine whether calibration should be performed, in accordance with one embodiment of the present invention. In alternative embodiments, other programs may perform the steps of workflow 500 while running alongside adaptive calibration program 132.
[0042] In one embodiment, R(K) is the number of rewrite occurrences encountered while writing the previous K data sets. In one embodiment, R(i), the number of rewrite occurrences encountered while writing the ith data set, is compared to a criterion Cd used to determine if a calibration should be performed. If the number of rewrite occurrences is greater than this criterion, then 1 is added to count(n). If the number of counts obtained in the previous comparisons for the K data sets is greater than a threshold, then a calibration is performed.
[0043] In one embodiment, the adaptive calibration program 132 retrieves the number of rewrites for the last K data set writes and stores them in R(1) through R(K). In one embodiment, the adaptive calibration program 132 uses a counter i to count the number of data sets, i.e., i counts from 1 to K, and n is used to count the total number of data sets for which the number of rewrites exceeds a predetermined threshold. In one embodiment, the adaptive calibration program 132 determines whether the number of rewrites for data set i, i.e., R(i), exceeds a predetermined threshold Cd. In one embodiment, if the adaptive calibration program 132 determines that the number of rewrites for data set i exceeds the predetermined threshold Cd, the adaptive calibration program 132 increments the count of the total number of data sets for which the number of rewrites exceeds the predetermined threshold. In one embodiment, the adaptive calibration program 132 determines whether it has analyzed the last data set. That is, if i < K, there are still data sets to be analyzed. In one embodiment, if the adaptive calibration program 132 determines that it has not analyzed the last data set, the adaptive calibration program increases the counter i and analyzes the next data set. In one embodiment, the adaptive calibration program 132 determines whether the total count of all data sets for which the number of rewrites exceeds the threshold itself exceeds another predetermined threshold. In one embodiment, if the adaptive calibration program 132 determines that the total count of all data sets for which the number of rewrites exceeds the threshold itself exceeds another predetermined threshold, the adaptive calibration program 132 performs calibration. Then, the adaptive calibration program 132 ends for this cycle.
[0044] It should be appreciated that embodiments of the present invention provide, at a minimum, the operational steps performed by adaptive calibration program 132 to determine whether calibration should be performed. However, Figure 5 is illustrative of only one implementation and is not intended to imply limitations with regard to the environments in which different embodiments may be implemented. Those skilled in the art will recognize that many modifications to the depicted environments may be implemented without departing from the scope of the present invention as defined by the claims.
[0045] It should be understood that the process illustrated in FIG. 5 illustrates one possible iteration of the operational steps performed by the adaptive calibration program 132 to determine whether a calibration should be performed, and that this iteration is repeated each time a calibration is set to be performed.
[0046] The adaptive calibration program 132 obtains the rewrites R(1)...R(K) for the last K data sets (step 502). In one embodiment, the adaptive calibration program 132 retrieves the rewrite counts for the last K data sets written and stores them in R(1) through R(K). In one embodiment, the adaptive calibration program 132 retrieves the rewrite counts for the last K data sets written from the tape drive's memory.
[0047] The adaptive calibration program 132 sets i=1 and n=0 (step 504). In one embodiment, the adaptive calibration program 132 uses a counter i to count the number of data sets, where i counts from 1 to K and n is used to count the total number of data sets whose number of rewrites exceeds a predetermined threshold.
[0048] The adaptive calibration program 132 determines whether R(i)>Cd (decision block 506). In one embodiment, the adaptive calibration program 132 determines whether the number of rewrites, i.e., R(i), for data set i exceeds a predetermined threshold Cd. In one embodiment, the predetermined threshold Cd is the reference value determined in FIG. 5. In one embodiment, if the adaptive calibration program 132 determines that the number of rewrites for data set i does not exceed the predetermined threshold Cd (the "No" branch of decision block 506), the adaptive calibration program 132 proceeds to decision block 510 and checks the next data set. In one embodiment, if the adaptive calibration program 132 determines that the number of rewrites for data set i exceeds the predetermined threshold Cd (the "Yes" branch of decision block 506), the adaptive calibration program 132 proceeds to step 508 and increments a count of the total number of data sets for which the number of rewrites exceeds the predetermined threshold.
[0049] The adaptive calibration program 132 sets n=n+1 (step 508). In one embodiment, if the adaptive calibration program 132 determines that the number of rewrites for data set i exceeds a predetermined threshold Cd, the adaptive calibration program 132 increments a count n of the total number of data sets for which the number of rewrites exceeds the predetermined threshold.
[0050] The adaptation calibration program 132 determines whether its data set is the last data set (judgment block 510). In one embodiment, the adaptation calibration program 132 determines whether it has analyzed the last data set. That is, if i < K, there are data sets left to be analyzed. In one embodiment, if the adaptation calibration program 132 determines that it has not analyzed the last data set (the "no" branch of judgment block 510), the adaptation calibration program 132 proceeds to step 512 and checks the next data set. In one embodiment, if the adaptation calibration program 132 determines that it has analyzed the last data set (the "yes" branch of judgment block 510), the adaptation calibration program 132 proceeds to judgment block 514 and determines whether the count exceeds a predetermined threshold.
[0051] The adaptation calibration program 132 sets i = i + 1 (step 512). In one embodiment, if the adaptation calibration program 132 determines that it has not analyzed the last data set, the adaptation calibration program 132 increments the counter i and analyzes the next data set. In one embodiment, then the adaptation calibration program 132 returns to judgment block 506 and checks the next data set.
[0052] The adaptation calibration program 132 determines whether n is greater than the threshold (judgment block 514). In one embodiment, the adaptation calibration program 132 determines whether the total count of all data sets for which the number of rewrites exceeds the threshold itself exceeds another predetermined threshold. In one embodiment, if the adaptation calibration program 132 determines that the total count of all data sets for which the number of rewrites exceeds the threshold itself exceeds another predetermined threshold (the "yes" branch of judgment block 514), the adaptation calibration program 132 proceeds to step 516 and performs calibration. In one embodiment, if the adaptation calibration program 132 determines that the total count of all data sets for which the number of rewrites exceeds the threshold itself does not exceed another predetermined threshold (the "no" branch of judgment block 514), the adaptation calibration program 132 ends for this cycle.
[0053] The adaptive calibration program 132 performs a calibration (step 516). In one embodiment, the adaptive calibration program 132 performs a calibration if the adaptive calibration program 132 determines that the total count of all data sets whose number of rewrites exceeds a threshold value itself exceeds another predetermined threshold value. The adaptive calibration program 132 then ends for this cycle.
[0054] Figure 6 is a block diagram illustrating components of a computing device 110 suitable for adaptive calibration program 132 in accordance with at least one embodiment of the present invention. Figure 6 illustrates a computer 600, one or more processors 604 (including one or more computer processors), a communications fabric 602, memory 606 including random access memory (RAM) 616 and cache 618, persistent storage 608, a communications unit 612, an I / O interface 614, a display 622, and external devices 620. It should be understood that Figure 6 is illustrative of only one embodiment and does not imply limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be implemented.
[0055] As shown, computer 600 operates via a communications fabric 602, which provides communications between computer processor 604, memory 606, persistent storage 608, communications unit 612, and I / O interface 614. Communications fabric 602 may be implemented with any suitable architecture for communicating data or controlling information between processor 604 (e.g., a microprocessor, communications processor, and network processor), memory 606, external devices 620, and other hardware components in the system. For example, communications fabric 602 may be implemented with one or more buses.
[0056] Memory 606 and persistent storage 608 are computer-readable storage media. In the illustrated embodiment, memory 606 includes RAM 616 and cache 618. Generally, memory 606 may include any suitable computer-readable storage medium, either volatile or non-volatile. Cache 618 is a high-speed memory that enhances the performance of processor 604 by retaining recently and nearly recently accessed data from RAM 616.
[0057] Program instructions for adaptive calibration program 132 may be stored in persistent storage 608, or more generally, in a computer-readable storage medium, for execution by one or more of the respective computer processors 604 via one or more memories in memory 606. Persistent storage 608 may be a magnetic hard disk drive, a solid-state disk drive, a semiconductor storage device, a read-only memory (ROM), an electronically erasable programmable read-only memory (EEPROM), a flash memory, or any other computer-readable storage medium capable of storing program instructions or digital information.
[0058] The media used by persistent storage 608 may also be removable media. For example, a removable hard drive may be used for persistent storage 608. Other examples include optical and magnetic disks, thumb drives, and smart cards inserted into a drive for transfer to another computer-readable storage medium that is also part of persistent storage 608.
[0059] In these examples, communications unit 612 provides for communication with other data processing systems or devices. In these examples, communications unit 612 includes one or more network interface cards. Communications unit 612 may provide for communication through the use of one or both of physical and wireless communications links. In the context of some embodiments of the present invention, sources of various input data may be physically remote from computer 600 such that input data may be received, and outputs may similarly be transmitted, via communications unit 612.
[0060] The I / O interface 614 allows for the input and output of data to and from other devices that may be connected to the computer 600. For example, the I / O interface 614 may provide a connection to external devices 620, such as a keyboard, keypad, touchscreen, microphone, digital camera, or some other suitable input device or combination thereof. The external devices 620 may further include portable computer-readable storage media, such as thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to implement embodiments of the present invention, such as the adaptive calibration program 132, may be stored on such portable computer-readable storage media and loaded into the persistent storage 608 via the I / O interface 614. The I / O interface 614 also connects to a display 622.
[0061] Display 622 provides a mechanism for displaying data to a user and may be, for example, a computer monitor. Display 622 may also function as a touch screen, such as the display of a tablet computer.
[0062] The programs described herein are identified based on the application in which they are implemented in particular embodiments of the invention. However, it should be understood that the specific program names described herein are used merely as a matter of convenience and, therefore, should not limit the invention to the specific application identified or implied by such names or for use with the specific application identified and implied by such names.
[0063] The present invention may be a system, a method, or a computer program product, or a combination thereof. The computer program product may include a computer-readable storage medium having computer-readable program instructions thereon for causing a processor to perform aspects of the present invention.
[0064] The computer-readable storage medium may be any tangible device capable of holding and storing instructions for use by an instruction execution device. The computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, or semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded devices such as punch cards or raised structures in grooves having instructions recorded thereon, and any suitable combination thereof. As used herein, a computer-readable storage medium should not be construed as being a transitory signal per se, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating in a waveguide or other transmission body (e.g., a light pulse traveling in a fiber optic cable), or an electrical signal transmitted through an electrical wire.
[0065] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each corresponding computing / processing device, or can be downloaded to an external computer or external storage device over a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network can include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. 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 to a computer-readable storage medium in each corresponding computing / processing device for storage.
[0066] The computer-readable program instructions for carrying out the operations of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, or state-setting data, or may be source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk®, C++, and traditional procedural programming languages such as the “C” programming language or the like. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, 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 remote server. In the last scenario above, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry to carry out aspects of the present invention.
[0067] Aspects of the present invention are described herein with reference to flowchart and / or block diagram illustrations of methods, apparatus (systems) and computer program products according to embodiments of the invention, it being understood that each block of those flowchart and / or block diagram illustrations, and combinations of blocks in those flowchart and / or block diagram illustrations, can be implemented by computer-readable program instructions.
[0068] These computer-readable program instructions may be provided to a processor of a general-purpose or special-purpose computer, or other programmable data processing apparatus, in such a manner that the instructions, executed by the processor of the computer or other programmable data processing apparatus, create means for performing the functions / operations specified in the blocks of the flowchart and / or block diagrams, to form a machine. These computer-readable program instructions may also be stored on a computer-readable storage medium, such that the computer-readable storage medium on which the instructions are stored comprises an article of manufacture containing instructions for performing aspects of the functions / operations specified in the blocks of the flowchart and / or block diagrams, and may direct a computer, programmable data processing apparatus, or other apparatus, or combination thereof, to function in a particular manner.
[0069] These computer-readable program instructions may also be loaded onto a computer, other programmable data processing device, or other device to cause the computer, other programmable device, or other device to perform a series of operational steps to produce a computer-implemented process in such a manner that the instructions, when executed on the computer, other programmable device, or other device, perform the functions / operations specified in the blocks of the flowchart and / or block diagrams.
[0070] The flowcharts and block diagrams in the accompanying figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, including one or more executable instructions that implement the specified logical function(s). In some alternative implementations, the functions shown in the blocks may be performed in an order different from that shown in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending on the functionality 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, may be implemented by a dedicated hardware-based system that performs the specified functions or operations or implements a combination of dedicated hardware and computer instructions.
[0071] The foregoing description of various embodiments of the present invention has been provided for illustrative purposes and is not intended to be exhaustive or to limit the description to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art that do not depart from the scope and spirit of the invention. The terms used herein have been selected to best explain the principles, practical applications, or technical improvements of the embodiments over commercially available technology, or to enable those skilled in the art to understand the embodiments disclosed herein.
Claims
1. 1. A computer-implemented method comprising: determining, by one or more computer processors, a rewrite to write stop ratio for a particular tape drive type; in response to detecting one or more write stalls during a write operation on the tape drive, storing, by the one or more computer processors, on the tape drive, a number of write stalls detected during the write operation; determining, by the one or more computer processors, a rewrite calibration threshold; performing, by the one or more computer processors, a calibration of the tape drive in response to a first number of rewrites exceeding the rewrite calibration threshold while performing data write operations on the tape drive; 20. A computer-implemented method comprising:
2. determining the rewrite calibration threshold; retrieving, by the one or more computer processors, the number of write stalls detected while writing a data set; calculating, by the one or more computer processors, total write stall rewrites, wherein the total write stall rewrites is calculated by multiplying the number of write stalls detected while writing a data set by the ratio of rewrites to write stalls for the particular tape drive type; and adding, by said one or more computer processors, said total write stop rewrites to a calibration reference value for said particular tape drive type. The computer-implemented method of claim 1 further comprising:
3. determining the ratio of rewrites to write stops for the particular tape drive type; measuring, by the one or more computer processors, a second number of rewrites caused by write stalls for each of the one or more data sets on the particular tape drive type; measuring, by the one or more computer processors, the number of write stalls for each of the one or more data sets on the particular tape drive type; and calculating, by the one or more computer processors, the ratio of rewrites to write stalls for the particular tape drive type, wherein the ratio of rewrites to write stalls for the particular tape drive type is calculated by dividing the second number of rewrites caused by write stalls for each data set of the one or more data sets by the number of write stalls for each data set of the one or more data sets. The computer-implemented method of claim 1 further comprising:
4. 2. The computer-implemented method of claim 1, wherein the number of write stalls is stored in vital product data of the tape drive.
5. 2. The computer-implemented method of claim 1, wherein the ratio of rewrites to write stalls for the particular tape drive type is calculated for each particular tape drive type of one or more particular tape drive types.
6. A program for causing a computer processor to execute the computer-implemented method of any one of claims 1 to 5.
7. 6. A program for causing a computer processor to execute the computer-implemented method of any one of claims 1 to 5.
Citation Information
Patent Citations
Rewriting of codeword objects to magnetic data tape upon error detection.
JP2012514822A
Providing removable storage management services using removable storage error information
US20090040650A1