US20030204683A1 - Method, system, and storage controller for controlling shared memories - Google Patents

Method, system, and storage controller for controlling shared memories Download PDF

Info

Publication number
US20030204683A1
US20030204683A1 US10/428,198 US42819803A US2003204683A1 US 20030204683 A1 US20030204683 A1 US 20030204683A1 US 42819803 A US42819803 A US 42819803A US 2003204683 A1 US2003204683 A1 US 2003204683A1
Authority
US
United States
Prior art keywords
storage controller
shared
shared memory
storage
memories
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
US10/428,198
Other versions
US6983349B2 (en
Inventor
Katsuhiro Okumoto
Hisao Honma
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Assigned to HITACHI LTD. reassignment HITACHI LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HONMA, HISAO, OKUMOTO, KATSUHIRO
Publication of US20030204683A1 publication Critical patent/US20030204683A1/en
Application granted granted Critical
Publication of US6983349B2 publication Critical patent/US6983349B2/en
Assigned to GOOGLE INC. reassignment GOOGLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HITACHI, LTD.
Assigned to GOOGLE LLC reassignment GOOGLE LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: GOOGLE INC.
Adjusted expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/061Improving I/O performance
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • 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

Definitions

  • the present invention relates to a method, a system, and a storage controller for controlling shared memories provided in each storage controller to exchange I/O data among the storage controllers that are provided in each of a plurality of disk array devices, which are connected to a network.
  • host devices connected to the SAN recognize the individual disk array devices, as well as the storages that configure each of the disk array devices, as separate storage systems; therefore, it is not possible to access and manage the storages as a single storage system.
  • host devices connected to the SAN recognize the individual disk array devices, as well as the storages that configure each of the disk array devices, as separate storage systems; therefore, it is not possible to access and manage the storages as a single storage system.
  • in order to perform various kinds of data exchanging, such coordinating data among the disk array devices or performing remote copying it is necessary to communicate with a host device via a bus and a channel adapter of the disk array device and acquire a path between the initiator and target. If an enormous amount of data is handled in the above cases, there is a possibility that the bus may be occupied, thereby increasing the processor load excessively and decreasing the system's overall processing efficiency.
  • Japanese Patent Application Laid-open Publication No. 11-7359 discloses a storage system that comprises a pair of storage controllers but can be seen from an external host computer as a single storage system.
  • the internal buses (or, the “DKC internal networks 137-0, 137-1”) of each of the storage controllers (“Sub DKC0”, “Sub DKC1”) are integrally connected to form an integrated internal network 137.
  • the whole internal buses of the two storage controllers are integrally connected, it is inevitable that the inner configuration of the storage system will become complicated.
  • the present invention is intended to solve the problems described above, and it is an object of the present invention to provide a method, a system, and a storage controller for controlling shared memories in order to permit I/O data exchange among storage controllers.
  • one aspect of the present invention provides a method for controlling shared memories to permit I/O data exchange among storage controllers.
  • at least one of the storage controllers is provided for each of a plurality of disk array devices, each of the storage controllers includes at least one of the shared memories, and each of the shared memories is capable of storing information about the disk array devices.
  • the method comprises: on each shared memory of each storage controller, storing addresses of the shared memories of other ones of the storage controllers that could be a target for the I/O data exchange; receiving an I/O request from a host device with one storage controller A among the storage controllers; identifying, with the storage controller A that has received the I/O request, an address of a shared memory that manages a volume which is a target of the I/O request; if the identified address is an address of a shared memory of another storage controller B, issuing from the storage controller A to a switching device an instruction to establish a connection path between the shared memory of the storage controller A and the shared memory of the storage controller B, the switching device being located on a network that interconnects the shared memories of the storage controllers and capable of changing paths between the shared memories in accordance with an address of either the storage controller or the shared memory contained in a packet format of the network; and notifying the host device that a connection path has been established in compliance with the I/O request.
  • the present invention is capable of providing a method for controlling shared memories to permit I/O data exchange among storage controllers.
  • FIG. 1 illustrates the configuration of a network that includes a shared memory control system according to an embodiment of the present invention
  • FIG. 2 is a schematic diagram that illustrates how shared memories are interconnected via a switching device of the embodiment.
  • FIG. 3 is a flowchart that illustrates a sequence in which shared memory control is exercised according to the embodiment.
  • FIG. 1 illustrates the configuration of a network that includes a shared memory control system according to one embodiment of the present invention.
  • the system configuration will now be described in detail with reference to the accompanying drawings.
  • the network includes a client 10 , a host device 20 , such as an application server, a switching device 40 , and disk array devices 50 .
  • the host device 20 is connected to storage controllers 51 via an appropriate interface such as SCSI or Fibre Channel.
  • Each storage controller 51 includes input/output interfaces (which are not shown) for a CPU and the host device 20 . Further, each storage controller 51 comprises a cache memory 52 , a shared memory 53 , a channel adapter 54 (marked “CHA” in the figure) for performing cache control, data transfer control, and other control functions, and disk adapters 55 (marked “DKA” in the figure) for performing input/output control in relation to storage devices 56 .
  • the storage controller 51 transmits various control information recorded on the shared memory 53 etc. to the relevant disk adapters 55 for the storage devices 56 via a bus 57 , which interconnects the various elements of the controller 51 . Note that the control information is used by the processors (not shown) that the channel adapter 54 and disk adapters 55 comprise.
  • the storage devices 56 are the devices for storage. A plurality of storage devices 56 are shown in the figure. These storage devices 56 are connected to the disk adapters 55 of the storage controller 51 via an appropriate interface such as SCSI.
  • the storage controller 51 manages logical units configured using physical storage areas of these storage devices 56 and also manages the logical storage areas offered by the storage devices using data blocks that are partitioned in these logical units. Note that the logical units are identified by LUNs (Logical Unit Numbers), and the data blocks are designated by block addresses.
  • the shared memories 53 of the storage controllers 51 are interconnected via a network 70 .
  • a switching device 40 is arranged within the network 70 for changing paths. Thanks to the switching device 40 , the path between the shared memories 53 can be established to permit I/O data exchange.
  • the switching device 40 has a plurality of ports 41 for transmitting/receiving the I/O requests of the host device or the storage controllers 51 .
  • a switching section 42 (see FIG. 2) is provided among these transmission/reception ports 41 in order to perform switching among the ports.
  • Each of these ports 41 is equipped with a frame buffer for temporarily storing a received I/O request and a table for storing the IDs and/or the addresses of the storage controllers 51 and/or the shared memories 53 .
  • an I/O request is issued to a certain storage device 56 (logical or physical volume) from the client 10 , such a request is transferred to a disk array device 50 (which is a part of the system) to which the client 10 is connected via a network 80 , via the host device 20 , such as an application server. It is assumed that this I/O request is a SCSI packet 60 . This SCSI packet 60 is received by a disk array device 50 associated with the host device 20 and then checked to determine which storage device 56 is designated by the request.
  • the SCSI packet 60 typically comprises a header section 61 for indicating the IDs 64 , 65 of the source storage controller 51 and the destination storage controller 51 (the controllers are marked “CTL”), a payload section 62 in which commands and data to be transmitted are stored, and an FCS (Frame Check Sequence) field 63 for checking whether the SCSI packet 60 is damaged.
  • CTL the controllers are marked “CTL”
  • FCS Full Check Sequence
  • the switching device 40 performs switching to establish the path to the other storage controller's shared memory.
  • the storage controllers 51 , or the disk array devices 50 are connected to the switching device 40 via their shared memories 53 . Therefore, the disk array devices 50 can be freely added, deleted, and changed. Thus, it is possible to freely change the storage capacity or add/delete storages in accordance with the type of the data to be stored and/or the purpose of usage of the storages. Further, the switching device 40 performs a switching process and acquires a path for I/O requests etc. by checking the addresses of the disk array devices 50 , storage devices 56 managed by the disk array devices 50 , and individual logical volumes.
  • the host device 20 and the client 10 accessing the host device 20 are configured of, for example, a mainframe or a personal computer. Equipped with an appropriate operation system, the host device 20 not only manages and executes applications but also provides data communication by transmitting various data, including I/O requests, to the network via an appropriate driver, such as a SCSI, and a NIC (Network Interface Card).
  • an appropriate driver such as a SCSI, and a NIC (Network Interface Card).
  • network 80 which connects the host device 20 to disk array devices 50
  • network 70 which interconnects the disk array devices 50
  • any network and protocol are applicable as far as they implement the present invention.
  • FIG. 3 is a flowchart that illustrates a sequence in which shared memory control is exercised according to the present embodiment.
  • the flow of I/O data exchange among the disk array devices 50 namely, the storage controllers 51 , will now be described.
  • Each storage controller reserves, in advance, appropriate areas within its local shared memory by performing address mapping for the shared memories of the other storage controllers connected via the switching device 40 .
  • the information about the existence of the other storage controllers and their configuration can be collected, for instance, from a management information base (MIB) using SNMP (Simple Network Management Protocol).
  • MIB management information base
  • SNMP Simple Network Management Protocol
  • the shared memory 53 provided for each storage controller 51 stores not only the contents of its own but also the contents of the shared memories 53 of the other storage controllers 51 and/or the addresses of the other shared memories 53 and/or the other storage controllers 51 .
  • the contents of the shared memories 53 need to be updated at regular intervals or as appropriate to achieve synchronization among the storage controllers 51 . It is assumed that the shared memory update may be performed, for instance, at fixed intervals such as once per week or month, when another storage controller is added or deleted, or at disk array device startup or shutdown. Since the memory update/synchronization may be timed as desired, it goes without saying that any timing setting is acceptable.
  • a storage controller 51 When the time for synchronizing the shared memories 53 comes (step s 301 ), a storage controller 51 first checks whether any disk array device 50 (storage controller 51 ) is added or deleted. If it is determined that the number of disk array devices has been changed (step s 302 ), the storage controller 51 identifies the shared memory of the associated disk array device (step s 303 ). In this example, since the controller 51 specifies to which disk array device 50 or storage controller 51 the shared memory belongs, the ID of the specified storage controller 51 or disk array device 50 is identified as the address of the shared memory 53 . If the configuration of the disk array devices 50 is unchanged with no disk array device addition/deletion applied (step s 302 : NO), the shared memory update/synchronization process is terminated.
  • the address of the shared memory of an added/deleted storage controller is determined in the same manner by all storage controllers and reflected in their respective shared memories (step s 304 ).
  • the shared memories for storage controllers B through E, as well as the shared memory 58 that is originally provided for the storage controller A are mapped within the shared memory 53 of storage controller A, as shown in FIG. 2. This also holds true for the other storage controllers such as storage controller B. More specifically, not only the shared memory 57 for the storage controller B but also the shared memories for storage controllers A and C through E are mapped within the shared memory 53 of storage controller B.
  • mapping the shared memories for other storage controllers within the local shared memory region may completely be synchronized with the shared memory contents for the other storage controllers; or, only the addresses of the shared memories of the other storage controllers, to which paths are to be established in response to an I/O request from the host device 20 etc., may be stored (the latter method can also be referred to as “virtual mapping”).
  • the contents of each shared memory 53 are updated as needed to achieve synchronization among the storage controllers 51 , which are interconnected via the switching device 40 .
  • the I/O request is first received by the host device 20 .
  • the host device 20 then transmits the I/O request to the associated disk array device 50 via the host device's NIC.
  • the channel adapter 54 receives the I/O request from an appropriate I/O interface and confirms it (step s 305 ).
  • the I/O request contains the address of a shared memory that manages the volume which is the target of the I/O request.
  • a “volume” may be storage devices 56 or logical volumes created by partitioning the storage devices 56 .
  • the storage controller 51 determines, from the shared memory address (that is, the ID of a storage controller) contained in the I/O request, whether the target of the I/O request is itself or other storage controllers (step s 307 ).
  • the storage controller 51 which has identified the I/O request, establishes a path to the relevant storage device 56 in a normal manner via a disk adapter 55 and reports this to the host device (step s 309 ).
  • the storage controller 51 which has identified the I/O request, sends to the switching device 40 an instruction to establish a path to the shared memory of the storage controller designated by the I/O request (step s 308 ).
  • the switching device 40 receives, for instance, a SCSI packet 60 (which is the entity of the I/O request) via port 41 , and stores it in a frame buffer. If, for instance, the information contained in the SCSI packet 60 indicates that the source storage controller ID is A and that the destination storage controller ID is B, the switching device 40 issues a switching instruction to the switching section 42 , prompting the switching section 42 to perform routing to the shared memory of storage controller B. When a path is established by means of switching, this is reported to the associated host device (step s 309 ), and the SCSI packet 60 is transmitted from the frame buffer to the shared memory of storage controller B to perform an I/O process.
  • This shared memory control method of the present invention it is possible to provide high-speed data coordination among storage controllers 51 without occupying the path to a host device.
  • This shared memory control method is capable of distributing data among a plurality of clusters, such as disk array devices, for load leveling purposes, updating the contents of shared memories in accordance with a change in the number of disk array devices 50 connected via switching device 40 , and increasing the efficiency of data distribution.
  • this shared memory control method is used for data backup purposes, the degree of I/O efficiency decrease can be minimized by creating a snapshot in a separate cluster and making a switching device choose between a path for accessing the snapshot and a path for accessing the primary volume.
  • the availability increases. If the update sequence is managed for such data backup, cluster failover can be realized as well.
  • the above shared memory control method may include the following: upon installation of another storage controller, updating and synchronizing contents of each of the shared memories by registering in each of the shared memories an address of a shared memory of the installed storage controller, and upon deletion of another storage controller, updating and synchronizing contents of each of the shared memories by deleting from each of the shared memories an address of a shared memory of the deleted storage controller.
  • the above shared memory control method may be executed so as to perform the above-mentioned updating and synchronizing of the contents of the shared memories at a predetermined timing, upon disk array device startup, or upon disk array device shutdown.
  • Another alternative embodiment of the present invention provides a system for controlling shared memories to permit I/O data exchange among storage controllers, comprising: at least two disk array devices, each of the disk array devices including at least one storage controller, the storage controller including at least one shared memory for storing information about the disk array devices; and a switching device that is capable of interconnecting the shared memories of the storage controllers and capable of changing paths between the shared memories.
  • a switching device that is capable of interconnecting the shared memories of the storage controllers and capable of changing paths between the shared memories.
  • addresses of the shared memories of other ones of the storage controllers that could be a target for the I/O data exchange are stored.
  • One storage controller A among the storage controllers receives an I/O request from a host device.
  • the storage controller A that has received the I/O request identifies an address of a shared memory that manages a volume which is a target of the I/O request. If the identified address is an address of a shared memory of another storage controller B, the storage controller A issues to the switching device an instruction to establish a connection path between the shared memory of the storage controller A and the shared memory of the storage controller B. The host device is notified that a connection path has been established in compliance with the I/O request.
  • another embodiment of the present invention provides a storage controller for controlling shared memories to permit I/O data exchange with other storage controllers, comprising: at least one shared memory that is connected to a switching device, the switching device being capable of interconnecting shared memories of a plurality of storage controllers and capable of changing paths between the shared memories.
  • addresses of the shared memories of other ones of the storage controllers that could be a target for the I/O data exchange are stored.
  • the storage controller receives an I/O request from a host device. Having received the I/O request, the storage controller identifies an address of a shared memory that manages a volume which is a target of the I/O request.
  • the storage controller issues to the switching device an instruction to establish a connection path between its own shared memory and the shared memory of the storage controller B.
  • the storage controller notifies the host device that a connection path has been established in compliance with the I/O request.

Abstract

A method for controlling shared memories permits I/O data exchange among storage controllers. A storage controller is provided for each of a plurality of disk array devices. Each storage controller includes at least one shared memory. Each shared memory stores information about the disk array devices. On each shared memory, addresses of the shared memories of other storage controllers are stored. An I/O request is received from a host device with one storage controller A. The storage controller A identifies an address of a shared memory managing a volume that is a target of the request. If the address is of a shared memory of another storage controller B, the storage controller A issues an instruction to a switching device to establish a connection path between the storage controller A's memory and the storage controller B's memory. The host device is notified that a connection path has been established.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • The present application claims priority upon Japanese Patent Application No. 2002-128590 filed Apr. 30, 2002, which is herein incorporated by reference.[0001]
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Invention [0002]
  • The present invention relates to a method, a system, and a storage controller for controlling shared memories provided in each storage controller to exchange I/O data among the storage controllers that are provided in each of a plurality of disk array devices, which are connected to a network. [0003]
  • 2. Description of the Related Art [0004]
  • The burden on computer systems and storages has continuously increased in line with the recent progress in information technologies. Further, there are demands for the computer systems and storages to perform advanced and complicated processes. In view of such a situation, in order to simplify the storages, increase their availability, and meet the increasing requirements for data and applications, importance is now being attached to, for instance, the concept of SANs (Storage Area Networks) and computer clusters. Under these circumstances, storage sharing as well as data sharing is realized. However, the technology for enabling direct data exchange between, for instance, disk array devices composing a SAN has not been established. As a result, various kinds of management information about disk array devices have been managed independently by individual storage controllers for each of the disk array devices. [0005]
  • It is generally true that storage management is facilitated and expedited by interconnecting a plurality of storages via a dedicated network in order to share those storages, as with a SAN. However, host devices, such as application servers, accessing such a storage system or users using those host devices still have to take procedures of designating an address of a specific storage of a disk array device connected to the SAN, informing the address to the Fabric, and acquiring a path to the storage in order to access that storage for use. [0006]
  • More specifically, host devices connected to the SAN recognize the individual disk array devices, as well as the storages that configure each of the disk array devices, as separate storage systems; therefore, it is not possible to access and manage the storages as a single storage system. For such storages, in order to perform various kinds of data exchanging, such coordinating data among the disk array devices or performing remote copying, it is necessary to communicate with a host device via a bus and a channel adapter of the disk array device and acquire a path between the initiator and target. If an enormous amount of data is handled in the above cases, there is a possibility that the bus may be occupied, thereby increasing the processor load excessively and decreasing the system's overall processing efficiency. [0007]
  • Japanese Patent Application Laid-open Publication No. 11-7359 discloses a storage system that comprises a pair of storage controllers but can be seen from an external host computer as a single storage system. In this conventional storage system, the internal buses (or, the “DKC internal networks 137-0, 137-1”) of each of the storage controllers (“Sub DKC0”, “Sub DKC1”) are integrally connected to form an integrated internal network 137. However, since the whole internal buses of the two storage controllers are integrally connected, it is inevitable that the inner configuration of the storage system will become complicated. [0008]
  • SUMMARY OF THE INVENTION
  • The present invention is intended to solve the problems described above, and it is an object of the present invention to provide a method, a system, and a storage controller for controlling shared memories in order to permit I/O data exchange among storage controllers. [0009]
  • To achieve the above object, one aspect of the present invention provides a method for controlling shared memories to permit I/O data exchange among storage controllers. Here, at least one of the storage controllers is provided for each of a plurality of disk array devices, each of the storage controllers includes at least one of the shared memories, and each of the shared memories is capable of storing information about the disk array devices. The method comprises: on each shared memory of each storage controller, storing addresses of the shared memories of other ones of the storage controllers that could be a target for the I/O data exchange; receiving an I/O request from a host device with one storage controller A among the storage controllers; identifying, with the storage controller A that has received the I/O request, an address of a shared memory that manages a volume which is a target of the I/O request; if the identified address is an address of a shared memory of another storage controller B, issuing from the storage controller A to a switching device an instruction to establish a connection path between the shared memory of the storage controller A and the shared memory of the storage controller B, the switching device being located on a network that interconnects the shared memories of the storage controllers and capable of changing paths between the shared memories in accordance with an address of either the storage controller or the shared memory contained in a packet format of the network; and notifying the host device that a connection path has been established in compliance with the I/O request. [0010]
  • The present invention is capable of providing a method for controlling shared memories to permit I/O data exchange among storage controllers. [0011]
  • Features and objects of the present invention other than the above will become clear by reading the description of the present specification with reference to the accompanying drawings. [0012]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • For more complete understanding of the present invention and the advantages thereof, reference is now made to the following description taken in conjunction with the accompanying drawings wherein: [0013]
  • FIG. 1 illustrates the configuration of a network that includes a shared memory control system according to an embodiment of the present invention; [0014]
  • FIG. 2 is a schematic diagram that illustrates how shared memories are interconnected via a switching device of the embodiment; and [0015]
  • FIG. 3 is a flowchart that illustrates a sequence in which shared memory control is exercised according to the embodiment.[0016]
  • DETAILED DESCRIPTION OF THE INVENTION
  • FIG. 1 illustrates the configuration of a network that includes a shared memory control system according to one embodiment of the present invention. The system configuration will now be described in detail with reference to the accompanying drawings. The network includes a [0017] client 10, a host device 20, such as an application server, a switching device 40, and disk array devices 50. The host device 20 is connected to storage controllers 51 via an appropriate interface such as SCSI or Fibre Channel.
  • Each [0018] storage controller 51 includes input/output interfaces (which are not shown) for a CPU and the host device 20. Further, each storage controller 51 comprises a cache memory 52, a shared memory 53, a channel adapter 54 (marked “CHA” in the figure) for performing cache control, data transfer control, and other control functions, and disk adapters 55 (marked “DKA” in the figure) for performing input/output control in relation to storage devices 56. In response to a request from the host device 20, the storage controller 51 transmits various control information recorded on the shared memory 53 etc. to the relevant disk adapters 55 for the storage devices 56 via a bus 57, which interconnects the various elements of the controller 51. Note that the control information is used by the processors (not shown) that the channel adapter 54 and disk adapters 55 comprise.
  • The [0019] storage devices 56 are the devices for storage. A plurality of storage devices 56 are shown in the figure. These storage devices 56 are connected to the disk adapters 55 of the storage controller 51 via an appropriate interface such as SCSI. The storage controller 51 manages logical units configured using physical storage areas of these storage devices 56 and also manages the logical storage areas offered by the storage devices using data blocks that are partitioned in these logical units. Note that the logical units are identified by LUNs (Logical Unit Numbers), and the data blocks are designated by block addresses.
  • In the present embodiment, the shared [0020] memories 53 of the storage controllers 51 are interconnected via a network 70. A switching device 40 is arranged within the network 70 for changing paths. Thanks to the switching device 40, the path between the shared memories 53 can be established to permit I/O data exchange. As shown in FIG. 1 and FIG. 2, the switching device 40 has a plurality of ports 41 for transmitting/receiving the I/O requests of the host device or the storage controllers 51. A switching section 42 (see FIG. 2) is provided among these transmission/reception ports 41 in order to perform switching among the ports. Each of these ports 41 is equipped with a frame buffer for temporarily storing a received I/O request and a table for storing the IDs and/or the addresses of the storage controllers 51 and/or the shared memories 53.
  • The process performed by the [0021] switching device 40 will now be described. If, for instance, an I/O request is issued to a certain storage device 56 (logical or physical volume) from the client 10, such a request is transferred to a disk array device 50 (which is a part of the system) to which the client 10 is connected via a network 80, via the host device 20, such as an application server. It is assumed that this I/O request is a SCSI packet 60. This SCSI packet 60 is received by a disk array device 50 associated with the host device 20 and then checked to determine which storage device 56 is designated by the request.
  • As illustrated in FIG. 2, the SCSI packet [0022] 60 typically comprises a header section 61 for indicating the IDs 64, 65 of the source storage controller 51 and the destination storage controller 51 (the controllers are marked “CTL”), a payload section 62 in which commands and data to be transmitted are stored, and an FCS (Frame Check Sequence) field 63 for checking whether the SCSI packet 60 is damaged.
  • If it is determined that the [0023] header section 61 of the SCSI packet 60 indicates that the request is directed to a storage device 56 managed by another storage controller, an instruction for establishing a path to the other storage controller is issued to the switching device 40. Upon receipt of the instruction, the switching device 40 performs switching to establish the path to the other storage controller's shared memory.
  • The [0024] storage controllers 51, or the disk array devices 50, are connected to the switching device 40 via their shared memories 53. Therefore, the disk array devices 50 can be freely added, deleted, and changed. Thus, it is possible to freely change the storage capacity or add/delete storages in accordance with the type of the data to be stored and/or the purpose of usage of the storages. Further, the switching device 40 performs a switching process and acquires a path for I/O requests etc. by checking the addresses of the disk array devices 50, storage devices 56 managed by the disk array devices 50, and individual logical volumes. This ensures that no matter which disk array device 50 the host device 20 accesses, a path to other disk array devices 50 will be established, and the host device 20 can access any disk array device 50 through that path. As a result, the bus load and processor load become leveled, thereby contributing toward system efficiency enhancement.
  • The [0025] host device 20 and the client 10 accessing the host device 20 are configured of, for example, a mainframe or a personal computer. Equipped with an appropriate operation system, the host device 20 not only manages and executes applications but also provides data communication by transmitting various data, including I/O requests, to the network via an appropriate driver, such as a SCSI, and a NIC (Network Interface Card).
  • Although it is assumed that SCSI or other similar protocols can be used for [0026] network 80, which connects the host device 20 to disk array devices 50, and network 70, which interconnects the disk array devices 50, it is needless to say that any network and protocol are applicable as far as they implement the present invention.
  • FIG. 3 is a flowchart that illustrates a sequence in which shared memory control is exercised according to the present embodiment. The flow of I/O data exchange among the [0027] disk array devices 50, namely, the storage controllers 51, will now be described. Each storage controller reserves, in advance, appropriate areas within its local shared memory by performing address mapping for the shared memories of the other storage controllers connected via the switching device 40. The information about the existence of the other storage controllers and their configuration can be collected, for instance, from a management information base (MIB) using SNMP (Simple Network Management Protocol).
  • The shared [0028] memory 53 provided for each storage controller 51 stores not only the contents of its own but also the contents of the shared memories 53 of the other storage controllers 51 and/or the addresses of the other shared memories 53 and/or the other storage controllers 51. The contents of the shared memories 53 need to be updated at regular intervals or as appropriate to achieve synchronization among the storage controllers 51. It is assumed that the shared memory update may be performed, for instance, at fixed intervals such as once per week or month, when another storage controller is added or deleted, or at disk array device startup or shutdown. Since the memory update/synchronization may be timed as desired, it goes without saying that any timing setting is acceptable.
  • When the time for synchronizing the shared [0029] memories 53 comes (step s301), a storage controller 51 first checks whether any disk array device 50 (storage controller 51) is added or deleted. If it is determined that the number of disk array devices has been changed (step s302), the storage controller 51 identifies the shared memory of the associated disk array device (step s303). In this example, since the controller 51 specifies to which disk array device 50 or storage controller 51 the shared memory belongs, the ID of the specified storage controller 51 or disk array device 50 is identified as the address of the shared memory 53. If the configuration of the disk array devices 50 is unchanged with no disk array device addition/deletion applied (step s302: NO), the shared memory update/synchronization process is terminated.
  • The address of the shared memory of an added/deleted storage controller is determined in the same manner by all storage controllers and reflected in their respective shared memories (step s[0030] 304). In reality, the shared memories for storage controllers B through E, as well as the shared memory 58 that is originally provided for the storage controller A, are mapped within the shared memory 53 of storage controller A, as shown in FIG. 2. This also holds true for the other storage controllers such as storage controller B. More specifically, not only the shared memory 57 for the storage controller B but also the shared memories for storage controllers A and C through E are mapped within the shared memory 53 of storage controller B. There may be several modes for mapping the shared memories for other storage controllers within the local shared memory region: the local shared memory region may completely be synchronized with the shared memory contents for the other storage controllers; or, only the addresses of the shared memories of the other storage controllers, to which paths are to be established in response to an I/O request from the host device 20 etc., may be stored (the latter method can also be referred to as “virtual mapping”). As described above, the contents of each shared memory 53 are updated as needed to achieve synchronization among the storage controllers 51, which are interconnected via the switching device 40.
  • If, for instance, a [0031] certain client 10 transmits an I/O request via the host device 20, the I/O request is first received by the host device 20. The host device 20 then transmits the I/O request to the associated disk array device 50 via the host device's NIC. In the disk array device 50, the channel adapter 54 receives the I/O request from an appropriate I/O interface and confirms it (step s305).
  • As described above, the I/O request contains the address of a shared memory that manages the volume which is the target of the I/O request. (Here, a “volume” may be [0032] storage devices 56 or logical volumes created by partitioning the storage devices 56). After I/O request confirmation (step s306), the storage controller 51 determines, from the shared memory address (that is, the ID of a storage controller) contained in the I/O request, whether the target of the I/O request is itself or other storage controllers (step s307). If the target of the I/O request is itself, the storage controller 51, which has identified the I/O request, establishes a path to the relevant storage device 56 in a normal manner via a disk adapter 55 and reports this to the host device (step s309).
  • If, on the other hand, the I/O request relates to some other storage controller, the [0033] storage controller 51, which has identified the I/O request, sends to the switching device 40 an instruction to establish a path to the shared memory of the storage controller designated by the I/O request (step s308). The switching device 40 receives, for instance, a SCSI packet 60 (which is the entity of the I/O request) via port 41, and stores it in a frame buffer. If, for instance, the information contained in the SCSI packet 60 indicates that the source storage controller ID is A and that the destination storage controller ID is B, the switching device 40 issues a switching instruction to the switching section 42, prompting the switching section 42 to perform routing to the shared memory of storage controller B. When a path is established by means of switching, this is reported to the associated host device (step s309), and the SCSI packet 60 is transmitted from the frame buffer to the shared memory of storage controller B to perform an I/O process.
  • With the shared memory control method of the present invention, it is possible to provide high-speed data coordination among [0034] storage controllers 51 without occupying the path to a host device. This shared memory control method is capable of distributing data among a plurality of clusters, such as disk array devices, for load leveling purposes, updating the contents of shared memories in accordance with a change in the number of disk array devices 50 connected via switching device 40, and increasing the efficiency of data distribution. Further, when this shared memory control method is used for data backup purposes, the degree of I/O efficiency decrease can be minimized by creating a snapshot in a separate cluster and making a switching device choose between a path for accessing the snapshot and a path for accessing the primary volume. In addition, by storing backup of data for each cluster (e.g., disk array device) in a different cluster, the availability increases. If the update sequence is managed for such data backup, cluster failover can be realized as well.
  • To achieve the aforementioned object, the following alternative embodiments may be utilized to implement the present invention. [0035]
  • In one alternative embodiment, the above shared memory control method may include the following: upon installation of another storage controller, updating and synchronizing contents of each of the shared memories by registering in each of the shared memories an address of a shared memory of the installed storage controller, and upon deletion of another storage controller, updating and synchronizing contents of each of the shared memories by deleting from each of the shared memories an address of a shared memory of the deleted storage controller. [0036]
  • In another alternative embodiment, the above shared memory control method may be executed so as to perform the above-mentioned updating and synchronizing of the contents of the shared memories at a predetermined timing, upon disk array device startup, or upon disk array device shutdown. [0037]
  • Another alternative embodiment of the present invention provides a system for controlling shared memories to permit I/O data exchange among storage controllers, comprising: at least two disk array devices, each of the disk array devices including at least one storage controller, the storage controller including at least one shared memory for storing information about the disk array devices; and a switching device that is capable of interconnecting the shared memories of the storage controllers and capable of changing paths between the shared memories. Here, on each shared memory of each storage controller, addresses of the shared memories of other ones of the storage controllers that could be a target for the I/O data exchange are stored. One storage controller A among the storage controllers receives an I/O request from a host device. The storage controller A that has received the I/O request identifies an address of a shared memory that manages a volume which is a target of the I/O request. If the identified address is an address of a shared memory of another storage controller B, the storage controller A issues to the switching device an instruction to establish a connection path between the shared memory of the storage controller A and the shared memory of the storage controller B. The host device is notified that a connection path has been established in compliance with the I/O request. [0038]
  • Further, another embodiment of the present invention provides a storage controller for controlling shared memories to permit I/O data exchange with other storage controllers, comprising: at least one shared memory that is connected to a switching device, the switching device being capable of interconnecting shared memories of a plurality of storage controllers and capable of changing paths between the shared memories. Here, on the shared memory of the storage controller, addresses of the shared memories of other ones of the storage controllers that could be a target for the I/O data exchange are stored. The storage controller receives an I/O request from a host device. Having received the I/O request, the storage controller identifies an address of a shared memory that manages a volume which is a target of the I/O request. If the identified address is an address of a shared memory of another storage controller B, the storage controller issues to the switching device an instruction to establish a connection path between its own shared memory and the shared memory of the storage controller B. The storage controller notifies the host device that a connection path has been established in compliance with the I/O request. [0039]
  • According to the present invention, it becomes possible to provide a method, a system, and a storage controller for controlling shared memories so as to enable I/O data exchange among storage controllers. [0040]
  • Although the preferred embodiment of the present invention has been described in detail, it should be understood that various changes, substitutions and alterations can be made therein without departing from spirit and scope of the inventions as defined by the appended claims. [0041]

Claims (9)

What is claimed is:
1. A method for controlling shared memories to permit I/O data exchange among storage controllers,
at least one of said storage controllers being provided for each of a plurality of disk array devices,
each of said storage controllers including at least one of said shared memories,
each of said shared memories being capable of storing information about said disk array devices,
said method comprising:
on each said shared memory of each said storage controller, storing addresses of said shared memories of other ones of said storage controllers that could be a target for said I/O data exchange;
receiving an I/O request from a host device with one storage controller A among said storage controllers;
identifying, with said storage controller A that has received said I/O request, an address of a shared memory that manages a volume which is a target of said I/O request;
if said identified address is an address of a shared memory of another storage controller B, issuing from said storage controller A to a switching device an instruction to establish a connection path between the shared memory of said storage controller A and the shared memory of said storage controller B, said switching device being located on a network that interconnects said shared memories of said storage controllers and capable of changing paths between said shared memories in accordance with an address of either said storage controller or said shared memory contained in a packet format of the network; and
notifying the host device that a connection path has been established in compliance with said I/O request.
2. A method according to claim 1, further comprising:
upon installation of another storage controller, updating and synchronizing contents of each of said shared memories by registering in each of said shared memories an address of a shared memory of the installed storage controller, and
upon deletion of another storage controller, updating and synchronizing contents of each of said shared memories by deleting from each of said shared memories an address of a shared memory of the deleted storage controller.
3. A method according to claim 2, wherein said updating and synchronizing of the contents of said shared memories is performed at a predetermined timing, upon disk array device startup, or upon disk array device shutdown.
4. A system for controlling shared memories to permit I/O data exchange among storage controllers, comprising:
at least two disk array devices, each of said disk array devices including at least one storage controller, said storage controller including at least one shared memory for storing information about said disk array devices; and
a switching device that is capable of interconnecting said shared memories of said storage controllers and capable of changing paths between said shared memories,
wherein,
on each said shared memory of each said storage controller, addresses of said shared memories of other ones of said storage controllers that could be a target for said I/O data exchange are stored,
one storage controller A among said storage controllers receives an I/O request from a host device,
said storage controller A that has received said I/O request identifies an address of a shared memory that manages a volume which is a target of said I/O request,
if said identified address is an address of a shared memory of another storage controller B, said storage controller A issues to said switching device an instruction to establish a connection path between the shared memory of said storage controller A and the shared memory of said storage controller B, and
the host device is notified that a connection path has been established in compliance with said I/O request.
5. A system according to claim 4, wherein
upon installation of another storage controller, contents of each of said shared memories are updated and synchronized by registering in each of said shared memories an address of a shared memory of the installed storage controller, and
upon deletion of another storage controller, contents of each of said shared memories are updated and synchronized by deleting from each of said shared memories an address of a shared memory of the deleted storage controller.
6. A system according to claim 5, wherein said updating and synchronizing of the contents of said shared memories is performed at a predetermined timing, upon disk array device startup, or upon disk array device shutdown.
7. A storage controller for controlling shared memories to permit I/O data exchange with other storage controllers, comprising:
at least one shared memory that is connected to a switching device, said switching device being capable of interconnecting shared memories of a plurality of storage controllers and capable of changing paths between said shared memories,
wherein,
on said shared memory of said storage controller, addresses of said shared memories of other ones of said storage controllers that could be a target for said I/O data exchange are stored,
said storage controller receives an I/O request from a host device,
having received said I/O request, said storage controller identifies an address of a shared memory that manages a volume which is a target of said I/O request,
if said identified address is an address of a shared memory of another storage controller B, said storage controller issues to said switching device an instruction to establish a connection path between its own shared memory and the shared memory of said storage controller B, and
said storage controller notifies the host device that a connection path has been established in compliance with said I/O request.
8. A storage controller according to claim 7, wherein
upon installation of another storage controller, contents of each of said shared memories are updated and synchronized by registering in each of said shared memories an address of a shared memory of the installed storage controller, and
upon deletion of another storage controller, contents of each of said shared memories are updated and synchronized by deleting from each of said shared memories an address of a shared memory of the deleted storage controller.
9. A storage controller according to claim 8, wherein said updating and synchronizing of the contents of said shared memories is performed at a predetermined timing, upon disk array device startup, or upon disk array device shutdown.
US10/428,198 2002-04-30 2003-04-30 Method, system, and storage controller for controlling shared memories Expired - Lifetime US6983349B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002-128590 2002-04-30
JP2002128590A JP4014923B2 (en) 2002-04-30 2002-04-30 Shared memory control method and control system

Publications (2)

Publication Number Publication Date
US20030204683A1 true US20030204683A1 (en) 2003-10-30
US6983349B2 US6983349B2 (en) 2006-01-03

Family

ID=29243904

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/428,198 Expired - Lifetime US6983349B2 (en) 2002-04-30 2003-04-30 Method, system, and storage controller for controlling shared memories

Country Status (2)

Country Link
US (1) US6983349B2 (en)
JP (1) JP4014923B2 (en)

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139365A1 (en) * 2002-12-27 2004-07-15 Hitachi, Ltd. High-availability disk control device and failure processing method thereof and high-availability disk subsystem
US20040257857A1 (en) * 2003-06-23 2004-12-23 Hitachi, Ltd. Storage system that is connected to external storage
US20050076262A1 (en) * 2003-09-23 2005-04-07 Revivio, Inc. Storage management device
US20050132136A1 (en) * 2003-12-15 2005-06-16 Masao Inoue Disk array device and maintenance method for disk array device
US20050251620A1 (en) * 2004-05-10 2005-11-10 Hitachi, Ltd. Data migration in storage system
US20060015692A1 (en) * 2004-07-19 2006-01-19 Schnapp Michael G Redundant controller host-side IO rerouting
US20060090042A1 (en) * 2004-10-22 2006-04-27 Hitachi, Ltd. Storage system
US7058753B2 (en) 2003-06-18 2006-06-06 Hitachi, Ltd. System and method for accessing an offline storage unit through an online storage unit
WO2006081768A1 (en) * 2005-02-06 2006-08-10 Huawei Technologies Co., Ltd A method for establishing the path based on the change of the node address
US20060218362A1 (en) * 2005-03-11 2006-09-28 Network Appliance, Inc. Network-accessible memory
US20070101070A1 (en) * 2005-11-01 2007-05-03 Hitachi, Ltd. Storage system
US20080005514A1 (en) * 2006-06-06 2008-01-03 Midori Kurokawa Storage system and storage control device
US20080075083A1 (en) * 2006-09-25 2008-03-27 Tremaine Michael Method for efficiently generating privacy addresses
GB2446177A (en) * 2007-02-03 2008-08-06 Katherine Bean Data storage system
US20080301199A1 (en) * 2007-05-31 2008-12-04 Bockhold A Joseph Failover Processing in Multi-Tier Distributed Data-Handling Systems
US20090150581A1 (en) * 2003-11-12 2009-06-11 David Chimitt Method and system for providing data volumes
US7725760B2 (en) 2003-09-23 2010-05-25 Symantec Operating Corporation Data storage system
US7730222B2 (en) 2004-08-24 2010-06-01 Symantec Operating System Processing storage-related I/O requests using binary tree data structures
EP1912115A3 (en) * 2006-10-12 2010-09-08 Hitachi, Ltd. Storage system for back-end communications with other storage system
US7827362B2 (en) 2004-08-24 2010-11-02 Symantec Corporation Systems, apparatus, and methods for processing I/O requests
US7904428B2 (en) 2003-09-23 2011-03-08 Symantec Corporation Methods and apparatus for recording write requests directed to a data store
US7991748B2 (en) 2003-09-23 2011-08-02 Symantec Corporation Virtual data store creation and use
US20120324039A1 (en) * 2011-06-14 2012-12-20 Hitachi, Ltd. Computer system and disk sharing method used thereby
US8521973B2 (en) 2004-08-24 2013-08-27 Symantec Operating Corporation Systems and methods for providing a modification history for a location within a data store
WO2015030981A1 (en) * 2013-08-30 2015-03-05 Nimble Storage, Inc. Transitioning control between two storage controllers
US20180157552A1 (en) * 2015-05-27 2018-06-07 Hewlett Packard Enterprise Development Lp Data validation
US20190294484A1 (en) * 2018-03-21 2019-09-26 International Business Machines Corporation Root cause analysis for correlated development and operations data

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005056200A (en) * 2003-08-05 2005-03-03 Hitachi Ltd Data management method, disk storage device and disk storage system
US8171098B1 (en) * 2006-06-29 2012-05-01 Emc Corporation Techniques for providing storage services using networked computerized devices having direct attached storage
US8874841B2 (en) * 2007-04-30 2014-10-28 Hewlett-Packard Development Company, L.P. Method and system for distributing snapshots across arrays of an array cluster
US8819781B2 (en) * 2009-04-20 2014-08-26 Cleversafe, Inc. Management of network devices within a dispersed data storage network
US8713251B2 (en) 2009-05-27 2014-04-29 Hitachi, Ltd. Storage system, control method therefor, and program

Citations (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327540A (en) * 1991-09-18 1994-07-05 Ncr Corporation Method and apparatus for decoding bus master arbitration levels to optimize memory transfers
US5752260A (en) * 1996-04-29 1998-05-12 International Business Machines Corporation High-speed, multiple-port, interleaved cache with arbitration of multiple access addresses
US5905999A (en) * 1996-04-29 1999-05-18 International Business Machines Corporation Cache sub-array arbitration
US6078337A (en) * 1994-09-12 2000-06-20 Canon Kabushiki Kaisha Maintaining consistency of cache memory data by arbitrating use of a connection route by plural nodes
US20010002480A1 (en) * 1997-09-30 2001-05-31 Lsi Logic Corporation Method and apparatus for providing centralized intelligent cache between multiple data controlling elements
US6247099B1 (en) * 1999-06-03 2001-06-12 International Business Machines Corporation System and method for maintaining cache coherency and data synchronization in a computer system having multiple active controllers
US6324595B1 (en) * 1999-03-15 2001-11-27 Advanced Micro Devices, Inc. Dedication of space in descriptor for minimizing data processing during communications between a peripheral device and a host system
US20010049774A1 (en) * 1998-06-05 2001-12-06 Noel S. Otterness Apparatus system and method for n-way raid controller having improved performance and fault tolerance
US6353869B1 (en) * 1999-05-14 2002-03-05 Emc Corporation Adaptive delay of polling frequencies in a distributed system with a queued lock
US6363462B1 (en) * 1997-03-31 2002-03-26 Lsi Logic Corporation Storage controller providing automatic retention and deletion of synchronous back-up data
US20020099833A1 (en) * 2001-01-24 2002-07-25 Steely Simon C. Cache coherency mechanism using arbitration masks
US6446175B1 (en) * 1999-07-28 2002-09-03 Storage Technology Corporation Storing and retrieving data on tape backup system located at remote storage system site
US6457098B1 (en) * 1998-12-23 2002-09-24 Lsi Logic Corporation Methods and apparatus for coordinating shared multiple raid controller access to common storage devices
US6463514B1 (en) * 1998-02-18 2002-10-08 International Business Machines Corporation Method to arbitrate for a cache block
US6490659B1 (en) * 2000-03-31 2002-12-03 International Business Machines Corporation Warm start cache recovery in a dual active controller with cache coherency using stripe locks for implied storage volume reservations
US6549988B1 (en) * 1999-01-22 2003-04-15 Ilya Gertner Data storage system comprising a network of PCs and method using same
US6564294B1 (en) * 1999-03-17 2003-05-13 Hitachi, Ltd. Broadcast system in disk array controller
US20030110355A1 (en) * 2000-03-10 2003-06-12 Kazuhisa Fujimoto Disk array controller, its disk array control unit, and increase method of the unit
US20030110354A1 (en) * 1999-03-17 2003-06-12 Hitachi, Ltd. Disk array controller
US20030163655A1 (en) * 2002-02-25 2003-08-28 International Business Machines Corporation Method and apparatus for using cache coherency locking to facilitate on-line volume expansion in a multi-controller storage system
US20030196037A1 (en) * 1998-04-10 2003-10-16 Kiyohiro Obara Storage subsystem with management site changing function
US6636950B1 (en) * 1998-12-17 2003-10-21 Massachusetts Institute Of Technology Computer architecture for shared memory access
US6718448B1 (en) * 2000-11-28 2004-04-06 Emc Corporation Queued locking of a shared resource using multimodal lock types
US6928525B1 (en) * 2000-04-28 2005-08-09 Hewlett-Packard Development Company, L.P. Per cache line semaphore for cache access arbitration

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4710868A (en) * 1984-06-29 1987-12-01 International Business Machines Corporation Interconnect scheme for shared memory local networks
ATE179811T1 (en) * 1989-09-08 1999-05-15 Auspex Systems Inc OPERATING SYSTEM STRUCTURE WITH SEVERAL PROCESSING UNITS
JPH04628A (en) * 1990-04-18 1992-01-06 Nec Corp Recognizing method for subsystem constitution
US5408629A (en) * 1992-08-13 1995-04-18 Unisys Corporation Apparatus and method for controlling exclusive access to portions of addressable memory in a multiprocessor system
JPH06202894A (en) * 1992-09-28 1994-07-22 Nec Corp Shared memory control circuit
JP3431972B2 (en) * 1993-11-29 2003-07-28 株式会社日立製作所 Virtual disk system
US5606679A (en) * 1995-02-28 1997-02-25 International Business Machines Corporation Method for optimal retrieval of non-volume-specific data
US5790775A (en) * 1995-10-23 1998-08-04 Digital Equipment Corporation Host transparent storage controller failover/failback of SCSI targets and associated units
JP3628777B2 (en) * 1995-10-30 2005-03-16 株式会社日立製作所 External storage device
US5949785A (en) * 1995-11-01 1999-09-07 Whittaker Corporation Network access communications system and methodology
US5802547A (en) * 1996-10-15 1998-09-01 International Business Machines Corporation Data storage system with streamlined data exchange path to cached data
US5887164A (en) * 1997-06-06 1999-03-23 National Instruments Corporation System and method for enabling a target computer to use storage resources of a host computer
JP3403920B2 (en) * 1997-06-18 2003-05-06 株式会社日立製作所 Storage system and storage controller
JP2001014201A (en) * 1999-06-29 2001-01-19 Toshiba Corp Shared file system
JP4719957B2 (en) * 2000-05-24 2011-07-06 株式会社日立製作所 Storage control device, storage system, and storage system security setting method
JP2002123479A (en) * 2000-10-17 2002-04-26 Hitachi Ltd Disk control device and method for controlling its cache
US6477618B2 (en) * 2000-12-28 2002-11-05 Emc Corporation Data storage system cluster architecture
JP2003015826A (en) * 2001-07-04 2003-01-17 Hitachi Ltd Shared memory copy function in disk array controller
JP2003084919A (en) 2001-09-06 2003-03-20 Hitachi Ltd Control method of disk array device, and disk array device
JP4219602B2 (en) 2002-03-01 2009-02-04 株式会社日立製作所 Storage control device and control method of storage control device
JP4338068B2 (en) 2002-03-20 2009-09-30 株式会社日立製作所 Storage system
JP4704659B2 (en) 2002-04-26 2011-06-15 株式会社日立製作所 Storage system control method and storage control device
US20040107381A1 (en) * 2002-07-12 2004-06-03 American Management Systems, Incorporated High performance transaction storage and retrieval system for commodity computing environments

Patent Citations (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327540A (en) * 1991-09-18 1994-07-05 Ncr Corporation Method and apparatus for decoding bus master arbitration levels to optimize memory transfers
US6078337A (en) * 1994-09-12 2000-06-20 Canon Kabushiki Kaisha Maintaining consistency of cache memory data by arbitrating use of a connection route by plural nodes
US5752260A (en) * 1996-04-29 1998-05-12 International Business Machines Corporation High-speed, multiple-port, interleaved cache with arbitration of multiple access addresses
US5905999A (en) * 1996-04-29 1999-05-18 International Business Machines Corporation Cache sub-array arbitration
US6363462B1 (en) * 1997-03-31 2002-03-26 Lsi Logic Corporation Storage controller providing automatic retention and deletion of synchronous back-up data
US20010002480A1 (en) * 1997-09-30 2001-05-31 Lsi Logic Corporation Method and apparatus for providing centralized intelligent cache between multiple data controlling elements
US6463514B1 (en) * 1998-02-18 2002-10-08 International Business Machines Corporation Method to arbitrate for a cache block
US20030196037A1 (en) * 1998-04-10 2003-10-16 Kiyohiro Obara Storage subsystem with management site changing function
US20010049774A1 (en) * 1998-06-05 2001-12-06 Noel S. Otterness Apparatus system and method for n-way raid controller having improved performance and fault tolerance
US6636950B1 (en) * 1998-12-17 2003-10-21 Massachusetts Institute Of Technology Computer architecture for shared memory access
US6457098B1 (en) * 1998-12-23 2002-09-24 Lsi Logic Corporation Methods and apparatus for coordinating shared multiple raid controller access to common storage devices
US6549988B1 (en) * 1999-01-22 2003-04-15 Ilya Gertner Data storage system comprising a network of PCs and method using same
US6324595B1 (en) * 1999-03-15 2001-11-27 Advanced Micro Devices, Inc. Dedication of space in descriptor for minimizing data processing during communications between a peripheral device and a host system
US20030110354A1 (en) * 1999-03-17 2003-06-12 Hitachi, Ltd. Disk array controller
US20040064637A1 (en) * 1999-03-17 2004-04-01 Akira Fujibayashi Broadcast system in disk array controller
US6564294B1 (en) * 1999-03-17 2003-05-13 Hitachi, Ltd. Broadcast system in disk array controller
US6629204B2 (en) * 1999-03-17 2003-09-30 Hitachi, Ltd. Disk array controller including a plurality of access paths
US6353869B1 (en) * 1999-05-14 2002-03-05 Emc Corporation Adaptive delay of polling frequencies in a distributed system with a queued lock
US6247099B1 (en) * 1999-06-03 2001-06-12 International Business Machines Corporation System and method for maintaining cache coherency and data synchronization in a computer system having multiple active controllers
US6446175B1 (en) * 1999-07-28 2002-09-03 Storage Technology Corporation Storing and retrieving data on tape backup system located at remote storage system site
US20030110355A1 (en) * 2000-03-10 2003-06-12 Kazuhisa Fujimoto Disk array controller, its disk array control unit, and increase method of the unit
US6647461B2 (en) * 2000-03-10 2003-11-11 Hitachi, Ltd. Disk array controller, its disk array control unit, and increase method of the unit
US6490659B1 (en) * 2000-03-31 2002-12-03 International Business Machines Corporation Warm start cache recovery in a dual active controller with cache coherency using stripe locks for implied storage volume reservations
US6928525B1 (en) * 2000-04-28 2005-08-09 Hewlett-Packard Development Company, L.P. Per cache line semaphore for cache access arbitration
US6718448B1 (en) * 2000-11-28 2004-04-06 Emc Corporation Queued locking of a shared resource using multimodal lock types
US20020099833A1 (en) * 2001-01-24 2002-07-25 Steely Simon C. Cache coherency mechanism using arbitration masks
US20030163655A1 (en) * 2002-02-25 2003-08-28 International Business Machines Corporation Method and apparatus for using cache coherency locking to facilitate on-line volume expansion in a multi-controller storage system

Cited By (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970972B2 (en) 2002-12-27 2005-11-29 Hitachi, Ltd. High-availability disk control device and failure processing method thereof and high-availability disk subsystem
US20040139365A1 (en) * 2002-12-27 2004-07-15 Hitachi, Ltd. High-availability disk control device and failure processing method thereof and high-availability disk subsystem
US8078809B2 (en) 2003-06-18 2011-12-13 Hitachi, Ltd. System for accessing an offline storage unit through an online storage unit
US20080183946A1 (en) * 2003-06-18 2008-07-31 Akihiro Mori System and method for accessing an offline storage unit through an online storage unit
US7366870B2 (en) 2003-06-18 2008-04-29 Hitachi, Ltd. System and method for accessing an offline storage unit through an online storage unit
US7058753B2 (en) 2003-06-18 2006-06-06 Hitachi, Ltd. System and method for accessing an offline storage unit through an online storage unit
US7711896B2 (en) 2003-06-23 2010-05-04 Hitachi, Ltd. Storage system that is connected to external storage
US20040257857A1 (en) * 2003-06-23 2004-12-23 Hitachi, Ltd. Storage system that is connected to external storage
US8312233B2 (en) 2003-06-23 2012-11-13 Hitachi, Ltd. Storage system that is connected to external storage
US20100169569A1 (en) * 2003-06-23 2010-07-01 Yasutomo Yamamoto Storage system that is connected to external storage
US7228380B2 (en) 2003-06-23 2007-06-05 Hitachi, Ltd. Storage system that is connected to external storage
US20070168598A1 (en) * 2003-06-23 2007-07-19 Yasutomo Yamamoto Storage system that is connected to external storage
US7725667B2 (en) 2003-09-23 2010-05-25 Symantec Operating Corporation Method for identifying the time at which data was written to a data store
US20050076262A1 (en) * 2003-09-23 2005-04-07 Revivio, Inc. Storage management device
US7991748B2 (en) 2003-09-23 2011-08-02 Symantec Corporation Virtual data store creation and use
US7904428B2 (en) 2003-09-23 2011-03-08 Symantec Corporation Methods and apparatus for recording write requests directed to a data store
US7272666B2 (en) * 2003-09-23 2007-09-18 Symantec Operating Corporation Storage management device
US7725760B2 (en) 2003-09-23 2010-05-25 Symantec Operating Corporation Data storage system
US20090150581A1 (en) * 2003-11-12 2009-06-11 David Chimitt Method and system for providing data volumes
US7389380B2 (en) 2003-12-15 2008-06-17 Hitachi, Ltd. Disk array device and maintenance method for disk array device
US7096317B2 (en) * 2003-12-15 2006-08-22 Hitachi, Ltd. Disk array device and maintenance method for disk array device
US20050132136A1 (en) * 2003-12-15 2005-06-16 Masao Inoue Disk array device and maintenance method for disk array device
US7472240B2 (en) * 2004-05-10 2008-12-30 Hitachi, Ltd. Storage system with plural control device affiliations
US20050251620A1 (en) * 2004-05-10 2005-11-10 Hitachi, Ltd. Data migration in storage system
US7814293B2 (en) 2004-07-19 2010-10-12 Infotrend Technology Inc. Redundant controller host-side IO rerouting
GB2416414B (en) * 2004-07-19 2008-03-12 Infortrend Technology Inc Redundant controller host-side IO rerouting
CN100347656C (en) * 2004-07-19 2007-11-07 普安科技股份有限公司 Redundant controller host-side IO rerouting
GB2416414A (en) * 2004-07-19 2006-01-25 Infortrend Technology Inc Host-side rerouting of I/O requests in a data storage system with redundant controllers
US20060015692A1 (en) * 2004-07-19 2006-01-19 Schnapp Michael G Redundant controller host-side IO rerouting
US7827362B2 (en) 2004-08-24 2010-11-02 Symantec Corporation Systems, apparatus, and methods for processing I/O requests
US8521973B2 (en) 2004-08-24 2013-08-27 Symantec Operating Corporation Systems and methods for providing a modification history for a location within a data store
US7730222B2 (en) 2004-08-24 2010-06-01 Symantec Operating System Processing storage-related I/O requests using binary tree data structures
US7451279B2 (en) * 2004-10-22 2008-11-11 Hitachi, Ltd. Storage system comprising a shared memory to access exclusively managed data
US20060090042A1 (en) * 2004-10-22 2006-04-27 Hitachi, Ltd. Storage system
WO2006081768A1 (en) * 2005-02-06 2006-08-10 Huawei Technologies Co., Ltd A method for establishing the path based on the change of the node address
US20080034116A1 (en) * 2005-02-06 2008-02-07 Wang Li Method for establishing a path based on node address change
US8316074B2 (en) * 2005-03-11 2012-11-20 Network Appliance, Inc. Network-accessible memory
US20060218362A1 (en) * 2005-03-11 2006-09-28 Network Appliance, Inc. Network-accessible memory
US7512746B2 (en) * 2005-11-01 2009-03-31 Hitachi, Ltd. Storage system with designated CPU cores processing transactions across storage nodes
EP1785828A1 (en) * 2005-11-01 2007-05-16 Hitachi, Ltd. Storage system
US20070101070A1 (en) * 2005-11-01 2007-05-03 Hitachi, Ltd. Storage system
US7594083B2 (en) * 2006-06-06 2009-09-22 Hitachi, Ltd. Storage system and storage control device
US20080005514A1 (en) * 2006-06-06 2008-01-03 Midori Kurokawa Storage system and storage control device
US8429305B2 (en) * 2006-09-25 2013-04-23 Qualcomm Incorporated Method for efficiently generating privacy addresses
US20080075083A1 (en) * 2006-09-25 2008-03-27 Tremaine Michael Method for efficiently generating privacy addresses
EP1912115A3 (en) * 2006-10-12 2010-09-08 Hitachi, Ltd. Storage system for back-end communications with other storage system
GB2446177A (en) * 2007-02-03 2008-08-06 Katherine Bean Data storage system
US7631214B2 (en) * 2007-05-31 2009-12-08 International Business Machines Corporation Failover processing in multi-tier distributed data-handling systems
US20080301199A1 (en) * 2007-05-31 2008-12-04 Bockhold A Joseph Failover Processing in Multi-Tier Distributed Data-Handling Systems
US20120324039A1 (en) * 2011-06-14 2012-12-20 Hitachi, Ltd. Computer system and disk sharing method used thereby
US8838768B2 (en) * 2011-06-14 2014-09-16 Hitachi, Ltd. Computer system and disk sharing method used thereby
WO2015030981A1 (en) * 2013-08-30 2015-03-05 Nimble Storage, Inc. Transitioning control between two storage controllers
US9348682B2 (en) 2013-08-30 2016-05-24 Nimble Storage, Inc. Methods for transitioning control between two controllers of a storage system
US9594614B2 (en) 2013-08-30 2017-03-14 Nimble Storage, Inc. Methods for transitioning control between two controllers of a storage system
US20180157552A1 (en) * 2015-05-27 2018-06-07 Hewlett Packard Enterprise Development Lp Data validation
US10540225B2 (en) * 2015-05-27 2020-01-21 Hewlett Packard Enterprise Development Lp Data validation
US20190294484A1 (en) * 2018-03-21 2019-09-26 International Business Machines Corporation Root cause analysis for correlated development and operations data
US10769009B2 (en) * 2018-03-21 2020-09-08 International Business Machines Corporation Root cause analysis for correlated development and operations data

Also Published As

Publication number Publication date
US6983349B2 (en) 2006-01-03
JP4014923B2 (en) 2007-11-28
JP2003323263A (en) 2003-11-14

Similar Documents

Publication Publication Date Title
US6983349B2 (en) Method, system, and storage controller for controlling shared memories
US7433948B2 (en) Methods and apparatus for implementing virtualization of storage within a storage area network
US6594698B1 (en) Protocol for dynamic binding of shared resources
US7464223B2 (en) Storage system including storage adapters, a monitoring computer and external storage
EP0935186B1 (en) Volume set configuration using a single operational view
US6112263A (en) Method for multiple independent processes controlling access to I/O devices in a computer system
RU2427891C2 (en) Virtual network system of information storage, network storage device and virtual method
US6073209A (en) Data storage controller providing multiple hosts with access to multiple storage subsystems
US6247077B1 (en) Highly-scalable parallel processing computer system architecture
US7711896B2 (en) Storage system that is connected to external storage
EP0935374B1 (en) Dynamic and consistent naming of fabric attached storage
US7519769B1 (en) Scalable storage network virtualization
US20070094465A1 (en) Mirroring mechanisms for storage area networks and network based virtualization
CN105009099A (en) Computer system and data control method
EP0935201A1 (en) I/O protocol for a highly configurable multi-node processing system
EP0935375A1 (en) Name service for a highly configurable multi-node processing system
US20070094466A1 (en) Techniques for improving mirroring operations implemented in storage area networks and network based virtualization
US7925829B1 (en) I/O operations for a storage array
AU2003238219A1 (en) Methods and apparatus for implementing virtualization of storage within a storage area network
US20080270701A1 (en) Cluster-type storage system and managing method of the cluster-type storage system
US7970992B1 (en) Asymetrical device distribution for a partitioned storage subsystem
JPH11296313A (en) Storage sub-system
US7945758B1 (en) Storage array partitioning
JP4451687B2 (en) Storage system
US7571280B2 (en) Cluster-type storage system and managing method of the cluster-type storage system

Legal Events

Date Code Title Description
AS Assignment

Owner name: HITACHI LTD., JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:OKUMOTO, KATSUHIRO;HONMA, HISAO;REEL/FRAME:014040/0457

Effective date: 20030404

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: GOOGLE INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HITACHI, LTD.;REEL/FRAME:030555/0554

Effective date: 20121016

REMI Maintenance fee reminder mailed
FPAY Fee payment

Year of fee payment: 8

SULP Surcharge for late payment

Year of fee payment: 7

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: GOOGLE LLC, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:044127/0735

Effective date: 20170929