Dual XPCS for disaster recovery in multi-host computer complexes
First Claim
1. A data processing system having a host processor for issuing file access commands, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor;
- a secondary storage device responsively coupled to the input-output logic section of the host processor for storing a plurality of files, the host processor being capable of issuing sequence number commands from the input-output logic section, including requests for sequence numbers, the host processor being capable of issuing locking commands from the input-output logic section, the locking commands including requests for file locks and unlocks;
a first outboard device coupled to the host processor input-output logic section, the first outboard device being responsive to the host sequence number commands, the first outboard device being responsive to the host lock commands;
wherein the improvement comprises;
a. a second outboard device coupled to the host processor input-output logic section, said second outboard device being responsive to the host sequence number commands, said second device being responsive to the host locking commands;
b. means for requesting a file lock including requesting the lock from the first outboard device, and if successful, followed by sending the file lock request to said second outboard device, the file lock request to said second outboard device including indication to not queue the lock request;
c. means for requesting a file unlock including requesting the unlock from said second outboard device followed by requesting the unlock from the first outboard device;
d. means for determining a data processing system sequence number including reading an internal sequence number from the second outboard device, followed by reading an internal sequence number from the first outboard device, wherein reading the internal sequence number increments the internal sequence number in the outboard device, wherein the system sequence number is determined by the first outboard device internal sequence number; and
e. means for maintaining an internal sequence number in a second outboard device no less than an internal sequence number in a first outboard device, including initializing the data processing system to have all host processors accessing both outboard devices and to have the second outboard device internal sequence number no less than the first outboard device internal sequence number, including reading the second outboard device internal sequence number before reading the first outboard device internal sequence number.
9 Assignments
0 Petitions
Accused Products
Abstract
A computer system having dual outboard devices for generating audit trail sequence numbers and performing file locking. One embodiment includes a master and a slave outboard device, where lock request handling includes a lock request first sent to the master, lock grant awaited, followed by a request sent to the slave. Unlock request handling includes sending an unlock request to slave first, followed by sending an unlock request to the master. Obtaining a system sequence number includes always reading the slave outboard device, then reading the master outboard device. The computer system includes a method for switching host processors from a single outboard device mode to a dual outboard device mode and back again in the event of failure of one of the outboard devices.
104 Citations
11 Claims
-
1. A data processing system having a host processor for issuing file access commands, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor;
- a secondary storage device responsively coupled to the input-output logic section of the host processor for storing a plurality of files, the host processor being capable of issuing sequence number commands from the input-output logic section, including requests for sequence numbers, the host processor being capable of issuing locking commands from the input-output logic section, the locking commands including requests for file locks and unlocks;
a first outboard device coupled to the host processor input-output logic section, the first outboard device being responsive to the host sequence number commands, the first outboard device being responsive to the host lock commands;
wherein the improvement comprises;a. a second outboard device coupled to the host processor input-output logic section, said second outboard device being responsive to the host sequence number commands, said second device being responsive to the host locking commands; b. means for requesting a file lock including requesting the lock from the first outboard device, and if successful, followed by sending the file lock request to said second outboard device, the file lock request to said second outboard device including indication to not queue the lock request; c. means for requesting a file unlock including requesting the unlock from said second outboard device followed by requesting the unlock from the first outboard device; d. means for determining a data processing system sequence number including reading an internal sequence number from the second outboard device, followed by reading an internal sequence number from the first outboard device, wherein reading the internal sequence number increments the internal sequence number in the outboard device, wherein the system sequence number is determined by the first outboard device internal sequence number; and e. means for maintaining an internal sequence number in a second outboard device no less than an internal sequence number in a first outboard device, including initializing the data processing system to have all host processors accessing both outboard devices and to have the second outboard device internal sequence number no less than the first outboard device internal sequence number, including reading the second outboard device internal sequence number before reading the first outboard device internal sequence number.
- a secondary storage device responsively coupled to the input-output logic section of the host processor for storing a plurality of files, the host processor being capable of issuing sequence number commands from the input-output logic section, including requests for sequence numbers, the host processor being capable of issuing locking commands from the input-output logic section, the locking commands including requests for file locks and unlocks;
-
2. A data processing system having a host processor for issuing file access commands, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor, the host processor being capable of issuing sequence number commands from the input-output logic section, including requests for sequence numbers;
- a first outboard sequence number generation device coupled to the host processor input-output logic section, the first outboard device being responsive to the host sequence number commands, wherein the improvement comprises;
a. a second outboard sequence number generation device coupled to the host processor input-output logic section, said second outboard device being responsive to the host sequence number commands; b. means for determining a data processing system sequence number including reading an internal sequence number from the second outboard device, followed by reading an internal sequence number from the first outboard device, wherein reading the internal sequence number increments the internal sequence number in the outboard device, wherein the system sequence number is determined by the first outboard device internal sequence number; and c. means for maintaining an internal sequence number in a second outboard device no less than an internal sequence number in a first outboard device, including initializing the data processing system to have all host processors accessing both outboard devices and to have the second outboard device internal sequence number no less than the first outboard device internal sequence number, including reading the second outboard device internal sequence number before reading the first outboard device internal sequence number.
- a first outboard sequence number generation device coupled to the host processor input-output logic section, the first outboard device being responsive to the host sequence number commands, wherein the improvement comprises;
-
3. A data processing system having a host processor for issuing file access commands, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor, the host processor being capable of issuing lock commands from the input-output logic section, including requests for file locks and unlocks;
- a secondary storage device responsively coupled to the input-output logic section of the host processor for storing a plurality of files;
a first outboard locking device coupled to the host processor input-output logic section, the first outboard device being responsive to the host lock commands, wherein the improvement comprises;a. a second outboard locking device coupled to the host processor input-output logic section, said second outboard device being responsive to the host lock commands; b. means for requesting a file lock including requesting the lock from the first outboard device, and if successful, followed by sending the file lock request to said second outboard device, the file lock request to said second outboard device including indication to not queue the lock request; and c. means for requesting a file unlock including requesting the unlock from said second outboard device followed by requesting the unlock from the first outboard device.
- a secondary storage device responsively coupled to the input-output logic section of the host processor for storing a plurality of files;
-
4. A data processing system comprising:
-
a. a host processor for issuing file access commands, said host processor including an input-output logic section which provides an interface for input of data to said host processor and output of data from said host processor; b. a secondary storage device responsively coupled to said input-output logic section of said host processor for storing a plurality of files; c. said host processor being capable of issuing sequence number commands from said input-output logic section, said sequence number commands including requests for sequence numbers; d. said host processor being capable of issuing locking commands from said input-output logic section, said locking commands including requests for file locks and unlocks; e. a first outboard device coupled to said host processor input-output logic section, said first outboard device being responsive to said host sequence number commands, said first outboard device being responsive to said host lock commands; and f. a second outboard device coupled to said host processor input-output logic section, said second outboard device being responsive to said host sequence number commands, said second device being responsive to said host locking commands.
-
-
5. In a data processing system having at least two host processors for issuing file access commands, each of the host processors including an input-output logic section which provides an interface for input of data to the host processors and output of data from the host processors;
- a secondary storage device responsively coupled to the input-output logic section of the host processors for storing a plurality of files, the host processors being capable of issuing sequence number commands from the input-output logic section, including requests for sequence numbers, the host processors being capable of issuing locking commands from the input-output logic section, including requests for file locks and unlocks;
a first outboard device coupled to the host processor input-output logic sections, the first outboard device being responsive to the host sequence number commands, the first outboard device being responsive to the host locking commands; and
a second outboard device coupled to the host processor input-output logic sections, the second outboard device being responsive to the host sequence number commands, the second device being responsive to the host locking commands, a method for one of the hosts initiating dual outboard device mode comprising the steps of;a. receiving a dual mode request; b. verifying that both of the outboard devices are functioning properly; c. broadcasting a dual mode request to each of the hosts; d. issuing a command to the second outboard device to place itself in synchronization mode; e. updating a global state variable indicating the global state is a "sync in progress" state; f. updating a host state variable indicating a "sync in progress" state; g. rebooting the host; h. if the host state is not "sync in progress", the method is finished; i. setting the host state variable indicating a "sync in progress" state; j. if each host state variable is not "synchronized", the method is finished; k. broadcasting to all hosts that all hosts are synchronized; and l. updating the global state variable indicating the global state is "synchronized". - View Dependent Claims (6)
- a secondary storage device responsively coupled to the input-output logic section of the host processors for storing a plurality of files, the host processors being capable of issuing sequence number commands from the input-output logic section, including requests for sequence numbers, the host processors being capable of issuing locking commands from the input-output logic section, including requests for file locks and unlocks;
-
7. In a data processing system having at least two host processors for issuing file access commands, each of the host processors including an input-output logic section which provides an interface for input of data to the host processors and output of data from the host processors;
- a secondary storage device responsively coupled to the input-output logic section of the host processors for storing a plurality of files, the host processors being capable of issuing sequence number commands from the input-output logic section, including requests for sequence numbers, the host processors being capable of issuing locking commands from the input-output logic section, including requests for file locks and unlocks;
a first outboard device coupled to the host processor input-output logic sections, the first outboard device being responsive to the host sequence number commands, the first outboard device being responsive to the host locking commands; and
a second outboard device coupled to the host processor input-output logic sections, the second outboard device being responsive to the host sequence number commands, the second device being responsive to the host locking commands, a method for the second outboard device to return a sequence number to either host comprising the steps of;a. receiving a read sequence number requesting including whether a resynchronization of sequence numbers is requested, and an optional sequence number input value; b. if not in synchronization mode, returning the current sequence number and incrementing the current sequence number; c. if the read command does not include a request to resynchronize the outboard devices, returning the current sequence number and incrementing the current sequence number and incrementing the synchronization counter; d. calculating a new sequence number by adding the input number to the synchronization counter; e. if the calculated sequence number is greater than the current sequence number, setting the current sequence number to the calculated value and resetting the synchronization counter to zero; f. returning the current sequence number to the requesting host; and g. incrementing the synchronization counter.
- a secondary storage device responsively coupled to the input-output logic section of the host processors for storing a plurality of files, the host processors being capable of issuing sequence number commands from the input-output logic section, including requests for sequence numbers, the host processors being capable of issuing locking commands from the input-output logic section, including requests for file locks and unlocks;
-
8. In a data processing system having at least two host processors for issuing file access commands, each of the host processors including an input-output logic section which provides an interface for input of data to the host processors and output of data from the host processors;
- a secondary storage device responsively coupled to the input-output logic section of the host processors for storing a plurality of files, the host processors being capable of issuing sequence number commands from the input-output logic section, including requests for sequence numbers, the host processors being capable of issuing locking commands from the input-output logic section, including requests for file locks and unlocks;
a first outboard device coupled to the host processor input-output logic sections, the first outboard device being responsive to the host sequence number commands, the first outboard device being responsive to the host locking commands; and
a second outboard device coupled to the host processor input-output logic sections, the second outboard device being responsive to the host sequence number commands, the second device being responsive to the host locking commands, a method for the hosts to process a file unlock request comprising the steps of;a. sending an unlock command to the second outboard device; b. waiting for normal completion; c. sending an unlock command to the first outboard device; and d. waiting for normal completion.
- a secondary storage device responsively coupled to the input-output logic section of the host processors for storing a plurality of files, the host processors being capable of issuing sequence number commands from the input-output logic section, including requests for sequence numbers, the host processors being capable of issuing locking commands from the input-output logic section, including requests for file locks and unlocks;
-
9. In a data processing system having at least two host processors for issuing file access commands, each of the host processors including an input-output logic section which provides an interface for input of data to the host processors and output of data from the host processors;
- a secondary storage device responsively coupled to the input-output logic section of the host processors for storing a plurality of files, the host processors being capable of issuing sequence number commands from the input-output logic section, including requests for sequence numbers, the host processors being capable of issuing locking commands from the input-output logic section, including requests for file locks and unlocks;
a first outboard device coupled to the host processor input-output logic sections, the first outboard device being responsive to the host sequence number commands, the first outboard device being responsive to the host locking commands; and
a second outboard device coupled to the host processor input-output logic sections, the second outboard device being responsive to the host sequence number commands, the second device being responsive to the host locking commands, a method for the hosts to process a file lock request comprising the steps of;a. sending a lock command to the first outboard device; b. waiting for normal completion; c. if a lock "grant" status return is not received, rejecting the request and finishing; d. sending a lock command to the second outboard device which indicates that the lock request is not to be queued; e. waiting for a grant return status from second outboard device; and f. finishing.
- a secondary storage device responsively coupled to the input-output logic section of the host processors for storing a plurality of files, the host processors being capable of issuing sequence number commands from the input-output logic section, including requests for sequence numbers, the host processors being capable of issuing locking commands from the input-output logic section, including requests for file locks and unlocks;
-
10. In a data processing system having at least two host processors for issuing file access commands, each of the host processors including an input-output logic section which provides an interface for input of data to the host processors and output of data from the host processors;
- a secondary storage device responsively coupled to the input-output logic section of the host processors for storing a plurality of files, the host processors being capable of issuing sequence number commands from the input-output logic section, including requests for sequence numbers, the host processors being capable of issuing locking commands from the input-output logic section, including requests for file locks and unlocks;
a first outboard device coupled to the host processor input-output logic sections, the first outboard device being responsive to the host sequence number commands, the first outboard device being responsive to the host locking commands; and
a second outboard device coupled to the host processor input-output logic sections, the second outboard device being responsive to the host sequence number commands, the second device being responsive to the host lock commands, a method for the hosts to process a file lock request comprising the steps of;a. sending a first lock command to the first outboard device; b. waiting for normal completion of said first lock command; c. if a lock "grant" status return is not received from said first lock command go to step g; d. sending second a lock command to the second outboard device which indicates that the lock request is not to be queued; e. waiting for a grant return status from the second outboard device from said second lock command; f. going to step a; g. if a lock "wait" status return is not received from said first lock command, rejecting the lock request and going to step a; h. waiting for lock "grant" return status in delayed response; i. if said "grant" return status is not received, rejecting the lock request, and going to step a; j. sending third a lock command to the second outboard device indicating the lock command is not to be queued; k. waiting for a lock "grant" return status from the second outboard device from said third lock command; and l. ending the file lock request processing.
- a secondary storage device responsively coupled to the input-output logic section of the host processors for storing a plurality of files, the host processors being capable of issuing sequence number commands from the input-output logic section, including requests for sequence numbers, the host processors being capable of issuing locking commands from the input-output logic section, including requests for file locks and unlocks;
-
11. In a data processing system having at least two host processors for issuing file access commands, each of the host processors including an input-output logic section which provides an interface for input of data to the host processors and output of data from the host processors;
- a secondary storage device responsively coupled to the input-output logic section of the host processors for storing a plurality of files, the host processors being capable of issuing sequence number commands from the input-output logic section, including requests for sequence numbers, the host processors being capable of issuing lock commands from the input-output logic section, including requests for file locks and unlocks;
a first outboard device coupled to the host processor input-output logic sections, the first outboard device being responsive to the host sequence number commands, the first outboard device being responsive to the host lock commands; and
a second outboard device coupled to the host processor input-output logic sections, the second outboard device being responsive to the host sequence number commands, the second device being responsive to the host lock commands, a method for one of the hosts to process an unrecoverable error in an outboard device comprising the steps of;a. if the error is associated with command processing, queuing the command request and going to step g; b. if the error is with either of the outboard devices and the broken outboard device status is already known, no more processing is required; c. if the error is with either of the outboard devices and the other outboard device status is already known as broken, stopping the host; d. indicating which outboard device is in error; e. broadcasting to all hosts that dual mode is to be broken; f. updating a status variable in the non-error outboard device indicating that dual mode is being broken; and g. servicing any command requests.
- a secondary storage device responsively coupled to the input-output logic section of the host processors for storing a plurality of files, the host processors being capable of issuing sequence number commands from the input-output logic section, including requests for sequence numbers, the host processors being capable of issuing lock commands from the input-output logic section, including requests for file locks and unlocks;
Specification