IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0647906
(2009-12-28)
|
등록번호 |
US-8578120
(2013-11-05)
|
발명자
/ 주소 |
- Attarde, Deepak R.
- Kottomtharayil, Rajiv
- Vijayan, Manoj K.
|
출원인 / 주소 |
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
157 인용 특허 :
172 |
초록
▼
Described in detail herein are systems and methods for single instancing blocks of data in a data storage system. For example, the data storage system may include multiple computing devices (e.g., client computing devices) that store primary data. The data storage system may also include a secondary
Described in detail herein are systems and methods for single instancing blocks of data in a data storage system. For example, the data storage system may include multiple computing devices (e.g., client computing devices) that store primary data. The data storage system may also include a secondary storage computing device, a single instance database, and one or more storage devices that store copies of the primary data (e.g., secondary copies, tertiary copies, etc.). The secondary storage computing device receives blocks of data from the computing devices and accesses the single instance database to determine whether the blocks of data are unique (meaning that no instances of the blocks of data are stored on the storage devices). If a block of data is unique, the single instance database stores it on a storage device. If not, the secondary storage computing device can avoid storing the block of data on the storage devices.
대표청구항
▼
1. A computing system for reclaiming storage space on one or more storage devices having native file systems, wherein the storage space is utilized by one or more logical containers to store deduplicated blocks of data, wherein locations of the deduplicated blocks of data in the logical containers a
1. A computing system for reclaiming storage space on one or more storage devices having native file systems, wherein the storage space is utilized by one or more logical containers to store deduplicated blocks of data, wherein locations of the deduplicated blocks of data in the logical containers are not tracked by the native file systems of the storage devices, the computing system comprising: one or more storage devices storing on physical media— one or more logical containers that include multiple deduplicated blocks of data that correspond to data objects; andone or more data structures that indicate whether the blocks of data are referred to;one or more databases storing information indicating whether the blocks of data are referred to; anda secondary storage computing device programmed to— receive an indication to remove a first set of blocks of data from a first logical container;for each of the blocks of data in the first set— determine, from the databases, whether the block of data is referred to; andif the block of data is not referred to, update the data structures to indicate that the block of data is not referred to;determine from the data structures that a threshold number of contiguous blocks of data in the first logical container that are not referred to has been reached; andmake available for storage portions of the one or more physical media corresponding to the contiguous blocks of data in the first logical container,wherein the data structures and the databases are not part of the native file systems of the storage devices. 2. The computing system of claim 1, wherein the information stored by the databases includes, for a block of data, either a reference count of a number of references to the block of data, or information from which the reference count can be derived, and wherein the secondary storage computing device is further programmed to, for each of the blocks of data in the first set: determine the reference count for the block of data; andif the reference count of the block of data is zero, update the data structures to indicate that the block of data is not referred to. 3. The computing system of claim 1, wherein the secondary storage computing device is further programmed to: either make available for storage an intermediate portion of the first logical container; ortruncate the first logical container. 4. The computing system of claim 1, wherein the one or more logical containers correspond to one or more container files and the one or more data structures correspond to one or more index files. 5. The computing system of claim 1, wherein the secondary storage computing device is further programmed to: make available for storage portions of the one or more physical media corresponding to the first set of blocks of data in the first logical container;determine a first data object that is referred to by at least one of the blocks of data in the first set; andupdate the databases to indicate that the first data object is not referred to by any of the blocks of data in the first set. 6. The computing system of claim 1, wherein the first set of blocks of data in the first logical container was created as a result of a first storage operation. 7. The computing system of claim 1, wherein the first set of blocks of data corresponds to a file. 8. A method of reclaiming storage space on one or more storage devices, wherein the storage space is utilized by one or more logical containers to store deduplicated blocks of data, and wherein the method is performed by a computing system having a processor and memory, the method comprising: receiving an indication to remove a first data object, wherein the first data object is stored as multiple first blocks of data in at least a first logical container;accessing, by the computing system, a first data structure that indicates whether the first data object is referred to;determining that the first data object is not referred to;determining from a second data structure that a first number of multiple contiguous second blocks of data in the first logical container that are not referred to has been reached; andafter determining that the first number has been reached, specifying as available for storage a portion of the first logical container corresponding to the multiple contiguous second blocks of data. 9. The method of claim 8, wherein the storage devices have native file systems, wherein locations of the deduplicated blocks of data in the logical containers are not tracked by the native file systems of the storage devices, and wherein the first and second data structures are not part of the native file systems of the storage devices. 10. The method of claim 8, wherein the first data structure includes, for each of the multiple first blocks of data, either a reference count of a number of references to each block of data, or information from which the reference count can be derived, and wherein the method further comprises, for each block of data of the multiple first blocks of data: determining the reference count for the block of data; andif the reference count of the block of data is zero, updating the second data structure to indicate that the block of data is not referred to. 11. The method of claim 8, wherein specifying as available for storage a portion of the first logical container corresponding to the multiple contiguous second blocks of data includes either specifying as available for storage an intermediate portion of the first logical container or truncating the first logical container. 12. The method of claim 8, further comprising storing an indication in the second data structure that the multiple first blocks of data are not referred to. 13. The method of claim 8, wherein the contiguous multiple second blocks of data include at least one of the multiple first blocks of data. 14. The method of claim 8, wherein specifying as available for storage a portion of the first logical container corresponding to the multiple contiguous second blocks of data includes removing the multiple first blocks of data from the first logical container, and wherein the method further comprises: determining a second data object that is referred to by at least one of the multiple first blocks of data; andupdating the first data structure to indicate that the second data object is not referred to by any of the multiple first blocks of data. 15. The method of claim 8, wherein the first data object was created as a result of a first data storage operation. 16. The method of claim 8, wherein the first data object corresponds to a first file. 17. A computing system for reclaiming storage space on one or more means for storing, wherein the storage space is utilized by one or more logical containers to store deduplicated blocks of data, the computing system comprising: means for storing— one or more logical containers that include multiple deduplicated blocks of data that correspond to data objects;one or more first data structures that indicate whether the blocks of data are referred to by other data objects; andone or more second data structures that indicate whether the blocks of data are referred to by other data objects;means for receiving an indication to remove a first set of blocks of data from a first logical container;means for determining whether a block of data is referred to, for each of the blocks of data in the first set;means for updating the second data structures to indicate that a block of data is not referred to, for each of the blocks of data in the first set that is not referred to;means for determining from the second data structures that a first number of contiguous blocks of data in the first logical container that are not referred to has been reached; andmeans for specifying as available for storage portions of the one or more physical media corresponding to the contiguous blocks of data in the first logical container. 18. The computing system of claim 17, wherein the means for storing has a native file system, wherein locations of the deduplicated blocks of data in the logical containers are not tracked by the native file system of the means for storing, and wherein the first and second data structures do not form part of the native file system of the means for storing. 19. The computing system of claim 17, wherein: the one or more first data structures include either a reference count of a number of references to a given block of data, or information from which the reference count can be derived,the means for determining whether a block of data is referred to includes means for determining a reference count for the block of data, andthe means for updating the second data structures updates the second data structures if the reference count for the block of data is zero. 20. The computing system of claim 17, wherein the means for specifying as available for storage portions of the one or more physical media includes: means for specifying as available for storage portions of the one or more physical media corresponding to the contiguous blocks of data located at an intermediate portion of the first logical container; andmeans for specifying as available for storage portions of the one or more physical media corresponding to the contiguous blocks of data located at an extremity of the first logical container.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.