1. 程式人生 > >centos上配置bcache並測試

centos上配置bcache並測試

一、安裝bcache-tools

1.安裝依賴libblkid-devel

yum install libblkid-devel -y

2.下載bcache-tools安裝

$ git clone https://github.com/g2p/bcache-tools.git
$ cd bcache-tools
$ make && make install

驗證bcache-tools安裝是否正確:在命令列敲bcache按tab鍵看是否能夠聯想或者直接輸入 make-bcache是否有命令提示

二、搭建bcache

bcache的原理是用高速的SSD盤為後端HHD盤做快取,當用戶有寫IO時,先寫到前端高速SSD快取立即返回,當快取中資料達到水位線時,開始刷到後端HHD盤;當用戶有讀IO時,先去快取讀,讀到便立即返回,未讀到便去後端HHD機械盤找,這裡會涉及到讀命中的概念。

1.先建立後端低速磁碟

make-bcache -B /dev/sda1

建立後,後端磁碟sda的分割槽sda1下面出現bcache0

2.建立前段高速盤bcache

make-bcache -C /dev/sdb1

3.檢視新建的bcache UUID並初始化

cd /sys/fs/bcache

[[email protected] ~]# cd /sys/fs/bcache/
[[email protected] bcache]# ls
8a5c3a4d-9444-4767-84f1-77d71441776d  register  register_quiet

初始化bcache0

4.檢視新建的bcache uuid並將前後端關聯

bcache-super-show /dev/sdb1(檢視前端)

[[email protected] bcache]# bcache-super-show /dev/sdb1
sb.magic		ok
sb.first_sector		8 [match]
sb.csum			93E3593CC63081FB [match]
sb.version		3 [cache device]

dev.label		(empty)
dev.uuid		1a1ee81b-d033-415a-8db0-1232508eb8d0
dev.sectors_per_block	1
dev.sectors_per_bucket	1024
dev.cache.first_sector	1024
dev.cache.cache_sectors	104856576
dev.cache.total_sectors	104857600
dev.cache.ordered	yes
dev.cache.discard	no
dev.cache.pos		0
dev.cache.replacement	0 [lru]

cset.uuid		8a5c3a4d-9444-4767-84f1-77d71441776d
[
[email protected]
bcache]#

關聯前後端

echo "5cb5581e-1372-45dc-8068-4f1bfb9abb5f" > /sys/block/bcache0/bcache/attach 

[[email protected] bcache]# echo "8a5c3a4d-9444-4767-84f1-77d71441776d" > /sys/block/bcache0/bcache/attach 
[[email protected] bcache]# lsblk 
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb               8:16   0 447.1G  0 disk 
└─sdb1            8:17   0    50G  0 part 
  └─bcache0     252:0    0   500G  0 disk 
sda               8:0    0   9.1T  0 disk 
└─sda1            8:1    0   500G  0 part 
  └─bcache0     252:0    0   500G  0 disk 
nvme0n1         259:0    0 372.6G  0 disk 
├─nvme0n1p1     259:1    0     1G  0 part /boot
└─nvme0n1p2     259:2    0 371.6G  0 part 
  ├─centos-swap 253:1    0  31.4G  0 lvm  [SWAP]
  ├─centos-home 253:2    0 290.2G  0 lvm  /home
  └─centos-root 253:0    0    50G  0 lvm  /

此時前後端盤都有bcache0說明bcache可正常使用

5.bcache引數的設定

bcache的引數配置在/sys/block/bcache0/bcache

[[email protected] bcache]# ls
attach             cache_mode  //寫策略  
dev                partial_stripes_expensive  
sequential_cutoff  stats_five_minute  stop //停用bcache時使用
writeback_delay     writeback_rate        
writeback_rate_p_term_inverse
bypass_torture_test    clear_stats  
dirty_data  readahead  state              
stats_hour             stripe_size  
writeback_metadata  
writeback_rate_debug   
writeback_rate_update_seconds
cache         detach       label       
running       stats_day    stats_total        
verify      
writeback_percent        //水位線 最高40%
writeback_rate_d_term  
writeback_running

引數修改使用echo,如

[[email protected] bcache]# cat cache_mode 
[writethrough] writeback writearound none
[[email protected] bcache]# echo writeback > cache_mode  //切換寫策略為writeback
[[email protected] bcache]# cat cache_mode 
writethrough [writeback] writearound none

6.清理bcache

解除前段盤與後端盤的關係:
echo “uuid”> /sys/block/bcache0/bcache/detach


刪除後端盤bcache:
echo 1 > /sys/block/bcache0/bcache/stop


刪除前端盤bcache:
cd /sys/fs/bcache/ 檢視bcache uuid
echo 1 >/sys/fs/bcache/uuid/unregister
 

注意:重啟裝置後lsblk如果後端磁碟還存在bcache0的話,執行echo 1 > /sys/block/bcache0/bcache/stop

清理初始化磁碟:

wipefs -a /dev/sda

mkfs.xfs -f /dev/sda

重新分割槽:fdisk /dev/sda