Redesigning I/O Stack for Emerging Storage Technology
Emerging Storage Technology를 위한 I/O 스택 재설계
- 주제어 (키워드) File System , Zoned Storage , Computational Storage , I/O Optimization , Log-structured File System
- 발행기관 서강대학교 일반대학원
- 지도교수 김영재
- 발행년도 2025
- 학위수여년월 2025. 2
- 학위명 박사
- 학과 및 전공 일반대학원 컴퓨터공학과
- 실제 URI http://www.dcollection.net/handler/sogang/000000079401
- UCI I804:11029-000000079401
- 본문언어 영어
- 저작권 서강대학교 논문은 저작권 보호를 받습니다.
초록 (요약문)
Storage technology has evolved to provide higher bandwidth, lower latency, and larger capacity. These advancements are often scale-ups of storage devices for better performance, like NVMe SSDs, which continue to catch up with the latest PCIe bandwidth. The cutting-edge performance has made NVMe SSDs crucial in high-performance systems like cloud data centers, HPC, and AI supercomputers. Advancements in storage technology are not limited to achieving higher bandwidth. Ongoing demands to eliminate I/O overhead have led to drastic changes in the interface and role of storage devices, bringing forth new storage technologies like Computational Storage and Zoned Storage. From a software standpoint, the I/O stack also needs to evolve to fully utilize the performance of underlying devices as new technology reveals software bottlenecks or necessitates redesigning the I/O stack. This dissertation presents redesigns of I/O stacks in response to the advancements in storage devices, specifically for high-performance NVMe SSDs, Computational Storage, and Zoned Storage devices. We begin with I/O stack remedies for NVMe SSDs. The low latency of high-performance NVMe SSDs has revealed bottlenecks in file systems that were previously hidden by low I/O performance. This degrades parallel I/O performance, particularly in shared file write cases, and prevents full utilization of the available bandwidth of the SSD. We identified that the lack of parallelism in accessing a shared file and the file metadata for block mapping are two primary bottlenecks in the file system. To resolve these issues, we employed a range lock for allowing I/Os on disjoint regions of shared files and sub-tree locking in file metadata for parallel updates of metadata. Meanwhile, Computational Storage aims to improve I/O bandwidth efficiency by retrieving only the required data through offloading IO-intensive tasks, such as filtering, to a Computational Storage Device (CSD). However, the data items need to be accessible within the CSD; otherwise, extra communications and I/O facilities are required. To address this, we propose an LSM-tree-based Key-Value SSD. Since it stores key-value pairs rather than blocks, the input and output data can be easily manipulated within the CSD. However, specialized hardware like CSD limits compatibility and necessitates a customized I/O stack. To enable Computational Storage with off-the-shelf hardware, we propose an SPDK-based Computational Storage design using eBPF as runtime. Thus, Computational Storage can be built with widely used technologies and can be gradually adopted into the existing storage system. Unlike Computational Storage, Zoned Storage offers better compatibility since it uses a block interface. However, it segments the space into zones with a sequential write constraint within a zone. It also delegates garbage collection to the host to remove latency spikes. This necessitates that the file system design conforms to zone semantics. To this end, we propose the Collective Log-structured File System (CLFS). CLFS employs per-zone logs and handles all data, including file system metadata, as log entries. CLFS assigns log entries to zones in a manner that groups related entries, such as inodes and their file data, into the same zone. This prevents log entries, which are likely to be invalidated together, from being scattered across zones, thus mitigating recursive garbage collections.
more초록 (요약문)
스토리지 기술은 더 높은 대역폭, 더 낮은 지연 시간, 그리고 더 큰 용량을 제공하기 위해 꾸준히 발전해왔다. 이러한 발전은 주로 NVMe SSD와 같이 최신 PCIe 대역폭에 맞춰 스토리지 장치의 성능을 확장하는 형태로 나타나며, 이를 통해 I/O 성능를 극대화한다. 이와 같은 고성능 NVMe SSD의 등장은 이를 클라우드 데이터센터, HPC, AI 슈퍼컴퓨터 등 고성능 시스템에서 필수적인 요소로 자리매김하게 만들었다. 스토리지 기술의 발전은 단순히 더 높은 대역폭을 달성하는 것에만 국한되지 않는다. I/O 오버헤드를 최소화하고자 하는 요구가 커짐에 따라 스토리지 장치의 인터페이스와 역할도 크게 변화하고 있으며, 그 결과 Computational Storage, Zoned Storage와 같은 새로운 스토리지 기술이 등장하고 있다. 그러나 새롭게 부상하는 하드웨어 기술은 이전에는 드러나지 않았던 소프트웨어 병목 현상을 드러내거나 I/O 스택의 재설계 초래하기 때문에, 하드웨어 발전에 발맞춘 소프트웨어 관점에서의 I/O 스택의 연구가 필수적이다. 본 논문은 고성능 NVMe SSD, Computational Storage, 그리고 Zoned Storage와 같은 최신 스토리지 기술에 발맞춰 I/O 스택을 재설계하는 방안을 제시한다. 먼저, 고성능 NVMe SSD 등장에 따른 I/O 스택 개선책을 제안한다. 고성능 NVMe SSD의 낮은 지연 시간으로 인해, 기존 저장장치의 낮은 I/O 성능에 가려져있던 파일 시스템 내부의 병목 지점이 드러난다. 이는 특히 공유 파일에 대한 쓰기 작업에서 병렬 I/O 성능을 저해하고, 고성능 SSD가 제공하는 대역폭을 온전히 활용하지 못하게 만든다. 이 문제의 주된 원인은 공유 파일 접근의 병렬성 부족과 블록 매핑에 필요한 파일 메타데이터 병목 현상이다. 이를 해결하기 위해, 공유 파일의 상호간 중복되지 않는 구간에 대한 I/O를 허용하는 범위 잠금 (Range lock) 기법과 메타데이터를 병렬로 업데이트할 수 있도록 하는 부분 트리 잠금(Sub-tree locking) 기법을 적용하였다. 다음으로, Computational Storage는 필터링과 같은 I/O 집약적 작업을 Computational Storage Device (CSD)로 오프로드하여 필요한 데이터만 전송함으로써 소요 전송량을 줄이고 I/O 대역폭 효율을 높이는 기술이다. 그러나 이를 실현하려면 오프로드를 위한 입력 데이터가 CSD 내부에서 직접 접근 가능해야 하며 그 데이터의 구조를 CSD가 미리 파악해야한다. 그렇지 않은 경우, 추가적인 이러한 정보 주입을 위한 I/O 인프라가 필수적이다. 이를 회피하기 위해, 본 논문에서는 블록 단위가 아닌 Key-Value 쌍을 저장하는 LSM-tree 기반 Key-Value SSD를 제안한다. 이를 통해 입력 및 출력 데이터를 CSD 내부에서 직접 조작할 수 있게 된다. 한편, CSD와 같은 특수 하드웨어는 별도의 맞춤형 I/O 스택을 요구한다. 본 논문에서는 범용 하드웨어에도 적용 가능한 SPDK 기반 Software-defined Computational Storage 아키텍처를 제안한다. 마지막으로, Zoned Storage는 블록 인터페이스를 사용하기 때문에 비교적 호환성이 높지만, 주소 공간을 여러 Zone으로 나누어 각 Zone 내부에서 순차 쓰기를 강제한다. 또한 가비지 컬렉션과 같은 여유공간 관리를 호스트가 직접 수행함으로써 예측 불가능한 지연 시간의 급증을 방지하지만, 이는 Zone 인터페이스에 맞는 파일 시스템 설계를 요구한다. 이를 위해 본 논문에서는 Collective Log-structured File System (CLFS)을 제안한다. CLFS는 Zone별 Log 구조를 통하여 파일 시스템 메타데이터를 포함한 모든 데이터를 Log Entry로 처리한다. 동시에, Inode 및 파일 데이터와 같이 연관성이 높은 로그들을 동일 Zone에 그룹화함으로써, 함께 무효화될 가능성이 높은 데이터가 여러 존에 분산되는 일을 막고 재귀적 가비지 컬렉션을 최소화한다.
more목차
1 Introduction 14
1.1 Emergence of New Storage Technologies 15
1.2 Limitations of Current I/O Stacks 16
1.3 Research Objectives 17
1.4 Contributions of the Dissertation 19
1.5 Organization of the Dissertation 20
2 Optimizing I/O Stack for NVMe SSDs 22
2.1 Background 22
2.1.1 Serialization of Concurrent File I/O 22
2.1.2 F2FS: SSD Optimized File Systems 24
2.2 Range Locking for High-Performance Concurrency on NVMe SSDs 27
2.2.1 File-level Range Lock 27
2.3 nCache: Concurrent File Metadata Structure Using Readers-Writer Lock 31
2.3.1 Lack of Concurrency on File Metadata 31
2.3.2 Cascading Tree Lock in Node Tree 33
2.3.3 Design and Implementation 34
2.4 Performance Evaluation of Range Lock and nCache 40
2.4.1 Synthetic Workload Results 41
2.5 Related Work 47
3 Redesigning I/O Stack for Computational Storage 49
3.1 Background 49
3.2 iLSM: LSM-tree-based Key-Value SSD 51
3.2.1 Log-Structured Merge-Tree and Key-Value Separation 51
3.2.2 Solid-State Drives (SSD) Architecture 54
3.2.3 iLSM Design and Implementation 56
3.2.4 Key-Value and Computational Task Offloading Interface 66
3.2.5 Performance Evaluation 68
3.3 Afterburner: A Unified Framework for Computational Storage on CSD and Commodity Hardware 73
3.3.1 Design and Implementation 75
3.3.2 Comparison on Design Approaches 81
3.3.3 Performance Evaluation 84
3.4 Related Work 87
4 Redesigning I/O Stack for Zoned Storage 89
4.1 Background 90
4.1.1 Zone Namespace SSD 90
4.2 File System for Zoned Storage 91
4.2.1 File System Structure for Zoned Storage Device 91
4.2.2 Limitations in existing log-structured file systems 96
4.3 Challenges in Designing Log-structured File System for Zoned Storage Device 113
4.4 Collective Log-structured File System (CLFS) 115
4.4.1 Architectural Overview 118
4.4.2 Per-Zone Log Layout 122
4.4.3 Confined Invalidation Management 123
4.4.4 Zone Write Pointer Anchoring 125
4.4.5 File-to-Zone Mapping Model 128
4.4.6 Storing Mapping Information 132
4.4.7 Evaluation 133
5 Conclusion 143
References 145