WO2015189936A1 - 共有ストレージシステム、及びストレージ装置へのアクセスを制御する方法 - Google Patents
共有ストレージシステム、及びストレージ装置へのアクセスを制御する方法 Download PDFInfo
- Publication number
- WO2015189936A1 WO2015189936A1 PCT/JP2014/065471 JP2014065471W WO2015189936A1 WO 2015189936 A1 WO2015189936 A1 WO 2015189936A1 JP 2014065471 W JP2014065471 W JP 2014065471W WO 2015189936 A1 WO2015189936 A1 WO 2015189936A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- host server
- revision
- logical unit
- storage
- management information
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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 by mirroring
- G06F11/2064—Error 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 by mirroring while ensuring consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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 by mirroring
- G06F11/2058—Error 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 by mirroring using more than 2 mirrored copies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0653—Configuration or reconfiguration with centralised address assignment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/855—Details of asynchronous mirroring using a journal to transfer not-yet-mirrored changes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Definitions
- Embodiments described herein relate generally to a shared storage system and a method for controlling access to a storage apparatus.
- the shared storage system is known as a storage system in which a plurality of storage devices are shared by a plurality of host servers.
- Such a shared storage system generally includes a management server.
- the management server manages the entire shared storage system.
- a logical unit is also called a logical volume or a logical disk, and has a logical storage area.
- An arbitrary storage location in the logical storage area is designated by a virtual address.
- the logical storage area is associated with at least a part of at least one physical storage area of the plurality of storage apparatuses.
- the management server holds address management information (for example, an address management table) for each logical unit in order to manage the correspondence between the virtual address and the real address of the storage device for each logical unit in the shared storage system.
- the host server in the shared storage system accesses the target storage location in the logical unit that it mounts (provides to itself).
- the host server manages the address of the storage location (that is, the real address) in the storage device associated with the virtual address of the target storage location and the storage device (more specifically, the identifier of the storage device).
- Query the server That is, when accessing the target storage location in the logical unit, the host server accesses the management server in order to know the storage location of the storage apparatus associated with the target storage location.
- Such access to the management server also occurs when each of the other host servers in the shared storage system tries to access a target storage location in the logical unit.
- a plurality of host servers in the shared storage system need to access the management server when accessing the target storage location in the logical unit provided to each of the plurality of host servers.
- concentration of access from a plurality of host servers to the management server is a bottleneck for improving the performance of the entire shared storage system.
- access to the management server is more concentrated. Difficult to get.
- a plurality of host servers in the shared storage system each have a copy of the address management information held in the management server.
- each of the plurality of servers can acquire the real address associated with the virtual address of the target storage location based on the copy of the address management information that the server has. That is, each of the plurality of servers can access the target storage location without requiring an inquiry to the management server.
- the address management information is updated according to the data update by the first host server
- the address management information is matched between the first host server and the other host servers. It becomes difficult.
- the problem to be solved by the present invention is to match the address management information between the host servers even though a configuration in which a plurality of host servers each have a copy of the address management information held in the management server is applied. It is an object of the present invention to provide a shared storage system and a method for controlling access to a storage device that can eliminate the need for processing to be performed.
- the shared storage system includes a plurality of host servers, a plurality of storage apparatuses, a management server, and a switch.
- the plurality of storage devices are shared by the plurality of host servers.
- the management server provides the plurality of host servers with a plurality of logical units to which at least some storage areas of the plurality of storage apparatuses are allocated.
- the switch connects the plurality of host servers, the plurality of storage apparatuses, and the management server.
- the management server for each of the plurality of logical units, a correspondence between each virtual address of the plurality of logical units, a real address of the storage device assigned to the virtual address, and a storage identifier indicating the storage device, Management is performed using first address management information, and revisions of the first address management information are managed using first revision data.
- Each of the plurality of host servers includes a second address management information that is a copy of each of the first address management information and the first revision data corresponding to a logical unit provided by the management server, and a second address management information Revision data is retained.
- Each of the plurality of host servers corresponds to the first virtual address from the second address management information corresponding to the first logical unit when accessing the first virtual address of the first logical unit.
- the attached first real address and first storage identifier are acquired.
- Each of the plurality of host servers further uses a first logical unit identifier indicating the first logical unit, the first real address, and the second revision data corresponding to the first logical unit. And requests access to the storage device indicated by the first storage identifier.
- Each of the plurality of storage apparatuses holds update management information including at least third revision data associated with the logical unit to which the storage area of each of the plurality of storage apparatuses is allocated.
- the third revision data indicates the revision of the corresponding first address management information notified by the management server in response to the update of the corresponding first address management information.
- Each of the plurality of storage apparatuses uses the first logical unit identifier, the first real address, and the second revision data from a first host server that is one of the plurality of host servers. If access is requested, the second revision data matches at least the third revision data corresponding to the first logical unit indicated by the first logical unit identifier. , Performing the requested access based on the first real address.
- FIG. 1 is a block diagram illustrating a typical configuration of a shared storage system according to one embodiment.
- FIG. 2 is a conceptual diagram showing an example of the correspondence between the logical storage areas of the logical units and the physical storage areas of the two storage devices.
- FIG. 3 is a diagram showing an example of the data structure of the management information shown in FIG.
- FIG. 4 is a flowchart showing a typical procedure of read access processing in the embodiment.
- FIG. 5 is a diagram showing an example of the data structure of the address management table shown in FIG.
- FIG. 6 is a diagram showing a typical format of a command applied in the embodiment.
- FIG. 7 is a flowchart showing a typical procedure of write access processing in the embodiment.
- FIG. 1 is a block diagram illustrating a typical configuration of a shared storage system according to one embodiment.
- FIG. 2 is a conceptual diagram showing an example of the correspondence between the logical storage areas of the logical units and the physical storage areas of the two storage devices.
- FIG. 3 is
- FIG. 8 is a flowchart showing a typical procedure of the address management table update process included in the write access process shown in FIG.
- FIG. 9 is a diagram for explaining the address management table update process.
- FIG. 10 is a flowchart showing a typical procedure of access processing when the management server is down in the embodiment.
- FIG. 11 is a diagram for explaining access processing when the management server is down.
- FIG. 1 is a block diagram illustrating a typical configuration of a shared storage system according to one embodiment.
- the shared storage system shown in FIG. 1 includes a plurality of storage devices (for example, two storage devices 11a and 11b), a plurality of host servers (for example, three host servers 12a, 12b, and 12c), and a management server 13. It has.
- the shared storage system includes the two storage apparatuses 11a and 11b.
- the shared storage system may include more than two storage devices.
- the shared storage system includes three host servers 12a, 12b, and 12c.
- the shared storage system may include two storage devices or more than three storage devices.
- the host servers 12a, 12b, and 12c include host bus adapters (HBA) 120a, 120b, and 120c, respectively.
- HBAs 120a, 120b, and 120c are also called host controllers, and connect the host servers 12a, 12b, and 12c to other network devices or storage devices.
- the storage apparatuses 11a and 11b, the host servers 12a, 12b and 12c (more specifically, the HBAs 120a, 120b and 120c of the host servers 12a, 12b and 12c) and the management server 13 are like switching hubs (network switches). Are connected through a switch 14. By this connection, a network (shared storage system) including the storage apparatuses 11a and 11b, the host servers 12a, 12b and 12c, and the management server 13 is constructed. The storage apparatuses 11a and 11c are connected to the host servers 12a, 12b and 12c. Shared by.
- the servers 12a, 12b, 12c and 13 are independent computers. However, at least two of the host servers 12a, 12b and 12c may operate on one computer. Further, at least one of the host servers 12a, 12b and 12c and the management server 13 may operate on one computer.
- FIG. 2 is a conceptual diagram showing an example of the correspondence between the storage areas of the logical units LU0 to LU3 and the storage areas of the storage apparatuses 11a and 11b.
- the storage devices 11a and 11b are each configured using a hard disk drive (HDD) array.
- HDD hard disk drive
- the storage apparatus 11a is a storage apparatus having a RAID (Redundant Arrays of Inexpensive Disks or Redundant Arrays of Independent Disks) configuration having a plurality of hard disk drives (HDDs).
- the storage apparatus 11b is also a RAID-configured storage apparatus having a plurality of HDDs. Note that at least one of the storage devices 11a and 11b may be configured using an array of storage devices other than the HDD (for example, a flash array), and the storage devices 11a and 11b do not necessarily have an array configuration. There is no need.
- a part of the storage area of each of the logical units LU0 to LU3 is associated with a part of the storage area of the storage device 11a. Further, another part of the storage area of each of the logical units LU0 to LU3 is associated with a part of the storage area of the storage device 11b. However, the entire storage area of the logical units LU0, LU1, LU2, or LU3 may be associated with at least a part of one of the storage areas of the storage devices 11a and 11b.
- the host server 12j (j is a, b, or c) that can use (recognize) the logical unit LUi (i is 0, 1, 2, or 3) is stored in a target storage location (hereinafter, referred to as a logical unit LUi). (Referred to as the first storage location).
- the host server 12j includes a storage location (hereinafter referred to as a second storage location) in the storage device 11k (k is a or b) associated with the first storage location, and the storage device 11k. Need to know (recognize).
- the address of the first storage location is called a virtual address
- the address of the second storage location is called a real address
- the storage area of the logical unit LUi and the storage area of the storage device 11k are small in size (first size) called blocks (more specifically, virtual blocks and real blocks) for management. Divided into regions. That is, each of the logical unit LUi and the storage device 11k includes a plurality of virtual blocks and a plurality of real blocks. Therefore, in this embodiment, a virtual block address (VBA) and a real block address (RBA) are used as the virtual address and the real address, respectively.
- VBA virtual block address
- RBA real block address
- the virtual block address and the real block address may be referred to as a logical block address and a physical block address, respectively.
- the management server 13 constructs a logical unit and provides the constructed logical unit to at least one of the host servers 12a, 12b, and 12c.
- the management server 13 constructs logical units LU0 to LU3.
- the management server 13 also provides the logical unit LU0 to the host servers 12a and 12c, and provides the logical unit LU1 to the host servers 12a and 12b.
- the management server 13 further provides the logical unit LU2 to the host server 12c and provides the logical unit LU3 to the host server 12b. That is, the host server 12a mounts the logical units LU0 and LU1.
- the host server 12b mounts the logical units LU1 and LU3, and the host server 12c mounts the logical units LU0 and LU2.
- the management server 13 holds management information 130 used to manage the logical units LU0 to LU3. More specifically, the management information 130 is stored in a local storage device included in the management server 13.
- the local storage device is a nonvolatile storage device, for example, a nonvolatile memory such as a flash memory or a disk storage device such as an HDD.
- the management information 130 includes address management tables (hereinafter referred to as AM tables) 134_LU0 to 134_LU3 corresponding to the logical units LU0 to LU3, respectively.
- LUN logical unit number
- ID storage identifier
- Management information 130 also includes revision data (first revision data) 135_LU0 to 135_LU3.
- Revision data 135_LU0 to 135_LU3 indicate revisions of the AM tables 134_LU0 to 134_LU3 corresponding to the logical units LU0 to LU3, respectively.
- the revision data 135_LU0 to 135_LU3 includes a revision number (RN) indicating the revision of the AM tables 134_LU0 to 134_LU3.
- the revisions (rev.) Of the AM tables 134_LU0, 134_LU1, 134_LU2, and 134_LU3 are 01 (rev. 01), 02 (rev. 02), 04 (rev. 04), and 02 (rev. 02), respectively. ).
- it is assumed that the revision data 135_LU0 to 135_LU3 are added to the corresponding AM tables 134_LU0 to 134_LU3, respectively.
- Each of the host servers 12a, 12b, and 12c includes a copy of the AM table corresponding to the logical unit that is included in the management information 130 held in the management server 13 and that is mounted by itself (that is, that can be recognized by itself). Hold.
- the host server 12a holds AM tables (second address management information) 124a_LU0 and 124a_LU1 that are copies of the AM tables (first address management information) 134_LU0 and 134_LU1.
- the host server 12b holds AM tables (second address management information) 124b_LU1 and 124b_LU3, which are copies of the AM tables (first address management information) 134_LU1 and 134_LU3.
- the host server 12c holds AM tables (second address management information) 124c_LU0 and 124c_LU2 which are copies of the AM tables (first address management information) 134_LU0 and 134_LU2.
- the host server 12a holds revision data (second revision data) 125a_LU0 and 125a_LU1 indicating revisions (revision numbers) of the AM tables 124a_LU0 and 124a_LU1.
- the host server 12b holds revision data (second revision data) 125b_LU1 and 125b_LU3 indicating revisions of the AM tables 124b_LU1 and 124b_LU3.
- the host server 12c holds revision data (second revision data) 125c_LU0 and 125c_LU2 indicating revisions of the AM tables 124c_LU0 and 124c_LU2.
- the AM tables 124a_LU0 and 124a_LU1 and the revision data 125a_LU0 and 125a_LU1 are stored in the local storage device of the HBA 120a of the host server 12a.
- the local storage device is a nonvolatile storage device, for example, a nonvolatile memory such as a flash memory.
- the AM tables 124b_LU1 and 124b_LU3 and the revision data 125b_LU1 and 125b_LU3 are stored in a local storage device included in the HBA 120b of the host server 12b.
- the AM tables 124c_LU0 and 124c_LU2 and the revision data 125c_LU0 and 125c_LU2 are stored in a local storage device included in the HBA 120c of the host server 12c. However, in FIG. 1, the AM table and revision data are arranged outside the HBA for the sake of drawing.
- the storage apparatuses 11a and 11b hold update management tables (hereinafter referred to as UM tables) 110a and 110b, respectively.
- the UM tables (update management information) 110a and 110b are stored in local storage devices included in the controllers of the storage apparatuses 11a and 11b.
- This local storage device is a nonvolatile storage device, for example, a nonvolatile memory such as a flash memory, or a disk storage device such as an HDD.
- This entry includes a set of a logical unit number (LUN) field, a revision number (RN) field, and an update server ID field.
- LUN logical unit number
- RN revision number
- the LUN field is used to hold the logical unit number of the logical unit LUi corresponding to the update management data.
- the logical unit number is used as an identifier of the logical unit LUi.
- the RN field is used to hold information (third revision data) representing the latest revision of the AM table 134_LUi related to the logical unit LUi corresponding to the update management data, for example, a revision number.
- the update server ID field is used to hold the ID of the host server (that is, the update server ID) requested to the management server 13 to update the revision of the AM table 134_LUi related to the logical unit LUi corresponding to the update management data.
- the LUN field of the update management data holds the logical unit number of the logical unit LUi corresponding to the update management data
- the update server ID field of the update management data is the AM table 134_LUi related to the logical unit LUi corresponding to the update management data.
- ID of the host server that requested the update of the revision, and the RN field of the update management data holds the revision number of the updated AM table 134_LUi.
- FIG. 3 shows an example of the data structure of the management information 130 shown in FIG.
- the management information 130 includes a pointer list 131, pointer tables 132_0 to 132_3, host server lists 133_LU0 to 133_LU3 corresponding to logical units LU0 to LU3, AM tables 134_LU0 to 134_LU3 corresponding to logical units LU0 to LU3, and logical units. It consists of revision data corresponding to LU0 to LU3.
- FIG. 3 only the host server list, AM table, and revision data corresponding to the logical units LU0 and LU1 are shown for the sake of drawing. That is, in FIG.
- the pointer list 131 includes a first element and an array of second elements.
- the first element is, for example, the head element of the pointer list 131 and includes list management data N_LU indicating the number of second elements.
- the second element array includes the number of pointers PP_LU0 to PP_LU3 indicated by the list management data N_LU. That is, the pointer list 131 holds list management data N_LU and pointers PP_LU0 to PP_LU3.
- Pointers PP_LU0 to PP_LU3 correspond to the logical units LU0 to LU3 and point to the pointer tables 132_0 to 132_3, respectively.
- the pointer tables 132_0 to 132_3 hold pointers (host server list pointers) HSLP_LU0 to HSLP_LU3 and pointers (AM table pointers) AMTP_LU0 to AMTP_LU3.
- the pointers HSLP_U0 to HSLP_LU3 point to the host server lists 133_LU0 to 133_LU3.
- the pointers AMTP_LU0 to AMTP_LU3 point to the AM tables 134_LU0 to 134_LU3 (and the revision data 135_LU0 to 135_LU3).
- the host server lists 133_LU2 and 133_LU3 and the AM tables 134_LU2 and 134_LU3 (and the revision data 135_LU2 and 135_LU3) are omitted for the sake of drawing.
- the third element is, for example, the head element of the host server list 133_LUi, and includes list management data N_HS indicating the number of the fourth element.
- the array of the fourth element includes IDs (host server IDs) of the number (j) of host servers indicated by the list management data N_HS.
- the j host server IDs held in the host server list 133_LUi indicate the j host servers provided (mounted) by the logical unit LUi.
- the logical unit LU0 is provided to the host servers 12a and 12c
- the logical unit LU1 is provided to the host servers 12a and 12b.
- the host server IDs of the host servers 12a, 12b, and 12c are HSIDa, HSIDb, and HSIDc.
- HSIDa and HSIDc are held in the host server list 133_LU0
- HSIDa and HSIDb are held in the host server list 133_LU1.
- HSIDc is held in the host server list 133_LU2
- HSIDb is held in the host server list 133_LU3.
- FIG. 4 is a flowchart showing a typical procedure of read access processing.
- an underlined character string described in a graphic (rectangular or diamond-shaped graphic) representing each step in the flowchart represents the subject of the operation of the corresponding step. This also applies to the later-described flowcharts shown in FIGS.
- the host server 12a (more specifically, the HBA 120a of the host server 12a) generates a read command according to the copy of the AM table 134_LU0 (that is, the AM table 124a_LU0) held by itself, and sends the read command to the storage device. Issue (step S1).
- the AM table 134_LUi has an entry for holding address management data corresponding to each virtual block address of the logical unit LUi.
- This entry (address management data) includes a set of a logical unit number (LUN) field, a virtual block address field, a storage ID field, and a real block address field.
- LUN logical unit number
- the virtual block address field is used to hold a virtual block address (VBA) in the corresponding logical unit LUi.
- the storage ID field is used to hold an ID of a storage device including a storage location specified by a real block address assigned to a corresponding virtual block address, that is, a storage ID (SID).
- the real block address field is used to hold a real block address (RBA) assigned to the corresponding virtual block address (VBA).
- the data structure of the copy of the AM table 134_LUi is the same as that of the AM table 134_LUi shown in FIG.
- the real block addresses RBA0, RBA1, and RBA2 of the storage device having the storage ID SIDa are assigned to the virtual block addresses VBA0, VBA1, and VBA2 of the logical unit LUi.
- SIDa indicates the storage ID of the storage apparatus 11a.
- the AM table 124a_LU0 in the host server 12a is a copy of the AM table 134_LUi (134_LU0).
- the read access request generated in the host server 12a indicates data read from the virtual block address VBA0 of the logical unit LU0.
- the host server 12a determines the ID (storage ID) and real block address of the storage device that is actually (physically) accessed based on the virtual block address VBA0 of the logical unit LU0 and the AM table 124a_LU0. .
- the ID (SIDa) and real block address RBA0 of the storage apparatus 11a are determined.
- the host server 12a identifies the revision of the AM table 124a_LU0 (that is, the revision of the AM table 134_LU0 recognized by itself) based on the revision data 125a_LU0.
- revision 01 (RN 01) is specified.
- step S1 the host server 12a issues a read command designating data read from the real block address RBA0 in the storage apparatus 11a to the storage apparatus 11a.
- This read command includes the real block address RBA0 determined as described above.
- the read command is used to notify the storage apparatus 11a not only of the address to be accessed but also the revision number of the AM table 124a_LU0 used to acquire the address.
- the revision number notified to the storage apparatus 11a using this read command indicates the revision number of the AM table 134_LU0 recognized by the host server 12a that issues the read command.
- a command descriptor block (CDB) is used for this read command.
- the CDB is defined by a small computer system interface (SCSI).
- FIG. 6 shows a typical format of a command (CDB) applied in the present embodiment.
- a 12-byte CDB is used.
- the first byte (0th byte) of the 12-byte CDB is used to hold an operation code.
- the operation code is composed of a 3-bit (upper) group code and a 5-bit (lower) command code.
- the group code is 6 or 7 (ie, group 6 or 7)
- the corresponding CDB is a vendor specific CDB, typically a 6 or 10 byte CDB.
- the present embodiment extends this definition to define a 12-byte CDB in which 2 bytes are added after the 10-byte CDB as an extended group 7 CDB (hereinafter referred to as an extended CDB).
- the upper 3 bits of the first byte of the extended CDB are used to hold a logical unit number (LUN).
- the second to fifth bytes of the extended CDB are used to hold the actual block address.
- the second to fifth bytes of the CDB are used to hold a logical block address. That is, the second to fifth bytes of the extended CDB applied in this embodiment hold the actual block address instead of the logical block address.
- the real block address RBA0 determined based on the virtual block address VBA0 of the logical unit LU0 and the AM table 124a_LU0 is used as the real block address.
- the real block address held in the second to fifth bytes of the extended CDB indicates the head position (head real block address) of the transferred data block.
- the sixth byte of the extended CDB is used as a spare.
- the seventh and eighth bytes of the extended CDB are used to hold the number of data blocks to be transferred (that is, the transfer data length).
- the ninth and tenth bytes of the extended CDB are used to hold information (for example, RN) indicating the revision of the AM table.
- This RN (revision number) is information newly defined in the extended CDB.
- the RN (revision information) of the AM table is included in the extended CDB (command).
- the 11th byte (last byte) of the extended CDB is used to hold a control byte.
- the storage device 11a When the storage device 11a receives a read command issued by the host server 12a, the storage device 11a determines whether the read operation specified by the received read command can be normally executed. That is, the storage apparatus 11a determines whether the status regarding the received read command is good (step S2).
- the storage apparatus 11a obtains the latest AM table revision number (RN) corresponding to the logical unit indicated by the logical unit number LUN included in the received read command as follows.
- the storage apparatus 11a acquires the revision number (RN) from the entry in the UM table 110a associated with the logical unit number LUN (LUN0).
- the latest revision number of the AM table 134_LU0 is acquired.
- the storage apparatus 11a compares the revision number included in the received read command with the obtained revision number (that is, the latest AM table 134_LU0 revision number). Then, the storage device 11a has a good status regarding the execution of the read command based on whether the above-mentioned revision numbers match and whether the data read specified by the received read command can be executed normally. Is determined (step S2).
- step S2 If it is good (Yes in step S2), the storage apparatus 11a receives a known good status (that is, a good status configured using the status byte) as a response to the read command from the host server 12a. It returns to the host server 12a (step S3). Then, the storage device 11a performs a read operation specified by the read command (step S4).
- a known good status that is, a good status configured using the status byte
- an error status (error status byte) indicating a revision mismatch uses, for example, a pattern that is not defined by a normal status byte such as “11000” (that is, a pattern that is defined as a spare). Realized.
- the host server 12a Upon receiving the error status indicating the revision mismatch, the host server 12a acquires the latest copy of the AM table 134_LU0 related to the logical unit LU0 from the management server 13, and holds the copy as the latest AM table 124a_LU0 (step S7). . That is, the host server 12a updates the AM table 124a_LU0 held by the host server 12a with a copy of the AM table 134_LU0 acquired from the management server 13. Revision data 135_LU0 is attached to the AM table 134_LU0. Therefore, the host server 12a acquires a copy of the revision data 135_LU0 by acquiring a copy of the AM table 134_LU0. As a result, the host server 12a updates the AM table 124a_LU0 to the latest contents, and at the same time updates the revision data 125a_LU0 to indicate the latest revision number.
- step S1 the host server 12a returns to step S1, and regenerates a read command according to the latest AM table 124a_LU0 (that is, a copy of the latest AM table 134_LU0).
- step S1 the host server 12a issues the regenerated read command to the storage device 11a.
- step S2 the status regarding the execution of the read command is not good (No in step S2), and that the cause is other than revision mismatch (No in step S5).
- an error for example, there is a case where a real block address that cannot be recognized by the storage apparatus 11a is included in the read command. In the case of such an error, the storage apparatus 11a executes corresponding error processing as in the conventional technique (step S8).
- the RN (revision number) of the AM table 124_LU0 held by the host server 12a is included in the command issued by the host server 12a to the storage device 11a. Accordingly, the host server 12a can notify the storage apparatus 11a of the revision of the AM table 124_LU0 (a copy of the AM table 134_LU0) held by the host server 12a simultaneously with the access request without using a special protocol.
- the storage apparatus 11a When the storage apparatus 11a receives a read command issued by the host server 12a, the storage apparatus 11a can compare the revision number included in the read command with the revision number held by the storage apparatus 11a. That is, the storage device 11a can determine whether the AM table 124_LU0 (copy of the AM table 134_LU0) held by the read command issuer (host server 12a) is the latest based on the read command. According to the present embodiment, special access for enabling this determination is unnecessary, and the overhead for this is not increased. In addition, according to the present embodiment, the introduction of the above-described determination in the storage apparatus can eliminate the process of distributing the copy of the AM table 134_LU0 held by the management server 13 to all the host servers.
- the effect of the above-described embodiment can be obtained similarly when a request for access to the logical unit occurs in the host servers 12b and 12c.
- the host server since the host server holds a copy of the AM table, it is not necessary to inquire the management server 13 about the actual block address each time a request for access to the logical unit occurs. Therefore, according to the present embodiment, it is possible to achieve access with a short latency. Further, according to the present embodiment, since access to the management server 13 is not concentrated, a shared storage system without a bottleneck can be realized, and it is commensurate with an increase in the number of host servers or the number of storage devices (or storage capacity). System performance can be obtained.
- FIG. 7 is a flowchart showing a typical procedure of write access processing
- FIG. 8 is a flowchart showing a typical procedure of AM (address management) table update processing included in the write access processing shown in FIG.
- FIG. 9 is a diagram for explaining the AM table update processing.
- the host server 12a determines whether the requested write access needs to update the AM table 134_LU0 held in the management server 13 (step S11). For example, when writing to a new area in the logical unit LU0, it is necessary to update the AM table 134_LU0. In this case, the AM table 134_LU0 needs to be updated before the write access is executed.
- the new area refers to a storage area that is included in the logical unit LU0 and that is not assigned a storage area in the storage device 11a or 11b (that is, a storage area that is not registered in the AM table 134_LU0).
- Step S12 the host server 12a notifies the management server 13 to that effect (Step S12).
- This notification is given a revision number (RN) indicating the revision of the AM table 124a_LU0 held by the host server 12a.
- the revision number of this AM table 124a_LU0 is indicated by the revision data 125a_LU0 held by the host server 12a.
- the management server 13 determines whether the revision of the AM table 124a_LU0 held by the host server 12a is the latest (step S13). First, the management server 13 compares the revision number included in the notification from the host server 12a with the revision number (that is, the latest revision number) indicated by the revision data 135_LU0 held by itself. Then, the management server 13 determines whether the revision of the AM table 124a_LU0 held by the host server 12a is the latest, based on whether both revision numbers match.
- the management server 13 returns a copy of the latest AM table 134_LU0 and revision data 135_LU0 held by itself to the host server 12a. Based on this copy, the host server 12a updates the AM table 124a_LU0 and the revision data 125a_LU0 (step S14).
- the management server 13 executes AM table update processing (step S15) in cooperation with the host server 12a and the storage device.
- the storage device that executes the AM table update process in cooperation with the management server 13 and the host server 12a is a storage device in which its storage area is allocated to the logical unit LU0 (that is, the storage devices 11a and 11b). ).
- the management server 13 executes an AM table update process (step S15) in cooperation with the host server 12a and the storage device.
- the host server 12a requests the management server 13 to change (update) the AM table 134_LU0 (step S31).
- This request includes a virtual block address (first write address) and a size (number of data blocks to be written) in the logical unit LU0 to which data is to be written. That is, the host server 12a notifies the management server 13 of the write address (virtual block address) and size by requesting the management server 13 to change the AM table 134_LU0.
- the write address is the virtual block address VBA3 and the size (number of data blocks to be written) is 1.
- the management server 13 in the storage apparatus 11a or 11b to be allocated to the storage area (new area) in the logical unit LU0 indicated by the write address (virtual block address VBA3) and size ( 1) notified by the host server 12a Is determined (step S32).
- the new area in the logical unit LU0 is a storage area specified by the virtual block address VBA3
- a part of the free storage area in the storage device 11a or 11b is a storage area to be allocated to the new area. Shall be determined.
- the determined storage area is a storage area included in the storage device 11a or 11b and specified by the real block address RBA3.
- step S32 the management server 13 allocates the determined storage area to a new area in the logical unit LU0. That is, the management server 13 assigns the determined real block address RBA3 of the storage area to the virtual block address VBA3 of the new area in the logical unit LU0 notified by the host server 12a.
- the management server 13 determines whether the management server 13 is currently processing a change request from a host server other than the host server 12a (that is, a change request corresponding to step S31) (step S33). If a change request from another host server is being processed (Yes in step S33), the management server 13 waits for completion of processing of the change request from the other host server (step S34).
- step S35 the management server 13 updates the AM table 134_LU0 and the revision data 135_LU0 so that the allocation of the real block address RBA3 to the virtual block address VBA3 (step S32) is reflected. That is, the management server 13 stores address management data including the virtual block address VBA3 notified by the host server 12a and the real block address RBA3 assigned to the virtual block address VBA3 as indicated by an arrow A2 in FIG. It adds to AM table 134_LU0. Further, the revision number indicated by the revision data 135_LU0 is changed as indicated by an arrow A3 in FIG. Here, the revision number indicated by the revision data 135_LU0 is changed from 01 to 02. This changed revision data 135_LU0 indicates that the revision (revision number) of the updated AM table 134_LU0 is 02.
- the management server 13 notifies the storage apparatus having the storage area allocated to the logical unit LU0 of the update of the AM table 134_LU0 (step S36).
- the storage devices having storage areas allocated to the logical unit LU0 are the storage devices 11a and 11b.
- the update of the AM table 134_LU0 is notified to the storage apparatus 11a as indicated by an arrow A4 in FIG.
- the update of the AM table 134_LU0 is also notified to the storage apparatus 11b.
- This notification includes the ID of the host server 12a that requested the update of the AM table 134_LU0 and the logical unit number LU0 of the logical unit LU0.
- the storage device 11a Upon receiving the update notification from the management server 13, the storage device 11a locks access to the logical unit LU0 associated with the AM table 134_LU0 (that is, the logical unit LU0 specified by the update notification) (step S37). .
- the storage apparatus 11b also executes step S37 in the same manner as the storage apparatus 11a.
- the storage apparatus 11a indicates the revision number (RN) and update server ID that are included in the UM table 110a and associated with the logical unit number LU0 of the logical unit LU0, as indicated by an arrow A5 in FIG. (Step S38).
- the storage device 11b executes step S38.
- the revision number is updated from 01 to 02
- the update server ID is updated to the host server ID of the host server 12a.
- the storage apparatus 11a notifies the management server 13 of the completion of the update of the UM table 110a as indicated by an arrow A6 in FIG. 9, and then releases the state where the access to the logical unit LU0 is locked. (Step S39). Similarly to the storage device 11a, the storage device 11b executes step S39.
- the management server 13 transmits a copy of the updated AM table 134_LU0 and revision data 135_LU0 to the host server 12a as indicated by an arrow A7 in FIG. 9 (step S40).
- the host server 12a holds a copy of the transmitted AM table 134_LU0 and revision data 135_LU0 as the latest AM table 124a_LU0 and revision data 125a_LU0 (step S41). That is, the host server 12a updates the AM table 124a_LU0 and revision data 125a_LU0 held by itself with the copy of the transmitted AM table 134_LU0 and revision data 135_LU0.
- the AM table update process ends.
- the host server 12a generates a write command (CDB) having the data structure shown in FIG. 6 according to the updated AM table 124a_LU0, and issues the write command to the storage device (step S16).
- CDB write command
- a write command is issued from the host server 12a to the storage apparatus 11a as indicated by an arrow A8 in FIG. A detailed description of this write command is omitted. If necessary, refer to the description of the write command issued in step S18 described later.
- the storage apparatus 11a receives a write command issued by the host server 12a. In this case, the storage apparatus 11a performs a write operation designated by the received write command (step S17). In the flowchart of FIG. 7, the description about the status related to the execution of the received write command when the storage apparatus 11a receives the write command is omitted. If necessary, refer to the description when the write command issued in step S18 is received by the storage device 11a.
- the write access request generated in the host server 12a does not require the AM table 134_LU0 to be updated (No in step S11).
- a write access that only changes existing data in the logical unit LU0 does not require an update of the AM table 134_LU0.
- the host server 12a generates a write command according to the AM table 124a_LU0 currently held by itself, and issues the write command to the storage apparatus (step S18).
- a write command has been issued to the storage apparatus 11a.
- This write command includes a logical unit number LU0 indicating the logical unit LU0.
- This write command further includes a revision number (RN) indicating the revision of the AM table 124a_LU0. Revision data 125a_LU0 held by the host server 12a is used for this revision number.
- the storage device 11a determines whether the revision of the AM table 124a_LU0 held in the host server 12a is the latest (step S19). First, the storage apparatus 11a acquires the revision number (RN) from the entry in the UM table 110a associated with the logical unit number LUN0 included in the received write command. Next, the storage apparatus 11a compares the revision number included in the received write command with the obtained revision number. Then, the storage device 11a determines whether the revision of the AM table 124a_LU0 is the latest based on whether both revision numbers match.
- RN revision number
- Step S17 If the revision of the AM table 124a_LU0 is the latest (Yes in Step S19), the storage apparatus 11a proceeds to Step S17 and executes the write operation specified by the received write command. More specifically, when the status regarding the execution of the received write command is good, including that the revision of the AM table 124a_LU0 is the latest, the storage apparatus 11a executes the write operation specified by the received write command. (Step S17).
- the storage apparatus 11a determines whether the revision of the AM table 124a_LU0 is not the latest (No in step S19). If the revision of the AM table 124a_LU0 is not the latest (No in step S19), the storage apparatus 11a returns an error status indicating a revision mismatch to the host server 12a. That is, if the status related to the execution of the received write command is not good and the cause is revision mismatch, the storage apparatus 11a returns an error status indicating revision mismatch to the host server 12a.
- the host server 12a obtains a copy of the latest AM table 134_LU0 and revision data 135_LU0 related to the logical unit LU0 from the management server 13, and holds the copy as the latest AM table 124a_LU0 and revision data 125a_LU0 (step S20).
- the host server 12a generates a write command again according to the latest AM table 124a_LU0, and issues the generated write command again to the storage device 11a (step S21).
- the write command reissued by the host server 12a is received by the storage device 11a. If the status regarding the execution of the received write command is good including the revision match, the storage device 11a executes the write operation specified by the received write command (step S17). If the status regarding the execution of the received write command is not good and the cause is other than revision mismatch, the storage apparatus 11a executes corresponding error processing.
- Step S20 the host server 12a proceeds to Step S21 and issues a write command again.
- the host server 12a may return to Step S18 and issue a write command again.
- the host server to be added is connected to the switch 14 that connects the storage apparatuses 11a and 11b and the management server 13 in the shared storage system. It is assumed that the host server connected to the switch 14 mounts the logical unit LUi. In this case, the host server connected to the switch 14 acquires a copy of the AM table 134_LUi and revision data 135_LUi associated with the logical unit LUi from the management server 13 and holds the copy. Thereby, a host server is added to the shared storage system.
- Major failures in the shared storage system include temporary disconnection of the network connection and down of the management server 13.
- the management server 13 distributes the latest AM table to all the host servers (that is, the host servers 12a, 12b and 12c) in the shared storage system.
- the management server 13 distributes the latest AM table to all the host servers (that is, the host servers 12a, 12b and 12c) in the shared storage system.
- the management server 13 distributes the latest AM table to all the host servers (that is, the host servers 12a, 12b and 12c) in the shared storage system.
- the host server accesses the logical unit LUi
- the host server (more specifically, the storage device requested to be accessed by the host server) is transferred to the logical unit LUi. It is determined whether the copy of the associated AM table 134_LUi is the latest. Therefore, in this embodiment, even if the network connection is temporarily disconnected, it is not necessary to consider whether the AM tables match between the host servers.
- FIG. 10 is a flowchart showing a typical procedure of access processing when the management server is down
- FIG. 11 is a diagram for explaining access processing when the management server is down.
- the host server 12a determines whether the requested access needs to update the AM table 134_LU0 or 134_LU1 (step S51).
- the access that requires updating the AM table 134_LU0 or 134_LU1 is, for example, a write access to a new area in the logical unit LU0 or LU1.
- the host server 12a determines that access is not possible (step S52) and ends the access process.
- the management server 13 when the management server 13 is down, the host server 12a determines that it is impossible to execute an access that requires an update of the AM table held by the management server 13. The reason is that the AM table held by the management server 13 must always be the latest.
- the access that does not require the AM table 134_LU0 or 134_LU1 to be updated is, for example, read access or write access that only changes existing data in the logical unit LU0 or LU1. Such access can be executed if the host server 12a holds a copy of the latest AM table 134_LU0 or 134_LU1 in the AM table 124a_LU0 or 124a_LU1.
- the host server 12a generates an access command according to the AM table 124a_LU0 or 124a_LU1 currently held by itself, and sends the access command to the storage device. Issue (step S53).
- This access command includes a logical unit number LU0 or LU1 indicating the logical unit LU0 or LU1.
- This write command also includes a revision number (RN) indicating the revision of the AM table 124a_LU0 or 124a_LU1.
- Step S54 the storage apparatus 11a compares the revision number included in the received access command with the revision number associated with the logical unit number LUN0 or LU1 acquired from the UM table 110a. Based on the comparison result (revision match or mismatch), the host server 12a determines whether the revision of the AM table 124a_LU0 or 124a_LU1 is the latest. In the example of FIG.
- the revision numbers of the AM tables 124a_LU0 and 124a_LU1 are 01 and 01, respectively.
- the revision numbers associated with the logical unit numbers LU0 and LU1 that is, the revision numbers of the AM tables 134_LU0 and 134_LU1) indicated by the UM table 110a held in the storage device 11a are 01 and 02, respectively. Therefore, in the example of FIG. 11, the revision number of the AM table 124a_LU0 matches the revision number of the AM table 134_LU0, but the revision number of the AM table 124a_LU1 does not match the revision number of the AM table 134_LU1.
- the revision number (01) of the AM table 124a_LU0 matches the revision number (01) of the AM table 134_LU0. That is, the revision of the AM table 124a_LU0 is the latest (Yes in step S54). If the status related to the execution of the received write command is good, including the revision match, the storage apparatus 11a executes the access requested by the received access command (step S59).
- the access command received by the host server 12a requests access to the logical unit LU1.
- the revision number (01) of the AM table 124a_LU1 does not match the revision number (02) of the AM table 134_LU1. That is, the revision of the AM table 124a_LU1 is not the latest (No in step S54).
- the storage device 11a returns an error status indicating revision mismatch to the host server 12a as a response to the access command from the host server 12a.
- the host server 12a inquires the storage apparatus 11a about the host server having the latest copy of the AM table 134_LU1. .
- the above-described operation when the revision of the AM table 124a_LU1 is not the latest is omitted in the flowchart shown in FIG.
- the host server 12a When the host server 12a does not recognize that the management server 13 is down and an error status indicating a revision mismatch is returned from the storage apparatus 11a, the host server 12a operates as follows. . First, the host server 12a attempts to obtain the latest copy of the AM table 134_LU1 related to the logical unit LU1 from the management server 13 as in step S7 or S20. However, since the management server 13 is down, the host server 12a fails to obtain a copy of the latest AM table 134_LU1. Thereby, the management server 13 recognizes that the management server 13 is down. Therefore, the host server 12a inquires of the storage apparatus 11a about the host server having the latest copy of the AM table 134_LU1.
- the storage apparatus 11a identifies the host server having the latest copy of the AM table 134_LU1 based on the UM table 110a as follows (step S55). First, the storage apparatus 11a acquires the update server ID associated with the logical unit number LU1 indicated by the UM table 110a. Then, the storage apparatus 11a identifies the host server indicated by the acquired update server ID as a host server having a copy of the latest AM table 134_LU1. Here, it is assumed that the host server 12b is specified.
- the storage apparatus 11a notifies the host server 12a of the ID of the specified host server 12b (step S56). Then, the host server 12a acquires a copy of the latest AM table 124b_LU1 and revision data 125b_LU1 corresponding to the logical unit LU1 from the notified host server 12b, as indicated by an arrow A13 in FIG. 11 (step S57). In step S57, the host server 12a updates the AM table 124a_LU1 and the revision data 125a_LU1 based on the acquired copy.
- the host server 12a holds a copy of the AM table 124b_LU1 and the revision data 125b_LU1 as an AM table 124a_LU1 and revision data 125a_LU1 that are copies of the latest AM table 134_LU1 and revision data 135_LU1.
- the host server 12a generates an access command again according to the latest AM table 124a_LU1, and issues the generated write command again to the storage device 11a (step S58).
- the write command reissued by the host server 12a is received by the storage device 11a. If the status regarding the execution of the received write command is good including the revision match, the storage device 11a executes the write operation specified by the received write command (step S59).
- the storage apparatus 11a may identify the host server having the latest copy of the AM table 134_LU1 before returning the error status indicating the revision mismatch to the host server 12a. Then, the specified host server (for example, the host server 12b) may be notified to the host server 12a using an error status indicating a revision mismatch. In this case, if the host server 12a recognizes that the management server 13 is down, the host server 12a may obtain a copy of the latest AM table 124b_LU1 and revision data 125b_LU1 from the notified host server 12b.
- the host server 12a If the management server 13 is not down or if the host server 12a does not recognize that the management server 13 is down, the host server 12a first receives the latest AM table 134_LU1 and the management server 13 from the management server 13. What is necessary is just to perform the operation
- the storage apparatus 11a displays the latest AM table revision number for the corresponding logical unit, the ID of the host server that last updated the AM table, and the UM table 110a. Managed using. Therefore, when the access command including the logical unit number and the revision number is issued from the host server 12a as described above (step S53), the storage apparatus 11a determines whether the AM table held by the host server 12a is the latest. Can be determined (step S54).
- the storage apparatus 11a identifies the host server that last updated the AM table, and identifies the identified host server as the host server 12a. It is also possible to notify (access request source) (steps S55 and S56). Therefore, the host server 12a can obtain the latest copy of the AM table from the notified host server and access the target logical unit based on the copy (steps S57 and S58).
- the AM table is stored in a nonvolatile storage device such as a flash memory. For this reason, there is no possibility that the AM tables in the host servers 12a, 12b, and 12c are destroyed due to power-off of the host servers 12a, 12b, and 12c or reboot of the host servers 12a, 12b, and 12c.
- the AM table may be stored in a volatile storage device such as a RAM. In this case, there is a possibility that the AM table is destroyed by the above-mentioned power shutdown or reboot.
- the storage apparatuses 11a and 11b receive an access command from the host server 12a, 12b or 12c, the storage apparatuses 11a and 11b confirm whether the revision notified by the access command is the latest. For this reason, there is no possibility that the storage apparatuses 11a and 11b access an incorrect address.
- step S57 the host server 12a proceeds to step S58 and issues an access command again.
- the host server 12a may return to Step S53 and issue the access command again.
- the address management information between the host servers is applied even though a plurality of host servers apply a configuration in which each has a copy of the address management information held in the management server. Can be made unnecessary.
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
図1は、1つの実施形態に係る共有ストレージシステムの典型的な構成を示すブロック図である。図1に示される共有ストレージシステムは、複数のストレージ装置(例えば、2つのストレージ装置11a及び11b)と、複数のホストサーバ(例えば、3つのホストサーバ12a,12b及び12c)と、管理サーバ13とを備えている。このように本実施形態では、共有ストレージシステムは、2つのストレージ装置11a及び11bを備えている。しかし、共有ストレージシステムが、2つを超えるストレージ装置を備えていても良い。また本実施形態では、共有ストレージシステムは、3つのホストサーバ12a,12b及び12cを備えている。しかし、共有ストレージシステムが、2つのストレージ装置または3つを超えるストレージ装置を備えていても良い。
図11の例では、AMテーブル124a_LU0及び124a_LU1のリビジョン番号は、それぞれ01及び01である。また、ストレージ装置11aに保持されているUMテーブル110aの示す、論理ユニット番号LU0及びLU1に対応付けられたリビジョン番号(つまり、AMテーブル134_LU0及び134_LU1のリビジョン番号)は、それぞれ01及び02である。したがって図11の例では、AMテーブル124a_LU0のリビジョン番号はAMテーブル134_LU0のリビジョン番号に一致するものの、AMテーブル124a_LU1のリビジョン番号はAMテーブル134_LU1のリビジョン番号に一致しない。
Claims (9)
- 複数のホストサーバと、
前記複数のホストサーバによって共有される複数のストレージ装置と、
前記複数のストレージ装置の少なくとも一部の記憶領域が割り当てられる複数の論理ユニットを前記複数のホストサーバに提供する管理サーバと、
前記複数のホストサーバ、前記複数のストレージ装置及び前記管理サーバを接続するスイッチと
を具備し、
前記管理サーバは、前記複数の論理ユニット毎に、前記複数の論理ユニットの各々の仮想アドレスと、当該仮想アドレスに割り当てられるストレージ装置の実アドレスと、当該ストレージ装置を示すストレージ識別子との対応を、第1のアドレス管理情報を用いて管理し、且つ前記第1のアドレス管理情報のリビジョンを第1のリビジョンデータを用いて管理し、
前記複数のホストサーバの各々は、前記論理ユニットに対応する前記第1のアドレス管理情報及び前記第1のリビジョンデータそれぞれのコピーである第2のアドレス管理情報及び第2のリビジョンデータを保持し、第1の論理ユニットの第1の仮想アドレスにアクセスする場合、前記第1の論理ユニットに対応する前記第2のアドレス管理情報から前記第1の仮想アドレスに対応付けられた第1の実アドレス及び第1のストレージ識別子を取得して、前記第1の論理ユニットを示す第1の論理ユニット識別子、前記第1の実アドレス、及び前記第1の論理ユニットに対応する前記第2のリビジョンデータを用いて、前記第1のストレージ識別子で示されるストレージ装置にアクセスを要求し、
前記複数のストレージ装置の各々は、前記第1のアドレス管理情報の更新に応じて前記管理サーバによって通知される前記第1のアドレス管理情報のリビジョンを示す第3のリビジョンデータを含む更新管理情報を保持し、前記複数のホストサーバの1つである第1のホストサーバから、前記第1の論理ユニット識別子、前記第1の実アドレス、及び前記第2のリビジョンデータを用いてアクセスが要求された場合、少なくとも、前記第2のリビジョンデータが前記第1の論理ユニットに対応する前記第3のリビジョンデータに一致していることを条件として、要求されたアクセスを前記第1の実アドレスに基づいて実行する
共有ストレージシステム。 - 前記第1のホストサーバは、前記第1の論理ユニットへのライトアクセスの要求が発生し、且つ当該ライトアクセスが、前記第1の論理ユニットに対応する前記第1のアドレス管理情報の更新を必要とする場合、前記更新の必要を前記管理サーバに通知し、
前記管理サーバは、前記第1のホストサーバによる前記更新の必要の通知に基づいて、前記第1の論理ユニットに対応する前記第1のアドレス管理情報及び前記第1のリビジョンデータを更新し、且つ前記第1の論理ユニットに対応する前記第1のアドレス管理情報の更新を、少なくとも、前記第1の論理ユニットに割り当てられる記憶領域を有するストレージ装置に通知し、
前記管理サーバによって前記更新が通知されたストレージ装置は、当該更新の通知に基づいて、前記更新管理情報に含まれていて、且つ前記第1の論理ユニットに対応する前記第1のアドレス管理情報のリビジョンを示す前記第3のリビジョンデータを更新し、
前記管理サーバは、前記更新の必要を通知した前記第1のホストサーバに、前記更新された第1のアドレス管理情報及び第1のリビジョンデータそれぞれのコピーを送信し、
前記第1のホストサーバは、前記第1のホストサーバが保持している前記第2のアドレス管理情報及び第2のリビジョンデータを、前記送信されたコピーに基づいて更新する
請求項1記載の共有ストレージシステム。 - 前記複数のストレージ装置の1つである第1のストレージ装置は、前記第2のリビジョンデータが前記第1の論理ユニットに対応する前記第3のリビジョンデータに一致していない場合、前記第1のホストサーバにリビジョン不一致を示すエラーステータスを返し、
前記第1のホストサーバは、前記エラーステータスに応じて、前記管理サーバから、前記第1の論理ユニットに対応する前記第1のアドレス管理情報及び前記第1のリビジョンデータそれぞれのコピーを取得して、前記第1のホストサーバが保持している前記第2のアドレス管理情報及び第2のリビジョンデータを当該コピーに基づいて更新する
請求項2記載の共有ストレージシステム。 - 前記第1のホストサーバは、前記管理サーバに障害が発生している場合、前記複数のホストサーバの1つであって、且つ前記第1の論理ユニットに対応する最新の第2のアドレス管理情報を保持している第2のホストサーバから、当該最新の第2のアドレス管理情報及び当該最新の第2のアドレス管理情報のリビジョンを示す第2のリビジョンデータのコピーを取得して、前記第1のホストサーバが保持している前記第2のアドレス管理情報及び第2のリビジョンデータを当該コピーに基づいて更新する
請求項3記載の共有ストレージシステム。 - 前記管理サーバは、前記第1の論理ユニットに対応する前記第1のアドレス管理情報の更新を通知する場合、前記更新の必要を通知した前記第1のホストサーバを示す第1のホストサーバ識別子も通知し、
前記複数のストレージ装置の各々に保持される前記更新管理情報は、前記複数のストレージ装置の各々の記憶領域が割り当てられた論理ユニットに対応付けられたホストサーバ識別子であって、前記対応する第1のアドレス管理情報の更新を通知したホストサーバを示すホストサーバ識別子を更に含み、
前記更新が通知されたストレージ装置は、当該更新の通知に基づいて、前記更新管理情報に含まれていて、且つ前記第1の論理ユニットに対応するホストサーバ識別子も更新し、
前記第1のストレージ装置は、前記第1の論理ユニットに対応する最新の第2のアドレス管理情報を保持している第2のホストサーバを前記更新管理情報に基づいて前記第1のホストサーバに通知する
請求項4記載の共有ストレージシステム。 - 前記第1のホストサーバは、前記管理サーバに障害が発生している状態で前記第1のストレージ装置から前記リビジョン不一致を示すエラーステータスを受け取った場合、前記第1の論理ユニットに対応する最新の第2のアドレス管理情報を保持しているホストサーバを前記第1のストレージ装置に問い合わせ、
前記第1のストレージ装置は、前記第1のホストサーバからの前記問い合わせに応じて、前記第2のホストサーバを前記第1のホストサーバに通知する
請求項5記載の共有ストレージシステム。 - 前記第1のストレージ装置は、前記リビジョン不一致を示すエラーステータスを用いて、前記第2のホストサーバを前記第1のホストサーバに通知する請求項5記載の共有ストレージシステム。
- 前記第1のホストサーバは、前記第2のアドレス管理情報及び第2のリビジョンデータを更新した場合、前記更新された第2のアドレス管理情報及び第2のリビジョンデータに基づいて前記第1のストレージ装置に再びアクセスを要求する請求項3記載の共有ストレージシステム。
- 複数のホストサーバと、前記複数のホストサーバによって共有される複数のストレージ装置と、前記複数のストレージ装置の少なくとも一部の記憶領域が割り当てられる複数の論理ユニットを前記複数のホストサーバに提供する管理サーバと、前記複数のホストサーバ、前記複数のストレージ装置及び前記管理サーバを接続するスイッチとを具備し、前記管理サーバは、前記複数の論理ユニット毎に、前記複数の論理ユニットの各々の仮想アドレスと、当該仮想アドレスに割り当てられるストレージ装置の実アドレスと、当該ストレージ装置を示すストレージ識別子との対応を、第1のアドレス管理情報を用いて管理し、且つ前記第1のアドレス管理情報のリビジョンを第1のリビジョンデータを用いて管理し、前記複数のホストサーバの各々は、前記論理ユニットに対応する前記第1のアドレス管理情報及び前記第1のリビジョンデータそれぞれのコピーである第2のアドレス管理情報及び第2のリビジョンデータを保持し、前記複数のストレージ装置の各々は、前記第1のアドレス管理情報の更新に応じて前記管理サーバによって通知される前記第1のアドレス管理情報のリビジョンを示す第3のリビジョンデータを含む更新管理情報を保持する共有ストレージシステムにおいて、ストレージ装置へのアクセスを制御する方法であって、
前記複数のホストサーバの1つである第1のホストサーバから第1の論理ユニットの第1の仮想アドレスにアクセスする場合、前記第1の仮想アドレスに対応付けられた第1の実アドレス及び第1のストレージ識別子を、前記第1の論理ユニットに対応する前記第2のアドレス管理情報から前記第1のホストサーバによって取得し、
前記第1の論理ユニットを示す第1の論理ユニット識別子、前記第1の実アドレス、及び前記第1の論理ユニットに対応する前記第2のリビジョンデータを用いて、前記第1のストレージ識別子で示され、且つ前記複数のストレージ装置の1つである第1のストレージ装置に前記第1のホストサーバからアクセスを要求し、
前記第1のホストサーバから前記第1のストレージ装置に、前記第1の論理ユニット識別子、前記第1の実アドレス、及び前記第2のリビジョンデータを用いてアクセスが要求された場合、少なくとも、前記第2のリビジョンデータが前記第1の論理ユニットに対応する前記第3のリビジョンデータに一致していることを条件として、要求されたアクセスを前記第1の実アドレスに基づいて前記第1のストレージ装置によって実行する
ストレージ装置へのアクセスを制御する方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014543654A JP5747133B1 (ja) | 2014-06-11 | 2014-06-11 | 共有ストレージシステム、及びストレージ装置へのアクセスを制御する方法 |
CN201480001251.XA CN105393207B (zh) | 2014-06-11 | 2014-06-11 | 共享贮存***、以及控制向贮存装置的访问的方法 |
PCT/JP2014/065471 WO2015189936A1 (ja) | 2014-06-11 | 2014-06-11 | 共有ストレージシステム、及びストレージ装置へのアクセスを制御する方法 |
US14/608,247 US9684577B2 (en) | 2014-06-11 | 2015-01-29 | Shared storage system and method for controlling access to storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/065471 WO2015189936A1 (ja) | 2014-06-11 | 2014-06-11 | 共有ストレージシステム、及びストレージ装置へのアクセスを制御する方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/608,247 Continuation US9684577B2 (en) | 2014-06-11 | 2015-01-29 | Shared storage system and method for controlling access to storage device |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015189936A1 true WO2015189936A1 (ja) | 2015-12-17 |
Family
ID=53537885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2014/065471 WO2015189936A1 (ja) | 2014-06-11 | 2014-06-11 | 共有ストレージシステム、及びストレージ装置へのアクセスを制御する方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9684577B2 (ja) |
JP (1) | JP5747133B1 (ja) |
CN (1) | CN105393207B (ja) |
WO (1) | WO2015189936A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6641813B2 (ja) * | 2015-09-11 | 2020-02-05 | 富士通株式会社 | 制御装置、情報処理システム、及び制御プログラム |
US11063882B2 (en) * | 2019-08-07 | 2021-07-13 | International Business Machines Corporation | Resource allocation for data integration |
US11734223B2 (en) * | 2020-09-17 | 2023-08-22 | Dell Products L.P. | NVMe-over-fabrics gateway system |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010231690A (ja) * | 2009-03-30 | 2010-10-14 | Nec Corp | ストレージシステム |
JP2011197945A (ja) * | 2010-03-18 | 2011-10-06 | Toshiba Corp | コントローラ、データ記憶装置、及びプログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1153235A (ja) * | 1997-08-08 | 1999-02-26 | Toshiba Corp | ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム |
US20030131253A1 (en) * | 2001-12-28 | 2003-07-10 | Martin Marcia Reid | Data management appliance |
US8949395B2 (en) * | 2004-06-01 | 2015-02-03 | Inmage Systems, Inc. | Systems and methods of event driven recovery management |
JP2010233190A (ja) | 2009-03-30 | 2010-10-14 | Nec Corp | ビデオサーバシステム及びビデオサーバ |
JP2014071712A (ja) * | 2012-09-28 | 2014-04-21 | Toshiba Corp | 情報処理装置、キャッシュコントローラ、およびキャッシュ制御方法 |
-
2014
- 2014-06-11 JP JP2014543654A patent/JP5747133B1/ja active Active
- 2014-06-11 WO PCT/JP2014/065471 patent/WO2015189936A1/ja active Application Filing
- 2014-06-11 CN CN201480001251.XA patent/CN105393207B/zh active Active
-
2015
- 2015-01-29 US US14/608,247 patent/US9684577B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010231690A (ja) * | 2009-03-30 | 2010-10-14 | Nec Corp | ストレージシステム |
JP2011197945A (ja) * | 2010-03-18 | 2011-10-06 | Toshiba Corp | コントローラ、データ記憶装置、及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20150363284A1 (en) | 2015-12-17 |
JPWO2015189936A1 (ja) | 2017-04-20 |
CN105393207A (zh) | 2016-03-09 |
CN105393207B (zh) | 2018-06-12 |
JP5747133B1 (ja) | 2015-07-08 |
US9684577B2 (en) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11372710B2 (en) | Preemptive relocation of failing data | |
US11132256B2 (en) | RAID storage system with logical data group rebuild | |
US9329957B2 (en) | Method for managing storage system using flash memory, and computer | |
US7480780B2 (en) | Highly available external storage system | |
US9384065B2 (en) | Memory array with atomic test and set | |
US8621603B2 (en) | Methods and structure for managing visibility of devices in a clustered storage system | |
CN110998562B (zh) | 在分布式集群***中隔开节点 | |
US9547446B2 (en) | Fine-grained control of data placement | |
US20150134708A1 (en) | Updating map structures in an object storage system | |
US10031682B1 (en) | Methods for improved data store migrations and devices thereof | |
US11137918B1 (en) | Administration of control information in a storage system | |
JP5747133B1 (ja) | 共有ストレージシステム、及びストレージ装置へのアクセスを制御する方法 | |
US20200210099A1 (en) | Storage system | |
US20140156815A1 (en) | Storage system and method for managing configuration information thereof | |
US9747032B2 (en) | System and method for location-based device naming | |
JP6005446B2 (ja) | ストレージシステム、仮想化制御装置、情報処理装置、および、ストレージシステムの制御方法 | |
US20150135004A1 (en) | Data allocation method and information processing system | |
US11474730B1 (en) | Storage system and migration method of storage system | |
US11188425B1 (en) | Snapshot metadata deduplication | |
JP2017058736A (ja) | ストレージシステム、ストレージ制御装置およびアクセス制御方法 | |
JP6555029B2 (ja) | ストレージシステム、ストレージ装置および通信方法 | |
US11340795B2 (en) | Snapshot metadata management | |
US8291404B1 (en) | Updating system status | |
JP2005301560A (ja) | クラスタファイルサーバ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 201480001251.X Country of ref document: CN |
|
ENP | Entry into the national phase |
Ref document number: 2014543654 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14894578 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: 14894578 Country of ref document: EP Kind code of ref document: A1 |