IP Library › Granted Patent US 11,789,657
Granted Patent B2
US 11,789,657 · App. 17/508,587 · Granted Oct 17, 2023

Devices, systems, and methods for transparently intercepting data stored on a storage device and providing services related to the data

Inventors: Wai T. Lam (Jericho, NY); Sammy Tam (Plainview, NY); Li-Hsiang Cheng (Staten Island, NY); Tomasz Jaworski (Northport, NY)
Assignee: CIRRUS DATA SOLUTIONS INC.
G06F3/0659G06F3/0604G06F3/0617G06F3/0635G06F3/0673
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,789,657
App. No.
17/508,587
Granted
Oct 17, 2023
Kind
B2
Abstract

An intercept engine is installed on a computer and includes an intercept filter adapted to intercept selected commands transmitted between a file system and a storage device. The intercept engine also includes an intercept manager adapted to transmit to the intercept filter one or more primitives, wherein each primitive includes device information specifying a device, wherein a command directed to the specified device is to be intercepted, command type information specifying a type of command to be intercepted, and follow-up action information specifying an action to be performed after the command has been intercepted. A primitive may also include default action information specifying an action to be performed with respect to the command if a communication between the intercept filter and the intercept manager is interrupted. The intercept engine intercepts commands transmitted between the file system and the storage device in accordance with the one or more primitives.

Claims (61)

1. An intercept engine comprising:

an intercept filter adapted to intercept selected commands transmitted between a file system and a storage device; and

an intercept manager adapted to transmit to the intercept filter one or more primitives, each primitive comprising:

device information specifying a device, wherein a command directed to the specified device is to be intercepted;

command type information specifying a type of command to be intercepted; and

follow-up action information specifying an action to be performed after the command has been intercepted;

wherein the primitive further comprises:

default action information specifying an action to be performed with respect to the command if a communication between the intercept filter and the intercept manager is interrupted.

2. The intercept engine of claim 1 , wherein the intercept engine and the file system reside and operate in a single computer.

3. The intercept engine of claim 2 , wherein the storage device is linked to the computer.

4. The intercept engine of claim 1 , wherein the command type information specifies one of: a read command and a write command.

5. An intercept engine comprising:

an intercept filter adapted to intercept selected commands transmitted between a file system and a storage device; and

an intercept manager adapted to transmit to the intercept filter one or more primitives, each primitive comprising:

device information specifying a device, wherein a command directed to the specified device is to be intercepted;

command type information specifying a type of command to be intercepted; and

follow-up action information specifying an action to be performed after the command has been intercepted;

wherein the follow-up action includes an instruction to perform one of the following actions:

with respect to a command transmitted from the file system to the storage device, hold the command and wait until further instruction is received from the intercept manager;

with respect to a command transmitted from the file system to the storage device, notify the intercept manager and execute the command;

with respect to a command transmitted from the storage device to the file system, hold the command until confirmation that the command has been performed is received from the intercept manager; and

with respect to a command transmitted from the storage device to the file system, hold the command and wait until further instruction is received from the intercept manager.

6. A method comprising:

installing the intercept engine of claim 1 on a computer;

installing on the computer an application adapted to migrate selected data stored the storage device to a second storage device;

copying, by the application, one or more first data blocks associated with the selected data, from the storage device to the second storage device;

intercepting, by the intercept engine, write commands transmitted between a file system of the computer and the storage device;

for each write command intercepted:

allowing, by the intercept engine, the write command to be executed on the storage device; and

recording, by the intercept engine, in a changed data map, a location of the data stored;

copying, by the application, one or more second data blocks from the storage device to the second storage device, based on the changed data map.

7. A device comprising:

a storage device adapted to store data;

a file system adapted to store data in the storage device;

an intercept filter adapted to intercept selected commands transmitted between the file system and the storage device; and

an intercept manager adapted to transmit to the intercept filter one or more primitives, each primitive comprising:

device information specifying a device, wherein a command directed to the specified device is to be intercepted;

command type information specifying a type of command to be intercepted; and

follow-up action information specifying an action to be performed after the command has been intercepted;

wherein the primitive further comprises:

default action information specifying an action to be performed with respect to the command if a communication between the intercept filter and the intercept manager is interrupted.

8. The device of claim 7 , wherein the command type information specifies one of: a read command and a write command.

9. A device comprising:

a storage device adapted to store data;

a file system adapted to store data in the storage device;

an intercept filter adapted to intercept selected commands transmitted between the file system and the storage device; and

an intercept manager adapted to transmit to the intercept filter one or more primitives, each primitive comprising:

device information specifying a device, wherein a command directed to the specified device is to be intercepted;

command type information specifying a type of command to be intercepted; and

follow-up action information specifying an action to be performed after the command has been intercepted;

wherein the follow-up action includes an instruction to perform one of the following actions:

with respect to a command transmitted from the file system to the storage device, hold the command and wait until further instruction is received from the intercept manager;

with respect to a command transmitted from the file system to the storage device, notify the intercept manager and execute the command;

with respect to a command transmitted from the storage device to the file system, hold the command until confirmation that the command has been performed is received from the intercept manager; and

with respect to a command transmitted from the storage with respect to a command transmitted from the storage device to the file system, hold the command and wait until further instruction is received from the intercept manager.

10. The intercept engine of claim 5 , wherein the intercept engine and the file system reside and operate in a single computer.

11. The intercept engine of claim 10 , wherein the storage device is linked to the computer.

12. The intercept engine of claim 5 , wherein the command type information specifies one of: a read command and a write command.

13. A method comprising: installing the intercept engine of claim 5 on a computer; installing on the computer an application adapted to migrate selected data stored in the storage device to a second storage device; copying, by the application, one or more first data blocks associated with the selected data, from the storage device to the second storage device; intercepting, by the intercept engine, write commands transmitted between a file system of the computer and the storage device; for each write command intercepted: allowing, by the intercept engine, the write command to be executed on the storage device; and recording, by the intercept engine, in a changed data map, a location of the data stored; copying, by the application, one or more second data blocks from the storage device to the second storage device, based on the changed data map.

14. The device of claim 7 , wherein the command type information specifies one of: a read command and a write command.

15. The device of claim 9 , wherein the command type information specifies one of: a read command and a write command.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2021
From: LAM, WAI T.; TAM, SAMMY; CHENG, LI-HSIANG; JAWORSKI, TOMASZ
To: CIRRUS DATA SOLUTIONS INC.
Reel/Frame 057881/0828 →
Continuity (2)
Provisional Application 63104901 · Oct 23, 2020
Related Publication 20220129202A1 · Apr 28, 2022