KR20100054093A - 데이터 블럭의 내부 중복제거 및 관리를 갖춘 화일 시스템 - Google Patents

데이터 블럭의 내부 중복제거 및 관리를 갖춘 화일 시스템 Download PDF

Info

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
Application number
KR1020090105506A
Other languages
English (en)
Inventor
다니엘 제임스 윈나르스키
울프 트로펜스
닐스 하우스테인
알렌 케이쓰 베이츠
크레이그 안쏘니 클레인
프랑크 크릭
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20100054093A publication Critical patent/KR20100054093A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements 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

데이터 블럭의 내부 중복제거 및 관리를 갖춘 화일 시스템{FILE SYSTEM WITH INTERNAL DEDUPLICATION AND MANAGEMENT OF DATA BLOCKS}
본 발명은 데이터 블럭의 중복제거에 관한 것이며, 보다 구체적으로는 화일 시스템내의 데이터 블럭을 중복제거 및 관리하는 방법에 관한 것이다.
일반적으로 화일 시스템은 예컨대 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. 제 2 항에 있어서,
    상기 적어도 하나의 중복 데이터 블럭이 마스터 복사본이고, 상기 나머지 다른 중복 데이터 블럭의 각각의 포인터가 상기 각각의 마스터 복사본을 지시하는 것으로 판단하는 경우, 상기 각각의 마스터 복사본에 관한 카운터를 1만큼 증가시키며, 상기 나머지 다른 중복 데이터 블럭의 포인터를 상기 각각의 마스터 복사본에 대응하는 포인터 리스트에 추가하는 것인, 데이터 블럭들을 중복제거 및 관리하는 방법.
  4. 제 3 항에 있어서,
    상기 중복 데이터 블럭들 중 하나를 마스터 복사본으로서 선택하는 경우, 상기 마스터 복사본에 대한 상기 데이터베이스내에 새로운 엔트리를 생성하고, 상기 선택된 중복 데이터 블럭을 상기 마스터 복사본으로서 나타내기 위해 상기 새로운 엔트리에 대한 카운터를 1로 설정하고, 상기 선택된 중복 데이터 블럭의 포인터를 상기 각각의 마스터 복사본에 대응하는 상기 포인터 리스트에 추가하며, 상기 나머지 다른 중복 데이터 블럭이 상기 새로운 중복 데이터 블럭인 것으로 판단하는 경우, 상기 나머지 다른 중복 데이터 블럭을 나타내기 위해 상기 각각의 마스터 복사본에 대한 카운터를 1만큼 증가시키는 것인, 데이터 블럭들을 중복제거 및 관리하는 방법.
  5. 제 4 항에 있어서,
    삭제되어야 할 데이터 블럭의 포인터에 대응하는 상기 중복제거 식별자의 설정에 기초하여 상기 삭제되어야 할 데이터 블럭이 중복제거되었는지 여부를 판단하는 단계를 더 포함하며,
    상기 각각의 데이터 블럭들이 중복제거되지 않은 것으로 상기 각각의 중복제거 식별자가 표시하는 경우, 상기 각각의 데이터 블럭을 삭제하고,
    상기 각각의 데이터 블럭들이 중복제거된 것으로 상기 각각의 중복제거 식별자가 표시하는 경우, 상기 카운터를 1만큼 감소시킴으로써 상기 각각의 데이터 블럭을 삭제하고, 상기 카운터가 1과 동일한지 여부를 판단하고, 상기 카운터가 1보다 큰 것으로 판단하는 경우에 상기 관련된 마스터 복사본에 대한 포인터 리스트로부터 상기 삭제되어야 할 데이터 블럭의 각각의 포인터를 제거하며, 상기 카운터가 1과 동일한 것으로 판단하는 경우 상기 데이터베이스로부터 상기 삭제되어야 할 데 이터 블럭과 관련된 상기 마스터 복사본을 삭제하는 것인, 데이터 블럭들을 중복제거 및 관리하는 방법.
  6. 제 4 항에 있어서,
    업데이트되는 데이터 블럭의 포인터에 대응하는 상기 중복제거 식별자의 설정에 기초하여 상기 업데이트되는 데이터 블럭이 중복제거되었는지 여부를 판단하는 단계; 및
    상기 중복제거 식별자가 상기 데이터 블럭이 중복제거되어 있는 것을 표시하는 경우, 상기 업데이트되는 데이터 블럭의 상기 마스터 복사본을 나타내는 상기 데이터베이스내의 엔트리에 대한 카운터를 감소시킴으로써, 상기 데이터 블럭을 업데이트하는 단계, 상기 각각의 마스터 복사본에 대한 상기 포인터 리스트로부터 상기 각각의 포인터를 제거하는 단계, 및 새로운 데이터 블럭을 할당하고 상기 각각의 포인터가 상기 할당된 새로운 데이터 블럭을 지시하도록 하는 단계
    를 더 포함하는 데이터 블럭들을 중복제거 및 관리하는 방법.
  7. 제 1 항에 있어서, 상기 중복제거 식별자는 각각의 포인터의 최상위 비트(MSB)인 것인, 데이터 블럭들을 중복제거 및 관리하는 방법.
  8. 컴퓨터 판독가능 프로그램을 포함하는 컴퓨터 사용가능 매체를 포함하는 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 판독가능 프로그램은, 컴퓨터 상에서 실행되는 경우에, 상기 컴퓨터로 하여금 화일 시스템내에서 데이터 블럭을 중복제거 및 관리하는 방법을 이행하도록 하며, 상기 방법은,
    각각의 데이터 블럭들을 가리키는 각각의 포인터에 중복제거 식별자를 추가시키는 단계로서, 상기 중복제거 식별자는 상기 각각의 데이터 블럭들이 중복제거되어 있는지 여부를 표시하는 것인, 상기 추가 단계;
    상기 화일 시스템내에서 중복 데이터 블럭들을 검출하는 단계;
    검출된 경우, 상기 중복 데이터 블럭들 중 적어도 하나가 다른 데이터 블럭들에 대해 중복제거되어 있는지 여부를 판단하는 단계;
    상기 적어도 하나의 중복 데이터 블럭이 중복제거된 것으로 판단되는 경우 상기 적어도 하나의 중복 데이터 블럭은 마스터 복사본인 것으로 판단하는 단계;
    상기 적어도 하나의 중복 데이터 블럭이 중복제거되지 않은 것으로 판단되는 경우에 상기 중복 데이터 블럭들 중 하나의 중복 데이터 블럭을 마스터 복사본이 되도록 선택하고, 상기 선택된 중복 데이터 블럭의 각각의 포인터의 중복제거 식별자가 중복제거를 표시하도록 설정하는 단계; 및
    나머지 다른 중복 데이터 블럭이 새로운 중복 데이터 블럭인 것으로 판단하고, 상기 나머지 다른 중복 데이터 블럭의 각각의 포인터의 중복제거 식별자가 중복제거를 표시하도록 설정하며, 상기 나머지 다른 중복 데이터 블럭의 각각의 포인터가 상기 마스터 복사본을 지시하도록 하는 단계
    를 포함하는 것인, 컴퓨터 프로그램 제품.
  9. 화일 시스템에 있어서,
    데이터를 저장하는 복수의 데이터 블럭들 및, 각각의 데이터 블럭들을 각각 가리키는 복수의 포인터들을 포함하며, 상기 각각의 포인터들은 상기 데이터 블럭이 중복제거되었는지 여부를 표시하기 위한 중복제거 식별자를 포함하며,
    상기 화일 시스템은,
    중복 데이터 블럭들을 검출하고;
    검출된 경우, 상기 중복 데이터 블럭들 중 적어도 하나가 다른 데이터 블럭들에 대해 중복제거되어 있는지 여부를 판단하고;
    상기 적어도 하나의 중복 데이터 블럭이 중복제거된 것으로 판단하는 경우, 상기 적어도 하나의 증복 데이터 블럭이 마스터 복사본인 것으로 판단하고;
    상기 중복 데이터 블럭들이 중복제거되지 않은 것으로 판단되는 경우, 상기 중복 데이터 블럭들 중 하나를 마스터 복사본으로서 선택하고, 상기 선택된 중복 데이터 블럭의 각각의 포인터의 중복제거 식별자가 중복제거를 표시하도록 설정하며;
    나머지 다른 중복 데이터 블럭이 새로운 중복 데이터 블럭인 것으로 판단하고, 상기 나머지 다른 중복 데이터 블럭의 각각의 포인터의 중복제거 식별자가 중복제거를 표시하도록 설정하며, 상기 나머지 다른 중복 데이터 블럭의 상기 각각의 포인터가 상기 마스터 복사본을 지시하도록 구성되는 것인, 화일 시스템.
  10. 제 9 항에 있어서,
    중복제거된 데이터 블럭들의 목록을 추적하기 위해, 각각의 마스터 복사본에 각각 대응하는 복수의 엔트리들을 포함하는 데이터베이스; 각각의 마스터 복사본과 관련된 복수의 포인터들을 카운팅하는 카운터; 및 각각의 마스터 복사본을 참조하는 각각의 포인터를 표시하기 위한 각각의 마스터 복사본에 대응하는 포인터 리스트를 더 포함하는, 화일 시스템.
KR1020090105506A 2008-11-13 2009-11-03 데이터 블럭의 내부 중복제거 및 관리를 갖춘 화일 시스템 KR20100054093A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/270,101 US8131687B2 (en) 2008-11-13 2008-11-13 File system with internal deduplication and management of data blocks
US12/270,101 2008-11-13

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105808166A (zh) * 2016-03-07 2016-07-27 惠州Tcl移动通信有限公司 防止重复拷贝文件的电子设备及其方法

Families Citing this family (58)

* Cited by examiner, † Cited by third party
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
US9015181B2 (en) * 2008-09-26 2015-04-21 Commvault Systems, Inc. Systems and methods for managing single instancing data
CA2729078C (en) 2008-09-26 2016-05-24 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
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
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
US8935492B2 (en) 2010-09-30 2015-01-13 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
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
US9779103B2 (en) 2012-04-23 2017-10-03 International Business Machines Corporation Preserving redundancy in data deduplication systems
US10133747B2 (en) 2012-04-23 2018-11-20 International Business Machines Corporation Preserving redundancy in data deduplication systems by designation of virtual device
US9262428B2 (en) 2012-04-23 2016-02-16 International Business Machines Corporation Preserving redundancy in data deduplication systems by designation of virtual address
US8996881B2 (en) 2012-04-23 2015-03-31 International Business Machines Corporation Preserving redundancy in data deduplication systems by encryption
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
US10706082B1 (en) 2017-06-29 2020-07-07 Seagate Technology Llc Deduplication database management
US11429587B1 (en) 2017-06-29 2022-08-30 Seagate Technology Llc Multiple duration deduplication entries
US11055005B2 (en) 2018-10-12 2021-07-06 Netapp, Inc. Background deduplication using trusted fingerprints
JP2024500431A (ja) * 2021-01-12 2024-01-09 ヒタチ ヴァンタラ エルエルシー 記憶容量を節約するためのデータのグループ化

Family Cites Families (7)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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) 将接收的数据块存储为去重数据块的装置和方法
US10496612B2 (en) Method for reliable and efficient filesystem metadata conversion
US20230394010A1 (en) File system metadata deduplication
US20170351608A1 (en) Host device
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) 用於在儲存系統上存取檔案的方法和系統
WO2024099541A1 (en) Hierarchical catalog for storage tapes
CN118159936A (zh) 顺序存储介质上的并行重复数据删除机制
Shinde et al. Inline block level data de-duplication technique for ext4 file system
JP2018109804A (ja) ストレージ管理装置、ストレージシステム、方法およびプログラム

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