skip to main content
research-article

ECI-Cache: A High-Endurance and Cost-Efficient I/O Caching Scheme for Virtualized Platforms

Published:03 April 2018Publication History
Skip Abstract Section

Abstract

In recent years, high interest in using Virtual Machines (VMs) in data centers and Cloud computing has significantly increased the demand for high-performance data storage systems. A straightforward approach to provide a high performance storage system is using Solid-State Drives (SSDs). Inclusion of SSDs in storage systems, however, imposes significantly higher cost compared to Hard Disk Drives (HDDs). Recent studies suggest using SSDs as a caching layer for HDD-based storage subsystems in virtualization platforms. Such studies neglect to address the endurance and cost of SSDs, which can significantly affect the efficiency of I/O caching. Moreover, previous studies only configure the cache size to provide the required performance level for each VM, while neglecting other important parameters such as cache write policy and request type, which can adversely affect both performance-per-cost and endurance.

In this paper, we present a new high-Endurance and Cost-efficient I/O Caching (ECI-Cache) scheme for virtualized platforms, which can significantly improve both the performance-per-cost and endurance of storage subsystems as opposed to previously proposed I/O caching schemes. Unlike traditional I/O caching schemes which allocate cache size only based on reuse distance of accesses, we propose a new metric, Useful Reuse Distance (URD), which considers the request type in reuse distance calculation, resulting in improved performance-per-cost and endurance for the SSD cache. Via online characterization of workloads and using URD, ECI-Cache partitions the SSD cache across VMs and is able to dynamically adjust the cache size and write policy for each VM. To evaluate the proposed scheme, we have implemented ECI-Cache in an open source hypervisor, QEMU (version 2.8.0), on a server running the CentOS 7 operating system (kernel version 3.10.0-327). Experimental results show that our proposed scheme improves the performance, performance-per-cost, and endurance of the SSD cache by 17%, 30% and 65%, respectively, compared to the state-of-the-art dynamic cache partitioning scheme.

References

  1. Nitin Agrawal, Vijayan Prabhakaran, Ted Wobber, John D. Davis, Mark S. Manasse, Moinuddin K. Panigrahy, RinaQureshi, and Yale N. Patt. 2008. Design Tradeoffs for SSD Performance. In USENIX Annual Technical Conference (USENIX ATC). Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Saba Ahmadian, Farhad Taheri, Mehrshad Lotfi, Maryam Karimi, and Hossein Asadi. 2018. Investigating Power Outage Effects on Reliability of Solid-State Drives. In to appear in Design, Automation Test in Europe Conference Exhibition (DATE).Google ScholarGoogle Scholar
  3. Christoph Albrecht, Arif Merchant, Murray Stokely, Muhammad Waliji, François Labelle, Nate Coehlo, Xudong Shi, and Eric Schrock. 2013. Janus: Optimal Flash Provisioning for Cloud Storage Workloads. In Proceedings of USENIX Annual Technical Conference (USENIX ATC). Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Raja Appuswamy, David C. van Moolenbroek, and Andrew S. Tanenbaum. 2012. Integrating Flash-Based SSDs into the Storage Stack. In IEEE 28th Symposium on Mass Storage Systems and Technologies (MSST).Google ScholarGoogle Scholar
  5. Dulcardo Arteaga, Jorge Cabrera, Jing Xu, Swaminathan Sundararaman, Dulcardo Zhao, MingArteaga, Jorge Cabrera, Jing Xu, Swaminathan Sundararaman, and Ming Zhao. 2016. CloudCache: On-Demand Flash Cache Management for Cloud Computing. In USENIX Conference on File and Storage Technologies (FAST). Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Rajkishore Barik, Jisheng Zhao, and Vivek Sarkar. 2013. S-CAVE: Effective SSD Cahing to Improve Virtual Machine Storage Performance. In Proceedings of Parallel Architectures and Compilation Techniques (PACT). Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Erik Berg and Erik Hagersten. 2004. StatCache: A Probabilistic Approach to Efficient and Accurate Data Locality Analysis. In Performance Analysis of Systems and Software, IEEE International Symposium (ISPASS). Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Blktrace. 2006. Blktrace: Block Layer IO Tracing Tool. https://linux.die.net/man/8/blktrace. (2006). Retrieved March 2017 from https://linux.die.net/man/8/blktraceGoogle ScholarGoogle Scholar
  9. Steve Byan, James Lentini, Anshul Madan, Luis Pabon, Michael Condict, Jeff Kimmel, Steve Kleiman, Christopher Small, and Mark Storer. 2012. Mercury: Host-Side Flash Caching for the Data Center. In IEEE Symposium on Mass Storage Systems and Technologies (MSST).Google ScholarGoogle Scholar
  10. Yu Cai, Saugata Ghose, Erich F. Haratsch, Yixin Luo, and Onur Mutlu. 2017. Error Characterization, Mitigation, and Recovery in Flash Memory Based Solid-State Drives. Proceedings of the IEEE 105 (2017), 1666--1704.Google ScholarGoogle ScholarCross RefCross Ref
  11. Yu Cai, Erich F. Haratsch, Onur Mutlu, and Ken Mai. 2012. Error Patterns in MLC NAND Flash Memory: Measurement, Characterization, and Analysis. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE).521--526. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Yu Cai, Gulay Yalcin, Onur Mutlu, Erich F. Haratsch, Adrian Crista, Osman S. Unsal, and Ken Mai. 2013. Error Analysis and Retention-Aware Error Management for NAND Flash Memory. Intel Technology Journal 17, 1 (2013).Google ScholarGoogle Scholar
  13. Feng Chen, David A. Koufaty, and Xiaodong Zhang. 2011. Hystor: Making the Best Use of Solid State Drives in High Performance Storage Systems. In International Conference on Supercomputing. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Chen Ding and Yutao Zhong. 2001. Reuse Distance Analysis. University of Rochester, Rochester, NY (2001).Google ScholarGoogle Scholar
  15. Chen Ding and Yutao Zhong. 2003. Predicting Whole-Program Locality Through Reuse Distance Analysis. In ACM SIGPLAN Notices. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. EMC Corporation. 2012. EMC VFCache. http://www.emc2.eu. (2012). Retrieved Feb 2016 from http://www.emc2.euGoogle ScholarGoogle Scholar
  17. EnhanceIO. 2012. EnhanceIO. https://github.com/stec-inc/EnhanceIO. (2012). Retrieved June 2016 from https://github.com/stec-inc/EnhanceIOGoogle ScholarGoogle Scholar
  18. Changpeng Fang, Steve Carr, Soner Önder, and Zhenlin Wang. 2004. Reuse-Distance-Based Miss-Rate Prediction on a Per Instruction Basis. In Proceedings of the workshop on Memory system performance. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Fusion-IO. 2005. Fusionio ioTurbine. http://web.sandisk.com. (2005). Retrieved Feb 2016 from http://web.sandisk.comGoogle ScholarGoogle Scholar
  20. HP-G5. 2010. HP ProLiant DL380 Generation 5. http://h18000.www1.hp.com/products. (2010). Retrieved Dec 2016 from http://h18000.www1.hp.com/productsGoogle ScholarGoogle Scholar
  21. HP-HDD. 2016. SAS 10K HP HDD. http://h18000.www1.hp.com/products. (2016). Retrieved Dec 2016 from http://h18000.www1.hp.com/productsGoogle ScholarGoogle Scholar
  22. Sai Huang, Qingsong Wei, Dan Feng, Jianxi Chen, and Cheng Chen. 2016. Improving Flash-Based Disk Cache With Lazy Adaptive Replacement. ACM Transactions on Storage (TOS) (2016). Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. NetApp Inc. 2009. NetApp FlexCache. http://www.netapp.com/us/media/tr-3669.pdf. (2009). Retrieved Jan 2017 from http://www.netapp.com/us/media/tr-3669.pdfGoogle ScholarGoogle Scholar
  24. Intel. 2016. Intel(R) Xeon CPU. www.intel.com. (2016). Retrieved Jan 2017 from www.intel.comGoogle ScholarGoogle Scholar
  25. Youngjae Kim, Aayush Gupta, Bhuvan Urgaonkar, Piotr Berman, and Anand Sivasubramaniam. 2011. HybridStore: A Cost-Efficient, High-Performance Storage System Combining SSDs and HDDs. In IEEE Annual International Symposium on Modelling, Analysis, and Simulation of Computer and Telecommunication Systems. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Yannis Klonatos, Thanos Makatos, Manolis Marazakis, Michail D. Flouris, and Angelos Bilas. 2011. Azor: Using Two-Level Block Selection to Improve SSD-Based I/O Caches. In IEEE International Conference on Networking, Architecture and Storage (NAS). Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Ricardo Koller, Ali José Mashtizadeh, and Raju Rangaswami. 2015. Centaur: Host-Side SSD Caching for Storage Performance Control. In IEEE International Conference on Autonomic Computing (ICAC). Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Cheng Li, Philip Shilane, Fred Douglis, Hyong Shim, Stephen Smaldone, and Grant Wallace. 2014. Nitro: A Capacity-Optimized SSD Cache for Primary Storage. In Proceedings of USENIX Annual Technical Conference (USENIX ATC). Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Yushi Liang, Yunpeng Chai, Ning Bao, Hengyu Chen, and Yaohong Liu. 2016. Elastic Queue: A Universal SSD Lifetime Extension Plug-in for Cache Replacement Algorithms. In Proceedings of the 9th ACM International on Systems and Storage Conference. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Deng Liu, Jianzhe Tai, Julia Lo, Ningfang Mi, and Xiaoyun Zhu. 2014. VFRM: Flash Resource Manager in VMware ESX Server. In Network Operations and Management Symposium (NOMS).Google ScholarGoogle Scholar
  31. Jian Liu, Yunpeng Chai, Xiao Qin, and Yuan Xiao. 2014. PLC-cache: Endurable SSD Cache For Deduplication-Based Primary Storage. In Mass Storage Systems and Technologies (MSST).Google ScholarGoogle Scholar
  32. MathWorks. 2017. fmincon. https://www.mathworks.com/help. (2017). Retrieved Sep. 2017 from https://www.mathworks.com/helpGoogle ScholarGoogle Scholar
  33. Jeanna Matthews, Sanjeev Trika, Debra Hensgen, Rick Coulson, and Knut Grimsrud. 2008. Intel® Turbo Memory: Nonvolatile Disk Caches in the Storage Hierarchy of Mainstream Computer Systems. ACM Transactions on Storage (TOS) (2008). Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Richard L. Mattson, Jan Gecsei, Donald R. Slutz, and Irving L. Traiger. 1970. Evaluation Techniques for Storage Hierarchies. IBM Systems journal) (1970). Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Fei Meng, Li Zhou, Xiaosong Ma, Sandeep Uttamchandani, and Deng Liu. 2014. vCacheShare: Au- tomated Server Flash Cache Space Management in a Virtualization Environment. In Proceedings of USENIX Annual Technical Conference (USENIX ATC). Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Justin Meza, Qiang Wu, Sanjev Kumar, and Onur Mutlu. 2015. A Large-Scale Study of Flash Memory Failures in the Field. In ACM SIGMETRICS Performance Evaluation Review,Vol.43.177--190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Dushyanth Narayanan, Eno Thereska, Austin Donnelly, Sameh Elnikety, and Antony Rowstron. 2009. Migrating Server Storage to SSDs: Analysis of Tradeoffs. In ACM European Conference on Computer Systems. 14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Qingpeng Niu, James Dinan, Qingda Lu, and P. Sadayappan. 2012. PARDA: A Fast Parallel Reuse Distance Analysis Algorithm. In Parallel & Distributed Processing Symposium (IPDPS). Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. QEMU. 2016. QEMU: Quick Emulator. http://wiki.qemu.org. (2016). Retrieved March 2016 from http://wiki.qemu.orgGoogle ScholarGoogle Scholar
  40. Hongchan Roh, Mincheol Shin, Wonmook Jung, and Sanghyun Park. 2017. Advanced Block Nested Loop Join for Extending SSD Lifetime. IEEE Transactions on Knowledge and Data Engineering (2017). Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Reza Salkhordeh, Hossein Asadi, and Shahriar Ebrahimi. 2015. Operating System Level Data Tiering Using Online Workload Characterization. The Journal of Supercomputing (2015). Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Reza Salkhordeh, Shahriar Ebrahimi, and Hossein Asadi. 2018. ReCA: an Efficient Reconfigurable Cache Architecture for Storage Systems with Online Workload Characterization. IEEE Transactions on Parallel and Distributed Systems (TPDS) PP, PP (2018), 1--1.Google ScholarGoogle Scholar
  43. Samsung. 2014. Endurance of the SSD for data centers. http://www.samsung.com. (2014). Retrieved July 2017 from http://www.samsung.comGoogle ScholarGoogle Scholar
  44. Samsung. 2016. Samsung SSD 850 Pro. http://www.samsung.com. (2016). Retrieved March 2016 from http://www.samsung.comGoogle ScholarGoogle Scholar
  45. Xipeng Shen, Jonathan Shaw, Brian Meeker, and Chen Ding. 2007. Locality Approximation Using Time. In the Symposium on Principles of Programming Languages (POPL). Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. SKHynix. 2016. Hynix Semiconductor Memory. https://www.skhynix.com/eng/index.jsp. (2016). Retrieved Jan 2017 from https://www.skhynix.com/eng/index.jspGoogle ScholarGoogle Scholar
  47. SNIA. 2016. Microsoft Enterprise Traces, Storage Networking Industry Association IOTTA Repository. http://h18000.www1.hp.com/products. (2016). Retrieved Dec 2016 from http://h18000.www1.hp.com/productsGoogle ScholarGoogle Scholar
  48. Vijayaraghavan Soundararajan and Jennifer M. Anderson. 2010. The Impact of Management Operations on the Virtualized Datacenter. In ACM International Symposium on Computer Architecture. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Mohan Srinivasan, Paul Saab, and V. Tkachenko. 1991. FlashCache. https://github.com/facebookarchive/flashcache. (1991). Retrieved Jan 2017 from https://github.com/facebookarchive/flashcacheGoogle ScholarGoogle Scholar
  50. Mojtaba Tarihi, Hossein Asadi, Alireza Haghdoost, Mohammad Arjomand, and Hamid Sarbazi-Azad. 2016. A Hybrid Non-Volatile Cache Design for Solid-State Drives Using Comprehensive I/O Characterization. IEEE Transactions on Computers 65, 6 (2016), 1678--1691.Google ScholarGoogle ScholarCross RefCross Ref
  51. Omesh Tickoo, Ravi Iyer, Ramesh Illikkal, and Don Newell. 2010. Modeling Virtual Machine Performance: Challenges and Approaches. ACM SIGMETRICS Performance Evaluation Review (2010). Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Stephen Tweedie. 2000. Ext3, Journaling Filesystem. In Ottawa Linux Symposium.Google ScholarGoogle Scholar
  53. Rich Uhlig, Gil Neiger, Dion Rodgers, Amy L. Santoni, Fernando C.M. Martins, Andrew V. Anderson, Steven M. Bennett, Alain Kagi, Felix H. Leung, and Larry Smith. 2005. Intel Virtualization Technology. Computer (2005). Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Matthew Wachs, Michael Abd-El-Malek, Eno Thereska, and Gregory R. Ganger. 2007. Argon: Perfor- mance Insulation for Shared Storage Servers. In Proceedings of the USENIX Conference on File and Storage Technologies (USENIX FAST). Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Carl A. Waldspurger, Nohhyun Park, Alexander Garthwaite, and Irfan Ahmad. 2015. Efficient MRC Construction with SHARDS. In USENIX Conference on File and Storage Technologies (FAST 15). Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Yutao Zhong, Xipeng Shen, and Chen Ding. 2009. Program Locality Analysis Using Reuse Distance. ACM Transactions on Programming Languages and Systems (TOPLAS) (2009). Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. ECI-Cache: A High-Endurance and Cost-Efficient I/O Caching Scheme for Virtualized Platforms

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!