RISS 학술연구정보서비스

검색

인기 검색어

    다국어 입력

    http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.

    변환된 중국어를 복사하여 사용하시면 됩니다.

    예시)
    • 中文 을 입력하시려면 zhongwen을 입력하시고 space를누르시면됩니다.
    • 北京 을 입력하시려면 beijing을 입력하시고 space를 누르시면 됩니다.
    닫기

    Research on storage stack tailored for modern storage devices

    한글로보기

    https://www.riss.kr/link?id=T17387342

    • 0

      상세조회
    • 0

      다운로드
    서지정보 열기
    • 내보내기
    • 내책장담기
    • 공유하기
      • URL 복사
    • 오류접수
    인용문이 복사되었습니다.

    부가정보

    다국어 초록 (Multilingual Abstract) kakao i 다국어 번역

    Linux kernels and user-level data management layers form the backbone of modern storage systems, and have long been deployed across a range of commercial and research environments. This end-to-end storage path is organized as a layered architecture that includes the kernel I/O stack, consisting of the file system, memory management, and block layers, as well as user-level key-value stores, collectively ensuring both performance and reliability for diverse applications. However, recent advances in storage and CPU technology have begun to expose new limitations along this established storage path. High-performance devices such as NVMe SSDs and persistent memory (PM) reveal long-standing bottlenecks within the software stack, while many-core processors intensify contention on centralized kernel data structures. Moreover, CXL-based tiered memory introduces non-uniform latency and bandwidth characteristics, and suboptimal placement of hot and cold data across tiers can lead to inefficient utilization of the fast memory tier and substantial throughput degradation. These hardware advancements highlight the importance of end-to-end optimization across the storage path, motivating improvements that address the distinct challenges of user-level software and the kernel alike.
    Modern storage systems are constructed on mature standard interfaces and deeply layered software architectures, in which kernel and user-level components are organized along well-defined boundaries. Rather than proposing a unified redesign or replacement of this established structure, this work takes a pragmatic approach that quantitatively analyzes and mitigates bottlenecks within each widely-used layer while preserving the current architecture. Such layer-wise optimizations provide a practical pathway to fully exploit the capabilities of emerging storage devices and memory architectures, without sacrificing the compatibility and stability that existing systems rely upon.
    Accordingly, this dissertation focuses on two key components of modern storage systems: the Linux I/O stack and user-level KV stores, and conducts a layer-wise investigation into their performance limitations and enhancements. At the kernel level, we quantitatively analyze bottlenecks in direct access (DAX) file systems, journaling subsystems, and page cache management, and propose practical optimizations. At the user-level layer of the I/O stack, we design StellarDB, a new key-value store that effectively leverages high-performance SSDs and tiered memory systems. StellarDB introduces a novel index structure that simultaneously captures both temporal locality and key-space locality, and translates them into spatial locality on the storage device. This enables maximized cache efficiency while minimizing CPU overhead.
    In conclusion, this dissertation systematically identifies the key bottlenecks that emerge across the modern storage path, including both the Linux kernel and user-level KV stores, under emerging hardware environments such as many-core processors, persistent memory, and CXL-based tiered memory. We propose optimization approaches that align with the structural characteristics of each layer, and experimentally demonstrate that these enhancements significantly improve I/O throughput and scalability across diverse subsystems, including DAX file systems, journaling layers, page cache management, and KV store indexing structures. This work highlights the practical value of a layer-wise optimization approach built upon the mature Linux I/O stack, rather than replacing or radically redesigning the established architecture, thereby offering a realistic and impactful direction for the evolution of modern storage systems.
    번역하기

    Linux kernels and user-level data management layers form the backbone of modern storage systems, and have long been deployed across a range of commercial and research environments. This end-to-end storage path is organized as a layered architecture th...

    Linux kernels and user-level data management layers form the backbone of modern storage systems, and have long been deployed across a range of commercial and research environments. This end-to-end storage path is organized as a layered architecture that includes the kernel I/O stack, consisting of the file system, memory management, and block layers, as well as user-level key-value stores, collectively ensuring both performance and reliability for diverse applications. However, recent advances in storage and CPU technology have begun to expose new limitations along this established storage path. High-performance devices such as NVMe SSDs and persistent memory (PM) reveal long-standing bottlenecks within the software stack, while many-core processors intensify contention on centralized kernel data structures. Moreover, CXL-based tiered memory introduces non-uniform latency and bandwidth characteristics, and suboptimal placement of hot and cold data across tiers can lead to inefficient utilization of the fast memory tier and substantial throughput degradation. These hardware advancements highlight the importance of end-to-end optimization across the storage path, motivating improvements that address the distinct challenges of user-level software and the kernel alike.
    Modern storage systems are constructed on mature standard interfaces and deeply layered software architectures, in which kernel and user-level components are organized along well-defined boundaries. Rather than proposing a unified redesign or replacement of this established structure, this work takes a pragmatic approach that quantitatively analyzes and mitigates bottlenecks within each widely-used layer while preserving the current architecture. Such layer-wise optimizations provide a practical pathway to fully exploit the capabilities of emerging storage devices and memory architectures, without sacrificing the compatibility and stability that existing systems rely upon.
    Accordingly, this dissertation focuses on two key components of modern storage systems: the Linux I/O stack and user-level KV stores, and conducts a layer-wise investigation into their performance limitations and enhancements. At the kernel level, we quantitatively analyze bottlenecks in direct access (DAX) file systems, journaling subsystems, and page cache management, and propose practical optimizations. At the user-level layer of the I/O stack, we design StellarDB, a new key-value store that effectively leverages high-performance SSDs and tiered memory systems. StellarDB introduces a novel index structure that simultaneously captures both temporal locality and key-space locality, and translates them into spatial locality on the storage device. This enables maximized cache efficiency while minimizing CPU overhead.
    In conclusion, this dissertation systematically identifies the key bottlenecks that emerge across the modern storage path, including both the Linux kernel and user-level KV stores, under emerging hardware environments such as many-core processors, persistent memory, and CXL-based tiered memory. We propose optimization approaches that align with the structural characteristics of each layer, and experimentally demonstrate that these enhancements significantly improve I/O throughput and scalability across diverse subsystems, including DAX file systems, journaling layers, page cache management, and KV store indexing structures. This work highlights the practical value of a layer-wise optimization approach built upon the mature Linux I/O stack, rather than replacing or radically redesigning the established architecture, thereby offering a realistic and impactful direction for the evolution of modern storage systems.

    더보기

    국문 초록 (Abstract) kakao i 다국어 번역

    리눅스 커널과 그 위에서 동작하는 유저 수준의 데이터 관리 계층은 현대 저장시스템의 핵심 기반으로서, 다양한 상용 및 학술 환경에서 폭넓게 활용되어 왔다. 이러한 저장 경로는 커널의 I/O 스택, 파일시스템, 그리고 사용자 수준의 키-밸류 스토어로 이어지는 계층적 구조를 이루며, 여러 응용 프로그램의 성능과 신뢰성을 뒷받침해 왔다. 그러나 최근 저장장치와 CPU 기술의 급격한 발전은 이러한 기존 I/O 처리 경로 전반에 새로운 한계를 드러내고 있다. NVMe SSD와 persistent memory(PM)와 같은 고성능 저장장치는 기존 소프트웨어 스택의 병목을 더욱 선명하게 드러내고, 수십 개 이상의 코어를 갖는 매니코어 프로세서는 중앙화된 커널 자료구조에 대한 경합을 심화시킨다. 또한, CXL 기반 계층형 메모리는 계층 간의 지연 시간 및 대역폭이 불균형하게 분포되므로, 핫/콜드 데이터의 배치가 최적화되지 않을 경우 빠른 계층의 메모리 공간이 낭비되고 처리량 저하가 발생한다. 결국 이러한 변화는 사용자 수준 소프트웨어부터 커널 계층 전반에 이르는 저장 경로 전체의 동작들을 보다 세밀하게 이해하고 개선할 필요성을 부각시켰다.

    현대 저장 시스템은 오랜 기간에 걸쳐 발전해 온 표준 인터페이스와 다층적 소프트웨어 구조 위에 구축되어 있으며, 커널과 사용자 수준 소프트웨어가 명확히 구분된 형태로 발전해왔다. 본 연구는 이러한 구조적 틀을 새롭게 통합하거나 대체하는 하나의 새로운 시스템을 설계하는 접근이 아니라, 현재 널리 사용되고 있는 각 계층에서 발생하는 병목을 기존 구조 내에서 정량적으로 분석하고 개선하는 실용적 접근을 취하였다. 이와 같은 계층별 최적화는 기존 시스템의 호환성과 안정성을 유지하면서도, 현대 저장장치와 메모리 아키텍처의 성능을 효과적으로 활용할 수 있는 현실적 대안이 된다.

    따라서 본 논문은 현대 저장 시스템을 구성하는 주요 요소들 중 리눅스 I/O 스택과 키-밸류 스토어를 대상으로, 계층별 문제점을 분석하고 개선하는 연구를 수행하였다. 커널 수준에서는 direct access(DAX) 파일시스템, 저널링 계층, 페이지 캐시 관리 기법들에서의 병목을 정량적으로 분석하고 최적화 방안을 제시하였다. 상위 저장시스템 수준에서는 고성능 SSD와 계층형 메모리 시스템을 효율적으로 활용하기 위해 StellarDB라는 새로운 키-밸류 스토어를 설계하였다. StellarDB는 새로운 인덱스 구조를 도입하여, 데이터의 시간적 지역성 및 키-공간적 지역성을 동시에 포착하고 이를 저장장치의 공간적 지역성으로 변환한다. 이를 통해 CPU 연산을 최소화 하면서도 캐시 효율을 극대화한다.

    종합하면, 본 논문은 리눅스 커널과 사용자 수준 키-밸류 스토어로 구성되는 현대 저장 경로 전반을 대상으로, 매니코어 프로세서, PM, CXL 기반 계층형 메모리 등 새로운 하드웨어 환경에서 드러나는 핵심 병목을 체계적으로 규명하고, 각 계층의 구조적 특성에 부합하는 개선 기법을 제안하였다. 제안된 최적화들은 DAX 파일시스템, 저널링 계층, 페이지 캐시 관리, 그리고 키-밸류 스토어의 인덱싱 구조에 이르기까지 다양한 계층에서 I/O 처리량과 확장성을 유의미하게 향상시킴을 실험적으로 입증하였다. 또한 본 연구는 기존 리눅스 I/O 스택을 대체하거나 재설계하는 대신, 성숙한 아키텍처를 기반으로 계층별 병목을 정밀하게 개선하는 접근이 실질적인 효과를 가질 수 있음을 보여주었다는 점에서 의의를 갖는다.
    번역하기

    리눅스 커널과 그 위에서 동작하는 유저 수준의 데이터 관리 계층은 현대 저장시스템의 핵심 기반으로서, 다양한 상용 및 학술 환경에서 폭넓게 활용되어 왔다. 이러한 저장 경로는 커널의 I...

    리눅스 커널과 그 위에서 동작하는 유저 수준의 데이터 관리 계층은 현대 저장시스템의 핵심 기반으로서, 다양한 상용 및 학술 환경에서 폭넓게 활용되어 왔다. 이러한 저장 경로는 커널의 I/O 스택, 파일시스템, 그리고 사용자 수준의 키-밸류 스토어로 이어지는 계층적 구조를 이루며, 여러 응용 프로그램의 성능과 신뢰성을 뒷받침해 왔다. 그러나 최근 저장장치와 CPU 기술의 급격한 발전은 이러한 기존 I/O 처리 경로 전반에 새로운 한계를 드러내고 있다. NVMe SSD와 persistent memory(PM)와 같은 고성능 저장장치는 기존 소프트웨어 스택의 병목을 더욱 선명하게 드러내고, 수십 개 이상의 코어를 갖는 매니코어 프로세서는 중앙화된 커널 자료구조에 대한 경합을 심화시킨다. 또한, CXL 기반 계층형 메모리는 계층 간의 지연 시간 및 대역폭이 불균형하게 분포되므로, 핫/콜드 데이터의 배치가 최적화되지 않을 경우 빠른 계층의 메모리 공간이 낭비되고 처리량 저하가 발생한다. 결국 이러한 변화는 사용자 수준 소프트웨어부터 커널 계층 전반에 이르는 저장 경로 전체의 동작들을 보다 세밀하게 이해하고 개선할 필요성을 부각시켰다.

    현대 저장 시스템은 오랜 기간에 걸쳐 발전해 온 표준 인터페이스와 다층적 소프트웨어 구조 위에 구축되어 있으며, 커널과 사용자 수준 소프트웨어가 명확히 구분된 형태로 발전해왔다. 본 연구는 이러한 구조적 틀을 새롭게 통합하거나 대체하는 하나의 새로운 시스템을 설계하는 접근이 아니라, 현재 널리 사용되고 있는 각 계층에서 발생하는 병목을 기존 구조 내에서 정량적으로 분석하고 개선하는 실용적 접근을 취하였다. 이와 같은 계층별 최적화는 기존 시스템의 호환성과 안정성을 유지하면서도, 현대 저장장치와 메모리 아키텍처의 성능을 효과적으로 활용할 수 있는 현실적 대안이 된다.

    따라서 본 논문은 현대 저장 시스템을 구성하는 주요 요소들 중 리눅스 I/O 스택과 키-밸류 스토어를 대상으로, 계층별 문제점을 분석하고 개선하는 연구를 수행하였다. 커널 수준에서는 direct access(DAX) 파일시스템, 저널링 계층, 페이지 캐시 관리 기법들에서의 병목을 정량적으로 분석하고 최적화 방안을 제시하였다. 상위 저장시스템 수준에서는 고성능 SSD와 계층형 메모리 시스템을 효율적으로 활용하기 위해 StellarDB라는 새로운 키-밸류 스토어를 설계하였다. StellarDB는 새로운 인덱스 구조를 도입하여, 데이터의 시간적 지역성 및 키-공간적 지역성을 동시에 포착하고 이를 저장장치의 공간적 지역성으로 변환한다. 이를 통해 CPU 연산을 최소화 하면서도 캐시 효율을 극대화한다.

    종합하면, 본 논문은 리눅스 커널과 사용자 수준 키-밸류 스토어로 구성되는 현대 저장 경로 전반을 대상으로, 매니코어 프로세서, PM, CXL 기반 계층형 메모리 등 새로운 하드웨어 환경에서 드러나는 핵심 병목을 체계적으로 규명하고, 각 계층의 구조적 특성에 부합하는 개선 기법을 제안하였다. 제안된 최적화들은 DAX 파일시스템, 저널링 계층, 페이지 캐시 관리, 그리고 키-밸류 스토어의 인덱싱 구조에 이르기까지 다양한 계층에서 I/O 처리량과 확장성을 유의미하게 향상시킴을 실험적으로 입증하였다. 또한 본 연구는 기존 리눅스 I/O 스택을 대체하거나 재설계하는 대신, 성숙한 아키텍처를 기반으로 계층별 병목을 정밀하게 개선하는 접근이 실질적인 효과를 가질 수 있음을 보여주었다는 점에서 의의를 갖는다.

    더보기

    목차 (Table of Contents)

    • Chapter 1. Introduction 1
    • Chapter 2. Background 6
    • 2.1 Modern Hardware Trends and Implications for the I/O Stack 6
    • 2.2 I/O Software Stack of Linux Kernel 8
    • Chapter 3. Analysis and Mitigation of Data Sanitization Overhead in DAX File Systems 11
    • Chapter 1. Introduction 1
    • Chapter 2. Background 6
    • 2.1 Modern Hardware Trends and Implications for the I/O Stack 6
    • 2.2 I/O Software Stack of Linux Kernel 8
    • Chapter 3. Analysis and Mitigation of Data Sanitization Overhead in DAX File Systems 11
    • 3.1 Introduction 11
    • 3.2 Background and Motivation 13
    • 3.2.1 Data Sanitization Overhead in DAX File Systems 13
    • 3.2.2 Related Work 15
    • 3.3 Our Approach 16
    • 3.4 Evaluation 19
    • 3.5 Concluding Remarks 22
    • Chapter 4. Scalable Per-Core Journaling in File System 23
    • 4.1 Introduction 23
    • 4.2 Background and Motivation 26
    • 4.2.1 Design of JBD2 26
    • 4.2.2 Scalability Bottlenecks in JBD2 31
    • 4.3 Our Approach: Z-Journal 32
    • 4.3.1 Analysis of Journal Coherence Problem 33
    • 4.3.2 Journal Coherence Commit 35
    • 4.3.3 Journal Coherence Checkpoint 39
    • 4.3.4 Recovery Procedure 41
    • 4.3.5 Core-Aware Block Group Allocation 43
    • 4.4 Evaluation 44
    • 4.4.1 Evaluation Environment 45
    • 4.4.2 Scalability of File System Operations 45
    • 4.4.3 Analysis of Design Components 48
    • 4.4.4 Overall File System Performance 51
    • 4.5 Related Work 52
    • 4.6 Concluding Remarks 55
    • Chapter 5. Optimization of Page Reclaim and I/O Throttling for Buffered I/O 56
    • 5.1 Introduction 56
    • 5.2 Background and Motivation 57
    • 5.2.1 Page Management of Linux Kernel 57
    • 5.2.2 Observation of Performance Issues in Buffered I/O 61
    • 5.3 Problem Analysis and Our Approach 64
    • 5.3.1 Removal of Page Aging from Critical Path 64
    • 5.3.2 LRU Lock Splitting 66
    • 5.3.3 I/O Throttling Optimization 67
    • 5.4 Evaluation 71
    • 5.4.1 Evaluation Setup 71
    • 5.4.2 Synthetic I/O Performance 72
    • 5.4.3 Effectiveness of Adaptive Setpoint Control 74
    • 5.4.4 Comprehensive I/O Performance 77
    • 5.5 Related Work 78
    • 5.6 Concluding Remarks 80
    • Chapter 6. StellarDB: A Key-Value Store Tailored for Modern Storage and Tiered Memory Systems 81
    • 6.1 Introduction 81
    • 6.2 Background and Motivation 84
    • 6.2.1 Random Writes in KV Store Designs 84
    • 6.2.2 Memory Usage Patterns of KV Stores 86
    • 6.3 Our Approach 90
    • 6.3.1 NebulaTree Structure 91
    • 6.3.2 Restructuring of NebulaTree 94
    • 6.3.3 Design Details of StellarDB 98
    • 6.3.4 Failure Recovery of StellarDB 99
    • 6.4 Evaluation 101
    • 6.4.1 Evaluation Environment 101
    • 6.4.2 Overall Performance Analysis 104
    • 6.4.3 Impact of Memory Configurations 107
    • 6.4.4 Performance Sensitivity to Parameters 110
    • 6.4.5 Ablation on NebulaTree Restructuring 114
    • 6.5 Related Work 116
    • 6.6 Concluding Remarks 118
    • Chapter 7. Conclusion 120
    더보기

    분석정보

    View

    상세정보조회

    0

    Usage

    원문다운로드

    0

    대출신청

    0

    복사신청

    0

    EDDS신청

    0

    동일 주제 내 활용도 TOP

    더보기

    주제

    연도별 연구동향

    연도별 활용동향

    연관논문

    연구자 네트워크맵

    공동연구자 (7)

    유사연구자 (20) 활용도상위20명

    이 자료와 함께 이용한 RISS 자료

    나만을 위한 추천자료

    해외이동버튼