初涉Bcache(1)
Bcache基本使用
Bcache简介
Bcache是Linux内核块设备层cache,支持多块HDD使用同一块SSD作为缓存盘。它让SSD作为HDD的缓存成为了可能。由于SSD价格昂贵,存储空间小,而HDD价格低廉,存储空间大,因此采用SSD作为缓存,HDD作为数据存储盘,既解决了SSD容量太小,又解决了HDD运行速度太慢的问题。
注:Bcache是从Linux-3.10开始正式并入内核主线的,因此,要使用Bcache,需要将内核升级到3.10及以上版本才行。
Bcache缓存策略
Bcache支持三种缓存策略,分别是:writeback、writethrough、writearoud,默认使用writethrough。可以临时修改缓存策略,修改方式如下:
echo [writeback/writethrough/writearoud] > /sys/block/bcache0/bcache/cache_mode
通过此方法修改,重启后失效。
下面介绍一下每种策略:
(1) writeback 回写策略:回写策略默认是关闭的,如果开启此策略,则所有的数据将先写入缓存盘,然后等待系统将数据回写入后端数据盘中。
(2) writethrough 写通策略:默认的就是写通策略,此模式下,数据将会同时写入缓存盘和后端数据盘。
(3) writearoud :选择此策略,数据将直接写入后端磁盘。
Bcache源码
Bcache源码需要自己上网查找,源码分为两个部分,一部分为配置工具Bcache-tools,一部分为Bcache的内核模块代码。
Bcache.ko
Bcache.ko是Bcache的驱动模块,通过内核编译生成,加载后可以使用Bcache,具体编译过程,后续文章会有涉及。
Bcache-tools基本命令使用
擦除磁盘中的超级块信息:
[root@localhost ~]# wipefs -a /dev/sdc
/dev/sdc: 2 bytes were erased at offset 0x00000438 (ext4): 53 ef
[root@localhost ~]#
创建Bcache后端磁盘:
[root@localhost ~]# make-bcache -B /dev/sdb
UUID: 774756de-38e1-42dd-9fcc-5c363db7b319
Set UUID: 2edf6ef1-652d-4bb3-b5b3-663725a70ccd
version: 1
block_size: 1
data_offset: 16
[root@localhost ~]#
通过lsblk查看:
[root@localhost ~]# lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 10G 0 disk
└─bcache0 253:1 0 10G 0 disk
[root@localhost ~]#
创建Bcache缓存磁盘:
[root@localhost ~]# make-bcache -C /dev/sdc
UUID: 8c36cd15-5ada-4cfe-a6c4-dd7ce96e30be
Set UUID: b506d850-19c5-4260-945e-108764632bee
version: 0
nbuckets: 20480
block_size: 1
bucket_size: 1024
nr_in_set: 1
nr_this_dev: 0
first_bucket: 1
[root@localhost ~]#
查看Bcache磁盘:
[root@localhost ~]# lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 10G 0 disk
└─bcache0 253:1 0 10G 0 disk
[root@localhost ~]#
同时创建缓存盘和后端盘
[root@localhost ~]# make-bcache -B /dev/sdb -C /dev/sdc --wipe-bcache
UUID: 8e8da86d-7cda-4e06-b05b-dd7309c33cf6
Set UUID: ff92c353-bfcf-4f51-b2b8-8eb7792d491e
version: 0
nbuckets: 20480
block_size: 1
bucket_size: 1024
nr_in_set: 1
nr_this_dev: 0
first_bucket: 1
UUID: 4df35dfa-00f7-4c27-9838-e6853cdfaf48
Set UUID: ff92c353-bfcf-4f51-b2b8-8eb7792d491e
version: 1
block_size: 1
data_offset: 16
[root@localhost ~]#
通过lsblk查看:
[root@localhost ~]# lsblk /dev/sdb /dev/sdc
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 10G 0 disk
└─bcache3 253:3 0 10G 0 disk
sdc 8:32 0 10G 0 disk
└─bcache3 253:3 0 10G 0 disk
[root@localhost ~]#
这一条命令直接将缓存盘和后端盘关联,如果是单独调用还需要进行关联,后续文章会讲述如何关联。
结语
此篇文章主要讲述Bcache的基本概念,工具使用等,后续文章陆续针对Bcache配置,实战,测试等进行讲述,不足之处敬请见谅。
搜索
复制