WO2017168690A1 - Storage device, and method - Google Patents

Storage device, and method Download PDF

Info

Publication number
WO2017168690A1
WO2017168690A1 PCT/JP2016/060709 JP2016060709W WO2017168690A1 WO 2017168690 A1 WO2017168690 A1 WO 2017168690A1 JP 2016060709 W JP2016060709 W JP 2016060709W WO 2017168690 A1 WO2017168690 A1 WO 2017168690A1
Authority
WO
WIPO (PCT)
Prior art keywords
area
logical
processor
write
storage device
Prior art date
Application number
PCT/JP2016/060709
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 PCT/JP2016/060709 priority Critical patent/WO2017168690A1/en
Publication of WO2017168690A1 publication Critical patent/WO2017168690A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Definitions

  • the present invention relates to a storage apparatus.
  • the storage device includes a plurality of physical storage devices (recording media) and a storage controller connected to the plurality of physical storage devices and receiving I / O (Input or Output) requests from the host computer.
  • a physical storage device for example, an HDD (Hard Disk Drive) is known.
  • SSD Solid State Drive
  • flash memory has begun to be widely used as a physical storage device of a storage apparatus.
  • SSDs have features such as response performance and low power consumption compared to conventional HDDs.
  • I / O performance of SSDs is nearly 1000 times that of HDDs.
  • the controller disclosed in Patent Document 1 has a CPU, a memory, a storage I / F, and a disk I / F, and processes an I / O request from a host computer with software by the CPU.
  • Patent Document 2 discloses a method for realizing a high-performance storage controller that processes I / O requests by dedicated hardware different from the CPU.
  • the CPU used in the controller as disclosed in Patent Document 1 has improved its performance according to Moore's law. However, in the change of the physical storage device as described above, a large performance gap is generated between the controller and the physical storage device, and the performance of the storage controller may become a bottleneck.
  • the storage apparatus includes a physical storage device and a controller connected to the physical storage device.
  • the controller includes a front-end interface connected to the host computer, a processor connected to the front-end interface and the physical storage device, and providing a logical volume based on the physical storage device to the host computer, and a memory connected to the processor.
  • the memory sequentially stores logical conversion information that correlates the logical area in the logical volume and the device area that is provided by the physical storage device, and the write command received from the host computer by the front-end interface.
  • the control device acquires the first write command in the first queue and determines whether or not the first logical area designated by the first write command is registered in the logical-physical conversion information. When the first logical area is registered in the logical-physical conversion information, the control device specifies the first device area corresponding to the first logical area based on the logical-physical conversion information. The control device instructs the physical storage device to write the first write data received by the front end interface to the first device area based on the first write command. If the first logical area is not registered in the logical-physical conversion information, the control device registers the first write command in the second queue. The processor acquires the first write command from the second queue and acquires the load status of the cache area.
  • the processor determines whether or not the load status is higher than a preset threshold value. When the load status is higher than the threshold value, the processor selects the first device area from the physical storage device, associates the first logical area with the first device area, registers the first logical area and the logical / physical conversion information, and outputs the first write area. Re-register the command in the first queue.
  • the performance of the storage controller can be improved.
  • FIG. 1 is an example of a configuration diagram of a storage device according to Embodiment 1.
  • FIG. 2 shows a configuration of the memory 12 in the first controller 10.
  • An example of the address conversion table 121 is shown. It is a figure explaining the outline
  • 6 is an example of a flowchart of a write command distribution process 500; It is a figure explaining the outline
  • 6 is an example of a flowchart of a write-through determination process 700. It is an example of the flowchart of a 1st write process. It is a figure explaining a 2nd write process. It is an example of the flowchart of a 2nd write process. It is a figure explaining sharing of each process. It is an example of the flowchart of a re-offload process.
  • each piece of information included in the computer system of each embodiment may be described using expressions such as a table or a list.
  • the data structure of each information is not limited, and other data structures may be used. Since each information does not depend on the data structure, for example, “kkk table” can be called “kkk information”.
  • the processor executes a program and performs processing while using a storage resource (for example, a memory) and / or a communication interface device (for example, a communication port).
  • a storage resource for example, a memory
  • a communication interface device for example, a communication port
  • the main subject of processing may be various programs, but a processor that executes the program may be the main subject. Further, the processing mainly using the processor may be interpreted as being performed by executing one or more programs.
  • the processor is typically a microprocessor such as a CPU (Central Processing Unit), but may include a hardware circuit that executes a part of the processing (for example, encryption / decryption, compression / decompression). .
  • FIG. 1 is an example of a configuration diagram of the storage apparatus according to the first embodiment.
  • the storage apparatus includes a first storage controller (FCTL) 10, a second storage controller (SCTL) 20, and a physical storage device 31.
  • FCTL first storage controller
  • SCTL second storage controller
  • the first storage controller 10 and the second storage controller 20 may be referred to as the first controller 10 and the second controller 20, respectively.
  • each of the first controller 10 and the second controller 20 is made redundant in pairs.
  • each of the first controller 10 and the second controller 20 may be configured by one, or may be made redundant by three or more configurations.
  • Each of the redundant first controller 10 and second controller 20 has basically the same configuration. Therefore, in the following, each of the first controller 10 and the second controller 20 will be described.
  • the second controller 20 includes a front-end interface (hereinafter referred to as FE) 24, a switch (PCIe-SW) 21, an accelerator (ACC) 22, and a device controller (SAS-CTL) 23 as a back-end interface.
  • FE front-end interface
  • PCIe-SW switch
  • ACC accelerator
  • SAS-CTL device controller
  • the switch 21 is connected to the FE 24, the ACC 22, and the device controller 23 through a signal line.
  • This signal line is, for example, a PCI Express used as a data transfer path inside the controller 10, but is not limited thereto. In the case of signal lines other than PCI Express, a switch suitable for the signal line is applied.
  • the second controller 20 is connected to the first controller 10 via the switch 21.
  • the second controller 20 is connected to a host computer (not shown) via the FE 24 via a network.
  • the network between the host computer and the second controller 20 is a communication path for exchanging commands and data, and includes, for example, a SAN (Storage Area Network).
  • the FE 24 mutually converts a data transfer protocol between the host computer and the second controller 20 and a data transfer protocol in the second controller 20.
  • the ACC 22 is a control device different from the processor 11 of the first controller 10.
  • the ACC 22 is realized by hardware such as an ASIC (application specific integrated circuit) or an FPGA (field-programmable gate array).
  • ASIC application specific integrated circuit
  • FPGA field-programmable gate array
  • the ACC 22 and the processor 11 in the first controller 10 share write processing to realize high-performance (high-speed) processing.
  • the ACC 22 does not execute functions or the like specific to the storage apparatus, and executes some functions such as read / write processing to the physical storage device 31 in a limited manner.
  • the physical storage device 31 is a high-speed drive (the physical storage device 31 will be described later), by limiting the functions of the ACC 22, higher-speed read / write processing can be realized.
  • the ACC 22 is hardware such as an ASIC or FPGA.
  • the ACC 22 is not limited to hardware such as an ASIC or FPGA, and a processor such as a CPU executes software. It may be realized.
  • a memory (not shown) may be connected to the ACC 22. The memory may be built in or connected externally.
  • the second controller 20 is connected to the non-volatile physical storage device 31 via the device controller 23, for example.
  • the device controller 23 includes a processor and a memory (not shown) therein, and executes data I / O processing and control command processing.
  • the physical storage device 31 is, for example, a high-speed drive such as an SSD (Solid state drive).
  • a SAS Serial Attached SCSI
  • the SAS controller 23 is adopted as the device controller
  • the SAS-SSD is adopted as the physical storage device 31.
  • a protocol other than SAS may be adopted between the device controller 23 and the physical storage device 31, and in this case, the device controller 23 and the SSD according to the protocol are adopted.
  • the physical storage device 31 may not be a nonvolatile semiconductor storage device such as an SSD, and may be, for example, an HDD (Hard Disk Drive).
  • one or more RAID groups Redundant Array of Independent (or Inexpensive) Disks
  • RAID groups Redundant Array of Independent (or Inexpensive) Disks
  • a device controller 23 in each second controller 20 is connected to the physical storage device 31. Thereby, even if a failure occurs between paths using one device controller 23, IO from the host computer can be continued by switching to a path using another device controller 23.
  • the first controller 10 includes a front end interface (hereinafter referred to as FE) 14, a processor (CPU; Central Processing Unit) 11, a memory (Memory) 12, a back end interface (hereinafter referred to as BE) 13, and an interface between the controllers ( I / F) 15.
  • FE front end interface
  • CPU Central Processing Unit
  • M memory
  • BE back end interface
  • I / F interface between the controllers
  • FE14, CPU11, memory 12, BE13, I / F15 are internally connected to each other by a signal line such as a bus.
  • the number of each of these each part is not limited to the number shown in the example of illustration.
  • the memory 12 is a main storage medium of the processor 11, an area for storing various programs executed by the processor 11, various management information referred to by the processor 11, and a cache area (CM for temporarily storing read or write data). 127).
  • the program stores, for example, a program for controlling the storage apparatus.
  • the memory 12 is connected to the processor, but the memory 12 may be built in the processor 11.
  • Each part of the first controller 10 is connected to the switch 21 of the second controller 20 via the I / F 15. Thereby, mutual communication between the first controller 10 and the second controller 20 becomes possible.
  • the processor 11 provides a logical volume (LU) to the host computer.
  • the logical volume may be a real logical volume or a virtual logical volume.
  • a real logical volume is a logical volume based on one or more physical storage devices 31. For example, a volume generated based on a RAID group composed of a plurality of physical storage devices 31 may be used, or a volume generated from one physical storage device 31 may be used.
  • the virtual logical volume is a logical volume that is virtually provided to the host computer.
  • TP Thin Provisioning
  • the first controller 10 may be connected to a physical storage device (not shown) such as an HDD via the BE 13.
  • the first controller 10 may be connected to a host computer (not shown) via the FE 14.
  • FIG. 2 is a diagram showing a configuration of the memory 12 in the first controller 10.
  • the memory 12 includes an address conversion table 121, a temporary queue 125, a micro request queue 123, and a cache area 127.
  • the processor 11 can access information in the memory 12 (the address conversion table 121, the temporary queue 125, and the micro request queue 123).
  • the ACC 22 can also access information in the memory 12 via the Pcle 21.
  • commands transmitted from the host computer are registered.
  • the command transmitted from the host computer is transferred to the temporary queue 125 by the FE 24.
  • commands are registered in the temporary queue 125 by the processor 1 also in the redistribution processing described later.
  • the command in the temporary queue 125 is acquired by the ACC 22 and a distribution process described later is executed.
  • the micro request queue 123 is a queue in which commands are registered by the ACC 22. Commands in the micro request queue 123 are acquired and processed by the processor 11.
  • write data is temporarily stored when the processor 11 executes the write process.
  • the processor 11 receives write data based on the acquired write command, the processor 11 stores it in the cache area and transmits a write processing completion response to the host computer. Thereafter, an instruction for asynchronously storing the write data in the cache area 127 in the physical volume is transmitted to the physical storage device 31 via the device controller 23.
  • the response performance to the host computer can be increased.
  • the information in the memory 12 is shared between the processor 11 and the ACC 22. However, some or all of the information in the memory 12 may be held in a built-in memory (not shown). In this case, the information in the built-in memory and the information in the memory 12 are synchronized.
  • FIG. 3 shows an example of the address conversion table 121.
  • the address conversion table 121 is a table referred to by the ACC 22 when a write command is received.
  • the address conversion table 121 the correspondence between the logical address of the logical volume that can be written by the ACC 22 and the address of the physical volume based on the physical storage device 31 managed by the first controller 10 and the second controller 20 is registered. Is done.
  • the ACC 22 performs the write process itself, and the logical address specified by the write command is not registered in the address conversion table. In this case, the write command is registered in the micro request queue 123 to request the processor 11 for the write process.
  • the address conversion table 121 has an entry for each logical address. Each entry includes a LUN (Logical Unit Number) 301 that is an identifier of the logical volume, an LBA (Logical Block Address) 302 that indicates an area in the logical volume, a physical storage device 31 corresponding to the LUN and LBA, and its And a drive number (#) 303 indicating an area and an in-drive LBA 304.
  • LUN Logical Unit Number
  • LBA Logical Block Address
  • logical addresses of real logical volumes that do not have storage device specific functions such as replication, deduplication, or data compression are registered. For example, these logical addresses are registered in the address conversion table 121 when a logical volume is created. Registration is performed by the processor 11, for example.
  • the ACC 22 executes a process for a write process for a logical volume that does not require an operation specific to the storage device, and a logical operation that requires an operation specific to the storage device.
  • the processor 11 can be requested (assigned).
  • the ACC 22 can undertake a part of the load on the processor 11 for the write processing.
  • the address conversion table 121 can be updated by the processor 11. As a result, a part of the write processing for the logical volume that requires operations specific to the storage apparatus can be reassigned to the ACC 22.
  • FIG. 4 is a diagram for explaining the outline of the write command distribution process by the ACC 22.
  • the ACC 22 acquires the write command transferred from the FE 24 to the temporary queue 125, analyzes the received write command by its search engine, acquires the logical address of the destination, and stores the logical address of the destination in the address conversion table 121. It is determined whether it is registered.
  • the ACC 22 performs the write process based on the write command.
  • the processor 11 performs a write process based on the write command. Specifically, the ACC 22 requests the processor 11 to perform write processing based on the write command by re-registering the write command in the micro request queue 123 in the memory 12.
  • the ACC 22 acquires the address (drive number 303 and in-drive LBA 304) of the physical storage device 31 corresponding to the destination logical address (LUN 301 and LBA 302) based on the address conversion table 121, and designates the address of the physical storage device 31.
  • the generated drive command is generated and transmitted to the physical storage device 31 via the device controller 23.
  • the physical storage device 31 transmits a drive command response to the ACC 22.
  • the ACC 22 transmits a write data transmission request to the host computer, and transmits the received write data to the physical storage device 31 via the device controller 23.
  • the physical storage device 31 stores write data in the storage area of the physical storage device 31 based on the drive command.
  • the physical storage device 31 transmits a write completion notification to the ACC 22.
  • the ACC 22 transmits a completion response corresponding to the write completion notification to the host computer, and ends the write process.
  • FIG. 5 is an example of a flowchart of a write command distribution process 500.
  • the FE 24 registers the write command transmitted from the host computer in the temporary queue 125.
  • the distribution process 500 of the target write command (target command) will be described.
  • the ACC 22 acquires the target command that is the first write command of the temporary queue 125 (S501). Then, the ACC 22 analyzes the target command (S503) and obtains the destination logical address.
  • the ACC 22 refers to the address conversion table 121 (S505), and determines whether or not the destination logical address is registered in the address conversion table 121 (S507).
  • the ACC 22 determines the address of the physical storage device 31 corresponding to the destination logical address (drive number and in-drive LBA, below). (Similar) is generated (S511), and the drive command is transmitted to the physical storage device 31 (S513). As described above, the physical storage device 31 acquires write data based on the drive command and stores it in the corresponding storage area of the physical volume.
  • the ACC 22 registers the target command in the micro request queue 123 in the memory 12 (S509).
  • the processor 11 acquires the target command from the micro request queue 123 (S521), and executes the write-through determination process 700 for the write command.
  • the write command acquired by the processor 11 is assigned to itself or the ACC 22 again. Details of the write-through determination processing 700 will be described later.
  • the processor 11 and the ACC 22 can share the write process to the storage device. Specifically, for a logical volume that does not perform storage-specific operations, its logical address is registered in the address conversion table 121 in advance, so that a write command addressed to the logical address registered in the address conversion table 121 can be obtained. The received ACC 22 can execute the write process.
  • the ACC 22 registers the target command in the micro request queue 123 to request the processor to determine the target command (write-through determination described later). can do. As a result, it is possible to assign the subject that performs the write process depending on whether or not the logical volume is a storage-specific operation.
  • the processing of the processor 11 may become a bottleneck. Accordingly, the load of the controllers 10 and 20 can be efficiently distributed by sharing a part of such high-speed write processing to the physical storage device 31 by the ACC 22.
  • the write-through determination process 700 is a process performed by the processor 11 for the write command registered in the micro request queue 123.
  • the write-through in this embodiment is to store the received write data in the physical storage device 31 without temporarily storing it in the cache area 127.
  • Write processing by the ACC 22 is write-through.
  • the write processing by the processor 11 is not write-through because the received write data is temporarily stored in the cache area 127.
  • FIG. 9 shows an example of a flowchart of the write-through determination process 700.
  • the processor 11 acquires the target command from the micro request queue 123 (S701).
  • the processor 11 acquires the load of the cache area 127 (S703).
  • the usage rate of the cache area or IOPS Input or Output per second
  • IOPS Input or Output per second
  • the processor 11 determines whether or not the acquired load is higher than a preset threshold value (S705).
  • the processor 11 ends the write-through determination process and performs the first write process for the target command (S720). Specifically, the processor 11 acquires write data based on the target command, stores it in the specified cache area, and transmits a notification of completion of the write process to the host computer. Thereafter, the processor 11 transmits the write data in the cache area 127 to the physical storage device 31 via the device controller 23. Details of the first write process will be described later.
  • the processor 11 performs re-offload processing on the target command (S730). The re-offload process will be described later.
  • the write-through determination processing 700 allows the processor 11 to determine whether it is better to execute the write processing of the write command acquired from the micro request queue 123 or to let the ACC 22 perform it.
  • the processor 11 When the processor 11 performs the write process, the processor 11 needs to temporarily store the write data in the cache area 127 (caching). In the write-through determination process, it is possible to determine whether or not there is a possibility that the target write data is delayed by caching by considering the load on the cache area.
  • the write processing on the processor 11 side may be delayed due to caching. Then, there is a possibility that the advantage of the processor 11 performing the write process (that is, the advantage that the response time to the host can be shortened by asynchronously writing the cached write data to the physical storage device (write after)) may be offset. .
  • a waiting time may occur until the cache area becomes free, which may increase the response time to the host for the write command.
  • the storage location of the write data is a flash drive
  • writing can be performed at a higher speed compared to the HDD. For this reason, in consideration of the waiting time for the free space in the cache area, there is a possibility that the response time to the host can be made shorter in the write-through mode than in the write-after mode when the cache load is high.
  • FIG. 10 shows an example of a flowchart of the first write process.
  • This process is the process of S720 in FIG.
  • the processor 11 performs the processing of S1001 to S1007 as the front-end job (FE JOB) when the target command is received, and performs the processing of S1010 to S1019 as the back-end job (BE JOB).
  • FE JOB front-end job
  • BE JOB back-end job
  • the TP function may be used as a function unique to the storage apparatus.
  • the logical volume specified by the write command is TP-VOL as an example of the virtual logical volume.
  • the TP-VOL will be described later.
  • the processor 11 analyzes and determines whether the target command is a write command to the TP-VOL (S1001). If the target command is a command other than a write command for the TP-VOL 81 (S1001; No), the processor 11 advances the process to S1005. On the other hand, if the target command is a write command for TP-VOL 81 (S1001; Yes), the processor 11 has already registered the logical address (target logical address) of the logical volume specified by the target command in the mapping information described later. It is determined whether or not (S1002).
  • the processor 11 executes a mapping information creation process (S1004). For example, the processor 11 acquires the volume address of the physical volume 85 corresponding to the logical address of the logical volume specified by the target command, creates mapping information for associating these, and stores it in the memory 12. Next, the processor 11 advances the process to S1005.
  • the processor 11 searches the mapping information and identifies the cache area corresponding to the logical address specified by the target command (S1003).
  • the processor 11 secures a cache area corresponding to the target logical address (S1005). Then, the processor 11 transmits a transmission request for the target write data (target data) based on the target command to the host computer.
  • the processor 11 acquires the target data received by the FE 24 from the host computer and transfers it to the secured cache area (S1006).
  • the processor 11 sets a flag indicating that the target data is data (dirty data) that has not yet been written to the physical storage device 31.
  • the processor 11 transmits a write process completion notification to the host computer (S1007), and ends the write process.
  • the back end job is performed asynchronously with the front end job.
  • the processor 11 acquires the target data in the cache area based on the flag (S1010). Then, the processor 11 determines whether the target data is data stored in the TP-VOL 81 or data stored in the real logical volume (S1013).
  • the processor 11 acquires the address of the physical storage device 31 corresponding to the logical address of the logical volume specified by the target command, and advances the processing to S1017.
  • the processor 11 retrieves the mapping information in the memory 12 to obtain the address of the physical volume 85, and further stores the physical storage of the destination from the obtained address.
  • the address of the device 31 is acquired (S1015).
  • the processor 11 generates a drive command based on the acquired address of the physical storage device 31 and transmits it to the destination physical storage device 31 (S1017). Then, the processor 11 changes the flag of the target data to a flag indicating that the data is already written in the physical volume (clean data).
  • the processor 11 creates mapping information when it receives a write command.
  • the volume address can be acquired from the mapping information by the back-end process performed asynchronously with the write command.
  • the drive command designating the destination address can be transmitted to the physical storage device 31.
  • the target command is registered in the temporary queue 125, and the ACC 22 acquires and analyzes the target command, thereby allocating the processing following the ACC 22 or the processor 11, thereby reducing the load on the first and second controllers. Can be distributed.
  • FIG. 7 is a diagram for explaining a volume configuration of a storage apparatus having a TP function.
  • This storage device manages the TP-VOL 81, the pool 83, and the physical volume 85.
  • the physical volume 85 is a logical volume based on one or more physical storage devices 31.
  • a plurality of physical volumes 85 can be registered in the pool 83.
  • the total capacity of the registered physical volumes 85 becomes the total capacity of the pool 83.
  • the registration of the physical volume 85 is performed by allocating the storage area of the physical volume 85 to the unallocated storage area of the pool 83, respectively.
  • the capacity depends on the capacity of the physical volume corresponding to the real logical volume (and hence the capacity of the physical storage device 31 that is the basis), but in the case of the TP-VOL 81, the capacity is the physical volume. There is an advantage that it can be set freely without depending on the capacity of the volume 85.
  • mapping information creation processing is required for the write processing.
  • FIG. 8 is a diagram for explaining the mapping information creation process.
  • the mapping information creation process is a process performed as a pre-process when the processor 11 causes the ACC 22 to execute the write process in the above-described write-through determination (see S707 in FIG. 9).
  • the mapping information creation process and the mapping information search are processes included in the first write process.
  • the mapping information creation process is described below.
  • the storage area of each volume (TP-VOL 81, pool 83, and physical volume 85) is managed, for example, in units of pages (not shown).
  • storage areas can be easily managed by managing pages of each volume with the same capacity.
  • the pages of each volume need not be managed with the same size as long as they can be associated with each other.
  • the mapping information creation process is a process for creating mapping information in which a write target TP-VOL 81 page and a physical volume 85 page are associated with each other.
  • the processor 11 stores the created mapping information in the memory 12. Specifically, the processor 11 associates the page of the write target TP-VOL 81 with the empty page of the pool 83 (not shown).
  • the empty page here is a page that is already assigned to the page of the physical volume 85 and is not associated with the page of the TP-VOL 81.
  • the write target TP-VOL 81 page and the physical volume 85 page are associated with each other.
  • the processor 11 When writing the data “A”, “B”, “C”, and “D” to each page of the TP-VOL 81 to be written, the processor 11 performs mapping information creation processing on each page of the TP-VOL 81. Thus, by assigning each page of the pool, each page of the physical volume 85 corresponding to each page can be associated with each page of the TP-VOL 81. After the mapping information creation processing, data “A”, “B”, “C”, and “D” are stored in the pages of the physical volume 85 that are associated with the pages of the TP-VOL 81, respectively.
  • FIG. 6 is a diagram for explaining the outline of the re-offload process.
  • the re-offload process is performed when the processor 11 determines that the load on the cache area is higher than a preset threshold value in the write determination process.
  • the processor 11 performs preprocessing for causing the ACC 22 to execute write processing ((1) -1; preprocessing in the figure).
  • this pre-processing is processing for acquiring the volume address of the physical volume corresponding to the logical address specified by the target command.
  • This pre-processing can be realized by the flow shown in FIG. 14 by using the mapping information creation processing and mapping information search processing of FIG. 10, and the processing time is constant regardless of the cache load and can be processed in a very short time. It is.
  • the processor 11 registers the correspondence between the destination logical address and the acquired address in the address conversion table 121 ((1) -2 in the figure; address conversion table update).
  • the processor 11 registers the target command in the temporary queue 125 ((1) -3 in the figure; target command re-registration).
  • the distribution process 500 for the target command is executed again.
  • the destination logical address of the target command is registered in the address conversion table 121. That is, since the correspondence between the logical address of the destination and the address of the physical storage device 31 is registered, the ACC 22 can execute the write process for the target command by the distribution process. Accordingly, the ACC 22 transmits a write data storage instruction corresponding to the target command to the physical storage device 31 ((3) in the figure; write data storage instruction).
  • write processing is performed by re-offload processing. It is possible to cause the ACC 22 to execute a part of That is, the processor 11 registers the destination logical address in the address conversion table and registers the target command in the temporary queue 125 again, so that the ACC 22 can execute the target command again.
  • the re-offload process is a process that has a constant processing time and a relatively short time regardless of the load on the cache area. With this re-offload process, the write process can be executed by the ACC 22.
  • the re-offload process can reduce the load on the cache area and prevent the host response time of the target command from increasing due to the high load on the cache area. Further, it is possible to dynamically determine whether or not re-offload is necessary based on the current state of the system such as the load on the cache area, and write processing can be performed with the optimum route at that time.
  • FIG. 14 is an example of a flowchart of the re-offload process.
  • the processor 11 analyzes and determines whether or not the target command is a write command to the TP-VOL (S1401).
  • the processor 11 advances the process to S1409.
  • the processor 11 determines whether or not the logical address (target logical address) of the logical volume specified by the target command has already been registered in the mapping information. Is determined (S1403).
  • the processor 11 executes a mapping information creation process (S1405). For example, the processor 11 acquires the volume address of the physical volume 85 corresponding to the logical address of the logical volume specified by the target command, and acquires the address of the physical storage device 31 from the acquired volume address. Then, the processor 11 creates mapping information for associating these, and stores them in the memory 12. Next, the processor 11 advances the process to S1409.
  • the processor 11 searches the mapping information and specifies the cache area corresponding to the logical address specified by the target command (S1407). Next, the processor 11 advances the process to S1409.
  • the processor 11 updates the address conversion table 121 by registering the correspondence between the logical address of the logical volume and the address of the physical storage device 31 in the address conversion table 121 (S1409). Next, the processor 11 re-registers the target command in the temporary queue 125 (S1411), and ends the process.
  • the volume address of the physical volume 85 corresponding to the logical address of the logical volume (TP-VOL 81) specified by the target command can be acquired in the write process. That is, the processor 11 acquires the address of the physical storage device 31 from the acquired volume address, and registers the correspondence between the logical address of the TP-VOL 81 and the address of the physical storage device 31 in the address conversion table, so that the target command However, even if it is a write command for the TP-VOL 81, the ACC 22 can execute the write process for the logical address of the designated logical volume.
  • the processor 11 when the processor 11 re-registers the target command in the temporary queue 125, the distribution processing is performed again by the ACC 22. Thereby, regarding the write process of the target command, the processor 11 can cause the ACC 22 to execute the process, and can reduce the load on the cache area.
  • the sharing of each process is shown in FIG.
  • the write processing is performed by the ACC 22.
  • the logical address registered in the address conversion table 121 is usually a logical address of a logical volume that does not require a specific operation of the storage apparatus. In such a case, the ACC 22 itself can perform the process. Specifically, the ACC 22 generates a drive command and transmits it to the SAS controller 23.
  • the destination physical storage device 31 is a component of a RAID group, it is necessary to update the parity data of the parity group including the write data by writing the write data to the physical storage device 31. This generation of parity data is performed by the ACC 22.
  • a logical address that is not registered in the address conversion table 121 is usually a logical address of a logical volume that requires a specific operation of the storage apparatus.
  • the ACC 22 can request the processor 11 to perform the process by registering the write command in the micro request queue 123 different from the temporary queue 125. .
  • the processor 11 generates a drive command and transmits it to the destination physical storage device 31.
  • the parity data is generated by the processor 11.
  • the processor 11 can perform a write-through determination process on the write command acquired from the micro request queue 123. If the load on the cache area corresponding to the logical address specified by the write command is higher than the threshold, the processor 11 acquires the address of the physical volume corresponding to the logical address, registers it in the address conversion table 121, and writes the write address. The command is registered in the temporary queue 125 again. As a result, the processor 11 can request the ACC 22 to perform a write process for the write command again. Specifically, the ACC 22 generates a drive command and transmits it to the physical storage device 31. The generation of parity data is performed by the ACC 22, but may be performed by the physical storage device 31.
  • the address of the physical storage device 31 corresponding to the logical address is acquired, and the association is registered in the address conversion table. Since the processor 11 takes charge of the processing of the copy section, the write processing can be requested to the ACC 22. In particular, when the load of the cache area is high, such as the cache area usage rate or IOPS, the ACC 22 performs the write process, thereby reducing the host response time in the write process.
  • the processor 11 associates the logical address with the physical volume address by creating mapping information when a write command is transmitted.
  • the address of the physical storage device 31 can be acquired from the volume address, and the ACC 22 can perform the write process on the TP-VOL 81 as well.
  • the processor 11 performs the write process (first write process). As described above, when storing the write data in the cache area does not affect the processing time of the write process, the processor 11 that has acquired the write command performs the write process, thereby performing a smooth process. It is carried out.
  • the load on the processor 11 can be reduced by this measurement.
  • a write process (hereinafter referred to as a second write process) according to the second embodiment will be described.
  • the second write process is a process performed by the processor 11 instead of the first write process (see S720 in FIG. 9 and FIG. 10). In the second write process, sequential determination is performed on the write command.
  • sequential determination it is determined whether or not the write command acquired by the processor 11 is a command for data to be sequentially accessed.
  • Sequentially accessed data is data that is continuously transmitted from the host computer and stored in a continuous area of the physical volume. For example, this determination is based on a known method such as determination based on past statistical information.
  • the processor 11 determines that the write command is for sequentially accessed data, the processor 11 can predict the total data size of write data that is continuously transmitted.
  • FIG. 11 is a diagram illustrating the second write process.
  • the processor 11 In the front-end job, the processor 11 generates a metadata that is management information of the target write data (target data) and assigns the data set assigned to the target data to the logical address (target logical address) of the target data. Is stored in the cache area (upper side in FIG. 11). Then, the processor 11 performs sequential determination. If the target data is data that is sequentially accessed, the processor 11 estimates the logical address specified by the write command following the target command. Then, the processor 11 generates metadata (additional metadata) to be added to the write data following the target data based on the estimated logical address, and stores the additional metadata in the cache area corresponding to the estimated logical address. (Bottom of FIG. 11). Thereafter, in the back-end job, the processor 11 generates a drive command designating the target logical address and the address of the physical storage device 31 corresponding to the estimated logical address, and transmits the drive command to the destination physical storage device 31.
  • the physical storage device 31 can store the target data and the metadata data set in addition to the additional metadata in a storage area continuous thereto.
  • the processor 11 bears additional functions such as generation of metadata and additional metadata. In this way, by limiting the function of the ACC 22 and sharing roles with the processor 11, the write process can be made faster.
  • the second write process for the target command will be specifically described.
  • FIG. 12 shows an example of a flowchart of the second write process.
  • the processor 11 executes a front-end job (S1201).
  • the front-end job of the present embodiment generates target data metadata (target metadata) in addition to the steps S1001 to S1007 in FIG.
  • the processor 11 stores a data set obtained by adding the target metadata to the target data in a cache area corresponding to the logical address (target logical address) specified by the target command.
  • the processor 11 determines whether or not the target data is data that is sequentially accessed (S1205).
  • the processor 11 When the target data is data to be sequentially accessed (S1205; Yes), the processor 11 thereafter generates additional metadata of one or more write data (hereinafter, additional data) transmitted following the target data. (S1207). Specifically, the processor 11 estimates the logical address range of the logical volume specified by the subsequent write command from the data size of one or more additional data, and based on the estimated logical address range, one or more additional meta data. Create data. Then, the processor 11 stores these additional metadata in a cache area corresponding to the estimated logical address range. The processor 11 acquires the address range of the physical storage device 31 corresponding to the estimated logical address range. Then, the association of these address ranges is registered in the address conversion table 121 (S1209). In this case, the processor 11 may associate the physical volume address with each logical address specified by each write command.
  • the processor 11 performs a back-end job (S1211).
  • the back-end job in this case is approximately as described in S1010 to S1019 of FIG.
  • the processor 11 transmits to the destination physical storage device 31 a drive command instructing to write the target data with metadata and the additional metadata to the physical storage device 31.
  • the physical storage device 31 stores the data set to which one or more additional metadata is added in the designated address range of the physical volume.
  • the processor 11 performs a back-end job (S1211).
  • the back-end job in this case is as described in S1010 to S1019 of FIG.
  • the additional metadata to be added to the additional data is generated by the processor 11 in the second write process of the target data, and is added to the data set including the target data and the metadata. And stored in the cache area.
  • the additional metadata is transmitted to the physical storage device 31 together with the data set, and stored in the physical storage device 31.
  • the processor can register the correspondence between the estimated logical address range and the physical volume address range in the address conversion table 121.
  • the processor 11 performs the write processing of the target data, and the ACC 22 can execute the write processing for the write data following the target data.
  • the specified logical address is registered in the address conversion table 121, so that the ACC 22 can execute the process.
  • the ACC 22 transmits the additional data to the physical storage device 31, the physical storage device 31 can store the additional data in the storage area specified by the command.
  • the data set of the additional data is stored in the corresponding storage area of the physical storage device.
  • the generation of parity data is performed by the processor 11 for the target data, and the ACC 22 for the subsequent write data (see FIG. 13).
  • the processor 11 performs the second write process after the write-through determination process 700, but the order of these may be any. That is, the processor 11 may perform the second write process without executing the write-through determination process 700. Further, the processor 11 may perform a write-through determination process on a command determined as a data write command that is not sequential access in the second write process.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

According to the present invention, a control device acquires a first command in a first queue, determines whether or not a first logical area designated by the first command is registered in logical-physical translation information, specifies a first device area that corresponds to the first logical area on the basis of the logical-physical translation information when the first logical area is registered in the logical-physical translation information, and indicates to a physical storage device a write to the first device area of first write data that is received by an interface on the basis of the first command. The control device registers the first command in a second queue when the first logical area is not registered in the logical-physical translation information. A processor acquires the first command from the second queue, and acquires the load status of a cache area. The processor determines whether or not the load status is higher than a preset threshold value, selects the first device area from the physical storage device when the load status is higher than the threshold value, registers the first logical area and the first device area in correlation with each other in the logical-physical translation information, and re-registers the first command in the first queue.

Description

ストレージ装置、及び方法Storage apparatus and method
 本発明は、ストレージ装置に関する。 The present invention relates to a storage apparatus.
 ストレージ装置は、複数の物理記憶デバイス(記録メディア)と、複数の物理記憶デバイスに接続され、ホストコンピュータからI/O(Input or Output)要求を受け付けるストレージコントローラとを備える。物理記憶デバイスとしては、例えばHDD(Hard Disk Drive)が知られている。 The storage device includes a plurality of physical storage devices (recording media) and a storage controller connected to the plurality of physical storage devices and receiving I / O (Input or Output) requests from the host computer. As a physical storage device, for example, an HDD (Hard Disk Drive) is known.
 また、近年、ストレージ装置の物理記憶デバイスとして、フラッシュメモリで実現されるSSD(Solid State Drive)が広く利用され始めている。SSDは、従来のHDDに比較して、レスポンス性能、低消費電力などの特長を持つ。特に、SSDのI/O性能は、HDDの1000倍近いものもある。 In recent years, SSD (Solid State Drive) realized by flash memory has begun to be widely used as a physical storage device of a storage apparatus. SSDs have features such as response performance and low power consumption compared to conventional HDDs. In particular, the I / O performance of SSDs is nearly 1000 times that of HDDs.
 一方で、ストレージコントローラの性能がSSDの性能に追いついておらず、ボトルネックとなってしまう問題がある。例えば、フラッシュドライブ(SSD)を高々十数台搭載した場合でも、ストレージコントローラの性能がボトルネックとなり、フラッシュドライブの性能を十分に引き出すことができない場合がある。 On the other hand, there is a problem that the performance of the storage controller does not catch up with the performance of the SSD and becomes a bottleneck. For example, even when at most a dozen or more flash drives (SSDs) are mounted, the performance of the storage controller may become a bottleneck and the performance of the flash drive may not be fully exploited.
 例えば、特許文献1に開示のコントローラは、CPUとメモリとストレージI/FとディスクI/Fを有し、ホスト計算機からのI/O要求をCPUによるソフトウェアで処理することが開示されている。また例えば、特許文献2では、I/O要求をCPUとは別の専用ハードウェアによって処理する高性能なストレージコントローラの実現方法を開示している。 For example, the controller disclosed in Patent Document 1 has a CPU, a memory, a storage I / F, and a disk I / F, and processes an I / O request from a host computer with software by the CPU. Further, for example, Patent Document 2 discloses a method for realizing a high-performance storage controller that processes I / O requests by dedicated hardware different from the CPU.
特開2014-41646号公報JP 2014-41646 A 米国特許出願公開第2013/0145088号明細書US Patent Application Publication No. 2013/0145088
 特許文献1で開示されるようなコントローラで利用されるCPUは、ムーアの法則にしたがって性能向上を遂げてきた。しかしながら、前述したような物理記憶デバイスの変化の中で、コントローラと物理記憶デバイスの間に大きな性能ギャップが生じており、ストレージコントローラの性能がボトルネックとなる場合がある。 The CPU used in the controller as disclosed in Patent Document 1 has improved its performance according to Moore's law. However, in the change of the physical storage device as described above, a large performance gap is generated between the controller and the physical storage device, and the performance of the storage controller may become a bottleneck.
 また、特許文献2による技術では、ストレージコントローラの高性能化を実現することは可能である。しかし、専用ハードウェアで処理を行うため、ストレージ装置特有の機能が提供できないという問題がある。例えば、ストレージ装置特有の機能として、Thin Provisioning、ボリュームのレプリケーション、スナップショット、重複排除、データ圧縮などが挙げられる。これらの機能を提供するためには、これらの機能を有するプログラムをプロセッサ上で実行する必要がある。このため、これらの機能を有するボリュームに対しては、プロセッサで処理を行わなければならない。 In addition, with the technology according to Patent Document 2, it is possible to achieve high performance of the storage controller. However, since processing is performed with dedicated hardware, there is a problem that a function specific to the storage apparatus cannot be provided. For example, functions specific to storage devices include Thin Provisioning, volume replication, snapshot, deduplication, and data compression. In order to provide these functions, it is necessary to execute a program having these functions on the processor. For this reason, a volume having these functions must be processed by a processor.
 ストレージ装置は、物理記憶デバイスと、物理記憶デバイスに接続されたコントローラと、を備える。コントローラは、ホスト計算機に接続されるフロントエンドインタフェースと、フロントエンドインタフェース及び物理記憶デバイスに接続され、かつ、物理記憶デバイスに基づく論理ボリュームをホスト計算機に提供するプロセッサと、プロセッサに接続されたメモリと、フロントエンドインタフェース、メモリ、及びプロセッサに接続された制御デバイスと、を有する。メモリは、論理ボリューム内の論理領域、及び物理記憶デバイスにより提供される記憶領域であるデバイス領域を、対応づける論物変換情報と、フロントエンドインタフェースによりホスト計算機から受信されたライトコマンドを順番に格納する第1キューと、第1キューとは異なる第2キューと、キャッシュ領域と、を有する。制御デバイスは、第1キュー内の第1ライトコマンドを取得し、第1ライトコマンドで指定された第1論理領域が論物変換情報に登録されているか否かを判定する。第1論理領域が前記論物変換情報に登録されている場合、制御デバイスは、論物変換情報に基づいて第1論理領域に対応する第1デバイス領域を特定する。制御デバイスは、物理記憶デバイスに対して、第1ライトコマンドに基づいてフロントエンドインタフェースにより受信された第1ライトデータの第1デバイス領域への書き込みを指示する。第1論理領域が前記論物変換情報に登録されていない場合、制御デバイスは、第1ライトコマンドを第2キューに登録する。プロセッサは、第2キューから第1ライトコマンドを取得し、キャッシュ領域の負荷状況を取得する。プロセッサは、負荷状況が予め設定された閾値より高いか否かを判定する。負荷状況が前記閾値より高い場合に、プロセッサは、物理記憶デバイスから第1デバイス領域を選択し、第1論理領域と第1デバイス領域とを対応付けて論物変換情報に登録し、第1ライトコマンドを第1キューに再登録する。 The storage apparatus includes a physical storage device and a controller connected to the physical storage device. The controller includes a front-end interface connected to the host computer, a processor connected to the front-end interface and the physical storage device, and providing a logical volume based on the physical storage device to the host computer, and a memory connected to the processor. , A front-end interface, a memory, and a control device connected to the processor. The memory sequentially stores logical conversion information that correlates the logical area in the logical volume and the device area that is provided by the physical storage device, and the write command received from the host computer by the front-end interface. A first queue to be executed, a second queue different from the first queue, and a cache area. The control device acquires the first write command in the first queue and determines whether or not the first logical area designated by the first write command is registered in the logical-physical conversion information. When the first logical area is registered in the logical-physical conversion information, the control device specifies the first device area corresponding to the first logical area based on the logical-physical conversion information. The control device instructs the physical storage device to write the first write data received by the front end interface to the first device area based on the first write command. If the first logical area is not registered in the logical-physical conversion information, the control device registers the first write command in the second queue. The processor acquires the first write command from the second queue and acquires the load status of the cache area. The processor determines whether or not the load status is higher than a preset threshold value. When the load status is higher than the threshold value, the processor selects the first device area from the physical storage device, associates the first logical area with the first device area, registers the first logical area and the logical / physical conversion information, and outputs the first write area. Re-register the command in the first queue.
 ライト処理について、ストレージコントローラの性能を向上させることができる。 ∙ Regarding the write processing, the performance of the storage controller can be improved.
実施例1に係るストレージ装置の構成図の一例である。1 is an example of a configuration diagram of a storage device according to Embodiment 1. FIG. 第1コントローラ10内のメモリ12の構成を示す。2 shows a configuration of the memory 12 in the first controller 10. アドレス変換テーブル121の一例を示すAn example of the address conversion table 121 is shown. ACC22によるライトコマンド振分け処理の概要を説明する図である。It is a figure explaining the outline | summary of the write command distribution process by ACC22. ライトコマンドの振分け処理500のフローチャートの一例である。6 is an example of a flowchart of a write command distribution process 500; 再オフロード処理の概要を説明する図である。It is a figure explaining the outline | summary of a re-offload process. TP機能を有するストレージ装置のボリュームの構成を説明する図である。It is a figure explaining the structure of the volume of the storage apparatus which has TP function. マッピング情報作成処理を説明する図である。It is a figure explaining mapping information creation processing. ライトスルー判定処理700のフローチャートの一例である。6 is an example of a flowchart of a write-through determination process 700. 第1ライト処理のフローチャートの一例である。It is an example of the flowchart of a 1st write process. 第2ライト処理を説明する図である。It is a figure explaining a 2nd write process. 第2ライト処理のフローチャートの一例である。It is an example of the flowchart of a 2nd write process. 各処理の分担を説明する図である。It is a figure explaining sharing of each process. 再オフロード処理のフローチャートの一例である。It is an example of the flowchart of a re-offload process.
 以下の説明では、各実施例の計算機システムが有する各情報について、テーブルやリストなどの表現で説明することがある。しかし、各情報のデータ構造は限定されず、他のデータ構造であってもよい。各情報はデータ構造に依存しないため、例えば、「kkkテーブル」を「kkk情報」と呼ぶことができる。 In the following description, each piece of information included in the computer system of each embodiment may be described using expressions such as a table or a list. However, the data structure of each information is not limited, and other data structures may be used. Since each information does not depend on the data structure, for example, “kkk table” can be called “kkk information”.
 また、以下の説明において、プロセッサは、プログラムを実行し、記憶資源(例えば、メモリ)及び/又は通信インターフェイスデバイス(例えば、通信ポート)等を用いながら処理を行う。処理の主体について、以下の説明では各種のプログラムを主体とする場合があるが、プログラムを実行するプロセッサを主体としてもよい。また、プロセッサを主体とする処理は、1以上のプログラムを実行する事によりおこなわれると解釈されてもよい。プロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサであるが、処理の一部(例えば、暗号化/復号化、圧縮/伸張)を実行するハードウェア回路を含んでもよい。 In the following description, the processor executes a program and performs processing while using a storage resource (for example, a memory) and / or a communication interface device (for example, a communication port). In the following description, the main subject of processing may be various programs, but a processor that executes the program may be the main subject. Further, the processing mainly using the processor may be interpreted as being performed by executing one or more programs. The processor is typically a microprocessor such as a CPU (Central Processing Unit), but may include a hardware circuit that executes a part of the processing (for example, encryption / decryption, compression / decompression). .
 また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号を使用し、同種の要素を区別して説明する場合には、その要素の参照符号に代えて、その要素に割り振られた識別子(例えば番号及び符号のうちの少なくとも1つ)を使用することがある。 Further, in the following description, when a description is made without distinguishing the same type of element, a reference symbol is used, and when a description is made with a distinction between the same type of element, the element is replaced with the reference number. An assigned identifier (eg, at least one of a number and a sign) may be used.
 以下、幾つかの実施例を説明する。 Hereinafter, some examples will be described.
 図1は、実施例1に係るストレージ装置の構成図の一例である。 FIG. 1 is an example of a configuration diagram of the storage apparatus according to the first embodiment.
 ストレージ装置は、第1ストレージコントローラ(FCTL)10と、第2ストレージコントローラ(SCTL)20と、物理記憶デバイス31とを備える。以下の説明では、第1ストレージコントローラ10及び第2ストレージコントローラ20を、それぞれ第1コントローラ10及び第2コントローラ20という場合がある。 The storage apparatus includes a first storage controller (FCTL) 10, a second storage controller (SCTL) 20, and a physical storage device 31. In the following description, the first storage controller 10 and the second storage controller 20 may be referred to as the first controller 10 and the second controller 20, respectively.
 図示例では、第1コントローラ10及び第2コントローラ20のそれぞれは、2つ1組で冗長化されている。しかし、第1コントローラ10及び第2コントローラ20は、それぞれ1つで構成されてもよいし、3つ以上の構成で冗長化されてもよい。なお、冗長化された第1コントローラ10及び第2コントローラ20のそれぞれは、基本的に同じ構成である。このため、以下では、それぞれ1つの第1コントローラ10及び第2コントローラ20について説明する。 In the illustrated example, each of the first controller 10 and the second controller 20 is made redundant in pairs. However, each of the first controller 10 and the second controller 20 may be configured by one, or may be made redundant by three or more configurations. Each of the redundant first controller 10 and second controller 20 has basically the same configuration. Therefore, in the following, each of the first controller 10 and the second controller 20 will be described.
 第2コントローラ20は、フロントエンドインタフェース(以下、FE)24と、スイッチ(PCIe-SW)21と、アクセラレータ(ACC)22と、バックエンドインタフェースとしてのデバイスコントローラ(SAS―CTL)23と、を有する。なお、これら各部のそれぞれの数は、図示例で示す数に限定されるものではない。 The second controller 20 includes a front-end interface (hereinafter referred to as FE) 24, a switch (PCIe-SW) 21, an accelerator (ACC) 22, and a device controller (SAS-CTL) 23 as a back-end interface. . In addition, the number of each of these each part is not limited to the number shown in the example of illustration.
 スイッチ21は、信号線を介してFE24、ACC22、及び、デバイスコントローラ23に接続される。この信号線は、例えば、コントローラ10内部のデータ転送パスとして使われるPCI Expressであるが、これに限られない。なお、PCI Express以外の信号線の場合には、それに適したスイッチが適用される。また、スイッチ21を介して、第2コントローラ20が、第1コントローラ10に接続される。 The switch 21 is connected to the FE 24, the ACC 22, and the device controller 23 through a signal line. This signal line is, for example, a PCI Express used as a data transfer path inside the controller 10, but is not limited thereto. In the case of signal lines other than PCI Express, a switch suitable for the signal line is applied. Further, the second controller 20 is connected to the first controller 10 via the switch 21.
 第2コントローラ20は、FE24を介して、図示しないホスト計算機にネットワーク接続される。なお、ホスト計算機と第2コントローラ20との間のネットワークは、コマンドやデータをやり取りするための通信路であり、例えば、SAN(Storage Area Network)等から構成される。FE24は、ホスト計算機と第2コントローラ20との間のデータ転送プロトコルと、第2コントローラ20内のデータ転送プロトコルとを相互に変換する。 The second controller 20 is connected to a host computer (not shown) via the FE 24 via a network. Note that the network between the host computer and the second controller 20 is a communication path for exchanging commands and data, and includes, for example, a SAN (Storage Area Network). The FE 24 mutually converts a data transfer protocol between the host computer and the second controller 20 and a data transfer protocol in the second controller 20.
 ACC22は、第1コントローラ10のプロセッサ11とは別の制御デバイスである。具体的には、例えば、ACC22は、ASIC(application specific integrated circuit)やFPGA(field-programmable gate array)等のハードウェアで実現される。本実施例では、ACC22と、第1コントローラ10内のプロセッサ11とがライト処理を分担することにより、高性能(高速)な処理を実現する例を説明する。例えば、ACC22は、ストレージ装置特有の機能等を実行せず、物理記憶デバイス31へのリード・ライト処理等の一部の機能が限定して実行されるものとする。本実施例のように、物理記憶デバイス31が高速なドライブの場合には(物理記憶デバイス31については後述する)、ACC22の機能を制限することで、より高速なリード・ライト処理を実現できる。 The ACC 22 is a control device different from the processor 11 of the first controller 10. Specifically, for example, the ACC 22 is realized by hardware such as an ASIC (application specific integrated circuit) or an FPGA (field-programmable gate array). In the present embodiment, an example will be described in which the ACC 22 and the processor 11 in the first controller 10 share write processing to realize high-performance (high-speed) processing. For example, it is assumed that the ACC 22 does not execute functions or the like specific to the storage apparatus, and executes some functions such as read / write processing to the physical storage device 31 in a limited manner. As in this embodiment, when the physical storage device 31 is a high-speed drive (the physical storage device 31 will be described later), by limiting the functions of the ACC 22, higher-speed read / write processing can be realized.
 なお、本実施例では、ACC22は、ASICやFPGA等のハードウェアとしたが、ACC22は、ASICやFPGA等のハードウェアに限定されるものではなく、CPU等のプロセッサがソフトウェアを実行することによって実現されてもよい。また、例えば、ACC22には、図示しないメモリが接続されてもよい。メモリは、内蔵されていてもよいし、外付けで接続されてもよい。 In this embodiment, the ACC 22 is hardware such as an ASIC or FPGA. However, the ACC 22 is not limited to hardware such as an ASIC or FPGA, and a processor such as a CPU executes software. It may be realized. For example, a memory (not shown) may be connected to the ACC 22. The memory may be built in or connected externally.
 第2コントローラ20は、例えば、デバイスコントローラ23を介して不揮発性の物理記憶デバイス31に接続される。デバイスコントローラ23は、内部に図示しないプロセッサ及びメモリ等を備え、データのI/O処理や、制御コマンドの処理を実行する。 The second controller 20 is connected to the non-volatile physical storage device 31 via the device controller 23, for example. The device controller 23 includes a processor and a memory (not shown) therein, and executes data I / O processing and control command processing.
 物理記憶デバイス31は、例えば、SSD(solid state drive)等の高速なドライブである。図示例では、デバイスコントローラ23及び物理記憶デバイス31間に、SAS(Serial Attached SCSI)プロトコルが採用されている。このため、デバイスコントローラにはSASコントローラ23、物理記憶デバイス31にはSAS-SSDが、それぞれ採用されている。しかし、デバイスコントローラ23及び物理記憶デバイス31間には、SAS以外のプロトコルが採用されてもよく、この場合、そのプロトコルに合わせたデバイスコントローラ23及びSSDが採用される。さらに、物理記憶デバイス31は、不揮発性のものであれば、SSD等の不揮発性半導体の記憶デバイスでなくてもよく、例えば、HDD(Hard Disk Drive)であってよい。また、複数の物理記憶デバイス31により1以上のRAIDグループ(Redundant Array of Independent (or Inexpensive) Disks)が構成されてもよい。 The physical storage device 31 is, for example, a high-speed drive such as an SSD (Solid state drive). In the illustrated example, a SAS (Serial Attached SCSI) protocol is adopted between the device controller 23 and the physical storage device 31. For this reason, the SAS controller 23 is adopted as the device controller, and the SAS-SSD is adopted as the physical storage device 31. However, a protocol other than SAS may be adopted between the device controller 23 and the physical storage device 31, and in this case, the device controller 23 and the SSD according to the protocol are adopted. Furthermore, as long as the physical storage device 31 is nonvolatile, the physical storage device 31 may not be a nonvolatile semiconductor storage device such as an SSD, and may be, for example, an HDD (Hard Disk Drive). Further, one or more RAID groups (Redundant Array of Independent (or Inexpensive) Disks) may be configured by a plurality of physical storage devices 31.
 物理記憶デバイス31には、各第2コントローラ20内のデバイスコントローラ23がそれぞれ接続される。これにより、1のデバイスコントローラ23を用いたパスの間で障害が発生しても、他のデバイスコントローラ23を用いたパスに切替えることで、ホスト計算機からのIOを継続することができる。 A device controller 23 in each second controller 20 is connected to the physical storage device 31. Thereby, even if a failure occurs between paths using one device controller 23, IO from the host computer can be continued by switching to a path using another device controller 23.
 第1コントローラ10は、フロントエンドインタフェース(以下、FE)14と、プロセッサ(CPU;Central Processing Unit)11と、メモリ(Memory)12と、バックエンドインタフェース(以下、BE)13と、コントローラ間インタフェース(I/F)15と、を備える。これら各部(FE14、CPU11、メモリ12、BE13、I/F15)は、バスなどの信号線によって内部で相互に接続されている。なお、これら各部のそれぞれの数は、図示例で示す数に限定されるものではない。 The first controller 10 includes a front end interface (hereinafter referred to as FE) 14, a processor (CPU; Central Processing Unit) 11, a memory (Memory) 12, a back end interface (hereinafter referred to as BE) 13, and an interface between the controllers ( I / F) 15. These units (FE14, CPU11, memory 12, BE13, I / F15) are internally connected to each other by a signal line such as a bus. In addition, the number of each of these each part is not limited to the number shown in the example of illustration.
 メモリ12は、プロセッサ11の主記憶媒体であり、プロセッサ11が実行する各種プログラム及びプロセッサ11が参照する各種管理情報等を記憶する領域と、一時的にリード又はライトデータを記憶するキャッシュ領域(CM)127とを備える。プログラムは、例えば、ストレージ装置を制御するためのプログラム等が記憶される。なお、本実施例では、メモリ12がプロセッサに接続されているが、メモリ12は、プロセッサ11に内蔵されていてもよい。 The memory 12 is a main storage medium of the processor 11, an area for storing various programs executed by the processor 11, various management information referred to by the processor 11, and a cache area (CM for temporarily storing read or write data). 127). The program stores, for example, a program for controlling the storage apparatus. In this embodiment, the memory 12 is connected to the processor, but the memory 12 may be built in the processor 11.
 第1コントローラ10の各部は、I/F15を介して第2コントローラ20のスイッチ21に接続される。これにより、第1コントローラ10と第2コントローラ20との相互通信が可能になる。 Each part of the first controller 10 is connected to the switch 21 of the second controller 20 via the I / F 15. Thereby, mutual communication between the first controller 10 and the second controller 20 becomes possible.
 プロセッサ11は、ホスト計算機に対して、論理ボリューム(LU)を提供する。論理ボリュームは、実論理ボリュームであっても良いし、仮想論理ボリュームであっても良い。実論理ボリュームは、1又は複数の物理記憶デバイス31に基づく論理ボリュームである。例えば、複数の物理記憶デバイス31で構成されたRAIDグループに基づいて生成されるボリュームであってもよいし、1つの物理記憶デバイス31から生成されるボリュームであってもよい。 The processor 11 provides a logical volume (LU) to the host computer. The logical volume may be a real logical volume or a virtual logical volume. A real logical volume is a logical volume based on one or more physical storage devices 31. For example, a volume generated based on a RAID group composed of a plurality of physical storage devices 31 may be used, or a volume generated from one physical storage device 31 may be used.
 仮想論理ボリュームは、仮想的にホスト計算機に提供される論理ボリュームである。ストレージ装置が、特有の機能として、TP(Thin Provisioning)機能やスナップショット機能を有する場合に、ホスト計算機に仮想論理ボリュームが提供される。 The virtual logical volume is a logical volume that is virtually provided to the host computer. When the storage apparatus has a TP (Thin Provisioning) function and a snapshot function as specific functions, a virtual logical volume is provided to the host computer.
 なお、第1コントローラ10は、BE13を介して、例えばHDD等の図示しない物理記憶デバイスに接続されてもよい。また、第1コントローラ10は、FE14を介して、図示しないホスト計算機に接続されてもよい。 The first controller 10 may be connected to a physical storage device (not shown) such as an HDD via the BE 13. The first controller 10 may be connected to a host computer (not shown) via the FE 14.
 図2は、第1コントローラ10内のメモリ12の構成を示す図である。 FIG. 2 is a diagram showing a configuration of the memory 12 in the first controller 10.
  メモリ12は、アドレス変換テーブル121と、テンポラリーキュー125と、マイクロ依頼キュー123と、キャッシュ領域127と、を有する。 The memory 12 includes an address conversion table 121, a temporary queue 125, a micro request queue 123, and a cache area 127.
 プロセッサ11は、メモリ12内の情報(アドレス変換テーブル121、テンポラリーキュー125及びマイクロ依頼キュー123)にアクセス可能である。ACC22もまた、Pcle21を介して、メモリ12内の情報にアクセス可能である。 The processor 11 can access information in the memory 12 (the address conversion table 121, the temporary queue 125, and the micro request queue 123). The ACC 22 can also access information in the memory 12 via the Pcle 21.
 テンポラリーキュー125には、ホスト計算機から送信されたコマンドが登録される。ホスト計算機から送信されたコマンドは、FE24によりテンポラリーキュー125に転送される。また、テンポラリーキュー125には、後述の再振分け処理においても、プロセッサ1によりコマンドが登録される。テンポラリーキュー125内のコマンドは、ACC22が取得し、後述の振分け処理が実行される。 In the temporary queue 125, commands transmitted from the host computer are registered. The command transmitted from the host computer is transferred to the temporary queue 125 by the FE 24. Further, commands are registered in the temporary queue 125 by the processor 1 also in the redistribution processing described later. The command in the temporary queue 125 is acquired by the ACC 22 and a distribution process described later is executed.
 マイクロ依頼キュー123は、ACC22によりコマンドが登録されるキューである。マイクロ依頼キュー123内のコマンドは、プロセッサ11が取得し処理する。 The micro request queue 123 is a queue in which commands are registered by the ACC 22. Commands in the micro request queue 123 are acquired and processed by the processor 11.
 キャッシュ領域127には、ライト処理をプロセッサ11が実行する場合に、ライトデータが一時的に記憶される。プロセッサ11は、取得したライトコマンドに基づくライトデータを受信したときに、キャッシュ領域に記憶してライト処理の完了応答をホスト計算機に送信する。その後、非同期にキャッシュ領域127内のライトデータを物理ボリュームに格納するための指示を、デバイスコントローラ23を介して物理記憶デバイス31に送信する。キャッシュ領域へのライトが完了した時点でホスト計算機にライト完了の応答を返すことで、ホスト計算機への応答性能の高速化を図ることができる。 In the cache area 127, write data is temporarily stored when the processor 11 executes the write process. When the processor 11 receives write data based on the acquired write command, the processor 11 stores it in the cache area and transmits a write processing completion response to the host computer. Thereafter, an instruction for asynchronously storing the write data in the cache area 127 in the physical volume is transmitted to the physical storage device 31 via the device controller 23. By returning a write completion response to the host computer when the write to the cache area is completed, the response performance to the host computer can be increased.
 なお、本実施例では、メモリ12内情報を、プロセッサ11及びACC22が共有する例を示している。しかし、メモリ12内の情報の一部又は全部は、内蔵メモリ(図示なし)にも保有されていてもよい。この場合、内蔵メモリ内の情報と、メモリ12内の情報とが同期される。 In the present embodiment, the information in the memory 12 is shared between the processor 11 and the ACC 22. However, some or all of the information in the memory 12 may be held in a built-in memory (not shown). In this case, the information in the built-in memory and the information in the memory 12 are synchronized.
 図3は、アドレス変換テーブル121の一例を示す。 FIG. 3 shows an example of the address conversion table 121.
 アドレス変換テーブル121は、ライトコマンドを受信したときに、ACC22により参照されるテーブルである。アドレス変換テーブル121には、ACC22がライト処理可能な論理ボリュームの論理アドレスと、第1コントローラ10及び第2コントローラ20が管理する、物理記憶デバイス31に基づく物理ボリュームのアドレスと、の対応づけが登録される。ACC22は、ライトコマンドで指定された論理アドレスがアドレス変換テーブル121に登録されている場合には、そのライト処理を自身で行い、ライトコマンドで指定された論理アドレスがアドレス変換テーブルに登録されていない場合には、そのライトコマンドをマイクロ依頼キュー123に登録することにより、そのライト処理をプロセッサ11に依頼する。 The address conversion table 121 is a table referred to by the ACC 22 when a write command is received. In the address conversion table 121, the correspondence between the logical address of the logical volume that can be written by the ACC 22 and the address of the physical volume based on the physical storage device 31 managed by the first controller 10 and the second controller 20 is registered. Is done. When the logical address specified by the write command is registered in the address conversion table 121, the ACC 22 performs the write process itself, and the logical address specified by the write command is not registered in the address conversion table. In this case, the write command is registered in the micro request queue 123 to request the processor 11 for the write process.
 アドレス変換テーブル121は、論理アドレス毎のエントリを有する。各エントリは、当該論理ボリュームの識別子であるLUN(Logical Unit Number)301と、当該論理ボリューム内の領域を示すLBA(Logical Block  Address)302と、当該LUN及びLBAに対応する物理記憶デバイス31及びその領域を示すドライブ番号(#)303及びドライブ内LBA304と、を有する。 The address conversion table 121 has an entry for each logical address. Each entry includes a LUN (Logical Unit Number) 301 that is an identifier of the logical volume, an LBA (Logical Block Address) 302 that indicates an area in the logical volume, a physical storage device 31 corresponding to the LUN and LBA, and its And a drive number (#) 303 indicating an area and an in-drive LBA 304.
 なお、アドレス変換テーブル121には、原則として、レプリケーション、重複排除又はデータ圧縮等のストレージ装置特有の機能を有さない実論理ボリュームの論理アドレスが登録される。例えば、これらの論理アドレスは、論理ボリュームの生成時に、アドレス変換テーブル121に登録される。登録は、例えば、プロセッサ11により行われる。アドレス変換テーブル121に登録される論理アドレスを限定することで、ストレージ装置特有の操作を必要としない論理ボリュームに対するライト処理に対してはACC22が処理を実行し、ストレージ装置特有の操作が必要な論理ボリュームに対するライト処理に対しては、プロセッサ11に処理を依頼する(振り分ける)ことができる。これにより、ライト処理について、プロセッサ11にかかる負荷の一部をACC22が請け負うことができる。 In the address conversion table 121, in principle, logical addresses of real logical volumes that do not have storage device specific functions such as replication, deduplication, or data compression are registered. For example, these logical addresses are registered in the address conversion table 121 when a logical volume is created. Registration is performed by the processor 11, for example. By limiting the logical addresses registered in the address conversion table 121, the ACC 22 executes a process for a write process for a logical volume that does not require an operation specific to the storage device, and a logical operation that requires an operation specific to the storage device. For the write processing on the volume, the processor 11 can be requested (assigned). As a result, the ACC 22 can undertake a part of the load on the processor 11 for the write processing.
 また、本実施例では、プロセッサ11によりアドレス変換テーブル121は更新され得る。これにより、ストレージ装置特有の操作が必要な論理ボリュームに対するライト処理の一部を、ACC22に再度振り分けることができる。 In this embodiment, the address conversion table 121 can be updated by the processor 11. As a result, a part of the write processing for the logical volume that requires operations specific to the storage apparatus can be reassigned to the ACC 22.
 図4は、ACC22によるライトコマンドの振分け処理の概要を説明する図である。 FIG. 4 is a diagram for explaining the outline of the write command distribution process by the ACC 22.
 ACC22は、FE24からテンポラリーキュー125に転送されたライトコマンドを取得し、自身の検索エンジンにより、受信したライトコマンドを解析して宛先の論理アドレスを取得し、アドレス変換テーブル121に宛先の論理アドレスが登録されているか否かを判定する。 The ACC 22 acquires the write command transferred from the FE 24 to the temporary queue 125, analyzes the received write command by its search engine, acquires the logical address of the destination, and stores the logical address of the destination in the address conversion table 121. It is determined whether it is registered.
 宛先の論理アドレスがアドレス変換テーブル121に登録されている場合(検索ヒットあり)には、当該ライトコマンドに基づくライト処理はACC22が行う。 If the destination logical address is registered in the address translation table 121 (there is a search hit), the ACC 22 performs the write process based on the write command.
 一方、宛先の論理アドレスがアドレス変換テーブル121に登録されていない場合(検索ヒットなし)には、当該ライトコマンドに基づくライト処理はプロセッサ11が行う。具体的には、ACC22は、ライトコマンドをメモリ12内のマイクロ依頼キュー123に再登録することで、そのライトコマンドに基づくライト処理をプロセッサ11に依頼する。 On the other hand, if the destination logical address is not registered in the address conversion table 121 (no search hit), the processor 11 performs a write process based on the write command. Specifically, the ACC 22 requests the processor 11 to perform write processing based on the write command by re-registering the write command in the micro request queue 123 in the memory 12.
 ここで、ACC22が実行するライト処理を説明する。ACC22は、アドレス変換テーブル121に基づき、宛先の論理アドレス(LUN301及びLBA302)に対応する物理記憶デバイス31のアドレス(ドライブ番号303及びドライブ内LBA304)を取得し、当該物理記憶デバイス31のアドレスを指定したドライブコマンドを生成し、デバイスコントローラ23を介して物理記憶デバイス31に送信する。 Here, the write process executed by the ACC 22 will be described. The ACC 22 acquires the address (drive number 303 and in-drive LBA 304) of the physical storage device 31 corresponding to the destination logical address (LUN 301 and LBA 302) based on the address conversion table 121, and designates the address of the physical storage device 31. The generated drive command is generated and transmitted to the physical storage device 31 via the device controller 23.
 物理記憶デバイス31は、ドライブコマンドの応答をACC22に送信する。ACC22は、その応答に応じて、ホスト計算機にライトデータの送信要求を送信し、受信したライトデータを、デバイスコントローラ23を介して物理記憶デバイス31に送信する。 The physical storage device 31 transmits a drive command response to the ACC 22. In response to the response, the ACC 22 transmits a write data transmission request to the host computer, and transmits the received write data to the physical storage device 31 via the device controller 23.
 物理記憶デバイス31は、ドライブコマンドに基づく物理記憶デバイス31の記憶領域にライトデータを格納する。物理記憶デバイス31は、ライト完了通知をACC22に送信する。ACC22は、ライト完了通知に応じた完了応答をホスト計算機に送信して、ライト処理を終了する。 The physical storage device 31 stores write data in the storage area of the physical storage device 31 based on the drive command. The physical storage device 31 transmits a write completion notification to the ACC 22. The ACC 22 transmits a completion response corresponding to the write completion notification to the host computer, and ends the write process.
 図5は、ライトコマンドの振分け処理500のフローチャートの一例である。 FIG. 5 is an example of a flowchart of a write command distribution process 500.
 FE24は、ホスト計算機から送信されたライトコマンドをテンポラリーキュー125に登録する。以下、対象となるライトコマンド(対象コマンド)の振分け処理500を説明する。 The FE 24 registers the write command transmitted from the host computer in the temporary queue 125. Hereinafter, the distribution process 500 of the target write command (target command) will be described.
 ACC22は、テンポラリーキュー125の先頭のライトコマンドである対象コマンドを取得する(S501)。そして、ACC22は、対象コマンドを解析し(S503)、宛先の論理アドレスを取得する。 The ACC 22 acquires the target command that is the first write command of the temporary queue 125 (S501). Then, the ACC 22 analyzes the target command (S503) and obtains the destination logical address.
 次いで、ACC22は、アドレス変換テーブル121を参照し(S505)、宛先の論理アドレスがアドレス変換テーブル121に登録されているか否かを判定する(S507)。 Next, the ACC 22 refers to the address conversion table 121 (S505), and determines whether or not the destination logical address is registered in the address conversion table 121 (S507).
 判定の結果、宛先の論理アドレスがアドレス変換テーブル121に登録されている場合(S507;Yes)、ACC22は、宛先の論理アドレスに対応する物理記憶デバイス31のアドレス(ドライブ番号及びドライブ内LBA、以下同様)を指定したドライブコマンドを生成し(S511)、当該ドライブコマンドを物理記憶デバイス31に送信する(S513)。なお、物理記憶デバイス31は、上述の通り、ドライブコマンドに基づくライトデータを取得して物理ボリュームの対応する記憶領域に格納する。 As a result of the determination, when the destination logical address is registered in the address conversion table 121 (S507; Yes), the ACC 22 determines the address of the physical storage device 31 corresponding to the destination logical address (drive number and in-drive LBA, below). (Similar) is generated (S511), and the drive command is transmitted to the physical storage device 31 (S513). As described above, the physical storage device 31 acquires write data based on the drive command and stores it in the corresponding storage area of the physical volume.
 一方、判定の結果、宛先の論理アドレスがアドレス変換テーブル121に登録されていない場合(S507;No)、ACC22は、対象コマンドをメモリ12内のマイクロ依頼キュー123に登録する(S509)。 On the other hand, as a result of the determination, if the destination logical address is not registered in the address conversion table 121 (S507; No), the ACC 22 registers the target command in the micro request queue 123 in the memory 12 (S509).
 その後、プロセッサ11は、マイクロ依頼キュー123から対象コマンドを取得し(S521)、ライトコマンドのライトスルー判定処理700を実行する。ライトスルー判定処理700によれば、プロセッサ11が取得したライトコマンドが再度自身かACC22かに振り分けられる。ライトスルー判定処理700について、詳細は後述する。 After that, the processor 11 acquires the target command from the micro request queue 123 (S521), and executes the write-through determination process 700 for the write command. According to the write-through determination processing 700, the write command acquired by the processor 11 is assigned to itself or the ACC 22 again. Details of the write-through determination processing 700 will be described later.
 振分け処理500により、ストレージ装置へのライト処理を、プロセッサ11とACC22とが分担して行うことができる。具体的には、ストレージ特有の操作を行わない論理ボリュームについては、予めその論理アドレスをアドレス変換テーブル121に登録しておくことで、アドレス変換テーブル121に登録された論理アドレス宛のライトコマンドについては、受信したACC22がライト処理を実行できる。 By the distribution process 500, the processor 11 and the ACC 22 can share the write process to the storage device. Specifically, for a logical volume that does not perform storage-specific operations, its logical address is registered in the address conversion table 121 in advance, so that a write command addressed to the logical address registered in the address conversion table 121 can be obtained. The received ACC 22 can execute the write process.
 また、アドレス変換テーブル121に登録されていない論理アドレス宛の対象コマンドについては、ACC22が対象コマンドをマイクロ依頼キュー123に登録することで、プロセッサに対象コマンドの判定(後述のライトスルー判定)を依頼することができる。これにより、ストレージ特有の操作を行う論理ボリュームかどうかに応じて、ライト処理を行う主体を振り分けることができる。 For the target command addressed to the logical address that is not registered in the address conversion table 121, the ACC 22 registers the target command in the micro request queue 123 to request the processor to determine the target command (write-through determination described later). can do. As a result, it is possible to assign the subject that performs the write process depending on whether or not the logical volume is a storage-specific operation.
 特に、物理記憶デバイス31が、SSD等の不揮発性半導体など高速なデバイスの場合、プロセッサ11の処理がボトルネックとなる場合がある。従って、このような高速な物理記憶デバイス31へのライト処理について、その一部をACC22が分担することで、コントローラ10、20の負荷を効率よく分散する事ができる。 In particular, when the physical storage device 31 is a high-speed device such as a nonvolatile semiconductor such as SSD, the processing of the processor 11 may become a bottleneck. Accordingly, the load of the controllers 10 and 20 can be efficiently distributed by sharing a part of such high-speed write processing to the physical storage device 31 by the ACC 22.
 次に、ライトスルー判定処理700を説明する。ライトスルー判定処理700は、マイクロ依頼キュー123に登録されたライトコマンドに対して、プロセッサ11が行う処理である。本実施例でいうライトスルーとは、受信したライトデータを、一旦キャッシュ領域127に記憶することなく物理記憶デバイス31に格納することである。ACC22によるライト処理は、ライトスルーとなる。一方、プロセッサ11によるライト処理は、受信したライトデータが一旦キャッシュ領域127に格納されるため、ライトスルーとはならない。ライトスルー判定処理700では、マイクロ依頼キュー123から取得したライトコマンドに基づくライト処理について、ライトスルーすべきかどうかが判定される。 Next, the write-through determination process 700 will be described. The write-through determination process 700 is a process performed by the processor 11 for the write command registered in the micro request queue 123. The write-through in this embodiment is to store the received write data in the physical storage device 31 without temporarily storing it in the cache area 127. Write processing by the ACC 22 is write-through. On the other hand, the write processing by the processor 11 is not write-through because the received write data is temporarily stored in the cache area 127. In the write-through determination processing 700, it is determined whether or not the write-through should be performed for the write processing based on the write command acquired from the micro request queue 123.
 図9は、ライトスルー判定処理700のフローチャートの一例を示す。 FIG. 9 shows an example of a flowchart of the write-through determination process 700.
 以下では、前述の振分け処理500によってマイクロ依頼キュー123に登録された対象コマンドに対するライトスルー判定処理を説明する。 Hereinafter, the write-through determination process for the target command registered in the micro request queue 123 by the distribution process 500 will be described.
 プロセッサ11は、マイクロ依頼キュー123から対象コマンドを取得する(S701)。プロセッサ11は、キャッシュ領域127の負荷を取得する(S703)。 The processor 11 acquires the target command from the micro request queue 123 (S701). The processor 11 acquires the load of the cache area 127 (S703).
 キャッシュ領域127の負荷としては、例えば、キャッシュ領域の使用率やIOPS(Input or Output per second)が適用される。しかしこれらに限定されない。 As the load of the cache area 127, for example, the usage rate of the cache area or IOPS (Input or Output per second) is applied. However, it is not limited to these.
 プロセッサ11は、取得した負荷が、予め設定された閾値よりも高いか否かを判定する(S705)。 The processor 11 determines whether or not the acquired load is higher than a preset threshold value (S705).
 取得した負荷が閾値以下の場合(S705;No)、現状の負荷状況はライトスルーの必要がないことを意味する。この場合、プロセッサ11は、ライトスルー判定処理を終了し、対象コマンドに対して第1ライト処理を行う(S720)。具体的には、プロセッサ11は、対象コマンドに基づくライトデータを取得し、特定したキャッシュ領域に記憶し、ホスト計算機に対して当該ライト処理の完了通知を送信する。その後、プロセッサ11は、キャッシュ領域127内のライトデータを、デバイスコントローラ23を介して物理記憶デバイス31に送信する。第1ライト処理の詳細は、後述する。 When the acquired load is equal to or less than the threshold (S705; No), the current load status means that there is no need for write-through. In this case, the processor 11 ends the write-through determination process and performs the first write process for the target command (S720). Specifically, the processor 11 acquires write data based on the target command, stores it in the specified cache area, and transmits a notification of completion of the write process to the host computer. Thereafter, the processor 11 transmits the write data in the cache area 127 to the physical storage device 31 via the device controller 23. Details of the first write process will be described later.
 一方、取得した負荷が閾値よりも高い場合(S705;Yes)、現状の負荷状況はライトスルーを実行したほうが適切であることを意味する。この場合、プロセッサ11は、対象コマンドに対して再オフロード処理を行う(S730)。再オフロード処理については、後述する。 On the other hand, when the acquired load is higher than the threshold (S705; Yes), it means that it is more appropriate to execute the write-through in the current load status. In this case, the processor 11 performs re-offload processing on the target command (S730). The re-offload process will be described later.
 ライトスルー判定処理700により、プロセッサ11は、マイクロ依頼キュー123から取得したライトコマンドのライト処理を、自身で実行したほうがよいか、ACC22に行わせた方がよいかを判定できる。 The write-through determination processing 700 allows the processor 11 to determine whether it is better to execute the write processing of the write command acquired from the micro request queue 123 or to let the ACC 22 perform it.
 ライト処理をプロセッサ11が行う場合、プロセッサ11は、ライトデータをキャッシュ領域127に一旦記憶する(キャッシング)必要がある。ライトスルー判定処理では、キャシュ領域の負荷等を考慮することにより、対象のライトデータをキャッシングによって遅延する可能性があるか否かを判定できる。 When the processor 11 performs the write process, the processor 11 needs to temporarily store the write data in the cache area 127 (caching). In the write-through determination process, it is possible to determine whether or not there is a possibility that the target write data is delayed by caching by considering the load on the cache area.
 キャッシュ領域127の負荷が高い場合、キャッシングによりプロセッサ11側のライト処理を遅延させる可能性がある。すると、プロセッサ11がライト処理を行うメリット(つまり、キャッシングしたライトデータを非同期で物理記憶デバイスに書き込むことにより(ライトアフター)、ホストへの応答時間を短縮できるというメリット)を相殺する可能性がある。 If the load on the cache area 127 is high, the write processing on the processor 11 side may be delayed due to caching. Then, there is a possibility that the advantage of the processor 11 performing the write process (that is, the advantage that the response time to the host can be shortened by asynchronously writing the cached write data to the physical storage device (write after)) may be offset. .
 具体的には、キャッシュ領域の負荷が高ければ、キャッシュ領域が空くまで待ち時間が生じる可能性があり、ライトコマンドに対するホストへの応答時間を増大させる可能性がある。特に、ライトデータの格納先がフラッシュドライブの場合には、HDDに比べて高速なライトが可能となる。このため、キャッシュ領域の空き待ち時間を考慮すると、キャッシュりょいいの負荷が高い場合にはライトアフターよりもライトスルーの方がホストへの応答時間を小さくできる可能性がある。 Specifically, if the load on the cache area is high, a waiting time may occur until the cache area becomes free, which may increase the response time to the host for the write command. In particular, when the storage location of the write data is a flash drive, writing can be performed at a higher speed compared to the HDD. For this reason, in consideration of the waiting time for the free space in the cache area, there is a possibility that the response time to the host can be made shorter in the write-through mode than in the write-after mode when the cache load is high.
 図10は、第1ライト処理のフローチャートの一例を示す。 FIG. 10 shows an example of a flowchart of the first write process.
 この処理は、図9のS720の処理である。プロセッサ11は、対象コマンドを受信した際のフロントエンドジョブ(FE JOB)として、S1001~S1007の処理を行い、バックエンドジョブ(BE JOB)として、S1010~S1019の処理を行う。 This process is the process of S720 in FIG. The processor 11 performs the processing of S1001 to S1007 as the front-end job (FE JOB) when the target command is received, and performs the processing of S1010 to S1019 as the back-end job (BE JOB).
 フロントエンドジョブを説明する。なお、ストレージ装置特有の機能として、TP機能が用いられる場合がある。この場合、ライトコマンドで指定される論理ボリュームは、仮想論理ボリュームの一例としてのTP-VOLである。TP-VOLについては、後述する。 Explain front-end jobs. Note that the TP function may be used as a function unique to the storage apparatus. In this case, the logical volume specified by the write command is TP-VOL as an example of the virtual logical volume. The TP-VOL will be described later.
 プロセッサ11は、対象コマンドがTP-VOLへのライトコマンドか否かを解析し、判定する(S1001)。対象コマンドがTP-VOL81に対するライトコマンド以外のコマンドである場合(S1001;No)、プロセッサ11はS1005に処理を進める。一方、対象コマンドがTP-VOL81に対するライトコマンドの場合(S1001;Yes)、プロセッサ11は、対象コマンドで指定された論理ボリュームの論理アドレス(対象論理アドレス)が、後述のマッピング情報にすでに登録されているか否かを判定する(S1002)。 The processor 11 analyzes and determines whether the target command is a write command to the TP-VOL (S1001). If the target command is a command other than a write command for the TP-VOL 81 (S1001; No), the processor 11 advances the process to S1005. On the other hand, if the target command is a write command for TP-VOL 81 (S1001; Yes), the processor 11 has already registered the logical address (target logical address) of the logical volume specified by the target command in the mapping information described later. It is determined whether or not (S1002).
 対象論理アドレスがマッピング情報に未だ登録されていない場合(S1002;No)、プロセッサ11は、マッピング情報作成処理を実行する(S1004)。例えば、プロセッサ11は、対象コマンドで指定された論理ボリュームの論理アドレスに対応する物理ボリューム85のボリュームアドレスを取得し、これらを対応づけるマッピング情報を作成して、メモリ12に記憶する。次いで、プロセッサ11は、S1005に処理を進める。 When the target logical address is not yet registered in the mapping information (S1002; No), the processor 11 executes a mapping information creation process (S1004). For example, the processor 11 acquires the volume address of the physical volume 85 corresponding to the logical address of the logical volume specified by the target command, creates mapping information for associating these, and stores it in the memory 12. Next, the processor 11 advances the process to S1005.
 一方、対象論理アドレスがマッピング情報に登録されている場合(S1002;Yes)、プロセッサ11は、マッピング情報を検索し、対象コマンドで指定された論理アドレスに対応するキャッシュ領域を特定する(S1003)。 On the other hand, when the target logical address is registered in the mapping information (S1002; Yes), the processor 11 searches the mapping information and identifies the cache area corresponding to the logical address specified by the target command (S1003).
 プロセッサ11は、対象論理アドレスに対応するキャシュ領域を確保する(S1005)。そして、プロセッサ11は、対象コマンドに基づく対象のライトデータ(対象データ)の送信要求をホスト計算機に送信する。 The processor 11 secures a cache area corresponding to the target logical address (S1005). Then, the processor 11 transmits a transmission request for the target write data (target data) based on the target command to the host computer.
 プロセッサ11は、ホスト計算機からFE24が受信した対象データを取得し、確保したキャッシュ領域に転送する(S1006)。プロセッサ11は、対象データに対して、未だ物理記憶デバイス31に書き込まれていないデータ(ダーティデータ)であることを意味する旨のフラグを設定する。次いで、プロセッサ11は、ライト処理の完了通知をホスト計算機に送信し(S1007)、ライト処理を終了する。 The processor 11 acquires the target data received by the FE 24 from the host computer and transfers it to the secured cache area (S1006). The processor 11 sets a flag indicating that the target data is data (dirty data) that has not yet been written to the physical storage device 31. Next, the processor 11 transmits a write process completion notification to the host computer (S1007), and ends the write process.
 バックエンドジョブを説明する。バックエンドジョブは、フロンドエンドジョブとは非同期に行われる。プロセッサ11は、フラグに基づき、キャッシュ領域内の対象データを取得する(S1010)。そして、プロセッサ11は、対象データがTP―VOL81に格納されたデータか、実論理ボリュームに格納されたデータかを判定する(S1013)。 Explain back-end jobs. The back end job is performed asynchronously with the front end job. The processor 11 acquires the target data in the cache area based on the flag (S1010). Then, the processor 11 determines whether the target data is data stored in the TP-VOL 81 or data stored in the real logical volume (S1013).
 実論理ボリュームの場合(S1013;No)、プロセッサ11は、対象コマンドで指定された論理ボリュームの論理アドレスに対応する物理記憶デバイス31のアドレスを取得し、S1017に処理を進める。一方、対象データがTP-VOL81の場合(S1013;Yes)、プロセッサ11は、メモリ12内のマッピング情報を検索することで、物理ボリューム85のアドレスを取得し、さらに取得したアドレスから宛先の物理記憶デバイス31のアドレスを取得する(S1015)。 In the case of a real logical volume (S1013; No), the processor 11 acquires the address of the physical storage device 31 corresponding to the logical address of the logical volume specified by the target command, and advances the processing to S1017. On the other hand, when the target data is TP-VOL 81 (S1013; Yes), the processor 11 retrieves the mapping information in the memory 12 to obtain the address of the physical volume 85, and further stores the physical storage of the destination from the obtained address. The address of the device 31 is acquired (S1015).
 プロセッサ11は、取得した物理記憶デバイス31のアドレスに基づき、ドライブコマンドを生成して、宛先の物理記憶デバイス31に送信する(S1017)。そして、プロセッサ11は、対象データのフラグを、既に物理ボリュームに書き込まれたデータ(クリーンデータ)であることを意味する旨のフラグに変更する。 The processor 11 generates a drive command based on the acquired address of the physical storage device 31 and transmits it to the destination physical storage device 31 (S1017). Then, the processor 11 changes the flag of the target data to a flag indicating that the data is already written in the physical volume (clean data).
 上記処理では、プロセッサ11が、ライトコマンドを受信したときにマッピング情報を作成する。これにより、TP-VOL85のような複雑なアドレス変換を伴うボリュームへのライト処理であっても、ライトコマンドと非同期で行われるバックエンド処理で、マッピング情報によりボリュームアドレスを取得できる。これにより、宛先のアドレスを指定したドライブコマンドを物理記憶デバイス31に送信することができる。 In the above process, the processor 11 creates mapping information when it receives a write command. As a result, even in the case of a write process to a volume with complicated address conversion such as TP-VOL85, the volume address can be acquired from the mapping information by the back-end process performed asynchronously with the write command. As a result, the drive command designating the destination address can be transmitted to the physical storage device 31.
 上記処理により、対象コマンドが、テンポラリーキュー125に登録され、ACC22が、対象コマンドを取得し解析することで、ACC22又はプロセッサ11に続く処理を振り分けることで、第1及び第2コントローラにかかる負荷を分散できる。 Through the above processing, the target command is registered in the temporary queue 125, and the ACC 22 acquires and analyzes the target command, thereby allocating the processing following the ACC 22 or the processor 11, thereby reducing the load on the first and second controllers. Can be distributed.
 図7は、TP機能を有するストレージ装置のボリューム構成を説明する図である。 FIG. 7 is a diagram for explaining a volume configuration of a storage apparatus having a TP function.
 このストレージ装置は、TP-VOL81、プール83及び物理ボリューム85を管理している。物理ボリューム85は、1又は複数の物理記憶デバイス31に基づく論理的なボリュームである。プール83には、物理ボリューム85が複数登録可能である。登録された物理ボリューム85の容量の合計が、プール83の合計容量となる。 This storage device manages the TP-VOL 81, the pool 83, and the physical volume 85. The physical volume 85 is a logical volume based on one or more physical storage devices 31. A plurality of physical volumes 85 can be registered in the pool 83. The total capacity of the registered physical volumes 85 becomes the total capacity of the pool 83.
 物理ボリューム85をプール83に登録することで、ライト処理が可能となる。物理ボリューム85の登録は、物理ボリューム85の記憶領域を、プール83の未割当ての記憶領域にそれぞれ割り当てることで行われる。 By registering the physical volume 85 in the pool 83, write processing can be performed. The registration of the physical volume 85 is performed by allocating the storage area of the physical volume 85 to the unallocated storage area of the pool 83, respectively.
 実論理ボリュームの場合、その容量は、実論理ボリュームに対応する物理ボリュームの容量(ひいては、その基となる物理記憶デバイス31の容量)に依存するが、TP-VOL81の場合、その容量は、物理ボリューム85の容量に依存せずに自由に設定できるという利点がある。 In the case of a real logical volume, the capacity depends on the capacity of the physical volume corresponding to the real logical volume (and hence the capacity of the physical storage device 31 that is the basis), but in the case of the TP-VOL 81, the capacity is the physical volume. There is an advantage that it can be set freely without depending on the capacity of the volume 85.
 しかし、それ故にTP-VOL81の記憶領域と物理ボリューム85の記憶領域とを、予め対応づけておくことはできない。従って、物理ボリューム85のもととなる物理記憶デバイス31のアドレスとTP―VOl81の論理アドレスの対応づけをアドレス変換テーブル121に予め登録しておくこともできない。このため、ライト処理に際しては、マッピング情報作成処理が必要となる。 However, therefore, the storage area of the TP-VOL 81 and the storage area of the physical volume 85 cannot be associated in advance. Accordingly, the correspondence between the address of the physical storage device 31 that is the source of the physical volume 85 and the logical address of the TP-VOL 81 cannot be registered in the address conversion table 121 in advance. For this reason, mapping information creation processing is required for the write processing.
 図8は、マッピング情報作成処理を説明する図である。 FIG. 8 is a diagram for explaining the mapping information creation process.
 マッピング情報作成処理は、前述のライトスルー判定において、プロセッサ11が、ライト処理をACC22に実行させる場合の前処理として行われる処理である(図9のS707参照)。なお、マッピング情報作成処理及びマッピング情報の検索は、第1ライト処理にも含まれる処理である。 The mapping information creation process is a process performed as a pre-process when the processor 11 causes the ACC 22 to execute the write process in the above-described write-through determination (see S707 in FIG. 9). The mapping information creation process and the mapping information search are processes included in the first write process.
 以下、マッピング情報作成処理を説明する。各ボリューム(TP-VOL81、プール83及び物理ボリューム85)の記憶領域は、例えば、ページ単位で管理されている(図示なし)。例えば、各ボリュームのページを同容量で管理することで、記憶領域の管理が容易となる。しかし、各ボリュームのページは、それぞれの対応付けが可能であれば、互いに同じサイズで管理されていなくてもよい。 The mapping information creation process is described below. The storage area of each volume (TP-VOL 81, pool 83, and physical volume 85) is managed, for example, in units of pages (not shown). For example, storage areas can be easily managed by managing pages of each volume with the same capacity. However, the pages of each volume need not be managed with the same size as long as they can be associated with each other.
 マッピング情報作成処理は、ライト対象のTP-VOL81のページと、物理ボリューム85のページと、を対応づけたマッピング情報を作成する処理である。プロセッサ11は、作成したマッピング情報をメモリ12に記憶する。具体的には、プロセッサ11は、ライト対象のTP-VOL81のページと、プール83の空きページと(図示なし)の対応づけを行う。ここでいう空きページは、物理ボリューム85のページに既に割り当てられているページであって、TP-VOL81のページには対応づけられていないページである。ライト対象のTP-VOL81のページとプール83のページとが対応づけられることで、ライト対象のTP-VOL81のページと、物理ボリューム85のページとが対応づけられる。 The mapping information creation process is a process for creating mapping information in which a write target TP-VOL 81 page and a physical volume 85 page are associated with each other. The processor 11 stores the created mapping information in the memory 12. Specifically, the processor 11 associates the page of the write target TP-VOL 81 with the empty page of the pool 83 (not shown). The empty page here is a page that is already assigned to the page of the physical volume 85 and is not associated with the page of the TP-VOL 81. By associating the write target TP-VOL 81 page with the pool 83 page, the write target TP-VOL 81 page and the physical volume 85 page are associated with each other.
 ライト対象のTP-VOL81の各ページに、データ「A」、「B」、「C」及び「D」をライトするに際し、プロセッサ11は、マッピング情報作成処理として、TP-VOL81の各ページに対して、プールの各ページをそれぞれ割り当てることで、これらに対応する物理ボリューム85の各ページをTP-VOL81の各ページに対応づけることができる。マッピング情報作成処理の後、TP-VOL81の各ページに対応づけられた物理ボリューム85のページに、データ「A」、「B」、「C」及び「D」がそれぞれ格納される。 When writing the data “A”, “B”, “C”, and “D” to each page of the TP-VOL 81 to be written, the processor 11 performs mapping information creation processing on each page of the TP-VOL 81. Thus, by assigning each page of the pool, each page of the physical volume 85 corresponding to each page can be associated with each page of the TP-VOL 81. After the mapping information creation processing, data “A”, “B”, “C”, and “D” are stored in the pages of the physical volume 85 that are associated with the pages of the TP-VOL 81, respectively.
 図6は、再オフロード処理の概要を説明する図である。 FIG. 6 is a diagram for explaining the outline of the re-offload process.
 再オフロード処理は、前述の通り、ライト判定処理において、プロセッサ11がキャッシュ領域の負荷を予め設定された閾値よりも高いと判定した場合に行われる。 As described above, the re-offload process is performed when the processor 11 determines that the load on the cache area is higher than a preset threshold value in the write determination process.
 再オフロード処理において、プロセッサ11は、ACC22にライト処理を実行させるための前処理を行う(図中(1)-1;前処理)。ライト対象がTP-VOLの場合、この前処理は、対象コマンドで指定された論理アドレスに対応する物理ボリュームのボリュームアドレスを取得する処理である。この前処理は、図10のマッピング情報作成処理とマッピング情報検索処理を使用して、図14に記載のフローで実現でき、キャッシュ負荷によらず処理時間は一定で、ごく短時間で処理が可能である。 In the re-offload processing, the processor 11 performs preprocessing for causing the ACC 22 to execute write processing ((1) -1; preprocessing in the figure). When the write target is TP-VOL, this pre-processing is processing for acquiring the volume address of the physical volume corresponding to the logical address specified by the target command. This pre-processing can be realized by the flow shown in FIG. 14 by using the mapping information creation processing and mapping information search processing of FIG. 10, and the processing time is constant regardless of the cache load and can be processed in a very short time. It is.
 次いで、プロセッサ11は、宛先の論理アドレスと取得したアドレスとの対応付けをアドレス変換テーブル121に登録する(図中(1)-2;アドレス変換テーブル更新)。次いで、プロセッサ11は、対象コマンドをテンポラリーキュー125に登録する(図中(1)-3;対象コマンド再登録)。 Next, the processor 11 registers the correspondence between the destination logical address and the acquired address in the address conversion table 121 ((1) -2 in the figure; address conversion table update). Next, the processor 11 registers the target command in the temporary queue 125 ((1) -3 in the figure; target command re-registration).
 上記の再オフロード処理により、ACC22がテンポラリーキュー125から対象コマンドを取得したときに(図中(2))、対象コマンドに対する振分け処理500が再度実行される。この際、アドレス変換テーブル121には、対象コマンドの宛先の論理アドレスが登録されている。つまり、宛先の論理アドレスと物理記憶デバイス31のアドレスとの対応づけが登録されているを意味するので、ACC22は、振分け処理により、対象コマンドに対するライト処理を自身で実行できる。従って、ACC22が、対象コマンドに対応するライトデータの格納指示を物理記憶デバイス31に送信することとなる(図中(3);ライトデータ格納指示)。 When the ACC 22 acquires the target command from the temporary queue 125 by the re-offload process described above ((2) in the figure), the distribution process 500 for the target command is executed again. At this time, the destination logical address of the target command is registered in the address conversion table 121. That is, since the correspondence between the logical address of the destination and the address of the physical storage device 31 is registered, the ACC 22 can execute the write process for the target command by the distribution process. Accordingly, the ACC 22 transmits a write data storage instruction corresponding to the target command to the physical storage device 31 ((3) in the figure; write data storage instruction).
 対象コマンドの宛先の論理アドレスがアドレス変換テーブル121登録されていない場合、つまり、TP-VOLのようなストレージ特有の操作が必要なボリュームに対するライト処理であっても、再オフロード処理により、ライト処理の一部をACC22に実行させることが可能となる。つまり、プロセッサ11が宛先の論理アドレスをアドレス変換テーブルに登録し、かつ、対象コマンドをテンポラリーキュー125に再び登録することで、ACC22が再び対象コマンドを実行できる。再オフロード処理は、キャッシュ領域の負荷によらず処理時間が一定で、かつ比較的短時間で済む処理である。この再オフロード処理により、ライト処理をACC22に実行させることが可能となる。 Even when the logical address of the destination of the target command is not registered in the address conversion table 121, that is, even for write processing for a volume that requires storage-specific operations such as TP-VOL, write processing is performed by re-offload processing. It is possible to cause the ACC 22 to execute a part of That is, the processor 11 registers the destination logical address in the address conversion table and registers the target command in the temporary queue 125 again, so that the ACC 22 can execute the target command again. The re-offload process is a process that has a constant processing time and a relatively short time regardless of the load on the cache area. With this re-offload process, the write process can be executed by the ACC 22.
 再オフロード処理により、キャシュ領域にかかる負荷の低減及びキャッシュ領域の負荷が高いことによる対象コマンドのホスト応答時間の増加を防ぐことができる。また、キャッシュ領域の負荷のようなシステムの現在の状態をもとに、動的に再オフロード要否を判定し、その時点での最適なルートで、ライト処理が行える。 The re-offload process can reduce the load on the cache area and prevent the host response time of the target command from increasing due to the high load on the cache area. Further, it is possible to dynamically determine whether or not re-offload is necessary based on the current state of the system such as the load on the cache area, and write processing can be performed with the optimum route at that time.
 図14は、再オフロード処理のフローチャートの一例である。 FIG. 14 is an example of a flowchart of the re-offload process.
 プロセッサ11は、対象コマンドがTP-VOLへのライトコマンドか否かを解析し、判定する(S1401)。 The processor 11 analyzes and determines whether or not the target command is a write command to the TP-VOL (S1401).
 対象コマンドがTP-VOL81に対するライトコマンド以外のコマンドである場合(S1401;No)、プロセッサ11はS1409に処理を進める。一方、対象コマンドがTP-VOL81に対するライトコマンドの場合(S1401;Yes)、プロセッサ11は、対象コマンドで指定された論理ボリュームの論理アドレス(対象論理アドレス)が、マッピング情報にすでに登録されているか否かを判定する(S1403)。 When the target command is a command other than the write command for the TP-VOL 81 (S1401; No), the processor 11 advances the process to S1409. On the other hand, when the target command is a write command for the TP-VOL 81 (S1401; Yes), the processor 11 determines whether or not the logical address (target logical address) of the logical volume specified by the target command has already been registered in the mapping information. Is determined (S1403).
 対象論理アドレスがマッピング情報に未だ登録されていない場合(S1403;No)、プロセッサ11は、マッピング情報作成処理を実行する(S1405)。例えば、プロセッサ11は、対象コマンドで指定された論理ボリュームの論理アドレスに対応する物理ボリューム85のボリュームアドレスを取得し、取得したボリュームアドレスから、物理記憶デバイス31のアドレスを取得する。そして、プロセッサ11は、これらを対応づけるマッピング情報を作成して、メモリ12に記憶する。次いで、プロセッサ11は、S1409に処理を進める。 When the target logical address is not yet registered in the mapping information (S1403; No), the processor 11 executes a mapping information creation process (S1405). For example, the processor 11 acquires the volume address of the physical volume 85 corresponding to the logical address of the logical volume specified by the target command, and acquires the address of the physical storage device 31 from the acquired volume address. Then, the processor 11 creates mapping information for associating these, and stores them in the memory 12. Next, the processor 11 advances the process to S1409.
 一方、対象論理アドレスがマッピング情報に登録されている場合(S1403;Yes)、プロセッサ11は、マッピング情報を検索し、対象コマンドで指定された論理アドレスに対応するキャッシュ領域を特定する(S1407)。次いで、プロセッサ11は、S1409に処理を進める。 On the other hand, when the target logical address is registered in the mapping information (S1403; Yes), the processor 11 searches the mapping information and specifies the cache area corresponding to the logical address specified by the target command (S1407). Next, the processor 11 advances the process to S1409.
 プロセッサ11は、論理ボリュームの論理アドレス及び物理記憶デバイス31のアドレスの対応づけをアドレス変換テーブル121に登録することで、アドレス変換テーブル121を更新する(S1409)。次いで、プロセッサ11は、対象コマンドをテンポラリーキュー125に再登録して(S1411)、処理を終了する。 The processor 11 updates the address conversion table 121 by registering the correspondence between the logical address of the logical volume and the address of the physical storage device 31 in the address conversion table 121 (S1409). Next, the processor 11 re-registers the target command in the temporary queue 125 (S1411), and ends the process.
 再オフロード処理により、ライト処理において、対象コマンドで指定された論理ボリューム(TP-VOL81)の論理アドレスに対応する物理ボリューム85のボリュームアドレスを取得できる。つまり、プロセッサ11は、取得したボリュームアドレスから物理記憶デバイス31のアドレスを取得し、TP-VOL81の論理アドレスと物理記憶デバイス31のアドレスとの対応づけをアドレス変換テーブルに登録することで、対象コマンドが、TP-VOL81に対するライトコマンドであっても、指定された論理ボリュームの論理アドレスに対するライト処理を、ACC22に実行させることができる。 By the re-offload process, the volume address of the physical volume 85 corresponding to the logical address of the logical volume (TP-VOL 81) specified by the target command can be acquired in the write process. That is, the processor 11 acquires the address of the physical storage device 31 from the acquired volume address, and registers the correspondence between the logical address of the TP-VOL 81 and the address of the physical storage device 31 in the address conversion table, so that the target command However, even if it is a write command for the TP-VOL 81, the ACC 22 can execute the write process for the logical address of the designated logical volume.
 また、プロセッサ11が対象コマンドをテンポラリーキュー125に再登録することで、再びACC22によって振分け処理が行われる。これにより、対象コマンドのライト処理に関して、プロセッサ11は、ACC22にその処理を実行させることができ、当該キャシュ領域にかかるの負荷を低減することができる。  Further, when the processor 11 re-registers the target command in the temporary queue 125, the distribution processing is performed again by the ACC 22. Thereby, regarding the write process of the target command, the processor 11 can cause the ACC 22 to execute the process, and can reduce the load on the cache area. *
 各処理の分担を図13に示す。ライトコマンドで指定された論理アドレスが、アドレス変換テーブル121に登録されている場合、ライト処理は、ACC22が行う。アドレス変換テーブル121に登録されている論理アドレスは、通常、ストレージ装置の特有の操作を必要としない論理ボリュームの論理アドレスである。このような場合には、ACC22自身がその処理を行うことができる。具体的には、ACC22がドライブコマンドを生成し、SASコントローラ23に送信する。なお、宛先の物理記憶デバイス31がRAIDグループを構成要素である場合、ライトデータを当該物理記憶デバイス31に書き込むことで、そのライトデータを含むパリティグループのパリティデータを更新する必要がある。この、パリティデータの生成は、ACC22が行う。 The sharing of each process is shown in FIG. When the logical address specified by the write command is registered in the address conversion table 121, the write processing is performed by the ACC 22. The logical address registered in the address conversion table 121 is usually a logical address of a logical volume that does not require a specific operation of the storage apparatus. In such a case, the ACC 22 itself can perform the process. Specifically, the ACC 22 generates a drive command and transmits it to the SAS controller 23. When the destination physical storage device 31 is a component of a RAID group, it is necessary to update the parity data of the parity group including the write data by writing the write data to the physical storage device 31. This generation of parity data is performed by the ACC 22.
 また、ライトコマンドで指定された論理アドレスが、アドレス変換テーブル121に登録されていない場合、原則として、ライト処理はプロセッサ11が行う。アドレス変換テーブル121に登録されていない論理アドレスは、通常、ストレージ装置の特有の操作を必要とする論理ボリュームの論理アドレスである。このように、ライト処理に関して複雑な操作を必要とする場合には、ACC22は、テンポラリーキュー125と異なるマイクロ依頼キュー123にライトコマンドを登録することで、プロセッサ11にその処理を依頼することができる。具体的には、プロセッサ11がドライブコマンドを生成し、宛先の物理記憶デバイス31に送信する。なお、パリティデータの生成は、プロセッサ11が行う。 If the logical address specified by the write command is not registered in the address conversion table 121, the processor 11 performs the write process in principle. A logical address that is not registered in the address conversion table 121 is usually a logical address of a logical volume that requires a specific operation of the storage apparatus. As described above, when a complicated operation is required for the write process, the ACC 22 can request the processor 11 to perform the process by registering the write command in the micro request queue 123 different from the temporary queue 125. . Specifically, the processor 11 generates a drive command and transmits it to the destination physical storage device 31. The parity data is generated by the processor 11.
 プロセッサ11は、マイクロ依頼キュー123から取得したライトコマンドに対して、ライトスルー判定処理を行うことができる。ライトコマンドで指定された論理アドレスに対応するキャシュ領域の負荷が閾値よりも高い場合には、プロセッサ11は当該論理アドレスに対応する物理ボリュームのアドレスを取得しアドレス変換テーブル121に登録し、当該ライトコマンドを再度テンポラリーキュー125に登録する。これにより、プロセッサ11は、当該ライトコマンドに対するライト処理を再度ACC22に依頼できる。具体的には、ACC22がドライブコマンドを生成し、物理記憶デバイス31に送信する。なお、パリティデータの生成は、ACC22が行うものであるが、物理記憶デバイス31が行ってもよい。 The processor 11 can perform a write-through determination process on the write command acquired from the micro request queue 123. If the load on the cache area corresponding to the logical address specified by the write command is higher than the threshold, the processor 11 acquires the address of the physical volume corresponding to the logical address, registers it in the address conversion table 121, and writes the write address. The command is registered in the temporary queue 125 again. As a result, the processor 11 can request the ACC 22 to perform a write process for the write command again. Specifically, the ACC 22 generates a drive command and transmits it to the physical storage device 31. The generation of parity data is performed by the ACC 22, but may be performed by the physical storage device 31.
 このようにすることで、ストレージ装置特有の操作が必要な論理ボリュームであっても、論理アドレスに対応する物理記憶デバイス31のアドレスを取得し、その対応づけをアドレス変換テーブルに登録するという、一部の処理をプロセッサ11が担うことで、ライト処理をACC22に依頼することができる。特に、キャシュ領域の使用率やIOPS等、キャッシュ領域の負荷が高い場合には、ACC22がライト処理を行うことにより、当該ライト処理でのホストの応答時間を低減できる。 In this way, even for a logical volume that requires operations specific to the storage apparatus, the address of the physical storage device 31 corresponding to the logical address is acquired, and the association is registered in the address conversion table. Since the processor 11 takes charge of the processing of the copy section, the write processing can be requested to the ACC 22. In particular, when the load of the cache area is high, such as the cache area usage rate or IOPS, the ACC 22 performs the write process, thereby reducing the host response time in the write process.
 特に、上記のようにTP-VOL等の仮想論理ボリュームの場合には、ライトコマンドの送信時に、プロセッサ11がマッピング情報を作成することによって、論理アドレスと物理ボリュームのアドレスの対応づけを行う。これにより、実論理ボリュームの場合と同様に、ボリュームアドレスから物理記憶デバイス31のアドレスを取得でき、TP-VOL81に対しても、ACC22がライト処理を行うことができる。 In particular, in the case of a virtual logical volume such as TP-VOL as described above, the processor 11 associates the logical address with the physical volume address by creating mapping information when a write command is transmitted. As a result, as in the case of the real logical volume, the address of the physical storage device 31 can be acquired from the volume address, and the ACC 22 can perform the write process on the TP-VOL 81 as well.
 なお、ライトスルー判定処理において、ライトコマンドで指定された論理アドレスに対応するキャッシュ領域の負荷が閾値以下の場合には、プロセッサ11がライト処理を行う(第1ライト処理)。このように、ライトデータをキャッシュ領域に記憶することが、そのライト処理の処理時間に影響を与えるものでない場合には、ライトコマンドを取得したプロセッサ11がライト処理を行うことで、スムースな処理がおこなわれる。 In the write-through determination process, when the load on the cache area corresponding to the logical address specified by the write command is equal to or less than the threshold, the processor 11 performs the write process (first write process). As described above, when storing the write data in the cache area does not affect the processing time of the write process, the processor 11 that has acquired the write command performs the write process, thereby performing a smooth process. It is carried out.
 また、キャッシュ領域の負荷として、プロセッサ11が測定しているキャシュ領域の使用率やIOPS等の情報を利用することで、この測定によりプロセッサ11にかかる負荷を低減できる。 Further, by using information such as a cache area usage rate and IOPS measured by the processor 11 as the load of the cache area, the load on the processor 11 can be reduced by this measurement.
 実施例2のライト処理(以下、第2ライト処理という。)を説明する。第2ライト処理は、第1ライト処理(図9のS720、図10参照)に代えてプロセッサ11が行う処理である。第2ライト処理は、ライトコマンドに対しシーケンシャル判定を行う。 A write process (hereinafter referred to as a second write process) according to the second embodiment will be described. The second write process is a process performed by the processor 11 instead of the first write process (see S720 in FIG. 9 and FIG. 10). In the second write process, sequential determination is performed on the write command.
 シーケンシャル判定は、プロセッサ11が取得したライトコマンドが、シーケンシャルアクセスされるデータのコマンドであるか否かを判定する。シーケンシャルアクセスされるデータとは、ホスト計算機から連続送信されて、物理ボリュームの連続する領域に格納されるデータである。例えば、この判定は、過去の統計情報をもとに判断するなどの周知の方法による。また、プロセッサ11は、シーケンシャルアクセスされるデータのライトコマンドと判定した場合、連続送信されるライトデータの合計のデータサイズを予測できる。 In the sequential determination, it is determined whether or not the write command acquired by the processor 11 is a command for data to be sequentially accessed. Sequentially accessed data is data that is continuously transmitted from the host computer and stored in a continuous area of the physical volume. For example, this determination is based on a known method such as determination based on past statistical information. When the processor 11 determines that the write command is for sequentially accessed data, the processor 11 can predict the total data size of write data that is continuously transmitted.
 図11は、第2ライト処理を説明する図である。フロントエンドジョブにおいて、プロセッサ11は、対象となるライトデータ(対象データ)の管理情報であるメタデータを生成して対象データに付与したデータセットを、対象データの論理アドレス(対象論理アドレス)に対応するキャッシュ領域に記憶する(図11の上側)。そして、プロセッサ11は、シーケンシャル判定を行う。対象データがシーケンシャルアクセスされるデータの場合には、プロセッサ11は、対象コマンドに続くライトコマンドで指定される論理アドレスを推定する。そして、プロセッサ11は、推定した論理アドレスに基づいて、対象データに続くライトデータに付与するメタデータ(追加メタデータ)を生成し、推定した論理アドレスに対応するキャッシュ領域に追加メタデータを記憶する(図11の下側)。その後、バックエンドジョブにおいて、プロセッサ11は、対象論理アドレス及び推定した論理アドレスに対応する物理記憶デバイス31のアドレスを指定したドライブコマンドを生成し、宛先の物理記憶デバイス31に送信する。 FIG. 11 is a diagram illustrating the second write process. In the front-end job, the processor 11 generates a metadata that is management information of the target write data (target data) and assigns the data set assigned to the target data to the logical address (target logical address) of the target data. Is stored in the cache area (upper side in FIG. 11). Then, the processor 11 performs sequential determination. If the target data is data that is sequentially accessed, the processor 11 estimates the logical address specified by the write command following the target command. Then, the processor 11 generates metadata (additional metadata) to be added to the write data following the target data based on the estimated logical address, and stores the additional metadata in the cache area corresponding to the estimated logical address. (Bottom of FIG. 11). Thereafter, in the back-end job, the processor 11 generates a drive command designating the target logical address and the address of the physical storage device 31 corresponding to the estimated logical address, and transmits the drive command to the destination physical storage device 31.
 対象コマンドに対する第2ライト処理により、物理記憶デバイス31は、対象データ及びメタデータのデータセットを格納することに加えて、これに連続する記憶領域に追加メタデータを予め記憶しておくことができる。第2ライト処理では、メタデータや追加メタデータの生成など、付加的な機能をプロセッサ11が負担する。このように、ACC22の機能を制限し、プロセッサ11と役割分担をすることで、ライト処理をより高速にできる。以下、対象コマンドに対する第2ライト処理を具体的に説明する。 By the second write process for the target command, the physical storage device 31 can store the target data and the metadata data set in addition to the additional metadata in a storage area continuous thereto. . In the second write process, the processor 11 bears additional functions such as generation of metadata and additional metadata. In this way, by limiting the function of the ACC 22 and sharing roles with the processor 11, the write process can be made faster. Hereinafter, the second write process for the target command will be specifically described.
 図12は、第2ライト処理のフローチャートの一例を示す。 FIG. 12 shows an example of a flowchart of the second write process.
 プロセッサ11は、フロントエンドジョブを実行する(S1201)。本実施例のフロントエンドジョブは、図10のS1001~S1007のステップに加え、対象データのメタデータ(対象メタデータ)を生成する。なお、フロントエンドジョブにおいて、プロセッサ11は、対象データに対象メタデータを付与したデータセットを、対象コマンドで指定された論理アドレス(対象論理アドレス)に対応するキャッシュ領域に記憶する。 The processor 11 executes a front-end job (S1201). The front-end job of the present embodiment generates target data metadata (target metadata) in addition to the steps S1001 to S1007 in FIG. In the front-end job, the processor 11 stores a data set obtained by adding the target metadata to the target data in a cache area corresponding to the logical address (target logical address) specified by the target command.
 プロセッサ11は、対象データがシーケンシャルアクセスされるデータであるか否かを判定する(S1205)。 The processor 11 determines whether or not the target data is data that is sequentially accessed (S1205).
 対象データがシーケンシャルアクセスされるデータの場合(S1205;Yes)、プロセッサ11は、この後、対象データに続いて送信される1つ以上のライトデータ(以下、追加データ)の追加メタデータを生成する(S1207)。具体的には、プロセッサ11は、1つ以上の追加データのデータサイズから、続くライトコマンドで指定される論理ボリュームの論理アドレス範囲を推定し、推定した論理アドレス範囲に基づき1つ以上の追加メタデータを作成する。そして、プロセッサ11は、推定した論理アドレス範囲に対応するキャッシュ領域に、これら追加メタデータを記憶する。プロセッサ11は、推定した論理アドレス範囲に対応する物理記憶デバイス31のアドレス範囲を取得する。そして、これらのアドレス範囲の対応づけを、アドレス変換テーブル121に登録する(S1209)。この場合、プロセッサ11は、各ライトコマンドで指定される論理アドレス毎に、物理ボリュームのアドレスとの対応付けを行うようにしてもよい。 When the target data is data to be sequentially accessed (S1205; Yes), the processor 11 thereafter generates additional metadata of one or more write data (hereinafter, additional data) transmitted following the target data. (S1207). Specifically, the processor 11 estimates the logical address range of the logical volume specified by the subsequent write command from the data size of one or more additional data, and based on the estimated logical address range, one or more additional meta data. Create data. Then, the processor 11 stores these additional metadata in a cache area corresponding to the estimated logical address range. The processor 11 acquires the address range of the physical storage device 31 corresponding to the estimated logical address range. Then, the association of these address ranges is registered in the address conversion table 121 (S1209). In this case, the processor 11 may associate the physical volume address with each logical address specified by each write command.
 その後、プロセッサ11は、バックエンドジョブを行う(S1211)。この場合のバックエンドジョブは、図10のS1010~S1019でおよそ説明した通りである。このとき、プロセッサ11は、メタデータ付き対象データ及び追加メタデータの物理記憶デバイス31への書き込みを指示するドライブコマンドを、宛先の物理記憶デバイス31に送信する。これにより、物理記憶デバイス31は、1つ以上の追加メタデータが付与されたデータセットを、物理ボリュームの指定されたアドレス範囲に格納する。 Thereafter, the processor 11 performs a back-end job (S1211). The back-end job in this case is approximately as described in S1010 to S1019 of FIG. At this time, the processor 11 transmits to the destination physical storage device 31 a drive command instructing to write the target data with metadata and the additional metadata to the physical storage device 31. As a result, the physical storage device 31 stores the data set to which one or more additional metadata is added in the designated address range of the physical volume.
 一方、対象データがシーケンシャルなデータでない場合(S1205;No)、プロセッサ11は、バックエンドジョブを行う(S1211)。この場合のバックエンドジョブは、図10のS1010~S1019で説明した通りである。 On the other hand, when the target data is not sequential data (S1205; No), the processor 11 performs a back-end job (S1211). The back-end job in this case is as described in S1010 to S1019 of FIG.
 第2ライト処理により、プロセッサ11が、シーケンシャル判定を行うことで、連続送信されるシーケンシャルアクセスされるデータに対するライト処理の一部をACC22に実行させるできる。 By performing the sequential determination by the second write process, it is possible to cause the ACC 22 to execute a part of the write process for the sequentially transmitted data that is transmitted continuously.
 具体的には、対象データがシーケンシャルなデータの場合、追加データに付与する追加メタデータについては、プロセッサ11が対象データの第2ライト処理で生成し、対象データ及びメタデータからなるデータセットに付与してキャッシュ領域に記憶しておくことができる。これにより、追加メタデータは、データセットとともに物理記憶デバイス31に送信され、物理記憶デバイス31に格納される。そして、プロセッサは、推定した論理アドレス範囲と物理ボリュームのアドレス範囲との対応づけをアドレス変換テーブル121に登録できる。これにより、対象データのライト処理はプロセッサ11が行い、対象データに続くライトデータに対するライト処理は、ACC22に実行させることができる。 Specifically, when the target data is sequential data, the additional metadata to be added to the additional data is generated by the processor 11 in the second write process of the target data, and is added to the data set including the target data and the metadata. And stored in the cache area. Thereby, the additional metadata is transmitted to the physical storage device 31 together with the data set, and stored in the physical storage device 31. Then, the processor can register the correspondence between the estimated logical address range and the physical volume address range in the address conversion table 121. Thereby, the processor 11 performs the write processing of the target data, and the ACC 22 can execute the write processing for the write data following the target data.
 対象コマンドに続いて送信されるライトコマンドに対しては、指定された論理アドレスがアドレス変換テーブル121に登録されているので、ACC22がその処理を実行できる。ACC22が追加データを物理記憶デバイス31に送信することで、物理記憶デバイス31が、コマンドで指定された記憶領域に追加データを格納できる。このとき、コマンドで指定された記憶領域には、すでに追加メタデータが格納されているので、追加データのデータセットが物理記憶デバイスの該当記憶領域に格納されたこととなる。なお、パリティデータの生成については、対象データについてプロセッサ11が行い、続くライトデータについてはACC22が行う(図13参照)。 For the write command transmitted following the target command, the specified logical address is registered in the address conversion table 121, so that the ACC 22 can execute the process. When the ACC 22 transmits the additional data to the physical storage device 31, the physical storage device 31 can store the additional data in the storage area specified by the command. At this time, since additional metadata is already stored in the storage area specified by the command, the data set of the additional data is stored in the corresponding storage area of the physical storage device. The generation of parity data is performed by the processor 11 for the target data, and the ACC 22 for the subsequent write data (see FIG. 13).
 なお、本実施例では、プロセッサ11は、ライトスルー判定処理700の後に第2ライト処理を行ったが、これらの順番はどのようにしてもよい。つまり、プロセッサ11は、ライトスルー判定処理700を実行せずに第2ライト処理をおこなってもよい。また、プロセッサ11は、第2ライト処理において、シーケンシャルアクセスでないデータのライトコマンドと判定したコマンドに対して、ライトスルー判定処理をおこなってもよい。 In this embodiment, the processor 11 performs the second write process after the write-through determination process 700, but the order of these may be any. That is, the processor 11 may perform the second write process without executing the write-through determination process 700. Further, the processor 11 may perform a write-through determination process on a command determined as a data write command that is not sequential access in the second write process.
 以上、幾つかの実施例を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。 Although several embodiments have been described above, this is an example for explaining the present invention, and is not intended to limit the scope of the present invention only to these embodiments. The present invention can be implemented in various other forms.
 10…第1ストレージコントローラ 11…プロセッサ 12…メモリ 20…第2ストレージコントローラ 21…スイッチ 22…アクセラレータ 23…制御コントローラ 24…フロントエンドインタフェース 31…制御デバイス

 
DESCRIPTION OF SYMBOLS 10 ... 1st storage controller 11 ... Processor 12 ... Memory 20 ... 2nd storage controller 21 ... Switch 22 ... Accelerator 23 ... Control controller 24 ... Front end interface 31 ... Control device

Claims (10)

  1.  物理記憶デバイスと、
     前記物理記憶デバイスに接続されたコントローラと、
    を備え、
     前記コントローラは、
      ホスト計算機に接続されるフロントエンドインタフェースと、
      前記フロントエンドインタフェース及び前記物理記憶デバイスに接続され、かつ、前記物理記憶デバイスに基づく論理ボリュームを前記ホスト計算機に提供するプロセッサと、
      前記プロセッサに接続されたメモリと、
      前記フロントエンドインタフェース、前記メモリ、及び前記プロセッサに接続された制御デバイスと、
    を有し、
     前記メモリは、前記論理ボリューム内の論理領域、及び前記物理記憶デバイスにより提供される記憶領域であるデバイス領域を、対応づける論物変換情報と、前記フロントエンドインタフェースにより前記ホスト計算機から受信されたライトコマンドを順番に格納する第1キューと、前記第1キューとは異なる第2キューと、キャッシュ領域と、を有し、
     前記制御デバイスは、前記第1キュー内の第1ライトコマンドを取得し、前記第1ライトコマンドで指定された第1論理領域が前記論物変換情報に登録されているか否かを判定し、
     前記第1論理領域が前記論物変換情報に登録されている場合、前記制御デバイスは、前記論物変換情報に基づいて前記第1論理領域に対応する第1デバイス領域を特定し、
     前記制御デバイスは、前記物理記憶デバイスに対して、前記第1ライトコマンドに基づいて前記フロントエンドインタフェースにより受信された第1ライトデータの前記第1デバイス領域への書き込みを指示し、
     前記第1論理領域が前記論物変換情報に登録されていない場合、前記制御デバイスは、前記第1ライトコマンドを前記第2キューに登録し、
     前記プロセッサは、前記第2キューから前記第1ライトコマンドを取得し、前記キャッシュ領域の負荷状況を取得し、
     前記プロセッサは、前記負荷状況が予め設定された閾値より高いか否かを判定し、
     前記負荷状況が前記閾値より高い場合に、前記プロセッサは、前記物理記憶デバイスから前記第1デバイス領域を選択し、前記第1論理領域と前記第1デバイス領域とを対応付けて前記論物変換情報に登録し、前記第1ライトコマンドを前記第1キューに再登録する、
    ストレージ装置。
    A physical storage device;
    A controller connected to the physical storage device;
    With
    The controller is
    A front-end interface connected to the host computer;
    A processor connected to the front-end interface and the physical storage device and providing a logical volume based on the physical storage device to the host computer;
    A memory connected to the processor;
    A control device connected to the front-end interface, the memory, and the processor;
    Have
    The memory includes logical / physical conversion information that associates a logical area in the logical volume and a device area that is a storage area provided by the physical storage device, and a write received from the host computer by the front-end interface. A first queue for sequentially storing commands, a second queue different from the first queue, and a cache area,
    The control device acquires a first write command in the first queue, determines whether or not the first logical area specified by the first write command is registered in the logical-physical conversion information,
    When the first logical area is registered in the logical-physical conversion information, the control device specifies a first device area corresponding to the first logical area based on the logical-physical conversion information,
    The control device instructs the physical storage device to write the first write data received by the front-end interface based on the first write command to the first device area.
    When the first logical area is not registered in the logical-physical conversion information, the control device registers the first write command in the second queue,
    The processor acquires the first write command from the second queue, acquires a load status of the cache area,
    The processor determines whether the load status is higher than a preset threshold;
    When the load status is higher than the threshold, the processor selects the first device area from the physical storage device, associates the first logical area with the first device area, and converts the logical-physical conversion information. And re-register the first write command in the first queue,
    Storage device.
  2.  前記負荷状況が前記閾値以下の場合に、
     前記プロセッサは、前記第1ライトコマンドに基づいて前記フロントエンドインタフェースにより受信された前記第1ライトデータを、前記第1論理領域に対応する第1キャッシュ領域に記憶し、
     前記プロセッサは、前記物理記憶デバイスから前記第1デバイス領域を選択し、
     前記プロセッサは、前記第1キャッシュ領域内の前記第1ライトデータを前記第1デバイス領域へ書き込むことを、前記物理記憶デバイスへ指示する、
    請求項1に記載のストレージ装置。
    When the load status is below the threshold,
    The processor stores the first write data received by the front end interface based on the first write command in a first cache area corresponding to the first logical area;
    The processor selects the first device region from the physical storage device;
    The processor instructs the physical storage device to write the first write data in the first cache area to the first device area;
    The storage apparatus according to claim 1.
  3.  前記論理ボリュームは、仮想的な論理ボリュームであって、
     前記プロセッサは、前記物理記憶デバイスに基づくボリュームをプールに登録することで、前記デバイス領域と前記プール内のプール領域とを対応づけ、
     前記プロセッサは、前記プールから前記第1デバイス領域に対応する第1プール領域を選択し、かつ、前記第1論理領域に前記第1プール領域を割り当てることで、前記物理記憶デバイスから前記第1デバイス領域を選択する、
    請求項2に記載のストレージ装置。
    The logical volume is a virtual logical volume,
    The processor associates the device area with the pool area in the pool by registering a volume based on the physical storage device in the pool,
    The processor selects a first pool area corresponding to the first device area from the pool, and assigns the first pool area to the first logical area, thereby causing the first device to move from the physical storage device. Select an area,
    The storage apparatus according to claim 2.
  4.  前記物理記憶デバイスは、不揮発性半導体の記憶デバイスである、
    請求項3に記載のストレージ装置。
    The physical storage device is a nonvolatile semiconductor storage device,
    The storage device according to claim 3.
  5.  前記プロセッサは、前記負荷状況として、前記キャッシュ領域の使用率を取得する、
    請求項4に記載のストレージ装置。
    The processor acquires the usage rate of the cache area as the load status.
    The storage apparatus according to claim 4.
  6.  前記負荷状況が前記閾値以下の場合に
     前記プロセッサは、前記第1ライトコマンドに基づいて前記フロントエンドインタフェースにより受信された前記第1ライトデータの管理情報である第1メタデータを生成し、
     前記プロセッサは、前記第1ライトデータに前記第1メタデータを付与したデータセットを、前記第1論理領域に対応する第1キャッシュ領域に記憶し、
     前記プロセッサは、前記物理記憶デバイスから前記第1デバイス領域を選択し、
     前記プロセッサは、前記第1ライトコマンドがシーケンシャルアクセスであるか否かを判定し、
     前記第1ライトコマンドがシーケンシャルアクセスであると判定された場合、前記プロセッサは、前記第1ライトコマンドに続いて前記ホスト計算機から送信される第2ライトコマンドで指定される、第2ライトデータの格納先の第2論理領域を推定し、
     前記プロセッサは、前記推定に基づき、前記第2ライトデータの管理情報である第2メタデータを生成し、前記第2メタデータを、前記第2論理領域に対応する第2キャッシュ領域に記憶し、
     前記プロセッサは、前記第1デバイス領域と連続する領域である第2デバイス領域を前記物理記憶デバイスから選択し、前記第2論理領域と前記第2デバイス領域とを対応づけて前記論物変換情報に登録し、
     前記プロセッサは、前記第1キャッシュ領域に格納された前記データセットと前記第2キャッシュ領域に格納された前記第2メタデータとを、前記第1デバイス領域及び第2デバイス領域へ書き込むことを、前記物理記憶デバイスへ指示する、
    請求項1に記載のストレージ装置。
    When the load status is less than or equal to the threshold, the processor generates first metadata that is management information of the first write data received by the front end interface based on the first write command,
    The processor stores a data set obtained by adding the first metadata to the first write data in a first cache area corresponding to the first logical area,
    The processor selects the first device region from the physical storage device;
    The processor determines whether the first write command is a sequential access;
    When it is determined that the first write command is a sequential access, the processor stores second write data specified by a second write command transmitted from the host computer following the first write command. Estimate the second logical area,
    The processor generates second metadata that is management information of the second write data based on the estimation, stores the second metadata in a second cache area corresponding to the second logical area,
    The processor selects a second device area, which is an area continuous with the first device area, from the physical storage device, and associates the second logical area with the second device area in the logical-physical conversion information. Register,
    The processor writes the data set stored in the first cache area and the second metadata stored in the second cache area to the first device area and the second device area; Instruct the physical storage device,
    The storage apparatus according to claim 1.
  7.  前記制御デバイスは、前記第1キューから前記第2ライトコマンドを取得し、前記第2ライトコマンドで指定された前記第2論理領域が前記論物変換情報に登録されているか否かを判定し、
     前記第2論理領域が前記論物変換情報に登録されている場合、前記制御デバイスは、前記論物変換情報に基づいて前記第2論理領域に対応する前記第2デバイス領域を特定し、
     前記制御デバイスは、前記物理記憶デバイスに対して、前記第2ライトコマンドに基づいて前記フロントエンドインタフェースにより受信された前記第2ライトデータの前記第2デバイス領域への書き込みを指示する、
    請求項6に記載のストレージ装置。
    The control device obtains the second write command from the first queue, determines whether or not the second logical area specified by the second write command is registered in the logical-physical conversion information,
    When the second logical area is registered in the logical-physical conversion information, the control device specifies the second device area corresponding to the second logical area based on the logical-physical conversion information,
    The control device instructs the physical storage device to write the second write data received by the front-end interface to the second device area based on the second write command;
    The storage apparatus according to claim 6.
  8.  物理記憶デバイスと、
     前記物理記憶デバイスに接続されたコントローラと、
    を備え、
     前記コントローラは、
      ホスト計算機に接続されるフロントエンドインタフェースと、
      前記フロントエンドインタフェース及び前記物理記憶デバイスに接続され、かつ、前記物理記憶デバイスに基づく論理ボリュームを前記ホスト計算機に提供するプロセッサと、
      前記プロセッサに接続されたメモリと、
      前記フロントエンドインタフェース、前記メモリ、及び前記プロセッサに接続された制御デバイスと、
    を有し、
     前記メモリは、前記論理ボリューム内の論理領域、及び前記物理記憶デバイスにより提供される記憶領域であるデバイス領域を、対応づける論物変換情報と、前記フロントエンドインタフェースにより前記ホスト計算機から受信されたライトコマンドを順番に格納する第1キューと、前記第1キューとは異なる第2キューと、キャッシュ領域と、を有し、
     前記制御デバイスは、前記第1キュー内の第1ライトコマンドを取得し、前記第1ライトコマンドで指定された第1論理領域が前記論物変換情報に登録されているか否かを判定し、
     前記第1論理領域が前記論物変換情報に登録されている場合、前記制御デバイスは、前記論物変換情報に基づいて前記第1論理領域に対応する第1デバイス領域を特定し、
     前記制御デバイスは、前記物理記憶デバイスに対して、前記第1ライトコマンドに基づいて前記フロントエンドインタフェースにより受信された第1ライトデータの前記第1デバイス領域への書き込みを指示し、
     前記第1論理領域が前記論物変換情報に登録されていない場合、前記制御デバイスは、前記第1ライトコマンドを前記第2キューに登録し、
     前記プロセッサは、前記第2キューから前記第1ライトコマンドを取得し、前記第1ライトコマンドで指定された前記フロントエンドインタフェースにより受信された前記第1ライトデータの管理情報である第1メタデータを生成し、
     前記プロセッサは、前記第1ライトデータに前記第1メタデータを付与したデータセットを、前記第1論理領域に対応する第1キャッシュ領域に記憶し、
     前記プロセッサは、前記物理記憶デバイスから前記第1デバイス領域を選択し、
     前記プロセッサは、前記第1ライトコマンドがシーケンシャルアクセスであるか否かを判定し、
     前記第1ライトコマンドがシーケンシャルアクセスであると判定された場合、前記プロセッサは、前記第1ライトコマンドに続いて前記ホスト計算機から送信される第2ライトコマンドで指定される、第2ライトデータの格納先の第2論理領域を推定し、
     前記プロセッサは、前記推定に基づき、前記第2ライトデータの管理情報である第2メタデータを生成し、前記第2メタデータを、前記第2論理領域に対応する第2キャッシュ領域に記憶し、
     前記プロセッサは、前記第1デバイス領域と連続する領域である第2デバイス領域を前記物理記憶デバイスから選択し、前記第2論理領域と前記第2デバイス領域とを対応づけて前記論物変換情報に登録し、
     前記プロセッサは、前記第1キャッシュ領域に格納された前記データセットと前記第2キャッシュ領域に格納された前記第2メタデータとを、前記第1デバイス領域及び第2デバイス領域へ書き込むことを、前記物理記憶デバイスへ指示する、
    ストレージ装置。
    A physical storage device;
    A controller connected to the physical storage device;
    With
    The controller is
    A front-end interface connected to the host computer;
    A processor connected to the front-end interface and the physical storage device and providing a logical volume based on the physical storage device to the host computer;
    A memory connected to the processor;
    A control device connected to the front-end interface, the memory, and the processor;
    Have
    The memory includes logical / physical conversion information that associates a logical area in the logical volume and a device area that is a storage area provided by the physical storage device, and a write received from the host computer by the front-end interface. A first queue for sequentially storing commands, a second queue different from the first queue, and a cache area,
    The control device acquires a first write command in the first queue, determines whether or not the first logical area specified by the first write command is registered in the logical-physical conversion information,
    When the first logical area is registered in the logical-physical conversion information, the control device specifies a first device area corresponding to the first logical area based on the logical-physical conversion information,
    The control device instructs the physical storage device to write the first write data received by the front-end interface based on the first write command to the first device area.
    When the first logical area is not registered in the logical-physical conversion information, the control device registers the first write command in the second queue,
    The processor acquires the first write command from the second queue, and receives first metadata that is management information of the first write data received by the front end interface specified by the first write command. Generate and
    The processor stores a data set obtained by adding the first metadata to the first write data in a first cache area corresponding to the first logical area,
    The processor selects the first device region from the physical storage device;
    The processor determines whether the first write command is a sequential access;
    When it is determined that the first write command is a sequential access, the processor stores second write data specified by a second write command transmitted from the host computer following the first write command. Estimate the second logical area,
    The processor generates second metadata that is management information of the second write data based on the estimation, stores the second metadata in a second cache area corresponding to the second logical area,
    The processor selects a second device area, which is an area continuous with the first device area, from the physical storage device, and associates the second logical area with the second device area in the logical-physical conversion information. Register,
    The processor writes the data set stored in the first cache area and the second metadata stored in the second cache area to the first device area and the second device area; Instruct the physical storage device,
    Storage device.
  9.  前記制御デバイスは、前記第1キューから前記第2ライトコマンドを取得し、前記第2ライトコマンドで指定された前記第2論理領域が前記論物変換情報に登録されているか否かを判定し、
     前記第2論理領域が前記論物変換情報に登録されている場合、前記制御デバイスは、前記論物変換情報に基づいて前記第2論理領域に対応する前記第2デバイス領域を特定し、
     前記制御デバイスは、前記物理記憶デバイスに対して、前記第2ライトコマンドに基づいて前記フロントエンドインタフェースにより受信された前記第2ライトデータの前記第2デバイス領域への書き込みを指示する、
    請求項8に記載のストレージ装置。
    The control device obtains the second write command from the first queue, determines whether or not the second logical area specified by the second write command is registered in the logical-physical conversion information,
    When the second logical area is registered in the logical-physical conversion information, the control device specifies the second device area corresponding to the second logical area based on the logical-physical conversion information,
    The control device instructs the physical storage device to write the second write data received by the front-end interface to the second device area based on the second write command;
    The storage device according to claim 8.
  10.  物理記憶デバイス及びホスト計算機に接続されたコントローラのライト制御の方法であって、
     前記コントローラ内のプロセッサを用いて、前記物理記憶デバイスに基づく論理ボリュームを前記ホスト計算機に提供し、
     前記論理ボリューム内の論理領域、及び前記物理記憶デバイスにより提供される記憶領域であるデバイス領域を、対応づける論物変換情報と、前記コントローラ内のフロントエンドインタフェースにより前記ホスト計算機から受信されたライトコマンドを順番に格納する第1キューと、前記第1キューとは異なる第2キューと、を記憶し、前記コントローラ内のメモリに格納し、
     前記コントローラ内の制御デバイスを用いて、
      前記第1キュー内の第1ライトコマンドを取得し、前記第1ライトコマンドで指定された第1論理領域が前記論物変換情報に登録されているか否かを判定し、
      前記第1論理領域が前記論物変換情報に登録されている場合、前記論物変換情報に基づいて前記第1論理領域に対応する第1デバイス領域を特定し、
      前記物理記憶デバイスに対して、前記第1ライトコマンドに基づいて前記フロントエンドインタフェースにより受信された第1ライトデータの前記第1デバイス領域への書き込みを指示し、
      前記第1論理領域が前記論物変換情報に登録されていない場合、前記第1ライトコマンドを前記第2キューに登録し、
     前記プロセッサを用いて、
      前記第2キューから前記第1ライトコマンドを取得し、前記キャッシュ領域の負荷状況を取得し、
      前記負荷状況が予め設定された閾値より高いか否かを判定し、
      前記負荷状況が前記閾値より高い場合に、前記物理記憶デバイスから前記第1デバイス領域を選択し、
      前記第1論理領域と前記第1デバイス領域とを対応付けて前記論物変換情報に登録し、
      前記第1ライトコマンドを前記第1キューに再登録する、
    ことを備える方法。
     

     
    A write control method for a controller connected to a physical storage device and a host computer,
    Providing a logical volume based on the physical storage device to the host computer using a processor in the controller;
    Logical-physical conversion information that associates a logical area in the logical volume and a device area that is a storage area provided by the physical storage device, and a write command received from the host computer by the front-end interface in the controller And a second queue different from the first queue, and stores in a memory in the controller,
    Using a control device in the controller,
    Obtaining a first write command in the first queue, determining whether or not the first logical area designated by the first write command is registered in the logical-physical conversion information;
    When the first logical area is registered in the logical-physical conversion information, a first device area corresponding to the first logical area is specified based on the logical-physical conversion information,
    Instructing the physical storage device to write the first write data received by the front-end interface to the first device area based on the first write command,
    If the first logical area is not registered in the logical-physical conversion information, register the first write command in the second queue,
    Using the processor,
    Obtaining the first write command from the second queue, obtaining a load status of the cache area;
    Determining whether the load status is higher than a preset threshold;
    When the load status is higher than the threshold, select the first device area from the physical storage device,
    Registering the first logical area and the first device area in association with the logical-physical conversion information;
    Re-registering the first write command with the first queue;
    A method comprising that.


PCT/JP2016/060709 2016-03-31 2016-03-31 Storage device, and method WO2017168690A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/060709 WO2017168690A1 (en) 2016-03-31 2016-03-31 Storage device, and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/060709 WO2017168690A1 (en) 2016-03-31 2016-03-31 Storage device, and method

Publications (1)

Publication Number Publication Date
WO2017168690A1 true WO2017168690A1 (en) 2017-10-05

Family

ID=59963718

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/060709 WO2017168690A1 (en) 2016-03-31 2016-03-31 Storage device, and method

Country Status (1)

Country Link
WO (1) WO2017168690A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111722791A (en) * 2019-03-22 2020-09-29 株式会社日立制作所 Information processing system, storage system, and data transmission method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004295860A (en) * 2003-03-07 2004-10-21 Fujitsu Ltd Storage system and its disk load balancing control method
JP2010198576A (en) * 2009-02-27 2010-09-09 Toshiba Corp Storage device
WO2016038710A1 (en) * 2014-09-11 2016-03-17 株式会社日立製作所 Storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004295860A (en) * 2003-03-07 2004-10-21 Fujitsu Ltd Storage system and its disk load balancing control method
JP2010198576A (en) * 2009-02-27 2010-09-09 Toshiba Corp Storage device
WO2016038710A1 (en) * 2014-09-11 2016-03-17 株式会社日立製作所 Storage system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111722791A (en) * 2019-03-22 2020-09-29 株式会社日立制作所 Information processing system, storage system, and data transmission method
CN111722791B (en) * 2019-03-22 2024-02-27 株式会社日立制作所 Information processing system, storage system, and data transmission method

Similar Documents

Publication Publication Date Title
US9128855B1 (en) Flash cache partitioning
JP5981563B2 (en) Information storage system and method for controlling information storage system
US8782335B2 (en) Latency reduction associated with a response to a request in a storage system
WO2017216887A1 (en) Information processing system
US9075729B2 (en) Storage system and method of controlling data transfer in storage system
WO2016031051A1 (en) Storage device
US8650381B2 (en) Storage system using real data storage area dynamic allocation method
JP5309259B2 (en) Storage apparatus and control method thereof
US20150081967A1 (en) Management of storage read requests
WO2016020977A1 (en) Storage system and cache control method
WO2015162758A1 (en) Storage system
JP6294569B2 (en) Storage system and cache control method
WO2016121026A1 (en) Storage apparatus, computer system, and method
JP6203592B2 (en) Computer system, cache management method, and computer
WO2016139787A1 (en) Storage system and data writing control method
US8713257B2 (en) Method and system for shared high speed cache in SAS switches
JP2007102314A (en) Disk cache-control device
WO2014147786A1 (en) Storage system and data management method
WO2017168690A1 (en) Storage device, and method
JP6353981B2 (en) Storage system and storage control method
KR20240025451A (en) Method and device for data caching
US11055001B2 (en) Localized data block destaging
WO2016189640A1 (en) Storage device, and method
WO2015162766A1 (en) Storage system and semiconductor storage device
WO2018055686A1 (en) Information processing system

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

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

Ref document number: 16896907

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 16896907

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP