IP Library Granted Patent US 10,180,853
Granted Patent B2
US 10,180,853 · App. 15/144,247 · Granted Jan 15, 2019

Session reliability for a redirected mass storage device

Inventor: Gokul Thiruchengode Vajravel (Bangalore, IN)
Assignee: Wyse Technology L.L.C.
G06F9/45558G06F3/0619G06F3/0665G06F3/0689G06F9/452G06F13/4282G06F2009/45579
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 10,180,853
App. No.
15/144,247
Granted
Jan 15, 2019
Kind
B2
Abstract

Session reliability for a redirected mass storage device can be improved by delaying a device removal process when a redirected mass storage device is disconnected. Whenever a session employed to redirect a mass storage device is disconnected, the agent on the server can send a device removal notification to a virtual disk enumerator. Rather than immediately initiating the device removal process, the virtual disk enumerator can pause I/O requests pertaining to the mass storage device and wait a specified amount of time to allow the mass storage device to be reconnected. If the mass storage device is reconnected during the specified amount of time, the paused I/O requests can be resumed. Otherwise, the device removal process can be commenced after the specified amount of time has elapsed.

Claims (41)

1. A method, implemented by a virtual disk enumerator that executes on a server in a virtual desktop infrastructure environment, for improving session reliability for a redirected mass storage device, the method comprising:

receiving, from an agent that executes on the server, a device removal notification that identifies a mass storage device that had been redirected to the server over a remote session but that has been disconnected;

instructing a port driver that executes on the server to pause any I/O requests pertaining to the mass storage device;

waiting for a specified amount of time to determine whether the mass storage device has been reconnected; and

upon determining that the mass storage device has been reconnected prior to the specified amount of time elapsing, instructing the port driver to resume any I/O requests pertaining to the mass storage device, whereas, upon determining that the mass storage device has not been reconnected prior to the specified amount of time elapsing, commencing a device removal process to remove the mass storage device from the server.

2. The method of claim 1 , wherein instructing a port driver that executes on the server to pause any I/O requests pertaining to the mass storage device comprises calling the StorPortPauseDevice( ) routine with a SCSI Bus Id, Target Id, and LUN of the mass storage device as input parameters.

3. The method of claim 2 , wherein instructing the port driver to resume any I/O requests pertaining to the mass storage device comprises calling the StorPortResumeDevice( ) routine with the SCSI Bus Id, Target Id, and LUN of the mass storage device as input parameters.

4. The method of claim 1 , wherein the specified amount of time comprises a session reconnection time period during which the agent attempts to restore a disconnected remote session.

5. The method of claim 1 , wherein determining that the mass storage device has been reconnected prior to the specified amount of time elapsing comprises:

receiving a device connect notification that includes one or more of a disk serial number, vendor id, product id, or disk size; and

comparing one or more of the disk serial number, vendor id, product id, or disk size to one or more of a stored disk serial number, vendor id, product id, or disk size.

6. The method of claim 5 , wherein the device connect notification also includes a session identifier over which the mass storage device has been reconnected, and wherein determining that the mass storage device has been reconnected prior to the specified amount of time elapsing further comprises comparing the session identifier included in the device connect notification with a stored session identifier that is associated with the stored disk serial number, vendor id, product id, or disk size.

7. The method of claim 5 , wherein waiting for a specified amount of time comprises maintaining a timer, and wherein the stored disk serial number, vendor id, product id, or disk size are stored in association with the timer.

8. The method of claim 1 , wherein commencing a device removal process to remove the mass storage device from the server includes causing any I/O requests pertaining to the mass storage device to be completed with an error status.

9. The method of claim 1 , wherein the port driver is a storport driver.

10. A method, implemented by a virtual disk enumerator that executes on a server in a virtual desktop infrastructure environment, for improving session reliability for a redirected mass storage device, the method comprising:

receiving, from an agent that executes on the server, one or more device removal notifications that each identify a mass storage device that had been redirected to the server over a remote session but that has been disconnected, at least one of the one or more device removal notifications including an indication that a server link is down;

instructing a port driver that executes on the server to pause all I/O requests;

waiting for a specified amount of time to determine whether the server link has been reestablished such that:

upon determining that the server link has been reestablished prior to the specified amount of time elapsing, the virtual disk enumerator:

identifies any disconnected mass storage device that has not been reconnected and commences a device removal process to remove each identified mass storage device from the server including to cause any I/O

requests pertaining to an identified mass storage device to be completed with an error status; and

instructs the port driver to resume the paused I/O requests; and

upon determining that the link has not been reestablished prior to the specified amount of time elapsing, the virtual disk enumerator commences a device removal process to remove each of the disconnected mass storage devices.

11. The method of claim 10 , wherein instructing a port driver that executes on the server to pause all I/O requests comprises calling the StorPortNotification( ) routine with “LinkDown” as the value of the NotificationType input parameter.

12. The method of claim 11 , wherein instructing the port driver to resume the paused I/O requests comprises calling the StorPortNotification( ) routine with “LinkUp” as the value of the NotificationType input parameter.

13. The method of claim 10 , wherein the specified amount of time comprises a session reconnection time period during which the agent attempts to restore a disconnected remote session.

14. The method of claim 10 , wherein identifying any disconnected mass storage device that has not been reconnected comprises determining whether a device connect notification that includes one or more of a disk serial number, vendor id, product id, or disk size of the disconnected mass storage device has been received during the specified amount of time.

15. The method of claim 14 , wherein determining whether a device connect notification that includes one or more of a disk serial number, vendor id, product id, or disk size of the disconnected mass storage device has been received during the specified amount of time comprises comparing a disk serial number included in one or more device connect notifications received during the specified amount of time to a disk serial number that was stored to represent the disconnected mass storage devices while the disconnected mass storage device was redirected.

16. The method of claim 10 , wherein a disconnected mass storage device is determined to have been reconnected when a device connect notification is received that contains a disk serial number that matches a disk serial number of the disconnected mass storage device.

17. The method of claim 16 , wherein a disconnected mass storage device is determined to have been reconnected when a device connect notification is received that also contains a session identifier that matches a session identifier stored in association with the disk serial number of the disconnected mass storage device.

18. A virtual desktop infrastructure server comprising:

an agent that is configured to establish remote sessions with client devices including to implement redirection of mass storage devices over the remote sessions; and

a virtual disk enumerator that is configured to delay a device removal process when the virtual disk enumerator receives a device removal notification from the agent by performing the following:

upon receiving a device removal notification in response to a redirected mass storage device being disconnected from the server, notifying a port driver to pause I/O requests;

waiting a specified period of time to allow the disconnected mass storage device to be reconnected; and

upon determining that the disconnected mass storage device has been reconnected during the specified amount of time, instructing the port driver to resume the paused I/O requests.

19. The virtual desktop infrastructure server of claim 18 , wherein notifying the port driver to pause I/O requests comprises one of:

notifying the port driver to pause only I/O requests pertaining to the disconnected mass storage device; or

notifying the port driver to pause all I/O requests when it is determined that the device removal notification indicates that the disconnected mass storage device was disconnected due to a server-side issue.

20. The virtual desktop infrastructure server of claim 19 , wherein when the port driver is notified to pause only I/O requests pertaining to the disconnected mass storage device, instructing the port driver to resume the paused I/O requests comprises instructing the port driver to resume I/O requests pertaining to the disconnected mass storage device, and when the port driver is notified to pause all I/O requests, instructing the port driver to resume the paused I/O requests comprises instructing the port driver to resume all I/O requests.

Assignments (16)
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 →
MERGER Recorded May 9, 2022
From: WYSE TECHNOLOGY L.L.C.
To: DELL MARKETING CORPORATION
Reel/Frame 059912/0109 →
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 SEC. INT. IN PATENTS (NOTES) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040026/0710 →
RELEASE OF SEC. INT. IN PATENTS (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0329 →
RELEASE OF SEC. INT. IN PATENTS (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040013/0733 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 039644/0084 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 039719/0889 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 039643/0953 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2016
From: VAJRAVEL, GOKUL THIRUCHENGODE
To: WYSE TECHNOLOGY L.L.C.
Reel/Frame 038442/0985 →
Continuity (1)
Related Publication 20170315833A1 · Nov 2, 2017