centos上配置并使用bcache

一、bcache简介

首先,简介下什么是bcache?

        bcache是linux内核块层cache.它使用类似SSD来作为HDD硬盘的cache,从而起到加速作用。

        原理图:

         centos上配置并使用bcache_第1张图片

    不仅是sda整个磁盘可以提供bcache服务,sda的每个分区也可提供bcache服务,下一篇文章在对bcache的性能测试是会详细讲解,此处不再赘述。

       HDD硬盘便宜并且空间更大,SSD速度快但更贵。如果能两者兼得,岂不快哉?bcache能做到。

  bcache使用SSD作为其他块设备的cache.类似ZFS的L2Arc,但bcache还增加了写回策略,并且是与文件系统无关的。bcache被设计成只需要最小的代价,无需配置就能在所有环境中工作。默认状态下bcache不缓存顺序IO,只缓存随机读写。

  bcache适用于桌面、服务器,高级存储阵列,甚至是嵌入式环境。设计bcache目标是让被缓存设备(HDD等块设备)与SSD一样快(包括缓存命中、缓存不命中、透写和回写)。现在还未达到初衷,特别是顺序写。同时测试结果表明离目标很接近,甚至有些情况下表现更好,例如随机写。

  bcache是数据安全的。对于写回策略缓存来说,可靠性是非常重要的,出错就意味着丢失数据。bcache是用电池备份阵列控制器的替代选择,同时也要求bcache在异常掉电时也是数据安全的。对于写而言,必须在所有数据写到可靠介质之后才能向上层返回写成功。如果在写一个大文件时掉电了,则写入是失败的。异常掉电数据安全是指 cache 中的脏数据是不会丢的,不像内存中的脏数据掉电就没了。

  bcache性能设计目标是等同于SSD.最大程度上去最小化写放大,并避免随机写。bcache将随机写转换为顺序写,首先写到SSD,然后回写缓存使用SSD缓存大量的写,最后将写有序写到磁盘或者阵列上。对于RAID6阵列,随机写性能很差,还要花费不菲的价格购买带有电池保护的阵列控制器。现在有了bcache,你就可以直接使用linux自带的优秀软RAID,甚至可以在更廉价的硬件上获取更高的随机写性能。

二、获取bcache模块

1、下载Linux源码并解压

 可手动下载 地址:

https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/

按ctrl+F查找对应版本 我的是4.9.403 下载

centos上配置并使用bcache_第2张图片

也可用wget命令下载:

wget https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.9.102.tar.xz
解压命令:

xz -d linux-4.9.102.tar.xz

tar -xvf linux-4.9.102.tar

2、配置并编译该版本内核

     a.拷贝原来的配置文件

        cp /boot/config-3.10.0-693.el7.x86_64 .config

     b.配置menuconfig

        修改Device Driver->Mutiple device driver support让Linux编译时生成bcache模块 如图:

centos上配置并使用bcache_第3张图片

配置完成后,保存退出 make -j28(CPU 核数)

  c.修改内核默认启动版本并安装

make -j28 moduels
make -j28 modules_install
make install
cat /boot/grub2/grub.cfg 
grub2-set-default 'CentOS Linux (4.9.103) 7 (Core)'

至此,bcache模块生成。如果还不行,就手动insmod bcache模块

你可能感兴趣的:(存储原理)