Storage system and data protection method thereof

A storage system with multiple controllers uses a narrower log buffer range during power-saving mode to reduce restore times and power consumption, addressing the challenge of prolonged restore times in existing systems.

JP2026115524APending Publication Date: 2026-07-09HITACHI VANTARA LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024232284
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-12-27
Publication Date
2026-07-09

AI Technical Summary

Technical Problem

The wide range of the log buffer in existing storage systems for journal data results in prolonged restore times when one of the controllers is stopped to reduce power consumption.

Method used

A storage system with multiple controllers that allocates a narrower log buffer range when one controller transitions to a power-saving mode, allowing for efficient journaling and reduced restore times.

Benefits of technology

This approach shortens restore times by narrowing the log buffer range during power-saving mode, enabling faster recovery and reduced power consumption.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026115524000001_ABST
    Figure 2026115524000001_ABST
Patent Text Reader

Abstract

In a dual-controller storage system, when a power-saving mode is applied to reduce power consumption by stopping one controller, if a single controller failure occurs and data and control information are protected by journaling, a problem arises where the data recovery (restore) time to restore the system to an I / O-enabled state becomes long due to the wide range of the journal's log buffer. [Solution] To address the above issues, when power-saving mode is applied, journal data is recorded in a narrower log buffer compared to normal mode. If a controller failure occurs while power-saving mode is applied, the stopped controller is restarted, and data is read from the narrower log buffer for restoration. This reduces the power consumption of the storage system and shortens restoration time.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a storage system and a data protection method, and is suitable for application to a storage system related to a technique of storing journal data of a log buffer by journaling, for example.

Background Art

[0002] Patent Document 1 discloses a storage system for a specific application. In a general storage system, along with data input / output processing with a host computer, the update contents of a file system and the history of changes in metadata (hereinafter also referred to as "control information") are recorded as journal data in a log buffer. The journal data is read from the log buffer when a system failure occurs or data is accidentally deleted, and is used in a restore process to roll back the data to a predetermined point in time.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] However, not only the storage system disclosed in Patent Document 1 but also in a general storage system, since the range of the log buffer in which journal data is recorded is wide, the range for reading journal data from the log buffer during the restore process becomes wide. For example, when restoring one of the controllers that was stopped to reduce power consumption, the restore time was long.

[0005] This invention was made in consideration of the above points, and aims to propose a storage system that can shorten the restore time using journal data even when one of the multiple controllers is stopped in order to reduce power consumption. [Means for solving the problem]

[0006] To solve these problems, the present invention provides a storage system comprising a plurality of controllers that control data input / output processing between a host computer and a drive, wherein one of the plurality of controllers performs journaling in conjunction with the data input / output processing and writes journal data relating to the data input / output processing between the host computer and the drive to a log buffer allocated over a first range, and when another controller of the plurality of controllers satisfies predetermined transition conditions, it then starts transitioning from the normal state to a power-saving mode in which the other controller is stopped, and when the other controller is stopped in the transitioned power-saving mode, the log buffer is allocated to a second range which is narrower than the first range, and journaling is performed in conjunction with the data input / output processing between the host computer and the drive, and when the other controller is restarted, a restore process is performed using the journal data read from the log buffer allocated over the second range.

[0007] Furthermore, the present invention provides a data protection method for a storage system comprising a plurality of controllers that control data input / output processing between a host computer and a drive, comprising: a write step in which one of the plurality of controllers performs journaling in conjunction with the data input / output processing and writes journal data relating to the data input / output processing between the host computer and the drive to a log buffer reserved over a first range; a power saving mode transition step in which, when the other controllers among the plurality of controllers meet predetermined transition conditions, the one controller then starts a transition from a normal state to a power saving mode in which the other controllers are stopped; a journaling step in which, when the other controllers are stopped in the transitioned power saving mode, the one controller reserves the log buffer to a second range narrower than the first range and performs journaling in conjunction with the data input / output processing between the host computer and the drive; and a restore step in which, when the one controller restarts the other controllers, the one controller performs a restore process using the journal data read from the log buffer reserved over the second range. [Effects of the Invention]

[0008] According to the present invention, even if one of the multiple controllers is stopped in order to reduce power consumption, the restore time using journal data can be shortened. [Brief explanation of the drawing]

[0009] [Figure 1] This is a system configuration diagram showing an example of the storage system configuration according to this embodiment. [Figure 2] This diagram shows an overview of the light operation when both controllers are functioning correctly. [Figure 3] This diagram shows an overview of the light operation when one of the controllers in the storage system according to this embodiment is blocked. [Figure 4]This state transition diagram shows an example of the operating modes in the storage system according to this embodiment. [Figure 5] This diagram shows the contents of the memory shown in Figure 1. [Figure 6] This flowchart shows an example of the write operation procedure in the storage system according to this embodiment. [Figure 7] This flowchart shows an example of the procedure for switching the memory protection method in the storage system according to this embodiment. [Figure 8] Figure 7 is a flowchart illustrating an example of the procedure for switching over high-I / O performance journal protection. [Figure 9] Figure 7 is a flowchart illustrating an example of the procedure for switching journal protection to reduce restore time. [Figure 10] Figure 7 is a flowchart illustrating an example of the procedure for switching the inter-controller redundancy protection. [Figure 11] This flowchart shows an example of the procedure for handling a controller failure while in power-saving mode. [Figure 12] This flowchart shows an example of the procedure for accelerating destaging when the remaining log buffer size decreases. [Modes for carrying out the invention]

[0010] Hereinafter, this embodiment of the present invention will be described in detail with reference to the drawings. Figure 1 is a system configuration diagram showing an example of the configuration of the storage system 100 according to this embodiment. The storage system 100 according to this embodiment includes a plurality of controllers 103A, 103B and a drive 110 which is a storage device. In the following embodiment, it will be mainly described as having two controllers 103A, 103B, but it may also have three or more controllers.

[0011] Controllers 103A and 103B are devices that provide volumes for reading and writing data to host computers (hereinafter abbreviated as "hosts") 102A and 102B. Since controllers 103 and 103B have almost identical configurations, the following description will mainly focus on controller 103A. Controller 103A includes a CPU 106A, memory 105A, a memory backup drive as an example of a non-volatile storage medium such as an SSD, a front-end interface (hereinafter also referred to as "FE I / F") 104A, and a back-end interface (hereinafter also referred to as "BE I / F") 108A. Drive 110 is, for example, an SSD (Solid State Drive) that uses flash memory as a storage medium, or an HDD (Hard Disk Drive) that uses a magnetic disk as a storage medium.

[0012] Memory 105A is a storage device in a broad sense, such as a volatile semiconductor memory like DRAM. Memory 105A has a log buffer (not shown) allocated in part of it. The control information log buffer, which will be described later, is a non-volatile storage medium (drive) such as an SSD. The control information log buffer is used to save the contents of the volatile semiconductor memory in the event of external power loss. FE I / F104A is, for example, a Fibre Channel HBA (Host Bus Adapter) or NIC (Network Interface Controller). BE I / F108A is, for example, a SAS HBA, a PCI Express (hereinafter referred to as "PCIe") adapter, or a NIC.

[0013] Each of the controllers 103A and 103B and the drive 110 are connected, for example, by a switch (BE Switch) 109. The CPU 106A of one controller 103A and the CPU 106B of the other controller 103B are connected by an interconnect such as PCIe. Note that the CPU 106A and the CPU 106B may be connected via, for example, a PCIe switch. The storage system 100 is connected to a storage area network (hereinafter abbreviated as "SAN") 101 such as Fibre Channel or Ethernet (registered trademark). The host computers 102A and 102B are also connected to the SAN 101. The SAN 101 may include a switch or the like. A plurality of hosts may be connected to the SAN 101.

[0014] FIG. 2 is a diagram showing an overview of the write operation when both controllers are normal. The CPU 106A of the controller 103A receives a write request from the host computer 102A, receives data from the host computer 102A, and writes the data 201 to the memory 105A in the controller 103A and the memory 105B of the other controller 103B. The CPU 106A updates the control information (Metadata) 200 in the memory 105A. The CPU 106A returns a write completion response to the host computers 102A and 102B. Although omitted in the illustrated example, the CPU 106A writes the data written on the memory 105A to the drive 110 at a predetermined timing. In this write operation, the data and the control information 200 on the memory 105A are duplicated between the two controllers 103A and 103B to prepare for the failure of either controller.

[0015] FIG. 3 is a diagram showing an overview of the write operation at the time of occlusion of the controller 103A of the storage system 100 according to the present embodiment. The CPU 106 of the controller 103 according to the present embodiment receives a write request from the host computers 102A and 102B, receives the data 201 from the host computer 102A, and writes the data 201 to the memory 105A in the controller 103A. The CPU 106 also updates the control information 200 in the memory. Further, the CPU 106A writes the update content of the data 201 as a log to the control information log buffer, and also writes the update content of the control information as a log to the control information log buffer (log backup). The CPU 106A returns a write completion response to the host computer 102A. Also, although omitted in the illustrated example, the CPU 106A writes the data written on the memory 105A to the drive 110 at a predetermined timing (hereinafter also referred to as "destage"). In the present embodiment, the logs of the data 201 and the control information 200 are described as being stored in the control information log buffer, but these logs may be recorded, for example, in a user data storage drive (corresponding to the drive 110 above) or in another log storage drive.

[0016] In this write operation, by writing the data and control information on the memory 105A as logs to the memory backup drive, it is provided in case the remaining controller fails. If the remaining controller 103B fails, the storage system will once stop and the system will go down, but by replacing the controller 103B with a new one and restoring the data 201 and the control information 200 on the memory 105A using the logs written in the control information log buffer, data loss can be prevented.

[0017] To avoid confusion in the following explanation, let's clarify the difference between destaging and log backup here. Destaging is the process of writing dirty data from the cache to the final storage area of ​​the user data storage drive, which is the final storage medium. The user data storage drive stores data with enhanced data protection, capacity efficiency, and I / O performance through the storage functions provided by the storage system (mainly the controller). For example, data protection is provided by methods such as RAID (Redundant Array of Independent Disks) 6, in which case parity data is generated during the destaging process, and this parity data is also written to drive 110. Once destaging is complete, the data on memory 105A and drive 110 become identical (clean), so it is acceptable for data 201 to be lost from memory 105A.

[0018] On the other hand, log backup refers to the temporary writing of the updated data 201 and control information 200 on memory 105A to a non-volatile storage medium (drive), such as the control information log buffer described later, in preparation for a failure of controllers 103A and 103B. As mentioned above, once the destaging of the dirty data is complete, it is no longer a problem if the data is lost from memory 105A, so the log can be deleted from drive 110 when destaging is complete.

[0019] In this embodiment, if the memory backup drive is used for log storage, the area allocated by both controllers to save the contents of memory 105A when both controllers are functioning normally may be used as the log storage area when one of the controllers 103B is blocked. This eliminates the need to add a drive or increase storage capacity for log storage, thus offering cost advantages compared to storing logs on a user data drive or installing a separate log storage drive.

[0020] Incidentally, the log containing the updates to the cache data (cache data log) is relatively granular because the data written from the host is generally handled in blocks of, for example, 512 bytes or 4 KBytes. In contrast, the control information 200 is in byte units, so the log containing the updates to the control information 200 (control information log) is relatively granular. On the other hand, the cache data area accounts for a relatively large proportion of the entire memory 105A. Therefore, with respect to the control information log, the entire memory area containing the control information (base image) is periodically written to the drive 110, all logs written before that are discarded, and the area where the log was written is recovered as free space. This method is called the "base image backup method".

[0021] On the other hand, with regard to cache data logs, older logs are identified as unnecessary and discarded (invalidated). This creates scattered free space in the log buffer, so at predetermined times, only valid logs are written to a separate area in a pre-filled manner to reclaim contiguous free space. This method is called the garbage collection method. By using both of these methods appropriately, it is possible to reduce the capacity consumption for base image backup, reduce the management information required for free space management, and minimize the overhead for free space reclaiming.

[0022] In this embodiment, as will be described later, the range in which logs are written to the log buffer can be narrowed for each mode. Specifically, in this embodiment, for example, the size of the storage area to which logs can be written can be controlled so that the log buffer, which is allocated in a first range, becomes a second range that is narrower than the first range in a particular mode.

[0023] Figure 4 is a state transition diagram showing an example of an operating mode in the storage system 100 according to this embodiment. The storage system 100 according to this embodiment may transition to any of the following states: power OFF state 1000, controller redundancy state (hereinafter referred to as "normal state") 1001, state 1002 where one controller with high I / O performance is operating (hereinafter referred to as "one controller failure"), state 1004 where both controllers fail, for example (hereinafter abbreviated as "stopped state"), and state 1003 where only one controller operates while shortening the restore time.

[0024] In this embodiment, the storage system 100, while in a power-off state 1000, transitions to a normal state 1001 upon receiving a startup command from a management terminal (not shown). In the normal state 1001, if a controller failure occurs, the storage system 100 initiates high I / O performance journal protection and transitions to a state 1002 where one controller has failed. When the storage system 100 enters a controller failure state, it enters a stopped state 1004. Subsequently, the storage system 100 undergoes controller replacement, initiates controller startup, journal restoration, and high I / O performance journal protection, and transitions to a state 1002 where one controller has failed.

[0025] In this embodiment, when a controller replacement is performed in a state 1002 where one controller has failed, the storage system 100 initiates controller startup, performs data duplication processing for the multiple controllers 103A and 103B, and transitions to the normal state 1001.

[0026] In this embodiment, when the processing load falls below a certain level in the normal state 1001, the storage system 100 stops one of the controllers, initiates journal protection to shorten the restore time (hereinafter also referred to as "restore time reduction journal protection"), and transitions to power saving mode 1003. As described later, restore time reduction journal protection means narrowing the range of the log buffer, which is the journal area that stores journal data, compared to the normal state.

[0027] In this embodiment, when a controller failure occurs in power-saving mode 1003, the storage system 100 starts the controller, performs a journal restore, initiates high I / O performance journal protection, and transitions to state 1002, which is the state of one controller failure.

[0028] On the other hand, in the power-saving mode 1003, if the processing load exceeds a certain level or the storage capacity of the log buffer becomes insufficient, the storage system 100 according to this embodiment starts up the controller, performs data duplication processing, stops journal protection, and transitions to the normal state 1001.

[0029] The storage system 100 according to this embodiment is a storage system comprising a plurality of controllers 103A, 103B that control data input / output processing between host computers 102A, 102B and a drive 110. One of the plurality of controllers 103A, 103B, controller 103A, performs journaling in conjunction with data input / output processing and writes journal data relating to data input / output processing between host computers 102A, 102B and the drive 110 to a log buffer reserved over a first range (write step). The log buffer constitutes a part of the storage area of ​​a non-volatile storage medium (not shown), which is not shown. The non-volatile storage medium has a storage capacity of at least the first range.

[0030] When one of the controllers 103A, 103B, another controller 103B, among the multiple controllers 103A, 103B, satisfies predetermined transition conditions, that controller 103A then begins to transition from the normal state to a power-saving mode 1003, which stops the other controller 103B (power-saving mode transition step). Here, "stopping" includes, for example, being blocked and stopping, or stopping intentionally.

[0031] One controller 103A, under the predetermined transition condition that the processing load of the other controller 103B is lower than normal, then starts transitioning to a power-saving mode 1003 in which the other controller 103B is shut down.

[0032] When the other controller 103B is stopped in the transitioned power-saving mode 1003, the controller 103A reserves a log buffer to a second range that is narrower than the first range, and then performs journaling in conjunction with the data input / output processing between the host computers 102A, 102B and the drive 110 (journaling step).

[0033] When restarting the other controller 103B, the controller 103A performs a restore process using journal data read from a log buffer allocated over a second range (restore step).

[0034] When one of the controllers 103A satisfies a predetermined return condition different from the predetermined transition condition, it transitions from power-saving mode to normal state 1001.

[0035] One of the controllers, 103A, manages the log buffer by dividing it into multiple unit log buffers.

[0036] Figure 5 shows the contents of memory 105A as shown in Figure 1. Note that the contents of memory 105B are the same as those of memory 105A, so their explanation is omitted. Memory 105A includes a storage control program 500, control information 200, cache data 201, a control information log buffer 502, and a cache data log buffer 503. The control information 200 includes a journal protection method management table 200A and a processing load management table 200B.

[0037] The storage control program 500 is a program that controls the storage system and is executed by the CPU 106A. The various processes described later, such as the write process, are included within this storage control program.

[0038] Control information 200 is data used by the storage control program 500 to control the execution of the program. Control information 200 includes, for example, cache control information such as the correspondence between the address of cache data and the logical address (LBA) in the volume and the state of the cache data (dirty / clean), configuration information such as the drive type, capacity, RAID group type and configuration, and the state of each controller (normal / blocked, etc.). The queue of dirty data mentioned earlier also belongs to the cache control information within this control information 200.

[0039] Journal protection method management table 200A is a table for managing the journal protection methods described above.

[0040] The processing load management table 200B is a table that manages thresholds used to determine whether the processing load is above a certain level.

[0041] By the way, when updating control information and cache data in memory during a controller failure, it is not always necessary to write each log related to the update to the drive (memory backup drive) individually; they can be written together to a contiguous area on the drive (memory backup drive). However, for example, before returning a write completion response to the host, the cache data and control information updated by the write process can be written to the drive (memory backup drive) to prevent the loss of data that has been written due to a controller failure. The control information log buffer 502 and the cache data log buffer 503 are buffers for temporarily storing logs in memory, and the control information log and cache data log are temporarily stored in them, respectively.

[0042] Figure 6 is a flowchart showing an example of the write operation procedure in the storage system 100 according to this embodiment. The CPU 106 performs this write operation. CPU 106 first performs cache allocation (step S600). Cache allocation refers to allocating a portion of the memory area used to store cache data for I / O processing and other purposes. In this case, CPU 106 allocates an area of ​​sufficient size to store the data transmitted from hosts 102A and 102B.

[0043] CPU 106 performs a cache data update process (step S601). The details of the cache data update process will be described later, but in short, it is a process that receives data from hosts 102A and 102B and stores that data in the cache area that was allocated earlier.

[0044] CPU 106 determines whether the other controller is blocked or not (step S602). If it is blocked, CPU 106 skips the cache data duplication process; however, if it is not blocked, i.e., both controllers are operating, it performs cache data duplication (step S603). Cache data duplication is the process of copying data received from hosts 102A and 102B to the memory of the other controller. Specifically, cache data duplication means copying data from the memory of its own controller to the memory of the other controller, for example, using DMA built into CPU 106.

[0045] CPU 106 performs control information update processing (step S604). The details of the control information update processing will be described later.

[0046] CPU 106 determines whether or not journal protection mode is active (step S605). If journal protection mode is active, CPU 106 performs journaling (step S606), while if journal protection mode is not active, it skips the log saving process. A general method can be used for the journaling process itself, so a detailed explanation is omitted. After completing the above processes, CPU 106 responds to hosts 102A and 102B that the write process is complete (step S607). This completes the write process.

[0047] Figure 7 is a flowchart showing an example of the procedure for switching the memory protection method in the storage system 100 according to this embodiment. The CPU 106 executes this memory protection method switching process.

[0048] The CPU 106 determines whether a failure has occurred in one of the controllers 103B. If a failure has occurred, the CPU 106 executes a high-I / O performance journal protection switchover process. Details of this high-I / O performance journal protection switchover process will be described later.

[0049] On the other hand, if no failure has occurred, CPU 106 executes step S702. In step S702, CPU 106 determines whether the processing load is below a specified value. If CPU 106 determines in step S702 that the processing load is below a specified value, it executes the restore time reduction journal protection switching process. Details of this restore time reduction journal protection switching process will be described later. On the other hand, if CPU 106 determines in step S702 that the processing load is not below a specified value, it executes the inter-controller redundancy protection switching process. Details of this inter-controller redundancy protection switching process will be described later.

[0050] Figure 8 is a flowchart showing an example of the procedure for the high I / O performance journal protection switching process shown in Figure 7. CPU 106 executes this high I / O performance journal protection switching process.

[0051] In step S800, it is determined whether CPU 106 is operating with high I / O performance journal protection. If it is operating with high I / O performance journal protection, the high I / O performance journal protection switching process is terminated.

[0052] On the other hand, if the CPU 106 is not operating in high I / O performance journal protection mode in step S800, it performs emergency destaging (step S801). Next, the CPU 106 saves the base image (step S802). In step S803, the CPU 106 starts operating in high I / O performance journal protection mode.

[0053] Figure 9 is a flowchart showing an example of the procedure for the journal protection switching process to reduce restore time, as shown in Figure 7. CPU 106 executes this journal protection switching process to reduce restore time.

[0054] In step S900, CPU 106 determines whether it is operating with the restore time reduction journal protection enabled. If it is not operating with the restore time reduction journal protection enabled, the restore time reduction journal protection switching process is terminated.

[0055] On the other hand, if in step S900 it is determined that the restore time reduction journal protection is not working, the CPU 106 shifts the I / O requests from the host computers 102A and 102B to the FE I / F 104A mounted on the controller 103A, which does not stop the I / O requests (step S901). At this time, a method of concealing the shutdown of the controller 103B may be used, for example, by using the virtual port function of the FC, so that the host computers 102A and 102B do not detect the shutdown of the controller 103B.

[0056] In step S902, CPU 106 performs an emergency stage. In step S903, CPU 106 saves the base image. In step S904, CPU 106 starts operation with restore time reduction journal protection. In step S905, CPU 106 stops one of the controllers 103B.

[0057] Figure 10 is a flowchart showing an example of the procedure for the inter-controller redundancy protection switching process shown in Figure 7. The CPU 106 executes this inter-controller redundancy protection switching process.

[0058] In step S1000, it is determined whether the CPU 106 is operating with high I / O performance journal protection. If it is operating with high I / O performance journal protection in step S1000, the CPU 106 executes step S1001.

[0059] In step S1001, the CPU 106 starts up the stopped controller 103B. In step S1002, the CPU 106 performs control information duplication processing. In step S1003, the CPU 106 performs dirty data duplication processing. In step S1004, the CPU 106 starts inter-controller duplication processing. In step S1005, the log deletion process is performed and the inter-controller duplication protection switching process is terminated.

[0060] On the other hand, if high I / O performance journal protection is not operating in step S1000, CPU 106 executes step S1006. In step S1006, CPU 106 determines whether or not it is operating in restore time reduction journal protection. If it is not operating in restore time reduction journal protection in step S1006, CPU 106 terminates the inter-controller redundancy protection switching process. On the other hand, if it is operating in restore time reduction journal protection in step S1006, CPU 106 executes step S1007.

[0061] In step S1007, the CPU 106 determines whether the processing load is above a specified value or whether the log buffer is insufficient. If, in step S1007, the processing load is not above a specified value or the log buffer is insufficient, the CPU 106 terminates the inter-controller redundancy protection switching process. On the other hand, if, in step S1007, the processing load is above a specified value or the log buffer is insufficient, the CPU 106 executes step S1008.

[0062] In step S1008, CPU 106 starts up the stopped controller 03B. In step S1009, CPU 106 performs control redundancy processing. In step S1010, CPU 106 performs dirty data redundancy operation. In step S1011, CPU 106 starts inter-controller redundancy operation.

[0063] In step S1012, CPU 106 executes the log deletion process. In step S1013, CPU 106 returns the I / O requests from the host computers 102A and 102B, which had been unilaterally redirected, to the FE I / F 104B of the powered-up controller 03B.

[0064] Figure 11 is a flowchart showing an example of the procedure for handling a controller failure in power-saving mode. The CPU 106 executes the post-controller failure handling procedure in power-saving mode.

[0065] In step S1100, CPU 106 receives a report that one of the controllers has failed and starts up controller 103B, which was stopped. In step S1101, CPU 106 reads the base image from drive 110. In step S1102, CPU 106 reads the control information log and cache data log and sorts them.

[0066] In step S1103, the CPU 106 sequentially reflects the control information log and cache data log up to the latest log. In step S110, the CPU 106 shifts the I / O requests from host computers 102A and 102B to the FE I / F 104A mounted on the controller 03B. In step S1105, the CPU 106 resumes I / O processing and terminates the post-controller failure processing in power-saving mode.

[0067] Figure 12 is a flowchart showing an example of the destaging acceleration procedure when the remaining amount in the log buffer decreases. The CPU 106 executes this destaging acceleration procedure. The destaging acceleration procedure is the process of destaging the dirty data, data 201 and control information 200, to a non-volatile storage medium.

[0068] On the other hand, when the remaining amount in the log buffer becomes insufficient, controller 103A performs a destaging acceleration process to destage dirty data and control information to a non-volatile storage medium.

[0069] First, in step S1200, it is determined whether the CPU 106 is operating with restore time reduction journal protection. If it is not operating with restore time reduction journal protection, the destaging acceleration process is terminated.

[0070] On the other hand, if step S1200 determines that the system is operating with restore time reduction journal protection, CPU 106 executes step S1201. In step S1201, CPU 106 determines whether the remaining log buffer size is below a specified value, and if it does not determine that the remaining log buffer size is below a specified value, it terminates the destaging acceleration process.

[0071] On the other hand, if step S1201 determines that the remaining amount of the log buffer is below a specified value, the CPU 106 executes step S1202. In step S1202, the CPU 106 determines whether the processing load is below a specified value, and if it determines that the processing load is not below a specified value, it terminates the destaging acceleration process.

[0072] On the other hand, in step S1202, if it is determined that the processing load is below a specified value, the CPU 106 instructs destaging acceleration to secure free space in the log buffer. Here, destaging acceleration means performing destaging at a faster speed than normal destaging.

[0073] The storage system 100 according to this embodiment is a storage system comprising a plurality of controllers 103A, 103B that control data input / output processing between host computers 102A, 102B and a drive 110, wherein one of the plurality of controllers 103A, 103B, controller 103A performs journaling in conjunction with data input / output processing, and writes journal data relating to data input / output processing between host computers 102A, 102B and the drive 110 to a log buffer reserved over a first range, and the processing load of the other controllers 103B of the plurality of controllers 103A, 103B is lower than the normal state 1001. When the transition conditions (for example, that the processing load is below a specified value) are met, the system then transitions from the normal state to a power-saving mode 1003 in which the other controller 103B is stopped (for example, blocked or intentionally stopped). In the power-saving mode 1003 to which the other controller 103B is stopped, the system reserves a log buffer to a second range that is narrower than the first range, and performs journaling in conjunction with data input / output processing between the host computers 102A, 102B and the drive 110. When the other controller 103B is restarted, the system performs a restore process using the journal data read from the log buffer reserved over the second range.

[0074] In this way, when the processing load on other controllers 103B becomes lighter than the processing load in the normal state 1001, power consumption can be reduced by then switching to power saving mode. Furthermore, during the restore process, the log buffer from which journal data is read becomes a second range that is narrower than the first range, shortening the access time to the log buffer. For example, even if one of the multiple controllers 103B is stopped to reduce power consumption, the restore time using journal data can be shortened. As a result, controller 103A can restart the duplication of data input / output processing between the host computers 102A, 102B and the drive 110 at an earlier stage.

[0075] In the above embodiment, one controller 103A initiates a transition to a power-saving mode 1003, which stops the other controller 103B, provided that the processing load of the other controller 103B is lower than that of the normal state 1001, as a predetermined transition condition. In this way, even if one of the multiple controllers 103A, 103B is stopped, the restore time using journal data can be shortened.

[0076] In the above embodiment, when one controller 103A satisfies a predetermined return condition different from a predetermined transition condition, it transitions from the power-saving mode 1003 to the normal state 1001. By setting the predetermined transition condition and the predetermined return condition to be different in this way, it is possible to avoid frequent transitions between the power-saving mode 1003 and the normal state 1001.

[0077] In the above embodiment, one controller 103A divides and manages the log buffer into multiple unit log buffers. This makes it easy to set the log buffer to a second range narrower than the first range, or back, for each unit buffer.

[0078] In the above embodiment, when the remaining amount of data in the log buffer becomes insufficient, one controller 103A performs a destaging acceleration process to destage the dirty data, data 201 and control information 200, to a non-volatile storage medium. This makes it less likely for the remaining amount of data in the log buffer to become insufficient, and ensures that the log buffer can be reliably set to or returned to a second range that is narrower than the first range.

[0079] It should be noted that the present invention is not limited to the embodiments described above, but includes various modifications and equivalent configurations within the spirit of the attached claims. For example, the embodiments described above are described in detail for the purpose of clearly illustrating the present invention, and the present invention is not necessarily limited to having all the configurations described. Also, each element described in parallel in this embodiment may be configured such that at least one of the elements is connected in series with respect to the other elements. [Industrial applicability]

[0080] The present invention can be applied to a storage system relating to a technique for storing journal data in a log buffer by journaling. [Explanation of Symbols]

[0081] 100...Storage system, 102A, 102B...Host, 103A, 103A...Controller, 105...Memory, ...Memory backup drive, 110...Drive.

Claims

1. A storage system comprising multiple controllers that control data input / output processing between a host computer and a drive, One of the aforementioned controllers is Journaling is performed in conjunction with the input / output processing of the aforementioned data, and journal data relating to the input / output processing of data between the host computer and the drive is written to a log buffer allocated over a first range. When one of the aforementioned controllers satisfies predetermined transition conditions, it then transitions from the normal state to a power-saving mode in which the other controller is shut down. When the other controller is stopped in the power-saving mode to which the system has been transitioned, the log buffer is secured to a second range that is narrower than the first range, and journaling is performed in conjunction with the input / output processing of data between the host computer and the drive. When restarting the other controller, the restore process is executed using the journal data read from the log buffer allocated over the second range. A storage system characterized by the following features.

2. The aforementioned one controller is As a predetermined transition condition, the system initiates a transition to a power-saving mode in which the other controller is shut down, provided that the processing load of the other controller is lower than that of the normal state. The storage system according to feature 1.

3. The aforementioned one controller is When a predetermined return condition different from the predetermined transition condition is met, the system transitions from the power-saving mode to the normal state. The storage system according to feature 1.

4. The aforementioned one controller is The log buffer is divided into multiple unit log buffers for management. The storage system according to feature 1.

5. The aforementioned one controller is When the remaining space in the log buffer becomes insufficient, a destaging acceleration process is executed to destage the dirty data and control information to a non-volatile storage medium. The storage system according to feature 1.

6. A data protection method for a storage system comprising multiple controllers that control data input / output processing between a host computer and a drive, A write step in which one of the plurality of controllers performs journaling in conjunction with the data input / output processing and writes journal data relating to the data input / output processing between the host computer and the drive to a log buffer allocated over a first range, A power-saving mode transition step in which, when one of the controllers satisfies predetermined transition conditions, it then starts a transition from the normal state to a power-saving mode in which the other controllers are stopped, The journaling step involves one controller, when the other controller is stopped in the power-saving mode to which it has transitioned, securing the log buffer to a second range that is narrower than the first range, and then performing journaling in conjunction with data input / output processing between the host computer and the drive, A restore step in which one controller restarts the other controller and performs a restore process using the journal data read from the log buffer reserved over the second range, A data protection method characterized by having the following features.

Citation Information

Patent Citations

  • Computer system and data migration method thereof

    JP2014519061A