在Linux系统中将SSD当块设备缓存的方法
原理
写操作先缓存到ssd硬盘上,然后通过一定策略写到普通硬盘上;
读操作热点数据可以缓存到ssd硬盘上,提高读取数据的速度。
软件 ssd 缓存开源软件主要有bcache ,flashcache
bcache 需要编译最新的内核,要求比较高,配置比较复杂,目前主要用于测试环境;
flashcache 是facebook内部使用的ssd cache软件,开源出来供大家使用,目前有人编译出rhel6的rpm包,在centos6上可以直接安装使用。
本次初步测试了flashcache
测试环境
sdc为 ssd 硬盘 160g*4 raid 10 用fio测试 4k 写iops为 5433
sdb为 普通sas硬盘 146g*2 raid 1 用fio测试 4k 写iops为 447
初步简单测试结果:
4k 随机写可以达到 5014
4k随机读可以达到45874
flashcache 安装配置方法
安装
配置:
用sdc 做sdb的缓存
可以用3种方式:
数据同时写到ssd和普通硬盘
数据同时绕过ssd,直接写到普通硬盘
数据先写到ssd,随后写到普通硬盘
查看
flashstat
======================================================================================================
flashstat: a tool for flashcache status per second
author : ningoo(seaman.ning@gmail.com)
version : 0.3
======================================================================================================
ssd device: /dev/sdc disk device: /dev/sdb cache mode: write_back
capacity: 303998m block size: 4k meta block size: 4096b
total blocks: 77823488 cached blocks: 9 cached percent: 0
set numbers: 512 dirty blocks: 0 dirty percent: 0
cache_all: 1 reclaim_policy: fifo dirty_thresh_pct: 20
max_clean_ios_set: 2 max_clean_ios_total: 4 skip_seq_thresh: 0k
======================================================================================================
time read/s write/s diskr/s diskw/s ssdr/s ssdw/s uread/s uwrit/s metaw/s clean/s repl/s wrepl/s hit% whit% dwhit%
03-13 14:51:20 0 0 0 0 0 0 0 0 0 0 0 0 0|10 0|0 0|0
disk /dev/mapper/cachedev: 146.8 gb, 146778685440 bytes
255 heads, 63 sectors/track, 17844 cylinders
units = cylinders of 16065 * 512 = 8225280 bytes
sector size (logical/physical): 512 bytes / 512 bytes
i/o size (minimum/optimal): 512 bytes / 512 bytes
disk identifier: 0x0002da0a
device boot start end blocks id system
使用:
可以当一个块设备来使用,划分vg lv
删除