IP Library Granted Patent US 10,402,095
Granted Patent B1
US 10,402,095 · App. 15/966,298 · Granted Sep 3, 2019

Online data expansion in redundant data storage systems

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,402,095
App. No.
15/966,298
Granted
Sep 3, 2019
Kind
B1
Abstract

The system, devices, and methods disclosed herein relate to online data expansion in disaster recovery enabled data storage systems. We disclose embodiments that allow storage devices, which are coupled to one another in a disaster recovery, data replication-type scenario, to perform storage expansion in most cases without having to disable remote replication during the expansion. The teachings of this patent application facilitate methods of expansion for data storage device pairings where the data storage devices are the same size or where the primary storage device is smaller than the secondary storage device. In both of these situations, expansion occurs without disabling disaster recovery. In the situation where the secondary storage device is larger than the primary device, expansion is allowed, with the caveat that disaster recovery must be disabled briefly. Moreover, in situations where remote replication is lost or disabled, it is possible to expand a primary or secondary storage device independently, and then to enable expansion of whichever device was not expanded once remote replication is reactivated.

Claims (50)

1. For a data storage system including a memory and at least a primary thin storage device and a secondary thin storage device, the storage devices being logically divided, either explicitly or implicitly, into a plurality of tracks, wherein the primary and secondary storage devices are communicatively coupled using a remote replication communication protocol, a method comprising:

a. determining a last written point on the primary thin storage device by setting the last written point to a last physical cylinder location and a last physical head location of the primary thin storage device;

b. comparing a capacity of the primary thin storage device to a capacity of the secondary thin storage device;

c. determining a last written point for the secondary thin storage device based on the comparison of the capacity of the primary thin storage device to the capacity of the secondary thin storage device;

d. determining a first unwritten point for the primary thin storage device using the last written point for the primary thin storage device;

e. determining a first unwritten point for the secondary thin storage device using the last written point for the secondary thin storage device;

f. adding at least one additional storage track to the primary thin storage device or the secondary thin storage device; and

g. determining if any of the additional storage tracks should be set as an invalid track by comparing a value of the first unwritten point for the primary thin storage device to a value for the first unwritten point for the secondary thin storage device.

2. The method of claim 1 wherein the additional storage tracks contain at least one null track.

3. The method of claim 1 wherein determining the last unwritten point for the secondary thin storage device further comprises setting the last unwritten point for the secondary thin storage device to a same value as the last unwritten point for the primary thin storage device if the capacity of the primary thin storage device is equal to the capacity of the secondary thin storage device.

4. The method of claim 1 wherein determining the last unwritten point for the secondary thin storage device further comprises setting the last written point for the secondary thin storage device to a last physical cylinder and a last physical head location of the secondary thin storage device if the capacity of the secondary thin storage device is greater than the capacity of the primary thin storage device.

5. The method of claim 1 wherein determining the last unwritten point for the secondary thin storage device further comprises setting the last unwritten point for the secondary thin storage device the greater of a same value as the last unwritten point for the primary thin storage device or a last physical cylinder and a last physical head location of the secondary thin storage device if the capacity of the secondary thin storage device if the secondary thin storage device has been enabled to have a read and write capability.

6. The method of claim 1 further comprising marking a plurality of newly added tracks as invalid if the value of the secondary first unwritten point is greater than the value of the primary first unwritten point but less than a value of a last newly added track on the secondary thin storage device.

7. The method of claim 1 wherein the remote replication communication protocol is temporarily suspend such that a host can write directly to the secondary thin storage device further comprising:

a. expanding the capacity of the secondary thin storage device by treating the secondary storage device as though it were the primary storage device; and

b. expanding the capacity of the primary thin storage device once the remote replication communication protocol is restored by treating the primary thin storage device as though it were the secondary storage device.

8. A system comprising:

a. a primary thin storage device;

b. a secondary thin storage device, the thin storage devices being logically divided, either explicitly or implicitly, into a plurality of tracks, wherein the primary and secondary thin storage devices are communicatively coupled using a remote replication communication protocol;

c. one or more processors;

d. one or more remote data facility (RDF) adapters;

e. a memory comprising code stored thereon that, when executed, performs a method comprising:

i. determining a last written point on the primary thin storage device by setting the last written point to a last physical cylinder location and a last physical head location of the primary thin storage device;

ii. comparing a capacity of the primary thin storage device to a capacity of the secondary thin storage device;

iii. determining a last written point for the secondary thin storage device based on the comparison of the capacity of the primary thin storage device to the capacity of the secondary thin storage device;

iv. determining a first unwritten point for the primary thin storage device using the last written point for the primary thin storage device;

v. determining a first unwritten point for the secondary thin storage device using the last written point for the secondary thin storage device;

vi. adding at least one additional storage track to the primary thin storage device or the secondary thin storage device; and

vii. determining if any of the additional storage tracks should be set as an invalid track by comparing a value of the first unwritten point for the primary thin storage device to a value for the first unwritten point for the secondary thin storage device.

9. The system of claim 8 wherein the additional storage tracks contain at least one null track.

10. The system of claim 8 wherein determining the last unwritten point for the secondary thin storage device further comprises setting the last unwritten point for the secondary thin storage device to a same value as the last unwritten point for the primary thin storage device if the capacity of the primary thin storage device is equal to the capacity of the secondary thin storage device.

11. The system of claim 8 wherein determining the last unwritten point for the secondary thin storage device further comprises setting the last written point for the secondary thin storage device to a last physical cylinder and a last physical head location of the secondary thin storage device if the capacity of the secondary thin storage device is greater than the capacity of the primary thin storage device.

12. The system of claim 8 wherein determining the last unwritten point for the secondary thin storage device further comprises setting the last unwritten point for the secondary thin storage device the greater of a same value as the last unwritten point for the primary thin storage device or a last physical cylinder and a last physical head location of the secondary thin storage device if the capacity of the secondary thin storage device if the secondary thin storage device has been enabled to have a read and write capability.

13. The system of claim 8 further comprising marking a plurality of newly added tracks as invalid if the value of the secondary first unwritten point is greater than the value of the primary first unwritten point but less than a value of a last newly added track on the secondary thin storage device.

14. The system of claim 8 wherein the remote replication communication protocol is temporarily suspend such that a host can write directly to the secondary thin storage device further comprising:

a. expanding the capacity of the secondary thin storage device by treating the secondary storage device as though it were the primary storage device; and

b. expanding the capacity of the primary thin storage device once the remote replication communication protocol is restored by treating the primary thin storage device as though it were the secondary storage device.

15. A computer program product to expand data storage capacity, the computer program product being embodied in a tangible, non-transitory computer readable storage medium and comprising computer instructions for:

a. determining a last written point on the primary thin storage device by setting the last written point to a last physical cylinder location and a last physical head location of the primary thin storage device;

b. comparing a capacity of the primary thin storage device to a capacity of the secondary thin storage device;

c. determining a last written point for the secondary thin storage device based on the comparison of the capacity of the primary thin storage device to the capacity of the secondary thin storage device;

d. determining a first unwritten point for the primary thin storage device using the last written point for the primary thin storage device;

e. determining a first unwritten point for the secondary thin storage device using the last written point for the secondary thin storage device;

f. adding at least one additional storage track to the primary thin storage device or the secondary thin storage device; and

g. determining if any of the additional storage tracks should be set as an invalid track by comparing a value of the first unwritten point for the primary thin storage device to a value for the first unwritten point for the secondary thin storage device.

16. The computer program product of claim 13 wherein the additional storage tracks contain at least one null track.

17. The computer program product of claim 13 wherein determining the last unwritten point for the secondary thin storage device further comprises setting the last unwritten point for the secondary thin storage device to a same value as the last unwritten point for the primary thin storage device if the capacity of the primary thin storage device is equal to the capacity of the secondary thin storage device.

18. The computer program product of claim 13 wherein determining the last unwritten point for the secondary thin storage device further comprises setting the last written point for the secondary thin storage device to a last physical cylinder and a last physical head location of the secondary thin storage device if the capacity of the secondary thin storage device is greater than the capacity of the primary thin storage device.

19. The computer program product of claim 13 wherein determining the last unwritten point for the secondary thin storage device further comprises setting the last unwritten point for the secondary thin storage device the greater of a same value as the last unwritten point for the primary thin storage device or a last physical cylinder and a last physical head location of the secondary thin storage device if the capacity of the secondary thin storage device if the secondary thin storage device has been enabled to have a read and write capability.

20. The computer program product of claim 13 further comprising marking a plurality of newly added tracks as invalid if the value of the secondary first unwritten point is greater than the value of the primary first unwritten point but less than a value of a last newly added track on the secondary thin storage device.

Assignments (6)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (046366/0014) 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 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 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/0093 →
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 (CREDIT) Recorded Jun 1, 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 046286/0653 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 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 046366/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2018
From: ADAMS, IAN; HEASLEY, KEVIN C.; VOKALIGA, DEEPAK
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045830/0993 →