初涉Bcache(2)
话接上回,本篇介绍如何将后端磁盘与缓存磁盘关联,后端磁盘与缓存磁盘解除关联,正常流程销毁后端磁盘与缓存磁盘,非正常流程销毁后端磁盘与缓存磁盘产生的特殊情况。
关联后端磁盘与缓存磁盘
回顾上回:
创建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 ~]#
后端磁盘与缓存磁盘关联
[root@localhost ~]# echo "b506d850-19c5-4260-945e-108764632bee" >/sys/block/bcache0/bcache/attach
[root@localhost ~]#
将缓存磁盘的set uuid写入attach。
关联之后通过命令查看,发现两个磁盘下面都出现了bcache0:
[root@localhost ~]# lsblk /dev/sdb /dev/sdc
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 10G 0 disk
└─bcache0 253:1 0 10G 0 disk /mnt
sdc 8:32 0 10G 0 disk
└─bcache0 253:1 0 10G 0 disk /mnt
[root@localhost ~]#
并且使用bcache-super-show查看两块磁盘的set uuid,全部变为了缓存磁盘的uuid,此时两个set uuid相同,后面可以依据set uuid来判断两块磁盘是否为一组,来进行重新关联,后续文章会详细讲解重新关联部分。
bcache0使用
进行完关联后,使用如下命令进行格式化:
[root@AutoCloud zone]# mkfs.xfs -f /dev/bcache0
meta-data=/dev/bcache0 isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=524286, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@AutoCloud zone]#
-f参数意思为强制格式化,首次格式化可以不加。
之后可以挂载使用,命令如下:
[root@AutoCloud sdc1]# mount /dev/bcache0 test/
[root@AutoCloud sdc1]#
后端磁盘与缓存盘解除关联
解除关联之前要注意将bcache0卸载,使用如下命令:
[root@AutoCloud sdc1]# umount /dev/bcache0
[root@AutoCloud sdc1]#
删除缓存磁盘
[root@localhost ~]# echo "b506d850-19c5-4260-945e-108764632bee" > /sys/block/bcache0/bcache/detach
[root@localhost ~]#
删除缓存磁盘后,使用lsblk查看缓存磁盘下的bcache0消失,说明删除成功。
删除成功之后,缓存磁盘的set uuid保留,后端磁盘的set uuid变为00000000-0000-0000-0000-000000000000。
注销缓存磁盘
[root@localhost ~]# echo 1 > /sys/fs/bcache/b506d850-19c5-4260-945e-108764632bee/unregister
[root@localhost ~]#
通过ls查看/sys/fs/bcache/b506d850-19c5-4260-945e-108764632bee,如果该目录不存在,则表示注销成功。注销后缓存磁盘的set uuid保留。
停用后端磁盘
[root@localhost ~]# echo 1 > /sys/block/bcache0/bcache/stop
[root@localhost ~]#
通过lsblk可以看到后端磁盘下已经没有bcache0,则停用成功。
正常销毁bcache0步骤
第一步:使用umount将bcache0卸载
第二步:删除缓存磁盘
第三步:注销缓存磁盘
第四步:停用后端磁盘
第五步:格式化使用过的磁盘
经过上述五步,则销毁bcache0成功。若出现Device or resource busy,则说明销毁有步骤没有成功。
销毁后若要重新使用可能会报错,根据报错进行处理。后续会有文章单独讲解一些异常情况。
非正常销毁bcache0步骤
非正常销毁即是没有按照上述步骤进行销毁,中途可能出现一些莫名的异常,严重的会导致机器重启。后续会有文章单独讲解一些异常情况。
结语
感谢大家花费耐心看完此篇文章,相信大家应该是有所收获的。
搜索
复制