Storage system
Patent Information
- Application Number
- JP2023010756
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-01-27
- Publication Date
- 2025-03-06
- Estimated Expiration
- 2043-01-27
AI Technical Summary
In storage systems requiring high reliability and controller updates, metadata conversion during controller updates leads to performance degradation due to overhead from condition determination and branching at each metadata access point, even when the controller is not being updated.
Implement a storage system with dual code paths for metadata access: one for normal operations and one for controller updates, using access control codes to switch between pre- and post-conversion metadata without overhead during non-update times, and dynamically selecting the appropriate code based on update status.
Enables controller updates without stopping access, reducing performance degradation by avoiding unnecessary metadata determination and switching processes during normal operations, thus maintaining system performance.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a storage system. [Background technology]
[0002] Today, in many computer systems that require high reliability in data storage, storage systems equipped with storage media for storing data and multiple controllers for executing access processing are used for the purpose of improving performance and availability. These storage systems have control redundancy between the multiple controllers, and can provide access to storage areas to external hosts even if some of the controllers stop working.
[0003] Furthermore, in recent storage systems equipped with multiple controllers, a function has been provided that allows the controller to be replaced with a new device while continuing to provide access to the host.
[0004] By using this function to update the controller hardware, it is possible to improve the access performance and functions of the storage without stopping access from the host. Also, since the storage media that constitute the storage can be used as is, it has the advantage that the device price required to update the storage is reduced compared to updating the entire storage system, and copying data in the storage media that accompanies the work of updating the storage system is not required.
[0005] When updating a storage system controller, a conversion process occurs for metadata, including control information, from the original controller to the new controller. In many cases, the new controller will increase the amount of resources required to improve performance as the hardware is updated. In addition, software functions are also enhanced and improved. As the information required to control the controller changes with these hardware and software changes, the format of the metadata changes between controller generations. On the other hand, since the storage medium is not updated, it is necessary to transfer the control information required to access the stored data. Therefore, the metadata used by the original controller is converted to match the hardware configuration and software control of the new controller and transferred.
[0006] When converting metadata held by a storage controller without stopping access from the host, especially in a storage system that requires redundancy even during controller update work, the metadata conversion process and the process for access requests from the host are executed in parallel within the same controller. At this time, while the metadata to be used in the new controller is generated by the metadata conversion, the access request process uses the original metadata until the metadata conversion is complete, and references and updates occur. Therefore, both the metadata before the conversion and the new metadata after the conversion are present in the memory of the controller that performs the conversion process until the metadata conversion process is completed and control is handed over to the new controller.
[0007] In a situation where metadata conversion processing is performed without stopping access from the host and two types of metadata, the original metadata and the new metadata, exist in memory, it becomes necessary to refer to and update the metadata according to the completion status of the metadata conversion processing and the control handover.For example, when updating the original metadata by access processing, if the conversion of the metadata to be updated has already been completed, it becomes necessary to reflect the updates to the metadata in the new metadata after conversion, so it becomes necessary to update both the original metadata and the new metadata.
[0008] On the other hand, if the conversion of the metadata to be updated is incomplete, the update of the metadata can be reflected in the new metadata after conversion by updating only the original metadata. Also, after the conversion of the metadata is completed, it becomes necessary to switch the metadata used in the access process from the original metadata before conversion to the new metadata after conversion before and after the control of the storage system is handed over to a new controller.
[0009] Patent Document 1 discloses a technique for adding a function to each metadata access part of the control software of a storage system to switch the metadata of the access destination according to the progress of the conversion process to metadata corresponding to a new controller during the controller update work and the controller control switching status. By adding a process to switch the metadata of the access destination in each metadata access of the control software, it is possible to handle the conversion process of the metadata format accompanying the controller update without changing the operation procedure of the control software other than the metadata access. [Prior art documents] [Patent documents]
[0010] [Patent Document 1] JP 2022-55614 A Summary of the Invention [Problem to be solved by the invention]
[0011] In order for each part of the control software of the controller to continue processing access requests from the host during the controller update operation without being aware of the status of the metadata conversion process and the handover of controller control, it is necessary to add processing to determine and switch the metadata of the access destination in each part that accesses the metadata. At this time, overhead occurs because condition judgments and branching are performed at each access point of the metadata in the control software. Furthermore, if processing to determine and switch the metadata of the access destination is added, condition judgments and branching will be performed at each access point of the metadata regardless of whether the controller update is being performed or not.
[0012] In other words, if a process for determining and switching the metadata of the access destination is added to the control software so that access requests from the host can continue even during a controller update operation, overhead occurs even when the controller update operation is not performed, resulting in a decrease in processing performance.Since controller update operations in a storage system are not performed frequently, most of the time during which performance degradation due to overhead is affected is unrelated to the controller update, and the performance degradation occurs due to the addition of unnecessary processing. [Means for solving the problem]
[0013] One aspect of the present invention is a storage system including a controller, the controller including one or more processors and one or more memories storing one or more programs executed by the one or more processors, the one or more processors performing a conversion process to convert pre-converted metadata for control of the storage system into converted metadata in a format corresponding to a new controller to be newly implemented in the storage system, and during the conversion process, performing access destination switching control between the pre-converted metadata and the converted metadata using an access control code, and accessing the pre-converted metadata without using the access control code before the start of the conversion process. Effect of the Invention
[0014] According to one aspect of the present invention, it is possible to perform controller installation work in a storage system without stopping access from a host, and to mitigate performance degradation when controller installation work is not being performed.
[0015] Problems, configurations and effects other than those described above will become apparent from the following description of the embodiments. [Brief description of the drawings]
[0016] [Figure 1] FIG. 2 is a diagram illustrating an example of a node configuration of a storage system in a first embodiment. [Diagram 2] FIG. 2 is a diagram illustrating an example of the configuration of a controller in the first embodiment. [Diagram 3] 4 is a diagram illustrating an example of the configuration of stored data in a memory of a controller in the first embodiment; FIG. [Figure 4A] 11 is a diagram illustrating an example of the configuration of pre-update software stored in a memory of a controller in the first embodiment. FIG. [Figure 4B] FIG. 11 is a diagram illustrating an example of the configuration of updated software stored in a memory of a controller in the first embodiment. [Diagram 5] 13 is a diagram showing an example of the configuration of a metadata conversion control information area stored in a memory of a controller in the first embodiment. FIG. [Figure 6] FIG. 11 is a diagram illustrating an example of the configuration of stored data in a memory of a new controller in the first embodiment; [Figure 7] FIG. 11 is a diagram illustrating an example of the configuration of a program area stored in a memory of a new controller in the first embodiment. [Figure 8] 13 is a flowchart showing the flow of processing when a storage control program of a controller reads metadata to be accessed in a state in which a metadata switching program is applied in the first embodiment. [Figure 9]13 is a flowchart showing the flow of processing when a storage control program of a controller writes metadata to be accessed in a state in which a metadata switching program is applied in the first embodiment. [Figure 10] 13 is a flowchart showing the flow of a series of processes for updating a controller to a new controller in the first embodiment. [Figure 11] FIG. 11 is a diagram illustrating an example of the configuration of a program area stored in a memory of a controller in the second embodiment. [Figure 12] FIG. 11 is a diagram illustrating an example of the configuration of a metadata area stored in a memory of a controller in the second embodiment. [Figure 13] 13 is a flowchart showing the flow of a series of processes for updating a controller to a new controller in the second embodiment. [Figure 14] 10 is a flowchart showing the flow of a series of processes for executing a control process code in a controller in the second embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0017] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. In the attached drawings, functionally identical elements may be indicated by the same numbers. The attached drawings show specific embodiments and examples according to the principles of the present invention. These embodiments and examples are for understanding the present invention and should not be used to interpret the present invention in a limited manner. Not all elements described in the embodiments and examples are necessarily required to solve the problems in the present invention.
[0018] In one embodiment of this specification, in order to prevent the occurrence of overhead in a state other than during a controller update operation that requires the determination and switching of metadata of an access destination, the determination and switching process of metadata of an access destination is applied to the metadata access part of the control software only in a state in which the controller update operation is being performed. When the controller update operation is not being performed, the control software does not need to handle two types of metadata, and the occurrence of overhead is avoided by directly accessing the metadata without going through the determination and switching process of metadata of an access destination.
[0019] To achieve this, two types of code are prepared for each metadata access point under the control of the original controller or the new controller: one with the process of determining and switching the metadata of the access destination applied, and one without the process.Then, except during the controller update work, the two types of code are used so that the code that does not apply the process of determining and switching the metadata of the access destination is used.The two types of code are used either by switching the code to be statically executed when the controller control software is updated, or by preparing the two types of code in advance in an operable state and dynamically switching the code to be executed when the controller update work is performed.
[0020] When switching the statically executed code, the control software of the controller is updated in the controller update procedure. The timing of updating the control software differs depending on whether the metadata conversion process is performed in the original controller or the new controller. When the metadata conversion process is performed in the original controller, the control software of the original controller is updated to code to which the access destination metadata determination and switching functions are applied before the conversion process starts. By performing this procedure, it is not necessary to apply a process that causes overhead until just before the controller update process, so that a performance degradation can be avoided. Also, when the metadata conversion process is performed in the new controller, a function to determine and switch the access destination metadata is applied in advance to the control software of the new controller, which is the update destination. Then, after the metadata conversion process is completed and control of the storage system is taken over from the controller, the control software of the new controller is updated to code to which the access destination metadata determination and switching functions are not applied, thereby avoiding a performance degradation after the controller update process is completed.
[0021] On the other hand, when dynamically switching the code to be executed, the controller that performs the metadata conversion process prepares two types of code, one with the metadata determination and switching function of the access destination applied to the metadata access location in the control software, in a state that the controller can execute, and the other without the application of the metadata determination and switching function, and determines whether the controller is performing an update operation and selects the code to be executed. Then, by performing the process of selecting the code to be executed in units of code that includes multiple metadata accesses, it is possible to avoid the occurrence of judgment and branching processes each time metadata is accessed. The process of selecting the code to be executed is performed for each module of a certain function, such as a function, for example, and condition judgment and branching are performed in units that include multiple metadata accesses, reducing overhead and mitigating performance degradation associated with condition judgment and branching.
[0022] <First Example> In this embodiment, an example will be described in which a controller is updated without stopping access from a host in a storage system in which multiple controllers share storage media. The storage media constituting the storage system will continue to be used as is even after the controller is updated.
[0023] FIG. 1 is a diagram showing an example of the configuration of a storage system and a host that issues an access request to the storage system in the first embodiment.
[0024] The storage system includes controllers 101A and 101B, a storage media node 102, and a storage medium 103 included in the storage media node 102. The storage medium 103 is also called a storage drive, and may be, for example, an HDD or SSD. The number of each component of the storage system is arbitrary.
[0025] The controllers 101A and 101B are connected by an inter-controller connection 104, and the controllers 101A, 101B and the storage media node 102 are connected by a back-end connection 105. In addition, the controllers 101A, 101B are connected to a network 106, and provide access to an external host 107 and a management host 108.
[0026] The controllers 101A and 101B provide the host 107 with access to storage mapped to a storage area of the storage medium 103.
[0027] The storage media node 102 includes a storage medium 103 to which a storage area is mapped, and provides access to the controllers 101A and 101B. The controllers 101A and 101B share the storage medium 103 of the storage media node 102, and either controller can directly access the storage medium 103 without going through the other controller.
[0028] The storage medium 103 provides a storage area. The storage medium 103 is shared by the controllers 101A and 101B and is accessed via a back-end connection 105.
[0029] The inter-controller connection 104 connects the controllers 101A and 101B, and provides a communication path for high-speed sharing of control information and written data between the controllers.
[0030] The back-end connection 105 connects between the controllers 101A, 101B and the storage medium node 102, and provides an access path from the controllers 101A, 101B to the storage medium 103.
[0031] A network 106 connects the controllers 101A and 101B to a host 107 and a management host 108, and provides an access path from the host 107 to the storage system.
[0032] The host 107 issues an access request to the storage area of the storage system provided by the controllers 101A, 101B.
[0033] The management host 108 performs operations required for updating on the controllers 101A, 101B of the storage system via the network 106.
[0034] After the controller update work starts, the new controllers 109A and 109B are connected to the inter-controller connection 104, the back-end connection 105, and the network 106, receive the metadata converted by the existing controllers 101A and 101B, respectively, and take over control of the storage system. Here, it is assumed that the new controller 109A receives the converted metadata from the existing controller 101A, and the new controller 109B receives the converted metadata from the existing controller 101B. In this embodiment, it is assumed that the metadata is taken over from one of the existing controllers 101 to one of the new controllers 109, but it is also possible to take over the metadata from one of the existing controllers 101 to both of the new controllers 109, for example.
[0035] It should be noted that the controllers 101A and 101B may remain, and an additional controller may be added. The additional controller is connected to the controllers 101A and 101B by inter-controller connections 104, is connected to the storage media node 102 by a back-end connection 105, and is connected to the host 107 and the management host 108 via the network 106.
[0036] 1, for example, the connection of the controllers 101A and 101B to the network 106 may also serve as the inter-controller connection 104. The storage medium node 102 may be connected to the network 106, and the network 106 may also serve as the back-end connection 105.
[0037] 2 is a diagram showing an example of the configuration of the controllers 101A, 101B and new controllers 109A, 109B in the first embodiment. Note that the controllers 101A and 101B may have the same configuration, and only the controller 101A is shown. Furthermore, the new controllers 109A and 109B may also have the same configuration as the controllers 101A and 101B, although the performance and capacity of the individual components differ from those of the controllers 101A and 101B.
[0038] The controller 101A has one or more processors 201, one or more memories 202, one or more inter-controller connection I / Fs 203, one or more back-end connection I / Fs 204, and one or more network I / Fs 205.
[0039] The processor 201 uses the memory 202 to execute a program that realizes a controller function, and provides the host 107 with access to a volume, which is a logical storage area, and the physical storage area of the storage medium 103 allocated thereto.
[0040] The memory 202 stores the programs that run on the processor 201, as well as metadata used by the programs and data that needs to be temporarily stored.
[0041] The inter-controller connection I / F 203 is connected to the inter-controller connection 104, and transmits and receives control information and information relating to sharing of written data with the controller 101B.
[0042] The back-end connection I / F 204 is connected to the back-end connection 105 , and transmits and receives data related to access to the storage medium 103 connected to the storage medium node 102 .
[0043] The network I / F 205 is connected to the network 106 and is used for sending and receiving data related to an access request from the host 107 and for sending and receiving data to and from the management host 108 .
[0044] There are no particular limitations on the communication standards and protocols in the inter-controller connection I / F 203, back-end connection I / F 204, and network I / F 205 as long as the above-mentioned operations are possible. Furthermore, when the network 106 also serves as the inter-controller connection 104, the network I / F 205 may also be configured to also serve as the inter-controller connection I / F 203. Similarly, when the network 106 also serves as the back-end connection 105, the network I / F 205 may also be configured to also serve as the back-end connection I / F 204.
[0045] 3 is a diagram showing an example of the configuration of data stored in memory 202 included in controllers 101A and 101B in the first embodiment. Memory 202 has a program area 301, a metadata area 302, a converted metadata area 303, and a metadata conversion control information area 304.
[0046] The program area 301 stores a program that is executed by the processor 201 to realize the controller function of the storage system.
[0047] The metadata area 302 stores metadata including management information of the storage area and control information of the controller, which is used by the programs stored in the program area 301 to control the storage system.
[0048] The converted metadata area 303 stores metadata that has been converted from the metadata stored in the metadata area 302 after the controller update operation has started, into a format that can be used by the new controllers 109A, 109B.
[0049] The metadata conversion control information area 304 stores control information related to the conversion process of the metadata stored in the metadata area 302 and the process of transferring control to the new controllers 109A and 109B.
[0050] The converted metadata area 303 and the metadata conversion control information area 304 are not necessary before starting the controller update operation, but may be prepared in advance.
[0051] 4A and 4B are diagrams showing configuration examples of the program area 301 included in the memory 202 of the controllers 101A and 101B in the first embodiment. FIGS. 4A and 4B respectively show the configurations of the program area 301 before and after a software update in the controller update procedure. Software added by the update is transmitted, for example, from the management host 108 together with a software update instruction. As shown in FIG. 4A, the program area 301 before the software update stores a storage control program 401. As shown in FIG. 4B, the program area 301 after the software update stores a storage control program 401, a metadata conversion program 402, a metadata switching program 403, and a control transfer program 404. The metadata switching program 403 is an access control code that controls access to metadata.
[0052] The storage control program 401 controls the entire storage system, executes access requests from the host 107, and executes processes required for managing and controlling the controllers 101A and 101B.
[0053] After the controller update work begins, the metadata conversion program 402 converts the metadata used by the storage control program 401, which is stored in the metadata area 302 in the memory 202, into a format used by the new controllers 109A, 109B, and stores the converted metadata in the converted metadata area 303.
[0054] The metadata switching program 403 is applied to a location where metadata is accessed in the storage control program 401 after the controller update operation has started. At the application location, the metadata switching program 403 checks the status of the metadata conversion process by the metadata conversion program 402 when reading or writing metadata, and checks whether the transfer of control of the storage system by the control transfer program 404 has been completed.
[0055] The metadata switching program 403 determines whether the storage control program 401 should access the metadata stored in the metadata area 302 or the converted metadata area 303, and reads and writes the metadata. When the metadata switching program 403 is applied, overhead occurs during the above-mentioned determination process when accessing the metadata, and the access performance of the storage system decreases compared to when the metadata switching program 403 is not applied.
[0056] After the controller update work has begun, the control transfer program 404 receives instructions from the management host 108 via the network 106 to start the metadata conversion process using the metadata conversion program 402, transfer the metadata stored in the converted metadata area 303 from the controllers 101A, 101B to the new controllers 109A, 109B, and transfer control of the storage system.
[0057] The metadata conversion program 402 and the control transfer program 404 are not necessary before starting the controller update work, but may be installed in advance.
[0058] 5 is a diagram showing an example of the configuration of the metadata conversion control information area 304 included in the memory 202 of the controllers 101A and 101B in the first embodiment. The metadata conversion control information area 304 stores metadata conversion progress information 501 and a controller control transfer flag 502.
[0059] The metadata conversion progress information 501 indicates the progress of the conversion process for the metadata stored in the metadata area 302. The metadata conversion progress information 501 is updated by the metadata conversion program 402 according to the progress of the metadata conversion process. The format of the metadata conversion progress information 501 depends on the order in which the conversion process is performed on the metadata, and for example, when the metadata conversion process is performed in the order of the addresses in which the metadata is stored, the format is represented by the address at which the metadata conversion process is completed.
[0060] The controller control transfer flag 502 indicates the progress of the transfer of control to the new controller, and when control is transferred from the controller 101A or 101B to the new controller 109A or 109B, it is set for all the controllers 101A, 101B by the control transfer program 404. The controller control transfer flag 502 may be in a form other than a single flag indicating that the transfer of control to the new controller has been completed in any controller, and may be represented, for example, by a set of flags indicating whether the control of each of the controllers 101A, 101B has been transferred to the new controllers 109A, 109B.
[0061] 6 is a diagram showing an example of the configuration of areas of stored data in memory 202 included in new controllers 109A and 109B in the first embodiment. Memory 202 has a new program area 601 and a new metadata area 602.
[0062] The new program area 601 stores programs that are executed by the processor 201 in the new controllers 109A, 109B and that realize new controller functions of the storage system.
[0063] The new metadata area 602 stores the converted metadata transferred from the controllers 101A, 101B. Then, the program stored in the new program area 601 starts controlling the storage system using the converted metadata stored in the new metadata area 602 after control is transferred from the controllers 101A, 101B.
[0064] FIG. 7 is a diagram showing an example of the configuration of the new program area 601 included in the memory 202 of the new controllers 109A and 109B in the first embodiment.
[0065] The new program area 601 stores a new storage control program 701 and a control takeover program 702 .
[0066] The new storage control program 701 controls the entire storage system after the controller is updated, and executes access requests from the host 107 and executes processes required for managing and controlling the new controllers 109A, 109B. Control of the storage system by the new storage control program 701 starts operation when control is transferred from the controllers 101A, 101B in the control takeover program 702.
[0067] The control takeover program 702 receives the converted metadata from the controllers 101A, 101B, and when control of the storage system is transferred, control by the new storage control program 701 begins.
[0068] Fig. 8 is a flowchart showing the flow of processing when the storage control program 401 of the controllers 101A and 101B reads metadata to be accessed in a state in which the metadata switching program 403 is applied in the first embodiment. The operation based on the flowchart in Fig. 8 is as follows.
[0069] Step 801: The metadata switching program 403 refers to the controller control transfer flag 502 included in the metadata conversion control information area 304 to confirm whether the control of either the controller 101A, 101B has been transferred to the new controller 109A, 109B and whether the converted metadata is valid, and then proceeds to step 802.
[0070] Step 802: If the result of the check in step 801 shows that the pre-conversion metadata is valid (if the post-conversion metadata is not yet valid), step 803 is carried out; if the post-conversion metadata is valid, step 804 is carried out.
[0071] Step 803: The storage control program 401 reads the pre-conversion metadata to be accessed that is stored in the metadata area 302 via the metadata switching program 403, and ends a series of operations.
[0072] Step 804: The storage control program 401 reads the converted metadata to be accessed stored in the converted metadata area 303 via the metadata switching program 403, and ends the series of operations. This allows the old controllers 101A, 101B to operate properly together with the new controllers 109A, 109B even after the new controllers 109A, 109B start operating. In this embodiment, in order to prevent a mixture of controllers accessing converted metadata and pre-converted metadata due to the operation of the flowchart in Fig. 8, the transfer of control of all controllers may be delayed until the metadata conversion of all controllers is completed.
[0073] Fig. 9 is a flowchart showing the flow of processing when the storage control program 401 of the controllers 101A and 101B in the first embodiment writes metadata to be accessed in a state in which the metadata switching program 403 is applied. The operation based on the flowchart in Fig. 9 is as follows.
[0074] Step 901: The metadata switching program 403 refers to the controller control transfer flag 502 included in the metadata conversion control information area 304 to confirm whether the control of either the controller 101A, 101B has been transferred to the new controller 109A, 109B and whether the converted metadata is valid, and then proceeds to step 902.
[0075] Step 902: If the result of the check in step 901 is that the pre-conversion metadata is valid (if the post-conversion metadata is not yet valid), step 903 is carried out; if the post-conversion metadata is valid, step 906 is carried out.
[0076] Step 903 : The storage control program 401 performs writing to the pre-conversion write target metadata stored in the metadata area 302 via the metadata switching program 403 , and then performs step 904 .
[0077] Step 904 : The metadata switching program 403 refers to the metadata conversion progress information 501 included in the metadata conversion control information area 304 to check whether the metadata to be written has been converted by the metadata conversion program 402 .
[0078] Step 905: If it is determined in step 904 that the conversion process of the metadata to be written has not been completed, the series of operations is terminated. If the conversion process has been completed, step 906 is carried out.
[0079] Step 906: The storage control program 401 writes the converted metadata to be written, stored in the converted metadata area 303, via the metadata switching program 403, and ends the series of operations. If the conversion process of the metadata to be written is not completed in step 905, the operation is ended without updating the converted metadata area 303, but the metadata to be written may be converted and stored in the converted metadata area 303. In this embodiment, in order to prevent a mixture of controllers accessing the converted metadata and the metadata before conversion due to the operation of the flowchart in Fig. 9, the transfer of control of all controllers may be delayed until the metadata conversion of all controllers is completed.
[0080] Fig. 10 is a flowchart showing the flow of update processing from the controllers 101A, 101B to the new controllers 109A, 109B in the first embodiment. The operation based on the flowchart in Fig. 10 is as follows.
[0081] Step 1001: Upon receiving an instruction to start updating the controllers, the management host 108 instructs the controllers 101A, 101B to update to programs including the metadata conversion program 402, metadata switching program 403, and control transfer program 404, and then executes step 1002. In this step, the metadata switching program 403 has not yet been applied to the controllers 101A, 101B, and no degradation in performance of the storage system due to overhead has occurred.
[0082] Step 1002: The controllers 101A and 101B apply the metadata switching program 403 to the storage control program 401 stored in the program area 301 of the memory 202, and store the metadata conversion program 402 and the control transfer program 404 in the program area 301. The controllers 101A and 101B then start execution of the storage control program 401 to which the metadata switching program 403 has been applied, and then perform step 1003. After this step is completed, the metadata switching program 403 is executed when the metadata is accessed, causing a decrease in performance of the storage system due to overhead.
[0083] Step 1003: The control transfer program 404 waits until the person who is updating the controllers installs the new controllers 109A, 109B and connects them to the inter-controller connection 104, back-end connection 105, and network 106 in the same way as the controllers 101A, 101B. During the wait, the updated storage control program 401 continues to process access requests from the host 107. After the wait is completed, step 1004 is executed.
[0084] Step 1004: The control transfer program 404 instructs the metadata conversion program 402 to start converting the metadata stored in the metadata area 302. The metadata conversion program 402 converts the metadata in the metadata area 302 into a format usable by the new controllers 109A, 109B, stores the metadata in the converted metadata area 303, and then executes step 1005. During this step, the storage control program 401 determines the metadata to be accessed from the metadata area 302 and the converted metadata area 303 according to the metadata conversion processing status by the applied metadata switching program 403, and executes reading and writing.
[0085] Step 1005: The control transfer program 404 of the controller 101A transfers the converted metadata stored in the converted metadata area 303 by the metadata conversion program 402 to the new controller 109A via the inter-controller connection 104. The control transfer program 404 of the controller 101B transfers the converted metadata stored in the converted metadata area 303 by the metadata conversion program 402 to the new controller 109B via the inter-controller connection 104. The control takeover program 702 of the new controllers 109A, 109B stores the received metadata in the new metadata area 602 of the memory 202, and then performs step 1006.
[0086] Step 1006: When the transfer of the converted metadata to the new controllers 109A, 109B is completed, the control transfer program 404 stops processing of an access request from the host 107 in the storage control program 401, and transfers control of the storage system to the new controllers 109A, 109B through the inter-controller connection 104. The transfer of the converted metadata and the transfer of control may be performed independently between the two pairs of old and new controllers, or the transfer of control between the two controller pairs may be performed after the transfer of the converted metadata of both controllers 101A, 101B is completed. The control transfer program 404 also notifies the management host 108 that the control has been transferred to the new controllers 109A, 109B, and then performs step 1007.
[0087] Step 1007: The management host 108 instructs the host 107 to change the access destination controller of the storage system from the controllers 101A, 101B to the new controllers 109A, 109B, and then executes step 1008.
[0088] Step 1008: The control takeover program 702 of the new controllers 109A, 109B starts control by the new storage control program 701 to take over control of the storage system, and then executes step 1009. The new storage control program 701 of the new controllers 109A, 109B does not include a process for determining metadata of the access destination, so there is no degradation in the performance of the storage system due to overhead.
[0089] Step 1009: The controllers 101A and 101B stop operating, and are removed from the inter-controller connection 104, the back-end connection 105, and the network 106 by the person who updates the controllers, thereby completing a series of operations.
[0090] In the operations of steps 1005 and 1006, the path of communication between the controllers 101A, 101B and the new controllers 109A, 109B is not limited to the inter-controller connection 104, and may use the back-end connection 105 or the network 106. Furthermore, the transfer of metadata in step 1005 may be performed all at once after the conversion process of the metadata in step 1004 is completed, or may be performed by a method of sending metadata at any time from when the conversion is completed, for example.
[0091] According to this embodiment, in a storage system having multiple controllers, when updating a controller without stopping access to the host, it is possible to avoid performance degradation other than during the update work.
[0092] <Second Example> In this embodiment, an example of updating a controller without stopping access from a host in a storage system in which multiple controllers share a storage medium is described. As with the first embodiment, the storage medium of the storage system is assumed to continue to be used as is even after the controller is updated. In addition, in the description of this embodiment, differences in configuration and operation from the first embodiment are mainly described, and components, symbols, and operations that are not described are the same as those of the first embodiment.
[0093] 11 is a diagram showing an example of the configuration of a program area 301 included in the memory 202 of the controllers 101A and 101B in the second embodiment. The program area 301 stores a storage control program 1101, a normal time code 1102 (first code) constituting the storage control program 1101, a controller update time code 1103 (second code), a metadata conversion program 402, and a control transfer program 404.
[0094] The storage control program 1101 controls the entire storage system, and executes processes required for executing access requests from the host 107 and managing and controlling the controllers 101A and 101B. The storage control program 1101 also has normal time code 1102 that is executed when not updating the controller, and controller update time code 1103 that is executed only when updating the controller, corresponding to each process involving access to metadata. When executing each process having the normal time code 1102 and the controller update time code 1103, the storage control program 1101 checks whether a controller update is in progress and executes the controller update time code 1103 only when a controller update is in progress, and executes the normal time code 1102 in other cases, thereby mitigating the degradation of the storage system performance caused by overhead.
[0095] The normal code 1102 is code that executes the processing of the storage control program 1101. The normal code 1102 is prepared for processing involving access to metadata, and does not determine the metadata of the access destination when accessing metadata, but directly reads and writes the metadata stored in the metadata area 302 of the memory 202. The normal code 1102 for each processing of management and control of the controllers 101A, 101B is executed by the storage control program 1101 when the controller is not being updated.
[0096] The controller update time code 1103 is part of the code that executes the processing of the storage control program 1101, and is prepared for processing involving access to metadata along with the normal time code 1102. The controller update time code 1103 includes an access control code that controls the access destination of the metadata.
[0097] The controller update time code 1103 selects metadata to be accessed from the metadata stored in the metadata area 302 and the converted metadata area 303 of the memory 202 depending on the status of the metadata conversion process by the metadata conversion program 402 and whether the transfer of control of the storage system has been completed by the control transfer program 404. The controller update time code 1103 for each process of managing and controlling the controllers 101A, 101B involves overhead corresponding to the process of selecting the metadata to be accessed, and is therefore executed only when the controller is being updated.
[0098] In this embodiment, since the control software is not updated during the update work of the controllers 101A and 101B, the metadata conversion program 402 and the control transfer program 404 are prepared in advance before the start of the update work of the controllers.
[0099] 12 is a diagram showing an example of the configuration of the metadata area 302 included in the memory 202 of the controllers 101A and 101B in the second embodiment. In the metadata area 302, storage control information 1201 and a controller update flag 1202 are stored.
[0100] The storage control information 1201 is management information for the storage area and control information for the controller, which is used for controlling the storage system.
[0101] The controller update flag 1202 indicates whether or not the controller is being updated, and is set when an instruction to start the controller update work is received from the management host 108 .
[0102] Fig. 13 is a flowchart showing the flow of update processing from the controllers 101A, 101B to the new controllers 109A, 109B in the second embodiment. The operation based on the flowchart in Fig. 13 is as follows.
[0103] Step 1301: In response to an operation to start the update work of the controllers, the management host 108 instructs the controllers 101A and 101B to start the update processing of the controllers, and then executes step 1302.
[0104] Step 1302: When the control transfer program 404 of the controllers 101A, 101B receives an instruction to start controller update processing from the management host 108, it sets the controller update flag 1202 included in the metadata area 302 of the memory 202. It also starts conversion processing of the storage control information 1201 stored in the metadata area 302 by the metadata conversion program 402. Therefore, the controller update flag 1202 indicates the start of conversion processing. The metadata conversion program 402 converts the storage control information 1201 into a format usable by the new controllers 109A, 109B, stores it in the converted metadata area 303, and then performs step 1303.
[0105] Step 1303: The control transfer program 404 waits until the person who is updating the controllers installs the new controllers 109A, 109B and connects them to the inter-controller connection 104, back-end connection 105, and network 106 in the same way as the controllers 101A, 101B. During the wait, the storage control program 1101 continues to process access requests from the host 107. After the wait is completed, step 1304 is executed.
[0106] Step 1304: The control transfer program 404 transfers the converted metadata stored in the converted metadata area 303 by the metadata conversion program 402 to the new controllers 109A, 109B via the inter-controller connection 104. The control takeover program 702 of the new controllers 109A, 109B stores the received metadata in the new metadata area 602 of the memory 202, and then performs step 1305.
[0107] Step 1305: When the transfer of the converted metadata to the new controllers 109A, 109B is completed, the control transfer program 404 stops processing of access requests from the host 107 in the storage control program 1101, and transfers control of the storage system to the new controllers 109A, 109B via the inter-controller connection 104. The control transfer program 404 also notifies the management host 108 that control has been transferred to the new controllers 109A, 109B, and then performs step 1306.
[0108] Step 1306: The management host 108 instructs the host 107 to change the access destination controller of the storage system from the controllers 101A, 101B to the new controllers 109A, 109B, and then executes step 1307.
[0109] Step 1307: The control takeover program 702 of the new controllers 109A, 109B starts control by the new storage control program 701 to take over control of the storage system, and then executes step 1308. The new storage control program 701 of the new controllers 109A, 109B does not include a process for determining metadata of the access destination, so there is no degradation in the performance of the storage system due to overhead.
[0110] Step 1308: The controllers 101A and 101B stop operating, and are removed from the inter-controller connection 104, the back-end connection 105, and the network 106 by the person who updates the controllers, thereby completing a series of operations.
[0111] In the operations of steps 1304 and 1305, the path of communication between the controllers 101A, 101B and the new controllers 109A, 109B is not limited to the inter-controller connection 104, but may use the back-end connection 105 or the network .
[0112] Fig. 14 is a flowchart showing the flow of execution of control processing code by the storage control program 1101 in the controllers 101A, 101B in the second embodiment. The operation based on the flowchart in Fig. 14 is as follows.
[0113] Step 1401: The storage control program 1101 executes step 1402 if the controller update time code 1103 does not exist for the processing to be executed next, and executes step 1403 if it does exist.
[0114] Step 1402: The storage control program 1101 executes the normal code 1102 corresponding to the process to be executed next, and then executes step 1401.
[0115] Step 1403: The storage control program 1101 refers to the controller update flag 1202 included in the metadata area 302 of the memory 202 to check whether the controllers 101A and 101B are executing controller update processing. If the controller update processing is not being executed, step 1402 is executed, and if the controller update processing is being executed, step 1404 is executed.
[0116] Step 1404: The storage control program 1101 executes the controller update time code 1103 to which the selection function of the access destination metadata has been applied in the metadata access in the processing to be executed next, and then executes step 1401.
[0117] According to this embodiment, in a storage system having multiple controllers, when updating a controller without suspending access to the host, it is possible to mitigate performance degradation other than during the update work. [Explanation of symbols]
[0118] 101...controller, 102...storage medium node, 103...storage medium, 104...inter-controller connection, 105...back-end connection, 106...network, 107...host, 108...management host, 109...new controller, 201...processor, 202...memory, 203...inter-controller connection I / F, 204...back-end connection I / F, 205...network I / F, 301...program area, 302...metadata area, 303...conversion metadata area, 304...metadata conversion control information area, 401...storage storage control program, 402...metadata conversion program, 403...metadata switching program, 404...control transfer program, 501...metadata conversion progress information, 502...controller control transfer flag, 601...new program area, 602...new metadata area, 701...new storage control program, 702...control takeover program, 1101...storage control program, 1102...normal time code, 1103...controller update time code, 1201...storage control information, 1202...controller update flag
Claims
1. A storage system including a controller, The controller: one or more processors; one or more memories storing one or more programs to be executed by the one or more processors; The one or more processors: Executing a conversion process to convert pre-conversion metadata for controlling the storage system into post-conversion metadata in a format compatible with a new controller newly implemented in the storage system; During the conversion process, an access control code is used to switch between the pre-conversion metadata and the post-conversion metadata; and A storage system that accesses the pre-conversion metadata without using the access control code before the conversion process starts.
2. 2. The storage system according to claim 1, After the conversion process is completed and the converted metadata is sent to the new controller, the one or more processors determine to access the converted metadata in accordance with the access control code.
3. 3. The storage system according to claim 2, The one or more processors read the pre-conversion metadata in accordance with the access control code during the conversion process.
4. 3. The storage system according to claim 2, The one or more processors, during the conversion process, updating a portion of the pre-conversion metadata; determining whether the portion has already been transformed in accordance with the access control code; If the portion has already been converted, the storage system updates a portion of the converted metadata corresponding to the portion.
5. 2. The storage system according to claim 1, The one or more processors: before starting the conversion process, executing first software from which the access control code has been removed to access the pre-conversion metadata; A storage system that updates the first software with second software including the access control code, and starts the conversion process in accordance with the second software.
6. 2. The storage system according to claim 1, the one or more processors execute a storage control program to process host requests; the storage control program includes first code and second code for one process, the first code does not include the access control code, and the second code includes the access control code; the one or more processors access the pre-transformed metadata in accordance with the first code; the one or more processors access a selected one of the pre-transformation metadata and the post-transformation metadata in accordance with the second code; the one or more memories store a flag that manages the start of the conversion process; The one or more processors refer to the flag when executing the one process, and determine whether to use the first code or the second code.
7. A method for controlling a storage system, comprising: The storage system includes a controller. The controller: one or more processors; one or more memories storing one or more programs to be executed by the one or more processors; The control method further comprises the step of: Executing a conversion process to convert pre-conversion metadata for controlling the storage system into post-conversion metadata in a format compatible with a new controller newly implemented in the storage system; During the conversion process, an access control code is used to switch between the pre-conversion metadata and the post-conversion metadata; and A control method for accessing the pre-conversion metadata without using the access control code before the start of the conversion process.