智汇华云 | bcache基本原理及实践
2025-10-23 12:19
5、重启
# reboot
6、加载虚拟机
# modprobe bcache
# lsmod | grep bcache
(二)、装上bcache-tools
1、装上依赖libblkid-devel和gcc
# yum install libblkid-devel gcc -y
2、浏览bcache-tools开发人员 浏览链接为
。
3、解压包
# tar -zxvf bcache-tools-1.0.8.tar.gz
# cd /root/bcache-tools-1.0.8
4、装上
# make
# make install
注意:如果是ubuntu环境可以直接装上
# apt-get install bcache-tools
(三)、始创bcache器材
1、始创后侧可控器材(一般是HDD、SATA盘等)
# make-bcache -B /dev/sdc
UUID:1eca911e-c9c9-4d9b-84c0-c1da023574ed
Set UUID:5cf29253-f347-435e-a3db-b99006c8e6e0
version:1
block_size:1
data_offset:16
可以看着,在sdb(HDD)驱动器下,出现了bcache0节点,这个bcache0可以忽视为就是/dev/sdb驱动器了
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 80G 0 disk
sr0 11:0 1 1024M 0 rom
fd0 2:0 1 4K 0 disk
sdc 8:32 0 200G 0 disk
└─bcache0 252:0 0 200G 0 disk
sda 8:0 0 80G 0 disk
├─sda2 8:2 0 79G 0 part
│ ├─centos-swap 253:1 0 4G 0 lvm [SWAP]
│ └─centos-root 253:0 0 75G 0 lvm /
└─sda1 8:1 0 1G 0 part /boot
对bcache0进行存储设遗可用了。
# mkfs.xfs /dev/bcache0
meta-data=/dev/bcache0 isize=256 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=5242878, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
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
搭载目录
# mkdir /wyl
# mount /dev/bcache0 /wyl
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 8.6M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mapper/centos-root 18G 1.6G 16G 9% /
/dev/sda1 497M 170M 328M 35% /boot
tmpfs 394M 0 394M 0% /run/user/0
/dev/bcache0 20G 33M 20G 1% /wyl
2、始创以前侧文件系统驱动器(SSD)
# make-bcache -C /dev/sdb
UUID:51d3daf3-ca90-4bf7-9499-79b98321c43a
Set UUID:f43c7118-4595-49cf-a17c-1965ee939b4b
version:0
nbuckets:163840
block_size:1
bucket_size:1024
nr_in_set:1
nr_this_dev:0
first_bucket:1
组织起来映射人关系 把我们始创好的后侧可控器材和以前侧高速器材组织起来联系,这样高速器材才能为可控器材提供文件系统功用。
首到时需要换取该文件系统盘(/dev/sdb)的cset.uuid,通过bcache-super-show命令拍照:
# bcache-super-show /dev/sdb
sb.magicok
sb.first_sector8 [match]
sb.csumAD0668369D7EED63 [match]
sb.version3 [cache device]
dev.label(empty)
dev.uuid51d3daf3-ca90-4bf7-9499-79b98321c43a
dev.sectors_per_block1
dev.sectors_per_bucket1024
dev.cache.first_sector1024
dev.cache.cache_sectors167771136
dev.cache.total_sectors167772160
dev.cache.orderedyes
dev.cache.discardno
dev.cache.pos0
dev.cache.replacement0 [lru]
cset.uuidf43c7118-4595-49cf-a17c-1965ee939b4b
遗组织起来联
# echo "f43c7118-4595-49cf-a17c-1965ee939b4b"> /sys/block/bcache0/bcache/attach
可用完成后,可以通过lsblk命令拍照结果
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 80G 0 disk
└─bcache0 252:0 0 200G 0 disk /wyl
sr0 11:0 1 1024M 0 rom
fd0 2:0 1 4K 0 disk
sdc 8:32 0 200G 0 disk
└─bcache0 252:0 0 200G 0 disk /wyl
sda 8:0 0 80G 0 disk
├─sda2 8:2 0 79G 0 part
│ ├─centos-swap 253:1 0 4G 0 lvm [SWAP]
│ └─centos-root 253:0 0 75G 0 lvm /
└─sda1 8:1 0 1G 0 part /boot
三、快速的设计作法
上面我们的设计大概分了三个流程:始创后侧器材、始创以前侧文件系统器材、组织起来他们之间的映射人关系。
1、快速始创
# make-bcache -C /dev/sdb -B /dev/sdc
2、拍照
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 80G 0 disk
└─bcache0 252:0 0 200G 0 disk /wyl
sr0 11:0 1 1024M 0 rom
fd0 2:0 1 4K 0 disk
sdc 8:32 0 200G 0 disk
└─bcache0 252:0 0 200G 0 disk /wyl
sda 8:0 0 80G 0 disk
├─sda2 8:2 0 79G 0 part
│ ├─centos-swap 253:1 0 4G 0 lvm [SWAP]
│ └─centos-root 253:0 0 75G 0 lvm /
└─sda1 8:1 0 1G 0 part /boot
3、同样支持者多个后侧器材
# make-bcache -C /dev/sdb -B /dev/sdc /dev/sdd
四、高级功能性
1、指定块体积 在make-bcache的时候转为-w和-b模板,主要是提高文件系统精度
-w block size 配置文件2K,一般需要block size = 后侧器材的字节体积。
-b bucket size,一般需要bucket size = 以前侧文件系统器材的erase block size体积。
2、改动文件系统手段 拍照文件系统手段,可以看着配置文件的手段是writethrough,也就是直念过到方式上
# cat /sys/block/bcache0/bcache/cache_mode
[writethrough] writeback writearound none
改动文件系统手段
# echo writeback> /sys/block/bcache0/bcache/cache_mode
然后拍照是否生效
# cat /sys/block/bcache0/bcache/cache_mode
writethrough [writeback] writearound none
注:就算机器重启再次文件系统手段也不亦会失效的。
3、拍照文件系统 确认所有的东西都不太可能正确地的设计了:
# cat /sys/block/bcache0/bcache/state
输出的内容有下述似乎:
no cache: 这都是你还不能启动时文件系统器材到你的后侧器材上
clean: 这都是一切正常,文件系统是clean的
dirty: 这都是一切正常,文件系统方式上被设置成了writeback,文件系统是dirty的
inconsistent: 这都是弊端很大,后侧器材与文件系统器材不能启动时运用于一个不能文件系统器材的 /dev/bcache0 的话所有的IO都亦会直接在后侧器材上制订,等于pass-through方式上。
4.IO正向跟踪
bcache亦会跟踪每个IO,如果IO的时间超过阈值,则directcache器材,直接念过念过到backing器材。
如果你的SSD足够强大,可以不跟踪,减少跟踪的数据量。
# echo 0> /sys/fs/bcache//congested_read_threshold_us
# echo 0> /sys/fs/bcache//congested_write_threshold_us
关闭direct的另一个好处是,所有的离散念过念过到都亦会经过cache器材,从而不亦会随之而来cache missing。
配置文件情况下当念过请求求超过2ms,念过到请求求超过20ms时,directcache器材。
The default is 2000 us (2 milliseconds) for reads, and 20000 for writes.
5.将顺序IO也中弹的到cache中的 关上顺序IO文件系统:
# echo 0> /sys/block/bcache0/bcache/sequential_cutoff
设置终配置文件值:
# echo 4194304> /sys/block/bcache0/bcache/sequential_cutoff
五、撤下bcache
1、冻结文件系统盘和后侧盘人关系
要将文件系统盘从这两项的后侧驱动器撤下,不须将文件系统盘的cset.uuid detach到bcache器材方可实现
拍照ssd的cset.uuid
# bcache-super-show /dev/sdb | grep cset.uuid
cset.uuidf43c7118-4595-49cf-a17c-1965ee939b4b
冻结启动时
# echo f43c7118-4595-49cf-a17c-1965ee939b4b> /sys/block/bcache0/bcache/detach
拍照结果
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 80G 0 disk
sr0 11:0 1 1024M 0 rom
fd0 2:0 1 4K 0 disk
sdc 8:32 0 200G 0 disk
└─bcache0 252:0 0 200G 0 disk
sda 8:0 0 80G 0 disk
├─sda2 8:2 0 79G 0 part
│ ├─centos-swap 253:1 0 4G 0 lvm [SWAP]
│ └─centos-root 253:0 0 75G 0 lvm /
└─sda1 8:1 0 1G 0 part /boot
可以看着sdb一个大不太可能不能bcache0了。
2、撤下后侧盘
# umount /wyl/
# echo 1> /sys/block/bcache0/bcache/stop
# echo 1>/sys/fs/bcache/f43c7118-4595-49cf-a17c-1965ee939b4b/unregister
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 80G 0 disk
sr0 11:0 1 1024M 0 rom
fd0 2:0 1 4K 0 disk
sdc 8:32 0 200G 0 disk
└─bcache0 252:0 0 200G 0 disk
sda 8:0 0 80G 0 disk
├─sda2 8:2 0 79G 0 part
│ ├─centos-swap 253:1 0 4G 0 lvm [SWAP]
│ └─centos-root 253:0 0 75G 0 lvm /
└─sda1 8:1 0 1G 0 part /boot
3、验证
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 80G 0 disk
sr0 11:0 1 1024M 0 rom
fd0 2:0 1 4K 0 disk
sdc 8:32 0 200G 0 disk
sda 8:0 0 80G 0 disk
├─sda2 8:2 0 79G 0 part
│ ├─centos-swap 253:1 0 4G 0 lvm [SWAP]
│ └─centos-root 253:0 0 75G 0 lvm /
└─sda1 8:1 0 1G 0 part /boot
4、存储设遗驱动器
# mkfs.xfs /dev/sdb -f
# mkfs.xfs /dev/sdc -f
六、遇到的弊端
1、擦除驱动器中的的超级块中的的数据集
用驱动器作为Bcache驱动器以前,请求到时确保驱动器是空的,或者驱动器中的的数据集无关紧要。如果驱动器中的有文件系统,将亦会出现如下误解:
# make-bcache -C /dev/sdc
Device /dev/sdc already has a non-bcache superblock, remove it using wipefs and wipefs -a
擦除驱动器中的的超级块接收者:
# wipefs -a /dev/sdc
/dev/sdc: 2 bytes were erased at offset 0x00000438 (ext4): 53 ef
2、如果运用于make-bcache命令出现了如下打印,那就概述这两项驱动器不太可能是bcache驱动器,
# make-bcache -B /dev/sdb
Already a bcache device on /dev/sdb, overwrite with --wipe-bcache
欠缺 --wipe-bcache模板就可以了:
# make-bcache -B /dev/sdb --wipe-bcache
3、器材处于繁忙中的
# make-bcache -C /dev/sdf -B /dev/sdc
Can't open dev /dev/sdf: Device or resource busy
这时候理应该可以看着这个lv的superblock还有接收者,这就是主因.
# bcache-super-show /dev/sdf
# wipefs -af /dev/sdf
# dd if=/dev/zero of=/dev/sdf bs=1M count=512
# reboot
。郑州看妇科哪家医院好青岛看白癜风哪个医院最好
贵阳儿科医院哪里比较好
成都包皮过长治疗哪家好
上海看皮肤病到哪家医院
-
她从港姐暴走农村最接地气媳妇,婚后3年生2子,现在幸福让人艳羡
么,才才会准备好的。 有的时候,只要是你,人生来的晚,都无法人关系。感恩林峰,以后继续人生。 感觉谢您的真心好,我是木本植物,豹纹作者,专写未婚心灵觉、贴心故两件事。关心我
-
他走红后娶了自己老师,结婚至今没有绯闻,生3母亲成人生赢家
他窜红后妻了自己老师,离婚至今没有传闻,生3孩子成光阴黑马。 李英愈发毕业于汉口戏剧学院表演系,凭借情景喜剧《玉观音》夺得第22届近现代电视金鹰奖乐迷偏爱的情景喜剧知名演员奖,是一位十分有实
- 10-23她10岁出道,曾参演《楚乔传》没红,后与霍建华合作这部剧闻名
- 10-23读书软件测试需要学到哪些知识?
- 10-23我科学家推测新冠治疗新药并获发明专利授权
- 10-23麻省理工的新型热光电电池,比电化学储存电磁场便宜10到100倍
- 10-232022年全球频率电压转换器行业市场现状及未来发展预测
- 10-23智汇华云 | bcache基本原理及实践
- 10-23SAM技术从未今非昔比!AMD RX 6750 XT评测:了结苏妈战胜RTX 3070的心愿
- 10-23暴雨来袭 如何看懂气象预警频率?
- 10-23APP推广 | APP访问量 | ,驰云网络快速提高应用市场访问量
- 10-23一新常态成型,飞连联手Forrester聚焦数字化办公一新体验