Answers:
我真的不知道从哪里开始,因为所有这些都是极好的信息。我将从有关SSD的一些信息开始,然后对所有不同的缓存方法进行描述,然后从那里开始。我希望你
优点缺点
最好拥有混合动力系统,兼具两全其美的能力(容量,可靠性,速度等)
Linux 3.9内核(2013年4月28日上市)引入了SSD缓存。内核的设备映射器现在包括一个称为dm-cache的缓存目标,该目标使SSD或其他存储设备可用作硬盘驱动器的缓存。从本质上讲,它可以加快数据的写入和读取速度,因为它允许更快的SSD首先缓存数据,然后将其传输到速度较慢的硬盘中。
资料来源:Iwn
Flashcache是最初由Facebook(Mohan Srinivasan,Paul Saab和Vadim Tkachenko)于2010年4月编写和发布的模块。它是一个内核模块,它允许在另一个驱动器上进行直写式缓存。由于性能原因,这通常用于在较小的固态驱动器上缓存旋转驱动器。这为您提供了SSD的速度和最近缓存的文件的标准旋转驱动器的大小。FlashCache是Linux的通用写回块缓存。
资料来源:ArchLinux
Bcache是Linux内核块层缓存。它允许一个或多个快速磁盘驱动器(例如,基于闪存的固态驱动器(SSD))充当一个或多个速度较慢的硬盘驱动器的缓存。
硬盘既便宜又大,SSD既快又小又昂贵。如果您可以透明地获得两者的优势,那不是很好吗?有了Bcache,您就可以吃蛋糕了。
Linux内核的Bcache补丁允许人们使用SSD来缓存其他块设备。它类似于ZFS的L2Arc,但是Bcache也做回写缓存(仅通过缓存进行写操作),并且与文件系统无关。它旨在以最小的努力开启,并且无需任何设置即可正常工作。默认情况下,它不会缓存顺序IO,而只是对SSD擅长的随机读写进行缓存。它适用于台式机,服务器,高端存储阵列,甚至是嵌入式。
设计目标是与SSD和缓存设备(取决于缓存命中与未命中以及直写与写回写)一样快,以在误差范围内。它还不完全存在,主要用于顺序读取。但是测试表明,它很有可能,甚至在某些情况下可以做得更好-主要是随机写入。
资料来源:Bcache
Bcache有一个很大的缺点,那就是它会占用系统内存以实现缓存。
EnhanceIO是一种在应用程序层下运行的解决方案,使应用程序可以利用SSD的性能优势,而无需进行重大IT基础架构更改。SSD缓存可以带来从HDD切换到SSD的大部分好处,而成本仅为全SSD系统的一小部分。与具有类似性能的基于HDD的系统相比,高速缓存的系统通常在较少的功率下运行,并且通过降低散热要求而产生了附带好处。
SSD缓存还可以通过增加性能来提高性能以满足不断增长的需求,从而延长现有系统的使用寿命,而不是通过批量升级/替换现有系统来满足需求。
缓存还可以更快地访问数据,而无需额外的存储管理开销来获取和安装新的磁盘架,配置新的LUN以及将数据迁移到新的LUN。缓存几乎是透明的,几乎不需要停机。EnhanceIO基于Flashcache。
资料来源:Stec-Inc
bcache是最没有价值的,因为它需要特别准备的(格式化的)数据分区。这使得(如果可能的话)很难将缓存附加到具有数据的现有分区,因为这将需要200%的容量,并且执行长时间的数据移动才能激活/停用缓存。
EnhanceIO的出色之处在于它根本不需要中间设备,并且即使已经安装了设备,也可以即时连接到任何块设备。另一个超酷的事情是,您不仅可以将EnhanceIO高速缓存附加到分区,而且还可以附加到分区的块设备以一次高速缓存其所有分区。就像Flashcache enchanceio模块是使用DKMS构建的,可以与较早的内核一起使用。
资料来源:Debian
DM缓存优势
DM缓存使用简化的体系结构,这使它们具有适应性强且易于定制。用户可以根据将要处理的数据量或数据值来调整块大小和缓存容量。如果特定应用程序需要按顺序存储大量数据,则用户可以为此目的配置缓存。如果用户希望与高速缓存同时在数据库中记录信息,则不会干扰高速缓存的操作。
DM缓存缺点
使用DM缓存的一个缺点是Linux操作系统用于存储元数据的空间有限。如果高速缓存很大,并且包含许多小块,那么这将为存储的信息加在一起很多元数据。为了解决这个问题,用户必须增加块大小。另一个可能的问题是,在服务器崩溃之后,缓存元数据可能不再与缓存内容匹配,尽管有可能最终恢复正确的配置。
资料来源:弗雷泽·谢尔曼(Fraser Sherman)的补编
因此,从以上信息中可以明显看出,EnhancedIO是必经之路,但我认为,由于它基于Flashcache,因此我将使用Flash cache。但是,在做出最终决定之前,我一定会尝试两者。
zram-config
,它将优先使用交换。并且,将游戏存储在SDD上并进行测试。有些游戏不能更快地运行,而其他游戏则可以很好地运行!由于它的写限制,我宁愿不使用SDD作为缓存,但是SDD变得越来越便宜,所以不再那么担心了:)