KR20190056087A - 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템 및 방법 - Google Patents

블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템 및 방법 Download PDF

Info

Publication number
KR20190056087A
KR20190056087A KR1020170153139A KR20170153139A KR20190056087A KR 20190056087 A KR20190056087 A KR 20190056087A KR 1020170153139 A KR1020170153139 A KR 1020170153139A KR 20170153139 A KR20170153139 A KR 20170153139A KR 20190056087 A KR20190056087 A KR 20190056087A
Authority
KR
South Korea
Prior art keywords
block
deleted
extent
identified
file
Prior art date
Application number
KR1020170153139A
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 한림대학교 산학협력단
Priority to KR1020170153139A priority Critical patent/KR20190056087A/ko
Publication of KR20190056087A publication Critical patent/KR20190056087A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은, 파일이 특정 크기의 블록 단위로 분할되어 물리 메모리 영역에 기록되고, 복수의 상기 블록들에는 순차적으로 논리 주소가 할당되고, 복수의 상기 블록들 중 물리 주소가 연속하는 것들끼리 그룹화되어 익스텐트가 구성되고, 복수의 상기 익스텐트들 각각의 시작 주소와 길이 정보가 메타 데이터로서 기록되는 방식의 파일 관리 구조에 기반한다. 특히, 본 발명의 시스템 및 방법은, 블록 삭제시의 데이터 입출력을 최소화하기 위하여, 소정 파일 중 일부 블록을 삭제하고자 하는 명령을 수신하면, 상기 파일과 관련된 메타 데이터를 획득하고, 상기 메타 데이터를 분석하여 상기 삭제할 블록 및 상기 블록의 익스텐트를 식별하고, 상기 익스텐트에서 상기 삭제할 블록을 제외시킴으로써 상기 명령을 실행하고, 상기 파일과 관련된 익스텐트들에 포함된 블록들의 논리 주소를 재정렬한다.

Description

블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템 및 방법{SYSTEM AND METHOD FOR CONTROLLING FILE STRUCTURE REDUCING DATA INPUT-OUTPUT DURING DELETING BLOCKS}
본 발명은 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템 및 방법에 관한 것으로서, 더욱 상세하게는 EXT 파일 관리 구조에서 블록이 삭제되었을 때 데이터 입출력을 최소화할 수 있는 제어 시스템 및 제어 방법에 관한 것이다.
운영체제는 임의의 문서, 이미지, 동영상, 음악 등 다양한 데이터를 저장 매체에 기록하고, 판독된 데이터를 연속적인 데이터, 즉 바이트 스트림(byte stream)의 형태로 사용자 프로그램에 제공한다. 사용자 프로그램은 파일 열기, 읽기, 쓰기 등의 연산을 요청하는 시스템콜을 운영체제의 커널 영역으로 전달하며, 운영체제는 해당하는 연산을 저장 매체에 대해 처리한다. 이와 같은 제어 방식은 파일의 용량이 커질수록 더 많은 입출력과 연산 시간을 필요로 한다. 특히, 파일의 일부를 수정하는 작업에서도 사용자 프로그램과 운영체제는 파일의 내용을 전부 다시 저장하는 연산을 처리해야 하므로, 많은 읽기/쓰기 연산이 발생한다.
대표적인 예로, 리눅스에서 많이 사용되는 ext 파일 관리 구조에서 파일의 일부 내용을 수정한 후 다시 저장하게 되면, 파일의 용량과 동일한 쓰기 양이 발생한다. 만약, 대용량 타르(tar) 파일이나 대용량 멀티미디어 파일의 일부를 삭제하게 된다면, 상당한 입출력 지연이 발생하게 될 것이다.
이러한 문제점을 개선하기 위해, 파일 수정시 저장 매체에 쓰기 과정을 최소화시키기 위한 특허(등록특허 제10-1553028; 고정 블록에 기반을 둔 가변 처리 파일 관리 구조 및 파일 가변 처리 방법)(이하, 종래 기술)이 개시되었다.
상기 종래 기술에서는 블록 단위의 삭제 처리를 위해 가변 블록이라는 개념을 사용하였다. 이 방법은 사용자 프로그램에서 블록 단위로 수정된 데이터를 파일 제어 시스템에 전달할 때, 블록 크기로 삭제된 데이터는 별도의 저장영역에 블록 번호를 저장하고 시스템콜 함수를 종료시킨다. 블록의 실제 내용을 업데이트하지 않고 메타 데이터만 수정하는 구성을 개시한다. 하지만, 이 종래 기술에서는 전체 블록 개수만큼의 쓰기 시스템콜을 호출해서 처리해야 한다는 한계가 있다.
이러한 문제점을 해결하기 위해 본 발명은, 파일의 내용 중 일부가 변경되거나 삭제된 경우에 파일의 전부를 다시 쓰지 않고 메타 데이터의 수정을 통해 파일의 내용 중 해당하는 일부만을 변경하거나 삭제할 수 있는 시스템 및 방법을 제안한다. 특히, 메타 시스템에서도 수정이 필요한 블록에 해당하는 부분에만 시스템콜을 처리함으로써 데이터 입출력 처리 시간을 획기적으로 줄이고자 한다.
본 발명은 파일의 내용을 전부 또는 일부 다시 쓰지 않고 메타 데이터의 수정을 통해 파일의 내용을 삭제하는 기법을 제안한다. 메타 데이터(파일 관리 영역)란 파일의 내용을 관리하기 위한 별도의 데이터로서, 파일의 이름, 생성 날짜, 크기를 포함할 수 있는데, 특히, 파일의 내용이 저장된 블록들의 위치를 나타내며, 예를 들면, ext 파일 관리 구조에서는 아이노드(I-node) 구조를 사용한다.
본 발명에서는, 단 한번의 시스템콜로써, 블록의 개수와 상관없이 지정된 범위의 블록을 삭제하며, 모든 블록의 인덱스를 재정렬함으로써 훨씬 빠르게 파일 수정을 완료할 수 있다.
특히, 본 발명의 제1 실시에에 따른 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템은, 파일의 내용이 특정 크기의 블록 단위로 분할되어 물리 메모리 영역에 기록되고, 복수의 상기 블록들에는 상기 파일의 내용에 맞추어 순차적으로 논리 주소가 할당되고, 복수의 상기 블록들 중 물리 주소가 연속하는 것들끼리 그룹화되어 익스텐트가 구성되고, 복수의 상기 익스텐트들 각각의 시작 주소와 길이 정보가 메타 데이터로서 기록되는 방식의 파일 관리 구조를 제어하는 시스템으로서: 소정 파일의 내용 중 일부를 삭제하고자 하는 명령을 수신하면, 상기 파일과 관련된 상기 메타 데이터를 획득하는 시스템콜 처리부; 상기 메타 데이터를 분석하여 상기 삭제할 내용을 포함하는 블록 및 상기 블록을 관리하는 익스텐트를 식별하고, 상기 식별된 익스텐트에서 상기 삭제할 블록을 제외시킴으로써 상기 명령을 실행하는 메타데이터 재구성부; 및 상기 파일과 관련된 익스텐트들에 포함된 블록들의 논리 주소를 재정렬하는 논리 주소 정렬부를 포함할 수 있다.
또한, 상기 시스템은, 상기 삭제할 블록의 논리 주소를 운영체제에 반환하는 블록 삭제부를 더 포함할 수 있다.
여기서, 상기 시스템콜 처리부는, 상기 메모리 영역에 저장된 상기 파일의 내용 중 일부를 삭제하고자 하는 상기 명령에 대응하여, 상기 파일의 삭제할 부분에 대응하는 익스텐트를 수정하고 나머지 블록들의 논리 주소를 재정렬하는 처리를 수행하도록 설계된 전용 명령어(즉, file_modification())를 실행시킬 수 있다.
한편, 상기 삭제할 블록이 상기 익스텐트의 중간에 있는 경우, 상기 메타데이터 재구성부는, 상기 식별된 익스텐트를 상기 삭제할 블록의 전후에서 구분하여 상기 삭제할 블록을 제외한 나머지 블록들만을 포함하는 새로운 2개의 익스텐트들로 재구성할 수 있다. 특히, 상기 삭제할 블록이 상기 익스텐트의 중간에 있는 경우, 상기 메타데이터 재구성부는, 상기 식별된 익스텐트 이후의 모든 익스텐트들의 순서를 1단계씩 시프트하고, 상기 식별된 익스텐트의 길이를 상기 삭제할 블록의 이전 블록까지로 수정하고, 상기 삭제할 블록 이후 블록으로부터 상기 식별된 익스텐트의 맨끝 블록까지로 신규 익스텐트를 구성하여 상기 시프트로써 생성된 공간에 배치할 수 있다.
또한, 상기 메타데이터 재구성부는, 상기 삭제할 블록이 상기 식별된 익스텐트의 맨앞에 있는 경우에는 상기 식별된 익스텐트의 시작 주소를 상기 삭제할 블록의 다음 블록으로 변경하고 또한 익스텐트의 길이를 수정하고, 상기 삭제할 블록이 상기 식별된 익스텐트의 맨끝에 있는 경우에는 상기 식별된 익스텐트의 길이를 상기 삭제할 블록의 이전 블록까지로 수정할 수 있다.
더욱, 상기 논리 주소 정렬부는, 상기 삭제할 블록을 관리하는 익스텐트의 상기 삭제할 블록 이후의 모든 블록들 및 상기 익스텐트에 이어지는 모든 익스텐트들에 포함된 블록들의 논리 주소를 재정렬할 수 있다.
본 발명의 제2 실시예에 따른 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 방법은, 소정 파일의 내용이 특정 크기의 블록 단위로 분할되어 물리 메모리 영역에 기록되고, 복수의 상기 블록들에는 상기 파일의 내용에 맞추어 순차적으로 논리 주소가 할당되고, 복수의 상기 블록들 중 물리 주소가 연속하는 것들끼리 그룹화되어 익스텐트가 구성되고, 복수의 상기 익스텐트들 각각의 시작 주소와 길이 정보가 메타 데이터로서 기록되는 방식의 파일 관리 구조를 제어하는 방법으로서: 상기 파일의 내용 중 일부를 삭제하고자 하는 명령을 수신하면, 상기 파일의 메타 데이터를 획득하는 시스템콜 처리 단계; 상기 메타 데이터를 분석하여 상기 삭제할 내용을 포함하는 블록 및 상기 블록을 관리하는 익스텐트를 식별하고, 상기 식별된 익스텐트에서 상기 삭제할 블록을 제외시킴으로써 상기 명령을 실행하는 메타데이터 재구성 단계; 및 상기 삭제할 블록을 관리하는 익스텐트의 상기 삭제할 블록 이후의 모든 블록들 및 상기 익스텐트에 이어지는 모든 익스텐트들에 포함된 블록들의 논리 주소를 재정렬하는 논리 주소 정렬 단계를 포함할 수 있다.
또한, 상시 방법은, 상기 삭제할 블록의 논리 주소를 운영체제에 반환하는 블록 삭제 단계를 더 포함할 수 있다.
여기서, 상기 시스템콜 처리 단계는, 상기 메모리 영역에 저장된 상기 파일의 내용 중 일부를 삭제하고자 하는 상기 명령에 대응하여, 상기 파일의 삭제할 부분에 대응하는 익스텐트를 수정하고 나머지 블록들의 논리 주소를 재정렬하는 처리를 수행하도록 설계된 전용 명령어를 실행시키는 것을 더 포함할 수 있다.
특히, 상기 메타데이터 재구성 단계는, 상기 삭제할 블록이 상기 식별된 익스텐트의 중간에 있는 경우, 상기 식별된 익스텐트를 상기 삭제할 블록의 전후에서 구분하여 상기 삭제할 블록을 제외한 나머지 블록들만을 포함하는 새로운 2개의 익스텐트들로 재구성하는 것을 더 포함할 수 있다. 또한, 상기 메타데이터 재구성 단계는, 상기 삭제할 블록이 상기 식별된 익스텐트의 중간에 있는 경우, 상기 식별된 익스텐트 이후의 모든 익스텐트들의 순서를 1단계씩 시프트하고, 상기 식별된 익스텐트의 길이를 상기 삭제할 블록의 이전 블록까지로 수정하고, 상기 삭제할 블록 이후 블록으로부터 상기 식별된 익스텐트의 맨끝 블록까지로 신규 익스텐트를 구성하고, 상기 신규 익스텐트를 상기 시프트에 의해 생성된 공간에 배치하는 것을 더 포함할 수 있다. 또한, 상기 메타데이터 재구성 단계는, 상기 삭제할 블록이 상기 식별된 익스텐트의 맨앞에 있는 경우에는 상기 식별된 익스텐트의 시작 주소를 상기 삭제할 블록의 다음 블록의 맨앞으로 변경하고 또한 익스텐트의 길이를 수정하고, 상기 삭제할 블록이 상기 식별된 익스텐트의 맨끝에 있는 경우에는 상기 식별된 익스텐트의 길이를 상기 삭제할 블록의 이전 블록까지로 수정하는 것을 더 포함할 수 있다.
본 발명의 제3 실시예에 따른 블록 삭제시의 데이터 입출력을 최소화한 클라우드 파일 관리 구조 제어 시스템은, 소정 파일의 내용이 특정 크기로 분할되어어복수개의 청크를 구성하고, 구성된 청크들이 분배되어 저장된 복수의 데이터 저장 서버 - 상기 데이터 저장 서버는, 상기 청크의 내용이 특정 크기의 블록 단위로 분할되어 물리 메모리 영역에 기록되고, 복수의 상기 블록들에는 순차적으로 논리 주소가 할당되고, 복수의 상기 블록들 중 물리 주소가 연속하는 것들끼리 그룹화되어 익스텐트가 구성되고, 복수의 상기 익스텐트들 각각의 시작 주소와 길이 정보가 메타 데이터로서 기록되는 파일 관리 구조를 사용함 -; 상기 파일의 어느 청크가 어느 데이터 저장 서버에 저장되어 있는지를 나타내는 분배 리스트를 저장하는 분배 관리 서버; 상기 파일의 내용 중 임의 부분을 변경하고자 하는 요청을 상기 분배 관리 서버에 전송하는 클라이언트 서버를 포함하는, 클라우드 파일 관리 구조 제어 시스템으로서, 상기 분배 관리 서버는, 상기 요청을 수신하면, 상기 파일의 변경된 부분과 관련된 청크를 식별하고 또한 상기 분배 리스트를 검사하여 상기 식별된 청크가 저장된 데이터 저장 서버를 식별하고, 상기 식별된 데이터 저장 서버에게 상기 식별된 청크에 상기 요청을 처리하도록 명령하고, 상기 데이터 저장 서버는, 상기 명령을 수신하면, 상기 식별된 청크를 변경하도록 구성될 수 있다.
이때, 상기 데이터 저장 서버는, 상기 명령을 실행할 때 소정의 블록이 삭제되어야 하는 경우, 상기 삭제할 블록을 관리하는 익스텐트를 상기 삭제할 블록의 전후에서 구분하여 상기 삭제할 블록의 나머지 블록들만을 포함하는 새로운 2개의 익스텐트들로 재구성하는 방식으로 상기 메타 데이터를 수정할 수 있다.
또한, 상기 분배 관리 서버는, 상기 데이터 저장 서버의 각각에 분배된 각각의 청크들에 대한 해시값을 저장하고 있고, 상기 클라이언트 서버로부터 수신한 변경을 요청하는 상기 파일의 각 청크들의 해시값과 상기 미리저장된 해시값을 비교하여 삭제할 블록이 있는지 및 상기 삭제할 블록이 포함된 청크를 검사할 수 있다.
한편, 상기 데이터 저장 서버는, 상기 삭제할 블록이 상기 익스텐트의 중간에 있는 경우, 상기 식별된 익스텐트 이후의 모든 익스텐트들의 순서를 1단계씩 시프트하고, 상기 식별된 익스텐트의 길이를 상기 삭제할 블록의 이전 블록까지로 수정하고, 상기 삭제할 블록 이후 블록으로부터 상기 식별된 익스텐트의 맨끝 블록까지로 신규 익스텐트를 구성하고, 상기 신규 익스텐트를 상기 시프트로써 생성된 공간에 배치할 수 있다. 또한, 상기 데이터 저장 서버는, 상기 삭제할 블록이 상기 식별된 익스텐트의 맨앞에 있는 경우에는 상기 식별된 익스텐트의 시작 주소를 상기 삭제할 블록의 다음 블록으로 변경하고 또한 익스텐트의 길이를 수정하고, 상기 삭제할 블록이 상기 식별된 익스텐트의 맨끝에 있는 경우에는 상기 식별된 익스텐트의 길이를 상기 삭제할 블록의 이전 블록까지로 수정할 수 있다. 또한, 상기 데이터 저장 서버는, 상기 삭제할 블록을 관리하는 익스텐트 내의 상기 삭제할 블록 이후의 모든 블록들 및 상기 익스텐트에 이어지는 모든 익스텐트들에 포함된 블록들의 논리 주소를 재정렬할 수 있다.
본 발명의 제4 실시예에 따른 블록 삭제시의 데이터 입출력을 최소화한 클라우드 파일 관리 구조 제어 방법은, 소정 파일의 내용이 특정 크기로 분할되어 복수개의 청크를 구성하고, 구성된 청크들을 복수의 데이터 저장 서버에 분배하여 저장하는 단계 - 상기 데이터 저장 서버는 소정 청크의 내용이 특정 크기의 블록 단위로 분할되어 물리 메모리 영역에 기록되고, 복수의 상기 블록들에는 순차적으로 논리 주소가 할당되고, 복수의 상기 블록들 중 물리 주소가 연속하는 것들끼리 그룹화되어 익스텐트가 구성되고, 복수의 상기 익스텐트들 각각의 시작 주소와 길이 정보가 메타 데이터로서 기록되는 방식의 파일 관리 구조를 사용함 -; 상기 파일의 어느 청크가 어느 데이터 저장 서버에 저장되어 있는지를 나타내는 분배 리스트를 분배 관리 서버에 저장하는 단계; 상기 분배 관리 서버가, 상기 파일의 내용 중 임의 부분을 변경하고자 하는 요청을 수신하면, 상기 파일의 변경된 부분과 관련된 청크를 식별하고, 상기 분배 리스트를 검사하여 상기 식별된 청크가 저장된 데이터 저장 서버를 식별하고, 상기 식별된 데이터 저장 서버에게 상기 식별된 청크에 대해 상기 요청을 처리하도록 명령하는 단계; 및 상기 데이터 저장 서버가, 상기 명령을 처리하기 위해 상기 식별된 청크를 변경하는 단계를 포함할 수 있다.
여기서, 상기 식별된 청크를 변경하는 단계는: 상기 명령을 실행할 때 소정의 블록이 삭제되어야 하는 경우, 상기 삭제할 블록을 관리하는 익스텐트를 상기 삭제할 블록의 전후에서 구분하고, 상기 익스텐트를 상기 삭제할 블록의 나머지 블록들만을 포함하는 새로운 2개의 익스텐트들로 재구성함으로써 상기 메타 데이터를 수정하는 것을 더 포함할 수 있다. 또한, 상기 식별된 청크를 변경하는 단계는: 상기 명령을 실행할 때 삭제할 블록이 상기 식별된 익스텐트의 중간에 있는 경우, 상기 식별된 익스텐트 이후의 모든 익스텐트들의 순서를 1단계씩 시프트하고, 상기 식별된 익스텐트의 길이를 상기 삭제할 블록의 이전 블록까지로 수정하고, 상기 삭제할 블록 이후 블록으로부터 상기 식별된 익스텐트의 맨끝 블록까지로 신규 익스텐트를 구성하고, 상기 신규 익스텐트를 상기 시프트로써 생성된 공간에 배치하는 것을 더 포함할 수 있다. 또한, 상기 식별된 청크를 변경하는 단계는: 상기 명령을 실행할 때 상기 삭제할 블록이 상기 식별된 익스텐트의 맨앞에 있는 경우에는 상기 식별된 익스텐트의 시작 주소를 상기 삭제할 블록의 다음 블록의 맨앞으로 변경하고 또한 익스텐트의 길이를 수정하는 것을 더 포함하고, 상기 삭제할 블록이 상기 식별된 익스텐트의 맨끝에 있는 경우에는 상기 식별된 익스텐트의 길이를 상기 삭제할 블록의 이전 블록까지로 수정하는 것을 더 포함할 수 있다. 또한, 상기 식별된 청크를 변경하는 단계는: 상기 삭제할 블록을 관리하는 익스텐트의 상기 삭제할 블록 이후의 모든 블록들 및 상기 익스텐트에 이어지는 모든 익스텐트들에 포함된 블록들의 논리 주소를 재정렬하는 것을 더 포함할 수 있다.
상술한 구성으로 이루어지는 본 발명에 따른 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템 및 방법은, 파일의 내용 중 일부가 변경되거나 삭제된 경우에 파일의 전부를 다시 쓰지 않고 메타 데이터의 수정을 통해 파일의 내용 중 해당하는 일부만을 변경하거나 삭제할 수 있으며, 특히, 메타 시스템 내에서도 수정이 필요한 블록에 해당하는 부분에만 시스템콜을 처리함으로써 전체 처리 시간 및 시스템 동작 부하를 획기적으로 줄일 수 있다. 또한, 데이터를 쓰고 지우는 작업을 최소화할 수 있으므로, 저장매체의 수명도 크게 증가시킬 수 있다.
이러한 제어 방식은 단일 시스템의 단일 저장 매체에 저장된 하나의 파일에 대해서뿐만 아니라, 복수의 시스템의 복수의 저장 매체에 저장된 하나 또는 복수의 파일에 대해서도 적용될 수 있다. 즉, 타르(tar) 파일 관리 구조나 클라우드 데이터 저장 구조에도 적용될 수 있으며, 데이터 입출력을 최소화할 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템의 개략적인 구조도이다.
도 2는 상기 시스템을 포함하는 데이터 처리의 계층도이다.
도 3은 상기 시스템에 의한 블록 삭제 방법을 개괄적으로 설명하기 위한 도면이다.
도 4는 연속된 블록 중 중간에 위치한 블록을 삭제하는 경우, 익스텐트를 분리하는 과정을 도시한 도면이다.
도 5는 도 4의 과정에 이어서 블록이 삭제되는 과정을 도시한 도면이다.
도 6은 연속된 블록의 맨 앞 또는 맨 뒤의 블록을 삭제하는 경우의 처리과정을 도시한다.
도 7은 본 발명의 또하나의 실시예에 따른 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템에 의해 처리될 수 있는, 파일 관리 구조 제어 방법의 흐름도이다.
도 8은 도 7의 방법의 일례로서, 연속된 블록 중 중간에 위치한 블록을 삭제하는 경우의 처리 과정을 설명하는 흐름도이다.
도 9는 본 발명의 다른 실시예에 따른, 클라우드 스토리지에서의 데이터 동기화 방식을 설명하는 개념도이다.
도 10은 도 9에 따른 방식을 적용한 스토리지 동기화 시스템의 개략적인 구성도이다.
도 11은 클라우드 스토리지에서의 시스템콜 메시지 패킷의 구성을 도시한다.
도 12는 클라우드 스토리지에서의 데이터 동기화 방법의 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템 및 방법, 그리고 클라우드 스토리지에서의 데이터 동기화를 구현하는 시스템의 바람직한 실시예를 설명한다. 참고로, 본 발명의 각 구성 요소를 지칭하는 용어들은 그 기능을 고려하여 예시적으로 명명된 것이므로, 용어 자체에 의하여 본 발명의 기술 내용을 예측하고 한정하여 이해해서는 아니 될 것이다.
도 1은 본 발명의 일 실시예에 따른 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템의 개략적인 구조도이다. 도면을 참조하면, 상기 시스템(100)은, 시스템콜 처리부(102), 메타 데이터 재구성부(104), 논리 주소 정렬부(106)를 포함할 수 있으며, 블록 삭제부(108)를 더 포함할 수 있다.
본 발명에 따른 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템(100)은, 소정 파일의 내용이 특정 크기의 블록 단위로 분할되어 저장 매체의 데이터 저장 영역(122)을 구성하는 물리 메모리 영역에 기록되고, 복수의 상기 블록들에는 상기 파일의 내용에 맞추어 순차적으로 논리 주소가 할당되고, 복수의 상기 블록들 중 물리 주소가 연속하는 것들끼리 그룹화되어 익스텐트가 구성되고, 복수의 상기 익스텐트들 각각의 시작 주소와 길이 정보가 메타 데이터로서 저장 매체의 파일 관리 영역(124)에 기록되는 파일 관리 구조를 제어하도록 구성된다.
시스템콜 처리부(102)는, 메모리 영역에 저장된 파일의 내용을 변경하고자 하는 명령(즉, 시스템콜)을 수신하면, 변경 요청된 파일의 메타 데이터를 획득한다.
메타 데이터 재구성부(104)는, 획득된 메타 데이터를 분석하여 변경 요청된 파일에서 변경할 내용이 적용될 블록 및 익스텐트를 식별한다. 만일, 요청된 명령이 소정의 블록의 삭제를 필요로 한다면, 삭제할 블록을 관리하는 익스텐트를 본 발명에서 제시하는 제어 방법에 따라 적절히 재구성함으로써 상기 명령을 실행한다.
논리 주소 정렬부(106)는, 상기 명령이 실행되면서 재구성된 메타 데이터에 있는 복수의 익스텐트들에 대해, 전체 또는 일부 블록들의 논리 주소를 재정렬하여 재구성한다.
블록 삭제부(108)는, 상기 명령을 실행하여 삭제된 블록이 다른 프로그램에서 사용될 수 있도록, 상기 삭제할 블록의 논리 주소를 운영체제에 반환한다. 블록 삭제부(108)는 삭제된 블록의 실제 내용을 임의의 값으로 덮어쓰기할 수도 있다.
상기한 바와 같은 각 구성부의 구체적인 동작은, 이어지는 설명을 참조하여 더욱 상세하게 이해할 수 있을 것이다.
도 2는 파일 수정을 위한 시스템콜을 처리하는 기존의 방식과 본 발명에서 제안하는 방법의 차이를 함께 설명하기 위한 도면이다. 기존의 방식에서는, 파일의 일부가 수정되더라도, 파일의 전체 내용을 다시쓰기위한 read()/write() 명령어가 호출되고, 모든 내용이 전부 기록될 때까지 write() 함수가 동작하였다. 이때, 파일 내용의 전체를 다시 쓰는 것은, 파일 관리 영역(122)에 포함된 메타 데이터를 전부 다시 쓰는 것과, 데이터 저장 영역(124)의 모든 블록의 실제 내용을 다시 쓰는 것을 포함하기 때문에, 상당한 시간과 처리 부하를 요구한다.
한편, 본 발명에서는 메타 데이터(파일 관리 영역에 기록될 수 있음)를 수정하기 위한 전용 명령어(예를 들면, file_modification() 함수)를 제공한다. file_modification() 함수는 파일의 내용에 대한 수정, 특히 삭제가 필요한 경우에 파일 관리 영역(122)의 메타 데이터만을 수정함으로써, 파일 수정 처리를 완료할 수 있다. 상기 명령어에 의해서는 파일을 구성하는 블록의 실제 물리 영역은 명령 수행시에 바로 업데이트되지 않을 수 있다. 블록의 업데이트는, 이후에 블록 삭제 함수를 호출함으로써 완전히 지워질 수 있으며, 내용이 지워진 데이터 저장 영역(124)의 주소(물리 주소 및/또는 가상 주소)가 운영체제에 반환될 수 있다.
즉, 상기 전용 명령어(file_modification())는, 파일 내용 중 일부를 삭제하는 요청에 대해서, 삭제할 내용이 포함된 블록을 식별하고, 식별된 블록을 관리하는 익스텐트에서 해당 블록에 관한 정보(예를 들면, 가상 주소)를 삭제하고 삭제된 블록을 제외한 블록들의 가상 주소만을 순차적으로 재정렬시켜 익스텐트를 재구성하는 동작을 처리하도록 설계될 수 있다.
도 3은 메타 데이터 수정을 통한 데이터 삭제 과정을 보여준다. Ext 파일 관리 구조, 특히, Ext4 파일 관리 구조에서는 대규모 파일을 지원하기 위해 연속적인 블록의 그룹인 "익스텐트"라는 개념을 사용한다. 이때, 삭제할 블록이 익스텐트의 맨앞이나 맨끝에 위치한다면, 단지 익스텐트의 시작 주소 및/또는 길이만을 수정하면 된다. 하지만, 임의의 익스텐트의 중간에 위치한 블록을 삭제하게 되는 경우에는, 도 3(b)에 도시된 바와 같이, 삭제할 블록을 관리하는 익스텐트를 두 그룹으로 나누어 삭제할 블록을 제외시킴으로써 삭제 명령을 처리한다.
즉, 하나의 익스텐트가 관리하는 연속적인 블록들 사이에 삭제하려는 블록이 존재할 경우, 연속적인 블록 그룹을 삭제할 블록을 기준으로 분리한 후, 상기 익스텐트를 삭제할 블록 이전까지의 블록들에 대한 익스텐트로 재구성하고, 삭제할 블록 이후의 블록들에 대한 신규 익스텐트를 생성한다. 즉, 하나의 익스텐트 내에서 하나 또는 연속되는 일련의 블록들이 삭제되면, 2개의 익스텐트가 재구성될 수 있다. 신규 익스텐트는 재구성된 익스텐트의 다음번 위치에 배치된다. 이를 위해 나머지 익스텐트들의 위치가 1단계씩 시프트될 수 있다.
도 4는 이와 같은 동작의 익스텐트 분리 과정을 보여준다. 도 4(a)와 같이 기존의 데이터에서 3번 블록을 삭제하고자 하는 경우, 삭제할 블록을 포함하는 기존의 익스텐트를 분리하여 새로운 익스텐트를 추가하기 위해, 변동이 생길 익스텐트 이후의 익스텐트들을 모두 임시의 메모리에 저장한다.
그 다음 새로운 익스텐트를 삽입할 공간을 확보(일반적으로 메모리 공간을 한 칸씩 뒤로 이동)하고, 임시 메모리에 저장된 익스텐트들을 확보한 공간의 이후로부터 저장한다. 확보한 공간에는 삭제된 블록 이후 블록의 주소와 나머지 블록들의 길이를 포함하도록 생성된 신규 익스텐트를 기록한다.
블록을 삭제하는 작업은 메모리 공간의 논리 주소를 기반으로 수행될 수 있으며, 삭제된 블록들의 논리 주소는 데이터가 없어진다. 블록이 삭제 처리된 후에 삭제된 블록의 논리 주소에 접근하게 되면 NULL 데이터가 읽히게 되어 파일 내용이 연속적이지 못하고 에러를 발생시킬 수 있다. 따라서 블록의 삭제 처리 후에는, 모든 블록들(또는 삭제된 블록 이후의 블록들)의 논리 주소를 수정해서, 삭제된 블록의 내용이 제거된 유효한 데이터만 연속적으로 읽혀질 수 있게 만든다.
도 5 및 도 6은 블록의 논리 주소를 재정렬하는 과정을 보여준다.
(도 4의 처리에 의해) 도 5(a)와 같이 3번 블록이 삭제되어 논리 주소가 없어졌으면, 도 5(b)와 같이, 3번 블록 이후의 블록에 3번을 부여하고, 이어서 순차적으로 논리 주소를 부여하여 재정렬한다.
도 6은 익스텐트의 맨앞 또는 맨끝에 위치한 블록이 삭제되는 경우를 보여준다. 도 6(a)과 같이 맨앞 블록이 삭제되면, 새로운 익스텐트를 생성할 필요는 없고, 다만, 맨 처음 익스텐트의 시작 주소를 2번 블록의 시작 주소로 변경하고, 익스텐트의 길이를 삭제된 블록을 제외한 나머지 블록들의 개수인 4로 변경한다. 이어서, 상기 익스텐트 내에서 1번 블록이 삭제됨에 따라, 2번 블록의 논리 주소를 1번으로 변경하고 이어지는 블록들에게도 순차적으로 논리 주소를 변경부여한다. 아울러, 그다음번 익스텐트들의 블록들의 논리 주소가 하나씩 당겨지는 방식으로 재정렬될 것이다.
한편, 도 6(b)과 같이 임의의 익스텐트의 맨끝 블록이 삭제되는 경우에도, 새로운 익스텐트가 생성될 필요는 없다. 다만, 해당 익스텐트의 길이만 4로 변경하면 된다. 한편, 해당 익스텐트의 맨끝 블록(예를 들면, 5번 블록)이 삭제됨에 따라, 그다음번으로부터의 익스텐트들의 블록들의 논리 주소가 하나씩 당겨지게 변경됨으로써 재정렬될 것이다.
상술한 바와 같은 구성의 본 발명에 따른 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템에 의하면, 대용량 파일 중 일부가 삭제되는 경우에도 적은 쓰기 연산으로 파일의 내용을 업데이트할 수 있다. 특히, 멀티미디어 파일이나 대용량 백업 파일에서 수정이 발생하였을 경우, 시스템의 성능을 크게 향상시킬 수 있다. 또한, 저장 매체에 쓰고 지우는 작업의 횟수도 줄일 수 있으므로 저장 매체의 수명도 크게 증가시킬 수 있다.
이어서, 본 발명의 또하나의 실시예에 따른, 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 방법에 대해, 도 7 및 도 8을 참조하여 설명한다.
도 7은 본 발명의 또하나의 실시예에 따른 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템에 의해 처리될 수 있는, 파일 관리 구조 제어 방법의 흐름도이다. 또한, 도 8은 상기 방법의 일례로서, 연속된 블록들의 중간에 위치한 블록을 삭제하는 경우의 처리 과정을 상세하게 설명하는 흐름도이다.
먼저, 본 발명의 제어 시스템(100)이 상위 시스템(예를 들면, 운영체제 또는 사용자 프로그램)으로부터 소정 파일의 내용을 변경하도록 요청하는 명령(즉, 시스템콜)을 수신하고, 파일을 구성하는 블록 중 적어도 하나를 삭제해야하게 되면, 해당 명령을 처리하기 위한 전용 명령어(예를 들면, file_modification() 함수)를 실행시킨다(S110).
상기 전용 명령어는, 상기 명령이 처리되어야 할 대상 파일을 식별하고, 식별된 파일에서 메타 데이터를 획득하고, 메타 데이터를 재구성함으로써 명령이 요청하는 동작을 처리한다(S120).
즉, 상기 명령이 파일 중 소정 블록의 삭제가 수반되는 것으로 판단되면, 삭제할 블록을 관리하는 익스텐트를 식별하고, 식별된 익스텐트를 삭제할 블록의 전후에서 분리하여 삭제할 블록을 제외시키고, 분리된 각각을 새로운 2개의 익스텐트로 구성한다.
이때, 하나의 익스텐트는 분리되기 전의 익스텐트의 시작 주소를 그대로 유지하며 길이만 삭제할 블록의 이전 블록까지로 수정될 수 있다. 그리고, 또하나의 익스텐트는 삭제할 블록 다음의 블록으로부터 분리되기 전의 익스텐트의 맨끝 블록까지를 가리키도록 시작 주소와 길이가 정의될 수 있다.
한편, 익스텐트가 재구성된 후에는, 해당 익스텐트들을 구성하는 일부 또는 모든 블록의 논리 주소를 재정렬한다(S130). 즉, 파일을 구성하는 블록들의 순서의 연속성이 삭제된 블록에 의해 손상되었으므로, 남아있는 블록들만으로 논리 주소를 재구성한다.
추가로, 삭제된 블록의 논리 주소 또는 물리 주소는 상위 시스템을 반환될 수 있다.
다음으로, 도 8을 참조하여, 임의의 블록을 삭제하는 경우의 처리 과정을 더욱 상세히 설명한다. 제어 시스템(100)은, 시스템콜을 분석하여 삭제할 블록을 관리하는 익스텐트(이하, 대상 익스텐트)를 식별한다(S201). 그리고 삭제할 블록이 대상 익스텐트의 중간에 위치하는지 또는 맨앞/맨끝에 위치하는지 확인한다(S202).
만일, 삭제할 블록이 대상 익스텐트의 중간에 위치한다면, 대상 익스텐트 이후의 익스텐트들의 순서를 1단계씩 뒤로 시프트한다(S204). 이로써 대상 익스텐트와 그다음 익스텐트의 사이에 하나의 익스텐트를 추가할 수 있는 공간이 확보된다.
이제, 대상 익스텐트의 길이를 삭제할 블록의 이전 블록까지로 수정하고, 그 다음으로 신규 익스텐트를 생성한다(S205). 신규 익스텐트는 삭제할 블록의 다음 블록으로부터 최초의 대상 익스텐트의 맨끝 블록까지로 설정된다.
이어서, 각 블록의 논리 주소를 재정렬한다(S206). 각 블록들은 연속적인 논리 주소를 갖는데, 임의의 블록이 삭제되면서 논리 주소의 연속성이 손상되었으므로, 파일을 구성하는 모든 블록들의 논리 주소를 순서대로 재정렬하여 재부여한다.
한편, 단계(S202)에서 삭제할 블록이 대상 익스텐트의 맨앞에 위치하는 것으로 확인되면(S212), 대상 익스텐트의 시작 주소를 삭제할 블록의 다음 블록으로 수정하고, 대상 익스텐트의 길이를 삭제한 블록 개수만큼 줄인다(S213).
또한, 단계(S202)에서 삭제할 블록이 대상 익스텐트의 맨끝에 위치하는 것으로 확인되면(S222), 대상 익스텐트의 시작 주소는 유지하고, 삭제할 블록의 이전 블록까지로 길이만 수정한다(S223).
단계(S213) 및 단계(S223)에서 익스텐트들이 수정되면, 단계(S206)로 진행하여 파일을 구성하는 모든 블록의 논리 주소를 순서에 맞게 재정렬한다.
도 9는 본 발명의 다른 실시예에 따른, 클라우드 스토리지에서의 데이터 동기화 방식을 설명하는 개념도이다. 도 10은 도 9에 따른 방식을 적용한 스토리지 동기화 시스템의 개략적인 구성도이다.
클라우드 스토리지는 인터넷을 통해 연결된 복수의 외부 스토리지에 데이터를 분산하여 저장하고, 액세스 및 공유하는 기법을 의미한다. 본 실시예에 따른 클라우드 스토리지 제어 시스템은, 파일의 저장/변경을 요청하는 클라이언트 서버(310)와, 실제 파일이 분산저장되는 데이터 저장 서버(320)와, 저장된 파일의 저장된 위치를 나타내는 분배 리스트(각 청크의 메타 데이터, 해시값 등을 더 포함할 수 있음)를 저장하는 분배 관리 서버(300)를 포함할 수 있다.
데이터 저장 서버(320)에는 파일의 내용이 4MB의 크기의 청크로 저장될 수 있다. 이때, 데이터 저장 서버(320)는, 청크의 내용이 특정 크기의 블록 단위로 분할되어 물리 메모리 영역에 기록되고, 복수의 블록들 각자에는 순차적으로 논리 주소가 할당되고, 복수의 블록들 중 물리 주소가 연속하는 것들끼리 그룹화되어 익스텐트가 구성되고, 복수의 익스텐트들 각각의 시작 주소와 길이 정보가 메타 데이터로서 기록되는 파일 관리 구조를 사용할 수 있다. 이러한 파일 관리 구조는 EXT 파일 관리 구조 또는 EXT4 파일 관리 구조일 수 있다.
파일 동기화시 일부 중복제거 시스템을 제외하고는 모든 파일을 다시 업로드하며, 중복제거 시스템도 해당 청크는 업데이트가 발생한다.
본 실시예에서는, 앞서 설명한 바와 같은 메타 데이터 수정을 통한 파일 입출력 최소화 기법을 클라우드 스토리지에 적용함으로써, 내용 중 일부가 삭제된 파일을 분배 관리 서버(300)와 데이터 저장 서버(320)에서 서로 동기화할 때 네트워크 사용량과 파일 쓰기량을 최소화시킬 수 있게 된다.
기존 시스템에서는 도 9의 좌측에 도시된 바와 같이, 클라이언트 서버(310)에서 임의의 파일을 수정하고자 하면, 동기화 작업에서 분배 관리 서버(300)는 수정된 파일이 분산저장된 모든 데이터 저장 서버(320)에게 대상 파일과 관련된 청크의 모든 내용을 다시 쓰도록 명령하였고, 모든 데이터 저장 서버(320)에는 요청된 명령에 따라 대상 파일과 관련된 모든 청크의 모든 내용을 다시 쓰는 방식으로 업데이트 작업을 수행하였다.
하지만, 본 실시예에서는, 도 9의 우측에 도시된 바와 같이, 클라이언트 서버(310)는 파일의 내용 중 일부를 삭제하고자 하는 요청(여기에는, 변경된 파일을 청크 단위로 구분한 후 각각의 청크마다 계산된 해시값이 포함될 수 있음)을 생성하여 분배 관리 서버(300)로 전송하고, 분배 관리 서버(300)는 해당 파일에 대한 해시값을 검사하여 삭제된 부분을 식별하고(삭제 요청된 파일의 메타 데이터 또는 해시값을 분석하여 동일 파일에 대하여 기존에 저장하고 있던 메타 데이터 또는 해시값과 서로 비교하는 방식으로 변경된 부분을 식별할 수 있음) 삭제된 부분이 저장된 데이터 저장 서버(320)를 식별하고, 식별된 부분을 삭제할 것을 식별된 데이터 저장 서버(320)에 명령한다. 그러면, 대상 데이터 저장 서버(320)는 대상 청크를 삭제하거나 대상 청크의 삭제할 블록과 관련된 익스텐트와 블록 주소들만을 수정하는 것으로써 주어진 명령을 처리한다.
이러한 과정에서는, 클라이언트 서버(310)가 파일 내용을 동기화시키도록 모든 데이터 저장 서버(예를 들면, 해당 파일의 청크를 분배받아 저장하고 있는 데이터 저장 서버들)(320)에 직접 요청할 필요가 없이, 단지 분배 관리 서버(300)에 삭제할 내용을 포함하도록 변경된 파일의 일부(예를 들면, 청크 단위로 생성된 해시값)만을 전송하면 되고므로, 네트워크 사용량이 적다.
데이터 저장 서버(320)에서는 분배 관리 서버(300)로부터 상기 시스템콜 메시지를 수신하면, 대상 파일의 메타 데이터를 수정하기 위한 자체의 시스템콜을 발생시키고, 대상 파일의 삭제된 내용을 포함하는 청크의 메타 데이터만을 수정한다. 이때 삭제 요청된 부분에 대응하는 부분을 블록단위로 삭제하기 위해 메타 데이터를 수정하는 것은, 앞서 설명한 바와 같이 익스텐트들을 재구성하고 각 블록의 논리 주소를 재정렬하는 방식으로 처리될 수 있다. 한편, 데이터 저장 서버(320)는 변경된 청크의 해시값을 계산하여 분배 관리 서버(300)에 통보하여 업데이트할 수 있다.
분배 관리 서버(300)는 분배 리스트 저장부(302)와 시스템콜 수신부(304)를 포함할 수 있다. 분배 리스트 저장부(302)는 저장요청된 파일이 어떻게 청크 단위로 분할되었고 분할된 청크가 어느 데이터 저장 서버(320)에 저장되었는지를 리스트 형태로 관리할 수 있다. 분배 리스트에는 각 청크의 해시값이 함께 저장되어 있을 수 있으며, 삭제 요청된 파일로부터 구성한 각 청크의 해시값과 미리저장된 해시값을 비교하여 삭제 기능이 처리될 청크를 식별할 수 있다.
데이터 저장 서버(320)는 도 1에 도시된 바와 같은 제어 시스템(100)과 저장 매체(120)를 그대로 포함할 수 있다.
해시값은 유저 어플리케이션에서 데이터 수정이 발생 했을 경우 파일 내용을 클라우드 스토리지 서버의 데이터와 비교하기 위해 사용된다. 해시값 추출에는 MD5또는 SHA-1과 같은 해시 연산이 사용되며, 본 시스템에서는 고정 길이 블록만 사용한다. 이 해시값의 리스트는 서버로 전송된다.
본 실시예에 따른 클라우드 스토리지에서의 시스템콜 메시지 패킷의 구성은 도 11을 참조할 수 있다. 시스템콜 메시지 패킷은, 파일의 이름과 삭제된 데이터 범위, 데이터 서버의 노드 그리고 청크 번호와 같은 데이터를 포함할 수 있다. 이 패킷은 시스템콜 메시지 뿐만 아니라 서버 간의 명령전달을 위해 사용될 수 있다. 따라서 각 메시지를 구분할 프로토콜을 패킷의 맨앞 4비트에 기록할 수 있다. 이후 비트는 메시지마다 다르게 구성될 수 있다. 특히 시스템콜 메시지는 데이터가 저장된 노드(즉, 데이터 저장 서버)와 청크를 찾아내는 데에 사용될 수 있어야 하므로, 노드 번호와 청크 번호 저장에 사용되는 12비트를 포함할 수 있다. 또한, 청크 중 일정 부분만 삭제해야 하므로 블록이 위치한 오프셋 번호와 수정 크기를 각각 8비트씩 기록하여 전달할 수 있다.
데이터 저장 서버(320)는 시스템콜 메시지가 도착하면 청크 번호에 해당하는 파일을 열고, 삭제할 범위의 오프셋과 크기를 매개변수로 전달하는 시스템콜을 발생시키고 실행한다.
본 실시예에 의하면, 입출력 요청과 연산이 빈번하게 발생하는 클라우드 스토리지 시스템에서, 파일 내용 전부를 포함하는 입출력 요청이 아닌 간단한 시스템콜을 통해 직접적으로 블록의 인덱스를 수정하고, 파일의 내용을 지움으로써 클라우드 스토리지 시스템에서 발생할 수 있는 지연 현상을 크게 줄일 수 있다. 또한 저장 매체의 수명을 증가시켜 스토리지 시스템의 유지, 보수 비용을 줄일 수 있다. 특히 최근 클라우드 스토리지 시스템에도 플래시 기반의 저장 매체가 사용되지만 해당 매체의 수명을 늘림으로써 유지관리 비용을 절감할 수 있게 된다.
도 12는 상술한 클라우드 파일 관리 구조 제어 시스템에서의 데이터 동기화 방법을 도시한다. 클라이언트 서버(310)가 미리 저장된 소정의 파일의 일부를 수정됨에 따라 데이터 저장 서버(320)에 저장되어 있는 내용도 동기시키기 위한 요청을 포함하는 시스템콜을 송신하면, 분배 관리 서버(300)에서 시스템콜을 수신한다(S310).
분배 관리 서버(300)는 시스템콜을 분석하여 삭제할 대상 파일과, 대상 파일에서 삭제할 부분을 식별하고, 식별된 부분이 어느 데이터 저장 서버(320)에 저장된 어느 청크의 어느 블록인지 확인하고, 해당 데이터 저장 서버(320)에 해당 블록을 삭제할 것을 명령하는 시스템콜을 송신한다(S320, S330).
데이터 저장 서버(320)는 수신한 시스템콜을 분석하여, 삭제 요청된 청크의 블록을 삭제한다(S340). 삭제의 과정은, 삭제할 청크를 식별하고, 청크 내에서 삭제할 블록을 식별하고, 삭제할 블록을 관리하는 익스텐트를 식별하고, 삭제할 블록을 제외하도록 익스텐트를 재구성하고, 삭제한 블록을 제외한 나머지 블록들의 논리 주소를 순차적으로 재정렬하는 것을 포함할 수 있다.
그리고, 데이터 저장 서버(320)는, 삭제 처리의 완료를 분배 관리 서버(300)에 통보할 수 있다. 이때, 재구성된 익스텐트를 포함하는 메타 데이터를 함께 전송할 수 있으며, 저장된 청크에 대한 해시값을 계산하여 함께 전송할 수도 있다.
이상에서 설명된 본 발명의 실시예들은 본 발명의 기술 사상을 예시적으로 보여준 것에 불과하며, 본 발명의 보호 범위는 이하 특허청구범위에 의하여 해석되어야 마땅할 것이다. 또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것인 바, 본 발명과 균등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (24)

  1. 파일이 특정 크기의 블록 단위로 분할되어 물리 메모리 영역에 기록되고, 복수의 상기 블록들에는 순차적으로 논리 주소가 할당되고, 복수의 상기 블록들 중 물리 주소가 연속하는 것들끼리 그룹화되어 익스텐트가 구성되고, 복수의 상기 익스텐트들 각각의 시작 주소와 길이 정보가 메타 데이터로서 기록되는 방식의 파일 관리 구조를 제어하는 시스템으로서:
    소정 파일의 적어도 하나의 블록을 삭제하고자 하는 명령을 수신하면, 상기 파일과 관련된 상기 메타 데이터를 획득하는 시스템콜 처리부;
    상기 메타 데이터를 분석하여 상기 삭제할 블록 및 상기 삭제할 블록의 익스텐트를 식별하고, 상기 식별된 익스텐트에서 상기 삭제할 블록을 제외시킴으로써 상기 명령을 실행하는 메타데이터 재구성부; 및
    상기 파일과 관련된 익스텐트들에 포함된 블록들의 논리 주소를 재정렬하는 논리 주소 정렬부를 포함하는, 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템.
  2. 제1항에 있어서,
    상기 삭제할 블록의 논리 주소를 운영체제에 반환하는 블록 삭제부를 더 포함하는, 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템.
  3. 제1항에 있어서,
    상기 시스템콜 처리부는, 적어도 하나의 블록을 삭제하고자 하는 상기 명령에 대응하여, 상기 파일의 삭제할 부분에 대응하는 익스텐트를 수정하고 나머지 블록들의 논리 주소를 재정렬하는 처리를 수행하도록 설계된 전용 명령어를 실행시키는 것을 특징으로 하는, 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템.
  4. 제1항에 있어서,
    상기 삭제할 블록이 상기 익스텐트의 중간에 있는 경우,
    상기 메타데이터 재구성부는, 상기 식별된 익스텐트를 상기 삭제할 블록의 전후에서 구분하여 상기 삭제할 블록을 제외한 나머지 블록들만을 포함하는 새로운 2개의 익스텐트들로 재구성하는 것을 특징으로 하는, 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템.
  5. 제1항 또는 제4항에 있어서,
    상기 삭제할 블록이 상기 익스텐트의 중간에 있는 경우,
    상기 메타데이터 재구성부는, 상기 식별된 익스텐트 이후의 모든 익스텐트들의 순서를 1단계씩 시프트하고, 상기 식별된 익스텐트의 길이를 상기 삭제할 블록의 이전 블록까지로 수정하고, 상기 삭제할 블록 이후 블록으로부터 상기 식별된 익스텐트의 맨끝 블록까지로 신규 익스텐트를 구성하여 상기 시프트로써 생성된 공간에 배치하는 것을 특징으로 하는, 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템.
  6. 제1항에 있어서,
    상기 메타데이터 재구성부는,
    상기 삭제할 블록이 상기 식별된 익스텐트의 맨앞에 있는 경우에는 상기 식별된 익스텐트의 시작 주소를 상기 삭제할 블록의 다음 블록으로 변경하고 또한 익스텐트의 길이를 수정하고, 상기 삭제할 블록이 상기 식별된 익스텐트의 맨끝에 있는 경우에는 상기 식별된 익스텐트의 길이를 상기 삭제할 블록의 이전 블록까지로 수정하는 것을 특징으로 하는, 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템.
  7. 제1항에 있어서,
    상기 논리 주소 정렬부는,
    상기 삭제할 블록을 관리하는 익스텐트의 상기 삭제할 블록 이후의 모든 블록들 및 상기 익스텐트에 이어지는 모든 익스텐트들의 블록들의 논리 주소를 재정렬하는 것을 특징으로 하는, 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템.
  8. 소정 파일이 특정 크기의 블록 단위로 분할되어 물리 메모리 영역에 기록되고, 복수의 상기 블록들에는 순차적으로 논리 주소가 할당되고, 복수의 상기 블록들 중 물리 주소가 연속하는 것들끼리 그룹화되어 익스텐트가 구성되고, 복수의 상기 익스텐트들 각각의 시작 주소와 길이 정보가 메타 데이터로서 기록되는 방식의 파일 관리 구조를 제어하는 방법으로서:
    상기 파일의 적어도 하나의 블록을 삭제하고자 하는 명령을 수신하면, 상기 파일의 메타 데이터를 획득하는 시스템콜 처리 단계;
    상기 메타 데이터를 분석하여 상기 삭제할 블록 및 상기 삭제할 블록의 익스텐트를 식별하고, 상기 식별된 익스텐트에서 상기 삭제할 블록을 제외시킴으로써 상기 명령을 실행하는 메타데이터 재구성 단계; 및
    상기 삭제할 블록을 관리하는 익스텐트의 상기 삭제할 블록 이후의 모든 블록들 및 상기 익스텐트에 이어지는 모든 익스텐트들에 포함된 블록들의 논리 주소를 재정렬하는 논리 주소 정렬 단계를 포함하는, 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 방법.
  9. 제8항에 있어서,
    상기 삭제할 블록의 논리 주소를 운영체제에 반환하는 블록 삭제 단계를 더 포함하는, 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 방법.
  10. 제8항에 있어서,
    상기 시스템콜 처리 단계는,
    적어도 하나의 블록을 삭제하고자 하는 상기 명령에 대응하여, 상기 파일의 삭제할 부분에 대응하는 익스텐트를 수정하고 나머지 블록들의 논리 주소를 재정렬하는 처리를 수행하도록 설계된 전용 명령어를 실행시키는 것을 더 포함하는, 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 방법.
  11. 제8항에 있어서,
    상기 메타데이터 재구성 단계는,
    상기 삭제할 블록이 상기 식별된 익스텐트의 중간에 있는 경우, 상기 식별된 익스텐트를 상기 삭제할 블록의 전후에서 구분하여 상기 삭제할 블록을 제외한 나머지 블록들만을 포함하는 새로운 2개의 익스텐트들로 재구성하는 것을 더 포함하는, 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 방법.
  12. 제8항 또는 제11항에 있어서,
    상기 메타데이터 재구성 단계는,
    상기 삭제할 블록이 상기 식별된 익스텐트의 중간에 있는 경우, 상기 식별된 익스텐트 이후의 모든 익스텐트들의 순서를 1단계씩 시프트하고, 상기 식별된 익스텐트의 길이를 상기 삭제할 블록의 이전 블록까지로 수정하고, 상기 삭제할 블록 이후 블록으로부터 상기 식별된 익스텐트의 맨끝 블록까지로 신규 익스텐트를 구성하고, 상기 신규 익스텐트를 상기 시프트에 의해 생성된 공간에 배치하는 것을 더 포함하는, 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 방법.
  13. 제8항에 있어서,
    상기 메타데이터 재구성 단계는,
    상기 삭제할 블록이 상기 식별된 익스텐트의 맨앞에 있는 경우에는 상기 식별된 익스텐트의 시작 주소를 상기 삭제할 블록의 다음 블록의 맨앞으로 변경하고 또한 익스텐트의 길이를 수정하고, 상기 삭제할 블록이 상기 식별된 익스텐트의 맨끝에 있는 경우에는 상기 식별된 익스텐트의 길이를 상기 삭제할 블록의 이전 블록까지로 수정하는 것을 더 포함하는, 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 방법.
  14. 파일이 특정 크기로 분할되어 복수개의 청크를 구성하고, 구성된 청크들이 분배되어 저장된 복수의 데이터 저장 서버 - 상기 데이터 저장 서버는, 상기 청크가 특정 크기의 블록 단위로 분할되어 물리 메모리 영역에 기록되고, 복수의 상기 블록들에는 순차적으로 논리 주소가 할당되고, 복수의 상기 블록들 중 물리 주소가 연속하는 것들끼리 그룹화되어 익스텐트가 구성되고, 복수의 상기 익스텐트들 각각의 시작 주소와 길이 정보가 메타 데이터로서 기록되는 파일 관리 구조를 사용함 -;
    상기 파일의 어느 청크가 어느 데이터 저장 서버에 저장되어 있는지를 나타내는 분배 리스트를 저장하는 분배 관리 서버;
    상기 파일의 임의 부분을 변경하고자 하는 요청을 상기 분배 관리 서버에 전송하는 클라이언트 서버를 포함하는, 클라우드 파일 관리 구조 제어 시스템으로서,
    상기 분배 관리 서버는, 상기 요청을 수신하면, 상기 파일의 변경된 부분과 관련된 청크를 식별하고 또한 상기 분배 리스트를 검사하여 상기 식별된 청크가 저장된 데이터 저장 서버를 식별하고, 상기 식별된 데이터 저장 서버에게 상기 식별된 청크에 상기 요청을 처리하도록 명령하고,
    상기 데이터 저장 서버는, 상기 명령을 수신하면, 상기 식별된 청크를 변경하는 것을 특징으로 하는, 블록 삭제시의 데이터 입출력을 최소화한 클라우드 파일 관리 구조 제어 시스템.
  15. 제14항에 있어서,
    상기 데이터 저장 서버는,
    상기 명령을 실행할 때 소정의 블록이 삭제되어야 하는 경우, 상기 삭제할 블록을 관리하는 익스텐트를 상기 삭제할 블록의 전후에서 구분하여 상기 삭제할 블록의 나머지 블록들만을 포함하는 새로운 2개의 익스텐트들로 재구성하는 방식으로 상기 메타 데이터를 수정하는 것을 특징으로 하는, 블록 삭제시의 데이터 입출력을 최소화한 클라우드 파일 관리 구조 제어 시스템.
  16. 제14항에 있어서,
    상기 분배 관리 서버는,
    상기 데이터 저장 서버의 각각에 분배된 각각의 청크들에 대한 해시값을 저장하고 있고, 상기 클라이언트 서버로부터 수신한 변경을 요청하는 상기 파일의 각 청크들의 해시값과 상기 미리저장된 해시값을 비교하여 삭제할 블록이 있는지 및 상기 삭제할 블록이 포함된 청크를 검사하는 것을 특징으로 하는, 블록 삭제시의 데이터 입출력을 최소화한 클라우드 파일 관리 구조 제어 시스템.
  17. 제15항에 있어서,
    상기 데이터 저장 서버는,
    상기 삭제할 블록이 상기 익스텐트의 중간에 있는 경우, 상기 식별된 익스텐트 이후의 모든 익스텐트들의 순서를 1단계씩 시프트하고, 상기 식별된 익스텐트의 길이를 상기 삭제할 블록의 이전 블록까지로 수정하고, 상기 삭제할 블록 이후 블록으로부터 상기 식별된 익스텐트의 맨끝 블록까지로 신규 익스텐트를 구성하고, 상기 신규 익스텐트를 상기 시프트로써 생성된 공간에 배치하는 것을 특징으로 하는, 블록 삭제시의 데이터 입출력을 최소화한 클라우드 파일 관리 구조 제어 시스템.
  18. 제15항에 있어서,
    상기 데이터 저장 서버는,
    상기 삭제할 블록이 상기 식별된 익스텐트의 맨앞에 있는 경우에는 상기 식별된 익스텐트의 시작 주소를 상기 삭제할 블록의 다음 블록으로 변경하고 또한 익스텐트의 길이를 수정하고, 상기 삭제할 블록이 상기 식별된 익스텐트의 맨끝에 있는 경우에는 상기 식별된 익스텐트의 길이를 상기 삭제할 블록의 이전 블록까지로 수정하는 것을 특징으로 하는, 블록 삭제시의 데이터 입출력을 최소화한 클라우드 파일 관리 구조 제어 시스템.
  19. 제15항에 있어서,
    상기 데이터 저장 서버는,
    상기 삭제할 블록을 관리하는 익스텐트 내의 상기 삭제할 블록 이후의 모든 블록들 및 상기 익스텐트에 이어지는 모든 익스텐트들에 포함된 블록들의 논리 주소를 재정렬하는 것을 특징으로 하는, 블록 삭제시의 데이터 입출력을 최소화한 클라우드 파일 관리 구조 제어 시스템.
  20. 파일이 특정 크기로 분할되어 복수개의 청크를 구성하고, 구성된 청크들을 복수의 데이터 저장 서버에 분배하여 저장하는 단계 - 상기 데이터 저장 서버는 소정 청크가 특정 크기의 블록 단위로 분할되어 물리 메모리 영역에 기록되고, 복수의 상기 블록들에는 순차적으로 논리 주소가 할당되고, 복수의 상기 블록들 중 물리 주소가 연속하는 것들끼리 그룹화되어 익스텐트가 구성되고, 복수의 상기 익스텐트들 각각의 시작 주소와 길이 정보가 메타 데이터로서 기록되는 방식의 파일 관리 구조를 사용함 -;
    상기 파일의 어느 청크가 어느 데이터 저장 서버에 저장되어 있는지를 나타내는 분배 리스트를 분배 관리 서버에 저장하는 단계;
    상기 분배 관리 서버가, 상기 파일의 임의 부분을 변경하고자 하는 요청을 수신하면, 상기 파일의 변경된 부분과 관련된 청크를 식별하고, 상기 분배 리스트를 검사하여 상기 식별된 청크가 저장된 데이터 저장 서버를 식별하고, 상기 식별된 데이터 저장 서버에게 상기 식별된 청크에 대해 상기 요청을 처리하도록 명령하는 단계; 및
    상기 데이터 저장 서버가, 상기 명령을 처리하기 위해 상기 식별된 청크를 변경하는 단계를 포함하는, 블록 삭제시의 데이터 입출력을 최소화한 클라우드 파일 관리 구조 제어 방법.
  21. 제20항에 있어서,
    상기 식별된 청크를 변경하는 단계는:
    상기 명령을 실행할 때 소정의 블록이 삭제되어야 하는 경우, 상기 삭제할 블록을 관리하는 익스텐트를 상기 삭제할 블록의 전후에서 구분하고, 상기 익스텐트를 상기 삭제할 블록의 나머지 블록들만을 포함하는 새로운 2개의 익스텐트들로 재구성함으로써 상기 메타 데이터를 수정하는 것을 더 포함하는, 블록 삭제시의 데이터 입출력을 최소화한 클라우드 파일 관리 구조 제어 방법.
  22. 제20항에 있어서,
    상기 식별된 청크를 변경하는 단계는:
    상기 명령을 실행할 때 삭제할 블록이 상기 식별된 익스텐트의 중간에 있는 경우, 상기 식별된 익스텐트 이후의 모든 익스텐트들의 순서를 1단계씩 시프트하고, 상기 식별된 익스텐트의 길이를 상기 삭제할 블록의 이전 블록까지로 수정하고, 상기 삭제할 블록 이후 블록으로부터 상기 식별된 익스텐트의 맨끝 블록까지로 신규 익스텐트를 구성하고, 상기 신규 익스텐트를 상기 시프트로써 생성된 공간에 배치하는 것을 더 포함하는, 블록 삭제시의 데이터 입출력을 최소화한 클라우드 파일 관리 구조 제어 방법.
  23. 제20항에 있어서,
    상기 식별된 청크를 변경하는 단계는:
    상기 명령을 실행할 때 상기 삭제할 블록이 상기 식별된 익스텐트의 맨앞에 있는 경우에는 상기 식별된 익스텐트의 시작 주소를 상기 삭제할 블록의 다음 블록의 맨앞으로 변경하고 또한 익스텐트의 길이를 수정하는 것을 더 포함하고,
    상기 삭제할 블록이 상기 식별된 익스텐트의 맨끝에 있는 경우에는 상기 식별된 익스텐트의 길이를 상기 삭제할 블록의 이전 블록까지로 수정하는 것을 더 포함하는, 블록 삭제시의 데이터 입출력을 최소화한 클라우드 파일 관리 구조 제어 방법.
  24. 제21항 내지 제23항 중 어느 한 항에 있어서,
    상기 식별된 청크를 변경하는 단계는:
    상기 삭제할 블록을 관리하는 익스텐트의 상기 삭제할 블록 이후의 모든 블록들 및 상기 익스텐트에 이어지는 모든 익스텐트들에 포함된 블록들의 논리 주소를 재정렬하는 것을 더 포함하는, 블록 삭제시의 데이터 입출력을 최소화한 클라우드 파일 관리 구조 제어 방법.
KR1020170153139A 2017-11-16 2017-11-16 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템 및 방법 KR20190056087A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170153139A KR20190056087A (ko) 2017-11-16 2017-11-16 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170153139A KR20190056087A (ko) 2017-11-16 2017-11-16 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20190056087A true KR20190056087A (ko) 2019-05-24

Family

ID=66679982

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170153139A KR20190056087A (ko) 2017-11-16 2017-11-16 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20190056087A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210073183A1 (en) * 2015-07-23 2021-03-11 Netapp Inc. Deduplicating extents across systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210073183A1 (en) * 2015-07-23 2021-03-11 Netapp Inc. Deduplicating extents across systems
US11714785B2 (en) * 2015-07-23 2023-08-01 Netapp Inc. Deduplicating extents across systems

Similar Documents

Publication Publication Date Title
US20210240662A1 (en) Using a storage system to optimize and maintain the metadata associated with a plurality of small files
KR101137299B1 (ko) 스냅샷을 제공하는 파일 시스템에 대한 계층적 저장 관리
CN106407040B (zh) 一种远程数据复制方法及系统
US7603529B1 (en) Methods, systems, and computer program products for mapped logical unit (MLU) replications, storage, and retrieval in a redundant array of inexpensive disks (RAID) environment
US9600558B2 (en) Grouping of objects in a distributed storage system based on journals and placement policies
US20060047926A1 (en) Managing multiple snapshot copies of data
US20150066857A1 (en) Replication of snapshots and clones
US9031906B2 (en) Method of managing data in asymmetric cluster file system
US8977802B2 (en) Access device, information recording device, controller, real time information recording system, access method, and program
US11494355B2 (en) Large content file optimization
CN113722275A (zh) 对象存储空间管理方法、装置、服务器及存储介质
TW202309741A (zh) 差分包產生方法,差分包產生設備,更新方法,及嵌入式系統
US10394484B2 (en) Storage system
JP2018181190A (ja) ストレージ装置、およびストレージ制御プログラム
US10387043B2 (en) Writing target file including determination of whether to apply duplication elimination
JPWO2007099636A1 (ja) ファイルシステム移行方法、ファイルシステム移行プログラム及びファイルシステム移行装置
US20210103400A1 (en) Storage system and data migration method
KR20190056087A (ko) 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템 및 방법
JP4394467B2 (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
KR101995460B1 (ko) Ext 파일 관리 구조의 파일단위 단편화 제거 시스템 및 방법
CN114780043A (zh) 基于多层缓存的数据处理方法及装置、电子设备
JP2013088920A (ja) 計算機システム及びデータ管理方法
JP6506050B2 (ja) 端末電子機器
WO2023033100A1 (en) Processing apparatus
CN117633895A (zh) 一种分布式文件存储方法、系统和装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application