WO2012029114A1 - 記憶媒体診断装置、記憶媒体診断方法及び記憶媒体診断プログラム - Google Patents

記憶媒体診断装置、記憶媒体診断方法及び記憶媒体診断プログラム Download PDF

Info

Publication number
WO2012029114A1
WO2012029114A1 PCT/JP2010/064749 JP2010064749W WO2012029114A1 WO 2012029114 A1 WO2012029114 A1 WO 2012029114A1 JP 2010064749 W JP2010064749 W JP 2010064749W WO 2012029114 A1 WO2012029114 A1 WO 2012029114A1
Authority
WO
WIPO (PCT)
Prior art keywords
diagnosis
access
unit
storage medium
area
Prior art date
Application number
PCT/JP2010/064749
Other languages
English (en)
French (fr)
Inventor
博 櫻井
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2012531594A priority Critical patent/JP5418687B2/ja
Priority to PCT/JP2010/064749 priority patent/WO2012029114A1/ja
Publication of WO2012029114A1 publication Critical patent/WO2012029114A1/ja
Priority to US13/770,318 priority patent/US9177669B2/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/36Monitoring, i.e. supervising the progress of recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks

Definitions

  • the present invention relates to a storage medium diagnosis apparatus, a storage medium diagnosis method, and a storage medium diagnosis program.
  • the disclosed technology has been made in view of the above, and is a storage medium diagnostic device that shortens the diagnosis time of a storage medium and suppresses performance degradation even during operation of a server equipped with the storage medium
  • the purpose is to provide.
  • the storage medium diagnostic apparatus disclosed in the present application accesses a storage unit that stores a diagnosis result for each partial area with respect to a storage area of the storage medium, and an area corresponding to an access request from a higher-level apparatus.
  • a higher-level access execution unit that stores a result as a diagnosis result in the storage unit, a diagnosis region specifying unit that specifies a diagnosis region to be diagnosed next based on a diagnosis result for each partial region stored in the storage unit,
  • a diagnosis execution unit that accesses and diagnoses the diagnosis region specified by the diagnosis region specifying unit and stores the diagnosis result in the storage unit;
  • the storage medium diagnostic device disclosed in the present application, it is possible to shorten the diagnosis time of the storage medium, and to suppress a decrease in performance even during operation of a server equipped with the storage medium. There is an effect.
  • FIG. 1 is a functional block diagram illustrating the configuration of the storage medium diagnostic apparatus according to the first embodiment.
  • FIG. 2 is a functional block diagram illustrating the configuration of the server device on which the storage medium diagnosis device according to the second embodiment is mounted.
  • FIG. 3 is a functional block diagram illustrating the configuration of the HDD card according to the second embodiment.
  • FIG. 4 is a diagram illustrating an example of a data structure of the diagnosis condition table.
  • FIG. 5 is a diagram illustrating an example of a data structure of the diagnostic area management table.
  • FIG. 6 is a flowchart illustrating the procedure of the main process in the storage medium diagnosis process according to the second embodiment.
  • FIG. 7 is a flowchart illustrating a procedure of an access abnormality determination process in the storage medium diagnosis process.
  • FIG. 1 is a functional block diagram illustrating the configuration of the storage medium diagnostic apparatus according to the first embodiment.
  • FIG. 2 is a functional block diagram illustrating the configuration of the server device on which the storage medium diagnosis device according to the second embodiment is
  • FIG. 8 is a diagram for explaining a specific example of the storage medium diagnosis processing.
  • FIG. 9 is a diagram showing the data structure of the diagnostic condition table when the diagnostic access unit is changed.
  • FIG. 10 is a diagram illustrating a data structure of the diagnosis condition table in the RAID configuration.
  • FIG. 11 is a diagram illustrating a data structure of a diagnosis condition table when the diagnosis elapsed period is monitored.
  • FIG. 12 is a diagram illustrating a computer that executes a storage medium diagnosis program.
  • FIG. 1 is a functional block diagram illustrating the configuration of the storage medium diagnostic apparatus 1 according to the first embodiment.
  • the storage medium diagnostic apparatus 1 includes a storage unit 11, a higher-level access execution unit 12, a diagnosis area specifying unit 13, and a diagnosis execution unit 14.
  • the storage unit 11 stores a diagnosis result for each partial area regarding the storage area of the storage medium.
  • the upper access execution unit 12 accesses an area corresponding to the access request from the upper device, and stores the access result in the storage unit 11 as a diagnosis result.
  • the diagnosis region specifying unit 13 specifies a diagnosis region to be diagnosed next based on the diagnosis result for each partial region stored in the storage unit 11. Then, the diagnosis execution unit 14 accesses the diagnosis region specified by the diagnosis region specifying unit 13 to make a diagnosis, and stores the diagnosis result in the storage unit 11.
  • the storage medium diagnostic monitoring device 1 stores the access result of the area in response to the access request from the host device in the storage unit 11 as the diagnostic result. For this reason, the storage medium diagnostic apparatus 1 does not require the diagnosis execution unit 14 to make another diagnosis for this area, so that the diagnosis efficiency during operation can be improved and the diagnosis time of the storage medium during operation is shortened. it can. Furthermore, the storage medium diagnostic apparatus 1 can suppress a decrease in performance due to the diagnosis of the storage medium even during operation.
  • FIG. 2 is a functional block diagram illustrating the configuration of the server device 2 in which the storage medium diagnostic device according to the second embodiment is installed.
  • the server device 2 includes a CPU (Central Processing Unit) 21, a memory 22, a PCI-Express (hereinafter, PCIe) controller 23, a PCIe-HUB 24, and an HDD card 1A corresponding to a storage medium diagnostic device.
  • the server device 2 further includes an HDD (Hard Disk) 25 including a storage medium to be diagnosed, a USB controller 26, a DISPLAY controller 27, a LAN controller 28, and a power source 29.
  • the server apparatus 2 demonstrated the case where PCI-Express was employ
  • the CPU 21 is connected to a memory 22 that stores various programs and various data, and executes the programs.
  • the PCIe controller 23 connects the CPU 21 and memory 22 and the PCIe-HUB 24 and controls a bus having a PCI-Express interface.
  • the PCIe-HUB 24 is a hub of the PCI-Express interface standard.
  • the PCIe-HUB 24 is connected to the HDD card 1A, the USB controller 26, the DISPLAY controller 27, and the LAN controller 28 using a PCI-Express interface.
  • the HDD card 1A diagnoses the storage area of the storage medium provided in the HDD 25, and accesses the storage area corresponding to the access request when there is an access request to the HDD 25 through the LAN during the diagnosis period. Is the diagnostic result. For example, the HDD card 1A diagnoses the storage area of the storage medium provided in the HDD 25 for each predetermined access unit at a predetermined diagnosis interval. Then, the HDD card 1A completes the diagnosis related to the HDD 25 within a predetermined diagnosis limit period. When there is an access request from the host device during the diagnosis period of the diagnosis limit period, the HDD card 1A accesses the storage area corresponding to the access request from the HDD 25 and uses the access result of the accessed storage area as the diagnosis result. .
  • the configuration and operation of the HDD card 1A will be described in detail later.
  • the USB controller 26 controls a USB standard CD device and a keyboard.
  • the DISPLAY controller 27 controls the display.
  • the LAN controller 28 controls the LAN.
  • the power source 29 indicates a main power source that operates the server device 2 or a backup power source that backs up the main power source.
  • FIG. 3 is a functional block diagram of the configuration of the HDD card 1A according to the second embodiment.
  • the HDD card 1A includes a PCIe-BUS controller 31, an HDD controller 32, a nonvolatile memory 33, and a control unit 34.
  • the PCIe-BUS controller 31 controls a PCI-Express interface bus.
  • the HDD controller 32 controls the HDD 25.
  • the nonvolatile memory 33 is a memory that does not lose stored data even if it is not supplied with power from the power source 29, and includes, for example, a semiconductor memory element such as a flash memory or a storage device such as a hard disk or an optical disk. . Further, the nonvolatile memory 33 includes a diagnostic condition table 41 and a diagnostic area management table 42.
  • the diagnosis condition table 41 stores diagnosis conditions for diagnosing the storage medium provided in the HDD 25.
  • the diagnosis area management table 42 represents the access position to be diagnosed by 1 bit in the minimum access unit of the storage area of the HDD 25, and stores whether or not diagnosis has been performed for each access position.
  • the diagnostic condition table 41 and the diagnostic area management table 42 are stored in each HDD 25 and are periodically expanded from the HDD 25 to the nonvolatile memory 33.
  • the contents of the diagnosis condition table 41 and the diagnosis area management table 42 are written in the same table of each HDD 25 at a timing that does not affect access from the host device. Details of the diagnosis condition table 41 and the diagnosis area management table 42 will be described later.
  • the control unit 34 sequentially diagnoses the storage area of the minimum access unit in the HDD 25, and when there is an access request from the host device, accesses the storage area corresponding to the access request, and uses the access result as the diagnosis result as a diagnosis area management table 42. To store. Further, the control unit 34 includes a management table initialization unit 50, a request acquisition unit 51, an upper access request execution unit 52, a diagnosis request execution unit 53, an access abnormality determination unit 54, and a next diagnosis location specifying unit 55.
  • the control unit 34 is, for example, an integrated circuit such as ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array) or an electronic circuit such as CPU (Central Processing Unit) or MPU (Micro Processing Unit).
  • the management table initialization unit 50 initializes the diagnostic area management table 42. Specifically, the management table initialization unit 50 stores a value indicating that the diagnosis has not been performed in all the bit positions of the diagnosis area management table 42.
  • the request acquisition unit 51 acquires a diagnosis request or an access request from a host device. For example, the request acquisition unit 51 acquires a diagnosis request from the timer at each diagnosis interval set in advance in the timer. Further, the request acquisition unit 51 asynchronously acquires an access request from a higher-level device.
  • the upper access request execution unit 52 includes an access operation determination unit 52a and an access execution unit 52b, and executes an access request from the upper device as a diagnosis.
  • the access operation determination unit 52a determines an access operation related to the access request based on the moving amount of the header from the access position executed immediately before the access request from the host device to the access position of the access request. Specifically, the access operation determination unit 52a determines whether or not the access just before the access request from the higher-level device is an access request from the higher-level device. Then, when the previous access is not an access from a host device, that is, a diagnosis request access, the access operation determination unit 52a has a header moving amount from the access position of the diagnosis request to the access position of the access request in the vicinity. It is determined whether or not.
  • the access operation determination unit 52a determines that priority is given to the diagnosis of the access position subsequent to the access position of the diagnosis request when the moving amount of the header from the access position of the diagnosis request to the access position of the access request is close. To do. That is, if the access position from the immediately preceding access position to the access position of the access request is close, the access operation determining unit 52a determines that priority is given to the diagnosis without affecting the access request from the host device. Decide to run a diagnosis before.
  • the access operation determination unit 52a determines that the diagnosis is not given priority when the moving amount of the header from the access position of the diagnosis request to the access position of the access request is not near. That is, if the access position from the immediately preceding access position to the access position of the access request is not in the vicinity, the access operation determining unit 52a determines that priority is given to the access, and the access request from the higher-level device is affected. Decide not to run diagnostics.
  • the movement amount in the vicinity is, for example, 100 LBA (Logical Block Addressing), but it may be any movement amount that does not affect the access request from the host device even if diagnosis is prioritized. Determined according to performance.
  • the access operation determination unit 52a determines whether or not the amount of movement of the header from the previous access position to the access position of the current access request is greater than or equal to the average value. judge. Then, the access operation determination unit 52a determines to prefetch the access position subsequent to the previous access position when the moving amount of the header from the previous access position to the access position of the current access request is equal to or greater than the average value. To do.
  • prefetch means that an access position that has not been diagnosed is diagnosed in advance while accessing the access request at the timing of the access request from the host device.
  • the access operation determination unit 52a determines that the access request has little influence, and determines to execute prefetch before executing the access request.
  • the access operation determination unit 52a determines that prefetching is not performed when the amount of header movement from the previous access position to the access position of the current access request is less than the average value. That is, if the amount of movement from the previous access position to the access position of the access request is less than the average value, the seek time is shorter than the average, so the ratio of the prefetch access time to the access time of the access request is relatively large. Become. For this reason, the access operation determination unit 52a determines that the access request has a large influence, and determines not to execute prefetch before executing the access request.
  • the movement amount that is an average value is, for example, 1000 LBA, but may be any movement amount that does not affect the access request from the host device even if prefetching is performed, and is determined according to the type of the HDD 25 and the performance of the header. Is done.
  • the access execution unit 52b accesses the HDD 25 based on the access operation for the access request from the higher-level device determined by the access operation determination unit 52a. Specifically, when the previous access is a diagnosis request access and the determination is to prioritize diagnosis, the access execution unit 52b executes diagnosis of an access position subsequent to the access position of the diagnosis request. Further, the access execution unit 52b accesses the access position of the access request from the host device after executing the diagnosis. The access result of this access is used as a diagnosis result. The access execution unit 52b accesses the access position of the access request from the higher-level device when the previous access is a diagnosis request access and the determination is that the diagnosis is not prioritized. The access result of this access is used as a diagnosis result.
  • the access execution unit 52b executes the prefetch of the access position subsequent to the previous access position. Then, the access execution unit 52b accesses the access position of the access request from the higher-level device after executing the prefetch. These prefetch and access results are used as diagnosis results. Further, the access execution unit 52b accesses the access position of the access request from the host device when the previous access is access from the host device and it is determined not to prefetch. The access result of this access is used as a diagnosis result.
  • the diagnosis request execution unit 53 uses the diagnosis condition table 41 to diagnose the access position that is the diagnosis target.
  • the data structure of the diagnostic condition table 41 will be described with reference to FIG.
  • FIG. 4 is a diagram illustrating an example of a data structure of the diagnosis condition table.
  • the diagnosis condition table 41 stores a diagnosis limit period 41b, a diagnosis period 41c, a diagnosis address counter 41d, and a diagnosis interval 41e in association with each identification number 41a of the HDD 25.
  • the diagnostic condition table 41 stores a diagnostic access unit 41f, a diagnostic priority range 41g, a prefetch number 41h, and a prefetch activation seek distance 41i in association with each identification number 41a of the HDD 25.
  • the identification number 41a of the HDD 25 indicates a number uniquely assigned to each HDD 25 to be diagnosed connected to the HDD controller 32.
  • the diagnosis limit period 41b indicates a limit period for diagnosing a storage area to be diagnosed in the HDD 25.
  • the diagnosis cycle 41c indicates a diagnosis cycle in the HDD 25.
  • the diagnostic address counter 41d indicates a counter corresponding to the access position of the HDD 25 to be diagnosed next.
  • the counter value of the diagnostic address counter 41d corresponds to the bit position of the diagnostic area management table 42.
  • the diagnosis interval 41e indicates a diagnosis interval for diagnosis performed once in the diagnosis limit period 41b.
  • the diagnosis location executed at one time is the access position of the HDD 25 corresponding to the counter indicated by the diagnosis address counter 41d.
  • Diagnostic access unit 41f indicates a diagnostic access unit executed at one time.
  • the diagnosis priority range 41g indicates a range of seek distance that can be preferentially diagnosed before an access request from a host device. For example, the diagnosis priority range 41g indicates the amount of movement recognized as a neighborhood.
  • the prefetch number 41h indicates an access unit for prefetching at one time. The prefetch number 41h is desirably the same as the diagnostic access unit 41f.
  • the prefetch activation seek distance 41i indicates a range of seek distances that can be prefetched before an access request from a host device. For example, the prefetch activation seek distance 41i indicates the average moving amount of the header.
  • “2week” indicating two weeks is stored in the diagnosis limit period 41b.
  • “3week” indicating three weeks is stored.
  • the diagnosis address counter 41d stores the bit position “2” of the diagnosis area management table 42 corresponding to the access position where the diagnosis is performed next.
  • “5 minutes” is stored in the diagnosis interval 41e.
  • “10LBA” is stored in the diagnostic access unit 41f.
  • “Within 100 LBA” is stored in the diagnostic priority range 41g.
  • “10 LBA” is stored in the prefetch number 41h.
  • “1000 LBA or more” is stored in the prefetch activation seek distance 41i.
  • the diagnosis request execution unit 53 sets the access position of the HDD 25 corresponding to the counter indicated by the diagnosis address counter 41 d. Diagnose.
  • the access abnormality determination unit 54 determines whether or not the access to the HDD 25 is abnormal. If it is determined that the access is abnormal, the access abnormality determination unit 54 repairs the portion having the abnormality. Specifically, the access abnormality determination unit 54 determines whether or not there is an abnormality in the access at the access position accessed by the access execution unit 52b or the diagnosis request execution unit 53. Then, when there is no abnormality in access, the access abnormality determination unit 54 stores a value indicating that diagnosis has been performed at the bit position of the diagnostic area management table 42 corresponding to the access position where the access is normal. . Then, if there is an abnormality in access, the access abnormality determination unit 54 determines whether or not the abnormality is correctable.
  • the access abnormality determination unit 54 corrects the read data using an ECC code embedded in advance, and writes the corrected data in the same location. In addition, when there is an uncorrectable abnormality, the access abnormality determination unit 54 repeats reading until the abnormal part becomes normal, up to a predetermined number of retries. When the abnormal part becomes normal, the access abnormality determination unit 54 indicates that the diagnosis has been made at the bit position of the diagnostic area management table 42 corresponding to the access position where the abnormal part has become normal. Stores a value. Further, the access abnormality determination unit 54 executes an error process corresponding to the abnormality when the abnormal part is not normal.
  • the correctable abnormality refers to an abnormality in which bit corruption occurs due to, for example, a soft error, storage medium deterioration, environmental temperature, vibration, or noise.
  • the next diagnosis location specifying unit 55 specifies the diagnosis location to be diagnosed next by the diagnosis request. Specifically, when the access position corresponding to the diagnosis address counter 41d is diagnosed, the next diagnosis location specifying unit 55 counts up the counter indicated by the diagnosis address counter 41d based on the diagnosis area management table 42. That is, when the bit position of the diagnosis area management table 42 indicated by the counter that has been counted up has been diagnosed, the next diagnosis location specifying unit 55 counts up the counter to a bit position that has not been diagnosed.
  • next diagnosis location specifying unit 55 adjusts the counter indicated by the diagnosis address counter 41d based on the diagnosis area management table 42 when access corresponding to the access request from the host device or access by prefetch is performed. That is, when the access position corresponds to the counter indicated by the diagnosis address counter 41d, the next diagnosis location specifying unit 55 determines that the diagnosis has been made and counts up the counter to a bit position that has not been diagnosed.
  • FIG. 5 is a diagram illustrating an example of a data structure of the diagnostic area management table.
  • the diagnosis area management table 42 stores a value indicating whether diagnosis has been performed in association with each bit.
  • “0” is stored when the diagnosis is completed
  • “1” is stored when the diagnosis is not completed.
  • each bit is a bit corresponding to the access position to be diagnosed in the HDD 25.
  • the counter indicated by the diagnostic address counter 41d represents the bit position of the diagnostic area management table 42.
  • FIG. 6 shows the procedure of the main process in the storage medium diagnosis process
  • FIG. 7 shows the procedure of the access abnormality determination process in the storage medium diagnosis process.
  • FIG. 6 is a flowchart illustrating the procedure of the main process in the storage medium diagnosis process according to the second embodiment.
  • the management table initial unit 50 initializes the diagnosis area management table 42 (step S11). Specifically, the management table initialization unit 50 stores a value (for example, “1”) indicating that diagnosis has not been performed in all the bit positions of the diagnosis area management table 42. Then, the request acquisition unit 51 determines whether or not there is an access request or a diagnosis request from the host device (step S12). The access request from the host device is acquired asynchronously from the host device. The diagnosis request is acquired from the timer at each diagnosis interval set in advance in the timer.
  • step S12 When it is determined by the request acquisition unit 51 that there is no access request or diagnosis request from the host device (step S12; No), the request acquisition unit 51 proceeds to step S12 to repeat the determination process. On the other hand, when it is determined by the request acquisition unit 51 that there is an access request or a diagnosis request from the host device (step S12; Yes), the request acquisition unit 51 determines whether the access request is from the host device. (Step S13).
  • step S13 determines that the access request is not from the higher-level device (step S13; No)
  • the diagnosis request execution unit 53 diagnoses the access position corresponding to the diagnosis address counter 41d for the HDD 25 (step S14). . Then, the diagnosis request execution unit 53 proceeds to step S31.
  • the access operation determination unit 52a determines whether or not the previous access is an access request access from the higher-level device. Is determined (step S15). When the immediately preceding access is not an access request access from the host device (step S15; No), the access operation determination unit 52a determines whether the access position of the access request from the host device is within 100 LBA with respect to the diagnostic address counter 41d. Is determined (step S16). That is, the access operation determination unit 52a determines whether or not the moving amount of the header from the access position of the immediately preceding diagnosis request to the access position of the access request is close.
  • the access operation determination unit 52a prioritizes the diagnosis of the access position subsequent to the access position of the diagnostic request. Decide to do. That is, the access operation determination unit 52a determines that even if priority is given to the diagnosis, the access request from the higher-level device is not affected. Then, the access execution unit 52b diagnoses the access position corresponding to the diagnostic address counter 41d (step S17), and then accesses the access position of the access request from the host device (step S18).
  • the access operation determination unit 52a determines that the diagnosis is not prioritized. In other words, the access operation determination unit 52a determines that an access request from a higher-level device is affected when priority is given to diagnosis. Then, the access execution unit 52b proceeds to Step S18 in order to access the access position of the access request from the host device.
  • the access operation determination unit 52a determines whether the access request from the higher-level device is 1000 LBA or more with respect to the previous access. Determination is made (step S19). That is, the access operation determination unit 52a determines whether or not the amount of header movement from the previous access position to the access position of the current access request is greater than or equal to the average value.
  • the access operation determination unit 52a determines to prefetch the access position subsequent to the previous access position. That is, the access operation determination unit 52a determines that the prefetch does not affect the access request from the host device. Then, the access execution unit 52b executes prefetch of an access position subsequent to the immediately preceding access position (Step S20). Thereafter, the access execution unit 52b accesses the access position of the access request from the higher-level device (step S21).
  • the access operation determination unit 52a determines not to prefetch. That is, the access operation determination unit 52a determines that prefetching has an effect on an access request from a higher-level device. Then, the access execution unit 52b proceeds to step S21 in order to access the access position of the access request from the host device.
  • FIG. 7 is a flowchart illustrating a procedure of an access abnormality determination process in the storage medium diagnosis process according to the second embodiment.
  • the access abnormality determination unit 54 determines whether or not access at the access position by the access execution unit 52b or the diagnosis request execution unit 53 has been normally completed (step S31).
  • the access abnormality determination unit 54 determines that the access has been normally completed (step S31; Yes)
  • the access abnormality determination unit 54 notifies a diagnosis completion instruction for the access position that has been normally completed (step S32).
  • the access abnormality determination unit 54 stores a value (for example, “0”) indicating that the diagnosis has been completed in the bit position of the diagnosis area management table 42 corresponding to the access position where the diagnosis completion instruction has been given.
  • step S33 determines whether or not the abnormality is correctable. If the access abnormality determination unit 54 determines that the abnormality is correctable (step S33; Yes), the access abnormality determination unit 54 corrects the data read using, for example, an ECC code, and targets the corrected data. The data is written again in the location (step S34). Then, the access abnormality determination unit 54 proceeds to step S39.
  • the access abnormality determination unit 54 determines whether the abnormality is uncorrectable (step S35). When it is determined by the access abnormality determination unit 54 that the abnormality is not uncorrectable (step S35; No), the access abnormality determination unit 54 performs an error process corresponding to the cause of the abnormality and ends the process.
  • step S35 when the access abnormality determining unit 54 determines that the abnormality is uncorrectable (step S35; Yes), the access abnormality determining unit 54 reads the target portion again (step S36). Then, the access abnormality determination unit 54 determines whether or not a predetermined number of retries has been exceeded (step S37). When the number of retries is not exceeded by the access abnormality determination unit 54 (step S37; No), the process proceeds to step S31. On the other hand, when the number of retries is exceeded by the access abnormality determination unit 54 (step S37; Yes), the access abnormality determination unit 54 registers the target location as a diagnostic abnormality LBA (step S38).
  • next diagnosis location specifying unit 55 determines whether or not all diagnoses are completed on the diagnosis area management table 42 (step S39). Specifically, the next diagnosis location specifying unit 55 determines whether or not all bits of the diagnosis area management table 42 are values (for example, “0”) indicating that diagnosis has been completed.
  • next diagnosis location specifying unit 55 If it is determined that all diagnoses have been completed (step S39; Yes), the next diagnosis location specifying unit 55 notifies the timer that it will pause until the next diagnosis cycle (step S40). On the other hand, when it is determined that all diagnosis is not completed (step S39; No), the next diagnosis location specifying unit 55 specifies the value of the diagnosis address counter 41d based on the diagnosis area management table 42.
  • next diagnosis location specifying unit 55 counts up the counter indicated by the diagnosis address counter 41d based on the diagnosis area management table 42 (step S41).
  • the next diagnosis location specifying unit 55 increments the counter to a bit position that has not been diagnosed.
  • the next diagnosis location specifying unit 55 adjusts the counter indicated by the diagnosis address counter 41d based on the diagnosis area management table 42 (step S42). .
  • the next diagnosis location specifying unit 55 determines that the diagnosis has been made and counts up the counter to a bit position that has not been diagnosed.
  • the access abnormality determination unit 54 updates the diagnostic area management table 42 (step S43).
  • the access abnormality determination unit 54 notifies the higher-level device that the diagnosis has been exceeded when the period of completion of the diagnosis exceeds two weeks, which is the diagnosis limit period 41b (step S44). Then, the access abnormality determination unit 54 proceeds to step S12 in order to acquire the next diagnosis request or the access request from the host device.
  • FIG. 8 is a diagram for explaining a specific example of the storage medium diagnosis processing.
  • the bits of the diagnostic area management table 42 are represented by white as “undiagnosed bits” instead of a value (for example, “1”) indicating that diagnosis has not been performed.
  • black is used as “diagnosed bit by diagnosis request”
  • diagonal lines are used as “diagnostic bit by access request from host device”
  • prefetch It is represented by a vertical line as “diagnosed bit by
  • the management table initial unit 50 initializes the diagnostic area management table 42 and the diagnostic address counter 41d.
  • the management table initial unit 50 stores the undiagnosed bit in the diagnostic area management table 42 and stores “0” in the diagnostic address counter 41d.
  • the diagnosis request execution unit 53 diagnoses the access position of the HDD 25 corresponding to “0” indicated in the diagnosis address counter 41d. Then, when the access is normal, the access abnormality determination unit 54 stores “diagnosed bit by diagnosis request” in the bit position corresponding to “0” indicated in the diagnosis address counter 41d in the diagnosis area management table 42. To do. Then, the next diagnosis location specifying unit 55 counts up the value of the diagnosis address counter 41d and sets this value to “1”.
  • the diagnosis request execution unit 53 diagnoses the access position of the HDD 25 corresponding to “1” indicated in the diagnosis address counter 41d. Then, when the access is normal, the access abnormality determination unit 54 stores “the diagnosed bit by the diagnosis request” at the bit position corresponding to “1” indicated by the diagnosis address counter 41d in the diagnosis area management table 42. To do. Then, the next diagnosis location specifying unit 55 counts up the value of the diagnosis address counter 41d and sets this value to “2”.
  • the diagnosis request execution unit 53 diagnoses the access position of the HDD 25 corresponding to “2” indicated in the diagnosis address counter 41d. Then, when the access is normal, the access abnormality determination unit 54 stores “the diagnosed bit by the diagnosis request” in the bit position corresponding to “2” indicated by the diagnosis address counter 41d in the diagnosis area management table 42. To do. Then, the next diagnosis location specifying unit 55 counts up the value of the diagnosis address counter 41d and sets this value to “3”.
  • the access operation determination unit 52a determines to give priority to the diagnosis of the access position subsequent to the access position of the diagnosis request. Then, the access execution unit 52b diagnoses the access position corresponding to “2” indicated in the diagnosis address counter 41d, and then accesses the access position of the access request from the host device.
  • the access abnormality determination unit 54 stores “the diagnosed bit by the diagnosis request” in the bit position corresponding to “2” indicated by the diagnosis address counter 41d in the diagnosis area management table 42. To do. Furthermore, the access abnormality determination unit 54 stores “diagnosed bit by access request from host device” in a bit position corresponding to the access request from the host device. Then, the next diagnosis location specifying unit 55 counts up the value of the diagnosis address counter 41d and sets this value to “3”.
  • the access operation determination unit 52a determines that priority is not given to diagnosis. Then, the access execution unit 52b accesses the access position of the access request from the host device. Then, when the access is normal, the access abnormality determination unit 54 stores “the diagnosed bit by the access request from the host device” in the bit position corresponding to the access request from the host device in the diagnosis area management table 42. To do.
  • the access position of the access request from the host device is 1000 LBA or more with respect to the previous access position (J6).
  • the access operation determination unit 52a determines to prefetch the access position that follows the previous access position.
  • the access execution unit 52b executes prefetching of the access position subsequent to the immediately preceding access position, and then accesses the access position of the access request from the host device.
  • the access abnormality determination unit 54 stores “diagnosed bit by prefetch” at the bit position corresponding to the access position where the prefetch is executed in the diagnosis area management table 42.
  • the access abnormality determination unit 54 stores “the diagnosed bit by the access request from the host device” in the bit position corresponding to the access request from the host device in the diagnosis area management table 42.
  • the access position of the access request from the host device is less than 1000 LBA with respect to the immediately preceding access position (J7).
  • the access operation determination unit 52a determines not to prefetch.
  • the access execution unit 52b accesses the access position of the access request from the host device.
  • the access abnormality determination unit 54 stores “the diagnosed bit by the access request from the host device” in the bit position corresponding to the access request from the host device in the diagnosis area management table 42. To do.
  • the diagnosis area management table 42 stores the diagnosis result for each minimum access unit of the storage area of the HDD 25. Then, when the access request from the host device is acquired, the upper access request execution unit 52 executes the access request as a diagnosis, and notifies the access abnormality determination unit 54 that the diagnosis has been completed. Store. Then, the next diagnosis location specifying unit 55 specifies the diagnosis region to be diagnosed next based on the diagnosis result stored in the diagnosis region management table 42. Then, the diagnosis request execution unit 53 accesses and diagnoses the diagnosis area specified by the next diagnosis specifying part 55, and causes the access abnormality determination part 54 to store the diagnosis in the diagnosis area management table 42.
  • the upper access request execution unit 52 executes an access request from the upper device as a diagnosis, and stores in the diagnosis area management table 42 that the diagnosis has been completed. For this reason, the upper access request execution unit 52 does not need to diagnose the storage area relating to the access request again, so that the diagnosis efficiency during operation can be improved. Further, the upper access request execution unit 52 can shorten the storage medium diagnosis time during operation. Furthermore, the storage medium diagnostic apparatus 1 can suppress a decrease in performance due to the diagnosis of the storage medium even during operation.
  • the access operation determination unit 52a performs the access based on the moving amount of the header from the access position executed immediately before the access request from the host device to the access position of the access request. Determine the access behavior associated with the request. Then, the access execution unit 52b accesses the HDD 25 based on the access operation determined by the access operation determination unit 52a.
  • the access operation determination unit 52a determines the access operation related to the access request based on the amount of movement of the header to the access position of the access request from the host device. Therefore, the access operation determination unit 52a can determine an access operation that suppresses a decrease in access performance from the host device.
  • the access operation determination unit 52a when the moving amount of the header from the access position of the diagnostic request immediately before the access request to the access position of the access request is close, It is determined that the subsequent diagnosis will be given priority. According to such a configuration, if the movement amount of the header is close, the access operation determination unit 52a has little influence on the access performance from the host device even if the priority is given to the subsequent of the access position of the diagnosis request. Diagnosis efficiency during operation can be increased. Then, the access operation determination unit 52a can shorten the diagnosis time of the HDD 25.
  • the access operation determination unit 52a when the moving amount of the header from the access position of the access request immediately before the current access request to the access position of the current access request is equal to or larger than the average value, It is determined that the subsequent of the previous access position is diagnosed in advance. According to such a configuration, the access operation determination unit 52a has a small influence on the access performance from the host device even if the subsequent access position is diagnosed in advance if the amount of movement of the header is equal to or greater than the average value. The diagnostic efficiency at the time can be increased. Further, the access operation determination unit 52a can shorten the diagnosis time of the HDD 25.
  • the diagnosis area management table 42 represents the minimum access unit of the storage area of the HDD 25 by 1 bit.
  • the diagnosis area management table 42 is not limited to this, and an access unit that is an integral multiple of the minimum access unit of the storage area of the HDD 25 may be represented by 1 bit.
  • the diagnosis request execution unit 53 uses the diagnosis condition table 41 to access and diagnose the area of the diagnosis access unit 41f that is an integral multiple of the minimum access unit in the storage area of the HDD 25.
  • FIG. 9 is a diagram showing the data structure of the diagnostic condition table 41 when the diagnostic access unit is changed. As illustrated in FIG. 9, “20 LBA” that is twice the minimum access unit of 10 LBA is stored in the diagnostic access unit 41 f.
  • the access abnormality determination unit 54 stores in the diagnosis area management table 42 that the area has been diagnosed. Thereby, the diagnostic area management table 42 can reduce the storage capacity and shorten the diagnostic time of the storage area of the HDD 25. Further, when the area corresponding to the access request from the host device is smaller than the diagnostic access unit 41f, the access execution unit 52b accesses the storage area for the diagnostic access unit 41f including the area. As a result, the access execution unit 52b can diagnose the storage area in advance beyond the area corresponding to the access request from the host device, so that the diagnosis time of the storage area of the HDD 25 can be shortened.
  • the diagnosis request execution unit 53 diagnoses the storage area of the storage medium provided in the HDD 25.
  • the diagnosis request execution unit 53 may be configured such that the HDD 25 may have a RAID configuration, and may diagnose a storage area of a storage medium having a RAID configuration.
  • the diagnosis request execution unit 53 preferentially diagnoses the redundant portion of the storage medium defined by the characteristics of the RAID configuration.
  • the diagnosis request execution unit 53 makes a diagnosis using the storage medium of the redundant portion, so that the diagnosis of the storage area of the storage medium can be made more efficient.
  • FIG. 10 is a diagram showing a data structure of the diagnostic condition table 41 in the RAID configuration. As shown in FIG. 10, in the diagnostic access unit 41f and the prefetch number 41h, an access unit 10 times the stripe length is stored.
  • the next diagnosis location specifying unit 55 notifies the host device that the diagnosis has been exceeded when the period of completion of diagnosis exceeds two weeks, which is the diagnosis limit period 41b.
  • the next diagnosis location specifying unit 55 may monitor the diagnosis elapsed period and the remaining diagnosis capacity of the storage area, and adjust the diagnosis access unit so that the diagnosis of the storage area is completed during the diagnosis elapsed period. .
  • FIG. 11 is a diagram showing a data structure of the diagnosis condition table 41 when the diagnosis elapsed period is monitored. As shown in FIG. 11, a diagnosis elapsed period 41k and a remaining diagnosis capacity 41l are added. When the diagnosis elapsed period 41k approaches the diagnosis limit period 41b, the next diagnosis location specifying unit 55 adjusts the diagnosis access unit 41f and the prefetch number 41h according to the remaining diagnosis capacity 41l. Further, the next diagnosis location specifying unit 55 may adjust the diagnosis interval 41e.
  • the request acquisition unit 51 may simultaneously acquire a diagnosis request and an access request from a host device.
  • the access operation determination unit 52a is involved in the access request based on the moving amount of the header from the access position executed immediately before the access request from the host device to the access position of the access request. The access operation may be determined.
  • the access execution unit 52b Based on the access operation determined by the access operation determination unit 52a, the access execution unit 52b performs diagnosis and prefetching of the access position subsequent to the previous access position, and executes access to the access request. To do.
  • the access execution unit 52b can perform further diagnosis while executing access to an access request from a higher-level device, thereby improving diagnosis efficiency.
  • the HDD card 1A is realized by mounting each function such as the request acquisition unit 51, the upper access request execution unit 52, and the diagnosis request execution unit 53 in an information processing apparatus such as a known personal computer or workstation. can do.
  • each component of each illustrated apparatus does not necessarily need to be physically configured as illustrated.
  • the specific mode of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured.
  • the upper access request execution unit 52 and the access abnormality determination unit 54, and the diagnosis request execution unit 53 and the access abnormality determination unit 54 may be integrated as one unit.
  • the access abnormality determination unit 54 may be distributed to a determination unit that determines an access abnormality and a repair unit that repairs the accessed data when the access abnormality is determined.
  • the nonvolatile memory 33 may be connected as an external device of the HDD card 1A via a PCI-Express bus or a network.
  • FIG. 12 is a diagram illustrating a computer that executes a storage medium diagnostic program.
  • the computer 1000 includes a RAM (Random Access Memory) 1010, a cache 1020, an HDD 1030, a CPU (Central Processing Unit) 1040, and a bus 1050.
  • the RAM 1010, cache 1020, HDD 1030, and CPU 1040 are connected by a bus 1050.
  • the HDD 1030 stores a storage medium diagnostic program 1031 having the same function as the HDD card 1A shown in FIG. Further, the HDD 1030 stores diagnosis related information 1032 corresponding to information (the diagnosis condition table 41 and the diagnosis area management table 42) in the nonvolatile memory 33 illustrated in FIG.
  • the CPU 1040 reads out the storage medium diagnostic program 1031 from the HDD 1030 and expands it in the RAM 1010, so that the storage medium diagnostic program 1031 functions as the storage medium diagnostic process 1011. Then, the storage medium diagnosis process 1011 expands the information read from the diagnosis related information 1032 to an area allocated to itself on the RAM 1010 as appropriate, and executes various data processing based on the expanded data.
  • the storage medium diagnostic program 1031 is not necessarily stored in the HDD 1030, and the computer 1000 may read and execute the program stored in a storage medium such as a CD-ROM. Further, this program may be stored in another computer (or server) connected to the computer 1000 via a public line, the Internet, a LAN (Local Area Network), a WAN (Wide Area Network), or the like. In this case, the computer 1000 reads the program from these and executes it.
  • a storage medium such as a CD-ROM.
  • this program may be stored in another computer (or server) connected to the computer 1000 via a public line, the Internet, a LAN (Local Area Network), a WAN (Wide Area Network), or the like. In this case, the computer 1000 reads the program from these and executes it.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

 記憶媒体診断装置(1)が、記憶媒体の記憶領域に関して部分領域毎の診断結果を記憶する記憶部(11)と、上位装置からのアクセス要求に対応する領域をアクセスし、該アクセス結果を診断結果として記憶部(11)に格納する上位アクセス実行部(12)と、記憶部(11)に記憶された部分領域毎の診断結果に基づいて、次に診断すべき診断領域を特定する診断領域特定部(13)と、診断領域特定部(13)によって特定された診断領域をアクセスして診断し、該診断結果を記憶部(11)に格納する診断実行部(14)とを備えることとしたので、記憶媒体の診断時間の短縮化を図り、運用中であってもパフォーマンスの低下を抑制できる。

Description

記憶媒体診断装置、記憶媒体診断方法及び記憶媒体診断プログラム
 本発明は、記憶媒体診断装置、記憶媒体診断方法及び記憶媒体診断プログラムに関する。
 従来から、サーバに搭載される記憶媒体の信頼性を確保するために、定期的または不定期的に当該記憶媒体の診断が運用外に行われている。これら記憶媒体の容量は、近年、顕著に増加しているので、記憶媒体の診断がサーバの運用外に完了せず、サーバの運用中にかかる場合が多くなっている。
特開2000-339107号公報
 しかしながら、記憶媒体の診断がサーバの運用中に行われると、診断時間が長時間化し、サーバにおける運用のパフォーマンスが低下するという問題があった。
 開示の技術は、上記に鑑みてなされたものであって、記憶媒体の診断時間の短縮化を図り、記憶媒体を搭載するサーバの運用中であってもパフォーマンスの低下を抑制する記憶媒体診断装置などを提供することを目的とする。
 本願の開示する記憶媒体診断装置は、一つの態様において、記憶媒体の記憶領域に関して部分領域毎の診断結果を記憶する記憶部と、上位装置からのアクセス要求に対応する領域をアクセスし、該アクセス結果を診断結果として前記記憶部に格納する上位アクセス実行部と、前記記憶部に記憶された部分領域毎の診断結果に基づいて、次に診断すべき診断領域を特定する診断領域特定部と、前記診断領域特定部によって特定された診断領域をアクセスして診断し、該診断結果を前記記憶部に格納する診断実行部とを備える。
 本願の開示する記憶媒体診断装置の一つの態様によれば、記憶媒体の診断時間の短縮化を図り、記憶媒体を搭載するサーバの運用中であってもパフォーマンスの低下を抑制することができるという効果を奏する。
図1は、実施例1に係る記憶媒体診断装置の構成を示す機能ブロック図である。 図2は、実施例2に係る記憶媒体診断装置を搭載するサーバ装置の構成を示す機能ブロック図である。 図3は、実施例2に係るHDDカードの構成を示す機能ブロック図である。 図4は、診断条件テーブルのデータ構造の一例を示す図である。 図5は、診断領域管理テーブルのデータ構造の一例を示す図である。 図6は、実施例2に係る記憶媒体診断処理のうちメイン処理の手順を示すフローチャートである。 図7は、記憶媒体診断処理のうちアクセス異常判定処理の手順を示すフローチャートである。 図8は、記憶媒体診断処理の具体例を説明する図である。 図9は、診断アクセス単位を変更した場合の診断条件テーブルのデータ構造を示した図である。 図10は、RAID構成である場合の診断条件テーブルのデータ構造を示した図である。 図11は、診断経過期間を監視する場合の診断条件テーブルのデータ構造を示した図である。 図12は、記憶媒体診断プログラムを実行するコンピュータを示す図である。
 以下に、本願の開示する記憶媒体診断装置、記憶媒体診断方法及び記憶媒体診断プログラムの実施例を図面に基づいて詳細に説明する。なお、本実施例によりこの発明が限定されるものではない。
 図1は、本実施例1に係る記憶媒体診断装置1の構成を示す機能ブロック図である。図1に示すように、記憶媒体診断装置1は、記憶部11、上位アクセス実行部12、診断領域特定部13及び診断実行部14を有する。
 記憶部11は、記憶媒体の記憶領域に関して部分領域毎の診断結果を記憶する。上位アクセス実行部12は、上位装置からのアクセス要求に対応する領域をアクセスし、該アクセス結果を診断結果として記憶部11に格納する。診断領域特定部13は、記憶部11に記憶された部分領域毎の診断結果に基づいて、次に診断すべき診断領域を特定する。そして、診断実行部14は、診断領域特定部13によって特定された診断領域をアクセスして診断し、該診断結果を記憶部11に格納する。
 このようにして、記憶媒体診断監装置1は、上位装置からのアクセス要求に対する領域のアクセス結果を診断結果として記憶部11に格納することとした。このため、記憶媒体診断装置1は、この領域について、診断実行部14によって改めて診断することを不要とするので、運用時における診断効率を上げることができ、運用時における記憶媒体の診断時間を短縮できる。さらに、記憶媒体診断装置1は、運用時であっても記憶媒体の診断によるパフォーマンスの低下を抑制できる。
[実施例2に係るサーバ装置の構成]
 図2は、本実施例2に係る記憶媒体診断装置を搭載するサーバ装置2の構成を示す機能ブロック図である。図2に示すように、サーバ装置2は、CPU(Central Processing Unit)21、メモリ22、PCI-Express(以降、PCIe)コントローラ23、PCIe-HUB24及び記憶媒体診断装置に相当するHDDカード1Aを有する。さらに、サーバ装置2は、診断すべき記憶媒体を備えるHDD(Hard Disk)25、USBコントローラ26、DISPLAYコントローラ27、LANコントローラ28及び電源29を有する。なお、サーバ装置2は、バスにPCI-Expressを採用した場合を説明したが、これに限定されるものではない。
 CPU21は、種々のプログラム及び各種データを記憶するメモリ22と接続され、当該プログラムを実行する。PCIeコントローラ23は、CPU21及びメモリ22とPCIe-HUB24とを接続し、PCI-Expressインタフェースを有するバスを制御する。PCIe-HUB24は、PCI-Expressインタフェース規格のハブである。PCIe-HUB24は、HDDカード1A、USBコントローラ26、DISPLAYコントローラ27及びLANコントローラ28と、それぞれPCI-Expressインタフェースを用いて接続する。
 HDDカード1Aは、HDD25に備えられた記憶媒体の記憶領域を診断し、診断期間に上位装置からLANを通じてHDD25へのアクセス要求があったとき、アクセス要求に対応する記憶領域をアクセスし、アクセス結果を診断結果とする。例えば、HDDカード1Aは、HDD25に備えられた記憶媒体の記憶領域について、予め定められた診断間隔で所定のアクセス単位ずつ診断する。そして、HDDカード1Aは、HDD25に関する診断を予め定められた診断制限期間に完了させる。HDDカード1Aは、この診断制限期間の診断期間に上位装置からアクセス要求があったとき、HDD25からアクセス要求に対応する記憶領域をアクセスしながら、このアクセスした記憶領域のアクセス結果を診断結果とする。なお、HDDカード1Aの構成及び動作については、後に詳述する。
 USBコントローラ26は、USB規格のCD装置及びキーボードを制御する。DISPLAYコントローラ27は、ディスプレイを制御する。LANコントローラ28は、LANを制御する。電源29は、サーバ装置2を動作させる主電源または主電源をバックアップするバックアップ電源を指す。
[実施例2に係るHDDカードの構成]
 図3は、本実施例2に係るHDDカード1Aの構成を示す機能ブロック図である。図3に示すように、HDDカード1Aは、PCIe-BUSコントローラ31、HDDコントローラ32、不揮発性メモリ33及び制御部34を有する。PCIe-BUSコントローラ31は、PCI-Expressインタフェースのバスを制御する。HDDコントローラ32は、HDD25を制御する。
 不揮発性メモリ33は、電源29から給電されなくても保持されたデータを失わないメモリであり、例えば、フラッシュメモリ(flash memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置を含む。さらに、不揮発性メモリ33は、診断条件テーブル41及び診断領域管理テーブル42を有する。診断条件テーブル41は、HDD25に備えられた記憶媒体を診断する際の診断条件を記憶する。診断領域管理テーブル42は、HDD25の記憶領域の最小アクセス単位で診断対象のアクセス位置を1ビットで表し、アクセス位置毎に診断済みであるか否かを記憶する。また、診断条件テーブル41及び診断領域管理テーブル42は、各HDD25に持ち、各HDD25から定期的に不揮発性メモリ33に展開される。また、診断条件テーブル41及び診断領域管理テーブル42の各内容は、上位装置からのアクセスに影響のないタイミングで、各HDD25の同一のテーブルに書き込まれる。なお、診断条件テーブル41及び診断領域管理テーブル42の詳細については、後述する。
 制御部34は、HDD25における最小アクセス単位の記憶領域を順次診断し、上位装置からアクセス要求があったとき、アクセス要求に対応する記憶領域をアクセスし、アクセス結果を診断結果として診断領域管理テーブル42に格納する。さらに、制御部34は、管理テーブル初期化部50、要求取得部51、上位アクセス要求実行部52、診断要求実行部53、アクセス異常判定部54及び次診断箇所特定部55を有する。なお、制御部34は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路又はCPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
 管理テーブル初期化部50は、診断領域管理テーブル42を初期化する。具体的には、管理テーブル初期化部50は、診断領域管理テーブル42の全てのビット位置に、診断済みでないことを表す値を格納する。
 要求取得部51は、診断要求または上位装置からのアクセス要求を取得する。例えば、要求取得部51は、予めタイマーに設定された診断間隔毎に、タイマーから診断要求を取得する。また、要求取得部51は、非同期に上位装置からのアクセス要求を取得する。
 上位アクセス要求実行部52は、アクセス動作決定部52a及びアクセス実行部52bを有し、上位装置からのアクセス要求を診断として実行する。アクセス動作決定部52aは、上位装置からのアクセス要求の直前に実行されたアクセス位置から当該アクセス要求のアクセス位置までのヘッダの移動量に基づいて、当該アクセス要求に関わるアクセスの動作を決定する。具体的には、アクセス動作決定部52aは、上位装置からのアクセス要求に対して直前のアクセスが上位装置からのアクセス要求のアクセスであるか否かを判定する。そして、アクセス動作決定部52aは、直前のアクセスが上位装置からのアクセスでない、すなわち診断要求のアクセスである場合、診断要求のアクセス位置からアクセス要求のアクセス位置までのヘッダの移動量が近傍であるか否かを判定する。そして、アクセス動作決定部52aは、診断要求のアクセス位置からアクセス要求のアクセス位置までのヘッダの移動量が近傍である場合、診断要求のアクセス位置に後続するアクセス位置の診断を優先する旨を決定する。すなわち、アクセス動作決定部52aは、直前のアクセス位置からアクセス要求のアクセス位置までが近傍であれば、診断を優先しても上位装置からのアクセス要求に影響がないと判断し、アクセス要求の実行前に診断を実行するように決定する。
 また、アクセス動作決定部52aは、診断要求のアクセス位置からアクセス要求のアクセス位置までのヘッダの移動量が近傍でない場合、診断を優先しない旨を決定する。すなわち、アクセス動作決定部52aは、直前のアクセス位置からアクセス要求のアクセス位置までが近傍でなければ、診断を優先すると上位装置からのアクセス要求に影響があると判断し、アクセス要求の実行前に診断を実行しないように決定する。なお、近傍である移動量とは、例えば100LBA(Logical Block Addressing)であるが、診断を優先しても上位装置からのアクセス要求に影響がない移動量であれば良く、HDD25の種類やヘッダの性能に応じて決定される。
 また、アクセス動作決定部52aは、直前のアクセスが上位装置からのアクセスである場合、直前のアクセス位置から今回のアクセス要求のアクセス位置までのヘッダの移動量が平均値以上であるか否かを判定する。そして、アクセス動作決定部52aは、直前のアクセス位置から今回のアクセス要求のアクセス位置までのヘッダの移動量が平均値以上である場合、直前のアクセス位置に後続するアクセス位置をプリフェッチする旨を決定する。ここで、「プリフェッチ」とは、上位装置からのアクセス要求のタイミングで当該アクセス要求に対するアクセスをしながら、未だ診断されていないアクセス位置を予め診断することをいう。すなわち、直前のアクセス位置からアクセス要求のアクセス位置までの移動量が平均値以上であれば、シーク時間が平均より長期となるので、アクセス要求のアクセス時間におけるプリフェッチのアクセス時間の割合が比較的小さくなる。このため、アクセス動作決定部52aは、アクセス要求に影響が小さいと判断し、アクセス要求の実行前にプリフェッチを実行するように決定する。
 また、アクセス動作決定部52aは、直前のアクセス位置から今回のアクセス要求のアクセス位置までのヘッダの移動量が平均値未満である場合、プリフェッチしない旨を決定する。すなわち、直前のアクセス位置からアクセス要求のアクセス位置までの移動量が平均値未満であれば、シーク時間が平均より短期となるので、アクセス要求のアクセス時間におけるプリフェッチのアクセス時間の割合が比較的大きくなる。このため、アクセス動作決定部52aは、アクセス要求に影響が大きいと判断し、アクセス要求の実行前にプリフェッチを実行しないように決定する。なお、平均値である移動量とは、例えば1000LBAであるが、プリフェッチをしても上位装置からのアクセス要求に影響がない移動量であれば良く、HDD25の種類やヘッダの性能に応じて決定される。
 アクセス実行部52bは、アクセス動作決定部52aによって決定された、上位装置からのアクセス要求に対するアクセス動作に基づき、HDD25へアクセスする。具体的には、アクセス実行部52bは、直前のアクセスが診断要求のアクセスであって、診断を優先する旨の決定である場合、診断要求のアクセス位置に後続するアクセス位置の診断を実行する。さらに、アクセス実行部52bは、診断実行後、上位装置からのアクセス要求のアクセス位置をアクセスする。このアクセスのアクセス結果は、診断結果として用いられる。また、アクセス実行部52bは、直前のアクセスが診断要求のアクセスであって、診断を優先しない旨の決定である場合、上位装置からのアクセス要求のアクセス位置をアクセスする。このアクセスのアクセス結果は、診断結果として用いられる。
 また、アクセス実行部52bは、直前のアクセスが上位装置からのアクセスであって、プリフェッチする旨の決定である場合、直前のアクセス位置に後続するアクセス位置のプリフェッチを実行する。そして、アクセス実行部52bは、プリフェッチ実行後、上位装置からのアクセス要求のアクセス位置をアクセスする。これらプリフェッチ及びアクセスの結果は、診断結果として用いられる。また、アクセス実行部52bは、直前のアクセスが上位装置からのアクセスであって、プリフェッチしない旨の決定である場合、上位装置からのアクセス要求のアクセス位置をアクセスする。このアクセスのアクセス結果は、診断結果として用いられる。
 診断要求実行部53は、診断条件テーブル41を用いて、診断対象であるアクセス位置を診断する。ここで、診断条件テーブル41のデータ構造について、図4を参照して説明する。図4は、診断条件テーブルのデータ構造の一例を示す図である。図4に示すように、診断条件テーブル41は、HDD25の識別番号41a毎に、診断制限期間41b、診断周期41c、診断アドレスカウンタ41d、診断間隔41eを対応付けて記憶する。さらに、診断条件テーブル41は、HDD25の識別番号41a毎に、診断アクセス単位41f、診断優先範囲41g、プリフェッチ数41h及びプリフェッチ起動シーク距離41iを対応付けて記憶する。
 HDD25の識別番号41aは、HDDコントローラ32と接続する、診断対象のHDD25毎に一意に付された番号を示す。診断制限期間41bは、HDD25における診断対象の記憶領域を診断する制限期間を示す。診断周期41cは、HDD25における診断周期を示す。診断アドレスカウンタ41dは、次に診断すべきHDD25のアクセス位置に対応させたカウンタを示す。診断アドレスカウンタ41dのカウンタ値は、診断領域管理テーブル42のビット位置に対応する。診断間隔41eは、診断制限期間41bに1回に実施される診断の診断間隔を示す。1回に実施される診断箇所は、診断アドレスカウンタ41dに示されるカウンタに対応したHDD25のアクセス位置となる。
 診断アクセス単位41fは、1回に実施される診断のアクセス単位を示す。診断優先範囲41gは、上位装置からのアクセス要求の前に優先して診断できるシーク距離の範囲を示す。例えば、診断優先範囲41gは、近傍と認められる移動量を示す。プリフェッチ数41hは、1回にプリフェッチする際のアクセス単位を示す。プリフェッチ数41hは、診断アクセス単位41fと同一となることが望ましい。プリフェッチ起動シーク距離41iは、上位装置からのアクセス要求の前にプリフェッチできるシーク距離の範囲を示す。例えば、プリフェッチ起動シーク距離41iは、ヘッダの平均移動量を示す。
 例えば、診断制限期間41bには、2週間を示す「2week」が記憶される。診断周期41cには、3週間を示す「3week」が記憶される。診断アドレスカウンタ41dには、次に診断が実施されるアクセス位置に対応する、診断領域管理テーブル42のビット位置「2」が記憶される。診断間隔41eには、「5分」が記憶される。診断アクセス単位41fには、「10LBA」が記憶される。診断優先範囲41gには、「100LBA以内」が記憶される。プリフェッチ数41hには、「10LBA」が記憶される。プリフェッチ起動シーク距離41iには、「1000LBA以上」が記憶される。
 図3に戻って、具体的には、診断要求実行部53は、要求取得部51によって取得された要求が診断要求である場合、診断アドレスカウンタ41dに示されるカウンタに対応したHDD25のアクセス位置を診断する。
 アクセス異常判定部54は、HDD25へのアクセスが異常であるか否かを判定し、異常であると判定される場合には、異常がある箇所を修復する。具体的には、アクセス異常判定部54は、アクセス実行部52bまたは診断要求実行部53によってアクセスされたアクセス位置のアクセスに異常があるか否かを判定する。そして、アクセス異常判定部54は、アクセスに異常がない場合には、アクセスが正常であるアクセス位置に対応する、診断領域管理テーブル42のビット位置に、診断済みであることを表す値を格納する。そして、アクセス異常判定部54は、アクセスに異常がある場合には、訂正可能な異常であるか否かを判定する。アクセス異常判定部54は、訂正可能な異常である場合には、予め埋め込まれたECCコードを用いて、読み出したデータを訂正し、訂正後のデータを同一箇所に書き込む。また、アクセス異常判定部54は、訂正不能な異常である場合には、予め定めたリトライ数を限度として、異常箇所が正常となるまで読み出しを繰り返す。そして、アクセス異常判定部54は、異常箇所が正常となった場合には、異常箇所が正常となったアクセス位置に対応する、診断領域管理テーブル42のビット位置に、診断済みであることを表す値を格納する。また、アクセス異常判定部54は、異常箇所が正常とならなかった場合には、異常に対応するエラー処理を実行する。なお、訂正可能な異常とは、例えばソフトエラー、記憶媒体の劣化、環境温度、振動やノイズによってビット化けが発生するような異常を指す。
 次診断箇所特定部55は、次に診断要求によって診断される診断箇所を特定する。具体的には、次診断箇所特定部55は、診断アドレスカウンタ41dに対応したアクセス位置を診断した場合には、診断領域管理テーブル42に基づいて診断アドレスカウンタ41dに示されるカウンタをカウントアップする。すなわち、次診断箇所特定部55は、カウントアップされたカウンタが指す、診断領域管理テーブル42のビット位置が診断済みであるとき、診断済みでないビット位置までカウンタをカウンタアップする。
 また、次診断箇所特定部55は、上位装置からのアクセス要求に対応したアクセスまたはプリフェッチによるアクセスをした場合には、診断領域管理テーブル42に基づいて診断アドレスカウンタ41dに示されるカウンタを調整する。すなわち、次診断箇所特定部55は、アクセス位置が診断アドレスカウンタ41dに示されるカウンタに相当する場合、診断済みと判断し、診断済みでないビット位置までカウンタをカウントアップする。
 次に、診断領域管理テーブル42のデータ構造について、図5を参照して説明する。図5は、診断領域管理テーブルのデータ構造の一例を示す図である。図5に示すように、診断領域管理テーブル42は、1ビット毎に、診断済みであるか否かを表す値を対応付けて記憶する。ここでは、診断済みである場合には、「0」が記憶され、診断済みでない場合には、「1」が記憶される。
 また、各ビットは、HDD25の診断対象のアクセス位置を対応させたビットとなる。そして、診断アドレスカウンタ41dに示されるカウンタは、診断領域管理テーブル42のビット位置を表すこととなる。
[実施例2に係る記憶媒体診断処理の手順]
 次に、記憶媒体診断処理の手順を、図6および図7を参照して説明する。図6は、記憶媒体診断処理のうちメイン処理の手順を示し、図7は、記憶媒体診断処理のうちアクセス異常判定処理の手順を示す。図6は、実施例2に係る記憶媒体診断処理のうちメイン処理の手順を示すフローチャートである。
 まず、管理テーブル初期部50は、診断領域管理テーブル42を初期化する(ステップS11)。具体的には、管理テーブル初期化部50は、診断領域管理テーブル42の全てのビット位置に、診断済みでないことを表す値(例えば「1」)を格納する。そして、要求取得部51は、上位装置からのアクセス要求または診断要求が有るか否かを判定する(ステップS12)。なお、上位装置からのアクセス要求は、上位装置から非同期に取得される。診断要求は、予めタイマーに設定された診断間隔毎に、タイマーから取得される。
 要求取得部51によって上位装置からのアクセス要求または診断要求が無いと判定された場合(ステップS12;No)、要求取得部51は、判定処理を繰り返すためにステップS12に移行する。一方、要求取得部51によって上位装置からのアクセス要求または診断要求が有ると判定された場合(ステップS12;Yes)、要求取得部51は、上位装置からのアクセス要求であるか否かを判定する(ステップS13)。
 要求取得部51によって上位装置からのアクセス要求でないと判定された場合(ステップS13;No)、診断要求実行部53は、HDD25について、診断アドレスカウンタ41dに対応したアクセス位置を診断する(ステップS14)。そして、診断要求実行部53は、ステップS31に移行する。
 一方、要求取得部51によって上位装置からのアクセス要求であると判定された場合(ステップS13;Yes)、アクセス動作決定部52aは、直前のアクセスが上位装置からのアクセス要求のアクセスであるか否かを判定する(ステップS15)。直前のアクセスが上位装置からのアクセス要求のアクセスでない場合(ステップS15;No)、アクセス動作決定部52aは、上位装置からのアクセス要求のアクセス位置が診断アドレスカウンタ41dに対して100LBA以内か否かを判定する(ステップS16)。すなわち、アクセス動作決定部52aは、直前の診断要求のアクセス位置からアクセス要求のアクセス位置までのヘッダの移動量が近傍であるか否かを判定する。
 上位装置からのアクセス要求のアクセス位置が診断アドレスカウンタ41dに対して100LBA以内である場合(ステップS16;Yes)、アクセス動作決定部52aは、診断要求のアクセス位置に後続するアクセス位置の診断を優先する旨を決定する。すなわち、アクセス動作決定部52aは、診断を優先しても上位装置からのアクセス要求に影響がないと判断する。そして、アクセス実行部52bは、診断アドレスカウンタ41dに対応したアクセス位置を診断し(ステップS17)、その後、上位装置からのアクセス要求のアクセス位置をアクセスする(ステップS18)。
 上位装置からのアクセス要求のアクセス位置が診断アドレスカウンタ41dに対して100LBAを超える場合(ステップS16;No)、アクセス動作決定部52aは、診断を優先しない旨を決定する。すなわち、アクセス動作決定部52aは、診断を優先すると上位装置からのアクセス要求に影響があると判断する。そして、アクセス実行部52bは、上位装置からのアクセス要求のアクセス位置をアクセスすべく、ステップS18に移行する。
 そして、直前のアクセスが上位装置からのアクセス要求のアクセスである場合(ステップS15;Yes)、アクセス動作決定部52aは、上位装置からのアクセス要求が直前のアクセスに対して1000LBA以上か否かを判定する(ステップS19)。すなわち、アクセス動作決定部52aは、直前のアクセス位置から今回のアクセス要求のアクセス位置までのヘッダの移動量が平均値以上であるか否かを判定する。
 上位装置からのアクセス要求が直前のアクセスに対して1000LBA以上である場合(ステップS19;Yes)、アクセス動作決定部52aは、直前のアクセス位置に後続するアクセス位置をプリフェッチする旨を決定する。すなわち、アクセス動作決定部52aは、プリフェッチしても上位装置からのアクセス要求に影響がないと判断する。そして、アクセス実行部52bは、直前のアクセス位置に後続するアクセス位置のプリフェッチを実行する(ステップS20)。その後、アクセス実行部52bは、上位装置からのアクセス要求のアクセス位置をアクセスする(ステップS21)。
 上位装置からのアクセス要求が直前のアクセスに対して1000LBA未満である場合(ステップS19;No)、アクセス動作決定部52aは、プリフェッチしない旨を決定する。すなわち、アクセス動作決定部52aは、プリフェッチすると上位装置からのアクセス要求に影響があると判断する。そして、アクセス実行部52bは、上位装置からのアクセス要求のアクセス位置をアクセスすべく、ステップS21に移行する。
 次に、図7は、実施例2に係る記憶媒体診断処理のうちアクセス異常判定処理の手順を示すフローチャートである。
 まず、アクセス異常判定部54は、アクセス実行部52bまたは診断要求実行部53によるアクセス位置のアクセスが正常に完了したか否かを判定する(ステップS31)。アクセス異常判定部54によってアクセスが正常に完了したと判定される場合(ステップS31;Yes)、アクセス異常判定部54は、正常に完了したアクセス位置の診断完了指示を通知する(ステップS32)。そして、アクセス異常判定部54は、診断完了指示があったアクセス位置に対応する、診断領域管理テーブル42のビット位置に、診断済みであることを表す値(例えば「0」)を格納する。
 アクセス異常判定部54によってアクセスが正常に完了しなかったと判定される場合(ステップS31;No)、アクセス異常判定部54は、訂正可能な異常であるか否かを判定する(ステップS33)。アクセス異常判定部54によって訂正可能な異常であると判定された場合(ステップS33;Yes)、アクセス異常判定部54は、例えばECCコードを用いて読み出したデータを訂正し、訂正後のデータを対象箇所に再び書き込む(ステップS34)。そして、アクセス異常判定部54は、ステップS39に移行する。
 アクセス異常判定部54によって訂正可能な異常でないと判定された場合(ステップS33;No)、アクセス異常判定部54は、訂正不能な異常であるか否かを判定する(ステップS35)。アクセス異常判定部54によって訂正不能な異常でないと判定された場合(ステップS35;No)、アクセス異常判定部54は、異常原因に対応するエラー処理を行い、処理を終了する。
 一方、アクセス異常判定部54によって訂正不能な異常であると判定された場合(ステップS35;Yes)、アクセス異常判定部54は、対象箇所を再び読み出す(ステップS36)。そして、アクセス異常判定部54は、予め定められたリトライ数を超えているか否かを判定する(ステップS37)。アクセス異常判定部54によってリトライ数を超えていない場合(ステップS37;No)、ステップS31に移行する。一方、アクセス異常判定部54によってリトライ数を超えている場合(ステップS37;Yes)、アクセス異常判定部54は、対象箇所を診断異常LBAとして登録する(ステップS38)。
 続いて、次診断箇所特定部55は、診断領域管理テーブル42上、全ての診断が完了したか否かを判定する(ステップS39)。具体的には、次診断箇所特定部55は、診断領域管理テーブル42の全てのビットが診断済みであることを表す値(例えば「0」)であるか否かを判定する。
 全ての診断が完了したと判定された場合(ステップS39;Yes)、次診断箇所特定部55は、タイマーに次の診断周期まで休止する旨を通知する(ステップS40)。一方、全ての診断が完了していないと判定された場合(ステップS39;No)、次診断箇所特定部55は、診断領域管理テーブル42に基づいて診断アドレスカウンタ41dの値を特定する。
 すなわち、次診断箇所特定部55は、診断アドレスカウンタ41dに対応したアクセス位置が診断された場合には、診断領域管理テーブル42に基づいて診断アドレスカウンタ41dに示されるカウンタをカウントアップする(ステップS41)。なお、次診断箇所特定部55は、カウンタアップされたカウンタが指す、診断領域管理テーブル42のビット位置が診断済みであるとき、診断済みでないビット位置までカウンタをカウンタアップする。
 そして、次診断箇所特定部55は、アクセス要求に対応したアクセスまたはプリフェッチによるアクセスがされた場合には、診断領域管理テーブル42に基づいて診断アドレスカウンタ41dに示されるカウンタを調整する(ステップS42)。なお、次診断箇所特定部55は、アクセス位置が診断アドレスカウンタ41dに示されるカウンタに相当するとき、診断済みと判断し、診断済みでないビット位置までカウンタをカウントアップする。
 続いて、アクセス異常判定部54は、診断領域管理テーブル42を更新する(ステップS43)。そして、アクセス異常判定部54は、診断を終了した期間が診断制限期間41bである2週間を超えた場合、診断超過であることを上位装置に通知する(ステップS44)。そして、アクセス異常判定部54は、次の診断要求または上位装置からのアクセス要求を取得すべく、ステップS12に移行する。
 次に、診断領域管理テーブル42及び診断アドレスカウンタ41dに着目して、記憶媒体診断処理の具体例を、図8を参照して説明する。図8は、記憶媒体診断処理の具体例を説明する図である。なお、説明の便宜上、診断領域管理テーブル42のビットには、診断済みでないことを表す値(例えば「1」)に代えて、「未診断ビット」として白抜きで表すものとする。また、診断済みであることを表す値(例えば「0」)に代えて、「診断要求による診断済みビット」として黒抜き、「上位装置からのアクセス要求による診断済みビット」として斜め線、「プリフェッチによる診断済みビット」として縦線で表すものとする。
 まず、管理テーブル初期部50は、診断領域管理テーブル42及び診断アドレスカウンタ41dを初期化する。ここでは、管理テーブル初期部50は、診断領域管理テーブル42に未診断ビットを格納し、診断アドレスカウンタ41dに「0」を格納する。
 タイマーから診断間隔で診断要求が起動されると(J1)、診断要求実行部53は、診断アドレスカウンタ41dに示される「0」に対応したHDD25のアクセス位置を診断する。そして、アクセス異常判定部54は、アクセスが正常である場合、診断領域管理テーブル42について、診断アドレスカウンタ41dに示される「0」に対応したビット位置に、「診断要求による診断済みビット」を格納する。そして、次診断箇所特定部55は、診断アドレスカウンタ41dの値をカウントアップし、この値を「1」に設定する。
 続いて、タイマーから診断間隔で診断要求が起動されると(J2)、診断要求実行部53は、診断アドレスカウンタ41dに示される「1」に対応したHDD25のアクセス位置を診断する。そして、アクセス異常判定部54は、アクセスが正常である場合、診断領域管理テーブル42について、診断アドレスカウンタ41dに示される「1」に対応したビット位置に、「診断要求による診断済みビット」を格納する。そして、次診断箇所特定部55は、診断アドレスカウンタ41dの値をカウントアップし、この値を「2」に設定する。
 ここで、タイマーから診断間隔で診断要求が起動されると(J3)、診断要求実行部53は、診断アドレスカウンタ41dに示される「2」に対応したHDD25のアクセス位置を診断する。そして、アクセス異常判定部54は、アクセスが正常である場合、診断領域管理テーブル42について、診断アドレスカウンタ41dに示される「2」に対応したビット位置に、「診断要求による診断済みビット」を格納する。そして、次診断箇所特定部55は、診断アドレスカウンタ41dの値をカウントアップし、この値を「3」に設定する。
 また、診断アドレスカウンタ41dの値が「2」であるとき、診断間隔以内に上位装置からアクセス要求がされたものとする。このとき、上位装置からのアクセス要求のアクセス位置が、診断アドレスカウンタ41dに示される「2」に対応したアクセス位置に対して100LBA以内であるとする(J4)。アクセス動作決定部52aは、診断要求のアクセス位置に後続するアクセス位置の診断を優先する旨を決定する。そして、アクセス実行部52bは、診断アドレスカウンタ41dに示される「2」に対応したアクセス位置を診断し、その後、上位装置からのアクセス要求のアクセス位置をアクセスする。そして、アクセス異常判定部54は、アクセスが正常である場合、診断領域管理テーブル42について、診断アドレスカウンタ41dに示される「2」に対応したビット位置に、「診断要求による診断済みビット」を格納する。さらに、アクセス異常判定部54は、上位装置からのアクセス要求に対応したビット位置に、「上位装置からのアクセス要求による診断済みビット」を格納する。そして、次診断箇所特定部55は、診断アドレスカウンタ41dの値をカウントアップし、この値を「3」に設定する。
 一方、診断アドレスカウンタ41dの値が「2」であるとき、診断間隔以内に上位装置からアクセス要求がされたものとする。このとき、上位装置からのアクセス要求のアクセス位置が、診断アドレスカウンタ41dに示される「2」に対応したアクセス位置に対して100LBAを超えるとする(J5)。アクセス動作決定部52aは、診断を優先しない旨を決定する。そして、アクセス実行部52bは、上位装置からのアクセス要求のアクセス位置をアクセスする。そして、アクセス異常判定部54は、アクセスが正常である場合、診断領域管理テーブル42について、上位装置からのアクセス要求に対応したビット位置に、「上位装置からのアクセス要求による診断済みビット」を格納する。
 続いて、診断間隔以内に上位装置からアクセス要求が連続してされたものとする。このとき、上位装置からのアクセス要求のアクセス位置が、直前のアクセス位置に対して1000LBA以上であるとする(J6)。アクセス動作決定部52aは、直前のアクセス位置に後続するアクセス位置をプリフェッチする旨を決定する。そして、アクセス実行部52bは、直前のアクセス位置に後続するアクセス位置のプリフェッチを実行し、その後、上位装置からのアクセス要求のアクセス位置をアクセスする。そして、アクセス異常判定部54は、アクセスが正常である場合、診断領域管理テーブル42について、プリフェッチを実行したアクセス位置に対応したビット位置に、「プリフェッチによる診断済みビット」を格納する。そして、アクセス異常判定部54は、診断領域管理テーブル42について、上位装置からのアクセス要求に対応したビット位置に、「上位装置からのアクセス要求による診断済みビット」を格納する。
 一方、上位装置からのアクセス要求のアクセス位置が、直前のアクセス位置に対して1000LBA未満であるとする(J7)。アクセス動作決定部52aは、プリフェッチしない旨を決定する。そして、アクセス実行部52bは、上位装置からのアクセス要求のアクセス位置をアクセスする。そして、アクセス異常判定部54は、アクセスが正常である場合、診断領域管理テーブル42について、上位装置からのアクセス要求に対応したビット位置に、「上位装置からのアクセス要求による診断済みビット」を格納する。
[実施例2の効果]
 上記実施例2によれば、診断領域管理テーブル42は、HDD25の記憶領域の最小アクセス単位毎の診断結果を記憶する。そして、上位アクセス要求実行部52は、上位装置からのアクセス要求が取得されると、当該アクセス要求を診断として実行し、アクセス異常判定部54に、診断済みであることを診断領域管理テーブル42に格納させる。そして、次診断箇所特定部55は、診断領域管理テーブル42に記憶された診断結果に基づいて、次に診断すべき診断領域を特定する。そして、診断要求実行部53は、次診断特定部55によって特定された診断領域をアクセスして診断し、アクセス異常判定部54に、診断済みであることを診断領域管理テーブル42に格納させる。かかる構成によれば、上位アクセス要求実行部52は、上位装置からのアクセス要求を診断として実行し、診断済みであることを診断領域管理テーブル42に格納させることとした。このため、上位アクセス要求実行部52は、このアクセス要求に関する記憶領域について改めて診断することを不要とするので、運用時における診断効率を上げることができる。また、上位アクセス要求実行部52は、運用時における記憶媒体の診断時間を短縮できる。さらに、記憶媒体診断装置1は、運用時であっても記憶媒体の診断によるパフォーマンスの低下を抑制できる。
 また、上記実施例2によれば、アクセス動作決定部52aは、上位装置からのアクセス要求の直前に実行されたアクセス位置から当該アクセス要求のアクセス位置までのヘッダの移動量に基づいて、当該アクセス要求に関わるアクセスの動作を決定する。そして、アクセス実行部52bは、アクセス動作決定部52aによって決定されたアクセスの動作に基づいて、HDD25へアクセスする。かかる構成によれば、アクセス動作決定部52aは、上位装置からのアクセス要求のアクセス位置までのヘッダの移動量に基づいて、当該アクセス要求に関わるアクセスの動作を決定することとした。このため、アクセス動作決定部52aは、上位装置からのアクセス性能の低下を抑制するようなアクセスの動作を決定することが可能となる。
 また、上記実施例2によれば、アクセス動作決定部52aは、アクセス要求の直前の診断要求のアクセス位置からアクセス要求のアクセス位置までのヘッダの移動量が近傍である場合、診断要求のアクセス位置の後続を優先して診断する旨を決定する。かかる構成によれば、アクセス動作決定部52aは、ヘッダの移動量が近傍であれば、診断要求のアクセス位置の後続を優先して診断しても上位装置からのアクセス性能に影響が小さいので、運用時における診断効率を上げることができる。そして、アクセス動作決定部52aは、HDD25の診断時間を短縮できることとなる。
 また、上記実施例2によれば、アクセス動作決定部52aは、今回のアクセス要求の直前のアクセス要求のアクセス位置から今回のアクセス要求のアクセス位置までのヘッダの移動量が平均値以上の場合、直前のアクセス位置の後続を予め診断する旨を決定する。かかる構成によれば、アクセス動作決定部52aは、ヘッダの移動量が平均値以上であれば、直前のアクセス位置の後続を予め診断しても上位装置からのアクセス性能に影響が小さいので、運用時における診断効率を上げることができる。また、アクセス動作決定部52aは、HDD25の診断時間を短縮できる。
 ところで、実施例2では、診断領域管理テーブル42は、HDD25の記憶領域の最小アクセス単位を1ビットで表すものとした。しかしながら、診断領域管理テーブル42は、これに限定されず、HDD25の記憶領域の最小アクセス単位の整数倍のアクセス単位を1ビットで表すものとしても良い。この場合、診断要求実行部53は、診断条件テーブル41を用いて、HDD25の記憶領域のうち最小アクセス単位の整数倍の診断アクセス単位41fの領域をアクセスして診断するようにする。
 図9は、診断アクセス単位を変更した場合の診断条件テーブル41のデータ構造を示した図である。図9に示すように、診断アクセス単位41fには、最小アクセス単位である10LBAの2倍の「20LBA」が記憶されている。
 そして、アクセス異常判定部54は、当該領域が診断済みであることを診断領域管理テーブル42に格納する。これにより、診断領域管理テーブル42は、記憶容量を削減できるとともに、HDD25の記憶領域の診断時間を短縮できる。また、アクセス実行部52bは、上位装置からのアクセス要求に対応する領域が診断アクセス単位41fより小さい場合、当該領域を含んだ診断アクセス単位41f分の記憶領域をアクセスするようにする。これにより、アクセス実行部52bは、上位装置からのアクセス要求に対応する領域を超えて記憶領域を予め診断できることとなるので、HDD25の記憶領域の診断時間を短縮できる。
 また、実施例2では、診断要求実行部53は、HDD25に備えられた記憶媒体の記憶領域を診断するものとした。しかしながら、診断要求実行部53は、HDD25がRAID構成であっても良く、RAID構成の記憶媒体の記憶領域を診断するものとしても良い。この場合、診断要求実行部53は、RAID構成の特性により規定される冗長部分の記憶媒体を優先的に診断するようにする。これにより、診断要求実行部53は、冗長部分の記憶媒体を用いて診断するので、記憶媒体の記憶領域の診断を効率化することができる。
 図10は、RAID構成である場合の診断条件テーブル41のデータ構造を示した図である。図10に示すように、診断アクセス単位41f及びプリフェッチ数41hには、ストライプ長の10倍のアクセス単位が記憶されている。
 また、実施例2では、次診断箇所特定部55は、診断を終了した期間が診断制限期間41bである2週間を超えた場合、診断超過であることを上位装置に通知するものとした。しかしながら、次診断箇所特定部55は、診断経過期間及び記憶領域の診断残容量を監視するようにし、診断経過期間に記憶領域の診断が完了するように診断アクセス単位を調整するようにしても良い。
 図11は、診断経過期間を監視する場合の診断条件テーブル41のデータ構造を示した図である。図11に示すように、診断経過期間41k及び診断残容量41lが追加された。次診断箇所特定部55は、診断経過期間41kが診断制限期間41bに近くなってきたら、診断残容量41lに応じて、診断アクセス単位41f及びプリフェッチ数41hを調整する。さらに、次診断箇所特定部55は、診断間隔41eを調整するようにしても良い。
 また、実施例2では、要求取得部51は、診断要求及び上位装置からのアクセス要求を同時に取得する場合がある。かかる場合であっても、アクセス動作決定部52aは、上位装置からのアクセス要求の直前に実行されたアクセス位置から当該アクセス要求のアクセス位置までのヘッダの移動量に基づいて、当該アクセス要求に関わるアクセスの動作を決定すれば良い。そして、アクセス実行部52bは、アクセス動作決定部52aによって決定されたアクセスの動作に基づいて、直前のアクセス位置に後続するアクセス位置の診断やプリフェッチを実行し、アクセス要求に対するアクセスを実行するようにする。かかる構成によれば、アクセス実行部52bは、上位装置からのアクセス要求に対するアクセスを実行しつつ、さらに診断も実行することができることとなり、診断効率の向上を図ることができる。
[プログラムなど]
 なお、HDDカード1Aは、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した要求取得部51、上位アクセス要求実行部52及び診断要求実行部53などの各機能を搭載することによって実現することができる。
 また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、上位アクセス要求実行部52とアクセス異常判定部54、診断要求実行部53とアクセス異常判定部54をそれぞれ1個の部として統合しても良い。一方、アクセス異常判定部54を、アクセス異常を判定する判定部とアクセス異常と判定された場合にアクセスされたデータを修復する修復部とに分散しても良い。また、不揮発性メモリ33をHDDカード1Aの外部装置としてPCI-Expressバスまたはネットワーク経由で接続するようにしても良い。
 また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図12を用いて、図3に示したHDDカード1Aと同様の機能を有する記憶媒体診断プログラムを実行するコンピュータの一例を説明する。
 図12は、記憶媒体診断プログラムを実行するコンピュータを示す図である。図12に示すように、コンピュータ1000は、RAM(Random Access Memory)1010と、キャッシュ1020と、HDD1030と、CPU(Central Processing Unit)1040及びバス1050とを有する。RAM1010、キャッシュ1020、HDD1030、CPU1040は、バス1050によって接続されている。
 そして、HDD1030には、図3に示したHDDカード1Aと同様の機能を有する記憶媒体診断プログラム1031が記憶される。また、HDD1030には、図3に示した不揮発性メモリ33内の情報(診断条件テーブル41、診断領域管理テーブル42)に対応する診断関連情報1032が記憶される。
 そして、CPU1040が記憶媒体診断プログラム1031をHDD1030から読み出してRAM1010に展開することにより、記憶媒体診断プログラム1031は、記憶媒体診断プロセス1011として機能するようになる。そして、記憶媒体診断プロセス1011は、診断関連情報1032から読み出した情報等を適宜RAM1010上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。
 なお、上記の記憶媒体診断プログラム1031は、必ずしもHDD1030に記憶されている必要はなく、CD-ROM等の記憶媒体に記憶されたこのプログラムを、コンピュータ1000が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等を介してコンピュータ1000に接続される他のコンピュータ(またはサーバ)等にこのプログラムを記憶させておいても良い。この場合には、コンピュータ1000がこれらからプログラムを読み出して実行する。
 1 記憶媒体診断装置
 1A HDDカード
 2 サーバ装置
 11 記憶部
 12 上位アクセス実行部
 13 診断領域特定部
 14 診断実行部
 21 CPU
 22 メモリ
 23 PCIeコントローラ
 24 PCIe-HUB
 25 HDD
 26 USBコントローラ
 27 DISPLAYコントローラ
 28 LANコントローラ
 29 電源
 31 PCIe-BUSコントローラ
 32 HDDコントローラ
 33 不揮発性メモリ
 34 制御部
 41 診断条件テーブル
 42 診断領域管理テーブル
 51 要求取得部
 52 上位アクセス要求実行部
 52a アクセス動作決定部
 52b アクセス実行部
 53 診断要求実行部
 54 アクセス異常判定部
 55 次診断箇所特定部

Claims (9)

  1.  記憶媒体の記憶領域に関して部分領域毎の診断結果を記憶する記憶部と、
     上位装置からのアクセス要求に対応する領域をアクセスし、該アクセス結果を診断結果として前記記憶部に格納する上位アクセス実行部と、
     前記記憶部に記憶された部分領域毎の診断結果に基づいて、次に診断すべき診断領域を特定する診断領域特定部と、
     前記診断領域特定部によって特定された診断領域をアクセスして診断し、該診断結果を前記記憶部に格納する診断実行部と
     を有することを特徴とする記憶媒体診断装置。
  2.  前記上位アクセス実行部は、
     前記アクセス要求の直前に実行されたアクセス位置から前記アクセス要求のアクセス位置までのヘッダの移動量に基づいて、前記アクセス要求に関わるアクセスの動作を決定するアクセス動作決定部を有し、
     前記アクセス動作決定部によって決定されたアクセスの動作に基づいて、前記アクセス要求に対応する領域をアクセスすることを有することを特徴とする請求項1に記載の記憶媒体診断装置。
  3.  前記アクセス動作決定部は、
     前記アクセス要求の直前に実行されたアクセス位置が前記診断領域特定部によって特定された診断領域のアクセス位置であって、前記ヘッダ移動量が近傍である場合には、該直前に実行されたアクセス位置に後続するアクセス位置の診断を優先する旨を決定することを特徴とする請求項2に記載の記憶媒体診断装置。
  4.  前記アクセス動作決定部は、
     前記アクセス要求の直前に実行されたアクセス位置が前記アクセス要求に関わるアクセス位置であって、前記ヘッダ移動量が平均値より大きい場合には、該直前に実行されたアクセス位置に後続するアクセス位置をあらかじめ診断する旨を決定することを特徴とする請求項2に記載の記憶媒体診断装置。
  5.  前記診断実行部は、
     前記記憶領域のうち最小アクセス単位の整数倍のアクセス単位の部分領域をアクセスして診断し、当該部分領域の診断結果を前記記憶部に格納することを特徴とする請求項1に記載の記憶媒体診断装置。
  6.  前記上位アクセス実行部は、
     前記アクセス要求に対応する領域が前記アクセス単位より小さい場合、当該領域を含んだ前記アクセス単位分の記憶領域をアクセスすることを特徴とする請求項5に記載の記憶媒体診断装置。
  7.  前記診断実行部は、
     前記記憶媒体がRAID構成である場合に、前記RAID構成の特性により規定される冗長部分の記憶媒体を優先的に診断することを特徴とする請求項1に記載の記憶媒体診断装置。
  8.  記憶媒体診断装置が記憶媒体の記憶領域を診断する記憶媒体診断方法であって、
     上位装置からのアクセス要求に対応する領域をアクセスし、該アクセス結果を診断結果として、部分領域毎の診断結果を記憶する記憶部に格納する上位アクセス実行工程と、
     前記記憶部に記憶された部分領域毎の診断結果に基づいて、次に診断すべき診断領域を特定する診断領域特定工程と、
     前記診断領域特定工程によって特定された診断領域をアクセスして診断し、該診断結果を前記記憶部に格納する診断実行工程と
     を含むことを特徴とする記憶媒体診断方法。
  9.  上位装置からのアクセス要求に対応する領域をアクセスし、該アクセス結果を診断結果として、記憶媒体の記憶領域に関して部分領域毎の診断結果を記憶する記憶部に格納する上位アクセス実行手順と、
     前記記憶部に記憶された部分領域毎の診断結果に基づいて、次に診断すべき診断領域を特定する診断領域特定手順と、
     前記診断領域特定手順によって特定された診断領域をアクセスして診断し、該診断結果を前記記憶部に格納する診断実行手順と
     をコンピュータに実行させることを特徴とする記憶媒体診断プログラム。
PCT/JP2010/064749 2010-08-30 2010-08-30 記憶媒体診断装置、記憶媒体診断方法及び記憶媒体診断プログラム WO2012029114A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012531594A JP5418687B2 (ja) 2010-08-30 2010-08-30 記憶媒体診断装置、記憶媒体診断方法及び記憶媒体診断プログラム
PCT/JP2010/064749 WO2012029114A1 (ja) 2010-08-30 2010-08-30 記憶媒体診断装置、記憶媒体診断方法及び記憶媒体診断プログラム
US13/770,318 US9177669B2 (en) 2010-08-30 2013-02-19 Storage-medium diagnosis device, storage-medium diagnosis method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/064749 WO2012029114A1 (ja) 2010-08-30 2010-08-30 記憶媒体診断装置、記憶媒体診断方法及び記憶媒体診断プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/770,318 Continuation US9177669B2 (en) 2010-08-30 2013-02-19 Storage-medium diagnosis device, storage-medium diagnosis method

Publications (1)

Publication Number Publication Date
WO2012029114A1 true WO2012029114A1 (ja) 2012-03-08

Family

ID=45772253

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/064749 WO2012029114A1 (ja) 2010-08-30 2010-08-30 記憶媒体診断装置、記憶媒体診断方法及び記憶媒体診断プログラム

Country Status (3)

Country Link
US (1) US9177669B2 (ja)
JP (1) JP5418687B2 (ja)
WO (1) WO2012029114A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014147816A1 (ja) * 2013-03-22 2014-09-25 株式会社 日立製作所 ストレージ装置及び記憶領域検証方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8958273B1 (en) * 2013-01-24 2015-02-17 Marvell International Ltd. Disc read retry devices and methods
US11264056B1 (en) * 2020-10-01 2022-03-01 Seagate Technology Llc System and method for write-retry management

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02253323A (ja) * 1989-03-28 1990-10-12 Nec Corp 磁気ディスク制御装置
JP2000339107A (ja) * 1999-05-26 2000-12-08 Nec Eng Ltd ディスクアレイ装置の媒体検査制御方法
WO2009001413A1 (ja) * 2007-06-22 2008-12-31 Fujitsu Limited コントローラ、ディスクパトロール方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005309077A (ja) * 2004-04-21 2005-11-04 Fuji Xerox Co Ltd 故障診断方法および故障診断装置、並びに搬送装置および画像形成装置、並びにプログラムおよび記憶媒体
US8209409B2 (en) * 2007-04-09 2012-06-26 Hewlett-Packard Development Company, L.P. Diagnosis of a storage area network
CN104887258B (zh) * 2010-08-27 2018-04-03 柯尼卡美能达医疗印刷器材株式会社 诊断支援系统
JP5724549B2 (ja) * 2011-03-31 2015-05-27 富士通株式会社 携帯端末装置及び自己診断方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02253323A (ja) * 1989-03-28 1990-10-12 Nec Corp 磁気ディスク制御装置
JP2000339107A (ja) * 1999-05-26 2000-12-08 Nec Eng Ltd ディスクアレイ装置の媒体検査制御方法
WO2009001413A1 (ja) * 2007-06-22 2008-12-31 Fujitsu Limited コントローラ、ディスクパトロール方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014147816A1 (ja) * 2013-03-22 2014-09-25 株式会社 日立製作所 ストレージ装置及び記憶領域検証方法
US9459973B2 (en) 2013-03-22 2016-10-04 Hitachi, Ltd. Storage subsystem, and method for verifying storage area

Also Published As

Publication number Publication date
JPWO2012029114A1 (ja) 2013-10-28
JP5418687B2 (ja) 2014-02-19
US9177669B2 (en) 2015-11-03
US20130166973A1 (en) 2013-06-27

Similar Documents

Publication Publication Date Title
US8719531B2 (en) System and method for performing data retention that incorporates environmental conditions
US8190945B2 (en) Method for maintaining track data integrity in magnetic disk storage devices
US7356744B2 (en) Method and system for optimizing testing of memory stores
US20060090098A1 (en) Proactive data reliability in a power-managed storage system
TW200818200A (en) Disk drive with nonvolatile memory for storage of failure-related data
WO2005066782A1 (en) Methods and apparatuses for reducing burn in within semiconductor devices utilizing static random access memory (sram)
US10346051B2 (en) Storage media performance management
TW201626398A (zh) 測試及識別記憶體裝置之系統及方法
JP5418687B2 (ja) 記憶媒体診断装置、記憶媒体診断方法及び記憶媒体診断プログラム
JP5488709B2 (ja) ストレージ制御装置における基準時間設定方法
JP7043598B2 (ja) ハードディスクドライブの寿命予測
CN113179665A (zh) 使用基于纠错的度量来识别性能不佳的数据存储设备
US11977754B2 (en) External indicators for adaptive in-field recalibration
US8667325B2 (en) Method, apparatus and system for providing memory sparing information
JP5504604B2 (ja) Ram診断装置
JP2007293846A (ja) メモリに関する保守および調整操作を行う方法およびシステム
JP6287613B2 (ja) 制御装置、および診断制御プログラム
JP5849491B2 (ja) ディスク制御装置、ディスク装置異常検出方法、及びプログラム
JP5217452B2 (ja) 情報処理装置及びシステム、並びに、記憶領域管理方法及びプログラム
KR20140041408A (ko) 저장 위치 속성 및 데이터 사용량 통계에 기초하여 데이터 저장을 위한 저장 위치 선택
JP7413908B2 (ja) ストレージ制御装置およびバックアップ制御プログラム
WO2019054434A1 (ja) 故障予兆検出装置、故障予兆検出方法、及び、故障予兆検出プログラムが格納された記録媒体
US11645184B2 (en) Systems and methods for predicting hard drive performance
US11593209B2 (en) Targeted repair of hardware components in a computing device
JP4837121B1 (ja) データ記憶装置及びデータ書き込み方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10856667

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012531594

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10856667

Country of ref document: EP

Kind code of ref document: A1