KR101715039B1 - 파일처리장치 및 그 동작 방법 - Google Patents

파일처리장치 및 그 동작 방법 Download PDF

Info

Publication number
KR101715039B1
KR101715039B1 KR1020160038395A KR20160038395A KR101715039B1 KR 101715039 B1 KR101715039 B1 KR 101715039B1 KR 1020160038395 A KR1020160038395 A KR 1020160038395A KR 20160038395 A KR20160038395 A KR 20160038395A KR 101715039 B1 KR101715039 B1 KR 101715039B1
Authority
KR
South Korea
Prior art keywords
storage
file
file block
metadata
recorded
Prior art date
Application number
KR1020160038395A
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 KR1020160038395A priority Critical patent/KR101715039B1/ko
Application granted granted Critical
Publication of KR101715039B1 publication Critical patent/KR101715039B1/ko

Links

Images

Classifications

    • G06F17/30156
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques

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)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 파일처리장치에서 채택하고 있는 스토리지 각각의 입출력 처리 특성을 반영하여, 파일블록의 저장 장소와, 파일블록과 관련하여 생성되는 메타데이터의 기록 장소를 달리함으로써, 파일블록의 중복 제거 시 생성되는 메타데이터와 관련된 무작위 입출력(Random I/O) 처리 동작으로 인해 스토리지의 성능이 저하되는 것을 방지할 수 있는 파일처리장치 및 그 동작 방법을 제안한다.

Description

파일처리장치 및 그 동작 방법{APPARATUS FOR FILE PROCESSING AND CONTROL METHOD THEREOF}
본 발명은 파일블록의 중복 제거 시 생성되는 메타데이터와 관련된 무작위 입출력(Random I/O) 처리 동작으로 인해 스토리지의 성능이 저하되는 것을 방지하기 위한 방안에 관한 것이다.
기존의 파일 중복 제거 기술들은 대부분 해시함수를 통해 파일의 중복 여부를 확인하고, 이에 관한 메타데이터를 기록하는 형태로 이루어지는 것이 일반적이다.
그러나, 이러한 메타데이터를 하드디스크드라이브(HDD, Hard Disk Drive)에 직접 기록하는 경우에는, 메타데이터와 관련된 무작위 입출력(Random I/O) 처리 동작이 많아지게 되어, 메타데이터가 기록되는 하드디스크드라이브의 성능을 저하시키게 된다.
이에, 하드디스크드라이브보다 입출력 처리 속도가 향상된 SSD(Solid State Drive)를 메타데이터의 기록 장소로 활용하는 방안이 제안되었으나, SSD 역시 높은 성능에도 불구하고, 무작위 입출력 동작으로 인한 성능 저하 현상은 여전하며, 그 수명까지 단축되는 문제점이 존재한다.
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은, 파일블록의 중복 제거 시 생성되는 메타데이터와 관련된 무작위 입출력(Random I/O) 처리 동작으로 인해 스토리지의 성능이 저하되는 것을 방지하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 파일처리장치는, 파일블록에 대한 쓰기명령이 발생하는 경우, 상기 파일블록이 제1스토리지 내에 존재하는지 여부를 판별하는 판별부; 상기 파일블록이 상기 제1스토리지 내에 존재하지 않는 것으로 판별되는 경우, 상기 파일블록을 상기 제1스토리지에 저장하며, 무작위(Random) 시점에 상기 파일블록에 대한 읽기명령이 처리되는 경우마다 참조되는 메타데이터를 제2스토리지에 기록하는 처리부; 및 상기 메타데이터가 상기 제2스토리지에 기록되는 경우, 순차적(Sequential) 쓰기명령에 따라 상기 제2스토리지에 기록된 메타데이터가 제3스토리지 내 일정영역에 동일하게 기록될 수 있도록 하는 제어부를 포함하는 것을 특징으로 한다.
보다 구체적으로, 상기 처리부는, 상기 파일블록이 상기 제1스토리지 내에 존재하는 것으로 판별되는 경우, 상기 파일블록과 관련하여 상기 제2스토리지에 기록되어 있는 메타데이터를 상기 파일블록으로부터 원본 파일을 복구하는 것과 관련하여 갱신 처리하는 것을 특징으로 한다.
보다 구체적으로, 상기 제2스토리지에 기록되는 메타데이터는, 특정 시점에 상기 제3스토리지 내 일정 영역과는 별도의 타 영역으로 백업되며, 상기 제3스토리지 내 일정 영역에 기록되어 있는 메타데이터는 상기 타 영역으로의 백업이 이루어지는 것과 관련된 시점에 삭제 처리되는 것을 특징으로 한다.
보다 구체적으로, 상기 특정 시점은, 상기 제3스토리지 내 일정 영역의 용량이 임계치를 초과하게 되는 시점, 및 상기 제2스토리지와 관련된 쓰기명령 및 읽기명령이 발생되지 않는 시점 중 적어도 하나를 포함하는 것을 특징으로 한다.
보다 구체적으로, 상기 제1스토리지는, 무작위 입출력 처리 속도, 및 순차적 입출력 처리 속도 각각이 상기 제3스토리지보다 설정치 이상인 저장장치이며, 상기 제2스토리지는, 상기 무작위 입출력 처리 속도 및 상기 순차적 입출력 처리 속도가 설정치 이상인 저장장치이며, 상기 제3스토리지는, 상기 순차적 입출력 처리 속도가 설정치 이상인 저장장치인 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 파일처리장치의 동작 방법은, 파일블록에 대한 쓰기명령이 발생하는 경우, 상기 파일블록이 제1스토리지 내에 존재하는지 여부를 판별하는 판별단계; 상기 파일블록이 상기 제1스토리지 내에 존재하지 않는 것으로 판별되는 경우, 상기 파일블록을 상기 제1스토리지에 저장하며, 무작위(Random) 시점에 상기 파일블록에 대한 읽기명령이 처리되는 경우마다 참조되는 메타데이터를 제2스토리지에 기록하는 처리단계; 및 상기 메타데이터가 상기 제2스토리지에 기록되는 경우, 순차적(Sequential) 쓰기명령에 따라 상기 제2스토리지에 기록된 메타데이터가 제3스토리지 내 일정영역에 동일하게 기록될 수 있도록 하는 제어단계를 포함하는 것을 특징으로 한다.
보다 구체적으로, 상기 처리단계는, 상기 파일블록이 상기 제1스토리지 내에 존재하는 것으로 판별되는 경우, 상기 파일블록과 관련하여 상기 제2스토리지에 기록되어 있는 메타데이터를 상기 파일블록으로부터 원본 파일을 복구하는 것과 관련하여 갱신 처리하는 것을 특징으로 한다.
보다 구체적으로, 상기 제2스토리지에 기록되는 메타데이터는, 특정 시점에 상기 제3스토리지 내 일정 영역과는 별도의 타 영역으로 백업되며, 상기 제3스토리지 내 일정 영역에 기록되어 있는 메타데이터는 상기 타 영역으로의 백업이 이루어지는 것과 관련된 시점에 삭제 처리되는 것을 특징으로 한다.
보다 구체적으로, 상기 특정 시점은, 상기 제3스토리지 내 일정 영역의 용량이 임계치를 초과하게 되는 시점, 및 상기 제2스토리지와 관련된 쓰기명령 및 읽기명령이 발생되지 않는 시점 중 적어도 하나를 포함하는 것을 특징으로 한다.
보다 구체적으로, 상기 제1스토리지는, 무작위 입출력 처리 속도, 및 순차적 입출력 처리 속도 각각이 상기 제3스토리지보다 설정치 이상인 저장장치이며, 상기 제2스토리지는, 상기 무작위 입출력 처리 속도 및 상기 순차적 입출력 처리 속도가 설정치 이상인 저장장치이며, 상기 제3스토리지는, 상기 순차적 입출력 처리 속도가 설정치 이상인 저장장치인 것을 특징으로 한다.
이에, 본 발명의 파일처리장치 및 그 동작 방법에서는, 파일처리장치에서 채택하고 있는 스토리지 각각의 입출력 처리 특성을 반영하여, 파일블록의 저장 장소와, 파일블록과 관련하여 생성되는 메타데이터의 기록 장소를 달리함으로써, 파일블록의 중복 제거 시 생성되는 메타데이터와 관련된 무작위 입출력(Random I/O) 처리 동작으로 인해 스토리지의 성능이 저하되는 것을 방지할 수 있다.
도 1은 본 발명의 일 실시예에 따른 파일의 중복 제거 환경을 도시한 예시도.
도 2는 본 발명의 일 실시예에 따른 파일처리장치의 구성을 설명하기 위한 블록도.
도 3은 본 발명의 일 실시예에 따른 메타데이터를 설명하기 위한 도면.
도 4는 본 발명의 일 실시예에 따른 파일처리장치에서의 동작 흐름을 설명하기 위한 순서도.
이하, 첨부된 도면을 참조하여 본 발명이 일 실시예에 대하여 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 파일의 중복 제거 환경을 도시하고 있다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 파일의 중복 제거 환경은 원본 파일로부터 분할되는 파일블록들에 대한 중복 제거를 실시하는 파일처리장치(100)를 포함하는 구성을 갖는다.
여기서, 파일블록은 원본 파일로부터 예컨대, 4KB크기로 분할되어 스토리지에 저장되는 각 블록을 일컫는 것으로서, 중복 제거가 이루어지는 단위로 이해될 수 있다.
이처럼, 원본 파일을 파일블록으로 분할하여 스토리지에 저장되는 경우, 동일한 파일블록임에도 불구하고 스토리지에 중복되어 저장되는 경우가 빈번하게 발생할 수 있다.
만약 중복된 파일블록에 대한 제거가 이루어질 수 있다면 스토리지의 저장되는 파일블록의 개수를 최소화할 수 있으며, 이를 통해, 파일블록과 관련된 입출력 처리 횟수가 감소되어 스토리지의 효율적인 활용이 가능해지게 된다.
이와 관련하여, 파일블록에 대한 중복 제거는 해시함수를 이용해 파일블록의 중복 여부를 확인하고, 이에 관한 메타데이터를 기록하는 형태로 이루어질 수 있다.
이러한, 메타데이터는, 하드디스크드라이브(HDD, Hard Disk Drive)에 직접 기록될 수 있는 데, 이처럼 메타데이터가 하드디스크드라이브에 기록되는 경우에는, 메타데이터와 관련된 발생되는 무작위 입출력 동작으로 인해 하드디스크드라이브의 성능이 저하될 수 있다.
여기서, 하드디스크드라이브의 성능 저하는, 자기 드럼 방식으로서 매커니컬한 구성 요소가 포함되는 하드디스크드라이브의 입출력 처리 특성에 기인한다.
대안으로, 하드디스크드라이브보다 입출력 처리 속도가 향상된 SSD(Solid State Drive)를 메타데이터의 기록 장소로 활용하는 방안이 제안되었으나, SSD 역시 높은 성능에도 불구하고, 메타데이터와 관련된 무작위 입출력 동작으로 인해 성능 저하는 물론 그 수명까지 단축되는 현상이 발생하고 있다.
이에, 본 발명의 일 실시예에서는, 파일의 중복 제거 시 생성되는 메타데이터와 관련된 무작위 입출력(Random I/O) 처리 동작으로 인해 스토리지의 성능이 저하되는 것을 방지하기 위한 방안을 제안하고자 하며, 이하에서는 이하에서는 이를 구현하기 위한 파일처리장치(100)의 구성에 대해 구체적으로 설명하기로 한다.
이와 관련하여, 도 2에는 본 발명의 일 실시예에 따른 파일처리장치(100)의 구성을 설명하기 위한 블록도가 도시되고 있다.
도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 파일처리장치(100)는 파일블록에 대한 중복 여부를 판별하는 판별부(110), 파일블록의 중복 제거와 관련된 동작을 처리하는 처리부(120), 및 메타데이터의 기록 동작을 제어하는 제어부(130)를 포함하는 구성을 가질 수 있다.
한편, 본 발명의 일 실시예에 따른 파일처리장치(100)에서는 파일블록의 중복 제거와 관련하여, 각각의 입출력 처리 특성을 가지는 제1스토리지(10), 제2스토리지(20), 및 제3스토리지(30)를 채택하게 된다.
여기서, 제1스토리지(10)는 무작위 입출력 처리 속도, 및 순차적(Sequential) 입출력 처리 속도 각각이 하드디스크드라이보다 설정치 이상인 저장장치를 일컫는 것으로서, 예컨대, NAND플래시 또는 DRAM 등 초고속 반도체 스토리지를 저장 매체로 활용한 SSD(Solid State Drive)가 해당될 수 있다.
이러한, 제1스토리지(10)는 본 발명의 일 실시예에서 파일블록을 저장하기 위한 용도로 활용된다.
또한, 제2스토리지(20)는 무작위 입출력 처리 속도 및 순차적 입출력 처리 속도가 설정치 이상인 저장장치를 일컫는 것으로, 예컨대, 컴퓨터의 주기억장치, 응용 프로그램의 일시적 로딩(loading), 데이터의 일시적 저장 등에 활용되는 RAM(Random Access Memory)가 해당될 수 있다.
이러한, 제2스토리지(20)는 본 발명의 일 실시예에서 파일블록과 관련된 메타데이터를 기록하기 위한 용도로 활용된다.
그리고, 제3스토리지(30)는 순차적 입출력 처리 속도가 설정치 이상인 저장장치를 일컫는 것으로서, 예컨대, 앞서 언급되었던 하드디스크드라이브가 해당될 수 있다.
이러한, 제3스토리지(20)는 본 발명의 일 실시예에서 제2스토리지(20)와 마찬가지로 파일블록과 관련된 메타데이터를 기록하기 위한 용도로 활용된다.
이상의 판별부(110), 처리부(120), 및 제어부(130)를 포함하는 파일처리장치(100)의 전체 구성 내지는 적어도 일부의 구성은 소프트웨어 모듈 또는 하드웨어 모듈 형태로 구현되거나, 내지는 소프트웨어 모듈과 하드웨어 모듈이 조합된 형태로도 구현될 수 있다.
결국, 본 발명의 일 실시예에 따른 파일처리장치(100)는 위 구성을 통해 파일블록의 중복 제거 시 생성되는 메타데이터와 관련된 무작위 입출력(Random I/O) 처리 동작으로 인해 스토리지의 성능이 저하되는 것을 방지하게 되는 데, 이하에서는 이를 구현하기 위한 파일처리장치(100) 내 각 구성에 대해 구체적으로 설명하기로 한다.
판별부(110)는 파일블록의 중복 여부를 판별하는 기능을 수행한다.
보다 구체적으로, 판별부(110)는 원본 파일로부터 분할된 파일블록에 대한 쓰기명령이 발생하는 경우, 해당 파일블록이 제1스토리지(10) 내에 존재하는지 여부를 판별하게 된다.
이때, 판별부(110)는 해시함수를 통해 파일블록에 대한 키 값을 생성하고, 생성된 키 값과 동일한 키 값을 갖는 파일블록이 제1스토리지(10) 내에 이미 존재하는지 여부를 판별할 수 있다.
여기서, 해시함수를 통해 생성되는 키 값은, 예컨대, 20byte의 크기를 가질 수 있는 데, 이러한 20byte의 크기는 키 값 간의 충돌 가능성을 최소화할 수 있다.
처리부(120)는 파일블록의 중복 제거와 관련된 동작을 처리하는 기능을 수행한다.
보다 구체적으로, 처리부(120)는 제1스토리지(10) 내에 파일블록이 존재하는지 여부에 대한 판별 결과를 기초로 파일블록의 중복 제거와 관련된 동작을 처리하게 된다.
이때, 처리부(120)는 제1스토리지(10) 내에 파일블록이 존재하는지 여부에 대한 판별 결과, 동일한 파일블록이 존재하지 않는 것으로 판별되는 경우, 해당 파일블록을 제1스토리지(10)에 저장하고, 파일블록과 관련된 메타데이터를 제2스토리지(20)에 기록하게 된다.
여기서, 메타데이터는 해당 파일블록에 대한 읽기명령이 처리되는 경우에 참조되는 데이터로서, 예컨대, 도 3에 도시된 바와 같이 파일블록의 키 값과, 파일블록이 저장되는 제1스토리지(10)의 물리적 주소를 매핑시키는 키 테이블과, 제1스토리지(10)의 물리적 주소와 논리적 위치를 매핑시키는 위치 테이블이 포함될 수 있다.
이러한, 메타데이터의 경우 무작위(Random) 시점에 제1스토리지(10)에 파일블록에 대한 읽기명령이 처리되는 경우마다 참조될 수 있다.
이와 관련하여 만약, 파일블록(10)이 저장되는 제1스토리지(10)에 메타데이터가 함께 기록되는 경우를 가정한다면, 제1스토리지(10)에서는 메타데이터와 관련된 무작위 입출력(Random I/O) 처리 동작이 많아지게 되어 제1스토리지(10)의 성능이 저하되는 현상을 예상할 수 있다.
이에, 처리부(120)는 제1스토리지(10)에 파일블록을 저장하는 것과 관련하여, 메타데이터가 생성되는 경우, 해당 메타데이터를 제1스토리지(10)와는 별도의 저장장치로서 무작위 입출력 처리 속도 및 순차적 입출력 처리 속도가 설정치 이상인 제2스토리지(20)에 저장함으로써, 메타데이터와 관련된 입출력 처리 동작으로 인해 제1스토리지(10)의 성능이 저하되는 것을 방지하게 된다.
한편, 처리부(120)는 제1스토리지(10) 내에 파일블록이 존재하는지 여부에 대한 판별 결과, 동일한 파일블록이 존재하는 것으로 판별되는 경우, 해당 파일블록과 관련하여 제2스토리지(20)에 이미 기록되어 있는 메타데이터를 갱신 처리하게 된다.
여기서, 갱신 처리란 파일블록으로부터 원본 파일을 복구하는 것과 관련된 동작으로서, 파일블록이 분할되었던 원본 파일에 대한 정보를 메타데이터에 명시하는 동작으로 이해될 수 있으며, 이처럼 파일블록이 중복되는 경우에는 적어도 2 이상의 원본 파일 각각에 대한 정보가 하나의 메타데이터에 함께 명시될 수 있음을 예상할 수 있다.
제어부(130)는 메타데이터의 기록 동작을 제어하는 기능을 수행한다.
보다 구체적으로, 제어부(130)는 메타데이터가 제2스토리지(20)에 기록되거나 갱신되는 경우, 처리부(120)로 하여금 제2스토리지(20)에 기록된 메타데이터를 제3스토리지(30) 내 일정영역에 동일하게 기록할 수 있도록 제어하게 된다.
이때, 제어부(130)는 순차적(Sequential) 쓰기명령에 따라서 제2스토리지(20)에 기록된 메타데이터가 제3스토리지(30) 내 일정영역에 동일하게 기록될 수 있도록 제어하게 되는 데, 이는 무작위 입출력 처리는 취약한 반면, 순차적 입출력 처리에 높은 성능을 보이는 제3스토리지(30)의 입출력 처리 특성에 기인한다.
참고로, 제2스토리지(20)의 경우, 예컨대, 컴퓨터의 주기억장치, 응용 프로그램의 일시적 로딩(loading), 데이터의 일시적 저장 등에 활용되는 RAM(Random Access Memory)이 해당될 수 있음을 언급한 바 있다.
이러한, 제2스토리지(20)의 경우, 휘발성 특성을 가지게 되며, 이로 인해 전원 오프(off) 등이 발생하는 경우, 저장되어 있던 메타데이터가 유실될 수 있다.
이에, 제어부(130)는 순차적(Sequential) 쓰기명령에 따라서 제2스토리지(20)에 기록된 메타데이터가 제3스토리지(30) 내 일정영역에 동일하게 기록(로깅)될 수 있도록 제어함으로써, 메타데이터의 유실로 인해 원본 파일을 복구할 수 없는 경우를 대비하게 된다.
일환으로, 제어부(130)는 특정 시점이 도래하는 경우, 처리부(120)로 하여금 제2스토리지(20)에 기록되어 있는 메타데이터를 제3스토리지(30) 내 일정 영역과는 별도의 타 영역으로 백업하여 항구적으로 보관할 수 있도록 하며, 기존 제3스토리지(30) 내 일정 영역에 기록되어 있는 메타데이터는 삭제 처리하도록 함으로써, 제3스토리지(30)의 일정 영역이 메타데이터를 로깅하기 위한 용도로 활용될 수 있도록 한다.
이와 관련하여, 메타데이터가 백업되는 특정 시점은, 예컨대, 제3스토리지(30) 내 일정 영역의 용량이 임계치를 초과하게 되는 시점, 및 제2스토리지(20)와 관련된 쓰기명령 및 읽기명령이 발생되지 않는 시점(유휴 상태) 등이 해당될 수 있으며, 이에 제한되는 것이 아닌, 제2스토리지(20)에 기록되는 메타데이터의 용량이 임계치를 초과하게 되는 시점 등과 같이 기타 다양한 시점으로 설정될 수 있음은 물론일 것이다.
이상에서 설명한 바와 같이, 본 발명의 일 실시예에 따른 파일처리장치(100)의 구성에 따르면, 제1스토리지(10), 제2스토리지(20), 및 제3스토리지(30) 각각의 입출력 처리 특성을 반영하여 제1스토리지(10)에는 파일블록을 저장하고, 그와 관련된 메타데이터는 제1스토리지(10)와는 별도의 제2스토리지(20)에 기록하며, 순차적 쓰기명령을 통해 제2스토리지(20)에 기록된 메타데이터가 제3스토리지(30)에 동일하게 기록되도록 함으로써, 파일의 중복 제거 시 생성되는 메타데이터와 관련된 무작위 입출력(Random I/O) 처리 동작으로 인해 스토리지의 성능이 저하되는 것을 방지할 수 있다.
이상, 본 발명의 일 실시예에 따른 파일처리장치(100)의 구성에 대한 설명을 마치고, 이하에서는 도 4를 참조하여 파일처리장치(100)에서의 동작 흐름에 대한 설명을 이어 가기로 한다.
여기서, 도 5는 본 발명의 일 실시예에 따른 파일처리장치(100)에서의 동작 흐름과 관련된 순서도이다.
먼저, 단계 'S110-S130'에 따라, 판별부(110)는 원본 파일로부터 분할된 파일블록에 대한 쓰기명령이 발생하는 경우, 해당 파일블록이 제1스토리지(10) 내에 존재하는지 여부를 판별한다.
이때, 판별부(110)는 해시함수를 통해 파일블록에 대한 키 값을 생성하고, 생성된 키 값과 동일한 키 값을 갖는 파일블록이 제1스토리지(10) 내에 이미 존재하는지 여부를 판별할 수 있다.
여기서, 해시함수를 통해 생성되는 키 값은, 예컨대, 20byte의 크기를 가질 수 있는 데, 이러한 20byte의 크기는 키 값 간의 충돌 가능성을 최소화할 수 있다.
이어서, 단계 'S140-S160'에 따라, 처리부(120)는 제1스토리지(10) 내에 파일블록이 존재하는지 여부에 대한 판별 결과, 동일한 파일블록이 존재하지 않는 것으로 판별되는 경우, 해당 파일블록을 제1스토리지(10)에 저장하고, 파일블록과 관련된 메타데이터를 제2스토리지(20)에 기록한다.
여기서, 메타데이터는 해당 파일블록에 대한 읽기명령이 처리되는 경우에 참조되는 데이터로서, 예컨대, 도 3에 도시된 바와 같이 파일블록의 키 값과, 파일블록이 저장되는 제1스토리지(10)의 물리적 주소를 매핑시키는 키 테이블과, 제1스토리지(10)의 물리적 주소와 논리적 위치를 매핑시키는 위치 테이블이 포함될 수 있다.
이러한, 메타데이터의 경우 무작위(Random) 시점에 제1스토리지(10)에 파일블록에 대한 읽기명령이 처리되는 경우마다 참조될 수 있다.
이와 관련하여 만약, 파일블록(10)이 저장되는 제1스토리지(10)에 메타데이터가 함께 기록되는 경우를 가정한다면, 제1스토리지(10)에서는 메타데이터와 관련된 무작위 입출력(Random I/O) 처리 동작이 많아지게 되어 제1스토리지(10)의 성능이 저하되는 현상을 예상할 수 있다.
이에, 처리부(120)는 제1스토리지(10)에 파일블록을 저장하는 것과 관련하여, 메타데이터가 생성되는 경우, 해당 메타데이터를 제1스토리지(10)와는 별도의 저장장치로서 무작위 입출력 처리 속도 및 순차적 입출력 처리 속도가 설정치 이상인 제2스토리지(20)에 저장함으로써, 메타데이터와 관련된 입출력 처리 동작으로 인해 제1스토리지(10)의 성능이 저하되는 것을 방지하게 된다.
한편, 단계 'S140'및 'S170'에 따라 처리부(120)는 제1스토리지(10) 내에 파일블록이 존재하는지 여부에 대한 판별 결과, 동일한 파일블록이 존재하는 것으로 판별되는 경우, 해당 파일블록과 관련하여 제2스토리지(20)에 이미 기록되어 있는 메타데이터를 갱신 처리한다.
여기서, 갱신 처리란 파일블록으로부터 원본 파일을 복구하는 것과 관련된 동작으로서, 파일블록이 분할되었던 원본 파일에 대한 정보를 메타데이터에 명시하는 동작으로 이해될 수 있으며, 이처럼 파일블록이 중복되는 경우에는 적어도 2 이상의 원본 파일 각각에 대한 정보가 하나의 메타데이터에 함께 명시될 수 있음을 예상할 수 있다.
나아가, 단계 'S180'에 따라 제어부(130)는 메타데이터가 제2스토리지(20)에 기록되거나 갱신되는 경우, 처리부(120)로 하여금 제2스토리지(20)에 기록된 메타데이터를 제3스토리지(30) 내 일정영역에 동일하게 기록할 수 있도록 제어한다.
이때, 제어부(130)는 순차적(Sequential) 쓰기명령에 따라서 제2스토리지(20)에 기록된 메타데이터가 제3스토리지(30) 내 일정영역에 동일하게 기록될 수 있도록 제어하게 되는 데, 이는 무작위 입출력 처리는 취약한 반면, 순차적 입출력 처리에 높은 성능을 보이는 제3스토리지(30)의 입출력 처리 특성에 기인한다.
참고로, 제2스토리지(20)의 경우, 예컨대, 컴퓨터의 주기억장치, 응용 프로그램의 일시적 로딩(loading), 데이터의 일시적 저장 등에 활용되는 RAM(Random Access Memory)이 해당될 수 있음을 언급한 바 있다.
이러한, 제2스토리지(20)의 경우, 휘발성 특성을 가지게 되며, 이로 인해 전원 오프(off) 등이 발생하는 경우, 저장되어 있던 메타데이터가 유실될 수 있다.
이에, 제어부(130)는 순차적(Sequential) 쓰기명령에 따라서 제2스토리지(20)에 기록된 메타데이터가 제3스토리지(30) 내 일정영역에 동일하게 기록(로깅)될 수 있도록 제어함으로써, 메타데이터의 유실로 인해 원본 파일을 복구할 수 없는 경우를 대비하게 된다.
이후, 단계 'S190' 및 'S200'에 따라 제어부(130)는 특정 시점이 도래하는 경우, 처리부(120)로 하여금 제2스토리지(20)에 기록되어 있는 메타데이터를 제3스토리지(30) 내 일정 영역과는 별도의 타 영역으로 백업하여 항구적으로 보관할 수 있도록 하며, 기존 제3스토리지(30) 내 일정 영역에 기록되어 있는 메타데이터는 삭제 처리하도록 함으로써, 제3스토리지(30)의 일정 영역이 메타데이터를 로깅하기 위한 용도로 활용될 수 있도록 한다.
이와 관련하여, 메타데이터가 백업되는 특정 시점은, 예컨대, 제3스토리지(30) 내 일정 영역의 용량이 임계치를 초과하게 되는 시점, 및 제2스토리지(20)와 관련된 쓰기명령 및 읽기명령이 발생되지 않는 시점(유휴 상태) 등이 해당될 수 있으며, 이에 제한되는 것이 아닌, 제2스토리지(20)에 기록되는 메타데이터의 용량이 임계치를 초과하게 되는 시점 등과 같이 기타 다양한 시점으로 설정될 수 있음은 물론일 것이다.
이상에서 설명한 바와 같이, 본 발명의 일 실시예에 따른 파일처리장치(100)의 동작 방법에 따르면, 제1스토리지(10), 제2스토리지(20), 및 제3스토리지(30) 각각의 입출력 처리 특성을 반영하여 제1스토리지(10)에는 파일블록을 저장하고, 그와 관련된 메타데이터는 제1스토리지(10)와는 별도의 제2스토리지(20)에 기록하며, 순차적 쓰기명령을 통해 제2스토리지(20)에 기록된 메타데이터가 제3스토리지(30)에 동일하게 기록되도록 함으로써, 파일의 중복 제거 시 생성되는 메타데이터와 관련된 무작위 입출력(Random I/O) 처리 동작으로 인해 스토리지의 성능이 저하되는 것을 방지할 수 있다.
한편, 여기에 제시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 스토리지 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.
본 발명에 따른 파일처리장치 및 그 동작 방법에 따르면, 파일블록의 중복 제거 시 생성되는 메타데이터와 관련된 무작위 입출력(Random I/O) 처리 동작으로 인해 스토리지의 성능이 저하되는 것을 방지할 수 있다는 점에서, 기존 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 장치의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.
100: 파일처리장치
110: 판별부 120: 처리부
130: 제어부

Claims (10)

  1. 파일블록에 대한 쓰기명령이 발생하는 경우, 상기 파일블록이 제1스토리지 내에 존재하는지 여부를 판별하는 판별부;
    상기 파일블록이 상기 제1스토리지 내에 존재하지 않는 것으로 판별되는 경우, 상기 파일블록을 상기 제1스토리지에 저장하며, 무작위(Random) 시점에 상기 파일블록에 대한 읽기명령이 처리되는 경우마다 참조되는 메타데이터를 제2스토리지에 기록하는 처리부; 및
    상기 메타데이터가 상기 제2스토리지에 기록되는 경우, 순차적(Sequential) 쓰기명령에 따라 상기 제2스토리지에 기록된 메타데이터가 제3스토리지 내 일정영역에 동일하게 기록될 수 있도록 하는 제어부를 포함하는 것을 특징으로 하는 파일처리장치.
  2. 제 1 항에 있어서,
    상기 처리부는,
    상기 파일블록이 상기 제1스토리지 내에 존재하는 것으로 판별되는 경우, 상기 파일블록과 관련하여 상기 제2스토리지에 기록되어 있는 메타데이터를 상기 파일블록으로부터 원본 파일을 복구하는 것과 관련하여 갱신 처리하는 것을 특징으로 하는 파일처리장치.
  3. 제 1 항에 있어서,
    상기 제2스토리지에 기록되는 메타데이터는,
    특정 시점에 상기 제3스토리지 내 일정 영역과는 별도의 타 영역으로 백업되며, 상기 제3스토리지 내 일정 영역에 기록되어 있는 메타데이터는 상기 타 영역으로의 백업이 이루어지는 것과 관련된 시점에 삭제 처리되는 것을 특징으로 하는 파일처리장치.
  4. 제 3 항에 있어서,
    상기 특정 시점은,
    상기 제3스토리지 내 일정 영역의 용량이 임계치를 초과하게 되는 시점, 및 상기 제2스토리지와 관련된 쓰기명령 및 읽기명령이 발생되지 않는 시점 중 적어도 하나를 포함하는 것을 특징으로 하는 파일처리장치.
  5. 제 1 항에 있어서,
    상기 제1스토리지는,
    무작위 입출력 처리 속도, 및 순차적 입출력 처리 속도 각각이 상기 제3스토리지보다 설정치 이상인 저장장치이며,
    상기 제2스토리지는,
    상기 무작위 입출력 처리 속도 및 상기 순차적 입출력 처리 속도가 설정치 이상인 저장장치이며,
    상기 제3스토리지는,
    상기 순차적 입출력 처리 속도가 설정치 이상인 저장장치인 것을 특징으로 하는 파일처리장치.
  6. 파일블록에 대한 쓰기명령이 발생하는 경우, 상기 파일블록이 제1스토리지 내에 존재하는지 여부를 판별하는 판별단계;
    상기 파일블록이 상기 제1스토리지 내에 존재하지 않는 것으로 판별되는 경우, 상기 파일블록을 상기 제1스토리지에 저장하며, 무작위(Random) 시점에 상기 파일블록에 대한 읽기명령이 처리되는 경우마다 참조되는 메타데이터를 제2스토리지에 기록하는 처리단계; 및
    상기 메타데이터가 상기 제2스토리지에 기록되는 경우, 순차적(Sequential) 쓰기명령에 따라 상기 제2스토리지에 기록된 메타데이터가 제3스토리지 내 일정영역에 동일하게 기록될 수 있도록 하는 제어단계를 포함하는 것을 특징으로 하는 파일처리장치의 동작 방법.
  7. 제 6 항에 있어서,
    상기 처리단계는,
    상기 파일블록이 상기 제1스토리지 내에 존재하는 것으로 판별되는 경우, 상기 파일블록과 관련하여 상기 제2스토리지에 기록되어 있는 메타데이터를 상기 파일블록으로부터 원본 파일을 복구하는 것과 관련하여 갱신 처리하는 것을 특징으로 하는 파일처리장치의 동작 방법.
  8. 제 6 항에 있어서,
    상기 제2스토리지에 기록되는 메타데이터는,
    특정 시점에 상기 제3스토리지 내 일정 영역과는 별도의 타 영역으로 백업되며, 상기 제3스토리지 내 일정 영역에 기록되어 있는 메타데이터는 상기 타 영역으로의 백업이 이루어지는 것과 관련된 시점에 삭제 처리되는 것을 특징으로 하는 파일처리장치의 동작 방법.
  9. 제 8 항에 있어서,
    상기 특정 시점은,
    상기 제3스토리지 내 일정 영역의 용량이 임계치를 초과하게 되는 시점, 및 상기 제2스토리지와 관련된 쓰기명령 및 읽기명령이 발생되지 않는 시점 중 적어도 하나를 포함하는 것을 특징으로 하는 파일처리장치의 동작 방법.
  10. 제 6 항에 있어서,
    상기 제1스토리지는,
    무작위 입출력 처리 속도, 및 순차적 입출력 처리 속도 각각이 상기 제3스토리지보다 설정치 이상인 저장장치이며,
    상기 제2스토리지는,
    상기 무작위 입출력 처리 속도 및 상기 순차적 입출력 처리 속도가 설정치 이상인 저장장치이며,
    상기 제3스토리지는,
    상기 순차적 입출력 처리 속도가 설정치 이상인 저장장치인 것을 특징으로 하는 파일블록관리장치의 동작 방법.
KR1020160038395A 2016-03-30 2016-03-30 파일처리장치 및 그 동작 방법 KR101715039B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160038395A KR101715039B1 (ko) 2016-03-30 2016-03-30 파일처리장치 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160038395A KR101715039B1 (ko) 2016-03-30 2016-03-30 파일처리장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR101715039B1 true KR101715039B1 (ko) 2017-03-13

Family

ID=58412019

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160038395A KR101715039B1 (ko) 2016-03-30 2016-03-30 파일처리장치 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR101715039B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102365970B1 (ko) * 2021-08-30 2022-02-23 주식회사 펠릭스 아카이브 관리 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130035561A (ko) * 2011-09-30 2013-04-09 인하대학교 산학협력단 Ssd 저장장치의 마모도 감소를 위한 ssd 기반 서버급 저장장치의 복합적 데이터 중복제거 방법
KR20150052402A (ko) * 2013-11-04 2015-05-14 인하대학교 산학협력단 Ssd 기반 raid 스토리지에서 데이터 및 패리티 디스크의 복합적 중복제거 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130035561A (ko) * 2011-09-30 2013-04-09 인하대학교 산학협력단 Ssd 저장장치의 마모도 감소를 위한 ssd 기반 서버급 저장장치의 복합적 데이터 중복제거 방법
KR20150052402A (ko) * 2013-11-04 2015-05-14 인하대학교 산학협력단 Ssd 기반 raid 스토리지에서 데이터 및 패리티 디스크의 복합적 중복제거 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102365970B1 (ko) * 2021-08-30 2022-02-23 주식회사 펠릭스 아카이브 관리 시스템

Similar Documents

Publication Publication Date Title
US10303363B2 (en) System and method for data storage using log-structured merge trees
US9690666B1 (en) Incremental backup operations in a transactional file system
US9317218B1 (en) Memory efficient sanitization of a deduplicated storage system using a perfect hash function
JP6341307B1 (ja) 情報処理装置
US6564307B1 (en) Method, system, and program for logically erasing data
US9740422B1 (en) Version-based deduplication of incremental forever type backup
WO2018153251A1 (zh) 一种快照的处理方法及分布式块存储系统
US10176183B1 (en) Method and apparatus for reducing overheads of primary storage while transferring modified data
CN103034592B (zh) 数据处理方法和装置
US8478933B2 (en) Systems and methods for performing deduplicated data processing on tape
US10649682B1 (en) Focused sanitization process for deduplicated storage systems
US10282126B2 (en) Information processing apparatus and method for deduplication
US20190042134A1 (en) Storage control apparatus and deduplication method
US6636954B2 (en) Method and apparatus for inter-disk copy processing, and a computer product
US8655841B1 (en) Selection of one of several available incremental modification detection techniques for use in incremental backups
WO2013046342A1 (ja) 仮想テープ装置及び仮想テープ装置の制御方法
KR101715039B1 (ko) 파일처리장치 및 그 동작 방법
US9009430B2 (en) Restoration of data from a backup storage volume
US20150127891A1 (en) Write performance preservation with snapshots
CN114780489B (zh) 一种实现分布式块存储底层gc的方法及装置
KR100987251B1 (ko) 완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 플래시 메모리 관리 방법및 장치
JP4841408B2 (ja) ボリューム移行プログラム及び方法
KR101826176B1 (ko) 스냅샷 방식의 이미지 테이블을 이용한 백업데이터 제어방법
US20220391118A1 (en) Journals for data cloning operations
US11550493B2 (en) Container index including a tracking data structure

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant