多层超速缓存使用的基本超速缓存模式:写回、直写、绕写和直通。
写回: 写入已超速缓存块的数据只会存入超速缓存,并且该块将标记为脏块。这是默认的超速缓 存模式。
直写 只有在同时命中源设备和超速缓存设备之后,向已超速缓存块的写入才会完成。在直写超 速缓存中,干净块将保持干净状态。
绕写 类似于直写超速缓存的一种技术,不过,写 I/O 将直接写入永久性储存,并绕过超速缓 存。这可以防止超速缓存因写 I/O 而填满,导致以后不可重新读取,不过,缺点是对最近 写入数据的读取请求会造成“超速缓存未命中”,因而需要从慢速大容量储存中读取这些数 据,致使发生较高延迟。
直通 要启用直通模式,超速缓存必须是干净的。将绕过超速缓存,从源设备为读取请求提供服 务。写请求将转到源设备,使超速缓存块“失效”。直通允许您激活超速缓存设备时不必考 虑数据一致性,而这是可以维护的。随着写操作的不断进行,超速缓存将逐渐变为冷状 39 超速缓存模式 SLES 12 SP5 态。如果您以后可以校验超速缓存的一致性,或者可以使用 invalidate_cblocks 讯 息来建立这种一致性,则可以在超速缓存设备仍处于暖状态时,将它切换到直写或写回模 式。或者,可以在切换到所需的超速缓存模式之前,先丢弃超速缓存内容。
设置和管理 bcache 设备的步骤。
1. 安装 bcache-tools 包:
sudo zypper in bcache-tools
2. 创建后备设备(通常是一个机械驱动器)。后备设备可以是整个设备、一个分区或任何其
他标准块设备。
sudo make-bcache -B /dev/sdb
40 bcache SLES 12 SP5
3. 创建超速缓存设备(通常是一个 SSD 磁盘)。
sudo make-bcache -C /dev/sdc
本示例使用了默认的块大小和储存桶大小,分别为 512 B 和 128 KB。块大小应与后备设
备的扇区大小(通常为 512 或 4k)匹配。储存桶大小应与超速缓存设备的擦除块大小匹
配,以便减少写入放大现象。例如,如果使用具有 4k 扇区的硬盘和具有 2 MB 擦除块大
小的 SSD,则此命令将如下所示:
sudo make-bcache --block 4k --bucket 2M -C /dev/sdc