bcache

bcache是什么

bcache是linux内核块设备层的软件驱动,使用高速存储设备为传统机械磁盘做io缓存,经常访问的热数据会缓存在固态硬盘中并直接返回给应用程序,大大提升了具有热数据访问特征的应用场景IO性能。
在这里插入图片描述
bcache的三种缓存策略:

  1. writeback:回写策略,所有的数据将先写入缓存盘,然后等待系统将数据回写入后端数据盘中
  2. writethrough:直写策略(默认策略),数据将会同时写入缓存盘和后端存储数据盘
  3. writearound:数据将直接写入到后端存储
    在这里插入图片描述

bcache怎么用

已opensuse leap 15.4为例,backing设备为10T SATA硬盘,cache设备为4TB NVMe固态硬盘。

  • 使用bcache-tools中的bcache程序格式化机械硬盘(/dev/nvme0n1)和固态硬盘(/dev/sdb),缓存模式是writeback
创建后端设备、创建前端缓存设备、建立他们之间的映射关系
bcache make -C /dev/nvme0n1 -B --writeback /dev/sdb 

#--wipe-bcache	#这个选项用于擦除指定设备的 bcache 元数据

查看缓存策略,可以看到默认的策略是writethrough,也就是直写模式
[root@lab01 bcache-tools]# cat /sys/block/bcache0/bcache/cache_mode 
[writethrough] writeback writearound none

修改缓存策略
[root@lab01 bcache-tools]# echo writeback > /sys/block/bcache0/bcache/cache_mode

建立映射关系
首先需要获取该缓存盘(/dev/sdc)的cset.uuid,通过bcache-super-show命令查看
[root@lab01 bcache-tools]# bcache-super-show /dev/sdc
sb.magic        ok
sb.first_sector     8 [match]
sb.csum         D2BA585E4E51AD5C [match]
sb.version      3 [cache device]
 
dev.label       (empty)
dev.uuid        9c5a00ff-4c32-4d0b-a6d2-ccd21e17e230
dev.sectors_per_block   1
dev.sectors_per_bucket  1024
dev.cache.first_sector  1024
dev.cache.cache_sectors 41942016
dev.cache.total_sectors 41943040
dev.cache.ordered   yes
dev.cache.discard   no
dev.cache.pos       0
dev.cache.replacement   0 [lru]
 
cset.uuid       8cae4fac-1312-4b0a-8bf7-2142dae5a334

增加后端设备或前端缓存设备
有时候我们已经配置好了bcache,比如配置好了sde为sdb、sdc提供缓存作用,然后我现在想让sde为sdd也提供缓存作用。可以按照以下步骤进行:

配置后端设备:make-bcache -B /dev/sdd,假设生成bcache设备号为bcache2
建立映射关系:echo "8cae4fac-1312-4b0a-8bf7-2142dae5a334" > /sys/block/bcache2/bcache/attach

解除缓存盘和后端盘关系
要将缓存盘从当前的后端磁盘删除,只需将缓存盘的cset.uuid detach到bcache设备即可实现
[root@lab01 bcache-tools]# echo "8cae4fac-1312-4b0a-8bf7-2142dae5a334" > /sys/block/bcache0/bcache/detach

删除前端缓存盘
通过缓存盘的cset.uuid,在/sys/fs/bcache/<cset.uuid>/unregister写入1,即可进行注销操作
[root@lab01 bcache-tools]# echo 1 >/sys/fs/bcache/8cae4fac-1312-4b0a-8bf7-2142dae5a334/unregister
然后ls查看/sys/fs/bcache/,如果没有8cae4fac-1312-4b0a-8bf7-2142dae5a334这个目录,就表示注销成功了


  • 通常系统会自动注册cache设备和backing设备并自动生成虚拟的bcache设备/dev/bcache0
要使用bcacheCeph OSD加速,需要先满足以下条件: 1. 操作系统为Linux,并且内核版本大于等于3.10。 2. 已经安装了bcache模块。 3. 已经安装了Ceph。 接下来,我们可以按照以下步骤进行具体实践: 1. 创建一个SSD缓存设备。可以使用以下命令创建一个大小为100GB的bcache设备: ``` # make-bcache -B /dev/sdb ``` 其中,/dev/sdb为SSD设备的路径,可以根据实际情况进行修改。 2. 将SSD设备加入bcache设备中。可以使用以下命令将SSD设备加入bcache: ``` # echo /dev/sdb > /sys/fs/bcache/new_cache/set ``` 3. 创建一个HDD设备。可以使用以下命令创建一个大小为1TB的HDD设备: ``` # parted /dev/sdc mklabel gpt # parted /dev/sdc mkpart primary 0% 100% # mkfs.xfs /dev/sdc1 ``` 其中,/dev/sdc为HDD设备的路径,可以根据实际情况进行修改。 4. 将HDD设备加入bcache设备中。可以使用以下命令将HDD设备加入bcache: ``` # echo /dev/sdc1 > /sys/fs/bcache/new_cache/dev ``` 5. 创建一个Ceph OSD。可以使用以下命令创建一个Ceph OSD: ``` # ceph-osd -i <osd-id> --mkfs --mkkey ``` 其中,<osd-id>为OSD的编号,可以根据实际情况进行修改。 6. 将bcache设备作为Ceph OSD的存储设备。可以使用以下命令将bcache设备作为Ceph OSD的存储设备: ``` # ceph-osd -i <osd-id> --mkjournal --mkfs --mkkey --osd-data /dev/bcache0 --osd-journal /dev/bcache1 ``` 其中,/dev/bcache0为SSD设备的bcache设备路径,/dev/bcache1为HDD设备的bcache设备路径,可以根据实际情况进行修改。 7. 启动Ceph OSD。可以使用以下命令启动Ceph OSD: ``` # systemctl start ceph-osd@<osd-id> ``` 其中,<osd-id>为OSD的编号,可以根据实际情况进行修改。 8. 验证Ceph OSD的运行状态。可以使用以下命令验证Ceph OSD的运行状态: ``` # ceph -s ``` 如果Ceph OSD的状态正常,则表示bcache加速已经生效。 以上就是使用bcacheCeph OSD加速的具体实践。需要注意的是,bcache加速只是一种优化方案,具体的加速效果取决于硬件配置和实际使用情况。在使用过程中,需要根据实际情况进行调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值