透過您的圖書館登入
IP:18.116.239.195
  • 學位論文

對基於非揮發性記憶體的存儲系統的文件系統性能進行深入分析

An In-depth Analysis on File System Performance for NVM-based Storage System

指導教授 : 楊佳玲

摘要


儲存級記憶體 (Storage Class Memory, SCM) 使用新興的非揮發性記憶體 (Non- Volatile Memory, NVM),如:相變化記憶體 (Phase Change Memory, PCM)、可 變電阻式記憶體 (Resistive Random-Access Memory, ReRAM) 和自旋傳輸磁性記 憶體 (Spin-Torque Transfer RAM, STT-MRAM) 達到具備記憶體 (memory) 的速 度,也同時擁有記憶體的位元組定址 (byte-addressable) 的屬性和傳統儲存裝置 (storage) 的非揮發性 (non-volatile) 的好處,被視為在記憶體與儲存系統之間新 的一層記憶體階級 (memory hierarchy)。相較於快取記憶體 (flash) 和傳統磁碟 (disk),使用非揮發性記憶體作為系統中的儲存裝置,對於系統效能得以得到顯著 的提升。 非揮發性記憶體的出現填補了傳統記憶體和儲存裝置的速度差異。然而,軟體 層輸入輸出堆疊執行時間佔整體輸入輸出堆疊存取時間之比例將大幅提升至62% [6],系統儲存裝置之效能瓶頸越來越往軟體端移動。另外,非揮發性記憶體的特 性也無法被好好利用。 在這篇論文中,我們將進行建構以及模擬非揮發性記憶體的實驗平台,並對 於儲存裝置用傳統檔案讀寫 (standard file I/O) 的存取方式所經過的輸入輸出堆 疊中,包含虛擬文件系統、文件系統、驅動程式和儲存裝置存取,進行評估。這 篇論文主要對基於非揮發性記憶體的存儲系統的文件系統性能進行深入分析, 目標是在軟體層中找出從使用者應用端 (application) 要存取至儲存裝置最大的瓶頸(overhead),並能對提供日後針對非揮發性記憶體的文件系統的設計有所幫助。 我們將分析分為三個部分。首先,我們著重於分析所選的文件系統的單一讀 寫請求 (single I/O request) 性能,以研究文件系統的單一讀寫請求的操作及其 在每個文件系統所帶來的性能費用 (performance overhead) 。接下來,我們研究 單執行緒 (single thread) 中順序和隨機讀寫請求 (sequential and random access request) 的性能,以了解文件系統中單一讀寫請求與多個讀寫請求之間的性能差 異;以及研究文件系統在多執行緒 (multi-thread) 中的性能,進而研究文件系統 的並行支持 (concurrency support) 性能。最後,我們使用Filebench中的四個實際工作 (workload) 來研究文件系統在實際工作情景下的性能。 在我們的分析中,我們發現在為了 NVM 而設計和優化的文件系統時需要重新考慮一些設計問題。我們建議,為了 NVM 而設計的文件系統在大筆資料的讀 寫時,可以用更大的執行單位來避免重複執行大型數據訪問中的文件索引 (file indexing),NVM尋址 (NVM addressing) 和NVM讀寫 (NVM access) 的開銷。我 們也發現基數樹 (radix tree) 的重新佈置和管理在NVM的文件系統上產生了顯著 的性能開銷,因此也提供了建議。此外,我們也針對了支援並行性能及保證數據 的一致性 (consistency) 提供分析與建議。

並列摘要


Nowadays, the access latency of byte-addressable NVM decreases and the access latency to the traditional design of software layers becomes an overhead. Thus, byte-addressable NVM technologies require significant changes to the way systems interact with storage devices. In this paper, we analyze the legacy storage stack, focusing on the file systems designed for the NVM, aiming to determine the potential issues of the file systems designed for the NVM-based storage system. We target on NVM in DIMMs which is attached to the processor’s memory bus in a manner similar to DRAM and select some NVM-aware file systems due to their unique designs for NVM as well as due to their direct access (DAX) support, which bypasses DRAM page cache. The selected file systems are NOVA [12], a file system that highly optimized for NVM, and Ext4- DAX, a widely used and stable block-based file system that adjusts operating system for NVM, and SIMFS [11] a new file system that embeds address space of a file into process address space, as our studied NVM-aware file systems. We also focus on four features of the file system, which are metadata (inode) indexing, file indexing, NVM addressing and consistency mechanism. We categorize our analysis into three sections. First, we analyze the operations of a single I/O request of the NVM-aware file systems and their corresponding overhead in each of the selected file system. Next, we study the sequential and random I/O requests in a single thread to find out the difference in performance between single I/O request and multiple I/O requests among the NVM-aware file systems, as well as the performance in multi-threads to study the performance of concurrency support of the file system. Finally, we study the performance of NVM- aware file system in workload scenario using four workloads from Filebench as our evaluated macro-benchmark. In our analysis, we find some design concerns that needed to be reconsidered when designing NVM-aware and NVM-optimized file system. We suggest that the design of NVM-aware file system should avoid the overhead of repeatedly performing file indexing, NVM addressing and data access in large data access by using a larger granularity of data when performing these actions. Besides, the legacy driver-based NVM address calculation and the legacy address translation are found unnecessary for the NVM and suggestions are provided. We also provide some suggestions for consistency and concurrency support for NVM-aware file systems.

參考文獻


[6] A. M. Caulfield, A. De, J. Coburn, T. I. Mollow, R. K. Gupta, and S. Swanson. Moneta: A high-performance storage array architecture for next-generation, non- volatile memories. In Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture, pages 385–395. IEEE Computer Society, 2010.
[11] E. H.-M. Sha, X. Chen, Q. Zhuge, L. Shi, and W. Jiang. A new design of in-memory file system based on file virtual address framework. IEEE Transactions on Computers, 65(10):2959–2972, 2016.
[1] Flexible i/o tester, http://freecode.com/projects/fio.
[2] Execute-in-place (xip) support for the linux kernel, https://lwn.net/Articles/135472/.
[3] Pmem driver for persistent memory, https://nvdimm.wiki.kernel.org.

延伸閱讀