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