智汇华云 | bcache原理及系统化
2023-03-13 金融
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的时间至少也就是说,则路中会cache仪器,并不一定需念书写出backing仪器。
如果你的SSD足够强大,可以不监控,减少监控的开销。
# echo 0> /sys/fs/bcache//congested_read_threshold_us
# echo 0> /sys/fs/bcache//congested_write_threshold_us
停止路中会的另一个好处是,所有的频域念书写出都但会经过cache仪器,从而不但会导致cache missing。
配有副本情况下当念书乞求求至少2ms,写出乞求求至少20ms时,路中会cache仪器。
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
。郑州治疗不孕不育好方法长春生殖感染医院哪里最好
昆明甲状腺哪家医院最好
郑州看白癜风哪家专科医院好
漳州看妇科哪家医院比较好
- 02-10港媒:中华人民共和国高铁已被“粪便淹没”!再不处理后果严重,是真的吗?
- 02-10因果是自身有缘的积累
- 02-10衰退警灯闪烁!策略师无视:美国经济或在明年初陷入严重衰退
- 02-10ASML没想到!30年所依赖的关键,北京师范大学实现突破还更加先进!
- 02-10齐一民《四十而大惑》刊载(16)幽默是天生的
- 02-10凯投宏观:美国股市也许在2024年大幅上涨
- 02-10滴天髓 论生时
- 02-10世界上最快的飞机!速度高达6.72马赫,X-15航天飞机是怎么明白的
- 02-10美国纽约州联合IBM与DRAM等芯片公司,将斥资100亿美元建立下一代半导体研发中心
- 02-10新型骗局来袭!近一周已有多人4人