STORAGE SYSTEM AND METHOD FOR CONTROLLING STORAGE SYSTEM - Patent application
The method of coexisting old and new storage controllers during upgrades addresses the challenges of hardware differences and connectivity limits, ensuring non-disruptive transitions and maintaining system performance and redundancy in storage systems.
Patent Information
- Application Number
- JP2022010702
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-04-09
- Filing Date
- 2022-01-27
- Publication Date
- 2025-01-14
- Estimated Expiration
- 2042-01-27
AI Technical Summary
Existing storage systems face challenges in upgrading storage controllers without interruption, particularly due to hardware differences and the need to apply control logic post-upgrade, and there is a limit to the number of storage controllers that can be connected, leading to potential performance and redundancy issues.
A method for upgrading storage controllers in a multi-controller system by temporarily coexisting old and new controllers, managing controller replacements to maintain redundancy and performance, involving controlled addition and removal of new controllers while ensuring compatibility and data migration without interruption.
Enables non-disruptive hardware and software updates in storage systems, maintaining redundancy and performance by strategically adding and removing controllers, ensuring seamless transitions and compatibility with new control logic.
Smart Images

Figure 0007612623000001 
Figure 0007612623000002 
Figure 0007612623000003
Abstract
Description
[Technical field]
[0001] The present invention relates to replacement and upgrade of a storage controller in a storage system that uses a flash memory or a magnetic disk as a storage (storage medium) device. [Background technology]
[0002] In recent years, the increasing capacity of NAND flash memory has led to storage systems storing large amounts of data. In addition, storage systems are required to be able to replace their hardware and software with the latest ones without affecting the business of upper-level applications. Normally, replacing a storage system requires time for the configuration of the new storage system and the data migration process.
[0003] Patent Document 1 shows an invention for updating storage system software without interruption. After a software update, both new and old data formats exist, and the new data contains references to data in the old format. When data is updated, it can be updated to the new data format without stopping data reading and writing by writing it in the new data format.
[0004] Patent Document 2 shows an invention for performing non-disruptive data migration between multiple storage systems. In order to make the host recognize that it is a single storage system, a virtual storage system, virtual port, and virtual logical unit (LUN) are configured across multiple storages. By associating the port name and port address of the migration source physical port with the virtual port name and port address of the migration destination system, migration to the new storage system can be completed without interruption.
[0005] In a dual-controller storage system, there is a method for updating the storage system hardware without stopping it. This method allows you to update to a new controller without moving data from the connected drives. In addition, the configuration information of the storage system is maintained. The new hardware is replaced by replacing the storage controllers one by one in turn. This is a common method for replacing controllers in a storage system. [Prior art documents] [Patent documents]
[0006] [Patent Document 1] U.S. Patent No. 9,959,043 [Patent Document 2] U.S. Patent No. 9,098,211 Summary of the Invention [Problem to be solved by the invention]
[0007] In Patent Document 1, when the data format of each data in a logical volume is updated, the new data format is supported by having a reference from the new data format to the old data while maintaining the old data format. However, when upgrading a storage controller in a storage system, there exists a control logic that must be applied after the upgrade of the storage controller is completed due to differences in the hardware components of the hardware storage controller and the specifications of the storage system. For example, a new storage controller may be equipped with a powerful CPU or hardware offload engine, which may enable the adoption of data encryption or data compression algorithms that require higher computational costs. Patent Document 1 does not disclose a method for determining the start of application of these control logics.
[0008] The present invention solves the following problems when updating the hardware and software of a storage system without interruption.
[0009] The first problem is that it is necessary to operate control logic that can only operate with the new storage controller in a state where the old storage controller does not exist in the storage system. Specifically, no matter how many storage controllers exist in the storage system, it is necessary to switch the control logic after all storage controllers have been upgraded to the new storage controller.
[0010] The second issue is to prevent a decrease in the performance and redundancy of the storage system caused by a reduction in the number of storage controllers and the number of physical ports due to an update. However, due to hardware or software constraints, there is an upper limit to the number of storage controllers that can be connected to a storage system, and when upgrading a storage controller, the maximum number of storage controllers that can be connected must be taken into consideration. [Means for solving the problem]
[0011] In order to solve at least one of the above problems, a representative example of the invention disclosed in this application is as follows: That is, a storage system having a storage drive having a storage medium for storing data, and a plurality of storage control units having a processor, memory, and ports for processing data input / output to the storage drive, holds information relating to a list of the storage control units implemented in the storage system and the maximum number of the storage control units that can be implemented in the storage system, and when replacing a storage control unit, a configuration for moving from a storage control unit to be removed to a storage control unit to be added based on the number of the implemented storage control units and the maximum number of the implementable storage control units is configured by the other storage control units. of The present invention is characterized in that it determines whether to move the object through a wire or directly. Effect of the Invention
[0012] According to one aspect of the present invention, in a multi-controller storage system, it is possible to update to new hardware and new software without interruption, while maintaining redundancy and minimizing the effects of performance degradation, depending on the number of connected storage controllers.
[0013] In addition, when sharing a drive box, the drives connected to the old storage controller can be transferred to the new storage controller as is.
[0014] Other objects, configurations and advantages than those mentioned above will become apparent from the following description of the embodiments. [Brief description of the drawings]
[0015] [Figure 1] 1 is a block diagram showing a configuration of a storage system according to a first embodiment of the present invention. [Figure 2A] FIG. 11 is an explanatory diagram showing an overview of a procedure for upgrading a storage controller when the number of storage controllers is less than the maximum number of the storage system in the first embodiment of the present invention. [Figure 2B] FIG. 11 is an explanatory diagram showing an overview of a procedure for upgrading a storage controller when the number of storage controllers is less than the maximum number of the storage system in the first embodiment of the present invention. [Figure 2C] FIG. 11 is an explanatory diagram showing an overview of a procedure for upgrading a storage controller when the number of storage controllers is less than the maximum number of the storage system in the first embodiment of the present invention. [Figure 2D] FIG. 11 is an explanatory diagram showing an overview of a procedure for upgrading a storage controller when the number of storage controllers is less than the maximum number of the storage system in the first embodiment of the present invention. [Figure 2E]FIG. 11 is an explanatory diagram showing an overview of a procedure for upgrading a storage controller when the number of storage controllers is less than the maximum number of the storage system in the first embodiment of the present invention. [Figure 3A] FIG. 11 is an explanatory diagram showing an overview of a procedure for upgrading a storage controller when the number of storage controllers is equal to the maximum number of storage systems in the first embodiment of the present invention. [Figure 3B] FIG. 11 is an explanatory diagram showing an overview of a procedure for upgrading a storage controller when the number of storage controllers is equal to the maximum number of storage systems in the first embodiment of the present invention. [Figure 3C] FIG. 11 is an explanatory diagram showing an overview of a procedure for upgrading a storage controller when the number of storage controllers is equal to the maximum number of storage systems in the first embodiment of the present invention. [Figure 3D] FIG. 11 is an explanatory diagram showing an overview of a procedure for upgrading a storage controller when the number of storage controllers is equal to the maximum number of storage systems in the first embodiment of the present invention. [Figure 3E] FIG. 11 is an explanatory diagram showing an overview of a procedure for upgrading a storage controller when the number of storage controllers is equal to the maximum number of storage systems in the first embodiment of the present invention. [Figure 3F] FIG. 11 is an explanatory diagram showing an overview of a procedure for upgrading a storage controller when the number of storage controllers is equal to the maximum number of storage systems in the first embodiment of the present invention. [Figure 3G] FIG. 11 is an explanatory diagram showing an overview of a procedure for upgrading a storage controller when the number of storage controllers is equal to the maximum number of storage systems in the first embodiment of the present invention. [Figure 4] FIG. 2 is an explanatory diagram illustrating a configuration of a memory included in a storage controller according to the first embodiment of the present invention. [Diagram 5] FIG. 2 is an explanatory diagram showing the configuration of a program area in a memory of a storage controller according to the first embodiment of the present invention. [Figure 6]FIG. 2 is an explanatory diagram illustrating a configuration of a shared memory in a memory of a storage controller according to the first embodiment of the present invention. [Figure 7] FIG. 2 is an explanatory diagram showing the configuration of hardware configuration information held in a memory of a storage controller according to the first embodiment of the present invention. [Figure 8] 1 is an explanatory diagram showing the configuration of mounted controller management information held in a memory of a storage controller according to a first embodiment of the present invention. FIG. [Figure 9] 4 is an explanatory diagram showing the configuration of LUN configuration information held in a memory of a storage controller according to the first embodiment of the present invention. FIG. [Figure 10] 11 is an explanatory diagram showing the configuration of FE port configuration information held in a memory of a storage controller according to the first embodiment of the present invention. FIG. [Figure 11] 1 is an explanatory diagram showing the configuration of takeover management information held in a memory of a storage controller according to a first embodiment of the present invention. FIG. [Figure 12] 1 is an explanatory diagram showing the configuration of control logic version management information held in a memory of a storage controller according to a first embodiment of the present invention. FIG. [Figure 13] 11 is a flowchart showing an overall controller update process executed by the storage controller according to the first embodiment of the present invention. [Figure 14] 11 is a flowchart showing a takeover process executed by a storage controller when an old storage controller is removed in a maximum configuration in the first embodiment of the present invention. [Figure 15] 11 is a flowchart showing a takeover process executed by a storage controller after a new storage controller is added in a maximum configuration in the first embodiment of the present invention. [Figure 16] 13 is a flowchart showing a takeover process executed by a storage controller after a new storage controller 112 is added when the configuration is less than the maximum configuration in the first embodiment of the present invention. [Figure 17]11 is a flowchart showing a new controller adding process executed by the storage controller according to the first embodiment of the present invention. [Figure 18] 11 is a flowchart showing an old controller removal process executed by the storage controller according to the first embodiment of the present invention. [Figure 19] 11 is a flowchart showing a CPU processing control right switching process executed by the storage controller according to the first embodiment of the present invention. [Figure 20] 11 is a flowchart showing an FE port switching process executed by the storage controller according to the first embodiment of the present invention. [Figure 21] 11 is a flowchart showing a new controller adding operation procedure executed by a storage controller upgrade implementation operator in the first embodiment of the present invention. [Figure 22] 11 is a flowchart showing an old controller removal work processing procedure executed by a storage controller upgrade implementation operator in the first embodiment of the present invention. [Figure 23] 11 is a flowchart showing a control logic including a control logic switching determination process executed by the storage controller according to the first embodiment of the present invention. [Figure 24A] FIG. 11 is an explanatory diagram showing a storage controller upgrade work instruction screen displayed on the management device in the first embodiment of the present invention. [Figure 24B] FIG. 11 is an explanatory diagram showing a storage controller upgrade work instruction screen displayed on the management device in the first embodiment of the present invention. [Figure 24C] FIG. 11 is an explanatory diagram showing a storage controller upgrade work instruction screen displayed on the management device in the first embodiment of the present invention. [Figure 25A] FIG. 11 is an explanatory diagram showing an overview of a procedure for upgrading a storage controller in a case where an interconnect port and an interconnect switch are not implemented in a storage system before upgrading in a second embodiment of the present invention. [Figure 25B]FIG. 11 is an explanatory diagram showing an overview of a procedure for upgrading a storage controller in a case where an interconnect port and an interconnect switch are not implemented in a storage system before upgrading in a second embodiment of the present invention. [Figure 25C] FIG. 11 is an explanatory diagram showing an overview of a procedure for upgrading a storage controller in a case where an interconnect port and an interconnect switch are not implemented in a storage system before upgrading in a second embodiment of the present invention. [Figure 25D] FIG. 11 is an explanatory diagram showing an overview of a procedure for upgrading a storage controller in a case where an interconnect port and an interconnect switch are not implemented in a storage system before upgrading in a second embodiment of the present invention. [Figure 26] FIG. 11 is an explanatory diagram illustrating the configuration of a shared memory in a memory of a storage controller according to a second embodiment of the present invention. [Figure 27] FIG. 11 is an explanatory diagram showing the configuration of interconnect switch mounting management information held in a memory of a storage controller according to a second embodiment of the present invention. [Figure 28] FIG. 11 is an explanatory diagram showing the configuration of destination host information held in a memory of a storage controller according to a second embodiment of the present invention. [Figure 29] FIG. 11 is an explanatory diagram showing the configuration of drive box configuration information held in a memory of a storage controller in the second embodiment of the present invention. [Diagram 30] 13 is a flowchart showing an overall controller update process executed by a storage controller according to a second embodiment of the present invention. [Diagram 31] FIG. 11 is an explanatory diagram showing a system configuration during a storage controller upgrade in the third embodiment of the present invention. [Figure 32A] FIG. 13 is an explanatory diagram showing an overview of a procedure for upgrading on a storage controller basis in the fourth embodiment of the present invention. [Figure 32B]FIG. 13 is an explanatory diagram showing an overview of a procedure for upgrading on a storage controller basis in the fourth embodiment of the present invention. [Figure 32C] FIG. 13 is an explanatory diagram showing an overview of a procedure for upgrading on a storage controller basis in the fourth embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0016] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. In the accompanying drawings, functionally identical elements may be indicated by the same numerals. The accompanying 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 limiting manner.
[0017] Furthermore, embodiments of the present invention may be implemented in software running on a general-purpose computer, in dedicated hardware, or in a combination of software and hardware, as described below.
[0018] In the following, each process in the embodiment of the present invention may be described with a "program" as the subject (acting entity). Since a program is executed by a processor to perform a defined process using a memory and a communication port (communication control device), the processor may be used as the subject in the description. A part or all of the program may be realized by dedicated hardware, or may be modularized. Various programs may be installed in each computer by a program distribution server or storage media.
[0019] In the following description, an "interface unit" may include at least one of a user interface unit and a communication interface unit. The user interface unit may include at least one of one or more I / O devices (e.g., input devices (e.g., keyboards and pointing devices) and output devices (e.g., display devices)) and a display computer. The communication interface unit may include one or more communication interface devices. The one or more communication interface devices may be one or more homogeneous communication interface devices (e.g., one or more NICs (Network Interface Cards)) or two or more heterogeneous communication interface devices (e.g., a NIC and an HBA (Host Bus Adapter)).
[0020] In the following description, a "memory unit" includes one or more memories. At least one memory may be a volatile memory or a non-volatile memory. The memory unit is mainly used during processing by the processor unit.
[0021] In the following description, a "processor unit" includes one or more processors. At least one processor is typically a CPU (Central Processing Unit).
[0022] In the following description, a "hardware accelerator unit" includes one or more hardware integrated circuits. The at least one hardware integrated circuit is typically a field programmable gate array (FPGA).
[0023] In the following description, information may be described using expressions such as "xxx table", but the information may be expressed in any data structure. In other words, to show that the information does not depend on the data structure, the "xxx table" may be referred to as "xxx information". In the following description, the configuration of each table is an example, and one table may be divided into two or more tables, or two or more tables may all or partly be one table.
[0024] Furthermore, in the following explanation, when elements of the same type are not to be distinguished from one another, common reference symbols will be used, and when elements of the same type are to be distinguished from one another, the reference symbols (or the ID of the element (e.g., an identification number) may be used. For example, when multiple storage controllers are not to be distinguished from one another, they will be described as "storage controller 102", and when each storage controller is to be distinguished, they will be described as "storage controller 102A", "storage controller 102B", and so on. The same applies to other elements (for example, the storage node 101, front-end network port 103, CPU 104, memory 105, back-end network port 106, interconnect network port 107, drive box 109, host computer 110, etc., which will be described later).
[0025] In the following description, a "storage system" includes one or more storage devices. At least one storage device may be a general-purpose physical computer. At least one storage device may be a virtual storage device, or may execute SDx (Software-Defined anything). As SDx, for example, SDS (Software Defined Storage) (an example of a virtual storage device) or SDDC (Software-defined Datacenter) may be adopted.
[0026] Here, an outline of an embodiment of the present invention for solving the above two problems will be described.
[0027] The storage system that is the subject of this invention is a tightly coupled multi-controller system that has multiple storage controllers for redundancy, is connected to each other via a wideband, low latency network such as PCIe or InfiniBand, and shares control information with each other. The control information is stored in two or more controllers for redundancy.
[0028] A method for solving the first problem will be described. In order to perform the upgrade of the storage controllers without interruption, all storage controllers are not replaced with new storage controllers at once, but rather, a state in which the old storage controllers and the new storage controllers temporarily coexist exists. During this time, the software on each storage controller operates with control logic that can operate on either storage controller. After that, the upgrade of the storage controllers is completed one by one, and after all storage controllers have been replaced with new ones, the operation of the control logic that can operate only on the new storage controller begins.
[0029] A method for solving the second problem will now be described. The old storage system has an interconnect that connects storage controllers together, and has an interconnect network port that can be connected to both the old and new storage controllers. When updating, if the current configuration has fewer than the maximum number of controllers that can be connected, the operation of "adding a new storage controller, then removing the old storage controller" is repeated. On the other hand, if the current configuration has the maximum number of controllers that can be connected, the operation of "removing the old storage controller, then adding a new storage controller" is repeated.
[0030] The old storage controller and the new storage controller are connected using a network port. At this time, the network port may be directly connected to the storage controller or may be present on a fabric network switch. Similarly, a storage drive box that stores a storage device has a back-end network port that can be connected to the new storage controller. When connecting to the storage controller, by also connecting between the drive box and the new storage controller, the storage device that was connected to the old storage controller can be accessed from the new storage controller without going through the old storage controller.
[0031] When adding a new storage controller and then removing an old storage controller, for example, a new storage controller is added to the old storage controller to form one multi-controller storage system. After that, when the transfer of processing and control information is completed, the old storage controller is stopped and the old storage controller is removed. This is repeated as long as the old storage controller exists.
[0032] On the other hand, when an old storage controller is removed and then a new storage controller is added, the old storage controller in the storage system that is to be upgraded is first selected, and processing and control information shared with other controllers are saved to another remaining storage controller. Then, the old storage controller is stopped and removed. By doing so, the storage system becomes ready to add another storage controller. Then, a new storage controller is added, and the processing and control information saved in the other storage controller is migrated to the added storage controller. This process is repeated as long as the old storage controller remains.
[0033] As a result, if the configuration of the storage system has not reached the upper limit of the number of connectable storage controllers, the storage hardware and software update is completed without reducing the number of storage controllers and the number of physical ports. Also, even if the configuration of the storage system has reached the upper limit of the number of connectable controllers, the storage hardware and software upgrade is completed while suppressing the reduction in the number of storage controllers and the number of physical ports.
[0034] In a multi-controller storage system configuration after the new storage system is added, the new storage software operating in the new storage controller and the old software operating in the old storage controller transparently access common control information via the network between the storage controllers. In addition, in processes performed by communicating between the controllers, the software on the new storage controller operates so as to satisfy compatibility with the software on the old storage controller. In this way, each process performed in the storage system can be performed on either the old or new controller, and each process can be switched to be performed on the new storage controller without stopping I / O. In addition, cases where maintenance is performed during the upgrade or where the upgrade is interrupted and the original state is restored can be handled flexibly and quickly. At the same time, configuration information such as LUNs set before the update, status such as replication, and access frequency information used for tiering of storage media can be inherited as is to the processes performed on the new controller.
[0035] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, an embodiment of the present invention for solving the above problems will be described with reference to the drawings. EXAMPLES
[0036] FIG. 1 is a block diagram showing the configuration of a storage system according to a first embodiment of the present invention.
[0037] The storage system 100 of this embodiment has a plurality of storage controllers 102 and 112, one or more interconnect switches 108, and one or more drive boxes 109. In Fig. 1, storage controllers 102A to 102D and 112A, 112B are shown as examples of the plurality of storage controllers 102 and 112. Of these, the storage controllers 102A to 102D are old storage controllers to be removed, the storage controllers 102A and 102B constitute one storage node 101A, and the storage controllers 102C and 102D constitute one storage node 101B. On the other hand, the storage controllers 112A and 112B are new storage controllers that have been added, and constitute one storage node 111A.
[0038] The old storage controller 102 to be removed has a CPU 104, memory 105, a front-end network port (hereinafter also referred to as an FE port) 103, a back-end network port (hereinafter also referred to as a BE port) 106, and an interconnect network port (hereinafter also referred to as an IC port) 107. Similarly, the new storage controller 112 to be added has a CPU 104, memory 105, FE port 103, BE port 106, and IC port 107.
[0039] 1, one storage controller 102 has one CPU 104, one memory 105, two FE ports 103, one BE port 106, and one IC port 107, but these numbers are just an example and the actual numbers are arbitrary. Similarly, the actual number of each component in the storage controller to be expanded is arbitrary. In addition to these components, a hardware offload engine such as an FPGA may be installed.
[0040] The FE port 103 is connected to a network switch 121. The network switch 121 is connected to one or more host computers 120 (host computers 120A and 120B in the example of FIG. 1). The storage controller 102 receives commands such as commands to write and read user data from the host computer 120 via the FE port 103 and the network switch 121, and returns responses to these commands. The same is true for the storage controller 112.
[0041] The BE port 106 is connected to a drive box 109. The storage controller 102 writes and reads user data to and from the drive box 109 via the BE port 106. The storage controller 112 operates in a similar manner.
[0042] The drive box 109 includes a storage medium that stores data written by the host computer 120. This storage medium may be, for example, a large-capacity non-volatile storage medium such as a magnetic disk or flash memory.
[0043] The IC port 107 is connected to an interconnect switch 108. The interconnect switch 108 is connected to the IC port 107 of each of the storage controllers 102 and 112. The storage controller 102 can communicate with other storage controllers 102 in the storage system 100 via the IC port 107 and the interconnect switch 108, and can send and receive, for example, control information. The same applies to communication between the storage controllers 102 and 112, and between the storage controllers 112.
[0044] The CPU 104 executes programs stored in the memory 105 to realize various functions of the storage controllers 102 and 112. The functions realized by the CPU 104 will be described in detail later.
[0045] The memory 105 includes an area for storing programs executed by the CPU 104, an area for storing control information for the storage controllers 102 and 112, and an area for storing data to be written or read by the host computer 120. Details of these areas will be described later.
[0046] Furthermore, each storage controller 102 and 112 is connected to a management device 122 via a management network 123 .
[0047] Next, a procedure for upgrading the storage controller 102 will be described with reference to FIGS. 2A to 2E and 3A to 3G.
[0048] 2A to 2E are explanatory diagrams showing an overview of a procedure for upgrading a storage controller when the number of storage controllers is less than the maximum number of the storage system in the first embodiment of the present invention.
[0049] 2A shows the storage system 100 before the start of the upgrade of the storage controller 102. At this time, the storage system 100 has old storage controllers 102A to 102D, and does not have new storage controllers 112A and 112B. At this time, redundancy is ensured by the four storage controllers 102A to 102D.
[0050] 2B shows the storage system 100 after a new storage node 111A has been added when the upgrade of storage node 101B is being performed. At this time, the storage system 100 has new storage controllers 112A and 112B added in addition to the old storage controllers 102A-102D. At this time, redundancy is ensured by the six storage controllers 102A-102D and 112A-112B.
[0051] 2C shows the storage system 100 after the upgrade of the storage node 101B is completed. At this time, the old storage controllers 102C and 102D have already been removed, and the storage system 100 has the old storage controllers 102A and 102B and the new storage controllers 112A and 112B. At this time, redundancy is ensured by the four storage controllers 102A, 102B, 112A, and 112B.
[0052] 2D shows the storage system 100 after a new storage node 111B has been added when the storage node 101A is being upgraded. At this time, the storage system 100 has new storage controllers 112A-112D that have been added in addition to the old storage controllers 102A-102B. At this time, redundancy is ensured by the six storage controllers 102A-102B and 112A-112D.
[0053] 2E shows the storage system 100 after the upgrade of the storage node 101A is completed. At this time, the old storage controllers 102A and 102B have already been removed, and the storage system 100 has new storage controllers 112A-112D. At this time, redundancy is ensured by the four storage controllers 112A-112D.
[0054] The above steps ensure that while the upgrade is being performed, there is at least as much redundancy as there was before the upgrade began and after it was completed.
[0055] 3A to 3G are explanatory diagrams showing an overview of a procedure for upgrading a storage controller when the number of storage controllers is equal to the maximum number of storage systems in an embodiment of the present invention.
[0056] 3A shows the storage system 100 before the start of the upgrade of the storage controller 102. At this time, the storage system 100 has old storage controllers 102A-102F, and does not have a new storage controller 112. At this time, redundancy is ensured by the six storage controllers 102A-102F. In the example of this figure, the upper limit of the number of storage controllers in the storage system is set to six, but the actual upper limit number differs depending on the storage system.
[0057] 3B shows the storage system 100 after removing the old storage node 101C when the upgrade of the storage node 101C is being performed. At this time, the storage system 100 has old storage controllers 102A-102D. At this time, redundancy is ensured by the four storage controllers 102A-102D.
[0058] 3C shows the storage system 100 after the upgrade of the storage node 101C is completed, that is, after the new storage node 111A is added. At this time, the storage system 100 has the added new storage controllers 112A and 112B in addition to the old storage controllers 102A to 102D. At this time, redundancy is ensured by the six storage controllers 102A to 102D and 112A to 112B.
[0059] 3D shows storage system 100 after removing old storage node 101B when an upgrade of storage node 101B is being performed. Storage system 100 now has old storage controllers 102A, 102B and new storage controllers 112A, 112B. Redundancy is now ensured by the four storage controllers 102A, 102B, 112A, and 112B.
[0060] 3E shows the storage system 100 after the upgrade of the storage node 101B is completed, that is, after a new storage node 111B is added. At this time, the storage system 100 has new storage controllers 112A-112D that have been added in addition to the old storage controllers 102A and 102B. At this time, redundancy is ensured by the six storage controllers 102A, 102B, and 112A-112D.
[0061] 3F shows the storage system 100 after removing the old storage node 101C when the upgrade of the storage node 101A is being performed. At this time, the storage system 100 has new storage controllers 112A-112D. At this time, redundancy is ensured by the four storage controllers 112A-112D.
[0062] 3G shows the storage system 100 after the upgrade of the storage node 101A is completed, that is, after the new storage node 111C is added. At this time, the storage system 100 has the added new storage controllers 112A-112F in addition to the old storage controllers 102A and 102B. At this time, redundancy is ensured by the six storage controllers 112A-112F.
[0063] If the above procedure is used to perform an upgrade when the number of storage controllers has reached the upper limit, the redundancy will be reduced by one node during the upgrade compared to before the upgrade began, and after the upgrade is complete, the same redundancy as before the upgrade was completed will be ensured.
[0064] In this implementation procedure, the minimum unit for expansion and reduction has been described as one storage node, but expansion and reduction may be performed for each controller within a storage node.
[0065] The present invention can also be applied to replacing a storage controller for purposes other than upgrading, such as when the new storage controller 112 is the same model as the old storage controller 102. However, in this embodiment, replacement for upgrading the old storage controller 102 to a new storage controller 112 of a different model, such as a successor model to which new functions have been added, will be described.
[0066] 4 to 12, information held in the memory 105 of the storage controllers 102 and 112 will be described. Here, information held in the memory 105 of the storage controller 102 will be described as an example, but the memory 105 of the storage controller 112 also holds similar information.
[0067] FIG. 4 is an explanatory diagram showing the configuration of the memory 105 of the storage controller 102 according to the first embodiment of the present invention.
[0068] The memory 105 includes a program area 401, a local memory area 402, a cache memory area 403, and a shared memory area 404 as storage areas. The program area 401 stores a control program executed by the CPU 104 in the storage controller 102. The local memory area 402 includes a memory area temporarily used when the control program is executed, and an area for storing a copy of control information included in the shared memory area 404. The cache memory area 403 is an area for temporarily storing data written from the host computer 120 and data read by the host computer 120. The shared memory area 404 includes information about the storage system 100 used by the control program. The shared memory area 404 is unique information shared by all the storage controllers 102 and 112, and may be stored across multiple storage controllers 102 and 112. The shared memory area 404 may be made redundant among multiple storage controllers for fault tolerance of the storage controllers 102, 112, and the memory 105.
[0069] FIG. 5 is an explanatory diagram showing the configuration of the program area 401 in the memory 105 of the storage controller 102 according to the first embodiment of the present invention.
[0070] The program area 401 stores a non-stop controller update sequence control unit 501, a processing takeover control unit 502, a controller addition unit 503, a controller removal unit 504, and an I / O processing unit 607. All of these are programs stored in the memory 105 and executed by the CPU 104. In the following explanation, the processing executed by each of the above units is actually executed by the CPU 104 in accordance with the programs.
[0071] The non-stop controller update sequence control unit 501 controls the sequence of replacing the storage controller 102 of this embodiment. The process takeover control unit 502 performs a process of taking over the process control right for each LUN, the LUN registration of the FE port, and the data stored in the shared memory from the storage controller 102 to be replaced to the storage controller 112 to be replaced. The controller addition unit 503 performs a process when adding a new storage controller 112. The controller removal unit 504 performs a process when removing an old storage controller 102.
[0072] The control logic switching unit 505 performs processing to switch the control logic to logic dedicated to the new storage controller 112 after the upgrade of the old storage controller 102 is completed and all storage controllers in the storage system become the new storage controller 112 .
[0073] FIG. 6 is an explanatory diagram showing the configuration of the shared memory area 404 in the memory 105 of the storage controller 102 according to the first embodiment of the present invention.
[0074] The shared memory area 404 stores hardware configuration information 601, mounted controller management information 602, LUN configuration information 603, FE port configuration information 604, takeover management information 605, and control logic version management information 606. These will be described in detail later (see FIGS. 7 to 12).
[0075] FIG. 7 is an explanatory diagram showing the configuration of the hardware configuration information 601 held in the memory 105 of the storage controller 102 according to the first embodiment of the present invention.
[0076] The hardware configuration information 601 includes a controller ID 701 , controller version information 702 , an implemented FE port ID 703 , an implemented BE port ID 704 , an implemented CPU ID 705 , an implemented interconnect port ID 706 , and an implemented memory ID 707 .
[0077] The controller ID 701 is identification information for each storage controller 102. The controller version information 702 is version information for the hardware corresponding to the controller ID 701. This makes it possible to determine whether each storage controller is an old storage controller or a new storage controller. The implemented FE port ID 703, the implemented BE port ID 704, the implemented CPU ID 705, the implemented interconnect port ID 706, and the implemented memory ID 707 are identification information for the FE port 103, the BE port 106, the CPU 104, the IC port 107, and the memory 105 implemented in each storage controller 102, respectively.
[0078] FIG. 8 is an explanatory diagram showing the configuration of the mounted controller management information 602 held in the memory 105 of the storage controller 102 according to the first embodiment of the present invention.
[0079] The implemented controller management information 602 includes an implemented controller ID list 801 and a maximum implementable controller number 802. The implemented controller ID list 801 is a list of identification information of the storage controllers 102 that are implemented in the storage system 100 and are in a state where they can execute processes such as data input / output (I / O). The maximum implementable controller number is the upper limit of the number of storage controllers that can be implemented in the storage system 100. In the examples of Figures 2A to 3G, the value of the maximum implementable controller number 802 is "6".
[0080] For example, as shown in Fig. 2A, before the new storage controllers 112A and 112B are added, the identification information of the old storage controllers 102A to 102D is held in the installed controller ID list 801. As shown in Fig. 2B, when the new storage controllers 112A and 112B are installed and an upgrade process is being executed, the identification information of the storage controllers 102A to 102D, 112A, and 112B is held in the installed controller ID list 801. As shown in Fig. 2C, after the old storage controllers 102C and 102D are removed, the identification information of the old storage controllers 102A, 102B and the new storage controllers 112A and 112B is held in the installed controller ID list 801.
[0081] FIG. 9 is an explanatory diagram showing the configuration of the LUN configuration information 603 held in the memory 105 of the storage controller 102 according to the first embodiment of the present invention.
[0082] The LUN configuration information 603 is information indicating the configuration of each logical unit, and one LUN configuration information 603 is held for one logical unit. The LUN configuration information 603 includes a LUNID 901, a registered FE port ID list 902, and a control right CPU ID 903.
[0083] LUNID 901 is identification information for each logical unit. FE port ID list 902 is a list of identification information for FE ports to which paths to each logical unit are set. Control CPUID 903 is identification information for a CPU 104 that has exclusive access to control information related to I / O processing for each logical unit.
[0084] Each logical unit is associated with FE ports belonging to multiple different storage controllers for the purposes of load balancing and failover in case of failure.
[0085] FIG. 10 is an explanatory diagram showing the configuration of the FE port configuration information 604 held in the memory 105 of the storage controller 102 according to the first embodiment of the present invention.
[0086] The FE port configuration information 604 is information indicating the configuration of each FE port 103. Each storage controller 102 holds FE port configuration information 604 regarding all FE ports possessed by the storage controller 102. The FE port configuration information 604 includes an FE port ID 1001, an FE port address 1002, and a LUNID list 1003.
[0087] The FE port ID 1001 is identification information for each FE port 103. The FE port address 1002 is identification information for each FE port 103 provided to the host computer 120. The LUNID list 1004 is a list of information for identifying logical units to which paths to the host computer 120 are set via each FE port. Paths to multiple logical units may be set in one FE port 103, in which case multiple values are held as the LUNID list 1004.
[0088] FIG. 11 is an explanatory diagram showing the configuration of the takeover management information 605 held in the memory 105 of the storage controller 102 according to the first embodiment of the present invention.
[0089] The takeover management information 605 is information indicating what is to be taken over from the old storage controller 102 to be replaced to the new storage controller to be replaced. This information is temporarily generated during the upgrade process of the storage controller. The takeover management information 605 includes a controller ID 1101 to be removed, LUN control right information 1102, FE port LUN registration information 1103, shared memory storage information 1104, LUN control right transfer destination information 1105, transfer destination LUN registration information for each FE port 1106, and shared memory transfer destination information 1107.
[0090] The controller ID 1101 to be removed is identification information indicating the old storage controller 102 being replaced. The LUN control right information 1102 is a list of LUNs for which the old storage controller 102 to be replaced held the control right before the start of the replacement. The FE port LUN registration information 1103 is a list of LUNs that were registered in each FE port 103 of the old storage controller 102 to be replaced before the start of the replacement. The shared memory storage information 1104 is information indicating the area of the shared memory that was held in the memory 105 of the old storage controller 102 to be replaced.
[0091] The LUN control right transfer destination information 1105 indicates a storage controller to which the LUN control right is temporarily transferred when the old storage controller 102 is removed before the new storage controller 112 is added. Specifically, the LUN control right transfer destination information 1105 holds transfer destination storage controller information for each LUN. The FE port transfer destination LUN registration information 1106 indicates LUN registration information of each FE port to which the LUN registration destination FE port is temporarily transferred when the old storage controller 102 is removed before the new storage controller 112 is added. The registration destination FE port may be different for each LUN. The shared memory transfer destination information 1107 indicates the transfer destination storage controller 102 (or 112) of the shared memory temporarily transferred when the old storage controller 102 is removed before the new storage controller 112 is added.
[0092] FIG. 12 is an explanatory diagram showing the configuration of the control logic version management information 606 held in the memory 105 of the storage controller 102 according to the first embodiment of the present invention.
[0093] The control logic version management information 606 is control information for managing the switching of the control logic accompanying the upgrade of the storage controller in the first embodiment of the present invention. The control logic version management information 606 includes a logic type ID 1201 and control logic version information 1202. The logic type ID 1201 is identification information indicating the control logic to be switched. The control logic version information 1202 is information used to determine the control logic switching.
[0094] Next, a description will be given with reference to a flowchart of the processing executed by the storage controllers 102 and 112. The following processing is realized by the CPU 104 of the storage controllers 102 and 112 executing a program stored in the program area 401 in the memory 105.
[0095] 13 to 16 show examples of processing executed by any of the old storage controllers 102, but if one or more new storage controllers 112 have already been added, the following processing may be executed by the new storage controller 112. In particular, the processing in which the last remaining old storage controller 102 in the storage system 100 is to be removed is executed by the new storage controller 112.
[0096] 13 is a flowchart showing the entire controller update process executed by the storage controller in the first embodiment of the present invention. In this embodiment, a processing procedure for updating in units of storage nodes is shown. Even when updating in units of storage controllers, the same procedure can be used.
[0097] First, the storage controller 102 identifies a node to be upgraded (step 1301). Next, the storage controller 102 refers to the installed controller management information 602 to determine whether the current configuration is the maximum configuration (step 1302). If it is already the maximum configuration, it determines that the storage controller is to be upgraded by a procedure of reduction and then addition, and proceeds to step 1303. Also, if the number of storage controllers is less than the maximum, it determines that the storage controller is to be upgraded by a procedure of addition and then reduction, and proceeds to step 1311.
[0098] In step 1303, the control rights of the LUNs, the FE port allocations of the LUNs, and the stored shared memory information are evacuated from the storage controller to be removed to another storage controller 102, 112 that is not to be removed, or to both. The evacuated information is stored in the takeover management information 405.
[0099] Next, the storage controller 102 removes the old storage node 101 to be removed (step 1304).
[0100] Next, in order to encourage the worker to install the equipment and wire the cables, the storage controller 102 displays instructions for the removal work of the old storage node 101 and the addition work of the new storage node 111 on the management screen (step 1305), and waits for an operation from the worker (step 1306). The management screen is, for example, a screen displayed by a display device (not shown) of the management device 122. An example of the screen displayed in step 1305 will be described later with reference to FIG. 24A. Details of the operation of the worker executed in step 1306 will be described later with reference to FIGS. 21 and 22.
[0101] When the operation from the worker is accepted, the storage controller 102 starts the process of adding the new storage node 111 (step 1307).
[0102] Next, the storage controller 102 uses the information stored in the takeover management information 405 to transfer the LUN control right, LUN allocation for each FE port, and shared memory information allocated to the storage controller before evacuation to the newly added storage controller 112 (step 1308). Next, the process proceeds to step 1309.
[0103] In step 1309, the storage controller 102 refers to the controller version information 702 to determine whether or not the old storage controller 102 remains in the storage system. If the old storage controller 102 remains, the process returns to step 1301. If the replacement with the new storage controller 112 has been completed, the process proceeds to step 1310.
[0104] In step 1310 , the storage controller 112 updates the control logic version control information 406 and switches to control logic that is operable only in the new storage controller 112 .
[0105] Steps 1311 to 1316 are processing steps for implementing an upgrade by adding and then removing storage controller nodes.
[0106] In step 1311, the storage controller 102 displays an installation work instruction for the new storage node 111 on the management screen to encourage the worker to install the equipment and wire the cables, etc., and then waits for an operation from the worker (step 1312). An example of the screen displayed in step 1311 will be described later with reference to FIG. 24B. Details of the operation by the worker executed in step 1312 will be described later with reference to FIG. 21.
[0107] When the operation from the worker is accepted, the storage controller 102 starts the addition process for adding the new storage node 111 (step 1313).
[0108] Next, the storage controller 102 moves the LUN control rights, LUN allocation for each FE port, and shared memory information located on the storage controller 102 to be removed, which are registered in the storage controller 102 to be removed, to the newly added storage controller 112 (step 1314).
[0109] When the movement is complete, the storage controller 102 removes the storage node to be removed (step 1315). Next, the storage controller 102 displays a removal work instruction for the removed old storage node 101 on the management screen to prompt the worker to remove the devices and cables (step 1316). Thereafter, the process proceeds to step 1309. Note that, upon receiving the instruction in step 1316, the worker performs the removal work. An example of the screen displayed in step 1316 will be described later with reference to FIG. 24C. Details of the removal work performed after step 1316 will be described later with reference to FIG. 22.
[0110] FIG. 14 is a flowchart showing the takeover process (step 1302) executed by the storage controller 102 when removing the old storage controller 102 in the maximum configuration in the first embodiment of the present invention.
[0111] First, the storage controller 102 selects a destination for the LUN registration information of each FE port 103 held by the storage controller 102 to be removed, and registers it in the takeover management information 605 (step 1401). At this time, the storage controller 102 refers to the LUN configuration information 603, and selects an FE port of a storage controller 102 other than the storage controller 102 including the FE port 103 in which the LUN is already registered, as a destination for the LUN registered in the FE port 103 held by the storage controller 102 to be removed (i.e., a new registration destination). This prevents redundancy from being lost during the storage controller upgrade.
[0112] However, if there is no storage controller 102 other than the storage controller 102 including the FE port 103 in which the LUN is already registered, then an FE port 103 in which the LUN is not yet registered is selected in the storage controller 102 including the FE port 103 in which the LUN is already registered. If there is no such FE port 103, the FE port 103 in which the LUN is already registered may be selected.
[0113] Next, the storage controller 102 selects a destination controller for switching the LUN control right, and registers it in the takeover management information 605 (step 1402). At this time, the storage controller 102 may refer to the LUN configuration information 603 and select a storage controller 102 having fewer LUNs to control as the destination for switching the LUN control right. This realizes load balancing. Alternatively, the storage controller 102 may select a storage controller 102 including an FE port 103 in which a LUN is registered as the destination for switching the LUN control right. This prevents communication between storage controllers from occurring every time the host computer 120 accesses the storage controller 102, and prevents a decrease in I / O performance.
[0114] Next, the storage controller 102 refers to the set takeover management information 605 and switches the LUN control right (step 1403).
[0115] Next, the storage controller 102 refers to the set takeover management information 605 and performs LUN registration for the target FE port 103 (step 1404).
[0116] The LUN control right switching (step 1403) and LUN registration (step 1404) may be performed sequentially for each LUN.
[0117] Next, the storage controller 102 judges whether or not information in the shared memory area 404 is stored in the storage controller 102 to be removed (step 1405). If information in the shared memory area 404 is stored, the process proceeds to step 1406, and if not, the process ends without registering anything in the shared memory storage information 1104 of the takeover management information 605.
[0118] In step 1406, the information in the shared memory area 404 in the storage controller 102 to be removed is moved to a storage controller 102 (or 112) that is not to be removed, and the destination storage controller 102 (or 112) and the information in the destination shared memory area 404 are registered in the shared memory destination information 1107 and shared memory storage information 1104 of the handover management information 605. At that time, in order to prevent the redundancy of the shared memory to be moved from being lost, the storage controller 102 selects, as the destination, a storage controller 102 (or 112) that does not contain information in the shared memory to be moved.
[0119] The takeover process executed by the storage controller 102 when the old storage controller 102 is removed in the maximum configuration is completed.
[0120] FIG. 15 is a flowchart showing the takeover process (step 1308) executed by the storage controller 102 after the new storage controller 112 is added in the maximum configuration in the first embodiment of the present invention.
[0121] First, the storage controller 102 refers to the takeover management information 605 and refers to the LUN registration information for each FE port 103 to be moved to the added storage controller 112 (step 1501). Next, the storage controller 102 refers to the takeover management information 605 and selects the LUN for which the control right is to be moved to the added storage controller 112 (step 1502).
[0122] Next, the storage controller 102 switches the LUN control right to the added storage controller 112 (step 1503). Next, the storage controller 102 registers the LUN in the FE port 103 of the added storage controller 112 (step 1504). Next, the storage controller 102 refers to the takeover management information 605 and judges whether or not there is information in the shared memory area 404 that has been moved from the storage controller 102 to be removed to another storage controller 102 (step 1505). If there is information in the shared memory area 404, the process proceeds to step 1506, and if there is no information, the process ends.
[0123] In step 1506 , the information in the shared memory area 404 that was evacuated from the removed storage controller 102 is moved to the added storage controller 112 .
[0124] This completes the takeover process executed by the storage controller 102 after the new storage controller 112 is added in the maximum configuration.
[0125] FIG. 16 is a flowchart showing the takeover process (step 1314) executed by the storage controller 102 after the addition of a new storage controller 112 when the configuration is less than the maximum configuration in the first embodiment of the present invention.
[0126] First, the storage controller 102 refers to the LUN registration information of the FE port 103 of the storage controller to be removed, and selects the registration takeover destination FE port 103 for each LUN (step 1601). Next, the storage controller 102 selects the storage controller 112 to be added, to which the control right is to be transferred, for the LUNs for which the storage controller 102 to be removed holds the control right. If there are multiple storage controllers to be added and removed at the same time, the storage controller 112 to be the transfer destination is selected so as to correspond to the storage controller 102 in which the LUN control right was registered (step 1602).
[0127] Next, the storage controller 102 switches the LUN control right to the added storage controller 112 (step 1603). Next, the storage controller 102 registers the LUN in the FE port 103 of the added storage controller 112 (step 1604). Steps 1603 and 1604 may be performed sequentially for each LUN.
[0128] Next, the storage controller 102 judges whether the storage controller 102 to be removed contains information in the shared memory area 404 (step 1605). If the information in the shared memory area 404 exists, the process proceeds to step 1606, and if the information does not exist, the process ends.
[0129] In step 1606, the storage controller 102 transfers the information in the shared memory area 404 from the storage controller 102 to be removed to the storage controller 112 that has been added.
[0130] This completes the takeover process executed by the storage controller 102 after the new storage controller 112 is added in a configuration less than the maximum configuration.
[0131] FIG. 17 is a flowchart showing new controller adding processing executed by the storage controllers 102 and 112 in the first embodiment of the present invention.
[0132] First, the new storage controller 112 to be added acquires hardware configuration information of its own storage controller 112 (step 1701). Specifically, the new storage controller 112 acquires information corresponding to each item of the hardware configuration information 601 from the hardware components in its own storage controller 112, such as the FE port 103, CPU 104, memory 105, BE port 106, and IC port 107.
[0133] Next, the new storage controller 112 sets hardware configuration information (step 1702). Specifically, the storage controller 112 stores the information acquired in step 1701 in the memory 105 as the hardware configuration information 601.
[0134] Next, each of the storage controllers 102 and 112 operating in the storage system 100 at the time this process is being executed registers that the expansion CPU is capable of processing (step 1703). As a result, identification information of the new storage controller 112 to be expanded is added to the installed controller ID list 801 of the installed controller management information 602 held by each of the storage controllers 102 and 112 in the storage system 100.
[0135] This completes the new controller addition process.
[0136] FIG. 18 is a flowchart showing the old controller removal processing executed by the storage controller 102 in the first embodiment of the present invention.
[0137] First, the old storage controller 102 discards or destages the data in the cache memory area 403 (step 1801). Specifically, if the data in the cache memory area 403 has already been stored in a storage area in the drive box 109, the old storage controller 102 deletes the data from the cache memory area 403, and if the data has not yet been stored in the storage area in the drive box 109, the old storage controller 102 stores the data in the storage area in the drive box 109 and then deletes the data from the cache memory area 403.
[0138] Next, the old storage controller 102 stops accepting new processes (step 1802).
[0139] Next, the old storage controller 102 waits for the processing that has already been accepted and is running to stop (step 1803).
[0140] Next, at the time this process is being executed, each of the storage controllers 102 and 112 operating in the storage system 100 updates the hardware configuration information 601 to reflect the removal of the old storage controller 102 (step 1804). Also, at this point, the identification information of the removed old storage controller 102 is deleted from the installed controller ID list 801 of the installed controller management information 602 held by each of the storage controllers 102 and 112.
[0141] This completes the process of removing the old controller.
[0142] FIG. 19 is a flowchart showing the CPU processing control right switching process executed by the storage controllers 102 and 112 in the first embodiment of the present invention.
[0143] First, the old storage controller 102 to be removed stops accepting new I / O processing from the host computer 120 (step 1901).
[0144] Next, the old storage controller 102 waits for the ongoing I / O processing that has already been accepted to complete (step 1902).
[0145] When the ongoing I / O processing is completed, each storage controller 102 and 112 sets the transfer of the control CPU (step 1903). Specifically, the value of the control CPU ID 903 in the LUN configuration information 603 corresponding to the logical unit to be transferred is rewritten to the identification information of the CPU 104 of the storage controller 102 to which the control is to be transferred. For example, if the transfer source is the storage controller 102A and the transfer destination is the storage controller 102C, the value of the control CPU ID 903 is rewritten from the identification information of the CPU 104 of the storage controller 102A to the identification information of the CPU 104 of the storage controller 102C.
[0146] This completes the CPU processing control right switching process.
[0147] FIG. 20 is a flowchart showing the FE port switching process executed by the storage controllers 102 and 112 in the first embodiment of the present invention.
[0148] First, each of the storage controllers 102 and 112 sets LUN registration information in the FE port 103 (step 2001). Specifically, each of the storage controllers 102 and 112 updates the registered FEPort ID list 902 of the LUN configuration information 603 and the LUNID list 1003 of the FEPort configuration information 604.
[0149] Next, a configuration change notification is sent to the host computer 120 from the FE port 103 in which the LUN registration information has been changed (step 2002), and it is determined whether an inquiry has been received from the host computer 120 (step 2003).
[0150] If no inquiry is received from the host computer 120, the connection to the host computer 120 cannot be confirmed, and so the storage controller 102 (or 112) in question interrupts the FE port switching process and transmits a notice of the failure of the process and the port ID of the failed FE port 103 to the management device 122 via the management network 123 (step 2004).
[0151] When an inquiry is received from the host computer 120, the FE port switching process ends.
[0152] FIG. 21 is a flowchart showing a new controller adding operation procedure executed by a storage controller upgrade implementation operator in the first embodiment of the present invention.
[0153] First, the worker installs the new storage node 111 in the rack (step 2101).
[0154] Next, the worker wires various cables to the FE port 103, BE port 106, and IC port 107 of the new storage controller 112 (step 2102). At that time, the new storage controller 112 is connected to the same network as the network to which the cables of the old storage controller to be replaced by the new storage controller 112 are connected. If the new storage controller 112 cannot connect to the same network because there is no free port in the same network, etc., the various cables connected to the FE port 103, BE port 106, and IC port 107 of the old storage controller 102 to be replaced by the new storage controller 112 are unplugged in advance from the connection destination ports, so that they can be connected from the added storage controller.
[0155] Next, the worker turns on the power of the new storage controller 112 (step 2103). The power operation may be performed using a button attached to the storage controller main body, or may be performed from the management device 122.
[0156] Finally, the operator performs an operation to add the new storage node from the management device 122 (step 2104).
[0157] This completes the procedure for the worker installing the new controller.
[0158] FIG. 22 is a flowchart showing the procedure of the old controller removal work processing executed by a storage controller upgrade implementation operator in the first embodiment of the present invention.
[0159] After the worker checks the storage node removal instruction screen on the management device 122, he or she first turns off the power to the old controller (step 2201). Specifically, the worker may operate the power button on the storage controller 102, or may operate the management device 122. Next, the worker removes the cable connected to the old storage controller 102 (step 2202).
[0160] Finally, the worker removes the old storage node 101 from the rack (step 2203).
[0161] This completes the procedure performed by the worker who will be removing the old controller.
[0162] FIG. 23 is a flowchart showing a control logic including a control logic switching determination process executed by the storage controller in the first embodiment of the present invention.
[0163] The process shown in Fig. 23 is executed by each of the old storage controller 102 and the new storage controller 112 constituting the storage system 100. For example, when the upgrade of the storage controller is started, if all the storage controllers in the storage system 100 are the old storage controllers 102, each of the old storage controllers 102 executes the process shown in Fig. 23. When the old storage controllers 102 and the new storage controllers 112 are mixed during the upgrade, each of the old storage controllers 102 and the new storage controllers 112 executes the process shown in Fig. 23. When the upgrade of the storage controller is completed and all the storage controllers in the storage system 100 are the new storage controllers 112, each of the new storage controllers 112 executes the process shown in Fig. 23. Here, the process executed by the new storage controller 112 will be described as an example.
[0164] First, a certain new and old hardware version common logic A is executed in the storage controller 112 (step 2301). Next, before executing a process to change the behavior depending on the hardware version, the storage controller 112 refers to the control logic version information 1202 of the corresponding logic type from the control logic version management information 406, and judges whether the control logic version is compatible with the new storage controller (step 2302). If it is compatible, proceed to step 2303, and if it is not compatible, proceed to step 2305.
[0165] In step 2303, the storage controller 112 executes the process according to the new storage controller dedicated logic. Then, the process proceeds to step 2304, where the new and old common control logic B is executed.
[0166] In step 2305, the storage controller 112 executes processing according to logic compatible with the old storage controller. Then, the process proceeds to step 2304, where the new and old common control logic B is executed.
[0167] In step 2304, the storage controller 112 executes the new and old common control logic B.
[0168] The process executed by the old storage controller 102 is similar to that described above. However, if at least one old storage controller 102 remains in the storage system 100, the control logic version is not compatible with the new storage controller. Therefore, the old storage controller 102 does not execute step 2303.
[0169] In this way, it is possible to prevent some of the new storage controllers 112 from performing operations that are incompatible with the old storage controllers 102 before the upgrade of all storage controllers in the storage system 100 is complete.
[0170] Examples of processes that change behavior depending on the hardware version include processes that have a high CPU processing load, such as compression or encryption algorithms, and that should not be operated in order to prevent performance degradation when the CPU is not the latest high-performance hardware. In addition, even if there are no problems with the performance and software compatibility of the hardware, there may be cases where it is desired to clearly define the functions and performance that can be realized as a product model. In other words, the new storage controller dedicated logic may be control logic that can be executed only by the new storage controller 112, but is not limited to this, and may be control logic that can be executed by both the new storage controller 112 and the old storage controller 102, but is not executed by the old storage controller 102.
[0171] 24A to 24C are explanatory diagrams showing a storage controller upgrade work instruction screen displayed on the management device in the first embodiment of the present invention.
[0172] FIG. 24A is an example of a screen displayed when the number of storage controllers is the maximum number for the storage system before the upgrade and before a new node is added.
[0173] 24A is displayed, for example, by a display device (not shown) of the management device 122 in step 1305 of FIG. 13. The screen 2401 includes information indicating the procedure for removing an old storage node and then adding a new storage node, information specifying the storage node to be removed, information instructing the removal of the specified storage node and the addition of a new storage node, and an execute button 2402. When the worker follows this to remove the old storage node to be removed (see FIG. 23) and add a new storage node (see FIG. 22), and operates the execute button 2402, the processing from step 1307 onwards is executed.
[0174] FIG. 24B is an example of a screen that is displayed before adding a new node when the number of storage controllers before the upgrade is less than the maximum number for the storage system.
[0175] 24B is displayed, for example, by a display device (not shown) of the management device 122 in step 1311 of FIG. 13. The screen 2403 includes information showing the procedure for adding a new storage node and then removing an old storage node, information instructing the addition of the new storage node, and an execute button 2404. When the worker adds the new storage node (see FIG. 22) in accordance with this and operates the execute button 2404, the processing from step 1313 onwards is executed.
[0176] FIG. 24C is an example of a screen displayed before removing an old storage node when the number of storage controllers before the upgrade is less than the maximum number for the storage system.
[0177] 24C is displayed, for example, by the display device (not shown) of the management device 122 in step 1316 of FIG. 13. The screen 2405 includes information indicating the procedure for adding a new storage node and then removing an old storage node, information specifying the storage node to be removed, information instructing the removal of the specified storage node, and a confirmation button 2406. When the worker follows this to remove the old storage node (see FIG. 23) and operates the confirmation button 2406, the management device 122 and storage system 100 recognize that the old storage node to be removed has been removed. EXAMPLES
[0178] Next, a second embodiment of the present invention will be described. Except for the differences described below, each part of the system of the second embodiment has the same function as each part of the system of the first embodiment shown in Figs. 1 to 24C to which the same reference numerals are attached, and therefore the description thereof will be omitted.
[0179] 25A to 25D are explanatory diagrams showing an overview of the procedure of the storage controller upgrade process in the case where the interconnect port 107 and the interconnect switch 108 are not implemented in the pre-upgrade storage system in the second embodiment of the present invention.
[0180] 25A shows the storage system 100 before the upgrade of the storage controller 102 is started. At this time, the storage system 100 has old storage controllers 102A and 102B, and does not have new storage controllers 112A and 112B. At this time, redundancy is ensured by the two storage controllers 102A and 102B. Also, at this time, the old storage controllers 102A and 102B do not have interconnect ports 107, and the storage system 100 does not have an interconnect switch 108.
[0181] FIG. 25B shows the storage system 100 after an interconnect port 107 and an interconnect switch 108 have been added when an upgrade of the storage node 101A is being performed.
[0182] 25C shows the storage system 100 after a new storage node 111A has been added when the storage node 101A is being upgraded. At this time, the storage system 100 has new storage controllers 112A and 112B that have been added, in addition to the old storage controllers 102A and 102B. At this time, redundancy is ensured by the four storage controllers 102A-102B and 112A-112B.
[0183] 25D shows the storage system 100 after the upgrade of the storage node 101A is completed. At this time, the old storage controllers 102A-102B, the interconnect port 107, and the interconnect switch 108 have already been removed, and the storage system 100 has new storage controllers 112A and 112B. At this time, redundancy is ensured by the two storage controllers 112A and 112B.
[0184] FIG. 26 is an explanatory diagram showing the configuration of the shared memory area 404 in the memory 105 of the storage controller 102 according to the second embodiment of the present invention.
[0185] The shared memory 404 stores hardware configuration information 601, implemented controller management information 602, LUN configuration information 603, FE port configuration information 604, handover management information 605, control logic version management information 606, interconnect switch implementation management information 607, connected host information 608 and drive box configuration information 609.
[0186] FIG. 27 is an explanatory diagram showing the configuration of the interconnect switch mounting management information 607 held in the memory 105 of the storage controller 102 in the second embodiment of the present invention.
[0187] The interconnect switch implementation management information 607 includes interconnect switch implementation presence / absence information 2701. The interconnect switch implementation presence / absence information 2701 manages whether or not the interconnect switch 108 is implemented in the storage system.
[0188] FIG. 28 is an explanatory diagram showing the configuration of the destination host information 608 held in the memory 105 of the storage controller 102 according to the second embodiment of the present invention.
[0189] The connected host information 608 includes an FEPortID 2801 and a connected host port identification information list 2801. The FEPortID 2801 is identification information of the FEPort. The connected host port identification information list 2802 is a list of host port identification information that defines a LUN for the FEPortID.
[0190] FIG. 29 is an explanatory diagram showing the configuration of the drive box configuration information 609 held in the memory 105 of the storage controller 102 in the second embodiment of the present invention.
[0191] The drive box configuration information 609 includes a drive box location 2901, a drive box type 2902, and a drive box port number 2903. The drive box location 2901 indicates the mounting position of the drive box in the storage system 100. This information manages whether each drive box is directly connected to the storage controller via a BE port, or connected via another drive box. The drive box type 2902 indicates the type of drive box. The type of drive box identifies the communication protocol, the number of mountable drives, the mountable drive type, etc. The drive box port number 2903 indicates the number of drive box ports mounted in the drive box.
[0192] An example of the number of ports and mounting positions of the drive box will be described later in a third embodiment.
[0193] FIG. 30 is a flowchart showing the entire controller update process executed by the storage controller 102 in the second embodiment of the present invention.
[0194] First, the storage controller 102 identifies a node to be upgraded (step 3001). Next, the storage controller 102 refers to the hardware configuration information 601 and the interconnect switch implementation management information 607 to determine whether the interconnect port 107 and the interconnect switch 108 are implemented (step 3002). If both the interconnect port 107 and the interconnect switch 108 have already been implemented, the process proceeds to step 3006. If at least one of the interconnect port 107 and the interconnect switch 108 has not been implemented, the process proceeds to step 3003.
[0195] In step 3003, to encourage the worker to add the interconnect ports 107 and the interconnect switches 108, an instruction for adding the interconnect ports 107 and the interconnect switches 108 is displayed on the management screen, and in step 3004, an instruction from the worker is awaited.
[0196] When the storage controller 102 receives the operation from the worker, it performs the process of adding the interconnect ports 107 and the interconnect switches 108 (step 3005).
[0197] In step 3006, the storage controller 102 displays instructions for removing the old storage node 101 and adding the new storage node 111 on the management screen to encourage the worker to install the equipment and wire the cables, etc., and waits for operation from the worker (step 3007).
[0198] When the operation from the worker is accepted, the storage controller 102 starts the process of adding the new storage node 111 (step 3008).
[0199] Next, the storage controller 102 adds LUN allocation for each FE port to the newly added storage controller 112 (step 3009).
[0200] Next, the storage controller 102 displays a host multipath addition instruction on the management screen (step 3010) to prompt the operator and user to change the host path setting, and waits for the operator's operation. When the host multipath addition is completed, each LUN becomes accessible through the FE ports of both the old storage controller 102 and the new storage controller 112.
[0201] Next, the storage controller 102 transfers the control of the LUN and the shared memory information to the new storage controller 112 (step 3011).
[0202] Next, the storage controller 102 displays the list of connected host ports on the management screen (step 3012) to prompt the worker to confirm that the multipath corresponding to the host path connected to the FE port 103 of the old storage controller 102 is connected to the FE port 113 of the new storage controller 112, and waits for operation from the worker (step 3013).
[0203] When the operation from the worker is accepted, the storage controller 102 starts the work of removing the old storage controller 102 (step 3014). Next, the storage controller 102 displays a removal work instruction for the removed old storage node 101 on the management screen to prompt the worker to remove the devices and cables (step 3015). Thereafter, the process proceeds to step 3016. In response to the instruction in step 3015, the worker executes the removal work.
[0204] In step 3016, the storage controller 102 refers to the controller version information 702 to determine whether or not the old storage controller 102 remains in the storage system. If the old storage controller 102 remains, the process returns to step 3001. If the replacement with the new storage controller 112 has been completed, the process proceeds to step 3017.
[0205] In step 3017 , the storage controller 112 updates the control logic version control information 406 and switches to control logic that is operable only in the new storage controller 112 . EXAMPLES
[0206] Next, a third embodiment of the present invention will be described. Except for the differences described below, each part of the system of the third embodiment has the same function as each part of the system of the first and second embodiments shown in Figs. 1 to 30 to which the same reference numerals are attached, and therefore the description thereof will be omitted.
[0207] FIG. 31 is an explanatory diagram showing a system configuration during a storage controller upgrade in the third embodiment of the present invention.
[0208] Fig. 31 shows the state after the new storage node 111A has been added, similar to Fig. 25C. However, compared to the configuration shown in Fig. 25C, a fewer port drive box 130 has been added to the storage system 100 of this embodiment. For the sake of explanation, the ports on the drive box and fewer port drive box sides for connecting the drive box 109, the fewer port drive box 130, and the storage controllers 102 and 112 with cables are called drive box ports 131.
[0209] In all of the embodiments described above, it is assumed that the drive box 109 can be connected to each of the storage controllers 112 of two or more storage nodes 111. In other words, four or more drive box ports 131 are required to receive user data write requests and read requests from the storage controller 112. In addition, since the drive box 109 needs to be linked to other drive boxes to expand the number of drives installed in the storage system 100, further drive box ports 131 are required.
[0210] For the sake of explanation, among the multiple drive box ports 131 possessed by a drive box (for example, the drive box 109 and the low-port drive box 130), the one that receives write and read requests for user data from the storage controller 112 or the like is referred to as an input drive box port 131, and the one that is connected to other drive boxes in order to expand the number of mounted drive boxes is referred to as an output drive box port 131. The input drive box port 131 of each drive box is connected to the BE port 106 of the storage controller 112 or the like, or is connected to the output drive box port 131 of another drive box installed between the drive box and the storage controller 112 or the like.
[0211] However, some drive boxes are implemented with only one input drive box port for a storage node. Also, drive boxes with fewer drive box ports are generally less expensive. In this embodiment, a drive box that is implemented with only one input drive box port for a storage node (e.g., two drive box ports) is called a few-port drive box. On the other hand, drive boxes other than the few-port drive box are implemented with more input drive box ports than one storage node (e.g., four or more input drive box ports).
[0212] In order to apply the present invention using a low-port drive box 130, as shown in FIG. 31, a drive box 109 having a number of drive box ports capable of connecting to four or more controllers is connected to the storage controllers 102 and 112, and the drive box 109 is linked to the low-port drive box 130.
[0213] That is, the drive box port on the storage controller side of drive box 109 receives user data write requests and read requests from storage controllers 102 and 112, and the drive box port on the storage controller side of low-port drive box 130 (i.e., input drive box port 131) receives user data write requests and read requests from storage controllers 102 and 112 via drive box 109.
[0214] The controller upgrade process is the same as in the other embodiments, so a description thereof will be omitted. EXAMPLES
[0215] Next, a fourth embodiment of the present invention will be described. Except for the differences described below, each part of the system of the fourth embodiment has the same function as each part of the system of the first to third embodiments shown in Figs. 1 to 31 to which the same reference numerals are attached, and therefore the description thereof will be omitted.
[0216] 32A to 32D are explanatory diagrams showing an overview of a procedure for upgrading in units of storage controllers in the fourth embodiment of the present invention.
[0217] 32A shows the storage system 100 before the start of the upgrade of the storage controller 102. At this time, the storage system 100 has old storage controllers 102A to 102D, and does not have new storage controllers 112A and 112B. At this time, redundancy is ensured by the four storage controllers 102A to 102D.
[0218] 32B shows the storage system 100 after the storage controller 102D in the storage node 101B has been removed while the storage node 101B is being upgraded. At this time, the storage system 100 has the old storage controllers 102A-102C, and does not have the new storage controllers 112A and 112B. At this time, redundancy is ensured by the three storage controllers 102A-102C.
[0219] FIG. 32C shows the storage system 100 after a new storage controller 112B is added to the new storage node 11A when the upgrade of the storage node 101B is being performed. This is a state in which the old storage controller 112D has been updated to the new storage controller 112B. The cables connected to the FE port 103, BE port 106, and IC port 107 of the old storage controller 112D are respectively connected to the respective ports of the new storage controller 112B. At this time, the storage system 100 has the old storage controllers 102A to 102C and the new storage controller 112B, and does not have the new storage controller 112A. At this time, redundancy is ensured by the four storage controllers 102A to 102C and 112B.
[0220] After this, the procedure of removing one old storage controller and adding one corresponding new storage controller is repeated until there are no more old storage controllers in the storage system, and the storage controller upgrade process is complete.
[0221] For example, in the storage system 100 in the state shown in FIG. 32C, the old storage controller 102C is removed and a corresponding new storage controller 112A is added. Furthermore, by repeating the same procedure as above for the old storage controllers 102B and 102A, all the old storage controllers 102 are upgraded to the new storage controllers 112.
[0222] Furthermore, the system according to the embodiment of the present invention may be configured as follows.
[0223] (1) A storage system (e.g., storage system 100) having a storage drive (e.g., drive box 109) having a storage medium for storing data, and a plurality of storage control units (e.g., at least one of storage controllers 102 and 112) each having a processor (e.g., CPU 104), a memory (e.g., memory 105), and ports (e.g., FE port 103, BE port 106, and IC port 107) for processing data to be input / output to the storage drive, the storage system retaining information relating to a list of storage control units implemented in the storage system (e.g., implemented controller ID list 801) and a maximum number of storage control units that can be implemented in the storage system (e.g., maximum number of implementable controllers 802), and when replacing a storage control unit, determining whether the configuration to be moved from the storage control unit to be removed to the storage control unit to be added should be moved via another storage control unit or directly based on the number of implemented storage control units and the maximum number of implementable storage control units (e.g., steps 1302 to 1308, 1311 to 1316).
[0224] This makes it possible to replace hardware without interruption, while maintaining redundancy and minimizing the effects of performance degradation, in accordance with the number of connected storage control units.
[0225] (2) In the above (1), if the number of implemented storage control units is the maximum number that can be implemented, the configuration of the storage control unit is moved via another storage control unit (e.g., steps 1303 to 1308), and if the number of implemented storage control units is less than the maximum number that can be implemented, the configuration of the storage control unit is moved directly from the storage control unit to be removed to the storage control unit to be added (e.g., steps 1311 to 1316).
[0226] This makes it possible to replace hardware without interruption, while maintaining redundancy and minimizing the effects of performance degradation, in accordance with the number of connected storage control units.
[0227] (3) In (2) above, the storage control unit is set with control rights to input and output data to and from the recording area of the storage drive, and the storage control unit having the control rights has control information and port setting information for accessing the storage area related to the control rights, and the configuration to be moved is the control rights, control information, and port setting information (for example, LUN configuration information 603 and FE port configuration information 604, etc.).
[0228] This makes it possible to replace hardware without interruption, while maintaining redundancy and minimizing the effects of performance degradation, in accordance with the number of connected storage control units.
[0229] (4) In the above (3), data associated with the control right is stored in the memory of the storage control unit, and the configuration to be moved includes the data in the memory associated with the control right.
[0230] This makes it possible to replace hardware without interruption, while maintaining redundancy and minimizing the effects of performance degradation, in accordance with the number of connected storage control units.
[0231] (5) In (4) above, the replaced storage control unit is capable of executing a first control program and a second control program, and the previous storage control unit is capable of executing at least the second control program, and when all storage control units in the storage system are the replaced storage control units, data input / output to / from the storage drive is processed using the first control program (e.g., step 2303), and when at least one storage control unit in the storage system is the previous storage control unit, data input / output to / from the storage drive is processed using the second control program (e.g., step 2305).
[0232] This makes it possible to update the software to be compatible with the replaced hardware without interruption, while minimizing the effects of redundancy and performance degradation. Also, each process performed in the storage system can be performed on either the pre- or post-replacement storage control unit, and each process can be switched to be performed on the post-replacement storage control unit without stopping I / O.
[0233] (6) In the above (5), the process of removing the storage control unit before replacement includes a process of storing data in the cache area of the memory of the storage control unit to be removed in the storage drive, a process of changing the port so that the storage control unit to be removed stops accepting access requests, and a process of updating the hardware configuration information in the memory to reflect the removal of the storage control unit to be removed (e.g., steps 1304, 1315, 1808 to 1804), and the process of adding a storage control unit includes a process of updating the hardware configuration information in the memory to reflect the addition of a storage control unit (e.g., steps 1307, 1313, 1701 to 1703).
[0234] This allows the storage controller to be updated with new hardware.
[0235] (7) In the above (6), each storage control unit provides a port and a logical unit through which the host computer inputs and outputs data, and the logical unit is associated with a port. When the number of storage control units implemented in the storage system is the maximum, in the process of removing the storage control unit to be removed, a port of any storage control unit other than the old storage control unit to be removed is selected, and a process of associating the logical unit associated with the port of the storage control unit to be removed with the selected port is executed (e.g., steps 1303, 1401 to 1406). When the number of storage control units implemented in the storage system is less than the maximum, in the process of removing the old storage control unit to be removed, a process of associating the logical unit associated with the port of the storage control unit to be removed with the port of the storage control unit to be added is executed (e.g., steps 1308, 1501 to 1506).
[0236] This allows configuration information such as logical units that were set before the replacement to be carried over to the replaced storage control unit, and the drives that were connected to the replaced storage control unit can be carried over as is to the replaced storage control unit.
[0237] (8) In (7) above, the selected port is a port of a storage control unit other than the storage control unit having a port already associated with the logical unit that is associated with the port of the storage control unit to be removed.
[0238] This prevents a loss of redundancy while the storage controller is being updated.
[0239] (9) In (2) above, if the number of implemented storage control units is less than the maximum number that can be implemented, add storage control units so that the number is equal to or less than the maximum, move the configuration of the storage control units from the storage control unit to be removed to the storage control unit to be added, and remove the storage control units, repeating this process multiple times to replace multiple storage control units.
[0240] This makes it possible to replace hardware without interruption, while maintaining redundancy and minimizing the effects of performance degradation, in accordance with the number of connected storage control units.
[0241] (10) In (1) above, before adding or removing a storage control unit, it is determined whether an interconnect port (e.g., interconnect port 107) for communication with other storage control units is implemented in the storage control unit to be removed, and if the interconnect port is not implemented, information instructing the work of implementing the interconnect port is output (e.g., step 3003), and if the interconnect port is implemented, the storage control unit is replaced by moving it from the storage control unit to be removed to the storage control unit to be added via the implemented interconnect port.
[0242] This makes it possible to achieve hardware replacement without downtime, while maintaining redundancy and minimizing the impact of performance degradation, even in storage systems that do not have multiple storage nodes (and therefore do not require interconnect ports during normal operation).
[0243] (11) In the above (1), before adding or removing a storage control unit, it is determined whether an interconnect switch (e.g., interconnect switch 108) for communication between storage control units is implemented, and if an interconnect switch is not implemented, information instructing the installation work of an interconnect switch is output (e.g., step 3003), and if an interconnect switch is implemented, the storage control unit is replaced by moving it from the storage control unit to be removed to the storage control unit to be added via the implemented interconnect switch.
[0244] This makes it possible to achieve hardware replacement without interruption, while maintaining redundancy and minimizing the impact of performance degradation, even in storage systems that do not have multiple storage nodes (and therefore do not require interconnect switches during normal operation).
[0245] (12) In (1) above, the storage control unit provides ports and logical units through which the host computer inputs and outputs data, and the logical units are associated with the ports. After performing migration from the storage control unit to be removed to the storage control unit to be added, before removing the storage control unit to be removed, a list of ports of the host computer that define the logical units is output to the ports of the storage control unit to be added (e.g., step 3012).
[0246] This makes it possible to confirm that multiple paths have been added, and to reliably realize hardware replacement without interruption, while maintaining redundancy and minimizing the impact of performance degradation.
[0247] (13) In the above (1), a plurality of drive boxes each including one or more storage drives are implemented, and each of the plurality of drive boxes is implemented with a drive box port (e.g., drive box port 131) for receiving write requests and read requests for user data from a storage control unit, and the plurality of drive boxes include a first drive box (e.g., fewer-port drive box 130) and a second drive box (e.g., drive box 109) having more drive box ports than the first drive box, and the plurality of drive boxes are implemented such that the drive box port of the second drive box receives write requests and read requests for user data from the storage control unit, and the drive box port of the first drive box receives write requests and read requests for user data from the storage control unit via the second drive box.
[0248] This makes it possible to realize hardware replacement without downtime, while maintaining redundancy and minimizing the impact of performance degradation, even in a system that uses inexpensive drive boxes.
[0249] The present invention is not limited to the above-mentioned embodiment, and various modifications are included. For example, the above-mentioned embodiment has been described in detail for better understanding of the present invention, and is not necessarily limited to those having all the configurations described. Also, it is possible to replace a part of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add the configuration of another embodiment to the configuration of one embodiment. Also, it is possible to add, delete, or replace a part of the configuration of each embodiment with another configuration.
[0250] In addition, the above-mentioned configurations, functions, processing units, processing means, etc. may be realized in part or in whole by hardware, for example, by designing them as integrated circuits. In addition, the above-mentioned configurations, functions, etc. may be realized in software by a processor interpreting and executing a program that realizes each function. Information such as a program, table, file, etc. that realizes each function can be stored in a storage device such as a non-volatile semiconductor memory, a hard disk drive, or an SSD (Solid State Drive), or in a computer-readable non-transitory data storage medium such as an IC card, an SD card, or a DVD.
[0251] In addition, the control lines and information lines are shown as those considered necessary for the explanation, and not all control lines and information lines in the product are shown. In reality, it can be considered that almost all components are connected to each other. [Explanation of symbols]
[0252] 100 Storage Systems 101A~101C, 111A~111C Storage nodes 102A~102F, 112A~112F Storage Controllers 103 Front-end network port (FE port) 104 CPU 105 Memory 106 Back-end network port (BE port) 107 Interconnect Network Port (IC Port) 108 Interconnect Switch 109 Drive Box 120A, 120B Host computer 121 Network Switch 122 Management device 123 Management Network
Claims
1. A storage system comprising: a storage drive having a storage medium for storing data; and a plurality of storage control units each having a processor, a memory, and a port for processing data input to and output from the storage drive, retaining information relating to a list of the storage control units implemented in the storage system and the maximum number of the storage control units that can be implemented in the storage system; When replacing the storage control unit, a determination is made as to whether the configuration to be moved from the storage control unit to be removed to the storage control unit to be added should be moved via another storage control unit or directly based on the number of the implemented storage control units and the maximum number of the implementable storage control units. A storage system comprising:
2. 2. The storage system according to claim 1, When the number of the implemented storage control units is the maximum number that can be implemented, moving the configuration of the storage control unit via another storage control unit; A storage system characterized in that, when the number of implemented storage control units is less than the maximum number that can be implemented, the configuration of the storage control unit is directly moved from the storage control unit to be removed to the storage control unit to be added.
3. 3. The storage system according to claim 2, A control right for inputting and outputting data to and from a recording area of the storage drive is set in the storage control unit, and the storage control unit having the control right has control information and port setting information for accessing the storage area related to the control right, The configuration to be moved is the control right, the control information, and the port setting information. A storage system comprising:
4. 4. The storage system according to claim 3, data associated with the control right is stored in a memory of the storage control unit; The configuration to be moved includes data in a memory associated with the control right. A storage system comprising:
5. 2. The storage system according to claim 1, the replaced storage control unit is capable of executing a first control program and a second control program; the storage control unit before replacement is capable of executing at least the second control program, When all of the storage control units in the storage system are the storage control units after the replacement, processing data input / output to / from the storage drive using the first control program; A storage system characterized in that, when at least one of the storage control units in the storage system is the storage control unit before the replacement, data input / output to the storage drive is processed using the second control program.
6. 6. The storage system according to claim 5, the process of removing the storage control unit before replacement includes a process of storing data in a cache area of the memory of the storage control unit to be removed in the storage drive, a process of changing a port so that the storage control unit to be removed stops receiving access requests, and a process of updating hardware configuration information in the memory so as to reflect the removal of the storage control unit to be removed; A storage system, wherein the process of adding a storage control unit includes a process of updating hardware configuration information in the memory so that the addition of the storage control unit is reflected.
7. 7. The storage system according to claim 6, Each of the storage control units provides a port and a logical unit through which a host computer inputs and outputs data; the logical unit is associated with the port; When the number of the storage control units implemented in the storage system is the maximum number, In the process of removing the storage control unit to be removed, a process is executed in which the port of any of the storage control units other than the old storage control unit to be removed is selected, and the logical unit associated with the port of the storage control unit to be removed is associated with the selected port; In the process of adding the storage control unit, a process is executed to associate the logical unit associated with the selected port with the port of the added storage control unit; A storage system characterized in that, when the number of storage control units implemented in the storage system is less than the maximum number, in a process of adding a storage control unit and removing an old storage control unit to be removed, a process is executed to correspond the logical unit associated with the port of the storage control unit to be removed to the port of the storage control unit to be added.
8. 8. The storage system according to claim 7, A storage system characterized in that the selected port is the port of a storage control unit other than the storage control unit having the port already associated with the logical unit that is associated with the port of the storage control unit to be removed.
9. 3. The storage system according to claim 2, A storage system characterized in that, when the number of implemented storage control units is less than the maximum number that can be implemented, the storage control units are expanded so that the number is equal to or less than the maximum number, the configuration of the storage control units is moved from the storage control unit to be reduced to the storage control unit to be increased, and the storage control units are reduced, by repeating this process multiple times to replace multiple storage control units.
10. 2. The storage system according to claim 1, Before executing the expansion or reduction of the storage control unit, it is determined whether the storage control unit to be reduced is equipped with an interconnect port for communication with another storage control unit; If the interconnect port is not installed, outputting information instructing installation of the interconnect port; A storage system characterized in that, when the interconnect port is implemented, the storage control unit is replaced by moving the configuration of the storage control unit from the storage control unit to be removed to the storage control unit to be added via the implemented interconnect port.
11. 2. The storage system according to claim 1, Before executing the expansion and reduction of the storage control units, it is determined whether an interconnect switch for communication between the storage control units is implemented; If the interconnect switch is not installed, outputting information instructing the installation of the interconnect switch; A storage system characterized in that, when the interconnect switch is implemented, the storage control unit is replaced by moving the configuration of the storage control unit from the storage control unit to be removed to the storage control unit to be added via the implemented interconnect switch.
12. 2. The storage system according to claim 1, the storage control unit provides a port and a logical unit through which a host computer inputs and outputs data; the logical unit is associated with the port; A storage system characterized in that, after performing migration from the storage control unit to be removed to the storage control unit to be added, and before removing the storage control unit to be removed, a list of ports of the host computer that define the logical unit is output to the port of the storage control unit to be added.
13. 2. The storage system according to claim 1, A plurality of drive boxes are implemented, each of which contains one or more of the storage drives; a plurality of drive box ports are implemented in each of the plurality of drive boxes for receiving a write request and a read request of user data from the storage control unit; the plurality of drive boxes includes a first drive box and a second drive box having a greater number of drive box ports than the first drive box; A storage system characterized in that the multiple drive boxes are implemented so that the drive box port of the second drive box receives user data write requests and read requests from the storage control unit, and the drive box port of the first drive box receives user data write requests and read requests from the storage control unit via the second drive box.
14. A method for controlling a storage system having a storage drive having a storage medium for storing data, and a plurality of storage control units each having a processor, a memory, and a port for processing data input to and output from the storage drive, comprising the steps of: retaining information relating to a list of the storage control units implemented in the storage system and the maximum number of the storage control units that can be implemented in the storage system; The control method for a storage system is characterized in that, when replacing a storage control unit, the control method includes a procedure for determining, based on the number of implemented storage control units and the maximum number of implementable storage control units, whether the configuration to be moved from the storage control unit to be removed to the storage control unit to be added should be moved via another storage control unit or directly.
Citation Information
Patent Citations
Storage control device
JP2006221526A
Storage control apparatus, storage system, and storage control program
JP2016024563A
Information processing system, control device and control program
JP2019049866A
Storage system and control method of storage system
JP2022055614A
Optimized read access to shared data via monitoring of mirroring operations
US20160085460A1