KR20200140534A - 비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치 - Google Patents

비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치 Download PDF

Info

Publication number
KR20200140534A
KR20200140534A KR1020190067264A KR20190067264A KR20200140534A KR 20200140534 A KR20200140534 A KR 20200140534A KR 1020190067264 A KR1020190067264 A KR 1020190067264A KR 20190067264 A KR20190067264 A KR 20190067264A KR 20200140534 A KR20200140534 A KR 20200140534A
Authority
KR
South Korea
Prior art keywords
segment
file system
main memory
memory
storage
Prior art date
Application number
KR1020190067264A
Other languages
English (en)
Other versions
KR102304130B1 (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 KR1020190067264A priority Critical patent/KR102304130B1/ko
Priority to US16/886,929 priority patent/US11132130B2/en
Publication of KR20200140534A publication Critical patent/KR20200140534A/ko
Application granted granted Critical
Publication of KR102304130B1 publication Critical patent/KR102304130B1/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/0608Saving storage space on storage systems
    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

휘발성(volatile) 메인 메모리와 비휘발성(non-volatile) 메인 메모리로 구성된 하이브리드 메모리 아키텍처를 갖는 컴퓨터 시스템에서, 스토리지(storage)에서 희생 세그먼트(victim segment)를 선택하고, 상기 희생 세그먼트 내의 유효 블록(valid block)들을 상기 휘발성 메인 메모리로 복사하고, 상기 복사된 유효 블록들을 상기 비휘발성 메인 메모리로 이동시킴으로써, 클리닝 오버헤드를 효과적으로 해결하여 애플리케이션 I/O 성능을 향상시키고 스토리지의 수명을 증가시킬 수 있는 스토리지 파일 시스템의 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치를 제공한다.

Description

비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치{SEGMENT CLEANING METHOD USING NON-VOLATILE RANDOM ACCESS MEMORY AND MEMORY MANAGEMENT APPARATUS THEREOF}
본 발명은 스토리지 파일 시스템의 세그먼트 클리닝에 관한 것이다.
지난 10여년 동안 SSD(Solid State Drive)와 같은 플래시(flash) 기반의 스토리지(storage)는 저전력, 고성능 등의 장점으로 인해 모바일 시스템에서 서버 시스템에 이르기까지 다양한 분야에서 기존의 저장 장치를 대체하였다. 그러나, 플래시 메모리에서는 데이터 덮어쓰기가 허용되지 않아, 여유 공간을 확보하기 위해 무효 공간(invalid space)을 수집하는, 가비지 컬렉션(Garbage Collection; GC)을 수행해야 한다. 또한, 플래시 메모리는 지우기 사이클 수가 제한되므로 동일한 위치에 집중쓰기를 피해야 한다.
로그 구조 파일 시스템(Log-structured File System; LFS)은 로그 구조화를 채택하여 전술한 플래시 메모리의 문제점을 효과적으로 해결하였다. 로그 구조는 플래시 메모리에 해로운 임의쓰기를 제거하기 위해 호스트 I/O를 순차적으로 변환한다. 게다가 로그 구조화는 덮어쓰기를 금지하여 저널링 파일 시스템의 중복 쓰기를 제거함으로써 시스템의 쓰기 수를 줄인다.
그러나, 로그 구조 파일 시스템(LFS)은 업데이트를 처리할 때 덮어쓰기를 허용하지 않기 때문에 이전 데이터를 무효화하고 새로운 데이터를 새로운 공간에 쓴다. 따라서, 로그 구조 파일 시스템(LFS)은 여유 공간을 확보하기 위해 무효화된 데이터를 수집하는 세그먼트 클리닝(segment cleaning)을 수행해야 한다. 세그먼트 클리닝 프로세스 동안 로그 구조 파일 시스템(LFS)은 희생(victim) 세그먼트를 선택하고 희생 세그먼트의 유효 블록(valid block)을 새로운 세그먼트로 복사한다. 그러나 로그 구조 파일 시스템(LFS)은 클리닝 과정 동안 사용자 프로세스의 I/O를 일시 중단하므로, 세그먼트 클리닝에 의해 사용자 프로세스의 I/O 성능이 저하될 수 있으며 추가 쓰기로 인해 플래시 저장장치의 수명이 단축될 수 있다.
한국 공개특허공보 제10-2014-0042518호 ("세그먼트 클리닝 장치 및 방법", 삼성전자주식회사, 공개일 2014.04.07.)
본 발명의 목적은 클리닝 오버헤드를 효과적으로 해결하여 애플리케이션의 I/O 성능을 향상시키고 스토리지의 수명을 증가시킬 수 있는 스토리지 파일 시스템의 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치를 제공하기 위한 것이다.
본 발명의 일 측면에 의하면, 파일 시스템의 세그먼트 클리닝 방법은 제1 속도를 가지는 휘발성(volatile) 메인 메모리와 제2 속도-여기서, 상기 제2 속도는 상기 제1 속도보다 작거나 같음-를 가지는 비휘발성(non-volatile) 메인 메모리로 구성된 하이브리드 메인 메모리를 갖는 컴퓨터 시스템에서, 스토리지(storage)에서 희생(victim) 세그먼트(segment)를 선택하는 단계와, 상기 희생 세그먼트 내의 유효 블록(valid block)들을 상기 휘발성 메인 메모리로 복사하는 단계와, 상기 복사된 유효 블록들을 상기 비휘발성 메인 메모리로 이동시키는 단계를 포함한다.
상기 파일 시스템은 로그 구조 파일 시스템(Log-structured File System)일 수 있다.
상기 스토리지는 플래시 메모리(flash memory) 기반의 기억장치일 수 있다.
상기 희생 세그먼트를 선택하는 단계는 유효 블록이 가장 적은 세그먼트를 상기 희생 세그먼트로 선택하는 것일 수 있다.
또는, 상기 희생 세그먼트를 선택하는 단계는 데이터의 생성 날짜를 고려하여 상기 희생 세그먼트를 선택하는 것일 수 있다.
또한, 파일 시스템의 세그먼트 클리닝 방법은 유휴 시간(idle time)에 상기 비휘발성 메인 메모리로 이동시킨 유효 블록들을 상기 스토리지 내의 새로운 세그먼트로 이동시키는 단계를 더 포함할 수 있다.
이때, 상기 비휘발성 메인 메모리에 새로운 데이터 업데이트 명령이 오는 경우 상기 비휘발성 메인 메모리로 이동시킨 유효 블록에 제자리 쓰기를 수행하는 단계를 더 포함할 수 있다.
본 발명의 다른 측면에 의하면, 파일 시스템의 메모리 관리 장치는 제1 속도를 가지는 휘발성(volatile) 메인 메모리와 제2 속도-여기서, 제2 속도는 제1 속도보다 작거나 같음-를 가지는 비휘발성(non-volatile) 메인 메모리로 구성된 하이브리드 메인 메모리를 갖는 컴퓨터 시스템에서, 스토리지(storage) 장치와의 인터페이스를 처리하는 인터페이스 모듈과, 상기 스토리지 장치에서 희생(victim) 세그먼트(segment)를 선택하고, 상기 희생 세그먼트 내의 유효 블록(valid block)들을 상기 휘발성 메인 메모리로 복사하고, 상기 복사된 유효 블록들을 상기 비휘발성 메인 메모리로 이동시켜 세그먼트 클리닝을 수행하는 파일 시스템 모듈을 포함한다.
상기 파일 시스템은 로그 구조 파일 시스템(Log-structured File System)일 수 있다.
상기 스토리지는 플래시 메모리(flash memory) 기반의 기억장치일 수 있다.
상기 희생 세그먼트는 유효 블록이 가장 적은 세그먼트일 수 있다.
또는, 상기 희생 세그먼트는 데이터의 생성 날짜를 고려하여 상기 희생 세그먼트를 선택되는 것일 수 있다.
또한, 상기 파일 시스템 모듈은 유휴 시간(idle time)에 상기 비휘발성 메인 메모리로 이동시킨 유효 블록들을 상기 스토리지 내의 새로운 세그먼트로 이동시키는 것일 수 있다.
이때, 상기 파일 시스템 모듈은 상기 비휘발성 메인 메모리에 새로운 데이터 업데이트 명령이 오는 경우 상기 비휘발성 메인 메모리로 이동시킨 유효 블록에 제자리 쓰기를 수행할 수 있다.
본 발명의 실시예들에 따른 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치에 따르면, 로그 구조 파일 시스템에서 발생하는 유효 블록 복사 오버헤드를 일시적으로 NVRAM에 저장하여 애플리케이션 I/O가 빠르게 재개됨으로써 애플리케이션 I/O 성능을 향상시킬 수 있다. 또한, NVRAM에 저장된 데이터에 추후 업데이트 연산이 발생할 시 NVRAM의 데이터를 무효화함으로써 스토리지로 내려가는 전체 I/O 개수를 감소시켜 스토리지의 수명을 증가시킬 수 있다.
또한, 본 발명의 효과는 이에 한정되지 않고, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자라면 후술될 청구범위에 기재된 본 발명의 사상 및 기술 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
도 1은 로그 구조 파일 시스템의 개념 및 쓰기 방식을 설명하기 위한 개념도이다.
도 2는 종래의 세그먼트 클리닝 방법을 설명하기 위한 개념도이다.
도 3a는 메인 메모리가 DRAM으로만 구성된 메모리 아키텍처를 나타낸 개념도이다.
도 3b는 메인 메모리가 DRAM과 NVRAM으로 구성된 하이브리드 메모리 아키텍처를 나타낸 개념도이다.
도 4는 본 발명의 일 실시예에 따른 세그먼트 클리닝 방법을 설명하기 위한 개념도이다.
도 5는 본 발명의 일 실시예에 따른 세그먼트 클리닝 방법의 순서도이다.
도 6a는 종래의 세그먼트 클리닝 방법에 있어서, 새로운 데이터 업데이트 명령이 있는 경우 쓰기 처리 방식을 나타낸 개념도이다.
도 6b는 본 발명의 일 실시예에 따른 세그먼트 클리닝 방법에 있어서, 새로운 데이터 업데이트 명령이 있는 경우 쓰기 처리 방식을 나타낸 개념도이다.
도 7은 본 발명의 일 실시예에 따른 세그먼트 클리닝 방법을 수행하기 위한 메모리 관리 장치를 나타낸 블록도이다.
도 8은 파일 시스템의 사용률에 따른 클리닝에 의한 성능 감소 측정 실험 결과 그래프이다.
도 9는 본 발명의 일 실시예에 따른 세그먼트 클리닝 방법과 종래의 세그먼트 클리닝 방법의 순차 쓰기 총 처리량을 비교한 그래프이다.
도 10은 본 발명의 일 실시예에 따른 세그먼트 클리닝 방법과 종래의 세그먼트 클리닝 방법의 순차 쓰기 평균 지연 시간을 비교한 그래프이다.
이하에서는 첨부된 도면을 참조하여 본 발명의 일 실시예 따른 비휘발성 랜덤 액세스 메모리(Non-Volatile Random Access Memory; NVRAM)를 이용한 로그 구조 파일 시스템의 세그먼트 클리닝 방법에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람이 본 발명을 쉽게 실시할 수 있도록 명확하고 상세하게 설명하기로 한다.
먼저, 본 발명의 실시예들에 따른 세그먼트 클리닝 방법을 설명하기에 앞서, 본 발명이 적용되는 로그 구조 파일 시스템, 종래의 세그먼트 클리닝 방법 및 하이브리드 메모리 아키텍처에 관하여 설명하도록 한다.
플래시 메모리(flash memory)는 저전력, 고성능 등의 장점으로 인해 스마트폰, 태블릿 같은 모바일 기기의 저장장치로 사용되어 왔다. 또한, 플래시 메모리 기반의 SSD(Solid State Drive)는 가격 인하와 성능 최적화로 인해 개인용 컴퓨터, 서버 등의 분야에 이르기까지 HDD(Hard Disk Drive)를 대체하고 있다.
그러나, 플래시 메모리에서는 HDD와 달리 덮어 쓰기(overwrite)가 불가능하기 때문에 데이터가 변경될 때 기존의 페이지(page)를 무효화(invalidation)시키고 프리(free) 페이지에 쓰기 작업을 진행한다. 무효화 작업과 쓰기 작업이 빈번하게 발생할 경우 플래시 메모리의 여유 공간이 부족해져 가비지 컬렉션(Garbage Collection; GC)이 필요하다. 가비지 컬렉션(GC)은 유효 페이지를 새로운 블록으로 이동시키기 위한 추가 쓰기 작업을 발생시켜 플래시 메모리의 성능을 감소시킨다.
도 1은 로그 구조 파일 시스템(Log-structured File System; LFS)(100)의 개념 및 쓰기 방식을 설명하기 위한 개념도이다.
로그 구조 파일 시스템(LFS)(100)은 상술한 플래시 메모리의 취약점을 완화하기 위한 방법 중의 하나로서, EXT4와 같은 파일 시스템이 블록의 종류에 따라 영역을 구분하는 것과 달리, 블록(112)의 종류에 상관없이 디스크를 세그먼트(110a, 110b) 단위로 분할한다. 세그먼트(110a, 110b)는 여러 개의 블록(112)으로 이루어져 있으며, 블록(112)의 종류는 파일의 정보를 나타내는 아이노드 블록(inode block), 파일의 데이터를 나타내는 데이터 블록(data block), 데이터 블록의 위치를 나타내는 간접 블록(indirect block) 등이 있다.
그러나, 로그 구조 파일 시스템(LFS)(100)은 기존 데이터를 업데이트할 때 해당 데이터를 무효화하고 마지막으로 할당한 블록의 다음 블록에 새로운 데이터를 저장한다. 즉, 도 1에 나타난 바와 같이 정해진 쓰기 순서에 따라서만 쓰기 작업을 수행한다. 로그 구조 파일 시스템(LFS)(100)은 기존 데이터를 덮어 쓰지 않으므로, 무효 블록(invalid block)들을 모아 빈 블록(free block)으로 변환해야 한다. 로그 구조 파일 시스템(LFS)(100)은 이 프로세스를 세그먼트(segment) 단위로 수행한다. 이를 세그먼트 클리닝(segment cleaning)이라고 한다.
도 2는 종래의 세그먼트 클리닝 방법을 설명하기 위한 개념도이다.
로그 구조 파일 시스템(LFS)(100)은 스토리지(storage)(200)의 여유 공간이 부족하면 애플리케이션 I/O를 멈추고 세그먼트 클리닝을 수행한다.
첫째, 로그 구조 파일 시스템(LFS)(100)은 스토리지(200)의 여러 세그먼트 중에서 희생(victim) 세그먼트(210)를 선택한다.
둘째, 로그 구조 파일 시스템(LFS)(100)은 희생 세그먼트 내 각 블록의 유효성(validity)을 검사하고, 유효 블록(valid block)(212)들을 메인 메모리(300)로 복사한다.
셋째, 로그 구조 파일 시스템(LFS)(100)은 유효 블록(212)들을 스토리지(200)의 새로운 세그먼트(230)로 이동시킨다.
이후 로그 구조 파일 시스템(LFS)(100)은 희생 세그먼트를 프리(free) 세그먼트로 지정하고, 애플리케이션 I/O를 재개한다.
상술한 바와 같은 종래의 세그먼트 클리닝 방법에서는 세그먼트 클리닝 과정 동안 애플리케이션 I/O가 멈추고, 유효 블록(212)의 이동에 따른 추가적인 I/O가 발생하여 전체 시스템의 I/O 성능이 저하된다.
도 3a 및 3b는 각각 메인 메모리가 DRAM으로만 구성된 메모리 아키텍처와 메인 메모리가 DRAM 및 NVRAM으로 구성된 하이브리드 메모리 아키텍처를 나타낸 개념도이다.
스토리지(storage)(200)는 컴퓨터 시스템의 보조기억장치를 말한다. 예를 들어, 스토리지(200)는 플래시 메모리, SSD, HDD 일 수 있다.
메인 메모리(300a, 300b)는 컴퓨터 시스템의 주기억장치를 말한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory) 일 수 있다.
중앙처리장치(Central Processing Unit; CPU)(400)는 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행하는 컴퓨터의 제어 장치를 말한다.
도 3a에서, DRAM(Dynamic Random Access Memory)은 전원 공급이 차단되면 저장된 데이터가 삭제되는 휘발성(volatile) 메모리의 일 예이며, 다른 종류의 휘발성 메모리로 대체될 수 있다.
한편, 도 3b와 같이, 하이브리드 메모리 아키텍처(hybrid memory architecture)에서 메인 메모리(300b)는 제1 속도를 가지는 휘발성 메인 메모리와 제2 속도를 가지는 비휘발성 메인 메모리로 구성된다. 여기서, 제2 속도는 제1 속도보다 작거나 같다.
NVRAM(Non-Volatile Random Access Memory)은 전원 공급이 차단되어도 저장된 데이터가 유지되는 임의 접근 메모리를 말한다. NVRAM은 빠른 속도, 낮은 지연시간, 바이트 단위 접근 가능성(byte-addressability), 비휘발성 등의 특성을 가지고 있다. 예를 들어, MRAM(Magnetoresistive RAM), STT-MRAM(Spin Transfer Torque MRAM), PCM(Phase Change Memory), RRAM(Resistive RAM), FeRAM(Ferroelectric RAM) 일 수 있다.
표 1은 DRAM, MRAM, PCM 및 NAND 플래시 메모리의 특성을 비교한 표이다. NVRAM은 전원 공급이 차단되어도 저장된 데이터가 유지되는 비휘발성 메모리라는 측면에서는 플래시 메모리와 유사하지만, 쓰기/읽기 속도의 측면에서는 DRAM과 유사한 성질을 갖는다.
Technology DRAM MRAM PCM NAND
Non-volatility No Yes Yes Yes
Endurance 1015 1012 108 103
Write Time 10㎱ ~10㎱ ~75㎱ 10㎲
Read Time 10㎱ 10㎱ 20㎱ 25㎲
도 4는 본 발명의 일 실시예에 따른 세그먼트 클리닝 방법을 설명하기 위한 개념도이다.
첫째, 로그 구조 파일 시스템(LFS)(100)은 애플리케이션 I/O를 멈추고, 스토리지(200)의 여러 세그먼트 중에서 희생 세그먼트(210)를 선택한다.
둘째, 로그 구조 파일 시스템(LFS)(100)은 희생 세그먼트 내 각 블록의 유효성을 검사하고, 유효 블록(212)들을 휘발성 메인 메모리(310)로 복사한다
셋째, 로그 구조 파일 시스템(LFS)(100)은 유효 블록(212)들을 비휘발성 메인 메모리(330)로 이동시킨다.
이후, 로그 구조 파일 시스템(LFS)(100)은 애플리케이션 I/O를 재개한다.
비휘발성 메인 메모리(330)는 스토리지(200)보다 쓰기 시간이 짧기 때문에, 본 발명의 일 실시예에 따른 세그먼트 클리닝 방법은 종래의 세그먼트 클리닝 방법보다 빠르게 세그먼트 클리닝을 끝낼 수 있다. 따라서, 애플리케이션 I/O가 종래의 세그먼트 클리닝 방법에서보다 빠르게 재개될 수 있다.
새로운 애플리케이션 I/O를 처리하려면 유효 블록(212)이 비휘발성 저장장치 내에 있어야 한다. 즉, 시스템에 전원 공급이 중단되더라도 데이터를 복구할 수 있는 상태에 있어야 한다. 따라서, 본 발명의 일 실시예에 따른 세그먼트 클리닝 방법에서는 하이브리드 메모리 아키텍처를 적용함으로써 유효 블록(212)을 상대적으로 느린 스토리지(200)에 이동시키지 않더라도 비휘발성 메인 메모리(330) 내에 유효블록을 빠르고 안전하게 저장하여 단시간 내에 새로운 애플리케이션 I/O 처리를 재개할 수 있다.
넷째, 로그 구조 파일 시스템(LFS)(100)은 애플리케이션의 I/O가 없는 유휴 시간(idle time)에 유효 블록(212)들을 스토리지(200)의 새로운 세그먼트(230)로 이동시킬 수 있다.
도 5는 본 발명의 일 실시예에 따른 세그먼트 클리닝 방법의 순서도이다.
먼저, 스토리지(200) 내에서 희생 세그먼트(210)를 선택한다(S510).
희생 세그먼트(210)를 선택하는 기준은 클리닝 오버헤드를 줄이기 위한 다양한 정책을 사용할 수 있다. 예를 들어, greedy 정책 또는 cost-benefit 정책일 수 있다.
greedy 정책은 복사해야 할 유효 블록(212)이 가장 적은 세그먼트를 희생 세그먼트(210)로 선택하는 것이다. cost-benefit 정책은 생성 날짜가 오래된 데이터는 무효화될 확률이 낮다는 가정하에 데이터 생성 날짜를 고려하여 희생 세그먼트(210)를 선택하는 것이다.
다음으로, 희생 세그먼트(210) 내의 유효 블록(212)들을 휘발성 메인 메모리(310)로 복사한다(S530).
다음으로, 휘발성 메인 메모리(310)로 복사된 유효 블록(212)들을 비휘발성 메인 메모리(330)로 이동시킨다(S550). 이후, 상술한 바와 같이 애플리케이션의 I/O가 재개된다.
애플리케이션 I/O가 없는 유휴 시간(idle time)에 비휘발성 메인 메모리(330) 내의 유효 블록(212)들을 스토리지(200)의 새로운 세그먼트(230)로 이동시킬 수 있다(S570).
또는, 도 6b와 같이, 단계 S550 이후에 새로운 데이터 업데이트 명령이 있는 경우 비휘발성 메인 메모리(330)로 이동한 유효 블록(212)을 무효화시키고 제자리쓰기를 수행할 수 있다. 이에 대해서는, 도 6a 및 6b를 참조하여 상세하게 설명하기로 한다.
도 6a는 종래의 세그먼트 클리닝 방법에 있어서, 새로운 데이터 업데이트 명령이 있는 경우 쓰기 처리 방식을 나타낸 개념도이다.
상술한 바와 같이, 종래의 세그먼트 클리닝 방법에서는 유효 블록(212)을 스토리지(200)로 저장한다. 이후, 애플리케이션(10)으로부터 해당 블록에 대한 쓰기 작업이 발생할 경우, 로그 구조 파일 시스템(LFS)(100)은 덮어쓰기가 허용되지 않기 때문에 기존의 블록을 무효화시키고 새로운 블록에 쓰기 작업을 수행한다. 이는 스토리지(200)에 발생하는 쓰기 수를 증가시키므로 애플리케이션 I/O 성능 및 스토리지(200) 수명에 악영향을 미친다.
도 6b는 본 발명의 일 실시예에 따른 세그먼트 클리닝 방법에 있어서, 새로운 데이터 업데이트 명령이 있는 경우 쓰리 처리 방식을 나타낸 개념도이다.
본 발명의 일 실시예에 따른 세그먼트 클리닝 방법에서는 클리닝 과정 중 유효 블록(212)을 비휘발성 메인 메모리(330)로 이동시킨다. 이후, 애플리케이션(10)으로부터 해당 블록에 대한 쓰기 작업이 발생할 경우, NVRAM은 덮어쓰기가 가능하기 때문에 제자리 쓰기를 수행할 수 있고, 스토리지(200)에 쓰기 작업이 발생하지 않게 된다. 이후, 단계 S570을 수행하더라도 두 번의 쓰기 작업(세그먼트 클리닝 시 발생하는 쓰기작업(S570)과 새로운 데이터 업데이트 명령에 의한 쓰기 작업)을 한 번에 처리하기 때문에 스토리지(200)에 발생하는 쓰기 작업 수를 감소시킬 수 있다.
본 발명의 일 실시예에 따른 세그먼트 클리닝 방법의 성능을 검증하기 위해 종래의 세그먼트 클리닝 방법과의 비교 실험을 진행하였다. 실험 환경은 표 2와 같다.
Processor Intel i7-3770k
Memory 8GB
Storage 128GB Samsung 850 Pro SSD
Operating System Ubuntu 14.04
Kernel Version Linux Kernel 4.15.0
Benchmark IOzone
도 7은 본 발명의 일 실시예에 따른 세그먼트 클리닝 방법을 수행하기 위한 메모리 관리 장치를 나타낸 블록도이다.
스토리지(200)는 컴퓨터 시스템의 보조 기억 장치를 말한다. 예를 들어, 스토리지(200)는 플래시 메모리, SSD, HDD 일 수 있다.
메모리 관리 장치(700)는 인터페이스 모듈(720) 및 파일 시스템 모듈(740)을 포함한다.
인터페이스 모듈(720)은 데이터 송수신에 사용되는 각종 프로토콜(protocol)을 지원하며, 데이터 송수신을 처리하는 로직(logic) 등을 포함할 수 있다.
파일 시스템 모듈(740)은 인터페이스 모듈(720)을 통해 스토리지(200)와 데이터를 송수신하되, 상술한 세그먼트 클리닝 방법을 수행한다.
도 8은 파일 시스템 사용률에 따른 클리닝에 의한 성능 감소 측정 실험 결과 그래프이다.
스토리지(200) 공간 사용량을 90%에서 97%로 증가시키면서 순차 쓰기를 수행하였을 때 측정되는 총 처리량(throughput)과 지연시간(latency)을 비교하는 실험이다. 실험 결과, 공간 사용량이 90%일 때와 비교하여 97%일 때 총 처리량이 약 82% 감소하였고, 지연시간은 약 5.5배 증가하였다. 이는 공간 사용량이 증가함에 따라 여유 공간이 부족하여 잦은 클리닝의 발생으로 I/O 성능이 하락했기 때문이다.
도 9는 본 발명의 일 실시예에 따른 세그먼트 클리닝 방법과 종래의 세그먼트 클리닝 방법의 순차 쓰기 총 처리량을 비교한 그래프이다.
총 처리량은 제안된 세그먼트 클리닝 방법에서 종래의 세그먼트 클리닝 방법에 비하여 평균 39%, 최대 41% 증가하였다. 이는, 제안된 방법에서는 유효 블록(212)을 NVRAM으로 이동시키기 때문에 클리닝 과정을 빠르게 수행하여 애플리케이션 I/O를 바로 처리할 수 있지만, 종래의 방법에서는 유효 블록(212)을 스토리지(200)로 저장하기 때문에 클리닝 과정이 오래 걸려서 애플리케이션 I/O를 처리하지 못하기 때문이다.
도 10은 본 발명의 일 실시예에 따른 세그먼트 클리닝 방법과 종래의 세그먼트 클리닝 방법의 순차 쓰기 평균 지연 시간을 비교한 그래프이다.
상술한 도 8에서와 동일한 이유로, 지연시간은 제안된 세그먼트 클리닝 방법에서 종래의 세그먼트 클리닝 방법에 비하여 평균 28%, 최대 30%만큼 감소하였다.
100: 로그 구조 파일 시스템(Log-structured File System, LFS)
200: 스토리지(storage)
210: 희생 세그먼트(victim segment)
212: 유효 블록(valid block)
214: 무효 블록(invalid block)
230: 새로운 세그먼트
300: 메인 메모리
310: 휘발성(volatile) 메인 메모리
330: 비휘발성(non-volatile) 메인 메모리
400: 중앙처리장치(CPU)

Claims (16)

  1. 제1 속도를 가지는 휘발성(volatile) 메인 메모리와 제2 속도-여기서, 상기 제2 속도는 상기 제1 속도보다 작거나 같음-를 가지는 비휘발성(non-volatile) 메인 메모리로 구성된 하이브리드 메인 메모리를 갖는 컴퓨터 시스템에서,
    스토리지(storage)에서 희생(victim) 세그먼트(segment)를 선택하는 단계;
    상기 희생 세그먼트 내의 유효 블록(valid block)들을 상기 휘발성 메인 메모리로 복사하는 단계; 및
    상기 복사된 유효 블록들을 상기 비휘발성 메인 메모리로 이동시키는 단계
    를 포함하는 파일 시스템의 세그먼트 클리닝 방법.
  2. 제1항에 있어서, 상기 파일 시스템은
    로그 구조 파일 시스템(Log-structured File System)인 것을 특징으로 하는 파일 시스템의 세그먼트 클리닝 방법.
  3. 제1항에 있어서, 상기 스토리지는
    플래시 메모리(flash memory) 기반의 기억장치인 것을 특징으로 하는 파일 시스템의 세그먼트 클리닝 방법.
  4. 제1항에 있어서, 상기 희생 세그먼트를 선택하는 단계는
    유효 블록이 가장 적은 세그먼트를 상기 희생 세그먼트로 선택하는 것을 특징으로 하는 파일 시스템의 세그먼트 클리닝 방법.
  5. 제1항에 있어서, 상기 희생 세그먼트를 선택하는 단계는
    데이터의 생성 날짜를 고려하여 상기 희생 세그먼트를 선택하는 것을 특징으로 하는 파일 시스템의 세그먼트 클리닝 방법.
  6. 제1항에 있어서,
    유휴 시간(idle time)에 상기 비휘발성 메인 메모리로 이동시킨 유효 블록들을 상기 스토리지 내의 새로운 세그먼트로 이동시키는 단계를 더 포함하는 파일 시스템의 세그먼트 클리닝 방법.
  7. 제1항에 있어서,
    상기 비휘발성 메인 메모리에 새로운 데이터 업데이트 명령이 오는 경우 상기 비휘발성 메인 메모리로 이동시킨 유효 블록에 제자리 쓰기를 수행하는 단계를 더 포함하는 파일 시스템의 세그먼트 클리닝 방법.
  8. 제7항에 있어서,
    유휴 시간(idle time)에 상기 비휘발성 메인 메모리로 이동시킨 유효 블록들을 상기 스토리지 내의 새로운 세그먼트로 이동시키는 단계를 더 포함하는 파일 시스템의 세그먼트 클리닝 방법.
  9. 제1 속도를 가지는 휘발성(volatile) 메인 메모리와 제2 속도-여기서, 제2 속도는 제1 속도보다 작거나 같음-를 가지는 비휘발성(non-volatile) 메인 메모리로 구성된 하이브리드 메인 메모리를 갖는 컴퓨터 시스템의 파일 시스템의 메모리 관리 장치에 있어서,
    스토리지(storage) 장치와의 인터페이스를 처리하는 인터페이스 모듈; 및
    상기 스토리지 장치에서 희생(victim) 세그먼트(segment)를 선택하고, 상기 희생 세그먼트 내의 유효 블록(valid block)들을 상기 휘발성 메인 메모리로 복사하고, 상기 복사된 유효 블록들을 상기 비휘발성 메인 메모리로 이동시켜 세그먼트 클리닝을 수행하는 파일 시스템 모듈
    을 포함하는 파일 시스템의 메모리 관리 장치.
  10. 제9항에 있어서, 상기 파일 시스템은
    로그 구조 파일 시스템(Log-structured File System)인 것을 특징으로 하는 파일 시스템의 메모리 관리 장치.
  11. 제9항에 있어서, 상기 스토리지는
    플래시 메모리(flash memory) 기반의 기억장치인 것을 특징으로 하는 파일 시스템의 메모리 관리 장치.
  12. 제9항에 있어서, 상기 희생 세그먼트는
    유효 블록이 가장 적은 세그먼트인 것을 특징으로 하는 파일 시스템의 메모리 관리 장치.
  13. 제9항에 있어서, 상기 희생 세그먼트는
    데이터의 생성 날짜를 고려하여 상기 희생 세그먼트를 선택되는 것을 특징으로 하는 파일 시스템의 메모리 관리 장치.
  14. 제9항에 있어서, 상기 파일 시스템 모듈은
    유휴 시간(idle time)에 상기 비휘발성 메인 메모리로 이동시킨 유효 블록들을 상기 스토리지 내의 새로운 세그먼트로 이동시키는 것을 특징으로 하는 파일 시스템의 메모리 관리 장치.
  15. 제9항에 있어서, 상기 파일 시스템 모듈은
    상기 비휘발성 메인 메모리에 새로운 데이터 업데이트 명령이 오는 경우 상기 비휘발성 메인 메모리로 이동시킨 유효 블록에 제자리 쓰기를 수행하는 것을 특징으로 하는 파일 시스템의 메모리 관리 장치.
  16. 제15항에 있어서,
    유휴 시간(idle time)에 상기 비휘발성 메인 메모리로 이동시킨 유효 블록들을 상기 스토리지 내의 새로운 세그먼트로 이동시키는 것을 특징으로 하는 파일 시스템의 메모리 관리 장치.
KR1020190067264A 2019-06-07 2019-06-07 비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치 KR102304130B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190067264A KR102304130B1 (ko) 2019-06-07 2019-06-07 비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치
US16/886,929 US11132130B2 (en) 2019-06-07 2020-05-29 Segment cleaning method using non-volatile random-access memory and memory management apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190067264A KR102304130B1 (ko) 2019-06-07 2019-06-07 비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치

Publications (2)

Publication Number Publication Date
KR20200140534A true KR20200140534A (ko) 2020-12-16
KR102304130B1 KR102304130B1 (ko) 2021-09-23

Family

ID=73650338

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190067264A KR102304130B1 (ko) 2019-06-07 2019-06-07 비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치

Country Status (2)

Country Link
US (1) US11132130B2 (ko)
KR (1) KR102304130B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022196918A1 (ko) * 2021-03-15 2022-09-22 삼성전자 주식회사 비휘발성 메모리를 포함하는 전자 장치 및 그것의 비휘발성 메모리 관리 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220020143A (ko) * 2020-08-11 2022-02-18 삼성전자주식회사 오버라이트 처리를 수행하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작 방법
US11435935B2 (en) * 2020-11-20 2022-09-06 Vmware, Inc. Shrinking segment cleaning algorithm in an object storage
CN114385081B (zh) * 2021-12-27 2023-03-24 联通智网科技股份有限公司 针对kafka集群的磁盘保护方法及相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130068685A (ko) * 2011-12-16 2013-06-26 한국과학기술원 하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법
KR20140042518A (ko) 2012-09-28 2014-04-07 삼성전자주식회사 세그먼트 클리닝 장치 및 방법
US20150228340A1 (en) * 2007-04-17 2015-08-13 Rambus Inc. Hybrid volatile and non-volatile memory device
KR20190056211A (ko) * 2017-11-16 2019-05-24 삼성전자주식회사 가비지 컬렉션 방법, 이를 수행하는 저장 장치 및 이를 포함하는 컴퓨팅 시스템

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160083762A (ko) * 2015-01-02 2016-07-12 삼성전자주식회사 스토리지 시스템에서의 매핑 테이블 관리 방법 및 이를 적용한 스토리지 시스템
US9965398B2 (en) * 2016-01-12 2018-05-08 Samsung Electronics Co., Ltd. Method and apparatus for simplified nameless writes using a virtual address table
US10261897B2 (en) * 2017-01-20 2019-04-16 Samsung Electronics Co., Ltd. Tail latency aware foreground garbage collection algorithm

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150228340A1 (en) * 2007-04-17 2015-08-13 Rambus Inc. Hybrid volatile and non-volatile memory device
KR20130068685A (ko) * 2011-12-16 2013-06-26 한국과학기술원 하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법
KR20140042518A (ko) 2012-09-28 2014-04-07 삼성전자주식회사 세그먼트 클리닝 장치 및 방법
KR20190056211A (ko) * 2017-11-16 2019-05-24 삼성전자주식회사 가비지 컬렉션 방법, 이를 수행하는 저장 장치 및 이를 포함하는 컴퓨팅 시스템

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
PARK Jonggyu, "NV-Cleaning: An Efficient Segment Cleaning Scheme for a Log-Structured Filesystem with Hybrid Memory Architecture", pp 610-617, SpringerLink (2019.05.23.) *
박종규 등, "로그 구조 파일 시스템의 파일 단편화 해소를 위한 클리닝 기법", 정보과학회논문지 43(6), pp 627-635 (2016.6.) 1부.* *
변현기, "비휘발성 메모리를 활용한 하이브리드 로그 기반 파일 시스템 설계 및 구현", 서강대학교 대학원 (2018.12.) 1부.* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022196918A1 (ko) * 2021-03-15 2022-09-22 삼성전자 주식회사 비휘발성 메모리를 포함하는 전자 장치 및 그것의 비휘발성 메모리 관리 방법

Also Published As

Publication number Publication date
US20200387309A1 (en) 2020-12-10
US11132130B2 (en) 2021-09-28
KR102304130B1 (ko) 2021-09-23

Similar Documents

Publication Publication Date Title
KR102304130B1 (ko) 비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치
US10191688B2 (en) Memory system and information processing system
US8918581B2 (en) Enhancing the lifetime and performance of flash-based storage
US8316257B2 (en) NAND power fail recovery
US9251052B2 (en) Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US10102117B2 (en) Systems and methods for cache and storage device coordination
US9146688B2 (en) Advanced groomer for storage array
US9081690B2 (en) Storage system and management method of control information therein
US9996542B2 (en) Cache management in a computerized system
KR102088403B1 (ko) 저장장치, 이를 포함하는 컴퓨터 시스템 및 이의 동작 방법
US20070094445A1 (en) Method to enable fast disk caching and efficient operations on solid state disks
US20150127889A1 (en) Nonvolatile memory system
US20170228191A1 (en) Systems and methods for suppressing latency in non-volatile solid state devices
KR20100021868A (ko) 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법
JP2010211734A (ja) 不揮発性メモリを用いた記憶装置
JP2016503927A (ja) ストレージシステム及びキャッシュコントロール方法
KR20090102192A (ko) 메모리 시스템 및 그것의 데이터 저장 방법
JP2020191055A (ja) 瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体
US20140325168A1 (en) Management of stored data based on corresponding attribute data
CN105404468B (zh) 绿能与非固态硬盘应用及其驱动器
KR101473837B1 (ko) Ssd 기반 스토리지 시스템에서 입출력 성능 향상을 위한 ssd 스토리지의 무효데이터 재활용 방법
US11416403B2 (en) Method and apparatus for performing pipeline-based accessing management in storage server with aid of caching metadata with hardware pipeline module during processing object write command
Zhang et al. UniBuffer: Optimizing journaling overhead with unified DRAM and NVM hybrid buffer cache
JP6817242B2 (ja) ディスクアレイ装置、ディスクアレイ装置の制御方法、及びディスクアレイ装置の制御プログラム
JP6430039B2 (ja) 記憶装置および記憶装置の制御方法

Legal Events

Date Code Title Description
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant