Flashcache的实现原理与优化研究
发布时间:2018-10-16 19:25
【摘要】:随着固态盘的兴起,主流的存储系统都逐渐采用固态盘与机械硬盘混合的分层存储方式。固态盘的随机I/O(Input/Output)性能很好但价格贵,机械硬盘则容量大价格便宜,这两种存储设备相互补充,可以提供更好的存储方案。闪存缓存(Flashcache)就是其中之一,它的设计与实现均基于Linux设备映射器(DM)框架,原型来自DM缓存,是一个通用的块设备缓存模块,利用固态盘随机读写性能好的特点,将固态盘作为磁盘的缓存,用于加速块设备的访问。但是当前的Flashcache的设计与实现尚存在一些问题,可以进一步优化改进。 一方面,Flashcache本身在实现的时候没有考虑到并行性,所有请求全部是串行化处理。然而固态盘有很好的并行性,将串行I/O改为并行I/O则可以有效地提高其I/O性能。采用现代多线程编程方法将串行I/O改为并行I/O,采用细粒度的同步锁机制增加I/O过程的并行性,从而改善I/O性能。另一方面,Flashcache在缓存磁盘数据的时候并未区分I/O的类型,它缓存所有请求,不管是随机I/O还是顺序I/O。事实上固态盘的顺序I/O性能与磁盘或,特别是多个磁盘组成的RAID性能相比优势并不明显,缓存这类顺序I/O对性能的提升有限,相反的浪费了大量的固态盘存储空间,增加了固态盘的负担。通过在I/O过程中判别其特征,,对于顺序I/O则不采用固态盘缓存,直接读写磁盘或RAID,仅对较为随机的I/O请求采用固态盘进行缓存,进一步优化了Flashcache的性能。实验结果证明采用增加并行性和根据I/O特性有选择的进行缓存可以有效地提高Flashcache的性能。
[Abstract]:With the rise of solid-state disk, the mainstream storage system gradually adopts the layered storage mode of solid-state disk and mechanical hard disk. The random I / O (Input/Output) of solid-state disk is very good but expensive, while the mechanical hard disk has large capacity and low price. These two storage devices complement each other and can provide better storage scheme. Flash memory cache (Flashcache) is one of them. Its design and implementation are based on (DM) framework of Linux device mapper. Its prototype comes from DM cache. It is a universal block device cache module, which makes use of the good performance of random read and write of solid state disk. A solid-state disk is used as a cache to speed up access to block devices. However, there are still some problems in the design and implementation of Flashcache, which can be further optimized and improved. On the one hand, Flashcache itself is implemented without considering parallelism, and all requests are serialized. However, solid state disk has good parallelism. Changing serial I / O to parallel I / O can effectively improve the performance of I / O. The serial I / O is changed to parallel I / O by modern multithreading programming method, and the parallelism of I / O process is increased by using fine-grained synchronous locking mechanism, thus improving the performance of I / O. Flashcache, on the other hand, does not distinguish between I / O types when caching disk data; it caches all requests, whether random or sequential. In fact, the sequential I / O performance of solid-state disks is not much better than disk or, in particular, multi-disk RAID performance. Caching this sort of sequential I / O has limited performance gains, and on the contrary wastes a lot of solid-state disk storage space. By judging its characteristics in the process of I / O, the sequential I / O does not use solid disk cache, and the disk directly read and write or RAID, only uses solid state disk to cache random I / O requests, which further optimizes the performance of Flashcache.
【学位授予单位】:华中科技大学
【学位级别】:硕士
【学位授予年份】:2013
【分类号】:TP333
本文编号:2275394
[Abstract]:With the rise of solid-state disk, the mainstream storage system gradually adopts the layered storage mode of solid-state disk and mechanical hard disk. The random I / O (Input/Output) of solid-state disk is very good but expensive, while the mechanical hard disk has large capacity and low price. These two storage devices complement each other and can provide better storage scheme. Flash memory cache (Flashcache) is one of them. Its design and implementation are based on (DM) framework of Linux device mapper. Its prototype comes from DM cache. It is a universal block device cache module, which makes use of the good performance of random read and write of solid state disk. A solid-state disk is used as a cache to speed up access to block devices. However, there are still some problems in the design and implementation of Flashcache, which can be further optimized and improved. On the one hand, Flashcache itself is implemented without considering parallelism, and all requests are serialized. However, solid state disk has good parallelism. Changing serial I / O to parallel I / O can effectively improve the performance of I / O. The serial I / O is changed to parallel I / O by modern multithreading programming method, and the parallelism of I / O process is increased by using fine-grained synchronous locking mechanism, thus improving the performance of I / O. Flashcache, on the other hand, does not distinguish between I / O types when caching disk data; it caches all requests, whether random or sequential. In fact, the sequential I / O performance of solid-state disks is not much better than disk or, in particular, multi-disk RAID performance. Caching this sort of sequential I / O has limited performance gains, and on the contrary wastes a lot of solid-state disk storage space. By judging its characteristics in the process of I / O, the sequential I / O does not use solid disk cache, and the disk directly read and write or RAID, only uses solid state disk to cache random I / O requests, which further optimizes the performance of Flashcache.
【学位授予单位】:华中科技大学
【学位级别】:硕士
【学位授予年份】:2013
【分类号】:TP333
【参考文献】
相关期刊论文 前3条
1 周可,张江陵,冯丹;Cache对磁盘阵列性能的影响[J];电子学报;2003年09期
2 李洁琼,冯丹,张熳;提高磁盘阵列小写性能的方法研究[J];计算机工程;2003年18期
3 李明,唐志敏;一种新的Cache优化方法──部分Cache局部性方法[J];计算机学报;1997年01期
本文编号:2275394
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2275394.html