IP Library Granted Patent US 10,599,446
Granted Patent B2
US 10,599,446 · App. 15/981,170 · Granted Mar 24, 2020

Mechanism for transparent virtual tape engines restart

Inventors: Mikhail Tolstoy (Saint Petersburg, RU); Yuri Kotov (Saint Petersburg, RU); Dmitry Ashkadov (Saint Petersburg, RU); Mikhail Saravayskiy (Saint Petersburg, RU)
Assignee: EMC IP Holding Company LLC
G06F9/4416G06F3/0617G06F3/0634G06F3/0656G06F3/0664G06F3/0682G06F9/45533G06F11/00G11B5/00813G11B15/026
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,599,446
App. No.
15/981,170
Filed
May 16, 2018
Granted
Mar 24, 2020
Kind
B2
Art Unit
2186
USPC
713/2
Abstract

A mechanism for transparent (or non-disruptive) virtual tape engines restart. Specifically, the disclosed mechanism entails preserving a pre-restart state prior to restarting a virtual tape engine, followed by restoring the pre-restart state after the restarting in order to achieve transparency.

Claims (133)

1. A method for restarting virtual tape engines (VTEs), comprising:

receiving a restart request comprising a VTE configuration for a VTE; and

processing the restart request to restart the VTE by:

storing the VTE configuration in a shared data buffer (SDB) residing on the VTE;

detaching a set of virtual tape drives from the VTE;

preserving a tape drive state (TDS), a set of tape drive processes (TDPs), and input/output (I/O) network traffic associated with each virtual tape drive of the set of virtual tape drives, in the SDB; and

after the preserving, restarting the VTE.

2. The method of claim 1 , wherein detaching the set of virtual tape drives from the VTE comprises:

issuing a busy notification to a mainframe operatively connected to the VTE;

after confirming reception of the busy notification from the mainframe, for each virtual tape drive of the set of virtual tape drives on the VTE:

severing a connection between the virtual tape drive and a mainframe interface operatively connected to the mainframe;

suspending the set of TDPs supporting the virtual tape drive;

suspending a set of outgoing network packets of the I/O network traffic associated with the virtual tape drive, wherein the set of outgoing network packets is awaiting transmission to the mainframe;

suspending a set of incoming network packets of the I/O network traffic associated with the virtual tape drive, wherein the set of incoming network packets is awaiting processing by the VTE;

obtaining the TDS comprising a current state of the virtual tape drive; and

unmounting the virtual tape drive from a directory within a VTE filesystem residing on the VTE.

3. The method of claim 1 , further comprising:

following a re-activation of the VTE after the restarting:

obtaining the VTE configuration from the SDB;

reading the VTE configuration to identify a restore from saved state (RSS) flag specified therein;

determining that the RSS flag is enabled; and

based on the determining, configuring the VTE using a preserved state.

4. The method of claim 3 , wherein configuring the VTE using the preserved state comprises:

for each virtual tape drive of the set of virtual tape drives:

obtaining the TDS for the virtual tape drive from the SDB;

re-creating the virtual tape drive using the TDS; and

re-creating a tape drive agent (TDA) responsible for the virtual tape drive, and

after re-creating each virtual tape drive and each TDA:

re-attaching the set of virtual tape drives to the VTE, wherein restoring the preserved state comprises at least the re-creating and the re-attaching.

5. The method of claim 4 , wherein re-attaching the set of virtual tape drives to the VTE comprises:

for each virtual tape drive of the set of virtual tape drives:

re-establishing a connection between the virtual tape drive and a mainframe interface operatively connected to a mainframe;

unsuspending the set of TDPs supporting the virtual tape drive;

unsuspending a set of outgoing network packets of the I/O network traffic associated with the virtual tape drive, wherein the set of outgoing network packets is awaiting transmission to the mainframe;

unsuspending a set of incoming network packets of the I/O network traffic associated with the virtual tape drive, wherein the set of incoming network packets is awaiting processing by the VTE; and

re-mounting the virtual tape drive to a directory within a VTE filesystem residing on the VTE, and

after re-mounting each virtual tape drive of the set of virtual tape drives:

issuing a ready notification to the mainframe through the mainframe interface.

6. The method of claim 1 , further comprising:

following a re-activation of the VTE after the restarting:

obtaining the VTE configuration from the SDB;

reading the VTE configuration to identify a restore from saved state (RSS) flag specified therein;

determining that the RSS flag is disabled; and

based on the determining, configuring the VTE using an initial state.

7. The method of claim 6 , wherein configuring the VTE using the initial state comprises:

for each new virtual tape drive of a set of new virtual tape drives specified in the VTE configuration:

extracting a tape drive configuration (TDC) for the new virtual tape drive from the VTE configuration;

creating the new virtual tape drive using the TDC; and

creating a new tape drive agent (TDA) responsible for the new virtual tape drive, and

after creating each new virtual ape drive and each new TDA:

attaching the set of new virtual tape drives to the VTE, wherein setting the initial state comprises at least the creating.

8. The method of claim 7 , wherein attaching the set of new virtual tape drives to the VTE comprises:

for each new virtual tape drive of the set of new virtual tape drives:

establishing a connection between the new virtual tape drive and a mainframe interface operatively connected to a mainframe; and

mounting the new virtual tape drive to a directory within a VTE filesystem residing on the VTE, and

after mounting each new virtual tape drive of the set of new virtual tape drives:

issuing a ready notification to the mainframe through the mainframe interface.

9. A system, comprising:

a requesting entity; and

a virtual tape solution (VTS) operatively connected to the requesting entity, and programmed to:

receive, from the requesting entity, a restart request comprising a set of virtual tape engine (VTE) IDs and a set of VTE configurations; and

process the restart request to restart a set of VTEs by:

for each VTE of the set of VTEs:

identifying the VTE using a VTE ID of the set of VTE IDs, and

delegating, to the VTE, a VTE configuration of the set of VTE configurations.

10. The system of claim 9 , wherein each VTE of the set of VTEs is a server forming the VTS.

11. The system of claim 9 , wherein each VTE of the set of VTEs comprises:

a mainframe interface;

a set of virtual tape drives operatively connected to the mainframe interface;

a set of tape drive agents (TDAs) responsible for the set of virtual tape drives;

a tape drives manager (TDM) responsible for the set of TDAs;

a mainframe interface driver (MID) managing communications between the mainframe interface and the set of virtual tape drives;

a VTE kernel overseeing at least the TDM and the MID; and

a shared data buffer (SDB) for storing at least the VTE configuration.

12. The system of claim 9 , further comprising:

a mainframe operatively connected to each VTE of the set of VTEs.

13. A non-transitory computer readable medium (CRM) comprising computer readable program code, which when executed by a computer processor, enables the computer processor to:

receive a restart request comprising a VTE configuration for a VTE; and

process the restart request to restart the VTE by:

storing the VTE configuration in a shared data buffer (SDB) residing on the VTE;

detaching a set of virtual tape drives from the VTE;

preserving a tape drive state (TDS), a set of tape drive processes (TDPs), and input/output (I/O) network traffic associated with each virtual tape drive of the set of virtual tape drives, in the SDB; and

after the preserving, restarting the VTE.

14. The non-transitory GRIM of claim 13 , wherein to detach the set of virtual tape drives from the VTE, the computer readable program code, which when executed by the computer processor, enables the computer processor to:

issue a busy notification to a mainframe operatively connected to the VTE;

after confirming reception of the busy notification from the mainframe, for each virtual tape drive of the set of virtual tape drives on the VTE:

sever a connection between the virtual tape drive and a mainframe interface operatively connected to the mainframe;

suspend the set of TDPs supporting the virtual tape drive;

suspend a set of outgoing network packets of the I/O network traffic associated with the virtual tape drive, wherein the set of outgoing network packets is awaiting transmission to the mainframe;

suspend a set of incoming network packets of the I/O network traffic associated with the virtual tape drive, wherein the set of incoming network packets is awaiting processing by the VTE;

obtain the TDS comprising a current state of the virtual tape drive; and

unmount the virtual tape drive from a directory within a VTE filesystem residing on the VTE.

15. The non-transitory CRM of claim 13 , further comprising computer readable program code, which when executed by the computer processor, enables the computer processor to:

following a re-activation of the VTE after the restarting:

obtain the VTE configuration from the SDB;

read the VTE configuration to identify a restore from saved state (RSS) flag specified therein;

determine that the RSS flag is enabled; and

based on the determining, configure the VTE using a preserved state.

16. The non-transitory CRM of claim 15 , wherein to configure the VTE using the preserved state, the computer readable program code, which when executed by the computer processor, enables the computer processor to:

for each virtual tape drive of the set of virtual tape drives:

obtain the TDS for the virtual tape drive from the SDB;

re-create the virtual tape drive using the TDS; and

re-create a tape drive agent (TDA) responsible for the virtual tape drive, and

after re-creating each virtual tape drive and each TDA:

re-attach the set of virtual tape drives to the VTE, wherein restoring the preserved state comprises at least the re-creating and the re-attaching.

17. The non-transitory CRM of claim 16 , wherein to re-attach the set of virtual tape drives to the VTE, the computer readable program code, which when executed by the computer processor, enables the computer processor to:

for each virtual tape drive of the set of virtual tape drives:

re-establish a connection between the virtual tape drive and a mainframe interface operatively connected to a mainframe;

unsuspend the set of TDPs supporting the virtual tape drive;

unsuspend a set of outgoing network packets of the I/O network traffic associated with the virtual tape drive, wherein the set of outgoing network packets is awaiting transmission to the mainframe;

unsuspend a set of incoming network packets of the I/O network traffic associated with the virtual tape drive, wherein the set of incoming network packets is awaiting processing by the VTE; and

re-mount the virtual tape drive to a directory within a VTE filesystem residing on the VTE, and

after re-mounting each virtual tape drive of the set of virtual tape drives:

issue a ready notification to the mainframe through the mainframe interface.

18. The non-transitory CRM of claim 13 , further comprising computer readable program code, which when executed by the computer processor, enables the computer processor to:

following a re-activation of the VTE after the restarting:

obtain the VTE configuration from the SDB;

read the VTE configuration to identify a restore from saved state (RSS) flag specified therein;

determine that the RSS flag is disabled; and

based on the determining, configure the VTE using an initial state.

19. The non-transitory CRM of claim 18 , wherein to configure the VTE using the initial state, the computer readable program code, which when executed by the computer processor, enables the computer processor to:

for each new virtual tape drive of a set of new virtual tape drives specified in the VTE configuration:

extract a tape drive configuration (TDC) for the new virtual tape drive from the VTE configuration;

create the new virtual tape drive using the TDC; and

create a new tape drive agent (TDA) responsible for the new virtual tape drive, and

after creating each new virtual tape drive and each new TDA:

attach the set of new virtual tape drives to the VTE, wherein setting the initial state comprises at least the creating.

20. The non-transitory CRM of claim 19 , wherein to attach the set of new virtual tape drives to the VTE, the computer readable program code, which when executed by the computer processor, enables the computer processor to:

for each new virtual tape drive of the set of new virtual tape drives:

establish a connection between the new virtual tape drive and a mainframe interface operatively connected to a mainframe; and

mount the new virtual tape drive to a directory within a VTE filesystem residing on the VTE and

after mounting each new virtual tape drive of the set of new virtual tape drives:

issue a ready notification to the mainframe through the mainframe interface.

Assignments (8)
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 (047648/0422) Recorded May 20, 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 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
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 047648/0422 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2018
From: TOLSTOY, MIKHAIL; KOTOV, YURI; ASHKADOV, DMITRY; SARAVAYSKIY, MIKHAIL
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045882/0386 →
Priority Claims (1)
RU 2017137964 · Oct 31, 2017 · national
Continuity (1)
Related Publication 20190129726A1 · May 2, 2019