首页 > 其他分享 >根目录挂载,raid使用,bcache缓存策略

根目录挂载,raid使用,bcache缓存策略

时间:2025-01-10 14:23:19浏览次数:1  
标签:缓存 raid dev 磁盘 根目录 bcache root localhost

一.了解挂载命令,常用的命令

lsblk #查看磁盘
blkid #查看磁盘的UUID
dd  #拷贝磁盘命令使两块盘的UUID一致
dd if=拷贝方 of=被拷贝
dd if=/dev/sda1 of=/dev/sdb1 #将sda1的数据拷贝到sdb1
mount /dev/sda  /home
配置系统前给主机添加磁盘并配置reid

二.








三.reid完成之后使用Bcache做缓存技术

Bcache

Bcache简介
Bcache是Linux内核块设备层cache,支持多块HDD使用同一块SSD作为缓存盘。它让SSD作为HDD的缓存成为了可能。由于SSD价格昂贵,存储空间小,而HDD价格低廉,存储空间大,因此采用SSD作为缓存,HDD作为数据存储盘,既解决了SSD容量太小,又解决了HDD运行速度太慢的问题。
#Bcache是从Linux-3.10开始正式并入内核主线的,因此,要使用Bcache,需要将内核升级到3.10及以上版本才行。

Bcache缓存策略

Bcache支持三种缓存策略,分别是:writeback、writethrough、writearoud,默认使用writethrough,缓存策略可动态修改

writeback 回写策略:回写策略默认是关闭的,如果开启此策略,则所有的数据将先写入缓存盘,然后等待系统将数据回写入后端数据盘中。

writethrough 写通策略:默认的就是写通策略,此模式下,数据将会同时写入缓存盘和后端数据盘。

writearoud :选择此策略,数据将直接写入后端磁盘

Bcache使用

#使用磁盘作为Bcache磁盘前,必须要确保磁盘是空的,或者磁盘中数据不重要。如果磁盘中有文件系统则会报错
[root@localhost ~]# make-bcache -C /dev/sdc
Device /dev/sdc already has a non-bcache superblock, remove it using wipefs and wipefs -a
[root@localhost ~]# 
`第一步
wipefs命令 #可以擦除磁盘中的超级快中的数据,使源磁盘中的书韩剧无法继续使用。也无法进行还原
[root@localhost ~]# wipefs -all /dev/sdc
/dev/sdc: 2 bytes were erased at offset 0x00000438 (ext4): 53 ef
[root@localhost ~]# 

-------擦除/dev/sdc中的数据
`第二步

# -B 后端磁盘  -C 前端磁盘 

创建Bcache缓存磁盘(后端HDD)
[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 ~]# 

创建Bcache缓存磁盘(前端SSD)

[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 ~#

查看Bcache磁盘
[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 

`第三步 格式化磁盘并挂载

要使用bcache磁盘,需要先将磁盘进行格式化,可以使用mkfs.exf4将bcache磁盘格式化成ext4
----- # -F强制执行(企业中不推荐使用) 
[root@localhost ~]# mkfs.ext4 /dev/bcache0
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: done                            
Filesystem label=OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621438 blocks
131071 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2151677952
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

完成之后直接使用mount挂载  
[root@localhost ~]# mount /dev/bcache0 /mnt
[root@localhost ~]#

添加缓存盘

`第一步添加bcache磁盘
 --见上文
 
`第二步获取cset.uuid
要为bcache后端磁盘添加缓存磁盘,在创建缓存盘成功之后,要获取该缓存盘的cset.uuid,通过bcache-supper-show命令查看:
[root@localhost ~]# bcache-super-show /dev/sdc      --获取新缓存盘/dev/sdc的UUID
sb.magic        ok
sb.first_sector     8 [match]
sb.csum         E9D2701DC04A0A13 [match]
sb.version      3 [cache device]

dev.label       (empty)
dev.uuid        000771bd-5c58-4713-9fba-23312efb01a8
dev.sectors_per_block   1
dev.sectors_per_bucket  1024
dev.cache.first_sector  1024
dev.cache.cache_sectors 20970496
dev.cache.total_sectors 20971520
dev.cache.ordered   yes
dev.cache.discard   no
dev.cache.pos       0
dev.cache.replacement   0 [lru]

cset.uuid       d0079bae-b749-468b-ad0c-6fedbbc742f4

`第三步获取cset.uuid aattach到bcache磁盘可以实现添加缓存操作
[root@localhost ~]# echo "d0079bae-b749-468b-ad0c-6fedbbc742f4" >/sys/block/bcache0/bcache/attach 
[root@localhost ~]# 

`操作完成之后通过lsblk查看
[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

删除缓存盘

`要将当前缓存盘出当前的后端磁盘删除,只需要将缓存磁盘的cset.uuid detach到bcache磁盘即可以实现
[root@localhost ~]# echo "d0079bae-b749-468b-ad0c-6fedbbc742f4" >/sys/block/bcache0/bcache/detach 
[root@localhost ~]#
`完成后查看
[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 
[root@localhost ~]#

注销缓存盘

`注销缓存前,请先确保当前缓存盘没有作为缓存使用,即通过lsblk看不到缓存磁盘下面的bcahe设备,如果当前磁盘正在使用,而进行注销操作,可能导致缓存盘的数据不能及时写入后端磁盘,造成数据丢失

通过磁盘的cset.uuid,在/sys/bcache/{cset.uuid}/unregister写入1.即可进行注销操作。
[root@localhost ~]# echo 1>/sys/fs/bcache/d0079bae-b749-468b-ad0c-6fedbbc742f4/unregister 
[root@localhost ~]# 

操作成功后通过ls查看/sys.fs/bcache/{cset.uuid}查看之后显示没有则注销成功

停用bcache后端磁盘

停用后端磁盘前,先确包当前磁盘没有附加缓存盘使用如果当前磁盘正在使用缓存磁盘而进行操作,可能导致磁盘的数据不能及时写入后端磁盘,造成数据丢失
`第一步  卸载后端磁盘
[root@localhost ~]# umount /dev/bcache0
[root@localhost ~]#

`第二步停用缓存磁盘
[root@localhost ~]# echo 1>/sys/block/bcache0/bcache/stop
[root@localhost ~]#

`第三步查看结果
[root@localhost ~]# lsblk /dev/sdb
NAME      MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb         8:16   0  10G  0 disk 
[root@localhost ~]#

Bcache之系统配置

配置/etc/fstab
	#想要在bcacghe磁盘在系统重启时进行自动挂载,需要将配置雪茹到fatab文件中 
	
`第一步 获取bcache设备的UUID 
	由于bcache<n>设备在每次重启后,N的值都不是固定的,有可能重启后,原来的bcache0变为了cache1 所以不能将bcache<n>作为磁盘挂载,需要使用该磁盘的UUID进行挂载 
	[root@localhost ~]# blkid /dev/bcache0 
	/dev/bcache0: UUID="3b015acd-904a-4a91-9b98-43d4bbd19f2e" TYPE="ext4" 
#此UUID为磁盘进行格式化之后,生成的文件系统的UUID,不是上面说的bcache缓存盘的cset.uuid

`第二步 将UUID配置写入到/etc/fstab
[root@localhost ~]# echo "`blkid /dev/bcache0 |awk '{print $2}'|sed  's/\"//g'`    /home         ext4     defaults     0 1" >>/etc/fstab 
[root@localhost ~]#

writeback回写策略

  使用Bcache磁盘,当缓存使用writeback写回策略,在停用后端磁盘或者注销缓存磁盘时,一定要保证缓存盘已经完全从后端磁盘移除,否则可能导致数据丢失,甚至磁盘损坏。在缓存还在工作时,不能将磁盘进行热插拔,这将导致数据异常
 make-bcaache
   `如果使用make-bcache命令出现如下打印那就说明当前磁盘已经是bcache磁盘
   [root@localhost ~]# make-bcache -B /dev/sdb
	Already a bcache device on /dev/sdb, overwrite with --wipe-bcache
	[root@localhost ~]#
   加上 --wipe-bcache参数就可以了:make-bcache -B /dev/sdb --wipe-bcache

make-bcache支持快速创建后端磁盘和缓存磁盘,并自动化建立绑定两者的绑定关系,命令如下

[root@localhost ~]# make-bcache -B /dev/sdb -C /dev/sdc --wipe-bcache
UUID:           8e8da86d-7cda-4e06-b05b-dd7309c33cf6
Set UUID:       ff92c353-bfcf-4f51-b2b8-8eb7792d491e
version:        0
nbuckets:       20480
block_size:     1
bucket_size:        1024
nr_in_set:      1
nr_this_dev:        0
first_bucket:       1
UUID:           4df35dfa-00f7-4c27-9838-e6853cdfaf48
Set UUID:       ff92c353-bfcf-4f51-b2b8-8eb7792d491e
version:        1
block_size:     1
data_offset:        16
[root@localhost ~]# 
  
 `通过lsblk查看
 [root@localhost ~]# lsblk /dev/sdb /dev/sdc
NAME      MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb         8:16   0  10G  0 disk 
└─bcache3 253:3    0  10G  0 disk 
sdc         8:32   0  10G  0 disk 
└─bcache3 253:3    0  10G  0 disk 
[root@localhost ~]# 

Bcache加速规则

# 为名为bcache0的bcache设备设置缓存模式为writeback 回写策略
echo writeback > /sys/block/bcache0/bcache/cache_mode
# 打开顺序IO缓存
echo 0 > /sys/block/bcache0/bcache/sequential_cutoff
# 关闭读写拥塞控制命令
echo 0 > /sys/block/bcache0/bcache/cache/congested_read_threshold_us
echo 0 > /sys/block/bcache0/bcache/cache/congested_write_threshold_us
#修改bcache写回写速率参数
echo 180 > /sys/class/block/bcache0/bcache/writeback_rate_p_term_inverse

标签:缓存,raid,dev,磁盘,根目录,bcache,root,localhost
From: https://www.cnblogs.com/yanshier/p/18663903

相关文章

  • RAID处理
    1,查看Adapter/opt/MegaRAID/MegaCli/MegaCli64-cfgdsply-aALL   指定硬盘做raid查看新加盘的EnclosureID和Slot号/opt/MegaRAID/MegaCli/MegaCli64-pdlist-aall|egrep"Raw|Enclosure|Slot|Firmware"SlotNumber:3Enclosureposition:0RawSize:558.9......
  • 云服务器根目录扩容后磁盘空间未增加
    问题描述:我已经升级了云服务器的配置,但根目录的空间大小并未增加。请帮我检查并解决这个问题。详情回答:您好!感谢您使用我们的云服务器服务。根据您的描述,您已经升级了云服务器的配置,但根目录的空间大小并未增加。这种情况通常是由于磁盘挂载或分区设置不当引起的。下面我们将为......
  • 【CentOS根目录爆满解决方案】
    CentOS根目录爆满解决方案当CentOS的根目录(/)空间不足时,可能会导致系统运行不稳定,某些服务无法正常启动或工作。解决这个问题需要先找出哪些文件或日志占用了大量空间,然后根据实际情况采取措施清理或迁移数据。以下是一些常见的解决方案:1.检查磁盘使用情况首先,你需要检查......
  • linux文件类型和根目录结构
    1.1Linux文件类型1.2Linux系统的目录结构 1.2.1FHSfilesystemhierarchystandard文件系统层级标准,定义了在类Unix系统中的目录结构和目录内容,即让用户了解到已安装软件通常放置于哪个目录下。Linux目录结构的特点使用树形目录结构来组织和管理文件......
  • RAID 是什么?
    在Linux中,RAID(RedundantArraysofIndependentDisks,独立磁盘冗余阵列)是一种磁盘存储技术,它通过组合多个独立磁盘(物理磁盘)来提供更高的数据可靠性、性能和数据冗余。RAID技术最初是由加州大学伯克利分校在1987年提出的,目的是通过组合小的廉价磁盘来代替大的昂贵磁盘,同时提供数据......
  • 782-批量移动指定文件夹A下所有文件到A文件夹根目录下
    782-批量移动指定文件夹A下所有文件到A文件夹根目录下指定文件夹A下有BCDE…等文件夹,将所有文件(包括子孙文件夹下文件)移动A文件夹根目录下,删除空文件夹【1】、支持的文件格式:所有文件【2】、是否支持子文件夹穿透:支持选择对应的选项,遇到同名文件时以不同的方式进行处理......
  • 旧硬盘上raid信息清除
    硬盘软raid新的硬盘拿到,放到服务器上后,发现存在一个raid类型的分区。无法删除,无法挂载使用。[root@localhost~]#lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTSsda8:001.8T0disk|--md1269:12601.8T0raid1|--md1279:12700B0md对于这种情况,需要删除raid配置......
  • 虚拟机unraid系统安装
    首先下载unraid文件https://unraid.net/getting-startedwindows系统使用vmware虚拟机创建虚拟机过程中注意usb的不同协议2.03.0由于unraid系统只能识别fat32协议的文件系统,因此需要将u盘格式化可以使用easeus或者傲梅https://www.easeus.com/partition-manager/https://......
  • RAID 阵列故障的诊断与修复
    RAID(独立磁盘冗余阵列)是一种常见的存储技术,可提高数据的可靠性和性能。然而,RAID阵列故障可能导致数据丢失或性能下降,因此需要快速诊断并修复问题。以下是针对RAID阵列故障的详细诊断和修复指导。一、RAID阵列基础知识RAID阵列可以分为以下常见类型,每种类型对冗余和性能有......
  • 服务器raid5磁盘阵列硬盘报警离线损坏了两块怎么恢复数据?
    这台服务器是由四块2.5寸希捷1TBSAS盘组的RAID5阵列,硬盘型号是ST91000640SS,有两块盘损坏亮黄灯报警离线,其中0号盘是fail状态,三号盘是offline状态。经过检测,两块故障盘在数据恢复设备里可以直接读取,但都有大量坏块,我们先通过设备尽可能完整的把镜像做出来,然后跟其他两块好盘的镜像......