WO2013097485A1 - 磁盘阵列、存储系统以及数据存储路径切换方法 - Google Patents

磁盘阵列、存储系统以及数据存储路径切换方法 Download PDF

Info

Publication number
WO2013097485A1
WO2013097485A1 PCT/CN2012/081178 CN2012081178W WO2013097485A1 WO 2013097485 A1 WO2013097485 A1 WO 2013097485A1 CN 2012081178 W CN2012081178 W CN 2012081178W WO 2013097485 A1 WO2013097485 A1 WO 2013097485A1
Authority
WO
WIPO (PCT)
Prior art keywords
controller node
port
switching device
peer
controller
Prior art date
Application number
PCT/CN2012/081178
Other languages
English (en)
French (fr)
Inventor
李旭慧
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2013097485A1 publication Critical patent/WO2013097485A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components

Definitions

  • Disk array storage system, and data storage path switching method
  • a storage device is one or more disk devices that are independent of the server for storing data, and includes a disk frame and a plurality of controller nodes.
  • the current mainstream disk array uses a dual-controller disk array. As shown in Figure 1, the dual-controller disk array includes two controller nodes and a disk enclosure for mounting physical storage media (for example, SSDs). The data is stored in a disk box through one of the controller nodes.
  • an embodiment of the present invention provides a dual controller disk array, a storage system, and a data storage path switching method to solve a server application multipath software switching failure controller section.
  • server and dual-controller disk arrays add a series of complex configurations to the disadvantages of using multipathing software.
  • a dual controller disk array for use in a storage system including a dual controller disk array and a server, the dual controller disk array including a disk enclosure and two controller nodes, each of the controller nodes including a switching device a port of the switching device is connected to a port of the switching device in the peer controller node; each of the controller nodes receives data sent by the server through a switching device in the controller node, and Data is stored to the disk enclosure, where:
  • Each of the controller nodes is further configured to detect, by using the port, whether the peer controller node is invalid; when detecting that the peer controller node fails, resetting configuration parameters of the controller node and the peer controller node So that the peer controller node sends the received data sent by the server to the port of the controller node switching device through the port of the peer controller node switching device; each of the controller nodes is further used Receiving data sent by the peer controller node through the port in the controller node switching device, and storing the received data in the disk frame, where the data is sent by the server to the peer controller node.
  • a storage system comprising a server and a dual controller disk array as described above.
  • a data storage path switching method is applied to a storage system including a dual controller disk array and a server, including:
  • Each controller node in the dual controller disk array detects whether the peer controller node is invalid through a port in its switching device that is connected to the peer controller node, the dual controller disk array includes a disk frame and two controllers a node, each of the controller nodes receiving data sent by the server through a switching device in the controller node, and storing the data to the disk enclosure, each of the controller nodes including a switching device, wherein One port of the switching device is connected to one port of the switching device in the peer controller node;
  • the configuration parameters of the controller node and the peer controller node are reset, so that the peer controller node receives the data sent by the server through the peer controller node.
  • the port of the switching device is sent to the port of the controller node switching device; the port sent by the peer controller node is received by the port in the controller node switching device, and the data is sent by the server to the peer controller node. And storing the received data to the magnetic In the box.
  • the server only needs to send data to any controller node in the dual controller disk array. If the controller node receiving the data fails, the peer node receives the data, and the controller nodes detect each other whether the other party is invalid.
  • the invention does not need to set a redundant data path in advance, and the server can switch the data transmission path to the peer controller node without installing the multipath software, thereby reducing the redundant data volume of the server and the dual controller disk array.
  • FIG. 1 is a schematic diagram of a method for switching a data storage path in the prior art
  • FIG. 2 is a schematic diagram showing a first structure of a dual control disk array and a server according to Embodiment 1 of the present invention
  • FIG. 3 is a first flowchart of a data storage path switching method according to Embodiment 2 of the present invention
  • FIG. 4 is a schematic diagram of a second structure of a dual control disk array and a server according to Embodiment 3 of the present invention
  • FIG. 5 is a flowchart of a method for resetting configuration parameters in a data storage path switching method according to Embodiment 4 of the present invention.
  • FIG. 6 is a sequence diagram of a data storage path switching method according to Embodiment 5 of the present invention.
  • PCIE Peripheral Component Interconnect Express, with the extension of the SHAP interconnection standard
  • PCIE endpoint device PCIE End Point
  • PCIE switching device PCIE Switch Device
  • CPU Central Processing Unit, central processing unit
  • NTB None-Transparent Bridge, non-transparent bridge
  • Upstream port upstream port
  • FIG. 2 a schematic diagram of a dual controller disk array structure and a connection between a dual controller disk array and a server are provided.
  • a dual controller disk array includes a disk enclosure and two controller nodes, each controller node including a switching device, wherein one port of the switching device is connected to one port of the switching device in the peer controller node; each controller node Receive data sent by the server through the switching device in the controller node, and store the data in the disk enclosure.
  • controller node A and controller node 8 two controller nodes in a dual controller disk array are referred to as controller node A and controller node 8, respectively.
  • the controller node A and the controller node B have similar functions and can be mutually active and standby.
  • the server or the disk array can select one of the controller nodes according to a certain selection policy to transmit the data to be stored to the disk frame.
  • Controller node A contains switching device A
  • controller node B contains switching device B. Both controller node A and controller node B can receive data transmitted by the server through a switching device in the controller node and store the data to the disk enclosure.
  • Port A5 of switching device A is connected to port B5 of switching device B.
  • Each of the controller sections Point to check whether the peer controller node is invalid through the port of the switching device of the control node; when detecting that the peer controller node fails, reset the configuration parameters of the controller node and the peer controller node, so that the peer control
  • the data sent by the server to the server is sent to the port of the controller node switching device through the port connected to the controller node in the peer controller node switching device;
  • the port receives data sent by the peer controller node, where the data is sent by the server to the peer controller node; and the received data is stored in the disk frame.
  • the controller node B detects whether the controller node A is invalid through the port B5, and detects that the controller node A is invalid.
  • controller node B sends the data sent by the received server to port B5 through port A5; and stores the data received in port B5. Go to the disk box.
  • the manner in which the controller node detects that the peer controller node is invalid includes but is not limited to:
  • the controller node determines whether the port connected to the peer controller node in the node switching device of the controller receives the handshake message sent by the peer controller node in the preset time period; if the determination result is no, the peer end is determined.
  • the controller node is invalid. For example, the controller node B determines whether the port B5 receives the handshake message sent by the port A5 within 10 seconds. If the handshake message is not received, it determines that the peer controller node is invalid.
  • the preset time period that is, the time interval for monitoring the handshake message
  • factors such as the processing performance of the controller node and the real-time requirements of the user for data transmission can be comprehensively considered within the range allowed by the system, if the controller node The processing performance is high and the real-time requirements of the user are high. Therefore, the time interval for monitoring the handshake message can be set shorter, and vice versa.
  • the controller node B sends a probe message to the controller node A at a preset time interval, and determines whether the controller node A can receive the feedback. In response to the message, if the response message is not received within the preset time period, it is determined that the controller node A is invalid.
  • the two controller nodes agree in advance that each controller node confirms that the peer controller node is invalid when receiving the interrupt message sent by the peer controller node.
  • each controller node in the dual controller disk array shown in FIG. 2 is further configured to periodically send a handshake message to the peer controller node, where the time interval in the cycle is not greater than determining whether the frame is lost. The preset time period.
  • the server only needs to send data to any controller node in the dual controller disk array. If the controller node receiving the data fails, the data is received by the peer controller node, that is, the server in the embodiment is to the controller node. A sends the data once, and when the controller node A fails, the controller node B takes the initiative to take over the data.
  • the controller nodes detect whether the other party is invalid, so that it is not necessary to set a redundant data path in advance, and the server can switch the data transmission path to the peer controller node without using the multipath software, thereby avoiding
  • the extra cost of purchasing multipathing software also avoids the incompatibility issues that are easily generated by multipathing software provided by existing storage vendors.
  • Embodiment 2 Because servers do not have to install multipathing software, server and dual-controller disk arrays do not require additional configuration to use multipathing software, thus reducing the amount of redundant data on server and dual-controller disk arrays.
  • Embodiment 2 Because servers do not have to install multipathing software, server and dual-controller disk arrays do not require additional configuration to use multipathing software, thus reducing the amount of redundant data on server and dual-controller disk arrays.
  • this embodiment provides a method for switching data storage paths.
  • Each controller node in FIG. 2 can use the method to implement a handover data storage path.
  • the controller node A fails, and the controller node B takes over the data on the failed controller node A as an example.
  • Step 201 Each controller node detects whether the peer controller node is invalid through a port of the switching device connected to the peer controller node.
  • the controller node B detects whether the controller node A is invalid through the port B5, and the manner in which the controller node B detects whether the controller node A is invalid includes but is not limited to:
  • the controller node B determines whether the port B5 of the switching device in the controller node receives the handshake message sent by the controller node A in the preset time period; if the determination result is no, it determines that the controller node A is invalid. For example, the controller node B determines whether the port B5 receives the handshake message sent by the port A5 within 10 seconds. If the handshake message is not received, it determines that the peer controller node is invalid.
  • the preset time period that is, the time interval for monitoring the handshake message
  • the time interval for monitoring the handshake message can be set shorter. On the contrary, it can be extended appropriately.
  • the controller node B sends a probe message to the controller node A at a preset time interval, and determines whether the controller node A can receive the feedback. In response to the message, if the response message is not received within the preset time period, it is determined that the controller node A is invalid.
  • controller node B is further configured to periodically send a handshake message to the controller node A, where the time interval in the period is not greater than the preset time period when determining whether to fail.
  • Step 202 When detecting that the peer controller node fails, reset configuration parameters of the controller node and the peer controller node, so that the peer controller node receives the data sent by the server through the peer end.
  • the port of the controller node switching device is sent to the port of the controller node switching device.
  • the dual controller disk array includes a disk frame and two controller nodes, which are controller node A and controller node B, respectively, and each controller node can pass the switching device in the controller node.
  • each controller node receives data sent by the server, and storing the data to the disk enclosure, each controller node includes a switching device, wherein the port A5 of the switching device A is connected to the port B5 of the switching device B.
  • controller node A When the controller node A receives the data sent by the server and stores the data in the disk enclosure, the controller node B detects whether the controller node A is invalid through the port B5, and when detecting that the controller node A fails, The configuration parameters of controller node A and controller node B are reset, so that controller node B sends the data sent by the received server to port B5 through port A5.
  • Step 203 Receive data sent by the peer controller node by using the port in the controller node switching device, and store the received data in the disk frame, where the data is sent by the server to the peer controller. Node's.
  • Port B5 of controller node B receives the data sent by controller node A and stores the received data into the disk frame.
  • the server only needs to send data to any controller node in the dual-controller disk array. If the controller node that receives the data fails, the data is received by the peer node. In the embodiment of the present invention, the controller nodes detect each other through the mutual The failure, so it is not necessary to set a redundant data path in advance, the server can switch the data transmission path to the peer controller node without using the multi-path software, thereby avoiding the extra cost of purchasing the multi-path software. Because servers do not have to install multipathing software, server and dual-controller disk arrays do not require additional configuration to use multipathing software, thus reducing the redundancy of server and dual-controller disk arrays.
  • Embodiment 3 Embodiment 3
  • the embodiment of the present invention provides a specific structure of a dual controller disk array in a scenario where a dual controller disk array and a server support a PCIE bus, as shown in FIG.
  • Each controller node in FIG. 4 includes, in addition to the switching device (the port of the switching device is connected to the port of the switching device in the peer controller node), the first endpoint device connected to the server, and The second endpoint device connected to the disk enclosure and a central processing unit CPU for running a read/write control program.
  • the first endpoint device and the second endpoint device may be PCIE endpoint devices, and the switching device may be a PCIE switching device.
  • controller node A has a PCIE endpoint device A1 connected to the server, and a PCIE endpoint device A4 connected to the disk enclosure.
  • Controller node A also has PCIE switching device A, which is used to run CPU A and memory A of the read and write control program.
  • the PCIE switching device A has multiple ports, namely port A2, port A3, port A5, and port A6; PCIE endpoint device A1 is connected to port A2; port A3 is connected to PCIE endpoint device A4, and the server is connected through PCIE endpoint device A4.
  • the transmitted data is transferred to the disk enclosure; the memory A is connected to the port A6 of the PCIE switching device A through the central processor A.
  • the controller node B also has a PCIE endpoint device B1 connected to the server, a PCIE endpoint device B4 connected to the disk enclosure, a PCIE switching device B, a CPU B, and a memory B.
  • the PCIE switching device B has a port B2, a port B3, a port B5, and Port B6 has the same structure as controller node A and will not be described here.
  • controller node A and controller node B are connected through port A5 and port B5.
  • port A5 and port B5 may be PCIE non-transparent bridge ports.
  • the storage process of the data to be stored is: the first endpoint device in each controller node receives the data sent by the server, and sends the data to the controller node.
  • the CPU in the controller node sends the data in the switching device to the second endpoint device in the controller node according to the configuration parameter in the switching device configuration space, and the second endpoint device sends the data to the disk enclosure. .
  • the PCIE endpoint device A1 in the controller node A receives the data sent by the server, and sends the data to the PCIE switching device A in the controller node; in the controller node A
  • the CPUA sends the data in the PCIE switching device A to the PCIE endpoint device A4 in the controller node according to the configuration parameters in the PCIE switching device A configuration space, and the PCIE endpoint device A4 sends the data to the disk frame.
  • the process of the controller node B receiving the data sent by the server, and storing the data to the disk enclosure is the same as the process of receiving the data sent by the server by the controller node A, and storing the data to the disk enclosure. Said.
  • Each controller node in the dual-controller disk array is further configured to detect, by using a port connected to the peer controller node in the switching device, whether the peer controller node is invalid; when detecting that the peer controller node fails, The configuration parameters of the controller node and the peer controller node are reset, so that the data sent by the server received by the peer controller node is sent to the controller node switching device through the port of the peer controller node switching device.
  • the port receives the data sent by the peer controller node through the port in the controller node switching device, and the data is sent by the server to the peer controller node; and the received data is stored in the disk enclosure.
  • the controller node B can be used to detect whether the controller node A is invalid through the port B5.
  • the controller node B When detecting that the controller node A fails, the controller node B resets the configuration parameters of the controller node and the controller node A, The controller node A causes the data sent by the received server to be sent to the port B5 of the PCIE switching device B through the port A5 of the PCIE switching device A of the controller node A.
  • the controller node B receives the data sent by the controller node A through the port B5 of the controller node PCIE switching device B, and the data is sent by the server to the controller node A; and the received data is stored in the disk frame.
  • the data transmission path of this embodiment refers to the direction of the arrow in FIG. 2, and the data sent by the server is counted. According to path 3 is stored in the disk box.
  • the controller node configures a port connected to the peer controller node in the controller node switching device as an upstream port, and configures, by the port, a port connected to the node in the peer controller node switching device as a downstream port, where
  • the upstream port and the downstream port are the port attributes defined in the PCIE specification.
  • the upstream port refers to the port in the direction of the CPU of the receiver, and the downstream port refers to the port that is remote from the CPU of the receiver.
  • the port configured as the upstream port can scan the port.
  • the configuration parameter of the downstream port of the port connection, and the port configured as the downstream port is unable to scan the configuration parameters of the connected other ports; the controller node is connected to the peer controller node through the controller node switching device.
  • the port scans the peer controller node configuration space to obtain configuration parameters in the peer controller node switching device and the first endpoint device configuration space.
  • the configuration space stores configuration parameters of the switching device, the endpoint device, and the CPU in the controller node, where the configuration parameters are operating parameters of the switching device, the endpoint device, and the CPU. Resetting the configuration parameters of the peer controller node switching device and the first endpoint device, so that the first endpoint device of the peer controller node sends the received data to the switching device of the peer controller node, and then passes
  • the port connected to the controller in the peer controller node switching device is sent to the port of the controller node switching device; the controller node switching device sends the data received by the port to the second endpoint device of the controller node. in.
  • the ports in the above PCIE switching device can be set as the upstream port and the downstream port.
  • the upstream port can scan all PCIE endpoint devices and switching devices connected to the downstream port, and perform unified addressing and routing access.
  • the PCIE non-transparent bridge ports are isolated, that is, isolated in PCIE. Devices on both sides of the transparent bridge port cannot scan each other to find each other.
  • the attributes of the port can be falsified by setting the configuration parameters of the port. Therefore, the above ports in the controller node are respectively set to the downstream port A5, the downstream port A6, the downstream port A2, and the downstream port A3.
  • the above ports in controller node B are respectively set to be the upstream port B5, the upstream port B6, the downstream port B2, and the downstream port B3.
  • the CPU B connected to the upstream port B6 of the controller node B can scan the PCIE switching device A and the controller node of the controller node A. All PCIE endpoint devices in A. Specifically, as shown in FIG. 3, taking the failure or failure of the controller node A as an example, the configuration parameters of the ports of the switching device in the controller node B and the controller node A are reset: the controller node B will be the controller node.
  • Port B5 of PCIE switching device B is configured as an upstream port, and port A5 of PCIE switching device A in controller node A is configured as a downstream port through port B5 of the controller node PCIE switching device B; controller node B passes this Port B5 of the controller node PCIE switching device B scans the configuration space of the controller node A to obtain the configuration parameters in the configuration space of the PCIE switching device A and the PCIE endpoint device A1 in the controller node A; resetting the controller node A
  • the configuration parameters in the PCIE switching device A and the PCIE endpoint device Al configuration space are such that the PCIE endpoint device A1 of the controller node A transmits the received data to the PCIE switching device A of the controller node A, and then passes through the controller node A.
  • Port A5 of the PCIE switching device A is sent to the port B5 of the PCIE switching device B in the controller node B; the PCIE switching device B in the controller node B connects the port B5. Transmitting data to the controller node of the present PCIE end point device B1.
  • the server only needs to send data to any controller node in the dual controller disk array. If the controller node receiving the data fails, the data is received by the peer controller node, that is, the server in the embodiment is to the controller node. A sends the data once, and when the controller node A fails, the controller node B takes the initiative to take over the data.
  • the technical solution does not need to set a redundant data path in advance, and detects whether the other party is invalid by the controller nodes, realizes mutual detection and performs data path switching, and the server can switch the data transmission path to the pair without using the multipath software.
  • the server does not have to install multipathing software, the server and dual controller disk arrays do not require additional configuration to use multipathing software, thus reducing the redundancy of the server and dual controller disk arrays.
  • controller node A fails, some components on controller node A (such as PCIE endpoint device A1 in Figure 4) can continue to provide services, avoiding wasted part of the available components.
  • an embodiment of the present invention provides support for a dual controller disk array and a server.
  • each controller node in FIG. 4 can use the method to implement a handover data storage path.
  • the controller node A fails, and the controller node B takes over the data on the failed controller node A as an example.
  • each controller node can receive data sent by the server through the switching device in the controller node, and The process of storing the data to the disk enclosure is: the first endpoint device in each controller node receives data sent by the server, and sends the data to the switching device in the controller node; the controller node The CPU in the switching device sends the data in the switching device to the second endpoint device in the controller node according to the configuration parameter in the switching device configuration space, and the second endpoint device sends the data to the disk frame.
  • the PCIE endpoint device A1 in the controller node A receives the data sent by the server, and sends the data to the PCIE switching device A in the controller node; in the controller node A
  • the CPUA sends the data in the PCIE switching device A to the PCIE endpoint device A4 in the controller node according to the configuration parameters in the PCIE switching device A configuration space, and the PCIE endpoint device A4 sends the data to the disk frame.
  • the process of the controller node B receiving the data sent by the server, and storing the data to the disk enclosure is the same as the process of receiving the data sent by the server by the controller node A, and storing the data to the disk enclosure. Said.
  • Step 501 The controller node configures a port connected to the peer controller node in the controller node switching device as an upstream port.
  • Controller node B configures port B5 of the controller node PCIE switching device B as the upstream port.
  • Step 502 Configure a port in the connected peer controller node switching device as a downstream port by using the port in the controller node switching device.
  • the controller node B configures the port A5 of the PCIE switching device A in the controller node A as the downstream port through the port B5 of the controller node PCIE switching device B.
  • Step 503 Scan the peer controller node configuration space by using the port in the controller node switching device to obtain configuration parameters in the peer controller node switching device and the first endpoint device configuration space.
  • the controller node B scans the configuration space of the controller node A through the port B5 of the controller node PCIE switching device B to obtain the configuration parameters in the configuration space of the PCIE switching device A and the PCIE endpoint device A1 in the controller node A.
  • Step 504 Reset configuration parameters in the peer controller node switching device and the first endpoint device configuration space, so that the first endpoint device of the peer controller node sends the received data to the peer controller node. After being exchanged in the device, the port of the switching device of the peer controller node is sent to the port of the switching device of the controller node.
  • Step 505 The controller node switching device sends the data received by the port to the present The second endpoint device of the controller node.
  • the PCIE switching device B in controller node B sends the data received by port B5 to the PCIE endpoint device B1 of the controller node.
  • the method for switching the data storage path may bring the following beneficial effects:
  • the server only needs to send data to any controller node in the dual controller disk array, and if the controller node receiving the data fails, it is The end controller node receives the data, that is, the server in this embodiment sends the data to the controller node A once. When the controller node A fails, the controller node B actively takes over the data.
  • the technical solution does not need to set a redundant data path in advance, and detects whether the other party is invalid by the controller nodes, realizes mutual detection and performs data path switching, and the server can switch the data transmission path to the pair without using the multipath software.
  • the controller node of the end the cost of additional purchase of multipath software is avoided.
  • Servers and dual-controller disk arrays do not require additional configuration to use multipathing software because the server does not have to install multipathing software, thus reducing server and dual controller disk arrays Redundancy of columns.
  • some components on the controller node A (such as the PCIE endpoint device A1 in FIG. 4) can continue to provide services, avoiding waste of some available components.
  • controller node A in the dual controller disk array fails, and the controller node B takes over the data on the controller node A, which is described in the form of a sequence diagram:
  • the controller node A has a PCIE endpoint device A1 connected to the server and a PCIE endpoint device A4 connected to the disk enclosure. Controller node A also has a PCIE switching device A for the central processor CPU A and memory eight running the read and write control program.
  • the PCIE switching device A has multiple ports, namely port A2, port A3, port A5, and port A6; PCIE endpoint device A1 is connected to port A2; port A3 is connected to PCIE endpoint device A4, and the server is connected through PCIE endpoint device A4.
  • the transmitted data is transferred to the disk enclosure; the memory A is connected to the port A6 of the PCIE switching device A through the central processor A.
  • the controller node B also has a PCIE endpoint device B1 connected to the server, a PCIE endpoint device B4 connected to the disk enclosure, a PCIE switching device B, a CPU B, and a memory B.
  • the PCIE switching device B has a port B2, a port B3, a port B5, and Port B6 has the same structure as controller node A and will not be described here.
  • the method can at least include the following steps:
  • Step 601 Send a handshake message periodically.
  • Controller node A periodically sends a handshake message to controller node B through port A5.
  • the above handshake message can be a heartbeat message.
  • Step 602 Determine whether the port of the switching device in the controller node receives the handshake message sent by the controller node A in the preset time period. If yes, it indicates that the peer controller works normally, then continue monitoring, and repeat this step. Otherwise, it is determined that the peer controller node is invalid, and the process proceeds to step 603.
  • the controller node B determines whether the port B5 of the PCIE switching device B in the controller node receives the handshake message sent by the controller node A in the preset time period. In this embodiment, the controller node does not.
  • the handshake message can be received within a preset time period, so that it is determined that the controller node A is invalid.
  • Step 603 Configure the port connected to the peer controller node in the controller node PCIE switching device B as an upstream port.
  • Controller node B configures port B5 of the controller node PCIE switching device B as the upstream port.
  • Step 604 The controller node B configures a port connected to the port in the controller node A switching device as a downstream port by using a port connected to the peer controller node in the controller node switching device.
  • the controller node B configures the port A5 of the PCIE switching device A in the controller node A as the downstream port through the port B5 of the controller node PCIE switching device B.
  • Step 605 The controller node B scans the configuration space of the controller node A through the port connected to the peer controller node in the controller node switching device.
  • controller node B scans the configuration space of the controller node A through the port B5 of the controller node PCIE switching device B.
  • Step 606 The controller node B acquires configuration parameters in the controller node A switching device and the first endpoint device configuration space.
  • the controller node B obtains the configuration parameters in the configuration space of the PCIE switching device A and the PCIE endpoint device A1 in the controller node A.
  • Step 607 The controller node B resets the configuration parameters in the controller node A switching device and the first endpoint device configuration space.
  • Controller Node B resets the configuration parameters in the A1 configuration space of the PCIE switching device A and PCIE endpoint devices in controller node A.
  • the controller node A clears the running state of the PCIE switching device A and the PCIE endpoint device A1 before failing, and re-enters the state at the beginning of power-on.
  • the PCIE switching device A of the controller node A And the PCIE endpoint device A1 can work normally in the PCIE domain of the controller node B, that is, the effect after the resetting is completed is: the PCIE switching device A and the PCIE endpoint device A1 on the controller node A are equivalent to the controller node.
  • PCIE switching device B and PCIE endpoint device B1 on B After the reinitialization is completed, when the PCIE endpoint device A1 receives the data sent by the server, it directly transfers the data to the controller node B.
  • Step 608 After the first endpoint device of the controller node A sends the received data to the switching device of the controller node A, it sends the data to the controller through the port connected to the controller node B in the switching node of the controller node A. Node B switches the port of the device.
  • the PCIE endpoint device A1 of the controller node A After the PCIE endpoint device A1 of the controller node A sends the received data to the PCIE switching device A of the controller node A, it transmits the PCIE exchange to the controller node B through the port A5 of the PCIE switching device A of the controller node A.
  • Device B is in port B5.
  • Step 609 The switching device of the controller node B sends the data received by the port to the second endpoint device of the control node.
  • the PCIE switching device B of controller node B transmits the data received by port B5 to the PCIE endpoint device B4 of the control node.
  • step sequence of the controller node A receiving the data sent by the server is not limited. It can be understood that the controller node A receives the data sent by the server as a random event, which can occur at any time in the solution. .
  • the present invention also provides a storage system, including a server and a dual-controller disk array.
  • the dual-controller disk array is the dual-controller disk array in any of the foregoing embodiments and the third embodiment. For details, refer to the first embodiment. The structure of the dual controller disk array in the third embodiment is not mentioned here.
  • detecting, by the port, whether the peer controller node is invalid includes: each controller node determining whether the port of the switching device in the controller node receives the peer control in the preset time period. The handshake message sent by the node; if the judgment result is no, it is determined that the peer controller node is invalid.
  • the controller node B determines whether the port B5 in the controller node receives the handshake message sent by the controller node A in the preset time period; if the determination result is no, it determines that the controller node A is invalid.
  • the handshake message can be a heartbeat message, and the heartbeat message can be used to indicate that the controller node is still working normally.
  • the controller node B can monitor the state of the controller node A.
  • the controller node A can transmit a heartbeat message to the controller node B through the doorbell register.
  • each controller node is further configured to periodically send a handshake message to the peer controller node, where the time interval in the period is not greater than a preset time period.
  • the peer controller node failure includes a CPU failure in the peer controller node, and/or a memory failure connected to the CPU.
  • the first endpoint device and the second endpoint device comprise a Peripheral Component Interconnect Standard Extended PCIE Endpoint device, the switching device comprising a PCIE switching device.
  • the technical solution of the present invention which is essential or contributes to the prior art, may be embodied in the form of a software product stored in a storage medium, including a plurality of instructions for causing a A computer device (which may be a personal computer, server, or network device, etc.) performs all or part of the steps of the methods described in various embodiments of the present invention.
  • the foregoing storage medium includes: a medium that can store program codes, such as a read only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
  • the device embodiment since it basically corresponds to the method embodiment, A partial description of the method embodiment is sufficient.
  • the device embodiments described above are merely illustrative, and the components shown may or may not be physical units, ie may be located in one place, or may be distributed over multiple network elements. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the embodiment. Those of ordinary skill in the art can understand and implement without any creative effort.
  • the disclosed device and method may be implemented in other manners without departing from the spirit and scope of the present application.
  • the present embodiments are merely exemplary and should not be taken as limiting, and the specific details are not intended to limit the scope of the application.
  • the division of the unit or subunit is only a logical function division, and the actual implementation may have another division manner, for example, a plurality of units or a plurality of subunits are combined.
  • multiple units may or may be combined or integrated into the peer device, or some features may be omitted or not performed.
  • the coupling or direct coupling or communication connection to the endpoints may be indirect coupling or communication connection through some interface, device or unit, and may be electrical, mechanical or otherwise.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)

Abstract

提供了一种磁盘阵列、存储系统和数据存储路径切换方法,其中存储系统包括磁盘阵列和服务器。磁盘阵列包括磁盘框以及两个控制器节点,每个控制器节点包括交换设备,其中交换设备的一个端口与对端控制器节点中交换设备的一个端口相连接;每个控制器节点用于通过端口检测对端控制器节点是否失效;当检测到对端控制器节点失效时,本控制器节点使对端控制器节点将接收到的服务器发送的数据,通过对端控制器节点交换设备的端口发送至本控制器节点交换设备的端口中,由于不需要在服务器中安装多路径软件,因此减少了服务器装置的冗余。

Description

磁盘阵列、 存储系统以及数据存储路径切换方法
技术领域 本发明涉及数据存储技术领域, 更具体地说, 涉及一种磁盘阵列、 存储系 统以及数据存储路径切换方法。 背景技术 存储设备, 通常指磁盘阵列,是独立在服务器外的一台或多台用以存储数 据的磁盘设备, 其包括磁盘框以及多个控制器节点。 当前主流的磁盘阵列使用 的是双控制器磁盘阵列, 如图 1所示, 双控制器磁盘阵列包括两个控制器节点 以及用于安装物理存储介质(例如, 固态硬盘)的磁盘框, 服务器中的数据通 过其中的一个控制器节点存储在磁盘框中。
在实际应用中, 当双控制器磁盘阵列中的一个控制器节点失效时, 另外一 个控制器节点必须能接管失效控制器节点的数据。 为了实现上述目的, 当前已 经提出一种技术方案。 在该方案中, 当某个控制器节点失效后, 运行在服务器 上的多路径软件检测链路状态, 根据失效的路径 (图 1中细实线所示的数据路 径 1), 切换至备份的路径上 (图 1中虚线所示的数据路径 2), 也即, 服务器将失 效的控制器节点的数据传输路径切换至另一控制器节点上,向另一控制器节点 重新发送待存储的数据。
上述方案虽然能够解决某个控制器节点失效的情况, 但是会存在如下问 题: 在服务器上安装存储设备厂商提供的多路径软件, 并使用该软件进行路径 切换时, 需要预先在服务器和磁盘阵列进行一系列复杂配置才能实现, 增加了 服务器和磁盘阵列的冗余数据量。 发明内容 有鉴于此, 本发明实施例目的在于提供一种双控制器磁盘阵列、存储系统 以及数据存储路径切换方法,以解决服务器应用多路径软件切换失效控制器节 点时,服务器和双控制器磁盘阵列需增加一系列复杂的配置来使用多路径软件 的缺点。
一种双控制器磁盘阵列 ,应用于包括双控制器磁盘阵列和服务器的存储系 统中, 所述双控制器磁盘阵列包括磁盘框以及两个控制器节点,每个所述控制 器节点包括交换设备,其中交换设备的一个端口与对端控制器节点中交换设备 的一个端口相连接;每个所述控制器节点通过本控制器节点中的交换设备接收 所述服务器发送的数据, 并将所述数据存储至所述磁盘框, 其中:
每个所述控制器节点, 还用于通过所述端口检测对端控制器节点是否失 效; 当检测到对端控制器节点失效时, 重新设置本控制器节点和对端控制器节 点的配置参数,使得对端控制器节点将接收到的所述服务器发送的数据,通过 对端控制器节点交换设备的端口发送至本控制器节点交换设备的端口中; 每个所述控制器节点,还用于通过本控制器节点交换设备中所述端口接收 对端控制器节点发来的数据, 并将接收到的数据存储至所述磁盘框中, 所述数 据是服务器发送至对端控制器节点的。
一种存储系统, 包括服务器和如上述的双控制器磁盘阵列。
一种数据存储路径的切换方法,应用于包括双控制器磁盘阵列和服务器的 存储系统中, 包括:
双控制器磁盘阵列中的每个控制器节点通过其交换设备中与对端控制器 节点连接的端口检测对端控制器节点是否失效,所述双控制器磁盘阵列包括磁 盘框以及两个控制器节点,每个所述控制器节点通过本控制器节点中的交换设 备接收所述服务器发送的数据, 并将所述数据存储至所述磁盘框,每个所述控 制器节点包括交换设备,其中交换设备的一个端口与对端控制器节点中交换设 备的一个端口相连接;
当检测到对端控制器节点失效时,重新设置本控制器节点和对端控制器节 点的配置参数,使得对端控制器节点将接收到的所述服务器发送的数据,通过 对端控制器节点交换设备的端口发送至本控制器节点交换设备的端口中; 通过本控制器节点交换设备中所述端口接收对端控制器节点发来的数据 , 所述数据是服务器发送至对端控制器节点的;并将接收到的数据存储至所述磁 盘框中。
上述双控制器磁盘阵列、存储系统以及数据存储路径切换方法可带来以下 有益效果:
服务器只需要向双控制器磁盘阵列中的任意一个控制器节点发送一次数 据, 如果接收数据的控制器节点失效, 就由对端节点接收数据, 通过控制器节 点间相互检测对方是否失效, 因此本发明不必事先设定冗余的数据路径,服务 器则不必安装多路径软件即可以实现将数据传输路径切换至对端控制器节点 上, 减少了服务器和双控制器磁盘阵列的冗余数据量。
附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地, 下面描述 中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创 造性劳动的前提下, 还可以根据提供的附图获得其他的附图。
图 1为现有技术中数据存储路径的切换方法示意图;
图 2 为本发明实施例一提供的双控制磁盘阵列和服务器的第一结构示意 图;
图 3为本发明实施例二提供的一种数据存储路径切换方法的第一流程图; 图 4 为本发明实施例三提供的双控制磁盘阵列和服务器的第二结构示意 图;
图 5 为本发明实施例四提供的一种数据存储路径切换方法中重新设置配 置参数的方法流程图;
图 6为本发明实施例五提供的数据存储路径切换方法的时序图。
具体实施方式 下面将结合本发明实施例中的附图 ,对本发明实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是 全部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有做出创造 性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。
为了引用和清楚起见,下文中使用的简写或缩写或设备的中英文对照总结 下:
PCIE: Peripheral Component Interconnect Express ,夕卜设邵件互连标准扩展;
PCIE端点设备: PCIE End Point;
PCIE交换设备: PCIE Switch Device;
CPU: Central Processing Unit, 中央处理器;
NTB: None-Transparent Bridge, 非透明桥;
上游端口: upstream口;
下游端口: downstream口。 实施例一
参考图 2, 示出了本实施例提供的一种双控制器磁盘阵列结构示意图和双 控制器磁盘阵列与服务器的连接示意图。
双控制器磁盘阵列包括磁盘框以及两个控制器节点,每个控制器节点包括 交换设备,其中交换设备的一个端口与对端控制器节点中交换设备的一个端口 相连接;每个控制器节点通过本控制器节点中的交换设备接收服务器发送的数 据, 并将数据存储至磁盘框中。
为了叙述方便,将双控制器磁盘阵列中的两个控制器节点分别称为控制器 节点 A以及控制器节点8。 控制器节点 A和控制器节点 B的功能类似, 可以 互为主备,服务器或该磁盘阵列可以根据一定的选择策略选择其中的一个控制 器节点来向磁盘框传输待存储数据。 控制器节点 A中包含交换设备 A, 控制 器节点 B中包含交换设备 B。 控制器节点 A和控制器节点 B均可以通过本控 制器节点中的交换设备接收所述服务器发送的数据 ,并将所述数据存储至所述 磁盘框。
交换设备 A的端口 A5与交换设备 B的端口 B5连接。每个所述控制器节 点通过本控制节点的交换设备的端口检测对端控制器节点是否失效;当检测到 对端控制器节点失效时, 重新设置本控制器节点和对端控制器节点的配置参 数,使得对端控制器节点将接收到的所述服务器发送的数据,通过对端控制器 节点交换设备中与本控制器节点连接的端口发送至本控制器节点交换设备的 端口中;通过本控制器节点交换设备中所述端口接收对端控制器节点发来的数 据, 所述数据是服务器发送至对端控制器节点的; 并将接收到的数据存储至所 述磁盘框中。 例如, 在控制器节点 A接收服务器发送的数据, 并将所述数据 存储至磁盘框的过程中,控制器节点 B通过端口 B5检测控制器节点 A是否失 效, 并在检测到控制器节点 A失效时, 重新设置控制器节点 A和控制器节点 B 的配置参数, 使得控制器节点 B将接收到的服务器发送的数据, 通过端口 A5发送至端口 B5中; 并将端口 B5中接收到的数据存储至磁盘框中。
可选地,上述控制器节点检测对端控制器节点是否失效的方式包括但不限 于:
控制器节点判断在预设的时间段内本控制器节点交换设备中与对端控制 器节点连接的端口是否收到对端控制器节点发送的握手消息;如果判断结果为 否, 则确定对端控制器节点失效。 例如, 控制器节点 B判断在 10秒内, 端口 B5是否收到端口 A5发来的握手消息, 如果未收到握手消息, 则确定对端控 制器节点失效。 在设置预设时间段(即监测握手消息的时间间隔)时, 在系统 允许的范围内, 可以综合考虑控制器节点的处理性能、用户对数据传输的实时 性要求等因素, 如果控制器节点的处理性能较高、 且用户实时性要求较高, 那 么监测握手消息的时间间隔可以设置较短, 反之可以适当延长。
当然, 还可以釆用其他方式来检测对端控制器节点是否失效, 例如, 控制 器节点 B以预设的时间间隔向控制器节点 A发送探测消息, 判断是否能接收 到控制器节点 A反馈的响应消息, 若超过预设时间段未收到响应消息, 则确 定控制器节点 A失效。 或者, 两个控制器节点事先约定, 每个控制器节点当 接收到对端控制器节点发送的中断消息时, 确认对端控制器节点失效。
相应地,图 2所示的双控制器磁盘阵列中的每个控制器节点还用于周期性 地向对端控制器节点发送握手消息 ,所述周期中的时间间隔不大于确定是否失 效时所述预设的时间段。
上述双控制器磁盘阵列可带来以下有益效果:
服务器只需要向双控制器磁盘阵列中的任意一个控制器节点发送一次数 据, 如果接收数据的控制器节点失效, 就由对端控制器节点接收数据, 即本实 施例中的服务器向控制器节点 A发送一次数据, 当控制器节点 A失效时, 由 控制器节点 B主动接管所述数据。
本实施例通过控制器节点间相互检测对方是否失效,因此不必事先设定冗 余的数据路径 ,服务器则不必应用多路径软件即可以实现将数据传输路径切换 至对端控制器节点上,避免了额外购买多路径软件的费用,也避免了现有存储 设备厂商各自提供的多路径软件容易产生的不兼容问题。
由于服务器不必安装多路径软件,服务器和双控制器磁盘阵列就不需要增 加配置来使用多路径软件,因此减少了服务器和双控制器磁盘阵列的冗余数据 量。 实施例二
请参照附图 3 , 本实施例提供了一种数据存储路径的切换方法, 附图 2中 的每个控制器节点可以釆用该方法来实现切换数据存储路径。
本实施例以控制器节点 A失效, 控制器节点 B接管失效的控制器节点 A 上的数据为例。
步骤 201 : 每个控制器节点通过其交换设备中与对端控制器节点连接的端 口检测对端控制器节点是否失效。
控制器节点 B通过端口 B5检测控制器节点 A是否失效,上述控制器节点 B检测控制器节点 A是否失效的方式包括但不限于:
控制器节点 B判断在预设的时间段内本控制器节点中交换设备的端口 B5 是否收到控制器节点 A发送的握手消息; 如果判断结果为否, 则确定控制器 节点 A失效。 例如, 控制器节点 B判断在 10秒内, 端口 B5是否收到端口 A5 发来的握手消息, 如果未收到握手消息, 则确定对端控制器节点失效。 在设置 预设时间段(即监测握手消息的时间间隔)时, 在系统允许的范围内, 可以综 合考虑控制器节点的处理性能、用户对数据传输的实时性要求等因素, 如果控 制器节点的处理性能较高、且用户实时性要求较高, 那么监测握手消息的时间 间隔可以设置较短, 反之可以适当延长。
当然, 还可以釆用其他方式来检测对端控制器节点是否失效, 例如, 控制 器节点 B以预设的时间间隔向控制器节点 A发送探测消息, 判断是否能接收 到控制器节点 A反馈的响应消息, 若超过预设时间段未收到响应消息, 则确 定控制器节点 A失效。
相应地, 控制器节点 B还用于周期性地向控制器节点 A发送握手消息, 所述周期中的时间间隔不大于确定是否失效时所述预设的时间段。
步骤 202: 当检测到对端控制器节点失效时, 重新设置本控制器节点和对 端控制器节点的配置参数,使得对端控制器节点将接收到的所述服务器发送的 数据 ,通过对端控制器节点交换设备的端口发送至本控制器节点交换设备的端 口中。
如图 2中所示, 双控制器磁盘阵列包括磁盘框以及两个控制器节点, 分别 为控制器节点 A和控制器节点 B, 每个控制器节点均可以通过本控制器节点 中的交换设备接收所述服务器发送的数据, 并将所述数据存储至所述磁盘框, 每个控制器节点包括交换设备,其中交换设备 A的端口 A5与交换设备 B的端 口 B5连接。
在控制器节点 A接收服务器发送的数据, 并将所述数据存储至磁盘框的 过程中,控制器节点 B通过端口 B5检测控制器节点 A是否失效,并在检测到 控制器节点 A失效时, 重新设置控制器节点 A和控制器节点 B的配置参数, 使得控制器节点 B将接收到的服务器发送的数据, 通过端口 A5发送至端口 B5中。
步骤 203: 通过本控制器节点交换设备中所述端口接收对端控制器节点发 来的数据, 并将接收到的数据存储至所述磁盘框中, 所述数据是服务器发送至 对端控制器节点的。
控制器节点 B的端口 B5接收控制器节点 A发来的数据,并将接收到的数 据存储至所述磁盘框中。 上述数据存储路径的切换方法可带来以下有益效果:
服务器只需要向双控制器磁盘阵列中的任意一个控制器节点发送一次数 据, 如果接收数据的控制器节点失效, 就由对端节点接收数据, 本发明实施例 通过控制器节点间相互检测对方是否失效, 因此不必事先设定冗余的数据路 径,服务器则不必应用多路径软件即可以实现将数据传输路径切换至对端控制 器节点上,避免了额外购买多路径软件的费用。 由于服务器不必安装多路径软 件,服务器和双控制器磁盘阵列就不需要增加配置来使用多路径软件, 因此减 少了服务器和双控制器磁盘阵列的冗余。 实施例三
本发明实施例提供了在双控制器磁盘阵列以及服务器均支持 PCIE总线的 场景下, 双控制器磁盘阵列的一种具体结构, 如附图 4所示。
附图 4中的每个控制器节点除了包含交换设备(该交换设备的端口与对端 控制器节点中交换设备的端口相连接 )之外,还包括与服务器连接的第一端点 设备、与所述磁盘框连接的第二端点设备和用于运行读写控制程序的中央处理 器 CPU。
可选地, 第一端点设备和第二端点设备可以是 PCIE端点设备, 交换设备 可以是 PCIE交换设备。 具体地: 控制器节点 A具有与服务器连接的 PCIE端 点设备 A1 , 与磁盘框连接的 PCIE端点设备 A4。 控制器节点 A还具有 PCIE 交换设备 A, 用于运行读写控制程序的 CPU A以及内存 A。 PCIE交换设备 A 具有多个端口, 分别为端口 A2、 端口 A3、 端口 A5以及端口 A6; PCIE端点 设备 A1与端口 A2连接; 端口 A3与 PCIE端点设备 A4连接, 并通过 PCIE 端点设备 A4将服务器下发的数据传输至磁盘框; 内存 A通过中央处理器 A 与 PCIE交换设备 A的端口 A6连接。
控制器节点 B同样具有与服务器连接的 PCIE端点设备 B1 , 与磁盘框连 接的 PCIE端点设备 B4、 PCIE交换设备 B、 CPU B以及内存 B, PCIE交换设 备 B具有端口 B2、 端口 B3、 端口 B5 以及端口 B6, 其结构与控制器节点 A 相同, 在此不做赘述。 在双控制器磁盘阵列中,控制器节点 A与控制器节点 B通过端口 A5和端 口 B5连接, 可选地, 端口 A5和端口 B5可以为 PCIE 非透明桥端口。
在附图 2所示的双控制器磁盘阵列中,待存储数据的存储过程为: 每个控 制器节点中的第一端点设备接收服务器发送的数据 ,将数据发送至本控制器节 点中的交换设备中; 控制器节点中的 CPU根据交换设备配置空间中的配置参 数,将交换设备中的数据发送至本控制器节点中的第二端点设备中, 第二端点 设备将数据发送至磁盘框。
具体地, 当控制器节点 A起作用时, 控制器节点 A中的 PCIE端点设备 A1接收服务器发送的数据,将数据发送至本控制器节点中的 PCIE交换设备 A 中;控制器节点 A中的 CPUA根据 PCIE交换设备 A配置空间中的配置参数, 将 PCIE交换设备 A中的数据发送至本控制器节点中的 PCIE端点设备 A4中, PCIE端点设备 A4将数据发送至磁盘框。 同理, 控制器节点 B接收服务器发 送的数据, 并将数据存储至磁盘框的过程与上述控制器节点 A接收服务器发 送的数据, 并将数据存储至磁盘框的过程相同, 在此不做赞述。
双控制器磁盘阵列中的每个控制器节点,还用于通过其交换设备中与对端 控制器节点连接的端口检测对端控制器节点是否失效;当检测到对端控制器节 点失效时, 重新设置本控制器节点和对端控制器节点的配置参数,使得对端控 制器节点将接收到的服务器发送的数据,通过对端控制器节点交换设备的端口 发送至本控制器节点交换设备的端口中;通过本控制器节点交换设备中端口接 收对端控制器节点发来的数据,数据是服务器发送至对端控制器节点的; 并将 接收到的数据存储至磁盘框中。 具体来说, 控制器节点 B可用于通过端口 B5 检测控制器节点 A是否失效, 当检测到控制器节点 A失效时, 控制器节点 B 重新设置本控制器节点和控制器节点 A的配置参数, 使得控制器节点 A将接 收到的服务器发送的数据, 通过控制器节点 A的 PCIE交换设备 A的端口 A5 发送至 PCIE交换设备 B的端口 B5中。控制器节点 B通过本控制器节点 PCIE 交换设备 B中的端口 B5接收控制器节点 A发来的数据,数据是服务器发送至 控制器节点 A的; 并将接收到的数据存储至磁盘框中。
本实施例的数据传输路径参考图 2中的箭头方向,服务器发送的数据以数 据路径 3存储至磁盘框中。
下面将详细地介绍重新设置配置参数的过程:
控制器节点将本控制器节点交换设备中与对端控制器节点连接的端口配 置为上游端口,并通过该端口将对端控制器节点交换设备中与该节点连接的端 口配置为下游端口, 其中上游端口和下游端口是 PCIE规范中定义的一种端口 属性, 上游端口是指靠近接管方 CPU方向的端口, 下游端口是指远离接管方 CPU 的端口, 被配置为上游端口的端口能够扫描与该端口连接的下游端口的 配置参数,而被配置为下游端口的端口是不能够扫描所连接的其他端口的配置 参数的;控制器节点通过本控制器节点交换设备中与对端控制器节点连接的端 口扫描对端控制器节点配置空间,以获取对端控制器节点交换设备和第一端点 设备配置空间中的配置参数。 所述配置空间存储有本控制器节点中的交换设 备、 端点设备和 CPU的配置参数, 该配置参数为交换设备、 端点设备和 CPU 的运行参数。 重新设置对端控制器节点交换设备和第一端点设备的配置参数, 使得对端控制器节点的第一端点设备将接收到的数据发送到对端控制器节点 的交换设备中后 ,通过对端控制器节点交换设备中与本控制器连接的端口发送 至本控制器节点交换设备的端口中;本控制器节点交换设备将端口接收到的数 据发送到本控制器节点的第二端点设备中。
通过设置端口的配置参数, 上述 PCIE交换设备中的端口可以被设置成为 上游端口、 下游端口。
根据 PCIE协议规范:上游端口能扫描发现到连接在下游端口下所有 PCIE 端点设备以及交换设备, 并进行统一编址、 路由访问; PCIE 非透明桥端口会 进行隔离, 也就是说, 隔离在 PCIE 非透明桥端口两侧的设备不能相互扫描发 现对方。 而端口的属性能够通过设置端口的配置参数进行 ^ί'爹改, 因此, 控制器 节点 Α中的上述端口被分别设置成为下游端口 A5、 下游端口 A6、 下游端口 A2以及下游端口 A3。 控制器节点 B 中的上述端口被分别设置成为上游端口 B5、 上游端口 B6、 下游端口 B2以及下游端口 B3。
在控制器节点 B的上游端口 B5与控制器节点 A的下游端口 A5相连后, 与控制器节点 B的上游端口 B6相连的 CPU B可以扫描到控制器节点 A的 PCIE交换设备 A以及控制器节点 A中所有的 PCIE端点设备。 具体的, 如图 3所示, 以控制器节点 A失效或故障为例, 重新设置控制 器节点 B和控制器节点 A中交换设备的端口的配置参数包括: 控制器节点 B 将本控制器节点 PCIE交换设备 B的端口 B5配置为上游端口, 并通过本控制 器节点 PCIE交换设备 B的端口 B5 , 将控制器节点 A中 PCIE交换设备 A的 端口 A5配置为下游端口; 控制器节点 B通过本控制器节点 PCIE交换设备 B 中的端口 B5扫描控制器节点 A的配置空间, 以获取控制器节点 A中 PCIE交 换设备 A和 PCIE端点设备 A1配置空间中的配置参数; 重新设置控制器节点 A中 PCIE交换设备 A和 PCIE端点设备 Al配置空间中的配置参数, 使得控 制器节点 A的 PCIE端点设备 A1将接收到的数据发送到控制器节点 A的 PCIE 交换设备 A中后,通过控制器节点 A中 PCIE交换设备 A的端口 A5发送至控 制器节点 B中 PCIE交换设备 B的端口 B5中; 控制器节点 B 中的 PCIE交换 设备 B将端口 B5接收到的数据发送到本控制器节点的 PCIE端点设备 B1中。
本实施例提供的双控制器磁盘阵列可带来以下有益效果:
服务器只需要向双控制器磁盘阵列中的任意一个控制器节点发送一次数 据, 如果接收数据的控制器节点失效, 就由对端控制器节点接收数据, 即本实 施例中的服务器向控制器节点 A发送一次数据, 当控制器节点 A失效时, 由 控制器节点 B主动接管所述数据。
本技术方案不必事先设定冗余的数据路径,通过控制器节点间相互检测对 方是否失效, 实现互相检测并进行数据路径的切换,服务器不必应用多路径软 件即可以实现将数据传输路径切换至对端的控制器节点上,避免了额外购买多 路径软件的费用。 由于服务器不必安装多路径软件,服务器和双控制器磁盘阵 列就不需要增加配置来使用多路径软件,因此减少了服务器和双控制器磁盘阵 列的冗余。 并且, 当控制器节点 A失效后, 控制器节点 A上的某些部件 (如 图 4中的 PCIE端点设备 A1 )还可以继续提供服务, 避免了部分可用部件的 浪费。 实施例四
参见图 5 , 本发明实施例提供了在双控制器磁盘阵列以及服务器均支持 PCIE总线的场景下, 一种数据存储路径的切换方法, 附图 4中的每个控制器 节点可以釆用该方法来实现切换数据存储路径。
本实施例还以控制器节点 A失效, 控制器节点 B接管失效的控制器节点 A上的数据为例。
附图 4中的每个控制器节点的具体结构可参见实施三,在此不做赘述。本 实施例与实施例二中的数据存储路径的切换方法相同,其中,实施例二中的 "每 个控制器节点均可以通过本控制器节点中的交换设备接收所述服务器发送的 数据, 并将所述数据存储至所述磁盘框"过程具体为: 每个控制器节点中的第 一端点设备接收服务器发送的数据,将数据发送至本控制器节点中的交换设备 中; 控制器节点中的 CPU根据交换设备配置空间中的配置参数, 将交换设备 中的数据发送至本控制器节点中的第二端点设备中 ,第二端点设备将数据发送 至磁盘框。
具体地, 当控制器节点 A起作用时, 控制器节点 A中的 PCIE端点设备 A1接收服务器发送的数据,将数据发送至本控制器节点中的 PCIE交换设备 A 中;控制器节点 A中的 CPUA根据 PCIE交换设备 A配置空间中的配置参数, 将 PCIE交换设备 A中的数据发送至本控制器节点中的 PCIE端点设备 A4中, PCIE端点设备 A4将数据发送至磁盘框。 同理, 控制器节点 B接收服务器发 送的数据, 并将数据存储至磁盘框的过程与上述控制器节点 A接收服务器发 送的数据, 并将数据存储至磁盘框的过程相同, 在此不做赞述。
下面详细地介绍实施例二中重新设置配置参数的过程, 参考图 5:
步骤 501 : 控制器节点将本控制器节点交换设备中与对端控制器节点连接 的端口配置为上游端口。
控制器节点 B将本控制器节点 PCIE交换设备 B的端口 B5配置为上游端 口。
步骤 502: 通过本控制器节点交换设备中的所述端口将所连接的对端控制 器节点交换设备中端口配置为下游端口。
控制器节点 B通过本控制器节点 PCIE交换设备 B的端口 B5, 将控制器 节点 A中 PCIE交换设备 A的端口 A5配置为下游端口。 步骤 503: 通过本控制器节点交换设备中的所述端口, 扫描对端控制器节 点配置空间,以获取对端控制器节点交换设备和第一端点设备配置空间中的配 置参数。
控制器节点 B通过本控制器节点 PCIE交换设备 B中的端口 B5扫描控制 器节点 A的配置空间,以获取控制器节点 A中 PCIE交换设备 A和 PCIE端点 设备 A1配置空间中的配置参数。
步骤 504: 重新设置对端控制器节点交换设备和第一端点设备配置空间中 的配置参数,使得对端控制器节点的第一端点设备将接收到的数据发送到对端 控制器节点的交换设备中后 ,通过对端控制器节点交换设备的端口发送至本控 制器节点交换设备的端口中。
重新设置控制器节点 A中 PCIE交换设备 A和 PCIE端点设备 A1配置空 间中的配置参数, 使得控制器节点 A的 PCIE端点设备 A1将接收到的数据发 送到控制器节点 A的 PCIE交换设备 A中后,通过控制器节点 A中 PCIE交换 设备 A的端口 A5发送至控制器节点 B中 PCIE交换设备 B的端口 B5中 步骤 505: 本控制器节点交换设备将所述端口接收到的数据发送到本控制 器节点的第二端点设备中。
控制器节点 B 中的 PCIE交换设备 B将端口 B5接收到的数据发送到本控 制器节点的 PCIE端点设备 B1中。
本实施例提供的数据存储路径的切换方法可带来以下有益效果: 服务器只需要向双控制器磁盘阵列中的任意一个控制器节点发送一次数 据, 如果接收数据的控制器节点失效, 就由对端控制器节点接收数据, 即本实 施例中的服务器向控制器节点 A发送一次数据, 当控制器节点 A失效时, 由 控制器节点 B主动接管所述数据。
本技术方案不必事先设定冗余的数据路径,通过控制器节点间相互检测对 方是否失效, 实现互相检测并进行数据路径的切换,服务器不必应用多路径软 件即可以实现将数据传输路径切换至对端的控制器节点上,避免了额外购买多 路径软件的费用。 由于服务器不必安装多路径软件,服务器和双控制器磁盘阵 列就不需要增加配置来使用多路径软件,因此减少了服务器和双控制器磁盘阵 列的冗余。 并且, 当控制器节点 A失效后, 控制器节点 A上的某些部件 (如 图 4中的 PCIE端点设备 A1 )还可以继续提供服务, 避免了部分可用部件的 浪费。 实施例五
参考图 6, 为了使本方案更加清楚, 下面以双控制器磁盘阵列中控制器节 点 A失效, 控制器节点 B接管控制器节点 A上的数据, 以时序图的方式加以 介绍:
另参考图 4的双控制磁盘阵列和服务器的结构示意图, 控制器节点 A具 有与服务器连接的 PCIE端点设备 A1 , 与磁盘框连接的 PCIE端点设备 A4。 控制器节点 A还具有 PCIE交换设备 A,用于运行读写控制程序的中央处理器 CPU A以及内存八。 PCIE交换设备 A具有多个端口, 分别为端口 A2、 端口 A3、 端口 A5以及端口 A6; PCIE端点设备 A1与端口 A2连接; 端口 A3与 PCIE端点设备 A4连接, 并通过 PCIE端点设备 A4将服务器下发的数据传输 至磁盘框; 内存 A通过中央处理器 A与 PCIE交换设备 A的端口 A6连接。
控制器节点 B同样具有与服务器连接的 PCIE端点设备 B1 , 与磁盘框连 接的 PCIE端点设备 B4、 PCIE交换设备 B、 CPU B以及内存 B, PCIE交换设 备 B具有端口 B2、 端口 B3、 端口 B5 以及端口 B6, 其结构与控制器节点 A 相同, 在此不做赘述。
该方法至少可以包括以下步骤:
步骤 601 : 周期性的发送握手消息。
控制器节点 A通过端口 A5周期性的向控制器节点 B发送握手消息。上述 握手消息可以为心跳消息。
步骤 602: 判断在预设的时间段内本控制器节点中交换设备的端口是否收 到控制器节点 A发送的握手消息, 若是, 说明对端控制器工作正常, 则继续 监控, 重复本步骤, 否则, 确定出对端控制器节点失效, 进入步骤 603。
控制器节点 B判断在预设的时间段内本控制器节点中 PCIE交换设备 B的 端口 B5是否收到控制器节点 A发送的握手消息,在本实施例中控制器节点未 能在预设的时间段内接收到握手消息, 因此判断出控制器节点 A失效。
步骤 603: 将本控制器节点 PCIE交换设备 B中与对端控制器节点连接的 端口配置为上游端口。
控制器节点 B将本控制器节点 PCIE交换设备 B的端口 B5配置为上游端 口。
步骤 604:控制器节点 B通过本控制器节点交换设备中与对端控制器节点 连接的端口将控制器节点 A交换设备中与该端口连接的端口配置为下游端口。
具体的, 控制器节点 B通过本控制器节点 PCIE交换设备 B的端口 B5将 控制器节点 A中 PCIE交换设备 A中端口 A5配置为下游端口。
步骤 605:控制器节点 B通过本控制器节点交换设备中与对端控制器节点 连接的端口扫描控制器节点 A的配置空间。
具体的, 控制器节点 B通过本控制器节点 PCIE交换设备 B的端口 B5扫 描控制器节点 A的配置空间。
步骤 606: 控制器节点 B获取控制器节点 A交换设备和第一端点设备配 置空间中的配置参数。
控制器节点 B获取控制器节点 A中 PCIE交换设备 A和 PCIE端点设备 A1配置空间中的配置参数。
步骤 607: 控制器节点 B重新设置控制器节点 A交换设备和第一端点设 备配置空间中的配置参数。
控制器节点 B重新设置控制器节点 A中 PCIE交换设备 A和 PCIE端点设 备 A1配置空间中的配置参数。
重新设置之后的结果是控制器节点 A清除掉 PCIE交换设备 A和 PCIE端 点设备 A1失效前的运行状态, 使之重新进入到上电之初的状态, 另外, 控制 器节点 A的 PCIE交换设备 A以及 PCIE端点设备 A1可以在控制器节点 B的 PCIE域中正常工作, 也就是说, 重新设置完成之后的效果为: 控制器节点 A 上的 PCIE交换设备 A和 PCIE端点设备 A1等同于控制器节点 B上的 PCIE 交换设备 B和 PCIE端点设备 B1。 重新初始化完成后, 当 PCIE端点设备 A1 收到服务器发送的数据时会直接将数据转移到控制器节点 B。 步骤 608:控制器节点 A的第一端点设备将接收到的数据发送到控制器节 点 A的交换设备中后, 通过控制器节点 A交换设备中与控制器节点 B连接的 端口发送至控制器节点 B交换设备的端口中。
控制器节点 A的 PCIE端点设备 A1将接收到的数据发送到控制器节点 A 的 PCIE交换设备 A中后, 通过控制器节点 A的 PCIE交换设备 A的端口 A5 发送至控制器节点 B 的 PCIE交换设备 B的端口 B5中。
步骤 609:控制器节点 B的交换设备将端口接收到的数据发送到本控制节 点的第二端点设备中。
控制器节点 B的 PCIE交换设备 B将端口 B5接收到的数据发送到本控制 节点的 PCIE端点设备 B4中。
需要说明的是, 不限定控制器节点 A接收服务器发送的数据的步骤时序, 可以理解的是, 控制器节点 A接收服务器发送的数据是一个随机的事件, 其 可以在本方案的任一时刻发生。 实施例六
本发明还提供了一种存储系统, 包括服务器和双控制器磁盘阵列, 双控制 器磁盘阵列为上述实施例一、 实施例三任一实施例中的双控制器磁盘阵列, 具 体参见实施例一和实施例三中双控制器磁盘阵列的结构 , 在此不做赞述。
本存储系统应具有上述实施例中的双控制器磁盘阵列,其具有上述双控制 器磁盘阵列的有益效果, 在此不做赞述。 在本发明上述的所有实施例中,通过端口检测对端控制器节点是否失效包 括:每个控制器节点判断在预设的时间段内本控制器节点中交换设备的端口是 否收到对端控制器节点发送的握手消息; 如果判断结果为否, 则确定对端控制 器节点失效。
具体的, 控制器节点 B判断在预设的时间段内本控制器节点中的端口 B5 是否收到控制器节点 A发送的握手消息; 如果判断结果为否, 则确定控制器 节点 A失效。 握手消息可以为心跳消息, 心跳消息可用来指示控制器节点还在正常工 作。 例如, 在控制器节点中的交换设备、 端点设备均支持 PCIE总线、 两个控 制器节点之间相互连接的端口为非透明桥端口的场景下, 控制器节点 B 可监 控控制器节点 A的状态, 控制器节点 A可以通过门铃寄存器向控制器节点 B 传送心跳消息, 当控制器节点 B 在规定的时间段内没有收到预先规定好的心 跳消息时, 就可以认为控制器节点 A失效, 如果控制器节点 B发现控制器节 点 A失效, 它就需要釆取一些必要的措施, 使控制器节点 A上的数据传输路 径切换至控制器节点 B。 其中, 门铃寄存器是用来送从非透明的桥一侧到另一 侧的中断请求,关于门铃寄存器和门铃机制,请参照非透明桥的相关技术文档, 在这里不再详述。 在上述所有实施例中,每个控制器节点还用于周期性地向对端控制器节点 发送握手消息, 周期中的时间间隔不大于预设的时间段。 在上述所有实施例中, 所述对端控制器节点失效包括对端控制器节点中 CPU故障, 和 /或与 CPU连接的内存故障。 在上述所有实施例中,所述第一端点设备和第二端点设备包括外设部件互 连标准扩展 PCIE端点设备, 所述交换设备包括 PCIE交换设备。 通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本 发明可借助软件加必需的通用硬件平台的方式来实现, 当然也可以通过硬件, 但很多情况下前者是更佳的实施方式。基于这样的理解, 本发明的技术方案本 质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计 算机软件产品存储在一个存储介质中 ,包括若干指令用以使得一台计算机设备 (可以是个人计算机, 服务器, 或者网络设备等)执行本发明各个实施例所述 方法的全部或部分步骤。 而前述的存储介质包括: 只读存储器(ROM )、 随机 存取存储器(RAM )、 磁碟或者光盘等各种可以存储程序代码的介质。
对于装置实施例而言, 由于其基本相应于方法实施例, 所以相关之处参见 方法实施例的部分说明即可。 以上所描述的装置实施例仅仅是示意性的, 其中 显示的部件可以是或者也可以不是物理单元, 即可以位于一个地方, 或者也可 以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块 来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况 下, 即可以理解并实施。
在本发明所提供的几个实施例中, 应该理解到, 所揭露的装置和方法, 在 没有超过本申请的精神和范围内, 可以通过其他的方式实现。 当前的实施例只 是一种示范性的例子, 不应该作为限制, 所给出的具体内容不应该限制本申请 的目的。 例如, 所述单元或子单元的划分, 仅仅为一种逻辑功能划分, 实际实 现时可以有另外的划分方式, 例如多个单元或多个子单元结合一起。 另外, 多 个单元可以或组件可以结合或者可以集成到对端个装置, 或一些特征可以忽 略, 或不执行。
另外, 所描述装置和方法以及不同实施例的示意图,在不超出本申请的范 围内, 可以与其它装置, 模块, 技术或方法结合或集成。 对端点, 所显示或讨 论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元 的间接耦合或通信连接, 可以是电性, 机械或其它的形式。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通 技术人员来说, 在不脱离本发明原理的前提下, 还可以做出若干改进和润饰, 这些改进和润饰也应视为本发明的保护范围。
+

Claims

权利要求书
1、 一种磁盘阵列, 应用于包括磁盘阵列和服务器的存储系统中, 所述磁 盘阵列包括磁盘框以及两个控制器节点, 其特征在于,
每个所述控制器节点包括交换设备,其中交换设备的一个端口与对端控制 器节点中交换设备的一个端口相连接; 其中:
每个所述控制器节点, 还用于通过所述端口检测对端控制器节点是否失 效; 当检测到对端控制器节点失效时, 重新设置本控制器节点和对端控制器节 点的配置参数,使得对端控制器节点将接收到的所述服务器发送的数据,通过 对端控制器节点交换设备的端口发送至本控制器节点交换设备的端口中; 每个所述控制器节点,还用于通过本控制器节点交换设备中所述端口接收 对端控制器节点发来的数据, 并将接收到的数据存储至所述磁盘框中, 所述数 据是服务器发送至对端控制器节点的。
2、 如权利要求 1所述的磁盘阵列, 其特征在于, 每个所述控制器节点还 包括与所述服务器连接的第一端点设备、与所述磁盘框连接的第二端点设备和 用于运行读写控制程序的中央处理器 CPU;
所述通过本控制器节点交换设备中所述端口接收对端控制器节点发来的 数据将所述数据存储至所述磁盘框, 包括:
所述控制器节点中的 CPU根据所述配置参数, 将所述本控制器节点交换 设备中所述端口接收到的对端控制器节点发来的数据 ,发送至本控制器节点中 的第二端点设备中, 所述第二端点设备将所述数据发送至磁盘框。
3、 如权利要求 2所述的磁盘阵列, 其特征在于, 所述重新设置本控制器 节点和对端控制器节点中交换设备的所述端口的配置参数, 包括:
所述控制器节点将本控制器节点交换设备中与对端控制器节点连接的端 口配置为上游端口,并通过本控制器节点交换设备中的所述上游端口将所连接 的对端控制器节点中的端口配置为下游端口;
所述控制器节点通过本控制器节点交换设备中的所述端口扫描对端控制 器节点;
重新设置对端控制器节点交换设备和第一端点设备的配置参数,使得对端 控制器节点的第一端点设备将接收到的数据发送到对端控制器节点的交换设 备中后,通过对端控制器节点交换设备的端口发送至本控制器节点交换设备的 端口中。
4、 如权利要求 1至 3任一所述的磁盘阵列, 其特征在于, 所述通过所述 端口检测对端控制器节点是否失效, 包括:
每个所述控制器节点判断在预设的时间段内本控制器节点交换设备中与 对端控制器节点连接的端口是否收到对端控制器节点发送的握手消息或心跳 消息;
如果判断结果为否, 则确定对端控制器节点失效。
5、 如权利要求 1至 3任一所述的磁盘阵列, 其特征在于, 所述通过所述 端口检测对端控制器节点是否失效, 包括:
每个所述控制器节点在预设的时间段内通过本控制器节点的交换设备与 对端控制器节点连接的端口发送探测消息;
如果没有收到所述探测消息的响应消息, 则确定对端控制器节点失效。
6、 如权利要求 2至 3任一所述的磁盘阵列, 其特征在于, 所述方法还包 括:
所述本控制器节点中的交换设备接收所述服务器发送的数据,并将所述数 据发送至存储至本控制器节点的第二端点设备,所述本控制器节点的第二端点 设备将所述数据发送至所述磁盘框进行保存。
7、 一种存储系统, 其特征在于, 包括服务器和如权利要求 1-6所述的磁 盘阵列。
8、 一种数据存储路径的切换方法, 应用于包括磁盘阵列和服务器的存储 系统中, 其特征在于, 所述磁盘阵列包括磁盘框以及两个控制器节点, 每个所 述控制器节点包括交换设备,其中交换设备的一个端口与对端控制器节点中交 换设备的一个端口相连接, 包括:
磁盘阵列中的每个控制器节点通过其交换设备中与对端控制器节点连接 的端口检测对端控制器节点是否失效;
当检测到对端控制器节点失效时,重新设置本控制器节点和对端控制器节 点的配置参数,使得对端控制器节点将接收到的所述服务器发送的数据,通过 对端控制器节点交换设备的端口发送至本控制器节点交换设备的端口中; 通过本控制器节点交换设备中所述端口接收对端控制器节点发来的数据 , 并将接收到的数据存储至所述磁盘框中 ,所述数据是服务器发送至对端控制器 节点的。
9、 如权利要求 8所述的方法, 其特征在于, 每个所述控制器节点还包括 与所述服务器连接的第一端点设备、与所述磁盘框连接的第二端点设备和用于 运行读写控制程序的中央处理器 CPU; 所述通过本控制器节点交换设备中所 述端口接收对端控制器节点发来的数据, 并将所述数据存储至所述磁盘框, 包 括:
所述控制器节点中的第一端点设备接收所述服务器发送的数据 ,将所述数 据发送至本控制器节点中的交换设备中;
所述控制器节点中的 CPU根据所述交换设备配置空间中的配置参数, 将 所述交换设备中的数据发送至本控制器节点中的第二端点设备中,所述第二端 点设备将所述数据发送至磁盘框。
10、 如权利要求 9所述的方法, 其特征在于, 所述重新设置本控制器节点 和对端控制器节点中交换设备的所述端口的配置参数, 包括:
所述控制器节点将本控制器节点交换设备中与对端控制器节点连接的端 口配置为上游端口,并通过本控制器节点交换设备中的所述上游端口将所连接 的对端控制器节点中的端口配置为下游端口;
所述控制器节点通过本控制器节点交换设备中的所述端口扫描对端控制 器节点;
重新设置对端控制器节点交换设备和第一端点设备的配置参数,使得对端 控制器节点的第一端点设备将接收到的数据发送到对端控制器节点的交换设 备中后,通过对端控制器节点交换设备的端口发送至本控制器节点交换设备的 端口中。
11、 如权利要求 8至 10任一所述的方法, 其特征在于, 所述通过其交换 设备中与对端控制器节点连接的端口检测对端控制器节点是否失效, 包括: 每个所述控制器节点判断在预设的间隔时间内本控制器节点交换设备中 与对端控制器节点连接的端口是否收到对端控制器节点发送的握手消息或心 跳消息;
如果判断结果为否, 则确定对端控制器节点失效。
12、 如权利要求 8至 10任一所述的磁盘阵列, 其特征在于, 所述通过所 述端口检测对端控制器节点是否失效, 包括:
每个所述控制器节点在预设的时间段内通过本控制器节点的交换设备与 对端控制器节点连接的端口发送探测消息;
如果没有收到所述探测消息的响应消息, 则确定对端控制器节点失效。
13、 如权利要求 8至 10任一所述的磁盘阵列, 其特征在于, 所述方法还 包括:
所述本控制器节点中的交换设备接收所述服务器发送的数据,并将所述数 据发送至存储至本控制器节点的第二端点设备,所述本控制器节点的第二端点 设备将所述数据发送至所述磁盘框进行保存。
14、 如权利要求 9或 10所述的方法, 其特征在于, 所述对端控制器节点 失效包括对端控制器节点中 CPU故障, 和 /或与 CPU连接的内存故障。
15、 如权利要求 9或 10所述的方法, 其特征在于, 所述第一端点设备和第 二端点设备均包括外设部件互连标准扩展 PCIE端点设备, 所述交换设备包括 PCIE交换设备。
PCT/CN2012/081178 2011-12-31 2012-09-10 磁盘阵列、存储系统以及数据存储路径切换方法 WO2013097485A1 (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201110459979.5 2011-12-31
CN201110459979 2011-12-31
CN201210049908.2 2012-02-29
CN201210049908.2A CN102629225B (zh) 2011-12-31 2012-02-29 双控制器磁盘阵列、存储系统以及数据存储路径切换方法

Publications (1)

Publication Number Publication Date
WO2013097485A1 true WO2013097485A1 (zh) 2013-07-04

Family

ID=46587485

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/081178 WO2013097485A1 (zh) 2011-12-31 2012-09-10 磁盘阵列、存储系统以及数据存储路径切换方法

Country Status (4)

Country Link
US (1) US8930608B2 (zh)
EP (1) EP2610750B1 (zh)
CN (1) CN102629225B (zh)
WO (1) WO2013097485A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629225B (zh) * 2011-12-31 2014-05-07 华为技术有限公司 双控制器磁盘阵列、存储系统以及数据存储路径切换方法
KR102007368B1 (ko) * 2012-12-17 2019-08-05 한국전자통신연구원 Pci 익스프레스 스위치 및 이를 이용한 컴퓨터 시스템
CN103440177A (zh) * 2013-08-23 2013-12-11 浪潮电子信息产业股份有限公司 一种基于numa多物理层分区的存储控制冗余方法
US20160196078A1 (en) * 2013-09-05 2016-07-07 Hewlett Packard Enterprise Development Lp Mesh topology storage cluster with an array based manager
CN103645864B (zh) * 2013-12-26 2016-08-24 深圳市迪菲特科技股份有限公司 一种磁盘阵列双控系统及其实现方法
EP3105930A4 (en) * 2014-02-14 2016-12-21 ERICSSON TELEFON AB L M (publ) CONTINUOUSLY BROADCAST REPRODUCTION SYNCHRONIZATION ON A PLURALITY OF CONTINUOUS DIFFUSION CLIENTS
CN104049915B (zh) * 2014-06-20 2017-01-25 华为技术有限公司 一种存储系统及通信方法
CN105808155B (zh) * 2014-12-31 2018-10-19 深圳神州数码云科数据技术有限公司 基于双控制器的读写锁方法及装置
CN104579802A (zh) * 2015-02-15 2015-04-29 浪潮电子信息产业股份有限公司 一种多路服务器快速故障恢复的方法
CN104881246B (zh) * 2015-03-30 2018-01-12 北京华胜天成软件技术有限公司 应用于集群存储系统的输出入传递方法及系统
CN105045533B (zh) * 2015-07-09 2019-03-22 上海爱数信息技术股份有限公司 适用于双控高可用存储系统的磁盘心跳收发方法
CN105094706B (zh) * 2015-07-27 2018-03-30 北京华胜天成软件技术有限公司 定时更新磁盘smart信息的方法及双控系统
US10333865B2 (en) * 2015-08-21 2019-06-25 Cisco Technology, Inc. Transformation of peripheral component interconnect express compliant virtual devices in a network environment
KR102498223B1 (ko) * 2015-10-13 2023-02-09 삼성전자주식회사 Ufs 장치의 작동 방법, ufs 호스트의 작동 방법, 및 이들을 포함하는 시스템의 작동 방법
CN106059791B (zh) * 2016-05-13 2020-04-14 华为技术有限公司 一种存储系统中业务的链路切换方法和存储设备
CN108664361B (zh) * 2017-03-27 2021-07-16 杭州宏杉科技股份有限公司 Pcie非透明通道修复方法及装置
CN109213702B (zh) 2017-06-30 2022-08-30 伊姆西Ip控股有限责任公司 虚拟机环境中的虚拟双控制模块之间的通信
CN109656478A (zh) * 2018-12-11 2019-04-19 浪潮(北京)电子信息产业有限公司 一种存储服务器
CN109783280A (zh) * 2019-01-15 2019-05-21 上海海得控制系统股份有限公司 共享存储系统和共享存储方法
US11194678B2 (en) 2020-03-02 2021-12-07 Silicon Motion, Inc. Method and apparatus for performing node information exchange management of all flash array server
CN111813334B (zh) * 2020-06-04 2024-04-05 中国科学院上海微系统与信息技术研究所 一种Ceph的写性能优化和双控节点组合方法
CN113872868B (zh) * 2020-06-30 2022-11-25 华为技术有限公司 通知消息传输方法、装置及系统、存储介质
CN111881067B (zh) * 2020-07-30 2022-07-08 北京浪潮数据技术有限公司 一种内存申请方法、装置、电子设备和介质
US11637750B2 (en) * 2021-03-31 2023-04-25 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Providing configuration data to a connected network switch

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217402A (zh) * 2008-01-15 2008-07-09 杭州华三通信技术有限公司 一种提高集群可靠性的方法和一种高可靠性通信节点
CN101488077A (zh) * 2009-02-24 2009-07-22 浪潮电子信息产业股份有限公司 冗余磁盘控制服务器系统
CN102629225A (zh) * 2011-12-31 2012-08-08 成都市华为赛门铁克科技有限公司 双控制器磁盘阵列、存储系统以及数据存储路径切换方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625747B1 (en) * 2000-06-30 2003-09-23 Dell Products L.P. Computer storage system and failover method
US6839788B2 (en) * 2001-09-28 2005-01-04 Dot Hill Systems Corp. Bus zoning in a channel independent storage controller architecture
US7093043B2 (en) * 2001-12-27 2006-08-15 Hewlett-Packard Development Company, L.P. Data array having redundancy messaging between array controllers over the host bus
US6792511B2 (en) * 2002-08-16 2004-09-14 Hewlett-Packard Development Company, L.P. Dual cache module support for array controller
US6941396B1 (en) * 2003-02-19 2005-09-06 Istor Networks, Inc. Storage controller redundancy using bi-directional reflective memory channel
US7467191B1 (en) 2003-09-26 2008-12-16 Network Appliance, Inc. System and method for failover using virtual ports in clustered systems
US20050226148A1 (en) * 2004-04-12 2005-10-13 Nortel Networks Limited Method and apparatus for enabling redundancy in a network element architecture
US7062594B1 (en) * 2004-06-30 2006-06-13 Emc Corporation Root complex connection system
US8301810B2 (en) * 2004-12-21 2012-10-30 Infortrend Technology, Inc. SAS storage virtualization controller, subsystem and system using the same, and method therefor
US9495263B2 (en) 2004-12-21 2016-11-15 Infortrend Technology, Inc. Redundant SAS storage virtualization subsystem and system using the same, and method therefor
US7774514B2 (en) * 2005-05-16 2010-08-10 Infortrend Technology, Inc. Method of transmitting data between storage virtualization controllers and storage virtualization controller designed to implement the method
US7676625B2 (en) * 2006-08-23 2010-03-09 Sun Microsystems, Inc. Cross-coupled peripheral component interconnect express switch
CN101414283B (zh) * 2007-10-19 2011-01-05 英业达股份有限公司 具有双控制器的存储服务装置及其高速缓存的镜射方法
JP5232602B2 (ja) * 2008-10-30 2013-07-10 株式会社日立製作所 ストレージ装置、及びストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法
CN101465769B (zh) * 2009-01-16 2011-01-19 华中科技大学 双控制器磁盘阵列的动态故障检测系统
US7913027B2 (en) * 2009-04-07 2011-03-22 Lsi Corporation Configurable storage array controller
CN101576806B (zh) * 2009-06-12 2011-02-02 浪潮电子信息产业股份有限公司 一种可提高磁盘阵列性能的装置
CN101576805A (zh) * 2009-06-12 2009-11-11 浪潮电子信息产业股份有限公司 一种基于并行处理的多主机接口冗余san控制器
JP2012133405A (ja) * 2009-07-24 2012-07-12 Hitachi Ltd ストレージ装置及びそのデータ転送制御方法
CN102200889A (zh) * 2010-03-25 2011-09-28 英业达股份有限公司 具有双控制器的磁盘阵列的控制方法与其控制系统
US20110238909A1 (en) * 2010-03-29 2011-09-29 Pankaj Kumar Multicasting Write Requests To Multiple Storage Controllers
US9082127B2 (en) 2010-03-31 2015-07-14 Cloudera, Inc. Collecting and aggregating datasets for analysis
CN101834796B (zh) 2010-05-06 2015-01-28 中兴通讯股份有限公司 一种双控制器通信系统和方法
US8412863B2 (en) * 2010-10-19 2013-04-02 Hitachi, Ltd. Storage apparatus and virtual port migration method for storage apparatus
US8589723B2 (en) * 2010-12-22 2013-11-19 Intel Corporation Method and apparatus to provide a high availability solid state drive
US8880800B2 (en) * 2011-05-20 2014-11-04 Promise Technology, Inc. Redundant array of independent disks system with inter-controller communication and method of operation thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217402A (zh) * 2008-01-15 2008-07-09 杭州华三通信技术有限公司 一种提高集群可靠性的方法和一种高可靠性通信节点
CN101488077A (zh) * 2009-02-24 2009-07-22 浪潮电子信息产业股份有限公司 冗余磁盘控制服务器系统
CN102629225A (zh) * 2011-12-31 2012-08-08 成都市华为赛门铁克科技有限公司 双控制器磁盘阵列、存储系统以及数据存储路径切换方法

Also Published As

Publication number Publication date
EP2610750B1 (en) 2015-09-09
CN102629225B (zh) 2014-05-07
US8930608B2 (en) 2015-01-06
CN102629225A (zh) 2012-08-08
EP2610750A1 (en) 2013-07-03
US20130173839A1 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
WO2013097485A1 (zh) 磁盘阵列、存储系统以及数据存储路径切换方法
US10715411B1 (en) Altering networking switch priority responsive to compute node fitness
US10693813B1 (en) Enabling and disabling links of a networking switch responsive to compute node fitness
TWI454088B (zh) 用於偵測一交換器故障及管理一乙太網路光纖通道網路中之交換器故障後移轉之方法、系統及電腦可讀媒體
TWI569134B (zh) 使用串列連接scsi擴充器用於儲存區域網路管理之儲存介質、系統及方法
US7672226B2 (en) Method, apparatus and program storage device for verifying existence of a redundant fibre channel path
JP2017518552A (ja) Rasおよび電力管理のための高速シリアルリンク帯域内レーンフェイルオーバー
US20120324137A1 (en) Expander to control multipaths in a storage network
US20150055452A1 (en) Dedicated control path architecture for systems of devices
JP2014535228A (ja) ポート設定方法、ルーティングデバイス、およびコンピュータプログラム製品
WO2013120340A1 (zh) 网络接口模块的端口配置方法、装置及框式通信设备
WO2013113226A1 (zh) 控制器局域网络总线冗余系统及冗余切换的方法和装置
US10931601B2 (en) Method and apparatus for conditional broadcasting of network configuration data
CN113364606A (zh) 用于存储设备的对等数据信道的方法和系统
WO2016135919A1 (ja) ストレージ装置
WO2012167461A1 (zh) Cpu间互联容错的实现方法及系统
WO2010028553A1 (zh) 一种端口配置管理方法、单板及端口配置管理系统
JP2006268610A (ja) 障害切り分け方法、障害切り分け機能を有する通信装置及びプログラム
TWM574793U (zh) 可偵測外部裝置狀態的網路裝置
JP2013105483A (ja) プリブート実行可能な環境のオペレーティング・システムのインストールを、スケーラブルな直接接続された記憶環境中のスイッチを使用して、可能にするための方法およびシステム
JP6134720B2 (ja) 接続方法
JP2000348005A (ja) 計算機システム
JP2011018106A (ja) 通信プロトコル処理装置およびその方法
TW202232928A (zh) 多接取邊緣運算架構及其偵測方法
JP4692419B2 (ja) ネットワーク装置及びそれに用いる冗長切替え方法並びにそのプログラム

Legal Events

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

Ref document number: 12862744

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12862744

Country of ref document: EP

Kind code of ref document: A1