KR20130112755A - 스토리지 관리 방법 및 장치 - Google Patents

스토리지 관리 방법 및 장치 Download PDF

Info

Publication number
KR20130112755A
KR20130112755A KR1020130033320A KR20130033320A KR20130112755A KR 20130112755 A KR20130112755 A KR 20130112755A KR 1020130033320 A KR1020130033320 A KR 1020130033320A KR 20130033320 A KR20130033320 A KR 20130033320A KR 20130112755 A KR20130112755 A KR 20130112755A
Authority
KR
South Korea
Prior art keywords
space
cost
ratio
write
caching
Prior art date
Application number
KR1020130033320A
Other languages
English (en)
Other versions
KR101456370B1 (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 홍익대학교 산학협력단
Publication of KR20130112755A publication Critical patent/KR20130112755A/ko
Application granted granted Critical
Publication of KR101456370B1 publication Critical patent/KR101456370B1/ko

Links

Images

Classifications

    • 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/0871Allocation or management of cache space
    • 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/0613Improving I/O performance in relation to throughput

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

스토리지 관리 장치가 제공된다. 상기 스토리지 관리 장치는 수신된 I/O 요청에 대한 제1 비용을 계산하는 계산부, 및 상기 제1 비용을 최소화 하는 OPS 공간(Over-Provisioned Space) 및 캐싱 공간(Caching Space)의 제1 비율을 결정하는 결정부를 포함할 수 있다.

Description

스토리지 관리 방법 및 장치{METHOD AND DEVICE FOR MANAGEMENT OF STORAGE}
스토리지 관리 기술에 연관되며, 보다 특정하게는 워크로드 I/O 패턴과 플래시 메모리 캐시의 가비지 컬렉션 비용을 고려하여 하이브리드 스토리지를 관리하는 방법 및 그 시스템에 연관된다.
일반적으로, 하이브리드 스토리지 시스템은 낸드 플래시 메모리 기반 SSD(Solid State Drive)를 비휘발성 캐시로 사용하고, 대용량의 HDD(Hard Disk Drive)를 하위 저장장치로 사용한다.
HDD는 읽기/쓰기의 속도가 느리지만 용량 대비 가격이 매우 저렴한 반면에, 최신 플래시 메모리 기반 SSD는 고성능이지만 가격이 높은 단점이 있다.
이를 보완하기 위해, 고성능의 SSD 데이터 캐시와 대용량의 HDD를 결합한 하이브리드 스토리지 시스템을 고려할 수 있으며, 이러한 하이브리드 스토리지 시스템에 적합한 플래시 메모리 캐시의 효율적인 관리 방법이 필요하다.
일반적인 DRAM 캐시와 달리, 플래시 메모리 캐시는 데이터를 보관하는 캐시 공간(Caching Space) 이외에, 가비지 컬렉션에 필요한 OPS(Over-Provisioned Space)가 요구된다. OPS는 가비지 컬렉션에 필요한 여분의 공간으로 데이터 업데이트가 발생함에 따라 사용되며, 특히 OPS가 많을수록 가비지 컬렉션의 성능 또한 향상되는 특징을 갖는다.
현재까지의 하이브리드 스토리지 장치들의 경우, 가능한 많은 데이터를 플래시 메모리 캐시에 유지하여 디스크 접근을 줄이는 방식이었으나, 이러한 방식은 데이터 비율 증가에 따라 OPS가 감소하여 가비지 컬렉션 비용이 증가되는 문제점이 발생할 수 있다. 따라서, 가비지 컬렉션 비용과 I/O 워크로드 패턴을 모두 고려한 하이브리드 스토리지 관리 방법이 요구된다.
일측에 따르면, 스토리지 관리 장치에 있어서, 수신된 I/O 요청에 대한 제1 비용을 계산하는 계산부, 및 상기 제1 비용을 최소화하는 OPS 공간(Over-Provisioned Space) 및 캐싱 공간(Caching Space)의 제1 비율을 결정하는 결정부를 포함하는 장치가 제공된다.
일실시예에 따르면, 상기 제1 비용은, 상기 I/O 요청 중 읽기 요청 비용 및 쓰기 요청 비용의 합일 수 있다.
일실시예에 따르면, 상기 캐싱 공간은, 읽기 캐싱 공간(Read Caching Space) 및 쓰기 캐싱 공간(Write Caching Space)을 포함할 수 있다.
이 경우, 상기 결정부는, 상기 읽기 캐싱 공간(Read Caching Space) 및 상기 쓰기 캐싱 공간(Write Caching Space)에 대한 제2 비율을 결정할 수 있다.
일실시예에 따르면, 상기 스토리지 관리 장치는, 상기 제1 비율에 기초하여 상기 OPS 공간(Over-Provisioned Space) 및 캐싱 공간(Caching Space)의 크기를 조절하는 제어부를 더 포함할 수 있다.
일실시예에 따르면, 상기 스토리지 관리 장치는, 상기 I/O 요청을 수신하여, 상기 I/O 요청에 대한 참조 패턴 관찰 및 순차 참조 인식을 통해 처리 여부를 판단하는 판단부를 더 포함할 수 있다.
일실시예에 따르면, 상기 계산부는, 상기 제1 비율에 따른 상기 캐싱 공간에 대한 히트율(Hit Ratio)을 측정하는 측정부를 더 포함할 수 있다.
일실시예에 따르면, 상기 측정부는, 고스트 버퍼(Ghost Buffer)를 이용하여 상기 히트율을 측정하며, 상기 고스트 버퍼는, 상기 플래시 메모리의 각 블록 별 논리주소 관리를 통해 상기 히트율을 측정할 수 있다.
이 경우, 상기 측정부는, 상기 고스트 버퍼를 N 개의 세그먼트로 분할하여, 각 구간에 대한 히트율을 측정할 수 있다.
다른 일측에 따르면, 수신된 I/O 요청에 대한 제1 비용을 계산하는 단계, 및 상기 제1 비용을 최소화하는 OPS 공간(Over-Provisioned Space) 및 캐싱 공간(Caching Space)의 제1 비율을 결정하는 단계를 포함하는 스토리지 관리 방법이 제공된다.
일실시예에 따르면, 상기 제1 비용은, 상기 I/O 요청 중 읽기 요청 비용 및 쓰기 요청 비용의 합일 수 있다.
일실시예에 따르면, 상기 캐싱 공간은, 읽기 캐싱 공간(Read Caching Space) 및 쓰기 캐싱 공간(Write Caching Space)을 포함할 수 있다.
이 경우, 상기 제1 비율을 결정하는 단계는, 상기 읽기 캐싱 공간(Read Caching Space) 및 상기 쓰기 캐싱 공간(Write Caching Space)에 대한 제2 비율을 결정하는 단계를 더 포함할 수 있다.
일실시예에 따르면, 상기 스토리지 관리 방법은, 상기 제1 비율에 기초하여 상기 OPS 공간(Over-Provisioned Space) 및 캐싱 공간(Caching Space)의 크기를 조절하는 단계를 더 포함할 수 있다.
일실시예에 따르면, 상기 제1 비용을 계산하는 단계는, 상기 제1 비율에 따른 상기 캐싱 공간에 대한 히트율(Hit Ratio)을 측정하는 단계를 더 포함할 수 있다.
이 경우, 상기 히트율(Hit Ratio)을 측정하는 단계는, 고스트 버퍼(Ghost Buffer)를 이용하여 상기 플래시 메모리의 각 블록 별 논리주소 관리를 통해 상기 히트율 측정을 수행할 수 있다.
도 1은 일실시예에 따른 스토리지 관리 장치를 도시하는 블록도이다.
도 2는 일실시예에 따른 OPS 공간의 크기 변화에 대한 스토리지의 성능 변화를 보여주는 그래프이다.
도 3은 일실시예에 따른 스토리지의 구성 관계를 보여주는 도면이다.
도 4는 일실시예에 따른 스토리지의 구조 및 I/O 요청에 대한 기대비용을 설명하는 도면이다.
도 5는 일실시예에 따른 플래시 메모리 캐시의 비용 모델을 설명하는 도면이다.
도 6은 일실시예에 따른 스토리지 비용 모델을 설명하는 도면이다.
도 7은 일실시예에 따른 스토리지 장치의 세부 구성을 나타내는 도면이다.
도 8은 일실시예에 따른 읽기/쓰기 히트율 및 기대비용의 관계를 나타내는 그래프이다.
도 9는 일실시예에 따른 스토리지 관리 방법을 도시하는 흐름도이다.
이하에서, 일부 실시예들을, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 관례, 새로운 기술의 출현 등에 따라 달라질 수 있다.
또한 특정한 경우는 이해를 돕거나 및/또는 설명의 편의를 위해 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.
도 1은 일실시예에 따른 스토리지 관리 장치(100)를 도시하는 블록도이다.
상기 스토리지 관리 장치(100)는 판단부(110), 측정부(120), 계산부(130), 결정부(140) 및 제어부(150)로 구성될 수 있다. 다만, 상기 판단부(110), 상기 측정부(120) 및 상기 제어부(150)는 선택적인(optional) 구성으로서, 일부 실시예에서는 상기 판단부(110), 상기 측정부(120) 및 상기 제어부(150)가 생략될 수도 있다.
상기 계산부(130)는 상기 스토리지 관리 장치(100)에서 수신하는 I/O 요청에 대한 제1 비용을 계산할 수 있다.
상기 제1 비용은, 상기 I/O 요청 중 읽기 요청 비용 및 쓰기 요청 비용의 합으로 정의될 수 있다.
상기 결정부(140)는 상기 제1 비용을 최소화 하도록 플래시 메모리 내의 OPS 공간(Over-Provisioned Space) 및 캐싱 공간(Caching Space)의 제1 비율을 결정할 수 있다.
상기 캐싱 공간(Caching Space)은, 읽기 캐싱 공간(Read Caching Space) 및 쓰기 캐싱 공간(Write Caching Space)를 포함할 수 있다.
이 경우, 상기 결정부(140)는 상기 읽기 캐싱 공간(Read Caching Space) 및 상기 쓰기 캐싱 공간(Write Caching Space)에 대한 제2 비율을 결정할 수 있다.
다른 실시예에 따라, 상기 스토리지 관리 장치(100)는 판단부(110)와 측정부(120), 그리고 제어부(150)를 더 포함할 수 있다.
이 경우, 상기 판단부(110)는 상기 I/O 요청을 수신하고, 이에 대한 참조 패턴 관찰 및 순차 참조 인식을 통해 처리 여부를 판단할 수 있다.
이를 테면, 상기 판단부(110)는 연속적으로 수신되는 상기 I/O 요청이 특정 용량(예를 들어, 128KB)보다 크면 순차 패턴으로 간주하여, 이를 SSD에 보내지 않고 곧바로 HDD로 보내어 처리하도록 할 수 있다.
상기 측정부(120)는 상기 제1 비율에 따른 상기 캐싱 공간의 히트율(Hit Ratio)을 측정할 수 있다.
이 경우, 상기 측정부(120)는 고스트 버퍼(Ghost Buffer)를 이용하여 상기 히트율을 측정할 수 있으며, 상기 고스트 버퍼는 상기 플래시 메모리의 각 블록 별 논리주소 관리를 통해 상기 히트율을 측정할 수 있다.
또한, 상기 측정부(120)는 상기 고스트 버퍼를 N개의 세그먼트로 분할하고, 분할된 각 구간에 대한 히트율을 측정하는 방식으로 상기 히트율 측정을 수행할 수 있다.
그리고, 상기 제어부(150)는 상기 결정부(140)에 의해 결정된 상기 제1 비율에 기초하여 상기 플래시 메모리 캐시 내의 상기 OPS 공간(Over-Provisioned Space) 및 상기 캐싱 공간(Caching Space)에 대한 크기를 조절할 수 있다.
도 2는 일실시예에 따른 OPS 공간의 크기 변화에 대한 스토리지의 성능 변화를 보여주는 그래프이다.
플래시 메모리를 데이터 캐시로 사용하는 경우, OPS 공간이나 캐싱 공간의 크기는 스토리지의 성능에 영향을 줄 수 있다.
이를 테면, 플래시 메모리에서 캐싱 공간의 감소는 캐시 히트율의 감소로 이어지고, 줄어든 캐싱 공간으로 인해 플래시 메모리 캐시의 전체 성능이 떨어질 수 있다. 반면에, 상기 캐싱 공간의 감소는 OPS의 증가로 이어져, 플래시 메모리의 가비지 콜렉션(Garbage Collection) 비용을 감소시킬 수 있다.
따라서, OPS 크기에 따라 히트율과 가비지 컬렉션 비용이 상충관계에 놓일 수 있다.
도 2에서, x축은 OPS 공간의 크기 변화를, y축은 상기 OPS 공간 크기 변화에 따른 플래시 캐시의 성능을 각각 나타낸다.
도 2를 참조하면, 삼각형 모양의 그래프(210)는 OPS 공간의 크기가 증가함에 따라 캐싱 공간이 줄어들고, 성능이 저하되는 결과를 보여준다.
그러나, 도 2의 사각형 그래프(220)를 참조하면, OPS 공간의 크기가 상대적으로 증가하면, 플래시 캐시에서 가비지 컬렉션 비용 및 데이터 업데이트 비용의 감소로 인해 전체 플래시 캐시의 성능이 향상됨을 볼 수 있다.
상기 삼각형 그래프(210) 및 상기 사각형 그래프(220)를 취합하여, 상기 스토리지의 전체 성능을 나타내는 원 그래프(230)를 생성할 수 있다. 또한, 상기 원 그래프(230) 중 상기 삼각형 그래프(210) 및 상기 사각형 그래프(220)가 교차하는 지점(231)을 최적의 포인트(Optimal Point), 즉 캐시 히트율과 가비지 컬렉션 비용을 모두 고려하여 최적의 플래시 메모리 캐시 성능을 가지는 OPS 공간 크기로 결정할 수 있다.
다만, 상기 최적의 포인트(Optimal Point)는 상기 캐시 히트율 및 상기 가비지 컬렉션 비용 이외의 기타 요인에 의해 상기 교차 지점(231)이 아닌 다른 지점으로 결정될 수도 있다.
도 3은 일실시예에 따른 스토리지의 구성 관계를 보여주는 도면이다.
상기 스토리지는 플래시 메모리를 HDD(Hard Disk Drive)의 데이터 캐시로 사용할 수 있다.
일반적인 DRAM캐시와 달리, 플래시 메모리 캐시(300)는 데이터를 보관하는 캐싱 공간(Caching Space, 310)과, 가비지 컬렉션(Garbage Collection)에 필요한 OPS 공간(Over-Provisioned Space, 320)이 필요하다.
다만, 도 3의 스토리지 구성은 상기 스토리지의 논리적 영역에 대한 일예에 불과하며, 어느 한 실시예에 국한되지 않는다.
상기 OPS 공간(320)은 가비지 컬렉션에 필요한 여분의 공간으로, 데이터 업데이트(쓰기)가 발생함에 따라 필요하다.
기존 플래시 메모리 캐시 관리 기법의 경우, 고정된 크기(Fixed Size)의 캐시 공간을 갖는 방법을 이용하는데, 이로 인해 변화하는 워크로드 패턴에 잘 적응하지 못하며, 고정적인 가비지 컬렉션 비용을 소비하는 문제점을 가지고 있다.
이러한 문제점을 보완하기 위해, 상기 스토리지 관리 장치(100)는 워크로드 패턴과 가비지 컬렉션 비용을 모두 고려하여 주기적으로 상기 플래시 메모리 캐시(300) 내의 상기 캐싱 공간(310) 및 상기 OPS 공간(320)에 대한 크기를 동적으로 조절한다.
특히, 상기 스토리지 관리 장치(100)는 주어진 워크로드 패턴에 따라 최적의 캐싱 공간(310) 및 OPS 공간(320)의 크기를 결정함에 있어, 플래시 메모리의 상이한 읽기 비용과 쓰기 비용을 모두 고려하기 위해 상기 캐싱 공간(310)을 읽기 캐싱 공간 및 쓰기 캐싱 공간으로 나누어 관리할 수 있다.
다시 말해, 상기 플래시 메모리 캐시(300)는 읽기 캐싱 공간, 쓰기 캐싱 공간, 및 OPS 공간의 세 가지 공간으로 구분될 수 있으며, 워크로드 패턴 및 가비지 컬렉션 비용 등의 변화에 따라 상기 세 가지 공간의 크기가 동적으로 조절될 수 있다.
도 4는 일실시예에 따른 스토리지의 구조 및 I/O 요청에 대한 기대비용을 설명하는 도면이다.
도 4의 일실시예에 따른 하이브리드 스토리지 시스템(Hybrid Storage System)은 HDD와 플래시 메모리 캐시로 구성된다.
상기 플래시 메모리 캐시(300)는 캐싱 공간(310) 및 OPS 공간(320)으로 구분되는데, 상기 캐싱 공간(310)은 다시 읽기 캐싱 공간(410) 및 쓰기 캐싱 공간(420)으로 나누어질 수 있으며, 각 공간의 크기는 가변적으로 조절이 가능하다.
상기 스토리지 관리 장치(100)는 스토리지의 전체 성능을 최적화하기 위해 주기적으로 상기 플래시 메모리 캐시(300)의 각 공간들을 최적의 크기로 조절할 수 있다.
최적화를 위해, 상기 스토리지 관리 장치(100)는 플래시 메모리 캐시(300) 내의 각 공간의 최적의 크기를 찾을 수 있는 수학적 모델을 유도하고, 이로부터 얻어지는 값들(플래시 메모리의 최적의 읽기 캐싱 공간, 쓰기 캐싱 공간, 및 OPS 공간에 대한 크기와 연관된 값)을 가지고 플래시 메모리 캐시(300)의 각 공간별 크기를 조절할 수 있다.
이 경우, 상기 스토리지 관리 장치(100)는 상기 플래시 메모리 캐시(300) 내의 상기 캐싱 공간(310) 및 상기 OPS 공간(320)에 대한 크기를 u : (1-u) 의 비율로 조절할 수 있으며, 이 중 상기 캐싱 공간(310) 내의 상기 읽기 캐싱 공간(410) 및 상기 쓰기 캐싱 공간(420)의 크기를 r : (1-r) 의 비율로 조절하는 방식으로, 상기 플래시 메모리 캐시(300)의 각 공간별 크기를 조절할 수 있다.
도 4에서, CHY(u, r)는 상기 스토리지의 I/O 요청에 대한 기대비용(I/O 요청을 처리하는데 소요되는 시간을 의미함)이며, u와 r의 파라미터에 따라 나타날 수 있다. u는 플래시 메모리의 데이터 영역의 비율이며, r은 데이터 영역에서의 읽기 영역의 비율을 의미한다.
이를 테면, 10GB의 플래시 메모리 캐시에서, 데이터 영역이 8GB인 경우 u는 0.8이고, 데이터 영역에서 읽기 영역의 크기가 4GB인 경우 r은 0.5의 값을 가질 수 있다.
플래시 메모리의 읽기 비용(CPR)은 거의 고정 값을 보이나, 쓰기 비용(CPW(u))은 데이터 비율(u)에 따라 증가하는 특징이 있다. 또한, u와 r에 따라 읽기와 쓰기 공간의 크기가 변하게 되어, 읽기와 쓰기 캐시의 히트율(Hit Ratio)에 영향을 줄 수 있다.
따라서, CHY는 플래시 메모리 캐시(300)의 각 공간별 크기에 연관되는 u와 r에 따른 스토리지의 비용을 나타내며, CHY가 최소화되는 u와 r을 사용함으로써, 상기 스토리지의 성능을 최적화 할 수 있다.
상기 스토리지의 비용에 대한 상세한 설명은 도 5 및 도 6에서 후술한다.
도 5는 일실시예에 따른 플래시 메모리 캐시의 비용 모델을 설명하는 도면이다.
플래시 메모리의 경우, 페이지들의 묶음인 블록들로 구성되며, 상기 플래시 메모리에 대한 읽기 및 쓰기 작업은 페이지 단위로 일정한 시간을 소비하며 이루어진다.
그러나, 플래시 메모리는 쓰기 전 소거(Erase-before-Write)라는 특성을 가지고 있어, 여러 페이지들이 포함된 블록이 소거된 후 데이터 쓰기가 가능하다. 이러한 이유로, 데이터 갱신은 소거된 블록의 클린 페이지에 변경된 데이터를 재배치하는 방식으로 수행된다.
플래시 기반 SSD는 FTL (Flash Translation Layer)을 사용하여 변경된 데이터를 새로운 공간에 기록하고, FTL은 HDD와 동일한 인터페이스를 SSD 사용자에게 제공한다.
FTL의 종류로는 페이지 매핑 FTL, 블록 매핑 FTL, 하이브리드 매핑 등이 있는데, 이 중에서도 페이지 매핑 FTL은 고성능 SSD에서 많이 사용되는 방식이다.
도 5의 플래시 메모리가 페이지 매핑 FTL을 사용한다고 가정하면, FTL은 변경된 데이터가 내려오면 클린 페이지에 기록하고, 예전 데이터가 속한 페이지는 무효화시킨다. 또한, FTL은 여유 블록이 부족한 경우, 가비지 컬렉션을 수행하여 무효 페이지들을 모아 여유 블록들을 재생산한다.
플래시 메모리에서 데이터 업데이트와 가비지 컬렉션은 여유 블록을 소비하기 때문에, 도 5의 (a)와 같이 FTL은 항상 여유 블록들을 보유한다.
데이터 업데이트 과정에서 여유 블록들을 소비하게 되므로, FTL은 여러 블록에 흩어진 유효 페이지들을 여유 블록에 모으는 가비지 컬렉션 연산을 주기적으로 수행하여 여유 블록을 생산한다.
최악의 경우, 평균 가비지 컬렉션 비용은 초기 OPS 공간과 전체 공간의 비율에 따라 결정될 수 있다. 따라서, FTL은 가능한 많은 여유 블록을 사용함으로써, 가비지 컬렉션의 평균 비용을 낮출 수 있다.
FTL의 가비지 컬렉션 수행 시, 유효 페이지의 수가 가장 적은 블록을 선택한다고 가정하면, 도 5의 (b)와 같이 모든 유효 페이지들이 모든 플래시 메모리블록에 균등하게 분포되어 있는 경우, 가비지 컬렉션에 대한 최악의 경우가 발생할 수 있다.
여기서, u를 최악 경우의 사용율(utilization)이라고 가정하면, 이 값은 초기 여유 블록과 데이터 블록의 수에 따라 결정될 수 있다.
이를 테면, 도 5(a)에서 캐싱 공간을 포함하는 블록이 3이고 초기 여유 블록이 5일 때, 최악의 경우 u는 3/(3+5-1)로 계산할 수 있다.
이 때, 1을 빼는 이유는 FTL은 적어도 한 개의 여유 블록을 가비지 컬렉션을 위해 가지고 있어야 하기 때문이다.
u로부터, 가비지 컬렉션 동작에서 선택된 블록의 최대 유효 페이지 수는 [u ·NP] 로 계산할 수 있다.
u 값에 기초하여, 최악의 경우 발생할 수 있는 가비지 컬렉션 비용은 수학식 1과 같이 나타낼 수 있다.
Figure pat00001
NP는 블록당 페이지 수를, CE는 소거 비용(시간)을, CCP는 페이지 복사 비용(시간)을 각각 의미한다.
도 5의 (c) 및 (d)에서 볼 수 있듯이, 가비지 컬렉션은 소거 비용 CE을 들여 블록을 소거 시키고, 선택된 블록의 유효 페이지들을 [u·NP]·CCP의 비용을 들여 소거된 블록에 복사한다. 그 후, 가비지 컬렉션이 수행된 블록들은 여유 블록이 되거나 다음 가비지 컬렉션이 수행할 때 사용될 수 있으며, 마지막 여유 블록에 남은 여유 페이지들은 차후에 쓰기 요청을 처리할 때 사용된다. 그리고, 모든 여유 페이지들이 소비되면, 가비지 컬렉션이 다시 수행된다.
가비지 컬렉션이 수행된 후, 최악의 경우, [(1-u)· NP] 개의 여유 페이지가 생성된다. 이는, 여유 블록에 [u·NP] 개의 페이지가 복사되고 남은 여유 페이지를 의미한다.
가비지 컬렉션 비용과 프로그램 비용을 각 쓰기 요청에 따라 나누어, 최악의 경우 u에 따른 페이지 쓰기 비용 CPW(u)은 수학식 2와 같이 정의할 수 있다.
Figure pat00002
수학식 2는 모든 유효 페이지들이 모든 블록에 균등하게 분포되었을 때, 최악의 경우에 해당하는 페이지 갱신 비용으로, CPROG는 플래시 메모리에서 1페이지를 프로그램(쓰기)하는 비용(시간)을 나타낸다.
그러나, 대체로 블록의 유효 페이지들의 수는 불균등하다. 이를 테면, 도 5(c)의 "Victim for GC"라고 표시되어 있는 블록은 다른 블록에 비해 적은 유효 블록들을 가지고 있다. 이 경우, 가비지 컬렉션 수행 시, FTL은 가장 적은 유효 페이지들을 가지는 블록을 선택하며, 가비지 컬렉션의 대상 블록의 u'는 worst cast의 u보다 작다. 이런 이유로 LFS 연구나 여러 플래시 메모리 연구들은 u' 와 u사이의 관계를 유도하여 가비지 컬렉션 비용을 예측하는데 이용하기도 한다.
Figure pat00003
U(u) 함수는 u를 u'로 변환하는 함수로, 변환 테이블을 생성하여 u를 u’로 변환할 때 이용될 수 있다.
다만, 상기 변환 함수는 수학식 3에 한정되지 아니하며, 다른 변환 함수의 적용도 가능하다.
가비지 컬렉션 비용과 평균 페이지 업데이트 비용은 U(u)함수를 적용하여 수학식 1 및 수학식 2로 정의될 수 있다.
도 6은 일실시예에 따른 스토리지 비용 모델을 설명하는 도면이다.
상기 스토리지 비용 모델은 상기 스토리지 시스템의 전체 접근 비용을 최소화하는 캐싱 공간과 OPS 공간의 최적의 크기를 결정할 수 있다.
상기 스토리지 비용 모델을 유도하기 위해, 읽기 비용 모델을 먼저 정의하고, 캐싱 공간을 읽기, 쓰기, OPS로 나누기 위한 읽기 캐싱 및 쓰기 캐싱 비용 모델을 정의할 수 있다.
읽기 요청이 상기 스토리지 시스템에 수신되는 경우, 상기 스토리지 시스템은 요청된 데이터가 플래시 메모리 캐시에 존재하는지 여부를 검사한다.
상기 요청된 데이터가 플래시 메모리 캐시에 존재하는 경우, 상기 스토리지 시스템은 데이터를 읽어 호스트 시스템에 전송하지만, 존재하지 않는 경우에는 상기 스토리지 시스템은 HDD의 데이터를 읽어 플래시 메모리 캐시에 기록한 후 호스트 시스템에 전송된다.
만약에, 플래시 메모리 캐시가 이미 데이터로 꽉 차 있는 steady 상태인 경우, 상기 스토리지 시스템은 새로운 데이터를 기록하기 위한 공간을 생성하기 위해, LRU 교체 정책을 사용하여 희생 페이지(victim page)를 쫓아내고, 해당 플래시 페이지를 무효화 시켜 여유 공간을 생성할 수 있다.
읽기 전용 모델에서 데이터들은 더티 상태가 아니므로, 시스템은 사용했던 공간을 단순히 무효화 시켜 새로운 데이터를 위해 사용할 수 있다.
HR(u)는 주어진 캐시 크기에 따라 읽기 히트율을 반환하는 함수로서, 주어진 캐싱 공간의 크기는 최악의 경우 u에 따라 결정될 수 있다.
상기 스토리지 시스템은 요청된 데이터를 읽기 히트율 HR(u)로 비용 CPR(플래시의 페이지 읽기 비용(시간))을 들여 플래시 메모리 캐시로부터 읽어온다.
또한, 상기 스토리지 시스템은 캐시 교체 정책에 따라, 읽기 미스율 1-HR(u)에 기초하여 희생 데이터를 무효화 시키고, 읽기 비용 CDR을 들여 HDD의 데이터를 읽어온다.
그리고 상기 스토리지 시스템은 플래시 메모리 캐시에 쓰기 비용 CPW(u)을 들여 HDD로부터 읽어온 데이터를 기록하며, 이 경우 쓰기 비용은 프로그램 비용뿐만 아니라 가비지 컬렉션 비용까지 포함한다.
읽기 전용 캐시를 사용하는 스토리지 시스템의 읽기 비용 CHR은 수학식 4와 같이 정의될 수 있다.
Figure pat00004
또한, 읽기 캐시 크기 SR와 OPS 크기 SOPS를 구하기 위해, 전체 플래시 메모리 캐시 크기 SF와 u를 수학식 5의 방식으로 계산하여 구할 수 있다.
Figure pat00005
수학식 5의 계산 결과에 기초하여, 캐시 공간의 크기 SR 및 OPS 크기 SOPS를 조절할 수 있다.
읽기와 쓰기 공간으로 분리된 플래시 캐시 비용 모델의 경우, 쓰기 비용 모델을 상술한 읽기 비용 모델과 통합하는 방식으로 정의될 수 있다.
읽기 캐시 공간은 최근에 HDD로부터 읽어온 데이터를 보관하는 반면에, 쓰기 캐시 공간은 파일 시스템으로부터 내려온 더티 데이터를 유지한다. 상기 더티 데이터는 상기 쓰기 캐시 공간의 부족이 발생하면 교체 정책에 의해 HDD로 쫓겨날 수 있다.
쓰기 캐시 공간은 세 가지 종류의 I/O 요청을 처리할 수 있다.
첫 번째는 쓰기 히트 요청으로, 쓰기 캐시에 이미 존재하는 데이터가 변경된 경우이다. 이 경우, 이전 데이터는 무효화되고, 시스템은 쓰기 비용 CPW을 들여 변경된 데이터를 쓰기 캐시에 기록한다.
두 번째는 쓰기 미스 요청으로, 해당 데이터가 쓰기 캐시에 존재하지 않는 경우이다. 캐시 교체 정책은 희생 데이터를 선정하고, 플래시 쓰기 캐시에서 데이터를 읽어 HDD에 기록한다. 이 때, 상기 스토리지 시스템은 steady 상태인 경우 비용 CPR + CDW을 들여 새로운 데이터를 위한 공간이 생성한다. 희생 블록이 쫓겨난 후, 상기 스토리지 시스템은 새로운 데이터를 비용 CPW(u)을 들여 쓰기 캐시 공간에 기록한다.
마지막 요청의 형태는 읽기 히트 요청이다. 이 경우, 읽기 요청에 대해 쓰기 캐시에서 더티 상태의 데이터를 제공한다. 이 때, 읽기 비용 CPR을 들여 원하는 요청이 서비스 된다.
쓰기 캐시 공간에 요청된 읽기 데이터가 없으면, 상기 스토리지 시스템은 읽기 캐싱 공간에 그 요청을 넘겨주므로, 쓰기 캐싱 공간이 읽기 미스 요청을 처리하는 경우는 발생하지 않는다.
읽기 캐싱 공간은 캐싱 공간에 대하여 r의 비율을 가지며, 파라미터 r은 0≤r≤1의 범위를 가질 수 있다. 따라서, 쓰기 캐싱 공간은 상기 캐싱 공간에 대하여 1-r의 비율의 크기를 갖게 된다.
만약, r이 1이면 상기 캐싱 공간은 모두 읽기 캐시로 사용되고, 이 값이 0이면 모든 캐싱 공간은 쓰기 캐시로 사용될 수 있다.
이와 관련하여, SC는 캐싱 공간의 전체 크기를 의미하며, SC와 r을 SR = SC ·r과 같이 계산하여 읽기 캐시 크기인 SR을 구할 수 있다.
마찬가지로, 쓰기 캐쉬 크기인 SW는 전체 캐시 크기 SC와 r을 이용하여 SW = SC·(1-r) 과 같이 계산할 수 있다.
SC는 u로부터 SC
Figure pat00006
u·SF와 같이 구할 수 있으며, 결국, 상기 캐싱 공간의 읽기 캐싱 공간 및 쓰기 캐싱 공간 각각의 캐쉬 크기인 SR과 SW가 u와 r에 의해 결정될 수 있음을 알 수 있다.
상기 스토리지 시스템의 I/O 요청에 대한 처리 비용을 구하기 위해, 상기 시스템이 읽기 히트율을 측정하고 히트율 커브인 HR(u, r)을 그릴 수 있다고 가정하면, 읽기 히트율 함수 HR(u, r)는 u와 r의 두 가지 파라미터를 사용한다.
수학식 4의 변경된 읽기 히트율 함수를 이용하여, 상기 스토리지 시스템의 읽기 비용은 수학식 6과 같이 정의될 수 있다.
Figure pat00007
쓰기 I/O 비용을 구하기 위해, 쓰기 캐싱 공간의 쓰기 히트율, 쓰기 미스율, 읽기 히트율을 구하고, 각 커브를 구할 수 있다고 가정하면, 상기 쓰기 캐싱 공간의 읽기 히트율은 쓰기 히트율의 일부분이라고 간주할 수 있다.
HW(u, r)는 주어진 u와 r을 사용하여 쓰기 히트율을 반환하는 함수로서, 쓰기 히트율 HW(u, r)를 가지고 쓰기 요청은 상기 쓰기 캐싱 공간에서 해당 데이터를 찾을 수 있다. 이 때, 비용은 HW(u, r)·CPW(r)이다.
그렇지 않으면, 쓰기 요청은 쓰기 캐싱 공간에서 미스율 1-HW(u, r) 에 따라 찾을 수 없다. 상기 쓰기 요청을 처리하기 위해, 상기 쓰기 캐싱 공간에서 데이터를 읽어 디스크에 기록하고, 여유 공간이 생성되면 새로운 데이터가 쓰기 캐시에 기록되며, 이 때 비용은 (1-HW(u, r))·(CPR+CDW+CPW(u)) 가 소비된다.
따라서, 상기 스토리지 시스템의 쓰기 비용은 수학식 7과 같이 계산될 수 있다.
Figure pat00008
쓰기 캐시에서 읽기 히트와 쓰기 히트 커브들을 분리하여 관리가 가능하지만, 이로 인해 비용 모델과 구현이 더욱 복잡해질 수 있어, 쓰기 캐싱 공간에서 읽기 히트가 발생하는 경우를 처리하기 위해서 Approximation Method를 적용할 수 있다.
쓰기 캐싱 공간에서 읽기 히트율을 h' 이라고 가정하면, 상기 쓰기 캐싱 공간에서 쓰기 히트율은 1-h' 이 된다.
이 경우, 읽기 히트율 h'만큼 읽기 비용 CPR이 발생하고, 쓰기 히트율 1-h' 만큼 쓰기 비용 CPW이 소비될 수 있다.
따라서, 읽기 히트와 쓰기 히트에 대한 평균 비용 CWH은 CWH = (1-h')·CPW + h'·CPR과 같이 계산될 수 있으며, 이는 읽기와 쓰기를 포함하는 히트율 커브 함수이다. 결국, 읽기와 쓰기를 포함하는 히트율 함수 HW(u,r)를 이용하여, 상기 스토리지 시스템의 쓰기 비용은 수학식 8과 같이 계산될 수 있다.
Figure pat00009
한편, IOR과 IOW는 모든 요청에 대해 읽기 영역과 쓰기 영역에서 처리한 비율을 의미한다. 이를 테면, 총 100개의 요청 중 읽기 영역에서 70개, 쓰기 영역에서 30개의 요청을 처리하는 경우, IOR은 0.7, IOW는 0.3으로 각각 나타낼 수 있다.
따라서, 플래시 메모리 캐시가 읽기, 쓰기, OPS 공간으로 분리된 스토리지 시스템의 전체 접근 비용 CHY(u, r)는 수학식 9와 같이 정의될 수 있다.
Figure pat00010
도 7은 일실시예에 따른 스토리지 시스템의 세부 구성을 나타내는 도면이다.
상기 스토리지 시스템은 크게 Optimal Parititining Flash Cache Layer(OP-FCL)와 Storage Device Layer로 구성될 수 있다.
OP-FCL(710)은 읽기/쓰기 요청을 처리하는 소프트웨어 계층이고, Storage Device Layer는 SSD와 HDD의 하드웨어 계층이다.
OP-FCL(710)은 Sequential I/O Detector, Workload Tracker, Page Replacer, Partition Resizer 및 Mapping Manager를 포함한 다양한 소프트웨어 모듈로 구성될 수 있다.
Sequential I/O Detector는 참조 패턴을 관찰하고 순차 참조를 인식하는 모듈로, 상기 스토리지 관리 장치(100)의 판단부(110)에 대응될 수 있다. 상기 Sequential I/O Detector는 연속적인 I/O 요청이 소정의 크기(이를 테면, 128KB)보다 크면 순차 패턴으로 간주하고, 이 요청들을 SSD에 보내지 않고 곧바로 HDD로 보낸다.
Workload Tracker는 캐시 크기에 따른 히트율 측정을 수행하며, 상기 스토리지 관리 장치(100)의 측정부(120)에 대응되는 모듈로 이해될 수 있다.
상기 Workload Tracker는 캐시 크기에 따라 히트율을 측정하기 위해, 고스트 버퍼(Ghost Buffer)를 사용할 수 있으며, 상기 고스트 버퍼는 실제 데이터가 아닌 블록의 논리 주소만 관리함으로써 고스트 버퍼의 사용에 따른 오버헤드를 줄일 수 있다. 상기 고스트 버퍼는 다양한 캐시 크기에 따라 히트율을 예측하기 위해, N-segmented 고스트 버퍼를 사용하여, 여러 범위의 히트율을 예측할 수 있다.
이를 테면, 상기 Workload Tracker는 고스트 버퍼를 N개의 세그먼트로 분할하고, 각 구간에 대한 히트값을 통해 여러 범위의 히트율을 구할 수 있다. 또한, N개의 범위 이외의 히트율은 보간법을 사용하여 읽기와 쓰기 히트율을 구할 수도 있다.
Page Replacer는 두 개의 LRU 리스트를 가지고 있으며, 각 리스트는 읽기와 쓰기 데이터를 관리한다. 각 캐시가 데이터로 꽉 찬, 즉 Steady 상태가 되면, 새로운 데이터를 위한 공간을 생성하기 위해 LRU 위치의 데이터는 쫓겨난다. 읽기 캐시의 경우 데이터는 LRU리스트에서 단순히 제거하면 된다. 반면에, 쓰기 캐시의 더티 데이터는 HDD와 일관성을 보장하기 위해 HDD로 보내져야 한다. 실제 구현에서는, Page Replace는 디스크의 탐색 시간을 최소화하기 위해 엘리베이터 디스크 스케줄링 알고리즘을 사용하여 더티 데이터를 모아 HDD에 그룹단위로 기록(Group Destaging)한다.
Partition Resizer는 읽기 캐싱 공간, 쓰기 캐싱 공간, OPS 공간의 크기를 최적의 상태로 점진적으로 조절하며, 상기 스토리지 관리 장치(100)의 계산부(130) 및 결정부(140)에 대응되는 모듈로 이해될 수 있다.
Mapping Manager의 주 역할은 논리 주소를 플래시 캐시 레이어의 물리 주소로 변환하는 것이다. 이를 위해, Mapping Manager는 변환 정보를 가지고 있는 매핑 테이블을 관리한다. Mapping Manager는 순간적인 정전에 대비하여 시스템이 아이들이거나 sync 명령이 내려오면, 또는 주기적으로, 변경된 매핑 정보를 플래시 메모리에 기록하고, 특정 영역에 복구를 위한 체크 포인트 정보를 남긴다. 만약 시스템에 정전이 발생하면, 스토리지 시스템은 마지막 체크 포인트 정보를 찾아 복구 메커니즘을 수행하여 최신 상태로 복구한다.
도 8은 일실시예에 따른 읽기/쓰기 히트율 및 기대비용의 관계를 나타내는 그래프이다.
수학식 9의 CHY(u, r)을 사용하여 최적의 u, r 파라미터를 찾는 방법은 다음과 같다.
먼저, 읽기와 쓰기 히트율 커브를 도 8(a)의 810, (b)의 820과 같이 구하고 수학식에 필요한 IOR, IOW, h'을 구한다.
수학식 9의 CHY(u, r)과 u와 r에 따른 읽기와 쓰기 히트율 커브를 사용하여, 도 8(c)의 결과를 얻을 수 있다. 이 그래프의 x축은 u, y축은 r을 각각 나타낸다.
또한, 도 8(c)에서 어두운 부분으로 갈수록 낮은 접근 비용을 나타내며, 비용이 가장 낮은 최적의 지점(Optimal Point)은 다이아몬드 마크(830)와 같이 표시될 수 있다.
이를 테면, 도 8(c)에서 u가 0.64, r이 0.25일 때, 스토리지 시스템의 접근 기대 비용이 최소가 됨을 확인할 수 있으며, 두 파라미터 u, r을 이용하여 4GB 플래시 메모리 캐시를 분할하면 읽기 캐싱 공간은 0.64GB, 쓰기 캐싱 공간은 1.92GB, OPS 공간은 1.44GB로 계산될 수 있다. 다시 말해, 플래시 메모리 캐시의 각 공간에 대한 크기를 상기의 값으로 설정함으로써, 스토리지의 성능을 최대로 할 수 있다.
도 9는 일실시예에 따른 스토리지 관리 방법을 도시하는 흐름도이다.
단계 910에서는, 상기 계산부(130)가 상기 스토리지 관리 장치(100)에서 수신하는 I/O 요청에 대한 제1 비용을 계산할 수 있다.
상기 제1 비용은, 상기 I/O 요청 중 읽기 요청 비용 및 쓰기 요청 비용의 합으로 정의될 수 있다.
단계 920에서는, 상기 결정부(140)가 상기 제1 비용을 최소화 하도록 플래시 메모리 내의 OPS 공간(Over-Provisioned Space) 및 캐싱 공간(Caching Space)의 제1 비율을 결정할 수 있다.
상기 캐싱 공간(Caching Space)은, 읽기 캐싱 공간(Read Caching Space) 및 쓰기 캐싱 공간(Write Caching Space)를 포함할 수 있다.
이 경우, 상기 결정부(140)는 상기 읽기 캐싱 공간(Read Caching Space) 및 상기 쓰기 캐싱 공간(Write Caching Space)에 대한 제2 비율을 결정할 수 있다.
다른 실시예에 따라, 상기 스토리지 관리 장치(100)는 판단부(110)와 측정부(120), 그리고 제어부(150)를 더 포함할 수 있다.
이 경우, 상기 판단부(110)는 단계 910이 수행되기 전에 상기 I/O 요청을 수신하고, 이에 대한 참조 패턴 관찰 및 순차 참조 인식을 통해 처리 여부를 판단할 수 있다.
이를 테면, 상기 판단부(110)는 연속적으로 수신되는 상기 I/O 요청이 특정 용량(예를 들어, 128KB)보다 크면 순차 패턴으로 간주하여, 이를 SSD에 보내지 않고 곧바로 HDD로 보내어 처리하도록 할 수 있다.
상기 측정부(120)는 단계 910에서, 상기 제1 비율에 따른 상기 캐싱 공간의 히트율(Hit Ratio)을 측정할 수 있다.
이 경우, 상기 측정부(120)는 고스트 버퍼(Ghost Buffer)를 이용하여 상기 히트율을 측정할 수 있으며, 상기 고스트 버퍼는 상기 플래시 메모리의 각 블록 별 논리주소 관리를 통해 상기 히트율을 측정할 수 있다.
또한, 상기 측정부(120)는 상기 고스트 버퍼를 N개의 세그먼트로 분할하고, 분할된 각 구간에 대한 히트율을 측정하는 방식으로 상기 히트율 측정을 수행할 수 있다.
그리고, 상기 제어부(150)는 단계 920에서 결정된 상기 제1 비율에 기초하여 상기 플래시 메모리 캐시 내의 상기 OPS 공간(Over-Provisioned Space) 및 상기 캐싱 공간(Caching Space)에 대한 크기를 조절할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (17)

  1. 스토리지 관리 장치에 있어서,
    수신된 I/O 요청에 대한 제1 비용을 계산하는 계산부; 및
    상기 제1 비용을 최소화 하는 OPS 공간(Over-Provisioned Space) 및 캐싱 공간(Caching Space)의 제1 비율을 결정하는 결정부
    를 포함하는 장치.
  2. 제1항에 있어서,
    상기 제1 비용은, 상기 I/O 요청 중 읽기 요청 비용 및 쓰기 요청 비용의 합인 장치.
  3. 제1항에 있어서,
    상기 캐싱 공간은, 읽기 캐싱 공간(Read Caching Space) 및 쓰기 캐싱 공간(Write Caching Space)을 포함하는 장치.
  4. 제3항에 있어서,
    상기 결정부는, 상기 읽기 캐싱 공간(Read Caching Space) 및 상기 쓰기 캐싱 공간(Write Caching Space)에 대한 제2 비율을 결정하는 장치.
  5. 제1항에 있어서,
    상기 제1 비율에 기초하여 상기 OPS 공간(Over-Provisioned Space) 및 캐싱 공간(Caching Space)의 크기를 조절하는 제어부를 더 포함하는 장치.
  6. 제1항에 있어서,
    상기 I/O 요청을 수신하여, 상기 I/O 요청에 대한 참조 패턴 관찰 및 순차 참조 인식을 통해 처리 여부를 판단하는 판단부
    를 더 포함하는 장치.
  7. 제1항에 있어서,
    상기 계산부는,
    상기 제1 비율에 따른 상기 캐싱 공간에 대한 히트율(Hit Ratio)을 측정하는 측정부
    를 더 포함하는 장치.
  8. 제7항에 있어서,
    상기 측정부는, 고스트 버퍼(Ghost Buffer)를 이용하여 상기 히트율을 측정하며,
    상기 고스트 버퍼는, 상기 스토리지의 각 블록 별 논리주소 관리를 통해 상기 히트율을 측정하는 장치.
  9. 제8항에 있어서,
    상기 측정부는, 상기 고스트 버퍼를 N 개의 세그먼트로 분할하여, 각 구간에 대한 히트율을 측정하는 장치.
  10. 스토리지 관리 방법에 있어서,
    수신된 I/O 요청에 대한 제1 비용을 계산하는 단계; 및
    상기 제1 비용을 최소화 하는 OPS 공간(Over-Provisioned Space) 및 캐싱 공간(Caching Space)의 제1 비율을 결정하는 단계
    를 포함하는 방법.
  11. 제10항에 있어서,
    상기 제1 비용은, 상기 I/O 요청 중 읽기 요청 비용 및 쓰기 요청 비용의 합인 스토리지 관리 방법.
  12. 제10항에 있어서,
    상기 캐싱 공간은, 읽기 캐싱 공간(Read Caching Space) 및 쓰기 캐싱 공간(Write Caching Space)을 포함하는 스토리지 관리 방법.
  13. 제12항에 있어서,
    상기 제1 비율을 결정하는 단계는,
    상기 읽기 캐싱 공간(Read Caching Space) 및 상기 쓰기 캐싱 공간(Write Caching Space)에 대한 제2 비율을 결정하는 단계
    를 더 포함하는 스토리지 관리 방법.
  14. 제10항에 있어서,
    상기 제1 비율에 기초하여 상기 OPS 공간(Over-Provisioned Space) 및 캐싱 공간(Caching Space)의 크기를 조절하는 단계
    를 더 포함하는 스토리지 관리 방법.
  15. 제10항에 있어서,
    상기 제1 비용을 계산하는 단계는,
    상기 제1 비율에 따른 상기 캐싱 공간에 대한 히트율(Hit Ratio)을 측정하는 단계
    를 더 포함하는 스토리지 관리 방법.
  16. 제15항에 있어서,
    상기 히트율(Hit Ratio)을 측정하는 단계는, 고스트 버퍼(Ghost Buffer)를 이용하여 상기 스토리지의 각 블록 별 논리주소 관리를 통해 상기 히트율 측정을 수행하는 스토리지 관리 방법.
  17. 제10항 내지 제16항 중 어느 한 항의 스토리지 관리 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
KR1020130033320A 2012-04-04 2013-03-28 스토리지 관리 방법 및 장치 KR101456370B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20120035162 2012-04-04
KR1020120035162 2012-04-04

Publications (2)

Publication Number Publication Date
KR20130112755A true KR20130112755A (ko) 2013-10-14
KR101456370B1 KR101456370B1 (ko) 2014-11-03

Family

ID=49633638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130033320A KR101456370B1 (ko) 2012-04-04 2013-03-28 스토리지 관리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101456370B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101539895B1 (ko) * 2014-09-30 2015-07-27 홍익대학교 산학협력단 오버 프로비저닝 스페이스 사이즈를 결정하는 컴퓨팅 방법 및 장치
KR20200081692A (ko) * 2018-12-28 2020-07-08 (주) 글루시스 사용자 개별 서비스 환경을 위한 스토리지 장치 제어 방법 및 스토리지 컨트롤러
KR20200124070A (ko) * 2019-04-23 2020-11-02 삼성전자주식회사 멀티 코어 솔리드 스테이트 드라이브의 운용 방법
US11520504B2 (en) 2020-04-09 2022-12-06 SK Hynix Inc. Data storage device and operating method thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418510B1 (en) 2000-09-14 2002-07-09 International Business Machines Corporation Cooperative cache and rotational positioning optimization (RPO) scheme for a direct access storage device (DASD)
US7328309B2 (en) 2004-10-14 2008-02-05 International Business Machines Corporation On-demand cache memory for storage subsystems
KR101064178B1 (ko) 2010-08-24 2011-09-14 한국과학기술원 버퍼 캐시 관리 시스템 및 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101539895B1 (ko) * 2014-09-30 2015-07-27 홍익대학교 산학협력단 오버 프로비저닝 스페이스 사이즈를 결정하는 컴퓨팅 방법 및 장치
KR20200081692A (ko) * 2018-12-28 2020-07-08 (주) 글루시스 사용자 개별 서비스 환경을 위한 스토리지 장치 제어 방법 및 스토리지 컨트롤러
US10891150B2 (en) 2018-12-28 2021-01-12 Gluesys Co., Ltd. Storage control method and storage controller for user individual service environment
KR20200124070A (ko) * 2019-04-23 2020-11-02 삼성전자주식회사 멀티 코어 솔리드 스테이트 드라이브의 운용 방법
US11237979B2 (en) 2019-04-23 2022-02-01 Samsung Electronics Co., Ltd. Method for management of multi-core solid state drive
US11520504B2 (en) 2020-04-09 2022-12-06 SK Hynix Inc. Data storage device and operating method thereof

Also Published As

Publication number Publication date
KR101456370B1 (ko) 2014-11-03

Similar Documents

Publication Publication Date Title
US11216185B2 (en) Memory system and method of controlling memory system
JP7046669B2 (ja) 逆キャッシュテーブルを用いるハードウェアベースのマップアクセラレーション
US20170185512A1 (en) Specializing i/o access patterns for flash storage
Murugan et al. Rejuvenator: A static wear leveling algorithm for NAND flash memory with minimized overhead
US10552317B2 (en) Cache allocation in a computerized system
US10922235B2 (en) Method and system for address table eviction management
US9135181B2 (en) Management of cache memory in a flash cache architecture
Park et al. CFLRU: a replacement algorithm for flash memory
US8914600B2 (en) Selective data storage in LSB and MSB pages
Shim et al. An adaptive partitioning scheme for DRAM-based cache in solid state drives
JP2012141946A (ja) 半導体記憶装置
US10635581B2 (en) Hybrid drive garbage collection
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
JP2020529679A (ja) Ssdの寿命の伸長
KR101456370B1 (ko) 스토리지 관리 방법 및 장치
Wang et al. A novel buffer management scheme based on particle swarm optimization for SSD
KR101155542B1 (ko) Ssd 장치의 매핑 테이블 관리 방법
Park et al. Buffer flush and address mapping scheme for flash memory solid-state disk
KR101157763B1 (ko) Trim 명령 처리 기능이 추가된 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및 그 장치
Yao et al. Uniform scheduling of interruptible garbage collection and request IO to improve performance and wear-leveling of SSDs
JP5638022B2 (ja) ディスクアレイ装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee