bcache的基本操作

一、格式化backing device

1,停止bcache设备

[root@localhost bcache]# lsblk
NAME             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                8:0    0 893.8G  0 disk 
└─sda1             8:1    0 893.7G  0 part 
  └─bcache0      252:0    0 893.7G  0 disk  <====停止前,存在bcache0设备
nvme2n1          259:3    0   3.5T  0 disk 
└─nvme2n1p1      259:8    0    90G  0 part   

#停止bcache设备         
[root@localhost bcache]# echo 1 > /sys/block/bcache0/bcache/stop


[root@localhost bcache]# lsblk
NAME             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                8:0    0 893.8G  0 disk 
└─sda1             8:1    0 893.7G  0 part  <=== 没有bcache0设备了
nvme2n1          259:3    0   3.5T  0 disk 
└─nvme2n1p1      259:8    0    90G  0 part 

2,擦除backing device上的super block信息

[root@localhost bcache]# wipefs -a /dev/sda1
/dev/sda1: 16 bytes were erased at offset 0x00001018 (bcache): c6 85 73 f6 4e 1a 45 ca 82 65 f5 7f 48 ba 6d 81

3,按4k大小格式化backing device

[root@localhost bcache]# make-bcache --block 4k --wipe-bcache -B /dev/sda1
UUID:                   6d9eec33-a3e5-4eb2-a5a8-208b36a60114
Set UUID:               a0492598-9340-4be2-b07f-f497728f6a8e
version:                1
block_size:             8
data_offset:            16

二、注册backing device

注册前:

#sda1下面没有bcache0

[root@localhost ~]# lsblk -f
NAME             FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                               
└─sda1           bcache                     d00a9701-24d3-48d7-be42-a11d18e17d48                              
nvme2n1                                                                                           
└─nvme2n1p1      bcache                     81eeed63-880f-4ad4-a529-a522f37c7074      

#sys/block目录中没有bcache0                       
[root@localhost ~]# ls /sys/block/
dm-0/    dm-1/    dm-2/    nvme0n1/ nvme1n1/ nvme2n1/ nvme3n1/ sda/     sdb/    

执行注册backing device命令: 

#注册backing device
[root@localhost ~]# echo /dev/sda1 > /sys/fs/bcache/register

注册后: 

# sda1多了bcache0
[root@localhost ~]# lsblk -f
NAME             FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                               
└─sda1           bcache                     d00a9701-24d3-48d7-be42-a11d18e17d48                  
  └─bcache0              <==== 多了这个设备                                                                                      
nvme2n1                                                                                           
└─nvme2n1p1      bcache                     81eeed63-880f-4ad4-a529-a522f37c7074                                
[root@localhost ~]# 

# sys/block目录中多了bcache0 

[root@localhost ~]# ls /sys/block/
bcache0  dm-0  dm-1  dm-2  nvme0n1  nvme1n1  nvme2n1  nvme3n1  sda  sdb

三、格式化cache device

1,擦出cache device上的super block信息

[root@localhost bcache]# wipefs --force -a /dev/nvme2n1p1
/dev/nvme2n1p1: 2 bytes were erased at offset 0x000001fe (dos): 55 aa

2,格式化cache device 

[root@localhost bcache]# make-bcache -C /dev/nvme2n1p1
UUID:                   e7f0b83f-f140-4f8f-b20b-d88367a15c26
Set UUID:               2c579ab7-931f-4434-a3cd-72a9acbce98e
version:                0
nbuckets:               184320
block_size:             8
bucket_size:            1024
nr_in_set:              1
nr_this_dev:            0
first_bucket:           1

四、注册cache device

#注册前

[root@localhost ~]# ls /sys/fs/bcache/
pendings_cleanup  register  register_quiet

#注册cache device
[root@localhost ~]# echo /dev/nvme2n1p1 > /sys/fs/bcache/register

#注册后,多了8bde6159-9831-4647-9c9d-bfba9a57360b
[root@localhost ~]# ls /sys/fs/bcache/
8bde6159-9831-4647-9c9d-bfba9a57360b  pendings_cleanup  register  register_quiet

五、backing device 绑定到cache device

绑定前:

[root@localhost ~]# lsblk -f
NAME             FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                               
└─sda1           bcache                     d00a9701-24d3-48d7-be42-a11d18e17d48                  
  └─bcache0                                                                                                      
nvme2n1                                                                                           
└─nvme2n1p1      bcache                     81eeed63-880f-4ad4-a529-a522f37c7074                  

绑定backing device到cache device命令: 

# 找到cache device的cset

[root@localhost bcache]# bcache-super-show /dev/nvme2n1p1 
sb.magic                ok
sb.first_sector         8 [match]
sb.csum                 FF6693C014E834D8 [match]
sb.version              3 [cache device]

dev.label               (empty)
dev.uuid                81eeed63-880f-4ad4-a529-a522f37c7074
dev.sectors_per_block   8
dev.sectors_per_bucket  1024
dev.cache.first_sector  1024
dev.cache.cache_sectors 188742656
dev.cache.total_sectors 188743680
dev.cache.ordered       yes
dev.cache.discard       no
dev.cache.pos           0
dev.cache.replacement   0 [lru]

cset.uuid               8bde6159-9831-4647-9c9d-bfba9a57360b <===绑定backing device时,会用到这个值

#将cache device的cset写入到backing device的attach文件中,触发backing device的绑定操作
[root@localhost bcache]# echo "8bde6159-9831-4647-9c9d-bfba9a57360b" > /sys/block/bcache0/bcache/attach 

绑定后:

[root@localhost ~]# lsblk -f
NAME             FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                               
└─sda1           bcache                     d00a9701-24d3-48d7-be42-a11d18e17d48                  
  └─bcache0                                                                                            
nvme2n1                                                                                           
└─nvme2n1p1      bcache                     81eeed63-880f-4ad4-a529-a522f37c7074                  
  └─bcache0       <=== 多了这个设备                                                                             

六、解绑定backing device

[root@localhost bcache]# echo 1 > /sys/block/bcache0/bcache/detach 
[root@localhost bcache]# lsblk -f
NAME             FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                               
└─sda1           bcache                     6d9eec33-a3e5-4eb2-a5a8-208b36a60114                  
  └─bcache0      ext4        1.0            40d01fd3-b934-49e1-a20f-62d7aa665dd7                                 
nvme2n1                                                                                           
└─nvme2n1p1      bcache                     e7f0b83f-f140-4f8f-b20b-d88367a15c26   

         <=== 没有bcache0设备了

七、注销cache device(unregister cache device)

# 注销前,/sys/fs/bcache有以cset.uuid表示的cache device目录

[root@localhost ~]# ls /sys/fs/bcache/
8bde6159-9831-4647-9c9d-bfba9a57360b  pendings_cleanup  register  register_quiet

#注销cache device
[root@localhost ~]# echo 1 > /sys/fs/bcache/8bde6159-9831-4647-9c9d-bfba9a57360b/unregister 

# 注销后,/sys/fs/bcache没有cache device的目录了
[root@localhost ~]# ls /sys/fs/bcache/
pendings_cleanup  register  register_quiet
[root@localhost ~]# 

八、注销backing device

注销前:

[root@localhost ~]# lsblk -f
NAME             FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                               
└─sda1           bcache                     d00a9701-24d3-48d7-be42-a11d18e17d48                  
  └─bcache0      <=== 有bcache0设备                                                                                            
nvme2n1                                                                                           
└─nvme2n1p1      bcache                     81eeed63-880f-4ad4-a529-a522f37c7074                  

[root@localhost ~]# ls /sys/block/
bcache0/ dm-0/    dm-1/    dm-2/    nvme0n1/ nvme1n1/ nvme2n1/ nvme3n1/ sda/     sdb/  

<====有bcache0目录

注销backing device:

[root@localhost ~]# echo 1 > /sys/block/bcache0/bcache/stop

注销后:

[root@localhost ~]# lsblk -f
NAME             FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                               
└─sda1           bcache                     d00a9701-24d3-48d7-be42-a11d18e17d48      

     <===没有bcache0设备了                          
nvme2n1                                                                                           
└─nvme2n1p1      bcache                     81eeed63-880f-4ad4-a529-a522f37c7074                  

[root@localhost bcache]# echo 1 > /sys/block/bcache0/bcache/stop
[root@localhost bcache]# rmmod my-bcache.ko
rmmod: ERROR: Module my_bcache is in use
[root@localhost bcache]# echo 1 > /sys/fs/
bcache/  bpf/     cgroup/  ext4/    fuse/    pstore/  selinux/ 
[root@localhost bcache]# echo 1 > /sys/fs/bcache/
192e1c7a-d60e-4829-bc2f-fde2909dac22/ pendings_cleanup                      register                              register_quiet
[root@localhost bcache]# echo 1 > /sys/fs/bcache/192e1c7a-d60e-4829-bc2f-fde2909dac22/unregister 
[root@localhost bcache]# rmmod my-bcache.ko
[root@localhost bcache]# 

九、卸载bcache.ko

echo 1 > /sys/block/bcache0/bcache/detach  <===解绑定       
echo 1 > /sys/fs/bcache/14124e7b-9308-4c4c-8568-2f1275b8871d/unregister <===注销cache device
echo 1 > /sys/block/bcache0/bcache/stop <===  注销backing device
rmmod my-bcache.ko

 14124e7b-9308-4c4c-8568-2f1275b8871d是命令bcache-super-show /dev/cache设备名 看到的cset.uuid值。

十、插入bcache.ko

insmod /xxx/my-bcache.ko
echo /dev/sda1 > /sys/fs/bcache/register  <===注册backing device    
echo /dev/nvme2n1p1 > /sys/fs/bcache/register  <===注册cache device  
echo 14124e7b-9308-4c4c-8568-2f1275b8871d > /sys/block/bcache0/bcache/attach  <===绑定 
echo 0 > sequential_cutoff  <===设置参数 
echo writeback > cache_mode  <===设置参数 
……  <===设置参数 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值