KR101473837B1 - Ssd 기반 스토리지 시스템에서 입출력 성능 향상을 위한 ssd 스토리지의 무효데이터 재활용 방법 - Google Patents

Ssd 기반 스토리지 시스템에서 입출력 성능 향상을 위한 ssd 스토리지의 무효데이터 재활용 방법 Download PDF

Info

Publication number
KR101473837B1
KR101473837B1 KR1020130050105A KR20130050105A KR101473837B1 KR 101473837 B1 KR101473837 B1 KR 101473837B1 KR 1020130050105 A KR1020130050105 A KR 1020130050105A KR 20130050105 A KR20130050105 A KR 20130050105A KR 101473837 B1 KR101473837 B1 KR 101473837B1
Authority
KR
South Korea
Prior art keywords
data
ssd
invalid data
invalid
input data
Prior art date
Application number
KR1020130050105A
Other languages
English (en)
Other versions
KR20140131457A (ko
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 KR1020130050105A priority Critical patent/KR101473837B1/ko
Publication of KR20140131457A publication Critical patent/KR20140131457A/ko
Application granted granted Critical
Publication of KR101473837B1 publication Critical patent/KR101473837B1/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
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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/1727Details of free space management performed by the file system
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

운영체제의 파일 시스템을 통해 SSD 디스크 장치에 입력 데이터를 저장할 때, 상기 SSD 디스크 장치에 저장된 무효 데이터를 재활용하는 SSD 스토리지의 무효데이터 재활용 방법에 관한 것으로서, (a) 유효데이터가 갱신되거나 삭제되어 무효데이터가 되면 상기 무효데이터를 해시테이블에 저장하는 단계; (d) 상기 입력데이터의 저장이 요청되면, 상기 해시테이블에 상기 입력데이터와 중복되는 무효데이터가 있는지를 검색하는 단계; 및, (e) 중복되는 무효데이터가 있으면, 중복된 무효데이터를 유효데이터로 재활용하는 단계를 포함하는 구성을 마련한다.
상기와 같은 중복제거 및 재활용 시스템에 의하여, 무효데이터를 재활용함으로써 가비지컬렉션의 수행 빈도를 줄이고 쓰기 및 삭제 횟수를 감소시켜서 SSD의 성능을 향상시킬 수 있다.

Description

SSD 기반 스토리지 시스템에서 입출력 성능 향상을 위한 SSD 스토리지의 무효데이터 재활용 방법 { An Invalid Data Recycling Method for Improving I/O Performance in SSD-based Storage System }
본 발명은 무효데이터와 입력데이터의 중복성 검사를 통하여 무효데이터를 재활용하는 SSD 스토리지의 무효데이터 재활용 방법에 관한 것이다.
SSD는 다수의 NAND 플래시 메모리가 병렬로 결합하여 구성된 스토리지 시스템이다. NAND 플래시 메모리 기반의 SSD의 출현으로 기존의 컴퓨터 스토리지 시스템에 가시적인 변화가 발생하였다. SSD는 회전식 디스크인 HDD보다 데이터 전송속도와 랜덤한 입출력 측면에서 성능이 향상되었고 회전식 모터를 미사용 함으로써 소비전력을 낮출 수 있었기 때문이다[비특허문헌 1]. HDD와 비교해서 빠른 입출력 속도, 낮은 소비전력, 가벼운 무게와 강한 내구성으로 인하여 SSD는 최근에 서버급 스토리지 시스템, 데스크탑 컴퓨터, 노트북 컴퓨터에서 스토리지 장치로 활용되어지고 있다[비특허문헌 2].
하지만 SSD는 NAND 플래시 메모리를 기반으로 하기 때문에 NAND 플래시 메모리가 가지고 있는 단점을 가지고 있다[비특허문헌 3]. 그 중 하나가 HDD와 다르게 SSD는 제자리 덮어쓰기가 안된다는 점이다. 따라서 쓰기 연산은 빈 공간에서만 이루어질 수 있고 호스트 시스템의 요청으로 데이터가 업데이트 되거나 삭제되면 기존의 데이터는 유효데이터에서 무효데이터로 전환된다. 이렇게 생성된 무효데이터는 가비지컬렉션이 일어나서 빈 공간이 되기 전까지 특별한 기능 수행없이 SSD의 공간만 차지하게 된다[비특허문헌 4].
따라서 전체 SSD 공간에서 무효데이터가 차지하는 비중이 높다면 공간 활용률이 떨어지게 될 것이다. 이 무효데이터를 소거하여 빈 공간으로 만들기 위해서는 가비지컬렉션을 수행해야한다. 하지만 가비지컬렉션은 해당 블록을 소거하기 전에 블록 내의 유효페이지를 다른 블록으로 복사해야하고 NAND 플래시 메모리의 특성상 소거연산이 읽기, 쓰기 연산보다 시간이 오래 걸리기 때문에 빈번한 가비지컬렉션은 SSD의 I/O 성능을 저하시킨다[비특허문헌 5]. 따라서 무효데이터의 양을 줄여서 가비지컬렉션의 발생을 줄인다면 SSD의 I/O 성능향상에 도움이 될 것이다.
NAND 플래시 메모리의 또 다른 단점은 각각의 셀마다 쓰기 및 삭제 횟수에 제한이 있다는 점이다. SLC(Single Level Cell)는 약 10만번, MLC(Multi Level Cell)는 약 1만번의 제한이 있고 제한된 횟수를 초과하게 되면 해당 셀은 정상적인 동작이 이루어지지 않게 된다. 따라서 데이터가 중복될 경우 중복된 데이터를 저장하지 않는다면 SSD의 쓰기 및 삭제 횟수를 줄일 수 있을 것이다.
종래의 SSD의 중복제거 방법은 입력되는 데이터와 저장되어 있는 데이터를 중복 검사하여 새로운 입력데이터만 SSD에 기록하는 방식이다[비특허문헌 6]. 중복제거 기법을 사용함으로써 SSD의 쓰기 및 삭제 횟수를 줄여서 마모도 감소 효과와 SSD의 입출력 성능을 개선할 수 있다.
다음으로, 종래 기술에 의한 SSD의 특성 및 가비지컬렉션의 발생에 대하여 보다 구체적으로 설명한다.
SSD는 다수의 NAND 플래시 메모리로 구성되어 있으며 NAND 플래시 메모리의 내부는 계층 구조로 되어있다. 하나의 NAND 플래시 메모리는 여러 개의 다이(Die)를 가지고 있고 다이 내부에 플레인(Plain)이 존재하며 플레인 내부에 블록이 있고 블록은 페이지로 구성되어 있다.
NAND 플래시 메모리는 out-of-place 방식으로 쓰기를 하므로 덮어쓰기가 안되고 빈 공간에 데이터를 기록해야한다[비특허문헌 5]. 이러한 특성으로 인하여 호스트 시스템에서 업데이트나 삭제요청이 발생하면 유효페이지가 무효페이지로 전환된다. 무효페이지는 실제로 시스템에서 사용되지 않기 때문에 저장공간의 낭비가 된다.
또한 NAND 플래시 메모리에서 각 연산마다 기본 단위가 다른데, 읽기/쓰기 연산은 페이지 단위로 이루어지며 삭제 연산은 블록 단위로 이루어진다. 따라서 무효페이지를 삭제하여 빈 공간을 확보하려면 같은 블록내의 유효페이지를 다른 블록으로 복사하고 무효페이지가 있는 블록 전체를 소거해야한다. 이런 과정을 가비지컬렉션이라 하는데 데이터의 복사와 소거가 이루어지므로 시간 비용이 많이 발생하는 연산이다. 그래서 많은 수의 무효페이지로 인하여 빈번한 가비지컬렉션이 발생한다면 SSD의 I/O 성능이 떨어질 것이고 마모도가 감소하여 SSD의 수명이 줄어드는 중요한 문제가 된다[비특허문헌 5].
다음으로, 종래 기술에 의한 중복제거 방법에 대하여 보다 구체적으로 설명한다.
중복제거 방법은 중복된 데이터를 제거하여 저장될 데이터의 용량을 줄일 수 있어서, 특히 많은 양의 데이터를 다루는 서버 및 백업 스토리지에서 비용이 크게 절감되기 때문에 많이 사용된다[비특허문헌 6].
중복제거 방법은 입력된 데이터를 청킹(Chunking)하여 파일을 청크로 나눈다. 청크의 단위는 고정된 단위이거나 크기가 변화하는 단위가 될 수 있다. 그리고 각각의 청크를 비교하기 위한 고유한 값을 만들기 위하여 해쉬함수를 사용하여 암호화한다. 해쉬함수 중에 SHA-1방식은 임의 크기의 데이터에 대해서 20Byte의 일정한 해쉬값을 생성한다[비특허문헌 7]. 이 해쉬값을 해쉬테이블에 저장하고 입력데이터의 해쉬값과 비교하여 중복검사를 실행하게 된다. 그리고 중복되지 않는 새로운 데이터만 스토리지 공간에 저장함으로써 공간을 효율적으로 사용할 수 있다.
SSD에서 종래의 중복제거 방법은 중복된 데이터를 저장하지 않음으로써 쓰기 횟수를 최소화할 수 있고 따라서 마모도를 감소시키게 된다. 또한 중복제거를 통해 쓰기 연산의 데이터 양이 줄어들어서 중복제거를 하지 않을 때에 비해 I/O 속도가 향상된다.
하지만 SSD의 특성상 존재하는 무효데이터에 대해서는 중복검사를 하지 않았기 때문에 무효데이터로 인한 문제에 대해서는 직접적인 성능 향상을 위한 방법이 없다. 따라서 무효데이터를 재활용함으로써 SSD의 성능을 향상시키는 방법이 필요하다.
[비특허문헌 1] Nitin Agrawal, Vijayan Prabhakan, Ted Wobber, John D. Davis, Mark Manasse and Rina Panigrahy."Design Tradeoffs for SSD Performance"USENIX’08 ATC, 57~70p, 2008. [비특허문헌 2] Guanying Wu, Xubin He and Ben Eckart."An Adaptive Write Buffer Management Scheme for Flash-Based SSDs"ACM Transactions on Storage, Vol.8, No.1, 1~24p, 2012. [비특허문헌 3] 양유석, 김덕환."SSD의 성능향상을 위한 접근빈도에 따른 데이터 할당 및 교체기법"전자공학회, 제48권, CI편 제5호, 74~82p, 2011. [비특허문헌 4] Liangbo Li, Song-sun Shin, Yan Li, Sung-Ha Baek and Hae-Young Bae."A Garbage Collection Method for Flash Memory Based on Block-level Buffer Management Policy"Journal of Korea Multimedia Society, Vol.12, No.12, 1710~1717p, 2009. [비특허문헌 5] Junghee Lee, Youngjae Kim, Galen M. Shipman, Sarp Oral, Feiyi Wang and Jongman Kim."A Semi-Preemtive Garbage Collector for Solid State Drives"IEEE ISPASS, 12~21p, 2011. [비특허문헌 6] Dirk Meister, Andre Brinkmann."dedupv1: Improving Deduplication Throughput using Solid State Drives(SSD)"IEEE MSST, 1~6p, 2010. [비특허문헌 7] H.E. Michail, A.P. Kakarountas, A. Milidonis and C.E. Goutis."Efficient implementation of the keyed- hash message authentication code(HMAC) using the SHA-1 hash function"IEEE ICECS, 567~570p, 2004. [비특허문헌 8] J. Kim, S. Lee, P. Mehdi, D. Kim, "Recycling Invalid Data Method for Improving I/O Performance in SSD Storage System," KIISE KCC 2012, Vol.39, No.1(A), 230∼232p, 2012. [비특허문헌 9] F. Chen, T. Luo, X. Zhang, "CAFTL: A Content-Aware Flash Translation Layer Enhancing the Lifespan of Flash Memory based Solid State Drives," USENIX FAST'11, 2011.
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 무효데이터의 재활용 방법으로서, 유효데이터가 아닌 무효데이터와 입력데이터를 중복성 검사하여 무효데이터를 유효데이터로 전환하는 SSD 스토리지의 무효데이터 재활용 방법을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명은 운영체제의 파일 시스템을 통해 SSD 디스크 장치에 데이터(이하 입력 데이터)를 저장할 때, 상기 SSD 디스크 장치에 저장된 무효 데이터를 이용하여 상기 입력 데이터를 저장하는 SSD 스토리지의 무효데이터 재활용 방법에 관한 것으로서, (a) 유효데이터가 갱신되거나 삭제되어 무효데이터가 되면 상기 무효데이터를 해시테이블에 저장하는 단계; (d) 상기 입력데이터의 저장이 요청되면, 상기 해시테이블에 상기 입력데이터와 중복되는 무효데이터가 있는지를 검색하는 단계; 및, (e) 중복되는 무효데이터가 있으면, 중복된 무효데이터를 유효데이터로 재활용하는 단계를 포함하는 것을 특징으로 한다.
또, 본 발명은 SSD 스토리지의 무효데이터 재활용 방법에 있어서, 상기 방법은 상기 SSD 디스크 장치의 플래시 변환 계층에 설치되어 실행하는 것을 특징으로 한다.
또, 본 발명은 SSD 스토리지의 무효데이터 재활용 방법에 있어서, 상기 (e)단계에서, 중복되는 무효 데이터를 유효 데이터로 변경하고, 상기 입력 데이터의 참조를 변경된 유효 데이터의 참조로 정하여 재활용하는 것을 특징으로 한다.
또, 본 발명은 SSD 스토리지의 무효데이터 재활용 방법에 있어서, 상기 입력 데이터를 동일한 청크 단위로 나누어 중복 검사를 하는 것을 특징으로 한다.
또, 본 발명은 SSD 스토리지의 무효데이터 재활용 방법에 있어서, 상기 입력 데이터에 해시함수를 적용하여 핑거프린트를 생성하여 중복 검사를 하는 것을 특징으로 한다.
또, 본 발명은 SSD 스토리지의 무효데이터 재활용 방법에 있어서, 상기 방법은, 상기 입력데이터와 중복되는 무효데이터가 없는 경우, 빈 공간에 입력데이터를 기록하는 단계를 더 포함하는 것을 특징으로 한다.
상술한 바와 같이, 본 발명에 따른 SSD 스토리지의 무효데이터 재활용 방법에 의하면, 무효데이터의 재활용과 중복제거를 통하여 SSD의 마모도 감소와 가비지컬렉션의 빈도를 낮춰서 I/O 속도의 향상되는 효과가 얻어진다. 즉, 무효데이터를 재활용함으로써 가비지컬렉션의 수행 빈도를 줄이고 쓰기 및 삭제 횟수를 감소시켜서 SSD의 성능을 향상시킬 수 있는 효과가 얻어진다.
특히, 본 발명의 실험에 따르면, 본 발명은 무효데이터를 재활용함으로써, 무효데이터 재활용을 하지 않는 일반적인 경우에 비해서, 평균 5.8%의 I/O 속도 향상과 평균 10%의 쓰기 횟수 감소의 효과가 얻어진다.
도 1은 본 발명에 따른 SSD 스토리지의 재활용 방법을 실시하기 위한 전체 시스템 일례의 구성에 대한 블록도.
도 2는 본 발명의 제1 실시예에 따른 SSD 스토리지의 무효데이터 재활용 방법을 설명하는 흐름도.
도 3은 본 발명의 제1 실시예에 따른 입력 데이터의 처리과정을 설명하는 흐름도.
도 4는 본 발명의 제2 실시예에 따른 SSD 스토리지의 무효데이터 재활용 방법을 설명하는 흐름도.
도 5는 본 발명의 제2 실시예에 따른 입력 데이터의 처리과정을 설명하는 흐름도.
도 6은 본 발명의 제2 실시예에 따른 유효데이터 중복제거 및 무효데이터 재활용 과정을 설명하는 데이터 흐름도.
도 7은 본 발명의 제1 실시예에 대한 실험에 따른 입출력 속도 비교에 대한 그래프.
도 8은 본 발명의 제1 실시예에 대한 실험에 따른 쓰기 횟수 비교에 대한 그래프.
도 9는 본 발명의 제2 실시예에 대한 실험에 따른 실험 파라미터 설정값에 대한 표.
도 10은 본 발명의 제2 실시예에 대한 실험에 따른 가비지 컬렉션 경계값에 대한 중복률에 대한 그래프.
도 11은 본 발명의 제2 실시예에 대한 실험에 따른 쓰기 횟수 비교에 대한 그래프.
도 12는 본 발명의 제2 실시예에 대한 실험에 따른 가비지 컬렉션 횟수 비교에 대한 그래프.
도 13은 본 발명의 제2 실시예에 대한 실험에 따른 입출력 지연시간 비교에 대한 그래프.
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
먼저, 본 발명의 일실시예에 따른 SSD 스토리지의 무효데이터 재활용 방법을 실시하기 위한 전체 시스템의 구성에 대하여 도 1을 참조하여 설명한다.
본 발명에 따른 SSD 스토리지의 무효데이터 재활용 방법은 유효데이터와 무효데이터에 대해서 중복제거를 고려한다. 이때, 무효데이터는 SSD의 무효페이지(Invalid Page)에 저장되어 있는 데이터를 의미하고 유효데이터는 유효페이지(Valid Page)에 저장된 데이터를 의미한다.
즉, 본 발명에 따른 재활용 방법은 운영체제의 파일 시스템(20)을 통해 SSD 디스크 장치(30)에 데이터(이하 입력 데이터)를 저장할 때, SSD 디스크 장치(30)에 저장된 유효 데이터 및 무효 데이터를 이용하여 입력 데이터를 저장한다.
도 1에서 보는 바와 같이, 본 발명에 따른 재활용 방법은 컴퓨터 운영체제(10)에서 연동된 파일 시스템(20) 또는, SSD(Solid State Disk) 디스크 장치(30)에 구비된 플래시 변환 계층(FTL, Flash Transfer Layer)(31)에 설치되는 프로그램 시스템이다. 이와 같이 설치된 프로그램 시스템을 재활용 시스템(40)이라 부르기로 한다.
본 발명에 따른 SSD 스토리지의 무효데이터 재활용 방법은 SSD 디스크 장치(30)의 플래시 변환 계층(31)에 설치되어 무효데이터를 재활용한다. 무효데이터 재활용 기능(또는 과정)은 무효페이지가 유효페이지로 전환되는 과정을 거쳐야하기 때문에, 무효데이터 재활용 방법은 유효데이터의 중복제거 기능과 다르게 SSD 디스크 장치(30)의 FTL(31)에 설치되어 실행한다.
또한, 상기 무효데이터 재활용 방법의 일부 기능은 운영체제의 파일 시스템(20)에 프로그램으로 설치되어 유효데이터의 중복을 제거할 수도 있다. 유효데이터의 중복제거를 위해서 파일시스템(20)에 중복제거 컨트롤 계층인 중복제거 계층을 추가한다. 즉, 재활용 시스템(40)에서 유효데이터의 중복제거하는 기능은 파일시스템(20)의 하나의 계층으로 삽입되어 구현될 수 있다. 이때 삽입되는 계층은 중복제거 계층이라 부를 수 있다.
도 1에서와 같이, 어느 하나의 프로세스(1)가 쓰기 연산을 요청하면, 운영체제(10)는 이 요청(시스템콜)을 받아 파일 시스템(20)에 전달된다. 파일시스템(20)으로 입력데이터의 쓰기 연산이 요청되면 중복제거 계층에서 유효데이터와 중복되는지 중복검사를 실행할 수도 있다.
그리고 SSD 디스크 장치(30)의 FTL(31)에서, 무효데이터 재활용 과정을 거치게 된다. 무효데이터와도 중복이 되지 않는다면 SSD에 중복되는 데이터가 없으므로 빈 공간에 쓰기 연산을 실행한다.
다음으로, 본 발명의 제1 실시예에 따른 SSD 스토리지의 무효데이터 재활용 방법을 도 2를 참조하여 설명한다.
도 2에서 보는 바와 같이, 본 발명의 제1 실시예에 따른 SSD 기반 저장장치에서 입출력 성능 향상을 위한 무효데이터 재활용 방법은 (a) 무효데이터 해시테이블 저장 단계(S10); (d) 해시테이블에 중복되는 데이터 검색 단계(S40); 및, (e) 유효데이터로 전환 단계(S50)로 구성된다. 추가적으로, (f) 모두 중복되지 않은 경우 빈공간에 기록하는 단계(S60)를 포함하여 구성된다.
종래의 중복제거 방법과 가장 큰 차이점은 중복검사의 대상이 유효데이터에서 무효데이터로 바뀌었다는 점이다.
먼저, 유효데이터가 업데이트되거나 삭제되어 무효데이터가 되면 SHA-1 해시함수를 사용하여 해시값을 생성하고 해시테이블에 저장한다(S10).
다음으로, 입력데이터가 들어온다면 입력데이터의 SHA-1 해시값을 생성하여 해시테이블에 중복되는 값이 있는지 검사한다(S40). 중복되는 무효데이터가 없다면 빈 공간에 기록한다(S60).
만약, 중복된다면 같은 해시값을 가지고 있는 무효데이터를 유효데이터로 전환하여 재활용한다(S50). 무효데이터는 가비지컬렉션이 발생하여 빈 공간이 되기 전까지 재활용을 위해 유지된다.
도 3은 본 발명의 제1 실시예에서 입력데이터의 처리 과정을 보여준다.
한편, 해시값을 이용하여 중복여부를 검사할 때, 핑거프린터 방법을 이용한다. 해쉬함수의 결과값을 사용하여 데이터의 고유한 값을 비교하는 핑거프린트(Fingerprint) 방법의 청크 단위는 파일, 블록, 비트의 3가지가 있다.
파일 단위는 파일이 수정된다면 해쉬값이 다르게 나와서 중복이 되지 않지만 다른 방법에 비해 단순하고 연산 비용이 적기 때문에 시스템 오버헤드가 적다. 블록, 비트단위는 파일이 수정될 경우 청크의 크기를 가변적으로 변화시켜서 수정된 부분을 제외한 나머지 공간은 중복시킬 수 있지만 각각의 청크에 대한 맵핑 공간이 필요하고 연산 비용이 커져서 시스템 오버헤드가 크다. 무효데이터는 호스트 시스템에서 사용되지 않기 때문에 입력 파일이 수정되었는지 데이터를 비교하기 어렵고 오버헤드가 클 경우 오히려 재활용 방법으로 인하여 성능이 감소 될 수도 있으므로 파일 단위의 청크를 사용한다.
SSD의 종래 중복제거 방법에서 활용되지 못하고 공간만 차지하는 무효데이터를 재활용함으로써 기대할 수 있는 효과는 다음과 같다. 무효데이터로 인하여 발생하는 가비지 컬렉션은 데이터의 복사와 소거를 해야하기 때문에 시간과 비용이 많이 소요되는 연산이다. 무효데이터가 재활용된다면 가비지 컬렉션할 무효데이터가 줄어들게 되어, 가비지컬렉션의 빈도가 감소해서 I/O 속도가 향상될 것이다. 또한 입력데이터와 무효데이터가 중복되어 무효데이터가 재활용된다면 쓰기 횟수가 감소하여 SSD의 마모도가 감소할 것이다. 따라서 SSD의 수명이 연장될 것이다.
다음으로, 본 발명의 제2 실시예에 따른 SSD 스토리지의 무효데이터 재활용 방법을 도 4를 참조하여 설명한다.
도 4에서 보는 바와 같이, 본 발명의 제2 실시예에 따른 실시예에 따른 무효데이터 재활용 방법은 (a) 해시테이블 저장 단계(S110); (b) 중복된 유효데이터 검색 단계(S120); (c) 중복된 경우 중복된 유효데이터 참조 단계(S130); (d) 중복된 무효데이터 검색 단계(S140); 및 (e) 중복된 경우 유효데이터로 전환 단계(S150)로 구성된다. 추가적으로, (f) 모두 중복되지 않은 경우 빈공간에 기록하는 단계(S160)를 포함하여 구성된다.
도 5는 본 발명의 제2 실시예에서 입력데이터의 처리 과정을 보여준다. 본 발명의 제2 실시예는 제1 실시예와 달리 유효데이터의 중복성 검사를 추가한다.
먼저, 유효데이터가 업데이트되거나 삭제되어 무효데이터가 되면 SHA-1 해시함수를 사용하여 해시값을 생성하고 무효데이터 해시테이블에 저장하고, 유효데이터가 빈공간에 기록되면 해시함수를 이용하여 유효데이터 해시테이블에 저장한다(S10).
다음으로, 데이터가 입력되는 경우(즉, 데이터 갱신/삭제 등이 아닌 경우), 입력데이터에 대하여 유효데이터에 대한 중복제거 단계(S120, S130)를 수행한다. 즉, 입력데이터에 대하여 중복된 유효데이터가 있는지를 검색하고(S120), 중복된 유효데이터가 있으면 입력데이터를 중복된 유효데이터를 참조하도록 한다(S130). 따라서 기존에 존재하는 유효데이터를 참조함으로써 새로 데이터를 기록하지 않는다.
유효데이터의 중복제거는 입력데이터를 중복제거 계층에서 즉시 중복제거 방식을 사용하여 실행한다. 입력데이터를 청킹할때 청크 단위는 SSD의 페이지 크기로 고정 청킹한다. SSD의 페이지 크기로 고정 청킹하는 이유는 무효데이터 재활용을 고려하기 때문이다. 무효데이터 재활용 과정에서 무효페이지가 유효페이지로 전환되기 때문에 청크가 페이지 크기와 일치해야 한다.
도 6에서와 같이 입력데이터를 청크 단위로 분리한 후에는 각각의 청크에 SHA-1 해시함수를 적용하여 160 비트(bit)의 핑거프린트를 생성한다. 그 다음 과정으로 입력데이터 청크의 핑거프린트 값과 유효데이터 해시 테이블에서 동일한 값이 있는지 중복검사한다. 중복되었다면 입력데이터를 저장하지 않고 중복된 유효데이터를 참조한다. 중복된 데이터가 없을 경우에는 무효데이터 재활용 검사단계로 넘어간다.
유효데이터의 중복제거에서 해시테이블 공간이 필요하다. 페이지 크기가 4KB라고 한다면 청크마다 160 비트(bit)의 SHA-1 해시값을 생성하기 때문에 청크 크기와 해시값 크기의 비율을 계산할 수 있다. 즉, 필요한 해시테이블의 저장공간은 4KB 크기의 입력데이터와 비교해서 약 0.5%인 20Byte를 차지한다. 따라서 유효데이터의 중복률이 0.5% 이상이면 중복제거를 통해 해시테이블의 저장공간이 확보된다. 여기서 중복률이란 스토리지에 저장된 데이터에 대한 중복 데이터의 비율을 의미한다.
유효데이터 중복제거에서 중복이 한 곳에서 다수 발생하여 하나의 유효데이터를 여러 번 참조하게 된다면 유효데이터를 삭제하기 전에 고려해야 할 점이 있다. 다수 중복이 발생한 유효데이터를 한 곳의 삭제 요청으로 삭제한다면 참조하고 있던 다른 곳에서는 실제 데이터가 삭제되어 오류가 발생한다.
이런 오류를 방지하기 위해서 레퍼런스 카운트(또는 참조 카운트)를 유효데이터의 메타정보로 추가하였다. 레퍼런스 카운트는 초기값으로 1이 주어지고 중복이 발생할 때마다 1씩 증가시킨다. 중복된 유효데이터를 참조하고 있는 논리 주소가 삭제되면 레퍼런스 카운트를 1씩 감소시킨다. 레퍼런스 카운트가 1일 때 삭제가 발생하면 유효데이터를 삭제하여 무효데이터로 전환한다.
즉, 상기 유효 데이터는 입력 데이터에 의해 참조되는 횟수를 참조 카운트로 기록하여, 하나의 입력 데이터만 참조된 상태에서 해당 입력 데이터가 삭제되면 상기 유효 데이터가 무효 데이터로 변환된다.
다음으로, 중복된 유효데이터가 없는 경우, 입력데이터에 대하여 중복되는 무효데이터가 있는지를 검색하고(S140), 중복된 무효데이터가 있으면 중복된 무효데이터를 유효데이터로 전환하여 입력데이터가 전환된 유효데이터를 참조하게 한다(S150). 중복된 유효데이터가 없는 경우, 빈 공간에 기록한다(S160).
입력데이터가 유효데이터와 중복되지 않으면 무효데이터 재활용 과정을 거친다. 무효데이터 재활용은 무효페이지를 유효페이지로 전환하기 때문에, 페이지의 유효화/무효화를 관리하는 FTL(31)에서 이루어진다. FTL(31)은 SSD 디바이스 장치(30)의 미들웨어로 주소 맵핑, 마모도 관리, 가비지 컬렉션의 역할을 한다. FTL(31)이 SSD 내부의 모든 블록과 페이지를 관리하기 때문에 무효데이터 재활용 기능은 프로그램되어 FTL(31)에 추가된다.
NAND 플래시 메모리는 파일 엔트리에 블록에 대한 파일 정보가 유지된다. 각 파일 정보에는 현재 파일이 유효한지 또는 무효한지를 나타내는 플래그가 있다. 무효데이터 재활용시에 이 플래그를 수정하여 유효데이터로 전환한다.
입력데이터의 청킹과 핑거프린트 생성 과정은 이미 중복제거 계층에서 수행했기 때문에 바로 도 6과 같이 무효데이터의 해시 테이블과 중복검사를 한다.
유효페이지가 파일시스템의 갱신 및 삭제 요청으로 무효페이지로 전환된다면 해당 페이지의 해시정보는 무효데이터 해시테이블로 이동해야한다. 반대로 재활용 과정에서 무효페이지가 유효페이지로 전환된다면 유효데이터 해시테이블로 해시정보를 이동하여야 한다.
즉, 상기 유효 데이터 및 무효 데이터에 대하여 각각 청킹과 핑거프린트를 위한 해시 테이블을 구비하고, 상기 유효 데이터와 무효 데이터가 서로 변환될 때 상기 해시 테이블의 내용도 동시에 이동한다.
무효데이터 재활용 과정에서 FTL(31)의 가비지 컬렉션 정책은 중복률에 영향을 준다. 기존 가비지 컬렉션 정책은 희생블록의 마모도와 유효페이지 복사에 필요한 비용만을 고려했다. 하지만 무효데이터 재활용 관점에서는 가비지 컬렉션의 발생 빈도도 고려해야한다. 매우 빈번히 발생한다면 다수의 무효페이지가 삭제되어 재활용을 위한 무효페이지 수가 줄어들어 중복률이 감소한다. 반면에 가비지 컬렉션이 느슨하게 발생한다면 SSD에서 무효데이터가 차지하는 비중이 높아져서 저장공간의 활용률이 떨어지게 된다.
따라서 무효데이터 재활용을 위한 효율적인 가비지 컬렉션의 경계값을 구해야한다. 빈 블록의 비중이 경계값 이하로 감소하면 가비지 컬렉션을 실행하여 빈 블록을 확보하고 경계값 이상으로 빈 블록의 비중이 증가하면 가비지 컬렉션을 중단한다.
다음으로, 본 발명의 제1 실시예에 대한 효과를 실험을 통해 구체적으로 설명한다.
본 발명의 제1 실시예에 대한 실험환경은 다음과 같다. CPU는 Intel Core2 Duo 2.40GHz, RAM은 DDR2 3GB이고 Linux Ubuntu에서 Disksim 4.0 기반 SSD 시뮬레이터 모델로 실험하였다. 무효데이터를 재활용하는 기법과 유효데이터의 파일단위 실시간 중복제거 기법 및 두 기법 모두 사용하지 않는 방법의 I/O 속도와 쓰기 횟수를 비교하였고, 워크로드는 Disksim에서 지원하는 Synthetic 워크로드를 사용하였다. SSD의 용량을 각각 256MB, 512MB, 1024MB, 2048MB으로 설정하여 데이터를 입/출력하였다. 도 7과 도 8을 보면 기존의 쓰기 방법과 비교하여 무효데이터를 재활용할 때가 평균 5.8%의 I/O 속도 향상과 평균 10%의 쓰기 횟수 감소를 보여주었다. 유효데이터의 중복제거 기법이 성능이 더 좋지만 무효데이터를 활용하여 SSD의 성능과 수명을 향상시킨다는 관점에서 제안한 기법이 효과적이라고 할 수 있다.
다음으로, 본 발명의 제2 실시예에 대한 효과를 실험을 통해 보다 구체적으로 설명하고자 한다.
본 발명의 실험을 위한 환경은 다음과 같다. 실험 PC의 성능으로 CPU는 Intel Core2 Duo 2.40GHz, RAM은 DDR2 3GB이고 Linux Ubuntu 10.04에서 SSD 전용 시뮬레이터인 Microsoft Research SSD extension for DiskSim 4.0 기반으로 하였다.
1개의 블록은 64개의 페이지를 포함하였으며 페이지와 블록에 대한 기본 설정과 읽기, 쓰기, 삭제의 지연시간 설정은 다음의 도 9와 같다.
SSD의 총 용량은 64GB로 설정하였고 워크로드는 3가지를 사용하였다. Disksim 4.0에서 기본적으로 제공하는 Synthetic 워크로드[비특허문헌 1]와 office, download, web등의 수행과정에서 추출한 General 워크로드, E-learning, video, 3D modeling 작업의 수행과정에서 추출한 Sysmark 워크로드이다.
성능을 측정하기 위하여 본 발명의 경우, 무효데이터만 재활용 할 경우[비특허문헌 8], 유효데이터 중복제거 방법인 CAFTL의 경우[비특허문헌 9], 중복제거 및 재활용 하지 않는 일반적인 경우[비특허문헌 1]를 비교하였다. 일반적인 방법은 DiskSim을 제안한 논문을 이용하여 실험하였다.
실험을 위하여 우선적으로 고려하여야 할 사항은 가비지 컬렉션의 최적의 경계값을 구하는 것이다. Synthetic, General, Sysmark의 세 가지 워크로드에서 무효데이터 재활용 방법만을 적용했을 때 가비지 컬렉션 경계값에 따른 무효데이터의 중복률을 측정했다. 도 10를 보면 가로축의 경계값이 작을수록 세로축의 중복률이 증가한다. 그 이유는 무효데이터가 삭제되지 않고 많이 존재하여 중복이 많이 발생하기 때문이다. 본 발명을 위하여 가장 중복률이 좋은 5%를 경계값으로 사용하였다.
가비지 컬렉션의 경계값인 5%를 기준으로 본 발명, 무효데이터 재활용, 유효데이터 중복제거, 일반적인 방법의 네가지 경우를 비교하였다. 중복제거 및 재활용이 적용되지 않았을 때의 쓰기 횟수를 기준으로 정규화한 결과를 도 11에 나타내었다. 본 발명이 General 워크로드에서 약 30%로 가장 쓰기횟수가 많이 감소하였고 그 다음으로 유효데이터 중복제거 방법, 무효데이터 재활용 방법 순으로 쓰기 횟수가 감소하였다. 워크로드 별로는 General 워크로드가 가장 많이 쓰기횟수를 감소시켰다.
본 발명에서 쓰기 횟수 감소로 인하여 가비지 컬렉션 횟수도 감소하게 된다. 각각의 워크로드 별로 가비지 컬렉션의 횟수를 도 12에 나타내었다. 쓰기 횟수 비교에서와 마찬가지로 본 발명이 General 워크로드에서 약 20%로 가장 가비지 컬렉션 횟수가 적었다.
마지막으로 각 방법들의 I/O 지연시간을 비교하였다. 핑거프린트를 생성하고 비교하는 과정에서 지연시간이 생기지만 I/O 지연시간이 긴 가비지 컬렉션 횟수가 감소하여 본 발명에서 I/O 성능은 약간 상승하였다. 도 13에서 보면 General 워크로드에서 약 9% 정도로 가장 많이 감소한 것을 알 수 있다.
본 발명에서는 SSD의 블록 당 쓰기 가능 횟수 제한 문제와 I/O 성능을 향상시키기 위하여 유효데이터 중복제거 및 무효데이터 재활용 방법을 설명하였다. 본 발명은 파일시스템에서 유효데이터 중복제거를 하고 FTL에서 무효데이터 재활용을 함으로써 쓰기 횟수를 감소시켰고 그에 따라서 가비지 컬렉션 횟수도 감소하였다. 그 결과 SSD의 마모도가 향상되었고 I/O 성능이 향상되었음을 확인할 수 있었다.
이상, 본 발명자에 의해서 이루어진 발명을 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
10 : 운영체제 20 : 파일시스템
30 : SSD 디스크 장치(SSD) 31 : 플래시변환계층(FTL)

Claims (6)

  1. 운영체제의 파일 시스템을 통해 SSD(Solid State Disk) 디스크 장치에 데이터(이하 입력 데이터)를 저장할 때, 상기 SSD 디스크 장치에 저장된 무효 데이터를 이용하여 상기 입력 데이터를 저장하는 SSD 스토리지의 무효데이터 재활용 방법에 있어서,
    (a) 유효데이터가 갱신되거나 삭제되어 무효데이터가 되면 상기 무효데이터를 해시테이블에 저장하는 단계;
    (d) 상기 입력데이터의 저장이 요청되면, 상기 해시테이블에 상기 입력데이터와 중복되는 무효데이터가 있는지를 검색하는 단계; 및,
    (e) 중복되는 무효데이터가 있으면, 중복된 무효데이터를 유효데이터로 재활용하는 단계를 포함하고,
    상기 무효 데이터는 상기 입력 데이터가 상기 SSD 디스크 장치에 물리적으로 저장되어 있으되 상기 입력 데이터로 논리적으로 참조되지 않은 데이터이고,
    상기 유효 데이터는 상기 입력 데이터가 상기 SSD 디스크 장치에 물리적으로 저장되어 있고 상기 입력 데이터로 논리적으로 참조되고 있는 데이터이고,
    상기 (e)단계에서, 중복되는 무효 데이터를 유효 데이터로 변경하고, 상기 입력 데이터의 참조를 변경된 유효 데이터의 참조로 정하여 재활용하는 것을 특징으로 하는 SSD 스토리지의 무효데이터 재활용 방법.
  2. 제1항에 있어서,
    상기 방법은 상기 SSD 디스크 장치의 플래시 변환 계층에 설치되어 실행하는 것을 특징으로 하는 SSD 스토리지의 무효데이터 재활용 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 입력 데이터를 동일한 청크 단위로 나누어 중복 검사를 하는 것을 특징으로 하는 SSD 스토리지의 무효데이터 재활용 방법.
  5. 제1항에 있어서,
    상기 입력 데이터에 해시함수를 적용하여 핑거프린트를 생성하여 중복 검사를 하는 것을 특징으로 하는 SSD 스토리지의 무효데이터 재활용 방법.
  6. 제1항에 있어서, 상기 방법은,
    상기 입력데이터와 중복되는 무효데이터가 없는 경우, 빈 공간에 입력데이터를 기록하는 단계를 더 포함하는 것을 특징으로 하는 SSD 스토리지의 무효데이터 재활용 방법.
KR1020130050105A 2013-05-03 2013-05-03 Ssd 기반 스토리지 시스템에서 입출력 성능 향상을 위한 ssd 스토리지의 무효데이터 재활용 방법 KR101473837B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130050105A KR101473837B1 (ko) 2013-05-03 2013-05-03 Ssd 기반 스토리지 시스템에서 입출력 성능 향상을 위한 ssd 스토리지의 무효데이터 재활용 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130050105A KR101473837B1 (ko) 2013-05-03 2013-05-03 Ssd 기반 스토리지 시스템에서 입출력 성능 향상을 위한 ssd 스토리지의 무효데이터 재활용 방법

Publications (2)

Publication Number Publication Date
KR20140131457A KR20140131457A (ko) 2014-11-13
KR101473837B1 true KR101473837B1 (ko) 2014-12-18

Family

ID=52452881

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130050105A KR101473837B1 (ko) 2013-05-03 2013-05-03 Ssd 기반 스토리지 시스템에서 입출력 성능 향상을 위한 ssd 스토리지의 무효데이터 재활용 방법

Country Status (1)

Country Link
KR (1) KR101473837B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9645922B2 (en) * 2015-09-10 2017-05-09 HoneycombData Inc. Garbage collection in SSD drives
KR102142675B1 (ko) * 2018-11-02 2020-08-07 현대오트론 주식회사 Eeprom 제어장치 및 이를 이용한 eeprom의 데이터 기록 방법
CN111090397B (zh) * 2019-12-12 2021-10-22 苏州浪潮智能科技有限公司 一种数据重删方法、系统、设备及计算机可读存储介质
KR102315314B1 (ko) * 2019-12-16 2021-10-19 주식회사 현대케피코 Eeprom 제어 장치 및 방법
KR20230102877A (ko) 2021-12-30 2023-07-07 부산대학교 산학협력단 다수의 ssd로 구성된 논리적 볼륨의 효율적인 입출력 자원 분배를 위한 블록 재배치 가능한 ssd 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100954039B1 (ko) * 2008-08-11 2010-04-20 (주)인디링스 플래시 메모리 제어 방법 및 제어 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100954039B1 (ko) * 2008-08-11 2010-04-20 (주)인디링스 플래시 메모리 제어 방법 및 제어 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Proceedings of 9th USENIX Conference on File and Storage Technologies(2011.2. "CAFTL: A Content-Aware Flash Translation Layer Enhancing the Lifespan of Flash Memory based Solid State Drives")

Also Published As

Publication number Publication date
KR20140131457A (ko) 2014-11-13

Similar Documents

Publication Publication Date Title
US9489297B2 (en) Pregroomer for storage array
US9489258B2 (en) Green NAND SSD application and driver
Fu et al. Accelerating restore and garbage collection in deduplication-based backup systems via exploiting historical information
Gupta et al. Leveraging Value Locality in Optimizing {NAND} Flash-based {SSDs}
US9519575B2 (en) Conditional iteration for a non-volatile device
Wu et al. Delta-FTL: Improving SSD lifetime via exploiting content locality
US9996542B2 (en) Cache management in a computerized system
US9195396B2 (en) Estimating access frequency statistics for storage device
US9146688B2 (en) Advanced groomer for storage array
US8924663B2 (en) Storage system, computer-readable medium, and data management method having a duplicate storage elimination function
CN108604165B (zh) 存储装置
CN114730300B (zh) 对区命名空间存储器的增强型文件系统支持
Zou et al. The dilemma between deduplication and locality: Can both be achieved?
KR101473837B1 (ko) Ssd 기반 스토리지 시스템에서 입출력 성능 향상을 위한 ssd 스토리지의 무효데이터 재활용 방법
US10114576B2 (en) Storage device metadata synchronization
KR102304130B1 (ko) 비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치
CN111124258B (zh) 全闪存阵列的数据存储方法、装置、设备及可读存储介质
US10013346B2 (en) Method of decreasing write amplification of NAND flash using a journal approach
KR101525453B1 (ko) 데이터 접근빈도를 이용한 raid 시스템의 데이터 복제 방법
Ha et al. Deduplication with block-level content-aware chunking for solid state drives (SSDs)
CN105404468B (zh) 绿能与非固态硬盘应用及其驱动器
KR101430552B1 (ko) Ssd 기반 스토리지 시스템에서 중복률과 입출력 성능 향상을 위한 ssd 스토리지의 데이터 중복제거 및 재활용 시스템
Gholami Taghizadeh et al. CA-Dedupe: Content-aware deduplication in SSDs
US20110264848A1 (en) Data recording device
US11263132B2 (en) Method and system for facilitating log-structure data organization

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170829

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180823

Year of fee payment: 5