1. Field of the Invention
The present invention relates to a storage area management apparatus and a control method and a storage medium therefor. More particularly, the present invention relates to an apparatus for managing storage areas provided from storage units of upper apparatuses, and a control method and a storage medium therefor.
2. Description of the Related Art
Recent image forming apparatuses (hereinafter, referred to as the MFPs) are each mounted with a nonvolatile storage unit such as an HDD or an SSD for use as a temporary storage of image data. The storage unit has a storage area a part of which can be provided to a user for data storage.
With the above arrangement, individual MFPs have independent storages. In other words, the storage capacity for each MFP is fixed. Accordingly, if the storage capacity is small, the capacity of available data storage area is limited. On the other hand, if a large-capacity HDD is used to increase the storage capacity, a disk mass increases, resulting in increase in the startup time and cost of the MFP. As for data storage, various data are dispersedly stored in the storages of respective MFPs, and therefore the user cannot access desired data without ascertaining in which of the storages the desired data is stored, which impairs user-friendliness.
To eliminate the above drawbacks, there has been proposed a method in which storages provided from network-connected MFPs are integrated into one storage (hereinafter, referred to as the big box) on the network.
With the proposed method, each user can access the integrated storage from any of the MFPs and is not required to ascertain a data storage destination, resulting in improved user-friendliness.
As a storage sharing method, there has been proposed a data communication system in which a printer mounts a storage of a computer and supplies the contents of the storage to other computers, thereby enabling data sharing (see, for example, Japanese Laid-open Patent Publication No. 2002-215347).
With the data communication system, however, if the storage which the printer mounts becomes unusable, e.g., due to power-off of the computer, the storage becomes unable to respond to a request for access from other computers and the big box becomes unable to function.
In the case of using HDDs, which are limited in the number of ON/OFF times, as storages of MFPs constituting the big box, if one of the HDDs is concentratedly accessed, the number of ON/OFF times of the HDD increases and the end of the lifetime of the HDD is reached earlier, so that the big box becomes unable to function.
In the case of using SSDs limited in the number of block deletion times as storages of MFPs constituting the big box, if one of the SSDs is concentratedly accessed, the number of deletion times of the SSD increases and the end of the write-lifetime of the SSD is reached earlier, resulting in the big box becoming nonfunctional.
As described above, the prior art has a drawback that the big box becomes unable to function, if a particular one or ones of storage units constituting the big box are concentratedly accessed.
The present invention provides a storage area management apparatus, and a control method and a storage medium therefor, which are capable of preventing a particular one or ones of storage units of upper apparatuses from being concentratedly accessed, thereby equalizing remaining lifetimes of the storage units.
According to one aspect of this invention, there is provided a storage area management apparatus for managing, as one storage area, a plurality of storage areas respectively provided from nonvolatile storage units of respective ones of upper apparatuses, which comprises a computation unit configured to compute lifetime values representing lifetimes of the plurality of storage areas, and a storage control unit configured to control the upper apparatuses based on the lifetime values computed by the computation unit such that storage areas having longer remaining lifetimes, among the plurality of storage areas, are used for data storage with higher priority order.
With this invention, a particular one or ones of the storage unit of the upper apparatuses can be prevented from being concentratedly accessed, whereby remaining lifetimes of the storage units can be equalized.
Further features of the present invention will become apparent from the following description of an exemplary embodiment with reference to the attached drawings.
The present invention will now be described in detail below with reference to the drawings showing a preferred embodiment thereof.
As shown in
The construction of the system shown in
The PC 6, which is a host computer, has the same hardware structure as that of an ordinary server and includes a CPU, ROM, RAM, etc. The PC 6 is capable of transmitting and receiving a file and an e-mail through the LAN 8 by using FTP protocol or SMB protocol, and is capable of giving a print instruction to any of the MFPs 1 to 5 through a printer driver.
The MFP 1 includes a scanner unit 101 serving as an image input device and a printer unit 102 serving as an image output device.
As shown in
The CPU 601 controls the entire management apparatus 7 and executes various processes described later. The RAM 602 is a volatile memory in which a program and data are developed. The ROM 603 is a nonvolatile memory that stores a BIOS, etc. The HDD 604 is a hard disk drive, which is a nonvolatile storage unit for storing a program and data. The UI 605 is a user interface that includes a monitor, keyboard, pointing device, etc. The network interface 606 is an interface for connection with the LAN 8.
As shown in
When supplied with an original reading instruction from the controller 103 according to a user's operation, the scanner unit 101 exposes and scans an original, inputs light reflected from the original into a CCD where an original image is converted into RGB electrical signals, and outputs the signals to the controller 103.
The printer unit 102 is an image forming device that receives image data from the controller 103 and forms the received image data on a sheet.
The controller 103 is electrically connected to the scanner unit 101 and the printer unit 102, and is capable of communicating image data and device information with the PC 6 and external devices through the LAN 8.
The controller 103 includes a CPU 301, RAM 302, ROM 303, operation unit interface 305, network interface 306, binary image rotation unit 308, hard disk controller 350, HDD 351 (hard disk drive), compression units 313, 329, RIP 328, scanner image processing unit 312, scanner interface 311, image conversion unit 317, decompression unit 316, printer image processing unit 315, and printer interface 314, which are connected to one another through a system bus 310 and an image bus 330.
Based on programs, etc., stored in the ROM 303, the CPU 301 centrally controls access from devices being connected and centrally controls various processing performed inside the controller 103. The RAM 302 serves as a system work memory for use by the CPU 301 for its operation and serves as a memory for temporarily storing image data. The RAM 302 is comprised of an SRAM capable of holding stored contents even after power-off and a DRAM whose stored contents are erased at power-off. The ROM 303 stores a boot program for the MFP 1.
The hard disk controller 350 is connected with the HDD 351 having a hard disk capable of storing system software and image data. In the MFP 1 shown in
The operation unit I/F 305 is an interface unit through which the system bus 310 is connected to the operation unit 120. The operation unit I/F 305 receives through the system bus 310 image data to be displayed on the operation unit 120, outputs the received image data to the operation unit 120, and outputs to the system bus 310 information input from the operation unit 120.
The network interface 306 is an interface through which the system bus 310 is connected to the LAN 8 for input and output of information.
The image bus 330, which is a transmission line for image data, is implemented by a PCI bus.
The scanner image processing unit 312 performs correction, processing, and editing on image data received from the scanner unit 101 through the scanner interface 311. The scanner image processing unit 312 determines, e.g., whether the received image data corresponds to a color original or a monochrome original or corresponds to a character original or a photographic original, and attaches image area data representing a result of the determination to the image data. The compression unit 313 receives image data from the scanner image processing unit 312, and divides the received image data into blocks, each 32×32 pixels in size.
The printer image processing unit 315 performs image processing to obtain image data to be output to the printer unit 102 from image data decompressed by the decompression unit 316, and outputs the processed image data to the printer interface 314.
The image conversion unit 317 that performs image conversions includes a decompression unit 318, compression unit 319, rotation unit 320, magnification variation unit 321, color space conversion unit 322, binary-to-multivalue conversion unit 323, synthesis unit 327, thinning unit 326, movement unit 325, and multivalue-to-binary conversion unit 324, which are conventionally known.
The following is a description of a copy operation performed by the MFP 1 having the construction described above.
Image data read by the scanner unit 101 is transmitted to the scanner image processing unit 312 through the scanner interface 311. Next, the compression unit 313 divides the image data received from the scanner image processing unit 312 into blocks (each 32×32 pixels in size) to thereby generate pieces of tile data, and compresses image data constituted by the tile data. The compressed image data is transmitted to and stored into the RAM 302. It should be noted that the image data is output, where required, to the image conversion unit 317 in which image processing is performed on the image data and from which the processed data is again transmitted to and stored into the RAM 302.
Image data read from the RAM 302 is stored into the hard disk 351 and can be read from the hard disk 351 and output to the system bus 310. The reason why the image data is temporarily stored into the hard disk 351 is that a work area is sometimes required for transposition of pages or the like.
Subsequently, the image data is output from the bus 310 to the decompression unit 316 that decompresses the image data and performs raster development of the decompressed image data constituted by plural pieces of tile data. The image data after the raster development is output to the printer image processing unit 315, and the image data processed in the processing unit 315 is output to the printer unit 102 through the printer interface 314.
Next, an operation of the MFP 1 for printing data written in PDL will be described.
PDL data output from the PC 6 is transmitted to the MFP 1 through the LAN 8 and received by the network interface 306 from which the received data is transmitted to and stored into the RAM 302. The PDL data is analyzed by the CPU 301, and intermediate data generated based on a result of the analysis is output to the RIP 328. The RIP 328 performs rendering of the intermediate data, thereby generating image data in raster form and outputting it to the compression unit 329. The compression unit 329 divides the image data into blocks and compresses the resultant data, which is output to and stored into the RAM 302.
The image data stored into the RAM 302 is read therefrom and written into the hard disk 351. Next, the image data is read from the hard disk 351, is output to the printer unit 102 through the bus 310 and the like, and is printed onto a sheet by the printer unit 102.
Next, an operation of the MFP 1 for storing image data of an original read by the scanner unit 101 will be described.
Image data of an original read by the scanner unit 101 is output to the scanner image processing unit 312 through the scanner I/F 311.
Next, the compression unit 313 divides the image data received from the scanner image processing unit 312 into blocks (each 32×32 pixels in size) to thereby generate pieces of tile data, and compresses the image data constituted by the tile data. The image data compressed by the compression unit 313 is stored into the RAM 302. It should be noted that the image data is sent, where required, to the image conversion unit 317 in which image processing is performed on the image data and the processed data is again stored into the RAM 302.
Subsequently, the image data is read from the RAM 302, a file name is added to the image data according to user's setting, and the resultant data is stored into a predetermined directory of the hard disk 351.
Next, an operation of the MFP 1 for calling data stored in the hard disk 351 will be described.
Data stored in the hard disk 351 is called by the hard disk controller 350, is output to the bus 310, and is subjected to processing according to the user's setting, such as being displayed on the operation unit 120 and being transmitted to a predetermined mail address.
As shown in
The management apparatus 7 recognizes the providable areas A to E of the MFPs 1 to 5, decides what portions of the providable areas should be used as the provided areas, and retains the decided result in a management table.
As shown in
In the illustrated example, the provided areas (denoted by symbols A/2 to E/2) are set to be half of the providable areas A to E, and the remaining areas of the providable areas A to E are set as the auxiliary areas, as shown in
Each of the PC 6 and the MFPs 1 to 5 accesses the management apparatus 7 through the LAN 8, thereby accessing the big box formed by the storages of the MFPs 1 to 5.
In the data storage process of
Next, based on the computed lifetime values of the provided areas of the SSDs, the CPU 601 serving as a storage control unit specifies the use priority order of the provided areas of the SSDs (address regions of the big box), which are data storage destinations (step S103), and determines whether the CPU 601 receives from any of the PC 6 and the MFPs 1 to 5 a request for storing data into the big box (step S104). When receiving a data storage request (i.e., if YES to step S104), the CPU 601 controls the corresponding MFP such that data is stored into one of the provided areas of the SSDs which is determined according to the specified use priority order (step S105), whereupon the process returns to step S102.
There are a variety of methods for computing the lifetime values of the provided areas of the SSDs. In this embodiment, four methods will be described below in sequence.
In a first method, the lifetime value of the provided area of each SSD is computed according to the following formula (1).
Lifetime value=(Total amount of data stored up to now)/(Capacity of provided area) (1)
In formula (1), the term “total amount of data stored up to now” refers to an amount of use of the provided area of the SSD (i.e., total size of data temporarily stored in the provided area). The lifetime value is computed as being 1500, if the capacity of the provided area of the SSD is 20 GB and data of 30 TB has been temporarily stored up to now in the provided area. As the lifetime value becomes larger, it is indicated that the provided area has been well used. In a case, for example, that the lifetime values of provided areas A′ to C′ of SSDs are 1500, 3000, and 2000 respectively as shown in
In the first method, an amount of use of each provided area per unit capacity of the provided area is computed as the lifetime of the provided area. It is therefore possible to compare the lifetimes of provided areas with one another, even if the provided areas are different in capacity from one another.
In a second method, the lifetime value of the provided area of each SSD is computed according to the following formula (2).
Lifetime value=[{(Total amount of data stored up to now)/(Capacity of provided area)}/(Upper limit value of number of deletion times)]×100 (2)
In formula (2), the term “total amount of data stored up to now” refers to the amount of use of the provided area of the SSD (i.e., total size of data temporarily stored in the provided area). The upper limit value of the number of deletion times can be specified by the management apparatus 7 or by the user. The lifetime value in formula (2) indicates the ratio of the amount of use of the provided area per unit capacity of the provided area to the upper limit value of the number of deletion times. The lifetime value is computed as being 15% in a case where the upper limit value of the number of deletion times is 10000, the capacity of the provided area is 20 GB, and data of 30 TB has been temporarily stored up to now in the provided area. As the lifetime value becomes larger, it is indicated that the provided area has been well used. In the second method, the amount of use of each provided area per unit capacity of the provided area per unit upper limit value of the number of deletion times is computed as the lifetime of the provided area. It is therefore possible to compare the lifetimes of provided areas with one another, even if the provided areas are different from one another in the upper limit value of the number of deletion times.
In a third method, the lifetime value of the provided area of each SSD is computed according to the following formula (3).
Lifetime value={(Total amount of data stored up to now)/(Capacity of provided area)}/(Time of use of provided area up to now) (3)
In formula (3), the term “time of use of provided area up to now” refers to the total time of use of the provided area of the SSD. The lifetime value in formula (3) indicates the ratio of the amount of use of the provided area per unit capacity of the provided area to the time of use of the provided area of the SSD. The lifetime value is computed as being 1.5/hour in a case where the time of use of the provided area up to now is 1000 hours, the capacity of the provided area is 20 GB, and data of 30 TB has been temporarily stored up to now in the provided area. As the lifetime value becomes larger, it is indicated that the provided area has been well used. In the third method, the amount of use of each provided area per unit capacity of the provided area per unit time of use of the provided area is computed as the lifetime of the provided area. It is therefore possible to compare the lifetimes of provided areas with one another, even if the provided areas are different in time of use from one another. Based on a result of the comparison, the use frequencies of the provided areas of the SSDs can be equalized.
In a fourth method, the lifetime value of the provided area of each SSD is computed according to the following formula (4).
Lifetime value=[{(Total amount of data stored up to now)/(Capacity of provided area)}/(Upper limit value of number of deletion times)]×100/(Time of use of provided area up to now) (4)
The lifetime value in formula (4) indicates the ratio of the amount of use of the provided area per unit capacity of the provided area per unit upper limit value of the number of deletion times to the time of use of the provided area. The lifetime value is computed as being 0.15%/hour in a case where the time of use of the provided area up to now is 1000 hours, the upper limit value of the number of deletion times is 10000, the capacity of the provided area is 20 GB, and data of 30 TB has been temporarily stored up to now in the provided area. As the lifetime value becomes larger, it is indicated that the provided area has been well used. In the fourth method, the lifetime of the provided area is computed by dividing the amount of use of each provided area per unit capacity of the provided area per unit upper limit value of the number of deletion times by the time of use of the provided area. It is therefore possible to compare the lifetimes of provided areas with one another, even if the provided areas are different in time of use from one another. Based on a result of the comparison, the use frequencies of the provided areas of the SSDs can be equalized.
With the data storage process of
The provided area changing process is performed when any of the remaining lifetimes of the provided areas becomes short, even if the lifetimes of the provided areas have been equalized by executing the data storage process of
In the example of
In the example of
In the changing process of
With the provided area changing process of
In the data movement process of
If it is determined in step S203 that the difference between the maximum and minimum values of the acquired lifetime values does not exceed the predetermined threshold value (i.e., if NO to step S203), the present process is completed. If the difference between the maximum and minimum values of the acquired lifetime values exceeds the predetermined threshold value (i.e., if YES to step S203), the CPU 601 determines whether or not it detects an MFP job (step S204).
When detecting an MFP job (i.e., if YES to step S204), the CPU 601 serving as a data movement unit prohibits data movement since an error can occur, such as unconformity of data or absence of data, if data is moved when the MFP job is being executed and hence there is a high possibility of the data being used (step S207), whereupon the present process is completed. When not detecting an MFP job (i.e., if NO to step S204), the CPU 601 moves data from the provided area having the minimum lifetime value to the provided area having the maximum lifetime value (step S205), and determines whether or not the data movement is completed (step S206). If the data movement is completed (i.e., if YES to step S206), the present process is completed.
According to the data movement process of
Referring to
In accordance with the warning, the user is able to know the timing of replacement of storage, whereby the user-friendliness of the MFP can be improved.
In the data storage process of
Next, the CPU 601 specifies the order of use priorities of the provided areas of the HDDs (data storage destinations) based on the lifetime values of the provided areas (step S303), and determines whether or not the CPU 601 receives a request for data storage into the big box from any of the PC 6 and the MFPs 1 to 5 (step S304). When receiving a data storage request (i.e., if YES to step S304), the CPU 601 stores data into the provided area of the HDD (data storage destination) determined according to the specified order of use priorities (step S305), and returns to step S302.
With the data storage process of
In the data storage process of
If it is determined in step S401 that the type of one or more of the storages is SSD, the CPU 601 acquires information representing the capacities of the provided areas of the SSDs from the management table (step S404), computes the lifetime values of provided areas of the SSDs in the same computation method as that in step S102 of
When receiving a data storage request (i.e., if YES to step S407), the CPU 601 determines whether or not, among the power cycle count values acquired in step S402, at least the power cycle count value of the provided area of the HDD having the highest priority in terms of the order of use priorities specified in step S403 is equal to or less than the predetermined value (step S408). If the answer to step S408 is YES, data is stored into the provided area of the HDD determined according to the specified order of use priorities, i.e., into the provided area of the provided area having the highest use priority (step S409), whereupon the process returns to step S401.
If it is determined in step S408 that each of all the acquired power cycle count values is not equal to nor less than the predetermined value (i.e., if NO to step S408), data is stored into the provided area of the SSD determined according to the specified order of use priorities (step S410), and the process returns to step S401.
In the data storage process of
If it is determined in step S501 that the type of one or more of the storages is SSD, the CPU 601 acquires information representing the capacities of the provided areas of the SSDs from the management table (step S504), computes lifetime values of the provided areas of the SSDs in the same computation method as that in step S102 of
In step S506, the CPU 601 specifies the order of use priorities of the provided areas of the HDDs and the SSDs (data storage destinations) based on the computed lifetime values. Next, it is determined whether a request for data storage into the big box is received from any of the PC 6 and the MFPs 1 to 5 (step S507). When receiving a data storage request (i.e., if YES to step S507), data is stored into the provided area of the HDD or the SSD determined according to the specified order of use priorities (step S508), whereupon the process returns to step S501.
The following is a description of how lifetime values of HDDs are computed in step S503.
The CPU 601 computes remaining lifetime values of provided areas of the HDDs based on the power cycle count values acquired in step S502 and an upper limit value of power cycle count. The upper limit value of power cycle count can be instructed by the management apparatus 7 or by the user. There are a variety of methods for computing the lifetime values. In this embodiment, two methods will be described below.
In a first method, the lifetime value of the provided area of each HDD is computed according to the following formula (5).
Lifetime value={(Current power cycle count value)/(Upper limit value of power cycle count)}×100 (5)
The remaining lifetime value is computed as being 12% in a case, for example, that the upper limit value of power cycle count is 50000 and the current power cycle count value is 6000.
In the first method, the ratio of the current power cycle count value to the upper limit value of power cycle count is computed as the lifetime value. It is therefore possible to compare the lifetimes of HDDs with one another, even if the HDDs are different in upper limit value of power cycle count (i.e., HDD type) from one another.
In a second method, the lifetime value of the provided area of each HDD is computed according to the following formula (6).
Lifetime value=[{(Current power cycle count value)/(Upper limit value of power cycle count)}×100]/(Time of use of HDD up to now) (6)
The lifetime value is computed as being 0.012%/hour in a case, for example, that the time of use of HDD up to now is 1000 hours, the upper limit value of power cycle count is 50000, and the current power cycle count value is 6000.
In the second method, the ratio of the current power cycle count value per unit upper limit value of power cycle count to the time of use is computed as the lifetime value. It is therefore possible to compare the lifetimes of HDDs with one another, even if the HDDs are different in type and in time of use from one another.
Aspects of the present invention can also be realized by a computer of a system or apparatus (or devices such as a CPU or MPU) that reads out and executes a program recorded on a memory device to perform the functions of the above-described embodiment, and by a method, the steps of which are performed by a computer of a system or apparatus by, for example, reading out and executing a program recorded on a memory device to perform the functions of the above-described embodiment. For this purpose, the program is provided to the computer for example via a network or from a recording medium of various types serving as the memory device (e.g., computer-readable medium).
While the present invention has been described with reference to an exemplary embodiment, it is to be understood that the invention is not limited to the disclosed exemplary embodiment. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
This application claims the benefit of Japanese Patent Application No. 2010-264957, filed Nov. 29, 2010, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | Kind |
---|---|---|---|
2010-264957 | Nov 2010 | JP | national |