IP Library › Granted Patent US 7,185,062
Granted Patent B2
US 7,185,062 · App. 10/051,164 · Granted Feb 27, 2007

Switch-based storage services

Assignee: EMC Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,185,062
App. No.
10/051,164
Filed
Jan 18, 2002
Granted
Feb 27, 2007
Kind
B2
Examiner
VU, VIET D
Art Unit
2154
USPC
709/213
Abstract

A storage switch in accordance with an embodiment of the invention is a highly scalable switch that allows the creation of a SAN that is easy to deploy and that can be centrally managed. Moreover, such a storage switch also allows the deployment of a global infrastructure, allowing the resources of the SAN, such as storage devices, to essentially be positioned anywhere on the globe. Further, such a storage switch allows a multi-protocol SAN, e.g., one that includes both iSCSI or Fibre Channel, and processes data packets at “wire speed.” To further enable wire-speed processing, a switch in accordance with the invention has “intelligence” distributed to each of its linecards, through which it classifies packets into data and control packets, it performs virtualization functions, and it performs protocol translation functions. A switch in accordance with the invention further performs serverless storage services such as mirroring, snapshot, and replication.

Claims (74)

1. A method for use by a switch in a storage network, the method comprising:

receiving, by the switch, a solicitation for a storage service for storing data from a device in the storage network;

performing, by the switch, the storage service without further involvement from the device, including transmitting the data required to be transmitted as a result of performing the storage service without buffering the data.

2. The method of claim 1 , wherein performing the storage service further includes performing virtualization of the data without buffering the data.

3. The method of claim 1 , wherein performing the storage service further includes performing translation of the data from a first protocol to a second protocol without buffering the data.

4. The method of claim 3 , wherein the first protocol is iSCSI and the second protocol is Fiber Channel.

5. The method of claim 3 , wherein the first protocol is Fiber Channel and the second protocol is iSCSI.

6. The method of claim 1 , wherein the storage service is one of local mirroring, mirroring over slow link, snapshot, replication, third party copy, periodic backup, and restore.

7. The method of claim 1 , wherein:

receiving the solicitation includes receiving the solicitation by a control card in the switch;

performing the storage service includes, determining by the control card which one or more of a plurality of linecards in the switch is required to perform the service, passing relevant information from the control card to the determined linecard, and performing the storage service by and under control of the determined linecard.

8. The method of claim 1 , further including:

indicating that the storage service is complete by the switch to the device.

9. The method of claim 1 , wherein the device is a server.

10. The method of claim 1 , wherein the device is a management station.

11. The method of claim 1 , wherein:

receiving a solicitation includes receiving, by the switch, a mirroring solicitation for a virtual target from the device; and

performing the storage service includes:

setting a flowID for the virtual target that indicates a mirrored virtual target having a first member and a second member;

receiving a data write command from an initiator to the mirrored virtual target;

multicasting the data write command to both members in accordance with the flowID;

receiving a ready-to-receive-data indicator from each member, wherein each member specifies an amount of data it can receive, the first member specifying a first amount and the second member specifying a second amount smaller than the first amount;

obtaining from the initiator the second amount of data, performing virtualization on the data without buffering the data, and transmitting the data to the first member and the second member.

12. The method of claim 11 , wherein setting a flowID for the virtual target includes updating a virtual target descriptor with the flowID.

13. The method of claim 1 , wherein:

receiving a solicitation includes receiving, by the switch, a mirroring solicitation for a virtual target from the device; and

performing the storage service includes:

setting a flowID for the virtual target that indicates a mirrored virtual target having a first member and a second member, the second member having a link to the switch that is slow relative to a link between the first member and the switch;

receiving a data write command from an initiator to the mirrored target;

multicasting the data write command to both members in accordance with the flowID;

receiving a ready-to-receive-data indicator from the first member;

obtaining from the initiator the write data and transmitting the data to the first member;

receiving a ready-to-receive-data indicator from the second member;

reading the write data from the first member and transmitting, by the switch, the data to the second member.

14. The method of claim 13 , wherein setting a flowID for the virtual target includes updating a virtual target descriptor with the flowID.

15. The method of claim 13 , wherein the second member is remote with respect to the switch and the first member is local with respect to the switch.

16. The method of claim 1 , wherein:

receiving a solicitation includes receiving, by the switch, a snapshot solicitation for a virtual target, including a first member and a second member, from the device; and

performing the storage service includes:

updating a flowID for the virtual target stored in the switch, wherein prior to updating, the flowID indicates that data is to be written to the first member and the second member, and after updating the flowID indicates that data is to be written to the first member and not the second member so that when a data write command is received by the switch it is sent only to the first member in accordance with the flowID;

sending an indication to the device that the snapshot solicitation is complete.

17. The method of claim 16 , wherein updating a flowID for the virtual target includes updating a virtual target descriptor with the flowID.

18. The method of claim 1 , wherein:

receiving a solicitation includes receiving, by the switch, a replication solicitation from the device to add a member to a virtual target, thereby forming a mirrored virtual target having a first member and a second member; and

performing the storage service includes:

updating a flowID stored in the switch for the virtual target, wherein prior to updating the flowID indicates that data is to be written to the first member and not the second member, and after updating the flowID indicates that data is to be written to the first member and the second member so that when a data write command is received by the switch it is multicast to the first member and the second member in accordance with the flowID;

reading data from the first member and transmitting that data as write data to the second member;

notifying the device that the replication solicitation is complete.

19. The method of claim 18 , wherein updating a flowID for the virtual target includes updating a virtual target descriptor with the flowID.

20. The method of claim 1 , wherein:

receiving a solicitation includes receiving, by the switch, a third-party-copy solicitation from the device to copy data in a virtual target to a new medium; and

performing the storage service includes:

reading data from the virtual target and transmitting the read data to the new medium as write data;

notifying the device that the third-party-copy solicitation is complete.

21. A method for use by a switch in a storage network, the method comprising:

receiving, by the switch, a mirroring solicitation for a virtual target from a device in the storage network;

setting, by the switch, a flowID for the virtual target that indicates a mirrored virtual target having a first member and a second member;

receiving, by the switch, data to be written to the mirrored virtual target;

multicasting, by the switch, without buffering, the data to both members for writing in accordance with the flowID.

22. The method of claim 21 , wherein multicasting the data write command includes adding the flowID to the data write command.

23. The method of claim 21 , wherein:

the first member is a local member with respect to the switch and the second member is a remote member with respect to the switch; and

multicasting the data includes sending the data to the first member for writing, reading the data from the first member, and sending the read data to the remote member for writing.

24. The method of claim 23 , wherein:

the second member is in communication with the switch over a link that is slow relative to a link between the switch and the first member; and

multicasting the data includes sending the data to the first member for writing, reading the data from the first member, and sending the read data to the second member for writing.

25. A method for use by a switch in a storage network, the method comprising:

receiving, by the switch, a mirroring solicitation for a virtual target from a device in the storage network;

setting, by the switch, a flowID for the virtual target that indicates a mirrored virtual target having a first member and a second member;

receiving, by the switch, a data write command from an initiator to the mirrored virtual target;

multicasting, by the switch, the data write command to both members in accordance with the flowID;

receiving, by the switch, a ready-to-receive-data indicator from each member, wherein each member specifies an amount of data it can receive, the first member specifying a first amount and the second member specifying a second amount smaller than the first amount;

obtaining, by the switch, from the initiator the second amount of data, performing virtualization of the data without buffering, and transmitting the second amount of data as write data to the first member and the second member.

26. The method of claim 25 , wherein multicasting the data write command includes adding the flowID to the data write command.

Assignments (12)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2005
From: MARANTI NETWORKS, INC.
To: EMC CORPORATION
Reel/Frame 016327/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2004
From: YIP, PATRICK; REDDY, PRAVEEN
To: PERSHING INVESTMENTS, LLC
Reel/Frame 015384/0653 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2002
From: LOLAYEKAR, SANTOSH C.; CHENG, YU-PING
To: MARANTI NETWORKS, INC.
Reel/Frame 012516/0075 →
Continuity (2)
Provisional Application 6032570400 · Sep 28, 2001
Related Publication 20030093567A1 · May 15, 2003