The present application claims priority from Japanese application JP2004-129703 filed on Apr. 26, 2004, the content of which is hereby incorporated by reference into this application.
This invention relates to a path reserve management apparatus that will be suitable for an information processing system including one or a plurality of host apparatuses and a storage subsystem connected to the host apparatuses either directly or through a network.
An information processing system including one or a plurality of host apparatuses (hereinafter called “host computers” or merely “hosts”, too) and a storage subsystem connected to the hosts either directly or through a network such as a storage area network (SAN) has the storage subsystem including one or a plurality of storage units and a storage controller for controlling the storage units. A storage unit is called “volume”, too, and is typically one or a plurality of disk devices. The storage controller executes control for permitting a command such as an I/O command from the host to access the storage units constituting the storage subsystem. The storage controller has one or a plurality of input/output ports. One or a plurality of hosts are connected to one port to process the command.
A main frame has a reserve mechanism such that while a certain host executes an I/O processing such as a series of read/write operations (Read/Write, reference/updating) to a specific volume, the certain host executing the I/O processing keeps the access right to this volume lest an I/O request, that is, the access (reference/updating, etc) is made to this volume from other hosts.
This reserve is executed when a command for instructing reserve to this volume is generated and path management is made so that when the I/O request is made from physical paths (hereinafter merely called “paths”, too) other than the physical path making reserve for the reserved volume, a Busy state is reported to the paths making the access and the I/O request is rejected.
Incidentally, as for an ordinary protection technology against an illegal I/O request, JP-A-2003-059180 describes a read/write apparatus for preventing illegal utilization of data by judging whether or not a storage subsystem can be utilized on the basis of a device ID written into storage unit (hard disk drive). JP-A-2001-184248 discloses a data access management apparatus that immediately restores an overall system when a file management system undergoes system-down by causing a spare system to operate a new file management system by means of access control information representing write right to a storage subsystem generated from the file management system.
A concept “path group” for managing a plurality of physical paths as one group exists in the main frame. The path group divides subordinate physical paths (maximum 8) into groups in each volume unit for each host and manages the volumes. To manage the volumes, the host allocates ID to each path group and the storage controller that controls the volumes recognizes the paths having the same ID as the same group. The formation of such path groups is made by a command code “X′AF′” (refer to published manual “ESCON I/O Interface” of IBM, US).
However, the concept of such path groups does not exist in an open system to which the invention is directed. In the open system, therefore, it is not possible to judge from the storage subsystem side whether or not to release reserve from other paths and to avoid compulsive release of the reserve state by a third party by generating a “Target Reset” command from ports other than that of the reserve path.
The functions on the host side include the function that automatically releases the reserve state from another normal physical path belonging to the host when the host detects a path failure. In this case, it is not clear to the storage subsystem side whether this release instruction is reasonable. Therefore, when the reserve release instruction is generated from other physical path, the reserve that should not originally be released is released from other path.
It is therefore an object of the invention to provide a path reserve management apparatus that permits simultaneous access from a plurality of physical paths to the same volume in an open system.
It is another object of the invention to provide a path reserve management apparatus that prevents illegal reserve release by inhibiting reserve release from paths other than a path group in an open system and improves security.
To accomplish the objects described above, the invention divides a plurality of physical paths into groups on the side of a storage subsystem in an open system and manages the path groups. The storage subsystem includes storage unit and a storage controller. When a reserve command of a volume is made to one physical path that is grouped, the storage controller manages a plurality of grouped paths as a whole as a reserved state. When a reserve release command is given from paths other than the grouped physical paths, this reserve release command is rejected.
The invention makes it possible to divide physical paths into groups and to manage the groups on the side of a storage subsystem in an open system. In other words, because information representing which physical paths are to be grouped is given in advance to the storage subsystem, a third party cannot illegally release a reserve state from other paths even when attempting to do so and security can be improved.
In the invention, information of physical paths from main and sub systems is set in advance as a group to a storage subsystem for a host of other site (sub-side system) that backs up a certain site (main-side system) at the time of a system failure of the certain site. Therefore, even when the main-side system undergoes system-down and a reserve state is left remaining, it is possible to restore the system by using the paths from the grouped sub-side system and to consecutively operate the overall system.
Other objects, features and advantages of the invention will become apparent from the following description of the embodiments of the invention taken in conjunction with the accompanying drawings.
Embodiments of the invention will be hereinafter explained in detail with reference to the accompanying drawings. In the explanation that follows, the invention will be explained sometimes with the problems of existing systems.
On the other hand, the storage subsystem SS includes storage unit (volume) VL and a storage controller for controlling this volume VL. The volume VL has one or a plurality of drives DR (DR1, DR2, . . . , DRn). Though the drive DR will be hereby explained as a hard disk drive, other storage unit may of course be used, too.
The storage controller SCS includes a protocol controller PCCS, a command controller CMC, a drive controller DVC, a cache memory CCM, a control memory MRC and a communication controller CC. The protocol controller PCCS controls a protocol with the protocol controller PCCH of the HOST when data transfer is executed between the protocol controller PCCS and the HOST. The command controller CMC analyzes a command for executing the input/output command received from the HOST, transfers the data between the cache memory CCM and the HOST, judges whether or not intended data exists on the cache memory CCM, and gives a read-out command of the intended data from the drive of the volume VL in the case of a cache-miss (absence of data). Incidentally, a personal computer PC as data input means for inputting data from outside is connected to the storage controller SCS through an LAN, or the like.
The drive controller DVC writes the data on the cache memory CCM to the drive and reads out the data from the drive to the cache memory in accordance with the command from the command controller CMC. The cache memory is a memory used for temporarily buffering the write data from the HOST or storing the data read out from the drive and improving a hit ratio (read-hit ratio).
The control memory MRC is a memory for storing a table of various kinds of control information necessary for the command controller CMC and the drive controller DVC to input and output the data. The control memory MRC further stores various kinds of information to be managed in the storage controller SCS, too. Information for grouping the physical paths of the invention to be later described is stored in this control memory MRC.
The communication controller CC controls communications with the personal computer connected to the storage controller SCS. The data input means is not limited to the personal computer PC, and an operation portion and a display portion may be provided to a part of the storage controller SCS, too.
Next, path reserve management in an open system will be explained.
As shown in
When HOST B accesses at this time to the specific volume VL for the I/O request from the host bus adaptor (port) HBA through a path other than the path PS reserved such as a path PSn through a port PTn of the storage controller SCS, a busy (Busy) state is reported to this other pass PSn and the I/O request is rejected. The concept of reserve is common between the main frame and the open system but the range of the paths as the reserve object may be different depending on the path management system as will be later described.
The path management in the main frame has the concept of “path group” for managing a plurality of physical paths as one group as already described. In this management, the host assigns an ID to each path group and the storage controller for controlling the volume VL recognizes the paths having the same ID as the same group.
The outline of the formation procedure of the path group is as follows. Referring to
(1) A link is established from HOST A to the volumes through the ports PT1, PT2, PT3 and PT4 of the storage controller SCS, and (2) logical paths PS#1, PS#2, PS#3 and PS#4 are formed. On the other hand, a link is established to the volumes from HOST B through the ports PT5 and PT6 of the storage controller SCS and logical paths PS#5 and PS#6 are formed.
(3) HOST A and HOST B generate command “SET PATH GROUP ID” for forming the respective path groups. The ID of the host received by this command is stored in the storage controller SCS. (4) The storage controller SCS manages the paths (PS#1, PS#2, PS#3, PS#4) having the same ID as the same path group PG:ID#A and the paths having the same ID (PS#5, PS#6) as the other same path group PG:ID#B different from the former. Such a concept of path groups does not exist in the open system.
Next, path reserve in the main frame will be explained.
Incidentally, the term “physical path unit” given above is strictly the logical path unit for reserve in the main frame. The path group is formed by grouping the logical paths. When two I/O paths exist from each of three hosts and the storage controller as the object of reserve has two physical paths, six paths in total exist between the three hosts and the storage subsystem. The “path group” can be formed by grouping two logical path units from each host.
Next, reserve in the open system will be explained.
When this reserve is released, a release command is generated from the initiator port of the host to the port of the storage controller SCS. The storage controller SCS releases the reserve state and returns the status of the reserve release to the host of the open system. Incidentally, the status information is written to the table TB of the storage controller. This table TB is provided to the control memory MRC explained with reference to
When any failure occurs in the path reserved (the physical path from the port HBA6 in the case of
The following two methods are available to release this reserve state. (a) The first operates a reset processing of the volume reserved on the side of the storage subsystem. (b) The other method generates a “target reset” command from the ports other than the reserve path. The reserve state can be forcedly released by any of these methods.
The existing open system does not have means for judging whether or not the reserve may be released from other path on the side of the storage subsystem. Therefore, when a third party intentionally generates the command of (b) described above, reserve that should not originally be released may be released from other paths and this renders the security problem.
The open system does not have the concept of the path group as described above. Therefore, conventionally, when a certain volume is reserved from a certain physical path, access to this volume from other physical paths is not possible. However, because the concept “Persistent Reserve” is introduced into the SCSI protocol, reserve for the same volume from a plurality of physical paths becomes possible. Consequently, simultaneous access for the same volume from a plurality of physical paths becomes possible. The outline of this reserve processing will be explained next.
Next, (3) the reserve command equipped with KEY information registered in the physical unit is generated (Persistent Reserve Out (Reserve Command)). When the KEY information inside the reserve command received on the storage subsystem side is coincident with the KEY information registered in (1), the reserve command is accepted and the volume is brought into the reserve state for this physical path. (4) When the reserve command having the KEY information different from the KY information registered in (1) is received, this command is rejected and the reserve processing is not executed, either. In the case of
When any path failure occurs under the state where a specific volume is reserved from the path subjected to KEY registration by the processing described above, this volume remains reserved and access to this volume from other paths cannot be made in some cases. The SCSI command protocol stipulates means for compulsively releasing the reserve state of the path having the failure from other physical paths in order to release the reserve state and to compulsively release the reserve state of the path having the failure from other physical paths.
(2) Reserve command (KEY#1) is given in the path #1. (3) Failure occurs in the path #1 and remaining reserve of the volume VL occurs. (4) It is possible to designate in the path #2 so that the path of KEY#2 takes the reserve state of KEY#1 of the path #1. As one of the functions of hosts, some hosts automatically release the reserve state from another normal physical path under control of the hosts upon detecting the path failure.
In the case described above, it is not clear on the storage subsystem side to know whether or not the reserve release command is reasonable. Therefore, if a third party intentionally gives the reserve release command from other physical path, the reserve that should not be released originally can be illegally released in the same way as in the cases shown in
Referring to
When reserve is executed by the “Persistent Reserve” system, means for releasing this reserve from other paths (Persistent Reserve OUT (reserve release command)) is available but the storage subsystem side does not have means for checking whether or not the generation of this command is reasonable.
Referring to
(c) “Persistent Reserve OUT (Reserve at KEY#1)” is designated on the path PS#1 from HOST A. The storage controller SCS recognizes that reserve is made from the entire path group PG#1 inclusive of this path PS#1.
(d) HOST B generates “Persistent Reserve OUT (release designation)” command at KEY#1 to illegally release the reserve state through the path PS#1 of HOST A. (e) However, because this path PS#1 does not belong to the path group managed by the storage controller SCS, the reserve release request is rejected.
As described above, which physical paths are to be grouped is instructed in advance to the storage controller CS. Therefore, even when the third party intentionally attempts to release the reserve state from other paths, the reserve release from the paths other than those of the group is not permitted and the illegal reserve release is inhibited. Security can be thus improved.
The system exchange processing at the time of the system failure will be explained in the sequence of reference symbols designated in
(c) As a failure occurs in HOST α, (d) it is switched to HOST β. Reserve of the volume VL remains as such. (e) Because the path PS#2 of HOST βbelongs to the same group as the path PS#1 of HOST α, execution of I/O from HOST β is possible while the reserve state remains as such. Therefore, it is not necessary to release this reserve intentionally set in (b) from HOST β.
The personal computer PC for inputting information and data from outside the system is connected through the LAN to the storage controller SCS, HOST A and HOST B that together constitute the storage subsystem SS. It is possible from this personal computer PC to input which physical paths are to be handled as the group. The information inputted from the personal computer PC is transmitted to not only the storage controller SCS but also HOST A and HOST B and the information transmission to the storage controller SCS and each host is updated. The personal computer PC establishes synchronization so that the information becomes effective for the first time.
Incidentally, it is not essentially necessary to connect the personal computer PC to HOST A and HOST B of the open system through the LAN. As will be described later, the storage controller SCS, HOST A and HOST B may well recognize one other by using “Mode Sense Command”.
Table 1 tabulates path group setting information inputted from the personal computer PC. As tabulated in Table 1, the path group may be directly designated or the storage controller may automatically form the physical path group by inputting the function level as will be later described.
In Table 1, the group number 1 represents the path group PG#1 constituted by the physical paths PS#1 to PS#3 shown in
The storage controller SCS manages the physical paths as tabulated in Table 2 and further manages the physical paths as the path group shown in Table 3 in accordance with the inputted path group information.
In Table 2, the path number corresponds to the physical paths PS#1 to PS#5 shown in
In Table 3, the group # corresponds to the paths groups PG#1 and PG#2 shown in
When the reserve command is given under this state from the physical path PS#1 to the volume VL (more specifically, a specific logic unit constituting the volume VL) from the physical path PS#1, the path PS#1 reserves the volume VL and reserve of this volume by the path PS#1 is recorded to Table 4. The path PS#1 belongs to the path group PG#1 as tabulated in Table 3 and reserve of this volume VL by the path group is recorded, too.
When the I/O request is thereafter generated for the volume VL from HOST B through the path PS#2, the state in which the volume VL is reserved is recognized. However, because the system is under the group reserve state, Table 3 is looked up to examine whether or not this path PS#2 belongs to the same group as the path PS#1 that reserves the volume VL. Because the path PS#1 and the path PS#2 are found belonging to the same group as a result of this reference, the I/O request from the path PS#2 for the volume VL is accepted and executed. When the path PS#2 is not found belonging to the same group as a result of the reference, the I/O request from the path PS#2 is not accepted and Busy is given in response.
Here, the method of giving grouping information will be explained in supplementation. The combination of the paths to be grouped may be given concretely as shown in Table 1. Alternatively, the storage subsystem may individually conduct by itself grouping by reporting the function level. This function level will be hereinafter explained.
The manufacturer code of the host and its production number may use “World Wide Name”. Table 5 shows a table in which the manufacturer code and the production number are added to Table 2.
When the personal computer externally connected to the storage controller of the storage subsystem is similarly connected to the host as in the construction shown in
Next, addition or deletion of the paths to or from the existing group will be explained. The number of the existing path group and the physical path to be added are designated from the personal computer externally connected to the storage controller and the command “Addition” is given. In this way, new physical paths can be added to the existing path group. Receiving this “Addition” command, the storage controller adds the path designated to the path group table of Table 3.
Similarly, only the designated physical path can be excluded from the group by designating the number of the existing path group and the physical path to be deleted. It is further possible to give instruction for releasing grouping itself. Such information is likewise reported to the host and the host side updates the same path group management table.
Next, the detail of the processing procedure explained so far will be explained with reference to a flowchart.
[Processing Procedure of Storage Controller]
After the input information is acquired, “whether or not the inputted physical paths have already been registered” is checked (P-3). When they have been registered, the message reading “already grouped to physical path group” is displayed on the screen of the personal computer externally connected (P-5) and the processing is terminated (END). When they have not yet been grouped, “whether or not the inputted path group has already existed” is checked (P-6) and when the path group does not exist, “the path group is registered afresh to the path group management table” (P-7). When the inputted path group has already existed, “the physical paths are additionally registered to the path group” (P-8) and the processing is terminated.
When the result of the step (P-12) represents that the physical path has not been grouped, “single path is now reserved for the volume VL” is set to DEV# of the reserve management table (P-13) and the I/O processing is thereafter executed consecutively (P-15). When the result of the step (P-12) represents that the physical path has already been grouped, on the other hand, “group is now reserved for the volume VL” is set to DEV# of the reserve management table (P-14) and the I/O processing is thereafter executed consecutively (P-15).
Whether or not the object volume VL is under single path reserve is checked when the object volume VL having the number looked up in (P-22) is under reserve (P-24). When the object volume VL is under single path reserve, whether or not the physical path receiving I/O is the same as the path under reserve is checked (P-25). When the physical path receiving I/O is the same as the path under reserve, the I/O processing is consecutively executed (P-26). When it is not the same, Busy is reported to the host and processing is terminated (P-27).
When the object volume VL is not under single path reserve in the step (P-24), whether or not the object volume VL is under group reserve is checked (P-28). When the object volume VL is under group reserve, whether or not the physical path receiving I/O is contained in the path group under group reserve (P-29) is checked (P-29). When the result of this check represents that the physical path is contained in the path group, the I/O processing is consecutively executed (P-30) and when not, Busy is reported to the host and the processing is terminated (P-31). When the object volume VL is not under group reserve in the step (P-28), an error is reported as a “logical contradiction” case (P-32).
When the object volume VL is not under single path reserve in the step (P-43), whether or not the object volume VL is under group reserve is checked (P-47) and when it is under group reserve, whether or not the release receiving physical path is contained in the path group is checked (P-48). When the release receiving physical path is contained in the path group under group reserve, reserve release is executed (P-49). When the release receiving physical path is not contained in the path group under group reserve, the error is reported and the processing is terminated (P-50). When the object volume VL is not judged as being under group reserve in the step (P-47), the error is reported and the processing is terminated (P-51).
When the function level is not judged as “1” in the step (P-62), whether or not the function level is “2” is judged (P-65). When the function level is “2”, whether or not all the physical paths have been looked up is judged (P-66) and when they have been looked up, the processing is terminated (END). When they have not yet been looked up, the manufacturer code and the production number of the physical path management table (Table 5) are looked up and the physical paths from the same host are registered as the same path group to the path group management table (Table 3) (P-67). This processing is repeated until all the physical paths are looked up.
[Processing Procedure on Host Computer Side]
When this processing is started, the group information of the physical path is first acquired through the personal computer externally connected to the storage controller (P-71). Next, whether this physical path reserve is necessary is checked (P-72). When the reserve is not necessary, the processing is terminated (END). When it is found necessary, the reserve command is generated for the object volume (P-73). Next, existence/absence of physical path group is checked (P-74) and when it does not, only the physical path is reserved (P-75). When physical path grouping is judged as existing, reserve is made in the path group unit (P-75) and the processing is terminated (END).
It should be further understood by those skilled in the art that although the foregoing description has been made on embodiments of the invention, the invention is not limited thereto and various changes and modifications may be made without departing from the spirit of the invention and the scope of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
2004-129703 | Apr 2004 | JP | national |