1、测试环境
架构示意:
1、bcache
2、bcache+drbd
硬件:
172.17.105.223
[0:2:0:0] disk DELL PERC H730 Adp 4.26 /dev/sda 1.19TB
[0:2:1:0] disk DELL PERC H730 Adp 4.26 /dev/sdb 1.19TB
[0:2:4:0] disk DELL PERC H730 Adp 4.26 /dev/sde 799GB
172.17.105.224
[0:2:0:0] disk DELL PERC H730 Adp 4.26 /dev/sda 1.19TB
[0:2:1:0] disk DELL PERC H730 Adp 4.26 /dev/sdb 1.19TB
[0:2:4:0] disk DELL PERC H730 Adp 4.26 /dev/sde 799GB
软件:
bcache(安装配置参见:https://blog.csdn.net/MC_dull_lj/article/details/82761591)、drbd、fio
2、测试过程
(1)单节点配置bcache 性能4k随机写(hdd+ssd分区100G)
1、指令:fio -direct=1 -iodepth 64 -thread -rw=randwrite -ioengine=libaio -bs=4k -size=100G -runtime=300 -ramp_time=5 -group_reporting -name=randwrite -filename=/dev/bcache80
结果:
①创建完成查询显示state为clean,dirty_data=0后,
第1次run:iops=63799。dirty_data上升,hdd无io时,iops可达10w(dirty_data达到write_back_percent之前),见下附图1;之后dirty_data增加,hdd有大量写入,hdd w/s 从3k增长到1w+,ssd w/s 6w,见下附图2。
第2、3次run:iops=733。dirty_data稳定在64G,不再增长,hdd w/s 减去ssd r/s 、ssd w/s与fio iops相近,新写入数据直接从ssd到hdd。iostats见下附图3
②等待数据变为clean,dirty_data=0,并手动触发gc。
第1次run:iops=61338
第2次run:iops=748
缓存被写满
③在dirty_data=30g时