IP Library Granted Patent US 12,367,178
Granted Patent B2
US 12,367,178 · App. 17/853,629 · Granted Jul 22, 2025

Converting storage resources to distributed persistent storage for containerized applications

Inventors: Prabir Paul (San Jose, CA); Lakshmi Narasimhan Sundararajan (Tamil Nadu, IN); Nikhil Subhash Bhupale (Maharashtra, IN); Vinod Jayaraman (San Francisco, CA); Goutham Rao (Los Altos Hills, CA)
Assignee: Pure Storage, Inc.
G06F16/13G06F16/128G06F16/188G06F21/53G06F21/6218
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,367,178
App. No.
17/853,629
Granted
Jul 22, 2025
Kind
B2
Abstract

An illustrative storage system provides distributed storage for use by containerized applications running in a container system. In some implementations, this includes converting data blocks of storage resources to distributed persistent storage such as thin-provisioned volumes for use by the containerized applications. In some implementations, the conversion includes using a device mapper to virtualize the data blocks of the storage resources to create a virtual storage pool backing datastore in which the thin-provisioned volumes are created.

Claims (51)

1. A method of providing distributed persistent storage for containerized applications running in a container system, the method comprising:

virtualizing, by a container storage system and using a device mapper, data blocks of a storage device to form a virtual block device;

generating, by the container storage system and based on the virtual block device, a storage pool backing datastore in device namespace; and

creating, by the container storage system within the storage pool backing datastore, thin-provisioned volumes for use by the containerized applications running in the container system;

wherein the container storage system is implemented as a containerized application running in the container system.

2. The method of claim 1 , wherein the device mapper comprises DM-thin.

3. The method of claim 1 , wherein the thin-provisioned volumes are in the device namespace.

4. The method of claim 1 , further comprising snapshotting the thin-provisioned volumes.

5. The method of claim 1 , further comprising replicating the thin-provisioned volumes.

6. The method of claim 1 , wherein virtualizing the data blocks of the storage device to form the virtual block device comprises:

creating a RAID device from the data blocks of the storage device; and

creating a logical data volume and a logical metadata volume on the RAID device, the logical data volume and the logical metadata volume together forming the storage pool backing datastore.

7. The method of claim 1 , wherein virtualizing the data blocks of the storage device to form the virtual block device comprises:

creating a RAID device from the data blocks of the storage device to form a physical volume;

using the physical volume to create a volume group;

using the volume group to create a logical data volume and a logical metadata volume; and

combining the logical data volume and the logical metadata volume to form the storage pool backing datastore.

8. The method of claim 1 , further comprising:

receiving a request to modify a designated file included in a containerized application that is loaded into a memory module on a computing device and being executed by a processor at the computing device, the containerized application including instructions arranged in a plurality of layers, the layers being ordered from lowest to highest, each layer including a respective plurality of files, the designated file included in more than one of the layers;

identifying a snapshot corresponding to the designated file, the snapshot including one or more snapshot data blocks, each of the snapshot data blocks including data that is additional to or different from any data associated with the designated file in a lower level layer; and

modifying the snapshot instead of copying the designated file.

9. A system comprising:

one or more memories storing computer-executable instructions; and

one or more processors to execute the computer-executable instructions to:

virtualize, using a device mapper, data blocks of a storage device to form a virtual block device;

generate, based on the virtual block device, a storage pool backing datastore; and

create, within the storage pool backing datastore, thin-provisioned volumes for use by containerized applications running in a container system;

wherein the container storage system is implemented as a privileged containerized application running in the container system.

10. The system of claim 9 , wherein the device mapper comprises DM-thin.

11. The system of claim 9 , wherein the storage pool backing datastore is in device namespace.

12. The system of claim 9 , wherein the thin-provisioned volumes are in device namespace.

13. The system of claim 9 , further comprising snapshotting the thin-provisioned volumes.

14. The system of claim 9 , further comprising replicating the thin-provisioned volumes.

15. The system of claim 9 , wherein virtualizing the data blocks of the storage device to form the virtual block device comprises:

creating a RAID device from the data blocks of the storage device; and

creating a logical data volume and a logical metadata volume on the RAID device, the logical data volume and the logical metadata volume together forming the storage pool backing datastore.

16. The system of claim 9 , wherein virtualizing the data blocks of the storage device to form the virtual block device comprises:

creating a RAID device from the data blocks of the storage device to form a physical volume;

using the physical volume to create a volume group;

using the volume group to create a logical data volume and a logical metadata volume; and

combining the logical data volume and the logical metadata volume to form the storage pool backing datastore.

17. A non-transitory, computer-readable medium storing computer instructions that, when executed, direct one or more processors of one or more computing devices to:

virtualize, using a device mapper, data blocks of a storage device to form a virtual block device;

generate, based on the virtual block device, a storage pool backing datastore in device namespace; and

create, within the storage pool backing datastore, thin-provisioned volumes for use by containerized applications running in a container system;

wherein the container storage system is implemented as a containerized application running in the container system.

18. The non-transitory, computer-readable medium of claim 17 , wherein the device mapper comprises DM-thin.

19. The non-transitory, computer-readable medium of claim 17 , wherein the thin-provisioned volumes are in the device namespace.

20. The non-transitory, computer-readable medium of claim 17 , wherein virtualizing the data blocks of the storage device to form the virtual block device comprises:

creating a RAID device from the data blocks of the storage device; and

creating a logical data volume and a logical metadata volume on the RAID device, the logical data volume and the logical metadata volume together forming the storage pool backing datastore.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2022
From: PAUL, PRABIR
To: PURE STORAGE, INC., A DELAWARE CORPORATION
Reel/Frame 060628/0781 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2022
From: PRABIR, PAUL; SUNDARARAJAN, LAKSHMI NARASIMHAN; BHUPALE, NIKHIL SUBHASH; JAYARAMAN, VINOD; RAO, GOUTHAM
To: PURE STORAGE, INC., A DELAWARE CORPORATION
Reel/Frame 060359/0638 →
Continuity (5)
Continuation In Part 17089689 · Nov 4, 2020
Continuation 16011859 · Jun 19, 2018
Continuation 15173549 · Jun 3, 2016
Provisional Application 63349401 · Jun 6, 2022
Related Publication 20220335009A1 · Oct 20, 2022
References Cited (109)
US 5239647A · Anglin et al. · 1993 [cited by applicant]
US 5956745A · Bradford et al. · 1999 [cited by applicant]
US 7107385B2 · Rajan et al. · 2006 [cited by applicant]
US 7334094B2 · Fair · 2008 [cited by applicant]
US 7409511B2 · Edwards et al. · 2008 [cited by applicant]
US 7584227B2 · Gokhale et al. · 2009 [cited by applicant]
US 7739312B2 · Gordon · 2010 [cited by applicant]
US 7840730B2 · D'Amato et al. · 2010 [cited by applicant]
US 7945726B2 · Faibish et al. · 2011 [cited by applicant]
US 7975115B2 · Wayda et al. · 2011 [cited by applicant]
US 8166260B2 · Prabhu et al. · 2012 [cited by applicant]
US 8271743B2 · Logan et al. · 2012 [cited by applicant]
US 8332571B1 · Edwards, Sr. · 2012 [cited by applicant]
US 8495472B1 · Magerramov et al. · 2013 [cited by applicant]
US 8504797B2 · Mimatsu · 2013 [cited by applicant]
US 8595191B2 · Prahlad et al. · 2013 [cited by applicant]
US 8600998B1 · Chaudhary et al. · 2013 [cited by applicant]
US 8706914B2 · Duchesneau · 2014 [cited by applicant]
US 8822155B2 · Sukumar et al. · 2014 [cited by applicant]
US 8914567B2 · Miroshnichenko · 2014 [cited by examiner]
US 8918478B2 · Ozzie et al. · 2014 [cited by applicant]
US 8996490B1 · Armangau et al. · 2015 [cited by applicant]
US 9043567B1 · Modukuri et al. · 2015 [cited by applicant]
US 9047169B1 · Haase et al. · 2015 [cited by applicant]
US 9275063B1 · Natanzon · 2016 [cited by applicant]
US 9280678B2 · Redberg · 2016 [cited by applicant]
US 9395922B2 · Nishikido et al. · 2016 [cited by applicant]
US 9535890B2 · Parag et al. · 2017 [cited by applicant]
US 9542328B2 · Chen et al. · 2017 [cited by applicant]
US 9552299B2 · Stalzer · 2017 [cited by applicant]
US 9672119B2 · Modukuri et al. · 2017 [cited by applicant]
US 9740403B2 · Storer et al. · 2017 [cited by applicant]
US 9858095B2 · Breitgand et al. · 2018 [cited by applicant]
US 9864874B1 · Shanbhag et al. · 2018 [cited by applicant]
US 9886213B2 · Sivasubramanian et al. · 2018 [cited by applicant]
US 9888067B1 · Yemini · 2018 [cited by examiner]
US 10025673B1 · Maccanti et al. · 2018 [cited by applicant]
US 10025790B2 · Rao et al. · 2018 [cited by applicant]
US 10102356B1 · Sahin et al. · 2018 [cited by applicant]
US 10185495B2 · Katsuki · 2019 [cited by applicant]
US 10275179B2 · Petrocelli · 2019 [cited by examiner]
US 10324639B2 · Seo · 2019 [cited by applicant]
US 10402092B2 · Dewitt et al. · 2019 [cited by applicant]
US 10503441B2 · Israni et al. · 2019 [cited by applicant]
US 10528481B2 · Puttaswamy Naga et al. · 2020 [cited by applicant]
US 10540744B2 · Parag et al. · 2020 [cited by applicant]
US 10567406B2 · Astigarraga et al. · 2020 [cited by applicant]
US 10606625B1 · Belianski et al. · 2020 [cited by applicant]
US 10810088B1 · Gu et al. · 2020 [cited by applicant]
US 10838914B2 · Rao et al. · 2020 [cited by applicant]
US 10846137B2 · Vallala et al. · 2020 [cited by applicant]
US 10877683B2 · Wu et al. · 2020 [cited by applicant]
US 10983964B1 · Bono et al. · 2021 [cited by applicant]
US 11106810B2 · Natanzon et al. · 2021 [cited by applicant]
US 11138028B1 · Belianski et al. · 2021 [cited by applicant]
US 11216220B2 · Israni et al. · 2022 [cited by applicant]
US 11467775B2 · Cain · 2022 [cited by applicant]
US 20040030822A1 · Rajan et al. · 2004 [cited by applicant]
US 20050044162A1 · Liang et al. · 2005 [cited by applicant]
US 20050065986A1 · Bixby et al. · 2005 [cited by applicant]
US 20060218135A1 · Bisson et al. · 2006 [cited by applicant]
US 20070260830A1 · Faibish et al. · 2007 [cited by applicant]
US 20080005468A1 · Faibish et al. · 2008 [cited by applicant]
US 20090307438A1 · Logan et al. · 2009 [cited by applicant]
US 20100058010A1 · Augenstein et al. · 2010 [cited by applicant]
US 20100077160A1 · Liu et al. · 2010 [cited by applicant]
US 20100299495A1 · Frank · 2010 [cited by applicant]
US 20110035540A1 · Fitzgerald et al. · 2011 [cited by applicant]
US 20110040812A1 · Phillips · 2011 [cited by applicant]
US 20110061045A1 · Phillips · 2011 [cited by applicant]
US 20110153697A1 · Nickolov et al. · 2011 [cited by applicant]
US 20120191929A1 · Zietzke et al. · 2012 [cited by applicant]
US 20130097399A1 · Chhaunker · 2013 [cited by examiner]
US 20130275375A1 · Nickolov et al. · 2013 [cited by applicant]
US 20140136483A1 · Chaudhary et al. · 2014 [cited by applicant]
US 20140351531A1 · Puttaswamy Naga et al. · 2014 [cited by applicant]
US 20150346954A1 · Parag et al. · 2015 [cited by applicant]
US 20160173603A1 · Ainscow · 2016 [cited by examiner]
US 20160217078A1 · Chen et al. · 2016 [cited by applicant]
US 20160217110A1 · Parag et al. · 2016 [cited by applicant]
US 20160259955A1 · Berlin et al. · 2016 [cited by applicant]
US 20160371127A1 · Antony · 2016 [cited by examiner]
US 20170103000A1 · Iyengar et al. · 2017 [cited by applicant]
US 20170235649A1 · Shah et al. · 2017 [cited by applicant]
US 20170351431A1 · Dewitt et al. · 2017 [cited by applicant]
US 20170351695A1 · Rao · 2017 [cited by applicant]
US 20200089624A1 · Puttaswamy Naga et al. · 2020 [cited by applicant]
US 20200183621A1 · Israni et al. · 2020 [cited by applicant]
US 20200264776A1 · Janse Van Rensburg et al. · 2020 [cited by applicant]
US 20210109683A1 · Cain · 2021 [cited by applicant]
US 20220004411A1 · Belianski et al. · 2022 [cited by applicant]
US 20220113874A1 · Sangle · 2022 [cited by applicant]
US 20220129416A1 · Vokaliga et al. · 2022 [cited by applicant]
US 20220179754A1 · Luan et al. · 2022 [cited by applicant]
US 20230080046A1 · Paul · 2023 [cited by examiner]
US 20230134266A1 · Sundararajan · 2023 [cited by examiner]
WO 2011022388A1 · 2011 [cited by applicant]
WO 2016134035A1 · 2016 [cited by applicant]
Kon, Joichiro, et al., “Highly Consolidated Servers with Container-based Virtualization”, BigData 2017, Boston, MA, Dec. 11-14, 2017, pp. 2472-2479. [cited by examiner]
“HP StorageWorks virtualization”, Hewlett-Packard Company, LP, © 2008, Document No. 4AA0-7358ENW Rev. 1, pp. 1-33. [cited by examiner]
Microsoft Computer Dictionary, 5th Edition, Microsoft Press, Redmond, WA, © 2002, p. 558. [cited by examiner]
Dua, Rajdeep, et al., “Virtualization vs Containerization to support PaaS”, IC2E 2014, Boston, MA, Mar. 11-14, 2014, pp. 610-614. [cited by examiner]
Giles, Ellis R., “Container-Based Virtualization for Byte-Addressable NVM Data Storage”, BigData 2016, Washington, DC, Dec. 5-8, 2016, pp. 2754-2763. [cited by examiner]
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]
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]
Bisson, et al., “Designing a Fast File System Crawler With Incremental Differencing”, ACM SIGOPS Operating Systems Review, vol. 46, No. 3, Dec. 2012, pp. 11-19. [cited by applicant]
Braam, et al.,“Lustre Technical Project Summary”, Cluster File Systems, Inc., (Attachment A to RFP B514193 Response), Version 2, Jul. 29, 2001. 32 pages. [cited by applicant]
Harter, et al.,“Slacker: Fast Distribution with Lazy Docker Containers”, FAST '16, Santa Clara, CA, Feb. 22-25, 2016, pp. 181-195. [cited by applicant]