首页 > 代码库 > Flashcache
Flashcache
源码安装:
unzip flashcache-master.zip
cd flashcache-master
make
make install
rpm来源:http://rpm.pbone.net/
rpm安装:rpm -ivh kmod-flashcache-0.0-3.el6.elrepo.x86_64.rpm
rpm -ivh flashcache-utils-0.0-4.1.el6.elrepo.x86_64.rpm
deb来源:alien将rpm包转换为deb包
alien --scripts kmod-flashcache-0.0-3.el6.elrepo.x86_64.rpm
alien --scripts flashcache-utils-0.0-4.1.el6.elrepo.x86_64.rpm
deb安装:dpkg -i kmod-flashcache_0.0-4_amd64.deb
dpkg -i flashcache-utils_0.0-5.1_amd64.deb
1.简介
Flashcache 是为Linux操作系统开发的块设备回写缓存内核模块,使用了Device Mapper的方式实现,本文档可指导你快速掌握Flashcache管理工作。
2. 系统需求
Flashcache 在Linux 2.6.18 和 2.6.20 内核上编译并测试通过。如果需要在更新的内核上使用,请发送邮件给作者寻求帮助,但作者声明不会支持比2.6.18旧的内核版本
3.缓存持久性
Writethru 和writearound 没有持久性,在断电或重启后,缓存数据会丢失,writeback具有持久性,在断电或重启后,缓存数据不会丢失。?
4. Cache创建与加载工具
这部分有三个工具: flashcache_create, flashcache_load
和flashcache_destroy.
这些工具实际上内部调用dmsetup命令,包装了一个比较简单的界面来处理创建、加载和销毁flashcache
卷的工作。希望能帮助大部分用户来避免使用到较复杂的dmsetup指令。
4.1 flashcache_create
功能:创建一个新的flashcache卷。命令语法:
flashcache_create -p back|around|thru [-s cache size] [-b block size] cachedevname ssd_devname disk_devname
-p:缓存模式 writeback,writethrough,writearound三种。
-s:缓存大小,可选项,如果未指定则整个SSD设备被用于缓存,默认的计数单位是扇区(sectors),但是可以接受k/m/g单位。
-b:指定块大小,可选项,默认为4KB,必须为2的指数。默认单位为扇区。也可以用K作为单位,一般选4KB。
-f:强制创建,不进行检查。
举例:
flashcache_create -p back -s 1g -b 4k cachedev /dev/sdc /dev/sdb
创建一个1GB回写的缓存卷,名称为“cachedev”,目标磁盘是磁盘 /dev/sdb(SAS盘或SATA盘),缓存盘是/dev/sdc(SSD盘),快大小为4KB。
flashcache_create -p thru -s 2097152 -b 8 cachedev /dev/sdc /dev/sdb
创建一个2097152扇区(1G)的通写缓存卷,块大小为8KB。其他同上面。
4.2 flashcache_load
功能:加载一个已经存在的flashcache卷,命令语法:
flashcache_load cachedevname ssd_devname disk_devname
举例:
flashcache_load cachedev /dev/sdc /dev/sdb
加载一个已经存在writeback 缓存的 /dev/sdc设备。
一般是为了重启后可继续使用。
4.3 flashcache_destroy
功能:销毁一个存在的flashcache卷,所有的数据将被丢失。
语法:flashcache_destroy ssd_devname
举例:flashcache_destroy /dev/sdc
销毁卷/dev/sdc
5 删除 flashcache 卷
需要使用 dmsetup remove 命令来删除一个 flashcache 卷。
对于writeback模式,默认的remove行为是将“脏”的cache数据写到磁盘上,一直到所有的数据写到磁盘,该命令才会返回成功。磁盘清理的过程被报告给控制台。另外机器reboot同样会触发将Cache里的脏数据同步到磁盘的动作。
对于writethrough和writearound模式的缓存,磁盘删除或者重启,卷都会被删除。
举例:dmsetup remove cachedev
删除的flashcache 卷的名称为cachedev,删除之前会清理掉所有的块。
6 Cache统计信息
可以使用 “dmsetup status”命令来查询cache的统计信息。
“dmsetup table”命令可以dumps出来achce相关的统计信息。
举例:
dmsetup status cachedev
dmsetup table cachedev
另外proc文件系统中也有相应的状态和错误的统计报告:
flashcache 卷的错误信息报告在
/proc/flashcache/<cache name>/flashcache_errors 里
flashcache 卷的统计信息报告在
/proc/flashcache/<cache name>/flashcache_stats 里
7.缓存块大小选择
缓存块大小的选择对于好的缓存利用率和性能来说很关键。
4KB的缓存块可用于绝大多数的工作量或文件系统来说
8.缓存元数据块大小的选择
元数据块的选择只适用于回写缓存模式,对于writethrough和writearound模式存储没有缓存元数据。
在flashcache版本1中,元数据块的大小被确定为1个扇区,即512B。在flashcache版本2中取消了这个限制。在版本2中,可以自己设定更大的flashcache元数据块大小。在第2版本中的缓存向后兼容,对于这些情况,512B的元数据块将继续使用。
flashcache_create –m选项可以用于配置元数据块的大小,默认为4KB。理想的元数据块大小是4KB(默认)或者8KB。选择元数据块的大小有以下规则:
1) 元数据块的大小必须是2的指数
2) 元数据快的大小不能比SSD盘配置的扇区尺寸小
3) 一个单一的元数据块不能有2个数据缓存设置。
选择比512B元数据块大的数据的优势:
1) 允许SSD被设置更大的扇区。例如,一些SSD允许选择4KB扇区,往往有更好的性能选择。
2) 允许flashache做更好的元数据更新, 有可能减少元数据的更新,写SSD变小,减少写入放大和更高的SSD寿命。
9、使用 dmsetup命令创建和加载flashcache卷
很少有人需要使用dmsetup原生命令去创建和加载flashcache卷。本节包含的内容如下:
dmsetup create device_name table_file
device_name 被创建或加载的flashcache设备名
table_file 其他缓存格式,如果被省略,则从标准输入读取。
table_file格式:
0 <disk dev sz in sectors> flashcache <disk dev> <ssd dev> <cache mode> <flashcache cmd> <blksize in sectors> [size of cache in sectors] [cache set size]
cache 模式:1: Write Back 2: Write Through 3: Write Around
flashcache 命令: 1: load existing cache (加载已存在的缓存)
2: create cache (创建新的缓存)
3: force create cache (overwriting existing cache):(强制创建缓存)
扇区块大小的选择: 4KB(8扇区,每页)是最佳选择对应大多数应用。
扇区缓存大小的选择:2的指数被
缓存尺寸设置:默认512
10、缓存控制:
Flashcache能被设置成两种模式:Cache Everything or Cache Nothing,默认的是Cache Everything。
这两种模式有一个黑名单和一个白名单。
11、安全注意事项
对应Flashcache,有可能被一个恶意的用户进程破坏只读文件的数据。在未来的Flashcache版本中。将解决这个问题(采用额外的数据复制)
没有记录恶意程序是如何破坏数据的机制
您可以通过设置Flashcache卷中的文件的适当权限去解决这样的问题。
12、调整XFS使Flashcache性能更好
flashcache-master.zip (165.319 KB)
flashcache-utils-0.0-4.1.el6.elrepo.x86_64.rpm (28.516 KB)
kmod-flashcache-0.0-3.el6.elrepo.x86_64.rpm (60.699 KB)
flashcache-utils_0.0-5.1_amd64.deb (29.836 KB)
kmod-flashcache_0.0-4_amd64.deb (60.586 KB)
新建文件
Flashcache