WO2014020766A1 - Storage system - Google Patents

Storage system Download PDF

Info

Publication number
WO2014020766A1
WO2014020766A1 PCT/JP2012/069889 JP2012069889W WO2014020766A1 WO 2014020766 A1 WO2014020766 A1 WO 2014020766A1 JP 2012069889 W JP2012069889 W JP 2012069889W WO 2014020766 A1 WO2014020766 A1 WO 2014020766A1
Authority
WO
WIPO (PCT)
Prior art keywords
microprocessor
cache
data
memory
volume
Prior art date
Application number
PCT/JP2012/069889
Other languages
French (fr)
Japanese (ja)
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 JP2014527931A priority Critical patent/JP5965486B2/en
Priority to PCT/JP2012/069889 priority patent/WO2014020766A1/en
Priority to US13/675,658 priority patent/US8819371B2/en
Publication of WO2014020766A1 publication Critical patent/WO2014020766A1/en
Priority to US14/445,826 priority patent/US9329999B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2074Asynchronous techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization

Definitions

  • the present invention relates to a storage system, and more particularly to control of a storage system.
  • Patent Document 1 describes that a processor in charge of I / O of each volume caches data caching control information on a shared memory to a local memory (control caching), thereby increasing the storage system. A technique for improving performance is disclosed.
  • the processor updates the control information of the local memory
  • the processor also updates the control information of the shared memory synchronously.
  • other processors that take over responsibility from the failed processor can acquire the latest data caching control information from the shared memory, and can suppress the performance degradation of the storage system due to the cache hit rate decline. it can.
  • data caching which enhances the performance of storage systems by caching user data from nonvolatile media into cache memory, is widely used in storage systems.
  • the update of the control information in the shared memory whose purpose is to improve performance is increasing the overhead of the shared memory to be accessed and the processor controlling the access.
  • Data caching, whose purpose is to improve performance is increasing the overhead of the cache memory to be accessed and the processor controlling the access.
  • the control information is updated by caching against the effect of shortening the reading time by caching. The ratio of the increase in processing time increases.
  • a storage system is connected to a processor on which a control program operates, a plurality of first or second type physical storage volumes that provide storage resources to a plurality of logical volumes, and the processor.
  • a cache memory for storing a part of data stored in the plurality of physical storage volumes, and a memory connected to the processor, wherein target data of a write or read request from a host is stored in the cache memory
  • a memory for storing process control information for managing the use status of a plurality of processes used for processing the write or read request.
  • the target data of the read request is in a cache memory based on a first identifier that specifies an area of the logical volume specified by the read request and the cache control information, and the target data is the cache If it is determined that it is not in the memory, if a part of the plurality of physical storage volumes constituting the logical volume specified by the read request is the first type of physical storage volume, the first identifier and The key is associated with an identifier for specifying an area secured on the cache memory.
  • the second identifier for specifying the process specified and the identifier for specifying the area secured on the cache memory are associated with each other and stored in the memory as the cache control information.
  • Data read from a part of the plurality of physical storage volumes in response to the read request is stored.
  • One embodiment of the present invention reduces the overhead in the storage system and improves the performance of the storage system.
  • FIG. 3 is a diagram illustrating information stored in a local memory of a storage system in the first embodiment.
  • FIG. 3 is a diagram illustrating information stored in a shared memory of the storage system in the first embodiment.
  • FIG. 3 is a diagram schematically illustrating a configuration of a management computer in the first embodiment.
  • it is a figure which shows an example of a performance boost function validation table.
  • it is a figure which shows an example of the performance boost function activation table for every volume.
  • 6 is a diagram illustrating an example of a media type table in the first embodiment.
  • 1st Embodiment it is a figure which shows an example of a RAID level table. It is a figure which shows an example of a volume hit rate ratio table in 1st Embodiment. In 1st Embodiment, it is a figure which shows an example of a hit rate threshold value table. In 1st Embodiment, it is a figure which shows an example of MP operation rate table. In 1st Embodiment, it is a figure which shows an example of MP operation rate threshold value table. In 1st Embodiment, it is a figure which shows an example of CM operation rate table. In 1st Embodiment, it is a figure which shows an example of CM operation rate threshold value table.
  • FIG. 10 is a diagram illustrating asynchronous remote copy in the third embodiment. It is a figure which shows the information stored in the local memory in 3rd Embodiment. It is a figure which shows the information stored in the shared memory in 3rd Embodiment.
  • FIG. 20 is a diagram illustrating an example of an LM asynchronous remote copy sequence number management table in the third embodiment.
  • FIG. 20 is a diagram illustrating an example of an SM asynchronous remote copy sequence number management table in the third embodiment. It is a flowchart of an asynchronous remote copy sequence number update process in the third embodiment. It is a flowchart of the asynchronous remote copy sequence number recovery process at the time of MPPK failure in the third embodiment. It is a figure which shows the information stored in the local memory in 4th Embodiment. It is a figure which shows the information stored in the shared memory in 4th Embodiment. In 4th Embodiment, it is a figure which shows an example of the LM local copy difference management table.
  • FIG. 20 is a diagram illustrating an example of an SM local copy difference management table in the fourth embodiment.
  • FIG. 20 is a diagram showing an example of an LM local copy difference area thinning operation management table in the fourth embodiment.
  • FIG. 20 is a diagram illustrating an example of an SM local copy difference area thinning operation management table in the fourth embodiment.
  • It is a flowchart of the asynchronous local copy difference management information update process in 4th Embodiment. It is a flowchart of the local copy difference copy process at the time of MPPK failure in 4th Embodiment.
  • 4th Embodiment it is a figure which shows an example of the setting menu screen in a management computer.
  • 5th Embodiment it is a figure which shows typically the whole structure of a computer system. It is a figure which shows the information stored in the local memory in 5th Embodiment.
  • 5th Embodiment it is a figure which shows an example of an X path utilization rate table.
  • 5th Embodiment it is a figure which shows an example of the X path utilization rate threshold value table.
  • it is a figure showing typically the whole computer system composition. It is a figure which shows the information stored in the local memory in 6th Embodiment.
  • 6th Embodiment it is a figure which shows an example of MP operation rate table.
  • FIG. 20 is a diagram illustrating an example of a shared memory area management table in the sixth embodiment. It is a part of flowchart of the control information SM update determination process regarding data caching in 6th Embodiment. It is another one part of the flowchart of the control information SM update determination process regarding data caching in 6th Embodiment. It is a flowchart of the MP operation rate update process in 6th Embodiment. It is a figure which shows the information stored in the local memory in 7th Embodiment. In 7th Embodiment, it is a figure which shows an example of a response table.
  • FIG. 6 is a diagram illustrating an example of a CM bypass transfer ratio calculation table in the first embodiment.
  • FIG. 6 is a diagram illustrating an example of a CM bypass transfer ratio table in the first embodiment.
  • 4 is a flowchart of processing of a read command from a host in the first embodiment. 4 is a flowchart of host data caching determination processing in the first embodiment. 6 is a flowchart of a CM bypass transfer ratio calculation process in the first embodiment.
  • FIG. 20 is a diagram illustrating an example of a job management table in the eighth embodiment.
  • FIG. 20 is a diagram illustrating an example of a job buffer address table in the eighth embodiment.
  • FIG. 20 is a diagram illustrating an example of a buffer transfer ratio calculation table in the eighth embodiment.
  • FIG. 20 is a diagram illustrating an example of a buffer transfer ratio table in the eighth embodiment. It is a part of flowchart of the process of the read command from the host in 8th Embodiment. It is another part of the flowchart of the process of the read command from the host in 8th Embodiment. It is a flowchart of the buffer transfer determination process in 8th Embodiment. It is a flowchart of the buffer ratio calculation process in 8th Embodiment. It is a figure which shows an example of the LRU replacement management of the cache slot and job number in 8th Embodiment.
  • the present invention relates to a technique for improving the performance of a storage system.
  • Embodiments of the present invention will be described below with reference to the accompanying drawings. For clarity of explanation, the following description and the details of the drawings are omitted and simplified as appropriate, and redundant descriptions are omitted as necessary. This embodiment is merely an example for realizing the present invention, and does not limit the technical scope of the present invention.
  • the storage system of the present embodiment includes processors that are responsible for input / output (I / O) of different volumes. Each processor is assigned local memory.
  • the storage system of this embodiment has a shared memory that can be accessed by a plurality of processors in charge of different volumes. Local memory and shared memory are typically volatile semiconductor memories.
  • the data caching control information of the volume handled by the processor is stored in the local memory of the processor (control data caching). Further, the shared memory stores data caching control information for the volume.
  • the processor refers to and updates the caching control information on the local memory, and performs data caching control of the assigned volume. As a result, the data caching control process can be speeded up.
  • the shared memory can be accessed by a plurality of processors in charge of different volumes.
  • the other processor takes over the charge and loads the corresponding data caching control information from the shared memory into its own local memory.
  • the other processor uses the data caching control information acquired from the shared memory to control data caching of the inherited volume.
  • the processor determines whether or not to update the update of the caching control information in the local memory to the control information in the shared memory according to a predetermined condition.
  • the storage system of this embodiment determines whether or not the read data and write data are cached according to a predetermined condition. By selectively caching read data and write data, the cache area is efficiently used, and further, the overhead of the processor that performs cache memory and data caching is reduced, thereby improving the performance of the storage system.
  • FIG. 1 shows an example of a computer system including the storage system 10 of this embodiment, a host computer 180 that performs data processing and operations, and a management computer 20 that manages the storage system 10.
  • the computer system can include a plurality of host computers 180.
  • the storage system 10 and the host computer 180 are connected to each other via the data network 190.
  • the data network 190 is, for example, a SAN (Storage Area Network).
  • the data network 190 may be an IP network or any other type of data communication network.
  • the storage system 10, the host computer 180, and the management computer 20 are connected to each other via a management network (not shown).
  • the management network is, for example, an IP network.
  • the management network may be a SAN or any other type of network.
  • the data network 190 and the management network may be the same network.
  • the storage system 10 accommodates a plurality of storage drives 170.
  • the storage drive 170 includes a hard disk drive (HDD) having a nonvolatile magnetic disk and a solid state drive (SSD) equipped with a nonvolatile semiconductor memory (for example, a flash memory).
  • the storage drive 170 stores data (user data) sent from the host computer 180. Since the plurality of storage drives 170 perform data redundancy by RAID operation, data loss when a failure occurs in one storage drive 170 can be prevented.
  • the storage system 10 includes a front-end package (FEPK) 100 for connecting to the host computer 180, a back-end package (BEPK) 140 for connecting to the storage drive 170, a cache memory package (CMPK) 130 for mounting cache memory, It has a microprocessor package (MPPK) 120 on which a microprocessor that performs internal processing is mounted, and an internal network 150 that connects them.
  • FEPK front-end package
  • BEPK back-end package
  • MPPK microprocessor package
  • MPPK microprocessor package
  • the storage system 10 of this example includes a plurality of FEPKs 100, a plurality of BEPKs 140, a plurality of CMPKs 130, and a plurality of MPPKs 120.
  • Each FEPK 100 has an interface 101 for connecting to the host computer 180 and a transfer circuit 112 for transferring data in the storage system 10 on the substrate.
  • the interface 101 can include a plurality of ports, and each port can be connected to the host computer 180.
  • the interface 101 converts a protocol used for communication between the host computer 180 and the storage system 10, for example, Fiber Channel Over Ethernet (FCoE), into a protocol used for the internal network 150, for example, PCI-Express.
  • FCoE Fiber Channel Over Ethernet
  • Each BEPK 140 has an interface 141 for connecting to the drive 170 and a transfer circuit 142 for transferring data in the storage system 10 on the substrate.
  • the interface 141 can include a plurality of ports, and each port can be connected to the drive 170.
  • the interface 141 converts a protocol used for communication with the storage drive 170, for example, FC, into a protocol used in the internal network 150.
  • Each CMPK 130 has a cache memory 131 that temporarily stores user data read and written from the host computer 180 and a shared memory (SM) 132 that stores control information handled by one or more MPPKs 120 on the substrate.
  • SM shared memory
  • a plurality of MPPKs 120 (microprocessors) in charge of different volumes can access the shared memory 132. Data and programs handled by the MPPK 120 are loaded from a nonvolatile memory (not shown) or the storage drive 170 in the storage system 10.
  • the associated cache memory 131 and shared memory 132 may be mounted on different substrates (in a package).
  • Each MPPK 120 has one or more microprocessors 121, a local memory (LM) 122, and a bus 123 connecting them.
  • a plurality of microprocessors 121 are mounted.
  • the number of microprocessors 121 may be one.
  • a plurality of microprocessors 121 can be viewed as one processor.
  • the local memory 122 stores programs executed by the microprocessor 121 and control information used by the microprocessor 121.
  • one shared memory 132 stores control information handled by the MPPK 120.
  • the MPPK 120 stores control information required by itself from the shared memory 132 in its own local memory 122 (control caching). Thereby, high speed access to the control information by the microprocessor 121 is realized, and the performance of the storage system 10 can be improved.
  • the microprocessor 121 When the microprocessor 121 updates the control information in the local memory 122, the microprocessor 121 reflects the update in the control information on the shared memory 132 as necessary. One of the features of this embodiment is the control of this update.
  • the microprocessor 121 reflects the update of the control information in the local memory 122 on the control information in the shared memory 132 when a predetermined condition is satisfied.
  • the microprocessor 121 is assigned the charge of the volume that the storage system 10 provides to the host computer 180.
  • the local memory 122 and the shared memory 132 allocated to the microprocessor 121 store data caching control information of the volume for which the microprocessor is responsible for I / O.
  • control information to which the present invention can be applied is control information in general that does not lead to host data lost when an MP failure occurs even when the control information in the shared memory 132 is not updated. Examples of control information other than the data caching control information in this embodiment will be described in other embodiments.
  • the present embodiment describes an example in which the microprocessor is responsible for the volume, the target to which the responsible microprocessor is assigned is not limited to the volume, and the responsible microprocessor may exist for each control information.
  • FIG. 2 is a block diagram showing information stored in the local memory 122.
  • the local memory 122 includes a performance boost function enabling table 210, a per-volume performance boost function enabling table 220, a media type table 230, a RAID level table 240, a per-volume hit rate table 250, a hit rate threshold table 260, a microprocessor (MP )
  • the operating rate table 270 is stored.
  • the local memory 122 further includes a microprocessor (MP) operating rate threshold table 280, a cache memory (CM) operating rate table 290, and a cache memory (CM) operating rate threshold table 300.
  • MP microprocessor
  • CM cache memory
  • CM cache memory
  • the local memory 122 further stores a cache directory 310.
  • FIG. 3 is a block diagram showing the cache directory 510 in the shared memory 132.
  • the microprocessor 121 caches the cache directory 510 from the shared memory 132 in its own local memory 122 and reflects the update of the cache directory 310 on the local memory 122 in the cache directory 510 of the shared memory 132 as necessary.
  • the cache directory 510 is backup data for the cache directory 310.
  • the microprocessor 121 When the microprocessor 121 receives a read command from the host computer 180, the microprocessor 121 refers to the cache directory 310 of the local memory 122 and determines whether the target data is cached in the cache memory 131 (cache hit). As described above, the cache directory 310 provides information for searching the cache data stored in the cache memory 131.
  • the cache directory 310 includes reference tables GRPP, GRPT1, GRPT2, and a slot control block (SLCB) as a management table.
  • the reference tables GRPP, GRPT1, and GRPT2 are tables that are referred to by the microprocessor 121 when searching for a cache segment, and have a directory structure.
  • the reference table GRPP is located at the top and the reference table GRPT2 is located at the bottom.
  • the upper table includes a pointer to the next table.
  • GRPT2 includes a pointer to the SLCB.
  • the SLCB is a table for managing control information related to a segment, which is a minimum unit of cache management, and whether or not read command designation data exists on the cache memory 131, and whether cached data on the cache memory 131 is present. Address information and the like are stored.
  • One or more segments can be associated with one slot. For example, 64 KB of data can be stored in one segment.
  • the minimum unit of cache management is a segment, but the cache may be managed in slot units.
  • the transition between the dirty data (the state before writing to the physical disk) and the clean data (the state after writing to the physical disk) is performed in units of slots.
  • the cache area is reserved and released in slot units or segment units.
  • the microprocessor 121 When there is a read access from the host computer 180, the microprocessor 121 sequentially traces each hierarchical table based on the logical block address (LBA) included therein, so that the requested data exists in the cache memory 131. Or if it exists, it knows its address.
  • LBA logical block address
  • the microprocessor 121 When the requested data exists in the cache memory 131, the microprocessor 121 transmits the data to the host computer 180. If the requested data does not exist in the cache memory 131, the microprocessor 121 reads out the data requested by the host computer 180 from the storage drive 170 and stores it in one or more slots on the cache area. Write data is also cached in the same way. Note that retrieval of cache data using a cache directory is a well-known technique, and a detailed description thereof is omitted here.
  • FIG. 4 is a block diagram schematically showing the configuration of the management computer 20.
  • the management computer 20 includes an input interface 22, an input device 28, a display interface 23, a display device 29, a CPU 26, a communication interface 21, a memory 24, and an HDD 25.
  • Typical examples of the input device 28 are a keyboard and a pointer device, but other devices may be used.
  • the display device 29 is typically a liquid crystal display device.
  • the administrator inputs necessary data with the input device 28 while visually confirming the processing result with the display device 29.
  • Information input by the administrator and a display example by the display device 29 will be described later.
  • the management system is composed of one management computer 20, but the management system can include a management console in addition to the management computer 20.
  • the management console includes an input device and a display device, and is connected to the management computer 20 via a network.
  • the administrator accesses the management computer 20 from the management console, instructs the management computer 20 to process, and acquires and displays the processing result of the management computer 20 on the management console.
  • the management system can also include a plurality of computers each having part or all of the functions of the management computer 20.
  • the CPU 26 is a processor that executes a program stored in the memory 24.
  • the communication I / F 21 is an interface with a management network, and exchanges data and control commands with the host computer 180 and the storage system 10 for system management.
  • FIG. 5 shows a configuration example of the performance boost function enabling table 210.
  • the performance boost function enablement table 210 has a column 211 of performance boost function enable flags.
  • the performance boost function valid flag indicates whether or not the performance boost function of the entire storage system 10 is active. When this flag is 1, the performance boost function of the entire storage system 10 is active.
  • the performance boost function is a function of reflecting (backup) control data updates stored in the local memory 122 to the shared memory 132 and data caching control. This function will be described later.
  • the data of the performance boost function enabling table 210 is set by the administrator from the management computer 20, for example.
  • FIG. 6 shows a configuration example of the performance boost function enabling table 220 for each volume.
  • the performance boost function enabling table for each volume table 220 manages the performance boost function for each volume.
  • the per-volume performance boost function enabling table 220 has a logical volume number column 221 and a performance boost function enabling flag column 222.
  • the logical volume number is an identifier of the logical volume.
  • the performance boost function enable flag When the performance boost function enable flag is 1, it indicates that the performance boost function for the volume is active. When both the entire system and the volume performance boost function enable flag are ON (1), the performance boost function for the volume is enabled. In this way, control corresponding to volume characteristics is realized by managing and controlling the performance boost function for each volume.
  • the data of the performance boost function enabling table for each volume 220 is set by the administrator from the management computer 20, for example.
  • FIG. 7 shows a configuration example of the media type table 230.
  • the media type table 230 manages the media type of the RAID group.
  • a configuration including a storage area provided by one or a plurality of storage drives 170 and an interface thereof is called a medium.
  • the media type table 230 includes a RAID group number column 231 and a media type column 232.
  • the RAID group number is an identifier that uniquely identifies a RAID group.
  • expressions such as an identifier, a name, and an ID can be used for identification information for identifying a target, and these can be replaced.
  • the data of the media type table 230 is set by the administrator from the management computer 20, for example.
  • FIG. 8 shows a configuration example of the RAID level table 240.
  • the RAID level table 240 manages the RAID level of the RAID group. It has a RAID group number column 241 and a RAID level column 242.
  • the data of the RAID level table 240 is set by the administrator from the management computer 20, for example.
  • FIG. 9 shows a configuration example of the hit rate table for each volume 250.
  • the volume hit rate table 250 manages the cache hit rate of each volume.
  • the per-volume hit rate table 250 includes a logical volume number column 251, a hit rate column 252, an I / O count column 253, a hit count column 254, and a low hit rate flag column 255.
  • the number of I / Os is the number of read commands issued to the logical volume.
  • the number of hits is the number of read commands having a cache hit.
  • the low hit rate flag is 1, it indicates that the hit rate of the entry is less than the specified threshold.
  • the processor 121 counts the read access to the volume and the number of cache hits, and updates the data of each field of the hit rate table for each volume 250.
  • the unit for the microprocessor 121 to monitor the hit rate may be a unit smaller than the logical volume.
  • a page used in the virtual volume function or the hierarchization function may be used as a unit.
  • Data caching control and caching control information update control which will be described later, are performed in units of pages.
  • the calculation of the hit rate may include the write cache hit rate in addition to the read cache hit rate.
  • the microprocessor 121 may individually manage the read cache hit rate and the write data hit rate. For example, the microprocessor 121 refers to the respective hit rates in read caching control and write caching control described later.
  • FIG. 10 shows a configuration example of the hit rate threshold table 260.
  • the hit rate threshold table 260 has a hit rate threshold column 261. When the hit rate is equal to or less than the threshold value registered here, the low hit rate flag of the entry in the per-volume hit rate table 250 is set to 1 (ON flag).
  • the hit rate threshold is set by the administrator from the management computer 20, for example.
  • FIG. 11 shows a configuration example of the MP operating rate table 270 that manages the operating rate of the microprocessor 121.
  • the MP operating rate is the processing time of the microprocessor 121 within a unit time, and represents the load on the microprocessor.
  • the MP operating rate table 270 includes a microprocessor number column 271, an operating rate column 272, an overload determination flag column 273, and an operating time column 274.
  • the microprocessor number uniquely identifies the microprocessor within the storage system 10.
  • Each microprocessor 121 monitors its own operating status, and stores values of operating rate and operating time in the operating rate column 272 and operating time field of its own entry.
  • the operating time is an operating time per unit time (1 second in this example).
  • the operating rate is a value obtained by dividing the operating time by the unit time.
  • the microprocessor 121 compares its own operating rate with a prescribed threshold value, and if it is equal to or greater than the threshold value, sets the value of the self-entry overload determination flag field to 1 (ON flag).
  • FIG. 12 shows a configuration example of the MP operating rate threshold value table 280 having the column 281 for storing the threshold values.
  • the MP operating rate threshold is common to all the microprocessors, but a different threshold may be used.
  • FIG. 13 shows a configuration example of the CM operation rate table 290 that manages the operation rate of the cache memory.
  • the CM operation rate is simply an access time to the cache memory 131 within the time.
  • the CM operation rate table 290 includes a CMPK number column 291, an operation rate column 292, and an overload determination flag column 293.
  • the CMPK number is an identifier of CMPK in the storage system 10.
  • the microprocessor 121 acquires the value of the operating rate from the controller on the CMPK 130 and stores it in the corresponding field of the operating rate column 292.
  • the microprocessor 121 compares the obtained operating rate value with a prescribed threshold value, and when the operating rate value is equal to or greater than the threshold value, sets 1 (ON flag) in the overload determination flag field of the entry.
  • FIG. 14 shows a configuration example of a CM operation rate threshold value table 300 that stores the threshold values.
  • the CM operation rate threshold is common to all CMPKs, but a different threshold may be used.
  • the microprocessor 121 determines whether it has access right to the logical volume (also referred to as LDEV (Logo Device)) indicated by the read command (S102). When the access right is not possessed (S102: NO), the microprocessor 121 transfers the read command to the MPPK 120 having the access right (S103).
  • LDEV Logo Device
  • the microprocessor 121 When the microprocessor 121 has an access right (S102: YES), the microprocessor 121 searches the cache directory 310 in the local memory 122 on the same MPPK 120 (S104). When the address (data) specified by the read command is found (S105: YES), the microprocessor 121 reads the read data from the cache memory 131 according to the information in the cache directory 310 and transmits it to the host computer 180 (S106).
  • the microprocessor 121 checks the uncached flag in the local memory 122 (S107).
  • the uncached flag is a flag indicating whether all the data of the cache directory value 510 of the shared memory 132 is cached in the local memory 122, and is stored in the local memory 122. When some data is not read, the value is ON. For example, if the control information is not read from the shared memory 132 to the local memory 122 immediately after the failure failover, the uncached flag is ON.
  • the uncached flag When the uncached flag is ON (S107: YES), some data of the cache directory value 510 of the shared memory 132 is not cached.
  • the microprocessor 121 transfers the cache directory (control information) from the shared memory 132 to the local memory 122 via the controller of the CMPK 130 (S108).
  • the microprocessor 121 searches the cache directory 310 in the local memory 122 (S109). When the data specified by the read command is found (S110: YES), the microprocessor 121 reads the read data from the cache memory 131 according to the information in the cache directory 310 and transmits it to the host computer 180 (S111).
  • the microprocessor 121 secures a slot for read data in the cache memory 131, and further, the cache directory of the local memory 122. 310 is updated (S112).
  • the microprocessor 121 determines whether or not the update of the cache directory 310, which is control information related to data caching, is reflected in the data 510 of the shared memory 132 (S113). A specific method of this determination will be described in detail later. If it is determined that the control information of the shared memory 132 is to be updated (S114: YES), the microprocessor 121 updates the cache directory 510 of the shared memory 132 (S115), and proceeds to the next step S116.
  • step S116 the microprocessor 121 determines whether to cache read data (host data). This determination method will be described later.
  • the microprocessor 121 When it is determined that the read data is stored in the cache memory 131 and then transmitted to the host computer 180 (S117: YES), the microprocessor 121 reads the read data from the storage drive 170 (permanent medium) using the BEPK 140 and CMPK 130, and caches the read data. Store in the reserved slot on the memory 131. Thereafter, the microprocessor 121 transmits the cache data to the host computer 180 by the CMPK 130 and the FEPK 100 (S118).
  • the microprocessor 121 causes the BEPK 140 and FEPK 100 to read the read data read from the drive 170 (permanent medium) via the CMPK 130. And transfer to the host computer 180 (S119).
  • the microprocessor 121 starts this step S113, and determines whether or not the performance boost function of the logical volume designated by the read command is ON, by using the performance boost function enable table 210 and the per-volume performance boost function enable table 220. This is determined with reference to (S122). If one table indicates that the performance boost function is OFF, the performance boost function for the volume is OFF.
  • the microprocessor 121 determines to update the control information (cache directory) of the shared memory 132 (S128).
  • the microprocessor 121 next determines whether or not the media type of the RAID group in which the designated data is stored is SSD. With reference to the media type table 230, a determination is made (S123).
  • the microprocessor 121 has configuration management information for each volume in the local memory 122, and can know which RAID group each area of each volume belongs to by referring to that information.
  • the microprocessor 121 determines not to update the control information (cache directory) of the shared memory 132 (S127). If the media type is not SSD (S123: NO), the microprocessor 121 next uses the logical volume number as a key to determine whether the low hit rate flag of the logical volume in which the designated data is stored is ON. And determining by referring to the hit rate table for each volume 250 (S124).
  • the microprocessor 121 determines not to update the control information (cache directory) of the shared memory 132 (S127).
  • the microprocessor 121 next refers to the MP operation rate table 270 as to whether or not its own overload flag is ON using the microprocessor number as a key. Then, the determination is made (S125).
  • the microprocessor 121 determines not to update the control information (cache directory) of the shared memory 132 (S127).
  • the overload flag is OFF (S125: NO)
  • the microprocessor 121 next determines whether the overload flag of the access destination CMPK 130 is ON or not by using the CM operation rate table 290 using the CMPK number as a key. Refer to and determine (S126).
  • the microprocessor 121 determines not to update the control information (cache directory) of the shared memory 132 (S127).
  • the overload flag is OFF (S126: NO)
  • the microprocessor 121 determines to update the control information (cache directory) of the shared memory 132 (S128).
  • the microprocessor 121 determines that the update of the cache directory 310 in the local memory 122 is not reflected in the cache directory 510 of the shared memory 132. As a result, the load on the microprocessor 121 and the CMPK 130 can be reduced and the throughput of the system can be improved.
  • the succeeding MPPK 120 (the microprocessor 121) can obtain only the old control information stored in the shared memory 132. Therefore, data stored in the shared memory 132 and for which updating (backup to the shared memory 132) can be omitted is control information that does not lead to user data lost when the MPPK 120 fails.
  • the above preferred configuration omits updating in the shared memory 132 that has a small effect when a failure occurs in the MPPK 120. Specifically, when the storage drive 170 from which read data is read due to a cache miss is an SSD (S123: YES), the microprocessor 121 determines not to update the shared memory 132 (S127). .
  • the media type for which updating in the shared memory 132 is omitted is SSD, but this type depends on the system design.
  • the types of media (drives) mounted in the system are not limited to SSDs and HDDs, and different types of drives can be mounted in addition to or instead of these.
  • a type that satisfies the condition for omitting the update in the shared memory 132 is selected according to the design.
  • a type having higher access performance than one or more other types including the type having the highest access performance is selected.
  • the microprocessor 121 determines not to update the shared memory 132 (S127). Even if the cache control information of data of a volume with a low hit rate is lost, the influence on the access performance of the volume is small, and the effect of improving the system performance by reducing the overhead of MPPK120 and CMPK130 is greater.
  • This configuration further determines whether to update the shared memory 132 based on the current loads of the MPPK 120 and the CMPK 130 (S125, S126).
  • the load on the MPPK 120 or the CMPK 130 is high, the effect of improving the performance by omitting the update in the shared memory 132 is great.
  • the update of the cache control information in the shared memory 132 is omitted.
  • the microprocessor 121 may determine whether to update the shared memory 132 based on conditions different from these.
  • the microprocessor 121 may set a condition for omitting control information update in the shared memory 132 that a plurality of conditions among the four conditions are satisfied.
  • FIG. 17 shows a flowchart of determination (S116) for host data (read data) caching in the flowchart of FIG.
  • S116 determination for host data (read data) caching in the flowchart of FIG.
  • the flowchart of this step is substantially the same as the flowchart shown in FIG. Therefore, mainly the points different from this will be specifically described.
  • step S132 to step S136 are the same as step 122 to step S126 in the flowchart of FIG.
  • the microprocessor 121 determines to transmit the host data (read data) read from the storage drive 170 to the host computer 180 without storing it in the cache memory 132.
  • Transfer in which read data is not cached in the CM is called non-CM transfer.
  • Non-CM transfer is realized by transferring read data from the transfer circuit 142 of the BEPK 140 to the transfer circuit 112 of the FEPK 110. Specifically, the transfer is from a volatile memory such as a DRAM in the transfer circuit 142 to a volatile memory in the transfer circuit 112.
  • step S138 the microprocessor 121 determines to store (cache) the host data read from the storage drive 170 in the cache memory 132.
  • the cache area is efficiently used, and further, the overhead of the cache memory and the processor that performs data caching is reduced, thereby improving the performance of the storage system.
  • the storage drive is an SSD
  • the ratio of the increase in the processing time for updating control information by caching to the effect of shortening the reading time by caching is large, so the effect of performance improvement by omitting the caching process Is big.
  • the condition for determining whether to cache read data is the same as the condition for determining whether to update the cache control information in the shared memory 132.
  • system performance can be improved by reducing the overhead of MPPK120 and CMPK130.
  • the determination condition for the cache control and the determination condition for the control information update control may be different.
  • the microprocessor 121 receives a write command from the host computer 180 (S141), and determines whether or not it has an access right to the volume (LDEV) of the designated address (S142).
  • the microprocessor 121 When the microprocessor 121 does not have the access right (S142: NO), the microprocessor 121 transfers the write command to the other responsible MPPK 120 (S143). When the microprocessor 121 has an access right (S142: YES), the microprocessor 121 searches the cache directory 310 in the local memory 122 on the same substrate (S144).
  • the microprocessor 121 When the address specified by the write command is found (S145: YES), the microprocessor 121 writes the write data to the cache memory 131 according to the information in the cache directory 310 and notifies the host computer 180 of the completion of the command (S146).
  • the microprocessor 121 checks the uncached flag to the local memory 122 (S147). When the uncached flag is ON (S147: YES), the microprocessor 121 transfers the cache directory (control information) from the shared memory 132 to the local memory 122 via the controller of the CMPK 130 (S148).
  • the microprocessor 121 searches the cache directory 310 in the local memory 122 (S149). When the address specified by the write command is found (S150: YES), the microprocessor 121 writes the write data to the cache memory 131 according to the information in the cache directory 310, and notifies the host computer 180 of the completion of the command (S151).
  • the microprocessor 121 secures a slot for write data in the cache memory 131, and further, the cache directory of the local memory 122. 310 is updated (S152).
  • the microprocessor 121 determines whether or not the update of the cache directory 310, which is control information related to data caching, is reflected in the data 510 of the shared memory 132 (S153). A specific method of this determination is the same as the method described with reference to FIG.
  • the microprocessor 121 further determines whether to cache write data (host data) (S154). This determination method is the same as the method described with reference to FIG.
  • the microprocessor 121 determines that the write data is cached (S155: YES)
  • the microprocessor 121 writes the write data to the newly secured area in the cache memory 131 and notifies the host computer 180 of the completion of the command (S156).
  • the microprocessor 121 updates the cache directory 510 in the shared memory 132 in synchronization with the update of the cache directory 310 in the local memory 122 regardless of the determination result in step S154.
  • the microprocessor 121 determines not to cache the write data (S155: NO)
  • the microprocessor 121 updates or omits the control information in the shared memory 132 based on the determination result in step S153.
  • the microprocessor 121 determines to update the cache control information (cache directory 510) in the shared memory 132 (S157: YES)
  • the microprocessor 121 updates the cache directory 310 in the local memory 122 to update the cache in the shared memory 132. This is reflected in the directory 510 (S158), and the process proceeds to the next step S159.
  • the microprocessor 121 determines not to update the cache control information in the shared memory 132 (S157: NO)
  • the microprocessor 121 specifies the write-destination RAID level with reference to the RAID level table 240 (S159). . If the RAID level is 1 (S159: YES), the microprocessor 121 writes the data to the storage drive 170 by the BEPK 140 without storing the write data in the cache memory 131, and notifies the host computer 180 of the completion of the command. (S160).
  • the microprocessor 121 When the RAID level is different from 1 (S159: NO), the microprocessor 121 generates parity and writes the parity and write data to the storage drive 170 by the BEPK 140 without storing the write data in the cache memory 131. Further, the microprocessor 121 notifies the host computer 180 of command completion (S161).
  • the storage of the write data in the cache memory 131 needs to be omitted. This is because if the cache control information is lost before the cached write data is destaged (written to the drive 170), the cache memory 131 cannot identify the write data.
  • the determination condition for determining whether or not the write data is cached in step S154 is the same as the determination condition in step S116 in FIG.
  • the determination condition for determining whether or not the cache control information is updated in the shared memory 132 in step S153 is the same as the determination condition in step S113 in FIG. These may be different.
  • the overhead of the MPPK 120 and the CMPK 130 can be reduced and the performance of the storage system 10 can be improved. If the write data is not cached, the parity generation is completed, the parity and the write data are written to the storage drive, and then the command completion is notified to the host. Also, SSD has inferior write performance than read performance. For this reason, in the case of a write command, a method of performing all caching may be used. In this case, the determination in S154 is omitted, and the process proceeds to S156.
  • FIG. 66 shows control information stored in the local memory 122.
  • 67 shows an example of the CM bypass transfer ratio calculation table 430
  • FIG. 67 shows an example of the CM bypass transfer ratio calculation table 430
  • FIG. 68 shows an example of the CM bypass transfer ratio table 440.
  • FIG. 67 shows a configuration example of the CM bypass transfer ratio calculation table 430.
  • the CM non-transit transfer rate calculation table 430 is a table for calculating a rate of transfer without CM from the cache hit rate and the MP operating rate for each logical volume.
  • the CM bypass transfer ratio calculation table 430 includes a hit ratio column 431, a microprocessor operating ratio column 432, and a CM bypass transfer ratio column 433.
  • a high value for the non-CM transfer rate is set when the hit rate is low, and a high value for the non-CM transfer rate when the microprocessor operating rate is high. Is set.
  • the lower limit of the non-CM transfer ratio is 0 and the upper limit is 99 or less.
  • the reason why the upper limit is 99 or less is that the hit rate cannot be calculated when transferring without 100% CM.
  • the hit rate used in this example is a hit rate when CM non-passing is excluded.
  • FIG. 68 shows a configuration example of the CM non-routed transfer ratio table 440.
  • the CM non-transit transfer ratio table 440 is a table for managing the ratio of non-CM transfer in the read process for each logical volume.
  • the CM bypass transfer ratio table 440 includes a logical volume number column 441 and a CM bypass transfer ratio column 442.
  • the microprocessor 121 determines whether it has the access right to the LDEV indicated by the read command (S852). When the access right is not possessed (S852: NO), the microprocessor 121 transfers the read command to the MPPK 120 having the access right (S853).
  • the microprocessor 121 searches the cache directory 310 in the local memory 122 on the same MPPK 120 (S854).
  • the microprocessor 121 reads the read data from the cache memory 131 according to the information in the cache directory 310 and transmits it to the host computer 180 (S856).
  • the microprocessor 121 checks the uncached flag of the local memory 122 (S857).
  • the uncached flag is a flag indicating whether all the data of the cache directory value 510 of the shared memory 132 is cached in the local memory 122, and is stored in the local memory 122. When some data is not read, the value is ON. For example, if the control information is not read from the shared memory 132 to the local memory 122 immediately after the failure failover, the uncached flag is ON.
  • the microprocessor 121 transfers the cache directory (control information) from the shared memory 132 to the local memory 122 via the controller of the CMPK 130 (S858).
  • the microprocessor 121 searches the cache directory 310 in the local memory 122 (S859). When the data specified by the read command is found (S860: YES), the microprocessor 121 reads the read data from the cache memory 131 according to the information in the cache directory 310 and transmits it to the host computer 180 (S111).
  • the microprocessor 121 determines whether or not to cache read data (host data). This determination method will be described later.
  • the microprocessor 121 When it is determined that the read data is transmitted to the host computer 180 without being cached (S863: YES), the microprocessor 121 reads the read data read from the drive 170 (permanent medium) without passing through the CMPK 130. 142, the memory of the transfer circuit 142 is transferred to the memory of the transfer circuit 112 of the FEPK100, and the memory of the transfer circuit 112 is transferred to the host computer 180 (S864).
  • the microprocessor 121 secures a slot for the read data in the cache memory 131, and further, the local memory 122.
  • the cache directory 310 and the cache directory 510 of the shared memory 132 are updated (S865).
  • the microprocessor 121 reads the read data from the storage drive 170 (permanent medium) using the BEPK 140 and the CMPK 130 and stores the read data in the reserved slot on the cache memory 131. Thereafter, the microprocessor 121 transmits the cache data to the host computer 180 by the CMPK 130 and the FEPK 100 (S866).
  • the microprocessor 121 starts this step S862 (S871), determines whether or not the performance boost function of the logical volume designated by the read command is ON, the performance boost function enable table 210 and the per-volume performance boost function enable. The determination is made with reference to the table 220 (S872). If one table indicates that the performance boost function is OFF, the performance boost function for the volume is OFF.
  • the microprocessor 121 If the performance boost function of the logical volume is not ON (S872: NO), the microprocessor 121 stores the host data (read data) read from the storage drive 170 in the host computer 180 without storing it in the cache memory 132. It decides to transmit (S877). When the performance boost function of the logical volume is ON (S872: YES), the microprocessor 121 next determines whether or not the media type of the RAID group in which the designated data is stored is SSD. With reference to the media type table 230 as a key, determination is made (S873).
  • the microprocessor 121 determines whether or not the current I / O is a non-CM transfer target and the logical volume number in which the specified data is stored. Judgment is made by referring to the CM bypass transfer ratio table 440 as a key (S874).
  • the microprocessor 121 uses random numbers from 0 to 100, and the random number is not bypassed by the CM. When the transfer ratio falls below, it may be determined that the current I / O is a non-CM transfer target.
  • the microprocessor 121 uses the hash value from 0 to 100 using the read data address as a key, and if the hash value falls below the CM bypass transfer ratio, the current I / O is the CM bypass transfer target. May be determined.
  • the microprocessor 121 uses a counter that increases by 1 from 0 to 100 (returns to 0 after 100), and when the counter value falls below the CM non-transit transfer rate, the current I / O is set to CM It may be determined that it is a non-passing transfer target.
  • the microprocessor 121 reads the host data (read data) read from the storage drive 170 as a cache memory. If it is determined to transmit to the host computer 180 without storing in 132 (S876) and it is determined that the current I / O is not subject to CM non-transmission (S875: NO), read from the storage drive 170 The host data is determined to be stored in the cache memory 132 (S877).
  • the microprocessor 121 determines to use the CM bypass transfer that does not require updating the cache directory 310 in the local memory 122 and the cache directory 510 in the shared memory 132. As a result, the load on the microprocessor 121 and the CMPK 130 can be reduced and the throughput of the system can be improved.
  • the microprocessor 121 may calculate all LDEVs at a certain period, or may calculate when the I / O target LDEV has not been updated for 1 second or the like at the time of I / O processing.
  • the microprocessor 121 refers to the hit rate table 250 for each volume using the target LDEV number (logical volume number) as a key, obtains the hit rate from the number of I / Os and the number of hits, and uses the MP number of its own as an MP operation rate table 380, the MP operation rate is obtained, and the CM non-transmission transfer ratio calculation table 430 is referred to using the hit rate and the MP operation rate as keys, and the CM non-transmission transfer ratio is obtained (S882).
  • the microprocessor 121 updates the CM bypass transfer ratio column of the LDEV number (logical volume number) in the CM bypass transfer ratio table 440 with the CM bypass transfer ratio determined in S882 (S883), and ends this processing. (S884).
  • the write process may perform data caching determination, or may employ a method of caching all data.
  • step S865 when all the data is cached, the flow is almost the same as the flow in which S851, S853, S856, S861, and S866 are replaced with S141, S143, S146, S151, and S156 in FIG. 18A, respectively.
  • the steps (S862 to S864) relating to the host caching determination are omitted, and if it is determined NO in step S857 or S860, the process is different in that it proceeds to step S865.
  • the management computer 20 operates according to a management program executed thereon. Therefore, the description that uses the management computer 20 as the subject can use the management program or the CPU 26 as the subject.
  • the management computer 20 starts the setting process (S171), and displays a menu for setting data input on the display device 29 (S172).
  • the administrator uses the input device 28 to input necessary setting data (S173 and S174: NO).
  • the management computer 20 saves the setting data in response to the selection of the save button.
  • the setting data is transmitted from the management computer 20 to the storage system 10 in response to a request from the storage system 10. The administrator can input again by selecting the cancel button.
  • FIG. 20 shows an example 2000 of the menu screen.
  • the menu screen 2000 includes a performance boost function setting area 2001 and a performance boost function setting area 2004 for each volume.
  • the administrator selects one of “ENABLE” and “DISABLE” in the performance boost function setting area 2001 by using the input device 28, so that the performance boost function of the storage system 10 (the control information update control and the user data caching control) is selected. Can be enabled or disabled. This setting is reflected in the performance boost function enabling table 210. When this is disabled, all performance boost functions of the storage system 10 are not used.
  • the per-volume performance boost function setting area 2004 includes a logical volume number column 2005 and a performance boost function setting column 2006.
  • the administrator can select enable / disable of the performance boost function of each logical volume with the input device 28 in the per-volume performance boost function setting area 2004.
  • the performance boost function of this embodiment is used for a volume for which the system performance boost function is enabled and the volume performance boost function is enabled.
  • FIG. 20 exemplifies the setting screen for the performance boost function.
  • the management computer 20 displays, for example, a threshold setting screen included in the determination condition, and stores setting data input by the administrator. Send to system 10.
  • the storage system 10 has in advance default values of items that can be set by the administrator, and updates the item data set by the administrator with the input data.
  • FIG. 21 is a flowchart for updating the media type table 230.
  • the BEPK 140 transmits the information to one of the microprocessors 121.
  • the microprocessor 121 that has received the update information updates the media type table 230 and the RAID level table 240 in the local memory 122, updates these tables in the nonvolatile storage area (S202), and notifies the other MPPKs 120 of these updates. .
  • CM operation rate table 290 the update of the CM operation rate table 290 will be described.
  • An arbitrary microprocessor 121 of the MPPK 120 performs this processing. Typically, this processing is performed periodically (for example, every second).
  • the microprocessor 121 acquires operation rate information from the CMPK 130 as the access destination (S212). Specifically, the microprocessor 121 requests a value indicating the operating rate (CM operating rate) of the CMPK 130 from a controller (not shown) in the CMPK 130, and acquires it from the controller in the CMPK 130.
  • CM operating rate the operating rate
  • the microprocessor 121 updates the field of the operation rate column 292 of the corresponding entry in the CM operation rate table 290 with the value of the operation rate acquired from the CMPK 130. Further, the microprocessor 121 determines whether or not the updated operation rate value is equal to or greater than the threshold value in the CM operation rate threshold table 300 (S214).
  • the microprocessor 121 sets the overload flag of the corresponding entry in the CM operating rate table 290 to 1 (ON) (S215).
  • the microprocessor 121 sets the overload flag of the corresponding entry to 0 (OFF) (S216).
  • the microprocessor 121 performs steps S212 to S216 for all CMPKs 130 to be accessed (S217).
  • the update of the volume hit rate table 250 will be described.
  • An arbitrary microprocessor 121 of the MPPK 120 performs this processing. Typically, this processing is performed periodically (for example, every second).
  • the microprocessor 121 acquires the number of I / Os and the number of hits for one logical volume in charge from the local memory 122 (S222).
  • the or other microprocessor 121 counts the number of I / Os (for example, the number of read commands) and the number of cache hits to each assigned logical volume since the previous update, and stores them in the local memory 122.
  • the microprocessor 121 The value is acquired in step S222.
  • the microprocessor 121 updates the hit rate, I / O count, and hit count fields of the corresponding entry in the per-volume hit rate table 250 with the acquired value (S223).
  • the microprocessor 121 further compares the hit rate with the threshold values in the hit rate threshold table 260.
  • the microprocessor 121 sets the low hit flag of the entry to 1 (ON) (S225). On the other hand, when the hit rate is larger than the threshold (S224: NO), the microprocessor 121 sets the low hit flag of the entry to 0 (OFF) (S226). The microprocessor 121 performs steps S222 to S226 for all the logical volumes in charge (S227).
  • each microprocessor 121 performs this processing. Typically, this processing is performed periodically (for example, every second).
  • the microprocessor 121 monitors its operating time per unit time (1 second in this example) and stores the value in the local memory 122.
  • the microprocessor 121 acquires the value from the local memory 122 (S232).
  • the microprocessor 121 uses the acquired value to update the operation rate and operation time fields of the corresponding entry (S233). Further, the microprocessor 121 compares the updated operation rate with the threshold value of the MP operation rate threshold value table 280 (S234). When the operating rate is equal to or higher than the threshold (S234: YES), the microprocessor 121 sets the overload flag of the entry to 1 (ON) (S235). When the operating rate is less than the threshold (S234: NO), the microprocessor 121 sets the overload of the entry to 0 (OFF) (S236).
  • the MPPK 120 reflects the unreflected portion in the cache directory 310 stored in the local memory 122 in the shared memory 132. Accordingly, the next MPPK 120 can perform cache control using the latest cache directory, and the cache hit rate can be increased.
  • the current owner MPPK microprocessor 121 sets the search target in the cache directory 310 to the logical address 0 of the logical volume to which the owner is to be moved (S242).
  • the microprocessor 121 searches the cache directory 310 for the address (S243).
  • the shared memory non-reflecting flag is a flag indicating whether or not the update of the target directory has been reflected in the shared memory 132. If it is ON, the update of the target directory is not reflected in the shared memory 132. Indicates.
  • step S246 the microprocessor 121 proceeds to step S246 without updating the directory on the shared memory 132.
  • step S246 the microprocessor 121 determines whether or not the search of the cache directory 310 for the volume has been completed. If all addresses have been searched (S246: YES), the microprocessor 121 ends this process. If an unsearched address remains (S246: NO), the microprocessor 121 changes the target address to the next logical address (S247) and repeats steps S243 to S246.
  • This embodiment describes a storage system 10 having a storage tier virtualization function.
  • the storage system 10 of this embodiment constructs a pool including a plurality of pool volumes (real volumes).
  • the pool includes a plurality of media having different performances in the storage system 10 and is hierarchized into a plurality of tiers according to access performance.
  • Each tier is composed of one or a plurality of pool volumes.
  • the storage system 10 provides the host computer 180 with a virtual volume constructed from the pool.
  • the storage system 10 manages the pool in units of pages with a specific capacity. Each pool volume is divided into a plurality of pages, and data is stored in each page.
  • the storage system 10 allocates one or more pages of the necessary capacity from the pool for writing from the host computer 180 to the virtual volume.
  • the storage system 10 can make the capacity of the virtual volume 401 recognized by the host computer 180 larger than the actual capacity assigned to the virtual volume, and is necessary for realizing the capacity assigned to the host computer 180.
  • the actual capacity can be made smaller (thin provisioning).
  • the storage system 10 analyzes the I / O load from the host computer 180 with respect to the virtual volume, and pages with a high I / O load are transferred to upper tiers composed of resources composed of high performance and expensive media. Are automatically placed in a lower hierarchy consisting of resources composed of inexpensive media with low performance. Thereby, the cost of the system can be reduced while maintaining the access performance to the virtual volume.
  • FIG. 26 shows information stored in the local memory 122 of this embodiment.
  • the control information in the local memory 122 includes a per-page monitor difference table 320 in addition to the information described in the first embodiment.
  • FIG. 27 shows data stored in the shared memory 132 of this embodiment.
  • the control information of the shared memory 132 includes a dynamic mapping table 520 and a per-page monitor table 530 in addition to the information described in the first embodiment.
  • FIG. 28 shows an example of the dynamic mapping table 520.
  • the dynamic mapping table 520 is a table for managing entries (storage area entries) for counting the number of accesses in each virtual volume. For example, one page is one entry of the dynamic mapping table 520.
  • entries storage area entries
  • FIG. 28 shows an example of the dynamic mapping table 520.
  • the dynamic mapping table 520 is a table for managing entries (storage area entries) for counting the number of accesses in each virtual volume. For example, one page is one entry of the dynamic mapping table 520.
  • this example will be described.
  • the dynamic mapping table 520 includes a pool number column 521, a virtual volume number column 522, a logical address column 523, a pool volume number column 524, a logical address column 525, and a monitor information index number column 526.
  • the pool number and the virtual volume number are identifiers that uniquely identify the pool and the virtual volume in the storage system 10, respectively.
  • the monitor information index number is an entry identifier in the dynamic mapping table 520.
  • the logical address column 523 stores the start logical address of each entry in the virtual volume.
  • the logical address column 525 stores the start logical address in the pool volume of each entry.
  • the entry capacity is constant, but it may not be constant.
  • FIG. 29 shows an example of the page-by-page monitor table 530.
  • the per-page monitor table 530 manages the number of I / Os for each page.
  • the microprocessor 121 refers to the table 530 to determine a hierarchy for storing the data of the page.
  • the per-page monitor table 530 includes a monitor information index number column 531, an I / O counter (current) column 532, and an I / O counter (previous) column 533.
  • the microprocessor 121 monitors access to the page, counts the number of I / Os (access count) within a predetermined monitoring period (for example, 1 second), and stores the count in the page-by-page monitor table 530. The monitoring period continues continuously.
  • the column 533 of the I / O counter (previous) stores the number of I / Os in the previous monitoring period.
  • An I / O counter (current) column 532 stores the number of I / Os in the current monitoring period.
  • the microprocessor 121 repeatedly updates the value in the column 532 of the I / O counter (current) within the current monitoring period.
  • the microprocessor 121 uses the per-page monitor difference table 320 in the local memory 122 to count the number of I / Os and reflects the update of the value in the per-page monitor table 530 in the shared memory 132. This point will be described later.
  • the microprocessor 121 moves the number of I / Os in the previous monitoring period to the field of the number of I / Os in the current monitoring period.
  • FIG. 30 shows an example of the monitor difference table 320 for each page.
  • the per-page monitor difference table 320 is used for counting accesses to each page.
  • the per-page monitor difference table 320 includes a monitor information index number column 321 and an I / O difference counter column 322.
  • the microprocessor 121 monitors the access of each page. When there is an access, the microprocessor 121 increments the value of the corresponding field in the column 322 of the I / O difference counter.
  • the microprocessor 121 sets the column 532 in the I / O counter (current) of the corresponding entry in the per-page monitor table 530.
  • the field is updated by adding the value to the field value of.
  • the microprocessor 121 returns the value of the field in the column 322 of the I / O difference counter that has reached the maximum value to the initial value (0 value).
  • the I / O difference counter indicates the difference in the number of I / Os from the previous update of the per-page monitor table 530.
  • the I / O difference counter column 322 of the per-page monitor difference table 320 stores 8-bit data
  • the I / O counter (current) column 532 of the per-page monitor table 530 includes , 32 bits of data larger than 8 bits are stored.
  • the microprocessor 121 increments the I / O difference counter for the page in the per-page monitor difference table 320 (S302).
  • the microprocessor 121 determines whether the logical volume performance boost function is ON (S303). This step is the same as step S122 in FIG. If the volume performance boost function is OFF (S303: NO), the microprocessor 121 proceeds to step S307.
  • step S304 determines whether or not its own overload flag is ON (S304). This step is the same as step S125 in FIG.
  • step S304: YES If the overload flag is ON (S304: YES), the microprocessor 121 proceeds to step S306.
  • the overload flag is OFF (S304: NO)
  • the microprocessor 121 determines whether or not the overload flag of the CMPK 130 as the access destination is ON (S305). This step is the same as step S126 in FIG.
  • step S305: NO When the overload flag of the CMPK 130 is OFF (S305: NO), the microprocessor 121 proceeds to step S307. If the overload flag of the CMPK 130 is ON (S305: YES), the microprocessor 121 proceeds to step S306. In step S306, the microprocessor 121 determines whether or not the value of the I / O difference counter in the per-page monitor difference table 320 is the maximum value.
  • the microprocessor 121 sets the maximum value to the value of the field in the column 532 of the I / O counter (current) of the corresponding entry of the per-page monitor table 530. The value is added to update the field (S307). The microprocessor 121 further sets the value of the field in the column 322 of the I / O difference counter that has reached the maximum value to 0 value (initial value) (S308).
  • the I / O counter of the shared memory 132 is updated in synchronization with the update of the I / O difference counter in the local memory 122. Since these loads are small, a decrease in system performance is not a problem, and an accurate I / O count can be obtained when a failure occurs.
  • the load conditions of these two devices may be omitted, and the establishment of both may be used as the condition for asynchronous update of the I / O counter value. Different conditions may be used.
  • the microprocessor 121 counts the number of page I / Os with the counter in the local memory 122, and when the value reaches a specified value, the specified value is reflected in the counter of the shared memory 132. As a result, overhead due to communication between the microprocessor 121 and the CMPK 130 is reduced.
  • the bit number of the counter of the monitor difference table 320 for each page is smaller than the bit number of the counter of the monitor table 530 for each page.
  • the capacity required in the local memory 122 for counting the number of I / Os can be reduced.
  • the MPPK 120 fails, information on the I / O count number for a predetermined period is lost.
  • page I / O analysis is performed. Will not have a substantial impact.
  • the performance monitoring method of the present embodiment is not limited to the monitoring of the hierarchical virtualization function, but can be applied to other performance monitoring.
  • it can be applied to a monitor of a drive such as an HDD or an SSD.
  • the counter is initialized when the number of counters reaches the maximum value, but I / O may be counted in the initialization.
  • the microprocessor 121 initializes the I / O difference counter and adds a value obtained by adding the maximum number of 1 to the value of the I / O counter of the monitor table 530 for each page. This is the same in the counting method in the other embodiments.
  • FIG. 32 is a block diagram schematically showing the configuration of the computer system of this embodiment.
  • the storage system of this embodiment includes a first storage system 10A and a second storage system 10B.
  • the first storage system 10A and the second storage system 10B are installed at different sites, and are communicably connected via a data network (eg, SAN) 190A, a data network (eg, SAN) 190B, and a wide area network.
  • a data network eg, SAN
  • SAN data network
  • the first storage system 10A and the second storage system 10B have the same configuration as the hardware configuration described with reference to FIG. Specifically, the first storage system 10A includes a plurality of FEPKs 110A, a plurality of MPPKs 120A, a plurality of CMPKs 130A, and a plurality of BEPKs 140A, which are connected via an internal network 150A.
  • the first management computer 20A manages the first storage system 10A.
  • the second storage system 10B includes a plurality of FEPKs 110B, a plurality of MPPKs 120B, a plurality of CMPKs 130B, and a plurality of BEPKs 140B, which are connected via the internal network 150B.
  • the second management computer 20B manages the second storage system 10A.
  • the first storage system 10A and the second storage system 10B have an asynchronous re-mode copy function.
  • the primary volume (PVOL) 171P of the first storage system 10A and the secondary volume (SVOL) 171S of the second storage system 10B constitute a copy pair.
  • a volume typically consists of one or more storage areas in one or more RAID groups.
  • the primary volume 171P is the copy source volume
  • the secondary volume 171S is the copy destination volume
  • the data of the primary volume 171P is copied to the secondary volume 171S.
  • the order of data writing to the primary volume 171P and the order of data copying to the secondary volume 171S match (order guarantee).
  • the storage system of this embodiment uses journal volumes (JVOL) 171JP and 171JS as a buffer for copying from the primary volume 171P to the secondary volume 171S.
  • JVOL journal volumes
  • the primary volume 171P and the journal volume 171JP are grouped.
  • the secondary volume 171S and the journal volume 171JS are grouped.
  • Update data in the primary volume 171P is transmitted to the secondary volume 171S via the journal volumes 171JP and 171JS. This makes it possible to use a wide area network with unstable performance in remote copy data transfer.
  • the FEPK 110A receives a write command and write data from the host computer 180.
  • the MPPK 120 analyzes the write command and instructs the FEPK 110A and the BEPK 140A (not shown) to write the write data to the primary volume 171P and the journal volume 171JP.
  • the MPPK 120 instructs the FEPK 110A and the BEPK 140A to transfer the write data to the next transfer destination specified.
  • the final transfer destination is the primary volume 171P and the journal volume 171JP, and the write data is written to the primary volume 171P and the journal volume 171JP, respectively.
  • the order of writing to the journal volume 171JP matches the order of writing to the primary volume 171P.
  • the MPPK 120 notifies the host computer 180 of the completion of writing in response to the completion of writing of the write data to the cache memory 131 or the completion of writing to the volume.
  • the MPPK 120 updates the management data of the journal volume 171JP according to the update of the journal volume 171JP.
  • the journal volume 171JP has a management area 611 and a data area 612, each storing journal volume management data and update data. Journal volume management data may be stored outside the journal volume.
  • Journal volume management data includes a sequence number 601 and pointer 602 pair. A pair of these values is given to each write data (update data).
  • the sequence number 601 is any value from 1 to n, and is assigned to each write data in ascending order in the order stored in the data area. The sequence number is cyclic, and 1 is assigned to the data next to the write data to which n is assigned.
  • a pointer 602 indicates a position (address) where write data to which a corresponding sequence number is assigned in the data area 612 is stored.
  • the management area 611 includes an area where a pair of sequence number 601 and pointer 602 is written, and an unused area 604.
  • the unused area 604 stores an initial value.
  • the initial value is a zero value.
  • the microprocessor 121 transfers the update data stored in the data area 612 to the second storage system 10B, the value of the area storing the sequence number 601 and the pointer 602 of the data is set to the initial value (invalid value). Update.
  • the transfer order of update data matches the write order of update data to the journal volume 171JP.
  • the position where the next new pair of the sequence number 601 and the pointer 602 is written is determined. For example, the pair is written in the ascending order of addresses in the management area 611. The next pair written to the end point address is written to the start address.
  • the sequence number 601 immediately before the area storing the initial value, that is, the first sequence number in the journal area indicates the latest update data.
  • the sequence number 601 immediately after the area storing the initial value, that is, the update data having the oldest sequence number in the journal area is indicated.
  • the MPPK 120A of the first storage system 10A transfers the update data stored in the journal volume 171JP to the second storage system 10B in the update order (write order).
  • the MPPK 120B of the second storage system 10B sequentially stores the update data received by the FEPK 110B in the journal volume 171JS. In this figure, caching to the cache memory 131 is omitted.
  • the MPPK 120B writes the update data stored in the journal volume 171JP to the secondary volume 171S in the update order at a specified timing.
  • the journal volume 171JS of the second storage system 10B includes a management area and a data area, and each stores journal management data and update data.
  • the MPPK 120B stores the update data in the journal volume 171JS, then writes a new sequence number and pointer, and updates the management data.
  • the configuration of management data is the same as that of the journal volume 171JP.
  • the MPPK 120B changes the corresponding sequence number and pointer value to the initial value (invalid value).
  • FIG. 34 shows control information stored in the local memory 122 in the first storage system 10A.
  • the LM asynchronous remote copy sequence number management table 330 is stored in the local memory 122.
  • FIG. 35 shows control information stored in the shared memory 132 in the first storage system 10A.
  • an asynchronous remote copy management table 540 and an SM asynchronous remote copy sequence number management table 530 are stored.
  • the asynchronous remote copy management table 540 stores management information for pair management. Specifically, it includes management information for managing each pair of primary volume and secondary volume, remote copy path information, and journal volume information grouped with each of the primary volume and secondary volume.
  • the microprocessor 121 refers to the management table 540 and controls execution of remote copy.
  • FIG. 36 shows an example of the LM asynchronous remote copy sequence number management table 330.
  • the LM asynchronous remote copy sequence number management table 330 manages the latest sequence number of each journal volume in the local memory 122.
  • the microprocessor 121 of the MPPK 120A can determine the sequence number of update data to be newly written to the journal volume 171JS with reference to the LM asynchronous remote copy sequence number management table 330.
  • the LM asynchronous remote copy sequence number management table 330 has a JVOL number column 331, a sequence number column 332, and a sequence number difference column 333.
  • the JVOL number is an identifier of a journal volume in the first storage system 10A.
  • the sequence number column 332 stores data indicating the leading sequence number in the JVOL. The sequence number difference will be described later.
  • FIG. 37 shows an example of the SM asynchronous remote copy sequence number management table 530.
  • the SM asynchronous remote copy sequence number management table 530 manages the sequence number of each journal volume in the shared memory 132.
  • the SM asynchronous remote copy sequence number management table 530 includes a JVOL number column 531 and a sequence number column 532.
  • the sequence number column 532 stores data indicating the head sequence number in JVOL.
  • the value of the sequence number column 532 in one entry matches or is different from the value of the corresponding sequence number column 332 in the local memory 122 (the values of all the entries are different in the examples of FIGS. 36 and 37).
  • Those updates are synchronous or asynchronous.
  • the value of the field of the sequence number difference column 333 is the value of the corresponding field of the sequence number column 332 of the LM asynchronous remote copy sequence number management table 330 and the SM asynchronous. This is a difference from the value of the corresponding field in the sequence number column 532 of the remote copy sequence number management table 530.
  • the field value in the sequence number difference column 333 indicates the update of the sequence number in the JVOL from the previous update of the corresponding field in the sequence number column 532, and the first sequence at the time of the previous update stored in the shared memory 133 The difference between the number and the latest start sequence number is shown.
  • each time update data is written to a journal volume the microprocessor 121 of the MPPK 120A increments the values of the sequence number column 332 and the sequence number difference column 333 in the journal volume entry.
  • Each field of the sequence number column 332 indicates the latest sequence number (the last assigned sequence number) of the corresponding journal volume. The value of each field in the sequence number column 332 returns to the minimum value when incremented from the maximum value.
  • the number of bits (maximum value) in the sequence number difference column 333 is smaller than the number of bits (maximum value) in the sequence number column 332.
  • the microprocessor 121 updates the entry in the LM asynchronous remote copy sequence number management table 330 to the corresponding entry in the SM asynchronous remote copy sequence number management table 530. reflect.
  • the sequence number of the corresponding entry in the SM asynchronous remote copy sequence number management table 530 is matched with the sequence number of the corresponding entry in the LM asynchronous remote copy sequence number management table 330.
  • the update value in the SM asynchronous remote copy sequence number management table 530 is a value obtained by adding the value of the corresponding field in the sequence number difference column 333 to the value before the update.
  • the change in the sequence number is counted up to a predetermined number smaller than the maximum number of sequence numbers in the local memory 122, and the change in the sequence number in the local memory 122 is reflected in the sequence number in the shared memory 132, whereby the microprocessor The number of accesses to the CMPK 130 by 121 can be reduced, and the load on the microprocessor 121 and the CMPK 130 due to communication between them can be reduced.
  • the microprocessor 121 When update data is written to the journal volume 171JS, the microprocessor 121 refers to the LM asynchronous remote copy sequence number management table 330 and adds a new sequence number and pointer to the management area 611 of the journal volume 171JS. . Further, the microprocessor 121 updates the sequence number and the sequence number difference value of the entry of the journal volume 171JS in the LM asynchronous remote copy sequence number management table 330 (in this example, increments these values) (S412).
  • the microprocessor 121 determines whether or not the performance boost function of the volume is ON (S413). When the performance boost function is OFF (S413: NO), the microprocessor 121 proceeds to step S417. When the performance boost function is ON (S413: YES), the microprocessor 121 determines whether its own overload flag is ON (S414).
  • the microprocessor 121 proceeds to step S416.
  • the overload flag is OFF (S414: NO)
  • the microprocessor 121 determines whether the overload flag of the CMPK that is the access destination is ON (S415).
  • step S415 NO
  • the microprocessor 121 proceeds to step S417. If the CMPK overload flag is ON (S415: YES), the microprocessor 121 proceeds to step S416. Details of step S413 to step S415 are as already described in the second embodiment.
  • step S416 the microprocessor 121 determines whether the sequence number difference of the journal volume 171JS is the maximum value in the LM asynchronous remote copy sequence number management table 330. If the value is not the maximum value (S416: NO), the microprocessor 121 ends this process.
  • the microprocessor 121 updates the sequence number of the journal volume 171JS in the SM asynchronous remote copy sequence number management table 530. Specifically, the microprocessor 121 updates the current sequence number value to a value obtained by adding the sequence number difference value. In step S417, the microprocessor 121 updates (initializes) the value of the sequence number difference field that has reached the maximum value to 0 value.
  • the LM asynchronous remote copy sequence number management table 330 on the local memory 122 is lost.
  • this table 330 has information indicating the latest head sequence number of each journal volume. In order to perform normal remote copy, the latest start sequence number in the journal management data is required.
  • the MPPK 120A different from the MPPK 120A in which the failure has occurred refers to the management area 611 of the journal volume 171JS and confirms the latest start sequence number indicating the start of the journal area.
  • the asynchronous remote copy sequence number recovery processing when an MPPK failure occurs will be described with reference to the flowchart of FIG.
  • the microprocessor 121 of the normal MPPK 120A selects one journal volume from the SM asynchronous remote copy sequence number management table 530 stored in the shared memory 123, and reads the sequence number (S422).
  • the microprocessor 121 reads data from the sequence number area next to the sequence number area from the journal volume (S423).
  • the microprocessor 121 determines whether the sequence number read in step S423 is a 0 value (invalid value) (S424). If the sequence number is not 0 (S424: NO), the microprocessor 121 stores the read sequence number in a temporal area (typically, an area in the local memory 122) (S425).
  • the area is an unused area, and the microprocessor 121 uses the sequence number stored in the temporal area to store the value in the SM asynchronous remote copy sequence number management table 530. Update the sequence number of the corresponding journal volume.
  • the sequence number in the SM asynchronous remote copy sequence number management table 530 is the latest head sequence number, updating is not necessary.
  • the microprocessor 121 performs the above update for all journal volumes stored in the SM asynchronous remote copy sequence number management table 530.
  • the SM asynchronous remote copy sequence number management table 530 is updated to include the latest information, and the other MPPK 120A can take over the responsibility of the MPPK 120A in which the failure has occurred and continue normal asynchronous remote copy.
  • the values stored in the sequence number management tables 330 and 530 are examples, and any values may be stored in the sequence number management tables 330 and 530 as long as they can indicate the head sequence numbers or the difference between the head sequence numbers in the tables 330 and 350. It may be.
  • FIG. 40 shows control information stored in the local memory 122 of this embodiment.
  • the local memory 122 stores an LM local copy difference management table 340 and an LM local copy difference area thinning operation management table 350.
  • FIG. 41 shows control information in the shared memory 132 of the present embodiment.
  • the SM local copy difference management table 560, the SM local copy difference area thinning operation management table 570, and the local copy management table 580 are included in the control information in the shared memory 132.
  • a plurality of MPPKs 120 can refer to the tables 560, 570, and 580 in the shared memory 132.
  • the SM local copy difference management table 560 and the SM local copy difference area thinning operation management table 570 are referred to by other MPPKs 120 when the MPPK 120 fails.
  • the local copy management table 580 includes management information for managing each pair of a primary volume and a secondary volume. For example, it includes identification information of a primary volume and a secondary volume that constitute a pair, address information thereof, and copy policy information.
  • the microprocessor 121 refers to the local copy management table 580 and controls execution of local copy.
  • the SM local copy difference management table 560 and the SM local copy difference area thinning operation management table 570 in the shared memory 132 are respectively the LM local copy difference management table 340 and the LM local copy difference area thinning operation management table 350 in the local memory 122. This is a backup.
  • the microprocessor 121 reflects the update of the tables 340 and 350 in the local memory 122 in the tables 560 and 570 of the shared memory 132 according to a predetermined rule.
  • FIG. 42 shows an example of the LM local copy difference management table 340.
  • the LM local copy difference management table 340 includes a volume number column 341, a logical address column 342, and a differential bit string column 343.
  • the volume number is an identifier of the primary volume in the storage system.
  • Each entry indicates a storage area (address range) having a predetermined size in the volume.
  • the logical address indicates the start logical address of the storage area of each entry. In this example, the storage areas of the entries are common.
  • the bit string with difference indicates whether or not there is a data difference between the primary volume and the secondary volume in the storage area of the entry, that is, whether or not the update in the primary volume is reflected in the secondary volume. .
  • Each bit of the bit string with difference (also referred to as a bit with difference) indicates whether or not the data of each partial area in the storage area of the entry is different between the primary volume and the secondary volume.
  • the area size corresponding to each bit is common. In this example, if the bit of the differential bit string is 1, it indicates that the data in that area is different between the primary volume and the secondary volume.
  • the microprocessor 121 copies the update data of the primary volume to the secondary volume at a predetermined timing (asynchronous local copy).
  • the microprocessor 121 refers to the LM local copy difference management table 340 and copies the data in the area where the differential bit in the primary volume is 1 to the secondary volume.
  • the microprocessor 121 updates the difference presence bit of the area in which the update is reflected in the secondary volume to 0 value in the LM local copy difference management table 340. In this example, all the update data of the primary volume is copied to the secondary volume in one copy operation.
  • FIG. 43 shows an example of the SM local copy difference management table 560.
  • the SM local copy difference management table 560 is a backup table of the LM local copy difference management table 340, and has the same configuration as the LM local copy difference management table 340. Specifically, it includes a column 561 for volume numbers, a column 562 for logical addresses, and a column 563 for bit strings with difference.
  • the microprocessor 121 copies the update in the LM local copy difference management table 340 to the SM local copy difference management table 560 according to a predetermined rule.
  • the update of the LM local copy difference management table 340 and the update of the SM local copy difference management table 560 by asynchronous local copy from the primary volume to the secondary volume are synchronized.
  • the update of the SM local copy difference management table 560 for the update by data write to the primary volume will be described later.
  • FIG. 44 shows an example of the LM local copy difference area thinning operation management table 350.
  • the LM local copy difference area thinning-out operation management table 350 includes a volume number column 351, a logical address column 352, and a thinning-out bit string column 353. Each entry indicates a storage area (address range) having a predetermined size in the volume.
  • the logical address indicates the start logical address of the storage area of each entry.
  • the storage areas of the entries are common.
  • the entry storage area in the LM local copy difference area thinning-out operation management table 350 is wider than the entry storage area in the LM local copy difference management table 340.
  • the thinning-out bit string indicates whether or not the update of the bit string with difference in the LM local copy difference management table 340 is reflected in the corresponding bit string with difference in the LM local copy difference management table 340.
  • the thinning-out bit string is associated with the storage area in the logical volume.
  • Each bit of the thinning-out bit string (also referred to as thinning-out bit string) is associated with a partial area of the storage area associated with the thinning-out bit string.
  • Each bit of the thinning-out bit string is associated with one or a plurality of differential bits through a partial area to which the bit string is associated.
  • the thinning-out bit is associated with a plurality of differential bits.
  • the entry storage area (address range) in the LM local copy difference area thinning operation management table 350 is wider than the entry storage area (address range) in the LM local copy difference management table 340.
  • the number of bits in the thinned-out bit string is the same as or different from the number of bits in the differential bit string (same in the examples of FIGS. 43 and 44).
  • each difference bit is associated with a storage area. If at least a part of the storage area associated with the thinning-out bit matches the storage area with a difference bit, the thinning-out bit is associated with the difference-with-bit.
  • the microprocessor 121 refers to the thinning-out bit in the area indicated by the write command in the LM local copy difference area thinning-out operation management table 350.
  • the microprocessor 121 When the thinning-out bit is 1, the microprocessor 121 does not reflect the corresponding difference bit update in the LM local copy difference management table 340 in the SM local copy difference management table 560. Thereby, the load of MPPK120 and CMPK130 by communication between MPPK120 and CMPK130 is reduced.
  • FIG. 45 shows an example of the SM local copy difference area thinning operation management table 570.
  • the SM local copy difference area thinning operation management table 570 is a backup table of the LM local copy difference area thinning operation management table 350 and has the same configuration as that. Specifically, it has a column 571 for volume numbers, a column 572 for logical addresses, and a column 573 for thinning-out bits.
  • the microprocessor 121 updates the SM local copy difference area thinning operation management table 570 in synchronization with the update of the LM local copy difference area thinning operation management table 350.
  • the microprocessor 121 updates the LM local copy difference management table 340 (S502). Specifically, the differential bit associated with the updated area in the primary volume is updated.
  • the microprocessor 121 determines whether or not the performance boost function of the volume is ON (S503). If the performance boost function is OFF (S503: NO), the microprocessor 121 proceeds to step S509 and updates the SM local copy difference management table 560 (synchronous update). When the performance boost function is ON (S503: YES), the microprocessor 121 determines whether its own overload flag is ON (S504).
  • the microprocessor 121 determines whether or not the overload flag of the access destination CMPK is ON (S505).
  • step S509 updates the SM local copy difference management table 560.
  • step S506 Details of step S503 to step S505 are as already described in the second embodiment, and the control information of the shared memory 132 is appropriately updated while suppressing a decrease in system performance.
  • step S506 the microprocessor 121 determines whether the area updated in the primary volume is being thinned. Specifically, the microprocessor 121 refers to the LM local copy difference area thinning operation management table 350 and checks each thinning bit in the update area. When the thinning-out bit is 1 (S506: YES), the microprocessor 121 omits the update of the differential bit corresponding to the thinning-out bit in the SM local copy difference management table 560.
  • the microprocessor 121 determines whether or not the difference between the areas associated with the thinning-out bit is greater than or equal to the threshold (S507). Specifically, the microprocessor 121 refers to the LM local copy difference management table 340 and determines whether or not the number of 1 bits is greater than or equal to the threshold value in the bits with differences corresponding to the thinned bits. This criterion will be described in the MPPK failure process described later with reference to FIG.
  • the microprocessor 121 updates the SM local copy difference management table 560 (S509).
  • the microprocessor 121 updates the LM local copy difference area thinning operation management table 350 and the SM local copy difference area thinning operation management table 560 (S508). Specifically, the microprocessor 121 changes the thinning-out bit from 0 to 1 in the two tables 350 and 560.
  • the microprocessor 121 in the other MPPK 120 refers to the SM local copy difference area thinning operation management table 570 (S512), and determines whether or not a thinning-out area remains (S513).
  • the thinning-out area is an area where the thinning-out bit is 1. If no thinning area remains (S513: NO), this flow ends. When the thinning-out area remains (S513: YES), the microprocessor 121 copies the data in that area in the primary volume to the secondary volume (S514).
  • the shared memory 132 does not store the latest differential bit string corresponding to the thinning-out bit of “1”. Therefore, when a failure occurs in the MPPK 120, all data in the area where the thinning-out bit is 1 (ON) is copied from the primary volume to the secondary volume. Thereby, the data of the secondary volume can be exactly matched with the data of the primary volume.
  • the thinned bit when the bit with difference “1” corresponding to the bit being thinned is equal to or larger than the threshold, the thinned bit is turned ON (1).
  • the update load is reduced by thinning out the update of the area where there is a lot of data that needs to be updated, and the processing at the time of failure Can be made more efficient.
  • the configuration of the difference management table and the thinning operation management table is an example, and any data may be used as long as the difference area and the thinning-out area can be indicated.
  • FIG. 48 shows an example 4800 of a menu screen for setting the performance boost function that can be used in the second to fourth embodiments.
  • the menu screen 4800 includes a performance boost function setting area 4801, a per-volume performance boost function setting area 4802, and a per-function performance boost function setting area 4803.
  • the administrator can enable or disable the performance boost function of the storage system 10 by selecting either “ENABLE” or “DISABLE” in the performance boost function setting area 4801 with the input device 28. This setting is reflected in the performance boost function enabling table 210.
  • the per-volume performance boost function setting area 4802 enables / disables the performance boost function of each logical volume.
  • the administrator can select enabling / disabling of the performance boost function of each logical volume with the input device 28 in the performance boost function setting area 4802 for each volume. This setting is reflected in the performance boost function enabling table 220 for each volume.
  • Performance boost function setting area 4803 for each function enables / disables each performance boost function.
  • the administrator can select enable / disable of each function with the input device 28 in the performance boost function setting area 4803 for each function. This setting is reflected in a function-by-function performance boost function enabling table (not shown) in the storage system 10. If all of the system, volume and function boost functions are enabled, the performance boost function is used on that volume.
  • FIG. 49 schematically shows the configuration of the computer system of this embodiment.
  • the storage module 10 ⁇ / b> C and the storage module 10 ⁇ / b> D are communicably connected by an inter-module path 195 (also referred to as an X path) including the switch 198.
  • the configuration of the storage modules 10C and 10D in FIG. 49 is the same as the configuration of the storage system 10 described with reference to FIG. In this example, two combined modules constitute one storage system, but three or more modules may constitute one storage system.
  • An X path (switch 198) 195 that couples the storage module 10C and the storage module 10D functions as a path similar to the path of the internal network 150, and an arbitrary package of one module is an arbitrary package and medium of the other module. And the X path 195.
  • the host computer 180 can access any storage module.
  • the X path has a narrower bandwidth than the internal network 150 and a low data transfer capability. Therefore, the X path tends to be a bottleneck in data transfer between packages. Therefore, it is possible to reduce the degradation of the performance of the storage system by determining whether the performance boost function is ON / OFF based on the load of the X path.
  • the microprocessor 121 of the present embodiment refers to the operation rate of the X path 195 in the enable / disable control of the performance boost function. As a result, system performance can be appropriately improved in a storage system composed of a plurality of modules.
  • FIG. 50 shows control information stored in the local memory 122 of the present embodiment.
  • an X path availability table 360 and an X availability threshold table 370 are stored in the local memory 122.
  • FIG. 51 shows an example of the X path availability table 360.
  • FIG. 52 shows an example of the X path availability threshold table 370.
  • the X path operating rate table 360 manages the X path operating rate.
  • the X path operating rate table 360 includes an X path number column 361, an operating rate column 361, and an overload determination flag column 363.
  • the X path number is an identifier that uniquely identifies the X path in the system.
  • the X path availability table 360 manages a plurality of X paths. That is, a plurality of X paths combine two or more storage modules. The plurality of X paths pass through the same or different switches.
  • the operating rate is the data transfer time per unit time.
  • the operation rate of the X path is calculated by the controller of the switch through which the X path passes and stored in the register.
  • the microprocessor 121 acquires the operation rate of each X path from the register of the switch and stores it in the X path operation rate table 360.
  • the microprocessor 121 compares each entry operating rate in the X path operating rate table 360 with a predetermined X path operating rate threshold value, and determines the value of the overload determination flag. When the X path operating rate is equal to or greater than the threshold, the microprocessor 121 sets the overload determination flag to 1.
  • the X path operating rate threshold value is stored in the X path operating rate threshold value column of the X path operating rate threshold value table 370. For example, the X path availability threshold table 370 is loaded from a nonvolatile storage area in the storage system, and the value is set by the administrator.
  • step S607 steps other than step S607 are the same as those in the flowchart shown in FIG. 16 in the first embodiment, and a description thereof will be omitted.
  • step S607 the microprocessor 121 refers to the X path availability table 360 and determines that the X path overload flag used for accessing the shared memory 132 is 1 (ON). Control information indicating the relationship between the CMPK 130 to be accessed and the X path to be used is stored in the local memory 122, whereby the microprocessor 121 can specify the X path to be used.
  • the microprocessor 121 determines not to update the control information of the shared memory 132 (S608).
  • the overload flag is OFF (0) (S607: NO)
  • the microprocessor 121 determines to update the control information of the shared memory 132 (S608).
  • the microprocessor 121 selects one X path, for example, the X path 195, and acquires the operating rate of the X path 195 from the switch 198 (S612).
  • the microprocessor 121 updates the operation rate value of the corresponding entry in the X path operation rate table 360 with the acquired operation rate value (S613).
  • the microprocessor 121 determines whether the acquired operating rate value is equal to or greater than the X path operating rate threshold value in the X path operating rate threshold value table 370 (S614).
  • the microprocessor 121 sets the overload flag of the entry in the X path operating rate table 360 to 1 (ON) (S615).
  • the microprocessor 121 sets the overload flag of the entry in the X path operating rate table 360 to 0 (OFF) (S616).
  • the microprocessor 121 determines whether or not the operating rates of all X paths have been updated (S617). If all the X paths have been determined (S617: YES), this flow ends, and undecided X paths are found. If it remains (S617: NO), one X path is selected from the remaining X paths, and this flow is repeated.
  • This embodiment describes a configuration in which the MPPK 120 can access a plurality of shared memory areas distributed in a plurality of different types of devices. In the present embodiment, differences from the other embodiments will be mainly described.
  • FIG. 55 schematically shows the configuration of the computer system of this embodiment.
  • a shared memory (storage area) exists in a plurality of different devices.
  • the shared memory 124 exists on the MPPK 120
  • the shared memory 178 exists on the storage drive 170.
  • the area of the shared memory 124 on the MPPK 120 is a storage area in the local memory 122.
  • the area of the shared memory 178 on the storage drive 170 is a storage area of a nonvolatile storage medium in the storage drive.
  • FIG. 56 shows control information stored in the local memory 122 of the present embodiment. 56, an MP operating rate table 380, an MP operating rate threshold value table 390, and an SM area management table 400 are stored in the local memory 122.
  • FIG. 57 shows an example of the MP operation rate table 380.
  • the MP operation rate table 380 includes an MP number column 381, an operation rate column 382, an overload determination flag 1 column 383, an overload determination flag 2 column 384, and an operation time column 385.
  • the columns other than the column 384 of the overload determination flag 2 are the same as those in the MP availability table 270 shown in FIG.
  • the overload determination flag 1 column 383 corresponds to the overload determination flag column 273.
  • FIG. 58 shows an example of the MP operation rate threshold table 390.
  • the MP operating rate threshold table 390 includes a column 391 for the MP operating rate threshold 1 and a column 392 for the MP operating rate threshold 2.
  • the value of the MP operation rate threshold 1 is higher than the value of the MP operation rate threshold 2.
  • the MP operating rate threshold 1 corresponds to the MP operating rate threshold shown in FIG.
  • FIG. 59 shows an example of the SM area management table 400.
  • the SM area management table 400 manages a shared memory area distributed to a plurality of devices.
  • the SM area management table 400 includes a type column 401, a number column 402, a head address column 403, and a free capacity column 404.
  • “Type” indicates the type of the device in which the shared memory area exists.
  • “Number” is an identifier in devices of the same type.
  • “Start address” indicates the start address of the shared memory area in each device.
  • Free capacity is the free capacity of the shared memory area.
  • the microprocessor 121 acquires the value of the free capacity of the shared memory area from the controller of each device (the microprocessor 121 in MPPK), and stores it in the free capacity column 404.
  • Steps S702 to S707 in the flowchart of FIG. 60A are the same as steps S122 to S127 in the flowchart of FIG.
  • the microprocessor proceeds to step S709 in FIG. 60B.
  • step S706 If the overload flag of the CMPK 130 is OFF in step S706 (S706: NO) or if the performance boost function of the logical volume is OFF in step S702 (S702: NO), the microprocessor 121 shares the CMPK 130. It is decided to update the control information of the memory.
  • the microprocessor 121 refers to the SM area management table 400 and determines whether there is an MPPK 120 having a necessary free shared memory area.
  • the microprocessor 121 identifies the number of the MPPK 120, stores the caching control information in the shared memory 124 of the MPPK 120, and updates the MPPK 120. It is decided to perform (S710).
  • the MPPK 120 is an MPPK different from the MPPK 120 on which the microprocessor 121 is mounted.
  • the microprocessor 121 determines whether its own overload flag 2 is 1 (ON) (S711). If the overload flag 2 is ON (S711: YES), the microprocessor 121 determines not to update the control information in the shared memory area (S716).
  • the microprocessor 121 refers to the SM area management table 400 and determines whether there is an SSD RAID group having a necessary free shared memory area (S712).
  • the microprocessor 121 identifies the number of the SSD RAID group and stores the cache control information in the shared memory area of the SSD RAID group. It is determined to store and update (S713).
  • the microprocessor 121 refers to the SM area management table 400 and determines whether the HDD RAID group having the necessary free shared memory area exists. Determination is made (S714). When the HDD RAID group having the necessary free shared memory area does not exist (S714: NO), the microprocessor 121 determines not to update the control information in the shared memory 132 (S716).
  • the microprocessor 121 identifies the number of the HDD RAID group and stores the cache control information in the shared memory area of the HDD RAID group. Then, it is determined to perform the update (S715).
  • the microprocessor 121 When the microprocessor 121 stores the control information in any shared memory other than the shared memory 132 and decides to update the control information, the microprocessor 121 copies the data caching control information in the local memory 122 to the selected shared memory. . Data caching control in the shared memory 132 may be deleted.
  • the update of the control information in the shared memory can be synchronized with the update in the local memory.
  • the cache hit rate can be improved.
  • the above flow determines whether there is a free shared memory area from a device with high access performance. As a result, the control information can be stored in a shared memory with higher access performance, and a decrease in system performance can be suppressed.
  • the shared memory area management of the present embodiment can be applied to the storage and update management of other control information described in the other embodiments in addition to the storage and update management of data caching control information.
  • other MPPKs 120 can search for corresponding control information in the distributed shared memory area by referring to the shared memory area management table 400.
  • Steps S722 and S723 are the same as steps S232 and S233 in FIG.
  • step S724 the microprocessor 121 determines whether the updated operating rate value is equal to or greater than the MP operating rate threshold value 1.
  • the microprocessor 121 sets the overload flag 1 of the MP operating rate table 380 to 1 (ON) (S725).
  • the microprocessor 121 sets the overload flag 1 of the MP operating rate table 380 to 0 (OFF) (S726).
  • step S727 the microprocessor 121 determines whether or not the updated operation rate value is equal to or greater than the MP operation rate threshold value 2.
  • the microprocessor 121 sets the overload flag 2 of the MP operating rate table 380 to 1 (ON) (S728).
  • the microprocessor 121 sets the overload flag 1 of the MP operating rate table 380 to 0 (OFF) (S729).
  • the storage system of this embodiment determines ON / OFF of the low hit rate flag based on the improvement of access performance by caching host data.
  • the low hit rate flag is as described in the first embodiment.
  • the access performance is represented by, for example, response time or throughput. The configuration described below uses response time.
  • the low hit rate flag (see the first embodiment) is set to OFF when the response time improvement by using data caching is large, and the low hit rate flag is set to ON when the response time improvement by using data caching is small. Is set. Thereby, an average response time can be improved.
  • FIG. 62 shows control information stored in the local memory 122 of the present embodiment.
  • a response table 410 and a CM use threshold table 420 are stored in the local memory 122.
  • FIG. 63 shows an example of the response table 410
  • FIG. 64 shows an example of the CM use threshold table 420.
  • the response table 410 is a table for managing the response time of media.
  • the response table 410 includes a media type column 411 and a response time column 412.
  • the response table 410 in this example manages the response time according to the media type, but may manage the response time according to a RAID group or a logical volume.
  • the response time is the time required to read data from the media.
  • a value is stored in the response time column 412 in advance, or the microprocessor 121 may update the value in the response time column 412.
  • the microprocessor 121 measures the response time in data reading, and stores, for example, the average value of the measured values in the response time column 412.
  • the response time may be determined using the data write response time.
  • the data write response time and the data read response time may be managed separately, and the data write and data read hit ratios may be managed separately in accordance with the data write response time and the data read response time.
  • Data caching control can be performed separately for write data caching and read data caching.
  • the CM use threshold value table 420 stores a threshold value of a value indicating response improvement in the response improvement column 421.
  • the threshold is set in advance. For example, a value set by the administrator is stored in a nonvolatile storage area in the storage system.
  • the microprocessor 121 uses the difference between the response time of the medium and the response time of the CMPK 130 (cache memory 131) to calculate a value indicating response improvement. If this value is larger than the above threshold, it indicates that the response improvement is at a level commensurate with data caching.
  • a hit rate update process including a low hit rate flag update based on the response improvement of the present embodiment will be described with reference to the flowchart of FIG.
  • the MPPK 120 executes this process periodically, for example, every second.
  • Steps S802, S803, and S805 to S807 in the flowchart of FIG. 65 are the same as steps S222, S223, and S225 to S227 in the flowchart of FIG.
  • step S804 the microprocessor 121 calculates a value indicating response improvement according to the following equation.
  • Hit rate x response time of the media-CMPK response time
  • the microprocessor 121 can identify the type of the media by referring to the media type table 230 from the RAID group of the volume.
  • the response time value is stored in the response table 410 as described above.
  • the microprocessor 121 compares the calculated value with the CM use threshold value in the CM use threshold value table 420.
  • the microprocessor 121 sets the low hit rate flag of the volume to 1 (ON) (S805).
  • the microprocessor 121 sets the low hit rate flag of the volume to 0 (OFF) (S806).
  • a cache slot is generally secured when a cache miss occurs.
  • an efficient cache control method that considers the characteristics of the SSD while maintaining such a cache control premise in a storage system in which HDDs and SSDs coexist will be described.
  • the storage system performs caching using a normal cache area associated with a logical volume space and transfers read data to the host or a cache area associated with an I / O processing control process (job).
  • the read data is transferred to the host using the (job buffer) or is determined according to a predetermined condition.
  • a job indicates a process for controlling I / O processing, and the job has a job # that can be uniquely specified in each MP.
  • the management area for each job # for example, information on the access destination address and transfer length of the I / O being processed, information on the cache area being used, and the like are stored.
  • FIG. 72 shows control information stored in the local memory 122 of this embodiment.
  • a job management table 450, a job buffer address table 460, a buffer transfer rate calculation table 470, and a buffer transfer rate table 480 are stored in the local memory 122.
  • 73 shows an example of the job management table 450
  • FIG. 74 shows an example of the job buffer address table 460
  • FIG. 75 shows an example of the buffer transfer ratio calculation table 470
  • FIG. 76 shows an example of the buffer transfer ratio table 480. Show.
  • FIG. 73 shows a configuration example of the job management table 450.
  • the job management table 450 is a table for managing whether each job number is in use.
  • the job management table 450 has a microprocessor number column 451, a job number column 452, and a use / non-use column 453.
  • the empty management of the job number in this example is performed in the use / non-use column, but queue management using a used queue and a non-used queue may be performed.
  • FIG. 74 shows a configuration example of the job buffer address table 460.
  • the job buffer address table 460 manages a buffer search address to which each job number of each MP is assigned.
  • the job buffer address table 460 includes a microprocessor number column 461, a job number column 462, and a job buffer address number column 463.
  • the job buffer address number is a unique value in the storage system and is a value that does not overlap with the logical volume address.
  • FIG. 75 shows a configuration example of the buffer transfer ratio calculation table 470.
  • the buffer transfer rate calculation table 470 is a table for calculating the transfer rate using the job buffer from the cache hit rate and the MP operating rate for each logical volume.
  • the buffer transfer rate calculation table 470 includes a hit rate column 471, a microprocessor operating rate column 472, and a buffer transfer rate column 473.
  • a high buffer transfer ratio is set when the hit rate is low, and a high buffer transfer ratio is set when the microprocessor operating rate is high.
  • the lower limit of the buffer transfer ratio is 0, and the upper limit is 99 or less.
  • the reason why the upper limit is 99 or less is that the hit rate cannot be calculated when transferring using a 100% job buffer.
  • the hit rate used in this example is a hit rate when the job buffer is not used.
  • FIG. 76 shows a configuration example of the buffer transfer ratio table 480.
  • the buffer transfer ratio table 480 is a table for managing the ratio of using the job buffer in the read processing for each logical volume.
  • the buffer transfer ratio table 480 has a logical volume number column 481 and a buffer transfer ratio column 482.
  • the microprocessor 121 receives the read command from the host computer 180 (S901), the microprocessor 121 refers to the job management table 430, searches for an unused job number, and secures an unused job number (S902).
  • the microprocessor 121 determines whether it has the access right to the logical volume (LDEV) indicated by the read command (S903). When the access right is not possessed (S903: NO), the microprocessor 121 transfers the read command to the MPPK 120 having the access right (S904).
  • LDEV logical volume
  • the microprocessor 121 searches the cache directory 310 using the logical volume address in the local memory 122 on the same MPPK 120 (S905).
  • the microprocessor 121 reads the read data from the cache memory 131 according to the information in the cache directory 310 and transmits it to the host computer 180. (S907).
  • the microprocessor 121 checks the uncached flag in the local memory 122 (S908).
  • the uncached flag is a flag indicating whether all the data of the cache directory value 510 of the shared memory 132 is cached in the local memory 122, and is stored in the local memory 122. When some data is not read, the value is ON. For example, if the control information is not read from the shared memory 132 to the local memory 122 immediately after the failure failover, the uncached flag is ON.
  • the microprocessor 121 transfers the cache directory (control information) from the shared memory 132 to the local memory 122 via the controller of the CMPK 130 (S909).
  • the microprocessor 121 searches the cache directory 310 in the local memory 122 (S910). When the data specified by the read command is found (cache hit) (S911: YES), the microprocessor 121 reads the read data from the cache memory 131 according to the information in the cache directory 310 and transmits it to the host computer 180 (S912). .
  • the microprocessor 121 performs caching using a normal cache area associated with the logical volume space, and stores read data as a host. Or the read data is transferred to the host (buffer transfer) using the cache area (job buffer) associated with the I / O processing control process (job) (S913). A specific method of this determination will be described in detail later.
  • the microprocessor 121 secures a slot for the read data in the cache memory 131, and further, the cache directory 310 of the local memory 122 and the cache directory of the shared memory 132. 510 is updated (S915).
  • the microprocessor 121 reads the read data from the storage drive 170 (permanent medium) using the BEPK 140 and the CMPK 130, and stores the read data in the reserved slot on the cache memory 131. Thereafter, the microprocessor 121 transmits the cache data to the host computer 180 by the CMPK 130 and the FEPK 100 (S916).
  • the microprocessor 121 searches the cache directory 310 using the job buffer address number in the job buffer address table 440 (S917).
  • the microprocessor 121 secures a slot for the job buffer in the cache memory 131, and further, the cache directory 310 and the shared memory in the local memory 122.
  • the cache directory 510 of 132 is updated (S919), and the process proceeds to the next step S920.
  • step 920 the microprocessor 121 proceeds to step 920 without updating the control information of the local memory 122 and the shared memory 132.
  • step 920 the microprocessor 121 reads the read data from the storage drive 170 (permanent medium) using the BEPK 140 and the CMPK 130, and stores the read data in the job buffer slot on the cache memory 131. Thereafter, the microprocessor 121 transmits the cache data to the host computer 180 by the CMPK 130 and the FEPK 100.
  • the microprocessor 121 starts this step S914, and determines whether or not the performance boost function of the logical volume designated by the read command is ON, by using the performance boost function enable table 210 and the per-volume performance boost function enable table 220. The determination is made with reference to (S932). If one table indicates that the performance boost function is OFF, the performance boost function for the volume is OFF.
  • the microprocessor 121 determines not to use buffer transfer (S937).
  • the microprocessor 121 next determines whether or not the media type of the RAID group in which the designated data is stored is SSD. With reference to the media type table 230 as a key, determination is made (S933).
  • the microprocessor 121 has configuration management information for each volume in the local memory 122, and can know which RAID group each area of each volume belongs to by referring to that information.
  • the microprocessor 121 determines not to use buffer transfer (S937).
  • the microprocessor 121 next determines whether or not the current I / O is a buffer transfer target by using the logical volume number in which the designated data is stored as a key. The determination is made with reference to the buffer transfer ratio table 480 (S934).
  • the microprocessor 121 uses a random number from 0 to 100 as a method for determining whether or not it is a buffer transfer target using a buffer transfer ratio having a value from 0 to 99, and the random number falls below the buffer transfer ratio. In addition, it may be determined that the current I / O is a buffer transfer target.
  • the microprocessor 121 uses the hash value from 0 to 100 using the read data address as a key, and determines that the current I / O is a buffer transfer target when the hash value falls below the buffer transfer ratio. Also good.
  • the microprocessor 121 uses a counter that increases by 1 from 0 to 100 (returns to 0 after 100), and when the counter value falls below the buffer transfer ratio, the current I / O is subject to buffer transfer. It may be determined that
  • the microprocessor 121 determines to use buffer transfer (S936), and the current I / O is If it is determined that it is not a buffer transfer target (S935: NO), it is determined not to use the buffer transfer (S937).
  • the microprocessor 121 determines to use a buffer transfer that is unlikely to update the cache directory 310 in the local memory 122 and the cache directory 510 in the shared memory 132. .
  • the load on the microprocessor 121 and the CMPK 130 can be reduced and the throughput of the system can be improved.
  • the calculation of the buffer ratio will be described with reference to the flowchart of FIG. This flow is called at a cycle such as 1 second for each LDEV (logical volume).
  • the microprocessor 121 may calculate all LDEVs at a certain period, or may calculate when the I / O target LDEV has not been updated for 1 second or the like at the time of I / O processing.
  • the microprocessor 121 refers to the hit rate table 250 for each volume using the target LDEV number (logical volume number) as a key, obtains the hit rate from the number of I / Os and the number of hits, and uses the MP number of its own as an MP operation rate table 380, the MP operation rate is obtained, and the buffer transfer rate calculation table 470 is referred to using the hit rate and the MP operation rate as keys, and the buffer transfer rate is obtained (S942).
  • the microprocessor 121 updates the buffer transfer ratio column of the LDEV number (logical volume number) in the buffer transfer ratio table 480 with the buffer transfer ratio stopped in S942 (S943), and ends this process (S944).
  • the write process may perform buffer staging determination, or may adopt a method of caching all data in a normal cache area.
  • the eighth embodiment of the invention it is possible to efficiently use a cache area by selecting whether to perform caching or transfer using a job buffer according to a predetermined condition.
  • the performance of the storage system is improved by reducing the overhead of the processor that performs data caching.
  • the processor efficiently uses the cache area by selecting whether to perform caching or transfer using a job buffer according to a predetermined condition.
  • the performance of the storage system is improved by reducing the overhead of the processor that performs data caching.
  • the buffer in the same management system as the cache slot, it is possible to efficiently use the memory with a low OVH and high temporal followability as compared with a method of separately managing the buffer and the cache slot. .
  • cache LRU Least Recently Used
  • the cache slot is replaced and managed by the LRU algorithm (710).
  • the replacement of the LRU algorithm is an algorithm in which the oldest accessed entry is replaced when a new entry is secured.
  • the cache slot having the oldest access time is replaced in order to secure a new cache slot.
  • SLOT number 720 indicates a unique number of each cache slot.
  • the LRU pointer 730 points to the cache slot used immediately before.
  • the SLOT number of the slot used immediately before the SLOT number s1 is s2, and the SLOT number of the slot used immediately before the SLOT number s2 is s3.
  • An MRU (Most Recently Used) pointer 740 points to the cache slot used immediately after. This is the SLOT number s2 of the slot used immediately after the SLOT number s3, and the SLOT number of the slot used immediately after the SLOT number s2 is s1. That is, it is shown that the SLOT numbers s3, s2, and s1 are used in this order.
  • unused job numbers are replaced by the MRU algorithm (720).
  • the replacement of the MRU algorithm is an algorithm in which the most recently accessed entry is replaced when a new entry is secured.
  • the job number 820 corresponds to the job number 432.
  • the LRU pointer 830 indicates the job number used immediately before, and the MRU pointer 840 indicates the job number used immediately after. That is, the job numbers j3, j2, and j1 are used in this order.
  • assign MRU job number j0 (850) When assigning a job number to process I / O, assign MRU job number j0 (850), and when I / O ends and return the job number, return MRU of MRU job number j0 (850). Return to the pointer (840).
  • the slot 751 having the LDEV number and the slot number 720 associated with the LBA 750 in the LDEV is used like the slots of the SLOT numbers s1 and s3.
  • the volume capacity to be accessed is larger than the expected cache capacity of the present embodiment, that is, if the host I / O access pattern is such that the user data cache is not reused, a new one will be provided for each host I / O.
  • the LRU slot s0 To secure a slot, the LRU slot s0 must be deleted from the cache directory 310 and the secured slot must be connected to the cache directory.
  • Each PM / SM cache directory must be updated twice per I / O.
  • the slot 821 having the SLOT number 720 associated with the job number 820 is used like the slot of the SLOT number s2 associated with the job number s2.
  • the same job number can be reused, that is, a slot associated with the job number can also be reused. This eliminates the need to update the cache directory even in the case of a host I / O access pattern in which the user data cache is not reused. Thus, processor overhead is reduced.
  • the MRU algorithm is used for free management of jobs to increase the probability of using the same job number and to improve the usage efficiency of the cache memory.
  • the use presence / absence column 432 of the job management table 430 is searched from the top.
  • the method may be used because the reuse probability is high and the above-described effect can be obtained.
  • the above-described configurations, functions, processing units, processing means, etc. may be partially or wholly realized by hardware designed by, for example, an integrated circuit.
  • Information such as programs, tables, and files that realize each function is stored in a non-volatile semiconductor memory, a hard disk drive, a storage device such as an SSD (Solid State Drive), or a computer-readable information such as an IC card, SD card, or DVD. It can be stored on a temporary data storage medium.
  • control information is represented by a plurality of tables, but the control information used by the present invention does not depend on the data structure.
  • the control information can be expressed by a data structure such as a database, a list, or a queue.
  • expressions such as an identifier, a name, and an ID can be replaced with each other.
  • a CPU, a microprocessor, or a group of a plurality of microprocessors that are processors executes a predetermined process by operating according to a program. Accordingly, in the present embodiment, the description with the processor as the subject may be an explanation with the program as the subject, and the processing executed by the processor is processing performed by the apparatus and system in which the processor is mounted.

Abstract

In a storage system of one example, a memory stores control information indicative of whether requested data is stored in a cache memory, and management information for managing the use status of a process used in processing a write or read request. A processor allocates an unused process for the management information to a read request. If, on the basis of the control information and a first identifier of a region of a logical volume designated by the read request, the intended data of the read request is determined not to be in the cache, the processor stores the first identifier and an identifier of a region reserved on the cache in association with each other as control information if the class of a part of a plurality of physical storage volumes constituting the logical volume is a first class. If the class of the part is a second class, the processor stores a second identifier of the allocated unused process and an identifier of a region reserved on the cache in association with each other as control information, and stores data read out from the part in the region reserved on the cache.

Description

ストレージシステムStorage system
 本発明はストレージシステムに関し、特に、ストレージシステムの制御に関する。 The present invention relates to a storage system, and more particularly to control of a storage system.
 国際公開第2010/131373号パンフレット(特許文献1)は、各ボリュームのI/O担当プロセッサが、共有メモリ上のデータキャッシング制御情報をローカルメモリへキャッシング(制御キャッシング)することで、ストレージシステムを高性能化する技術を開示している。 International Publication No. 2010/131373 pamphlet (Patent Document 1) describes that a processor in charge of I / O of each volume caches data caching control information on a shared memory to a local memory (control caching), thereby increasing the storage system. A technique for improving performance is disclosed.
 プロセッサは、ローカルメモリの制御情報を更新する時、共有メモリの制御情報も同期して更新する。これにより、障害が起きたプロセッサから担当を引き継いだ他のプロセッサは、共有メモリから最新のデータキャッシング制御情報を取得することができ、キャッシュヒット率低下によるストレージシステムの性能低下、を抑止することができる。 When the processor updates the control information of the local memory, the processor also updates the control information of the shared memory synchronously. As a result, other processors that take over responsibility from the failed processor can acquire the latest data caching control information from the shared memory, and can suppress the performance degradation of the storage system due to the cache hit rate decline. it can.
 この他、ストレージシステムでは、不揮発性メディアからユーザデータをキャッシュメモリにキャッシングすることでストレージシステムを高性能化する、データキャッシングが広く利用されている。 In addition, data caching, which enhances the performance of storage systems by caching user data from nonvolatile media into cache memory, is widely used in storage systems.
国際公開第2010/131373号パンフレットInternational Publication No. 2010/131373 Pamphlet
 しかし、性能向上が目的である共有メモリにおける制御情報の更新が、アクセス対象である共有メモリとアクセスを制御するプロセッサのオーバヘッドを増加させている。性能向上が目的であるデータキャッシングが、アクセス対象であるキャッシュメモリとアクセスを制御するプロセッサのオーバヘッドを増加させている。特に、ユーザデータを格納するメディアがソリッドステートディスク(SSD)のように高速な読み出しが可能な記憶媒体である場合は、キャッシュすることによる読み出し時間の短縮効果に対する、キャッシュすることによる制御情報の更新の処理時間の増加分の比率が大きくなる。 However, the update of the control information in the shared memory whose purpose is to improve performance is increasing the overhead of the shared memory to be accessed and the processor controlling the access. Data caching, whose purpose is to improve performance, is increasing the overhead of the cache memory to be accessed and the processor controlling the access. In particular, when the medium for storing user data is a storage medium capable of high-speed reading such as a solid state disk (SSD), the control information is updated by caching against the effect of shortening the reading time by caching. The ratio of the increase in processing time increases.
 本発明の一態様のストレージシステムは、制御プログラムが動作するプロセッサと、複数の論理ボリュームにストレージリソースを提供する複数の第1種または第2種の種類の物理ストレージボリュームと、前記プロセッサに接続され、前記複数の物理ストレージボリュームに格納されたデータの一部を格納するキャッシュメモリと、前記プロセッサに接続されたメモリであって、ホストからのライト又はリード要求の対象データが前記キャッシュメモリに格納されているかを示すキャッシュ制御情報と、前記ライト又はリード要求を処理するために使用される複数のプロセスの使用状況を管理するプロセス管理情報と、を格納するメモリとを有する。前記プロセッサは、前記ホストから前記論理ボリュームのいずれかの領域を指定した前記リード要求を受信すると、前記プロセス管理情報で管理されている複数のプロセスの内、未使用のプロセスを前記リード要求に割当て、前記リード要求で指定された前記論理ボリュームの領域を特定する第1の識別子及び前記キャッシュ制御情報に基づき、前記リード要求の対象データがキャッシュメモリにあるかを判定し、前記対象データが前記キャッシュメモリにないと判定した場合、前記リード要求が指定する論理ボリュームを構成する前記複数の物理ストレージボリュームの一部が前記第1種の種類の物理ストレージボリュームである場合は、前記第1の識別子と前記キャッシュメモリ上に確保した領域を特定する識別子とを対応付けて前記キャッシュ制御情報として前記メモリに格納し、前記リード要求が指定する論理ボリュームを構成する前記複数の物理ストレージボリュームの一部が第2種の種類の物理ストレージボリュームである場合は、前記リード要求に割り当てられた前記プロセスを特定する第2の識別子と前記キャッシュメモリ上に確保した領域を特定する識別子とを対応付けて前記キャッシュ制御情報として前記メモリに格納し、前記キャッシュメモリ上に確保した領域に、前記リード要求により前記複数の物理ストレージボリュームの一部から読み出されたデータを格納するように構成されている。 A storage system according to an aspect of the present invention is connected to a processor on which a control program operates, a plurality of first or second type physical storage volumes that provide storage resources to a plurality of logical volumes, and the processor. A cache memory for storing a part of data stored in the plurality of physical storage volumes, and a memory connected to the processor, wherein target data of a write or read request from a host is stored in the cache memory And a memory for storing process control information for managing the use status of a plurality of processes used for processing the write or read request. When the processor receives the read request designating any area of the logical volume from the host, the processor allocates an unused process among the plurality of processes managed by the process management information to the read request. And determining whether the target data of the read request is in a cache memory based on a first identifier that specifies an area of the logical volume specified by the read request and the cache control information, and the target data is the cache If it is determined that it is not in the memory, if a part of the plurality of physical storage volumes constituting the logical volume specified by the read request is the first type of physical storage volume, the first identifier and The key is associated with an identifier for specifying an area secured on the cache memory. Stored as cache control information in the memory and assigned to the read request when a part of the plurality of physical storage volumes constituting the logical volume specified by the read request is a second type of physical storage volume The second identifier for specifying the process specified and the identifier for specifying the area secured on the cache memory are associated with each other and stored in the memory as the cache control information. In the area secured on the cache memory, Data read from a part of the plurality of physical storage volumes in response to the read request is stored.
 本発明の一態様は、ストレージシステムにおけるオーバヘッドを低減しストレージシステムの性能を向上する。 One embodiment of the present invention reduces the overhead in the storage system and improves the performance of the storage system.
第1実施形態において、計算機システムの全体構成を模式的に示すブロック図である。In 1st Embodiment, it is a block diagram which shows typically the whole structure of a computer system. 第1実施形態において、ストレージシステムのローカルメモリに格納されている情報を示す図である。3 is a diagram illustrating information stored in a local memory of a storage system in the first embodiment. FIG. 第1実施形態において、ストレージシステムの共有メモリに格納されている情報を示す図である。FIG. 3 is a diagram illustrating information stored in a shared memory of the storage system in the first embodiment. 第1実施形態において、管理計算機の構成を模式的に示す図である。FIG. 3 is a diagram schematically illustrating a configuration of a management computer in the first embodiment. 第1実施形態において、性能ブースト機能有効化テーブルの一例を示す図である。In 1st Embodiment, it is a figure which shows an example of a performance boost function validation table. 第1実施形態において、ボリューム毎性能ブースト機能有効化テーブルの一例を示す図である。In 1st Embodiment, it is a figure which shows an example of the performance boost function activation table for every volume. 第1実施形態において、メディア種別テーブルの一例を示す図である。6 is a diagram illustrating an example of a media type table in the first embodiment. FIG. 第1実施形態において、RAIDレベルテーブルの一例を示す図である。In 1st Embodiment, it is a figure which shows an example of a RAID level table. 第1実施形態において、ボリュームヒット毎率テーブルの一例を示す図である。It is a figure which shows an example of a volume hit rate ratio table in 1st Embodiment. 第1実施形態において、ヒット率閾値テーブルの一例を示す図である。In 1st Embodiment, it is a figure which shows an example of a hit rate threshold value table. 第1実施形態において、MP稼働率テーブルの一例を示す図である。In 1st Embodiment, it is a figure which shows an example of MP operation rate table. 第1実施形態において、MP稼働率閾値テーブルの一例を示す図である。In 1st Embodiment, it is a figure which shows an example of MP operation rate threshold value table. 第1実施形態において、CM稼働率テーブルの一例を示す図である。In 1st Embodiment, it is a figure which shows an example of CM operation rate table. 第1実施形態において、CM稼働率閾値テーブルの一例を示す図である。In 1st Embodiment, it is a figure which shows an example of CM operation rate threshold value table. 第1実施形態におけるホストからのリードコマンドの処理のフローチャートである。It is a flowchart of the process of the read command from the host in 1st Embodiment. 第1実施形態におけるデータキャッシングに関する制御情報SM更新判定処理のフローチャートである。It is a flowchart of the control information SM update determination process regarding data caching in the first embodiment. 第1実施形態におけるホストデータキャッシング処理のフローチャートである。It is a flowchart of the host data caching process in 1st Embodiment. 第1実施形態における第1実施形態において、ホストからのライトコマンドの処理のフローチャートの一部である。7 is a part of a flowchart of processing of a write command from the host in the first embodiment. 第1実施形態における第1実施形態において、ホストからのライトコマンドの処理のフローチャートの他の一部である。12 is another part of the flowchart of the write command processing from the host in the first embodiment. 第1実施形態における管理計算機20からの設定処理のフローチャートである。It is a flowchart of the setting process from the management computer 20 in 1st Embodiment. 第1実施形態において、管理計算機における設定メニュー画面の一例を示す図である。In 1st Embodiment, it is a figure which shows an example of the setting menu screen in a management computer. 第1実施形態におけるメディア種別テーブルの更新処理のフローチャートである。It is a flowchart of the update process of the media type table in 1st Embodiment. 第1実施形態におけるCMPK稼働率更新処理のフローチャートである。It is a flowchart of the CMPK operating rate update process in 1st Embodiment. 第1実施形態におけるヒット率更新処理のフローチャートである。It is a flowchart of the hit rate update process in 1st Embodiment. 第1実施形態におけるMP稼働率更新処理のフローチャートである。It is a flowchart of the MP operation rate update process in 1st Embodiment. 第1実施形態におけるオーナ移動時SM更新処理のフローチャートである。It is a flowchart of SM update processing at the time of owner movement in the first embodiment. 第2実施形態において、ローカルメモリに格納されている情報を示す図である。It is a figure which shows the information stored in the local memory in 2nd Embodiment. 第2実施形態において、共有メモリに格納されている情報を示す図である。It is a figure which shows the information stored in the shared memory in 2nd Embodiment. 第2実施形態において、ダイナミックマッピングテーブルの一例を示す図である。In 2nd Embodiment, it is a figure which shows an example of a dynamic mapping table. 第2実施形態において、ページ毎モニタテーブルの一例を示す図である。In 2nd Embodiment, it is a figure which shows an example of the monitor table for every page. 第2実施形態において、ページ毎モニタ差分テーブルの一例を示す図である。In 2nd Embodiment, it is a figure which shows an example of the monitor difference table for every page. 第2実施形態におけるストレージ階層化機能モニタ更新処理のフローチャートである。It is a flowchart of the storage tiering function monitor update process in the second embodiment. 第3実施形態において、計算機システム全体構成を模式的に示す図である。In 3rd Embodiment, it is a figure which shows typically the whole computer system structure. 第3実施形態において、非同期リモートコピーを説明する図である。FIG. 10 is a diagram illustrating asynchronous remote copy in the third embodiment. 第3実施形態において、ローカルメモリに格納されている情報を示す図である。It is a figure which shows the information stored in the local memory in 3rd Embodiment. 第3実施形態において、共有メモリに格納されている情報を示す図である。It is a figure which shows the information stored in the shared memory in 3rd Embodiment. 第3実施形態において、LM非同期リモートコピーシーケンス番号管理テーブルの一例を示す図である。FIG. 20 is a diagram illustrating an example of an LM asynchronous remote copy sequence number management table in the third embodiment. 第3実施形態において、SM非同期リモートコピーシーケンス番号管理テーブルの一例を示す図である。FIG. 20 is a diagram illustrating an example of an SM asynchronous remote copy sequence number management table in the third embodiment. 第3実施形態における非同期リモートコピーシーケンス番号更新処理のフローチャートである。It is a flowchart of an asynchronous remote copy sequence number update process in the third embodiment. 第3実施形態におけるMPPK障害時非同期リモートコピーシーケンス番号回復処理のフローチャートである。It is a flowchart of the asynchronous remote copy sequence number recovery process at the time of MPPK failure in the third embodiment. 第4実施形態において、ローカルメモリに格納されている情報を示す図である。It is a figure which shows the information stored in the local memory in 4th Embodiment. 第4実施形態において、共有メモリに格納されている情報を示す図である。It is a figure which shows the information stored in the shared memory in 4th Embodiment. 第4実施形態において、LMローカルコピー差分管理テーブルの一例を示す図である。In 4th Embodiment, it is a figure which shows an example of the LM local copy difference management table. 第4実施形態において、SMローカルコピー差分管理テーブルの一例を示す図である。FIG. 20 is a diagram illustrating an example of an SM local copy difference management table in the fourth embodiment. 第4実施形態において、LMローカルコピー差分領域間引き動作管理テーブルの一例を示す図である。FIG. 20 is a diagram showing an example of an LM local copy difference area thinning operation management table in the fourth embodiment. 第4実施形態において、SMローカルコピー差分領域間引き動作管理テーブルの一例を示す図である。FIG. 20 is a diagram illustrating an example of an SM local copy difference area thinning operation management table in the fourth embodiment. 第4実施形態における非同期ローカルコピー差分管理情報更新処理のフローチャートである。It is a flowchart of the asynchronous local copy difference management information update process in 4th Embodiment. 第4実施形態におけるMPPK障害時ローカルコピー差分コピー処理のフローチャートである。It is a flowchart of the local copy difference copy process at the time of MPPK failure in 4th Embodiment. 第4実施形態において、管理計算機における設定メニュー画面の一例を示す図である。In 4th Embodiment, it is a figure which shows an example of the setting menu screen in a management computer. 第5実施形態において、計算機システムの全体構成を模式的に示す図である。In 5th Embodiment, it is a figure which shows typically the whole structure of a computer system. 第5実施形態において、ローカルメモリに格納されている情報を示す図である。It is a figure which shows the information stored in the local memory in 5th Embodiment. 第5実施形態において、Xパス稼働率テーブルの一例を示す図である。In 5th Embodiment, it is a figure which shows an example of an X path utilization rate table. 第5実施形態において、Xパス稼働率閾値テーブルの一例を示す図である。In 5th Embodiment, it is a figure which shows an example of the X path utilization rate threshold value table. 第5実施形態におけるXパスを考慮したデータキャッシングに関する制御情報SM更新判定処理のフローチャートである。It is a flowchart of the control information SM update determination process regarding data caching in consideration of the X path in the fifth embodiment. 第5実施形態におけるXパス稼働率更新処理のフローチャートである。It is a flowchart of the X path operation rate update process in 5th Embodiment. 第6実施形態において、計算機システムの全体構成を模式的に示す図である。In a 6th embodiment, it is a figure showing typically the whole computer system composition. 第6実施形態において、ローカルメモリに格納されている情報を示す図である。It is a figure which shows the information stored in the local memory in 6th Embodiment. 第6実施形態において、MP稼働率テーブルの一例を示す図である。In 6th Embodiment, it is a figure which shows an example of MP operation rate table. 第6実施形態において、MP稼働率閾値テーブルの一例を示す図である。In 6th Embodiment, it is a figure which shows an example of MP operation rate threshold value table. 第6実施形態において、共有メモリ領域管理テーブルの一例を示す図である。FIG. 20 is a diagram illustrating an example of a shared memory area management table in the sixth embodiment. 第6実施形態におけるデータキャッシングに関する制御情報SM更新判定処理のフローチャートの一部である。It is a part of flowchart of the control information SM update determination process regarding data caching in 6th Embodiment. 第6実施形態におけるデータキャッシングに関する制御情報SM更新判定処理のフローチャートの他の一部である。It is another one part of the flowchart of the control information SM update determination process regarding data caching in 6th Embodiment. 第6実施形態におけるMP稼働率更新処理のフローチャートである。It is a flowchart of the MP operation rate update process in 6th Embodiment. 第7実施形態において、ローカルメモリに格納されている情報を示す図である。It is a figure which shows the information stored in the local memory in 7th Embodiment. 第7実施形態において、レスポンステーブルの一例を示す図である。In 7th Embodiment, it is a figure which shows an example of a response table. 第7実施形態において、CM利用閾値テーブルの一例を示す図である。In 7th Embodiment, it is a figure which shows an example of CM utilization threshold value table. 第7実施形態におけるヒット率更新処理のフローチャートである。It is a flowchart of the hit rate update process in 7th Embodiment. 第1実施形態において、ローカルメモリに格納されている情報を示す図である。It is a figure which shows the information stored in the local memory in 1st Embodiment. 第1実施形態において、CM非経由転送比率算出テーブルの一例を示す図である。6 is a diagram illustrating an example of a CM bypass transfer ratio calculation table in the first embodiment. FIG. 第1実施形態において、CM非経由転送比率テーブルの一例を示す図である。FIG. 6 is a diagram illustrating an example of a CM bypass transfer ratio table in the first embodiment. 第1実施形態において、ホストからのリードコマンドの処理のフローチャートである。4 is a flowchart of processing of a read command from a host in the first embodiment. 第1実施形態において、ホストデータキャッシング判定処理のフローチャートである。4 is a flowchart of host data caching determination processing in the first embodiment. 第1実施形態において、CM非経由転送比率算出処理のフローチャートである。6 is a flowchart of a CM bypass transfer ratio calculation process in the first embodiment. 第8実施形態において、ローカルメモリに格納されている情報を示す図である。It is a figure which shows the information stored in the local memory in 8th Embodiment. 第8実施形態において、ジョブ管理テーブルの一例を示す図である。FIG. 20 is a diagram illustrating an example of a job management table in the eighth embodiment. 第8実施形態において、ジョブバッファアドレステーブルの一例を示す図である。FIG. 20 is a diagram illustrating an example of a job buffer address table in the eighth embodiment. 第8実施形態において、バッファ転送比率算出テーブルの一例を示す図である。FIG. 20 is a diagram illustrating an example of a buffer transfer ratio calculation table in the eighth embodiment. 第8実施形態において、バッファ転送比率テーブルの一例を示す図である。FIG. 20 is a diagram illustrating an example of a buffer transfer ratio table in the eighth embodiment. 第8実施形態におけるホストからのリードコマンドの処理のフローチャートの一部である。It is a part of flowchart of the process of the read command from the host in 8th Embodiment. 第8実施形態におけるホストからのリードコマンドの処理のフローチャートの他の一部である。It is another part of the flowchart of the process of the read command from the host in 8th Embodiment. 第8実施形態におけるバッファ転送判定処理のフローチャートである。It is a flowchart of the buffer transfer determination process in 8th Embodiment. 第8実施形態におけるバッファ比率算出処理のフローチャートである。It is a flowchart of the buffer ratio calculation process in 8th Embodiment. 第8実施形態におけるキャッシュスロットとジョブ番号のLRUリプレース管理の一例を示す図である。It is a figure which shows an example of the LRU replacement management of the cache slot and job number in 8th Embodiment.
 本発明は、ストレージシステムの性能を向上するための技術に関する。以下、添付図面を参照して本発明の実施形態を説明する。説明の明確化のため、以下の記載及び図面の詳細は、適宜、省略及び簡略化がなされており、必要に応じて重複説明は省略されている。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではない。 The present invention relates to a technique for improving the performance of a storage system. Embodiments of the present invention will be described below with reference to the accompanying drawings. For clarity of explanation, the following description and the details of the drawings are omitted and simplified as appropriate, and redundant descriptions are omitted as necessary. This embodiment is merely an example for realizing the present invention, and does not limit the technical scope of the present invention.
第1実施形態
 本実施形態のストレージシステムは、それぞれが異なるボリュームの入出力(I/O)を担当するプロセッサを含む。各プロセッサは、ローカルメモリが割り当てられている。本実施形態のストレージシステムは、異なるボリュームを担当する複数のプロセッサがアクセス可能な共有メモリを有する。ローカルメモリ及び共有メモリは、典型的には揮発性半導体メモリである。
First Embodiment The storage system of the present embodiment includes processors that are responsible for input / output (I / O) of different volumes. Each processor is assigned local memory. The storage system of this embodiment has a shared memory that can be accessed by a plurality of processors in charge of different volumes. Local memory and shared memory are typically volatile semiconductor memories.
 プロセッサが担当するボリュームのデータキャッシング制御情報は、当該プロセッサのローカルメモリに格納されている(制御データキャッシング)。さらに、共有メモリは、当該ボリュームのデータキャッシング制御情報を格納する。 The data caching control information of the volume handled by the processor is stored in the local memory of the processor (control data caching). Further, the shared memory stores data caching control information for the volume.
 プロセッサは、ローカルメモリ上のキャッシング制御情報を参照及び更新して、担当ボリュームのデータキャッシング制御を行う。これにより、データキャッシング制御の処理を高速化することができる。 The processor refers to and updates the caching control information on the local memory, and performs data caching control of the assigned volume. As a result, the data caching control process can be speeded up.
 上述のように、共有メモリは、異なるボリュームを担当する複数のプロセッサがアクセスすることができる。いずれかのボリュームの担当プロセッサについて障害が発生した場合、他のプロセッサがその担当を引き継ぎ、共有メモリから対応するデータキャッシング制御情報を自身のローカルメモリにロードする。上記他のプロセッサは、共有メモリから取得したデータキャッシング制御情報を使用して、引き継いだボリュームのデータキャッシングを制御する。 As described above, the shared memory can be accessed by a plurality of processors in charge of different volumes. When a failure occurs in the processor in charge of any volume, the other processor takes over the charge and loads the corresponding data caching control information from the shared memory into its own local memory. The other processor uses the data caching control information acquired from the shared memory to control data caching of the inherited volume.
 本実施形態において、プロセッサは、予め定められている条件に従って、ローカルメモリにおけるキャッシング制御情報の更新を、共有メモリにおける制御情報に反映するか否かを決定する。ローカルメモリにおける制御情報の更新において必要な更新のみを共有メモリにおける制御情報に反映することで、プロセッサと共有メモリの通信におけるオーバヘッドを低減し、ストレージシステムの性能を向上することができる。 In this embodiment, the processor determines whether or not to update the update of the caching control information in the local memory to the control information in the shared memory according to a predetermined condition. By reflecting only the update necessary for updating the control information in the local memory in the control information in the shared memory, the overhead in communication between the processor and the shared memory can be reduced, and the performance of the storage system can be improved.
 さらに、本実施形態のストレージシステムは、リードデータ及びライトデータのキャッシングの有無を、予め定められている条件に従って決定する。リードデータ及びライトデータを選択的にキャッシングすることで、キャッシュ領域を効率的に利用し、さらに、キャッシュメモリ及びデータキャッシングを行うプロセッサのオーバヘッドを低減することで、ストレージシステムの性能を向上する。 Furthermore, the storage system of this embodiment determines whether or not the read data and write data are cached according to a predetermined condition. By selectively caching read data and write data, the cache area is efficiently used, and further, the overhead of the processor that performs cache memory and data caching is reduced, thereby improving the performance of the storage system.
 以下において、図1から図25を参照して本実施形態を具体的に説明する。図1は、本実施形態のストレージシステム10、データ処理及び演算を行うホスト計算機180及びストレージシステム10を管理する管理計算機20含む、計算機システムの一例を示す。計算機システムは、複数のホスト計算機180を含むことができる。 Hereinafter, the present embodiment will be specifically described with reference to FIGS. 1 to 25. FIG. 1 shows an example of a computer system including the storage system 10 of this embodiment, a host computer 180 that performs data processing and operations, and a management computer 20 that manages the storage system 10. The computer system can include a plurality of host computers 180.
 ストレージシステム10とホスト計算機180とは、データネットワーク190を介して互いに接続される。データネットワーク190は、例えば、SAN(Storage Area Network)である。データネットワーク190は、IPネットワーク若しくはその他のいかなる種類のデータ通信用のネットワークであってもよい。 The storage system 10 and the host computer 180 are connected to each other via the data network 190. The data network 190 is, for example, a SAN (Storage Area Network). The data network 190 may be an IP network or any other type of data communication network.
 ストレージシステム10、ホスト計算機180及び管理計算機20は、管理ネットワーク(不図示)を介して互いに接続される。管理ネットワークは、例えば、IPネットワークである。管理ネットワークは、SAN若しくはその他のいかなる種類のネットワークであってもよい。データネットワーク190と管理ネットワークとが同一のネットワークであってもよい。 The storage system 10, the host computer 180, and the management computer 20 are connected to each other via a management network (not shown). The management network is, for example, an IP network. The management network may be a SAN or any other type of network. The data network 190 and the management network may be the same network.
 ストレージシステム10は、複数の記憶ドライブ170を収容している。記憶ドライブ170は、不揮発性の磁気ディスクを有するハードディスクドライブ(HDD)、不揮発半導体メモリ(例えばフラッシュメモリ)を搭載したSolid State Drive(SSD)を含む。記憶ドライブ170は、ホスト計算機180から送られたデータ(ユーザデータ)を格納する。複数の記憶ドライブ170がRAID演算によるデータの冗長化を行うことで、1つの記憶ドライブ170に障害が発生した場合のデータ消失を防ぐことができる。 The storage system 10 accommodates a plurality of storage drives 170. The storage drive 170 includes a hard disk drive (HDD) having a nonvolatile magnetic disk and a solid state drive (SSD) equipped with a nonvolatile semiconductor memory (for example, a flash memory). The storage drive 170 stores data (user data) sent from the host computer 180. Since the plurality of storage drives 170 perform data redundancy by RAID operation, data loss when a failure occurs in one storage drive 170 can be prevented.
 ストレージシステム10は、ホスト計算機180と接続するためのフロントエンドパッケージ(FEPK)100、記憶ドライブ170と接続するためのバックエンドパッケージ(BEPK)140、キャッシュメモリを搭載するキャッシュメモリパッケージ(CMPK)130、内部処理を行うマイクロプロセッサを搭載するマイクロプロセッサパッケージ(MPPK)120、及びそれらを接続する内部ネットワーク150を有する。図1に示すように、本例のストレージシステム10は、複数のFEPK100、複数のBEPK140、複数のCMPK130、そして複数のMPPK120を含む。 The storage system 10 includes a front-end package (FEPK) 100 for connecting to the host computer 180, a back-end package (BEPK) 140 for connecting to the storage drive 170, a cache memory package (CMPK) 130 for mounting cache memory, It has a microprocessor package (MPPK) 120 on which a microprocessor that performs internal processing is mounted, and an internal network 150 that connects them. As shown in FIG. 1, the storage system 10 of this example includes a plurality of FEPKs 100, a plurality of BEPKs 140, a plurality of CMPKs 130, and a plurality of MPPKs 120.
 各FEPK100は、ホスト計算機180との接続を行うためのインタフェース101、ストレージシステム10内のデータ転送を行うための転送回路112を基板上に有する。インタフェース101は複数のポートを含むことができ、各ポートがホスト計算機180と接続することができる。インタフェース101は、ホスト計算機180とストレージシステム10との間の通信に用いられるプロトコル、例えばFibre Channel Over Ethernet(FCoE)を、内部ネットワーク150で用いられるプロトコル、例えばPCI-Expressに変換する。 Each FEPK 100 has an interface 101 for connecting to the host computer 180 and a transfer circuit 112 for transferring data in the storage system 10 on the substrate. The interface 101 can include a plurality of ports, and each port can be connected to the host computer 180. The interface 101 converts a protocol used for communication between the host computer 180 and the storage system 10, for example, Fiber Channel Over Ethernet (FCoE), into a protocol used for the internal network 150, for example, PCI-Express.
 各BEPK140は、ドライブ170と接続するためにインタフェース141、ストレージシステム10内のデータ転送を行うための転送回路142を基板上に有する。インタフェース141は複数ポートを含むことができ、各ポートがドライブ170と接続することができる。インタフェース141は、記憶ドライブ170との通信に用いられるプロトコル、例えばFCを、内部ネットワーク150で用いられるプロトコルに変換する。 Each BEPK 140 has an interface 141 for connecting to the drive 170 and a transfer circuit 142 for transferring data in the storage system 10 on the substrate. The interface 141 can include a plurality of ports, and each port can be connected to the drive 170. The interface 141 converts a protocol used for communication with the storage drive 170, for example, FC, into a protocol used in the internal network 150.
 各CMPK130は、ホスト計算機180から読み書きされるユーザデータを一時的に格納するキャッシュメモリ131及び1又は複数のMPPK120が扱う制御情報を格納する共有メモリ(SM)132を基板上に有する。異なるボリュームを担当する複数のMPPK120(のマイクロプロセッサ)が、共有メモリ132にアクセスすることができる。MPPK120が扱うデータやプログラムは、ストレージシステム10内の不揮発性メモリ(不図示)又は記憶ドライブ170からロードされる。関連づけられるキャッシュメモリ131と共有メモリ132とは、別の基板上(パッケージ内)に実装されていてもよい。 Each CMPK 130 has a cache memory 131 that temporarily stores user data read and written from the host computer 180 and a shared memory (SM) 132 that stores control information handled by one or more MPPKs 120 on the substrate. A plurality of MPPKs 120 (microprocessors) in charge of different volumes can access the shared memory 132. Data and programs handled by the MPPK 120 are loaded from a nonvolatile memory (not shown) or the storage drive 170 in the storage system 10. The associated cache memory 131 and shared memory 132 may be mounted on different substrates (in a package).
 各MPPK120は、1以上のマイクロプロセッサ121、ローカルメモリ(LM)122及びそれらを接続するバス123を有する。本例は複数のマイクロプロセッサ121が実装されている。マイクロプロセッサ121の数は1つでもよい。複数のマイクロプロセッサ121を一つのプロセッサと見ることができる。ローカルメモリ122は、マイクロプロセッサ121が実行するプログラム及びマイクロプロセッサ121が使用する制御情報を格納する。 Each MPPK 120 has one or more microprocessors 121, a local memory (LM) 122, and a bus 123 connecting them. In this example, a plurality of microprocessors 121 are mounted. The number of microprocessors 121 may be one. A plurality of microprocessors 121 can be viewed as one processor. The local memory 122 stores programs executed by the microprocessor 121 and control information used by the microprocessor 121.
 上述のように、一つの共有メモリ132は、MPPK120が扱う制御情報を格納する。MPPK120は、共有メモリ132から、自身が必要とする制御情報を自身のローカルメモリ122に格納する(制御キャッシング)。これにより、マイクロプロセッサ121による制御情報への高速アクセスが実現され、ストレージシステム10の性能を向上することができる。 As described above, one shared memory 132 stores control information handled by the MPPK 120. The MPPK 120 stores control information required by itself from the shared memory 132 in its own local memory 122 (control caching). Thereby, high speed access to the control information by the microprocessor 121 is realized, and the performance of the storage system 10 can be improved.
 マイクロプロセッサ121は、ローカルメモリ122の制御情報を更新すると、その更新を、必要により、共有メモリ132上の制御情報に反映する。本実施形態の特徴の一つは、この更新の制御である。マイクロプロセッサ121は、予め定められた条件が満たされている場合に、ローカルメモリ122における制御情報の更新を共有メモリ132における制御情報に反映する。 When the microprocessor 121 updates the control information in the local memory 122, the microprocessor 121 reflects the update in the control information on the shared memory 132 as necessary. One of the features of this embodiment is the control of this update. The microprocessor 121 reflects the update of the control information in the local memory 122 on the control information in the shared memory 132 when a predetermined condition is satisfied.
 本構成例において、マイクロプロセッサ121には、ストレージシステム10がホスト計算機180に提供するボリュームの担当が割り当てられる。マイクロプロセッサ121に割り当てられているローカルメモリ122及び共有メモリ132が、上記マイクロプロセッサがI/Oを担当するボリュームのデータキャッシング制御情報を格納する。 In this configuration example, the microprocessor 121 is assigned the charge of the volume that the storage system 10 provides to the host computer 180. The local memory 122 and the shared memory 132 allocated to the microprocessor 121 store data caching control information of the volume for which the microprocessor is responsible for I / O.
 なお、本発明を適用できる制御情報は、共有メモリ132における制御情報を更新しない場合でもMP障害時にホストデータロストにつながらない制御情報全般である。本実施形態におけるデータキャッシング制御情報以外の制御情報の例は、他の実施形態で説明する。本実施形態はマイクロプロセッサがボリュームを担当する例を記載しているが、担当マイクロプロセッサが割り当てられる対象はボリュームに限定されず、担当マイクロプロセッサは制御情報毎に存在してもよい。 Note that control information to which the present invention can be applied is control information in general that does not lead to host data lost when an MP failure occurs even when the control information in the shared memory 132 is not updated. Examples of control information other than the data caching control information in this embodiment will be described in other embodiments. Although the present embodiment describes an example in which the microprocessor is responsible for the volume, the target to which the responsible microprocessor is assigned is not limited to the volume, and the responsible microprocessor may exist for each control information.
 図2は、ローカルメモリ122内に格納されている情報を示すブロック図である。ローカルメモリ122は、性能ブースト機能有効化テーブル210、ボリューム毎性能ブースト機能有効化テーブル220、メディア種別テーブル230、RAIDレベルテーブル240、ボリューム毎ヒット率テーブル250、ヒット率閾値テーブル260、マイクロプロセッサ(MP)稼働率テーブル270を格納する。 FIG. 2 is a block diagram showing information stored in the local memory 122. The local memory 122 includes a performance boost function enabling table 210, a per-volume performance boost function enabling table 220, a media type table 230, a RAID level table 240, a per-volume hit rate table 250, a hit rate threshold table 260, a microprocessor (MP ) The operating rate table 270 is stored.
 ローカルメモリ122は、さらに、マイクロプロセッサ(MP)稼働率閾値テーブル280、キャッシュメモリ(CM)稼働率テーブル290、キャッシュメモリ(CM)稼働率閾値テーブル300を含む。例えば、マイクロプロセッサ121は、記憶ドライブ170その他のストレージシステム10内の不揮発性記憶領域からこれらテーブルの少なくとも一部を取得して、ローカルメモリ122に格納し、いくつかのテーブルを新たに作成される。これらテーブルの詳細な説明は後述する。 The local memory 122 further includes a microprocessor (MP) operating rate threshold table 280, a cache memory (CM) operating rate table 290, and a cache memory (CM) operating rate threshold table 300. For example, the microprocessor 121 obtains at least a part of these tables from the storage drive 170 and other non-volatile storage areas in the storage system 10, stores them in the local memory 122, and creates some new tables. . Details of these tables will be described later.
 ローカルメモリ122は、さらに、キャッシュディレクトリ310を格納している。図3は、共有メモリ132内のキャッシュディレクトリ510を示すブロック図である。マイクロプロセッサ121は、共有メモリ132からキャッシュディレクトリ510を自身のローカルメモリ122にキャッシュし、ローカルメモリ122上のキャッシュディレクトリ310の更新を、必要により、共有メモリ132のキャッシュディレクトリ510に反映する。キャッシュディレクトリ510は、キャッシュディレクトリ310のバックアップデータである。 The local memory 122 further stores a cache directory 310. FIG. 3 is a block diagram showing the cache directory 510 in the shared memory 132. The microprocessor 121 caches the cache directory 510 from the shared memory 132 in its own local memory 122 and reflects the update of the cache directory 310 on the local memory 122 in the cache directory 510 of the shared memory 132 as necessary. The cache directory 510 is backup data for the cache directory 310.
 マイクロプロセッサ121は、ホスト計算機180からリードコマンドを受信すると、そのローカルメモリ122のキャッシュディレクトリ310を参照して、対象データがキャッシュメモリ131にキャッシュされているか(キャッシュヒットか)を決定する。このように、キャッシュディレクトリ310は、キャッシュメモリ131に格納されているキャッシュデータを検索するための情報を与える。 When the microprocessor 121 receives a read command from the host computer 180, the microprocessor 121 refers to the cache directory 310 of the local memory 122 and determines whether the target data is cached in the cache memory 131 (cache hit). As described above, the cache directory 310 provides information for searching the cache data stored in the cache memory 131.
 キャッシュディレクトリ310は、参照テーブルGRPP、GRPT1、GRPT2、管理テーブルとしてのスロットコントロールブロック(SLCB)から構成されている。参照テーブルGRPP、GRPT1、GRPT2は、キャッシュセグメントを検索するときにマイクロプロセッサ121により参照されるテーブルであって、ディレクトリ構造を有する。参照テーブルGRPPが最上位に位置し、参照テーブルGRPT2が最下位に位置している。上位のテーブルは、次のテーブルのポインタを含む。GRPT2には、SLCBへのポインタが含まれている。 The cache directory 310 includes reference tables GRPP, GRPT1, GRPT2, and a slot control block (SLCB) as a management table. The reference tables GRPP, GRPT1, and GRPT2 are tables that are referred to by the microprocessor 121 when searching for a cache segment, and have a directory structure. The reference table GRPP is located at the top and the reference table GRPT2 is located at the bottom. The upper table includes a pointer to the next table. GRPT2 includes a pointer to the SLCB.
 SLCBは、キャッシュ管理の最小単位であるセグメント関する制御情報を管理するテーブルであって、キャッシュメモリ131上にリードコマンドの指定データが存在するか否か、キャッシュされているデータのキャッシュメモリ131上のアドレス情報等、が格納されている。 The SLCB is a table for managing control information related to a segment, which is a minimum unit of cache management, and whether or not read command designation data exists on the cache memory 131, and whether cached data on the cache memory 131 is present. Address information and the like are stored.
 1つのスロットには、1又は複数のセグメントを関連付けることができる。1つのセグメントには、例えば、64KBのデータを格納することができる。キャッシュ管理の最小単位はセグメントであるが、キャッシュをスロット単位で管理してもよい。典型的には、ダーティデータ(物理ディスクへの書込み前の状態)と、クリーンデータ(物理ディスクへの書込み後の状態)の各状態間の遷移は、スロット単位で行われる。キャッシュ領域のリザーブ及びリリースは、スロット単位又はセグメント単位で行われる。 • One or more segments can be associated with one slot. For example, 64 KB of data can be stored in one segment. The minimum unit of cache management is a segment, but the cache may be managed in slot units. Typically, the transition between the dirty data (the state before writing to the physical disk) and the clean data (the state after writing to the physical disk) is performed in units of slots. The cache area is reserved and released in slot units or segment units.
 ホスト計算機180からリードアクセスがあった場合は、マイクロプロセッサ121は、それに含まれる論理ブロックアドレス(LBA)に基づいて、各階層テーブルを順番に辿ることにより、要求されたデータがキャッシュメモリ131に存在するか、存在する場合にはそのアドレスを知ることができる。 When there is a read access from the host computer 180, the microprocessor 121 sequentially traces each hierarchical table based on the logical block address (LBA) included therein, so that the requested data exists in the cache memory 131. Or if it exists, it knows its address.
 要求されたデータがキャッシュメモリ131に存在する場合、マイクロプロセッサ121は、そのデータをホスト計算機180に送信する。要求されたデータがキャッシュメモリ131に存在しない場合、マイクロプロセッサ121は、ホスト計算機180が要求しているデータを記憶ドライブ170から読み出して、キャッシュ領域上の1つまたは複数のスロットに格納する。ライトデータも同様にキャッシュされる。なお、キャッシュディレクトリを使用したキャッシュデータの検索は広く知られた技術であり、ここでの詳細な説明を省略する。 When the requested data exists in the cache memory 131, the microprocessor 121 transmits the data to the host computer 180. If the requested data does not exist in the cache memory 131, the microprocessor 121 reads out the data requested by the host computer 180 from the storage drive 170 and stores it in one or more slots on the cache area. Write data is also cached in the same way. Note that retrieval of cache data using a cache directory is a well-known technique, and a detailed description thereof is omitted here.
 図4は、管理計算機20の構成を模式的に示すブロック図である。管理計算機20は、入力インタフェース22、入力デバイス28、表示インタフェース23、表示デバイス29、CPU26、通信インタフェース21、メモリ24、HDD25を備える。入力デバイス28の典型的な例は、キーボード及びポインタデバイスであるが、これらと異なるデバイスでもよい。表示デバイス29は、典型的には、液晶表示装置である。 FIG. 4 is a block diagram schematically showing the configuration of the management computer 20. The management computer 20 includes an input interface 22, an input device 28, a display interface 23, a display device 29, a CPU 26, a communication interface 21, a memory 24, and an HDD 25. Typical examples of the input device 28 are a keyboard and a pointer device, but other devices may be used. The display device 29 is typically a liquid crystal display device.
 管理者(ユーザ)は、表示デバイス29によって処理結果を視認しながら、入力デバイス28によって必要なデータを入力する。管理者が入力する情報及び表示デバイス29による表示例は、後述する。図1の計算機システムにおいて、管理システムは一つの管理計算機20で構成されているが、管理システムは、管理計算機20に加え、管理コンソールを含むことができる。管理コンソールは、入力デバイス及び表示デバイスを含み、ネットワークを介して管理計算機20に接続する。 The administrator (user) inputs necessary data with the input device 28 while visually confirming the processing result with the display device 29. Information input by the administrator and a display example by the display device 29 will be described later. In the computer system of FIG. 1, the management system is composed of one management computer 20, but the management system can include a management console in addition to the management computer 20. The management console includes an input device and a display device, and is connected to the management computer 20 via a network.
 管理者は管理コンソールから管理計算機20にアクセスし、管理計算機20に処理を指示するとともに、管理コンソールに管理計算機20の処理結果を取得、表示させる。管理システムは、それぞれが管理計算機20の機能の一部又は全部を備える複数の計算機を含むこともできる。CPU26は、メモリ24に格納されたプログラムを実行するプロセッサである。通信I/F21は、管理ネットワークとのインタフェースであって、システム管理のためにホスト計算機180及びストレージシステム10と、データや制御命令の送受信を行う。 The administrator accesses the management computer 20 from the management console, instructs the management computer 20 to process, and acquires and displays the processing result of the management computer 20 on the management console. The management system can also include a plurality of computers each having part or all of the functions of the management computer 20. The CPU 26 is a processor that executes a program stored in the memory 24. The communication I / F 21 is an interface with a management network, and exchanges data and control commands with the host computer 180 and the storage system 10 for system management.
 図5は、性能ブースト機能有効化テーブル210の構成例を示している。性能ブースト機能有効化テーブル210は、性能ブースト機能有効フラグのカラム211を有する。性能ブースト機能有効フラグは、ストレージシステム10全体の性能ブースト機能がアクティブであるか否かを示す。このフラグが1である場合、ストレージシステム10全体の性能ブースト機能がアクティブである。 FIG. 5 shows a configuration example of the performance boost function enabling table 210. The performance boost function enablement table 210 has a column 211 of performance boost function enable flags. The performance boost function valid flag indicates whether or not the performance boost function of the entire storage system 10 is active. When this flag is 1, the performance boost function of the entire storage system 10 is active.
 本実施形態において、性能ブースト機能は、ローカルメモリ122に格納された制御情報更新の共有メモリ132への反映(バックアップ)の制御及びデータキャッシング制御の機能である。この機能については後述する。性能ブースト機能有効化テーブル210のデータは、例えば、管理者が管理計算機20から設定する。 In the present embodiment, the performance boost function is a function of reflecting (backup) control data updates stored in the local memory 122 to the shared memory 132 and data caching control. This function will be described later. The data of the performance boost function enabling table 210 is set by the administrator from the management computer 20, for example.
 図6は、ボリューム毎性能ブースト機能有効化テーブル220の構成例を示している。ボリューム毎性能ブースト機能有効化テーブルテーブル220は、ボリューム毎の性能ブースト機能を管理する。ボリューム毎性能ブースト機能有効化テーブル220は、論理ボリューム番号のカラム221及び性能ブースト機能有効化フラグのカラム222を有する。論理ボリューム番号は、論理ボリュームの識別子である。 FIG. 6 shows a configuration example of the performance boost function enabling table 220 for each volume. The performance boost function enabling table for each volume table 220 manages the performance boost function for each volume. The per-volume performance boost function enabling table 220 has a logical volume number column 221 and a performance boost function enabling flag column 222. The logical volume number is an identifier of the logical volume.
 性能ブースト機能有効化フラグが1である場合、そのボリュームの性能ブースト機能がアクティブであることを示す。システム全体及びボリュームの性能ブースト機能有効化フラグの双方がON(1)である場合、そのボリュームの性能ブースト機能が有効化される。このように、ボリューム毎に性能ブースト機能を管理、制御することで、ボリューム特性に応じた制御が実現される。ボリューム毎性能ブースト機能有効化テーブル220のデータは、例えば、管理者が管理計算機20から設定する。 When the performance boost function enable flag is 1, it indicates that the performance boost function for the volume is active. When both the entire system and the volume performance boost function enable flag are ON (1), the performance boost function for the volume is enabled. In this way, control corresponding to volume characteristics is realized by managing and controlling the performance boost function for each volume. The data of the performance boost function enabling table for each volume 220 is set by the administrator from the management computer 20, for example.
 図7は、メディア種別テーブル230の構成例を示している。メディア種別テーブル230は、RAIDグループのメディア種別を管理する。本実施形態において、1又は複数の記憶ドライブ170が提供する記憶領域及びそのインタフェースを含む構成をメディアと呼ぶ。メディア種別テーブル230は、RAIDグループ番号のカラム231及びメディア種別のカラム232を含む。 FIG. 7 shows a configuration example of the media type table 230. The media type table 230 manages the media type of the RAID group. In the present embodiment, a configuration including a storage area provided by one or a plurality of storage drives 170 and an interface thereof is called a medium. The media type table 230 includes a RAID group number column 231 and a media type column 232.
 RAIDグループ番号は、RAIDグループを一意に識別する識別子である。なお、本明細書において、対象を識別する識別情報のために、識別子、名、ID等の表現を用いることができ、これらは置換可能である。メディア種別テーブル230のデータは、例えば、管理者が管理計算機20から設定する。 The RAID group number is an identifier that uniquely identifies a RAID group. In this specification, expressions such as an identifier, a name, and an ID can be used for identification information for identifying a target, and these can be replaced. The data of the media type table 230 is set by the administrator from the management computer 20, for example.
 図8は、RAIDレベルテーブル240の構成例を示している。RAIDレベルテーブル240は、RAIDグループのRAIDレベルを管理する。RAIDグループ番号のカラム241及びRAIDレベルのカラム242を有する。RAIDレベルテーブル240のデータは、例えば、管理者が管理計算機20から設定する。 FIG. 8 shows a configuration example of the RAID level table 240. The RAID level table 240 manages the RAID level of the RAID group. It has a RAID group number column 241 and a RAID level column 242. The data of the RAID level table 240 is set by the administrator from the management computer 20, for example.
 図9は、ボリューム毎ヒット率テーブル250の構成例を示している。ボリューム毎ヒット率テーブル250は、各ボリュームのキャッシュヒット率を管理する。ボリューム毎ヒット率テーブル250は、論理ボリューム番号のカラム251、ヒット率のカラム252、I/O数のカラム253、ヒット数のカラム254、低ヒット率フラグのカラム255を有する。 FIG. 9 shows a configuration example of the hit rate table for each volume 250. The volume hit rate table 250 manages the cache hit rate of each volume. The per-volume hit rate table 250 includes a logical volume number column 251, a hit rate column 252, an I / O count column 253, a hit count column 254, and a low hit rate flag column 255.
 I/O数は、論理ボリュームに対して発行されたリードコマンド数である。ヒット数は、キャッシュヒットしたリードコマンド数である。低ヒット率フラグが1である場合、そのエントリのヒット率が、規定閾値未満であることを示す。プロセッサ121は、ボリュームへのリードアクセス及びキャッシュヒット数をカウントし、ボリューム毎ヒット率テーブル250の各フィールのデータを更新する。 The number of I / Os is the number of read commands issued to the logical volume. The number of hits is the number of read commands having a cache hit. When the low hit rate flag is 1, it indicates that the hit rate of the entry is less than the specified threshold. The processor 121 counts the read access to the volume and the number of cache hits, and updates the data of each field of the hit rate table for each volume 250.
 なお、マイクロプロセッサ121がヒット率をモニタする単位は、論理ボリュームより小さい単位でもよい。例えば、仮想ボリューム機能や階層化機能で使用されるページを単位としてもよい。後述するデータキャッシング制御及びキャッシング制御情報の更新制御は、ページ単位で行う。 The unit for the microprocessor 121 to monitor the hit rate may be a unit smaller than the logical volume. For example, a page used in the virtual volume function or the hierarchization function may be used as a unit. Data caching control and caching control information update control, which will be described later, are performed in units of pages.
 ヒット率の算出は、リードキャッシュのヒット率の他にライトキャッシュのヒット率を含んでもよい。マイクロプロセッサ121は、リードキャッシュのヒット率とライトデータのヒット率を個別に管理してもよい。例えば、マイクロプロセッサ121は、後述のリードキャッシング制御及びライトキャシング制御において、それぞれのヒット率を参照する。 The calculation of the hit rate may include the write cache hit rate in addition to the read cache hit rate. The microprocessor 121 may individually manage the read cache hit rate and the write data hit rate. For example, the microprocessor 121 refers to the respective hit rates in read caching control and write caching control described later.
 図10は、ヒット率閾値テーブル260の構成例を示している。ヒット率閾値テーブル260は、ヒット率閾値のカラム261を有する。ヒット率がここに登録されている閾値以下である場合、ボリューム毎ヒット率テーブル250におけるそのエントリの低ヒット率フラグが1(ONフラグ)に設定される。ヒット率閾値は、例えば、管理者が管理計算機20から設定する。 FIG. 10 shows a configuration example of the hit rate threshold table 260. The hit rate threshold table 260 has a hit rate threshold column 261. When the hit rate is equal to or less than the threshold value registered here, the low hit rate flag of the entry in the per-volume hit rate table 250 is set to 1 (ON flag). The hit rate threshold is set by the administrator from the management computer 20, for example.
 図11は、マイクロプロセッサ121の稼働率を管理するMP稼働率テーブル270の構成例を示している。MP稼働率は、単位時間内のマイクロプロセッサ121の処理時間であり、マイクロプロセッサの負荷を表す。MP稼働率テーブル270は、マイクロプロセッサ番号のカラム271、稼働率のカラム272、過負荷判定フラグのカラム273、稼働時間のカラム274を有する。マイクロプロセッサ番号は、ストレージシステム10内で一意にマイクロプロセッサを識別する。 FIG. 11 shows a configuration example of the MP operating rate table 270 that manages the operating rate of the microprocessor 121. The MP operating rate is the processing time of the microprocessor 121 within a unit time, and represents the load on the microprocessor. The MP operating rate table 270 includes a microprocessor number column 271, an operating rate column 272, an overload determination flag column 273, and an operating time column 274. The microprocessor number uniquely identifies the microprocessor within the storage system 10.
 各マイクロプロセッサ121は、自身の稼働状況を監視し、稼働率及び稼働時間の値を、自身のエントリの稼働率のカラム272及び稼働時間のフィールドに格納する。稼働時間は、単位時間(本例で1秒)当たりの稼働時間である。稼働率は、単位時間で稼働時間を割った値である。マイクロプロセッサ121は、自己の稼働率を規定の閾値と比較し、その閾値以上である場合に、自己エントリの過負荷判定フラグのフィールの値を1(ONフラグ)に設定する。 Each microprocessor 121 monitors its own operating status, and stores values of operating rate and operating time in the operating rate column 272 and operating time field of its own entry. The operating time is an operating time per unit time (1 second in this example). The operating rate is a value obtained by dividing the operating time by the unit time. The microprocessor 121 compares its own operating rate with a prescribed threshold value, and if it is equal to or greater than the threshold value, sets the value of the self-entry overload determination flag field to 1 (ON flag).
 図12は、上記閾値を格納するカラム281を有する、MP稼働率閾値テーブル280の構成例を示している。本例において、MP稼働率閾値は、全てのマイクロプロセッサに共通であるが、異なる閾値を使用してもよい。 FIG. 12 shows a configuration example of the MP operating rate threshold value table 280 having the column 281 for storing the threshold values. In this example, the MP operating rate threshold is common to all the microprocessors, but a different threshold may be used.
 図13は、キャッシュメモリの稼働率を管理する、CM稼働率テーブル290の構成例を示している。CM稼働率は、単に時間内のキャッシュメモリ131へのアクセス時間である。CM稼働率テーブル290は、CMPK番号のカラム291、稼働率のカラム292、過負荷判定フラグのカラム293を有する。CMPK番号は、ストレージシステム10内のCMPKの識別子である。 FIG. 13 shows a configuration example of the CM operation rate table 290 that manages the operation rate of the cache memory. The CM operation rate is simply an access time to the cache memory 131 within the time. The CM operation rate table 290 includes a CMPK number column 291, an operation rate column 292, and an overload determination flag column 293. The CMPK number is an identifier of CMPK in the storage system 10.
 マイクロプロセッサ121は、CMPK130上のコントローラから、その稼働率の値を取得し、稼働率のカラム292の該当フィールドにそれを格納する。マイクロプロセッサ121は、取得した稼働率の値を規定閾値と比較し、稼働率の値が閾値以上である場合に、そのエントリの過負荷判定フラグのフィールドに1(ONフラグ)を設定する。 The microprocessor 121 acquires the value of the operating rate from the controller on the CMPK 130 and stores it in the corresponding field of the operating rate column 292. The microprocessor 121 compares the obtained operating rate value with a prescribed threshold value, and when the operating rate value is equal to or greater than the threshold value, sets 1 (ON flag) in the overload determination flag field of the entry.
 図14は、上記閾値を格納するCM稼働率閾値テーブル300の構成例を示している。本例において、CM稼働率閾値は、全てのCMPKに共通であるが、異なる閾値を使用してもよい。 FIG. 14 shows a configuration example of a CM operation rate threshold value table 300 that stores the threshold values. In this example, the CM operation rate threshold is common to all CMPKs, but a different threshold may be used.
 図15のフローチャートを参照して、ストレージシステム10がホスト計算機180から受けたリードコマンドに対して行う処理を説明する。ホスト計算機180からのリードコマンドを受けた(S101)マイクロプロセッサ121は、リードコマンドが示す論理ボリューム(LDEV(Logovcal Device)とも呼ぶ)に、自身がアクセス権を有するか判定する(S102)。アクセス権を有していない場合(S102:NO)、そのマイクロプロセッサ121は、アクセス権を有するMPPK120にリードコマンドを転送する(S103)。 Referring to the flowchart of FIG. 15, processing performed by the storage system 10 for the read command received from the host computer 180 will be described. Receiving the read command from the host computer 180 (S101), the microprocessor 121 determines whether it has access right to the logical volume (also referred to as LDEV (Logo Device)) indicated by the read command (S102). When the access right is not possessed (S102: NO), the microprocessor 121 transfers the read command to the MPPK 120 having the access right (S103).
 マイクロプロセッサ121がアクセス権を有する場合(S102:YES)、そのマイクロプロセッサ121は、同一MPPK120上のローカルメモリ122内で、キャッシュディレクトリ310を検索する(S104)。リードコマンドが指定するアドレス(データ)が見つかった場合(S105:YES)、マイクロプロセッサ121は、キャッシュディレクトリ310の情報に従って、キャッシュメモリ131からリードデータを読み出し、ホスト計算機180に送信する(S106)。 When the microprocessor 121 has an access right (S102: YES), the microprocessor 121 searches the cache directory 310 in the local memory 122 on the same MPPK 120 (S104). When the address (data) specified by the read command is found (S105: YES), the microprocessor 121 reads the read data from the cache memory 131 according to the information in the cache directory 310 and transmits it to the host computer 180 (S106).
 リードコマンドが指定するアドレス(データ)が見つからなかった(キャッシュミス)場合(S105:NO)、マイクロプロセッサ121は、ローカルメモリ122の未キャッシュフラグを確認する(S107)。未キャッシュフラグは、共有メモリ132のキャッシュディレクト値510の全てのデータが、ローカルメモリ122にキャッシュされているかを示すフラグであり、ローカルメモリ122内に格納されている。一部のデータが読み込まれていない場合、その値はONである。例えば、障害フェイルオーバ直後で共有メモリ132からローカルメモリ122へ制御情報が読み込まれてない場合、未キャッシュフラグはONである。 If the address (data) specified by the read command is not found (cache miss) (S105: NO), the microprocessor 121 checks the uncached flag in the local memory 122 (S107). The uncached flag is a flag indicating whether all the data of the cache directory value 510 of the shared memory 132 is cached in the local memory 122, and is stored in the local memory 122. When some data is not read, the value is ON. For example, if the control information is not read from the shared memory 132 to the local memory 122 immediately after the failure failover, the uncached flag is ON.
 未キャッシュフラグがONである場合(S107:YES)、共有メモリ132のキャッシュディレクト値510の一部データがキャッシュされていない。マイクロプロセッサ121は、CMPK130のコントローラを介して、共有メモリ132からローカルメモリ122へキャッシュディレクトリ(制御情報)を転送する(S108)。 When the uncached flag is ON (S107: YES), some data of the cache directory value 510 of the shared memory 132 is not cached. The microprocessor 121 transfers the cache directory (control information) from the shared memory 132 to the local memory 122 via the controller of the CMPK 130 (S108).
 マイクロプロセッサ121は、ローカルメモリ122内で、キャッシュディレクトリ310を検索する(S109)。リードコマンドが指定するデータが見つかった場合(S110:YES)、マイクロプロセッサ121は、キャッシュディレクトリ310の情報に従って、キャッシュメモリ131からリードデータを読み出し、ホスト計算機180に送信する(S111)。 The microprocessor 121 searches the cache directory 310 in the local memory 122 (S109). When the data specified by the read command is found (S110: YES), the microprocessor 121 reads the read data from the cache memory 131 according to the information in the cache directory 310 and transmits it to the host computer 180 (S111).
 キャッシュミスの場合(S110:NO)又は未キャッシュフラグがOFFの場合(S107:NO)、マイクロプロセッサ121は、リードデータのためのスロットをキャッシュメモリ131に確保し、さらに、ローカルメモリ122のキャッシュディレクトリ310を更新する(S112)。 In the case of a cache miss (S110: NO) or the uncached flag is OFF (S107: NO), the microprocessor 121 secures a slot for read data in the cache memory 131, and further, the cache directory of the local memory 122. 310 is updated (S112).
 マイクロプロセッサ121は、データキャッシングに関する制御情報であるキャッシュディレクトリ310の更新を、共有メモリ132のデータ510に反映するか否かを判定する(S113)。この判定の具体的な方法については後に詳述する。共有メモリ132の制御情報の更新を行うと判定した場合(S114:YES)、マイクロプロセッサ121は、共有メモリ132のキャッシュディレクトリ510を更新して(S115)、次のステップS116に進む。 The microprocessor 121 determines whether or not the update of the cache directory 310, which is control information related to data caching, is reflected in the data 510 of the shared memory 132 (S113). A specific method of this determination will be described in detail later. If it is determined that the control information of the shared memory 132 is to be updated (S114: YES), the microprocessor 121 updates the cache directory 510 of the shared memory 132 (S115), and proceeds to the next step S116.
 共有メモリ132の制御情報の更新を行わないと判定した場合(S114:NO)、マイクロプロセッサ121は、共有メモリ132の制御情報を更新することなく、ステップS116に進む。ステップS116において、マイクロプロセッサ121は、リードデータ(ホストデータ)をキャッシングするか否かを判定する。この判定方法については後述する。 If it is determined not to update the control information of the shared memory 132 (S114: NO), the microprocessor 121 proceeds to step S116 without updating the control information of the shared memory 132. In step S116, the microprocessor 121 determines whether to cache read data (host data). This determination method will be described later.
 リードデータをキャッシュメモリ131に格納してからホスト計算機180に送信すると判定した場合(S117:YES)、マイクロプロセッサ121は、BEPK140及びCMPK130により、記憶ドライブ170(永続メディア)からリードデータを読み出し、キャッシュメモリ131上の確保したスロットに格納する。その後、マイクロプロセッサ121は、そのキャッシュデータを、CMPK130及びFEPK100により、ホスト計算機180に送信する(S118)。 When it is determined that the read data is stored in the cache memory 131 and then transmitted to the host computer 180 (S117: YES), the microprocessor 121 reads the read data from the storage drive 170 (permanent medium) using the BEPK 140 and CMPK 130, and caches the read data. Store in the reserved slot on the memory 131. Thereafter, the microprocessor 121 transmits the cache data to the host computer 180 by the CMPK 130 and the FEPK 100 (S118).
 リードデータをキャッシュすることなくホスト計算機180に送信すると判定した場合(S117:YES)、マイクロプロセッサ121は、BEPK140及びFEPK100により、ドライブ170(永続メディア)から読みだしたリードデータを、CMPK130を介することなくホスト計算機180に転送する(S119)。 If it is determined that the read data is transmitted to the host computer 180 without being cached (S117: YES), the microprocessor 121 causes the BEPK 140 and FEPK 100 to read the read data read from the drive 170 (permanent medium) via the CMPK 130. And transfer to the host computer 180 (S119).
 図16を参照して、図15のフローチャートにおける、共有メモリ132内のデータキャッシング制御情報の更新についての判定(S113)を説明する。マイクロプロセッサ121は、このステップS113を開始し、リードコマンドの指定する論理ボリュームの性能ブースト機能がONであるか否かを、性能ブースト機能有効化テーブル210及びボリューム毎性能ブースト機能有効化テーブル220を参照して判定する(S122)。一方のテーブルが、性能ブースト機能がOFFであることを示す場合、当該ボリュームの性能ブースト機能はOFFである。 Referring to FIG. 16, the determination (S113) regarding the update of the data caching control information in the shared memory 132 in the flowchart of FIG. The microprocessor 121 starts this step S113, and determines whether or not the performance boost function of the logical volume designated by the read command is ON, by using the performance boost function enable table 210 and the per-volume performance boost function enable table 220. This is determined with reference to (S122). If one table indicates that the performance boost function is OFF, the performance boost function for the volume is OFF.
 当該論理ボリュームの性能ブースト機能がONではない場合(S122:NO)、マイクロプロセッサ121は、共有メモリ132の制御情報(キャッシュディレクトリ)を更新することを決定する(S128)。当該論理ボリュームの性能ブースト機能がONである場合(S122:YES)、マイクロプロセッサ121は、次に、指定データが格納されているRAIDグループのメディア種別がSSDであるか否かを、RAIDグループ番号をキーとしてメディア種別テーブル230を参照し、判定する(S123)。 If the performance boost function of the logical volume is not ON (S122: NO), the microprocessor 121 determines to update the control information (cache directory) of the shared memory 132 (S128). When the performance boost function of the logical volume is ON (S122: YES), the microprocessor 121 next determines whether or not the media type of the RAID group in which the designated data is stored is SSD. With reference to the media type table 230, a determination is made (S123).
 マイクロプロセッサ121は、ローカルメモリ122内に、各ボリュームの構成管理情報を有しており、各ボリュームの各領域がいずれのRAIDグループに属するかをその情報を参照して知ることができる。 The microprocessor 121 has configuration management information for each volume in the local memory 122, and can know which RAID group each area of each volume belongs to by referring to that information.
 メディア種別がSSDである場合(S123:YES)、マイクロプロセッサ121は、共有メモリ132の制御情報(キャッシュディレクトリ)を更新しないことを決定する(S127)。そのメディア種別がSSDではない場合(S123:NO)、マイクロプロセッサ121は、次に、指定データが格納されている論理ボリュームの低ヒット率フラグがONであるか否かを、論理ボリューム番号をキーとしてボリューム毎ヒット率テーブル250を参照し、判定する(S124)。 If the media type is SSD (S123: YES), the microprocessor 121 determines not to update the control information (cache directory) of the shared memory 132 (S127). If the media type is not SSD (S123: NO), the microprocessor 121 next uses the logical volume number as a key to determine whether the low hit rate flag of the logical volume in which the designated data is stored is ON. And determining by referring to the hit rate table for each volume 250 (S124).
 その低ヒット率フラグがONである場合(S124:YES)、マイクロプロセッサ121は、共有メモリ132の制御情報(キャッシュディレクトリ)を更新しないことを決定する(S127)。低ヒット率フラグがOFFである場合(S124:NO)、マイクロプロセッサ121は、次に、自身の過負荷フラグがONであるか否かを、マイクロプロセッサ番号をキーとしてMP稼働率テーブル270を参照し、判定する(S125)。 If the low hit rate flag is ON (S124: YES), the microprocessor 121 determines not to update the control information (cache directory) of the shared memory 132 (S127). When the low hit rate flag is OFF (S124: NO), the microprocessor 121 next refers to the MP operation rate table 270 as to whether or not its own overload flag is ON using the microprocessor number as a key. Then, the determination is made (S125).
 過負荷フラグがONである場合(S125:YES)、マイクロプロセッサ121は、共有メモリ132の制御情報(キャッシュディレクトリ)を更新しないことを決定する(S127)。過負荷フラグがOFFである場合(S125:NO)、マイクロプロセッサ121は、次に、アクセス先のCMPK130の過負荷フラグがONであるか否かを、CMPK番号をキーとしてCM稼働率テーブル290を参照し、判定する(S126)。 If the overload flag is ON (S125: YES), the microprocessor 121 determines not to update the control information (cache directory) of the shared memory 132 (S127). When the overload flag is OFF (S125: NO), the microprocessor 121 next determines whether the overload flag of the access destination CMPK 130 is ON or not by using the CM operation rate table 290 using the CMPK number as a key. Refer to and determine (S126).
 過負荷フラグがONである場合(S126:YES)、マイクロプロセッサ121は、共有メモリ132の制御情報(キャッシュディレクトリ)を更新しないことを決定する(S127)。過負荷フラグがOFFである場合(S126:NO)、マイクロプロセッサ121は、共有メモリ132の制御情報(キャッシュディレクトリ)を更新することを決定する(S128)。 When the overload flag is ON (S126: YES), the microprocessor 121 determines not to update the control information (cache directory) of the shared memory 132 (S127). When the overload flag is OFF (S126: NO), the microprocessor 121 determines to update the control information (cache directory) of the shared memory 132 (S128).
 このように、規定条件を満たす場合、マイクロプロセッサ121は、ローカルメモリ122でのキャッシュディレクトリ310の更新を、共有メモリ132のキャッシュディレクトリ510に反映しないことを決定する。これにより、マイクロプロセッサ121及びCMPK130の負荷を低減し、システムのスループットを向上することができる。 As described above, when the specified condition is satisfied, the microprocessor 121 determines that the update of the cache directory 310 in the local memory 122 is not reflected in the cache directory 510 of the shared memory 132. As a result, the load on the microprocessor 121 and the CMPK 130 can be reduced and the throughput of the system can be improved.
 ローカルメモリの制御情報(本例ではキャッシュディレクトリ)の更新を共有メモリ132に反映していないことは、その制御情報の担当MPPK120に障害が発生した場合に問題となる。通常動作において、マイクロプロセッサ121は、自身のローカルメモリ122を参照するため、更新された最新の制御情報を参照することができる。一方、担当MPPK120に障害が発生した場合、他のMPPK120が担当を引き継ぐ(フェイルオーバ)。 The fact that the update of the control information (cache directory in this example) of the local memory is not reflected in the shared memory 132 becomes a problem when a failure occurs in the MPPK 120 in charge of the control information. In normal operation, the microprocessor 121 refers to its own local memory 122 and can therefore refer to the latest updated control information. On the other hand, when a failure occurs in the assigned MPPK 120, another MPPK 120 takes over the assigned charge (failover).
 障害発生したMPPK120のローカルメモリ122上のデータは消失するため、引き継いだMPPK120(のマイクロプロセッサ121)は、共有メモリ132に格納されている古い制御情報しか得ることができない。そのため、共有メモリ132に格納されており、更新(共有メモリ132へのバックアップ)を省略することができるデータは、MPPK120の障害時にユーザデータロストにつながらない制御情報である。 Since the data on the local memory 122 of the MPPK 120 where the failure has occurred is lost, the succeeding MPPK 120 (the microprocessor 121) can obtain only the old control information stored in the shared memory 132. Therefore, data stored in the shared memory 132 and for which updating (backup to the shared memory 132) can be omitted is control information that does not lead to user data lost when the MPPK 120 fails.
 上記好ましい構成は、MPPK120で障害が発生した場合に影響が小さい共有メモリ132での更新を省略する。具体的には、キャッシュミスによりリードデータが読みだされる記憶ドライブ170がSSDである場合(S123:YES)、マイクロプロセッサ121は、共有メモリ132での更新を行わないことを決定する(S127)。 The above preferred configuration omits updating in the shared memory 132 that has a small effect when a failure occurs in the MPPK 120. Specifically, when the storage drive 170 from which read data is read due to a cache miss is an SSD (S123: YES), the microprocessor 121 determines not to update the shared memory 132 (S127). .
 MPPK120の障害により、SSDから読みだされた上記データがキャッシュされていることを示す情報が失われる。しかし、SSDは、他のメディア種別のドライブ170よりもアクセス性能が高く、失われた制御情報に起因するキャッシュミスの影響は小さく、MPPK120及びCMPK130のオーバヘッド低減によるシステム性能向上効果の方が大きい。 Due to failure of MPPK 120, information indicating that the data read from the SSD is cached is lost. However, the SSD has higher access performance than the drive 170 of other media types, the influence of cache miss due to lost control information is small, and the system performance improvement effect by reducing the overhead of MPPK120 and CMPK130 is greater.
 本構成においては、共有メモリ132での更新を省略するメディア種別はSSDであるが、この種別は、システム設計に依存する。システムに実装されるメディア(ドライブ)の種別は、SSD及びHDDに限らず、これらに加え又はこれらに代えて異なる種別のドライブを実装することができる。実装されている複数のメディア種別において、共有メモリ132での更新省略の条件を満たす種別は、設計に従って選択される。最もアクセス性能が高い種別を含む、1又は複数の他の種別よりもアクセス性能が高い種別が選択される。 In this configuration, the media type for which updating in the shared memory 132 is omitted is SSD, but this type depends on the system design. The types of media (drives) mounted in the system are not limited to SSDs and HDDs, and different types of drives can be mounted in addition to or instead of these. Among a plurality of installed media types, a type that satisfies the condition for omitting the update in the shared memory 132 is selected according to the design. A type having higher access performance than one or more other types including the type having the highest access performance is selected.
 本構成において、リードコマンド指定データを格納する論理ボリュームのキャッシュヒット率が低い場合(S124:YES)、マイクロプロセッサ121は、共有メモリ132での更新を行わないことを決定する(S127)。ヒット率が低いボリュームのデータのキャッシュ制御情報が失われても、そのボリュームのアクセス性能への影響は小さく、MPPK120及びCMPK130のオーバヘッド低減によるシステム性能向上効果の方が大きい。 In this configuration, when the cache hit rate of the logical volume storing the read command designation data is low (S124: YES), the microprocessor 121 determines not to update the shared memory 132 (S127). Even if the cache control information of data of a volume with a low hit rate is lost, the influence on the access performance of the volume is small, and the effect of improving the system performance by reducing the overhead of MPPK120 and CMPK130 is greater.
 本構成は、さらに、MPPK120及びCMPK130の現状負荷に基づいて、共有メモリ132での更新の有無を決定する(S125、S126)。MPPK120又はCMPK130の負荷が高い場合、共有メモリ132での更新を省略することによる性能向上の効果が大きい。 This configuration further determines whether to update the shared memory 132 based on the current loads of the MPPK 120 and the CMPK 130 (S125, S126). When the load on the MPPK 120 or the CMPK 130 is high, the effect of improving the performance by omitting the update in the shared memory 132 is great.
 このように、本構成は、対象ボリュームの性能ブースト機能がONであり、上記4つの条件のいずれかが満たされる場合、共有メモリ132でのキャッシュ制御情報の更新を省略する。マイクロプロセッサ121は、これらと異なる条件に基づき共有メモリ132での更新の有無を決定してもよい。マイクロプロセッサ121は、上記4条件のうち複数の条件が満たされることを、共有メモリ132での制御情報更新省略の条件としてもよい。 Thus, in this configuration, when the performance boost function of the target volume is ON and any of the above four conditions is satisfied, the update of the cache control information in the shared memory 132 is omitted. The microprocessor 121 may determine whether to update the shared memory 132 based on conditions different from these. The microprocessor 121 may set a condition for omitting control information update in the shared memory 132 that a plurality of conditions among the four conditions are satisfied.
 図17は、図15のフローチャートにおける、ホストデータ(リードデータ)キャッシシングについての判定(S116)のフローチャートを示している。本ステップのフローチャートは、図16に示すフローチャートと略同様である。従って、主にこれと異なる点について具体的に説明する。 FIG. 17 shows a flowchart of determination (S116) for host data (read data) caching in the flowchart of FIG. The flowchart of this step is substantially the same as the flowchart shown in FIG. Therefore, mainly the points different from this will be specifically described.
 図17において、ステップS132からステップS136は、それぞれ、図15のフローチャートにおけるステップ122からステップS126と同様である。ステップ137において、マイクロプロセッサ121は、記憶ドライブ170から読みだしたホストデータ(リードデータ)をキャッシュメモリ132に格納することなく、ホスト計算機180に送信することを決定する。リードデータをCMにキャッシングしない転送をCM非経由転送と呼ぶ。CM非経由転送は、BEPK140の転送回路142からFEPK110の転送回路112へリードデータを転送することにより実現される。具体的には、転送回路142内のDRAMなどの揮発メモリから転送回路112内の揮発メモリへの転送となる。 17, step S132 to step S136 are the same as step 122 to step S126 in the flowchart of FIG. In step 137, the microprocessor 121 determines to transmit the host data (read data) read from the storage drive 170 to the host computer 180 without storing it in the cache memory 132. Transfer in which read data is not cached in the CM is called non-CM transfer. Non-CM transfer is realized by transferring read data from the transfer circuit 142 of the BEPK 140 to the transfer circuit 112 of the FEPK 110. Specifically, the transfer is from a volatile memory such as a DRAM in the transfer circuit 142 to a volatile memory in the transfer circuit 112.
 一方、ステップS138において、マイクロプロセッサ121は、記憶ドライブ170から読みだしたホストデータをキャッシュメモリ132に格納する(キャッシュする)ことを決定する。 On the other hand, in step S138, the microprocessor 121 determines to store (cache) the host data read from the storage drive 170 in the cache memory 132.
 このように、リードデータを選択的にキャッシングすることで、キャッシュ領域を効率的に利用し、さらに、キャッシュメモリ及びデータキャッシングを行うプロセッサのオーバヘッドを低減することで、ストレージシステムの性能を向上する。特に記憶ドライブがSSDの場合、キャッシュすることによる読み出し時間の短縮効果に対する、キャッシュすることによる制御情報の更新の処理時間の増加分の比率が大きいので、キャッシング処理を省略することによる性能改善の効果が大きい。 Thus, by selectively caching read data, the cache area is efficiently used, and further, the overhead of the cache memory and the processor that performs data caching is reduced, thereby improving the performance of the storage system. In particular, when the storage drive is an SSD, the ratio of the increase in the processing time for updating control information by caching to the effect of shortening the reading time by caching is large, so the effect of performance improvement by omitting the caching process Is big.
 本例において、リードデータをキャッシュするか否かの判定条件は、キャッシュ制御情報の更新を共有メモリ132で行うか否かの判定条件と同一である。このように、リードデータキャッシングを制御することで、MPPK120及びCMPK130のオーバヘッド低減によりシステム性能を向上することができる。キャッシュ制御の判定条件と制御情報更新制御の判定条件とは、異なっていてもよい。 In this example, the condition for determining whether to cache read data is the same as the condition for determining whether to update the cache control information in the shared memory 132. Thus, by controlling read data caching, system performance can be improved by reducing the overhead of MPPK120 and CMPK130. The determination condition for the cache control and the determination condition for the control information update control may be different.
 次に、ホスト計算機180から受信したライトコマンドに対する処理を、図18A及び図18Bに示すフローチャートを参照して説明する。マイクロプロセッサ121は、ホスト計算機180からライトコマンドを受け(S141)、その指定アドレスのボリューム(LDEV)に、アクセス権を有するか否かを判定する(S142)。 Next, processing for the write command received from the host computer 180 will be described with reference to the flowcharts shown in FIGS. 18A and 18B. The microprocessor 121 receives a write command from the host computer 180 (S141), and determines whether or not it has an access right to the volume (LDEV) of the designated address (S142).
 そのマイクロプロセッサ121がアクセス権を有しない場合(S142:NO)、マイクロプロセッサ121は、他の担当MPPK120にライトコマンドを転送する(S143)。そのマイクロプロセッサ121がアクセス権を有している場合(S142:YES)、マイクロプロセッサ121は、同一基板上のローカルメモリ122内でキャッシュディレクトリ310を検索する(S144)。 When the microprocessor 121 does not have the access right (S142: NO), the microprocessor 121 transfers the write command to the other responsible MPPK 120 (S143). When the microprocessor 121 has an access right (S142: YES), the microprocessor 121 searches the cache directory 310 in the local memory 122 on the same substrate (S144).
 ライトコマンドが指定するアドレスが見つかった場合(S145:YES)、マイクロプロセッサ121は、キャッシュディレクトリ310の情報に従って、キャッシュメモリ131にライトデータを書き込み、ホスト計算機180にコマンド完了を通知する(S146)。 When the address specified by the write command is found (S145: YES), the microprocessor 121 writes the write data to the cache memory 131 according to the information in the cache directory 310 and notifies the host computer 180 of the completion of the command (S146).
 ライトコマンドが指定するアドレスが見つからなかった(キャッシュミス)場合(S145:NO)、マイクロプロセッサ121は、ローカルメモリ122への未キャッシュフラグを確認する(S147)。未キャッシュフラグがONである場合(S147:YES)、マイクロプロセッサ121は、CMPK130のコントローラを介して、共有メモリ132からローカルメモリ122へキャッシュディレクトリ(制御情報)を転送する(S148)。 When the address specified by the write command is not found (cache miss) (S145: NO), the microprocessor 121 checks the uncached flag to the local memory 122 (S147). When the uncached flag is ON (S147: YES), the microprocessor 121 transfers the cache directory (control information) from the shared memory 132 to the local memory 122 via the controller of the CMPK 130 (S148).
 マイクロプロセッサ121は、ローカルメモリ122内で、キャッシュディレクトリ310を検索する(S149)。ライトコマンドが指定するアドレスが見つかった場合(S150:YES)、マイクロプロセッサ121は、キャッシュディレクトリ310の情報に従って、キャッシュメモリ131にライトデータを書き込み、ホスト計算機180にコマンド完了を通知する(S151)。 The microprocessor 121 searches the cache directory 310 in the local memory 122 (S149). When the address specified by the write command is found (S150: YES), the microprocessor 121 writes the write data to the cache memory 131 according to the information in the cache directory 310, and notifies the host computer 180 of the completion of the command (S151).
 キャッシュミスの場合(S150:NO)又は未キャッシュフラグがOFFの場合(S147:NO)、マイクロプロセッサ121は、ライトデータのためのスロットをキャッシュメモリ131に確保し、さらに、ローカルメモリ122のキャッシュディレクトリ310を更新する(S152)。 In the case of a cache miss (S150: NO) or the uncached flag is OFF (S147: NO), the microprocessor 121 secures a slot for write data in the cache memory 131, and further, the cache directory of the local memory 122. 310 is updated (S152).
 マイクロプロセッサ121は、データキャッシングに関する制御情報であるキャッシュディレクトリ310の更新を、共有メモリ132のデータ510に反映するか否かを判定する(S153)。この判定の具体的な方法は、図15を参照して説明した方法と同様である。マイクロプロセッサ121は、さらに、ライトデータ(ホストデータ)をキャッシングするか否かを判定する(S154)。この判定方法は、図16を参照して説明した方法と同様である。 The microprocessor 121 determines whether or not the update of the cache directory 310, which is control information related to data caching, is reflected in the data 510 of the shared memory 132 (S153). A specific method of this determination is the same as the method described with reference to FIG. The microprocessor 121 further determines whether to cache write data (host data) (S154). This determination method is the same as the method described with reference to FIG.
 マイクロプロセッサ121がライトデータをキャッシュすると判定した場合(S155:YES)、マイクロプロセッサ121は、キャッシュメモリ131に新たに確保した領域にライトデータを書き込み、ホスト計算機180にコマンド完了を通知する(S156)。マイクロプロセッサ121は、ステップS154での判定結果に関わらず、ローカルメモリ122におけるキャッシュディレクトリ310の更新に同期して、共有メモリ132におけるキャッシュディレクトリ510を更新する。 If the microprocessor 121 determines that the write data is cached (S155: YES), the microprocessor 121 writes the write data to the newly secured area in the cache memory 131 and notifies the host computer 180 of the completion of the command (S156). . The microprocessor 121 updates the cache directory 510 in the shared memory 132 in synchronization with the update of the cache directory 310 in the local memory 122 regardless of the determination result in step S154.
 マイクロプロセッサ121がライトデータをキャッシュしないと判定した場合(S155:NO)、マイクロプロセッサ121は、ステップS153における判定結果に基づいて、共有メモリ132における制御情報の更新を行う又は省略する。マイクロプロセッサ121が、共有メモリ132におけるキャッシュ制御情報(キャッシュディレクトリ510)を更新すると判定した場合(S157:YES)、マイクロプロセッサ121は、ローカルメモリ122のキャッシュディレクトリ310の更新を、共有メモリ132におけるキャッシュディレクトリ510に反映し(S158)、次のステップS159に進む。 When the microprocessor 121 determines not to cache the write data (S155: NO), the microprocessor 121 updates or omits the control information in the shared memory 132 based on the determination result in step S153. When the microprocessor 121 determines to update the cache control information (cache directory 510) in the shared memory 132 (S157: YES), the microprocessor 121 updates the cache directory 310 in the local memory 122 to update the cache in the shared memory 132. This is reflected in the directory 510 (S158), and the process proceeds to the next step S159.
 マイクロプロセッサ121が、共有メモリ132におけるキャッシュ制御情報を更新しないと判定した場合(S157:NO)、マイクロプロセッサ121は、書き込み先のRAIDレベルを、RAIDレベルテーブル240を参照して特定する(S159)。そのRAIDレベルが1である場合(S159:YES)、マイクロプロセッサ121は、キャッシュメモリ131にライトデータを格納することなく、BEPK140により記憶ドライブ170にデータを書き込み、ホスト計算機180にコマンド完了を通知する(S160)。 When the microprocessor 121 determines not to update the cache control information in the shared memory 132 (S157: NO), the microprocessor 121 specifies the write-destination RAID level with reference to the RAID level table 240 (S159). . If the RAID level is 1 (S159: YES), the microprocessor 121 writes the data to the storage drive 170 by the BEPK 140 without storing the write data in the cache memory 131, and notifies the host computer 180 of the completion of the command. (S160).
 そのRAIDレベルが1と異なる場合(S159:NO)、マイクロプロセッサ121は、パリティを生成し、キャッシュメモリ131にライトデータを格納することなく、BEPK140により記憶ドライブ170にパリティ及びライトデータを書き込む。さらに、マイクロプロセッサ121はホスト計算機180にコマンド完了を通知する(S161)。 When the RAID level is different from 1 (S159: NO), the microprocessor 121 generates parity and writes the parity and write data to the storage drive 170 by the BEPK 140 without storing the write data in the cache memory 131. Further, the microprocessor 121 notifies the host computer 180 of command completion (S161).
 このように、本例において、ライトコマンドのハンドリングにおいては、共有メモリ132におけるキャッシュディレクトリ510の更新を省略するためには、キャッシュメモリ131へのライトデータの格納が省略されることが必要である。キャッシュされたライトデータのデステージ(ドライブ170への書き込み)前にそのキャッシュ制御情報が失われると、キャッシュメモリ131でそのライトデータを特定することができないからである。 Thus, in this example, in the write command handling, in order to omit the update of the cache directory 510 in the shared memory 132, the storage of the write data in the cache memory 131 needs to be omitted. This is because if the cache control information is lost before the cached write data is destaged (written to the drive 170), the cache memory 131 cannot identify the write data.
 上述のように、本例において、ステップS154におけるライトデータをキャッシュするか否かの判定条件は、図15におけるステップS116の判定条件と同一である。また、ステップS153におけるキャッシュ制御情報の更新を共有メモリ132で行うか否かの判定条件は、図15におけるステップS113の判定条件と同一である。これらは異なっていてもよい。 As described above, in this example, the determination condition for determining whether or not the write data is cached in step S154 is the same as the determination condition in step S116 in FIG. The determination condition for determining whether or not the cache control information is updated in the shared memory 132 in step S153 is the same as the determination condition in step S113 in FIG. These may be different.
 このように、ライトデータのキャッシング及びキャッシュ制御情報の更新を制御することによって、MPPK120及びCMPK130のオーバヘッドを低減し、ストレージシステム10の性能を向上することができる。なお、ライトデータをキャッシュしない場合は、パリティ生成を完了し、記憶ドライブにパリティ及びライトデータを書き込んだ後にホストにコマンド完了を通知する。また、SSDはリード性能よりもライト性能が劣る。このため、ライトコマンドの場合はキャッシングを全て行うという方式にしてもよい。この場合は、S154の判定を省略し、S156の処理へ移る。 As described above, by controlling the caching of the write data and the update of the cache control information, the overhead of the MPPK 120 and the CMPK 130 can be reduced and the performance of the storage system 10 can be improved. If the write data is not cached, the parity generation is completed, the parity and the write data are written to the storage drive, and then the command completion is notified to the host. Also, SSD has inferior write performance than read performance. For this reason, in the case of a write command, a method of performing all caching may be used. In this case, the determination in S154 is omitted, and the process proceeds to S156.
 次に、図15乃至図17で説明したリードコマンド処理の他の例を説明する。ここでは、主に図15乃至図17の実施形態と異なる点を説明する。図66は、ローカルメモリ122に格納されている制御情報を示している。CM非経由転送比率算出テーブル430、CM非経由転送比率テーブル440、図67はCM非経由転送比率算出テーブル430の一例を示し、図68はCM非経由転送比率テーブル440の一例を示す。 Next, another example of the read command processing described with reference to FIGS. 15 to 17 will be described. Here, differences from the embodiment of FIGS. 15 to 17 will be mainly described. FIG. 66 shows control information stored in the local memory 122. 67 shows an example of the CM bypass transfer ratio calculation table 430, FIG. 67 shows an example of the CM bypass transfer ratio calculation table 430, and FIG. 68 shows an example of the CM bypass transfer ratio table 440.
 図67は、CM非経由転送比率算出テーブル430の構成例を示している。CM非経由転送比率算出テーブル430は、論理ボリューム毎のキャッシュヒット率及びMP稼働率からCM非経由で転送する比率を算出するテーブルである。CM非経由転送比率算出テーブル430は、ヒット率のカラム431、マイクロプロセッサ稼働率のカラム432、CM非経由転送比率のカラム433を有する。 FIG. 67 shows a configuration example of the CM bypass transfer ratio calculation table 430. The CM non-transit transfer rate calculation table 430 is a table for calculating a rate of transfer without CM from the cache hit rate and the MP operating rate for each logical volume. The CM bypass transfer ratio calculation table 430 includes a hit ratio column 431, a microprocessor operating ratio column 432, and a CM bypass transfer ratio column 433.
 キャッシュヒットしないデータに対するリード処理のマイクロプロセッサOVHを減らす目的から、ヒット率が低い場合にCM非経由転送比率は高い値が設定され、マイクロプロセッサ稼働率が高い場合にCM非経由転送比率は高い値が設定される。 For the purpose of reducing the microprocessor OVH for read processing for data that does not hit the cache, a high value for the non-CM transfer rate is set when the hit rate is low, and a high value for the non-CM transfer rate when the microprocessor operating rate is high. Is set.
 CM非経由転送比率の下限は0であり、上限は99以下である。上限で99以下である理由は、100%CM非経由で転送する場合、ヒット率を計算できないためである。本例で用いるヒット率は、CM非経由を除いた場合のヒット率である。 The lower limit of the non-CM transfer ratio is 0 and the upper limit is 99 or less. The reason why the upper limit is 99 or less is that the hit rate cannot be calculated when transferring without 100% CM. The hit rate used in this example is a hit rate when CM non-passing is excluded.
 図68は、CM非経由転送比率テーブル440の構成例を示している。CM非経由転送比率テーブル440は、各論理ボリュームに対するリード処理においてCM非経由で転送する比率を管理するテーブルである。CM非経由転送比率テーブル440は、論理ボリューム番号のカラム441、CM非経由転送比率のカラム442を有する。 FIG. 68 shows a configuration example of the CM non-routed transfer ratio table 440. The CM non-transit transfer ratio table 440 is a table for managing the ratio of non-CM transfer in the read process for each logical volume. The CM bypass transfer ratio table 440 includes a logical volume number column 441 and a CM bypass transfer ratio column 442.
 本例におけるホスト計算機180から受信したリードコマンドに対する処理を、図69に示すフローチャートを参照して説明する。ホスト計算機180からのリードコマンドを受けた(S851)マイクロプロセッサ121は、リードコマンドが示すLDEVに、自身がアクセス権を有するか判定する(S852)。アクセス権を有していない場合(S852:NO)、そのマイクロプロセッサ121は、アクセス権を有するMPPK120にリードコマンドを転送する(S853)。 Processing for the read command received from the host computer 180 in this example will be described with reference to the flowchart shown in FIG. Receiving the read command from the host computer 180 (S851), the microprocessor 121 determines whether it has the access right to the LDEV indicated by the read command (S852). When the access right is not possessed (S852: NO), the microprocessor 121 transfers the read command to the MPPK 120 having the access right (S853).
 マイクロプロセッサ121がアクセス権を有する場合(S852:YES)、そのマイクロプロセッサ121は、同一MPPK120上のローカルメモリ122内で、キャッシュディレクトリ310を検索する(S854)。リードコマンドが指定するアドレス(データ)が見つかった場合(S855:YES)、マイクロプロセッサ121は、キャッシュディレクトリ310の情報に従って、キャッシュメモリ131からリードデータを読み出し、ホスト計算機180に送信する(S856)。 When the microprocessor 121 has an access right (S852: YES), the microprocessor 121 searches the cache directory 310 in the local memory 122 on the same MPPK 120 (S854). When the address (data) specified by the read command is found (S855: YES), the microprocessor 121 reads the read data from the cache memory 131 according to the information in the cache directory 310 and transmits it to the host computer 180 (S856).
 リードコマンドが指定するアドレス(データ)が見つからなかった(キャッシュミス)場合(S855:NO)、マイクロプロセッサ121は、ローカルメモリ122の未キャッシュフラグを確認する(S857)。未キャッシュフラグは、共有メモリ132のキャッシュディレクト値510の全てのデータが、ローカルメモリ122にキャッシュされているかを示すフラグであり、ローカルメモリ122内に格納されている。一部のデータが読み込まれていない場合、その値はONである。例えば、障害フェイルオーバ直後で共有メモリ132からローカルメモリ122へ制御情報が読み込まれてない場合、未キャッシュフラグはONである。 When the address (data) specified by the read command is not found (cache miss) (S855: NO), the microprocessor 121 checks the uncached flag of the local memory 122 (S857). The uncached flag is a flag indicating whether all the data of the cache directory value 510 of the shared memory 132 is cached in the local memory 122, and is stored in the local memory 122. When some data is not read, the value is ON. For example, if the control information is not read from the shared memory 132 to the local memory 122 immediately after the failure failover, the uncached flag is ON.
 未キャッシュフラグがONである場合(S857:YES)、共有メモリ132のキャッシュディレクト値510の一部データがキャッシュされていない。マイクロプロセッサ121は、CMPK130のコントローラを介して、共有メモリ132からローカルメモリ122へキャッシュディレクトリ(制御情報)を転送する(S858)。 If the uncached flag is ON (S857: YES), some data in the cache directory value 510 of the shared memory 132 is not cached. The microprocessor 121 transfers the cache directory (control information) from the shared memory 132 to the local memory 122 via the controller of the CMPK 130 (S858).
 マイクロプロセッサ121は、ローカルメモリ122内で、キャッシュディレクトリ310を検索する(S859)。リードコマンドが指定するデータが見つかった場合(S860:YES)、マイクロプロセッサ121は、キャッシュディレクトリ310の情報に従って、キャッシュメモリ131からリードデータを読み出し、ホスト計算機180に送信する(S111)。 The microprocessor 121 searches the cache directory 310 in the local memory 122 (S859). When the data specified by the read command is found (S860: YES), the microprocessor 121 reads the read data from the cache memory 131 according to the information in the cache directory 310 and transmits it to the host computer 180 (S111).
 キャッシュミスの場合(S860:NO)又は未キャッシュフラグがOFFの場合(S857:NO)、S862において、マイクロプロセッサ121は、リードデータ(ホストデータ)をキャッシングするか否かを判定する。この判定方法については後述する。 In the case of a cache miss (S860: NO) or the uncached flag is OFF (S857: NO), in S862, the microprocessor 121 determines whether or not to cache read data (host data). This determination method will be described later.
 リードデータをキャッシュすることなくホスト計算機180に送信すると判定した場合(S863:YES)、マイクロプロセッサ121は、CMPK130を介することなく、ドライブ170(永続メディア)から読みだしたリードデータをBEPK140の転送回路142のメモリへ転送し、転送回路142のメモリからFEPK100の転送回路112のメモリへ転送し、転送回路112のメモリからホスト計算機180に転送する(S864)。 When it is determined that the read data is transmitted to the host computer 180 without being cached (S863: YES), the microprocessor 121 reads the read data read from the drive 170 (permanent medium) without passing through the CMPK 130. 142, the memory of the transfer circuit 142 is transferred to the memory of the transfer circuit 112 of the FEPK100, and the memory of the transfer circuit 112 is transferred to the host computer 180 (S864).
 リードデータをキャッシュメモリ131に格納してからホスト計算機180に送信すると判定した場合(S863:YES)、マイクロプロセッサ121は、リードデータのためのスロットをキャッシュメモリ131に確保し、さらに、ローカルメモリ122のキャッシュディレクトリ310及び共有メモリ132のキャッシュディレクトリ510を更新する(S865)。 When it is determined that the read data is stored in the cache memory 131 and then transmitted to the host computer 180 (S863: YES), the microprocessor 121 secures a slot for the read data in the cache memory 131, and further, the local memory 122. The cache directory 310 and the cache directory 510 of the shared memory 132 are updated (S865).
マイクロプロセッサ121は、BEPK140及びCMPK130により、記憶ドライブ170(永続メディア)からリードデータを読み出し、キャッシュメモリ131上の確保したスロットに格納する。その後、マイクロプロセッサ121は、そのキャッシュデータを、CMPK130及びFEPK100により、ホスト計算機180に送信する(S866)。 The microprocessor 121 reads the read data from the storage drive 170 (permanent medium) using the BEPK 140 and the CMPK 130 and stores the read data in the reserved slot on the cache memory 131. Thereafter, the microprocessor 121 transmits the cache data to the host computer 180 by the CMPK 130 and the FEPK 100 (S866).
 図70を参照して、図69のフローチャートにおける、データキャッシングの要否についての判定(S862)を説明する。マイクロプロセッサ121は、このステップS862を開始し(S871)、リードコマンドの指定する論理ボリュームの性能ブースト機能がONであるか否かを、性能ブースト機能有効化テーブル210及びボリューム毎性能ブースト機能有効化テーブル220を参照して判定する(S872)。一方のテーブルが、性能ブースト機能がOFFであることを示す場合、当該ボリュームの性能ブースト機能はOFFである。 Referring to FIG. 70, the determination (S862) regarding the necessity of data caching in the flowchart of FIG. 69 will be described. The microprocessor 121 starts this step S862 (S871), determines whether or not the performance boost function of the logical volume designated by the read command is ON, the performance boost function enable table 210 and the per-volume performance boost function enable. The determination is made with reference to the table 220 (S872). If one table indicates that the performance boost function is OFF, the performance boost function for the volume is OFF.
 当該論理ボリュームの性能ブースト機能がONではない場合(S872:NO)、マイクロプロセッサ121は、記憶ドライブ170から読みだしたホストデータ(リードデータ)をキャッシュメモリ132に格納することなく、ホスト計算機180に送信することを決定する(S877)。当該論理ボリュームの性能ブースト機能がONである場合(S872:YES)、マイクロプロセッサ121は、次に、指定データが格納されているRAIDグループのメディア種別がSSDであるか否かを、RAIDグループ番号をキーとしてメディア種別テーブル230を参照し、判定する(S873)。 If the performance boost function of the logical volume is not ON (S872: NO), the microprocessor 121 stores the host data (read data) read from the storage drive 170 in the host computer 180 without storing it in the cache memory 132. It decides to transmit (S877). When the performance boost function of the logical volume is ON (S872: YES), the microprocessor 121 next determines whether or not the media type of the RAID group in which the designated data is stored is SSD. With reference to the media type table 230 as a key, determination is made (S873).
 メディア種別がSSDではない場合(S873:NO)、記憶ドライブ170から読みだしたホストデータ(リードデータ)をキャッシュメモリ132に格納することなく、ホスト計算機180に送信することを決定する(S877)。そのメディア種別がSSDである場合(S873:YES)、マイクロプロセッサ121は、次に、今回のI/OがCM非経由転送対象である否かを、指定データが格納されている論理ボリューム番号をキーとしてCM非経由転送比率テーブル440を参照し、判定する(S874)。 When the media type is not SSD (S873: NO), it is determined that the host data (read data) read from the storage drive 170 is transmitted to the host computer 180 without being stored in the cache memory 132 (S877). When the media type is SSD (S873: YES), the microprocessor 121 next determines whether or not the current I / O is a non-CM transfer target and the logical volume number in which the specified data is stored. Judgment is made by referring to the CM bypass transfer ratio table 440 as a key (S874).
 0から99の値を持つCM非経由転送比率を用いて、CM非経由転送対象か否かを判定する方法として、マイクロプロセッサ121は、0から100までの乱数を用いて、乱数がCM非経由転送比率を下回った場合に、今回のI/OがCM非経由転送対象であると判定してもよい。マイクロプロセッサ121は、リードデータのアドレスをキーとする0から100のハッシュ値を用いて、ハッシュ値がCM非経由転送比率を下回った場合に、今回のI/OがCM非経由転送対象であると判定してもよい。マイクロプロセッサ121は、0から100まで1ずつ増加するカウンタ(100の次は0に戻る)を使用して、カウンタの値がCM非経由転送比率を下回った場合に、今回のI/OがCM非経由転送対象であると判定してもよい。 As a method of determining whether or not a CM bypass transfer target is used using a CM bypass transfer ratio having a value from 0 to 99, the microprocessor 121 uses random numbers from 0 to 100, and the random number is not bypassed by the CM. When the transfer ratio falls below, it may be determined that the current I / O is a non-CM transfer target. The microprocessor 121 uses the hash value from 0 to 100 using the read data address as a key, and if the hash value falls below the CM bypass transfer ratio, the current I / O is the CM bypass transfer target. May be determined. The microprocessor 121 uses a counter that increases by 1 from 0 to 100 (returns to 0 after 100), and when the counter value falls below the CM non-transit transfer rate, the current I / O is set to CM It may be determined that it is a non-passing transfer target.
 S874の判定の結果、今回のI/OがCM非経由転送対象であると判定した場合(S875:YES)、マイクロプロセッサ121は、記憶ドライブ170から読みだしたホストデータ(リードデータ)をキャッシュメモリ132に格納することなく、ホスト計算機180に送信することを決定し(S876)、今回のI/OがCM非経由転送対象ではないと判定した場合(S875:NO)、記憶ドライブ170から読みだしたホストデータをキャッシュメモリ132に格納することを決定する(S877)。 As a result of the determination in S874, if it is determined that the current I / O is a non-CM transfer target (S875: YES), the microprocessor 121 reads the host data (read data) read from the storage drive 170 as a cache memory. If it is determined to transmit to the host computer 180 without storing in 132 (S876) and it is determined that the current I / O is not subject to CM non-transmission (S875: NO), read from the storage drive 170 The host data is determined to be stored in the cache memory 132 (S877).
 このように、規定条件を満たす場合、マイクロプロセッサ121は、ローカルメモリ122でのキャッシュディレクトリ310及び、共有メモリ132のキャッシュディレクトリ510を更新しなくてよいCM非経由転送を用いることを決定する。これにより、マイクロプロセッサ121及びCMPK130の負荷を低減し、システムのスループットを向上することができる。 As described above, when the specified condition is satisfied, the microprocessor 121 determines to use the CM bypass transfer that does not require updating the cache directory 310 in the local memory 122 and the cache directory 510 in the shared memory 132. As a result, the load on the microprocessor 121 and the CMPK 130 can be reduced and the throughput of the system can be improved.
 図71のフローチャートを参照して、CM非経由転送比率の算出を説明する。このフローは、LDEV(論理ボリューム)毎に1秒などの周期で呼び出される。マイクロプロセッサ121は、ある周期で全LDEV分を算出してもよいし、I/O処理契機にI/O対象LDEVが1秒などの間更新されていない場合に算出してもよい。 Referring to the flowchart in FIG. 71, calculation of the CM non-transit transfer ratio will be described. This flow is called at a cycle such as 1 second for each LDEV (logical volume). The microprocessor 121 may calculate all LDEVs at a certain period, or may calculate when the I / O target LDEV has not been updated for 1 second or the like at the time of I / O processing.
 マイクロプロセッサ121は、対象LDEV番号(論理ボリューム番号)をキーにボリューム毎ヒット率テーブル250を参照し、I/O数とヒット数からヒット率を求め、自身のMP番号をキーにMP稼働率テーブル380を参照し、MP稼働率を求め、ヒット率とMP稼働率をキーにCM非経由転送比率算出テーブル430を参照し、CM非経由転送比率を求める(S882)。 The microprocessor 121 refers to the hit rate table 250 for each volume using the target LDEV number (logical volume number) as a key, obtains the hit rate from the number of I / Os and the number of hits, and uses the MP number of its own as an MP operation rate table 380, the MP operation rate is obtained, and the CM non-transmission transfer ratio calculation table 430 is referred to using the hit rate and the MP operation rate as keys, and the CM non-transmission transfer ratio is obtained (S882).
 マイクロプロセッサ121は、CM非経由転送比率テーブル440の当該LDEV番号(論理ボリューム番号)のCM非経由転送比率のカラムをS882でもとめたCM非経由転送比率で更新し(S883)、この処理を終了する(S884)。 The microprocessor 121 updates the CM bypass transfer ratio column of the LDEV number (logical volume number) in the CM bypass transfer ratio table 440 with the CM bypass transfer ratio determined in S882 (S883), and ends this processing. (S884).
 図66乃至図71を参照して説明したリード処理に対して、ライト処理は、データキャッシング判定を行ってもよいし、すべてのデータをキャッシュするという方法を採用してもよい。 In contrast to the read process described with reference to FIGS. 66 to 71, the write process may perform data caching determination, or may employ a method of caching all data.
 例えば、すべてのデータをキャッシュする場合、図69のフローチャートにおいてS851、S853、S856、S861、S866を、図18AのS141、S143、S146、S151、S156にそれぞれ置き換えたフローとほぼ同様の流れになる。但し、ライト処理の場合、ホストキャシング判定に関するステップ(S862乃至S864)は省略され、S857またはS860のステップで否と判定された場合は、S865のステップに移る点で異なる。 For example, when all the data is cached, the flow is almost the same as the flow in which S851, S853, S856, S861, and S866 are replaced with S141, S143, S146, S151, and S156 in FIG. 18A, respectively. . However, in the case of write processing, the steps (S862 to S864) relating to the host caching determination are omitted, and if it is determined NO in step S857 or S860, the process is different in that it proceeds to step S865.
 次に、図19のフローチャートを参照して、管理計算機20からの設定処理を説明する。管理計算機20は、その上で実行される管理プログラムに従って動作する。したがって、管理計算機20を主語とする記載は、管理プログラム又はCPU26を主語とすることができる。管理計算機20は設定処理を開始し(S171)、設定データ入力のためのメニューを、表示デバイス29に表示する(S172)。管理者は、入力デバイス28を使用して、必要な設定データを入力する(S173及びS174:NO)。 Next, the setting process from the management computer 20 will be described with reference to the flowchart of FIG. The management computer 20 operates according to a management program executed thereon. Therefore, the description that uses the management computer 20 as the subject can use the management program or the CPU 26 as the subject. The management computer 20 starts the setting process (S171), and displays a menu for setting data input on the display device 29 (S172). The administrator uses the input device 28 to input necessary setting data (S173 and S174: NO).
 全ての必要なデータが入力されると(S174:YES)、管理計算機20は、保存ボタンの選択に応答して設定データを保存する。設定データは、ストレージシステム10からの要求に応じて、管理計算機20からストレージシステム10に送信される。管理者は、キャンセルボタンを選択することで、入力をやり直すことができる。 When all necessary data has been input (S174: YES), the management computer 20 saves the setting data in response to the selection of the save button. The setting data is transmitted from the management computer 20 to the storage system 10 in response to a request from the storage system 10. The administrator can input again by selecting the cancel button.
 図20は、メニュー画面の一例2000を示している。メニュー画面2000は、性能ブースト機能設定エリア2001及びボリューム毎性能ブースト機能設定エリア2004を含む。 FIG. 20 shows an example 2000 of the menu screen. The menu screen 2000 includes a performance boost function setting area 2001 and a performance boost function setting area 2004 for each volume.
 管理者は、性能ブースト機能設定エリア2001における"ENABLE"又は"DISABLE"の一方を入力デバイス28で選択することで、ストレージシステム10の性能ブースト機能(上記制御情報の更新制御及びユーザデータのキャッシング制御の機能)をイネーブル又はディセーブルすることができる。この設定が、性能ブースト機能有効化テーブル210に反映される。これがディセーブルされると、ストレージシステム10の全ての性能ブースト機能が使用されない。 The administrator selects one of “ENABLE” and “DISABLE” in the performance boost function setting area 2001 by using the input device 28, so that the performance boost function of the storage system 10 (the control information update control and the user data caching control) is selected. Can be enabled or disabled. This setting is reflected in the performance boost function enabling table 210. When this is disabled, all performance boost functions of the storage system 10 are not used.
 ボリューム毎性能ブースト機能設定エリア2004は、論理ボリューム番号のカラム2005及び性能ブースト機能設定カラム2006を含む。管理者は、ボリューム毎性能ブースト機能設定エリア2004において、各論理ボリュームの性能ブースト機能のイネーブル/ディセーブルを入力デバイス28で選択することができる。 The per-volume performance boost function setting area 2004 includes a logical volume number column 2005 and a performance boost function setting column 2006. The administrator can select enable / disable of the performance boost function of each logical volume with the input device 28 in the per-volume performance boost function setting area 2004.
 この設定が、ボリューム毎性能ブースト機能有効化テーブル220に反映される。システムの性能ブースト機能がイネーブルされており、かつ、ボリュームの性能ブースト機能がイネーブルされているボリュームに対して、本実施形態の性能ブースト機能が使用される。 This setting is reflected in the performance boost function enabling table 220 for each volume. The performance boost function of this embodiment is used for a volume for which the system performance boost function is enabled and the volume performance boost function is enabled.
 図20は、性能ブースト機能の設定画面を例示しているが、この他、管理計算機20は、例えば、判定条件に含まれる閾値の設定画面を表示し、管理者によって入力された設定データをストレージシステム10に送信する。典型的には、ストレージシステム10は、管理者により設定可能な項目のデフォルト値を予め有しており、管理者により設定され項目のデータを、入力データにより更新する。 FIG. 20 exemplifies the setting screen for the performance boost function. In addition, the management computer 20 displays, for example, a threshold setting screen included in the determination condition, and stores setting data input by the administrator. Send to system 10. Typically, the storage system 10 has in advance default values of items that can be set by the administrator, and updates the item data set by the administrator with the input data.
 次に、図21から図24を参照して、ストレージシステム10内のテーブル更新を説明する。図21は、メディア種別テーブル230の更新のフローチャートである。RAIDグループが増減設されると(S201)、BEPK140が、その情報をいずれかのマイクロプロセッサ121に送信する。更新情報を受信したマイクロプロセッサ121は、ローカルメモリ122のメディア種別テーブル230及びRAIDレベルテーブル240を更新すると共に、不揮発性記憶領域のこれらテーブルを更新し(S202)、それを他のMPPK120に通知する。 Next, the table update in the storage system 10 will be described with reference to FIGS. FIG. 21 is a flowchart for updating the media type table 230. When the number of RAID groups is increased or decreased (S201), the BEPK 140 transmits the information to one of the microprocessors 121. The microprocessor 121 that has received the update information updates the media type table 230 and the RAID level table 240 in the local memory 122, updates these tables in the nonvolatile storage area (S202), and notifies the other MPPKs 120 of these updates. .
 図22を参照して、CM稼働率テーブル290の更新を説明する。MPPK120の任意のマイクロプロセッサ121がこの処理を行う。典型的には、定期的(例えば1秒毎)にこの処理が行われる。マイクロプロセッサ121は、アクセス先のCMPK130から稼働率の情報を取得する(S212)。具体的には、マイクロプロセッサ121は、CMPK130内のコントローラ(不図示)に、CMPK130の稼働率(CM稼働率)を示す値を要求し、それをCMPK130内のコントローラから取得する。 Referring to FIG. 22, the update of the CM operation rate table 290 will be described. An arbitrary microprocessor 121 of the MPPK 120 performs this processing. Typically, this processing is performed periodically (for example, every second). The microprocessor 121 acquires operation rate information from the CMPK 130 as the access destination (S212). Specifically, the microprocessor 121 requests a value indicating the operating rate (CM operating rate) of the CMPK 130 from a controller (not shown) in the CMPK 130, and acquires it from the controller in the CMPK 130.
 マイクロプロセッサ121は、CMPK130から取得した稼働率の値によって、CM稼働率テーブル290における対応エントリの稼働率カラム292のフィールドを更新する。さらに、マイクロプロセッサ121は、更新した稼働率の値が、CM稼働率閾値テーブル300の閾値以上であるか判定する(S214)。 The microprocessor 121 updates the field of the operation rate column 292 of the corresponding entry in the CM operation rate table 290 with the value of the operation rate acquired from the CMPK 130. Further, the microprocessor 121 determines whether or not the updated operation rate value is equal to or greater than the threshold value in the CM operation rate threshold table 300 (S214).
 稼働率が閾値以上である場合(S214:YES)、マイクロプロセッサ121は、CM稼働率テーブル290における、該当エントリの過負荷フラグを1(ON)に設定する(S215)。稼働率が閾値未満である場合(S214:NO)、マイクロプロセッサ121は、該当エントリの過負荷フラグを0(OFF)に設定する(S216)。マイクロプロセッサ121は、アクセスする全てのCMPK130について、ステップS212からステップS216を行う(S217)。 When the operating rate is equal to or greater than the threshold (S214: YES), the microprocessor 121 sets the overload flag of the corresponding entry in the CM operating rate table 290 to 1 (ON) (S215). When the operating rate is less than the threshold (S214: NO), the microprocessor 121 sets the overload flag of the corresponding entry to 0 (OFF) (S216). The microprocessor 121 performs steps S212 to S216 for all CMPKs 130 to be accessed (S217).
 図23を参照して、ボリューム毎ヒット率テーブル250の更新を説明する。MPPK120の任意のマイクロプロセッサ121がこの処理を行う。典型的には、定期的(例えば1秒毎)にこの処理が行われる。マイクロプロセッサ121は、担当する一つの論理ボリュームのI/O数とヒット数をローカルメモリ122から取得する(S222)。当該又は他のマイクロプロセッサ121は、前回更新からの各担当論理ボリュームへのI/O数(例えばリードコマンド数)とキャッシュヒット数をカウントし、ローカルメモリ122内に格納し、当該マイクロプロセッサ121は、その値をステップS222で取得する。 Referring to FIG. 23, the update of the volume hit rate table 250 will be described. An arbitrary microprocessor 121 of the MPPK 120 performs this processing. Typically, this processing is performed periodically (for example, every second). The microprocessor 121 acquires the number of I / Os and the number of hits for one logical volume in charge from the local memory 122 (S222). The or other microprocessor 121 counts the number of I / Os (for example, the number of read commands) and the number of cache hits to each assigned logical volume since the previous update, and stores them in the local memory 122. The microprocessor 121 The value is acquired in step S222.
 マイクロプロセッサ121は、取得した値によって、ボリューム毎ヒット率テーブル250における、対応エントリのヒット率、I/O数及びヒット数のフィールドを更新する(S223)。マイクロプロセッサ121は、さらに、ヒット率とヒット率閾値テーブル260の閾値とを比較する。 The microprocessor 121 updates the hit rate, I / O count, and hit count fields of the corresponding entry in the per-volume hit rate table 250 with the acquired value (S223). The microprocessor 121 further compares the hit rate with the threshold values in the hit rate threshold table 260.
 ヒット率が閾値以下である場合(S224:YES)、マイクロプロセッサ121は、当該エントリの低ヒットフラグを1(ON)に設定する(S225)。一方、ヒット率が閾値より大きい場合(S224:NO)、マイクロプロセッサ121は、当該エントリの低ヒットフラグを0(OFF)に設定する(S226)。マイクロプロセッサ121は、担当する全ての論理ボリュームについて、ステップS222からステップS226を行う(S227)。 If the hit rate is equal to or lower than the threshold (S224: YES), the microprocessor 121 sets the low hit flag of the entry to 1 (ON) (S225). On the other hand, when the hit rate is larger than the threshold (S224: NO), the microprocessor 121 sets the low hit flag of the entry to 0 (OFF) (S226). The microprocessor 121 performs steps S222 to S226 for all the logical volumes in charge (S227).
 図24を参照して、MP稼働率テーブル270の更新を説明する。各マイクロプロセッサ121がこの処理を行う。典型的には、定期的(例えば1秒毎)にこの処理が行われる。マイクロプロセッサ121は、自身の単位時間(本例で1秒)当たりの稼働時間を監視し、その値をローカルメモリ122内に格納する。マイクロプロセッサ121は、ローカルメモリ122からその値を取得する(S232)。 Referring to FIG. 24, the update of the MP operation rate table 270 will be described. Each microprocessor 121 performs this processing. Typically, this processing is performed periodically (for example, every second). The microprocessor 121 monitors its operating time per unit time (1 second in this example) and stores the value in the local memory 122. The microprocessor 121 acquires the value from the local memory 122 (S232).
 マイクロプロセッサ121は、取得した値を使用して、該当エントリの稼働率及び稼働時間のフィールドを更新する(S233)。さらに、マイクロプロセッサ121は、更新された稼働率とMP稼働率閾値テーブル280の閾値とを比較する(S234)。稼働率が閾値以上である場合(S234:YES)、マイクロプロセッサ121は、当該エントリの過負荷フラグを1(ON)に設定する(S235)。稼働率が閾値未満である場合(S234:NO)、マイクロプロセッサ121は、当該エントリの過負荷を0(OFF)に設定する(S236)。 The microprocessor 121 uses the acquired value to update the operation rate and operation time fields of the corresponding entry (S233). Further, the microprocessor 121 compares the updated operation rate with the threshold value of the MP operation rate threshold value table 280 (S234). When the operating rate is equal to or higher than the threshold (S234: YES), the microprocessor 121 sets the overload flag of the entry to 1 (ON) (S235). When the operating rate is less than the threshold (S234: NO), the microprocessor 121 sets the overload of the entry to 0 (OFF) (S236).
 図25を参照して、論理ボリュームのオーナ権の現在MPPK120から他のMPPK120への移動を説明する。オーナ権が移動する前に、現在MPPK120は、ローカルメモリ122に格納するキャッシュディレクトリ310における未反映部分を、共有メモリ132に反映する。これにより、次のMPPK120が、最新のキャッシュディレクトリを使用してキャッシュ制御することができ、キャッシュヒット率を高めることができる。 Referring to FIG. 25, the movement of ownership of the logical volume from the current MPPK 120 to another MPPK 120 will be described. Before the ownership is transferred, the MPPK 120 reflects the unreflected portion in the cache directory 310 stored in the local memory 122 in the shared memory 132. Accordingly, the next MPPK 120 can perform cache control using the latest cache directory, and the cache hit rate can be increased.
 現在オーナMPPKのマイクロプロセッサ121は、キャッシュディレクトリ310において検索する対象を、オーナ件を移動する論理ボリュームの論理アドレスの0番に設定する(S242)。マイクロプロセッサ121は、そのアドレスを、キャッシュディレクトリ310で検索する(S243)。 The current owner MPPK microprocessor 121 sets the search target in the cache directory 310 to the logical address 0 of the logical volume to which the owner is to be moved (S242). The microprocessor 121 searches the cache directory 310 for the address (S243).
 そのアドレスが、共有メモリ未反映フラグがONに設定されているディレクトリに存在する場合(S244:YES)、マイクロプロセッサ121は、その共有メモリ132における当該ディレクトリを更新し(S245)、ステップS246に進む。共有メモリ未反映フラグは、対象ディレクトリの更新が共有メモリ132に反映済みであるか否かを示すフラグであり、それがONである場合、対象ディレクトリの更新が共有メモリ132に未反映であることを示す。 If the address exists in the directory for which the shared memory non-reflecting flag is set to ON (S244: YES), the microprocessor 121 updates the directory in the shared memory 132 (S245), and proceeds to step S246. . The shared memory non-reflecting flag is a flag indicating whether or not the update of the target directory has been reflected in the shared memory 132. If it is ON, the update of the target directory is not reflected in the shared memory 132. Indicates.
 上記アドレスが、共有メモリ未反映フラグがOFFに設定されているディレクトリに存在する場合(S244:NO)、マイクロプロセッサ121は、共有メモリ132上のそのディレクトリを更新することなく、ステップS246に進む。 If the above address exists in a directory where the shared memory non-reflecting flag is set to OFF (S244: NO), the microprocessor 121 proceeds to step S246 without updating the directory on the shared memory 132.
 ステップS246において、マイクロプロセッサ121は、当該ボリュームについてのキャッシュディレクトリ310の探索が終了したが否かを判定する。全てのアドレスの探索を終了している場合(S246:YES)、マイクロプロセッサ121はこの処理を終了する。未探索のアドレスが残っている場合(S246:NO)、マイクロプロセッサ121は対象アドレスを次の論理アドレスに変更し(S247)、ステップS243からステップS246を繰り返す。 In step S246, the microprocessor 121 determines whether or not the search of the cache directory 310 for the volume has been completed. If all addresses have been searched (S246: YES), the microprocessor 121 ends this process. If an unsearched address remains (S246: NO), the microprocessor 121 changes the target address to the next logical address (S247) and repeats steps S243 to S246.
第2実施形態
 本実施形態は、ストレージ階層仮想化機能を有するストレージシステム10を説明する。本実施形態のストレージシステム10は、複数のプールボリューム(実ボリューム)を含むプールを構築する。プールは、ストレージシステム10内の性能の異なる複数のメディアを含み、アクセス性能によって複数の階層に階層化される。各階層は、1又は複数のプールボリュームで構成されている。
Second Embodiment This embodiment describes a storage system 10 having a storage tier virtualization function. The storage system 10 of this embodiment constructs a pool including a plurality of pool volumes (real volumes). The pool includes a plurality of media having different performances in the storage system 10 and is hierarchized into a plurality of tiers according to access performance. Each tier is composed of one or a plurality of pool volumes.
 ストレージシステム10は、そのプールから構築した仮想ボリュームをホスト計算機180に提供する。ストレージシステム10は、プールを、特定容量のページ単位で管理する。各プールボリュームは複数ページに分割され、各ページにデータが格納される。ストレージシステム10は、仮想ボリュームに対するホスト計算機180からの書き込みに対して、プールから必要な容量の1又は複数ページを割り当てる。 The storage system 10 provides the host computer 180 with a virtual volume constructed from the pool. The storage system 10 manages the pool in units of pages with a specific capacity. Each pool volume is divided into a plurality of pages, and data is stored in each page. The storage system 10 allocates one or more pages of the necessary capacity from the pool for writing from the host computer 180 to the virtual volume.
 ストレージシステム10は、ホスト計算機180により認識される仮想ボリューム401の容量を、仮想ボリュームに割り当てられている実容量よりも大きくすることができ、ホスト計算機180に割り当てられる容量を実現するために必要な実容量を、それよりも小さくすることができる(シンプロビジョニング)。 The storage system 10 can make the capacity of the virtual volume 401 recognized by the host computer 180 larger than the actual capacity assigned to the virtual volume, and is necessary for realizing the capacity assigned to the host computer 180. The actual capacity can be made smaller (thin provisioning).
 ストレージシステム10は、仮想ボリュームに対するホスト計算機180からのI/O負荷を分析し、I/O負荷の高いページを、性能の高い高価なメディアで構成されたリソースから成る上位階層に、そうでないページを性能の低い安価なメディアで構成されたリソースから成る下位階層に自動配置する。これにより、仮想ボリュームへのアクセス性能を維持しつつ、システムのコストを低減することができる。 The storage system 10 analyzes the I / O load from the host computer 180 with respect to the virtual volume, and pages with a high I / O load are transferred to upper tiers composed of resources composed of high performance and expensive media. Are automatically placed in a lower hierarchy consisting of resources composed of inexpensive media with low performance. Thereby, the cost of the system can be reduced while maintaining the access performance to the virtual volume.
 以下において、第1実施形態との差異を主に説明する。図26は、本実施形態のローカルメモリ122が格納している情報を示している。ローカルメモリ122における制御情報は、第1実施形態で説明した情報に加え、ページ毎モニタ差分テーブル320を含む。図27は、本実施形態の共有メモリ132が格納するデータを示している。共有メモリ132の制御情報は、第1実施形態で説明した情報に加え、ダイナミックマッピングテーブル520及びページ毎モニタテーブル530を含む。 Hereinafter, differences from the first embodiment will be mainly described. FIG. 26 shows information stored in the local memory 122 of this embodiment. The control information in the local memory 122 includes a per-page monitor difference table 320 in addition to the information described in the first embodiment. FIG. 27 shows data stored in the shared memory 132 of this embodiment. The control information of the shared memory 132 includes a dynamic mapping table 520 and a per-page monitor table 530 in addition to the information described in the first embodiment.
 図28は、ダイナミックマッピングテーブル520の一例を示す。ダイナミックマッピングテーブル520は、各仮想ボリュームにおいて、アクセス数をカウントするエントリ(記憶領域のエントリ)を管理するテーブルである。例えば、1ページが、ダイナミックマッピングテーブル520の1エントリである。ここでは、この例を説明する。 FIG. 28 shows an example of the dynamic mapping table 520. The dynamic mapping table 520 is a table for managing entries (storage area entries) for counting the number of accesses in each virtual volume. For example, one page is one entry of the dynamic mapping table 520. Here, this example will be described.
 ダイナミックマッピングテーブル520は、プール番号のカラム521、仮想ボリューム番号のカラム522、論理アドレスのカラム523、プールボリューム番号のカラム524、論理アドレスのカラム525、モニタ情報インデックス番号のカラム526を有する。プール番号及び仮想ボリューム番号は、それぞれ、ストレージシステム10内で、プールと仮想ボリュームを一意に識別する識別子である。モニタ情報インデックス番号は、ダイナミックマッピングテーブル520におけるエントリ識別子である。 The dynamic mapping table 520 includes a pool number column 521, a virtual volume number column 522, a logical address column 523, a pool volume number column 524, a logical address column 525, and a monitor information index number column 526. The pool number and the virtual volume number are identifiers that uniquely identify the pool and the virtual volume in the storage system 10, respectively. The monitor information index number is an entry identifier in the dynamic mapping table 520.
 論理アドレスのカラム523は、各エントリの仮想ボリュームにおける開始論理アドレスを格納する。論理アドレスのカラム525は、各エントリのプールボリュームにおける開始論理アドレスを格納する。本例においてエントリの容量は一定であるが、一定でなくともよい。 The logical address column 523 stores the start logical address of each entry in the virtual volume. The logical address column 525 stores the start logical address in the pool volume of each entry. In this example, the entry capacity is constant, but it may not be constant.
 図29は、ページ毎モニタテーブル530の一例を示す。ページ毎モニタテーブル530は、各ページのI/O数を管理する。マイクロプロセッサ121は、このテーブル530を参照して、当該ページのデータを格納する階層を決定する。 FIG. 29 shows an example of the page-by-page monitor table 530. The per-page monitor table 530 manages the number of I / Os for each page. The microprocessor 121 refers to the table 530 to determine a hierarchy for storing the data of the page.
 ページ毎モニタテーブル530は、モニタ情報インデックス番号のカラム531、I/Oカウンタ(現在)のカラム532、I/Oカウンタ(前回)のカラム533を有する。マイクロプロセッサ121は、ページへのアクセスを監視し、所定の監視期間(例えば1秒)内のI/O数(アクセス数)をカウントして、ページ毎モニタテーブル530に格納する。監視期間は連続して続く。 The per-page monitor table 530 includes a monitor information index number column 531, an I / O counter (current) column 532, and an I / O counter (previous) column 533. The microprocessor 121 monitors access to the page, counts the number of I / Os (access count) within a predetermined monitoring period (for example, 1 second), and stores the count in the page-by-page monitor table 530. The monitoring period continues continuously.
 I/Oカウンタ(前回)のカラム533は、前回監視期間におけるI/O数を格納する。I/Oカウンタ(現在)のカラム532は、現在監視期間におけるI/O数を格納する。マイクロプロセッサ121は、現在監視期間内において、I/Oカウンタ(現在)のカラム532の値を繰り返し更新する。 The column 533 of the I / O counter (previous) stores the number of I / Os in the previous monitoring period. An I / O counter (current) column 532 stores the number of I / Os in the current monitoring period. The microprocessor 121 repeatedly updates the value in the column 532 of the I / O counter (current) within the current monitoring period.
 本構成において、マイクロプロセッサ121は、ローカルメモリ122におけるページ毎モニタ差分テーブル320を使用してI/O数をカウントし、その値の更新を共有メモリ132におけるページ毎モニタテーブル530に反映する。この点は後述する。現在監視期間が終了すると、マイクロプロセッサ121は、前回監視期間におけるI/O数を、現在監視期間におけるI/O数のフィールドに移す。 In this configuration, the microprocessor 121 uses the per-page monitor difference table 320 in the local memory 122 to count the number of I / Os and reflects the update of the value in the per-page monitor table 530 in the shared memory 132. This point will be described later. When the current monitoring period ends, the microprocessor 121 moves the number of I / Os in the previous monitoring period to the field of the number of I / Os in the current monitoring period.
 図30は、ページ毎モニタ差分テーブル320の一例を示す。ページ毎モニタ差分テーブル320は、各ページへのアクセスをカウントするために使用される。ページ毎モニタ差分テーブル320は、モニタ情報インデックス番号のカラム321及びI/O差分カウンタのカラム322を有する。マイクロプロセッサ121は、各ページのアクセスを監視し、アクセスがあると、I/O差分カウンタのカラム322の該当フィールドの値をインクリメントする。 FIG. 30 shows an example of the monitor difference table 320 for each page. The per-page monitor difference table 320 is used for counting accesses to each page. The per-page monitor difference table 320 includes a monitor information index number column 321 and an I / O difference counter column 322. The microprocessor 121 monitors the access of each page. When there is an access, the microprocessor 121 increments the value of the corresponding field in the column 322 of the I / O difference counter.
 I/O差分カウンタのカラム322のフィールドの値が規定値(本例で最大値)に達すると、マイクロプロセッサ121は、ページ毎モニタテーブル530の対応エントリのI/Oカウンタ(現在)のカラム532のフィールドの値にその値を加算して、当該フィールを更新する。マイクロプロセッサ121は、最大値に達したI/O差分カウンタのカラム322のフィールドの値を初期値(0値)に戻す。I/O差分カウンタは、このようにページ毎モニタテーブル530の前回更新からの、I/O数の差分を示す。 When the value of the field in the column 322 of the I / O difference counter reaches a specified value (the maximum value in this example), the microprocessor 121 sets the column 532 in the I / O counter (current) of the corresponding entry in the per-page monitor table 530. The field is updated by adding the value to the field value of. The microprocessor 121 returns the value of the field in the column 322 of the I / O difference counter that has reached the maximum value to the initial value (0 value). Thus, the I / O difference counter indicates the difference in the number of I / Os from the previous update of the per-page monitor table 530.
 図30及び図29に示すように、ページ毎モニタ差分テーブル320のI/O差分カウンタのカラム322は8ビットデータを格納し、ページ毎モニタテーブル530のI/Oカウンタ(現在)のカラム532は、8ビットよりも大きい32ビットのデータを格納する。 As shown in FIGS. 30 and 29, the I / O difference counter column 322 of the per-page monitor difference table 320 stores 8-bit data, and the I / O counter (current) column 532 of the per-page monitor table 530 includes , 32 bits of data larger than 8 bits are stored.
 図31のフローチャートを参照して、上記ストレージ階層仮想化機能モニタ更新の具体的な方法を説明する。マイクロプロセッサ121は、ページへのアクセスを受けると、ページ毎モニタ差分テーブル320におけるそのページのI/O差分カウンタをインクリメントする(S302)。 A specific method for updating the storage tier virtualization function monitor will be described with reference to the flowchart of FIG. When receiving access to the page, the microprocessor 121 increments the I / O difference counter for the page in the per-page monitor difference table 320 (S302).
 マイクロプロセッサ121は、当該論理ボリューム性能ブースト機能がONであるか判定する(S303)。このステップは、図16におけるステップS122と同様である。ボリューム性能ブースト機能がOFFである場合(S303:NO)、マイクロプロセッサ121は、ステップS307に進む。 The microprocessor 121 determines whether the logical volume performance boost function is ON (S303). This step is the same as step S122 in FIG. If the volume performance boost function is OFF (S303: NO), the microprocessor 121 proceeds to step S307.
 ボリューム性能ブースト機能がONである場合(S303:YES)、マイクロプロセッサ121は、自身の過負荷フラグがONであるか否かを判定する(S304)。このステップは、図16におけるステップS125と同様である。 When the volume performance boost function is ON (S303: YES), the microprocessor 121 determines whether or not its own overload flag is ON (S304). This step is the same as step S125 in FIG.
 過負荷フラグがONである場合(S304:YES)、マイクロプロセッサ121は、ステップS306に進む。過負荷フラグがOFFである場合(S304:NO)、マイクロプロセッサ121は、アクセス先のCMPK130の過負荷フラグがONであるか否かを判定する(S305)。このステップは、図16におけるステップS126と同様である。 If the overload flag is ON (S304: YES), the microprocessor 121 proceeds to step S306. When the overload flag is OFF (S304: NO), the microprocessor 121 determines whether or not the overload flag of the CMPK 130 as the access destination is ON (S305). This step is the same as step S126 in FIG.
 CMPK130の過負荷フラグがOFFである場合(S305:NO)、マイクロプロセッサ121は、ステップS307に進む。CMPK130の過負荷フラグがONである場合(S305:YES)、マイクロプロセッサ121は、ステップS306に進む。ステップS306において、マイクロプロセッサ121は、ページ毎モニタ差分テーブル320の上記I/O差分カウンタの値が、最大値であるかを判定する。 When the overload flag of the CMPK 130 is OFF (S305: NO), the microprocessor 121 proceeds to step S307. If the overload flag of the CMPK 130 is ON (S305: YES), the microprocessor 121 proceeds to step S306. In step S306, the microprocessor 121 determines whether or not the value of the I / O difference counter in the per-page monitor difference table 320 is the maximum value.
 I/O差分カウンタの値が最大値未満である場合(S306:NO)、このフローは終了する。I/O差分カウンタの値が最大値である場合(S306:YES)、マイクロプロセッサ121は、ページ毎モニタテーブル530の対応エントリのI/Oカウンタ(現在)のカラム532のフィールドの値にその最大値を加算して、当該フィールを更新する(S307)。マイクロプロセッサ121は、さらに、最大値に達したI/O差分カウンタのカラム322のフィールドの値を0値(初期値)に設定する(S308)。 If the value of the I / O difference counter is less than the maximum value (S306: NO), this flow ends. When the value of the I / O difference counter is the maximum value (S306: YES), the microprocessor 121 sets the maximum value to the value of the field in the column 532 of the I / O counter (current) of the corresponding entry of the per-page monitor table 530. The value is added to update the field (S307). The microprocessor 121 further sets the value of the field in the column 322 of the I / O difference counter that has reached the maximum value to 0 value (initial value) (S308).
 本例は、マイクロプロセッサ121及びCMPK130の負荷が小さい場合、ローカルメモリ122におけるI/O差分カウンタの更新に同期して、共有メモリ132のI/Oカウンタを更新する。これらの負荷が小さいためシステム性能の低下が問題とならず、障害発生時に正確なI/Oカウント数を得ることができる。これら二つのデバイスの負荷条件は省略してもよく、双方の成立をI/Oカウンタ値の非同期更新の条件としてもよい。これらと異なる条件を使用してもよい。 In this example, when the load on the microprocessor 121 and the CMPK 130 is small, the I / O counter of the shared memory 132 is updated in synchronization with the update of the I / O difference counter in the local memory 122. Since these loads are small, a decrease in system performance is not a problem, and an accurate I / O count can be obtained when a failure occurs. The load conditions of these two devices may be omitted, and the establishment of both may be used as the condition for asynchronous update of the I / O counter value. Different conditions may be used.
 上述のように、マイクロプロセッサ121は、ローカルメモリ122内のカウンタでページのI/O数をカウントし、その値が規定値に達すると、その規定値を共有メモリ132のカウンタに反映する。これにより、マイクロプロセッサ121とCMPK130との間の通信によるオーバヘッドを低減する。 As described above, the microprocessor 121 counts the number of page I / Os with the counter in the local memory 122, and when the value reaches a specified value, the specified value is reflected in the counter of the shared memory 132. As a result, overhead due to communication between the microprocessor 121 and the CMPK 130 is reduced.
 ページ毎モニタ差分テーブル320のカウンタのビット数が、ページ毎モニタテーブル530のカウンタのビット数より小さい。このように、ローカルメモリ上で差分をカウントすることで、I/O数カウントのためにローカルメモリ122で必要される容量を削減することができる。MPPK120の障害時には、所定期間のI/Oカウント数の情報が失われるが、ページI/Oカウント数にI/Oカウント数の差分の反映がなされないだけであるので、ページのI/O解析に実質的な影響を与えることはない。 The bit number of the counter of the monitor difference table 320 for each page is smaller than the bit number of the counter of the monitor table 530 for each page. Thus, by counting the difference on the local memory, the capacity required in the local memory 122 for counting the number of I / Os can be reduced. When the MPPK 120 fails, information on the I / O count number for a predetermined period is lost. However, since the difference in the I / O count number is not reflected in the page I / O count number, page I / O analysis is performed. Will not have a substantial impact.
 なお、本実施形態の性能モニタ方法は、階層仮想化機能のモニタに限らず、そのほかの性能モニタにも適用可能である。例えば、HDDやSSDなどのドライブのモニタに適用できる。上記例は、カウンタ数が最大値に達するとカウンタを初期化するが、初期化においてI/Oをカウントしてもよい。マイクロプロセッサ121は、例えば、I/O差分カウンタの初期化と共に、その最大数の1を加えた値をページ毎モニタテーブル530の
I/Oカウンタの値に加算する。これは、他の実施形態におけるカウント方法で同様である。
Note that the performance monitoring method of the present embodiment is not limited to the monitoring of the hierarchical virtualization function, but can be applied to other performance monitoring. For example, it can be applied to a monitor of a drive such as an HDD or an SSD. In the above example, the counter is initialized when the number of counters reaches the maximum value, but I / O may be counted in the initialization. For example, the microprocessor 121 initializes the I / O difference counter and adds a value obtained by adding the maximum number of 1 to the value of the I / O counter of the monitor table 530 for each page. This is the same in the counting method in the other embodiments.
第3実施形態
 以下において、本発明を非同期リモートコピーに適用した例を説明する。以下においては、第1実施形態及び第2実施形態との差異を主に説明する。図32は、本実施形態の計算機システムの構成を模式的に示すブロック図である。本実施形態のストレージシステムは、第1ストレージシステム10A及び第2ストレージシステム10Bを含む。典型的には、第1ストレージシステム10A及び第2ストレージシステム10Bは異なるサイトに設置されており、データネットワーク(例えばSAN)190A、データネットワーク(例えばSAN)190B及び広域ネットワークを介して通信可能に接続する。
Third Embodiment Hereinafter, an example in which the present invention is applied to asynchronous remote copy will be described. In the following, differences from the first embodiment and the second embodiment will be mainly described. FIG. 32 is a block diagram schematically showing the configuration of the computer system of this embodiment. The storage system of this embodiment includes a first storage system 10A and a second storage system 10B. Typically, the first storage system 10A and the second storage system 10B are installed at different sites, and are communicably connected via a data network (eg, SAN) 190A, a data network (eg, SAN) 190B, and a wide area network. To do.
 第1ストレージシステム10A及び第2ストレージシステム10Bは、図1を参照して説明したハードウェア構成と同様の構成を有する。具体的には、第1ストレージシステム10Aは、複数のFEPK110A、複数のMPPK120A、複数のCMPK130A、複数のBEPK140Aを含み、これらは内部ネットワーク150Aを介して接続する。第1管理計算機20Aは、第1ストレージシステム10Aを管理する。 The first storage system 10A and the second storage system 10B have the same configuration as the hardware configuration described with reference to FIG. Specifically, the first storage system 10A includes a plurality of FEPKs 110A, a plurality of MPPKs 120A, a plurality of CMPKs 130A, and a plurality of BEPKs 140A, which are connected via an internal network 150A. The first management computer 20A manages the first storage system 10A.
 同様に、第2ストレージシステム10Bは、複数のFEPK110B、複数のMPPK120B、複数のCMPK130B、複数のBEPK140Bを含み、これらは内部ネットワーク150Bを介して接続する。第2管理計算機20Bは、第2ストレージシステム10Aを管理する。 Similarly, the second storage system 10B includes a plurality of FEPKs 110B, a plurality of MPPKs 120B, a plurality of CMPKs 130B, and a plurality of BEPKs 140B, which are connected via the internal network 150B. The second management computer 20B manages the second storage system 10A.
 第1ストレージシステム10A及び第2ストレージシステム10Bは、非同期リモードコピー機能を有する。第1ストレージシステム10Aのプライマリボリューム(PVOL)171Pと、第2ストレージシステム10Bのセカンダリボリューム(SVOL)171Sが、コピーペアを構成する。ボリュームは、典型的には、1又は複数のRAIDグループにおける1又は複数の記憶領域からなる。 The first storage system 10A and the second storage system 10B have an asynchronous re-mode copy function. The primary volume (PVOL) 171P of the first storage system 10A and the secondary volume (SVOL) 171S of the second storage system 10B constitute a copy pair. A volume typically consists of one or more storage areas in one or more RAID groups.
 プライマリボリューム171Pがコピー元ボリューム、セカンダリボリューム171Sがコピー先ボリュームであり、プライマリボリューム171Pのデータが、セカンダリボリューム171Sにコピーされる。プライマリボリューム171Pへデータ書き込み順序と、セカンダリボリューム171Sへのデータコピー順序は一致する(順序保障)。 The primary volume 171P is the copy source volume, the secondary volume 171S is the copy destination volume, and the data of the primary volume 171P is copied to the secondary volume 171S. The order of data writing to the primary volume 171P and the order of data copying to the secondary volume 171S match (order guarantee).
 同期コピーは、ホスト計算機180がプライマリボリューム171Pに書き込みをおこなった場合、セカンダリボリューム171Sへのコピーの完了後(典型的にはキャッシュメモリへの書き込み後)に、ホスト計算機180にI/O成功を通知する。これに対して、非同期コピーは、プライマリボリューム171Pへの書き込み完了後、セカンダリボリューム171Sへのコピー完了前に、ホスト計算機180にI/O成功を通知する。 In the case of synchronous copy, when the host computer 180 writes to the primary volume 171P, after the copy to the secondary volume 171S is completed (typically after writing to the cache memory), I / O success is made to the host computer 180. Notice. In contrast, asynchronous copy notifies the host computer 180 of I / O success after completion of writing to the primary volume 171P and before completion of copying to the secondary volume 171S.
 本実施形態のストレージシステムは、プライマリボリューム171Pからセカンダリボリューム171Sへのコピー用のバッファとして、ジャーナルボリューム(JVOL)171JP、171JSを使用する。第1ストレージシステム10Aにおいて、プライマリボリューム171Pとジャーナルボリューム171JPとがグループ化されている。第2ストレージシステム10Bにおいて、セカンダリボリューム171Sとジャーナルボリューム171JSとがグループ化されている。 The storage system of this embodiment uses journal volumes (JVOL) 171JP and 171JS as a buffer for copying from the primary volume 171P to the secondary volume 171S. In the first storage system 10A, the primary volume 171P and the journal volume 171JP are grouped. In the second storage system 10B, the secondary volume 171S and the journal volume 171JS are grouped.
 プライマリボリューム171Pにおける更新データは、ジャーナルボリューム171JP、171JSを介して、セカンダリボリューム171Sに送信される。これにより、リモートコピーのデータ転送において、性能が不安定な広域ネットワークを使用することができる。 Update data in the primary volume 171P is transmitted to the secondary volume 171S via the journal volumes 171JP and 171JS. This makes it possible to use a wide area network with unstable performance in remote copy data transfer.
 図33を参照して、ホスト計算機180からのプライマリボリューム171Pへのデータ書き込み及びその更新データのセカンダリボリューム171Sへのコピーの流れを説明する。FEPK110Aは、ホスト計算機180からのライトコマンド及びライトデータを受信する。MPPK120(のマイクロプロセッサ121)は、ライトコマンドを解析し、FEPK110A及びBEPK140A(不図示)に、プライマリボリューム171P及びジャーナルボリューム171JPにライトデータを書き込むことを指示する。 33, the flow of data writing from the host computer 180 to the primary volume 171P and copying of the updated data to the secondary volume 171S will be described. The FEPK 110A receives a write command and write data from the host computer 180. The MPPK 120 (the microprocessor 121) analyzes the write command and instructs the FEPK 110A and the BEPK 140A (not shown) to write the write data to the primary volume 171P and the journal volume 171JP.
 具体的には、MPPK120は、FEPK110A及びBEPK140Aにライトデータを指定した次の転送先に転送することを指示する。最終的な転送先はプライマリボリューム171P及びジャーナルボリューム171JPであり、ライトデータは、プライマリボリューム171P及びジャーナルボリューム171JPのそれぞれに書き込まれる。ジャーナルボリューム171JPへの書き込み順序は、プライマリボリューム171Pへの書き込み順序と一致する。 Specifically, the MPPK 120 instructs the FEPK 110A and the BEPK 140A to transfer the write data to the next transfer destination specified. The final transfer destination is the primary volume 171P and the journal volume 171JP, and the write data is written to the primary volume 171P and the journal volume 171JP, respectively. The order of writing to the journal volume 171JP matches the order of writing to the primary volume 171P.
 本図において、ライトデータのキャッシュメモリ131への書き込みの説明は省略されている、又はライトデータはキャッシュメモリ131を介することなくボリュームに格納される。MPPK120は、ライトデータのキャッシュメモリ131への書き込み完了又はボリュームへの書き込み完了に応答して、ホスト計算機180に書き込み完了を通知する。 In this figure, the description of writing the write data to the cache memory 131 is omitted, or the write data is stored in the volume without going through the cache memory 131. The MPPK 120 notifies the host computer 180 of the completion of writing in response to the completion of writing of the write data to the cache memory 131 or the completion of writing to the volume.
 MPPK120は、ジャーナルボリューム171JPの更新に従って、ジャーナルボリューム171JPの管理データを更新する。図33に示すように、ジャーナルボリューム171JPは、管理領域611とデータ領域612を有し、それぞれが、ジャーナルボリューム管理データ及び更新データを格納する。ジャーナルボリューム管理データはジャーナルボリューム外に格納されていてもよい。 The MPPK 120 updates the management data of the journal volume 171JP according to the update of the journal volume 171JP. As shown in FIG. 33, the journal volume 171JP has a management area 611 and a data area 612, each storing journal volume management data and update data. Journal volume management data may be stored outside the journal volume.
 ジャーナルボリューム管理データは、シーケンス番号601及びポインタ602のペアを含む。これらの値のペアが、各ライトデータ(更新データ)に付与される。本図の例において、シーケンス番号601は、1からnの値のいずれかの値であり、データ領域に格納された順に、各ライトデータに昇順で付与される。シーケンス番号は循環的であり、nが付与されたライトデータの次のデータには1が付与される。ポインタ602は、データ領域612において対応するシーケンス番号が付与されているライトデータが格納されている位置(アドレス)を示す。 Journal volume management data includes a sequence number 601 and pointer 602 pair. A pair of these values is given to each write data (update data). In the example of this figure, the sequence number 601 is any value from 1 to n, and is assigned to each write data in ascending order in the order stored in the data area. The sequence number is cyclic, and 1 is assigned to the data next to the write data to which n is assigned. A pointer 602 indicates a position (address) where write data to which a corresponding sequence number is assigned in the data area 612 is stored.
 管理領域611は、シーケンス番号601とポインタ602のペアが書き込まれている領域と、未使用領域604を含む。未使用領域604は初期値を格納しており、本例において初期値は0値である。マイクロプロセッサ121は、データ領域612に格納されている更新データを第2ストレージシステム10Bに転送すると、そのデータのシーケンス番号601とポインタ602を格納している領域の値を初期値(無効値)に更新する。更新データの転送順序は、更新データのジャーナルボリューム171JPへの書き込み順序と一致する。 The management area 611 includes an area where a pair of sequence number 601 and pointer 602 is written, and an unused area 604. The unused area 604 stores an initial value. In this example, the initial value is a zero value. When the microprocessor 121 transfers the update data stored in the data area 612 to the second storage system 10B, the value of the area storing the sequence number 601 and the pointer 602 of the data is set to the initial value (invalid value). Update. The transfer order of update data matches the write order of update data to the journal volume 171JP.
 管理領域611において、シーケンス番号601とポインタ602の次の新たなペアを書き込む位置は決まっており、例えば、ペアは、管理領域611におけるアドレス昇順で書き込まれる。終点アドレスに書き込まれているペアの次のペアは開始アドレスに書き込まれる。 In the management area 611, the position where the next new pair of the sequence number 601 and the pointer 602 is written is determined. For example, the pair is written in the ascending order of addresses in the management area 611. The next pair written to the end point address is written to the start address.
 シーケンス番号601とポインタ602とを格納する領域(ジャーナル領域とも呼ぶ)において、初期値を格納している領域の直前位置のシーケンス番号601、つまりジャーナル領域の先頭のシーケンス番号が最も新しい更新データを示す。一方、初期値を格納している領域の直後位置のシーケンス番号601、つまりジャーナル領域の最後尾のシーケンス番号が最も古い更新データを示す。 In the area for storing the sequence number 601 and the pointer 602 (also referred to as a journal area), the sequence number 601 immediately before the area storing the initial value, that is, the first sequence number in the journal area indicates the latest update data. . On the other hand, the sequence number 601 immediately after the area storing the initial value, that is, the update data having the oldest sequence number in the journal area is indicated.
 上述のように、第1ストレージシステム10AのMPPK120Aは、ジャーナルボリューム171JPに格納されている更新データを、更新順(書き込み順)で、第2ストレージシステム10Bに転送する。第2ストレージシステム10BのMPPK120Bは、そのFEPK110Bが受信した更新データを、順次、ジャーナルボリューム171JSに格納する。本図においてキャッシュメモリ131へのキャッシングが省略されている。MPPK120Bは、規定のタイミングで、ジャーナルボリューム171JPに格納されている更新データを、更新順序でセカンダリボリューム171Sに書き込む。 As described above, the MPPK 120A of the first storage system 10A transfers the update data stored in the journal volume 171JP to the second storage system 10B in the update order (write order). The MPPK 120B of the second storage system 10B sequentially stores the update data received by the FEPK 110B in the journal volume 171JS. In this figure, caching to the cache memory 131 is omitted. The MPPK 120B writes the update data stored in the journal volume 171JP to the secondary volume 171S in the update order at a specified timing.
 第2ストレージシステム10Bのジャーナルボリューム171JSは、ジャーナルボリューム171JPと同様に、管理領域とデータ領域とを含み、それぞれが、ジャーナル管理データと更新データを格納する。 As with the journal volume 171JP, the journal volume 171JS of the second storage system 10B includes a management area and a data area, and each stores journal management data and update data.
 MPPK120Bは、更新データをジャーナルボリューム171JSに格納してから、新たなシーケンス番号及びポインタを書き込み、管理データを更新する。管理データの構成はジャーナルボリューム171JPと同様である。ジャーナルボリューム171JS内の更新データがセカンダリボリューム171Sに書き込まれると、MPPK120Bは、対応するシーケンス番号とポインタの値を初期値(無効値)に変更する。 The MPPK 120B stores the update data in the journal volume 171JS, then writes a new sequence number and pointer, and updates the management data. The configuration of management data is the same as that of the journal volume 171JP. When update data in the journal volume 171JS is written to the secondary volume 171S, the MPPK 120B changes the corresponding sequence number and pointer value to the initial value (invalid value).
 図34は、第1ストレージシステム10Aにおけるローカルメモリ122が格納している制御情報を示している。本実施形態において、LM非同期リモートコピーシーケンス番号管理テーブル330が、ローカルメモリ122内に格納されている。図35は、第1ストレージシステム10Aにおける共有メモリ132が格納している制御情報を示している。本実施形態において、非同期リモートコピー管理テーブル540及びSM非同期リモートコピーシーケンス番号管理テーブル530が格納されている。 FIG. 34 shows control information stored in the local memory 122 in the first storage system 10A. In this embodiment, the LM asynchronous remote copy sequence number management table 330 is stored in the local memory 122. FIG. 35 shows control information stored in the shared memory 132 in the first storage system 10A. In this embodiment, an asynchronous remote copy management table 540 and an SM asynchronous remote copy sequence number management table 530 are stored.
 非同期リモートコピー管理テーブル540は、ペア管理のための管理情報を格納している。具体的には、プライマリボリュームとセカンダリボリュームの各ペアを管理する管理情報、リモートコピーのパスの情報、そして、プライマリボリューム及びセカンダリボリュームのそれぞれとグループ化されるジャーナルボリュームの情報を含む。マイクロプロセッサ121は、この管理テーブル540を参照して、リモートコピーの実行を制御する。 The asynchronous remote copy management table 540 stores management information for pair management. Specifically, it includes management information for managing each pair of primary volume and secondary volume, remote copy path information, and journal volume information grouped with each of the primary volume and secondary volume. The microprocessor 121 refers to the management table 540 and controls execution of remote copy.
 図36は、LM非同期リモートコピーシーケンス番号管理テーブル330の一例を示す。LM非同期リモートコピーシーケンス番号管理テーブル330は、ローカルメモリ122において、各ジャーナルボリュームの最新シーケンス番号を管理する。MPPK120Aのマイクロプロセッサ121は、LM非同期リモートコピーシーケンス番号管理テーブル330を参照して、新たにジャーナルボリューム171JSに書き込まれる更新データのシーケンス番号を決定することができる。 FIG. 36 shows an example of the LM asynchronous remote copy sequence number management table 330. The LM asynchronous remote copy sequence number management table 330 manages the latest sequence number of each journal volume in the local memory 122. The microprocessor 121 of the MPPK 120A can determine the sequence number of update data to be newly written to the journal volume 171JS with reference to the LM asynchronous remote copy sequence number management table 330.
 LM非同期リモートコピーシーケンス番号管理テーブル330は、JVOL番号のカラム331、シーケンス番号のカラム332、そしてシーケンス番号差分のカラム333を有する。JVOL番号は、第1ストレージシステム10Aにおけるジャーナルボリュームの識別子である。シーケンス番号のカラム332は、JVOLにおける先頭シーケンス番号を示すデータを格納する。シーケンス番号差分については後述する。 The LM asynchronous remote copy sequence number management table 330 has a JVOL number column 331, a sequence number column 332, and a sequence number difference column 333. The JVOL number is an identifier of a journal volume in the first storage system 10A. The sequence number column 332 stores data indicating the leading sequence number in the JVOL. The sequence number difference will be described later.
 図37は、SM非同期リモートコピーシーケンス番号管理テーブル530の一例を示す。SM非同期リモートコピーシーケンス番号管理テーブル530は、共有メモリ132において、各ジャーナルボリュームのシーケンス番号を管理する。SM非同期リモートコピーシーケンス番号管理テーブル530は、JVOL番号のカラム531及びシーケンス番号のカラム532を有する。 FIG. 37 shows an example of the SM asynchronous remote copy sequence number management table 530. The SM asynchronous remote copy sequence number management table 530 manages the sequence number of each journal volume in the shared memory 132. The SM asynchronous remote copy sequence number management table 530 includes a JVOL number column 531 and a sequence number column 532.
 シーケンス番号のカラム532は、JVOLにおける先頭シーケンス番号を示すデータを格納する。1エントリにおけるシーケンス番号のカラム532の値は、ローカルメモリ122において対応するシーケンス番号のカラム332の値一致する又は異なる(図36及び図37の例では全てのエントリの値が異なる)。それらの更新は、同期又は非同期である。 The sequence number column 532 stores data indicating the head sequence number in JVOL. The value of the sequence number column 532 in one entry matches or is different from the value of the corresponding sequence number column 332 in the local memory 122 (the values of all the entries are different in the examples of FIGS. 36 and 37). Those updates are synchronous or asynchronous.
 図36及び図37に示すように、各JVOLのエントリにおいて、シーケンス番号差分カラム333のフィールドの値は、LM非同期リモートコピーシーケンス番号管理テーブル330のシーケンス番号カラム332の対応フィールドの値と、SM非同期リモートコピーシーケンス番号管理テーブル530のシーケンス番号カラム532の対応フィールドの値との差分である。 As shown in FIGS. 36 and 37, in each JVOL entry, the value of the field of the sequence number difference column 333 is the value of the corresponding field of the sequence number column 332 of the LM asynchronous remote copy sequence number management table 330 and the SM asynchronous. This is a difference from the value of the corresponding field in the sequence number column 532 of the remote copy sequence number management table 530.
 このように、シーケンス番号差分カラム333のフィールドの値は、シーケンス番号カラム532における対応フィールドの前回更新からのJVOLにおけるシーケンス番号の更新を示し、共有メモリ133に格納されている前回更新時の先頭シーケンス番号と最新の先頭シーケンス番号との差分を示す。 As described above, the field value in the sequence number difference column 333 indicates the update of the sequence number in the JVOL from the previous update of the corresponding field in the sequence number column 532, and the first sequence at the time of the previous update stored in the shared memory 133 The difference between the number and the latest start sequence number is shown.
 MPPK120Aのマイクロプロセッサ121は、ジャーナルボリュームに更新データの書き込みがあるたびに、そのジャーナルボリュームのエントリにおいて、シーケンス番号カラム332及びシーケンス番号差分カラム333の値をインクリメントする。シーケンス番号カラム332の各フィールドは、対応するジャーナルボリュームの最新のシーケンス番号(最後に割り当てたシーケンス番号)を示している。シーケンス番号カラム332の各フィールドの値は、最大値からインクリメントされると最小値に戻る。 Each time update data is written to a journal volume, the microprocessor 121 of the MPPK 120A increments the values of the sequence number column 332 and the sequence number difference column 333 in the journal volume entry. Each field of the sequence number column 332 indicates the latest sequence number (the last assigned sequence number) of the corresponding journal volume. The value of each field in the sequence number column 332 returns to the minimum value when incremented from the maximum value.
 シーケンス番号差分カラム333のビット数(最大値)は、シーケンス番号カラム332のビット数(最大値)よりも小さい。マイクロプロセッサ121は、シーケンス番号差分カラム333のフィールドの値が最大値に達すると、LM非同期リモートコピーシーケンス番号管理テーブル330における当該エントリの更新を、SM非同期リモートコピーシーケンス番号管理テーブル530の対応エントリに反映する。 The number of bits (maximum value) in the sequence number difference column 333 is smaller than the number of bits (maximum value) in the sequence number column 332. When the value of the field in the sequence number difference column 333 reaches the maximum value, the microprocessor 121 updates the entry in the LM asynchronous remote copy sequence number management table 330 to the corresponding entry in the SM asynchronous remote copy sequence number management table 530. reflect.
 具体的には、SM非同期リモートコピーシーケンス番号管理テーブル530における対応エントリのシーケンス番号を、LM非同期リモートコピーシーケンス番号管理テーブル330の対応エントリのシーケンス番号に一致させる。SM非同期リモートコピーシーケンス番号管理テーブル530における更新値は、更新前の値にシーケンス番号差分カラム333における対応フィールドの値を加算した値である。 Specifically, the sequence number of the corresponding entry in the SM asynchronous remote copy sequence number management table 530 is matched with the sequence number of the corresponding entry in the LM asynchronous remote copy sequence number management table 330. The update value in the SM asynchronous remote copy sequence number management table 530 is a value obtained by adding the value of the corresponding field in the sequence number difference column 333 to the value before the update.
 このように、ローカルメモリ122においてシーケンス番号の最大数よりも小さい所定数までシーケンス番号の変化をカウントし、ローカルメモリ122におけるシーケンス番号の変化を共有メモリ132のシーケンス番号に反映することで、マイクロプロセッサ121によるCMPK130へのアクセス回数を低減し、それらの間の通信によるマイクロプロセッサ121及びCMPK130の負荷を低減することができる。 In this way, the change in the sequence number is counted up to a predetermined number smaller than the maximum number of sequence numbers in the local memory 122, and the change in the sequence number in the local memory 122 is reflected in the sequence number in the shared memory 132, whereby the microprocessor The number of accesses to the CMPK 130 by 121 can be reduced, and the load on the microprocessor 121 and the CMPK 130 due to communication between them can be reduced.
 図38のフローチャートを参照して、本実施形態の非同期リモートコピーシーケンス番号の更新を説明する。この処理は、ジャーナルボリューム171JPの担当MPPK120Aのマイクロプロセッサ121が実行する。本形態において、グループを構成するプライマリボリューム171Pとジャーナルボリューム171JPとは、同一のMPPK120に担当される。 38, update of the asynchronous remote copy sequence number according to the present embodiment will be described. This processing is executed by the microprocessor 121 of the MPPK 120A in charge of the journal volume 171JP. In this embodiment, the primary volume 171P and the journal volume 171JP constituting the group are assigned to the same MPPK 120.
 マイクロプロセッサ121は、ジャーナルボリューム171JSへの更新データ書き込みがあると、LM非同期リモートコピーシーケンス番号管理テーブル330を参照して、当該ジャーナルボリューム171JSの管理領域611に、新たなシーケンス番号及びポインタを追加する。さらに、マイクロプロセッサ121は、LM非同期リモートコピーシーケンス番号管理テーブル330において、当該ジャーナルボリューム171JSのエントリのシーケンス番号及びシーケンス番号差分の値を更新する(本例においてそれら値をインクリメントする)(S412)。 When update data is written to the journal volume 171JS, the microprocessor 121 refers to the LM asynchronous remote copy sequence number management table 330 and adds a new sequence number and pointer to the management area 611 of the journal volume 171JS. . Further, the microprocessor 121 updates the sequence number and the sequence number difference value of the entry of the journal volume 171JS in the LM asynchronous remote copy sequence number management table 330 (in this example, increments these values) (S412).
 マイクロプロセッサ121は、当該ボリュームの性能ブースト機能がONであるか判定する(S413)。性能ブースト機能がOFFである場合(S413:NO)、マイクロプロセッサ121は、ステップS417に進む。性能ブースト機能がONである場合(S413:YES)、マイクロプロセッサ121は、自身の過負荷フラグがONであるか判定する(S414)。 The microprocessor 121 determines whether or not the performance boost function of the volume is ON (S413). When the performance boost function is OFF (S413: NO), the microprocessor 121 proceeds to step S417. When the performance boost function is ON (S413: YES), the microprocessor 121 determines whether its own overload flag is ON (S414).
 過負荷フラグがONである場合(S414:YES)、マイクロプロセッサ121は、ステップS416に進む。過負荷フラグがOFFである場合(S414:NO)、マイクロプロセッサ121は、アクセス先のCMPKの過負荷フラグがONであるか判定する(S415)。 If the overload flag is ON (S414: YES), the microprocessor 121 proceeds to step S416. When the overload flag is OFF (S414: NO), the microprocessor 121 determines whether the overload flag of the CMPK that is the access destination is ON (S415).
 CMPKの過負荷フラグがOFFである場合(S415:NO)、マイクロプロセッサ121は、ステップS417に進む。CMPKの過負荷フラグがONである場合(S415:YES)、マイクロプロセッサ121は、ステップS416に進む。ステップS413からステップS415の詳細は、第2実施形態で既に説明した通りである。マイクロプロセッサ121及び/又はCMPK130の負荷に応じて制御情報の更新反映を制御することで、システム性能の低下を抑えつつ、共有メモリの更新をより適切に行うことができる。 If the CMPK overload flag is OFF (S415: NO), the microprocessor 121 proceeds to step S417. If the CMPK overload flag is ON (S415: YES), the microprocessor 121 proceeds to step S416. Details of step S413 to step S415 are as already described in the second embodiment. By controlling the update reflection of the control information in accordance with the load on the microprocessor 121 and / or the CMPK 130, the shared memory can be updated more appropriately while suppressing a decrease in system performance.
 ステップS416において、マイクロプロセッサ121は、LM非同期リモートコピーシーケンス番号管理テーブル330において、当該ジャーナルボリューム171JSのシーケンス番号差分が、最大値であるか判定する。その値が最大値ではない場合(S416:NO)、マイクロプロセッサ121は、本処理を終了する。 In step S416, the microprocessor 121 determines whether the sequence number difference of the journal volume 171JS is the maximum value in the LM asynchronous remote copy sequence number management table 330. If the value is not the maximum value (S416: NO), the microprocessor 121 ends this process.
 上記値が最大値である場合(S416:YES)、マイクロプロセッサ121は、SM非同期リモートコピーシーケンス番号管理テーブル530において、当該ジャーナルボリューム171JSのシーケンス番号を更新する。具体的には、マイクロプロセッサ121は、現在のシーケンス番号の値にシーケンス番号差分の値を加算した値に更新する。ステップS417において、マイクロプロセッサ121は、最大値に達しているシーケンス番号差分のフィールドの値を0値に更新(初期化)する。 When the above value is the maximum value (S416: YES), the microprocessor 121 updates the sequence number of the journal volume 171JS in the SM asynchronous remote copy sequence number management table 530. Specifically, the microprocessor 121 updates the current sequence number value to a value obtained by adding the sequence number difference value. In step S417, the microprocessor 121 updates (initializes) the value of the sequence number difference field that has reached the maximum value to 0 value.
 上記シーケン番号差分を使用した共有メモリ132におけるシーケンス番号の更新(性能ブースト機能)を使用しない場合、LM非同期リモートコピーシーケンス番号管理テーブル330及びSM非同期リモートコピーシーケンス番号管理テーブル530の更新は同期する。 When the sequence number update (performance boost function) in the shared memory 132 using the sequence number difference is not used, the updates of the LM asynchronous remote copy sequence number management table 330 and the SM asynchronous remote copy sequence number management table 530 are synchronized.
 MPPK120Aに障害が発生した場合、ローカルメモリ122上のLM非同期リモートコピーシーケンス番号管理テーブル330が失われる。上述のように、このテーブル330は、各ジャーナルボリュームの最新の先頭シーケンス番号を示す情報を有している。正常なリモートコピーを行うためには、ジャーナル管理データにおける最新の先頭シーケンス番号が必要である。 When a failure occurs in the MPPK 120A, the LM asynchronous remote copy sequence number management table 330 on the local memory 122 is lost. As described above, this table 330 has information indicating the latest head sequence number of each journal volume. In order to perform normal remote copy, the latest start sequence number in the journal management data is required.
 本実施形態の第1ストレージシステム10は、障害発生したMPPK120Aと異なるMPPK120Aが、ジャーナルボリューム171JSの管理領域611を参照して、ジャーナル領域の先頭を示す最新の先頭シーケンス番号を確認する。図39のフローチャートを参照して、MPPK障害発生時の非同期リモートコピーシーケンス番号回復処理を説明する。 In the first storage system 10 of this embodiment, the MPPK 120A different from the MPPK 120A in which the failure has occurred refers to the management area 611 of the journal volume 171JS and confirms the latest start sequence number indicating the start of the journal area. The asynchronous remote copy sequence number recovery processing when an MPPK failure occurs will be described with reference to the flowchart of FIG.
 担当を引き継いだ正常なMPPK120Aのマイクロプロセッサ121は、共有メモリ123に格納されているSM非同期リモートコピーシーケンス番号管理テーブル530から、一つのジャーナルボリュームを選択し、そのシーケンス番号を読み出す(S422)。マイクロプロセッサ121は、そのジャーナルボリュームから、上記シーケンス番号の領域の次のシーケンス番号領域からデータを読み出す(S423)。 The microprocessor 121 of the normal MPPK 120A that has taken over the charge selects one journal volume from the SM asynchronous remote copy sequence number management table 530 stored in the shared memory 123, and reads the sequence number (S422). The microprocessor 121 reads data from the sequence number area next to the sequence number area from the journal volume (S423).
 マイクロプロセッサ121は、ステップS423で読み出したシーケンス番号が0値(無効値)であるか判定する(S424)。そのシーケンス番号が0値ではない場合(S424:NO)、マイクロプロセッサ121は、その読みだしたシーケンス番号をテンポラル領域(典型的にそのローカルメモリ122内の領域)に格納する(S425)。 The microprocessor 121 determines whether the sequence number read in step S423 is a 0 value (invalid value) (S424). If the sequence number is not 0 (S424: NO), the microprocessor 121 stores the read sequence number in a temporal area (typically, an area in the local memory 122) (S425).
 そのシーケンス番号が0値である場合(S424:YES)、その領域は未使用領域であり、マイクロプロセッサ121は、テンポラル領域に格納されているシーケンス番号で、SM非同期リモートコピーシーケンス番号管理テーブル530における対応ジャーナルボリュームのシーケンス番号を更新する。SM非同期リモートコピーシーケンス番号管理テーブル530のシーケンス番号が最新の先頭シーケンス番号である場合、更新は不要である。マイクロプロセッサ121は、SM非同期リモートコピーシーケンス番号管理テーブル530に格納されている全てのジャーナルボリュームについて、上記更新を行う。 If the sequence number is 0 (S424: YES), the area is an unused area, and the microprocessor 121 uses the sequence number stored in the temporal area to store the value in the SM asynchronous remote copy sequence number management table 530. Update the sequence number of the corresponding journal volume. When the sequence number in the SM asynchronous remote copy sequence number management table 530 is the latest head sequence number, updating is not necessary. The microprocessor 121 performs the above update for all journal volumes stored in the SM asynchronous remote copy sequence number management table 530.
 上記フローにより、SM非同期リモートコピーシーケンス番号管理テーブル530が最新情報を含むように更新され、他のMPPK120Aが、障害が起きたMPPK120Aの担当を引き継ぎ、正常な非同期リモートコピーを続けることができる。 According to the above flow, the SM asynchronous remote copy sequence number management table 530 is updated to include the latest information, and the other MPPK 120A can take over the responsibility of the MPPK 120A in which the failure has occurred and continue normal asynchronous remote copy.
 上記シーケンス番号管理テーブル330、530が格納する値は一例であって、それらは、先頭シーケンス番号又はそれらテーブル330、350の先頭シーケンス番号間の差分を示すことができれば、どのような値を格納していてもよい。 The values stored in the sequence number management tables 330 and 530 are examples, and any values may be stored in the sequence number management tables 330 and 530 as long as they can indicate the head sequence numbers or the difference between the head sequence numbers in the tables 330 and 350. It may be.
第4実施形態
 以下において、本発明を非同期ローカルコピーに適用した例を説明する。以下においては、上記他の実施形態と異なる点を主に説明する。図40は、本実施形態のローカルメモリ122に格納されている制御情報を示している。ローカルメモリ122には、LMローカルコピー差分管理テーブル340及びLMローカルコピー差分領域間引き動作管理テーブル350が格納されている。
Fourth Embodiment Hereinafter, an example in which the present invention is applied to asynchronous local copy will be described. In the following, differences from the other embodiments will be mainly described. FIG. 40 shows control information stored in the local memory 122 of this embodiment. The local memory 122 stores an LM local copy difference management table 340 and an LM local copy difference area thinning operation management table 350.
 図41は、本実施形態の共有メモリ132内の制御情報を示している。SMローカルコピー差分管理テーブル560、SMローカルコピー差分領域間引き動作管理テーブル570、ローカルコピー管理テーブル580が、共有メモリ132における制御情報に含まれている。複数のMPPK120が、共有メモリ132内テーブル560、570、580を参照可能である。特に、SMローカルコピー差分管理テーブル560及びSMローカルコピー差分領域間引き動作管理テーブル570は、MPPK120の障害時に、他のMPPK120により参照される。 FIG. 41 shows control information in the shared memory 132 of the present embodiment. The SM local copy difference management table 560, the SM local copy difference area thinning operation management table 570, and the local copy management table 580 are included in the control information in the shared memory 132. A plurality of MPPKs 120 can refer to the tables 560, 570, and 580 in the shared memory 132. In particular, the SM local copy difference management table 560 and the SM local copy difference area thinning operation management table 570 are referred to by other MPPKs 120 when the MPPK 120 fails.
 ローカルコピー管理テーブル580は、プライマリボリュームとセカンダリボリュームの各ペアを管理する管理情報を含む。例えば、ペアを構成するプライマリボリュームとセカンダリボリュームの識別情報、それらのアドレス情報及びコピーポリシの情報を含む。マイクロプロセッサ121は、ローカルコピー管理テーブル580を参照して、ローカルコピーの実行を制御する。 The local copy management table 580 includes management information for managing each pair of a primary volume and a secondary volume. For example, it includes identification information of a primary volume and a secondary volume that constitute a pair, address information thereof, and copy policy information. The microprocessor 121 refers to the local copy management table 580 and controls execution of local copy.
 共有メモリ132内のSMローカルコピー差分管理テーブル560及びSMローカルコピー差分領域間引き動作管理テーブル570は、それぞれ、ローカルメモリ122内のLMローカルコピー差分管理テーブル340及びLMローカルコピー差分領域間引き動作管理テーブル350のバックアップである。マイクロプロセッサ121は、予め定められた規則に従って、ローカルメモリ122でのテーブル340、350の更新を、共有メモリ132のテーブル560、570に反映する。 The SM local copy difference management table 560 and the SM local copy difference area thinning operation management table 570 in the shared memory 132 are respectively the LM local copy difference management table 340 and the LM local copy difference area thinning operation management table 350 in the local memory 122. This is a backup. The microprocessor 121 reflects the update of the tables 340 and 350 in the local memory 122 in the tables 560 and 570 of the shared memory 132 according to a predetermined rule.
 図42は、LMローカルコピー差分管理テーブル340の一例を示す。LMローカルコピー差分管理テーブル340は、ボリューム番号のカラム341、論理アドレスのカラム342、差分有ビット列のカラム343を有する。ボリューム番号は、ストレージシステム内でのプライマリボリュームの識別子である。各エントリは、ボリューム内の所定広さの記憶領域(アドレス範囲)を示している。論理アドレスは、各エントリの記憶領域の開始論理アドレスを示す。本例において、エントリの記憶領域の広さは共通である。 FIG. 42 shows an example of the LM local copy difference management table 340. The LM local copy difference management table 340 includes a volume number column 341, a logical address column 342, and a differential bit string column 343. The volume number is an identifier of the primary volume in the storage system. Each entry indicates a storage area (address range) having a predetermined size in the volume. The logical address indicates the start logical address of the storage area of each entry. In this example, the storage areas of the entries are common.
 差分有ビット列は、そのエントリの記憶領域において、プライマリボリュームとセカンダリボリュームとの間にデータの相違が存在するか否か、つまり、プライマリボリュームでの更新がセカンダリボリュームに反映されているか否かを示す。 The bit string with difference indicates whether or not there is a data difference between the primary volume and the secondary volume in the storage area of the entry, that is, whether or not the update in the primary volume is reflected in the secondary volume. .
 差分有ビット列の各ビット(差分有ビットとも呼ぶ)は、エントリの記憶領域における各部分領域のデータがプライマリボリュームとセカンダリボリュームとの間で異なるか否かを示す。本例では、各ビットに対応する領域の広さは共通である。本例において、差分有ビット列のビットが1である場合、その領域のデータは、プライマリボリュームとセカンダリボリュームとで異なることを示す。 Each bit of the bit string with difference (also referred to as a bit with difference) indicates whether or not the data of each partial area in the storage area of the entry is different between the primary volume and the secondary volume. In this example, the area size corresponding to each bit is common. In this example, if the bit of the differential bit string is 1, it indicates that the data in that area is different between the primary volume and the secondary volume.
 マイクロプロセッサ121は、所定のタイミングで、プライマリボリュームの更新データをセカンダリボリュームにコピーする(非同期ローカルコピー)。非同期ローカルコピーにおいて、マイクロプロセッサ121は、LMローカルコピー差分管理テーブル340を参照し、プライマリボリュームにおける差分有ビットが1である領域のデータを、セカンダリボリュームにコピーする。 The microprocessor 121 copies the update data of the primary volume to the secondary volume at a predetermined timing (asynchronous local copy). In the asynchronous local copy, the microprocessor 121 refers to the LM local copy difference management table 340 and copies the data in the area where the differential bit in the primary volume is 1 to the secondary volume.
 この非同期ローカルコピーに応答して、マイクロプロセッサ121は、LMローカルコピー差分管理テーブル340において、更新がセカンダリボリュームに反映された領域の差分有ビットを0値に更新する。本例において、一回のコピーオペレーションにおいて、プライマリボリュームの全ての更新データが、セカンダリボリュームにコピーされる。 In response to this asynchronous local copy, the microprocessor 121 updates the difference presence bit of the area in which the update is reflected in the secondary volume to 0 value in the LM local copy difference management table 340. In this example, all the update data of the primary volume is copied to the secondary volume in one copy operation.
 図43は、SMローカルコピー差分管理テーブル560の一例を示す。SMローカルコピー差分管理テーブル560は、LMローカルコピー差分管理テーブル340のバックアップテーブルであり、LMローカルコピー差分管理テーブル340と同一の構成を有する。具体的には、ボリューム番号のカラム561、論理アドレスのカラム562、差分有ビット列のカラム563を有する。 FIG. 43 shows an example of the SM local copy difference management table 560. The SM local copy difference management table 560 is a backup table of the LM local copy difference management table 340, and has the same configuration as the LM local copy difference management table 340. Specifically, it includes a column 561 for volume numbers, a column 562 for logical addresses, and a column 563 for bit strings with difference.
 マイクロプロセッサ121は、所定規則に従って、LMローカルコピー差分管理テーブル340における更新を、SMローカルコピー差分管理テーブル560にコピーする。本例において、プライマリボリュームからセカンダリボリュームへの非同期ローカルコピーによるLMローカルコピー差分管理テーブル340の更新とSMローカルコピー差分管理テーブル560更新は同期する。プライマリボリュームのへのデータライトによる更新に対するSMローカルコピー差分管理テーブル560の更新については後述する。 The microprocessor 121 copies the update in the LM local copy difference management table 340 to the SM local copy difference management table 560 according to a predetermined rule. In this example, the update of the LM local copy difference management table 340 and the update of the SM local copy difference management table 560 by asynchronous local copy from the primary volume to the secondary volume are synchronized. The update of the SM local copy difference management table 560 for the update by data write to the primary volume will be described later.
 図44は、LMローカルコピー差分領域間引き動作管理テーブル350の一例を示す。LMローカルコピー差分領域間引き動作管理テーブル350は、ボリューム番号のカラム351、論理アドレスのカラム352、間引き中ビット列のカラム353を有する。各エントリは、ボリューム内の所定広さの記憶領域(アドレス範囲)を示している。 FIG. 44 shows an example of the LM local copy difference area thinning operation management table 350. The LM local copy difference area thinning-out operation management table 350 includes a volume number column 351, a logical address column 352, and a thinning-out bit string column 353. Each entry indicates a storage area (address range) having a predetermined size in the volume.
 論理アドレスは、各エントリの記憶領域の開始論理アドレスを示す。本例において、エントリの記憶領域の広さは共通である。好ましくは、LMローカルコピー差分領域間引き動作管理テーブル350におけるエントリの記憶領域は、LMローカルコピー差分管理テーブル340のエントリの記憶領域よりも広い。 The logical address indicates the start logical address of the storage area of each entry. In this example, the storage areas of the entries are common. Preferably, the entry storage area in the LM local copy difference area thinning-out operation management table 350 is wider than the entry storage area in the LM local copy difference management table 340.
 間引き中ビット列は、LMローカルコピー差分管理テーブル340における差分有ビット列の更新を、LMローカルコピー差分管理テーブル340の対応する差分有ビット列に反映するか否かを示す。上述のように、LMローカルコピー差分領域間引き動作管理テーブル350において、間引き中ビット列は、論理ボリューム内の記憶領域に関連づけられている。 The thinning-out bit string indicates whether or not the update of the bit string with difference in the LM local copy difference management table 340 is reflected in the corresponding bit string with difference in the LM local copy difference management table 340. As described above, in the LM local copy difference area thinning operation management table 350, the thinning-out bit string is associated with the storage area in the logical volume.
 間引き中ビット列の各ビット(間引き中ビットとも呼ぶ)は、その間引き中ビット列に関連付けられている記憶領域の部分領域に関連付けられている。間引き中ビット列の各ビットは、それが関連づけられている部分領域を介して、1又は複数の差分有ビットに関連づけられる。 Each bit of the thinning-out bit string (also referred to as thinning-out bit string) is associated with a partial area of the storage area associated with the thinning-out bit string. Each bit of the thinning-out bit string is associated with one or a plurality of differential bits through a partial area to which the bit string is associated.
 好ましい本例において、間引き中ビットは複数の差分有ビットに関連づけられている。また、LMローカルコピー差分領域間引き動作管理テーブル350におけるエントリの記憶領域(アドレス範囲)は、LMローカルコピー差分管理テーブル340におけるエントリの記憶領域(アドレス範囲)よりも広い。間引きビット列のビット数は、差分有ビット列のビット数と同一又は異なる(図43、図44の例において同一)。 In the preferred example, the thinning-out bit is associated with a plurality of differential bits. The entry storage area (address range) in the LM local copy difference area thinning operation management table 350 is wider than the entry storage area (address range) in the LM local copy difference management table 340. The number of bits in the thinned-out bit string is the same as or different from the number of bits in the differential bit string (same in the examples of FIGS. 43 and 44).
 上述のように、LMローカルコピー差分管理テーブル340において、各差分有ビットは、記憶領域に関連づけられている。間引き中ビットに関連づけられている記憶領域の少なくとも一部が差分有ビットの記憶領域と一致する場合、その間引き中ビットはその差分有ビットに関連づけられている。 As described above, in the LM local copy difference management table 340, each difference bit is associated with a storage area. If at least a part of the storage area associated with the thinning-out bit matches the storage area with a difference bit, the thinning-out bit is associated with the difference-with-bit.
 間引き中ビットが1である場合、ローカルメモリ122においてそれに関連づけられている差分有ビットの、プライマリボリュームの更新(データ書き込み)に応答した更新は、共有メモリ132における差分有ビットに反映されない。具体的には、プライマリボリュームへのライトコマンドの受信に応答して、マイクロプロセッサ121は、LMローカルコピー差分領域間引き動作管理テーブル350において、ライトコマンドが指示する領域の間引き中ビットを参照する。 When the thinning-out bit is 1, the update in response to the primary volume update (data write) of the differential bit associated with it in the local memory 122 is not reflected in the differential bit in the shared memory 132. Specifically, in response to the reception of the write command to the primary volume, the microprocessor 121 refers to the thinning-out bit in the area indicated by the write command in the LM local copy difference area thinning-out operation management table 350.
 間引き中ビットが1である場合、マイクロプロセッサ121は、LMローカルコピー差分管理テーブル340において対応する差分有ビットの更新を、SMローカルコピー差分管理テーブル560に反映しない。これにより、MPPK120とCMPK130との間の通信によるMPPK120とCMPK130の負荷を低減する。 When the thinning-out bit is 1, the microprocessor 121 does not reflect the corresponding difference bit update in the LM local copy difference management table 340 in the SM local copy difference management table 560. Thereby, the load of MPPK120 and CMPK130 by communication between MPPK120 and CMPK130 is reduced.
 図45は、SMローカルコピー差分領域間引き動作管理テーブル570の一例を示す。SMローカルコピー差分領域間引き動作管理テーブル570は、LMローカルコピー差分領域間引き動作管理テーブル350のバックアップテーブルであり、それと同じ構成を有する。具体的には、ボリューム番号のカラム571、論理アドレスのカラム572、間引き中ビットのカラム573を有する。マイクロプロセッサ121は、LMローカルコピー差分領域間引き動作管理テーブル350の更新に同期して、SMローカルコピー差分領域間引き動作管理テーブル570を更新する。 FIG. 45 shows an example of the SM local copy difference area thinning operation management table 570. The SM local copy difference area thinning operation management table 570 is a backup table of the LM local copy difference area thinning operation management table 350 and has the same configuration as that. Specifically, it has a column 571 for volume numbers, a column 572 for logical addresses, and a column 573 for thinning-out bits. The microprocessor 121 updates the SM local copy difference area thinning operation management table 570 in synchronization with the update of the LM local copy difference area thinning operation management table 350.
 図46のフローチャートを参照して、非同期ローカルコピー差分管理情報の更新を説明する。プライマリボリュームにデータが書き込まれると、マイクロプロセッサ121は、LMローカルコピー差分管理テーブル340を更新する(S502)。具体的には、プライマリボリュームにおいて更新された領域に関連づけられている差分有ビットを更新する。 The update of the asynchronous local copy difference management information will be described with reference to the flowchart of FIG. When data is written to the primary volume, the microprocessor 121 updates the LM local copy difference management table 340 (S502). Specifically, the differential bit associated with the updated area in the primary volume is updated.
 マイクロプロセッサ121は、当該ボリュームの性能ブースト機能がONであるか判定する(S503)。性能ブースト機能がOFFである場合(S503:NO)、マイクロプロセッサ121は、ステップS509に進み、SMローカルコピー差分管理テーブル560を更新する(同期更新)。性能ブースト機能がONである場合(S503:YES)、マイクロプロセッサ121は、自身の過負荷フラグがONであるか判定する(S504)。 The microprocessor 121 determines whether or not the performance boost function of the volume is ON (S503). If the performance boost function is OFF (S503: NO), the microprocessor 121 proceeds to step S509 and updates the SM local copy difference management table 560 (synchronous update). When the performance boost function is ON (S503: YES), the microprocessor 121 determines whether its own overload flag is ON (S504).
 過負荷フラグがONである場合(S504:YES)、マイクロプロセッサ121は、ステップS506に進む。過負荷フラグがOFFである場合(S504:NO)、マイクロプロセッサ121は、アクセス先のCMPKの過負荷フラグがONであるか判定する(S505)。 If the overload flag is ON (S504: YES), the microprocessor 121 proceeds to step S506. When the overload flag is OFF (S504: NO), the microprocessor 121 determines whether or not the overload flag of the access destination CMPK is ON (S505).
 CMPKの過負荷フラグがOFFである場合(S505:NO)、マイクロプロセッサ121は、ステップS509に進み、SMローカルコピー差分管理テーブル560を更新する。CMPKの過負荷フラグがONである場合(S505:YES)、マイクロプロセッサ121は、ステップS506に進む。ステップS503からステップS505の詳細は、第2実施形態で既に説明した通りであり、システム性能の低下を抑えつつ、共有メモリ132の制御情報を適切に更新する。 If the CMPK overload flag is OFF (S505: NO), the microprocessor 121 proceeds to step S509 and updates the SM local copy difference management table 560. When the overload flag of CMPK is ON (S505: YES), the microprocessor 121 proceeds to step S506. Details of step S503 to step S505 are as already described in the second embodiment, and the control information of the shared memory 132 is appropriately updated while suppressing a decrease in system performance.
 ステップS506において、マイクロプロセッサ121は、プライマリボリュームにおいて更新された領域が間引き中であるか判定する。具体的には、マイクロプロセッサ121は、LMローカルコピー差分領域間引き動作管理テーブル350を参照し、上記更新領域の各間引き中ビットを確認する。間引き中ビットが1である場合(S506:YES)、マイクロプロセッサ121は、SMローカルコピー差分管理テーブル560において、その間引き中ビットに対応する差分有ビットの更新を省略する。 In step S506, the microprocessor 121 determines whether the area updated in the primary volume is being thinned. Specifically, the microprocessor 121 refers to the LM local copy difference area thinning operation management table 350 and checks each thinning bit in the update area. When the thinning-out bit is 1 (S506: YES), the microprocessor 121 omits the update of the differential bit corresponding to the thinning-out bit in the SM local copy difference management table 560.
 間引き中ビットが0である場合(S506:YES)、マイクロプロセッサ121は、その間引き中ビットが関連づけられている領域の差分が閾値以上であるか判定する(S507)。具体的には、マイクロプロセッサ121は、LMローカルコピー差分管理テーブル340を参照し、当該間引き中ビットに対応する差分有ビットにおいて、1のビット数が閾値以上であるか判定する。この判定基準については、図47を参照して後述するMPPK障害時の処理において説明する。 When the thinning-out bit is 0 (S506: YES), the microprocessor 121 determines whether or not the difference between the areas associated with the thinning-out bit is greater than or equal to the threshold (S507). Specifically, the microprocessor 121 refers to the LM local copy difference management table 340 and determines whether or not the number of 1 bits is greater than or equal to the threshold value in the bits with differences corresponding to the thinned bits. This criterion will be described in the MPPK failure process described later with reference to FIG.
 差分が閾値未満である場合(S507:NO)、マイクロプロセッサ121は、SMローカルコピー差分管理テーブル560を更新する(S509)。差分が閾値以上である場合(S507:YES)、マイクロプロセッサ121は、LMローカルコピー差分領域間引き動作管理テーブル350及びSMローカルコピー差分領域間引き動作管理テーブル560を更新する(S508)。具体的には、マイクロプロセッサ121は、上記2つのテーブル350、560において、上記間引き中ビットを0から1に変更する。 If the difference is less than the threshold (S507: NO), the microprocessor 121 updates the SM local copy difference management table 560 (S509). When the difference is equal to or larger than the threshold (S507: YES), the microprocessor 121 updates the LM local copy difference area thinning operation management table 350 and the SM local copy difference area thinning operation management table 560 (S508). Specifically, the microprocessor 121 changes the thinning-out bit from 0 to 1 in the two tables 350 and 560.
 次に、図47のフローチャートを参照して、MPPK120障害時における、ローカルコピー差分のコピーを説明する。MPPK120で障害発生した場合、他のMPPK120が、障害発生したMPPK120が担当していたコピーペアにおいて、プライマリボリュームからセカンダリボリュームへ、それらの差分をコピーする。これにより、コピーペアの同一性の確保し、その後の正常な非同期リモートコピーを実現する。 Next, a copy of the local copy difference when the MPPK 120 fails will be described with reference to the flowchart of FIG. When a failure occurs in the MPPK 120, another MPPK 120 copies the difference from the primary volume to the secondary volume in the copy pair that was handled by the failed MPPK 120. As a result, the identity of the copy pair is ensured, and the subsequent normal asynchronous remote copy is realized.
 上記他のMPPK120におけるマイクロプロセッサ121は、SMローカルコピー差分領域間引き動作管理テーブル570を参照し(S512)、間引き中領域が残っているか否かを判定する(S513)。間引き中領域は、その間引き中ビットが1である領域である。間引き領域が残っていなければ(S513:NO)、このフローは終了する。間引き中領域が残っている場合(S513:YES)、マイクロプロセッサ121は、プライマリボリュームにおけるその領域のデータを、セカンダリボリュームにコピーする(S514)。 The microprocessor 121 in the other MPPK 120 refers to the SM local copy difference area thinning operation management table 570 (S512), and determines whether or not a thinning-out area remains (S513). The thinning-out area is an area where the thinning-out bit is 1. If no thinning area remains (S513: NO), this flow ends. When the thinning-out area remains (S513: YES), the microprocessor 121 copies the data in that area in the primary volume to the secondary volume (S514).
 上述のように、共有メモリ132は、「1」の間引き中ビットに対応する最新の差分有ビット列を格納していない。そのため、MPPK120での障害発生時には、間引き中ビットが1(ON)である領域の全てデータを、プライマリボリュームからセカンダリボリュームにコピーする。これにより、セカンダリボリュームのデータをプライマリボリュームのデータに正確に一致させることができる。 As described above, the shared memory 132 does not store the latest differential bit string corresponding to the thinning-out bit of “1”. Therefore, when a failure occurs in the MPPK 120, all data in the area where the thinning-out bit is 1 (ON) is copied from the primary volume to the secondary volume. Thereby, the data of the secondary volume can be exactly matched with the data of the primary volume.
 図46のフローチャートを参照して説明したように、本例は、間引き中ビットに対応する差分有ビットの内の「1」のビットが閾値以上である場合に、間引き中ビットをON(1)に設定する。障害時には、対応する間引き中ビットがONである全てのデータをプライマリボリュームからセカンダリボリュームにコピーするため、要更新データが多い領域の更新を間引くことで、更新による負荷を低減すると共に障害時の処理を効率化することができる。 As described with reference to the flowchart of FIG. 46, in this example, when the bit with difference “1” corresponding to the bit being thinned is equal to or larger than the threshold, the thinned bit is turned ON (1). Set to. In the event of a failure, all data for which the corresponding thinning-out bit is ON is copied from the primary volume to the secondary volume, so the update load is reduced by thinning out the update of the area where there is a lot of data that needs to be updated, and the processing at the time of failure Can be made more efficient.
 本実実施形態において、差分管理テーブル及び間引き動作管理テーブルの構成は一例であり、差分領域及び間引き中領域を示すことができれば、どのようなデータによりそれらを示してもよい。 In the present embodiment, the configuration of the difference management table and the thinning operation management table is an example, and any data may be used as long as the difference area and the thinning-out area can be indicated.
 図48は、第2実施形態から第4実施形態で使用可能な、性能ブースト機能設定のためのメニュー画面の例4800を示している。メニュー画面4800は、性能ブースト機能設定エリア4801、ボリューム毎性能ブースト機能設定エリア4802及び機能毎性能ブースト機能設定エリア4803含む。 FIG. 48 shows an example 4800 of a menu screen for setting the performance boost function that can be used in the second to fourth embodiments. The menu screen 4800 includes a performance boost function setting area 4801, a per-volume performance boost function setting area 4802, and a per-function performance boost function setting area 4803.
 管理者は、性能ブースト機能設定エリア4801における"ENABLE"又は"DISABLE"の一方を入力デバイス28で選択することで、ストレージシステム10の性能ブースト機能をイネーブル又はディセーブルすることができる。この設定が、性能ブースト機能有効化テーブル210に反映される。 The administrator can enable or disable the performance boost function of the storage system 10 by selecting either “ENABLE” or “DISABLE” in the performance boost function setting area 4801 with the input device 28. This setting is reflected in the performance boost function enabling table 210.
 ボリューム毎性能ブースト機能設定エリア4802は、各論理ボリュームの性能ブースト機能のイネーブル/ディセーブルを可能とする。管理者は、ボリューム毎性能ブースト機能設定エリア4802において、各論理ボリュームの性能ブースト機能のイネーブル/ディセーブルを入力デバイス28で選択することができる。この設定が、ボリューム毎性能ブースト機能有効化テーブル220に反映される。 The per-volume performance boost function setting area 4802 enables / disables the performance boost function of each logical volume. The administrator can select enabling / disabling of the performance boost function of each logical volume with the input device 28 in the performance boost function setting area 4802 for each volume. This setting is reflected in the performance boost function enabling table 220 for each volume.
 機能毎性能ブースト機能設定エリア4803は、各性能ブースト機能のイネーブル/ディセーブルを可能とする。管理者は、機能毎性能ブースト機能設定エリア4803において、各機能のイネーブル/ディセーブルを入力デバイス28で選択することができる。この設定が、ストレージシステム10内の機能毎性能ブースト機能有効化テーブル(不図示)に反映される。システム、ボリュームそして機能のブースト機能の全てがイネーブルされている場合に、その性能ブースト機能がそのボリュームにおいて使用される。 ∙ Performance boost function setting area 4803 for each function enables / disables each performance boost function. The administrator can select enable / disable of each function with the input device 28 in the performance boost function setting area 4803 for each function. This setting is reflected in a function-by-function performance boost function enabling table (not shown) in the storage system 10. If all of the system, volume and function boost functions are enabled, the performance boost function is used on that volume.
第5実施形態
 本実施形態において、スイッチにより結合した複数のストレージモジュールを含むストレージシステムに本発明を適用した例を説明する。本実施形態は、主に上記他の実施形態と異なる点を説明する。図49は、本実施形態の計算機システムの構成を模式的に示す。ストレージモジュール10C及びストレージモジュール10Dは、スイッチ198を含むモジュール間パス195(Xパスとも呼ぶ)により通信可能に接続されている。
Fifth Embodiment In this embodiment, an example in which the present invention is applied to a storage system including a plurality of storage modules coupled by switches will be described. This embodiment will mainly describe differences from the above-described other embodiments. FIG. 49 schematically shows the configuration of the computer system of this embodiment. The storage module 10 </ b> C and the storage module 10 </ b> D are communicably connected by an inter-module path 195 (also referred to as an X path) including the switch 198.
 図49におけるストレージモジュール10C、10Dの構成は、図1を参照して説明したストレージシステム10の構成と同様である。本例においては、2つの結合したモジュールが一つのストレージシステムを構成するが、3以上のモジュールが一つのストレージシステムを構成してもよい。 49. The configuration of the storage modules 10C and 10D in FIG. 49 is the same as the configuration of the storage system 10 described with reference to FIG. In this example, two combined modules constitute one storage system, but three or more modules may constitute one storage system.
 ストレージモジュール10C及びストレージモジュール10Dを結合するXパス(スイッチ198)195は、内部ネットワーク150のパスと同様のパスとして機能し、一方のモジュールの任意のパッケージは、他方のモジュールの任意のパッケージ及びメディアと、Xパス195により通信することができる。また、ホスト計算機180は、いずれのストレージモジュールにもアクセスすることができる。 An X path (switch 198) 195 that couples the storage module 10C and the storage module 10D functions as a path similar to the path of the internal network 150, and an arbitrary package of one module is an arbitrary package and medium of the other module. And the X path 195. The host computer 180 can access any storage module.
 Xパスは、内部ネットワーク150よりも帯域が狭く、データ転送能力が低い。そのため、Xパスは、パッケージ間のデータ転送においてボトルネックとなりやすい。そのため、Xパスの負荷に基づいて性能ブースト機能のON/OFFを判定することで、ストレージシステムの性能の低下を小さくすることができる。 The X path has a narrower bandwidth than the internal network 150 and a low data transfer capability. Therefore, the X path tends to be a bottleneck in data transfer between packages. Therefore, it is possible to reduce the degradation of the performance of the storage system by determining whether the performance boost function is ON / OFF based on the load of the X path.
 本実施形態のマイクロプロセッサ121は、性能ブースト機能のイネーブル/ディセーブル制御において、Xパス195の稼働率を参照する。これにより、複数のモジュールからなるストレージシステムにおいて適切にシステム性能を向上することができる。 The microprocessor 121 of the present embodiment refers to the operation rate of the X path 195 in the enable / disable control of the performance boost function. As a result, system performance can be appropriately improved in a storage system composed of a plurality of modules.
 図50は、本実施形態のローカルメモリ122が格納している制御情報を示している。図50において、Xパス稼働率テーブル360及びX稼働率閾値テーブル370がローカルメモリ122内に格納されている。図51は、Xパス稼働率テーブル360の一例を示す。図52は、Xパス稼働率閾値テーブル370の一例を示す。 FIG. 50 shows control information stored in the local memory 122 of the present embodiment. In FIG. 50, an X path availability table 360 and an X availability threshold table 370 are stored in the local memory 122. FIG. 51 shows an example of the X path availability table 360. FIG. 52 shows an example of the X path availability threshold table 370.
 Xパス稼働率テーブル360は、Xパスの稼働率を管理する。本例において、Xパス稼働率テーブル360は、Xパス番号のカラム361、稼働率のカラム361、そして過負荷判定フラグのカラム363を有する。Xパス番号は、システム内でXパスを一意に識別する識別子である。図51の例において、Xパス稼働率テーブル360は、複数のXパスを管理している。つまり、複数のXパスが2以上のストレージモジュールを結合している。複数のXパスは、同一又は異なるスイッチを通過する。 The X path operating rate table 360 manages the X path operating rate. In this example, the X path operating rate table 360 includes an X path number column 361, an operating rate column 361, and an overload determination flag column 363. The X path number is an identifier that uniquely identifies the X path in the system. In the example of FIG. 51, the X path availability table 360 manages a plurality of X paths. That is, a plurality of X paths combine two or more storage modules. The plurality of X paths pass through the same or different switches.
 稼働率は、単位時間当たりのデータ転送時間である。Xパスの稼働率は、そのXパスが通るスイッチのコントローラが計算し、レジスタに格納する。マイクロプロセッサ121は、各Xパスの稼働率を、スイッチのレジスタから取得して、Xパス稼働率テーブル360に格納する。 The operating rate is the data transfer time per unit time. The operation rate of the X path is calculated by the controller of the switch through which the X path passes and stored in the register. The microprocessor 121 acquires the operation rate of each X path from the register of the switch and stores it in the X path operation rate table 360.
 マイクロプロセッサ121は、Xパス稼働率テーブル360の各エントリ稼働率と、予め定められているXパス稼働率閾値とを比較して、過負荷判定フラグの値を決定する。Xパス稼働率が閾値以上である場合、マイクロプロセッサ121は過負荷判定フラグを1に設定する。Xパス稼働率閾値は、Xパス稼働率閾値テーブル370のXパス稼働率閾値カラムに格納されている。例えば、Xパス稼働率閾値テーブル370は、ストレージシステム内の不揮発性記憶領域からロードされ、その値は管理者により設定される。 The microprocessor 121 compares each entry operating rate in the X path operating rate table 360 with a predetermined X path operating rate threshold value, and determines the value of the overload determination flag. When the X path operating rate is equal to or greater than the threshold, the microprocessor 121 sets the overload determination flag to 1. The X path operating rate threshold value is stored in the X path operating rate threshold value column of the X path operating rate threshold value table 370. For example, the X path availability threshold table 370 is loaded from a nonvolatile storage area in the storage system, and the value is set by the administrator.
 図53のフローチャートを参照して、Xパスの稼働率を考慮したデータキャッシングに関する制御情報の共有メモリ132における更新についての判定を説明する。基本的な部分は、第1実施形態と同様である。図53のフローチャートにおいて、ステップS607以外のステップは、第1実施形態における図16に示すフローチャートと同様であり、その説明を省略する。 Referring to the flowchart of FIG. 53, a description will be given of the determination about the update in the shared memory 132 of the control information related to the data caching in consideration of the operation rate of the X path. The basic part is the same as in the first embodiment. In the flowchart in FIG. 53, steps other than step S607 are the same as those in the flowchart shown in FIG. 16 in the first embodiment, and a description thereof will be omitted.
 ステップS607において、マイクロプロセッサ121は、Xパス稼働率テーブル360を参照し、共有メモリ132へのアクセスに使用するXパスの過負荷フラグが1(ON)であるは判定する。アクセスするCMPK130と使用するXパスとの関係を示す制御情報は、ローカルメモリ122内に格納されており、それにより、マイクロプロセッサ121は、使用するXパスを特定することができる。 In step S607, the microprocessor 121 refers to the X path availability table 360 and determines that the X path overload flag used for accessing the shared memory 132 is 1 (ON). Control information indicating the relationship between the CMPK 130 to be accessed and the X path to be used is stored in the local memory 122, whereby the microprocessor 121 can specify the X path to be used.
 過負荷フラグがONである場合(S607:YES)、マイクロプロセッサ121は、共有メモリ132の制御情報を更新しないことを決定する(S608)。過負荷フラグがOFF(0)である場合(S607:NO)、マイクロプロセッサ121は、共有メモリ132の制御情報を更新することを決定する(S608)。本例はデータキャッシング制御情報の更新判定においてXパスの稼働率を参照するが、他の実施形態で説明した他の判定処理も、Xパスの稼働率を参照することができる。 If the overload flag is ON (S607: YES), the microprocessor 121 determines not to update the control information of the shared memory 132 (S608). When the overload flag is OFF (0) (S607: NO), the microprocessor 121 determines to update the control information of the shared memory 132 (S608). Although the present example refers to the X path availability in the update determination of the data caching control information, the other determination processes described in other embodiments can also refer to the X path availability.
 次に、図54のフローチャートを参照して、Xパス稼働率テーブル360におけるXパス稼働率の更新を説明する。典型的には、この処理は、定期的に、例えば1秒毎に実行される。マイクロプロセッサ121は、一つのXパス、一例としてXパス195を選択し、スイッチ198からそのXパス195の稼働率を取得する(S612)。 Next, the update of the X path availability in the X path availability table 360 will be described with reference to the flowchart in FIG. Typically, this process is performed periodically, for example, every second. The microprocessor 121 selects one X path, for example, the X path 195, and acquires the operating rate of the X path 195 from the switch 198 (S612).
 マイクロプロセッサ121は、取得した稼働率の値により、Xパス稼働率テーブル360の該当エントリの稼働率の値を更新する(S613)。マイクロプロセッサ121は、取得した稼働率の値が、Xパス稼働率閾値テーブル370におけるXパス稼働率閾値以上であるか判定する(S614)。稼働率が閾値以上である場合(S614:YES)、マイクロプロセッサ121は、Xパス稼働率テーブル360における当該エントリの過負荷フラグを1(ON)に設定する(S615)。 The microprocessor 121 updates the operation rate value of the corresponding entry in the X path operation rate table 360 with the acquired operation rate value (S613). The microprocessor 121 determines whether the acquired operating rate value is equal to or greater than the X path operating rate threshold value in the X path operating rate threshold value table 370 (S614). When the operating rate is equal to or greater than the threshold (S614: YES), the microprocessor 121 sets the overload flag of the entry in the X path operating rate table 360 to 1 (ON) (S615).
 一方、稼働率が閾値未満である場合(S614:NO)、マイクロプロセッサ121は、Xパス稼働率テーブル360における当該エントリの過負荷フラグを0(OFF)に設定する(S616)。マイクロプロセッサ121は、全てのXパスの稼働率を更新したか判定し(S617)、全てのXパスについて判定している場合(S617:YES)にこのフローを終了し、未判定のXパスが残っている場合(S617:NO)には、残りのXパスから一つのXパスを選択して、このフローを繰り返す。 On the other hand, when the operating rate is less than the threshold (S614: NO), the microprocessor 121 sets the overload flag of the entry in the X path operating rate table 360 to 0 (OFF) (S616). The microprocessor 121 determines whether or not the operating rates of all X paths have been updated (S617). If all the X paths have been determined (S617: YES), this flow ends, and undecided X paths are found. If it remains (S617: NO), one X path is selected from the remaining X paths, and this flow is repeated.
第6実施形態
 本実施形態は、MPPK120が、複数の異なる種別のデバイスに分散している複数の共有メモリ領域にアクセス可能な構成を説明する。本実施形態において、上記他の実施形態と異なる点について主に説明する。
Sixth Embodiment This embodiment describes a configuration in which the MPPK 120 can access a plurality of shared memory areas distributed in a plurality of different types of devices. In the present embodiment, differences from the other embodiments will be mainly described.
 図55は、本実施形態の計算機システムの構成を模式的に示している。ストレージシステム10において、複数の異なるデバイスに共有メモリ(記憶領域)が存在している。具体的には、CPMK130上の共有メモリ132の他、MPPK120上に共有メモリ124、そして記憶ドライブ170に共有メモリ178が存在している。MPPK120上に共有メモリ124の領域は、ローカルメモリ122内の記憶領域である。記憶ドライブ170上の共有メモリ178の領域は、記憶ドライブにおける不揮発性記憶媒体の記憶領域である。 FIG. 55 schematically shows the configuration of the computer system of this embodiment. In the storage system 10, a shared memory (storage area) exists in a plurality of different devices. Specifically, in addition to the shared memory 132 on the CPMK 130, the shared memory 124 exists on the MPPK 120, and the shared memory 178 exists on the storage drive 170. The area of the shared memory 124 on the MPPK 120 is a storage area in the local memory 122. The area of the shared memory 178 on the storage drive 170 is a storage area of a nonvolatile storage medium in the storage drive.
 図56は、本実施形態のローカルメモリ122が格納している制御情報を示している。図56において、MP稼働率テーブル380、MP稼働率閾値テーブル390、SM領域管理テーブル400がローカルメモリ122内に格納されている。 FIG. 56 shows control information stored in the local memory 122 of the present embodiment. 56, an MP operating rate table 380, an MP operating rate threshold value table 390, and an SM area management table 400 are stored in the local memory 122.
 図57は、MP稼働率テーブル380の一例を示す。MP稼働率テーブル380は、MP番号のカラム381、稼働率のカラム382、過負荷判定フラグ1のカラム383、過負荷判定フラグ2のカラム384、稼働時間のカラム385を有する。過負荷判定フラグ2のカラム384以外のカラムは、図11に示すMP稼働率テーブル270と同様である。過負荷判定フラグ1のカラム383は、過負荷判定フラグのカラム273に相当する。 FIG. 57 shows an example of the MP operation rate table 380. The MP operation rate table 380 includes an MP number column 381, an operation rate column 382, an overload determination flag 1 column 383, an overload determination flag 2 column 384, and an operation time column 385. The columns other than the column 384 of the overload determination flag 2 are the same as those in the MP availability table 270 shown in FIG. The overload determination flag 1 column 383 corresponds to the overload determination flag column 273.
 図58は、MP稼働率閾値テーブル390の一例を示す。MP稼働率閾値テーブル390は、MP稼働率閾値1のカラム391及びMP稼働率閾値2のカラム392を有する。MP稼働率閾値1の値は、MP稼働率閾値2の値より高い。MP稼働率閾値1は、図12に示すMP稼働率閾値に相当する。 FIG. 58 shows an example of the MP operation rate threshold table 390. The MP operating rate threshold table 390 includes a column 391 for the MP operating rate threshold 1 and a column 392 for the MP operating rate threshold 2. The value of the MP operation rate threshold 1 is higher than the value of the MP operation rate threshold 2. The MP operating rate threshold 1 corresponds to the MP operating rate threshold shown in FIG.
 図59は、SM領域管理テーブル400の一例を示す。SM領域管理テーブル400は、複数のデバイスに分散している共有メモリ領域を管理する。SM領域管理テーブル400は、種別のカラム401、番号のカラム402、先頭アドレスのカラム403、空き容量のカラム404を有する。「種別」は、共有メモリ領域が存在するデバイスの種別を示す。「番号」は、同一種別のデバイスにおける識別子である。「先頭アドレス」は、各デバイスにおける共有メモリ領域の先頭アドレスを示す。「空き容量」は、共有メモリ領域の空き容量である。 FIG. 59 shows an example of the SM area management table 400. The SM area management table 400 manages a shared memory area distributed to a plurality of devices. The SM area management table 400 includes a type column 401, a number column 402, a head address column 403, and a free capacity column 404. “Type” indicates the type of the device in which the shared memory area exists. “Number” is an identifier in devices of the same type. “Start address” indicates the start address of the shared memory area in each device. “Free capacity” is the free capacity of the shared memory area.
 種別のカラム401、番号のカラム402、先頭アドレスのカラム403には、予め値が設定されている。マイクロプロセッサ121は、各デバイスのコントローラ(MPPKにおいてはマイクロプロセッサ121)から、共有メモリ領域の空き容量の値を取得し、それを空き容量のカラム404に格納する。 Values are set in advance in the type column 401, the number column 402, and the top address column 403. The microprocessor 121 acquires the value of the free capacity of the shared memory area from the controller of each device (the microprocessor 121 in MPPK), and stores it in the free capacity column 404.
 図60A及び60Bを参照して、データキャッシングに関する共有メモリ領域に格納された制御情報の更新についての判定を説明する。図60AのフローチャートにおけるステップS702からステップS707は、図16のフローチャートにおけるステップS122からステップS127までと同様である。ただし、ステップS706において、当該CMPK130の過負荷フラグがONである場合(S706:YES)、マイクロプロセッサは図60BにおけるステップS709に進む。 Referring to FIGS. 60A and 60B, the determination regarding the update of the control information stored in the shared memory area related to data caching will be described. Steps S702 to S707 in the flowchart of FIG. 60A are the same as steps S122 to S127 in the flowchart of FIG. However, if the overload flag of the CMPK 130 is ON in step S706 (S706: YES), the microprocessor proceeds to step S709 in FIG. 60B.
 ステップS706において当該CMPK130の過負荷フラグがOFFである場合(S706:NO)又はステップS702において当該論理ボリュームの性能ブースト機能がOFFである場合(S702:NO)、マイクロプロセッサ121は、当該CMPK130の共有メモリの制御情報を更新すると決定する。 If the overload flag of the CMPK 130 is OFF in step S706 (S706: NO) or if the performance boost function of the logical volume is OFF in step S702 (S702: NO), the microprocessor 121 shares the CMPK 130. It is decided to update the control information of the memory.
 図60BにおけるステップS709において、マイクロプロセッサ121は、SM領域管理テーブル400を参照し、必要な空き共有メモリ領域を有するMPPK120が存在するか判定する。いずれかのMPPK120が必要な空き共有メモリ領域を有する場合(S709:YES)、マイクロプロセッサ121は、そのMPPK120の番号を特定し、キャッシング制御情報を当該MPPK120の共有メモリ124に格納し、その更新を行うことを決定する(S710)。このMPPK120は、マイクロプロセッサ121が実装されたMPPK120と異なるMPPKである。 In step S709 in FIG. 60B, the microprocessor 121 refers to the SM area management table 400 and determines whether there is an MPPK 120 having a necessary free shared memory area. When any MPPK 120 has a necessary free shared memory area (S709: YES), the microprocessor 121 identifies the number of the MPPK 120, stores the caching control information in the shared memory 124 of the MPPK 120, and updates the MPPK 120. It is decided to perform (S710). The MPPK 120 is an MPPK different from the MPPK 120 on which the microprocessor 121 is mounted.
 必要な空き共有メモリ領域を有するMPPK120が存在しない場合(S709:NO)、マイクロプロセッサ121は、自身の過負荷フラグ2が1(ON)であるか判定する(S711)。過負荷フラグ2がONである場合(S711:YES)、マイクロプロセッサ121は、共有メモリ領域における制御情報の更新を行わないことを決定する(S716)。 When the MPPK 120 having the necessary free shared memory area does not exist (S709: NO), the microprocessor 121 determines whether its own overload flag 2 is 1 (ON) (S711). If the overload flag 2 is ON (S711: YES), the microprocessor 121 determines not to update the control information in the shared memory area (S716).
 過負荷フラグ2がOFFである場合(S711:NO)、マイクロプロセッサ121は、SM領域管理テーブル400を参照し、必要な空き共有メモリ領域を有するSSD RAIDグループが存在するか判定する(S712)。 When the overload flag 2 is OFF (S711: NO), the microprocessor 121 refers to the SM area management table 400 and determines whether there is an SSD RAID group having a necessary free shared memory area (S712).
 いずれかのSSD RAIDグループが必要な空き共有メモリ領域を有する場合(S712:YES)、マイクロプロセッサ121は、当該SSD RAIDグループの番号を特定し、キャッシュ制御情報を当該SSD RAIDグループの共有メモリ領域に格納し、その更新を行うことを決定する(S713)。 When any SSD RAID group has a necessary free shared memory area (S712: YES), the microprocessor 121 identifies the number of the SSD RAID group and stores the cache control information in the shared memory area of the SSD RAID group. It is determined to store and update (S713).
 必要な空き共有メモリ領域を有するSSD RAIDグループが存在しない場合(S712:NO)、マイクロプロセッサ121は、SM領域管理テーブル400を参照し、必要な空き共有メモリ領域を有するHDD RAIDグループが存在するか判定する(S714)。必要な空き共有メモリ領域を有するHDD RAIDグループが存在しない場合(S714:NO)、マイクロプロセッサ121は、共有メモリ132における制御情報を更新しないことを決定する(S716)。 When the SSD RAID group having the necessary free shared memory area does not exist (S712: NO), the microprocessor 121 refers to the SM area management table 400 and determines whether the HDD RAID group having the necessary free shared memory area exists. Determination is made (S714). When the HDD RAID group having the necessary free shared memory area does not exist (S714: NO), the microprocessor 121 determines not to update the control information in the shared memory 132 (S716).
 必要な空き共有メモリ領域を有するHDD RAIDグループが存在する場合(S714:NO)、マイクロプロセッサ121は、当該HDD RAIDグループの番号を特定し、キャッシュ制御情報を当該HDD RAIDグループの共有メモリ領域に格納し、その更新を行うことを決定する(S715)。 If an HDD RAID group having the necessary free shared memory area exists (S714: NO), the microprocessor 121 identifies the number of the HDD RAID group and stores the cache control information in the shared memory area of the HDD RAID group. Then, it is determined to perform the update (S715).
 マイクロプロセッサ121は、共有メモリ132以外のいずれかの共有メモリに制御情報を格納し、その制御情報を更新することを決定すると、ローカルメモリ122におけるデータキャッシング制御情報を、選択した共有メモリにコピーする。共有メモリ132におけるデータキャッシング制御は削除してよい。 When the microprocessor 121 stores the control information in any shared memory other than the shared memory 132 and decides to update the control information, the microprocessor 121 copies the data caching control information in the local memory 122 to the selected shared memory. . Data caching control in the shared memory 132 may be deleted.
 このように、制御情報を現在の共有メモリ132の領域から他の共有メモリ領域に移動することで、共有メモリにおける制御情報の更新を、ローカルメモリにおける更新に同期させることができ、障害発生時のキャッシュヒット率を向上することができる。上記フローは、アクセス性能が高いデバイスから、空き共有メモリ領域の有無を判定する。これにより、よりアクセス性能が高い共有メモリに制御情報を格納することができ、システム性能の低下を抑えることができる。 As described above, by moving the control information from the current shared memory 132 area to another shared memory area, the update of the control information in the shared memory can be synchronized with the update in the local memory. The cache hit rate can be improved. The above flow determines whether there is a free shared memory area from a device with high access performance. As a result, the control information can be stored in a shared memory with higher access performance, and a decrease in system performance can be suppressed.
 本実施形態の共有メモリ領域管理は、データキャッシング制御情報の格納及び更新管理の他、上記他の実施形態で説明した他の制御情報の格納及び更新管理に適用することができる。MPPK障害時には、他のMPPK120は、共有メモリ領域管理テーブル400を参照し、分散している共有メモリ領域において対応する制御情報を検索することができる。 The shared memory area management of the present embodiment can be applied to the storage and update management of other control information described in the other embodiments in addition to the storage and update management of data caching control information. In the event of an MPPK failure, other MPPKs 120 can search for corresponding control information in the distributed shared memory area by referring to the shared memory area management table 400.
 図61のフローチャートを参照して、MP稼働率の更新を説明する。このフローは、1秒などの周期で呼び出される。マイクロプロセッサ121は、自身のMP稼働時間を取得し(S722)、MP稼働率テーブル380の稼働率の値を更新する(S723)。ステップS722、S723は、図24におけるステップS232、S233と同様である。 Referring to the flowchart of FIG. 61, the update of the MP operation rate will be described. This flow is called at a cycle such as 1 second. The microprocessor 121 acquires its own MP operating time (S722), and updates the value of the operating rate in the MP operating rate table 380 (S723). Steps S722 and S723 are the same as steps S232 and S233 in FIG.
 次に、ステップS724において、マイクロプロセッサ121は、更新した稼働率の値が、MP稼働率閾値1の値以上であるか判定する。稼働率の値がMP稼働率閾値1以上である場合(S724:YES)、マイクロプロセッサ121は、MP稼働率テーブル380の過負荷フラグ1を1(ON)に設定する(S725)。稼働率の値がMP稼働率閾値1未満である場合(S724:NO)、マイクロプロセッサ121は、MP稼働率テーブル380の過負荷フラグ1を0(OFF)に設定する(S726)。 Next, in step S724, the microprocessor 121 determines whether the updated operating rate value is equal to or greater than the MP operating rate threshold value 1. When the value of the operating rate is equal to or higher than the MP operating rate threshold 1 (S724: YES), the microprocessor 121 sets the overload flag 1 of the MP operating rate table 380 to 1 (ON) (S725). When the operating rate value is less than the MP operating rate threshold 1 (S724: NO), the microprocessor 121 sets the overload flag 1 of the MP operating rate table 380 to 0 (OFF) (S726).
 次に、ステップS727において、マイクロプロセッサ121は、更新した稼働率の値が、MP稼働率閾値2以上であるか判定する。稼働率の値がMP稼働率閾値2以上である場合(S727:YES)、マイクロプロセッサ121は、MP稼働率テーブル380の過負荷フラグ2を1(ON)に設定する(S728)。稼働率の値がMP稼働率閾値2未満である場合(S727:NO)、マイクロプロセッサ121は、MP稼働率テーブル380の過負荷フラグ1を0(OFF)に設定する(S729)。 Next, in step S727, the microprocessor 121 determines whether or not the updated operation rate value is equal to or greater than the MP operation rate threshold value 2. When the value of the operating rate is equal to or greater than the MP operating rate threshold 2 (S727: YES), the microprocessor 121 sets the overload flag 2 of the MP operating rate table 380 to 1 (ON) (S728). When the operating rate value is less than the MP operating rate threshold 2 (S727: NO), the microprocessor 121 sets the overload flag 1 of the MP operating rate table 380 to 0 (OFF) (S729).
第7実施形態
 本実施形態のストレージシステムは、ホストデータのキャッシングによるアクセス性能の向上に基づき、低ヒット率フラグのON/OFFを決定する。低ヒット率フラグは大1実施形態で説明した通りである。アクセス性能は、例えば、レスポンスタイムやスループットで表される。以下に説明する構成は、レスポンスタイムを使用する。
Seventh Embodiment The storage system of this embodiment determines ON / OFF of the low hit rate flag based on the improvement of access performance by caching host data. The low hit rate flag is as described in the first embodiment. The access performance is represented by, for example, response time or throughput. The configuration described below uses response time.
 データキャッシングの使用によるレスポンスタイムの向上が大きい場合に低ヒット率フラグ(第1実施形態参照)はOFFに設定され、データキャッシングの使用によるレスポンスタイムの向上が小さい場合に低ヒット率フラグはONに設定される。これにより、平均レスポンスタイムを向上することができる。 The low hit rate flag (see the first embodiment) is set to OFF when the response time improvement by using data caching is large, and the low hit rate flag is set to ON when the response time improvement by using data caching is small. Is set. Thereby, an average response time can be improved.
 以下において、本実施形態を具体的に説明する。主に上記他の実施形態と異なる点を説明する。図62は、本実施形態のローカルメモリ122に格納されている制御情報を示している。レスポンステーブル410及びCM利用閾値テーブル420がローカルメモリ122に格納されている。図63はレスポンステーブル410の一例を示し、図64はCM利用閾値テーブル420の一例を示す。 Hereinafter, the present embodiment will be specifically described. Differences from the other embodiments will be mainly described. FIG. 62 shows control information stored in the local memory 122 of the present embodiment. A response table 410 and a CM use threshold table 420 are stored in the local memory 122. FIG. 63 shows an example of the response table 410, and FIG. 64 shows an example of the CM use threshold table 420.
 レスポンステーブル410は、メディアのレスポンスタイムを管理するテーブルである。図63において、レスポンステーブル410は、メディア種別のカラム411及びレスポンスタイムのカラム412を有する。本例のレスポンステーブル410は、メディア種別によりレスポンスタイムを管理するが、RAIDグループや論理ボリュームによりレスポンスタイムを管理してもよい。 The response table 410 is a table for managing the response time of media. In FIG. 63, the response table 410 includes a media type column 411 and a response time column 412. The response table 410 in this example manages the response time according to the media type, but may manage the response time according to a RAID group or a logical volume.
 本例において、レスポンスタイムは、メディアからデータを読み出すために要する時間である。レスポンスタイムのカラム412には、予め値が格納されている、又は、マイクロプロセッサ121は、レスポンスタイムのカラム412の値を更新してもよい。マイクロプロセッサ121は、データ読み出しにおけるレスポンスタイムを測定し、例えば測定値の平均値をレスポンスタイムのカラム412に格納する。 In this example, the response time is the time required to read data from the media. A value is stored in the response time column 412 in advance, or the microprocessor 121 may update the value in the response time column 412. The microprocessor 121 measures the response time in data reading, and stores, for example, the average value of the measured values in the response time column 412.
 レスポンスタイムの決定は、データライトにおけるレスポンスタイムも使用してもよい。データライトのレスポンスタイムとデータリードのレスポンスタイムを個別に管理し、それに合わせて、データライトとデータリードのヒット率を個別に管理してもよい。データキャシング制御は、ライトデータキャッシングとリードデータキャッシングで個別に行うことができる。 The response time may be determined using the data write response time. The data write response time and the data read response time may be managed separately, and the data write and data read hit ratios may be managed separately in accordance with the data write response time and the data read response time. Data caching control can be performed separately for write data caching and read data caching.
 図64において、CM利用閾値テーブル420は、レスポンス向上のカラム421において、レスポンス向上を示す値の閾値を格納している。閾値は予め設定されている。例えば、管理者により設定された値が、ストレージシステム内の不揮発性記憶領域に格納されている。後述するように、マイクロプロセッサ121は、メディアのレスポンスタイムとCMPK130(キャッシュメモリ131)のレスポンスタイムとの差を使用して、レスポンス向上を表す値を算出する。この値が上記閾値より大きい場合、レスポンス向上がデータキャッシングに見合うレベルにあることを示す。 64, the CM use threshold value table 420 stores a threshold value of a value indicating response improvement in the response improvement column 421. The threshold is set in advance. For example, a value set by the administrator is stored in a nonvolatile storage area in the storage system. As will be described later, the microprocessor 121 uses the difference between the response time of the medium and the response time of the CMPK 130 (cache memory 131) to calculate a value indicating response improvement. If this value is larger than the above threshold, it indicates that the response improvement is at a level commensurate with data caching.
 図65のフローチャートを参照して、本実施形態のレスポンス向上に基づく低ヒット率フラグ更新を含むヒット率更新処理を説明する。MPPK120は、定期的に、例えば、1秒毎にこの処理を実行する。図65のフローチャートにおけるステップS802、S803、S805~S807は、それぞれ、図23のフローチャートにおけるステップS222、S223、S225~S227と同様である。 A hit rate update process including a low hit rate flag update based on the response improvement of the present embodiment will be described with reference to the flowchart of FIG. The MPPK 120 executes this process periodically, for example, every second. Steps S802, S803, and S805 to S807 in the flowchart of FIG. 65 are the same as steps S222, S223, and S225 to S227 in the flowchart of FIG.
 ステップS804において、マイクロプロセッサ121は、下記の式に従って、レスポンス向上を表す値を算出する。
 ヒット率×(当該メディアのレスポンスタイム-CMPKレスポンスタイム)/100
In step S804, the microprocessor 121 calculates a value indicating response improvement according to the following equation.
Hit rate x (response time of the media-CMPK response time) / 100
 マイクロプロセッサ121は、当該ボリュームのRAIDグループから、メディア種別テーブル230を参照して、当該メディアの種別を特定することができる。レスポンスタイムの値は、上述のように、レスポンステーブル410に格納されている。マイクロプロセッサ121は、算出した値とCM利用閾値テーブル420のCM利用閾値とを比較する。 The microprocessor 121 can identify the type of the media by referring to the media type table 230 from the RAID group of the volume. The response time value is stored in the response table 410 as described above. The microprocessor 121 compares the calculated value with the CM use threshold value in the CM use threshold value table 420.
 算出した値がCM利用閾値以下である場合(S804:YES)、マイクロプロセッサ121は、当該ボリュームの低ヒット率フラグを1(ON)に設定する(S805)。算出した値がCM利用閾値より大きい場合(S804:NO)、マイクロプロセッサ121は、当該ボリュームの低ヒット率フラグを0(OFF)に設定する(S806)。 When the calculated value is equal to or less than the CM use threshold (S804: YES), the microprocessor 121 sets the low hit rate flag of the volume to 1 (ON) (S805). When the calculated value is larger than the CM use threshold (S804: NO), the microprocessor 121 sets the low hit rate flag of the volume to 0 (OFF) (S806).
第8実施形態
 キャッシュ制御においては、キャッシュミスした場合にはキャッシュスロットを確保するのが一般的である。本実施形態では、HDDとSSDの混在するストレージシステムにおいて、このようなキャッシュ制御の前提を維持しつつも、SSDの特性を考慮した効率のよいキャッシュ制御方法を説明する。
Eighth Embodiment In cache control, a cache slot is generally secured when a cache miss occurs. In the present embodiment, an efficient cache control method that considers the characteristics of the SSD while maintaining such a cache control premise in a storage system in which HDDs and SSDs coexist will be described.
 本実施形態のストレージシステムは、論理ボリューム空間に関連付けされた通常のキャッシュ領域を用いるキャッシングを行って、リードデータをホストに転送するか、I/O処理制御プロセス(ジョブ)に関連付けされたキャッシュ領域(ジョブバッファ)を用いてリードデータをホストに転送するか、予め定められている条件に従って決定する。 The storage system according to the present embodiment performs caching using a normal cache area associated with a logical volume space and transfers read data to the host or a cache area associated with an I / O processing control process (job). The read data is transferred to the host using the (job buffer) or is determined according to a predetermined condition.
 本実施形態において、ジョブとはI/O処理を制御するプロセスを示しており、ジョブは各MP内で一意に特定できるジョブ#を持っている。ジョブ#毎の管理領域には、例えば、処理中のI/Oのアクセス先アドレスや転送長の情報、使用しているキャッシュ領域の情報などが記憶されている。 In the present embodiment, a job indicates a process for controlling I / O processing, and the job has a job # that can be uniquely specified in each MP. In the management area for each job #, for example, information on the access destination address and transfer length of the I / O being processed, information on the cache area being used, and the like are stored.
 キャッシュにユーザデータがあるかないかを検索する場合、論理ボリューム空間のアドレスを用いて検索する。前出のジョブバッファが確保済みかどうかを検索する場合、論理ボリューム空間に未割り当てのアドレスを各MPのジョブ番号に割り当て、そのアドレスを用いて検索する。 When searching for user data in the cache, search using the address of the logical volume space. When searching whether the above-mentioned job buffer has been secured, an address not assigned to the logical volume space is assigned to the job number of each MP, and the search is performed using that address.
 以下において、本実施形態を具体的に説明する。主に上記他の実施形態と異なる点を説明する。図72は、本実施形態のローカルメモリ122に格納されている制御情報を示している。ジョブ管理テーブル450、ジョブバッファアドレステーブル460、バッファ転送比率算出テーブル470、バッファ転送比率テーブル480がローカルメモリ122に格納されている。図73はジョブ管理テーブル450の一例を示し、図74はジョブバッファアドレステーブル460の一例を示し、図75はバッファ転送比率算出テーブル470の一例を示し、図76はバッファ転送比率テーブル480の一例を示す。 Hereinafter, the present embodiment will be specifically described. Differences from the other embodiments will be mainly described. FIG. 72 shows control information stored in the local memory 122 of this embodiment. A job management table 450, a job buffer address table 460, a buffer transfer rate calculation table 470, and a buffer transfer rate table 480 are stored in the local memory 122. 73 shows an example of the job management table 450, FIG. 74 shows an example of the job buffer address table 460, FIG. 75 shows an example of the buffer transfer ratio calculation table 470, and FIG. 76 shows an example of the buffer transfer ratio table 480. Show.
 図73は、ジョブ管理テーブル450の構成例を示している。ジョブ管理テーブル450は、各ジョブ番号が使用中かどうかを管理するテーブルである。ジョブ管理テーブル450は、マイクロプロセッサ番号のカラム451、ジョブ番号のカラム452、使用有無のカラム453を有する。本例のジョブ番号の空き管理は、使用有無のカラムで行うが、使用有キューと使用無キューを用いたキュー管理をしてもよい。 FIG. 73 shows a configuration example of the job management table 450. The job management table 450 is a table for managing whether each job number is in use. The job management table 450 has a microprocessor number column 451, a job number column 452, and a use / non-use column 453. The empty management of the job number in this example is performed in the use / non-use column, but queue management using a used queue and a non-used queue may be performed.
 図74は、ジョブバッファアドレステーブル460の構成例を示している。ジョブバッファアドレステーブル460は、各MPの各ジョブ番号が割り当てられているバッファ検索用アドレスを管理する。ジョブバッファアドレステーブル460は、マイクロプロセッサ番号のカラム461、ジョブ番号のカラム462、ジョブバッファ用アドレス番号のカラム463を有する。ジョブバッファ用アドレス番号は、ストレージシステム内において一意な値であり、論理ボリュームのアドレスと重複しない値である。 FIG. 74 shows a configuration example of the job buffer address table 460. The job buffer address table 460 manages a buffer search address to which each job number of each MP is assigned. The job buffer address table 460 includes a microprocessor number column 461, a job number column 462, and a job buffer address number column 463. The job buffer address number is a unique value in the storage system and is a value that does not overlap with the logical volume address.
 図75は、バッファ転送比率算出テーブル470の構成例を示している。バッファ転送比率算出テーブル470は、論理ボリューム毎のキャッシュヒット率及びMP稼働率からジョブバッファを用いて転送する比率を算出するテーブルである。バッファ転送比率算出テーブル470は、ヒット率のカラム471、マイクロプロセッサ稼働率のカラム472、バッファ転送比率のカラム473を有する。 FIG. 75 shows a configuration example of the buffer transfer ratio calculation table 470. The buffer transfer rate calculation table 470 is a table for calculating the transfer rate using the job buffer from the cache hit rate and the MP operating rate for each logical volume. The buffer transfer rate calculation table 470 includes a hit rate column 471, a microprocessor operating rate column 472, and a buffer transfer rate column 473.
 キャッシュヒットしないデータに対するリード処理のマイクロプロセッサOVHを減らす目的から、ヒット率が低い場合にバッファ転送比率は高い値が設定され、マイクロプロセッサ稼働率が高い場合にバッファ転送比率は高い値が設定される。 For the purpose of reducing the microprocessor OVH for read processing for data that does not hit the cache, a high buffer transfer ratio is set when the hit rate is low, and a high buffer transfer ratio is set when the microprocessor operating rate is high. .
 バッファ転送比率の下限は0であり、上限は99以下である。上限で99以下である理由は、100%ジョブバッファを用いて転送する場合、ヒット率を計算できないためである。本例で用いるヒット率は、ジョブバッファを用いない場合のヒット率である。 The lower limit of the buffer transfer ratio is 0, and the upper limit is 99 or less. The reason why the upper limit is 99 or less is that the hit rate cannot be calculated when transferring using a 100% job buffer. The hit rate used in this example is a hit rate when the job buffer is not used.
 図76は、バッファ転送比率テーブル480の構成例を示している。バッファ転送比率テーブル480は、各論理ボリュームに対するリード処理においてジョブバッファを用いる比率を管理するテーブルである。バッファ転送比率テーブル480は、論理ボリューム番号のカラム481、バッファ転送比率のカラム482を有する。 FIG. 76 shows a configuration example of the buffer transfer ratio table 480. The buffer transfer ratio table 480 is a table for managing the ratio of using the job buffer in the read processing for each logical volume. The buffer transfer ratio table 480 has a logical volume number column 481 and a buffer transfer ratio column 482.
 本例におけるホスト計算機180から受信したリードコマンドに対する処理を、図77A及び図77Bに示すフローチャートを参照して説明する。ホスト計算機180からのリードコマンドを受けた(S901)マイクロプロセッサ121は、ジョブ管理テーブル430を参照し、未使用のジョブ番号を検索し、未使用のジョブ番号を確保する(S902)。 Processing for the read command received from the host computer 180 in this example will be described with reference to the flowcharts shown in FIGS. 77A and 77B. Receiving the read command from the host computer 180 (S901), the microprocessor 121 refers to the job management table 430, searches for an unused job number, and secures an unused job number (S902).
 マイクロプロセッサ121は、リードコマンドが示す論理ボリューム(LDEV)に、自身がアクセス権を有するか判定する(S903)。アクセス権を有していない場合(S903:NO)、そのマイクロプロセッサ121は、アクセス権を有するMPPK120にリードコマンドを転送する(S904)。 The microprocessor 121 determines whether it has the access right to the logical volume (LDEV) indicated by the read command (S903). When the access right is not possessed (S903: NO), the microprocessor 121 transfers the read command to the MPPK 120 having the access right (S904).
 マイクロプロセッサ121がアクセス権を有する場合(S903:YES)、そのマイクロプロセッサ121は、同一MPPK120上のローカルメモリ122内で、論理ボリュームのアドレスを用いて、キャッシュディレクトリ310を検索する(S905)。リードコマンドが指定するアドレス(データ)が見つかった(キャッシュヒット)場合(S906:YES)、マイクロプロセッサ121は、キャッシュディレクトリ310の情報に従って、キャッシュメモリ131からリードデータを読み出し、ホスト計算機180に送信する(S907)。 When the microprocessor 121 has the access right (S903: YES), the microprocessor 121 searches the cache directory 310 using the logical volume address in the local memory 122 on the same MPPK 120 (S905). When the address (data) specified by the read command is found (cache hit) (S906: YES), the microprocessor 121 reads the read data from the cache memory 131 according to the information in the cache directory 310 and transmits it to the host computer 180. (S907).
 リードコマンドが指定するアドレス(データ)が見つからなかった(キャッシュミス)場合(S906:NO)、マイクロプロセッサ121は、ローカルメモリ122の未キャッシュフラグを確認する(S908)。未キャッシュフラグは、共有メモリ132のキャッシュディレクト値510の全てのデータが、ローカルメモリ122にキャッシュされているかを示すフラグであり、ローカルメモリ122内に格納されている。一部のデータが読み込まれていない場合、その値はONである。例えば、障害フェイルオーバ直後で共有メモリ132からローカルメモリ122へ制御情報が読み込まれてない場合、未キャッシュフラグはONである。 If the address (data) specified by the read command is not found (cache miss) (S906: NO), the microprocessor 121 checks the uncached flag in the local memory 122 (S908). The uncached flag is a flag indicating whether all the data of the cache directory value 510 of the shared memory 132 is cached in the local memory 122, and is stored in the local memory 122. When some data is not read, the value is ON. For example, if the control information is not read from the shared memory 132 to the local memory 122 immediately after the failure failover, the uncached flag is ON.
 未キャッシュフラグがONである場合(S908:YES)、共有メモリ132のキャッシュディレクト値510の一部データがキャッシュされていない。マイクロプロセッサ121は、CMPK130のコントローラを介して、共有メモリ132からローカルメモリ122へキャッシュディレクトリ(制御情報)を転送する(S909)。 If the uncached flag is ON (S908: YES), some data of the cache directory value 510 of the shared memory 132 is not cached. The microprocessor 121 transfers the cache directory (control information) from the shared memory 132 to the local memory 122 via the controller of the CMPK 130 (S909).
 マイクロプロセッサ121は、ローカルメモリ122内で、キャッシュディレクトリ310を検索する(S910)。リードコマンドが指定するデータが見つかった(キャッシュヒット)場合(S911:YES)、マイクロプロセッサ121は、キャッシュディレクトリ310の情報に従って、キャッシュメモリ131からリードデータを読み出し、ホスト計算機180に送信する(S912)。 The microprocessor 121 searches the cache directory 310 in the local memory 122 (S910). When the data specified by the read command is found (cache hit) (S911: YES), the microprocessor 121 reads the read data from the cache memory 131 according to the information in the cache directory 310 and transmits it to the host computer 180 (S912). .
 キャッシュミスの場合(S911:NO)又は未キャッシュフラグがOFFの場合(S908:NO)、マイクロプロセッサ121は、論理ボリューム空間に関連付けされた通常のキャッシュ領域を用いるキャッシングを行って、リードデータをホストに転送するか、I/O処理制御プロセス(ジョブ)に関連付けされたキャッシュ領域(ジョブバッファ)を用いてリードデータをホストに転送する(バッファ転送)か、を判定する(S913)。この判定の具体的な方法については後に詳述する。 In the case of a cache miss (S911: NO) or the uncached flag is OFF (S908: NO), the microprocessor 121 performs caching using a normal cache area associated with the logical volume space, and stores read data as a host. Or the read data is transferred to the host (buffer transfer) using the cache area (job buffer) associated with the I / O processing control process (job) (S913). A specific method of this determination will be described in detail later.
 バッファ転送を用いないと判定した場合(S914:NO)、マイクロプロセッサ121は、リードデータのためのスロットをキャッシュメモリ131に確保し、さらに、ローカルメモリ122のキャッシュディレクトリ310及び共有メモリ132のキャッシュディレクトリ510を更新する(S915)。 When it is determined that the buffer transfer is not used (S914: NO), the microprocessor 121 secures a slot for the read data in the cache memory 131, and further, the cache directory 310 of the local memory 122 and the cache directory of the shared memory 132. 510 is updated (S915).
 マイクロプロセッサ121は、BEPK140及びCMPK130により、記憶ドライブ170(永続メディア)からリードデータを読み出し、キャッシュメモリ131上の確保したスロットに格納する。その後、マイクロプロセッサ121は、そのキャッシュデータを、CMPK130及びFEPK100により、ホスト計算機180に送信する(S916)。 The microprocessor 121 reads the read data from the storage drive 170 (permanent medium) using the BEPK 140 and the CMPK 130, and stores the read data in the reserved slot on the cache memory 131. Thereafter, the microprocessor 121 transmits the cache data to the host computer 180 by the CMPK 130 and the FEPK 100 (S916).
 バッファ転送を用いると判定した場合(S914:YES)、マイクロプロセッサ121は、ジョブバッファアドレステーブル440のジョブバッファアドレス番号を用いて、キャッシュディレクトリ310を検索する(S917)。 If it is determined that buffer transfer is to be used (S914: YES), the microprocessor 121 searches the cache directory 310 using the job buffer address number in the job buffer address table 440 (S917).
 ジョブバッファアドレス番号(ジョブバッファ)が見つからなかった場合(S918:NO)、マイクロプロセッサ121は、ジョブバッファのためのスロットをキャッシュメモリ131に確保し、さらに、ローカルメモリ122のキャッシュディレクトリ310及び共有メモリ132のキャッシュディレクトリ510を更新して(S919)、次のステップS920に進む。 When the job buffer address number (job buffer) is not found (S918: NO), the microprocessor 121 secures a slot for the job buffer in the cache memory 131, and further, the cache directory 310 and the shared memory in the local memory 122. The cache directory 510 of 132 is updated (S919), and the process proceeds to the next step S920.
 ジョブバッファアドレス番号(ジョブバッファ)が見つかった場合(S918:YES)、マイクロプロセッサ121は、ローカルメモリ122および共有メモリ132の制御情報を更新することなく、ステップ920に進む。 If the job buffer address number (job buffer) is found (S918: YES), the microprocessor 121 proceeds to step 920 without updating the control information of the local memory 122 and the shared memory 132.
 ステップ920において、マイクロプロセッサ121は、BEPK140及びCMPK130により、記憶ドライブ170(永続メディア)からリードデータを読み出し、キャッシュメモリ131上のジョブバッファ用のスロットに格納する。その後、マイクロプロセッサ121は、そのキャッシュデータを、CMPK130及びFEPK100により、ホスト計算機180に送信する。 In step 920, the microprocessor 121 reads the read data from the storage drive 170 (permanent medium) using the BEPK 140 and the CMPK 130, and stores the read data in the job buffer slot on the cache memory 131. Thereafter, the microprocessor 121 transmits the cache data to the host computer 180 by the CMPK 130 and the FEPK 100.
 図78を参照して、図77Aのフローチャートにおける、バッファ転送の要否についての判定(S914)を説明する。マイクロプロセッサ121は、このステップS914を開始し、リードコマンドの指定する論理ボリュームの性能ブースト機能がONであるか否かを、性能ブースト機能有効化テーブル210及びボリューム毎性能ブースト機能有効化テーブル220を参照して判定する(S932)。一方のテーブルが、性能ブースト機能がOFFであることを示す場合、当該ボリュームの性能ブースト機能はOFFである。 78, the determination (S914) regarding the necessity of buffer transfer in the flowchart of FIG. 77A will be described. The microprocessor 121 starts this step S914, and determines whether or not the performance boost function of the logical volume designated by the read command is ON, by using the performance boost function enable table 210 and the per-volume performance boost function enable table 220. The determination is made with reference to (S932). If one table indicates that the performance boost function is OFF, the performance boost function for the volume is OFF.
 当該論理ボリュームの性能ブースト機能がONではない場合(S932:NO)、マイクロプロセッサ121は、バッファ転送を用いないことを決定する(S937)。当該論理ボリュームの性能ブースト機能がONである場合(S932:YES)、マイクロプロセッサ121は、次に、指定データが格納されているRAIDグループのメディア種別がSSDであるか否かを、RAIDグループ番号をキーとしてメディア種別テーブル230を参照し、判定する(S933)。 When the performance boost function of the logical volume is not ON (S932: NO), the microprocessor 121 determines not to use buffer transfer (S937). When the performance boost function of the logical volume is ON (S932: YES), the microprocessor 121 next determines whether or not the media type of the RAID group in which the designated data is stored is SSD. With reference to the media type table 230 as a key, determination is made (S933).
 マイクロプロセッサ121は、ローカルメモリ122内に、各ボリュームの構成管理情報を有しており、各ボリュームの各領域がいずれのRAIDグループに属するかをその情報を参照して知ることができる。 The microprocessor 121 has configuration management information for each volume in the local memory 122, and can know which RAID group each area of each volume belongs to by referring to that information.
 メディア種別がSSDではない場合(S933:NO)、マイクロプロセッサ121は、バッファ転送を用いないことを決定する(S937)。そのメディア種別がSSDである場合(S933:YES)、マイクロプロセッサ121は、次に、今回のI/Oがバッファ転送対象である否かを、指定データが格納されている論理ボリューム番号をキーとしてバッファ転送比率テーブル480を参照し、判定する(S934)。 If the media type is not SSD (S933: NO), the microprocessor 121 determines not to use buffer transfer (S937). When the media type is SSD (S933: YES), the microprocessor 121 next determines whether or not the current I / O is a buffer transfer target by using the logical volume number in which the designated data is stored as a key. The determination is made with reference to the buffer transfer ratio table 480 (S934).
 0から99の値を持つバッファ転送比率を用いて、バッファ転送対象か否かを判定する方法として、マイクロプロセッサ121は、0から100までの乱数を用いて、乱数がバッファ転送比率を下回った場合に、今回のI/Oがバッファ転送対象であると判定してもよい。マイクロプロセッサ121は、リードデータのアドレスをキーとする0から100のハッシュ値を用いて、ハッシュ値がバッファ転送比率を下回った場合に、今回のI/Oがバッファ転送対象であると判定してもよい。マイクロプロセッサ121は、0から100まで1ずつ増加するカウンタ(100の次は0に戻る)を使用して、カウンタの値がバッファ転送比率を下回った場合に、今回のI/Oがバッファ転送対象であると判定してもよい。 The microprocessor 121 uses a random number from 0 to 100 as a method for determining whether or not it is a buffer transfer target using a buffer transfer ratio having a value from 0 to 99, and the random number falls below the buffer transfer ratio. In addition, it may be determined that the current I / O is a buffer transfer target. The microprocessor 121 uses the hash value from 0 to 100 using the read data address as a key, and determines that the current I / O is a buffer transfer target when the hash value falls below the buffer transfer ratio. Also good. The microprocessor 121 uses a counter that increases by 1 from 0 to 100 (returns to 0 after 100), and when the counter value falls below the buffer transfer ratio, the current I / O is subject to buffer transfer. It may be determined that
 S934の判定の結果、今回のI/Oがバッファ転送対象であると判定した場合(S935:YES)、マイクロプロセッサ121は、バッファ転送を用いることを決定し(S936)、今回のI/Oがバッファ転送対象ではないと判定した場合(S935:NO)、バッファ転送を用いないことを決定する(S937)。 As a result of the determination in S934, when it is determined that the current I / O is a buffer transfer target (S935: YES), the microprocessor 121 determines to use buffer transfer (S936), and the current I / O is If it is determined that it is not a buffer transfer target (S935: NO), it is determined not to use the buffer transfer (S937).
 このように、規定条件を満たす場合、マイクロプロセッサ121は、ローカルメモリ122でのキャッシュディレクトリ310及び、共有メモリ132のキャッシュディレクトリ510を更新しなくてよい可能性が高いバッファ転送を用いることを決定する。これにより、マイクロプロセッサ121及びCMPK130の負荷を低減し、システムのスループットを向上することができる。 As described above, when the specified condition is satisfied, the microprocessor 121 determines to use a buffer transfer that is unlikely to update the cache directory 310 in the local memory 122 and the cache directory 510 in the shared memory 132. . As a result, the load on the microprocessor 121 and the CMPK 130 can be reduced and the throughput of the system can be improved.
 図79のフローチャートを参照して、バッファ比率の算出を説明する。このフローは、LDEV(論理ボリューム)毎に1秒などの周期で呼び出される。マイクロプロセッサ121は、ある周期で全LDEV分を算出してもよいし、I/O処理契機にI/O対象LDEVが1秒などの間更新されていない場合に算出してもよい。 The calculation of the buffer ratio will be described with reference to the flowchart of FIG. This flow is called at a cycle such as 1 second for each LDEV (logical volume). The microprocessor 121 may calculate all LDEVs at a certain period, or may calculate when the I / O target LDEV has not been updated for 1 second or the like at the time of I / O processing.
 マイクロプロセッサ121は、対象LDEV番号(論理ボリューム番号)をキーにボリューム毎ヒット率テーブル250を参照し、I/O数とヒット数からヒット率を求め、自身のMP番号をキーにMP稼働率テーブル380を参照し、MP稼働率を求め、ヒット率とMP稼働率をキーにバッファ転送比率算出テーブル470を参照し、バッファ転送比率を求める(S942)。 The microprocessor 121 refers to the hit rate table 250 for each volume using the target LDEV number (logical volume number) as a key, obtains the hit rate from the number of I / Os and the number of hits, and uses the MP number of its own as an MP operation rate table 380, the MP operation rate is obtained, and the buffer transfer rate calculation table 470 is referred to using the hit rate and the MP operation rate as keys, and the buffer transfer rate is obtained (S942).
 マイクロプロセッサ121は、バッファ転送比率テーブル480の当該LDEV番号(論理ボリューム番号)のバッファ転送比率のカラムをS942でもとめたバッファ転送比率で更新し(S943)、この処理を終了する(S944)。 The microprocessor 121 updates the buffer transfer ratio column of the LDEV number (logical volume number) in the buffer transfer ratio table 480 with the buffer transfer ratio stopped in S942 (S943), and ends this process (S944).
 以上が、本発明の第8の実施形態の説明である。なお、本実施形態においても、ライト処理は、バッファステージング判定を行ってもよいし、すべてのデータを通常のキャッシュ領域にキャッシュするという方法を採用してもよい。 The above is the description of the eighth embodiment of the present invention. Also in this embodiment, the write process may perform buffer staging determination, or may adopt a method of caching all data in a normal cache area.
 例えば、すべてのデータを通常のキャッシュ領域にキャッシュする場合、図77AのフローチャートにおいてS901、S904、S907、S912、S916を、図18AのS141、S143、S146、S151、S156にそれぞれ置き換えたフローとほぼ同様の流れになる。但し、ライト処理の場合、バッファステージング判定に関するステップ(S913、S914)は省略され、S908またはS911のステップで否と判定された場合は、S915のステップに移る点で異なる。 For example, when all data is cached in the normal cache area, the flow is almost the same as the flow in which S901, S904, S907, S912, and S916 are replaced with S141, S143, S146, S151, and S156 in FIG. The flow is similar. However, in the case of write processing, the steps (S913, S914) relating to the buffer staging determination are omitted, and when it is determined NO in step S908 or S911, the process is shifted to step S915.
 発明の第8の実施形態によれば、予め定められている条件に従って、キャッシングするか、ジョブバッファを用いて転送するかを選択することで、キャッシュ領域の効率的に利用し、さらに、キャッシュメモリ及びデータキャッシングを行うプロセッサのオーバヘッドを低減することで、ストレージシステムの性能を向上する。 According to the eighth embodiment of the invention, it is possible to efficiently use a cache area by selecting whether to perform caching or transfer using a job buffer according to a predetermined condition. In addition, the performance of the storage system is improved by reducing the overhead of the processor that performs data caching.
 確保済みのジョブバッファを用いてリードデータを転送する場合、CMPKのSMの制御情報を更新する必要がないだけでなく、LMの制御情報も更新する必要がない。したがって、本実施形態において、プロセッサは、予め定められている条件に従って、キャッシングするか、ジョブバッファを用いて転送するかを選択することで、キャッシュ領域の効率的に利用し、さらに、キャッシュメモリ及びデータキャッシングを行うプロセッサのオーバヘッドを低減することで、ストレージシステムの性能を向上する。 When transferring read data using a reserved job buffer, it is not necessary to update the CMPK SM control information, and it is not necessary to update the LM control information. Therefore, in the present embodiment, the processor efficiently uses the cache area by selecting whether to perform caching or transfer using a job buffer according to a predetermined condition. The performance of the storage system is improved by reducing the overhead of the processor that performs data caching.
 また、時間とともに変化するキャッシュヒット率を用いることで、外部から設定できないような短時間でのI/Oパターンの変化にも対応できる。永続メディアがSSDの場合でも、ヒットする確率が高い時間帯には、通常の転送を多く行い、ヒットする確率が低い時間帯には、ジョブバッファ転送を多く行うことが、ストレージシステムの性能向上に寄与する。このように、時間で変化するI/Oパターンに対して、キャッシュの利用効率を高め、キャッシュメモリとプロセッサのOVHも削減できることが、本実施形態により実現できる。 Also, by using a cache hit rate that changes with time, it is possible to cope with changes in I / O patterns in a short time that cannot be set from outside. Even if the persistent media is SSD, it is possible to improve the performance of the storage system by performing a lot of normal transfers in the time zone where the probability of hitting is high and performing a lot of job buffer transfers in the time zone where the probability of hitting is low. Contribute. As described above, according to the present embodiment, it is possible to improve the use efficiency of the cache and reduce the OVH of the cache memory and the processor with respect to the I / O pattern that changes with time.
 さらに、バッファをキャッシュのスロットと同様の管理体系に置くことで、バッファとキャッシュスロットを別管理する方式と比較して、低いOVHで時間的に追随性の高い効率的なメモリ利用が可能となる。 Furthermore, by placing the buffer in the same management system as the cache slot, it is possible to efficiently use the memory with a low OVH and high temporal followability as compared with a method of separately managing the buffer and the cache slot. .
 以下において、キャッシュ制御の更新が削減され、プロセッサのオーバヘッドが低減する理由を、図80に示す本実施形態におけるキャッシュのLRU(Least Recently Used)リプレース管理とジョブ番号のリプレース管理を用いて説明する。 Hereinafter, the reason why the update of the cache control is reduced and the overhead of the processor is reduced will be described using cache LRU (Least Recently Used) replacement management and job number replacement management in the present embodiment shown in FIG.
 本発明の実施形態では、図80に示すように、キャッシュのスロットは、LRUアルゴリズムでリプレース管理されている(710)。LRUアルゴリズムのリプレースとは、新たにエントリを確保する場合、もっとも最古にアクセスされたエントリがリプレースされるアルゴリズムである。データキャッシングの場合、キャッシュされていないデータにアクセスされたとき、キャッシュスロットを新規に確保するために、もっともアクセス時間が古いキャッシュスロットがリプレースされる。 In the embodiment of the present invention, as shown in FIG. 80, the cache slot is replaced and managed by the LRU algorithm (710). The replacement of the LRU algorithm is an algorithm in which the oldest accessed entry is replaced when a new entry is secured. In the case of data caching, when uncached data is accessed, the cache slot having the oldest access time is replaced in order to secure a new cache slot.
 SLOT番号720は、それぞれのキャッシュスロットの一意な番号を示している。LRUポインタ730は、直前に利用されたキャッシュスロットを指している。SLOT番号s1の直前に利用されたスロットのSLOT番号がs2であり、SLOT番号s2の直前に利用されたスロットのSLOT番号はs3であることを示している。また、MRU(Most Recently Used)ポインタ740は、直後に利用されたキャッシュスロットを指している。SLOT番号s3の直後に利用されたスロットのSLOT番号s2であり、SLOT番号s2の直後に利用されたスロットのSLOT番号がs1であることを示している。すなわち、SLOT番号s3、s2、s1の順で利用されたこと示している。 SLOT number 720 indicates a unique number of each cache slot. The LRU pointer 730 points to the cache slot used immediately before. The SLOT number of the slot used immediately before the SLOT number s1 is s2, and the SLOT number of the slot used immediately before the SLOT number s2 is s3. An MRU (Most Recently Used) pointer 740 points to the cache slot used immediately after. This is the SLOT number s2 of the slot used immediately after the SLOT number s3, and the SLOT number of the slot used immediately after the SLOT number s2 is s1. That is, it is shown that the SLOT numbers s3, s2, and s1 are used in this order.
 また、本発明の実施形態では、未使用のジョブ番号は、MRUアルゴリズムでリプレース管理されている(720)。MRUアルゴリズムのリプレースとは、新たにエントリを確保する場合、もっとも最新にアクセスされたエントリがリプレースされるアルゴリズムである。ジョブ番号820は、ジョブ番号432に対応する。 In the embodiment of the present invention, unused job numbers are replaced by the MRU algorithm (720). The replacement of the MRU algorithm is an algorithm in which the most recently accessed entry is replaced when a new entry is secured. The job number 820 corresponds to the job number 432.
LRUポインタ830は、直前に利用されたジョブ番号を示し、MRUポインタ840は、直後に利用されたジョブ番号を示す。すなわち、ジョブ番号j3、j2、j1の順で利用されたことを示している。I/Oを処理するためにジョブ番号を割り当てる場合に、MRUのジョブ番号j0(850)を割り当て、I/Oが終わり、ジョブ番号を返却する場合は、MRUのジョブ番号j0(850)のMRUポインタ(840)に返却する。 The LRU pointer 830 indicates the job number used immediately before, and the MRU pointer 840 indicates the job number used immediately after. That is, the job numbers j3, j2, and j1 are used in this order. When assigning a job number to process I / O, assign MRU job number j0 (850), and when I / O ends and return the job number, return MRU of MRU job number j0 (850). Return to the pointer (840).
 通常のデータキャッシングを用いた転送では、SLOT番号s1やs3のスロットのように、LDEV番号及びLDEV内のLBA750と対応付けがなされているスロット番号720を有するスロット751を用いる。 In the transfer using normal data caching, the slot 751 having the LDEV number and the slot number 720 associated with the LBA 750 in the LDEV is used like the slots of the SLOT numbers s1 and s3.
 そのため、本実施形態の効果が期待されるキャッシュ容量よりもアクセスするボリューム容量が大きく、すなわちユーザデータキャッシュが再利用されないホストI/Oアクセスパターンである場合、ホストI/Oの度に、新たにスロットを確保するため、LRUのスロットs0をキャッシュディレクトリ310から削除し、確保したスロットをキャッシュディレクトリに接続しなければならない。1I/OあたりPM/SMのキャッシュディレクトリをそれぞれ2回更新しなければならない。 Therefore, if the volume capacity to be accessed is larger than the expected cache capacity of the present embodiment, that is, if the host I / O access pattern is such that the user data cache is not reused, a new one will be provided for each host I / O. To secure a slot, the LRU slot s0 must be deleted from the cache directory 310 and the secured slot must be connected to the cache directory. Each PM / SM cache directory must be updated twice per I / O.
 それに対し、ジョブバッファを用いた転送では、ジョブ番号s2と対応付けられているSLOT番号s2のスロットのように、ジョブ番号820と対応付けがなされているSLOT番号720を有するスロット821を用いる。未使用のジョブ番号をMRU管理でリプレースすることで、同じジョブ番号を再利用し、すなわちジョブ番号と関連付けされたスロットも再利用できる。これにより、ユーザデータキャッシュが再利用されないホストI/Oアクセスパターンである場合でも、キャッシュディレクトリを更新する必要がない。したがって、プロセッサのオーバヘッドが低減する。 On the other hand, in the transfer using the job buffer, the slot 821 having the SLOT number 720 associated with the job number 820 is used like the slot of the SLOT number s2 associated with the job number s2. By replacing an unused job number by MRU management, the same job number can be reused, that is, a slot associated with the job number can also be reused. This eliminates the need to update the cache directory even in the case of a host I / O access pattern in which the user data cache is not reused. Thus, processor overhead is reduced.
 本例では、ジョブのフリー管理にMRUアルゴリズムを用いて、同じジョブ番号を利用する確率を高め、キャッシュメモリの利用効率をより高めているが、ジョブ管理テーブル430の使用有無カラム432を先頭からサーチするなどでも、再利用確率が高く、上記効果が得られるため、その方式でもよい。 In this example, the MRU algorithm is used for free management of jobs to increase the probability of using the same job number and to improve the usage efficiency of the cache memory. However, the use presence / absence column 432 of the job management table 430 is searched from the top. However, the method may be used because the reuse probability is high and the above-described effect can be obtained.
 以上、本発明の実施形態を説明したが、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、ある実施形態の構成に他の実施形態の構成を加えることも可能である。各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 As mentioned above, although embodiment of this invention was described, this invention is not limited to said embodiment. A person skilled in the art can easily change, add, and convert each element of the above-described embodiment within the scope of the present invention. A part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment. It is possible to add, delete, and replace other configurations for a part of the configuration of each embodiment.
 上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計されたハードウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。 The above-described configurations, functions, processing units, processing means, etc. may be partially or wholly realized by hardware designed by, for example, an integrated circuit. Information such as programs, tables, and files that realize each function is stored in a non-volatile semiconductor memory, a hard disk drive, a storage device such as an SSD (Solid State Drive), or a computer-readable information such as an IC card, SD card, or DVD. It can be stored on a temporary data storage medium.
 上記実施形態において、制御情報は複数のテーブルにより表されているが、本発明が使用する制御情報は、データ構造に依存しない。制御情報は、テーブルの他、例えば、データベース、リスト、キュー等のデータ構造で表現することができる。上記実施形態において、識別子、名、ID等の表現は、互いに置換が可能である。 In the above embodiment, the control information is represented by a plurality of tables, but the control information used by the present invention does not depend on the data structure. In addition to the table, the control information can be expressed by a data structure such as a database, a list, or a queue. In the above embodiment, expressions such as an identifier, a name, and an ID can be replaced with each other.
 プロセッサである、CPU、マイクロプロセッサ又は複数のマイクロプロセッサのグループは、プログラムに従って動作することで、定められた処理を実行する。従って、本実施形態においてプロセッサを主語とする説明は、プログラムを主語とした説明でもよく、プロセッサが実行する処理は、そのプロセッサが実装された装置及びシステムが行う処理である。 A CPU, a microprocessor, or a group of a plurality of microprocessors that are processors executes a predetermined process by operating according to a program. Accordingly, in the present embodiment, the description with the processor as the subject may be an explanation with the program as the subject, and the processing executed by the processor is processing performed by the apparatus and system in which the processor is mounted.

Claims (6)

  1.  ストレージシステムであって、
     制御プログラムが動作するプロセッサと、
     複数の論理ボリュームにストレージリソースを提供する複数の第1種または第2種の種類の物理ストレージボリュームと、
     前記プロセッサに接続され、前記複数の物理ストレージボリュームに格納されたデータの一部を格納するキャッシュメモリと、
     前記プロセッサに接続されたメモリであって、ホストからのライト又はリード要求の対象データが前記キャッシュメモリに格納されているかを示すキャッシュ制御情報と、前記ライト又はリード要求を処理するために使用される複数のプロセスの使用状況を管理するプロセス管理情報とを格納するメモリとを有し、
     前記プロセッサは、
     前記ホストから前記論理ボリュームのいずれかの領域を指定した前記リード要求を受信すると、前記プロセス管理情報で管理されている複数のプロセスの内、未使用のプロセスを前記リード要求に割当て、
     前記リード要求で指定された前記論理ボリュームの領域を特定する第1の識別子及び前記キャッシュ制御情報に基づき、前記リード要求の対象データがキャッシュメモリにあるかを判定し、前記対象データが前記キャッシュメモリにないと判定した場合、
     前記リード要求が指定する論理ボリュームを構成する前記複数の物理ストレージボリュームの一部が前記第1種の種類の物理ストレージボリュームである場合は、前記第1の識別子と前記キャッシュメモリ上に確保した領域を特定する識別子とを対応付けて前記キャッシュ制御情報として前記メモリに格納し、
     前記リード要求が指定する論理ボリュームを構成する前記複数の物理ストレージボリュームの一部が第2種の種類の物理ストレージボリュームである場合は、前記リード要求に割り当てられた前記プロセスを特定する第2の識別子と前記キャッシュメモリ上に確保した領域を特定する識別子とを対応付けて前記キャッシュ制御情報として前記メモリに格納し、
     前記キャッシュメモリ上に確保した領域に、前記リード要求により前記複数の物理ストレージボリュームの一部から読み出されたデータを格納するように構成された、
     ストレージシステム。
    A storage system,
    A processor on which a control program runs;
    A plurality of first or second type physical storage volumes that provide storage resources to a plurality of logical volumes;
    A cache memory connected to the processor and storing a part of data stored in the plurality of physical storage volumes;
    A memory connected to the processor, which is used for processing the write or read request and cache control information indicating whether the target data of the write or read request from the host is stored in the cache memory A memory for storing process management information for managing the usage status of a plurality of processes;
    The processor is
    When receiving the read request designating any area of the logical volume from the host, an unused process is allocated to the read request among the plurality of processes managed by the process management information,
    Based on the first identifier specifying the area of the logical volume specified by the read request and the cache control information, it is determined whether the target data of the read request is in a cache memory, and the target data is the cache memory If you decide not to
    When a part of the plurality of physical storage volumes constituting the logical volume specified by the read request is the first type of physical storage volume, the first identifier and the area secured on the cache memory Is stored in the memory as the cache control information in association with an identifier for identifying
    When a part of the plurality of physical storage volumes constituting the logical volume specified by the read request is a second type of physical storage volume, a second process for specifying the process assigned to the read request Associating an identifier with an identifier for specifying an area secured on the cache memory and storing it in the memory as the cache control information;
    The area secured on the cache memory is configured to store data read from a part of the plurality of physical storage volumes by the read request.
    Storage system.
  2.  請求項1に記載のストレージシステムであって、
     前記プロセッサは、
     前記対象データが前記キャッシュメモリにないと判定し、前記リード要求が指定する論理ボリュームを構成する前記複数の物理ストレージボリュームの種類の一部が第2種のボリュームである場合、前記第2の識別子が前記メモリ上の前記キャッシュ制御情報に存在するかを判定し、
     前記第2の識別子が前記キャッシュ制御情報に存在する場合、前記キャッシュ制御情報において、前記第2の識別子に対応付けられた前記キャッシュメモリ上に確保された領域に前記読み出されたデータを格納し、
     前記第2の識別子が前記キャッシュ制御情報に存在しない場合、前記キャッシュメモリ上に新たな領域を確保し、前記第1の識別子と前記キャッシュメモリ上に新たに確保した領域とを対応付けて、前記キャッシュ制御情報として前記メモリに格納するように構成された、
     ストレージシステム。
    The storage system according to claim 1,
    The processor is
    When it is determined that the target data is not in the cache memory and a part of the types of the plurality of physical storage volumes constituting the logical volume specified by the read request is a second type volume, the second identifier Is present in the cache control information on the memory,
    When the second identifier is present in the cache control information, the read data is stored in an area secured on the cache memory associated with the second identifier in the cache control information. ,
    If the second identifier does not exist in the cache control information, a new area is secured on the cache memory, the first identifier is associated with a newly secured area on the cache memory, and Configured to store in the memory as cache control information;
    Storage system.
  3.  請求項2に記載のストレージシステムであって、
     前記プロセッサは、
     前記プロセス管理情報で管理されている未使用のプロセスが複数存在する場合、最も最近使用されたプロセスを前記リード要求に対して割り当てるように構成された、
     ストレージシステム。
    The storage system according to claim 2,
    The processor is
    Configured to assign the most recently used process to the read request when there are a plurality of unused processes managed by the process management information;
    Storage system.
  4.  請求項3に記載のストレージシステムであって、
     前記第1種のボリュームはハードディスクドライブであり、前記第2種のボリュームはソリッドステートドライブである、
     ストレージシステム。
    The storage system according to claim 3,
    The first type volume is a hard disk drive, and the second type volume is a solid state drive.
    Storage system.
  5.  請求項3に記載のストレージシステムであって、
     前記プロセッサは、
     前記複数の物理ストレージボリュームの種類が第2種のボリュームである場合、前記プロセッサの稼働率と前記キャッシュメモリ上に前記対象データが存在する確率であるキャッシュヒット率についての情報を取得し、前記プロセッサの稼働率と前記キャッシュヒット率とが所定の条件を満たす場合に、前記第2の識別子と前記キャッシュメモリ上に確保した領域を特定する識別子とを対応付けて格納するように構成された、
     ストレージシステム。
    The storage system according to claim 3,
    The processor is
    When the type of the plurality of physical storage volumes is a second type volume, information on an operating rate of the processor and a cache hit rate that is a probability that the target data exists on the cache memory is acquired, and the processor When the operation rate and the cache hit rate satisfy a predetermined condition, the second identifier and an identifier for specifying an area secured on the cache memory are stored in association with each other.
    Storage system.
  6.  請求項5に記載のストレージシステムであって、
     前記プロセッサに接続され、前記メモリに格納された前記キャッシュ制御情報及び前記プロセス管理情報のコピーが格納されたローカルメモリを更に有する、
     ストレージシステム。
    The storage system according to claim 5,
    A local memory connected to the processor and storing a copy of the cache control information and the process management information stored in the memory;
    Storage system.
PCT/JP2012/069889 2011-10-07 2012-08-03 Storage system WO2014020766A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2014527931A JP5965486B2 (en) 2012-08-03 2012-08-03 Storage system
PCT/JP2012/069889 WO2014020766A1 (en) 2012-08-03 2012-08-03 Storage system
US13/675,658 US8819371B2 (en) 2011-10-07 2012-11-13 Storage system
US14/445,826 US9329999B2 (en) 2011-10-07 2014-07-29 Storage system improving read performance by controlling data caching

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/069889 WO2014020766A1 (en) 2012-08-03 2012-08-03 Storage system

Related Child Applications (3)

Application Number Title Priority Date Filing Date
US13/264,942 Continuation-In-Part US8719524B2 (en) 2011-10-07 2011-10-07 Storage system including flash drives for improving performance by controlling data caching
PCT/JP2011/005649 Continuation-In-Part WO2013051069A1 (en) 2011-10-07 2011-10-07 Storage system
US13/675,658 Continuation-In-Part US8819371B2 (en) 2011-10-07 2012-11-13 Storage system

Publications (1)

Publication Number Publication Date
WO2014020766A1 true WO2014020766A1 (en) 2014-02-06

Family

ID=50027490

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/069889 WO2014020766A1 (en) 2011-10-07 2012-08-03 Storage system

Country Status (2)

Country Link
JP (1) JP5965486B2 (en)
WO (1) WO2014020766A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2602636B (en) * 2021-01-06 2023-03-15 Advanced Risc Mach Ltd Technique for tracking modification of content of regions of memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008165269A (en) * 2006-12-26 2008-07-17 Fujitsu Ltd Data relay device, storage device, and response delay monitoring method
JP2009181167A (en) * 2008-01-29 2009-08-13 Hitachi Ltd Computer system, remote copy method, and first computer
JP2012514778A (en) * 2009-05-27 2012-06-28 株式会社日立製作所 Storage system and storage system processing efficiency improvement method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008165269A (en) * 2006-12-26 2008-07-17 Fujitsu Ltd Data relay device, storage device, and response delay monitoring method
JP2009181167A (en) * 2008-01-29 2009-08-13 Hitachi Ltd Computer system, remote copy method, and first computer
JP2012514778A (en) * 2009-05-27 2012-06-28 株式会社日立製作所 Storage system and storage system processing efficiency improvement method

Also Published As

Publication number Publication date
JPWO2014020766A1 (en) 2016-07-11
JP5965486B2 (en) 2016-08-03

Similar Documents

Publication Publication Date Title
JP5806776B2 (en) Storage system
US10936503B2 (en) Device access point mobility in a scale out storage system
US8886882B2 (en) Method and apparatus of storage tier and cache management
US10346075B2 (en) Distributed storage system and control method for distributed storage system
US10152428B1 (en) Virtual memory service levels
WO2017216887A1 (en) Information processing system
US7380059B2 (en) Methods and systems of cache memory management and snapshot operations
US9454317B2 (en) Tiered storage system, storage controller and method of substituting data transfer between tiers
US8819371B2 (en) Storage system
JP5931196B2 (en) Control method of cache memory provided in I / O node and plural calculation nodes
JP6067819B1 (en) Hierarchical storage system, storage controller, and method for deduplication and storage tiering
JP6898393B2 (en) Storage system and data transfer method
US10503424B2 (en) Storage system
WO2015162758A1 (en) Storage system
US20170220249A1 (en) Systems and Methods to Maintain Consistent High Availability and Performance in Storage Area Networks
US10761764B1 (en) Storage system and data transfer method
JP5965486B2 (en) Storage system
US11079956B2 (en) Storage system and storage control method
WO2016189640A1 (en) Storage device, and method
US11112973B2 (en) Computer system and data management method

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: 12882321

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014527931

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12882321

Country of ref document: EP

Kind code of ref document: A1