Method and system for version control in a fault tolerant system
First Claim
1. A method of providing version control within a fault tolerant system comprising:
- a) invoking a boot sequence of a first controller that is coupled to a nonvolatile storage system;
b) during said boot sequence, comparing a preferred application version with a stored application version stored within a memory of said first controller;
c) provided said stored application version is different from said preferred application version, storing said preferred application version into said memory; and
d) provided said stored application version is the same as said preferred application version, causing said first controller to execute said stored application version.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for performing software versioning between multiple controllers in a fault tolerant system. The fault tolerant system includes a storage system and multiple redundant controllers that provide access to the storage system. The storage system has stored thereon a preferred version of software to be used by the controllers. This software may be updated. The controllers each contain non-volatile memory. On boot, a controller compares the software version in its non-volatile memory to the preferred version in the storage system. If they are different (e.g., the software on the storage system was updated or the controller was updated with a non-preferred software version), then the controller copies the storage system version into its non-volatile memory and then re-boots. One controller is typically left operational while the other is re-booted for redundancy. Computer controlled versioning allows (1) lockstep software updates between the controllers based on a software version that may be associated with the storage system as a whole and (2) provides a central store from which the controllers may obtain the preferred software version. A special flash update mechanism is also described with respect to an implementation that uses flash memory as the non-volatile memory.
-
Citations
36 Claims
-
1. A method of providing version control within a fault tolerant system comprising:
-
a) invoking a boot sequence of a first controller that is coupled to a nonvolatile storage system;
b) during said boot sequence, comparing a preferred application version with a stored application version stored within a memory of said first controller;
c) provided said stored application version is different from said preferred application version, storing said preferred application version into said memory; and
d) provided said stored application version is the same as said preferred application version, causing said first controller to execute said stored application version. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of providing version control within a fault tolerant system comprising a non-volatile storage system coupled to first and second controllers, said method comprising the steps of:
-
a) while said second controller is operational, invoking a boot sequence of said first controller wherein said non-volatile storage system contains a preferred application version that is associated with said non-volatile storage system;
b) during said boot sequence, comparing said preferred application version with a stored application version stored within a memory of said first controller;
c) provided said stored application version is different from said preferred application version, storing said preferred application version into said memory; and
d) provided said stored application version is the same as said preferred application version, causing said first controller to execute said stored application version. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A fault tolerant system comprising:
-
a non-volatile storage system containing a preferred application version;
a first controller coupled to said non-volatile storage system and comprising a first memory containing an application version; and
a redundant second controller coupled to said non-volatile storage system and comprising a second memory containing an application version, wherein said first controller, when booting, compares said preferred application version with said application version of said first memory;
wherein said first controller, provided said application version of said first memory is different from said preferred application version, stores said preferred application version into said first memory and re-boots; and
wherein said first controller, provided said application version of said first memory, is the same as said preferred application version, executes said application version of said first memory. - View Dependent Claims (20, 21, 22, 23, 24)
-
-
25. A method of providing version control within a storage system comprising:
-
a) invoking a boot sequence of a first controller that is coupled to a storage device having stored thereon a first application version;
b) during said boot sequence, comparing the first application version to a second application version stored in a memory of said first controller; and
c) if the first application version is different from the second application version, reconciling the first controller and the storage device such that the same application version is stored on both the memory of the first controller and the storage device. - View Dependent Claims (26, 27, 28, 29)
-
-
30. A fault tolerant system providing version control comprising:
-
a storage system having stored thereon a first application version;
a first controller coupled to said storage system and for invoking a boot sequence during which said first controller compares the first application version to a second application version stored in a memory of said first controller; and
said first controller, if the first application version is different from the second application version, reconciles between the storage device such that the same application version is stored on both the memory of the first controller and the storage device. - View Dependent Claims (31, 32, 33)
-
-
34. A method of providing version control within a fault tolerant system comprising:
-
a) invoking a boot sequence of a first controller coupled to a storage system;
b) during said boot sequence, comparing a preferred application version with a stored application version stored within a memory of said first controller;
c) provided said stored application version is different from said preferred application version, storing said preferred application version into said memory;
d) provided said stored application version is the same as said preferred application version, causing said first controller to execute said stored application version;
e) invoking a boot sequence of a second controller coupled to said storage system while said first controller is operational;
f) during said boot sequence of said second controller, comparing said preferred application version with a stored application version that is stored within a memory of said second controller;
g) provided said stored application version of said second controller is different from said preferred application version, storing said preferred application version into said memory of said second controller. - View Dependent Claims (35, 36)
-
Specification