KR101704936B1 - 블록의 우선성에 기반한 ssd의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템 - Google Patents

블록의 우선성에 기반한 ssd의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템 Download PDF

Info

Publication number
KR101704936B1
KR101704936B1 KR1020150173071A KR20150173071A KR101704936B1 KR 101704936 B1 KR101704936 B1 KR 101704936B1 KR 1020150173071 A KR1020150173071 A KR 1020150173071A KR 20150173071 A KR20150173071 A KR 20150173071A KR 101704936 B1 KR101704936 B1 KR 101704936B1
Authority
KR
South Korea
Prior art keywords
block
value
queue
ssd
ghost
Prior art date
Application number
KR1020150173071A
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 KR1020150173071A priority Critical patent/KR101704936B1/ko
Application granted granted Critical
Publication of KR101704936B1 publication Critical patent/KR101704936B1/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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 블록의 우선성에 기반한 SSD의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템에 관한 것으로, 사용 지역성(Access locality)과 최근 사용 후 경과된 시간 그리고 히트 횟수(hit count)를 통해 블록의 우선(Priority) 순위를 통해 효율적인 블록 교체방법을 제공함으로써, 성능과 수명을 향상시킬 수 있는 새로운 SSD의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템을 제공한다.

Description

블록의 우선성에 기반한 SSD의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템{BLOCK REPLACEMENT METHOD BASED ON RECENCY, AND THEREOF HYBRID STRORAGE SYSTEM}
본 발명은 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템에 관한 것으로, SSD에 저장된 블록의 사용 지역성(Access locality)을 이용한 최근성(Recency)과 히트율을 기반으로 한 참조빈도(Frequency)를 고려하여 블록의 교체(eviction)여부를 결정하는 새로운 SSD 블록 교체방법 및 이를 적용하는 하이브리드(Hybrid) 저장 시스템에 관한 것이다.
SSD와 HDD를 동시에 사용하는 하이브리드(Hybrid) 저장시스템에서 HDD에 있는 블록이 한 번 요청되면, 앞으로 자주사용 될 블록으로 판단하고 SSD로 할당한다. SSD를 사용하면 시스템이 HDD를 참조하기 위해 소요되는 참조지연 시간(Access latency)을 최소화할 수 있다. 하지만, 필요한 블록이 SSD에 없는 경우, 캐시 미스로 인한 시스템의 성능저하는 수백 사이클에 이르기 때문에 빈번히 사용되는 블록을 최대한 SSD에 유지하는 것이 SSD의 효율을 극대화하기 위해 매우 중요하다.
LRU(Least Recently Used) 교체 기법은, 캐시 교체 알고리즘으로써 가장 많이 사용되고 있다. 하지만 LRU는 테이터의 최근성만 반영하기 때문에 데이터가 시간적으로 빈번히 사용되지 않는 시스템 환경에서는 적합하지 않은 문제점이 있다. 이에 다양한 교체 알고리즘이 연구되고 있는데, 이 교체 알고리즘들을 하이브리드 저장시스템에 적용한다면, 향상된 SSD의 히트율을 제공함으로써 블록 참조 지연시간을 최소화함으로써 시스템의 성능을 향상시킬 수 있지만, 쓰기 연산이 많이 발생해 SSD의 수명이 단축되는 문제점이 있다.
무작위 파일 쓰기 연산에 집중된 워크로드(workload)는 기존대비 100배 이상 SSD 수명을 단축시킨다. 따라서 SSD의 수명을 유지시키면서 시스템의 성능을 향상시키는 LARC(Lazy Adaptive Cache Replacement) 알고리즘이 제안되었다. LARC는 SSD를 HDD의 캐시로 사용하여 SSD의 수명과 시스템의 성능을 향상시킨다.
LARC는 엑세스된 블록이 SSD에 할당되기 전에 블록의 식별자만 따로 저장하는 LRU(Least Recently Used) 알고리즘을 이용하는 고스트 큐를 제안하여 한번 엑세스된 블록을 별도록 관리하도록 하였다. 고스트 큐에 저장된 블록이 한번 더 호출되면, 이때 SSD로 해당 블록을 할당한다. 이를 통해 불필요한 SSD 쓰기 연산을 비약적으로 줄이고, 일정시간 내에 두 번 엑세스된 블록을 SSD에 할당시킴으로써, 기존 알고리즘보다 수명과 성능 모두 향상시켰다.
하지만, LARC 알고리즘은 여전히 SSD에 LRU 정책을 이용하기 때문에, 다양한 데이터 읽기, 쓰기 환경에 효과적으로 대응하지 못하는 문제점이 있어 성능 향상에 한계가 있다.
대한민국 공개특허공보 제10-2014-011346호(공개일자: 2014년09월18일) 대한민국 등록특허공보 제10-1241976호(등록일자: 2013년03월05일)
본 발명에 따른 블록의 우선성에 기반한 SSD의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템은 다음과 같은 해결과제를 가진다.
첫째, 본 발명은 플래시 기반 디스크 캐시에 대한 향상된 캐시 교체기법을 제공하고자 함이다.
둘째, 본 발명은 기존의 하이브리드 저장시스템의 입출력 성능과 SSD의 수명을 향상시킬 수 있는 새로운 SSD의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템을 제공하고자 함이다.
본 발명의 해결과제는 이상에서 언급한 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하고자 하는 본 발명의 제1 특징은, SSD를 HDD의 캐시(Cache)로 사용하는 확장된 디스크 시스템에서, (a) 요청된 블록(Block)이 SSD 큐(Queue)에 없는 경우, 해당 블록이 존재하는 HDD의 고스트 큐(Ghost Queue)의 크기를 재조정하는 단계; (b) 고스트 큐가 현재 존재하는 블록의 최근성(Recency) 값 및 참조빈도(Frequency) 값을 바탕으로 블록의 우선성(Priority) 값을 산출하는 단계; 및 (c) 고스트 큐가 현재 존재하는 블록들 중 상기 우선성에 따라 해당 블록의 교체(eviction) 여부를 결정하는 단계를 포함한다.
여기서, 상기 (a) 단계는, 요청된 블록이 SSD 큐에 없는 경우, 상기 고스트 큐가 해당 블록의 메타데이터가 자신에게 존재하는지 여부를 확인하는 단계; 및 상기 고스트 큐에 해당 블록의 메타데이터가 있는 경우, 상기 고스트 큐의 크기를 재조정하는 단계를 포함하는 것이 바람직하다.
또한, 상기 코스트 큐의 크기를 재조정하는 산출식은,
Figure 112015119401769-pat00001
(여기서, Sq는 SSD 큐의 싸이즈이고, Gq는 고스트 큐의 싸이즈이다.)와 같은 식을 만족하는 것이 바람직하고, 상기 (a) 단계는, 요청된 블록이 SSD 큐에 없는 경우, 고스트 큐에 저장된 블록의 메타데이터를 SSD 큐로 이동시키는 단계; SSD 큐 및 고스트 큐 모두 요청된 블록이 없을 경우, HDD에서 불러온 블록의 메타데이터를 상기 고스트 큐에 저장하는 단계; 및 상기 코스트 큐의 크기를 재조정하는 단계를 포함하는 것이 바람직하다.
또한, 상기 코스트 큐의 크기를 재조정하는 산출식은,
Figure 112015119401769-pat00002
(여기서, Sq는 SSD 큐의 싸이즈이고, Gq는 고스트 큐의 싸이즈이다.)와 같은 식을 만족하는 것이 바람직하고, 상기 (b) 단계에서, 상기 블록의 최근성(Recency) 값은, 블록의 엑세스 지역성(Access Locality) 값 및 에이지(Age) 값을 바탕으로 산출되는 것이 바람직하다.
더하여, 상기 블록의 에이지(Age) 값은,
Figure 112015119401769-pat00003
(여기서 A(n)은 블록의 에이지 값을 나타내고, T는 현재시간을 나타내고, Tr(n)은 블록 n의 최근 엑세스 되었던 시간을 나타낸다.)
와 같은 식을 만족하는 것이 바람직하다.
또한, 상기 블록의 엑세스 지역성(Access Locality) 값은,
Figure 112015119401769-pat00004
(여기서, L(n)은 엑세스 지역성 값을 나타내고, Di(n)은 블록 n의 I번째 엑세스와 I+1번째 액세스의 거리를 나타내고, C(n)은 블록 n의 엑세스 횟수를 나타낸다.)와 같은 식을 만족하는 것이 바람직하다.
또한, 상기 블록의 최근성(Recency) 값은,
Figure 112015119401769-pat00005
(A(n)은 블록의 에이지 값을 나타내고, L(n)은 블록의 엑세스 지역성(Access Locality) 값을 나타내고, WA 및 WL 은 가중치를 나타낸다.)와 같은 식을 만족하는 것이 바람직하다.
그리고, 상기 (c) 단계에서, 상기 블록의 우선성(Priority) 값은,
Figure 112015119401769-pat00006
(여기서, C(n)은 블록 n의 엑세스 횟수를 나타내고, R(n)은 블록 n의 최근성(Recency) 값을 나타낸다.)와 같은 식을 만족하는 것이 바람직하고, 상기 (c) 단계는, SSD 큐가 현재 존재하는 블록들 중 상기 우선성 값이 최저값을 갖는 블록을 교체(eviction) 결정하는 단계인 것이 바람직하다.
또한, 블록이 상기 SSD 큐에 할당되는 경우, 상기 SSD 큐가 상기 C(n) 값 및 P(n) 값을 1로 초기화하는 단계인 것이 바람직하고, 상기 블록의 참조빈도 값은, 블록의 요청 횟수(Hit Count)로 산출되는 것이 바람직하다.
그리고, 본 발명의 제2 특징은, HDD, 고스트 큐(Ghost Queue) 및 SSD 큐(Queue)로 구성된 저장 시스템에 있어서, 요청된 블록(Block)이 SSD 큐(Queue)에 없는 경우, 해당 블록이 존재하는 HDD의 고스트 큐(Queue)의 크기를 재조정하고, 상기 고스트 큐(Ghost Queue)가 현재 존재하는 블록의 최근성(Recency) 값 및 참조빈도(Frequency) 값을 바탕으로 블록의 우선성(Priority) 값을 산출하고, 현재 존재하는 블록들 중 상기 우선성에 따라 해당 블록의 교체(eviction) 여부를 결정하는 것이다.
그리고, 하드웨어와 결합되어 상술한 블록의 우선성에 기반한 SSD의 블록 교체방법을 실행시키기 위하여 매체에 저장된 컴퓨터프로그램을 또 다른 특징으로 한다.
본 발명에 따른 블록의 우선성에 기반한 SSD의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템은 다음과 같은 효과를 가진다.
첫째, 본 발명은 우선 자주 쓰일 것으로 예상되는 블록을 선별하여 SSD에 할당하고, SSD에 있는 블록 중에서 자주 쓰이는 블록을 최대한 오래 유지해 향상된 히트율(Hit ratio)와 낮은 쓰기율(Write ratio)을 갖는 SSD의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템을 제공한다.
둘째, 본 발명은 사용 지역성(Access locality)과 최근 사용 후 경과된 시간 그리고 히트 횟수(hit count)를 통해 블록의 우선(Priority) 순위를 통해 효율적인 블록 교체방법을 제공함으로써, 성능과 수명을 향상시킬 수 있는 새로운 SSD의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템을 제공한다.
셋째, 본 발명은 SSD를 캐시로 사용하는 환경에서 자주 쓰이는 블록을 명확하게 구별하여 SSD에 저장하도록 하고 이를 최대한 긴 시간 동안 유지할 수 있으며, 이를 통해 SSD와 HDD를 이용한 환경에서의 성능 최적화와 수많은 데이터 요청이 발생하는 대용량 데이터센터에 효과적으로 적용할 수 있는 블록 교체방법을 제공한다.
본 발명의 효과는 이상에서 언급한 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 실시예에 따른 블록의 우선성에 기반한 SSD의 블록 교체방법의 흐름을 나타낸 도면이다.
도 2는 본 발명의 또 다른 실시예로서, 도 1의 브록의 교체방법의 알고리즘 이 사용되는 하이브리드 저장 시스템의 사용 모식도이다.
도 3은 본 발명의 실시예에 따른 블록의 우선성에 기반한 SSD의 블록 교체방법으로서, SSD에 할당된 블록을 관리하는 알고리즘의 흐름도이다.
도 4는 기존의 블록 교체 알고리즘과 본 발명의 실시예에 따른 블록 교체 알고리즘의 웹서치 트레이스(Websearch trace)를 이용한 시뮬레이션 히트율(hit ration)을 비교한 그래프이다.
도 5는 기존의 블록 교체 알고리즘과 본 발명의 실시예에 따른 블록 교체 알고리즘의 파이낸셜 트레이스(Financial trace)를 이용한 시뮬레이션 히트율(hit ration)을 비교한 그래프이다.
도 6은 기존의 블록 교체 알고리즘과 본 발명의 실시예에 따른 블록 교체 알고리즘의 웹서치 트레이스(Websearch trace)를 이용한 시뮬레이션 SSD 쓰기 횟수(write operation)를 비교한 그래프이다.
도 7은 기존의 블록 교체 알고리즘과 본 발명의 실시예에 따른 블록 교체 알고리즘의 파이낸셜 트레이스(Financial trace)를 이용한 시뮬레이션 SSD 쓰기 횟수(write operation)를 비교한 그래프이다.
이하, 첨부한 도면을 참조하여, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 설명한다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 이해할 수 있는 바와 같이, 후술하는 실시예는 본 발명의 개념과 범위를 벗어나지 않는 한도 내에서 다양한 형태로 변형될 수 있다. 가능한 한 동일하거나 유사한 부분은 도면에서 동일한 도면부호를 사용하여 나타낸다.
본 명세서에서 사용되는 전문용어는 단지 특정 실시예를 언급하기 위한 것이며, 본 발명을 한정하는 것을 의도하지는 않는다. 여기서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다.
본 명세서에서 사용되는 "포함하는"의 의미는 특정 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분을 구체화하며, 다른 특정 특성, 영역, 정수, 단계, 동작, 요소, 성분 및/또는 군의 존재나 부가를 제외시키는 것은 아니다.
본 명세서에서 사용되는 기술용어 및 과학용어를 포함하는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 일반적으로 이해하는 의미와 동일한 의미를 가진다. 사전에 정의된 용어들은 관련기술문헌과 현재 개시된 내용에 부합하는 의미를 가지는 것으로 추가 해석되고, 정의되지 않는 한 이상적이거나 매우 공식적인 의미로 해석되지 않는다.
이하 본 발명에 따른 바람직한 실시예를 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 블록의 우선성에 기반한 SSD의 블록 교체방법의 흐름을 나타낸 도면이다. 도 1에 나타낸 바와 같이, 본 발명의 실시예에 따른 블록의 우선성에 기반한 SSD의 블록 교체방법은, SSD를 HDD의 캐시(Cache)로 사용하는 확장된 디스크 시스템에서, (a) 요청된 블록(Block)이 SSD 큐(Queue)에 없는 경우, 해당 블록이 존재하는 HDD의 고스트 큐(Queue)의 크기를 재조정하는 단계; (b) SSD 큐가 현재 존재하는 블록의 최근성(Recency) 값 및 참조빈도(Frequency) 값을 바탕으로 블록의 우선성(Priority) 값을 산출하는 단계; 및 (c) SSD 큐가 현재 존재하는 블록들 중 상기 우선성에 따라 해당 블록의 교체(eviction) 여부를 결정하는 단계를 포함하여 구성된다.
이와 같이, 본 발명의 실시예는 우선 자주 쓰일 것으로 예상되는 블록을 선별하여 SSD에 할당하고, SSD에 있는 블록 중에서 자주 쓰이는 블록을 최대한 오래 유지해 향상된 히트율(Hit ratio)과 낮은 쓰기율(Write ratio)을 갖는 캐시 교체 알고리즘을 제공함으로써, 종래의 하이브리드(Hybrid) 저장시스템의 입출력 성능과 SSD의 수명을 향상시킬 수는 SSD의 블록 교체방법을 제공한다.
즉, 본 발명의 실시예는 HDD와 SSD를 동시에 사용한 혼합형 저장시스템 환경에서 자주 쓰일 것으로 예상되는 블록을 우선 선발하여 SSD에 할당함으로써, 쓰기 횟수를 줄여 SSD의 수명을 최대한 향상시키고, SSD에 저장된 블록 중 자주 쓰이는 블록을 오래 유지함으로써 히트율을 향상시켜 저장시스템의 입출력 성능을 향상시킬 수 있는 블록 교체방법을 제안한다.
본 발명의 실시예에서는 SSD의 수명을 향상시키기 위해, 고스트 캐시(Ghost cache) 정책을 사용하였다. 고스트 캐시(Ghost cache)는 데이터 블록의 식별자(Metadata)만 저장하는 LRU(Least Recently Used) 큐(Queue) 이다. HDD에 저장된 블록이 한 번 요청되면 SSD로 블록 이동전에 고스트 캐시에 SSD에 할당할 후보블록으로써 저장한다.
고스트 캐시에 있는 블록이 한 번 더 요청될 경우, 자주 쓰일 블록으로 간주하고 HDD에 있는 블록을 SSD로 이동시킨다. SSD로 이동된 블록의 식별자(Metadata)는 SSD 큐(Queue)에 저장되며, 이 식별자는 본 발명의 실시예에 따른 블록의 우선성에 기반한 SSD의 블록 교체방법(BRAL) 알고리즘에 의해 관리 받게된다. 즉, 본 발명의 실시예에 따른 블록의 우선성에 기반한 SSD의 블록 교체방법(BRAL) 알고리즘을 통해 자주 쓰이는 블록을 오랫동안 SSD에 유지할 수 있게 된다.
이하에서 본 발명의 실시예에 따른 블록의 우선성에 기반한 SSD의 블록 교체방법(BRAL) 알고리즘을 단계별로 도면을 참조하여 상세히 설명하기로 한다.
(a) 단계는 요청된 블록이 SSD 큐에 없는 경우, 해당 블록이 존재하는 고스트 큐의 크기를 재조정하는 단계이다.
종래에 고스트 캐시(Ghost cache)를 활용한 기법은 정적인 크기의 고스트 큐(GHost Queue)를 활용하여 SSD의 쓰기횟수를 줄이고자 했다. 하지만 정적인 크기의 고스트 큐를 이용할 경우, HDD의 크기만큼 큰 고스트 큐는 거의 모든 HDD의 블록을 저장하기 때문에, SSD 수명향상이 미비해지며, 너무 작은 고스트 큐는 LRU 정책에 의해 한 번 엑세스된 블록이 체류할 수 있는 시간이 너무 짧아져, SSD의 성능을 극단적으로 감소시키는 문제점이 있다.
따라서 본 발명의 실시예에서는 이를 해결하기 위해, 고스트 큐(Ghost Queue)의 크기를 동적으로 조절하는 기법을 적용한다. 요청된 블록이 SSD Queue에 없을 경우 아래와 같이 사이즈가 조정된다.
1) 요청된 블록이 SSD 큐에 없을 경우, 아래의 [수학식 1]과 같이 고스트 큐의 크기가 재조정하고 고스트 큐에 요청된 블록이 있는지 검색한다. 요청된 블록이 SSD 큐와 고스트 큐에 둘다 없을 경우, HDD에 있는 요청된 블록을 고스트 큐에 넣는다.
Figure 112015119401769-pat00007
여기서, Sq는 SSD 큐의 싸이즈를 나타내고, Gq는 고스트 큐의 싸이즈를 나타낸다.
2) 반면에 요청된 블록이 SSD 큐에 있을 경우, 아래의 [수학식 2]와 같이 재조정된다.
Figure 112015119401769-pat00008
이와 같이 본 발명의 실시예는 블록의 히트여부에 따라 동적으로 고스트 큐(Ghost Queue)의 사이즈를 조정하는 알고리즘을 통해 SSD의 성능과 수명 모두 향상시킬 수 있는 최적의 고스트 큐(Ghost Queue) 사이즈를 설정할 수 있게 된다. 이를 통해 효과적으로 SSD 쓰기 횟수를 줄일 수 있고 기존 블록 교체기법보다 비약적인 SSD수명을 향상시킬 수 있다.
도 2는 본 발명의 또 다른 실시예로서, 도 1의 블록의 교체방법의 알고리즘 이 사용되는 하이브리드 저장 시스템의 사용 모식도이다.
도 2에 나타낸 바와 같이, 본 발명의 실시예에 따른 블록 교체방법을 적용하기 위한 하이브리드 저장 시스템 모델로, 크게 HDD와 고스트 큐(Ghost Queue)와 SSD 큐(Queue)로 구성된다. 블록이 요청될 경우, 가장 먼저 SSD 큐에 요청된 블록이 있는지 찾는다. SSD 큐에 요청된 블록이 없을 경우, 그 다음 고스트 큐에 요청된 블록이 있는지 찾는다. 요청된 블록이 고스트 큐에 있다면, 요청된 블록이 저장된 HDD에서 SSD로 옮긴다. 반면에 요청된 블록이 SSD 큐와 고스트 큐에 없을 경우, 요청된 블록을 고스트 큐의 MRU(Most Recetly Used) 위치에 저장한다.
본 발명의 주된 목적은 사용 기록을 바탕으로 자주 요청되는 블록을 구별하는 것이라는 점에서, 상술한 바와 같이 동적으로 크기가 조정되는 고스트 큐를 SSD에 할당하기 위한 필터로 사용함으로써, 본 발명은 효과적으로 불필요한 쓰기 횟수를 줄이고 히트율을 높일 수 있게 된다.
(b) 단계는 SSD 큐가 현재 존재하는 블록의 최근성(Recency) 값 및 참조빈도(Frequency) 값을 바탕으로 블록의 우선성(Priority) 값을 산출하는 단계이다.
SSD에 할당된 블록을 효과적으로 관리하기 위해, 본 발명의 실시예에 따른 블록의 우선성에 기반한 SSD의 블록 교체방법(BRAL)의 알고리즘은 방출할 블록을 정의하는 우선성(Priority)를 정의하고 이를 기반으로 블록 우선순위를 정의한다.
블록 우선성(Priority)은 블록의 최근성(Recency)과 참조빈도(Frequency)을 바탕으로 정의한다. 블록의 최근성(Recency)은 처음 SSD에 할당된 시간부터 교체(evict) 되기까지 매번 사용된 시간을 고려한 엑세스 지역성(Access Locality)과 최근 사용된 시간부터 현재까지의 시간을 고려하는 에이지(Age)로 정의하고, 블록의 참조빈도는 블록의 요청횟수(Hit count)로 정의한다.
본 발명의 실시예에 따른 블록의 교체방법 알고리즘에 사용되는 변수들은 다음과 같이 정의한다.
T : 현재 시간
Tr(n) : 블록 n이 최근 엑세스되었던 시간
A(n) : 블록n의 에이지(Age)
Di(n) : 블록n의 I 번째 엑세스와 I+1번째 엑세스의 거리
L(n) : 블록n의 지역성 값(Locality)
R(n) : 블록n의 최근성(Recency) 값
C(n) : 블록n의 엑세스 횟수
P(n) : 블록n의 우선성(Priority) 값
이와 같이, 본 발명의 실시예에서는 블록의 우선순위 값을 구하기 위한 두가지 요소 중 하나인 최근성(Recency) 값은 블록의 엑세스 지역성(Access Locality) 값과 에이지(Age)로 정의한다. 따라서 블록 n의 에이지는 최근 사용 이후로 SSD에 얼마나 오랫동안 체류하고 있는지를 의미한다. 따라서 블록의 에이지는 다음의 [수학식 3]과 같이 계산된다.
Figure 112015119401769-pat00009
블록의 에이지(Age)는 마지막으로 사용된 이후에서의 체류시간을 고려한다. 따라서 과거의 사용 정보를 전혀 고려하지 못하기 때문에, 자주 쓰이는 블록을 정확하게 선별하기 위해 블록 엑세스 지역성(Access Locality)을 통해 블록의 과거 사용정보를 같이 고려한다.
블록 엑세스 지역성 값은 처음 SSD에 할당된 시점부터 계산된 모든 엑세스 거리를 평균하여 계산함으로써 얻을 수 있다. 블록의 엑세스 거리는 특정 블록이 엑세스되었던 시간과 그 다음 엑세스 되었던 시간의 차로 얻을 수 있다. 따라서 블록 엑세스 지역 값은 다음의 [수학식 4]와 같이 계산된다.
Figure 112015119401769-pat00010
블록의 최근성 값(R(n))을 정의하기 위해, 블록의 에이지(Age)와 블록 엑세스 지역성(Access Locality) 값을 각각의 가중치를 이용한 뒤 합하여 다음의 [수학식 5]와 같이 정의하였다.
Figure 112015119401769-pat00011
여기서 wA는 에이지(A)의 가중치이고, wL은 지역성 값의 가중치를 나타낸다. A 값과 L 값과 마찬가지로, 낮은 R값을 가지는 블록일수록, 자주 사용되고 있으며, 앞으로도 자주 사용될 블록으로 판단하고, SSD에 오랫동안 머물게 된다. [수학식 5]의 식으로 계산된 최근성 값과 히트횟수를 바탕으로 블록 n의 우선성 값(P(n))은 다음의 [수학식 6]과 같이 정의할 수 있다.
Figure 112015119401769-pat00012
P(n) 값은 블록 n이 히트될 때마다 증가하며, 더 높은 최근성을 가져 상대적으로 R(n)의 값은 낮아진다. 만일 블록이 처음 SSD에 할당된 경우, P(n)의 값은 1로 초기화한다. 다시 사용될 경우, 위의 수식에 따라 P(n)을 계산하여 반영한다.
도 3은 본 발명의 실시예에 따른 블록의 우선성에 기반한 SSD의 블록 교체방법으로서, SSD에 할당된 블록을 관리하는 알고리즘의 흐름도이다. 도 3에 나타낸 바와 같이, 블록이 SSD에 처음 할당될 때, P(n)은 1로 초기화한다. 특정 블록에 대한 읽기 혹은 쓰기요청이 들어오게 되면, 가장 먼저 SSD 큐(Queue)에 요청된 블록이 있는지 검색한다. 요청된 블록이 SSD Queue에 있을 경우, SSD에 저장된 블록의 P(n)은 본 발명의 실시예에서 제안한 블록의 교체방법 알고리즘에 따라 갱신한다.
반면, 요청된 블록이 SSD 큐에 없을 경우, 블록의 P(n)을 업데이트하고, 가장 낮은 P(n) 값을 갖는 블록을 교체(evict)한다. 그리고 나서, 요청된 블록을 고스트 큐에서 이동시켜 SSD 큐에 할당한다. 도 3에서 예시한 SSD의 내부 관리 알고리즘에 대해서만 국한한다.
성능평가
본 발명의 우수성을 증명하기 위해, 유메스 트레이스 리파지토리(UMASS Trace Repository)의 두 가지 실제 워크로드(Workload) 기반 트레이스를 통해 성능비교 하였다. 트레이스(trace)는 웹서치(Websearch)와 파이낸셜(Financial)을 사용하였으며, 트레이스는 각각 1055448개, 3699194개의 요청 데이터를 갖고 있다. 또한 각 트레이스(trace)의 특성에 따라 한 블록의 크기를 각각 4KByte와 512Byte로 설정하였다. 본 발명의 실시예에서 제안하는 블록 교체방법과 비교대상으로써 가장 일반적인 LRU와 LFU, MQ, ARC, LARC알고리즘과 성능비교 하였다. 트레이스의 자세한 내용은 아래와 같다.
웹서치(Websearch)
읽기요청 데이터 수 : 1055236
쓰기요청 데이터 수 : 212
전체요청 데이터 수 : 1055448,
전체요청 데이터 대비 읽기 요청 데이터 수 : 99.97%
파이낸셜(Financial)
읽기요청 데이터 수 : 3046112
쓰기요청 데이터 수 : 653082
전체요청 데이터 수 : 3699194
전체요청 데이터 대비 읽기 요청 데이터 수 : 82.34%
각각의 트레이스 파일을 기반으로 SSD캐시 크기를 총 다섯 단계로 나누어서 크기별로 시뮬레이션 하였으며, 성능비교 결과, 본 발명의 실시예에서 제안한 블록 교체방법이 기존 교체 정책과 비교하여 향상된 히트율(hit ratio)과 낮은 쓰기 횟수를 보여주었으며, SSD캐시 크기가 작을수록 더욱 향상된 히트율을 보여주었다.
도 4는 기존의 블록 교체 알고리즘과 본 발명의 실시예에 따른 블록 교체 알고리즘의 웹서치 트레이스(Websearch trace)를 이용한 시뮬레이션 히트율(hit ration)을 비교한 그래프이다. 도 4에 나타낸 바와 같이, 실제 워크로드(workload) 기반 트레이스를 이용하여 시뮬레이션한 것으로, 웹서치 트레이스(Websearch trace)를 이용하여 성능평가 하였으며, BRAL은 본 발명의 실시예에 따른 블록 교체 알고리즘이며, 나머지 다섯 가지는 기존에 개발된 알고리즘으로서, 본 발명의 실시예에 따른 BRAL의 히트율 값이 높게 나타나고 있음을 알 수 있다.
도 5는 기존의 블록 교체 알고리즘과 본 발명의 실시예에 따른 블록 교체 알고리즘의 파이낸셜 트레이스(Financial trace)를 이용한 시뮬레이션 히트율(hit ration)을 비교한 그래프이다. 도 5의 경우에도 도 4의 경우와 만찬가지로, 본 발명의 실시예에 따른 블록 교체 알고리즘이 기존의 개발된 블록 교체 알고리즘과 비교하여 높은 히트율(Hit ratio)을 보여주었다.
도 6은 기존의 블록 교체 알고리즘과 본 발명의 실시예에 따른 블록 교체 알고리즘의 웹서치 트레이스(Websearch trace)를 이용한 시뮬레이션 SSD 쓰기 횟수(write operation)를 비교한 그래프이다. 도 6에 나타낸 바와 같이, 본 발명의 실시예에 따른 블록 교체 알고리즘(BRAL)이 LARC와 동일하게 쓰기 횟수가 낮게 나타나고 있음을 알 수 있다.
도 7은 기존의 블록 교체 알고리즘과 본 발명의 실시예에 따른 블록 교체 알고리즘의 파이낸셜 트레이스(Financial trace)를 이용한 시뮬레이션 SSD 쓰기 횟수(write operation)를 비교한 그래프이다. 도 67에 나타낸 바와 같이, 본 발명의 실시예에 따른 블록 교체 알고리즘(BRAL)이 LARC와 유사하거나 보다 더 쓰기 횟수가 낮게 나타나고 있음을 알 수 있다. 즉, 도 6 및 도 7에 나타낸 바와 같이, 본 발명의 실시예에 따른 블록의 우선성에 기반한 SSD의 블록 교체방법이 종래의 블록 교체방법 보다 적은 쓰기 횟수를 보여주고 있고, 이는 본 발명의 실시예에 따른 블록 교체방법이 SSD 수명을 향상시킬 수 있음을 나타낸다.

Claims (15)

  1. SSD를 HDD의 캐시(Cache)로 사용하는 확장된 디스크 시스템에서,
    (a) 요청된 블록(Block)이 SSD 큐(Queue)에 없는 경우, 해당 블록이 존재하는 HDD의 고스트 큐(Ghost Queue)의 크기를 재조정하는 단계; (b) 고스트 큐가 현재 존재하는 블록의 최근성(Recency) 값 및 참조빈도(Frequency) 값을 바탕으로 블록의 우선성(Priority) 값을 산출하는 단계; 및 (c) 고스트 큐가 현재 존재하는 블록들 중 상기 우선성에 따라 해당 블록의 교체(eviction) 여부를 결정하는 단계를 포함하되,
    상기 (b) 단계에서, 상기 블록의 최근성(Recency) 값은, 블록의 엑세스 지역성(Access Locality) 값 및 에이지(Age) 값을 바탕으로 산출되고,
    상기 블록의 엑세스 지역성(Access Locality) 값은,
    Figure 112016095145601-pat00026

    (여기서, L(n)은 엑세스 지역성 값을 나타내고, Di(n)은 블록 n의 I번째 엑세스와 I+1번째 액세스의 거리를 나타내고, C(n)은 블록 n의 엑세스 횟수를 나타낸다.)와 같은 식을 만족하는 것을 특징으로 하는 블록의 우선성에 기반한 SSD의 블록 교체방법.
  2. 청구항 1에 있어서,
    상기 (a) 단계는,
    요청된 블록이 SSD 큐에 없는 경우, 상기 고스트 큐가 해당 블록의 메타데이터가 자신에게 존재하는지 여부를 확인하는 단계; 및
    상기 고스트 큐에 해당 블록의 메타데이터가 있는 경우, 상기 고스트 큐의 크기를 재조정하는 단계를 포함하는 것을 특징으로 하는 블록의 우선성에 기반한 SSD의 블록 교체방법.
  3. 청구항 2에서
    상기 고스트 큐의 크기를 재조정하는 산출식은,
    Figure 112016095145601-pat00013

    (여기서, Sq는 SSD 큐의 싸이즈이고, Gq는 고스트 큐의 싸이즈이다.)와 같은 식을 만족하는 것을 특징으로 하는 블록의 우선성에 기반한 SSD의 블록 교체방법.
  4. 청구항 1에 있어서,
    상기 (a) 단계는,
    요청된 블록이 SSD 큐에 없는 경우, 고스트 큐에 저장된 블록의 메타데이터를 SSD 큐로 이동시키는 단계;
    SSD 큐 및 고스트 큐 모두 요청된 블록이 없을 경우, HDD에서 불러온 블록의 메타데이터를 상기 고스트 큐에 저장하는 단계; 및
    상기 고스트 큐의 크기를 재조정하는 단계를 포함하는 것을 특징으로 하는 블록의 우선성에 기반한 SSD의 블록 교체방법.
  5. 청구항 4에 있어서,
    상기 고스트 큐의 크기를 재조정하는 산출식은,
    Figure 112016095145601-pat00014

    (여기서, Sq는 SSD 큐의 싸이즈이고, Gq는 고스트 큐의 싸이즈이다.)와 같은 식을 만족하는 것을 특징으로 하는 블록의 우선성에 기반한 SSD의 블록 교체방법.
  6. 삭제
  7. 청구항 1에 있어서,
    상기 블록의 에이지(Age) 값은,
    Figure 112016095145601-pat00015

    (여기서 A(n)은 블록의 에이지 값을 나타내고, T는 현재시간을 나타내고, Tr(n)은 블록 n의 최근 엑세스 되었던 시간을 나타낸다.)
    와 같은 식을 만족하는 것을 특징으로 하는 블록의 우선성에 기반한 SSD의 블록 교체방법.
  8. 삭제
  9. 청구항 1에 있어서,
    상기 블록의 최근성(Recency) 값은,
    Figure 112016095145601-pat00017

    (A(n)은 블록의 에이지 값을 나타내고, L(n)은 블록의 엑세스 지역성(Access Locality) 값을 나타내고, WA 및 WL 은 가중치를 나타낸다.)
    와 같은 식을 만족하는 것을 특징으로 하는 블록의 우선성에 기반한 SSD의 블록 교체방법.
  10. 청구항 1에 있어서,
    상기 (c) 단계에서,
    상기 블록의 우선성(Priority) 값은,
    Figure 112015119401769-pat00018

    (여기서, C(n)은 블록 n의 엑세스 횟수를 나타내고, R(n)은 블록 n의 최근성(Recency) 값을 나타낸다.)
    와 같은 식을 만족하는 것을 특징으로 하는 블록의 우선성에 기반한 SSD의 블록 교체방법.
  11. 청구항 1에 있어서,
    상기 (c) 단계는,
    SSD 큐가 현재 존재하는 블록들 중 상기 우선성 값이 최저값을 갖는 블록을 교체(eviction) 결정하는 단계인 것을 특징으로 하는 블록의 우선성에 기반한 SSD의 블록 교체방법.
  12. 청구항 10에 있어서,
    블록이 상기 SSD 큐에 할당되는 경우,
    상기 SSD 큐가 상기 C(n) 값 및 P(n) 값을 1로 초기화하는 단계를 더 포함하는 것을 특징으로 하는 블록의 우선성에 기반한 SSD의 블록 교체방법.
  13. 청구항 1에 있어서,
    상기 블록의 참조빈도 값은,
    블록의 요청 횟수(Hit Count)로 산출되는 것을 특징으로 하는 블록의 우선성에 기반한 SSD의 블록 교체방법.
  14. HDD, 고스트 큐(Ghost Queue) 및 SSD 큐(Queue)로 구성된 저장 시스템에 있어서,
    요청된 블록(Block)이 SSD 큐(Queue)에 없는 경우, 해당 블록이 존재하는 HDD의 고스트 큐(Queue)의 크기를 재조정하고, 상기 고스트 큐(Ghost Queue)가 현재 존재하는 블록의 최근성(Recency) 값 및 참조빈도(Frequency) 값을 바탕으로 블록의 우선성(Priority) 값을 산출하고, 현재 존재하는 블록들 중 상기 우선성에 따라 해당 블록의 교체(eviction) 여부를 결정하되,
    상기 블록의 최근성(Recency) 값은, 블록의 엑세스 지역성(Access Locality) 값 및 에이지(Age) 값을 바탕으로 산출되고,
    상기 블록의 엑세스 지역성(Access Locality) 값은,
    Figure 112016095145601-pat00027

    (여기서, L(n)은 엑세스 지역성 값을 나타내고, Di(n)은 블록 n의 I번째 엑세스와 I+1번째 액세스의 거리를 나타내고, C(n)은 블록 n의 엑세스 횟수를 나타낸다.)와 같은 식을 만족하는 것을 특징으로 하는 블록의 우선성에 기반한 하이브리드 저장 시스템.
  15. 하드웨어와 결합되어 청구항 1의 블록의 우선성에 기반한 SSD의 블록 교체방법을 실행시키기 위하여 컴퓨터가 판독 가능한 매체에 저장된 컴퓨터프로그램.



KR1020150173071A 2015-12-07 2015-12-07 블록의 우선성에 기반한 ssd의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템 KR101704936B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150173071A KR101704936B1 (ko) 2015-12-07 2015-12-07 블록의 우선성에 기반한 ssd의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150173071A KR101704936B1 (ko) 2015-12-07 2015-12-07 블록의 우선성에 기반한 ssd의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템

Publications (1)

Publication Number Publication Date
KR101704936B1 true KR101704936B1 (ko) 2017-02-09

Family

ID=58154396

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150173071A KR101704936B1 (ko) 2015-12-07 2015-12-07 블록의 우선성에 기반한 ssd의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템

Country Status (1)

Country Link
KR (1) KR101704936B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101913969B1 (ko) * 2017-11-28 2018-10-31 인하대학교 산학협력단 디스크 기반 비디오 저장 서버에서 ssd 수명을 보장하는 ssd 캐시 관리 방법 및 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040076313A (ko) * 2003-02-25 2004-09-01 이승룡 버퍼 캐시 분할 관리 방법
KR20110115759A (ko) * 2010-04-16 2011-10-24 성균관대학교산학협력단 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치
KR101241976B1 (ko) 2011-02-17 2013-03-11 인하대학교 산학협력단 Ssd 기반 저장장치
KR20140011346A (ko) 2011-04-11 2014-01-28 숏토 모리텍스 가부시키가이샤 광학 이방성 파라미터 측정 장치, 측정 방법 및 측정용 프로그램
KR20140116933A (ko) * 2012-02-16 2014-10-06 애플 인크. 복합식 비휘발성 저장 디바이스를 위한 데이터 이송

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040076313A (ko) * 2003-02-25 2004-09-01 이승룡 버퍼 캐시 분할 관리 방법
KR20110115759A (ko) * 2010-04-16 2011-10-24 성균관대학교산학협력단 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치
KR101241976B1 (ko) 2011-02-17 2013-03-11 인하대학교 산학협력단 Ssd 기반 저장장치
KR20140011346A (ko) 2011-04-11 2014-01-28 숏토 모리텍스 가부시키가이샤 광학 이방성 파라미터 측정 장치, 측정 방법 및 측정용 프로그램
KR20140116933A (ko) * 2012-02-16 2014-10-06 애플 인크. 복합식 비휘발성 저장 디바이스를 위한 데이터 이송

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101913969B1 (ko) * 2017-11-28 2018-10-31 인하대학교 산학협력단 디스크 기반 비디오 저장 서버에서 ssd 수명을 보장하는 ssd 캐시 관리 방법 및 장치

Similar Documents

Publication Publication Date Title
EP3210121B1 (en) Cache optimization technique for large working data sets
JP6613375B2 (ja) プロファイリングキャッシュ置換
US9235508B2 (en) Buffer management strategies for flash-based storage systems
US10185668B2 (en) Cost-aware cache replacement
US9779027B2 (en) Apparatus, system and method for managing a level-two cache of a storage appliance
US9098417B2 (en) Partitioning caches for sub-entities in computing devices
US9489239B2 (en) Systems and methods to manage tiered cache data storage
US9104327B2 (en) Fast translation indicator to reduce secondary address table checks in a memory device
US20140115241A1 (en) Buffer management apparatus and method
US9063862B2 (en) Expandable data cache
US9501419B2 (en) Apparatus, systems, and methods for providing a memory efficient cache
US9591096B2 (en) Computer system, cache control method, and server
KR101297442B1 (ko) 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템
US10289558B2 (en) Apparatus and method for reducing storage class memory write-backs
US9846647B2 (en) Cache device and control method threreof
KR101105127B1 (ko) 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치
KR101704936B1 (ko) 블록의 우선성에 기반한 ssd의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템
KR101675694B1 (ko) 블록 인기도에 기반한 ssd의 블록 교체방법
Park et al. A cost-aware page replacement algorithm for nand flash based mobile embedded systems
Liu et al. FLAP: Flash-aware prefetching for improving SSD-based disk cache
US10210097B2 (en) Memory system and method for operating the same
Cesana et al. Multi-buffer manager: Energy-efficient buffer manager for databases on flash memory
KR101976320B1 (ko) 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법
US20180150408A1 (en) Control device, storage system and method
US20210263648A1 (en) Method for managing performance of logical disk and storage array

Legal Events

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

Payment date: 20200203

Year of fee payment: 4