IP Library Granted Patent US 12,591,397
Granted Patent B2
US 12,591,397 · App. 18/821,618 · Granted Mar 31, 2026

Constructing virtual storage systems from a variety of components

Inventors: Ronald Karr (Palo Alto, CA); Par Botes (Atherton, CA)
Assignee: PURE STORAGE, INC.
G06F3/0664G06F3/0607G06F3/0632G06F3/0647G06F3/0658G06F3/0683
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 12,591,397
App. No.
18/821,618
Granted
Mar 31, 2026
Kind
B2
Abstract

Replication between virtual storage systems includes: constructing a virtual storage system in which the one or more virtual storage devices are coupled to each of one or more virtual storage controllers and replicating a dataset from the virtual storage system to another virtual storage system, where at least one of the virtual storage systems is an on-premises virtual storage system utilizing on-premises physical storage resources.

Claims (48)

1 . A method comprising:

instantiating one or more virtual storage controllers, wherein the one or more virtual storage controllers are coupled to different components in different virtual storage systems including on-premises virtual storage systems utilizing on-premises physical storage resources and cloud-based virtual storage systems that are created using services offered within a cloud platform environment; and

constructing at least one storage system using the one or more virtual storage controllers.

2 . The method of claim 1 , further comprising:

constructing one or more of the different virtual storage systems with virtual drive servers that are implemented using compute instances, wherein the compute instances include cloud-computing instances.

3 . The method of claim 1 , further comprising:

instantiating the one or more virtual storage controllers as containerized storage controller applications.

4 . The method of claim 1 , further comprising:

constructing the cloud-based virtual storage systems using resources provided by one or more cloud computing environments; and

processing, by the one or more virtual storage controllers, one or more I/O operations using the cloud-based virtual storage systems constructed using the resources provided by the one or more cloud computing environments.

5 . The method of claim 4 , wherein the one or more virtual storage controllers are implemented in respective cloud computing instances of a cloud platform; and wherein one or more virtual storage devices are implemented in respective cloud computing instances of the cloud platform.

6 . The method of claim 1 , wherein the different virtual storage systems include an on-premises virtual storage system created in a virtual environment supported by on-premises physical storage resources.

7 . The method of claim 1 , further comprising:

migrating a dataset from a virtual storage system to another virtual storage system, wherein at least one of the virtual storage systems is an on-premises virtual storage system utilizing on-premises physical storage resources.

8 . The method of claim 1 , further comprising:

migrating a dataset from an on-premises virtual storage system to a native environment executing on a physical storage system.

9 . The method of claim 1 further comprising:

instantiating the one or more virtual storage controllers; and

instantiating one or more virtual storage devices each including multiple storage tiers.

10 . The method of claim 1 , further comprising:

migrating a dataset from an on-premises virtual storage system to a native environment executing on a physical storage system.

11 . The method of claim 1 , further comprising:

for a virtual storage system of the different virtual storage systems, exposing a first set of interfaces to a first role for the virtual storage system, wherein the first set of interfaces configure a physical environment hosting the virtual storage system; and

exposing a second set of interfaces to a second role for the virtual storage system, wherein the second set of interfaces configure virtual components in the virtual storage system.

12 . An apparatus comprising:

a memory;

a processing device operably coupled to the memory, configured to:

instantiate one or more virtual storage controllers, wherein the one or more virtual storage controllers are coupled to different components in different virtual storage systems including on-premises virtual storage systems utilizing on-premises physical storage resources and cloud-based virtual storage systems that are created using services offered within a cloud platform environment; and

construct at least one storage system using the one or more virtual storage controllers.

13 . The apparatus of claim 12 , wherein the processing device is further configured to:

construct one or more of the different virtual storage systems with virtual drive servers that are implemented using compute instances, wherein the compute instances include cloud-computing instances.

14 . The apparatus of claim 12 , wherein the processing device is further configured to:

instant the one or more virtual storage controllers as containerized storage controller applications.

15 . The apparatus of claim 12 , wherein the processing device is further configured to:

construct the cloud-based virtual storage systems using resources provided by one or more cloud computing environments; and

process, by the virtual storage controllers, one or more I/O operations using the cloud-based virtual storage systems constructed using the resources provided by the one or more cloud computing environments.

16 . The apparatus of claim 12 , wherein the processing device is further configured to:

replicate a dataset from an on-premises virtual storage system to a native environment executing on a physical storage system.

17 . The apparatus of claim 12 , wherein the processing device is further configured to:

for a virtual storage system of the different virtual storage systems, expose a first set of interfaces to a first role for the virtual storage system, wherein the first set of interfaces configure a physical environment hosting the virtual storage system; and

expose a second set of interfaces to a second role for the virtual storage system, wherein the second set of interfaces configure virtual components in the virtual storage system.

18 . A non-transitory computer readable storage medium storing instructions that:

instantiate one or more virtual storage controllers, wherein the one or more virtual storage controllers are coupled to different components in different virtual storage systems including on-premises virtual storage systems utilizing on-premises physical storage resources and cloud-based virtual storage systems that are created using services offered within a cloud platform environment; and

construct at least one storage system using the one or more virtual storage controllers.

19 . The non-transitory computer readable storage medium of claim 18 , wherein the processing device is further configured to:

construct one or more of the different virtual storage systems with virtual drive servers that are implemented using compute instances, wherein the compute instances include cloud-computing instances.

20 . The non-transitory computer readable storage medium of claim 18 , wherein the processing device is further configured to:

instantiate the one or more virtual storage controllers as containerized storage controller applications.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2024
From: KARR, RONALD; BOTES, PAR
To: PURE STORAGE, INC.
Reel/Frame 068466/0566 →
Continuity (8)
Continuation 17732226 · Apr 28, 2022
Continuation 17070372 · Oct 14, 2020
Continuation In Part 16777211 · Jan 30, 2020
Provisional Application 62967368 · Jan 29, 2020
Provisional Application 62900998 · Sep 16, 2019
Provisional Application 62878877 · Jul 26, 2019
Provisional Application 62875947 · Jul 18, 2019
Related Publication 20240419366A1 · Dec 19, 2024
References Cited (47)
US 5615352A · Jacobson et al. · 1997 [cited by applicant]
US 7793307B2 · Gokhale et al. · 2010 [cited by applicant]
US 8301746B2 · Head et al. · 2012 [cited by applicant]
US 8706914B2 · Duchesneau · 2014 [cited by applicant]
US 8918478B2 · Ozzie et al. · 2014 [cited by applicant]
US 9275063B1 · Natanzon · 2016 [cited by applicant]
US 9619257B1 · Aron · 2017 [cited by examiner]
US 9635097B2 · Wang et al. · 2017 [cited by applicant]
US 9830180B2 · Tung et al. · 2017 [cited by applicant]
US 9910742B1 · Faibish et al. · 2018 [cited by applicant]
US 9986033B2 · Bannister · 2018 [cited by examiner]
US 10185495B2 · Katsuki · 2019 [cited by applicant]
US 11210009B1 · Freilich et al. · 2021 [cited by applicant]
US 11442669B1 · Frandzel et al. · 2022 [cited by applicant]
US 12112075B1 · Krivenok et al. · 2024 [cited by applicant]
US 20050228835A1 · Roa · 2005 [cited by applicant]
US 20100199276A1 · Umbehocker · 2010 [cited by applicant]
US 20100235832A1 · Rajagopal et al. · 2010 [cited by applicant]
US 20100274886A1 · Nahum et al. · 2010 [cited by applicant]
US 20100306377A1 · Dehaan et al. · 2010 [cited by applicant]
US 20110271062A1 · Chen · 2011 [cited by applicant]
US 20110302415A1 · Ahmad et al. · 2011 [cited by applicant]
US 20130117448A1 · Nahum et al. · 2013 [cited by applicant]
US 20130159637A1 · Forgette et al. · 2013 [cited by applicant]
US 20130166724A1 · Bairavasundaram et al. · 2013 [cited by applicant]
US 20130212576A1 · Huang et al. · 2013 [cited by applicant]
US 20140006354A1 · Parkison et al. · 2014 [cited by applicant]
US 20150100746A1 · Rychlik et al. · 2015 [cited by applicant]
US 20160142485A1 · Mitkar et al. · 2016 [cited by applicant]
US 20170155713A1 · Powell et al. · 2017 [cited by applicant]
US 20180074748A1 · Makin et al. · 2018 [cited by applicant]
US 20180357017A1 · Karr et al. · 2018 [cited by applicant]
US 20200159421A1 · Karumbunathan et al. · 2020 [cited by applicant]
US 20220050858A1 · Karr et al. · 2022 [cited by applicant]
US 20220156114A1 · Nagpal et al. · 2022 [cited by applicant]
CN 103034453A · 2013 [cited by applicant]
CN 104516768A · 2015 [cited by applicant]
CN 106603665A · 2017 [cited by applicant]
WO WO0213033A1 · 2002 [cited by applicant]
WO WO2008103569A1 · 2008 [cited by applicant]
Frakes Dan, “Up close with Mountain Lion: Power Nap (Frakes, Dan, Working Mac—Up close with Mountain Lion: Power Nap, Macworld.com,”Aug. 1, 2012, pp. 1-6. [cited by applicant]
Hwang K., et al., “RAID-x: A New Distributed Disk Array for I/O-Centric Cluster Computing,” Proceedings of the Ninth International Symposium on High-performance Distributed Computing, IEEE Computer Society, Los Alamitos… [cited by applicant]
Kim J-K., et al., “Data Access Frequency Based Data Replication Method Using Erasure Codes in Cloud Storage System,” Journal of the Institute of Electronics and Information Engineers, Feb. 2014, vol. 51, No. 2, pp. 85-9… [cited by applicant]
Schmid P., “RAID Scaling Charts, Part 3: 4-128 kB Stripes Compared,” Tom's Hardware, Nov. 27, 2007, 24 Pages, XP055363126, Retrieved from URL: http://www.tomshardware.com/reviews/RAID-SCALING-CHARTS.1735-4.html. [cited by applicant]
Stalzer M.A., “FlashBlades: System Architecture and Applications,” Proceedings of the 2nd Workshop on Architectures and Systems for Big Data, Association for Computing Machinery, New York, NY, 2012, pp. 10-14. [cited by applicant]
Storer M.W., et al., “Pergamum: Replacing Tape with Energy Efficient, Reliable, Disk-Based Archival Storage,” 6th USENIX Conference on File and Storage Technologies (FAST'08), San Jose, CA, USA, Feb. 26-29, 2008, 16 Pag… [cited by applicant]
Wong T.M., et al., “Verifiable Secret Redistribution for Archive Systems,” Proceedings on First International IEEE Security in Storage Workshop (SISW'02), IEEE Xplore, Dec. 2002, 12 pages, DOI: 10.1109/SISW.2002.1183515. [cited by applicant]