IP Library Granted Patent US 11,966,767
Granted Patent B2
US 11,966,767 · App. 17/082,542 · Granted Apr 23, 2024

Enabling dial home service requests from an application executing in an embedded environment

Inventors: Deepak Vokaliga (Hopkinton, MA); William Hatstat (Spencer, MA); Gopalakrishna Manjunatha (Bangalore, IN)
Assignee: Dell Products, L.P.
G06F9/45558G06F9/544G06F2009/45583G06F2009/45591
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,966,767
App. No.
17/082,542
Granted
Apr 23, 2024
Kind
B2
Abstract

A system application, such as a cloud tethering subsystem, is instantiated to execute in an embedded environment of a storage system. Errors of the system application that require external support such as memory overflows, daemon errors, etc., are collected and posted using an error reporting system call to an operating system of the storage system in which the virtualized environment is executing. The storage system operating system posts the errors to an error system reporting system as a dial home service request on behalf of the system application. In this manner, the system application can issue dial home service requests without having direct access to the external error resolution system. In some embodiments, a guest operating system utility uses a SCSI mechanism to post errors to the storage system operating system.

Claims (50)

1. A non-transitory tangible computer readable storage medium having stored thereon a computer program for enabling dial home service requests from an application executing in an embedded environment, the computer program including a set of instructions which, when executed by a computer, cause the computer to perform a method comprising the steps of:

instantiating an application in a container virtualized from a storage system Operating System (OS) by a storage system hypervisor, the container including a guest OS;

providing a guest OS utility in the guest OS, the guest OS utility being implemented as an Application Programming Interface (API) to the guest OS that is configured to receive application execution errors generated and posted by the application that is executing in the container in the context of the guest OS;

executing the application in the context of the guest OS;

generating an application execution error by the application;

receiving the error by an error reporting subsystem in the container;

determining a type of error by the error reporting subsystem;

selecting an application error code for the error by the error reporting subsystem based on the type of error;

posting the application error code, by the error reporting subsystem to the guest OS utility;

receiving the application error code, by the guest OS utility;

in response to receiving the application error code, generating a storage system OS error reporting system call (syscall) containing the application error code, and posting the error reporting syscall, by the guest OS utility to the storage system OS, to enable the guest OS to communicate the application error code to the storage system OS; and

in response to receipt of the posted system call, processing the error reporting syscall by the storage system OS and transmitting, by the storage system OS, the application error code to an external error resolution system as a dial-home service request, the external error resolution system executing outside the context of the storage system OS.

2. The non-transitory tangible computer readable storage medium of claim 1 , wherein the application is a cloud tethering subsystem containing control logic configured to select snapshots of data volumes and ship the selected snapshots of data volumes to a cloud repository.

3. The non-transitory tangible computer readable storage medium of claim 2 , wherein the application has external network interfaces configured to communicate with the cloud repository.

4. The non-transitory tangible computer readable storage medium of claim 2 , wherein the application has a Representational State Transfer (REST) API configured to communicate with a storage system management application.

5. The non-transitory tangible computer readable storage medium of claim 1 , wherein the guest OS utility is a multi-run API, the method further comprising collecting a first set of application execution errors and errors associated with the container, and posting by the multi-run guest OS utility the first set of application execution errors and the errors associated with the container using one of the system calls.

6. The non-transitory tangible computer readable storage medium of claim 1 , wherein the step of posting, by the guest OS utility, the application execution errors and the errors associated with the container as system calls in the storage system OS, comprises:

creating a logical storage volume and installing the logical storage volume in the guest OS;

implementing a write Input/Output (IO) on the logical storage volume by writing a first Small Computer System Interface (SCSI) Command Descriptor Block (CDB) to the logical storage volume by the guest OS utility, and

implementing a read IO on the logical storage volume by reading back a second SCSI CDB from the logical storage volume by the guest OS utility;

wherein the first SCSI CDB contains the system call.

7. The non-transitory tangible computer readable storage medium of claim 6 , further comprising receiving the write IO by a front-end adapter and storing the write IO in a scratch slot on the storage system.

8. The non-transitory tangible computer readable storage medium of claim 7 , further comprising receiving the read IO by a front-end adapter, reading the system call from the scratch slot, and passing the system call to the storage system OS.

9. The non-transitory tangible computer readable storage medium claim 1 , wherein the error reporting subsystem contains a table of errors used by the storage system operating system to classify the application execution errors on the storage system.

10. The non-transitory tangible computer readable storage medium of claim 9 , wherein the table of errors includes error codes for all possible dial-home errors used by the storage system OS in connection with communication with the external error resolution system.

11. A method of enabling dial home service requests from an application executing in an embedded environment, the method comprising the steps of:

instantiating an application in a container virtualized from a storage system Operating System (OS) by a storage system hypervisor, the container including a guest OS;

providing a guest OS utility in the guest OS, the guest OS utility being implemented as an Application Programming Interface (API) to the guest OS that is configured to receive application execution errors generated and posted by the application that is executing in the container in the context of the guest OS;

executing the application in the context of the guest OS;

generating an application execution error by the application;

receiving the error by an error reporting subsystem in the container;

determining a type of error by the error reporting subsystem;

selecting an application error code for the error by the error reporting subsystem based on the type of error;

posting the application error code, by the error reporting subsystem to the guest OS utility;

receiving the application error code, by the guest OS utility;

in response to receiving the application error code, generating a storage system OS error reporting system call (syscall) containing the application error code, and posting the error reporting syscall, by the guest OS utility to the storage system OS, to enable the guest OS to communicate the application error code to the storage system OS; and

in response to receipt of the posted system call, processing the error reporting syscall by the storage system OS and transmitting, by the storage system OS, the application error code to an external error resolution system as a dial-home service request, the external error resolution system executing outside the context of the storage system OS.

12. The method of claim 11 , wherein the application is a cloud tethering subsystem containing control logic configured to select snapshots of data volumes and ship the selected snapshots of data volumes to a cloud repository.

13. The method of claim 12 , wherein the application has external network interfaces configured to communicate with the cloud repository.

14. The method of claim 12 , wherein the application has a Representational State Transfer (REST) API configured to communicate with a storage system management application.

15. The method of claim 11 , wherein the guest OS utility is a multi-run API, the method further comprising collecting a first set of application execution errors and errors associated with the container, and posting by the multi-run guest OS utility the first set of application execution errors and the errors associated with the container using one of the system calls.

16. The method of claim 11 , wherein the step of posting, by the guest OS utility, the application execution errors and the errors associated with the container as system calls in the storage system OS, comprises:

creating a logical storage volume and installing the logical storage volume in the guest OS;

implementing a write Input/Output (IO) on the logical storage volume by writing a first Small Computer System Interface (SCSI) Command Descriptor Block (CDB) to the logical storage volume by the guest OS utility, and

implementing a read IO on the logical storage volume by reading back a second SCSI CDB from the logical storage volume by the guest OS utility;

wherein the first SCSI CDB contains the system call.

17. The method of claim 16 , further comprising receiving the write IO by a front-end adapter and storing the write IO in a scratch slot on the storage system.

18. The method of claim 17 , further comprising receiving the read IO by a front-end adapter, reading the system call from the scratch slot, and passing the system call to the storage system OS.

19. The method of claim 11 , wherein the error reporting subsystem contains a table of errors used by the storage system operating system to classify the application execution errors on the storage system.

20. The method of claim 19 , wherein the table of errors includes error codes for all possible dial-home errors used by the storage system OS in connection with communication with the external error resolution system.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2020
From: VOKALIGA, DEEPAK; HATSTAT, WILLIAM; MANJUNATHA, GOPALAKRISHNA
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054196/0674 →
Continuity (1)
Related Publication 20220129291A1 · Apr 28, 2022