IP Library Granted Patent US 11,372,951
Granted Patent B2
US 11,372,951 · App. 16/711,742 · Granted Jun 28, 2022

Proxy license server for host-based software licensing

Inventors: Mahalakshmi Sokkalal (Bangalore, IN); Maneesh Pusalkar (Pune, IN); Vigneshwaran Rajasekaran (Bangalore, IN); Surendra Singh Chauhan (Bangalore, IN); Udit Tyagi (Bangalore, IN); Nagaveni Bhavi (Bagalkot, IN); Gopinath Marappan (Coimbatore, IN)
Assignee: EMC IP Holding Company LLC
G06F21/105G06F13/4027G06F13/4072G06F21/12G06F2221/0773
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 11,372,951
App. No.
16/711,742
Granted
Jun 28, 2022
Kind
B2
Abstract

An apparatus includes a first host device comprising a first multi-path input-output (MPIO) driver configured to discover additional MPIO drivers of additional host devices of an enterprise system that utilize a given piece of software for controlling delivery of input-output operations to a storage system over selected ones of a plurality of paths through a network, the given software being licensed by a license server external to the enterprise system. The first MPIO driver is also configured to obtain a pool of licenses for the given software from the license server and to receive from a given one of the additional MPIO drivers a request for a license to utilize the given software. The first MPIO driver is further configured to check out one of the pool of licenses and enable use of the given software by the given additional MPIO based at least in part on the checked-out license.

Claims (40)

1. An apparatus comprising:

a first host device of a plurality of host devices in an information technology infrastructure configured to communicate over a first network with a storage system comprising a plurality of storage devices;

the first host device comprising a first multi-path input-output driver configured:

to discover, over the first network, one or more additional multi-path input-output drivers of one or more additional ones of the plurality of host devices of the enterprise system information technology infrastructure that utilize a given piece of software for controlling delivery of input-output operations to the storage system over selected ones of a plurality of paths through the network, the given piece of software being licensed by a license server external to the information technology infrastructure;

to obtain, from the license server via a second network different than the first network, a pool of two or more licenses for the given piece of software;

to receive, over the first network from a given one of the additional multi-path input-output drivers of a given one of the additional host devices, a request for a license to utilize the given piece of software;

to check out one of the pool of two or more licenses for the given piece of software for use by the given additional multi-path input-output driver of the given additional host device; and

to enable, via communication over the first network, use of the given piece of software by the given additional multi-path input-output driver of the given additional host device based at least in part on the checked-out license for the given piece of software;

wherein enabling use of the given piece of software by the given additional multi-path input-output driver of the given additional host device comprises persisting a license status of the given additional multi-path input-output driver in at least one of a kernel of the given additional host device and a process memory of the given additional host device.

2. The apparatus of claim 1 wherein the plurality of host devices are on a same subnet of the first network, the first network comprising an internal network of managed by an operator of the information technology infrastructure.

3. The apparatus of claim 1 wherein discovering the one or more additional multi-path input-output drivers comprises utilizing secure socket communications in the first network, the first network comprising an internal network of managed by an operator of the information technology infrastructure.

4. The apparatus of claim 3 wherein the secure socket communications utilize mutual authentication based at least in part on a server certificate of the first multi-path input-output driver of the first host device and client certificates of the one or more additional multi-path input-output drivers of the one or more additional host devices.

5. The apparatus of claim 1 wherein the first network comprises a private network not accessible to the license server.

6. The apparatus of claim 1 wherein enabling use of the given piece of software by the given additional multi-path input-output driver of the given additional host device based at least in part on the checked-out license comprises setting a license status of the given additional multi-path input-output driver without transferring a license key to the given additional multi-path input-output driver.

7. The apparatus of claim 1 wherein the first multi-path input-output driver comprises a management appliance configured to manage the one or more additional multi-path input-output drivers of the one or more additional host devices providing respective production hosts for the given piece of software in the information technology infrastructure.

8. The apparatus of claim 1 wherein the first multi-path input-output driver is further configured to perform the step of periodically renewing the checked-out license for the given additional multi-path input-output driver of the given additional host device.

9. The apparatus of claim 8 wherein periodically renewing the checked-out license comprises receiving a renewal request from the given additional multi-path input-output driver responsive to expiration of a designated period of time.

10. The apparatus of claim 1 wherein the pool of two or more licenses is issued for the plurality of host devices collectively, and wherein a given one of the pool of two or more licenses is configured to be checked-out for use by a first one of the one or more additional multi-path input-output drivers of a first one of the one or more additional host devices for a first period of time and to be checked-out for use by a second one of the one or more additional multi-path input-output drivers of a second one of the one or more additional host devices for a second period of time.

11. The apparatus of claim 1 wherein the pool of two or more licenses is issued independent of hardware configurations of the plurality of host devices, and wherein a given one of the pool of two or more licenses is configured to be checked-out for use by a first one of the one or more additional multi-path input-output drivers of a first one of the one or more additional host devices with a first hardware configuration for a first period of time and to be checked-out for use by a second one of the one or more additional multi-path input-output drivers of a second one of the one or more additional host devices with a second hardware configuration for a second period of time.

12. The apparatus of claim 1 wherein the pool of two or more licenses is issued independent of software platform configurations of the plurality of host devices, and wherein a given one of the pool of two or more licenses is configured to be checked-out for use by a first one of the one or more additional multi-path input-output drivers of a first one of the one or more additional host devices with a first software platform configuration for a first period of time and to be checked-out for use by a second one of the one or more additional multi-path input-output drivers of a second one of the one or more additional host devices with a second software platform configuration for a second period of time.

13. The apparatus of claim 1 wherein the first multi-path input-output driver is further configured to update the pool of two or more licenses issued by the license server while maintaining license status of ones of the one or more additional multi-path input-output drivers of ones of the one or more additional host devices with checked-out ones of the pool of two or more licenses.

14. A method comprising steps of:

configuring a first multi-path input-output driver of a first one of a plurality of host devices of an information technology infrastructure to discover, over a first network, one or more additional multi-path input-output drivers of one or more additional ones of the plurality of host devices of the information technology infrastructure that utilize a given piece of software for controlling delivery of input-output operations to a storage system over selected ones of a plurality of paths through the first network, the given piece of software being licensed by a license server external to the information technology infrastructure;

obtaining, by the first multi-path input-output driver from the license server via a second network different than the first network, a pool of two or more licenses for the given piece of software;

receiving, over the first network at the first multi-path input-output driver from a given one of the additional multi-path input-output drivers of a given one of the additional host devices, a request for a license to utilize the given piece of software;

checking out, by the first multi-path input-output driver, one of the pool of two or more licenses for the given piece of software for use by the given additional multi-path input-output driver of the given additional host device; and

enabling, via communication over the first network, use of the given piece of software by the given additional multi-path input-output driver of the given additional host device based at least in part on the checked-out license for the given piece of software;

wherein enabling use of the given piece of software by the given additional multi-path input-output driver of the given additional host device comprises persisting a license status of the given additional multi-path input-output driver in at least one of a kernel of the given additional host device and a process memory of the given additional host device.

15. The method of claim 14 wherein the first network comprises a private network not accessible to the license server.

16. The method of claim 14 wherein the pool of two or more licenses is issued for the plurality of host devices collectively, and wherein a given one of the pool of two or more licenses is configured to be checked-out for use by a first one of the one or more additional multi-path input-output drivers of a first one of the one or more additional host devices for a first period of time and to be checked-out for use by a second one of the one or more additional multi-path input-output drivers of a second one of the one or more additional host devices for a second period of time.

17. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by a first one of a plurality of host devices of an information technology infrastructure comprising a first multi-path input-output driver, causes the first multi-path input-output driver:

to discover, over a first network, one or more additional multi-path input-output drivers of one or more additional ones of the plurality of host devices of the information technology infrastructure that utilize a given piece of software for controlling delivery of input-output operations to a storage system over selected ones of a plurality of paths through the first network, the given piece of software being licensed by a license server external to the information technology infrastructure;

to obtain, from the license server via a second network different than the first network, a pool of two or more licenses for the given piece of software;

to receive, over the first network a from a given one of the additional multi-path input-output drivers of a given one of the additional host devices, a request for a license to utilize the given piece of software;

to check out one of the pool of two or more licenses for the given piece of software for use by the given additional multi-path input-output driver of the given additional host device; and

to enable, via communication over the first network, use of the given piece of software by the given additional multi-path input-output driver of the given additional host device based at least in part on the checked-out license for the given piece of software;

wherein enabling use of the given piece of software by the given additional multi-path input-output driver of the given additional host device comprises persisting a license status of the given additional multi-path input-output driver in at least one of a kernel of the given additional host device and a process memory of the given additional host device.

18. The computer program product of claim 17 wherein the first network comprises a private network not accessible to the license server.

19. The computer program product of claim 17 wherein the pool of two or more licenses is issued for the plurality of host devices collectively, and wherein a given one of the pool of two or more licenses is configured to be checked-out for use by a first one of the one or more additional multi-path input-output drivers of a first one of the one or more additional host devices for a first period of time and to be checked-out for use by a second one of the one or more additional multi-path input-output drivers of a second one of the one or more additional host devices for a second period of time.

20. The computer program product of claim 17 wherein the pool of two or more licenses is issued independent of hardware and software configurations of the plurality of host devices, and wherein a given one of the pool of two or more licenses is configured to be checked-out for use by a first one of the one or more additional multi-path input-output drivers of a first one of the one or more additional host devices with a first hardware and software configuration for a first period of time and to be checked-out for use by a second one of the one or more additional multi-path input-output drivers of a second one of the one or more additional host devices with a second hardware and software configuration for a second period of time.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
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 (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
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 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2019
From: SOKKALAL, MAHALAKSHMI; PUSALKAR, MANEESH; RAJASEKARAN, VIGNESHWARAN; CHAUHAN, SURENDRA SINGH; TYAGI, UDIT; BHAVI, NAGAVENI; MARAPPAN, GOPINATH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051264/0027 →
Cited By (1)
US 12,561,419