Performing block storage virtualization at a switch
View Patent ↗Routing a data packet includes receiving at a switch a data packet from a storage client. The data packet is associated with a destination identifier identifying a virtual target, where the virtual target is accessible by the storage client. A storage resource identifier corresponding to the destination identifier is determined according to a forwarding table at the switch. The data packet is routed according to the storage resource identifier.
1. A method for routing a data packet, comprising:
receiving at a switch a data packet from a storage client, the data packet associated with a destination identifier identifying a virtual target, the virtual target accessible by the storage client;
determining a storage resource identifier corresponding to the destination identifier according to a forwarding table at the switch by determining that the storage resource identifier is associated with the virtual target, and establishing a forwarding port corresponding to a source identifier of the packet; and
routing the data packet according to the storage resource identifier.
2. The method of claim 1 , further comprising:
receiving a notification of a failure associated with the virtual target;
changing the correspondence of the destination identifier from the storage resource identifier to an alternative storage resource identifier; and
routing the data packet according to the alternative storage resource identifier.
3. The method of claim 1 , wherein routing the data packet according to the storage resource identifier comprises inserting the storage resource identifier into the data packet.
4. A system for routing a data packet, comprising:
a port operable to receive at a switch a data packet from a storage client, the data packet associated with a destination identifier identifying a virtual target, the virtual target accessible by the storage client; and
a storage service module coupled to the port and operable to:
determine a storage resource identifier corresponding to the destination identifier according to a forwarding table at the switch by determining that the storage resource identifier is associated with the virtual target, and establishing a forwarding port corresponding to a source identifier of the packet; and
route the data packet according to the storage resource identifier.
5. The system of claim 4 , wherein the storage service module is operable to:
receive a notification of a failure associated with the virtual target;
change the correspondence of the destination identifier from the storage resource identifier to an alternative storage resource identifier; and
route the data packet according to the alternative storage resource identifier.
6. The system of claim 4 , wherein the storage service module is operable to route the data packet according to the storage resource identifier by inserting the storage resource identifier into the data packet.
7. Logic for routing a data packet, the logic embodied in a medium and operable to:
receive at a switch a data packet from a storage client, the data packet associated with a destination identifier identifying a virtual target, the virtual target accessible by the storage client;
determine a storage resource identifier corresponding to the destination identifier according to a forwarding table at the switch by determining that the storage resource identifier is associated with the virtual target, and establishing a forwarding port corresponding to a source identifier of the packet; and
route the data packet according to the storage resource identifier.
8. The logic of claim 7 , further operable to:
receive a notification of a failure associated with the virtual target;
change the correspondence of the destination identifier from the storage resource identifier to an alternative storage resource identifier; and
route the data packet according to the alternative storage resource identifier.
9. The logic of claim 7 , operable to route the data packet according to the storage resource identifier by inserting the storage resource identifier into the data packet.
10. A system for routing a data packet, comprising:
means for receiving at a switch a data packet from a storage client, the data packet associated with a destination identifier identifying a virtual target, the virtual target accessible by the storage client;
means for determining a storage resource identifier corresponding to the destination identifier according to a forwarding table at the switch by determining that the storage resource identifier is associated with the virtual target, and establishing a forwarding port corresponding to a source identifier of the packet; and
means for routing the data packet according to the storage resource identifier.
11. A method for routing a data packet, comprising:
receiving at a switch a data packet from a storage client, the data packet associated with a destination identifier identifying a virtual target, the virtual target accessible by the storage client;
determining a storage resource identifier corresponding to the destination identifier according to a forwarding table at the switch by determining that the storage resource identifier is associated with the virtual target, and by establishing a forwarding port corresponding to a source identifier of the data packet;
routing the data packet according to the storage resource identifier by inserting the storage resource identifier into the data packet;
receiving a notification of a failure associated with the virtual target;
changing the correspondence of the destination identifier from the storage resource identifier to an alternative storage resource identifier; and
routing the data packet according to the alternative storage resource identifier.