KR101573375B1 - 스토리지 서버 환경에서 지역성 기반 ssd 캐시 모듈 - Google Patents

스토리지 서버 환경에서 지역성 기반 ssd 캐시 모듈 Download PDF

Info

Publication number
KR101573375B1
KR101573375B1 KR1020130131411A KR20130131411A KR101573375B1 KR 101573375 B1 KR101573375 B1 KR 101573375B1 KR 1020130131411 A KR1020130131411 A KR 1020130131411A KR 20130131411 A KR20130131411 A KR 20130131411A KR 101573375 B1 KR101573375 B1 KR 101573375B1
Authority
KR
South Korea
Prior art keywords
storage
cache
block
ssd
blocks
Prior art date
Application number
KR1020130131411A
Other languages
English (en)
Other versions
KR20150050764A (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 KR1020130131411A priority Critical patent/KR101573375B1/ko
Publication of KR20150050764A publication Critical patent/KR20150050764A/ko
Application granted granted Critical
Publication of KR101573375B1 publication Critical patent/KR101573375B1/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/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

서버 환경에서 지역성 기반 SSD 캐시 모듈이 제공된다. 본 발명의 실시예에 따른 SSD 캐시 모듈은, 서버 시스템에서 SSD를 OS의 캐시에서 사용하는 블록 크기로 구획하여 SSD 캐시로 사용 및 관리한다. 이에 의해, SSD 캐시의 성능을 극대화할 수 있다.

Description

스토리지 서버 환경에서 지역성 기반 SSD 캐시 모듈{Locality-aware SSD Cache Module based on Server Environment}
본 발명은 캐시 모듈에 관한 것으로, 더욱 상세하게는 서버 환경에서 지역성 기반으로 SSD(Solid State Disk or Drive)를 캐시로 관리하는 SSD 캐시 모듈 및 이를 적용한 서버 시스템에 관한 것이다.
한편, 현재 서버 환경에서 Extended File System이 많이 사용되고 있으며, Extended File System은 지역성을 기반으로 하여 Block Group이라는 논리적인 묶음으로 설계되어 있기 때문에 HDD 환경에서 성능상 이점을 제공하고 있다.
도 1은 HDD 환경에서 6개의 파일 시스템을 성능 평가한 결과이며 Extended File System이 HDD 환경에서 성능상의 이점을 제공하는 것을 확인할 수 있다. 도 1을 분석해보면 BTRFS가 Intial Write와 Rewrite에 대하여 다른 File System과 비교하여 월등한 성능을 나타내는 것을 보이나, 전체적인 성능을 평가하였을 경우 매우 낮은 성능을 보이는 것을 알 수 있다.
한편, SSD는 HDD에 비교하여 성능상 큰 이점을 보이지만, 가격과 수명으로 인하여 서버 환경에서 Primary Storage Device로 사용상 어려움이 존재한다. 현재까지 설계된 파일 시스템의 경우, 성능상의 이유로 특정 영역이 다른 영역에 비하여 많은 write 횟수를 보이고 있으며, 이런 지역성의 특성은 SSD의 수명에 큰 영향을 주는 문제가 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, HDD 특성을 반영하고 있는 대다수의 파일 시스템을 사용하는 스토리지 서버 환경에서 지역성을 기반으로 하는 특성을 고려하여, SSD를 캐시로 이용함에 있어 그 성능을 극대화할 수 있는 방법 및 시스템을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, 서버 시스템은, 제1 스토리지; 제2 스토리지; 및 상기 제1 스토리지에 데이터를 저장하고, 상기 제2 스토리지에 데이터를 저장하는 프로세서;를 포함하고, 상기 프로세서에는, 상기 제2 스토리지를, OS(Operating System)의 캐시에서 사용하는 블록 크기로 구획하여 스토리지 캐시로 사용 및 관리하는 스토리지 캐시 모듈이 실행된다.
그리고, 상기 스토리지 캐시 모듈은, 상기 OS의 캐시와 상기 제1 스토리지 사이에서 미들웨어로 기능할 수 있다.
또한, 상기 스토리지 캐시를 구성하는 블록 크기의 하한은 4KB일 수 있다.
그리고, 상기 프로세서는, Extended File System으로 상기 제1 스토리지의 데이터 저장을 관리할 수 있다.
또한, 상기 스토리지 캐시 모듈은, 상기 스토리지 캐시의 블록들을 이중 연결 리스트(Double Linked List)로 관리할 수 있다.
그리고, 상기 스토리지 캐시 모듈은, 빈 블록의 개수가 정해진 개수 미만이면, 사용 빈도를 기준으로 일부의 블록들을 상기 제1 스토리지에 옮길 수 있다.
또한, 상기 스토리지 캐시 모듈은, 파워-오프 명령시, 상기 스토리지 캐시에 저장된 블록들을 상기 제1 스토리지에 플러싱(flushing)할 수 있다.
그리고, 상기 제1 스토리지는, HDD(Hard Disk Drive)이고, 상기 제2 스토리지는, SSD(Solid State Disk)일 수 있다.
한편, 본 발명의 다른 실시예에 따른, 스토리지 캐시 관리 방법은, 제1 스토리지에 데이터를 저장하는 단계; 및 제2 스토리지를, OS(Operating System)의 캐시에서 사용하는 블록 크기로 구획하여 스토리지 캐시로 사용 및 관리하는 단계;를 포함한다.
이상 설명한 바와 같이, 본 발명의 실시예들에 따르면, SSD의 블록 크기를 OS의 캐쉬와 동일하게 하여 SSD 캐시의 성능을 극대화할 수 있고, 이중 연결 리스트에 의한 블록 관리로 블록 써치 시의 오버헤드를 최소화시킬 수 있다.
아울러, 빈 블록의 개수가 부족해지면, LRU 블록 교체 정책에 의거 최근 사용 빈도가 낮은 블록들의 데이터를 HDD로 옮겨, 합리적인 저장공간 관리가 가능하고, 파워-오프 명령시 SSD 캐시에 저장된 모든 블록들을 HDD에 플러싱하여 안정적인 데이터 관리가 가능하다.
도 1은 HDD 환경 파일 시스템 성능 평가 비교를 나타낸 그래프,
도 2는 Linux 기반의 SSD 캐쉬 아키텍쳐의 설명에 제공되는 도면,
도 3은 SSD 캐시 모듈의 아키텍쳐를 도시한 도면,
도 4는 Read/Write Request I/O 처리 과정을 도시한 흐름도,
도 5는 Read/Write Request I/O에 연동한 블록 관리 수행 과정의 일 예를 도시한 도면, 그리고,
도 6은 본 발명의 일 실시예에 따른 서버 시스템의 블록도이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 2는 Linux 기반의 SSD(Solid State Drive or Disk) 캐쉬 아키텍쳐의 설명에 제공되는 도면이다. 도 2의 상부에는 SSD를 캐쉬 관리를 위한 SSD 캐시 모듈(SSD Cache Module)을 제외한 아키텍쳐를 도시하였고, 도 2의 하부는 SSD 캐시 모듈을 포함시킨 아키텍쳐를 도시하였다.
도시된 바와 같이, SSD 캐시 모듈은 OS(Operating System)의 페이지 캐시(Page Cache)와 HDD(Hard Disk Drive) 사이에서 미들웨어로 기능한다. HDD는 File System에 의해 데이터/파일 저장이 관리되는데, File System은 Extended File System이다.
즉, SSD 캐시 모듈은 지역성을 특성으로 하는 Extended File System을 사용하는 HDD를 기반으로 하는 서버 환경에서 동작한다.
SSD 캐시 모듈은 SSD를 OS의 페이지 캐시에서 사용하는 블록 크기로 구획하여 SSD 캐시로 사용한다. 이때, SSD 캐시를 구성하는 블록 크기의 하한은 4KB로 관리한다.
Linux 기반 서버 환경에서 Extended File System이 요청되는 make_request 요청을 분석한 결과 99% 이상이 4KB 이상의 write 또는 read request로 판명되었기 때문이다. 한편, 1% 미만의 0~2KB 크기 request size를 갖는 request는 Extended File System의 metadata access request로 분석되었다.
이에 따라, SSD 캐시 모듈은 4KB 미만의 데이터 request가 발생하면 4KB 블록을 할당하여 해당 영역에 저장하고, 4KB 보다 클 경우 request의 정보를 분할하여 write한다.
한편, 서버 시스템에 대한 파워-오프 명령이 있는 경우, SSD 캐시 모듈은 SSD 캐시에 저장된 모든 블록들을 HDD에 플러싱(flushing) 한다. 안정적인 데이터 저장을 위함이다.
도 3은 SSD 캐시 모듈의 아키텍쳐를 도시한 도면이다. 도 3에 도시된 바와 같이, SSD 캐시 모듈은 SSD 캐시 비트맵, DIT(Device Interface Translator) 및 SSD 캐시 블록 관리 모듈을 포함한다.
SSD 캐시 비트맵은 SSD 캐시 블록들의 사용 상황이 비트들로 나타나 있고, DIT는 SSD와 HDD 간의 경로(주소) 변환을 담당하며, SSD 캐시 블록 관리 모듈은 SSD 캐시를 구성하는 블록들을 사용 블록, 빈 블록 및 싱크 블록으로 구분하여 관리한다.
SSD 캐시 블록 관리 모듈에서 SSD 캐시의 블록들은 이중 연결 리스트(Double Linked List)로 관리된다. 이는, 블록 써치 시에 오버헤드를 최소화시켜 그 속도를 향상시키기 위함이다.
또한, SSD 캐시 블록 관리 모듈은 빈 블록의 개수가 부족해지면(정해진 개수 미만이 되면), LRU(Least Recently Used) 블록 교체 정책에 의거, 최근 사용 빈도가 낮은 블록들의 데이터를 HDD로 옮긴다.
도 4는 Read/Write Request I/O 처리 과정을 도시한 흐름도이다. 도 4에 도시된 바와 같이, Read Request의 경우, 비트맵을 통해 SSD 캐시에 저장되지 않은 데이터에 대한 Read Request로 판단되면, HDD에 액세스하여 데이터를 획득한다.
반면, 비트맵을 통해 SSD 캐시에 저장된 데이터에 대한 Read Request로 판단되면, SSD에 액세스하여 데이터를 획득한다.
한편, Write Request의 경우, 비트맵을 통해 해당 블록이 존재하지 않음이 확인된 경우, SSD 캐시 블록 관리 모듈에서 빈 블록을 써치하여 데이터를 기록한다. SSD 캐시 블록 관리 모듈에서 SSD 캐시의 빈 블록들은 이중 연결 리스트로 관리되므로, 빈 블록 써치에 많은 오버헤드가 발생하지 않는다.
반면, 비트맵을 통해 해당 블록이 존재함이 확인된 경우, SSD 캐시 블록 관리 모듈에서 해당 블록을 써치하여 해당 블록에 데이터를 기록한다. SSD 캐시 블록 관리 모듈에서 SSD 캐시의 사용 블록들은 이중 연결 리스트로 관리되므로, 사용 블록 써치에 많은 오버헤드가 발생하지 않는다.
도 5는 Read/Write Request I/O에 연동하여 SSD 캐시 블록 관리 모듈이 블록 관리를 수행하는 과정의 일 예를 도시한 도면이다.
도 2에 도시된 Linux 기반의 SSD 캐쉬 아키텍쳐가 적용가능한 서버 시스템에 대해, 이하에서 도 6을 참조하여 상세히 설명한다. 도 6은 본 발명의 일 실시예에 따른 서버 시스템의 블록도이다.
본 실시예에 따른 서버 시스템(100)은, 도 6에 도시된 바와 같이, 통신 인터페이스(110), 사용자 입력부(120), 프로세서(130), SSD(140) 및 HDD(150)를 포함한다.
통신 인터페이스(110)는 인터넷을 통해 클라이언트 시스템과 통신 연결하는 수단이고, 사용자 입력부(120)는 사용자 입력을 위한 수단으로, 도 2의 User Inerface에 연동된다.
SSD(140)와 HDD(150)는 모두 데이터 저장을 위한 수단으로, SSD(140)는 SSD 캐시로 활용된다. SSD(140)와 HDD(150)는, 각각 도 2의 Solid State Disk와 Hard Disk Drive에 해당한다.
프로세서(130)는 서버 시스템(100)에서 SSD(140)와 HDD(150)에 데이터를 저장하고 읽어들이는 수단으로, 도 2에 도시된 User Inerface, File System, SSD Cache Module, Block Device Module은 프로세서(130)에서 실행된다.
도 2에 도시된 Page Cache는 프로세서(130) 내에 구비시킬 수도 있고, 외부에 별도의 하드웨어로 구현할 수도 있다.
한편, SSD(140)와 HDD(150)는 스토리지의 일종으로 예시한 것으로, 다른 종류의 스토리지로 대체될 수 있음은 물론이다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 서버 시스템 110 : 통신 인터페이스
120 : 사용자 입력부 130 : 프로세서
140 : SSD(Solid State Disk) 150 : HDD(Hard Disk Drive)

Claims (9)

  1. 제1 스토리지;
    제2 스토리지; 및
    상기 제1 스토리지에 데이터를 저장하고, 상기 제2 스토리지에 데이터를 저장하는 프로세서;를 포함하고,
    상기 프로세서에는,
    상기 제2 스토리지를 스토리지 캐시로 사용 및 관리하는 스토리지 캐시 모듈이 실행되고,
    상기 스토리지 캐시 모듈은,
    상기 스토리지 캐시의 블록들을, 사용 블록, 빈 블록 및 싱크 블록으로 구분하여, 이중 연결 리스트(Double Linked List)로 관리하며,
    상기 스토리지 캐시를 OS(Operating System)의 캐시에서 사용하는 블록 크기로 구획하되, 2KB 이하의 데이터 request가 발생된 경우에도 4KB 블록을 할당하는 것을 특징으로 하는 서버 시스템.
  2. 제 1항에 있어서,
    상기 스토리지 캐시 모듈은,
    상기 OS의 캐시와 상기 제1 스토리지 사이에서 미들웨어로 기능하는 것을 특징으로 하는 서버 시스템.
  3. 삭제
  4. 제 1항에 있어서,
    상기 프로세서는,
    Extended File System으로 상기 제1 스토리지의 데이터 저장을 관리하는 것을 특징으로 하는 서버 시스템.
  5. 삭제
  6. 제 1항에 있어서,
    상기 스토리지 캐시 모듈은,
    빈 블록의 개수가 정해진 개수 미만이면, 사용 빈도를 기준으로 일부의 블록들을 상기 제1 스토리지에 옮기는 것을 특징으로 하는 서버 시스템.
  7. 제 1항에 있어서,
    상기 스토리지 캐시 모듈은,
    파워-오프 명령시, 상기 스토리지 캐시에 저장된 블록들을 상기 제1 스토리지에 플러싱(flushing) 하는 것을 특징으로 하는 서버 시스템.
  8. 제 1항에 있어서,
    상기 제1 스토리지는, HDD(Hard Disk Drive)이고,
    상기 제2 스토리지는, SSD(Solid State Disk)인 것을 특징으로 하는 서버 시스템.
  9. 제1 스토리지에 데이터를 저장하는 단계; 및
    제2 스토리지를, 스토리지 캐시로 사용 및 관리하는 단계;를 포함하고,
    상기 사용 및 관리 단계는,
    상기 스토리지 캐시의 블록들을, 사용 블록, 빈 블록 및 싱크 블록으로 구분하여, 이중 연결 리스트(Double Linked List)로 관리하고,
    상기 스토리지 캐시를 OS(Operating System)의 캐시에서 사용하는 블록 크기로 구획하되, 2KB 이하의 데이터 request가 발생된 경우에도 4KB 블록을 할당하는 것을 특징으로 하는 스토리지 캐시 관리 방법.
KR1020130131411A 2013-10-31 2013-10-31 스토리지 서버 환경에서 지역성 기반 ssd 캐시 모듈 KR101573375B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130131411A KR101573375B1 (ko) 2013-10-31 2013-10-31 스토리지 서버 환경에서 지역성 기반 ssd 캐시 모듈

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130131411A KR101573375B1 (ko) 2013-10-31 2013-10-31 스토리지 서버 환경에서 지역성 기반 ssd 캐시 모듈

Publications (2)

Publication Number Publication Date
KR20150050764A KR20150050764A (ko) 2015-05-11
KR101573375B1 true KR101573375B1 (ko) 2015-12-03

Family

ID=53388427

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130131411A KR101573375B1 (ko) 2013-10-31 2013-10-31 스토리지 서버 환경에서 지역성 기반 ssd 캐시 모듈

Country Status (1)

Country Link
KR (1) KR101573375B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100755700B1 (ko) 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법
US20100211731A1 (en) 2009-02-19 2010-08-19 Adaptec, Inc. Hard Disk Drive with Attached Solid State Drive Cache

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100755700B1 (ko) 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법
US20100211731A1 (en) 2009-02-19 2010-08-19 Adaptec, Inc. Hard Disk Drive with Attached Solid State Drive Cache

Also Published As

Publication number Publication date
KR20150050764A (ko) 2015-05-11

Similar Documents

Publication Publication Date Title
US11989160B2 (en) Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
US10515018B2 (en) Using shared virtual memory resources for performing memory-mapping
US9996542B2 (en) Cache management in a computerized system
US10860496B2 (en) Method, apparatus and computer readable medium for building multi-tier flash cache by using spare flash drives and clean user data is flushed from main flash cache to one of the spare flash drives that only stores the clean user data, wherein the main flash cache is configured as one or more pairs of flash drives and the one of the spare flash drives is allocated as single drive to secondary flash cache
US8819367B1 (en) Accelerated translation power recovery
US9959053B2 (en) Method for constructing NVRAM-based efficient file system
US7711916B2 (en) Storing information on storage devices having different performance capabilities with a storage system
US20170024140A1 (en) Storage system and method for metadata management in non-volatile memory
US9235531B2 (en) Multi-level buffer pool extensions
KR102252419B1 (ko) 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
CN107391391B (zh) 在固态硬盘的ftl实现数据拷贝的方法、***及固态硬盘
US9489239B2 (en) Systems and methods to manage tiered cache data storage
US20150067283A1 (en) Image Deduplication of Guest Virtual Machines
CN109697016B (zh) 用于改进容器的存储性能的方法和装置
US20200133875A1 (en) Method, apparatus and computer program product for managing data access
KR20090037705A (ko) 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
US9612975B2 (en) Page cache device and method for efficient mapping
CN110502455B (zh) 数据存储方法及***
US9116904B2 (en) File system operation on multi-tiered volume
KR102440128B1 (ko) 통합된 객체 인터페이스를 위한 메모리 관리 장치, 시스템 및 그 방법
KR20220139784A (ko) 객체 저장 방법 및 이를 이용하는 분산 객체 스토리지와 시스템
US20160350003A1 (en) Memory system
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
US20190294590A1 (en) Region-integrated data deduplication implementing a multi-lifetime duplicate finder
KR100995546B1 (ko) 낸드 플래시 메모리와 비휘발성 램을 사용하는 하이브리드 저장 장치 기반의 데이터베이스 시스템 및 데이터베이스 시스템에서 데이터를 업데이트하는 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant