748 0

A Study on Vertical Integration of File System and Flash Storage Firmware

Title
A Study on Vertical Integration of File System and Flash Storage Firmware
Other Titles
파일시스템과 플래시 스토리지 펌웨어의 수직적 통합에 관한 연구
Author
Jinsoo Yoo
Alternative Author(s)
유진수
Advisor(s)
원유집
Issue Date
2018-08
Publisher
한양대학교
Degree
Doctor
Abstract
솔리드 스테이트 드라이브 (SSD) 는 NVM Express와 같은 새로운 호스트 인터페이스의 등장, 14nm 미세공정의 사용, 32 계층 이상의 V-NAND 활용, 그리고 멀티코어를 사용한 멀티 채널/웨이 입출력 병렬화 등을 통해 성능과 용량 측면에서 향상을 지속하고 있다. 이를 통해 SSD는 모바일 디바이스, 데스크톱, 그리고 엔터프라이즈 서버 환경에서 HDD를 빠른 속도로 대체하는 초고성능 스토리지로서의 위치를 확고히 하고 있다. SSD의 높은 성능을 활용하기 위해서, 많은 DBMS (Database Management System)와 파일 시스템이 append-only 쓰기 정책을 채택하고 있다. Append-only 쓰기 정책은 플래시 스토리 지의 out-of-place 업데이트 쓰기 특성을 고려함으로써, 응용 프로그램과 파일 시스템의 쓰기 워크로드를 플래시 스토리지에 최적화 한다. 그러나 다수 계층에서의 append-only 쓰기 정책 사용은 입출력 스택에 불필요한 기능의 중첩을 유발한다. 이러한 중첩에는 (i) 주소 변환 동작 및 이를 위한 자료구조의 중첩, (ii) 공간 수거 동작의 중첩 (파일 시스템의 세그먼트 클리닝과 스토리지의 가비지 컬렉션), 그리고 (iii) 각 계층에서의 over-provisioning 공간의 중첩 확보가 있다. 이러한 중첩들을 제거함으로써 입출력 계층을 최적화하는 기존의 기법들은, 파일 시스템 세그먼트 클리닝 단위의 증가로 인해 높은 세그먼트 클리닝 오버헤드를 유발하며, 더욱이 파일 시스템 블록 크기와 플래시 스토리지의 페이지 크기가 서로 다를 경우에 쓰기 증폭 문제를 야기한다. 본 논문의 목적은 호스트의 파일 시스템과 플래시 스토리지 펌웨어를 통합, 최적화한 입출력 스택을 개발하고, 스토리지 펌웨어 개발에 필요한 SSD 시뮬레이션 툴을 개발하는 것이다. 먼저, 로그 기반 파일 시스템과 플래시 스토리지 펌웨어를 수직 최적화한 입출력 스택인 OrcFS (Orchestrated File System) 를 개발하였다. OrcFS는 로그 기반 입출력 스택에서의 주소 변환 중첩, 세그먼트 클리닝 동작의 중첩, 그리고 over-provisioning 영역의 중첩을 제거한다. OrcFS 에 탑재된 세 가지 주요 기법은 다음과 같다. 첫 번째로 disaggregate mapping 기법은, 파일 시스템을 메타데이터 영역과 데이터 영역으로 나누고, 메타데이터 영역은 스토리지에서 플래시 페이지 단위로, 데이터 영역은 파일 시스템에서 수퍼블록 (superblock) 단위로 관리한다. 이를 통해 주소 변환 동작의 중첩을 제거하고, 플래시 스토리지에서 논리-물리 주소 변환에 필요한 메타데이터의 크기를 최소화한다. 두 번째로, QPSC (Quasi-Preemptive Segment Cleaning) 기법을 개발하여, 파일 시스템의 세그먼트 클리닝 단위가 큰 경우 (예 : 256 Mbytes), 세그먼트 클리닝 동작으로 인해 사용자 입출력 요청의 지연 시간이 증가하는 문제를 해결하였다. 세 번째로, 플래시 페이지 크기와 파일 시스템의 블록 크기가 다를 경우 발생하는 쓰기 증폭 문제를 block patching 기법을 통해 제거하였다. OrcFS의 프로토타입은 F2FS 파일 시스템과 삼성 840TN SSD의 펌웨어를 수정하여 개발하였다. OrcFS는 플래시 스토리지의 주소 변환 정보 크 기를 페이지 매핑과 AMF (Application-Managed Flash) 기법 대비 각각 1/465과 1/4 수준으로 감소시키었다. 세그먼트 클리닝 동작의 중첩을 제거함으로써, OrcFS는 임의 쓰기 워크로드에서 WAF (Write Amplification Factor) 를 F2FS 대비 30% 감소시켰으며, varmail 워크로드에서 EXT4 대비 56% 증가한 IOPS를 보였다. 다음으로, 다양한 SSD 펌웨어 알고리즘을 개발 및 평가하기 위한 플랫폼으로서, 가상 머신 기반의 SSD 시뮬레이터인 VSSIM (Virtual Machine based SSD Simulator) 을 개발하였다. VSSIM은 가상머신인 QEMU에서 동작하는 응용 프로그램의 스토리지 입출력 요청을 전달받아 처리함으로써, 트레이스 기반 시뮬레이터의 트레이스 rescaling과 트레이스 재생 문제를 해결 하였다. VSSIM은 채널 수, 웨이 수, 블록 크기, 페이지 크기, 플래시 메모리 당 플레인 개수, 플래시 입출력 지연시간 등 SSD의 다양한 하드웨어 요소들에 대한 설정을 제공하며, 사용자는 GUI 기반 모니터링 툴인 SSD 모니터를 통해 호스트의 성능과 SSD의 동작을 실시간으로 확인할 수 있다. VSSIM은 상용 SSD인 인텔 X25M을 사용하여 정확도를 검증하였으며, 순차 입출력 워크로드에서 3% 의 오차율로 X25M의 성능을 모사하였다. 마지막으로, 멀티 코어 시뮬레이션을 지원하는 SSD 시뮬레이터인 VNSIM (Virtual Machine based NVMe SSD Simulator)을 개발하였다. VNSIM은 최신의 호스트 컨트롤러 인터페이스인 NVM Express를 지원한다. 기존의 SSD 시뮬레이터들과는 달리, VNSIM은 2개 이상의 FTL 코어를 탑재한 SSD의 시뮬레이션을 지원하며, 그 외에 페이지 캐시 레지스터 모사 지원, 이중 쓰기 버퍼 동작 지원, 그리고 플래시 내 페이지 복사 인터페이스 등을 지원한다. 상용 NVMe SSD인 삼성 950 Pro를 사용하여 VNSIM의 정확도를 검증하였으며, VNSIM은 950 Pro 대비 6.2% ~ 8.9% 시뮬레이션 정확도를 보였다. 개발한 SSD 시뮬레이터들을 사용하여 다양한 워크로드에서 FTL 알고리즘에 따른 SSD 성능 평가 및 내부 동작을 분석하였으며, 이를 통해 VSSIM과 VNSIM이 SSD 프로토 타이핑을 위한 개발 툴로서 다양한 디자인 결정들을 내리는 데에 사용될 수 있음을 보였다.; Solid State Drive (SSD) continues to improve its performance and capacity through the adoption of new host interfaces and the use of multi-channel/multi-way I/O parallelism with a multi-core processor controller. Through these improvements, SSDs have replaced HDDs at a high rate on various platforms including mobile devices, desktop, and enterprise server environments. To exploit the performance of SSDs better, many applications and file systems adopt sophisticated append-only data structure in an effort to optimize the behavior of the file system with respect to the append-only nature of the Flash memory. While the benefit of adopting an append-only data structure seems fairly promising, it makes the I/O stacks full of unnecessary redundancies. The redundancies include (i) redundant levels of indirection (address translation), (ii) duplicate efforts to reclaim the invalid blocks (segment cleaning), and (iii) duplicated over-provisioning area in each layer. Existing solutions suffer from high segment cleaning overhead and cause significant write amplification due to mismatch between the file system bock size and the Flash page size. In this dissertation, we studied on vertically integrating I/O stack from the file system in the host and the firmware in the storage layer. We developed the Orchestrated File System (OrcFS) for Flash storage. OrcFS vertically integrates the log-structured file system and the Flash-based storage device to eliminate the redundancies across the layers. OrcFS eliminates the redundancies via distributing the address translation, segment cleaning (or garbage collection), bad block management, and wear-leveling across the layers. OrcFS adopts three key technical elements. First, OrcFS uses disaggregate mapping, whereby it partitions the Flash storage into two areas, managed by a file system and Flash storage, respectively, with different granularity. Second, OrcFS adopts quasi-preemptive segment cleaning to prohibit the foreground I/O operation from being interfered with by segment cleaning. The latency to reclaim the free space can be prohibitive in OrcFS due to its large file system section size, 256 Mbytes. OrcFS effectively addresses this issue via adopting a polling-based segment cleaning scheme. Third, the OrcFS introduces block patching to avoid unnecessary write amplification in the partial page program. We developed a prototype OrcFS based on F2FS and server class SSD with modified firmware (Samsung 843TN). OrcFS reduces the device mapping table requirement to 1/465 and 1/4 compared with the page mapping and the smallest mapping scheme known to the public, respectively. Via eliminating the redundancy in the segment cleaning and garbage collection, the OrcFS reduces 1/3 of the write volume under heavy random write workload. OrcFS achieves 56% performance improvement against EXT4 in varmail workload. Next, to design and evaluate the internal structure of the SSDs, we presented a virtual machine based SSD Simulator, VSSIM. VSSIM intends to address the issues of the trace driven simulation, e.g., trace re-scaling, accurate replay, etc. VSSIM operates on top of QEMU/ KVM with software based SSD module. VSSIM runs in realtime and allows the user to measure both the host performance and the SSD behavior under various design choices. VSSIM can flexibly model the various hardware components, e.g., the number of channels, the number of ways, block size, page size, planes per chip, NAND I/O latency, etc. VSSIM can also facilitate the implementation of the SSD firmware algorithms. VSSIM is validated against commodity SSD, Intel X25M SSD. VSSIM models the sequential IO performance of X25M within 5% offset. We expanded VSSIM to the Virtual-machine based NVMe SSD Simulator, VNSIM, which supports the latest host controller interface, NVM Express. Unlike the existing SSD simulators, VNSIM provides an environment for simulating and evaluating an SSD which has two or more Flash Translation Layer (FTL) cores running in the SSD. We developed the Flash I/O emulator which simulates the I/O performance of multiple Flash memories including page cache registers. VNSIM is validated using the samsung 950 Pro NVMe SSD, showing that VNSIM models the 950 Pro SSD with a 6.2% ~ 8.9% offset.
URI
https://repository.hanyang.ac.kr/handle/20.500.11754/75937http://hanyang.dcollection.net/common/orgView/200000433297
Appears in Collections:
GRADUATE SCHOOL[S](대학원) > COMPUTER SCIENCE(컴퓨터·소프트웨어학과) > Theses (Ph.D.)
Files in This Item:
There are no files associated with this item.
Export
RIS (EndNote)
XLS (Excel)
XML


qrcode

Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

BROWSE