IP Library Granted Patent US 8,122,120
Granted Patent B1
US 8,122,120 · App. 10/320,962 · Granted Feb 21, 2012

Failover and failback using a universal multi-path driver for storage devices

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 8,122,120
App. No.
10/320,962
Granted
Feb 21, 2012
Kind
B1
Abstract

An embodiment of the invention is a technique to manage failover and failback. A failover of a first path is detected. The first path corresponds to a first device in a plurality of physical devices having M device types. A connection status of the first device is determined if the failover is detected. The connection status is one of a connected status and a disconnected status. The disconnected status corresponds to the failover. The first path is adjusted according to the connection status.

Claims (60)

1. A method comprising:

detecting a failover of a first path connecting an adapter to a first device in a plurality of physical devices having a plurality of device types, the adapter being controlled by a low level driver that interfaces to a universal multipath driver (UMD), the plurality of the physical devices being attached to a server;

determining a connection status of the first device if the failover is detected, the connection status being one of a connected status and a disconnected status, the disconnected status corresponding to the failover; and

adjusting the first path according to the connection status.

2. The method of claim 1 wherein detecting comprises:

determining if a first device name of the first device is in a list of disconnected devices.

3. The method of claim 1 wherein determining the connection status comprises:

sending a command to the first device, the command returning the connection status.

4. The method of claim 3 wherein adjusting the first path comprises:

removing the first device name from the first list if the returned connection status is the connected status.

5. The method of claim 1 further comprising:

establishing an alternate path connecting the adapter to an alternate device for the first device when the failover is detected, the alternate device being active prior to the failover.

6. The method of claim 1 further comprising:

establishing an alternate path connecting the adapter to an alternate device for the first device when the failover is detected, the alternate device being passive prior to the failover.

7. The method of claim 1 further comprising:

establishing the first path to the first device when the connection status is the connected status after the failover is detected.

8. The method of claim 1 wherein detecting the failover comprises:

detecting the failover of the first path corresponding to the first device in a plurality of physical devices having a plurality of different device types, the plurality of device types including at least two of a disk device, a tape device, a redundant array of inexpensive disks (RAID) subsystem, and a tape library.

9. The method of claim 1 further comprising:

suspending access to the first device if the failover is detected.

10. The method of claim 6 further comprising:

resuming access to the first device when the connection status is the connected status after the failover is detected.

11. A non-transitory computer readable storage media containing non-transitory encoded data that when accessed by a machine instructs the machine to perform a computer implemented method, the method comprising:

a non-transitory machine-accessible medium including data that, when accessed by a machine, causes the machine to perform operations comprising:

detecting a failover of a first path connecting an adapter to a first device in a plurality of physical devices having a plurality of device types, the adapter being controlled by a low level driver that interfaces to a universal multipath driver (UMD), the plurality of the physical devices being attached to a server;

determining a connection status of the first device if the failover is detected, the connection status being one of a connected status and a disconnected status, the disconnected status corresponding to the failover; and adjusting the first path according to the connection status.

12. The non-transitory computer readable storage media of claim 11 wherein detecting comprises data that, when accessed by a machine, causes the machine to perform operations comprising: determining if a first device name of the first device is in a list of disconnected devices.

13. The non-transitory computer readable storage media of claim 11 wherein determining the connection status comprises data that, when accessed by a machine, causes the machine to perform operations comprising: sending a command to the first device, the command returning the connection status.

14. Non-transitory computer readable storage media of claim 13 wherein adjusting the first path comprises data that, when accessed by a machine, causes the machine to perform operations comprising: removing the first device name from the first list if the returned connection status is the connected status.

15. The non-transitory computer readable storage media of claim 11 further comprising data that, when accessed by a machine, causes the machine to perform operations comprising: establishing an alternate path connecting the adapter to an alternate device for the first device when the failover is detected, the alternate device being active prior to the failover.

16. The non-transitory computer readable storage media of claim 11 further comprising data that, when accessed by a machine, causes the machine to perform operations comprising: establishing an alternate path connecting the adapter to an alternate device for the first device when the failover is detected, the alternate device being passive prior to the failover.

17. The non-transitory computer readable storage media of claim 11 further comprising data that, when accessed by a machine, causes the machine to perform operations comprising: establishing the first path to the first device when the connection status is the connected status after the failover is detected.

18. The non-transitory computer readable storage media of claim 11 wherein detecting the failover comprises data that, when accessed by a machine, causes the machine to perform operations comprising: detecting the failover of the first path corresponding to the first device in a plurality of physical devices having a plurality of different device types, the plurality of device types including at least two of a disk device, a tape device, a redundant array of inexpensive disks (RAID) subsystem, and a tape library.

19. The non-transitory computer readable storage media of claim 11 further comprising data that, when accessed by a machine, causes the machine to perform operations comprising: suspending access to the first device if the failover is detected.

20. The non-transitory computer readable storage media of claim 16 further comprising data that, when accessed by a machine, causes the machine to perform operations comprising: resuming access to the first device when the connection status is the connected status after the failover is detected.

21. A system comprising:

a processor;

a plurality of devices having a plurality of device types coupled to the processor via a plurality of adapters; and

a memory coupled to the processor, the memory containing program code that, when executed by the processor, causes the processor to:

detect a failover of a first path connecting one of the adapters to a first device in a plurality of physical devices having a plurality of device types, the one of the adapters being controlled by a low level driver that interfaces to a universal multipath driver (UMD),

determine a connection status of the first device if the failover is detected, the connection status being one of a connected status and a disconnected status, the disconnected status corresponding to the failover, and

adjust the first path according to the connection status.

22. The system of claim 21 wherein the program code causing the processor to detect comprises program code that, when executed by the processor, causes the processor to:

determine if a first device name of the first device is in a list of disconnected devices.

23. The system of claim 21 wherein the program code causing the processor to determine the connection status comprises program code that, when executed by the processor, causes the processor to:

send a command to the first device, the command returning the connection status.

24. The system of claim 23 wherein the program code causing the processor to adjust the first path comprises program code that, when executed by the processor, causes the processor to:

remove the first device name from the first list if the returned connection status is the connected status.

25. The system of claim 21 wherein the program code further comprises program code that, when executed by the processor, causes the processor to:

establish an alternate path connecting the one of the adapters to an alternate device for the first device when the failover is detected, the alternate device being active prior to the failover.

26. The system of claim 21 wherein the program code further comprises program code that, when executed by the processor, causes the processor to:

establish an alternate path connecting the one of the adapters to an alternate device for the first device when the failover is detected, the alternate device being passive prior to the failover.

27. The system of claim 21 wherein the program code further comprises program code that, when executed by the processor, causes the processor to:

establish the first path to the first device when the connection status is the connected status after the failover is detected.

28. The system of claim 21 wherein the program code causing the processor to detect the failover comprises program code that, when executed by the processor, causes the processor to:

detect the failover of the first path corresponding to the first device in a plurality of physical devices having a plurality of different device types, the plurality of device types including at least two of a disk device, a tape device, a redundant array of inexpensive disks (RAID) subsystem, and a tape library.

29. The system of claim 21 wherein the program code further comprises program code that, when executed by the processor, causes the processor to:

suspend access to the first device if the failover is detected.

30. The system of claim 26 wherein the program code further comprises program code that, when executed by the processor, causes the processor to:

resume access to the first device when the connection status is the connected status after the failover is detected.

Assignments (14)
AMENDED AND RESTATED PATENT SECURITY AGREEMENT Recorded Jun 27, 2025
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION; UNISYS NPL, INC.; UNISYS AP INVESTMENT COMPANY I
To: COMPUTERSHARE TRUST COMPANY, N.A., AS COLLATERAL TRUSTEE
Reel/Frame 071759/0527 →
SECURITY INTEREST Recorded Nov 19, 2020
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 054481/0865 →
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 054231/0496 →
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION (SUCCESSOR TO GENERAL ELECTRIC CAPITAL CORPORATION)
To: UNISYS CORPORATION
Reel/Frame 044416/0358 →
SECURITY INTEREST Recorded Oct 6, 2017
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044144/0081 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →
RELEASE OF SECURITY INTEREST Recorded Mar 26, 2013
From: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
To: UNISYS CORPORATION
Reel/Frame 030082/0545 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2013
From: DEUTSCHE BANK TRUST COMPANY
To: UNISYS CORPORATION
Reel/Frame 030004/0619 →
SECURITY AGREEMENT Recorded May 3, 2012
From: UNISYS CORPORATION
To: DEUTSCHE BANK NATIONAL TRUST COMPANY
Reel/Frame 028147/0218 →
SECURITY AGREEMENT Recorded Jun 27, 2011
From: UNISYS CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
Reel/Frame 026509/0001 →
RELEASE BY SECURED PARTY Recorded Sep 14, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023263/0631 →
RELEASE BY SECURED PARTY Recorded Jul 31, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023312/0044 →
SECURITY AGREEMENT Recorded Jun 20, 2006
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
To: CITIBANK, N.A.
Reel/Frame 018003/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2002
From: ATHREYA, GIRIDHAR; LEGG, CHRIS B.; ORTIZ, JUAN CARLOS
To: UNISYS CORPORATION
Reel/Frame 013598/0191 →