IP Library › Granted Patent US 12,265,520
Granted Patent B2
US 12,265,520 · App. 18/507,959 · Granted Apr 1, 2025

Storage tier verification checks

Inventors: Kayuri Hasmukh Patel (Cupertino, CA); Qinghua Zheng (San Jose, CA); Sumith Makam (Bangalore, IN); Kevin Daniel Varghese (Santa Clara, CA); Yuvraj Ajaykumar Patel (Madison, WI); Sateesh Kumar Pola (Bangalore, IN); Sharmi Suresh Kumar Nair (Bangalore, IN); Mihir Gorecha (Gujarat, IN)
Assignee: NetApp, Inc.
G06F16/2365G06F16/13G06F16/148
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,265,520
App. No.
18/507,959
Granted
Apr 1, 2025
Kind
B2
Abstract

Techniques are provided for storage tier verification checks. A determination is made that a mount operation of an aggregate of a set of volumes stored within a multi-tier storage environment has completed. A first metafile and a second metafile are maintained to track information related to the storage of objects of a volume of the aggregate within a remote object store that is a tier of the multi-tier storage environment. A distributed verification is performed between the first metafile and the second metafile to identify an inconsistency. Accordingly, the first metafile and the second metafile are reconciled to address the inconsistency so that storage information within the first metafile and the second metafile are consistent.

Claims (68)

1. A computing device comprising:

a memory comprising machine executable code; and

a processor coupled to the memory, the processor configured to execute the machine executable code cause the computing device to:

assemble, within a staging area, objects to comprise object slots populated with data of an aggregate;

tier the objects from the staging area to a remote object store;

populate an object reference metafile with information specifying numbers of references from the aggregate to object identifiers of the objects tiered to the remote object store;

maintain an object map metafile having a one-to-one correspondence to the object reference metafile, wherein the object map metafile comprises indicators set to indicate whether the object identifiers of the objects are allocated or not allocated; and

utilize the object reference metafile and the object map metafile to access the objects within the remote object store.

2. The computing device of claim 1 , wherein the machine executable code causes the computing device to:

populate the object reference metafile with information specifying how many places in the aggregate are pointing to an object; and

utilize the information to access the object within the remote object store.

3. The computing device of claim 1 , wherein the machine executable code causes the computing device to:

utilize the object reference metafile to track a plurality of pointers that point from a storage tier hosting the staging area to blocks of data within the object; and

provide access to the blocks of data utilizing the pointers and the object reference metafile.

4. The computing device of claim 1 , wherein the machine executable code causes the computing device to:

utilize the object reference metafile to track physical volume block numbers that reference from a storage tier hosting the staging area to blocks of data within the object; and

provide access to the blocks of data utilizing the physical volume block numbers and the object reference metafile.

5. The computing device of claim 1 , wherein the machine executable code causes the computing device to:

create the object reference metafile as a bitmap populated with bits for each object identifier to indicate a number of references to corresponding objects.

6. The computing device of claim 1 , wherein the machine executable code causes the computing device to:

populate the object reference metafile with bits set to indicate whether object identifiers of objects are allocated or not allocated, wherein a first value for a bit indicates that an object identifier is allocated and a second value for the bit indicates that the object identifier is not allocated and free for storing data.

7. The computing device of claim 1 , wherein the machine executable code causes the computing device to:

during a mount operation, verify the object reference metafile.

8. The computing device of claim 1 , wherein the machine executable code causes the computing device to:

determine that a metafile has a reliance upon the object reference metafile; and

perform distributed checks upon the metafile and the object reference metafile based upon the reliance.

9. The computing device of claim 1 , wherein the machine executable code causes the computing device to:

evaluate metafiles maintained by a storage tier hosting the staging area to identify interdependencies amongst the metafiles, wherein the metafiles include the object reference metafile; and

perform distributed checks upon the metafiles.

10. A method, comprising:

assembling, within a staging area, objects to comprise object slots populated with data of an aggregate;

tiering the objects from the staging area to a remote object store;

populating an object reference metafile with information specifying numbers of references from the aggregate to object identifiers of the objects tiered to the remote object store;

maintaining an object map metafile having a one-to-one correspondence to the object reference metafile, wherein the object map metafile comprises indicators set to indicate whether the object identifiers of the objects are allocated or not allocated; and

utilizing the object reference metafile and the object map metafile to access the objects within the remote object store.

11. The method of claim 10 , comprising:

determining that a metafile has a reliance upon the object reference metafile; and

performing distributed checks upon the metafile and the object reference metafile based upon the reliance.

12. The method of claim 10 , comprising:

evaluating metafiles maintained by a storage tier hosting the staging area to identify interdependencies amongst the metafiles, wherein the metafiles include the object reference metafile; and

performing distributed checks upon the metafiles.

13. The method of claim 10 , comprising:

populating the object reference metafile with information specifying how many places in the aggregate are pointing to an object; and

utilizing the information to access the object within the remote object store.

14. The method of claim 10 , comprising:

utilizing the object reference metafile to track a plurality of pointers that point from a storage tier hosting the staging area to blocks of data within the object; and

providing access to the blocks of data utilizing the pointers and the object reference metafile.

15. The method of claim 10 , comprising:

utilizing the object reference metafile to track physical volume block numbers that reference from a storage tier hosting the staging area to blocks of data within the object; and

providing access to the blocks of data utilizing the physical volume block numbers and the object reference metafile.

16. A non-transitory machine readable medium comprising instructions for performing a method, which when executed by a machine, causes the machine to:

assemble within a staging area, objects to comprise object slots populated with data of an aggregate;

tier the objects from the staging area to a remote object store;

populate an object reference metafile with information specifying numbers of references from the aggregate to object identifiers of the objects tiered to the remote object store;

maintain an object map metafile having a one-to-one correspondence to the object reference metafile, wherein the object map metafile comprises indicators set to indicate whether the object identifiers of the objects are allocated or not allocated; and

utilize the object reference metafile and the object map metafile to access the objects within the remote object store.

17. The non-transitory machine readable medium of claim 16 , wherein the instructions cause the machine to:

determine that a metafile has a reliance upon the object reference metafile; and

perform distributed checks upon the metafile and the object reference metafile based upon the reliance.

18. The non-transitory machine readable medium of claim 16 , wherein the instructions cause the machine to:

evaluate metafiles maintained by a storage tier hosting the staging area to identify interdependencies amongst the metafiles, wherein the metafiles include the object reference metafile; and

perform distributed checks upon the metafiles.

19. The non-transitory machine readable medium of claim 16 , wherein the instructions cause the machine to:

populate the object reference metafile with information specifying how many places in the aggregate are pointing to an object; and

utilizing the information to access the object within the remote object store.

20. The non-transitory machine readable medium of claim 16 , wherein the instructions cause the machine to:

utilize the object reference metafile to track a plurality of pointers that point from a storage tier hosting the staging area to blocks of data within the object; and

provide access to the blocks of data utilizing the pointers and the object reference metafile.

Continuity (4)
Continuation 17536363 · Nov 29, 2021
Continuation 16806379 · Mar 2, 2020
Continuation 15624891 · Jun 16, 2017
Related Publication 20240232168A1 · Jul 11, 2024
References Cited (17)
US 8713356B1 · Chan et al. · 2014 [cited by applicant]
US 9367395B1 · Bono · 2016 [cited by examiner]
US 10621162B2 · Patel et al. · 2020 [cited by applicant]
US 11188520B2 · Patel et al. · 2021 [cited by applicant]
US 11816093B2 · Patel et al. · 2023 [cited by applicant]
US 20030212920A1 · Fujibayashi · 2003 [cited by applicant]
US 20050038803A1 · Edwards · 2005 [cited by applicant]
US 20080189343A1 · Hyer et al. · 2008 [cited by applicant]
US 20140297604A1 · Brand · 2014 [cited by examiner]
US 20170123928A1 · Smith et al. · 2017 [cited by applicant]
US 20220083535A1 · Patel et al. · 2022 [cited by applicant]
Non-Final Office Action mailed Mar. 13, 2013 for U.S. Appl. No. 17/536,363, filed Nov. 29, 2021, 16 pages. [cited by applicant]
Non-Final Office Action mailed on Apr. 1, 2021 for U.S. Appl. No. 16/806,379, filed Mar. 2, 2020 14 pages. [cited by applicant]
Non-Final Office Action mailed on Sep. 20, 2019 for U.S. Appl. No. 15/624,891, filed Jun. 16, 2017 15 pages. [cited by applicant]
Notice of Allowance mailed on Feb. 5, 2020 for U.S. Appl. No. 15/624,891, filed Jun. 16, 2017, 07 pages. [cited by applicant]
Notice of Allowance mailed on Jul. 11, 2023 for U.S. Appl. No. 17/536,363, filed Nov. 29, 2021, 07 pages. [cited by applicant]
Notice of Allowance mailed on Jul. 27, 2021 for U.S. Appl. No. 16/806,379, filed Mar. 2, 2020 8 pages. [cited by applicant]