KR20200140534A - 비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치 - Google Patents
비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1727—Details of free space management performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash 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
본 발명은 스토리지 파일 시스템의 세그먼트 클리닝에 관한 것이다.
지난 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 성능이 저하될 수 있으며 추가 쓰기로 인해 플래시 저장장치의 수명이 단축될 수 있다.
본 발명의 목적은 클리닝 오버헤드를 효과적으로 해결하여 애플리케이션의 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은 본 발명의 일 실시예에 따른 세그먼트 클리닝 방법과 종래의 세그먼트 클리닝 방법의 순차 쓰기 평균 지연 시간을 비교한 그래프이다.
도 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)
200: 스토리지(storage)
210: 희생 세그먼트(victim segment)
212: 유효 블록(valid block)
214: 무효 블록(invalid block)
230: 새로운 세그먼트
300: 메인 메모리
310: 휘발성(volatile) 메인 메모리
330: 비휘발성(non-volatile) 메인 메모리
400: 중앙처리장치(CPU)
Claims (16)
- 제1 속도를 가지는 휘발성(volatile) 메인 메모리와 제2 속도-여기서, 상기 제2 속도는 상기 제1 속도보다 작거나 같음-를 가지는 비휘발성(non-volatile) 메인 메모리로 구성된 하이브리드 메인 메모리를 갖는 컴퓨터 시스템에서,
스토리지(storage)에서 희생(victim) 세그먼트(segment)를 선택하는 단계;
상기 희생 세그먼트 내의 유효 블록(valid block)들을 상기 휘발성 메인 메모리로 복사하는 단계; 및
상기 복사된 유효 블록들을 상기 비휘발성 메인 메모리로 이동시키는 단계
를 포함하는 파일 시스템의 세그먼트 클리닝 방법. - 제1항에 있어서, 상기 파일 시스템은
로그 구조 파일 시스템(Log-structured File System)인 것을 특징으로 하는 파일 시스템의 세그먼트 클리닝 방법. - 제1항에 있어서, 상기 스토리지는
플래시 메모리(flash memory) 기반의 기억장치인 것을 특징으로 하는 파일 시스템의 세그먼트 클리닝 방법. - 제1항에 있어서, 상기 희생 세그먼트를 선택하는 단계는
유효 블록이 가장 적은 세그먼트를 상기 희생 세그먼트로 선택하는 것을 특징으로 하는 파일 시스템의 세그먼트 클리닝 방법. - 제1항에 있어서, 상기 희생 세그먼트를 선택하는 단계는
데이터의 생성 날짜를 고려하여 상기 희생 세그먼트를 선택하는 것을 특징으로 하는 파일 시스템의 세그먼트 클리닝 방법. - 제1항에 있어서,
유휴 시간(idle time)에 상기 비휘발성 메인 메모리로 이동시킨 유효 블록들을 상기 스토리지 내의 새로운 세그먼트로 이동시키는 단계를 더 포함하는 파일 시스템의 세그먼트 클리닝 방법. - 제1항에 있어서,
상기 비휘발성 메인 메모리에 새로운 데이터 업데이트 명령이 오는 경우 상기 비휘발성 메인 메모리로 이동시킨 유효 블록에 제자리 쓰기를 수행하는 단계를 더 포함하는 파일 시스템의 세그먼트 클리닝 방법. - 제7항에 있어서,
유휴 시간(idle time)에 상기 비휘발성 메인 메모리로 이동시킨 유효 블록들을 상기 스토리지 내의 새로운 세그먼트로 이동시키는 단계를 더 포함하는 파일 시스템의 세그먼트 클리닝 방법. - 제1 속도를 가지는 휘발성(volatile) 메인 메모리와 제2 속도-여기서, 제2 속도는 제1 속도보다 작거나 같음-를 가지는 비휘발성(non-volatile) 메인 메모리로 구성된 하이브리드 메인 메모리를 갖는 컴퓨터 시스템의 파일 시스템의 메모리 관리 장치에 있어서,
스토리지(storage) 장치와의 인터페이스를 처리하는 인터페이스 모듈; 및
상기 스토리지 장치에서 희생(victim) 세그먼트(segment)를 선택하고, 상기 희생 세그먼트 내의 유효 블록(valid block)들을 상기 휘발성 메인 메모리로 복사하고, 상기 복사된 유효 블록들을 상기 비휘발성 메인 메모리로 이동시켜 세그먼트 클리닝을 수행하는 파일 시스템 모듈
을 포함하는 파일 시스템의 메모리 관리 장치. - 제9항에 있어서, 상기 파일 시스템은
로그 구조 파일 시스템(Log-structured File System)인 것을 특징으로 하는 파일 시스템의 메모리 관리 장치. - 제9항에 있어서, 상기 스토리지는
플래시 메모리(flash memory) 기반의 기억장치인 것을 특징으로 하는 파일 시스템의 메모리 관리 장치. - 제9항에 있어서, 상기 희생 세그먼트는
유효 블록이 가장 적은 세그먼트인 것을 특징으로 하는 파일 시스템의 메모리 관리 장치. - 제9항에 있어서, 상기 희생 세그먼트는
데이터의 생성 날짜를 고려하여 상기 희생 세그먼트를 선택되는 것을 특징으로 하는 파일 시스템의 메모리 관리 장치. - 제9항에 있어서, 상기 파일 시스템 모듈은
유휴 시간(idle time)에 상기 비휘발성 메인 메모리로 이동시킨 유효 블록들을 상기 스토리지 내의 새로운 세그먼트로 이동시키는 것을 특징으로 하는 파일 시스템의 메모리 관리 장치. - 제9항에 있어서, 상기 파일 시스템 모듈은
상기 비휘발성 메인 메모리에 새로운 데이터 업데이트 명령이 오는 경우 상기 비휘발성 메인 메모리로 이동시킨 유효 블록에 제자리 쓰기를 수행하는 것을 특징으로 하는 파일 시스템의 메모리 관리 장치. - 제15항에 있어서,
유휴 시간(idle time)에 상기 비휘발성 메인 메모리로 이동시킨 유효 블록들을 상기 스토리지 내의 새로운 세그먼트로 이동시키는 것을 특징으로 하는 파일 시스템의 메모리 관리 장치.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022196918A1 (ko) * | 2021-03-15 | 2022-09-22 | 삼성전자 주식회사 | 비휘발성 메모리를 포함하는 전자 장치 및 그것의 비휘발성 메모리 관리 방법 |
Families Citing this family (3)
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)
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)
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 |
-
2019
- 2019-06-07 KR KR1020190067264A patent/KR102304130B1/ko active IP Right Grant
-
2020
- 2020-05-29 US US16/886,929 patent/US11132130B2/en active Active
Patent Citations (4)
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)
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)
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 |