WO2014125559A1 - 記憶制御装置および記憶制御装置の制御方法 - Google Patents

記憶制御装置および記憶制御装置の制御方法 Download PDF

Info

Publication number
WO2014125559A1
WO2014125559A1 PCT/JP2013/053212 JP2013053212W WO2014125559A1 WO 2014125559 A1 WO2014125559 A1 WO 2014125559A1 JP 2013053212 W JP2013053212 W JP 2013053212W WO 2014125559 A1 WO2014125559 A1 WO 2014125559A1
Authority
WO
WIPO (PCT)
Prior art keywords
priority
slot
command
target
storage
Prior art date
Application number
PCT/JP2013/053212
Other languages
English (en)
French (fr)
Inventor
直子 山本
憲 所
寧彦 山口
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US14/760,303 priority Critical patent/US9563574B2/en
Priority to PCT/JP2013/053212 priority patent/WO2014125559A1/ja
Publication of WO2014125559A1 publication Critical patent/WO2014125559A1/ja

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
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation

Definitions

  • the present invention relates to a storage control device and a control method for the storage control device.
  • the host computer sets the priority to the command (I / O request: Input / Output request) and sends it to the storage control device.
  • a method of controlling the command execution order (startup order) according to the priority set on the computer side is known (Patent Document 1).
  • the storage controller receives a high priority read command from the host computer.
  • the data can be immediately transmitted to the host computer.
  • the target data for the read command does not exist in the cache memory, the data is read from the storage device, stored in the cache memory, and then transmitted to the host computer.
  • the priority of the read command is set high, the time (response time) required for completion of the read command processing becomes long, and the QoS decreases.
  • the present invention has been made in view of the above problems, and an object of the present invention is to provide a storage control device and a storage control device capable of improving response performance by controlling data on a cache memory in accordance with command priority. It is to provide a control method.
  • a storage control device is a storage control device connected to a host computer, and receives a command with a priority set from the host computer, and a command from the communication unit.
  • a command execution unit that executes the processing according to priority, a cache memory used by the command execution unit, a cache control unit that manages each slot of the cache memory, and a plurality of memories that store data used by the host computer Equipment,
  • the cache control unit sets a priority for the slot storing the target data of the command, and controls data stored in the slot according to the priority.
  • FIG. 1 is a schematic diagram illustrating an example of an embodiment.
  • FIG. 2 is an explanatory diagram illustrating a hardware configuration of the storage control device.
  • FIG. 3 is an explanatory diagram illustrating a functional configuration of the storage control device.
  • FIG. 4 is an explanatory diagram showing a method of discarding data using a slot queue.
  • FIG. 5 is an explanatory diagram showing a priority table (a) and a slot priority management table (b).
  • FIG. 6 is a flowchart showing processing to be executed according to command priority.
  • FIG. 7 is a flowchart showing processing for setting a priority to a slot according to the priority of a command.
  • FIG. 8 is a flowchart showing processing for discarding data in a slot.
  • FIG. 9 is a flowchart showing processing for updating the target slot number.
  • FIG. 10 is an explanatory diagram showing a screen (a) for setting a target response time and a screen for displaying a response time measurement result.
  • embodiments of the present invention may be implemented by software running on a general-purpose computer, dedicated hardware, or a combination of software and hardware, as will be described later. May be.
  • the management information will be described in a table format.
  • the management information does not necessarily have to be expressed in a data structure using a table, and may be expressed in a data structure such as a list, DB, or queue, or otherwise. May be. Therefore, “table”, “list”, “DB”, “queue”, etc. may be simply referred to as “information” to indicate that they do not depend on the data structure.
  • program as a subject (operation subject). Since the program performs processing defined by being executed by the processor using the memory and the communication port (communication control device), the description may be given with the processor as the subject. Part or all of the program may be realized by dedicated hardware, or may be modularized. Various programs may be installed in each computer by a program distribution server or a storage medium.
  • FIG. 1 is an explanatory diagram showing an outline of the present embodiment.
  • the information processing system shown in FIG. 1 includes at least one storage control device 1, at least one host computer 2, and at least one management computer 3.
  • the storage control device 1 is for controlling data input / output of a plurality of storage devices 1D (1) and 1D (2), and is connected to the host computer 2 so as to be communicable. Details of the storage control device 1 will be described later.
  • the host computer 2 is equipped with an application program and issues a command necessary for processing the application program to the storage control device 1.
  • the command issuing unit 2A which is one of the functions of the host computer 2, issues a command for which priority is set.
  • the management computer 3 includes a priority setting unit 3A for setting a priority for a command issued from the command issuing unit 2A of the host computer 2.
  • the priority can be set according to, for example, the type of application program, the type of command, and the like.
  • the storage control device 1 includes, for example, a command reception unit 1A, a command execution unit 1B, a cache memory 1C, a storage device 1D, a cache control unit 1E, and a command transmission unit 1K.
  • the command receiving unit 1A is communicably connected to the host computer 2 and receives a command with priority issued from the command issuing unit 2A.
  • the command receiving unit 1A transfers the received command to one command execution unit 1B among a plurality of command execution units, and takes charge of command processing. Commands are managed in the priority queue PQ.
  • the command execution unit 1B selects and executes a command having a high priority from the commands stored in the priority queue PQ.
  • the priority is divided into two stages, the high priority is displayed as “H”, and the low priority is displayed as “L”. As in the embodiments described later, the priority can be divided into three or more levels.
  • the command execution unit 1B When the command execution unit 1B receives the write command, the command execution unit 1B secures an empty slot on the cache memory 1C and stores the write data in the reserved empty slot.
  • the write data stored in the slot of the cache memory 1C is written to the storage device 1D at an appropriate timing.
  • the slot in which the data is written in the storage device 1D is released as necessary to become an empty slot, and is used for storing other data. In this specification, releasing a slot and reusing it may be expressed as “discarding data in the slot”.
  • the command execution unit 1B determines whether the data requested by the read command (read data) is stored in the cache memory 1C. When the read data exists on the cache memory 1C, the command execution unit 1B transmits the data read from the cache memory 1C from the transmission unit 1K to the host computer 2. When the read data does not exist on the cache memory 1C, the read data is read from the storage device 1D storing the read data and stored in the cache memory 1C. The command execution unit 1B transmits the read data transferred from the storage device 1D to the cache memory 1C from the transmission unit 1K to the host computer 2.
  • the cache memory 1C is a storage area for temporarily storing data received from the host computer 2 and data read from the storage device 1D.
  • the cache memory 1C may be configured as a dedicated cache memory, or a partial storage area of the shared memory may be used as the cache memory area.
  • Storage device 1D is a device for storing data.
  • the storage device 1D can be broadly classified into a high-speed storage device 1D (1) having a high response speed and a low-speed storage device 1D (2) having a low response speed. Further, a storage device with a medium response speed may be provided.
  • An example of the high-speed storage device 1D (1) is a flash memory device.
  • Examples of the low-speed storage device 1D (2) include a hard disk drive. Even if the storage medium is a similar storage device, there may be a large difference in response speed. Therefore, storage devices having a common principle such as a high-speed hard disk drive and a low-speed hard disk drive, and a high-speed flash memory device and a low-speed flash memory device may be distinguished by a difference in response speed.
  • the cache control unit 1E controls each slot of the cache memory 1C.
  • the cache control unit 1E includes, for example, a slot priority setting unit 1F, a slot priority management table 1G, a target slot number setting unit 1H, a slot discarding unit 1J, and a slot queue SQ.
  • the slot priority setting unit 1F is a function for setting the priority of commands related to the slot in the slot of the cache memory 1C.
  • a command related to a slot is a command targeting data stored in the slot.
  • the slot priority management table 1G is a table for managing the priority of each slot.
  • the slot priority management table 1G manages the slot number (#), the priority, and the type of the storage device 1D in association with each other.
  • the slot queue SQ is used for queue management of data on the cache memory 1C in slot units, and the queue is connected to the slot queue SQ in the order of new data.
  • the target slot number setting unit 1H is a function for setting the target slot number for each priority based on the target response time set for each priority.
  • the target slot number setting unit 1H may adjust the target slot number based on the difference between the target response time set for each priority and the actual response time when the command for each priority is actually processed. it can. For example, when the actual response time is longer than the target response time at a certain priority, the target slot number setting unit 1H increases the target slot number to be set to that priority so that a larger number than the current one is obtained. Assign a slot. This increases the possibility of a cache hit, shortens the actual response time, and reduces the difference between the actual response time and the target response time.
  • the target slot number setting unit 1H decreases the target slot number and allocates a smaller number of slots. This reduces the possibility of a cache hit, increases the actual response time, and reduces the difference between the actual response time and the target response time.
  • the target slot number setting unit 1H can allocate the target slot number for each priority for each type of the storage device 1D, for example, according to the ratio of the reciprocal of the response speed of the storage device 1D.
  • the response speed of the high-speed storage device 1D (1) is three times the response speed of the low-speed storage device 1D (2) and 100 slots are assigned to the high priority H.
  • 75 slots can be assigned to data whose storage destination is the high-speed storage device 1D (1)
  • 25 slots can be assigned to data whose storage destination is the low-speed storage device 1D (2).
  • the slot discarding unit 1J is a function that releases used slots and discards data when there are not enough empty slots on the cache memory 1C.
  • the slot discarding unit 1J selects the slot with the lowest priority from the oldest slots, releases the selected slot, and discards the data.
  • the released slot becomes an empty slot and is used to store new data.
  • the sending unit 1K sends the command processing result to the host computer 2.
  • the command receiving unit 1A and the transmitting unit 1K can be provided in one communication device as will be described later.
  • the host computer 2 issues a command with a priority set, and the command execution unit 1B preferentially processes a command with a high priority. Furthermore, the cache control unit 1E sets priorities for slots storing data to be commanded in accordance with command priorities, so that data in slots with higher priorities can exist in the cache memory 1C longer. Control.
  • the possibility that the read data targeted for the read command can be found on the cache memory 1C increases, and the response time can be shortened.
  • the configuration in which the command execution order is controlled according to the priority and the configuration in which the data on the cache memory 1C is controlled according to the priority are combined. Processing can be performed with a short response time, and the response performance of the storage controller 1 can be improved.
  • the number of target slots set for each priority is controlled according to the difference between the target response time for each priority and the actual response time. Slots can be assigned to each priority. Thereby, an appropriate target slot number can be set according to the load state of the storage control device 1, the type of command issued from the host computer 2, and the response performance of the storage control device 1 can be improved. .
  • the target slot number for each priority is allocated according to the type of storage device 1D (high speed storage device, low speed storage device). For this reason, for example, the response performance as a whole can be improved by increasing the number of slots allocated to the low-speed storage device 1D (2) than the number of slots allocated to the high-speed storage device 1D (1). Since the time for reading data from the high-speed storage device 1D (1) is shorter than the time for reading data from the low-speed storage device 1D (2), the overall response time in the case of a cache miss can be shortened.
  • this embodiment will be described.
  • FIG. 2 is an explanatory diagram showing a hardware configuration of an information processing system including the storage control device 10.
  • the storage control device 10 corresponds to the storage control device 1
  • the host computer 20 corresponds to the host computer 2
  • the management device 30 corresponds to the management computer 3.
  • a channel adapter (CHA) 11 that is an example of a “host side communication device” corresponds to the command receiving unit 1A and the transmitting unit 1K. Although only one CHA 11 is shown in the figure, a plurality of CHAs 11 can be provided in the storage controller 10.
  • the host computer 20 and the storage controller 10 are connected via the first communication path CN1.
  • the host computer 20 and the management device 30 are connected via the second communication path CN2.
  • the management device 30 and the storage control device 10 are connected via a third communication path CN3.
  • the communication paths CN1, CN2, and CN3 may be formed on separate communication networks, or may be formed on a common communication network.
  • the communication paths CN1, CN2, and CN3 may be formed as an IP network such as the Internet or a LAN.
  • the first communication path CN1 is connected to an IP network or FC-SAN (Fibre Channel ⁇
  • the second communication path CN2 and the third communication path CN3 may be formed using an IP network.
  • the disk adapter (DKA) 12 which is an example of “drive side communication device”, controls data input / output to / from the plurality of storage devices 163. Although one DKA 12 is shown in the drawing, a plurality of DKAs 12 can be provided in the storage control device 10.
  • a microprocessor package (MPPK) 13 which is an example of “microprocessor device”, processes commands received from the CHA 11, and includes a command execution unit 1 B, a cache control unit 1 E, a slot priority management table 1 G, a slot queue SQ, and a priority.
  • the degree queue PQ is realized.
  • the MPPK 13 includes, for example, a plurality of microprocessors 131 and a shared memory 132.
  • the shared memory 132 is used by each microprocessor 131, and stores tables T1 and T2, which will be described later, a priority queue PQ, and a slot queue SQ.
  • the cache memory package (CMPK) 14 corresponds to the cache memory 1C in FIG.
  • the switch 15 connects each of the packages 11, 12, 13, and 14 and a service processor (SVP) 17 described below so that they can communicate with each other.
  • SVP service processor
  • the storage unit unit (HDU) 16 has a plurality of storage devices 161, and each storage device 161 is connected to the DKA 12.
  • the storage device 161 for example, various devices capable of reading and writing data such as a hard disk drive, a semiconductor memory drive, an optical disk drive, and a magneto-optical disk drive can be used.
  • FC Fibre Channel
  • SCSI Serial Computer System Interface
  • SATA Serial Advanced Technology Attachment
  • SAS Serial Attached SCSI
  • various storage devices such as flash memory, FeRAM (Ferroelectric Random Access Memory), MRAM (Magnetoresistive Random Access Memory), phase change memory (Ovonic Unified Memory), and RRAM (registered trademark) may be used.
  • a logical storage area is formed by forming a group 162 from physical storage areas of one or a plurality of storage devices 161 and cutting the storage areas of the grouped physical storage areas 162 at a predetermined size or an arbitrary size.
  • a logical volume 163 can be obtained.
  • the storage unit 16 provided outside the housing of the storage control device 10 and the DKA 16 in the storage control device 10 may be connected to be communicable. Further, the storage control device 10 and another storage control device (not shown) may be communicably connected so that the storage control device 10 uses a storage device managed by another storage control device.
  • the SVP 17 is a device for communicating with the management device 30.
  • the management device 30 can acquire information about various states of the storage control device 10 via the SVP 17.
  • the management device 30 can also make various settings in the storage control device 10 via the SVP 17.
  • the management device 30 has a setting processing unit P1.
  • the setting processing unit P1 has a function of setting a priority for each command to the host computer 20 and setting a target response time to the storage controller 10.
  • the host computer 20 has an I / O issuing unit P2.
  • the I / O issuing unit P2 corresponds to the command issuing unit 2A in FIG.
  • the I / O issuing unit P2 issues a read command or a write command by designating the logical address of the target data.
  • the I / O issuing unit P2 issues a command with a priority prepared for each command.
  • the CHA 11 has an I / O distribution unit P3.
  • the I / O distribution unit P3 distributes the command received from the host computer 20 to any one of the plurality of MPs 131 in the MPPK 13, and distributes the processing of the command.
  • the I / O distribution unit P3 can distribute the command to one of the MPs 131 according to a round robin method or the like.
  • the I / O distribution unit P3 corresponds to the command receiving unit 1A in FIG.
  • the MPPK 13 includes, for example, a priority queue processing unit P4, an I / O execution unit P5, a table management unit P6, a slot queue processing unit P7, and a statistical information collection unit P8.
  • the priority queue processing unit P4 controls the priority queue PQ.
  • the I / O execution unit P5 executes a command (I / O request) transferred from the CHA 11, and corresponds to the command execution unit 1B in FIG.
  • the table management unit P6 appropriately updates and manages the priority management table T1 and the slot priority management table T2.
  • the slot queue processing unit P7 controls the slot queue SQ.
  • the statistical information collection unit P8 collects statistical information such as actual response time, for example. Using the statistical information, the target slot number is controlled as will be described later.
  • a method for managing the slot queue SQ will be described with reference to FIG. For example, when data is transferred from the storage device 161 to the cache memory 141, an empty slot for storing the data is required. LRU (Least Recently In the case of a control method known as “used”, the least used data is discarded. A slot for storing data that has passed a certain period since it was last used is released and reused as an empty slot.
  • LRU Least Recently In the case of a control method known as “used”
  • each slot queue SQ has a priority, and here, the priority is expressed by a number from 1 to 3. The smaller the priority number, the higher the priority. That is, the priority decreases in the order of priorities 1, 2, and 3 (priority 1> priority 2> priority 3).
  • To identify a slot put a number with parentheses next to the slot.
  • the oldest slot data (# 1) is discarded first, but in this embodiment, as shown in the slot queue SQ (1), it is not the oldest slot (# 1) but has the lowest priority.
  • the oldest slot (# 2 indicated by the hatched portion) of the slots is selected as a discard target.
  • a new slot (# 7) having priority 2 is added to the slot queue SQ (2) as shown on the right side of FIG.
  • the slot (# 2, # 4) having the lowest priority 3 among the slots of the slot queue SQ (1) on the right side of FIG. 4 is discarded. .
  • FIG. 5A shows a table T1 for managing priorities
  • FIG. 5B shows a table T2 for managing slot priorities.
  • the priority table T1 manages, for example, the priority C10, the target response time C11, the actual response time C12, the target slot number C13, and the reserved slot number C14 in association with each other.
  • the priority C10 is a priority related to command (I / O request) processing. In this embodiment, the smaller the number, the higher the priority.
  • the target response time C11 is a value set for each priority, and is a target value for the time required to process a command having that priority.
  • the actual response time C12 is a value measured for each priority, and is an actual value required for command processing.
  • the target slot number C13 is the number of slots assigned for each priority.
  • the target slot number C13 is further distributed according to the type of the storage device 161. For example, when a total of N slots are assigned to a certain priority as the target number of slots, n1 slots are assigned to one type of storage device and n2 slots are assigned to the other type of storage device. Is assigned.
  • the reserved slot number C14 indicates the number of slots reserved for each priority. That is, the number of slots in use for each priority. The number of reserved slots is also managed separately for each type of storage device.
  • the slot priority management table T2 has, for example, a slot number C20, a priority C21, and a storage device type C22.
  • the slot number C20 is a number for identifying a slot which is a storage unit of the cache memory 141.
  • the priority C21 is a priority set for a slot.
  • the priority set for a command is also set for a slot that stores data targeted by the command.
  • the MPPK 13 when the MPPK 13 receives a new command for the data stored in the slot and the priority of the new command is higher than the priority of the slot, the priority of the slot The degree is updated to a higher priority.
  • the command priority and the slot priority have the same division, for example, “A, B, C”, “1, 2, 3”.
  • the command priority classification and the slot priority classification may be different.
  • the command priority may be divided into five levels “1, 2, 3, 4, 5” and the slot priority may be divided into three levels “A, B, C”.
  • Storage device type (type in the figure) C22 indicates the type of storage device that is the storage destination of the data stored in the slot.
  • “HDD” indicates a hard disk drive
  • “SSD” indicates a flash memory device.
  • the present invention is not limited to this, and may be configured to be applicable to other types of storage devices having different response performance such as “SATA”, “FC”, “SSD”, “PRAM”, and the like.
  • the management apparatus 30 sets a priority for each command in the host computer 20 (S10).
  • the host computer 20 stores the set priority (S11).
  • the host computer 20 When the host computer 20 issues a command to the storage controller 10, the host computer 20 sets a priority according to the command (S12).
  • the CHA 11 of the storage controller 10 receives a command with priority from the host computer 20 (S13).
  • the CHA 11 distributes the command received in step S13 to any one of the plurality of MPs 131 in the MPPK 13 (S14).
  • the command is linked to the priority queue PQ.
  • the MP 131 in charge of processing the command refers to the priority queue PQ and preferentially executes the command with the highest priority (S15).
  • the storage controller 10 transmits the command processing result in the MP 131 from the CHA 11 to the host computer 20 (S16).
  • the host computer 20 receives the command processing result (S17).
  • the process for setting the priority to a slot when a command is received will be described.
  • a case where a read command is received will be described as an example.
  • the operation subject is the MP 131, but instead, the storage control device 10, the cache control unit, the MPPK 13, and the names of predetermined functions may be used as the operation subject. .
  • the CHA 11 of the storage controller 10 transfers the read command received from the host computer 20 to the MPPK 13 (S20).
  • the read command with the priority set is stored in the priority queue PQ.
  • the MP 131 to which the read command transferred from the CHA 11 is assigned among the plurality of MPs 131 of the MPPK 13 determines whether the data (read data) requested by the read command exists on the cache memory 141 (S21).
  • the MP 131 When the requested read data is stored in the cache memory 141 (S21: YES), the MP 131 has a priority set in the read command rather than the priority Pcs of the data stored in the slot of the cache memory 141. It is determined whether Pcmd is higher (S23). Hereinafter, for convenience, the command priority Pcmd and the slot priority Pcs may be expressed.
  • the MP 131 calculates a target slot number ST related to the command priority Pcmd (S24). A method of calculating the target slot number will be described later with reference to FIG.
  • the MP 131 obtains from the reserved slot number SG priority management table T1 corresponding to the command priority Pcmd (S25), and determines whether the reserved slot number SG is smaller than the target slot number ST (S26).
  • the MP 131 determines that the number of slots SG reserved for the command priority Pcmd is smaller than the target slot number ST (S26: YES)
  • the MP 131 updates the slot priority management table T2 (S27). That is, the MP 131 updates the priority C21 of the slot storing the read data with the command priority Pcmd and updates the type C22 of the storage device that is the storage destination of the slot in the slot priority management table T2. (S27).
  • the MP 131 transfers the read data on the cache memory 141 to the buffer memory 114 of the CHA 11, transmits the data from the CHA 11 to the host computer 20, and ends this processing (S28).
  • step S23 when it is determined that the slot priority Pcs is higher than the command priority Pcmd (S23: NO), the MP 131 proceeds to step S28 and transfers the read data on the cache memory 141 to the buffer memory 114 of the CHA 11. After the transfer, this process ends.
  • the higher priority of the set slot priority Pcs and the newly issued command priority Pcmd is set to the slot.
  • step S26 Even when it is determined in step S26 that the reserved slot number SG is equal to or greater than the target slot number ST (S26: NO), the MP 131 proceeds to step S28 and reads the read data on the cache memory 141 as the buffer memory of the CHA 11. The process is terminated.
  • step S21 When it is determined in step S21 that the read data requested by the read command does not exist in the cache memory 141 (S21: NO), the MP 131 determines whether there is an empty slot in the cache memory 141 (S29).
  • the MP 131 secures an empty slot (S31).
  • the MP 131 calculates the target slot number ST for the priority Pcmd of the read command (S32), and further acquires the slot number SG reserved for the priority Pcmd from the priority management table T1 (S33). The MP 131 determines whether the reserved slot number SG is smaller than the target slot number ST (S34).
  • the MP 131 When it is determined that the reserved slot number SG is smaller than the target slot number ST (S34: YES), the MP 131 updates the priority C21 and the like in the slot priority management table T2 (S35). If it is determined that the reserved slot number SG is greater than or equal to the target slot number ST (S34: NO), the MP 131 skips step S35 and proceeds to step S36.
  • the MP 131 causes the DKA 12 to transfer the read data from the storage device 161 to the cache memory 141 (S36), further transfers the read data from the cache memory 141 to the buffer memory 114 of the CHA 11 (S37), and ends this processing. Thereafter, the CHA 11 transmits read data to the host computer 20.
  • the MP 131 refers to the slot queue SQ and starts searching from the oldest slot (S40).
  • the MP 131 acquires the priority of the oldest slot detected as a processing target from the slot priority management table T2 (S41).
  • the MP 131 determines whether the priority acquired in step S41 is the lowest priority (S42). For example, when three levels of priority “1, 2, 3” are used, it is determined in step S42 whether the priority of the processing target slot is “3” which is the lowest value.
  • the MP 131 moves the processing target slot to the next oldest slot (S43) and returns to step S41.
  • the MP 131 calculates the target slot number ST for the priority of the processing target slot (S44). Furthermore, the MP 131 acquires the reserved slot number SG for the priority of the processing target slot from the priority management table T1 (S45).
  • the MP 131 determines whether the reserved slot number SG related to the priority of the processing target slot is equal to or less than the target slot number ST (S46). When the MP 131 determines that the reserved slot number SG exceeds the target slot number ST (S46: NO), the MP 131 discards the processing target slot (S47) and updates the priority table T1 and the slot priority management table T2. (S48). That is, when a slot exceeding the target number of slots is secured with respect to the priority of the processing target slot, the MP 131 discards one extra reserved slot and converts it to an empty slot.
  • the MP 131 determines that the reserved slot number SG is equal to or smaller than the target slot number ST (S46: YES), the MP 131 shifts to the next lower priority without discarding the processing target slot (S49). ). That is, when only slots that do not satisfy the target number of slots are secured, the secured slots are not discarded, but the priority one higher than the lowest priority is treated as the lowest priority, and this processing is repeated. Thus, slots up to the target number of slots can be secured for each priority. Accordingly, even when the storage control device 10 receives a low priority command, it can be processed using the minimum required slot, and it is possible to suppress a delay in the response of the low priority command. it can.
  • the target number of slots is calculated so that the higher the priority is, the more slots can be used.
  • a target response time C11 is set for each priority.
  • the total number of slots is 100
  • the target response time of priority 1 is 1 ms
  • the target response time of priority 2 is 5 ms
  • the target response time of priority 3 is 10 ms.
  • the target slot number for each priority is allocated according to the type of the storage device 161.
  • the ratio of the response time Thdd when reading data from the hard disk drive and the response time Tssd when reading data from the flash memory device is 30: 1. That is, the flash memory device can read data 30 times faster than the hard disk drive.
  • the target slot number for each priority is allocated for each type of storage device.
  • priority 1 The case of priority 1 will be described as an example. Since the total number of target slots assigned to priority 1 is 62, if allocated according to the response time ratio of the storage device, 59 slots are allocated to the hard disk drive. Two slots are allocated to the flash memory device.
  • the target slot number is set based on the difference in response performance. Can be distributed.
  • the response time may vary depending on the installation location and communication speed. For example, even if the same type of storage device is used, the response time differs between the case where it is provided in the storage control device 10 and the case where it is connected to the outside of the storage control device 10 via a communication network. Reading data from a storage device in the storage control device 10 is faster than reading data from a storage device connected to the outside of the storage control device 10. Even for the same type of storage device, the response time differs depending on the RAID configuration. When complicated parity calculation is required, it takes time to read data. Further, even for the same type of storage device, the response time varies depending on the presence or absence of encryption processing. Therefore, a configuration in which the target number of slots is distributed in consideration of the difference in response time as described above may be adopted.
  • FIG. 9 is a flowchart showing a process for updating the target slot number. This process is executed for each priority, either regularly or irregularly.
  • the MP 131 acquires the target response time RT for the target priority (S50) and the actual response time RA (S51) measured for the target priority from the priority table T1.
  • the MP 131 determines whether the target response time RT and the actual response time RA are large or small (S52). When it is determined that the actual response time RA is longer than the target response time RT (S52: RT ⁇ RA), the MP 131 increases the target slot number ST by a predetermined amount dS (S53), and ends this process. This is because the actual response time RA is shortened by increasing the cache hit rate to bring the actual response time RA closer to the target response time RT.
  • the MP 131 decreases the target slot number ST by a predetermined amount dS (S54) and ends this process. This is because the cache response rate is decreased to make the actual response time RA longer than it is now, and the actual response time RA approaches the target response time RT.
  • the MP 131 ends this process without adjusting the target slot number.
  • the target response time RT and the actual response time RA are not limited to exactly match, but include the case where the difference between them falls within a predetermined range.
  • the response time when processing the read command includes the response time when transmitting data from the cache memory 141 to the host computer 20 (response time at the time of cache hit), and storage There is a response time (response time at cache miss) when data is read from the device 161 and transmitted to the host computer 20.
  • the probability that the target data of the read command exists on the cache memory 141 is H
  • the time required to transfer data from the cache memory 141 to the host computer 20 is t1
  • the data is transferred from the storage device 161 to the host computer 20.
  • the time required is t2.
  • the response time varies depending on the value of the probability H that the target data exists on the cache memory 141.
  • the response time can be shortened as the cache hit rate H increases.
  • the probability H can be expressed as a ratio of the number of slots n for each priority to the total number of slots N of the cache memory 141.
  • the actual response time RA approaches the target response time RT by increasing the number of slots for each priority.
  • the slot adjustment amount dS can be obtained from the difference dR between the target response time RT and the actual response time RA for each priority.
  • the response time difference dR can be expressed as the following mathematical formula (3) from the mathematical formula (1).
  • DH is a ratio of the slot adjustment amount dS to the number N of all slots on the cache memory 141, and can be expressed as the following formula (4) based on the formula (3).
  • the slot adjustment amount dS can be obtained by the following equation (5).
  • the target slot number for each type of storage device is calculated by multiplying the slot adjustment amount dS calculated by the above equation (5) by the ratio for each type of storage device, and the priority table. Update T1.
  • FIG. 10 shows an example of a user interface screen provided by the management apparatus 30.
  • FIG. 10A is a screen G1 for setting the target response time.
  • a user such as a storage administrator can set a target response time for each application program running on the host computer 20 on the target response time setting screen G1.
  • the target response time for each application program and the target response time for each priority are associated according to a predetermined standard. For example, when the target response time value input to the screen G1 for an application program belongs to the first range indicating the target response time range of priority 1, it is converted to the target response time of priority 1 Store in the priority table T1. Similarly, when the value of the target response time input on the screen G1 belongs to the second range indicating the range of the target response time of priority 2, it is converted into the target response time of priority 2 and the priority table T1. To remember. Similarly, when the value of the target response time input on the screen G1 belongs to the third range indicating the range of the target response time of priority 3, it is converted into the target response time of priority 3 and the priority table T1. To remember.
  • FIG. 10B is a screen G2 displaying the response time measurement result.
  • the management device 30 can acquire information related to the actual response time of the storage control device 10 via the SVP 17.
  • the measurement result display screen G2 displays the target response time and the actual response time in association with each application program. Thereby, the user can grasp
  • the storage control device 10 preferentially processes commands with high priority, and controls slots so that the higher the priority is, the longer the cache memory 141 exists. .
  • a command with higher priority can be processed with a shorter response time, and the response performance of the storage control device 10 Can be improved.
  • the number of slots set for each priority is controlled according to the difference between the target response time and the actual response time for each priority, so that the number of slots suitable for the situation of the storage control device 10 Can be assigned to each priority.
  • the target number of slots for each priority is allocated according to the type of storage device. For this reason, the response performance as a whole can be improved by increasing the number of slots allocated to the low-speed storage device than the number of slots allocated to the high-speed storage device.
  • the present invention can also be expressed as a computer program or a medium on which the computer program is recorded as described below.
  • a computer program (or computer program recording medium) for causing a computer device connected to a host computer to function as a storage control device, A communication unit for receiving a command with a priority set from the host computer; A command execution unit that executes the command from the communication unit according to the priority; A cache memory used by the command execution unit; A cache control unit that manages each slot of the cache memory, wherein the priority is set to a slot that stores the target data of the command, and data stored in the slot is controlled according to the priority A control unit; A computer program (or computer program recording medium) for realizing the above in the computer device.
  • 1 storage controller
  • 2 host computer
  • 3 management computer
  • 10 storage controller
  • 11 channel adapter
  • 12 disk adapter
  • 13 microprocessor package
  • 14 cache memory package
  • 161 storage device
  • 20 Host computer
  • 30 Management device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

記憶制御装置の応答性能を改善すること。 ホスト計算機2に接続される記憶制御装置1は、ホスト計算機から優先度の設定されたコマンドを受領する通信部1Aと、通信部からのコマンドを優先度に応じて実行するコマンド実行部1Bと、コマンド実行部により使用されるキャッシュメモリ1Cと、キャッシュメモリの各スロットを管理するキャッシュ制御部1Eと、ホスト計算機により使用されるデータを記憶する複数の記憶装置1D(1)、1D(2)を備える。キャッシュ制御部は、コマンドの対象データを格納するスロットに優先度を設定し、優先度に応じてスロットに記憶されるデータを制御する。

Description

記憶制御装置および記憶制御装置の制御方法
 本発明は、記憶制御装置および記憶制御装置の制御方法に関する。
 記憶制御装置におけるQoS(Quality of Service)制御の方法として、ホスト計算機はコマンド(I/O要求:Input/Output要求)に優先度を設定して記憶制御装置に送信し、記憶制御装置は、ホスト計算機側で設定された優先度に応じて、コマンドの実行順序(起動順序)を制御する方法が知られている(特許文献1)。
国際公開第2012/032577号パンフレット
 従来技術によればホスト計算機で設定された優先度に応じてコマンドの実行順序を制御するため、QoSを改善することができる。しかし、コマンドの実行順序を制御するだけではQoS改善に限界がある。
 例えば、記憶制御装置がホスト計算機から優先度の高いリードコマンドを受領した場合を検討する。そのリードコマンドの対象データがキャッシュメモリに格納されている場合は、直ちにそのデータをホスト計算機に送信することができる。しかし、リードコマンドの対象データがキャッシュメモリ上に存在しない場合は、そのデータを記憶装置から読み出してキャッシュメモリに記憶し、その後にホスト計算機に送信することになる。後者の場合、リードコマンドの優先度が高く設定されているにもかかわらず、リードコマンドの処理完了に要する時間(応答時間)が長くなり、QoSが低下する。
 本発明は、上記問題に鑑みてなされたもので、その目的は、コマンドの優先度に応じてキャッシュメモリ上のデータを制御することで応答性能を改善できるようにした記憶制御装置および記憶制御装置の制御方法を提供することにある。
 上記課題を解決すべく、本発明に従う記憶制御装置は、ホスト計算機に接続される記憶制御装置であって、ホスト計算機から優先度の設定されたコマンドを受領する通信部と、通信部からのコマンドを優先度に応じて実行するコマンド実行部と、コマンド実行部により使用されるキャッシュメモリと、キャッシュメモリの各スロットを管理するキャッシュ制御部と、ホスト計算機により使用されるデータを記憶する複数の記憶装置と、
を備え、キャッシュ制御部は、コマンドの対象データを格納するスロットに優先度を設定し、優先度に応じてスロットに記憶されるデータを制御する。
 本発明の更なる特徴は、本明細書の記述および添付図面から明らかになるであろう。また、本発明の様態は、要素、多様な要素の組み合わせ、以降の詳細な記述などから達成され、実現される。
 本明細書の記述は典型的な例示に過ぎず、本発明の特許請求の範囲又は適用例を如何なる意味に於いても限定するものではないことを理解する必要がある。
図1は、実施形態の一例を示す概要図。 図2は、記憶制御装置のハードウェア構成を示す説明図。 図3は、記憶制御装置の機能構成を示す説明図。 図4は、スロットキューを用いてデータを破棄する方法を示す説明図。 図5は、優先度テーブル(a)およびスロット優先度管理テーブル(b)を示す説明図。 図6は、コマンドの優先度に応じて実行する処理を示すフローチャート。 図7は、コマンドの優先度に応じてスロットに優先度を設定する処理を示すフローチャート。 図8は、スロットのデータを破棄する処理を示すフローチャート。 図9は、目標スロット数を更新する処理を示すフローチャート。 図10は、目標応答時間を設定する画面(a)および応答時間の測定結果を表示する画面を示す説明図。
 以下、図面に基づいて、本発明の実施の形態を説明する。添付図面では、機能的に同じ要素を同じ番号で表示する場合がある。添付図面は、本発明の原理に則った具体的な実施形態と実施例とを示している。それらの実施形態及び実施例は、本発明の理解のためのものであり、本発明を限定的に解釈するために用いてはならない。
 本実施形態では、当業者が本発明を実施するのに十分かつ詳細にその説明がなされているが、他の実施例または形態も可能である。本発明の技術的思想の範囲と精神を逸脱することなく、構成または構造の変更、多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述を、これに限定して解釈してはならない。
 さらに、本発明の実施形態は、後述するように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし、専用ハードウェアで実装してもよいし、またはソフトウェアとハードウェアの組み合わせで実装しても良い。
 以後の説明では、管理用の情報をテーブル形式で説明するが、管理用の情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、DB、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「DB」、「キュー」等について単に「情報」と呼ぶことがある。
 以下では「プログラム」を主語(動作主体)として本発明の実施形態における各処理について説明を行う場合がある。プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、プロセッサを主語とした説明としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
 図1は、本実施形態の概要を示す説明図である。図1に示す情報処理システムは、少なくとも一つの記憶制御装置1と、少なくとも一つのホスト計算機2と、少なくとも一つの管理計算機3を備える。
 記憶制御装置1は、複数の記憶装置1D(1)、1D(2)のデータ入出力を制御するためのもので、ホスト計算機2と通信可能に接続されている。記憶制御装置1の詳細は後述する。
 ホスト計算機2は、アプリケーションプログラムを搭載しており、アプリケーションプログラムの処理に必要なコマンドを記憶制御装置1に発行する。ホスト計算機2の有する機能の一つであるコマンド発行部2Aは、優先度を設定したコマンドを発行する。
 管理計算機3は、ホスト計算機2のコマンド発行部2Aから発行されるコマンドに対して優先度を設定するための優先度設定部3Aを備えている。優先度は、例えば、アプリケーションプログラムの種類、コマンドの種類などに応じて設定することができる。
 記憶制御装置1は、例えば、コマンド受領部1A、コマンド実行部1B、キャッシュメモリ1C、記憶装置1D、キャッシュ制御部1E、コマンド送信部1Kを備える。
 コマンド受領部1Aは、ホスト計算機2に通信可能に接続されており、コマンド発行部2Aから発行された優先度付のコマンドを受領する。コマンド受領部1Aは、受領したコマンドを複数のコマンド実行部のうちの一つのコマンド実行部1Bに転送し、コマンド処理を担当させる。コマンドは優先度キューPQで管理される。
 コマンド実行部1Bは、優先度キューPQに格納されたコマンドの中から優先度の高いコマンドを選択して実行する。図1では、説明の便宜上優先度を2段階に分け、高優先度を「H」と、低優先度を「L」と表示している。後述の実施例のように、優先度は3段階以上に分けることもできる。
 コマンド実行部1Bは、ライトコマンドを受領した場合、空いているスロットをキャッシュメモリ1C上に確保し、その確保した空きスロットにライトデータを格納する。キャッシュメモリ1Cのスロットに格納されたライトデータは、タイミングを見計らって、記憶装置1Dに書き込まれる。データが記憶装置1Dに書き込まれたスロットは、必要に応じて解放されて空きスロットとなり、他のデータを格納するために使用される。スロットを解放して再利用することを、本明細書では「スロットのデータを破棄する」と表現する場合がある。
 コマンド実行部1Bは、リードコマンドを受領した場合、リードコマンドで要求されたデータ(リードデータ)がキャッシュメモリ1Cに記憶されているか判定する。リードデータがキャッシュメモリ1C上に存在する場合、コマンド実行部1Bは、キャッシュメモリ1Cから読み出したデータを送信部1Kからホスト計算機2に送信する。リードデータがキャッシュメモリ1C上に存在しない場合、リードデータを格納している記憶装置1Dからリードデータが読み出されて、キャッシュメモリ1Cに記憶される。コマンド実行部1Bは、記憶装置1Dからキャッシュメモリ1Cに転送されたリードデータを、送信部1Kからホスト計算機2に送信する。
 キャッシュメモリ1Cは、ホスト計算機2から受領したデータ、および、記憶装置1Dから読み出したデータを一時的に記憶する記憶領域である。キャッシュメモリ1Cは、専用のキャッシュメモリとして構成してもよいし、または、共有メモリの一部の記憶領域をキャッシュメモリ領域として使用してもよい。
 記憶装置1Dは、データを記憶するための装置である。記憶装置1Dは、応答速度の早い高速な記憶装置1D(1)と、応答速度の遅い低速な記憶装置1D(2)とに大別することができる。さらに、応答速度が中程度の記憶装置を設けても良い。高速な記憶装置1D(1)として、例えばフラッシュメモリデバイス等を挙げることができる。低速な記憶装置1D(2)として、例えばハードディスクドライブ等を挙げることができる。記憶媒体が同様な記憶装置であっても、応答速度の違いが大きい場合がある。従って、高速なハードディスクドライブと低速なハードディスクドライブ、高速なフラッシュメモリデバイスと低速なフラッシュメモリデバイス、のように原理の共通する記憶装置を応答速度の差によって区別してもよい。
 キャッシュ制御部1Eは、キャッシュメモリ1Cの各スロットを制御する。キャッシュ制御部1Eは、例えば、スロット優先度設定部1Fと、スロット優先度管理テーブル1Gと、目標スロット数設定部1Hと、スロット破棄部1Jと、スロットキューSQと、を備える。
 スロット優先度設定部1Fは、キャッシュメモリ1Cの有するスロットに、そのスロットに関連するコマンドの優先度を設定する機能である。スロットに関連するコマンドとは、そのスロットに格納されるデータを対象とするコマンドである。
 スロット優先度管理テーブル1Gは、各スロットの優先度を管理するためのテーブルである。スロット優先度管理テーブル1Gは、スロット番号(#)と、優先度と、記憶装置1Dの種別とを対応づけて管理する。
 スロットキューSQは、キャッシュメモリ1C上のデータをスロット単位でキュー管理するためのもので、新しいデータの順にスロットキューSQにキューが接続される。
 目標スロット数設定部1Hは、優先度毎に設定される目標応答時間に基づいて、優先度毎の目標スロット数を設定する機能である。目標スロット数設定部1Hは、優先度毎に設定される目標応答時間と、優先度毎のコマンドを実際に処理した場合の実応答時間との差に基づいて、目標スロット数を調整することもできる。例えば、或る優先度において、目標応答時間よりも実応答時間の方が長い場合、目標スロット数設定部1Hは、その優先度に設定する目標スロット数を増加して、今よりも多い数のスロットを割り当てる。これにより、キャッシュヒットの可能性が増加し、実応答時間が短縮して、実応答時間と目標応答時間との差が縮まる。これとは逆に、実応答時間が目標応答時間よりも短い場合、目標スロット数設定部1Hは、目標スロット数を減少させて、今よりも少ない数のスロットを割り当てる。これにより、キャッシュヒットの可能性が低下し、実応答時間が長くなり、実応答時間と目標応答時間の差が縮まる。
 さらに目標スロット数設定部1Hは、例えば、記憶装置1Dの応答速度の逆数の比に応じて、優先度毎の目標スロット数を記憶装置1Dの種別毎に配分できる。
 例えば、高速な記憶装置1D(1)の応答速度が低速な記憶装置1D(2)の応答速度の3倍であり、高優先度Hに100個のスロット割り当てられた場合を仮定する。この場合、高速な記憶装置1D(1)を格納先とするデータに75個のスロットを割り当て、低速な記憶装置1D(2)を格納先とするデータに25個のスロットを割り当てることができる。低速な記憶装置1D(2)に多くのスロットを割り当てることで、キャッシュヒットの可能性を高めて、応答時間を短くすることができる。
 スロット破棄部1Jは、キャッシュメモリ1C上の空きスロットが足りなくなった場合等に、使用済のスロットを解放してデータを破棄する機能である。スロット破棄部1Jは、最古のスロットの中から最も優先度の低いスロットを選択し、選択したスロットを解放してデータを破棄する。解放されたスロットは空きスロットとなり、新たなデータを格納するために使用される。
 送信部1Kは、コマンドの処理結果をホスト計算機2に送信する。コマンド受領部1Aと送信部1Kは、後述するように一つの通信装置の中に設けることができる。
 このように構成される本実施形態では、ホスト計算機2は優先度を設定したコマンドを発行し、コマンド実行部1Bは優先度の高いコマンドを優先的に処理する。さらに、キャッシュ制御部1Eは、コマンドの優先度に応じて、コマンドの対象とするデータを格納するスロットに優先度を設定し、優先度の高いスロットのデータほど長くキャッシュメモリ1Cに存在できるように制御する。
 従って、例えば、高い優先度を有するリードコマンドが発行された場合、リードコマンドの対象であるリードデータをキャッシュメモリ1C上で発見できる可能性が増大し、応答時間を短縮できる。このように本実施形態では、優先度に応じてコマンドの実行順序を制御する構成と優先度に応じてキャッシュメモリ1C上のデータを制御する構成とが結合することで、優先度の高いコマンドほど短い応答時間で処理することができ、記憶制御装置1の応答性能を改善できる。
 また、本実施形態では、優先度毎に設定される目標スロット数を、優先度毎の目標応答時間と実応答時間との差に応じて制御するため、記憶制御装置1の状況に適した数のスロットを各優先度に割り当てることができる。これにより、記憶制御装置1の負荷状態、ホスト計算機2から発行されるコマンドの種類等に応じて、適切な目標スロット数を設定することができ、記憶制御装置1の応答性能を高めることができる。
 本実施形態では、記憶装置1Dの種別(高速記憶装置、低速記憶装置)に応じて、優先度毎の目標スロット数を配分する。このため、例えば、高速な記憶装置1D(1)に割り当てるスロット数よりも低速な記憶装置1D(2)に割り当てるスロット数を多くすることで、全体としての応答性能を改善することができる。高速な記憶装置1D(1)からデータを読み出す時間は、低速な記憶装置1D(2)からデータを読み出す時間よりも短いため、キャッシュミスした場合の全体的な応答時間を短縮できる。以下、本実施形態の一例を説明する。
 図2は、記憶制御装置10を含む情報処理システムのハードウェア構成を示す説明図である。先に、図1で述べた実施形態と本実施例との対応関係を説明する。
記憶制御装置10は記憶制御装置1に、ホスト計算機20はホスト計算機2に、管理装置30は管理計算機3に、対応する。「ホスト側通信装置」の一例であるチャネルアダプタ(CHA)11は、コマンド受領部1Aおよび送信部1Kに対応する。図中、CHA11を1つのみ示すが、複数のCHA11を記憶制御装置10に設けることができる。
 各装置10、20、30を結ぶ通信構成を説明する。ホスト計算機20と記憶制御装置10とは第1通信経路CN1を介して接続されている。ホスト計算機20と管理装置30とは第2通信経路CN2を介して接続されている。管理装置30と記憶制御装置10とは第3通信経路CN3を介して接続されている。通信経路CN1、CN2、CN3は、それぞれ別々の通信ネットワーク上に形成してもよいし、共通の通信ネットワーク上に形成してもよい。一例として、各通信経路CN1、CN2、CN3をインターネットあるいはLAN等のIPネットワークとして形成してもよい。または、第1通信経路CN1をIPネットワークまたはFC-SAN(Fibre Channel -
Storage Area Network)を利用して形成し、第2通信経路CN2および第3通信経路CN3をIPネットワークを利用して形成してもよい。
 「ドライブ側通信装置」の一例であるディスクアダプタ(DKA)12は、複数の記憶装置163へのデータ入出力を制御する。図中、1つのDKA12を示すが、複数のDKA12を記憶制御装置10に設けることができる。
 「マイクロプロセッサ装置」の一例であるマイクロプロセッサパッケージ(MPPK)13はCHA11から受領したコマンドを処理するもので、コマンド実行部1Bとキャッシュ制御部1E、スロット優先度管理テーブル1G、スロットキューSQおよび優先度キューPQを実現する。
 MPPK13は、例えば、複数のマイクロプロセッサ131と、共有メモリ132を備える。共有メモリ132は、各マイクロプロセッサ131により使用されるもので、後述する各テーブルT1、T2と、優先度キューPQおよびスロットキューSQとを記憶している。
 キャッシュメモリパッケージ(CMPK)14は、図1中のキャッシュメモリ1Cに対応するもので、キャッシュメモリ141を有する。
 スイッチ15は、各パッケージ11、12、13、14と後述のサービスプロセッサ(SVP)17を相互に通信可能に接続する。
 記憶ユニット部(HDU)16は、複数の記憶装置161を有しており、各記憶装置161はDKA12に接続されている。記憶装置161としては、例えば、ハードディスクドライブ、半導体メモリドライブ、光ディスクドライブ、光磁気ディスクドライブ等のデータを読み書き可能な種々のデバイスを利用可能である。
 ハードディスクドライブの場合、例えば、FC(Fibre Channel)ディスク、SCSI(Small Computer System Interface)ディスク、SATAディスク、ATA(AT Attachment)ディスク、SAS(Serial Attached SCSI)ディスク等を用いることができる。また、例えば、フラッシュメモリ、FeRAM(Ferroelectric Random Access Memory)、MRAM(MagnetoresistiveRandom Access Memory)、相変化メモリ(Ovonic Unified Memory)、RRAM(登録商標)等の種々の記憶装置を用いてもよい。
 1つまたは複数の記憶装置161の有する物理的記憶領域からグループ162を形成し、グループ化された物理的記憶領域162の記憶領域を所定サイズまたは任意サイズで切り取ることで、論理的記憶領域である論理ボリューム163を得ることができる。
 なお、記憶制御装置10の筐体内に記憶ユニット部16を設ける必要はない。記憶制御装置10の筐体の外部に設けた記憶ユニット部16と、記憶制御装置10内のDKA16とを通信可能に接続する構成でもよい。また、記憶制御装置10と図外の他の記憶制御装置とを通信可能に接続し、他の記憶制御装置の管理下にある記憶装置を記憶制御装置10が利用する構成としてもよい。
 SVP17は、管理装置30と通信するための装置である。管理装置30は、SVP17を介して、記憶制御装置10の各種状態についての情報を取得できる。管理装置30は、SVP17を介して記憶制御装置10に各種設定を行うこともできる。
 図3を用いて、機能構成を説明する。以下に述べる各機能は、主としてコンピュータプログラムをマイクロプロセッサが実行することで実現されるが、これに限らず、少なくとも一部の処理を専用ハードウェア回路で実行してもよい。
 管理装置30は、設定処理部P1を有する。設定処理部P1は、ホスト計算機20に対してコマンド毎の優先度等を設定したり、記憶制御装置10に対して目標応答時間等を設定したりする機能である。
 ホスト計算機20は、I/O発行部P2を有する。I/O発行部P2は、図1中のコマンド発行部2Aに対応する。I/O発行部P2は、例えば、対象データの論理アドレスを指定して、リードコマンドまたはライトコマンドを発行する。I/O発行部P2は、コマンド毎に用意された優先度を付して、コマンドを発行する。
 記憶制御装置10の機能構成を説明する。CHA11は、I/O分配部P3を有する。I/O分配部P3は、ホスト計算機20から受領したコマンドを、MPPK13内の複数のMP131のうちいずれか1つのMP131に分配し、そのコマンドの処理を分配するものである。例えば、I/O分配部P3は、ラウンドロビン方式等に従ってコマンドをいずれかのMP131に振り分けることができる。I/O分配部P3は、図1中のコマンド受領部1Aに対応する。
 MPPK13は、例えば、優先度キュー処理部P4、I/O実行部P5、テーブル管理部P6、スロットキュー処理部P7、統計情報収集部P8を備えている。
 優先度キュー処理部P4は、優先度キューPQを制御する。I/O実行部P5は、CHA11から転送されたコマンド(I/O要求)を実行するもので、図1中のコマンド実行部1Bに対応する。テーブル管理部P6は、優先度管理テーブルT1およびスロット優先度管理テーブルT2を適宜更新して管理する。スロットキュー処理部P7は、スロットキューSQを制御する。統計情報収集部P8は、例えば、実応答時間等の統計情報を収集する。統計情報を用いて、後述のように目標スロット数を制御する。
 図4を用いてスロットキューSQの管理方法を説明する。例えば、記憶装置161からキャッシュメモリ141にデータを転送する場合、そのデータを格納するための空きスロットが必要である。LRU(Least Recently
Used)として知られている制御方法の場合、最も使用されていないデータから破棄する。最後に使われてから一定期間の過ぎたデータを格納するスロットは解放されて、空きスロットとして再利用される。
 図4の左側には、データ破棄前のスロットキューSQ(1)を示し、図4の右側にはデータ破棄後のスロットキューSQ(2)を示す。各スロットキューSQの下側に位置するスロットほど古く、上側に位置するスロットほど新しい。また、スロットキューSQに繋がれたスロットはそれぞれ優先度を有しており、ここでは1~3までの数字で優先度を表現する。優先度の数値が小さいほど優先度が高い。つまり、優先度1、2、3の順番で優先度は低下していく(優先度1>優先度2>優先度3)。スロットを特定するために、スロットの横にかっこ付の数字を添える。
 通常の場合、最古スロットのデータ(#1)から先に破棄するが、本実施例ではスロットキューSQ(1)に示すように、最古スロット(#1)ではなく、最も優先度の低いスロットのうちの最古スロット(斜線部で示す#2)を破棄対象として選択する。これにより1つ分の空きが生じたため、図4の右側に示すように、スロットキューSQ(2)には、優先度2を有する新しいスロット(#7)が追加される。
 もしも2個の空きスロットが必要であった場合は、図4右側のスロットキューSQ(1)の有する各スロットのうち、最も低い優先度3を有するスロット(#2、#4)が破棄される。
 図5を参照してテーブル構成を説明する。図5(a)は優先度を管理するテーブルT1を示し、図5(b)はスロット優先度を管理するテーブルT2を示す。
 優先度テーブルT1は、例えば、優先度C10、目標応答時間C11、実応答時間C12、目標スロット数C13、確保スロット数C14を対応づけて管理する。
 優先度C10は、コマンド(I/O要求)の処理に関する優先度であり、本実施例では、数字が小さいほど優先度が高い。目標応答時間C11は、優先度毎に設定される値であり、その優先度を有するコマンドの処理に要する時間の目標値である。実応答時間C12は、優先度毎に計測される値であり、コマンド処理に要した実値である。
 目標スロット数C13は、優先度毎に割り当てられるスロットの数である。目標スロット数C13は、さらに記憶装置161の種別に応じて配分されている。例えば、或る優先度に合計N個のスロットが目標スロット数として割り当てられた場合、一方の種別の記憶装置にはn1個のスロットが割り当てられ、他方の種別の記憶装置にはn2個のスロットが割り当てられる。各記憶装置に割り当てるスロット数の合計は、N個に等しい(N=n1+n2)。記憶装置161の種別によって応答性能(応答速度)が異なり、記憶制御装置10の応答性能に与える影響が異なるため、記憶装置の種別に応じて目標スロット数を配分する。応答性能の低い記憶装置により多くのスロットを割り当てることで、その優先度に関する応答性能を改善することができる。
 確保スロット数C14は、優先度毎に確保されているスロットの数を示す。つまり、優先度毎の使用中のスロットの数である。確保スロット数も、記憶装置の種別毎に分けて管理されている。
 スロット優先度管理テーブルT2は、例えば、スロット番号C20、優先度C21、記憶装置の種別C22を有する。スロット番号C20は、キャッシュメモリ141の記憶単位であるスロットを識別するための番号である。優先度C21は、スロットに設定される優先度である。本実施例では、コマンドに設定された優先度を、そのコマンドが対象とするデータを記憶するスロットにも設定する。
 後述のように、そのスロットに記憶されたデータを対象とする新たなコマンドをMPPK13が受領した場合であって、その新たなコマンドの優先度がスロットの優先度よりも高い場合、そのスロットの優先度は高い優先度に更新される。
 本実施例では、コマンドの優先度とスロットの優先度とは、例えば、「A,B,C」、「1,2,3」のように同一の区分を有する。これに代えて、コマンドの優先度の区分とスロットの優先度の区分とを違える構成としてもよい。例えば、コマンドの優先度を「1,2,3、4,5」の5段階で区分し、スロットの優先度を「A,B,C」の3段階で区分する構成でもよい。
 記憶装置の種別(図中、タイプ)C22は、スロットに記憶されたデータの格納先である記憶装置の種別を示す。「HDD」はハードディスクドライブを示し、「SSD」はフラッシュメモリデバイスを示す。これに限らず、例えば、「SATA」、「FC」、「SSD」、「PRAM」等のように、応答性能の異なる他の種類の記憶装置にも適用できるよう構成してもよい。
 図6を用いて、優先度に応じてコマンドを処理する方法の概要を説明する。最初に、管理装置30は、ホスト計算機20にコマンド毎の優先度を設定する(S10)。ホスト計算機20は、設定された優先度を記憶する(S11)。
 ホスト計算機20は、記憶制御装置10にコマンドを発行する際、そのコマンドに応じた優先度を設定する(S12)。記憶制御装置10のCHA11は、ホスト計算機20から優先度付のコマンドを受領する(S13)。CHA11は、MPPK13内の複数のMP131のうちいずれか1つのMP131に、ステップS13で受領したコマンドを振り分ける(S14)。コマンドは、優先度キューPQに繋がれる。
 コマンドの処理担当となったMP131は、優先度キューPQを参照して、最も高い優先度のコマンドを優先的に実行する(S15)。記憶制御装置10は、MP131でのコマンド処理結果をCHA11からホスト計算機20に送信する(S16)。ホスト計算機20はコマンド処理結果を受領する(S17)。
 図7を用いて、コマンド受領時にスロットに優先度を設定する処理を説明する。本処理ではリードコマンドを受領した場合を例に挙げて説明する。図7~図9に示す処理では、動作の主体をMP131であるとして述べるが、これに代えて、記憶制御装置10、キャッシュ制御部、MPPK13、所定の機能の名称などを動作の主体としてもよい。
 記憶制御装置10のCHA11は、ホスト計算機20から受領したリードコマンドをMPPK13に転送する(S20)。優先度の設定されたリードコマンドは、優先度キューPQに格納される。
 MPPK13の複数のMP131のうち、CHA11から転送されたリードコマンドを割り当てられたMP131は、リードコマンドで要求されたデータ(リードデータ)がキャッシュメモリ141上に存在するか判定する(S21)。
 要求されたリードデータがキャッシュメモリ141に記憶されている場合(S21:YES)、MP131は、キャッシュメモリ141のスロットに記憶されているデータの優先度Pcsよりもリードコマンドに設定されている優先度Pcmdの方が高いか判定する(S23)。以下、便宜上、コマンド優先度Pcmd、スロット優先度Pcsと表現する場合がある。
 コマンド優先度Pcmdの方がスロット優先度Pcsより高いと判定した場合(S23:Yes)、MP131は、コマンド優先度Pcmdに関する目標スロット数STを算出する(S24)。目標スロット数を算出する方法については、図9で後述する。
 MP131は、コマンド優先度Pcmdに対応する確保済みのスロット数SG優先度管理テーブルT1から取得し(S25)、確保しているスロット数SGが目標スロット数STよりも少ないか判定する(S26)。
 MP131は、コマンド優先度Pcmdについて確保しているスロット数SGが目標スロット数STよりも少ないと判定した場合(S26:YES)、MP131は、スロット優先度管理テーブルT2を更新する(S27)。つまり、MP131は、スロット優先度管理テーブルT2において、リードデータを格納しているスロットの優先度C21をコマンド優先度Pcmdで更新し、かつ、そのスロットの格納先である記憶装置の種別C22を更新する(S27)。
 その後、MP131は、キャッシュメモリ141上のリードデータをCHA11のバッファメモリ114に転送し、CHA11からホスト計算機20にデータを送信させて、本処理を終了する(S28)。
 ステップS23において、スロット優先度Pcsの方がコマンド優先度Pcmdよりも高いと判定した場合(S23:NO)、MP131はステップS28に移って、キャッシュメモリ141上のリードデータをCHA11のバッファメモリ114に転送した後、本処理を終了する。本実施例では、設定されているスロット優先度Pcsと新たに発行されたコマンド優先度Pcmdのうち、いずれか高い方の優先度をスロットに設定する。
 ステップS26において、確保しているスロット数SGが目標スロット数ST以上であると判定した場合も(S26:NO)、MP131はステップS28に移って、キャッシュメモリ141上のリードデータをCHA11のバッファメモリ114に転送し、本処理を終了する。
 ステップS21において、リードコマンドで要求されたリードデータがキャッシュメモリ141上に存在しないと判定した場合(S21:NO)、MP131は、キャッシュメモリ141に空きスロットが有るか判定する(S29)。
 空きスロットが無いと判定した場合(S29:NO)、記憶装置161から転送されるリードデータを記憶する場所を作るために、所定の破棄条件を満たすスロットを破棄するための処理を実行する(S30)。スロット破棄処理については図8で後述する。
 キャッシュメモリ141に空きスロットが有ると判定した場合(S29:YES)、または既存スロットが破棄されて空きスロットができた場合(S30)、MP131は、空きスロットを確保する(S31)。
 MP131は、リードコマンドの優先度Pcmdについて目標スロット数STを算出し(S32)、さらに、その優先度Pcmdについて確保されているスロット数SGを優先度管理テーブルT1から取得する(S33)。MP131は、確保しているスロット数SGが目標スロット数STよりも少ないか判定する(S34)。
 MP131は、確保しているスロット数SGが目標スロット数STよりも少ないと判定した場合(S34:YES)、スロット優先度管理テーブルT2の優先度C21等を更新する(S35)。確保しているスロット数SGが目標スロット数ST以上であると判定した場合(S34:NO)、MP131は、ステップS35をスキップしてステップS36に移る。
 MP131は、DKA12により記憶装置161からキャッシュメモリ141にリードデータを転送させ(S36)、さらに、キャッシュメモリ141からCHA11のバッファメモリ114にリードデータを転送させ(S37)、本処理を終了する。その後、CHA11はリードデータをホスト計算機20に送信する。
 図8を用いて、スロット破棄処理(S30)の詳細を説明する。MP131は、スロットキューSQを参照し、最も古いスロットから探索を開始する(S40)。MP131は、処理対象として検出した最古のスロットの優先度をスロット優先度管理テーブルT2から取得する(S41)。
 MP131は、ステップS41で取得した優先度が最も低い優先度であるか判定する(S42)。例えば、「1,2,3」の3段階の優先度を使用する場合、ステップS42では、処理対象スロットの優先度が最低値である「3」であるか判定する。
 処理対象スロットの優先度が最低の優先度ではないと判定した場合(S42:NO)、MP131は、処理対象スロットを次に古いスロットに移して(S43)、ステップS41に戻る。
 処理対象スロットの優先度が最低の優先度であると判定した場合(S42:YES)、MP131は、処理対象スロットの優先度についての目標スロット数STを算出する(S44)。さらに、MP131は、処理対象スロットの優先度について確保済みのスロット数SGを優先度管理テーブルT1から取得する(S45)。
 MP131は、処理対象スロットの優先度に関する確保済みのスロット数SGが目標スロット数ST以下であるか判定する(S46)。MP131は、確保済みのスロット数SGが目標スロット数STを越えると判定した場合(S46:NO)、処理対象スロットを破棄し(S47)、優先度テーブルT1およびスロット優先度管理テーブルT2を更新する(S48)。つまり、処理対象スロットの優先度について目標スロット数を越えるスロットを確保している場合、MP131は、その余分に確保しているスロットを1つ破棄して、空きスロットに変換する。
 これに対し、MP131は、確保済みのスロット数SGが目標スロット数ST以下であると判定した場合(S46:YES)、処理対象スロットを破棄せずに、次に低い優先度に移行する(S49)。つまり、目標スロット数に満たないスロットしか確保していない場合、確保済みのスロットは破棄せずに、最低優先度の1つ上の優先度を最低優先度として扱い、本処理を繰り返す。これにより、各優先度において、目標スロット数までのスロットは確保できるようにしている。従って、記憶制御装置10が低優先度のコマンドを受領した場合でも、必要最低限確保されるスロットを用いて、処理することができ、低優先度のコマンドの応答が遅れるのを抑制することができる。
 図9を参照する前に、優先度毎に目標スロット数を算出する方法について説明する。本実施例では、優先度が高くなるほど多くのスロットを使用できるように、目標スロット数を算出する。
 図5の優先度テーブルT1に示すように、各優先度には目標応答時間C11が設定されている。ここで、説明の便宜上、スロット総数が100個であり、優先度1の目標応答時間が1ms、優先度2の目標応答時間が5ms、優先度3の目標応答時間が10msであるとする。
 優先度毎の目標応答時間(優先度1→1ms、優先度2→5ms、優先度3→10ms)の比率(10ms:5ms:1ms)に合わせて、スロットを分配すると、優先度1に62個のスロット、優先度2に31個のスロット、優先度3に6個のスロットを割り当てることになる(1個未満切り捨て)。
 さらに、優先度毎の目標スロット数を、記憶装置161の種別に応じて配分する。ここでは、ハードディスクドライブからデータを読み出す場合の応答時間Thddと、フラッシュメモリデバイスからデータを読み出す場合の応答時間Tssdとの比が30:1であるとする。つまり、フラッシュメモリデバイスは、ハードディスクドライブよりも30倍早くデータを読み出せるものとする。本実施例では、記憶装置の応答時間(平均応答時間)の比率(HDD:SSD=30:1)に基づいて、優先度毎の目標スロット数を記憶装置の種別毎に配分する。
 優先度1の場合を例に挙げて説明すると、優先度1に割り当てられる目標スロット数の総数は62個であるため、記憶装置の応答時間の比率に応じて配分すると、ハードディスクドライブには59スロット、フラッシュメモリデバイスには2スロットを割り当てることになる。
 本実施例では、応答性能(応答時間、応答速度)の異なる2種類の記憶装置を例に挙げて説明するが、3種類以上の記憶装置においても、応答性能の差に基づいて目標スロット数を配分できる。
 同一種類の記憶装置であっても、設置場所および通信速度などによって、応答時間が異なる場合もある。例えば、同一種類の記憶装置であっても、記憶制御装置10内に設けられている場合と、記憶制御装置10の外部に通信ネットワークを介して接続されている場合とでは、応答時間が異なる。記憶制御装置10内の記憶装置からデータを読み出す方が、記憶制御装置10の外部に接続された記憶装置からデータを読み出すよりも早い。同一種類の記憶装置であっても、そのRAID構成によって、応答時間は異なる。複雑なパリティ計算を必要とする場合、データの読み出しに時間を要する。さらに、同一種類の記憶装置であっても、暗号化処理の有無によって応答時間は異なる。従って、上述のような応答時間の相違を考慮して、目標スロット数を配分する構成を採用してもよい。
 図9は、目標スロット数を更新する処理を示すフローチャートである。本処理は、定期的にまたは不定期に、優先度毎に実行される。MP131は、対象の優先度についての目標応答時間RTと(S50)、対象優先度について計測された実応答時間RA(S51)とを優先度テーブルT1から取得する。
 MP131は、目標応答時間RTと実応答時間RAの大小を判定する(S52)。目標応答時間RTよりも実応答時間RAの方が長いと判定した場合(S52:RT<RA)、MP131は、目標スロット数STを所定量dSだけ増加させ(S53)、本処理を終了する。キャッシュヒット率を増加させて実応答時間RAを今よりも短縮し、実応答時間RAを目標応答時間RTに近づけるためである。
 目標応答時間RTの方が実応答時間RAよりも長いと判定した場合(S52:RT>RA)、MP131は、目標スロット数STを所定量dSだけ減少させ(S54)、本処理を終了する。キャッシュヒット率を減少させて実応答時間RAを今よりも長くし、実応答時間RAを目標応答時間RTに近づけるためである。
 目標応答時間RTと実応答時間RAとが等しいと判定した場合(S52:RT=RA)、MP131は目標スロット数を調整せずに本処理を終了する。なお、目標応答時間RTと実応答時間RAとが厳密に一致する場合に限らず、両者の差が所定範囲に収まる場合も含む。
 ここで、理解のために、目標応答時間RTと実応答時間RAの差に基づいて目標スロット数STを調整する一例を説明する。下記の数式(1)に示すように、リードコマンドを処理する場合の応答時間には、キャッシュメモリ141からホスト計算機20にデータを送信する場合の応答時間(キャッシュヒット時の応答時間)と、記憶装置161からデータを読み出してホスト計算機20に送信する場合の応答時間(キャッシュミス時の応答時間)とがある。キャッシュメモリ141上にリードコマンドの対象データが存在する確率をH、キャッシュメモリ141からホスト計算機20にデータを転送するのに要する時間をt1、記憶装置161からホスト計算機20にデータを転送するのに要する時間をt2、とする。
   応答時間=H*t1+(1-H)*t2・・・・(1)
 応答時間は、対象データがキャッシュメモリ141上に存在する確率Hの値によって変化する。キャッシュヒット率Hが高くなるほど、応答時間を短縮することができる。下記数式(2)に示すように、確率Hは、キャッシュメモリ141の有する全スロット数Nに対する優先度毎のスロット数nの割合として表すことができる。数式(2)から明らかなように、優先度毎のスロット数を増加することで、実応答時間RAは目標応答時間RTに近づく。
   H=n/N・・・(2)
 スロット調整量dSは、優先度毎の目標応答時間RTと実応答時間RAとの差分dRから求めることができる。応答時間の差分dRは、上記数式(1)から下記の数式(3)として表すことができる。
  dR=RT-RA=dH*t1+(1-dH)*t2・・・・(3)
 dHは、キャッシュメモリ141上の全スロットの数Nに対するスロット調整量dSの割合であり、上記数式(3)に基づいて下記数式(4)として表すことができる。
  dH=dS/N=(dR-t2)/(t1-t2)・・・(4)
 数式(4)からスロット調整量dSは、下記数式(5)で求めることができる。
  dS=N*dH・・・(5)
 図9に示すステップS53およびS54では、上記数式(5)で算出したスロット調整量dSに記憶装置の種別毎の比率を乗じて、記憶装置の種別毎の目標スロット数を算出し、優先度テーブルT1を更新する。
 図10は、管理装置30が提供するユーザインターフェース画面の例を示す。図10(a)は、目標応答時間を設定するための画面G1である。ストレージ管理者等のユーザは、目標応答時間設定画面G1において、ホスト計算機20上で稼働するアプリケーションプログラム毎に、目標応答時間を設定することができる。
 アプリケーションプログラム毎の目標応答時間と優先度毎の目標応答時間とは、予め定める所定の基準に従って対応づけられる。例えば、或るアプリケーションプログラムについて画面G1に入力された目標応答時間の値が、優先度1の目標応答時間の範囲を示す第1範囲に属する場合は、優先度1の目標応答時間に変換して優先度テーブルT1に記憶する。同様に、画面G1に入力された目標応答時間の値が、優先度2の目標応答時間の範囲を示す第2範囲に属する場合は、優先度2の目標応答時間に変換して優先度テーブルT1に記憶する。同様に、画面G1に入力された目標応答時間の値が、優先度3の目標応答時間の範囲を示す第3範囲に属する場合は、優先度3の目標応答時間に変換して優先度テーブルT1に記憶する。
 図10(b)は、応答時間の測定結果を表示する画面G2である。管理装置30は、SVP17を介して記憶制御装置10の実応答時間に関する情報を取得できる。測定結果表示画面G2は、アプリケーションプログラム毎に、目標応答時間と実応答時間を対応づけて表示する。これにより、ユーザは、アプリケーションプログラム毎の応答時間の状況を一見して把握することができる。
 このように構成される本実施例では、記憶制御装置10は、優先度の高いコマンドを優先的に処理すると共に、優先度が高いほどキャッシュメモリ141上に長時間存在するようにスロットを制御する。本実施例では、コマンドの優先度に基づいて、コマンドの実行順序制御とキャッシュ制御を実行することで、優先度の高いコマンドほど短い応答時間で処理することができ、記憶制御装置10の応答性能を改善できる。
 本実施例では、優先度毎に設定される目標スロット数を、優先度毎の目標応答時間と実応答時間との差に応じて制御するため、記憶制御装置10の状況に適した数のスロットを各優先度に割り当てることができる。
 本実施例では、記憶装置の種別に応じて、優先度毎の目標スロット数を配分する。このため、高速な記憶装置に割り当てるスロット数よりも低速な記憶装置に割り当てるスロット数を多くすることで、全体としての応答性能を改善することができる。
 本発明は、下記のようにコンピュータプログラムまたはコンピュータプログラムを記録した媒体として表現することもできる。
「ホスト計算機に接続されるコンピュータ装置を記憶制御装置として機能させるためのコンピュータプログラム(またはコンピュータプログラム記録媒体)であって、
 前記ホスト計算機から優先度の設定されたコマンドを受領する通信部と、
 前記通信部からの前記コマンドを前記優先度に応じて実行するコマンド実行部と、
 前記コマンド実行部により使用されるキャッシュメモリと、
 前記キャッシュメモリの各スロットを管理するキャッシュ制御部であって、前記コマンドの対象データを格納するスロットに前記優先度を設定し、前記優先度に応じて前記スロットに記憶されるデータを制御するキャッシュ制御部と、
を前記コンピュータ装置に実現するためのコンピュータプログラム(またはコンピュータプログラム記録媒体)。」
 1:記憶制御装置、2:ホスト計算機、3:管理計算機、10:記憶制御装置、11:チャネルアダプタ、12:ディスクアダプタ、13:マイクロプロセッサパッケージ、14:キャッシュメモリパッケージ、161:記憶装置、20:ホスト計算機、30:管理装置

Claims (12)

  1.  ホスト計算機に接続される記憶制御装置であって、
     前記ホスト計算機から優先度の設定されたコマンドを受領する通信部と、
     前記通信部からの前記コマンドを前記優先度に応じて実行するコマンド実行部と、
     前記コマンド実行部により使用されるキャッシュメモリと、
     前記キャッシュメモリの各スロットを管理するキャッシュ制御部と、
     前記ホスト計算機により使用されるデータを記憶する複数の記憶装置と、
    を備え、
     前記キャッシュ制御部は、
     前記コマンドの対象データを格納するスロットに前記優先度を設定し、
     前記優先度に応じて前記スロットに記憶されるデータを制御する、
    記憶制御装置。
  2.  前記キャッシュ制御部は、前記優先度の高いデータほど長く前記キャッシュメモリ上に存在するように制御する、
    請求項1に記載の記憶制御装置。
  3.  前記キャッシュ制御部は、前記優先度毎に設定する目標スロット数を目標値として、複数の前記優先度毎にスロットを割り当てるよう制御する、
    請求項2に記載の記憶制御装置。
  4.  前記キャッシュ制御部は、前記優先度毎に設定される目標応答時間に基づいて、前記目標スロット数を設定する、
    請求項3に記載の記憶制御装置。
  5.  前記キャッシュ制御部は、前記複数の記憶装置のうち前記対象データの格納先である記憶装置の種別に応じて、前記優先度毎の前記目標スロット数を配分する、
    請求項4に記載の記憶制御装置。
  6.  前記キャッシュ制御部は、前記コマンドの処理に要した実応答時間と、前記対象データを格納するスロットに設定される前記目標応答時間との差異に基づいて、前記目標スロット数を制御する、
    請求項5に記載の記憶制御装置。
  7.  前記キャッシュ制御部は、スロットに格納されたデータを対象とする新たなコマンドを受領した場合、その新たなコマンドの優先度と前記スロットに格納された前記データに設定されている優先度とを比較し、いずれか高い方の優先度を前記スロットに格納された前記データの前記優先度として使用する、
    請求項6に記載の記憶制御装置。
  8.  前記キャッシュ制御部は、使用されていない時間が最も長く、かつ、前記優先度が最も低い所定スロットに格納されているデータから破棄する、
    請求項2に記載の記憶制御装置
  9.  前記キャッシュ制御部は、前記所定スロットに設定されている優先度に割当済みのスロット数が予め設定される所定値を越えている場合に、前記所定スロットに格納されているデータを破棄する、
    請求項8に記載の記憶制御装置。
  10.  前記複数の記憶装置は、応答速度の早い高速な記憶装置と応答速度の遅い低速な記憶装置とを含んでおり、
     前記キャッシュ制御部は、前記応答速度の逆数の比に応じて、前記優先度毎の前記目標スロット数を配分する、
    請求項5に記載の記憶制御装置。
  11.  前記ホスト計算機に接続されるホスト側通信装置であって、前記通信部を実現するためのホスト側通信装置と、
     前記複数の記憶装置に接続されるドライブ側通信装置と、
     前記キャッシュメモリを有するキャッシュメモリ装置と、
     前記ホスト側通信装置と前記ドライブ側通信装置と前記キャッシュメモリ装置と前記管理用通信装置とに接続されるマイクロプロセッサ装置と、
    を備えており、
     前記マイクロプロセッサ装置は、
      複数の前記コマンド実行部と、
      前記複数のコマンド実行部により共用されるメモリ部と、
      前記メモリ部に設けられ、コマンドの実行順序を管理するための第1キューと、
      前記メモリ部に設けられ、前記各スロットに設定された優先度に応じてデータを破棄するための第2キューと、
      前記メモリ部に設けられ、前記スロット毎に優先度および格納先記憶装置の種別を対応づけて管理するための管理テーブルとを備え、
     複数の前記コマンド実行部のうち前記コマンドの実行を担当するコマンド実行部は、前記第1キューを用いて前記コマンドを前記優先度に応じて実行し、
     前記キャッシュ制御部は、
      前記コマンドの前記対象データを格納するスロットに前記コマンドに設定されている優先度を設定し、
      前記対象データを格納するスロットに設定した前記優先度と前記対象データの格納先の記憶装置の種別とを前記管理テーブルに設定し、
      優先度が高くなるほど短くなるように設定される目標応答時間と格納先の記憶装置の種別とに基づいて、前記優先度毎の目標スロット数を設定し、
      前記目標スロット数を目標値として、優先度が高くなるほどスロット数が増加するように、複数の前記優先度毎にスロットを割り当て、
      前記コマンド実行部による前記コマンドの処理に要した実応答時間と、前記対象データを格納するスロットに設定される前記目標応答時間との差異に基づいて、前記実応答時間が前記目標応答時間よりも長い場合は前記目標スロット数を低下させ、前記実応答時間が前記目標応答時間よりも短い場合は前記目標スロット数を増加させるように、前記目標スロット数を制御し、
      スロットに格納されたデータを対象とする新たなコマンドを受領した場合、その新たなコマンドの優先度と前記スロットに格納された前記対象データに設定されている優先度とを比較し、いずれか高い方の優先度を前記スロットに格納された前記対象データの前記優先度として使用し、
      使用されていない時間が最も長く、かつ、前記優先度が最も低い所定スロットに格納されているデータであって、さらに、前記所定スロットに設定されている優先度に割当済みのスロット数が予め設定される所定値を越えている場合に前記データを破棄する、
    請求項1に記載の記憶制御装置。
  12.  ホスト計算機に接続される記憶制御装置を制御する方法であって、
     前記記憶制御装置は、前記ホスト計算機から優先度の設定されたコマンドを受領する通信部と、前記通信部からの前記コマンドを前記優先度に応じて実行するコマンド実行部と、前記コマンド実行部により使用されるキャッシュメモリと、前記キャッシュメモリの各スロットを管理するキャッシュ制御部とを備えており、
     前記キャッシュ制御部は、前記コマンドの対象データを格納するスロットに前記優先度を設定し、前記優先度に応じて前記スロットに記憶されるデータを制御する、
    記憶制御装置の制御方法。
PCT/JP2013/053212 2013-02-12 2013-02-12 記憶制御装置および記憶制御装置の制御方法 WO2014125559A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/760,303 US9563574B2 (en) 2013-02-12 2013-02-12 Storage control device and method of controlling storage control device
PCT/JP2013/053212 WO2014125559A1 (ja) 2013-02-12 2013-02-12 記憶制御装置および記憶制御装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/053212 WO2014125559A1 (ja) 2013-02-12 2013-02-12 記憶制御装置および記憶制御装置の制御方法

Publications (1)

Publication Number Publication Date
WO2014125559A1 true WO2014125559A1 (ja) 2014-08-21

Family

ID=51353595

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/053212 WO2014125559A1 (ja) 2013-02-12 2013-02-12 記憶制御装置および記憶制御装置の制御方法

Country Status (2)

Country Link
US (1) US9563574B2 (ja)
WO (1) WO2014125559A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318301B2 (en) 2017-08-31 2019-06-11 Micron Technology, Inc. Managed multiple die memory QoS
US11928360B2 (en) * 2020-11-20 2024-03-12 Western Digital Technologies, Inc. Command slot management for memory devices
US20220413755A1 (en) * 2021-06-23 2022-12-29 Western Digital Technologies, Inc. Handling Urgent Commands in a Data Storage Device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002149492A (ja) * 2000-11-08 2002-05-24 Hitachi Ltd キャッシュメモリの制御方法および記憶サブシステム
JP2004252526A (ja) * 2003-02-18 2004-09-09 Nec Corp ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム
JP2005339299A (ja) * 2004-05-28 2005-12-08 Hitachi Ltd ストレージ装置のキャッシュ制御方法
JP2011170447A (ja) * 2010-02-16 2011-09-01 Fujitsu Ltd ストレージシステムおよびデータ書込み方法
JP2012022532A (ja) * 2010-07-14 2012-02-02 Nec Corp ストレージシステム及びストレージシステムのメモリキャッシュ領域制御方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4500850B2 (ja) 2007-12-27 2010-07-14 富士通株式会社 制御装置,ストレージシステム,及びメモリ制御方法
US8407370B2 (en) 2010-09-09 2013-03-26 Hitachi, Ltd. Storage apparatus for controlling running of commands and method therefor

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002149492A (ja) * 2000-11-08 2002-05-24 Hitachi Ltd キャッシュメモリの制御方法および記憶サブシステム
JP2004252526A (ja) * 2003-02-18 2004-09-09 Nec Corp ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム
JP2005339299A (ja) * 2004-05-28 2005-12-08 Hitachi Ltd ストレージ装置のキャッシュ制御方法
JP2011170447A (ja) * 2010-02-16 2011-09-01 Fujitsu Ltd ストレージシステムおよびデータ書込み方法
JP2012022532A (ja) * 2010-07-14 2012-02-02 Nec Corp ストレージシステム及びストレージシステムのメモリキャッシュ領域制御方法

Also Published As

Publication number Publication date
US9563574B2 (en) 2017-02-07
US20150363331A1 (en) 2015-12-17

Similar Documents

Publication Publication Date Title
JP5427630B2 (ja) 動的ページ再割当てストレージシステムにおけるアプリケーション及び階層構成の管理
EP1785876B1 (en) Storage control system and storage control method
JP6067819B1 (ja) 階層化ストレージシステム、ストレージコントローラ、並びに重複排除及びストレージ階層化のための方法
US8880804B2 (en) Storage apparatus and data management method
US9635123B2 (en) Computer system, and arrangement of data control method
US7797487B2 (en) Command queue loading
US20150095555A1 (en) Method of thin provisioning in a solid state disk array
US20150242133A1 (en) Storage workload hinting
US8468299B2 (en) Virtualized storage performance controller
US9015111B2 (en) Storage system and storage system control method
WO2013046331A1 (ja) 計算機システム、及び情報管理方法
JP2015517697A (ja) 二次記憶装置に基づく記憶領域をキャッシュ領域として用いるストレージシステム及び記憶制御方法
JP2009087175A (ja) ストレージ装置、処理制御装置、及び記憶システム
JP2012533781A (ja) 計算機システム及びその負荷均等化制御方法
JP2005165852A (ja) ストレージシステム、ストレージ制御装置、ストレージシステムの制御方法
US9104317B2 (en) Computer system and method of controlling I/O with respect to storage apparatus
US10082968B2 (en) Preferred zone scheduling
WO2014125559A1 (ja) 記憶制御装置および記憶制御装置の制御方法
JP2007109141A (ja) ストレージシステム
US8984235B2 (en) Storage apparatus and control method for storage apparatus
US11080192B2 (en) Storage system and storage control method
WO2018189847A1 (ja) ストレージ装置およびキャッシュメモリ管理方法
JP2015184883A (ja) 計算機システム
JP2015111460A (ja) 管理計算機、計算機システム、及び管理方法
JP2020038475A (ja) ストレージ制御装置およびストレージ制御プログラム

Legal Events

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

Ref document number: 13875213

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14760303

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13875213

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP