IP Library › Granted Patent US 12,204,784
Granted Patent B1
US 12,204,784 · App. 18/649,906 · Granted Jan 21, 2025

Zero-copy volume move within a distributed storage system

Inventors: Anil Paul Thoppil (Pleasanton, CA); Ananthan Subramanian (San Ramon, CA); Kevin Daniel Varghese (Milpitas, CA); Garima Choudhary (San Jose, CA); Qinghua Zheng (San Jose, CA)
Assignee: NetApp, Inc.
G06F3/0647G06F3/0608G06F3/0644G06F3/0689G06F16/13
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,204,784
App. No.
18/649,906
Filed
Apr 29, 2024
Granted
Jan 21, 2025
Kind
B1
Art Unit
2136
USPC
711/165
Abstract

Systems and methods for performing a zero-copy volume move between nodes of a distributed storage system are provided. In one example, an approach for performing a zero-copy volume move is proposed in which volume data may be maintained in place within a storage pod and need not be copied to move a given volume between the source node and the destination node. In one embodiment, metadata (e.g., a top-most physical volume block number (PVBN) of a node tree representing the volume at issue) of a write-anywhere file system is copied from the source node to the destination node. Since the storage pod is associated with a global PVBN space that is visible and accessible to all nodes of the distributed storage system, as a result of copying the top-mode PVBN of the volume to the destination node, anything below the top-most PVBN will automatically be visible to the destination node.

Claims (32)

1. A method comprising:

providing a storage pod having a group of disks containing a plurality of Redundant Array of Independent Disks (RAID) groups, wherein an entirety of a global physical volume block number (PVBN) space associated with the storage pod is visible and accessible to all nodes of a plurality of nodes of a cluster representing a distributed storage system via their respective dynamically extensible file systems (DEFSs) and wherein storage space associated with the group of disks is partitioned into a plurality of allocation areas (AAs), in which a given AA of the plurality of AAs is owned by a given DEFS of a plurality of DEFSs of the cluster; and

relocating a source volume from a first DEFS of the plurality of DEFSs of a source node of the plurality of nodes of the cluster to a second DEFS of the plurality of DEFSs of a destination node of the plurality of nodes of the cluster as part of a constant-time operation that is independent of a size of the source volume by copying an index node (inode) of a first container file representing the source volume to a new inode of a second container file representing a destination volume within the second DEFS.

2. The method of claim 1 , wherein content of the inode includes metadata maintained by the file system that is associated the first container file.

3. The method of claim 2 , wherein the metadata comprises a PVBN at a top of a node tree representing the source volume.

4. The method of claim 1 , wherein the file system comprises a write-anywhere file system in which writes are performed to free blocks rather than overwriting existing blocks.

5. A non-transitory machine readable medium storing instructions, which when executed by one or more processing resources of a distributed storage system, cause the distributed storage system to:

provide a storage pod having a group of disks containing a plurality of Redundant Array of Independent Disks (RAID) groups, wherein an entirety of a global physical volume block number (PVBN) space associated with the storage pod is visible and accessible to all nodes of a plurality of nodes of a cluster representing a distributed storage system; and

move a source volume from a source node of the plurality of nodes of the cluster to a destination node of the plurality of nodes of the cluster as part of a constant-time operation that is independent of a size of the source volume by copying metadata maintained by the file system that is associated with a first container file representing the source volume to the destination node.

6. The non-transitory machine readable medium of claim 5 , wherein moving the source volume includes creating, by the destination node, a destination volume associated with the destination node.

7. The non-transitory machine readable medium of claim 6 , wherein the metadata comprises content an index node (inode) of a first container file representing the source volume and wherein moving the source volume comprises copying the content of the inode to a second inode of a second container file representing the destination volume.

8. The non-transitory machine readable medium of claim 5 , wherein the file system comprises a write-anywhere file system in which writes are performed to free blocks rather than overwriting existing blocks.

9. The non-transitory machine readable medium of claim 5 , wherein the metadata comprises a PVBN at a top of a node tree representing the source volume and wherein moving the source volume is accomplished by copying the PVBN to the destination node.

10. The non-transitory machine readable medium of claim 5 , wherein moving the source volume includes sending a message identifying a set of one or more PVBNs of the first container file from the source node to the destination node.

11. The non-transitory machine readable medium of claim 10 , wherein the message is sent via a persistent message queue.

12. The non-transitory machine readable medium of claim 10 , wherein the message is sent via an on-wire internode communication mechanism.

13. The non-transitory machine readable medium of claim 5 , wherein the entirety of the global PVBN space associated with the storage pod is visible and accessible to all nodes of the plurality of nodes of the cluster via their respective dynamically extensible file systems (DEFSs) and wherein storage space associated with the group of disks is partitioned into a plurality of allocation areas (AAs), in which a given AA of the plurality of AAs is owned by a given DEFS of a plurality of DEFSs of the cluster.

14. The non-transitory machine readable medium of claim 13 , wherein moving the source volume comprises moving the source volume from a first DEFS of the plurality of DEFSs of the source node of the plurality of nodes of the cluster to a second DEFS of the plurality of DEFSs of the destination node of the plurality of nodes of the cluster by copying an inode of a first container file representing the source volume to a new inode of a second container file representing a destination volume within the second DEFS.

15. A distributed storage system comprising:

one or more processing resources; and

instructions that when executed by the one or more processing resources cause the distributed storage system to:

provide a storage pod having a group of disks containing a plurality of Redundant Array of Independent Disks (RAID) groups, wherein an entirety of a global physical volume block number (PVBN) space associated with the storage pod is visible and accessible to all nodes of a plurality of nodes of a cluster representing a distributed storage system; and

move a source volume from a source node of the plurality of nodes of the cluster to a destination node of the plurality of nodes of the cluster as part of a constant-time operation that is independent of a size of the source volume by copying metadata maintained by the file system that is associated with a first container file representing the source volume to the destination node.

16. The distributed storage system of claim 15 , wherein moving the source volume includes creating, by the destination node, a destination volume associated with the destination node.

17. The distributed storage system of claim 16 , wherein the metadata comprises content an index node (inode) of a first container file representing the source volume and wherein moving the source volume comprises copying the content of the inode to a second inode of a second container file representing the destination volume.

18. The distributed storage system of claim 15 , wherein the file system comprises a write-anywhere file system in which writes are performed to free blocks rather than overwriting existing blocks.

19. The distributed storage system of claim 15 , wherein the metadata comprises a PVBN at a top of a node tree representing the source volume and wherein moving the source volume is accomplished by copying the PVBN to the destination node.

20. The distributed storage system of claim 15 , wherein moving the source volume includes sending a message identifying a set of one or more PVBNs of the first container file from the source node to the destination node.

21. The distributed storage system of claim 20 , wherein the message is sent via a persistent message queue.

22. The distributed storage system of claim 20 , wherein the message is sent via an on-wire internode communication mechanism.

23. The distributed storage system of claim 15 , wherein the entirety of the global PVBN space associated with the storage pod is visible and accessible to all nodes of the plurality of nodes of the cluster via their respective dynamically extensible file systems (DEFSs) and wherein storage space associated with the group of disks is partitioned into a plurality of allocation areas (AAs), in which a given AA of the plurality of AAs is owned by a given DEFS of a plurality of DEFSs of the cluster.

24. The distributed storage system of claim 23 , wherein moving the source volume comprises moving the source volume from a first DEFS of the plurality of DEFSs of the source node of the plurality of nodes of the cluster to a second DEFS of the plurality of DEFSs of the destination node of the plurality of nodes of the cluster by copying an inode of a first container file representing the source volume to a new inode of a second container file representing a destination volume within the second DEFS.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2024
From: THOPPIL, ANIL PAUL; SUBRAMANIAN, ANANTHAN; VARGHESE, KEVIN DANIEL; CHOUDHARY, GARIMA; ZHENG, QINGHUA
To: NETAPP, INC.
Reel/Frame 067488/0513 →
Continuity (1)
Continuation In Part 18595768 · Mar 5, 2024
References Cited (108)
US 6189015B1 · Reed · 2001 [cited by examiner]
US 7409511B2 · Edwards et al. · 2008 [cited by applicant]
US 7730277B1 · Prakash · 2010 [cited by examiner]
US 7958168B2 · Chen et al. · 2011 [cited by applicant]
US 7979402B1 · Hamilton et al. · 2011 [cited by applicant]
US 8005793B1 · Jernigan, IV · 2011 [cited by examiner]
US 8086603B2 · Nasre et al. · 2011 [cited by applicant]
US 8671265B2 · Wright · 2014 [cited by applicant]
US 8671445B1 · Wang · 2014 [cited by examiner]
US 8812450B1 · Kesavan · 2014 [cited by examiner]
US 8903761B1 · Zayas et al. · 2014 [cited by applicant]
US 8903830B2 · Edwards · 2014 [cited by applicant]
US 9003021B2 · Wright et al. · 2015 [cited by applicant]
US 9407433B1 · Sohi et al. · 2016 [cited by applicant]
US 9846539B2 · Babu et al. · 2017 [cited by applicant]
US 10311019B1 · Vijendra et al. · 2019 [cited by applicant]
US 10365983B1 · Foley · 2019 [cited by examiner]
US 10430279B1 · Dittia · 2019 [cited by examiner]
US 10459806B1 · He et al. · 2019 [cited by applicant]
US 10970259B1 · Bono et al. · 2021 [cited by applicant]
US 11175984B1 · Lercari · 2021 [cited by examiner]
US 11341099B1 · Wolfson et al. · 2022 [cited by applicant]
US 11755627B1 · Puente et al. · 2023 [cited by applicant]
US 11868656B2 · Dronamraju et al. · 2024 [cited by applicant]
US 20020133512A1 · Milillo · 2002 [cited by examiner]
US 20050114594A1 · Corbett et al. · 2005 [cited by applicant]
US 20050246401A1 · Edwards · 2005 [cited by examiner]
US 20060036602A1 · Unangst · 2006 [cited by examiner]
US 20070174673A1 · Kawaguchi · 2007 [cited by examiner]
US 20080071906A1 · Thoennes · 2008 [cited by examiner]
US 20080154984A1 · Andrews · 2008 [cited by examiner]
US 20100070764A1 · Ishii · 2010 [cited by examiner]
US 20110202705A1 · Hayashi et al. · 2011 [cited by applicant]
US 20110302358A1 · Yu · 2011 [cited by examiner]
US 20120023385A1 · Scouarnec et al. · 2012 [cited by applicant]
US 20120089797A1 · Shibayama · 2012 [cited by examiner]
US 20120278382A1 · Faith · 2012 [cited by examiner]
US 20120310892A1 · Dam et al. · 2012 [cited by applicant]
US 20130227145A1 · Wright et al. · 2013 [cited by applicant]
US 20140237321A1 · Gold · 2014 [cited by applicant]
US 20150244795A1 · Cantwell et al. · 2015 [cited by applicant]
US 20160202935A1 · Hoch et al. · 2016 [cited by applicant]
US 20160350358A1 · Patel et al. · 2016 [cited by applicant]
US 20170026263A1 · Gell et al. · 2017 [cited by applicant]
US 20180131749A1 · Dobrenko · 2018 [cited by examiner]
US 20180314725A1 · Subramanian et al. · 2018 [cited by applicant]
US 20190147069A1 · Ben Dayan et al. · 2019 [cited by applicant]
US 20200089420A1 · Sharoni · 2020 [cited by examiner]
US 20200097404A1 · Cason · 2020 [cited by applicant]
US 20200117362A1 · McCarthy et al. · 2020 [cited by applicant]
US 20200117372A1 · Corey et al. · 2020 [cited by applicant]
US 20200136943A1 · Banyai et al. · 2020 [cited by applicant]
US 20210081292A1 · Jmt et al. · 2021 [cited by applicant]
US 20210081352A1 · Yang · 2021 [cited by examiner]
US 20210124645A1 · Chinthekindi et al. · 2021 [cited by applicant]
US 20210349853A1 · Duttagupta et al. · 2021 [cited by applicant]
US 20210349859A1 · Bafna et al. · 2021 [cited by applicant]
US 20220137847A1 · Roche · 2022 [cited by examiner]
US 20220197532A1 · Muthiah · 2022 [cited by examiner]
US 20220308794A1 · Fukatani · 2022 [cited by examiner]
US 20220391359A1 · Dronamraju et al. · 2022 [cited by applicant]
US 20220391361A1 · Subramanian et al. · 2022 [cited by applicant]
US 20230121460A1 · Banerjee et al. · 2023 [cited by applicant]
US 20230367517A1 · Dronamraju et al. · 2023 [cited by applicant]
US 20230367746A1 · Dronamraju et al. · 2023 [cited by applicant]
US 20230393787A1 · Dronamraju et al. · 2023 [cited by applicant]
US 20240143233A1 · Dronamraju et al. · 2024 [cited by applicant]
EP 1369772A2 · 2003 [cited by applicant]
WO 2021050875A1 · 2021 [cited by applicant]
Containers as a Service. Bring Data Rich Enterprise Applications to your Kubernetes Platform [online]. Portworx, Inc. 2021,8 pages [retrieved on Nov. 9, 2021]. Retrieved from the Internet: https://portworx.com/container… [cited by applicant]
Containers vs. Microservices: What's the Difference? [online]. BMC, 2021, 19 pages [retrieved on Nov. 9, 2021]. Retrieved from the Internet: https://www.bmc.com/blogs/containers-vs-microservices/. [cited by applicant]
Docker vs Virtual Machines (VMs): A Practical Guide to Docker Containers and VMs [online]. Jan. 16, 2020. Weaveworks, 2021, 8 pages, [retrieved on Nov. 9, 2021]. Retrieved from the Internet: https://www.weave.works/blog… [cited by applicant]
Extended European Search Report for Application No. EP22177676 mailed on Nov. 10, 2022, 10 pages. [cited by applicant]
GitHub., “Stork—Storage Orchestration Runtime for Kubernetes,” Libopenstorage/Stork, 2022, pp. 1-14. Retrieved from the Internet: https://github.com/libopenstorage/stork. [cited by applicant]
Joshi A., “From there to here, from here to there, Containers are Everywhere!,” Dec. 16, 2020 [online], Nutanix. Dev, 2021, 14 pages. [Retrieved on Nov. 9, 2021], Retrieved from the Internet: URL: https://www.nutanix.de… [cited by applicant]
Karbon Kubernetes Orchestration. Management Made Simple, [online]. Nutanix, 2021, 12 pages [Retrieved on Nov. 9, 2021]. Retrieved from the Internet: https://www.nutanix.com/products/karbon. [cited by applicant]
Kralj M., “How to Orchestrate the Modern Cloud with Kubernetes,” Jul. 2020, Software Engineering Blog, Retrieved from the Internet at: https://www.accenture.com/us-en/blogs/software-engineering-blog/kralj-orchestrate-mo… [cited by applicant]
Kubernetes., “Production-Grade Container Orchestration,” 2021, 6 pages. Retrieved from the Internet: [https://kubernetes.io/]. [cited by applicant]
NetApp SolidFire Element OS User Guide for Element OS Version 10.0, Sep. 2017, 215-12504_A0, 160 pages. [cited by applicant]
Non-Final Office Action mailed on Dec. 7, 2023 for U.S. Appl. No. 17/449,760, filed Oct. 1, 2021, 10 pages. [cited by applicant]
Non-Final Office Action mailed on Mar. 15, 2023 for U.S. Appl. No. 17/449,753, filed Oct. 1, 2021, 8 pages. [cited by applicant]
Non-Final Office Action mailed on Oct. 30, 2023 for U.S. Appl. No. 18/047,774, filed Oct. 19, 2022, 8 pages. [cited by applicant]
Notice of Allowance mailed on Apr. 8, 2024 for U.S. Appl. No. 18/359,192, filed Jul. 26, 2023, 08 pages. [cited by applicant]
Notice of Allowance mailed on Apr. 24, 2024 for U.S. Appl. No. 18/047,774, filed Oct. 19, 2022, 09 pages. [cited by applicant]
Notice of Allowance mailed on Aug. 31, 2023 for U.S. Appl. No. 17/449,753, filed Oct. 1, 2021, 7 pages. [cited by applicant]
Notice of Allowance mailed on Mar. 13, 2024 for U.S. Appl. No. 17/449,758, filed Oct. 1, 2021, 08 pages. [cited by applicant]
Notice of Allowance mailed on Nov. 8, 2023 for U.S. Appl. No. 17/449,758, filed Oct. 1, 2021, 8 pages. [cited by applicant]
ONTAP 9, Concepts, Jun. 2021,215-11959_2021-06_en-us, 38 pages. [cited by applicant]
ONTAP 9, Disks and Aggregates Power Guide, Jul. 2021,215-11204_2021-07_en-us, 54 pages. [cited by applicant]
ONTAP 9, Replication between NetApp Element Software and ONTAP, May 2021, 215-12645_2021-05_en-us, 23 pages. [cited by applicant]
ONTAP 9, System Administration Reference, Jul. 2021, 15-11148_2021-07_en-us, 150 pages. [cited by applicant]
Pods [online]. Kubernetes, 2021, 6 pages [retrieved on Nov. 9, 2021]. Retrieved from the Internet: https://kubernetes.io/docs/concepts/workloads/pods/. [cited by applicant]
Portworx Data Services, the Complete Solution for Deploying Production-Grade Data Services on Kubernetes. [online]. Portworx, Inc. 2021,5 pages. [Retrieved on Nov. 9, 2021]. Retrieved from the Internet: https://portworx… [cited by applicant]
Portworx Enterprise is the Complete Kubernetes Storage Platform Trusted in Production by the Global 2000 [online]. Portworx, Inc. 2021, 10 pages [Retrieved on Nov. 9, 2021]. Retrieved from the Internet: https://portworx… [cited by applicant]
Portworx., “Guarantee Your Cloud Native Success with the Portworx Data Services Platform for Kubernetes,” Pure Storage, 2 pages. Retrieved from the Internet: https://portworx.com/platform/. [cited by applicant]
Portworx., “Portworx Releases STORK, an Open-Source Kubernetes Scheduler Extender to Add Additional Capabilities for Stateful Applications in Production,” GlobeNewswire, 2018, pp. 1-6. Retrieved from the Internet: https… [cited by applicant]
Portwrox., “Introducing STORK: Intelligent Storage Orchestration for Kubernetes,” STORK, 2018, pp. 1-10. Retrieved from the Internet: https://portworx.com/blog/stork-storage-orchestration-kubernetes/. [cited by applicant]
Restriction Requirement mailed Jun. 16, 2023 for U.S. Appl. No. 17/449,758, filed Oct. 1, 2021, 6 pages. [cited by applicant]
Sanglaji M., et al., “Nutanix Karbon: Enterprise-grade Kubernetes Solution,” Nov. 28, 2018, 5 pages [online], [retrieved on Nov. 9, 2021]. Retrieved from the Internet: https://www.nutanix.com/blog/nutanix-karbon-enterpr… [cited by applicant]
Screen Captures from YouTube Video Clip Entitled “Pure Storage Portworx Deep Dive,” 5 pages, Uploaded on Nov. 6, 2020 by User “Tech Field Day”. Retrieved from the Internet: https://www.youtube.com/watch?v=WTCI98RAbZg. [cited by applicant]
Software Defined Storage (SDS) Solutions, [online]. Trustradius, 2021, 14 pages [Retrieved on Nov. 9, 2021]. Retrieved from the Internet: https://www.trustradius.com/software-defined-storage-sds. [cited by applicant]
Software-defined Storage, [online] IBM, 2021, 12 pages [retrieved on Nov. 9, 2021]. Retrieved from the Internet: https://www.ibm.com/it-infrastructure. [cited by applicant]
Solution Brief. Easily Operate a Database-as-a-Service Platform, [online], Portworx, Inc. 2021, 2 pages [retrieved on Nov. 9, 2021]. Retrieved from the Internet: https://portworx.com/wp-content/uploads/2021/09/pds-solut… [cited by applicant]
Tanase C.D., “Portworx—Brief Introduction—k8s Persistent Storage, Mobility, Backup, DR Made Easier,” Backup and Restore of Kubernetes Containers, 2021, pp. 1-5. Retrieved from the Internet: https://www.linkedin.com/puls… [cited by applicant]
Vast., “Universal Storage Explained,” An E-White Paper, Feb. 12, 2024, 222 pages. [cited by applicant]
Weil S.A., et al., Ceph: A Scalable, High-performance Distributed File System. In Proceedings of the 7th Symposium on Operating Systems Design and Implementation (OSDI '06), USENIX Association, USA, 2006, pp. 307-320. [cited by applicant]
What Is Container Orchestration, Exactly? Everything to Know [online], LaunchDarkly, Apr. 28, 2021, 8 pages. [retrieved on Nov. 9, 2021]. Retrieved from the Internet: https://launchdarkly.com/blog/what-is-container-orch… [cited by applicant]
What is Container Orchestration? [online], CapitalOne, 2021, 8 pages [retrieved on Nov. 9, 2021], Retrieved from the Internet: https://www.capitalone.com/tech/cloud/what-is-container-orchestration/. [cited by applicant]
Cited By (1)
US 12,705,213