IP Library Granted Patent US 7,558,915
Granted Patent B2
US 7,558,915 · App. 11/145,763 · Granted Jul 7, 2009

System and method for updating the firmware of a device in a storage network

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,558,915
App. No.
11/145,763
Granted
Jul 7, 2009
Kind
B2
Abstract

A system and method is disclosed for managing access command transmitted to a storage controller during the period that a device coupled to the storage controller is undergoing a firmware update. The storage controller manages access commands directed to the storage controller so that the access command may be managed in a manner that does not disrupt the firmware update processor or the completion of the access command itself. The storage controller enters a guard mode in which the firmware of the storage controller intercepts commands directed to the device undergoing a firmware update. Depending on the characteristics of the access command, the data of the command may be generated from other drives in a redundant drive array or the command may be saved to a cache or journal for later processing.

Claims (60)

1. A method for managing data access commands directed to at least one storage drive of a drive array during a period that a firmware update process is being performed on the at least one storage drive, wherein the drive array is coupled to a storage controller comprising the steps of:

upon initiation of the firmware update process, issuing a command from a firmware update utility to the storage controller to enter a guard period; wherein the firmware update utility is not built into the storage controller;

entering the guard period in a firmware handling utility stored on the storage controller to indicate that the at least one storage drive coupled to the storage controller is undergoing the firmware update process;

initiating the firmware update process on the at least one storage drive coupled to the storage controller, wherein the firmware update process is initiated by the firmware update utility;

receiving a data access command at the storage controller;

determining if the data access command is directed to the at least one storage drive that is undergoing the firmware update process;

if it is determined that the data access command is directed to the at least one storage drive that is undergoing the firmware update process, processing the data access command in a manner that is transparent to an issuer of the data access command;

upon completion of the firmware update process, issuing a command from the firmware update utility to the storage controller to leave the guard period; and

leaving the guard period in the firmware handling utility on the storage controller.

2. The method of claim 1 , wherein the step of processing the data access command in a manner that is transparent to the issuer of the access command comprises, in the case of a read command, generating the data requested by the read command from redundant data in the drive array.

3. The method of claim 2 , wherein the redundant data in the drive array is stored according to a RAID storage methodology.

4. The method of claim 1 , wherein the step of processing the data access command in a manner that is transparent to the issuer of the access command comprises, in the case of a write command, writing the data of the write command to a cache associated with the storage controller.

5. The method of claim 1 , wherein the step of processing the data access command in a manner that is transparent to the issuer of the access command comprises,

in the case of a read command, generating the data requested by the read command from redundant data in the drive array; and

in the case of a write command, writing the data of the write command to a cache associated with the storage controller.

6. The method of claim 5 , wherein the redundant data in the drive array is stored according to a RAID storage methodology.

7. A storage controller, comprising:

a processor;

a firmware handling utility, wherein the firmware handling utility is operable to manage data access commands directed to a drive array coupled to the storage controller such that data access commands issued to at least one drive undergoing a firmware update are handled in a manner that is transparent to an issuer of the data access commands,

wherein the firmware handling utility is operable to receive a command to enter a guard period to indicate that the at least one drive accessible through the storage controller is undergoing the firmware update and receive a command to leave the guard period;

wherein the firmware handling utility receives the command to enter the guard period and the command to leave the guard period from a firmware update utility;

wherein the firmware update utility initiates the firmware update; and

wherein the firmware update utility is not built into the storage controller.

8. The storage controller of claim 7 , wherein the firmware handling utility is operable to identify whether a data access command received by the storage controller is directed to a drive of the drive array that is undergoing a firmware update.

9. The storage controller of claim 8 , wherein the firmware handling utility is operable, in the case of a read command directed to a drive of a redundant drive array that is undergoing a firmware update, to generate the requested data of the read command from the other drives of the drive array.

10. The storage controller of claim 8 , wherein the firmware handling utility is operable, in the case of a read command directed to a drive of a redundant RAID array that is undergoing a firmware update, to generate the requested data of the read command from the other drives of the drive array.

11. The storage controller of claim 8 , wherein the firmware handling utility is operable, in the case of a write command directed to a drive of the drive array that is undergoing a firmware update, to write the data of the write command to a cache associated with the storage controller.

12. The storage controller of claim 8 ,

wherein the firmware handling utility is operable, in the case of a read command directed to a drive of a redundant drive array that is undergoing a firmware update, to generate the requested data of the read command from the other drives of the drive array; and

wherein the firmware handling utility is operable, in the case of a write command directed to a drive of the drive array that is undergoing a firmware update, to write the data of the write command to a cache associated with the storage controller.

13. A method for identifying and managing data access commands received by a storage controller during a period in which at least one storage drive coupled to the storage controller is undergoing a firmware update process, comprising steps of:

upon initiation of the firmware update process, issuing a command from a firmware update utility to the storage controller to enter a guard period; wherein the firmware update utility is not built into the storage controller;

entering the guard period in a firmware handling utility stored on the storage controller to indicate that the at least one storage drive coupled to the storage controller is undergoing the firmware update;

initiating the firmware update on the at least one storage drive coupled to the storage controller, wherein the firmware update is initiated by the firmware update utility;

determining if a received data access command is directed to the at least one storage drive that is undergoing the firmware update;

if the received data access command is directed to the at least one storage drive that is undergoing the firmware update, handling the data access command in a manner that is transparent to an issuer of the data access command;

upon completion of the firmware update process, issuing a command from the firmware update utility to the storage controller to leave the guard period; and

leaving the guard period in the firmware handling utility on the storage controller.

14. The method of claim 13 , wherein the step of handling the data access command in a manner that is transparent to the issuer of the data access command comprises the steps of, in the case of a read command,

determining if a drive is included in a redundant drive array; and

if the drive is included in the redundant drive array, generating the data requested by the read command from the other drives of the redundant drive array.

15. The method of claim 13 , wherein the step of handling the data access command in a manner that is transparent to the issuer of the data access command comprises the steps of, in the case of a write command, writing the write command to a journal associated with the storage controller; and executing the write command in the journal following completion of the firmware update on the drive.

16. The method of claim 13 , wherein the step of handling the data access command in a manner that is transparent to the issuer of the data access command comprises the steps of, in the case of a write command,

writing data of the write command to a cache associated with the storage controller; and

transferring the contents of the cache to the drive following completion of the firmware update on the drive.

17. The method of claim 13 , further comprising a step of failing the data access command if the data access command cannot be handled in a manner that is transparent to the issuer of the data access command.

18. The method of claim 13 ,

wherein the step of handling the data access command in a manner that is transparent to the issuer of the data access command comprises the steps of, in the case of a read command,

determining if a drive is included in a redundant drive array; and

if the drive is included in the redundant drive array, generating the data requested by the read command from the other drives of the redundant drive array; and

wherein the step of handling the data access command in a manner that is transparent to the issuer of the data access command comprises the steps of, in the case of a write command,

writing the write command to a journal associated with the storage controller; and

executing the write command in the journal following completion of the firmware update on the drive.

19. The method of claim 13 ,

wherein the step of handling the data access command in a manner that is transparent to the issuer of the data access command comprises the steps of, in the case of a read command,

determining if a drive is included in a redundant drive array; and

if the drive is included in the redundant drive array, generating the data requested by the read command from the other drives of the redundant drive array; and

wherein the step of handling the data access command in a manner that is transparent to the issuer of the data access command comprises the steps of, in the case of a write command,

writing the write command to a cache associated with the storage controller; and

transferring the contents of the cache to the drive following completion of the firmware update on the drive.

Assignments (14)
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 →
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 →
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 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2005
From: WU, KAI YAM; CHERIAN, JACOB
To: DELL PRODUCTS L.P.
Reel/Frame 016671/0824 →