一、格式化backing device
1,停止bcache设备
[root@localhost bcache]# lsblk #停止bcache设备
|
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 #sys/block目录中没有bcache0 |
执行注册backing device命令:
#注册backing device |
注册后:
# sda1多了bcache0 # sys/block目录中多了bcache0 [root@localhost ~]# ls /sys/block/ |
三、格式化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/ #注册cache device #注册后,多了8bde6159-9831-4647-9c9d-bfba9a57360b |
五、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 dev.label (empty) cset.uuid 8bde6159-9831-4647-9c9d-bfba9a57360b <===绑定backing device时,会用到这个值 #将cache device的cset写入到backing device的attach文件中,触发backing 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 └─bcache0 <=== 多了这个设备 |
六、解绑定backing device
[root@localhost bcache]# echo 1 > /sys/block/bcache0/bcache/detach <=== 没有bcache0设备了 |
七、注销cache device(unregister cache device)
# 注销前,/sys/fs/bcache有以cset.uuid表示的cache device目录 [root@localhost ~]# ls /sys/fs/bcache/ #注销cache device # 注销后,/sys/fs/bcache没有cache device的目录了 |
八、注销backing device
注销前:
[root@localhost ~]# lsblk -f <====有bcache0目录 |
注销backing device:
[root@localhost ~]# echo 1 > /sys/block/bcache0/bcache/stop |
注销后:
[root@localhost ~]# lsblk -f <===没有bcache0设备了 |
[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 <===设置参数 …… <===设置参数 |