IP Library Granted Patent US 9,886,265
Granted Patent B2
US 9,886,265 · App. 15/492,974 · Granted Feb 6, 2018

Live updating of a changed block tracking driver

Inventors: Charles Coffing (Riverton, UT); Kai Meyer (Lehi, UT)
Assignee: STORAGECRAFT TECHNOLOGY CORPORATION
G06F8/67G06F3/064G06F3/0619G06F3/0659G06F3/0673G06F11/1451G06F11/1464G06F11/1469
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 9,886,265
App. No.
15/492,974
Granted
Feb 6, 2018
Kind
B2
Abstract

Live updating of a changed block tracking (CBT) driver. In one example embodiment, a method for live updating of a CBT driver may include loading a CBT driver into a running operating system and then performing various acts without rebooting the running operating system. These acts may include tracking, using the CBT driver, writes to blocks of a source storage, loading an updated CBT driver into the running operating system with the updated CBT driver having a different name than the CBT driver, handing over the tracking of writes to blocks of the source storage from the CBT driver to the updated CBT driver, and tracking, using the updated CBT driver, writes to blocks of the source storage.

Claims (51)

1. A method for live updating of a changed block tracking (CBT) driver, the method comprising:

loading a CBT driver into a running operating system, the running operating system configured to prevent two drivers having the same name from being loaded simultaneously; and

without rebooting the running operating system, performing the following:

tracking, using the CBT driver, writes to blocks of a source storage;

loading an updated CBT driver into the running operating system, the updated CBT driver having a different name than the CBT driver;

handing over the tracking of writes to blocks of the source storage from the CBT driver to the updated CBT driver; and

tracking, using the updated CBT driver, writes to blocks of the source storage.

2. The method of claim 1 , wherein:

the tracking, using the CBT driver, of writes to blocks of the source storage includes tracking, using the CBT driver, writes to blocks of the source storage in a first CBT map;

the tracking, using the updated CBT driver, of writes to blocks of the source storage includes tracking, using the updated CBT driver, writes to blocks of the source storage in a second CBT map; and

the handing over of the tracking of writes to blocks of the source storage from the CBT driver to the updated CBT driver includes copying the tracking included in the first CBT map to the second CBT map.

3. The method of claim 2 , wherein:

the first CBT map is a first run-length encoded (RLE) list; and

the second CBT map is a second RLE list.

4. The method of claim 2 , wherein a structure of the second CBT map is different than a structure of the first CBT map.

5. The method of claim 1 , wherein the tracking, using the CBT driver, of writes to blocks of the source storage overlaps with the tracking, using the updated CBT driver, of writes to blocks of the source storage.

6. The method of claim 1 , wherein the tracking, using the CBT driver, of writes to blocks of the source storage ceases once the tracking, using the updated CBT driver, of writes to blocks of the source storage begins.

7. The method of claim 6 , wherein the ceasing of the tracking using the CBT driver and a beginning of the tracking using the updated CBT driver is implemented by updating a function pointer.

8. One or more non-transitory computer-readable media storing one or more programs that are configured, when executed, to cause one or more processors to perform the method as recited in claim 1 .

9. A method for live updating of a changed block tracking (CBT) driver, the method comprising:

loading a CBT driver into a running operating system, the running operating system configured to prevent two drivers having the same name from being loaded simultaneously; and

without rebooting the running operating system, performing the following:

tracking, using the CBT driver, writes to blocks of a source storage;

loading an intermediate CBT driver into the running operating system, the intermediate CBT driver having a different name than the CBT driver;

handing over the tracking of writes to blocks of the source storage from the CBT driver to the intermediate CBT driver;

tracking, using the intermediate CBT driver, writes to blocks of the source storage;

unloading the CBT driver from the running operating system;

loading an updated CBT driver into the running operating system, the updated CBT driver having a different name than the intermediate CBT driver but the same name as the CBT driver;

handing over the tracking of writes to blocks of the source storage from the intermediate CBT driver to the updated CBT driver; and

tracking, using the updated CBT driver, writes to blocks of the source storage.

10. The method of claim 9 , wherein:

the tracking, using the CBT driver, of writes to blocks of the source storage includes tracking, using the CBT driver, writes to blocks of the source storage in a first CBT map;

the tracking, using the intermediate CBT driver, of writes to blocks of the source storage includes tracking, using the intermediate CBT driver, writes to blocks of the source storage in a second CBT map; and

the tracking, using the updated CBT driver, of writes to blocks of the source storage includes tracking, using the updated CBT driver, writes to blocks of the source storage in a third CBT map;

the handing over of the tracking of writes to blocks of the source storage from the CBT driver to the intermediate CBT driver includes copying the tracking included in the first CBT map to the second CBT map; and

the handing over of the tracking of writes to blocks of the source storage from the intermediate CBT driver to the updated CBT driver includes copying the tracking included in the second CBT map to the third CBT map.

11. The method of claim 10 , wherein:

the first CBT map is a first run-length encoded (RLE) list;

the second CBT map is a second RLE list; and

the third CBT map is a third RLE list.

12. The method of claim 10 , wherein a structure of the first CBT map is different than a structure of the third CBT map.

13. The method of claim 9 , wherein:

the tracking, using the CBT driver, of writes to blocks of the source storage overlaps with the tracking, using the intermediate CBT driver, of writes to blocks of the source storage; and

the tracking, using the intermediate CBT driver, of writes to blocks of the source storage overlaps with the tracking, using the updated CBT driver, of writes to blocks of the source storage.

14. The method of claim 9 , wherein:

the tracking, using the CBT driver, of writes to blocks of the source storage ceases once the tracking, using the intermediate CBT driver, of writes to blocks of the source storage begins; and

the tracking, using the intermediate CBT driver, of writes to blocks of the source storage ceases once the tracking, using the updated CBT driver, of writes to blocks of the source storage begins.

15. The method of claim 14 , wherein:

the ceasing of the tracking using the CBT driver and a beginning of the tracking using the intermediate CBT driver is implemented by updating a function pointer; and

the ceasing of the tracking using the intermediate CBT driver and a beginning of the tracking using the updated CBT driver is implemented by updating the function pointer.

16. One or more non-transitory computer-readable media storing one or more programs that are configured, when executed, to cause one or more processors to perform the method as recited in claim 9 .

Assignments (6)
CHANGE OF NAME Recorded Aug 16, 2024
From: STORAGECRAFT TECHNOLOGY CORPORATION
To: STORAGECRAFT TECHNOLOGY LLC
Reel/Frame 068660/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2024
From: MONROE CAPITAL MANAGEMENT ADVISORS, LLC; ARCSTOR MIDCO LLC; ARCSERVE ACQUISITION COMPANY LLC; ARCSERVE (USA) LLC; STORAGECRAFT TECHNOLOGY, LLC
To: STORAGECRAFT, LLC
Reel/Frame 068660/0208 →
SECURITY INTEREST Recorded Mar 16, 2021
From: ARCSERVE (USA) LLC; STORAGECRAFT TECHNOLOGY LLC; ZETTA, LLC
To: MONROE CAPITAL MANAGEMENT ADVISORS, LLC, AS COLLATERAL AGENT
Reel/Frame 055603/0219 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT Recorded Mar 16, 2021
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: STORAGECRAFT TECHNOLOGY CORPORATION
Reel/Frame 055614/0607 →
SUPPLEMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded May 7, 2018
From: STORAGECRAFT TECHNOLOGY CORPORATION
To: SILICON VALLEY BANK
Reel/Frame 046085/0220 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2017
From: COFFING, CHARLES; MEYER, KAI
To: STORAGECRAFT TECHNOLOGY CORPORATION
Reel/Frame 042116/0845 →
Continuity (2)
Continuation 15074598 · Mar 18, 2016
Related Publication 20170269928A1 · Sep 21, 2017