KR20100054093A - 데이터 블럭의 내부 중복제거 및 관리를 갖춘 화일 시스템 - Google Patents
데이터 블럭의 내부 중복제거 및 관리를 갖춘 화일 시스템 Download PDFInfo
- Publication number
- KR20100054093A KR20100054093A KR1020090105506A KR20090105506A KR20100054093A KR 20100054093 A KR20100054093 A KR 20100054093A KR 1020090105506 A KR1020090105506 A KR 1020090105506A KR 20090105506 A KR20090105506 A KR 20090105506A KR 20100054093 A KR20100054093 A KR 20100054093A
- Authority
- KR
- South Korea
- Prior art keywords
- data block
- data blocks
- pointer
- master copy
- deduplication
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
화일 시스템내에서의 데이터 블럭들을 중복제거 및 관리하는 방법은 각각의 데이터 블럭들이 중복제거되어 있는지 여부를 표시하기 위해 중복제거 식별자를 각각의 데이터 블럭들을 가리키는 각각의 포인터에 추가하는 단계와, 중복 데이터 블럭들을 검출하는 단계와, 검출된 경우, 중복 데이터 블럭들 중 하나가 중복제거되었는지 여부를 판단하는 단계와, 하나의 중복 데이터 블럭이 중복제거된 것으로 판단되는 경우에 하나의 중복 데이터 블럭은 마스터 복사본인 것으로 판단하는 단계와, 중복 데이터 블럭이 중복제거되지 않은 것으로 판단되는 경우에 중복 데이터 블럭들 중 하나를 마스터 복사본이 되도록 선택하고, 선택된 중복 데이터 블럭의 중복제거 식별자가 중복제거를 표시하도록 설정하는 단계와, 나머지 다른 중복 데이터 블럭이 새로운 중복 데이터 블럭인 것으로 판단하고, 나머지 다른 중복 데이터 블럭의 중복제거 식별자가 중복제거를 표시하도록 설정하며, 각각의 포인터가 상기 마스터 복사본을 가리키도록 하는 단계를 포함한다.
화일, 시스템, 데이터, 블럭, 중복제거.
Description
본 발명은 데이터 블럭의 중복제거에 관한 것이며, 보다 구체적으로는 화일 시스템내의 데이터 블럭을 중복제거 및 관리하는 방법에 관한 것이다.
일반적으로 화일 시스템은 예컨대 4KB와 같은 고정된 크기의 데이터 블럭으로 기본적인 블럭 저장 장치의 용량을 편성한다. 화일 시스템내의 각각의 화일은 일반적으로 자신의 데이터 블럭(들)을 갖는다. 각각의 데이터 블럭은 0으로 시작하는 32비트 또는 64비트의 숫자에 의해 식별되며, 이 숫자는 각각의 데이터 블럭에 대한 포인터를 나타낸다. 그러므로, 통상적인 화일 시스템은 232 또는 264 개의 서로 다른 데이터 블럭들을 관리하는데, 이것은 각각 화일 시스템의 최대 용량을 정의한다.
통상적인 유닉스(Unix) 유형의 화일 시스템은 각각의 화일의 메타데이터를 저장하기 위해 아이노드(inode)를 이용한다. 도 1은 통상적인 화일 시스템의 아이노드에 관한 데이터 구조 1을 나타낸다. 도 1에서 도시된 바와 같이, 데이터 구조 1은 예컨대 화일을 바이트 크기로 기록하는 i_size 필드를 포함한다. 화일의 크기에 따라, 화일의 내용을 저장하기 위해 보다 많거나 또는 보다 적은 데이터 블럭들이 필요하게 된다. 데이터 구조는 또한 i_block[EXT2_N_BLOCKS] 어레이를 포함하는데, 이것은 화일의 관련된 데이터 블럭들을 가리키는 일반적으로 15개의 32비트 숫자들의 어레이이다. 도 2는 통상적인 화일 시스템내에서의 아이노드와 데이터 블럭들간의 관계를 나타낸다. 도 2에서 도시된 바와 같이, 아이노드(10)는 복수의 i_block[0] 내지 i_block[14]를 포함하는 것이 도시된다. 처음 12개의 i_block[0] 내지 i_block[11]는 처음 12개의 데이터 블럭들, 즉 직접 데이터 블럭들(15)을 가리킨다. i_block[12] 엘리먼트는 간접 데이터 블럭들(18)을 가리키는 데이터 블럭(즉, 간접 포인터 블럭)을 가리킨다. 엘리먼트 i_block[12]에 의해 주소지정되는 데이터 블럭(16)은 화일 데이터 자체를 포함하지는 않으며; 그 대신에, 추가적인 데이터 블럭들(18)을 가리키는 추가적인 i_block[...] 엘리먼트를 포함한다. i_block[13] 엘리먼트는 간접 포인터 블럭(20)을 가리키고, 이 포인터 블럭(20)의 각각의 엘리먼트는 이중 간접 포인터 블럭(22)을 가리키며, 이어서 이 포인터 블럭(22)의 각각의 엘리먼트는 이중 간접 데이터 블럭(24)을 가리킨다. 또한, i_block[14] 엘리먼트는 간접 포인터 블럭(26)을 가리키고, 이 포인터 블럭(26)의 각각의 엘리먼트는 이중 간접 포인터 블럭(28)을 가리키며, 이어서 이 포인터 블럭(28)의 각각의 엘리먼트는 삼중 간접 포인터 블럭(29)을 가리키고, 이 포인터 블럭(29)의 각각의 엘리먼트는 삼중 간접 데이터 블럭(30)을 가리킨다. 만약 4kB의 블럭 크기와 32비트(4바이트)의 포인터 크기가 주어지면, 데이터 블럭은 대략 1024 개의 포인터들을 저장할 수 있다. 도 3은 각각의 데이터 블럭을 주소지정하는 고유의 32비트 숫자를 저장하는 일반적인 32비트 포인터(40)를 나타낸다.
통상적인 화일 시스템은 대략 232 또는 264 개의 서로 다른 데이터 블럭들을 포함할 수 있으며, 그 결과 수 테라바이트(TB)의 최대 화일 시스템 크기를 불러일으키지만, 보다 새로운 화일 시스템은 이보다 훨씬 더 큰 용량을 제공해준다. 그러므로, 화일 시스템은 방대한 양의 데이터를 저장할 수 있으며, 화일 시스템의 데이터를 저장하는데 필요로 하는 물리적인 공간량을 줄이기 위해, 통상적인 중복제거 방법이 수행될 수 있다.
블럭, 청크(chunk), 또는 화일과 같은 중복 데이터 객체를 검색하기 위해 데이터 중복제거가 수행되며, 이로써 저장된 데이터의 20:1 감축을 제공한다. 중복 데이터가 확인되면, 저장된 데이터의 양을 감소시키기 위해, 중복 데이터는 데이터의 부모 복사본을 가리키는 포인터로 교체된다.
본 발명은 여러 개의 화일들이 화일 시스템내에서 동일한 데이터 블럭들을 공유할 수 있도록 해주며, 화일 시스템내에서의 데이터 블럭의 중복제거 및 관리를 효율적으로 다루는 방법을 제공한다.
본 발명의 일 실시예에 따르면, 화일 시스템내에서 데이터 블럭을 중복제거 및 관리하는 방법이 개시된다. 본 방법은 각각의 데이터 블럭이 중복제거되어 있는지 여부를 표시하는 중복제거 식별자를 각각의 데이터 블럭을 가리키는 각각의 포인터에 추가하는 것과, 화일 시스템내에서 중복 데이터 블럭을 검출하는 것과, 검출된 경우, 적어도 하나의 중복 데이터 블럭이 다른 데이터 블럭에 대해 중복제거되었는지 여부를 판단하는 것과, 적어도 하나의 중복 데이터 블럭이 중복제거된 것으로 판단되는 경우에 적어도 하나의 중복 데이터 블럭이 마스터 복사본인 것으로 판단하는 것과, 중복 데이터 블럭이 중복제거되지 않은 것으로 판단되는 경우에 중복 데이터 블럭들 중 하나의 중복 데이터 블럭을 마스터 복사본이 되도록 선택하는 것과, 선택된 중복 데이터 블럭의 각각의 포인터의 중복제거 식별자를 중복제거를 표시하도록 설정하는 것과, 나머지 다른 중복 데이터 블럭은 새로운 중복 데이터 블럭인 것으로 판단하고 나머지 다른 중복 데이터 블럭의 각각의 포인터의 중복제거 식별자를 중복제거를 표시하도록 설정하는 것과, 나머지 다른 중복 데이터 블럭의 각각의 포인터가 마스터 복사본을 지시하도록 하는 것을 포함한다.
본 발명의 다른 실시예들에 따르면, 본 방법을 수행하는 화일 시스템 및 컴퓨터 프로그램 제품이 또한 제공된다.
본 발명의 기술들을 통해서 추가적인 특징들 및 장점들이 실현된다. 본 발명의 다른 실시예들 및 실시양태들은 본 명세서에서 자세하게 설명되며, 이들은 청구된 발명의 일부로서 간주된다. 이러한 장점들 및 특징들을 갖는 본 발명의 보다 나은 이해를 위해, 상세한 설명 및 도면을 참조한다.
여러 개의 화일들이 화일 시스템내에서 동일한 데이터 블럭들을 공유할 수 있도록 해주며, 화일 시스템내에서의 데이터 블럭의 중복제거 및 관리를 효율적으로 다룰 수 있다.
이제 도 4를 참조하면, 본 도면에는 본 발명의 실시예들내에서 구현될 수 있는 화일 시스템을 위한 32비트 i_block[...] 엘리먼트(50)가 존재한다. 32비트 i_block[...] 엘리먼트(50)는 31비트 포인터(52)와, 최상위 비트(MSB)이며 각각의 데이터 블럭이 중복제거되어 있는지 여부를 표시해주는데 사용되는 중복제거 비트(54)(여기서, MSB=1인 경우, 데이터 블럭은 중복제거되며, MSB=0인경우, 데이터 블럭은 중복제거되지 않는다)를 포함한다. 중복제거된 데이터 블럭들은 서로 다른 화일들 또는 동일한 화일의 다수의 동일 데이터 청크들(chunk)를 저장한다. 31비트 포인터(52)와 중복제거 비트(54)는 함께 32비트 숫자를 제공한다. 이 실시예에서는, 31비트 포인터가 이용되지만; 본 발명은 이것에 한정되지는 않으며 필요에 따 라 다양해질 수 있다. 예를 들어, 대안적인 실시예에 따라, 63비트 포인터와 중복제거 비트를 포함하는 64비트 i_block[...]이 이용될 수 있다.
본 발명은 화일 시스템내에서 각각의 데이터 블럭들을 중복제거 및 관리하는 방법을 제공한다. 이러한 방법과 관련된 추가적인 상세내용이 도 6, 도 7 및 도 8을 참조하여 이하에서 설명될 것이다.
도 5는 본 발명의 실시예에 따라, 중복제거된 데이터 블럭들의 목록을 유지하기 위해, 화일 시스템에 의해 이용되는 데이터베이스(예컨대, 룩업 테이블(LUT))(60)를 도시한다. LUT(60)는 데이터 블럭이 공유중인지 여부를 판단하는데 이용된다. 예를 들어, 만약 텍스트 문서가 복사된 경우, 그리고 이 복사된 문서에 패러그래프(paragraph)가 첨부된 경우, 양쪽의 텍스트 문서들과 관련된 선도(leading) 데이터 블럭은 동일한 내용을 가지며, 이에 따라 중복제거될 수 있는 동일한 데이터 블럭들을 갖는다. 따라서, LUT(60)는 예컨대, 동일한 데이터 블럭을 공유하는 모든 다른 화일들을 보여준다. 도시된 바와 같이, LUT(60)는 각각의 중복제거된 데이터 블럭을 위한 행과, 데이터 블럭 열(62), 블럭 카운터 열(64), 및 포인터 리스트 열(66)과 같은 복수의 열들을 포함한다. 데이터 블럭 열(62)은 중복제거된 데이터 블럭의 단일 인스턴스를 주소지정하는 31비트 포인터(52)를 기록해둔다. 블럭 카운터 열(64)은 중복제거된 데이터 블럭을 주소지정하는 i_block[...] 엘리먼트들의 갯수를 기록해두며, 포인터 리스트 열(66)은 중복제거된 블럭을 주소지정하는 각각의 i_block[...]엘리먼트에 대한 참조정보를 기록해둔다.
이제부터 중복 데이터 블럭들을 중복제거시키는 방법의 상세한 설명을 도 6 을 참조하여 아래에서 설명할 것이다.
본 발명의 실시예에 따르면, 도 6에서 도시된 방법은 새로운 데이터 블럭이 기록되었거나 기존의 데이터 블럭이 업데이트된 후에 바로 수행될 수 있거나(즉, 인밴드 중복제거), 또는 이와 달리, 나중의 시간을 위해 스케쥴링될 수 있다(즉, 아웃밴드 중복제거). 도 6의 동작(510)에서, 중복제거 검출이 수행되어 중복 데이터 블럭을 검출한다. 프로세스는 동작(510)으로부터, 두 개의 중복 데이터 블럭들이 검출되었는지 여부를 판단하는 동작(520)으로 이동한다. 동작(520)에서 새로운 중복 데이터 블럭들이 검출되지 않은 것으로 판단되는 경우, 프로세스는 종료한다. 이와 달리, 동작(520)에서 두 개의 새로운 중복 데이터 블럭들이 검출된 것으로 판단되면, 프로세스는 동작(520)에서 확인된 데이터 블럭들 중 하나가 이미 중복제거되어 있는지 여부가 판단되는 동작(530)으로 이동한다. 확인된 데이터 블럭들 중 어느 것도 다른 데이터 블럭에 대하여 중복제거되지 않은 것으로 판단되는 경우, 프로세스는 동작(560)(이하에서 설명됨)으로 이동한다. 이와 달리, 동작(530)에서, 데이터 블럭들 중 하나가 이미 다른 데이터 블럭에 대하여 중복제거된 것으로 판단되면, 프로세스는 두 개의 중복 데이터 블럭들 중 어느 것이 다른 데이터 블럭에 대하여 이미 중복제거되어 있는지를 판단함으로써 마스터 복사본을 결정하는 동작(540)으로 이동한다. 일 실시예에 따르면, 동작(540)에서 결정된 데이터 블럭은 (도 5에서 도시된) LUT(60)내의 엔트리를 포함하며, 이에 따라, 이것은 양쪽 중복 데이터 블럭들의 마스터 복사본이 된다. 프로세스는 동작(540)으로부터, 마스터 복사본이 아닌 제2 중복 데이터 블럭이 "새로운 중복 데이터 블럭"으로서 결정되는 동작(542)로 이동한다. 프로세스는 동작(542)으로부터, 새로운 중복 데이터 블럭이 중복제거되었음을 표시하기 위해, 새로운 중복 데이터 블럭을 가리키는 i_block[...] 엘리먼트의 중복제거 비트(54)를 '1'로 설정하는 동작(544)으로 이동한다. 프로세스는 동작(544)으로부터, 새로운 중복 데이터 블럭의 포인터가 마스터 복사본을 재지시하는 동작(546)으로 이동한다. 프로세스는 동작(546)으로부터, 하나의 추가적인 i_block[...] 엘리먼트가 마스터 복사본을 가리키고 있는 중인 것을 표시하도록 (도 5에서 도시된) 블럭 카운터를 '1'만큼 증가시키는 동작(548)으로 이동한다. 프로세스는 동작(548)으로부터, 새로운 중복 데이터 블럭의 i_block[...] 엘리먼트에 대한 참조정보가 LUT(60)에서 도시된 각각의 마스터 복사본의 행에 대한 포인터 리스트에 추가되는 동작(550)으로 이동한다. 프로세스는 동작(550)으로부터, 이제 새로운 중복 데이터 블럭이 각각의 마스터 복사본과 교체되었기 때문에 더이상 사용되지 않는 새로운 중복 데이터 블럭이 할당해제되는 동작(552)으로 이동한다. 그런 다음, 프로세스는 동작(510)으로 복귀하여 새로운 중복 데이터 블럭을 검출한다.
상술된 동작(530)을 다시 참조하면, 동작(520)에서 확인된 양쪽 데이터 블럭들이 다른 데이터 블럭들에 대해 중복제거되지 않은 것으로 동작(530)에서 판단된 경우, 프로세스는 두 개의 중복 데이터 블럭들 중 하나가 마스터 복사본으로서 선택이 되는 동작(560)으로 이동한다. 프로세스는 동작(560)으로부터, 마스터 복사본이 중복제거되어 있음을 표시하기 위해 마스터 복사본에 대한 포인터의 중복제거 비트(54)가 '1'로 설정되는 동작(562)으로 이동한다. 프로세스는 동작(562)으로부 터, 마스터 복사본에 대한 새로운 행이 (도 5에서 도시된) LUT(60)에서 생성되는 동작(564)으로 이동한다. 프로세스는 동작(564)으로부터, 생성된 새로운 행의 (도 5에서 도시된) 데이터 블럭(62)이 새로운 마스터 복사본의 어드레스로 채워지는 동작(566)으로 이동한다. 프로세스는 동작(566)으로부터, 오직 하나의 i_block [...] 엘리먼트가 마스터 복사본을 가리키고 있는 중임을 표시하기 위해 블럭 카운터(64)를 '1'로 설정하는 동작(568)으로 이동한다. 프로세스는 동작(568)으로부터, 마스터 복사본의 i_block [...] 에 대한 참조정보가 도 5에서 도시된 각각의 행에 대한 포인터 리스트(66)에 추가되는 동작(570)으로 이동한다. 그런 다음, 프로세스는 동작(570)으로부터, 나머지 중복 데이터 블럭(즉, 제2 중복 데이터 블럭)이 새로운 중복 데이터 블럭으로서 결정되는 동작(542)으로 복귀하고, 프로세스는 동작(552)까지 계속 수행하고 동작(510)으로 복귀한다.
이제부터 도 7을 참조하여 데이터 블럭을 삭제하는 동작의 상세내용을 설명한다.
도 7에서, 본 발명의 실시예에 따라 데이터 블럭을 삭제하는 동작이 수행된다. 동작(610)에서, 삭제되어야 할 데이터 블럭을 가리키는 i_block[...] 엘리먼트의 중복제거 비트(54)가 '1'로 설정되어 있는지 여부가 판단된다. 중복제거 비트가 '1'로 설정되지 않은 것으로 판단되면, 각각의 데이터 블럭이 공유중이지 않은 것으로 판단하여, 프로세스는 데이터 블럭이 할당해제되는 동작(620)으로 이동하고 프로세스는 종료한다.
이와 달리, 동작(610)에서 중복제거 비트(54)가 '1'로 설정된 것으로 판단되 면, 각각의 데이터 블럭이 공유중인 것으로 판단하고 프로세스는 삭제되어야 할 중복제거된 데이터 블럭의 마스터 복사본을 나타내는 LUT(60)내의 엔트리에서 도시된 블럭 카운터(64)가 '1'만큼 감소되는 동작(630)으로 이동한다. 프로세스는 동작(630)으로부터, 1만큼 감소되었던 블럭 카운터가 이제 '1'과 동일한지 여부를 판단하는 동작(640)으로 이동한다. 동작(640)에서 블럭 카운터가 '1'과 동일하지 않은 것으로 판단되면, 프로세스는 삭제되어야 할 데이터 블럭의 i_block[...]에 대한 참조정보가 도 5에서의 항목(66)과 같은 포인터 리스트로부터 제거되는 동작(670)으로 이동하고, 프로세스는 종료한다. 이와 달리, 동작(640)에서 블럭 카운터가 '1'과 동일한 것으로 판단되면(즉, 오직 하나의 동일한 데이터 블럭이 남아 있는 경우), 프로세스는 삭제되어야 할 중복제거된 데이터 블럭의 마스터 복사본의 엔트리가 LUT(60)로부터 제거되고 데이터 블럭이 할당해제되는 동작(650)으로 이동한다. 일 실시예에 따르면, 오로지 하나의 동일한 블럭들의 복사본만이 남아 있기 때문에, LUT(60)에서 중복 데이터 블럭들의 정보를 더 이상 유지할 필요가 없다. 프로세스는 동작(650)으로부터, 마스터 복사본이 더 이상 중복제거되지 않는 것을 표시하기 위해 마스터 복사본을 가리키는 i_block[...] 엘리먼트의 중복제거 비트(54)가 '0'으로 설정되는 동작(660)으로 이동하고, 프로세스는 종료한다.
대안적인 실시예에 따르면, 동작(640)에서 블럭 카운터가 '0'과 동일한지 여부를 판단할 수 있다. 만약 그러한 경우, LUT(60)는 더 이상 다수의 중복제거된 데이터 블럭들의 내용을 나타내지 않는 마스터 복사본들을 갖는 엔트리들을 포함할 수 있다. 따라서, 마스터 복사본들의 검출은 후에 오프 피크(off-peak) 기간 동안 수행될 수 있다. 또 다른 대안적인 실시예에 따르면, 만약 블럭 카운터가 '1'에 도달되면, 중복제거 비트가 설정되지만 LUT(60)에서 각각의 엔트리가 발견되지 않도록 중복제거 비트는 변경되지 않은 상태로 남을 수 있다.
이제 도 8을 참조하여 기존의 데이터 블럭을 업데이트하는 프로세스의 상세내용을 설명할 것이다.
도 8에서, 예를 들어, 기존 화일의 내용이 수정되는 경우, 본 발명의 일 실시예에 따라 기존의 데이터 블럭을 업데이트하는 동작이 수행된다. 도 8에서 도시된 바와 같이, 동작(710)에서 업데이트되는 데이터 블럭을 가리키는 i_block[...] 엘리먼트의 중복제거 비트(54)가 '1'로 설정되어 있는지 여부가 판단된다. 중복제거 비트가 '1'로 설정되어 있지 않은 것으로 판단되는 경우, 프로세스는 데이터 블럭이 업데이트되는 동작(720)으로 이동하고, 그런 다음 프로세스는 (도 6에서 도시된 동작(510)에서와 같이) 중복제거가 판단되는 동작(730)으로 이동한다. 이와 달리, 중복제거 비트(54)가 '1'로 설정되어 있는 것으로 동작(710)에서 판단되면, 프로세스는 업데이트되는 데이터 블럭에 대한 마스터 복사본을 나타내는 LUT(60)내의 엔트리에서 도시된 블럭 카운터가 '1'만큼 감소되는 동작(750)으로 이동한다. 그런 다음, 프로세스는 동작(750)으로부터, 업데이트되는 데이터 블럭의 i_block[...] 엘리먼트에 대한 참조정보가 LUT(60)에서 도시된 포인터 리스트(66)로부터 제거되는 동작(760)으로 이동한다. 프로세스는 동작(760)으로부터, 새로운 데이터 블럭이 할당되는 동작(770)으로 이동하고, 프로세스는 동작(770)으로부터, 업데이트되는 데이터 블럭의 마스터 복사본을 가리키는 i_block[...] 엘리먼트가 새로운 데이터 블럭을 재지시하는 동작(780)으로 이동한다. 그런 다음, 프로세스는 동작(780)으로부터, 데이터 블럭이 업데이트되는 동작(720)에 이어서 그런 다음 중복제거가 판단되는 동작(730)으로 진행한다.
본 발명의 실시예들은 각각의 데이터 블럭들의 중복제거를 표시하기 위한 중복제거 식별자를 각각 포함하는 데이터 블럭 포인터들과 중복제거된 데이터 블럭들의 목록을 추적하기 위한 데이터베이스를 제공하기 때문에, 본 발명은 화일 시스템내에서 데이터 블럭을 효율적으로 중복제거 및 관리하면서(예컨대, 업데이트하고 삭제하는 것) 데이터 블럭을 공유하는 장점을 제공한다.
본 명세서에서 사용된 용어는 오로지 특정 실시예를 설명하기 위함이며, 본 발명을 제한시키려는 의도는 없다. 본 명세서에서 사용된 "a", "an" 및 "the"의 단수 형태는 문맥에서 명확하게 달리 표현하지 않는 한, 복수 형태도 포함하는 것으로 한다. 또한, 용어 "포함한다" 및/또는 "포함하는"이 본 명세서에서 사용될 때에, 진술된 특징, 정수, 단계, 동작, 엘리먼트, 및/또는 컴포넌트의 존재를 규정하지만, 하나 이상의 특징, 정수, 단계, 동작, 엘리먼트, 컴포넌트 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않음을 이해할 것이다.
아래의 청구항들에서 모든 수단들 또는 단계들 및 기능 엘리먼트의 대응하는 구조물, 물질, 행위, 및 등가물은 구체적으로 청구된 다른 청구된 엘리먼트들과 결합하여 본 기능을 수행하기 위한 임의의 구조물, 물질, 또는 행위를 포함하는 것으로 한다. 본 발명의 설명은 설명과 해설을 위해 제시되었으며, 개시된 형태를 망라한 것이거나 또는 본 발명을 개시된 형태로 한정시키는 것으로 의도한 것은 아니 다. 수 많은 변형과 변경이 본 발명의 범위와 사상으로부터 일탈하는 것 없이 본 발명의 당업자에게 떠오를 것이다. 본 발명의 원리와 실제 응용을 최상으로 설명하고, 본 발명분야의 제3자들이 특정 용도 구상에 적합한 다양한 변형들을 갖는 다양한 실시예들을 염두하면서 본 발명을 이해하도록 하기 위해 실시예가 선택되고 기술되었다.
여기서 도시된 흐름도들은 단지 하나의 예에 불과하다. 본 명세서에서 설명된 이러한 흐름도들 또는 단계들(또는 동작들)에 대한 수 많은 변형이 본 발명의 사상으로부터 일탈하는 것 없이 존재할 수 있다. 예를 들어, 단계들은 이와 다른 순서로 수행될 수 있거나, 또는 단계들이 추가, 삭제, 또는 수정될 수 있다. 이러한 모든 변형예들은 청구된 본 발명의 일부로서 간주된다.
본 발명에 대한 바람직한 실시예를 설명하여왔지만, 본 발명의 당업자라면 현시점과 미래에서, 본 발명의 이하의 청구범위내에 속하는 다양한 개량안 및 개선안을 만들어낼 수 있음을 이해할 것이다. 이러한 청구범위들은 처음에 설명한 본 발명에 대한 적절한 보호를 유지시키는 것으로 해석되어져야 한다.
본 발명으로서 간주되는 발명주제는 명세서의 결론에 해당하는 청구범위내에서 구체적으로 나타나 있고 여기에서 명확하게 청구되어 있다. 본 발명의 전술된 특징들 및 장점들, 및 기타 특징들 및 장점들은 첨부된 도면들을 함께함으로써 상술된 상세한 설명을 통해 명백해진다.
도 1은 통상적인 화일 시스템의 아이노드들에 관한 데이터 구조를 도시한다.
도 2는 통상적인 화일 시스템의 아이노드와 데이터 블럭들 간의 관계를 도시하는 도면이다.
도 3은 통상적인 32비트 포인터를 도시하는 도면이다.
도 4는 본 발명의 실시예들내에서 구현될 수 있는 31비트 포인터와 중복제거 비트를 포함하는 32비트 i_block[...] 엘리먼트를 도시하는 도면이다.
도 5는 본 발명의 실시예들내에서 구현될 수 있는 중복제거된 데이터 블럭들의 목록을 도시하는 룩업 테이블(LUT)이다.
도 6은 본 발명의 실시예들내에서 구현될 수 있는 중복 데이터 블럭들을 중복제거시키는 동작을 도시하는 흐름도이다.
도 7은 본 발명의 실시예들내에서 구현될 수 있는 데이터 블럭을 삭제하는 동작을 도시하는 흐름도이다.
도 8은 본 발명의 실시예들내에서 구현될 수 있는 데이터 블럭을 업데이트하는 동작을 도시하는 흐름도이다.
Claims (10)
- 화일 시스템내에서 데이터 블럭들을 중복제거 및 관리하는 방법에 있어서,각각의 데이터 블럭들을 가리키는 각각의 포인터에 중복제거 식별자를 추가시키는 단계로서, 상기 중복제거 식별자는 상기 각각의 데이터 블럭들이 중복제거되어 있는지 여부를 표시하는 것인, 상기 추가 단계;상기 화일 시스템내에서 중복 데이터 블럭들을 검출하는 단계;검출된 경우, 상기 중복 데이터 블럭들 중 적어도 하나가 다른 데이터 블럭들에 대해 중복제거되어 있는지 여부를 판단하는 단계;상기 적어도 하나의 중복 데이터 블럭이 중복제거된 것으로 판단되는 경우 상기 적어도 하나의 중복 데이터 블럭은 마스터 복사본인 것으로 판단하는 단계;상기 적어도 하나의 중복 데이터 블럭이 중복제거되지 않은 것으로 판단되는 경우에 상기 중복 데이터 블럭들 중 하나의 중복 데이터 블럭을 마스터 복사본이 되도록 선택하고, 상기 선택된 중복 데이터 블럭의 각각의 포인터의 중복제거 식별자가 중복제거를 표시하도록 설정하는 단계; 및나머지 다른 중복 데이터 블럭이 새로운 중복 데이터 블럭인 것으로 판단하고, 상기 나머지 다른 중복 데이터 블럭의 각각의 포인터의 중복제거 식별자가 중복제거를 표시하도록 설정하며, 상기 나머지 다른 중복 데이터 블럭의 각각의 포인터가 상기 마스터 복사본을 지시하도록 하는 단계를 포함하는 데이터 블럭들을 중복제거 및 관리하는 방법.
- 제 1 항에 있어서,중복제거된 데이터 블럭들의 목록을 추적하기 위해, 각각의 마스터 복사본에 각각 대응하는 복수의 엔트리들을 포함하는 데이터베이스를 제공하는 단계; 및카운터를 통해, 각각의 마스터 복사본과 관련된 복수의 포인터들을 카운팅하고, 각각의 마스터 복사본을 참조하는 각각의 포인터를 표시하기 위해 각각의 마스터 복사본에 대응하는 포인터 리스트를 제공하는 단계를 더 포함하는, 데이터 블럭들을 중복제거 및 관리하는 방법.
- 제 2 항에 있어서,상기 적어도 하나의 중복 데이터 블럭이 마스터 복사본이고, 상기 나머지 다른 중복 데이터 블럭의 각각의 포인터가 상기 각각의 마스터 복사본을 지시하는 것으로 판단하는 경우, 상기 각각의 마스터 복사본에 관한 카운터를 1만큼 증가시키며, 상기 나머지 다른 중복 데이터 블럭의 포인터를 상기 각각의 마스터 복사본에 대응하는 포인터 리스트에 추가하는 것인, 데이터 블럭들을 중복제거 및 관리하는 방법.
- 제 3 항에 있어서,상기 중복 데이터 블럭들 중 하나를 마스터 복사본으로서 선택하는 경우, 상기 마스터 복사본에 대한 상기 데이터베이스내에 새로운 엔트리를 생성하고, 상기 선택된 중복 데이터 블럭을 상기 마스터 복사본으로서 나타내기 위해 상기 새로운 엔트리에 대한 카운터를 1로 설정하고, 상기 선택된 중복 데이터 블럭의 포인터를 상기 각각의 마스터 복사본에 대응하는 상기 포인터 리스트에 추가하며, 상기 나머지 다른 중복 데이터 블럭이 상기 새로운 중복 데이터 블럭인 것으로 판단하는 경우, 상기 나머지 다른 중복 데이터 블럭을 나타내기 위해 상기 각각의 마스터 복사본에 대한 카운터를 1만큼 증가시키는 것인, 데이터 블럭들을 중복제거 및 관리하는 방법.
- 제 4 항에 있어서,삭제되어야 할 데이터 블럭의 포인터에 대응하는 상기 중복제거 식별자의 설정에 기초하여 상기 삭제되어야 할 데이터 블럭이 중복제거되었는지 여부를 판단하는 단계를 더 포함하며,상기 각각의 데이터 블럭들이 중복제거되지 않은 것으로 상기 각각의 중복제거 식별자가 표시하는 경우, 상기 각각의 데이터 블럭을 삭제하고,상기 각각의 데이터 블럭들이 중복제거된 것으로 상기 각각의 중복제거 식별자가 표시하는 경우, 상기 카운터를 1만큼 감소시킴으로써 상기 각각의 데이터 블럭을 삭제하고, 상기 카운터가 1과 동일한지 여부를 판단하고, 상기 카운터가 1보다 큰 것으로 판단하는 경우에 상기 관련된 마스터 복사본에 대한 포인터 리스트로부터 상기 삭제되어야 할 데이터 블럭의 각각의 포인터를 제거하며, 상기 카운터가 1과 동일한 것으로 판단하는 경우 상기 데이터베이스로부터 상기 삭제되어야 할 데 이터 블럭과 관련된 상기 마스터 복사본을 삭제하는 것인, 데이터 블럭들을 중복제거 및 관리하는 방법.
- 제 4 항에 있어서,업데이트되는 데이터 블럭의 포인터에 대응하는 상기 중복제거 식별자의 설정에 기초하여 상기 업데이트되는 데이터 블럭이 중복제거되었는지 여부를 판단하는 단계; 및상기 중복제거 식별자가 상기 데이터 블럭이 중복제거되어 있는 것을 표시하는 경우, 상기 업데이트되는 데이터 블럭의 상기 마스터 복사본을 나타내는 상기 데이터베이스내의 엔트리에 대한 카운터를 감소시킴으로써, 상기 데이터 블럭을 업데이트하는 단계, 상기 각각의 마스터 복사본에 대한 상기 포인터 리스트로부터 상기 각각의 포인터를 제거하는 단계, 및 새로운 데이터 블럭을 할당하고 상기 각각의 포인터가 상기 할당된 새로운 데이터 블럭을 지시하도록 하는 단계를 더 포함하는 데이터 블럭들을 중복제거 및 관리하는 방법.
- 제 1 항에 있어서, 상기 중복제거 식별자는 각각의 포인터의 최상위 비트(MSB)인 것인, 데이터 블럭들을 중복제거 및 관리하는 방법.
- 컴퓨터 판독가능 프로그램을 포함하는 컴퓨터 사용가능 매체를 포함하는 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 판독가능 프로그램은, 컴퓨터 상에서 실행되는 경우에, 상기 컴퓨터로 하여금 화일 시스템내에서 데이터 블럭을 중복제거 및 관리하는 방법을 이행하도록 하며, 상기 방법은,각각의 데이터 블럭들을 가리키는 각각의 포인터에 중복제거 식별자를 추가시키는 단계로서, 상기 중복제거 식별자는 상기 각각의 데이터 블럭들이 중복제거되어 있는지 여부를 표시하는 것인, 상기 추가 단계;상기 화일 시스템내에서 중복 데이터 블럭들을 검출하는 단계;검출된 경우, 상기 중복 데이터 블럭들 중 적어도 하나가 다른 데이터 블럭들에 대해 중복제거되어 있는지 여부를 판단하는 단계;상기 적어도 하나의 중복 데이터 블럭이 중복제거된 것으로 판단되는 경우 상기 적어도 하나의 중복 데이터 블럭은 마스터 복사본인 것으로 판단하는 단계;상기 적어도 하나의 중복 데이터 블럭이 중복제거되지 않은 것으로 판단되는 경우에 상기 중복 데이터 블럭들 중 하나의 중복 데이터 블럭을 마스터 복사본이 되도록 선택하고, 상기 선택된 중복 데이터 블럭의 각각의 포인터의 중복제거 식별자가 중복제거를 표시하도록 설정하는 단계; 및나머지 다른 중복 데이터 블럭이 새로운 중복 데이터 블럭인 것으로 판단하고, 상기 나머지 다른 중복 데이터 블럭의 각각의 포인터의 중복제거 식별자가 중복제거를 표시하도록 설정하며, 상기 나머지 다른 중복 데이터 블럭의 각각의 포인터가 상기 마스터 복사본을 지시하도록 하는 단계를 포함하는 것인, 컴퓨터 프로그램 제품.
- 화일 시스템에 있어서,데이터를 저장하는 복수의 데이터 블럭들 및, 각각의 데이터 블럭들을 각각 가리키는 복수의 포인터들을 포함하며, 상기 각각의 포인터들은 상기 데이터 블럭이 중복제거되었는지 여부를 표시하기 위한 중복제거 식별자를 포함하며,상기 화일 시스템은,중복 데이터 블럭들을 검출하고;검출된 경우, 상기 중복 데이터 블럭들 중 적어도 하나가 다른 데이터 블럭들에 대해 중복제거되어 있는지 여부를 판단하고;상기 적어도 하나의 중복 데이터 블럭이 중복제거된 것으로 판단하는 경우, 상기 적어도 하나의 증복 데이터 블럭이 마스터 복사본인 것으로 판단하고;상기 중복 데이터 블럭들이 중복제거되지 않은 것으로 판단되는 경우, 상기 중복 데이터 블럭들 중 하나를 마스터 복사본으로서 선택하고, 상기 선택된 중복 데이터 블럭의 각각의 포인터의 중복제거 식별자가 중복제거를 표시하도록 설정하며;나머지 다른 중복 데이터 블럭이 새로운 중복 데이터 블럭인 것으로 판단하고, 상기 나머지 다른 중복 데이터 블럭의 각각의 포인터의 중복제거 식별자가 중복제거를 표시하도록 설정하며, 상기 나머지 다른 중복 데이터 블럭의 상기 각각의 포인터가 상기 마스터 복사본을 지시하도록 구성되는 것인, 화일 시스템.
- 제 9 항에 있어서,중복제거된 데이터 블럭들의 목록을 추적하기 위해, 각각의 마스터 복사본에 각각 대응하는 복수의 엔트리들을 포함하는 데이터베이스; 각각의 마스터 복사본과 관련된 복수의 포인터들을 카운팅하는 카운터; 및 각각의 마스터 복사본을 참조하는 각각의 포인터를 표시하기 위한 각각의 마스터 복사본에 대응하는 포인터 리스트를 더 포함하는, 화일 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/270,101 | 2008-11-13 | ||
US12/270,101 US8131687B2 (en) | 2008-11-13 | 2008-11-13 | File system with internal deduplication and management of data blocks |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100054093A true KR20100054093A (ko) | 2010-05-24 |
Family
ID=42166129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090105506A KR20100054093A (ko) | 2008-11-13 | 2009-11-03 | 데이터 블럭의 내부 중복제거 및 관리를 갖춘 화일 시스템 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8131687B2 (ko) |
KR (1) | KR20100054093A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808166A (zh) * | 2016-03-07 | 2016-07-27 | 惠州Tcl移动通信有限公司 | 防止重复拷贝文件的电子设备及其方法 |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7640746B2 (en) * | 2005-05-27 | 2010-01-05 | Markon Technologies, LLC | Method and system integrating solar heat into a regenerative rankine steam cycle |
US7840537B2 (en) | 2006-12-22 | 2010-11-23 | Commvault Systems, Inc. | System and method for storing redundant information |
US9098495B2 (en) * | 2008-06-24 | 2015-08-04 | Commvault Systems, Inc. | Application-aware and remote single instance data management |
US8166263B2 (en) | 2008-07-03 | 2012-04-24 | Commvault Systems, Inc. | Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices |
CA2729078C (en) | 2008-09-26 | 2016-05-24 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
US9015181B2 (en) | 2008-09-26 | 2015-04-21 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
US8412677B2 (en) | 2008-11-26 | 2013-04-02 | Commvault Systems, Inc. | Systems and methods for byte-level or quasi byte-level single instancing |
US8099553B2 (en) * | 2009-01-20 | 2012-01-17 | Dell Products L.P. | Refactoring virtual data storage hierarchies |
US8108638B2 (en) * | 2009-02-06 | 2012-01-31 | International Business Machines Corporation | Backup of deduplicated data |
US8671082B1 (en) * | 2009-02-26 | 2014-03-11 | Netapp, Inc. | Use of predefined block pointers to reduce duplicate storage of certain data in a storage subsystem of a storage server |
US8401996B2 (en) | 2009-03-30 | 2013-03-19 | Commvault Systems, Inc. | Storing a variable number of instances of data objects |
US8578120B2 (en) | 2009-05-22 | 2013-11-05 | Commvault Systems, Inc. | Block-level single instancing |
US8171064B2 (en) * | 2009-09-01 | 2012-05-01 | Netapp, Inc. | Methods and systems for concurrently reading direct and indirect data blocks |
US8806477B2 (en) * | 2009-10-30 | 2014-08-12 | Red Hat, Inc. | Space efficient software package management |
US8965852B2 (en) | 2009-11-24 | 2015-02-24 | Dell Products L.P. | Methods and apparatus for network efficient deduplication |
US8291263B2 (en) | 2010-07-02 | 2012-10-16 | Oracle International Corporation | Methods and apparatus for cross-host diagnosis of complex multi-host systems in a time series with probabilistic inference |
US8069370B1 (en) | 2010-07-02 | 2011-11-29 | Oracle International Corporation | Fault identification of multi-host complex systems with timesliding window analysis in a time series |
US8156377B2 (en) | 2010-07-02 | 2012-04-10 | Oracle International Corporation | Method and apparatus for determining ranked causal paths for faults in a complex multi-host system with probabilistic inference in a time series |
US8230262B2 (en) | 2010-07-02 | 2012-07-24 | Oracle International Corporation | Method and apparatus for dealing with accumulative behavior of some system observations in a time series for Bayesian inference with a static Bayesian network model |
WO2012045023A2 (en) | 2010-09-30 | 2012-04-05 | Commvault Systems, Inc. | Archiving data objects using secondary copies |
JP5650982B2 (ja) | 2010-10-25 | 2015-01-07 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | ファイルの重複を排除する装置及び方法 |
US8862876B2 (en) | 2010-11-09 | 2014-10-14 | International Business Machines Corporation | Method and system for deleting data |
US10394757B2 (en) | 2010-11-18 | 2019-08-27 | Microsoft Technology Licensing, Llc | Scalable chunk store for data deduplication |
US8438139B2 (en) * | 2010-12-01 | 2013-05-07 | International Business Machines Corporation | Dynamic rewrite of files within deduplication system |
US8959293B2 (en) | 2010-12-14 | 2015-02-17 | Microsoft Corporation | Data deduplication in a virtualization environment |
US9218343B2 (en) * | 2010-12-20 | 2015-12-22 | International Business Machines Corporation | Partition file system for virtual machine memory management |
US8538933B1 (en) * | 2011-03-28 | 2013-09-17 | Emc Corporation | Deduplicating range of data blocks |
US8825720B1 (en) * | 2011-04-12 | 2014-09-02 | Emc Corporation | Scaling asynchronous reclamation of free space in de-duplicated multi-controller storage systems |
US8706703B2 (en) * | 2011-06-27 | 2014-04-22 | International Business Machines Corporation | Efficient file system object-based deduplication |
US9501421B1 (en) * | 2011-07-05 | 2016-11-22 | Intel Corporation | Memory sharing and page deduplication using indirect lines |
US8660997B2 (en) | 2011-08-24 | 2014-02-25 | International Business Machines Corporation | File system object-based deduplication |
US8990171B2 (en) | 2011-09-01 | 2015-03-24 | Microsoft Corporation | Optimization of a partially deduplicated file |
US8682868B2 (en) | 2011-12-02 | 2014-03-25 | International Business Machines Corporation | Removal of data remanence in deduplicated storage clouds |
US8645399B2 (en) * | 2012-01-03 | 2014-02-04 | Intelius Inc. | Dynamic record blocking |
JP5998517B2 (ja) * | 2012-02-24 | 2016-09-28 | 日本電気株式会社 | ストレージシステム |
US20130232124A1 (en) * | 2012-03-05 | 2013-09-05 | Blaine D. Gaither | Deduplicating a file system |
US9020890B2 (en) | 2012-03-30 | 2015-04-28 | Commvault Systems, Inc. | Smart archiving and data previewing for mobile devices |
US8996881B2 (en) | 2012-04-23 | 2015-03-31 | International Business Machines Corporation | Preserving redundancy in data deduplication systems by encryption |
US9262428B2 (en) | 2012-04-23 | 2016-02-16 | International Business Machines Corporation | Preserving redundancy in data deduplication systems by designation of virtual address |
US10133747B2 (en) | 2012-04-23 | 2018-11-20 | International Business Machines Corporation | Preserving redundancy in data deduplication systems by designation of virtual device |
US9779103B2 (en) * | 2012-04-23 | 2017-10-03 | International Business Machines Corporation | Preserving redundancy in data deduplication systems |
US8903764B2 (en) * | 2012-04-25 | 2014-12-02 | International Business Machines Corporation | Enhanced reliability in deduplication technology over storage clouds |
US8954683B2 (en) * | 2012-08-16 | 2015-02-10 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Translation table and method for compressed data |
US8904147B2 (en) * | 2012-09-11 | 2014-12-02 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Method for generating a delta for compressed data |
US9633022B2 (en) | 2012-12-28 | 2017-04-25 | Commvault Systems, Inc. | Backup and restoration for a deduplicated file system |
US10592527B1 (en) * | 2013-02-07 | 2020-03-17 | Veritas Technologies Llc | Techniques for duplicating deduplicated data |
US10001993B2 (en) * | 2013-08-08 | 2018-06-19 | Linear Algebra Technologies Limited | Variable-length instruction buffer management |
US11768689B2 (en) | 2013-08-08 | 2023-09-26 | Movidius Limited | Apparatus, systems, and methods for low power computational imaging |
US20150066873A1 (en) * | 2013-08-30 | 2015-03-05 | Kaladhar Voruganti | Policy based deduplication techniques |
US10877945B1 (en) * | 2013-12-20 | 2020-12-29 | EMC IP Holding Company LLC | Optimized block storage for change block tracking systems |
US10324897B2 (en) | 2014-01-27 | 2019-06-18 | Commvault Systems, Inc. | Techniques for serving archived electronic mail |
US9659047B2 (en) * | 2014-12-03 | 2017-05-23 | Netapp, Inc. | Data deduplication utilizing extent ID database |
US9934236B2 (en) | 2015-02-23 | 2018-04-03 | International Business Machines Corporation | Streamlining data deduplication |
US10324914B2 (en) | 2015-05-20 | 2019-06-18 | Commvalut Systems, Inc. | Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files |
US10802740B2 (en) * | 2016-04-21 | 2020-10-13 | Netapp, Inc. | Systems, methods, and computer readable media providing arbitrary sizing of data extents |
US11429587B1 (en) | 2017-06-29 | 2022-08-30 | Seagate Technology Llc | Multiple duration deduplication entries |
US10706082B1 (en) | 2017-06-29 | 2020-07-07 | Seagate Technology Llc | Deduplication database management |
US11055005B2 (en) | 2018-10-12 | 2021-07-06 | Netapp, Inc. | Background deduplication using trusted fingerprints |
EP4278252A1 (en) * | 2021-01-12 | 2023-11-22 | Hitachi Vantara LLC | Grouping data to conserve storage capacity |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1244221A1 (en) * | 2001-03-23 | 2002-09-25 | Sun Microsystems, Inc. | Method and system for eliminating data redundancies |
US8938595B2 (en) | 2003-08-05 | 2015-01-20 | Sepaton, Inc. | Emulated storage system |
US7076622B2 (en) * | 2003-09-30 | 2006-07-11 | International Business Machines Corporation | System and method for detecting and sharing common blocks in an object storage system |
US8412682B2 (en) | 2006-06-29 | 2013-04-02 | Netapp, Inc. | System and method for retrieving and using block fingerprints for data deduplication |
US20090049260A1 (en) * | 2007-08-13 | 2009-02-19 | Upadhyayula Shivarama Narasimh | High performance data deduplication in a virtual tape system |
US8086799B2 (en) * | 2008-08-12 | 2011-12-27 | Netapp, Inc. | Scalable deduplication of stored data |
US10642794B2 (en) * | 2008-09-11 | 2020-05-05 | Vmware, Inc. | Computer storage deduplication |
-
2008
- 2008-11-13 US US12/270,101 patent/US8131687B2/en active Active
-
2009
- 2009-11-03 KR KR1020090105506A patent/KR20100054093A/ko active IP Right Grant
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808166A (zh) * | 2016-03-07 | 2016-07-27 | 惠州Tcl移动通信有限公司 | 防止重复拷贝文件的电子设备及其方法 |
CN105808166B (zh) * | 2016-03-07 | 2019-04-19 | 惠州Tcl移动通信有限公司 | 防止重复拷贝文件的电子设备及其方法 |
Also Published As
Publication number | Publication date |
---|---|
US20100121825A1 (en) | 2010-05-13 |
US8131687B2 (en) | 2012-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20100054093A (ko) | 데이터 블럭의 내부 중복제거 및 관리를 갖춘 화일 시스템 | |
US9239843B2 (en) | Scalable de-duplication for storage systems | |
US10031675B1 (en) | Method and system for tiering data | |
CN108804510B (zh) | 键值文件系统 | |
US10380073B2 (en) | Use of solid state storage devices and the like in data deduplication | |
EP2332069B1 (en) | Method and apparatus for managing data objects of a data storage system | |
EP2548122B1 (en) | Highly scalable and distributed data de-duplication | |
US9047301B2 (en) | Method for optimizing the memory usage and performance of data deduplication storage systems | |
US9031921B2 (en) | Calculating deduplication digests for a synthetic backup by a deduplication storage system | |
US9436558B1 (en) | System and method for fast backup and restoring using sorted hashes | |
US10503692B2 (en) | Filter file system with inode number as primary database key | |
TW201205318A (en) | Scalable segment-based data de-duplication system and method for incremental backups | |
CN109937411B (zh) | 将接收的数据块存储为去重数据块的装置和方法 | |
US20230394010A1 (en) | File system metadata deduplication | |
US9684677B2 (en) | Method for reliable and efficient filesystem metadata conversion | |
CN112416879B (zh) | 一种基于ntfs文件系统的块级数据去重方法 | |
US8156126B2 (en) | Method for the allocation of data on physical media by a file system that eliminates duplicate data | |
Zhang et al. | Improved deduplication through parallel binning | |
Currier | The Flash-Friendly File System (F2FS) | |
TWI475419B (zh) | 用於在儲存系統上存取檔案的方法和系統 | |
JP2018109804A (ja) | ストレージ管理装置、ストレージシステム、方法およびプログラム | |
WO2024099541A1 (en) | Hierarchical catalog for storage tapes | |
CN118159936A (zh) | 顺序存储介质上的并行重复数据删除机制 | |
Shinde et al. | Inline block level data de-duplication technique for ext4 file system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
NORF | Unpaid initial registration fee |