Non-disruptive data mobility using virtual storage area networks with split-path virtualization
First Claim
1. A method for providing non-disruptive data mobility in connection with a first storage device coupled to a storage area network and a second storage device coupled to the storage area network, the method comprising:
- blocking I/O operations for a first port of the first storage device coupled to the storage area network, wherein the first port is associated with a first identifier;
creating a first virtual storage area network and a second virtual storage area network within the storage area network;
coupling the first storage device to the second virtual storage area network via the first port of the first storage device having the first identifier;
coupling the second storage device to the second virtual storage area network via a first port of the second storage device having a second identifier different from the first identifier;
coupling a virtualization engine to the first virtual storage area network via a first port of the virtualization engine that is associated with the first identifier;
coupling the virtualization engine to the second virtual storage area network via a second port of the virtualization engine;
after creating the first virtual storage area network and the second virtual storage area network, unblocking the I/O operations for the first port of the first storage device; and
after unblocking the I/O operations for the first port of the first storage device, causing at least a portion of I/O operations received by the virtualization engine through the first port thereof to be routed through the second port thereof to both the first port of the first storage device and the first port of the second storage device via a plurality of data paths established in the second virtual storage area network, wherein the virtualization engine controls directing of the at least a portion of I/O operations via a first data transfer path in the second virtual storage area network to the first storage device and via a second data transfer path in the second virtual storage area network to the second storage device.
9 Assignments
0 Petitions
Accused Products
Abstract
A system creates a storage area network (SAN) centric storage virtualization layer in front of storage devices. The system allows data mobility and migration without disruption to the one or more host servers attached to the SAN. Specifically, the host servers are not disrupted when switching I/Os between physical and virtual storage, for example, by taking advantage of WWPN spoofing and Fibre Channel VSAN technology. The use of VSANs effectively allow multiple virtual directors and/or switches to be created within a physical director and/or switches, each with their own separate name server, thereby providing complete isolation from one another. The host-storage pathing information is unchanged as the original physical storage port'"'"'s WWPNs are spoofed by the virtual storage port. The result is two identical WWPNs within the SAN which is normally disallowed; however, by separating the physical port WWPN into one VSAN and the virtual port WWPN into another, the restriction may be circumvented.
92 Citations
25 Claims
-
1. A method for providing non-disruptive data mobility in connection with a first storage device coupled to a storage area network and a second storage device coupled to the storage area network, the method comprising:
-
blocking I/O operations for a first port of the first storage device coupled to the storage area network, wherein the first port is associated with a first identifier; creating a first virtual storage area network and a second virtual storage area network within the storage area network; coupling the first storage device to the second virtual storage area network via the first port of the first storage device having the first identifier; coupling the second storage device to the second virtual storage area network via a first port of the second storage device having a second identifier different from the first identifier; coupling a virtualization engine to the first virtual storage area network via a first port of the virtualization engine that is associated with the first identifier; coupling the virtualization engine to the second virtual storage area network via a second port of the virtualization engine; after creating the first virtual storage area network and the second virtual storage area network, unblocking the I/O operations for the first port of the first storage device; and after unblocking the I/O operations for the first port of the first storage device, causing at least a portion of I/O operations received by the virtualization engine through the first port thereof to be routed through the second port thereof to both the first port of the first storage device and the first port of the second storage device via a plurality of data paths established in the second virtual storage area network, wherein the virtualization engine controls directing of the at least a portion of I/O operations via a first data transfer path in the second virtual storage area network to the first storage device and via a second data transfer path in the second virtual storage area network to the second storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. Computer software, stored on a non-transitory computer-readable medium, that provides non-disruptive data mobility in connection with a first storage device coupled to a storage area network and a second storage device coupled to the storage area network, the computer software comprising:
-
executable code that blocks I/O operations for a first port of the first storage device coupled to the storage area network, wherein the first port is associated with a first identifier; executable code that creates a first virtual storage area network and a second virtual storage area network within the storage area network; executable code that couples the first storage device to the second virtual storage area network via the first port of the first storage device having the first identifier; executable code that couples the second storage device to the second virtual storage area network via a first port of the second storage device having a second identifier different from the first identifier; executable code that couples a virtualization engine to the first virtual storage area network via a first port of the virtualization engine that is associated with the first identifier; executable code that couples the virtualization engine to the second virtual storage area network via a second port of the virtualization engine; executable code that, after creating the first virtual storage area network and the second virtual storage area network, unblocks the I/O operations for the first port of the first storage device; and executable code that, after I/O operations for the first port of the first storage device are unblocked, causes at least a portion of I/O operations received by the virtualization engine through the first port thereof to be routed through the second port thereof to both the first port of the first storage device and the first port of the second storage device via a plurality of data paths established in the second virtual storage area network, wherein the virtualization engine controls directing of the at least a portion of I/O operations via a first data transfer path in the second virtual storage area network to the first storage device and via a second data transfer path in the second virtual storage area network to the second storage device. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A system for providing non-disruptive data mobility, comprising:
-
a storage area network including a first virtual storage area network and a second virtual storage area network; a first storage device coupled to the second virtual storage area network via a first port of the first storage device associated with a first identifier; a second storage device coupled to the second virtual storage area network via a first port of the second storage device associated with a second identifier different from the first identifier; a virtualization engine coupled to the first virtual storage area network via a first port of the virtualization engine associated with the first identifier and coupled to the second virtual storage area network via a second port of the virtualization engine, wherein at least a portion of I/O operations received by the virtualization engine through the first port thereof are routed through the second port thereof to both the first port of the first storage device and the first port of the second storage device via a plurality of data paths established in the second virtual storage area network, wherein the virtualization engine controls directing of the at least a portion of I/O operations via a first data transfer path in the second virtual storage area network to the first storage device and via a second data transfer path in the second virtual storage area network to the second storage device, wherein I/O operations for the first port of the first storage device are blocked before the first storage device and the second storage device are coupled to the second virtual storage area network, and wherein the routing of the at least the portion of the I/O operations received by virtualization engine is performed after unblocking the I/O operations for the first port of the first storage device. - View Dependent Claims (18, 19, 20, 21)
-
-
22. A method for providing non-disruptive data mobility among a first storage device coupled to a storage area network and a second storage device coupled to the storage area network, the method comprising:
-
blocking I/O operations for a first port the first storage device coupled to the storage area network, wherein the first port is associated with an identifier; creating a first virtual storage area network and a second virtual storage area network within the storage area network; establishing a connection between a host and the first virtual storage area network; establishing a connection between the first virtual storage area network and the second virtual storage area network; after creating the first virtual storage area network and the second virtual storage area network, unblocking the I/O operations for the first port of the first storage device; and after unblocking the I/O operations for the first port of the first storage device, causing at least a portion of I/O operations by the host to be routed to both the first port of the first storage device and a first port of the second storage device via a plurality of data paths established in the second virtual storage area network, wherein the virtualization engine controls directing of the at least a portion of I/O operations via a first data transfer path in the second virtual storage area network to the first storage device and via a second data transfer path in the second virtual storage area network to the second storage device, and wherein pathing information at the host directing I/O operations between the host and the first port of the first storage device associated with the identifier is independent of a routing of the I/O operations through the second virtual storage area network. - View Dependent Claims (23)
-
-
24. Computer software, stored in a non-transitory computer-readable medium, for providing non-disruptive data mobility among a first storage device coupled to a storage area network and a second storage device coupled to the storage area network, the computer software comprising:
-
executable code that blocks I/O operations for a first port the first storage device coupled to the storage area network, wherein the first port is associated with an identifier; executable code that creates a first virtual storage area network and a second virtual storage area network within the storage area network; executable code that establishes a connection between a host and the first virtual storage area network; executable code that establishes a connection between the first virtual storage area network and the second virtual storage area network; executable code that, after creating the first virtual storage area network and the second virtual storage area network, unblocks the I/O operations for the first port of the first storage device; and executable code that, after unblocking the I/O operations for the first port of the first storage device, causes at least a portion of I/O operations by the host to be routed to both the first port of the first storage device and a first port of the second storage device via a plurality of data paths established in the second virtual storage area network, wherein the virtualization engine controls directing of the at least a portion of I/O operations via a first data transfer path in the second virtual storage area network to the first storage device and via a second data transfer path in the second virtual storage area network to the second storage device, and wherein pathing information at the host directing I/O operations between the host and the first port of the first storage device associated with the identifier is independent of a routing of the I/O operations through the second virtual storage area network. - View Dependent Claims (25)
-
Specification