This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2009-132488, filed on Jun. 1, 2009, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are directed to a relay device and a relay program.
In recent years, storage virtualization systems in which memory areas are flexibly allocated by virtualizing storage have been introduced. Various methods are used for the storage virtualization. For example, a method in which configuration information and paths related to virtually allocated memory areas are set in relay devices that are arranged between a host computer and a physical storage device has been disclosed.
The storage virtualization system is sometimes configured in a redundant manner by aiming at load distribution or high reliability. For example, as illustrated in
Furthermore, recently, storage devices may have, in some cases, redundant paths. As illustrated in
In such a case, the storage device performs, for example, as illustrated in
Such conventional technologies are disclosed in for example Japanese Laid-open Patent Publications No. 2008-112399 and No. 2005-242982.
However, with the conventional technology, frequent switching of the paths occurs in the storage device, whereby there is a problem of reduction in the performance of the storage virtualization system. Specifically, for example, as illustrated in
Furthermore, the above described problem is not limited to the multipath control performed by the host computer. For example, as illustrated in
According to an aspect of an embodiment of the invention, a relay device is connected between a host computer and a storage device, and is configured to allocate, using a real memory area included in the storage device, a virtual memory area to the host computer, and to process an access request to the virtual memory area. The relay device includes a port connected to a communication channel for transferring and receiving an access request to and from another relay device; a first virtual area section set as a virtual memory area for receiving an access request from the host computer; a second virtual area section connected to the communication channel via the port and set as a virtual memory area for receiving an access request transferred from the another relay device; and a control unit that sends, if a channel to the storage device is in operation, the access request that is sent to the first virtual area section and the access request that is transferred to the second virtual area section, to the storage device via the channel, the control unit transferring, if the channel is not in operation, the access request that is sent to the first virtual area section, to the another relay device via the communication channel that is connected to the port.
The object and advantages of the embodiment will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the embodiment, as claimed.
Preferred embodiments of the present invention will be explained with reference to accompanying drawings.
The present invention is not limited to the embodiment described below.
First, a storage virtualization system according to a first embodiment will be described with reference to
As illustrated in
As illustrated in
Furthermore, as illustrated in
Furthermore, as illustrated in
For example, in the relay device illustrated on the left side of
In contrast, for example, in the relay device illustrated on the right side of
As described above, the storage virtualization system according to the first embodiment transfers, using the communication channels arranged between the relay devices, access requests, issued to the virtual area sections, that are distributed and sent to the relay devices and sends the access requests from the relay device whose channel is in operation to the storage device. Therefore, according to the first embodiment, it is possible to reduce the frequency of switching paths in the storage device, thus improving the performance of the storage virtualization system.
In the following, a storage virtualization system according to a second embodiment will be described. In the second embodiment, a storage virtualization system will be described that includes a “virtualization switch”, which is an example of a relay device, and also includes a host computer and a storage device.
First, the storage virtualization system according to the second embodiment will be described with reference to
As illustrated in
In the storage virtualization system according to the second embodiment, the storage device has redundant paths. Specifically, the storage device has a channel that is currently in operation and a channel that is not currently in operation, which are serving as channels accessing a real disk volume. In
In the storage virtualization system according to the second embodiment, the virtualization switches store therein configuration information and paths related to virtually allocated memory areas in a real disk volume in the storage device (hereinafter, “virtual volume”). The host computer implements an access to the real disk volume by accessing virtual volumes that are set in the virtualization switches.
Specifically, the host computer implements an access to the real disk volume by sending an access request to a “virtual target” that is set in a virtualization switch. For example, as illustrated in
With this configuration, the virtualization switches according to the second embodiment set virtual volumes and paths in a manner described below so as to reduce the frequency of switching paths in the storage device and improve the performance of the storage virtualization system.
Specifically, as illustrated in
The virtual volume 3 is a virtual volume corresponding to the virtual volume 2 that is set in the virtualization switch B, whereas the virtual volume 4 is a virtual volume corresponding to the virtual volume 1 that is set in the virtualization switch A.
Specifically, as illustrated in
As illustrated in
In other words, no matter whether the access requests from the host computer are sent to the virtual volume 1 or sent to the virtual volume 2, all of the access requests are sent to the virtualization switch A. Then, the virtualization switch A transfers all of the access requests to the storage device using the active path. As a result, no switching of the paths occurs in the storage device no matter in what way the multipath control is performed by the host computer.
In contrast, as illustrated in
In other words, no matter whether the access requests from the host computer are sent to the virtual volume 1 or sent to the virtual volume 2, all of the access requests are sent to the virtualization switch B. Then, the virtualization switch B transfers all of the access requests to the storage device using the active path. As a result, no switching of the paths occurs in the storage device no matter in what way the multipath control is performed by the host computer.
In this way, the virtualization switch A and the virtualization switch B set virtual volumes and paths in such a manner that access requests sent to the target virtual volume are transferred to the channel that is currently in operation without being affected by the multipath control performed by the host computer. Accordingly, it is possible to reduce the frequency of switching paths in the storage device, thus improving the performance of the storage virtualization system.
In the following, the configuration of the virtualization switch according to the second embodiment will be described with reference to
As illustrated in
The fiber channel connection ports 10 are interfaces for connecting the virtualization switch 100 to another device using fiber channels. Specifically, the fiber channel connection ports 10 are connected to another device via fiber channel cables (for example, coaxial cables and optical-fiber cables). For example, the fiber channel connection ports 10 are connected to the host computer, the other virtualization switch 100, or the storage device. In the second embodiment, a case in which the virtualization switch 100 has a total of 16 ports (10-1 to 10-16) for the fiber channel connection ports 10 is described as an example; however, the configuration is not limited thereto. The number of ports thereof can be arbitrarily changed according to the size of the virtualization switch 100.
The external connection ports 11 are interfaces for connecting the virtualization switch 100 to another device using an Ethernet (registered trademark). Specifically, the external connection ports 11 are connected to another device via Ethernet (registered trademark) cables. For example, the external connection ports 11 are connected to the other virtualization switch 100 or a management server that manages the virtualization switch 100. In the second embodiment, a case in which the virtualization switch 100 has a total of two ports (11-1 and 11-2) for the external connection ports 11 is described as an example; however, the configuration is not limited thereto. The number of ports thereof can be arbitrarily changed according to the size of the virtualization switch 100.
The control unit 20 has a central processing unit (CPU), a read only memory (ROM), a large scale integrated (LSI) circuit, and the like. Specifically, the control unit 20 implements functions of each unit described below by executing, in the CPU or using the LSI circuit, firmware programs stored in the ROM.
The access receiving unit 21 receives an access request sent from the host computer. Specifically, the access receiving unit 21 is connected to the fiber channel connection port 10 and the storage virtualization unit 23; receives, via the fiber channel connection port 10, an access request sent from the host computer; and transfers the received access request to the storage virtualization unit 23. For example, in the virtualization switch 100 illustrated in
Here, the virtualization switch 100 is assumed to be the virtualization switch A illustrated in
In contrast, the virtualization switch 100 is assumed to be the virtualization switch B illustrated in
The inter-switch access receiving unit 22 receives an access request that is sent from the other virtualization switch 100. Specifically, the inter-switch access receiving unit 22 is connected to the fiber channel connection port 10 and the storage virtualization unit 23; receives an access request sent from the other virtualization switch 100 via the fiber channel connection port 10; and transfers the received access request to the storage virtualization unit 23. For example, in the virtualization switch 100 illustrated in
Here, the virtualization switch 100 is assumed to be the virtualization switch A illustrated in
In contrast, the virtualization switch 100 is assumed to be the virtualization switch B illustrated in
The storage virtualization unit 23 stores therein configuration information on the virtual volumes configured in the virtualization switch 100. When the storage virtualization unit 23 receives an access request, the storage virtualization unit 23 accesses the real disk volume in the storage device by referring to the configuration information. Specifically, the storage virtualization unit 23 is connected to the access receiving unit 21, the inter-switch access receiving unit 22, and the inter-switch zoning unit 24. Furthermore, when the storage virtualization unit 23 receives an access request transferred from the access receiving unit 21 or from the inter-switch access receiving unit 22, the storage virtualization unit 23 refers to, using the received access request, the configuration information and accesses the real disk volume in accordance with the configuration information. After referring to the configuration information, the storage virtualization unit 23, in some cases, further forwards the access request to the inter-switch zoning unit 24.
Here, the virtualization switch 100 is assumed to be the virtualization switch A illustrated in
Furthermore, for example, if the channel is not currently in operation (passive path), the storage virtualization unit 23 obtains the inter-switch virtual target “WWN: C2” as connection port information. Then, the storage virtualization unit 23 further transfers the access request to the inter-switch zoning unit 24.
Furthermore, for example, when the storage virtualization unit 23 receives the access request from the inter-switch access receiving unit 22, the storage virtualization unit 23 obtains the port “WWN: S1” in the storage device as connection port information and further obtains an “area B” as area information. Then, the storage virtualization unit 23 accesses the storage device via the fiber channel connection port 10-9 to access the area B in the real disk volume, thus implementing an access to the “virtual volume 3”. Because the “virtual volume 3” is set as an external virtual volume corresponding to the “virtual volume 2”, the host computer eventually implements an access to “virtual volume 2”.
In contrast, the virtualization switch 100 is assumed to be the virtualization switch B illustrated in
Furthermore, for example, if the channel is not currently in operation (passive path), the storage virtualization unit 23 obtains the inter-switch virtual target “WWN: C1” as connection port information. Then, the storage virtualization unit 23 further transfers the access request to the inter-switch zoning unit 24.
Furthermore, for example, when the storage virtualization unit 23 receives the access request from the inter-switch access receiving unit 22, the storage virtualization unit 23 obtains the port “WWN: S2” in the storage device as connection port information and further obtains an “area A” as area information. Then, the storage virtualization unit 23 accesses the storage device via the fiber channel connection port 10-9 to access the area A in the real disk volume, thus implementing an access to the “virtual volume 4”. Because the “virtual volume 4” is set as an external virtual volume corresponding to the “virtual volume 1”, the host computer eventually implements an access to “virtual volume 1”.
The inter-switch zoning unit 24 transfers an access request to the external virtual volume configured in the other virtualization switch 100. Specifically, the inter-switch zoning unit 24 is connected to the storage virtualization unit 23 and the fiber channel connection port 10. When the inter-switch zoning unit 24 receives an access request transferred from the storage virtualization unit 23, the inter-switch zoning unit 24 converts the destination of the access request to an inter-switch virtual target connected to the external virtual volume and sends the access request to the fiber channel connection port 10.
Here, the virtualization switch 100 is assumed to be the virtualization switch A illustrated in
In contrast, the virtualization switch 100 is assumed to be the virtualization switch B illustrated in
The copying unit 25 copies data stored in the virtual volume in accordance with an instruction from the host computer.
In the following, the flow of a process of the virtualization switch according to the second embodiment will be described with reference to
As illustrated in
In contrast, if the storage virtualization unit 23 receives an access request (Yes at Step S101), the storage virtualization unit 23 then detects whether the channel between the virtualization switch 100 and the storage device is currently in operation (Step S102).
Thereafter, the storage virtualization unit 23 refers to, in accordance with the detection result obtained at Step S102, the configuration information (Step S103) and obtains the connection port information (Step S104). If the connection port information specifies a port connected to the storage device, the storage virtualization unit 23 obtains area information in addition to the connection port information.
Subsequently, the storage virtualization unit 23 accesses the real disk volume in accordance with the connection port information obtained at Step S104 or transfers the access request (Step S105).
Specifically, if the connection port information obtained at Step S104 specifies the port in the storage device, the storage virtualization unit 23 has already obtained the area information in addition to the connection port information. Accordingly, the storage virtualization unit 23 accesses the storage device via the fiber channel connection port 10 to access a predetermined area in the real disk volume specified by the area information, thus implementing an access to the virtual volume from the host computer. In contrast, if the connection port information obtained at Step S104 does not specify the port in the storage device but specifies the inter-switch virtual target, the storage virtualization unit 23 transfers the access request to the inter-switch zoning unit 24.
In the following, as illustrated in
In contrast, if the inter-switch zoning unit 24 receives the access request (Yes at Step S201), the inter-switch zoning unit 24 then converts the destination of the access request (Step S202). Specifically, a case in which the storage virtualization unit 23 transfers the access request to the inter-switch zoning unit 24 means a case in which an access request to the virtual volume configured in its own virtualization switch 100 needs to be transferred. as an access request to the external virtual volume configured in the other virtualization switch 100. Accordingly, the inter-switch zoning unit 24 converts the destination of the access request from the virtual volume in its own virtualization switch 100 to the external virtual volume in the other virtualization switch 100.
Then, the inter-switch zoning unit 24 transfers the access request (Step S203). Specifically, the inter-switch zoning unit 24 transfers the access request to the fiber channel connection port 10 connected to the other virtualization switch 100.
As described above, the virtualization switches according to the second embodiment are connected between the host computer and the storage device in a redundant manner and form the communication channels that transfer access requests between the virtualization switches. The virtualization switches each include a virtual volume that is set as a virtual memory area that directly receives an access request from the host computer and a virtual volume that is set as a virtual memory area that receives an access request transferred from the other virtualization switch. If the channel to the storage device is currently in operation, the virtualization switches perform a control in such a manner that the access request is sent to the storage device via the channel. If the channel is not currently in operation, the virtualization switches perform a control in such a manner that the access request is transferred to the other virtualization switch via the communication channel.
In this manner, the storage virtualization system according to the second embodiment transfers access requests, issued to the virtual volume, that are distributed and sent to the virtualization switches using the communication channels formed between the virtualization switches and sends them to the storage device from the virtualization switch whose channel is currently in operation. Accordingly, according to the second embodiment, it is possible to reduce the frequency of switching paths in the storage device, thus improving the performance of the storage virtualization system.
Specifically, in the conventional technology, for example, as illustrated in
However, with the storage virtualization system according to the second embodiment, even when access requests are randomly sent to the virtualization switch from the host computer, the virtualization switches always transfer the access requests to the virtualization switch whose channel is currently in operation. The access requests are sent to the storage device only from the virtualization switch whose channel is in operation. As a result, the storage device does not need to switch paths; therefore, no error reply occurs. Accordingly, it is possible to avoid a blocking state of the paths or a state in which the access requests themselves are recognized as errors.
Furthermore, the control is not limited to the multipath control performed by the host computer. For example, as illustrated in
Furthermore, for example, as illustrated in
However, with the storage virtualization system according to the second embodiment, even in such a case, the virtualization switches always transfer the access requests to the virtualization switch whose channel is in operation. Because the access requests are sent to the storage device only from the virtualization switch whose channel is currently in operation, the storage device does not need to switch paths. For example, if an access request issued to the memory area in the real disk volume 2 is sent to the virtualization switch 1, the virtualization switch 1 transfers the access request to the virtualization switch 2. The access request is sent to the storage device from the virtualization switch 2 via the active path. As a result, the storage device does not need to switch paths; therefore, no error reply occurs. Accordingly, it is possible to avoid a state in which the copying processing itself is recognized as an error or a state in which the access request themselves are recognized as errors.
The embodiments of the relay device and the relay program disclosed in the present invention have been described; however the embodiments are described only by way of an example. Various modifications and changes can be made in accordance with the knowledge of those skilled in the art.
For example, in the second embodiment described above, a method in which an operation status of the channel between its own virtualization switch and the storage device is detected each time the virtualization switch receives the access request; however, the embodiment is not limited thereto. For example, if a predetermined channel is determined, in advance, to be a current use channel, the virtualization switch usually simply controls access requests in accordance with the configuration information about the current use channel. At this time, the access request is suspended by the virtualization switch only after the failure that occurs in the current use channel is detected. Then, the virtualization switch switches the paths in accordance with the configuration information about a queued channel and resumes the access request. At this time, if information (e.g., failure detection information, etc.) needs to be exchanged between the virtualization switches, the information can be sent, for example, via an external connection port.
Furthermore, for example, if the channel to the storage device is currently in operation, the access request is controlled in such a manner that the access request is sent to the storage device via that channel. If the channel is not in operation, the control process for transferring the access request to the other virtualization switch via the communication channel can be performed by a virtualization switch as a relay program.
According to an aspect of a relay device and a relay program disclosed in the present invention, it is possible to reduce the frequency of switching paths in a storage device, thus improving the performance of a storage virtualization system.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2009-132488 | Jun 2009 | JP | national |