COPYRIGHT NOTICE  
       [0001]     A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.  
       BACKGROUND OF THE INVENTION  
       [0002]     1. Field of the Invention  
         [0003]     The present invention relates to storage pooling, and more particularly to management of provisioning and storage pooling for journal based backup, recovery, and remote copy of data. The present invention is yet more particularly related to management of storage pooling in storage systems having storage devices of varying performance attributes and the allocation of the storage pools to journals having varying performance priorities.  
         [0004]     2. Discussion of Background  
         [0005]     Data is increasingly being stored in large scale storage systems with multiple physical and logical devices. Backing up stored data is of primary importance to all vendors of data storage and particularly to data users.  
         [0006]     Several methods are conveniently used to prevent data loss. Typically, data is backed up in a periodic manner (e.g., once per day) by a system administrator. Many systems are commercially available which provide backup and recovery of data (e.g., Veritas, NetBackup, Legato/Networker, and so on). Another technique is known as volume shadowing. This technique produces a mirror image of data onto a secondary storage system as it is being written tot he primary storage system.  
         [0007]     Journaling is a backup and restore technique commonly used in database systems. An image of the data to be backed up is taken. Then, as changes are made to the data, a journal of changes is maintained. Recovery of data is accomplished by applying the journal to an appropriate image to recover data at any point in time. Typical database systems, such as Oracle, can perform journaling.  
       SUMMARY OF THE INVENTION  
       [0008]     The present inventor has realized that increased storage capacity at lower cost in a storage system is possible by adding a less inexpensive storage system (such as an ATA array system and/or a predecessor model of storage system). However, the present inventor has also realized that, in the situation where various types of storage systems are interconnected to each other, since there are differences in reliability and performance between the storage systems (and possibly between devices within the storage system), it is preferable, and may be required, to store certain data in a specific storage system. In fact, in some cases storing data in an incorrect or less preferred of the available storage systems can degrade performance of the entire interconnected system.  
         [0009]     The present invention provides a storage system that includes a mechanism by which storage space is allocated within the storage system. In one embodiment, the storage space is allocated based on performance priorities of data to be stored in the allocated space. In one embodiment, the storage space is allocated for journal volume(s), which are, for example, journal data of updates to one or more data volumes. The data volumes store data received from a host computer and the journal data is stored in journal volumes different from the data volumes. The storage space is allocated based on performance priorities of the type of journal data to be stored in the allocated space. In one embodiment, the present invention also provides capability to select proper volumes for the journal volumes in the appropriate storage pool so that the journal volumes can be efficiently accessed.  
         [0010]     The storage system of the present invention also identifies and manages one or more storage pools comprising the same kind of storage device (e.g., disk drives). The storage system itself may be composed of multiple different kinds of storage devices. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0011]     A more complete appreciation of the invention and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:  
         [0012]      FIG. 1  is a block diagram of data processing system including a host, a primary storage system, and secondary systems configured according to an embodiment of the present invention;  
         [0013]      FIG. 2  is a sequence diagram of determining physical disk information according to an embodiment of the present invention;  
         [0014]      FIG. 3  is a table of storage system configuration information to an embodiment of the present invention;  
         [0015]      FIG. 4  is a table maintaining information about physical disks used in a storage system according to an embodiment of the present invention;  
         [0016]      FIG. 5  is a table of RAID group configuration information according to an embodiment of the present invention;  
         [0017]      FIG. 6  is a table of logical device configuration information according to an embodiment of the present invention;  
         [0018]      FIG. 7  is a table of a rank of storage pool elements according to an embodiment of the present invention;  
         [0019]      FIG. 8  is a table of journal information according to an embodiment of the present invention;  
         [0020]      FIG. 9  is a table of journal group per journal table according to an embodiment of the present invention;  
         [0021]      FIG. 10  is a table of pool ID&#39;s for selected journal type ID according to an embodiment of the present invention;  
         [0022]      FIG. 11  is a table of interface rank according to an embodiment of the present invention;  
         [0023]      FIG. 12  is a block diagram of a host, storage systems, and cache according to an embodiment of the present invention;  
         [0024]      FIG. 13  is a flow chart illustrating a process to set a cache pool according to an embodiment of the present invention;  
         [0025]      FIG. 14  is a flow chart of a process of LDEV assignment to a journal type according to an embodiment of the present invention;  
         [0026]      FIG. 15  is a table of mapped journal type ID and journal ID types according to an embodiment of the present invention;  
         [0027]      FIG. 16  is an LDEV configuration table after Journal ID type and LDEV mapping according to an embodiment of the present invention;  
         [0028]      FIG. 17  is a flow chart that illustrates an overview of a method for assignment of storage pool resources to a journal group according to an embodiment of the present invention;  
         [0029]      FIG. 18  is a table of a cache pool according to an embodiment of the present invention;  
         [0030]      FIG. 19  is a table of a cache pool after allocation of LDEVs tot he cache pool according to an embodiment of the present invention;  
         [0031]      FIG. 20  is a table of illustrating LDEV configuration after allocation of a cache pool according to an embodiment of the present invention; and  
         [0032]      FIG. 21 a  drawing illustrating basic operations of a type of “normal after journal,” and a type of “before journal” process that are applicable to several embodiment of the present invention.  
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0033]     Referring now to the drawings, wherein like reference numerals designate identical or corresponding parts, and more particularly to  FIG. 1  thereof, there is illustrated a block diagram of data processing system including host  101 , at least one application software  106 , storage system  107  coupled to host  101 , and external storage systems  108  and  109  coupled to storage system  107 .  
         [0034]     Storage system  107  has data volumes  114  storing data that host  101  reads from/writes to. Application storage system  107  is referred to as a primary storage system. Primary storage system  107  has, for example, several types of storage systems. The several types of storage systems are, for example, disk drives, such as SCSI disks, ATA disks, or other disks. The primary storage system  107  and external storage systems  108  and  109  together comprise an inter-connected storage system. External storage systems  108  and  109  are, for example, secondary storage systems.  
         [0035]     In this embodiment, host  101  is configured to run pool manger  102  and provisioning manger  104 . Pool manager  102  is configured to discover storage resources in primary storage system  107  and storage systems  108  and  109 , and to create a storage pool for each type of storage device (e.g., each type of disk drive). The resource discovery may be done automatically or manually. Provisioning manager  104  is configured to assign storage resources of the storage pools for one or more journal volumes based on journal information. The journal information is, for example, stored in primary storage system  107 , and an example detail of the journal information is shown in  FIG. 8 .  
         [0036]     Alternatively, pool manger  102  and provisioning manger  104  may run on a sever other than host  101  or primary storage system  107 , or may comprise a set of specifically designed circuits configured to operate independent of a host device. Also, the pool and provisioning managers may be hosted in different places.  
         [0037]     In one embodiment, host  101  includes a management database  103 . An example structure of the management database is shown in FIGS.  3  to  11  and  18 . Alternatively, the information of the management database may be stored in memory  112  or another location. Storage information  130  is information about a storage system (e.g., primary or secondaries) that may, for example, be provided by a storage vender. Storage information  130  includes, for example, serial number, vender name, storage system name, product name, etc.  
         [0038]     Primary storage system  107  includes controller  110   a , journal information  111 , memory  112 , a journal group  115 , snapshots  116 , storage pool  117  and management table  125 . Controller  110   a  manages physical disks and logical devices in the primary storage system  107 . Journal group  115  is a set of data volumes  114 . Whenever data in any data volume  114  in the journal group  115  is updated, the updates are recorded as journal data in chronological order in the journal group  115 . In one embodiment, primary storage system  107  is configured to have a plurality of journal groups therein.  
         [0039]     Each snapshot  116  is a point in time copy of a data volume  114 . Storage pool  117  includes logical devices  121 . Storage pool  117  is made up with physical disks with the same performance attributes.  
         [0040]     Controller  110   a  is configured to collect physical disk information from the primary storage system  107  and in external storage systems  108  and  109 . The physical disk information is collected, for example, by using “Identify Device” commands for ATA disks and “Inquiry” commands for SCSI disks. The collected disk information is stored, for example, in disk configuration  113  in memory  112 . Logical device information may also be stored in disk configuration  113 .  
         [0041]     An example detail of the disk configuration  113  is shown in  FIGS. 3-6 . Journal information  111  is information about a journal function that primary storage system  107  provides. Journal information  111  may be set by a storage vendor or by a user through provisioning manager  102  (e.g. via a GUI). Management table  125  is information used to manage the journal data.  
         [0042]     Storage system  108  includes storage controller  110   b  and storage pool  118 . Controller  110   b  manages physical disks and logical devices in the storage system  108 . Storage system  109  includes storage controller  110   c  and storage pools  119  and  120 . Controller  10   c  manages physical disks and logical devices in the storage system  109 .  
         [0043]      FIG. 17  illustrates an overview of an embodiment of a method for assignment of storage pool resources to a journal group.  
         [0044]     Step  1701 : The Pool Manager  102  retrieves information of storage system configurations, and makes  FIG. 3 . See  FIG. 3 .  
         [0045]     Step  1702 : The Pool Manager  102  retrieves information of disk configurations, and makes  FIG. 4 . See  FIG. 4 .  
         [0046]     Step  1703 : The Pool Manager  102  retrieves information of raid group configurations, and makes  FIGS. 5, 6  and  7 . See  FIGS. 5, 6  and  7 .  
         [0047]     Step  1704 : The Pool Manager  102  retrieves information of journal configurations, and makes  FIG. 10 . See  FIG. 10 .  
         [0048]     Step  1705 : A user makes a journal group by using Provisioning Manager  104 .  
         [0049]     Step  1706 : Provisioning Manager assigns LDEVs to each journal group. Then updates  FIGS. 9 and 6 . An example method for assigning LDEVs is illustrated in  FIG. 14 .  
         [0050]      FIG. 2  shows a sequence diagram for collecting physical disk information. As mentioned above, controller  110   a  may collect physical disk information in primary storage system  107  using “Identify Device” commands for ATA disks and “Inquiry” commands for SCSI disks. Other appropriate commands may be utilized for other storage devices.  
         [0051]     The primary storage system  107  has an interface to communicate with one or more external storage systems. The external storage systems are identified by a port number or a serial number.  
         [0052]     Controller  110   a  sends inquiry commands to controller  10   b  and  110   c  to obtain information regarding storage devices in storage systems  108  and  109 . The inquiry commands, for example, direct controller  110   b  to collect physical disk information in the storage system  108  using, for example, “Identify Device” commands for ATA disks and “Inquiry” commands for SCSI disks in accordance with the inquiry command and send the information to controller  110   a . Controller  110   c  sends physical disk (or other storage information) in the storage system  109  to storage controller  110   a  in the same way.  
         [0053]     The detail of disk configuration  113  is shown in  FIGS. 3-6 . Disk configuration  113  includes information collected by controller  110   a.    
         [0054]      FIG. 3  shows a table of storage system configuration. Storage system ID  401  is an ID for a storage system. Pool Manager  102  defines a Storage system ID. Storage system name  402  corresponds to the storage system ID 401 . Storage system name  402  is provided for ease in system management, and may be user selected. Vender name  403  identifies the manufacturer of the storage system. Product name  404  is a product name of the storage system. Serial number  405  is a serial number for the storage system (e.g., manufacturer&#39;s serial number). Cascade  406  is a flag indicating if the storage system is an external storage system. Cascade  0  identifies the storage system as a local storage system. Cascade  1  identifies the storage system as being connected to the local storage system. Cascade  2  identifies the storage system as being connected to a cascade  1  storage system. Pool Manager  102  assigns cascade  406 . A cascade  3  identifies the storage system as being connected to a cascade  2  storage system. Cascade  406  may be used to determine access rate rank  804 .  
         [0055]     As with each table described herein,  FIG. 3  is exemplary and more or less information may be contained therein and not depart from the spirit and scope of the present invention. Information of  403 - 405 , maintained in storage information  130  is provided by the storage vender and/or manufacturer. If the information is not available, the Pool Manager  102  or a user can define the information. For example, the Pool Manager  102  may define default names and numbers such as vendor_X, vendor_Y, vendor_Z, product_A, product_B, product_C, 001, 002 and 003, to identify the storage systems.  
         [0056]      FIG. 4  illustrates a table maintaining information about the physical storage devises (e.g., disks) which are used in storage systems  107 ,  108 , and  109 . The device ID  502  identifies each physical storage device, each preferably being a physical disk drive. Storage system ID identifies the storage system where each physical storage device is installed. Interface  503  is a protocol name that each corresponding physical disk supports. Vender name  504  is the name of the manufacturer of the physical disk (or other storage device). Model name  505  is a model name for the physical disk. Buffer  506  is an amount of buffer installed into the physical disk.  
         [0057]     Rotational speed  507  is the rotational speed of the physical disk, which is specified, for example, in units of revolutions per minute. Capacity  508  is the size of physical disk. Internal data transfer rate  509  is a transfer rate of the physical disk, which may, in most cases, be calculated by the rotational speed x the recoding density. Average of seek time  510  is an average seek time of the physical disk. Number of disks  511  is a number of disks in the disk drives (or other media in the storage device).  
         [0058]     The set of information  503 - 511  defines a set of attributes that apply to each device ID  502 . The collected physical disk information is used to populate the physical disk table and the information is accessed and managed by the pair of storage system ID  401  and device ID  502 . As mentioned above, the physical disk information is written in acknowledge signals responding to “Identify Device” commands or “Inquiry” commands. If there is information that is not defined in ATA or SCSI protocols, such information is written in a vendor unique field of the acknowledge signals. A user can also provide or define the information of  503 - 512  (e.g., via a GUI interface). Total capacity  512  is a total capacity of each physical storage device identified by device ID.  
         [0059]      FIG. 5  shows configuration of RAID groups in the storage system  107 ,  108 , and  109 . RAID group field  601  contains an ID for a RAID group. Number of physical disk  602  is the number of physical disks in a corresponding RAID group. Number of LDEV  603  is the number of logical devices in the RAID group. Used space  604  is the amount of used space of the RAID group. RAID level  605  is the RAID level of the RAID group. Free space  606  represents the amount of free space of the RAID group. This information is collected by controllers  110  (e.g.  110   a ,  110   b , and  110   c ) from storage information  130  and/or retrieved/calculated from other data in the acknowledge responses.  
         [0060]      FIG. 6  illustrates the configuration of logical devices (LDEV). LDEV ID  701  is an ID for a LDEV. Capacity  702  is an amount of capacity of a corresponding LDEV. Port  703  is a port name that the corresponding LDEV is mapped to. The field in use  704  is a flag indicating if the logical device has already been assigned to a pool or other task and is used by the Provisioning Manager  104 , for example, to determine if it can assign the LDEV to a pool (e.g., a pool of journal type ID  901 ). Used space  705  represents an amount of capacity currently being used by the corresponding LDEV. Pool ID  801  is used to identify a storage pool to which the corresponding LDEV is assigned. Pool Manager  102  assigns the unique pool ID  801  to the corresponding LDEV device ID (LDEV ID  710 ). Pool Manger  102  gets information of  701 - 705  from storage information  130  via controller  110   a  and populates the LDEV configuration table ( FIG. 6 ).  
         [0061]     In one embodiment, three types of journals are defined, “normal after journal”, “before journal” and “mirrored after journal.” “normal after journal” records writing from host  101  for backup/recovery. Hereupon controller  110   a  takes a snap shot for backup/recovery. “Normal after journal” also records writing from host  101  for remote copy. “Before journal” is taken during quick recovery for “undo.” “Mirrored after journal” is a copy of the “normal after journal”.  
         [0062]     Basic operations of a type of “normal after journal,” and a type of “before journal” are illustrated in  FIG. 21 . Depending on structure or operation of a journal, certain performance preferences, or needs, are associated with the storage pool used for the journal. For example, a storage pool for “normal after journal” needs large storage capacity in particular because all writing is saved in this pool by controller  110   a . A storage pool for “before journal” needs a combination of a fast access rate and reliability because “before journal” is used for backup/recovery. The fast access rate is needed to perform the backup/recovery quickly. The storage pool for “before journal” is not allowed to delete before journal data because it is needed to recover the data. Therefore, the storage pool for “before journal” needs reliability. A storage pool for “Mirrored after journal” also needs a large storage capacity.  
         [0063]      FIG. 8  illustrates a table of journal information  111  of journals that primary storage system  107  manages. The journal information identifies and/or describes characteristics, such as performance preferences, of the managed journals. For example, journal type ID  901  is an ID for identifying a journal type of the journal types managed. A storage pool which has a particular journal type ID  901  is a storage pool for the type of journal identified by the particular journal type ID. Controller  110   a  takes journal to an appropriate storage pool for journal type ID. Controller  110  saves data for a journal to a storage pool assigned to the journal, the assigned storage pool having appropriate performance attributes that best satisfy the performance preferences for the journal type with consideration given to other journal types.  
         [0064]     Continuing now with the journal information table of  FIG. 8 , journal name  902  is a name of the journal. Priority  903  is a priority of the journal, which is used in assigning storage resources. In this embodiment, priority “1” is the highest priority.  
         [0065]     Capacity  904  is a performance preference that indicates a preferable relative amount of storage space used to store the journal. Reliability  905  is a performance preference that indicates a preferable degree of reliability of storage used to store the journal. And, access rate  906  is a performance preference that indicates a preferable relative access rate of storage used to store the journal.  
         [0066]     In Capacity  904 , reliability  905  and access rate  906 , are, in one embodiment, identified using the following five levels: “very high”, “high”, “moderate”, “low”, and “very low.” Appropriate pools are assigned to hold journal data based on the levels. In other embodiments, instead of relative, or degrees, of performance, specific values or a range of values are indicated (e.g. not less than a specified access rate, or not less than a specific capacity, etc.).  
         [0067]      FIG. 7  is a table illustrating the configuration of a number of storage pools. Control items over the storage pool are pool ID  801 , device ID  502 , capacity rank  802 , reliability rank  803 , access rate rank  804 , writable flag  805 , and enable flag  806 . Pool ID is associated with device ID. Writable flag  805  is used to determine if the pool is available for storing journal data. In this embodiment, if writable flag  805  is set at “1”, the corresponding pool is available for storing journal data, and if “0”, it is not available. Usually “1” is set. This flag is checked, for example, before assigning LDEVs from the pool or writing journal data. Enable flag  806  is used to indicate that the corresponding pool is valid/invalid. Enable flag “0” indicates invalid, and enable flag “1” indicates valid. The pool with enable flag “0” is neglected in assignment of logical devices (LDEVs) for journal data.  
         [0068]     A storage pool is configured in the following way by pool manager  102 : 
        1. Assign a unique pool ID  801  to a corresponding device ID. The pool ID is used to identify a storage pool.     2. Determine a rank of capacity  802  for each pool M. This rank is determined, for example, based on total capacity  512  of each device ID  502  in  FIG. 4      3. Determine a rank of reliability  803  for each pool ID. This rank is determined, for example, based on the interface type of the pool (e.g., different interfaces have different reliability, e.g., SCSI is more reliable than ATA). As shown in  FIG. 11 , interface rank is set such that higher rank is assigned in the order of SAS, SCCI and ATA. Within the same protocol, higher rank may be assigned, for example, in the order of data transfer rate. A higher rank within the reliability rank  803  is assigned to the pool that has an interface with a higher interface rank compared to other pools.     4. A rank of access rate  804  is determined based on, for example, the following performance attributes in the following order: internal data transfer rate  509  in  FIG. 4 , data transfer rate  1202  in  FIG. 11 , average seek time  510  in  FIG. 4 , rotational speed  507  in  FIG. 4  and buffer size  506  in  FIG. 4 . In this way,  FIG. 7  is made up. However, in other embodiments a different set of performance attributes may be utilized. A transfer rate of the pool interface is factored into the access rate rank.        
 
         [0073]     Journal group  115  is a set of data volumes  114 . Updates to the data volumes  114  in the same journal group are stored in the journal volumes. As shown in  FIG. 9 , a journal group is managed together with the corresponding type of journal. Journal group ID  1001  is a unique ID assigned to each journal group and is used to identify a particular journal group. Various types ofjournals may be created by controller  110   a  from each journal group. For example, in one embodiment, three types of journals are created: “normal after normal,” “before journal,” and “mirrored after journal.” The Provisioning Manger  104  creates a journal group table such as that illustrated in  FIG. 9  by using, for example, journal type ID of  FIG. 8  and other information. For example, in one embodiment, creation of  FIG. 9  is an initial step (e.g., see step  1401 ) in a method that assigns LDEVs to one or more journal groups.  
         [0074]     If automatic increased capacity mode  1002  is on, capacity of the storage pool for the corresponding journal type is increased automatically by executing the process of  FIG. 14  when used capacity  1004  ( 705  of each disk drive in the corresponding journal type) is over the threshold for automatic increased capacity  1004 . A user can define the threshold for automatic increased capacity  1004  as remaining capacity (e.g., Giga Bytes (GB) or a percentage of used/free capacity).  
         [0075]     A user may specify automatic increased capacity mode  1002 , capacity of increased capacity  1003 , and threshold for automatic increased capacity  1004  when a journal group is created. In one embodiment, a default of automatic increased capacity mode  1003  is off. Pool Manager  102  periodically updates  FIG. 6  and monitors the used space  705  for automatic increased capacity mode.  
         [0076]     Provisioning Manager  104  determines a rank of the storage pools to assign LDEVs to the journal type. For example, the Provisioning Manager  104  is configured to: 
        1. Select a journal type ID with highest priority in the table shown in  FIG. 8 . In this example, Journal type ID  1  is selected first in  FIG. 8 .     2. Select the highest-ranked item among capacity  904 , reliability  905 , and access rate  906  for the selected journal type ID based on the table in  FIG. 8 . For example, capacity  904 , reliability  905 , and access rate  906  of Journal type ID  1  are “low”, “high” and “very high,” so the highest-ranked item is access rate. In the case where capacity  904 , reliability  905 , and access rate  906  are the same in rank, the first priority is reliability  905 , the second priority is access rate, and the third priority is capacity  904 .     3. Determine order of pool ID  1101  in  FIG. 10  for the selected journal type ID. In the case where the selected journal type ID is “0”, the selected highest-ranked item is capacity  904 , and storage pools are assigned to the selected journal type ID in the order of descending ranks in capacity  904  in the table shown in  FIG. 7  (in the order of pool IDs  1 ,  2 ,  3 ,  0 ). The order of pool ID identifies the order of using storage pools for the selected journal type ID. In the case that the selected journal type ID is “0”, storage pool ID  1  is first used. If the assigned area (writable  805 , in use  704 ) of storage pool ID  1  is occupied, then storage pool ID  2  is second used. If the assigned area (writable  805 , in use  704 ) of storage pool ID  2  is occupied, then storage pool ID  3  is third to be used. If the assigned area (writable/in use) of storage pool ID  3  is occupied, then storage pool ID  0  is fourth used, and so on as applicable to the number of available pools.     4. Select a journal type ID with second highest priority in the table shown in  FIG. 8         
 
         [0081]     In this way, the provisioning manager populates a journal type ID/order of pool ID table as shown in  FIG. 10 . Based on information contained in the tables of  FIGS. 9 and 10 , provisioning manager  104  can determine to which storage pool each journal group should be assigned. This allocation can be performed manually displaying the tables in  FIGS. 7-9 , on for example, a GUI of the provisioning manager  104  and providing a selection tool for the user.  
         [0082]     The order of pool ID  1101  is an order for each journal type that Controller  110   a  assigns storage pools to journals of a corresponding journal type. For example, in  FIG. 10 , order of pool ID of journal type ID  0  is 1, 2, 3 and 0. Therefore, Controller  110   a  stores journals to one or more storage pools of pool ID=to start. If all storage pools of pool ID=1 are full, Controller  110   a  then continues by storing the journals to one or more storage pools of pool ID=2. And so on, if all storage pools of pool ID=2 are full, Controller  10   a  then stores the journals to one or more storage pools of pool ID=3.  
         [0083]      FIG. 14  shows a method of LDEV assignment to storage pool of each journal type ID  901 .  
         [0084]     A user specifies a journal group ID  1001  with parameters (port, capacity of storage pool, automatic increased capacity mode, capacity of increased capacity and threshold for automatic increased capacity) by using Provisioning Manager  104 . Alternatively, the parameters may be provided to the Provisioning Manager in a text file, Optical Character Recognition (OCR), scanned in via one or more bar codes, RFID chip or other data entry techniques.  
         [0085]     Step  1401 : Provisioning Manager  104  creates  FIG. 9  for the specified journal group.  
         [0086]     Step  1402 : Provisioning Manager  104  retrieves the configuration of LDEV(s) from  FIG. 6 , list of priority  903  corresponding to the journal type IDs  901  from  FIG. 8 , and the table that relates each journal type ID to an order of pool IDs from  FIG. 10 .  
         [0087]     Step  1408 : Provisioning Manager  104  sets the journal type ID N to the highest priority journal type.  
         [0088]     Step  1409 : Provisioning Manager  104  sets the pool ID R to the first pool ID for Journal type R. This and subsequent settings of the pool ID are taken according to the order of pool ID for the journal type ID R.  
         [0089]     Step  1403 : Provisioning Manager  104  checks whether there is a LDEV of the Rth pool ID not in use for Nth journal type ID. If the LDEV does not exist, go to step  1407 . If the LDEV exists, go to step  1404 .  
         [0090]     Step  1404 : Provisioning Manager  104  assigns one LDEV and its specified port to the Nth journal type ID from the Rth pool ID. Then, Provisioning Manager  104  saves this information to  FIG. 9  (e.g., LDEV ID  701 , port  703 , capacity  702  and pool ID  801 ) and  FIG. 6  (e.g., changing in use  704  to yes).  
         [0091]     Step  1405 : Provisioning Manager  104  checks whether the Nth journal type ID has the required capacity based on currently assigned LDEVs. If the required capacity is not yet met, go to step  1403 . If the required capacity has not been met, go to Step  1406 .  
         [0092]     Step  1406 : Provisioning Manager  104  checks whether all journal type IDs have been assigned their capacities based on all currently assigned LDEVs. If the required capacities have not been met, go to Step  1411 . If the required capacities have been met, go to END.  
         [0093]     Step  1407 : Provisioning Manager  104  checks whether there are any pools that have an LDEV that is assignable to Nth journal type ID. If no LDEVs are available, go to END. If so, go to step  1410 .  
         [0094]     Step  1410 : Provisioning Manager  104  sets the pool ID R to the next Pool ID in order of Pool ID for the current journal type ID N.  
         [0095]     Step  1411 : Provisioning Manager  104  sets the journal type ID to the next highest priority journal type.  
         [0096]     For example, a user specifies: journal group ID  1001  as 0, 3840 GB as capacity of journal type ID=0, 200 GB as capacity of journal type ID=1, 2880 GB as capacity of journal type ID=2, automatic increased capacity mode  1002  of journal type IDs=0 and 2 as on, capacity of increased capacity  1003  for journal type IDs  0  and  2  as 960 GB, threshold for automatic increased capacity  1004  for journal type ID=0 as 800 GB for remaining capacity, threshold for automatic increased capacity  1004  for journal type ID=2 as 70% in use. And, at step  1401 , Provisioning Manager  104  creates  FIG. 9  for the journal group ID=0. At step  1402 , Provisioning Manager  104  gets information from  FIGS. 10, 8  and  6 .  
         [0097]     At step  1408 , Provisioning Manager  104  sets N to  1 .  
         [0098]     At step  1409 , Provisioning Manager  104  sets R to  0 .  
         [0099]     According to the data from  FIG. 10 , the order that Provisioning Manager  104  selects LDEVs from pool ID  801  for journal type ID=1 is pool ID=0, 2, 3, 1. In accordance therewith, at step  1409 , the pool ID is initially set to 0, and Provisioning Manager  104  will initially proceed to select LDEVs from pool ID=0 for journal type ID=1.  
         [0100]     At step  1403 , it is determined that LDEV 00:00 of pool ID=0 is not used, and is therefore available to be assigned to the current journal type ID.  
         [0101]     At step  1404 , Provisioning Manager  104  assigns port CL 1 -A to LDEV 00:00 retrieves port assigned or assigned. Then, Provisioning Manager  104  saves this information (journal group ID=0, journal type ID=1, LDEV ID=00:00, Port=CL 1 -A, Capacity=100 GB, pool ID=0) to  FIG. 9 . Provisioning Manager  104  also provides the LDEV ID and corresponding Port to  FIG. 6 , and sets the in use flag to yes.  
         [0102]     At step  1405 , it is noted that the Capacity of journal type ID=1 is 100 GB. However, the Capacity requirement for journal type ID=1 is 200 GB. Hence, capacity of journal type ID=1 does not satisfy the required capacity.  
         [0103]     Returning to step  1403 , the Provisioning Manager  104  assigns LDEV 00:01 as well as LDEV 00:00 to the current journal ID type. Again, at step  1405 , capacity of journal type ID=1 is noted, and it now satisfies the required capacity.  
         [0104]     At step  1406 , it is noted that journal type IDs=0 and 2 have not yet had their required capacities assigned. Therefore, at step  1411 , the journal type ID N is set to the next highest priority journal type ID, and the method is repeated until all journal type IDs have been assigned at least the required capacity.  
         [0105]     Accordingly, LDEVs are assigned to journal type ID=0, 2 by Provisioning Manager  104  as well as journal type ID=1.  FIGS. 15 and 16  are created by this method or by a derivation of this method.  
         [0106]     Tables illustrated in  FIG. 3  to  FIG. 11  should are preferably stored on memory  112 , in management database  103 , or another suitable storage location. The format of the tables may be changed, and all data contained in the tables may, for example, be stored in a single relational database or multi level spreadsheet.  
         [0107]      FIG. 12  illustrates another embodiment of the present invention. A storage system in  FIG. 12  includes, for example, all elements that are illustrated in the storage system in  FIG. 1 . The storage system in  FIG. 12  further includes a cache pool  122 . Cache pool  122  temporally stores journal data until the data is transmitted to the designated journal volume.  
         [0108]     Cache pool  122  may be set by a user via the provisioning manager  104 . Alternatively, a storage pool may be automatically selected and set as the cache pool. In one embodiment, the cache pool is selected from the pool with the highest-ranked access rate  804  that also corresponds to a device ID  502  whose cascade  406  is “0.” Cache pool  122  needs a fast access rate, therefore provisioning manager  104  selects pools with cascade  0 . If there are no storage pools which have cascade  0 , Provisioning Manager  104  may be configured to not create cache pool  122 .  
         [0109]      FIG. 13  is a flow chart that illustrates one method to set the cache pool  122 . Preliminary, a user specifies a capacity of cache pool  122 , threshold for destaging timing, and a port  703  by using Provisioning Manager  104 .  
         [0110]     Step  1301 : Provisioning Manager  104  retrieves the configuration of LDEVs from  FIG. 6 , cascade and storage system ID from  FIG. 3 , device ID from  FIG. 4 , and creates a cache pool table (e.g., see  FIG. 18 ).  
         [0111]     Step  1303 : the Provisioning Manager  104  checks whether there are any device IDs which have a cascade of 0. If no device IDs with cascade  0  are available, the method exists (go to end.  
         [0112]     Step  1304 : the Provisioning Manager  104  sorts pool IDs by rank of access rate of the device IDs which have cascade  0 . Provisioning Manager  104  sets R to the highest ranking pool ID.  
         [0113]     At Step  1305 : the Provisioning Manager  104  checks whether there is a LDEV of the Rth pool ID that is not in use. If all LDEVs of the Rth pool ID are in use exist, go to step  1308 . If the LDEV exists, go to step  1306 .  
         [0114]     Step  1306 : the Provisioning Manager  104  assigns one LDEV to cache pool  122  from the Rth pool ID with the LDEV&#39;s specified port (a port assigned by the Provisioning Manager and/or user). Then, Provisioning Manager  104  saves this information to  FIGS. 18 and 6 .  
         [0115]     Step  1307 : the Provisioning Manager  104  checks whether cache pool  122  has required capacity from the currently assigned LDEV/LDEVs. If the required cache pool capacity has not been met, go to Step  1305 . If the required cache pool capacity has been met, the method exists (go to END).  
         [0116]     At Step  1308 : the Provisioning Manager  104  checks whether there are any pool IDs that have LDEVs available to be assigned to the cache pool. If no LDEVs are available, the method exists (go to END). If one or more LDEVs are available then go to Step  1309 .  
         [0117]     At Step  1309 : the Provisioning Manager  104  sets R to the next highest priority pool ID, and, moving to step  1305  the process repeats for each applicable pool ID in order of priority.  
         [0118]     For example, a user specifies capacity (100 GB) of cache pool  122 , threshold destaging timing (80 GB in use), and port  703  (CL 1 -B) by using the Provisioning Manager  104 . At step  1301 , Provisioning Manager  104  creates  FIG. 18 , setting capacity port, and destaging timing (80 GB in use) according to the user&#39;s specifications.  
         [0119]     At Step  1303 , there is device ID which has cascade  0 . Therefore, go to Step  1304 .  
         [0120]     At Step  1304 , Provisioning Manager sets 0 to R. At Step  1305 , there is a LDEV not in use. Therefore, go to Step  1306 .  
         [0121]     At Step  1306 , Provisioning Manager sets port=CL 1 -B and in use=Yes to LDEV 00:02 in  FIG. 6 , and LDEV (ID=00:02, port=CL 1 -B, capacity=100 GB, pool ID=0) to  FIG. 18 .  
         [0122]     AT Step  1307 , cache pool has acquired specified capacity. Therefore, the method is complete (go to END). Pool Manager  102  periodically updates  FIG. 6  and monitors the used space  705  for destaging timing. Capacity of cache pool  122  and a threshold for destaging timing are, for example, set through provisioning manager  104  (e.g., provisioning manager GUI). The threshold may be an amount of journal data stored in the cache pool or an occupation ratio that journal data occupies in the cache pool. If journal data stored in cache pool exceeds the threshold, the journal data is transmitted to the designated journal volume. Alternatively the journal data may be transferred at times of low data throughput, if any. Since cache pool  122  is a pool with the highest-ranked access rate, cache pool enables a reduced response time to host  101 . Also, it enables high-speed restore.  
         [0123]     Although the present invention has been described herein mainly with reference to a specific set of example tables, the devices and processes of the present invention may be applied using other tables containing similar information and the processes may be performed differently than specifically recited herein.  
         [0124]     In describing preferred embodiments of the present invention illustrated in the drawings, specific terminology is employed for the sake of clarity. However, the present invention is not intended to be limited to the specific terminology so selected, and it is to be understood that each specific element includes all technical equivalents which operate in a similar manner. For example, when describing a disk drive, or disk, it should be understood that any storage device of any media (tape drives, magnetic media, RAM, optical, magnetic, or electronic data, etc.) may be applied to the processes described herein. Furthermore, the inventor recognizes that newly developed technologies not now known may also be substituted for the described parts and still not depart from the scope of the present invention. All other described items, including, but not limited to storage devices, hosts, interfaces, storage systems, tables, databases, etc should also be consider in light of any and all available equivalents.  
         [0125]     Portions of the present invention may be conveniently implemented using a conventional general purpose or a specialized digital computer or microprocessor programmed according to the teachings of the present disclosure, as will be apparent to those skilled in the computer art.  
         [0126]     Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art. The invention may also be implemented by the preparation of application specific integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be readily apparent to those skilled in the art based on the present disclosure.  
         [0127]     The present invention includes a computer program product which is a storage medium (media) having instructions stored thereon/in which can be used to control, or cause, a computer to perform any of the processes of the present invention. The storage medium can include, but is not limited to, any type of disk including floppy disks, mini disks (MD&#39;s), optical discs, DVD, CD-ROMS, micro-drive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices (including flash cards), magnetic or optical cards, nanosystems (including molecular memory ICs), RAID devices, remote data storage/archive/warehousing, or any type of media or device suitable for storing instructions and/or data.  
         [0128]     Stored on any one of the computer readable medium (media), the present invention includes software for controlling both the hardware of the general purpose/specialized computer or microprocessor, and for enabling the computer or microprocessor to interact with a human user (e.g. Provisioning Manager GUI) or other mechanism utilizing the present invention. Such software may include, but is not limited to, device drivers, operating systems, and user applications. Ultimately, such computer readable media further includes software for performing the present invention, as described above.  
         [0129]     Included in the programming (software) of the general/specialized computer or microprocessor are software modules for implementing the teachings of the present invention, including, but not limited to, retrieving table data, updating tables, inquiring disk drives and storage systems, checking capacities, performance and status, assigning storage media to pools, assigning pools to journals, and the display, storage, or communication of data and/or results according to the processes of the present invention.  
         [0130]     The present invention may suitably comprise, consist of, or consist essentially of, any of element of the various parts or features of the invention as described herein and their equivalents. Further, the present invention illustratively disclosed herein may be practiced in the absence of any element, whether or not specifically disclosed herein. Obviously, numerous modifications and variations of the present invention are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the invention may be practiced otherwise than as specifically described herein.
A set of interconnected storage systems supporting different types of storage devices and different performance attributes are intelligently applied to process types, such as journal entries. The processes are ranked according to a predetermined priority ranking. Storage devices in the storage system having similar performance attributes are pooled and ranked according to their performance attributes. The highest priority process is matched with available logical devices from available storage pools that rank highest in the processes performance priority. A cache is similarly allocated from the highest ranking access speed logical devices.