第五章 使用RAID与LVM磁盘阵列技术
第五章 使用RAID与LVM磁盘阵列技术
一、RAID磁盘冗余阵列
1、部署磁盘阵列
(1)、RAID0、1、5、10方案技术对比
RAID级别 | 最少硬盘 | 可用容量 | 读写性能 | 安全性 | 特点 |
---|---|---|---|---|---|
0 | 2 | n | n | 低 | 追求最大容量和速度,任何一块盘损坏,数据全部异常。 |
1 | 2 | n/2 | n | 高 | 追求最大安全性,只要阵列组中有一块硬盘可用,数据不受影响。 |
5 | 3 | n-1 | n-1 | 中 | 在控制成本的前提下,追求硬盘的最大容量、速度及安全性,允许有一块硬盘异常,数据不受影响。 |
10 | 4 | n/2 | n/2 | 高 | 综合RAID1和RAID0的优点,追求硬盘的速度和安全性,允许有一半硬盘异常(不可同组),数据不受影响。 |
(2)、RAID0 RAID1 RAID5 RAID10介绍
RAID0技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入到各个物理硬盘中。这样一来,在最理想的状态下,硬盘设备的读写性能会提升数倍,但是若任意一块硬盘发生故障将导致整个系统的数据都受到破坏。通俗来说,RAID0技术能够有效地提升硬盘数据的吞吐速度,但是不具备数据备份和错误修复能力。如图所示:数据被分别写入到不同的硬盘设备中,即硬盘A和硬盘B设备会分别保存数据资料,最终实现提升读取、写入速度的效果。
尽管RAID0技术提升了硬盘设备的读写速度,但是它是将数据依次写入到各个物理硬盘中,也就是说,它的数据是分开存放的,其中任何一块硬盘发生故障都会损坏整个系统的数据。因此,如果生产环境对硬盘设备的读写速度没有要求,而是希望增加数据的安全性时,就需要用到RAID1技术了。如图所示的RAID1技术示意图中可以看到,它是把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以将其视为数据的镜像或备份)。当其中某一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用。考虑到写入操作时CPU切换硬盘的开销,速度会比RAID O有微弱的降低,但在读取数据的时候,操作系统可以分别从两块硬盘中读取信息,理论读取速度的峰值可以是硬盘数量的倍数。另外平时只要保证有一块硬盘稳定运行,数据就不会出现损坏的情况,可靠性较高。另外RAID1技术虽然十分注重数据的安全性,但是因为是在多块硬盘设备中写入了相同的数据,因此硬盘设备的利用率得以下降,从理论上来说,图7-2所示的硬盘空间的真实可用率只有50%,由三块硬盘设备组成的RAID1磁盘阵列的可用率只有33%左右,以此类推。而且,由于需要把数据同时写入到两块以上的硬盘设备,这无疑也在一定程度上增大了系统计算功能的负载。
如图所示,RAID5技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。RAID5磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上,这样的好处是其中任何一设备损坏后不至于出现致命缺陷;图中parity部分存放的就是数据的奇偶校验信息,换句话说,就是RAID5技术实际上没有备份硬盘中的真实数据信息,而是当硬盘设备出现问题后通过奇偶校验信息来尝试重建损坏的数据。RAID这样的技术特性“妥协”地兼顾了硬盘设备的读写速度、数据安全性与存储成本问题。RAID5最少由三块硬盘组成,使用的是Disk Striping硬盘切割技术。比RAID1级别好处就在于保存的是奇偶校验信息而不是一模一样的文件内容,所以当重复写入某个文件时,RAID5级别的磁盘阵列组只需要对应一个奇偶校验信息就可以,效率更高,存储成本也会随之降低。
鉴于RAID5技术是因为硬盘设备的成本问题对读写速度和数据的安全性能而有了一定的妥协,但是大部分企业更在乎的是数据本身的价值而非硬盘价格,因此生产环境中主要使用RAID 10技术。顾名思义,RAID-10技术是RAID1+RAIDO技术的一个“组合体”。如图所示,RAID10技术需要至少4块硬盘来组建,其中先分别两两制作成RAID1磁盘阵列,以保证数据的安全性;然后再对两个RAID1磁盘阵列实施RAID0技术,进一步提高硬盘设备的读写速度。这样从理论上来讲,只要坏的不是同一组中的所有硬盘,那么最多可以损坏50%的硬盘设备而不丢失数据。由于RAID10技术继承了RAIDO的高读写速度和RAID1的数据安全性,在不考虑成本的情况下RAID10的性能都超过了RAID5,因此当前成为广泛使用的一种存储技术。细看图可以分析出,RAID10是先对信息进行分割,然后再两两一组做的镜像。也就是将RAID1作为最低级别的组合,再使用RAID0技术组合到一起,将它们视为“一整块”硬盘。而RAID01则是相反的,它回先将硬盘分为两组,使用RAID0作为最低级别的组合,再将两组硬盘通过RAID1技术组合到一起。但区别非常明显,RAID10级别中任何一块硬盘损坏都不会影响到数据安全性,其余硬盘均会正常运作。但RAID01只要有任何一—盘损坏,最低级别的RAID0硬盘组马上会停止运作,可能造成严重隐患。所以RAID10远比RAID01常见,很多主板甚至不支持RAID01。
(3)、mdadm命令
mdadm命令用于创建、调整、监控和管理RAID设备,英文全称:“multiple devices admin”。
语法格式:mdadm [参数] 硬盘名称
(4)、mdadm命令的常用参数和作用
参数 | 作用 |
---|---|
-a | 检测设备名称 |
-n | 指定设备数量 |
-l | 指定RAID级别 |
-C | 创建 |
-v | 显示过程 |
-f | 模拟设备损坏 |
-r | 移除设备 |
-Q | 查看摘要信息 |
-D | 查看详细信息 |
-S | 停止RAID磁盘阵列 |
(5)创建RAID10并检查看摘要信息
//创建
[root@centos ~]# mdadm -C -v /dev/md10 -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md10 started.
//查看
[root@centos ~]# mdadm -Q /dev/md10
/dev/md10: 39.97GiB raid10 4 devices, 0 spares. Use mdadm --detail for more detail.
(6)、格式化
//将RAID磁盘阵列格式化为ext4格式
[root@centos ~]# mkfs.ext4 /dev/md10
mke2fs 1.45.6 (20-Mar-2020)
创建含有 10477056 个块(每块 4k)和 2621440 个inode的文件系统
文件系统UUID:37a19d4a-f16b-412d-9b0e-4fb936dba160
超级块的备份存储于下列块: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624正在分配组表: 完成
正在写入inode表: 完成
创建日志(65536 个块)完成
写入超级块和文件系统账户统计信息: 已完成
(7)、挂载硬盘设备
//创建文件夹
[root@centos ~]# mkdir /RAID
//挂载设备
[root@centos ~]# mount /dev/md10 /RAID/
//查看磁盘空间
[root@centos ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 9.8M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root 17G 5.4G 12G 32% /
/dev/sr0 11G 11G 0 100% /media/cdrom
/dev/sda1 1014M 351M 664M 35% /boot
tmpfs 371M 28K 371M 1% /run/user/0
/dev/md10 40G 49M 38G 1% /RAID
(8)、查看详细信息
[root@centos ~]# mdadm -D /dev/md10
/dev/md10:Version : 1.2Creation Time : Thu Apr 27 15:52:48 2023Raid Level : raid10Array Size : 41908224 (39.97 GiB 42.91 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 4Total Devices : 4Persistence : Superblock is persistentUpdate Time : Thu Apr 27 15:57:12 2023State : clean Active Devices : 4Working Devices : 4Failed Devices : 0Spare Devices : 0Layout : near=2Chunk Size : 512KConsistency Policy : resyncName : centos:10 (local to host centos)UUID : b46517fa:62c223f5:24cd68c3:e7116ee3Events : 19Number Major Minor RaidDevice State0 8 16 0 active sync set-A /dev/sdb1 8 32 1 active sync set-B /dev/sdc2 8 48 2 active sync set-A /dev/sdd3 8 64 3 active sync set-B /dev/sde
2、损坏磁盘阵列及修复
(1)、模拟损坏的硬盘设备
[root@centos ~]# mdadm /dev/md10 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md10
(2)、查看详细信息
[root@centos ~]# mdadm -D /dev/md10
/dev/md10:Version : 1.2Creation Time : Thu Apr 27 15:52:48 2023Raid Level : raid10Array Size : 41908224 (39.97 GiB 42.91 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 4Total Devices : 4Persistence : Superblock is persistentUpdate Time : Thu Apr 27 17:11:40 2023State : clean, degraded Active Devices : 3Working Devices : 3Failed Devices : 1Spare Devices : 0Layout : near=2Chunk Size : 512KConsistency Policy : resyncName : centos:10 (local to host centos)UUID : b46517fa:62c223f5:24cd68c3:e7116ee3Events : 21Number Major Minor RaidDevice State- 0 0 0 removed1 8 32 1 active sync set-B /dev/sdc2 8 48 2 active sync set-A /dev/sdd3 8 64 3 active sync set-B /dev/sde0 8 16 - faulty /dev/sdb
(3)、移除损坏的硬盘
[root@centos ~]# mdadm /dev/md10 -r /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md10
(4)、重新添加硬盘
[root@centos ~]# mdadm /dev/md10 -a /dev/sdb
mdadm: added /dev/sdb
(5)、查看详细情况
[root@centos ~]# mdadm -D /dev/md10
/dev/md10:Version : 1.2Creation Time : Thu Apr 27 15:52:48 2023Raid Level : raid10Array Size : 41908224 (39.97 GiB 42.91 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 4Total Devices : 4Persistence : Superblock is persistentUpdate Time : Thu Apr 27 17:17:23 2023State : clean Active Devices : 4Working Devices : 4Failed Devices : 0Spare Devices : 0Layout : near=2Chunk Size : 512KConsistency Policy : resyncName : centos:10 (local to host centos)UUID : b46517fa:62c223f5:24cd68c3:e7116ee3Events : 41Number Major Minor RaidDevice State4 8 16 0 active sync set-A /dev/sdb1 8 32 1 active sync set-B /dev/sdc2 8 48 2 active sync set-A /dev/sdd3 8 64 3 active sync set-B /dev/sde
3、磁盘阵列+备份盘
(1)、创建一个RAID5磁盘阵列+备份盘
[root@centos ~]# mdadm -C -v /dev/md5 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
(2)、查看详细信息
[root@centos ~]# mdadm -D /dev/md5
/dev/md5:Version : 1.2Creation Time : Thu Apr 27 18:14:09 2023Raid Level : raid5Array Size : 41908224 (39.97 GiB 42.91 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Thu Apr 27 18:19:47 2023State : clean Active Devices : 3Working Devices : 4Failed Devices : 0Spare Devices : 1Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : centos:5 (local to host centos)UUID : 279cba83:dcd23661:cbd67fac:8bae8d86Events : 18Number Major Minor RaidDevice State0 8 16 0 active sync /dev/sdb1 8 32 1 active sync /dev/sdc4 8 48 2 active sync /dev/sdd3 8 64 - spare /dev/sde
(3)、格式化
//将RAID磁盘阵列格式化为ext4格式
[root@centos ~]# mkfs.ext4 /dev/md5
mke2fs 1.45.6 (20-Mar-2020)
创建含有 10477056 个块(每块 4k)和 2621440 个inode的文件系统
文件系统UUID:5c7fa3d1-33d7-445c-b3b3-9f3e773dc99b
超级块的备份存储于下列块: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624正在分配组表: 完成
正在写入inode表: 完成
创建日志(65536 个块)完成
写入超级块和文件系统账户统计信息: 已完成
(4)、挂载硬盘设备
//创建文件夹
[root@centos ~]# mkdir /RAID
//挂载设备
[root@centos ~]# mount /dev/md5 /RAID/
//查看磁盘空间
[root@centos ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 9.8M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root 17G 5.4G 12G 32% /
/dev/sr0 11G 11G 0 100% /media/cdrom
/dev/sda1 1014M 351M 664M 35% /boot
tmpfs 371M 24K 371M 1% /run/user/0
/dev/md5 40G 49M 38G 1% /RAID
(5)、移除磁盘并查看详细信息
//将硬盘设备/dev/sdb移除磁盘阵列
[root@centos ~]# mdadm /dev/md5 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md5
//查看/dev/md0磁盘阵列的详细信息
[root@centos ~]# mdadm -D /dev/md5
/dev/md5:Version : 1.2Creation Time : Thu Apr 27 18:14:09 2023Raid Level : raid5Array Size : 41908224 (39.97 GiB 42.91 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Thu Apr 27 18:23:31 2023State : clean, degraded, recovering Active Devices : 2Working Devices : 3Failed Devices : 1Spare Devices : 1Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncRebuild Status : 69% completeName : centos:5 (local to host centos)UUID : 279cba83:dcd23661:cbd67fac:8bae8d86Events : 31Number Major Minor RaidDevice State3 8 64 0 active sync /dev/sde1 8 32 1 active sync /dev/sdc4 8 48 2 active sync /dev/sdd0 8 16 - faulty /dev/sdb
4、删除磁盘阵列
(1)、卸载
[root@centos ~]# umount /RAID
(2)、模拟损坏硬盘并删除
[root@centos ~]# mdadm /dev/md5 -f /dev/sdb -r /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md5
mdadm: hot removed /dev/sdb from /dev/md5
[root@centos ~]# mdadm /dev/md5 -f /dev/sdc -r /dev/sdc
mdadm: set /dev/sdc faulty in /dev/md5
mdadm: hot removed /dev/sdc from /dev/md5
[root@centos ~]# mdadm /dev/md5 -f /dev/sdd -r /dev/sdd
mdadm: set /dev/sdd faulty in /dev/md5
mdadm: hot removed /dev/sdd from /dev/md5
[root@centos ~]# mdadm /dev/md5 -f /dev/sde -r /dev/sde
mdadm: set /dev/sde faulty in /dev/md5
mdadm: hot removed /dev/sde from /dev/md5
(3)、查看详细信息
[root@centos ~]# mdadm -D /dev/md5
/dev/md5:Version : 1.2Creation Time : Thu Apr 27 18:14:09 2023Raid Level : raid5Array Size : 41908224 (39.97 GiB 42.91 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 3Total Devices : 0Persistence : Superblock is persistentUpdate Time : Thu Apr 27 18:27:36 2023State : clean, degraded Active Devices : 0Working Devices : 0Failed Devices : 0Spare Devices : 0Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : centos:5 (local to host centos)UUID : 279cba83:dcd23661:cbd67fac:8bae8d86Events : 41Number Major Minor RaidDevice State- 0 0 0 removed- 0 0 1 removed- 0 0 2 removed
(4)、停止整个RAID磁盘阵列
[root@centos ~]# mdadm -S /dev/md5
mdadm: stopped /dev/md5
二、LVM逻辑卷管理器
1、逻辑卷介绍
逻辑卷管理器(Logical Volume Manager):简称LVM,LVM允许用户对硬盘资源进行动态调整。逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失,而LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并,这样一来用户不必关心物理硬盘设备的底层架构和布局,就可以实现硬盘分区的动态调整。LVM的技术架构图如下:
2、部署逻辑卷
(1)、常用的LVM部署命令
功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
扫描 | pvsacn | vgscan | lvsacn |
建立 | pvcreate | vgcreate | lvcreate |
显示 | pvdisplay | vgdisplay | lvdisplay |
删除 | pvremove | vgremove | lvremove |
扩展 | vgextend | lvextend | |
缩小 | vgreduce | lvreduce |
(2)、创建物理卷
//使新添加的硬盘设备支持LVM技术
[root@centos ~]# pvcreate /dev/sdb /dev/sdcPhysical volume "/dev/sdb" successfully created.Physical volume "/dev/sdc" successfully created.
(3)、添加到卷组并查看状态
//将硬盘添加到storage卷组
[root@centos ~]# vgcreate storage /dev/sdb /dev/sdcVolume group "storage" successfully created
//查看卷组状态
[root@centos ~]# vgdisplay storage --- Volume group ---VG Name storageSystem ID Format lvm2Metadata Areas 2Metadata Sequence No 1VG Access read/writeVG Status resizableMAX LV 0Cur LV 0Open LV 0Max PV 0Cur PV 2Act PV 2VG Size 39.99 GiBPE Size 4.00 MiBTotal PE 10238Alloc PE / Size 0 / 0 Free PE / Size 10238 / 39.99 GiBVG UUID GImCki-hscS-une3-74Xa-XOkz-2JhH-ugaUdU
(4)、创建逻辑卷并查看状态
//分割一个约150MB的逻辑卷设备
[root@centos ~]# lvcreate -n vo -L 150MB storage Rounding up size to full physical extent 152.00 MiBLogical volume "vo" created.
[root@centos ~]# lvdisplay --- Logical volume ---LV Path /dev/storage/voLV Name voVG Name storageLV UUID 4VinRD-jJfs-s0Pe-Wva1-9kAX-QUAd-Vjq2MSLV Write Access read/writeLV Creation host, time centos, 2023-04-27 19:08:01 +0800LV Status available# open 0LV Size 152.00 MiBCurrent LE 38Segments 1Allocation inheritRead ahead sectors auto- currently set to 8192Block device 253:2--- Logical volume ---LV Path /dev/cl/swapLV Name swapVG Name clLV UUID fNUlBi-Vdj3-OcaE-Waaq-DsQy-eNb6-3zAUN4LV Write Access read/writeLV Creation host, time 192.168.2.22, 2023-04-21 18:57:34 +0800LV Status available# open 2LV Size 2.00 GiBCurrent LE 512Segments 1Allocation inheritRead ahead sectors auto- currently set to 8192Block device 253:1--- Logical volume ---LV Path /dev/cl/rootLV Name rootVG Name clLV UUID LRAw0u-HJN0-jaZc-VSIJ-sVxe-G7F7-izx3yiLV Write Access read/writeLV Creation host, time 192.168.2.22, 2023-04-21 18:57:34 +0800LV Status available# open 1LV Size <17.00 GiBCurrent LE 4351Segments 1Allocation inheritRead ahead sectors auto- currently set to 8192Block device 253:0
(5)、格式化
[root@centos ~]# mkfs.ext4 /dev/storage/vo
mke2fs 1.45.6 (20-Mar-2020)
创建含有 155648 个块(每块 1k)和 38912 个inode的文件系统
文件系统UUID:5fcc25c4-afa5-4ef7-b005-d6531999dcf8
超级块的备份存储于下列块: 8193, 24577, 40961, 57345, 73729正在分配组表: 完成
正在写入inode表: 完成
创建日志(4096 个块)完成
写入超级块和文件系统账户统计信息: 已完成
(6)、挂载并查看挂载状态
//创建挂载点
[root@centos ~]# mkdir /RAID2
//挂载至挂载点
[root@centos ~]# mount /dev/storage/vo /RAID2
//查看挂载状态
[root@centos ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 9.7M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root 17G 5.4G 12G 32% /
/dev/sr0 11G 11G 0 100% /media/cdrom
/dev/sda1 1014M 351M 664M 35% /boot
tmpfs 371M 24K 371M 1% /run/user/0
/dev/mapper/storage-vo 144M 1.6M 132M 2% /RAID2
3、扩容逻辑卷
(1)、卸载设备
[root@centos ~]# umount /RAID2
(2)、扩容
//将逻辑卷vo扩展至290M
[root@centos ~]# lvextend -L 290M /dev/storage/vo Rounding size to boundary between physical extents: 292.00 MiB.Size of logical volume storage/vo changed from 152.00 MiB (38 extents) to 292.00 MiB (73 extents).Logical volume storage/vo successfully resized.
(3)、检查
//检查硬盘的完整性,确认目录结构,内容和文件内容没有丢失
[root@centos ~]# e2fsck -f /dev/storage/vo
e2fsck 1.45.6 (20-Mar-2020)
第 1 步:检查inode、块和大小
第 2 步:检查目录结构
第 3 步:检查目录连接性
第 4 步:检查引用计数
第 5 步:检查组概要信息
/dev/storage/vo:11/38912 文件(0.0% 为非连续的), 10567/155648 块
(4)、重置容量
//重置设备在系统中的容量,因为系统内核还没有同步到这部分新修改的信息
[root@centos ~]# resize2fs /dev/storage/vo
resize2fs 1.45.6 (20-Mar-2020)
将 /dev/storage/vo 上的文件系统调整为 299008 个块(每块 1k)。
/dev/storage/vo 上的文件系统现在为 299008 个块(每块 1k)。
(5)、重新挂载并查看状态
//重新挂载硬盘设备
[root@centos ~]# mount /dev/storage/vo /RAID2
//查看挂载状态
[root@centos ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 9.7M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root 17G 5.4G 12G 32% /
/dev/sr0 11G 11G 0 100% /media/cdrom
/dev/sda1 1014M 351M 664M 35% /boot
tmpfs 371M 24K 371M 1% /run/user/0
/dev/mapper/storage-vo 279M 2.1M 259M 1% /RAID2
4、缩小逻辑卷
(1)、卸载设备
[root@centos ~]# umount /RAID2
(2)、先检查完整性
[root@centos ~]# e2fsck -f /dev/storage/vo
e2fsck 1.45.6 (20-Mar-2020)
第 1 步:检查inode、块和大小
第 2 步:检查目录结构
第 3 步:检查目录连接性
第 4 步:检查引用计数
第 5 步:检查组概要信息
/dev/storage/vo:11/75776 文件(0.0% 为非连续的), 15729/299008 块
(3)、通知系统缩减逻辑卷的容量
//通知系统内核将逻辑卷vo的容量缩减到120MB
[root@centos ~]# resize2fs /dev/storage/vo 120M
resize2fs 1.45.6 (20-Mar-2020)
将 /dev/storage/vo 上的文件系统调整为 122880 个块(每块 1k)。
/dev/storage/vo 上的文件系统现在为 122880 个块(每块 1k)。
(4)、缩容
//将逻辑卷vo的容量缩减到120MB
[root@centos ~]# resize2fs /dev/storage/vo 120M
resize2fs 1.45.6 (20-Mar-2020)
将 /dev/storage/vo 上的文件系统调整为 122880 个块(每块 1k)。
/dev/storage/vo 上的文件系统现在为 122880 个块(每块 1k)。[root@centos ~]# lvreduce -L 120M /dev/storage/vo WARNING: Reducing active logical volume to 120.00 MiB.THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce storage/vo? [y/n]: ySize of logical volume storage/vo changed from 292.00 MiB (73 extents) to 120.00 MiB (30 extents).Logical volume storage/vo successfully resized.
(5)、重新挂载并查看状态
//重新挂载硬盘设备
[root@centos ~]# mount /dev/storage/vo /RAID2
//查看挂载状态
[root@centos ~]# df -h
[root@centos ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 9.7M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root 17G 5.4G 12G 32% /
/dev/sr0 11G 11G 0 100% /media/cdrom
/dev/sda1 1014M 351M 664M 35% /boot
tmpfs 371M 24K 371M 1% /run/user/0
/dev/mapper/storage-vo 113M 1.6M 103M 2% /RAID2
5、逻辑卷快照
(1)、优点
1、快照卷的容量必须等同于逻辑卷的容量。
2、快照卷仅有一次有效,一旦执行还原操作后会被立即自动删除。
(2)、lvconvert命令
lvconvert命令用于管理逻辑卷的快照。
语法格式:lvconvert [参数] 快照卷名称
(3)、查看容量是否够用
[root@centos ~]# vgdisplay --- Volume group ---VG Name storageSystem ID Format lvm2Metadata Areas 2Metadata Sequence No 4VG Access read/writeVG Status resizableMAX LV 0Cur LV 1Open LV 1Max PV 0Cur PV 2Act PV 2VG Size 39.99 GiBPE Size 4.00 MiBTotal PE 10238Alloc PE / Size 30 / 120.00 MiBFree PE / Size 10208 / <39.88 GiBVG UUID GImCki-hscS-une3-74Xa-XOkz-2JhH-ugaUdU--- Volume group ---VG Name clSystem ID Format lvm2Metadata Areas 1Metadata Sequence No 3VG Access read/writeVG Status resizableMAX LV 0Cur LV 2Open LV 2Max PV 0Cur PV 1Act PV 1VG Size <19.00 GiBPE Size 4.00 MiBTotal PE 4863Alloc PE / Size 4863 / <19.00 GiBFree PE / Size 0 / 0 VG UUID nbPTja-DqYx-A8wh-Njm0-YyWW-nanS-IGIdRl
(4)、写入文件
[root@centos ~]# echo "Welcome to www.baidu.com" > /RAID2/content.txt
(5)、生成快照卷
[root@centos ~]# lvcreate -s -n vo1 -L 120M /dev/storage/voLogical volume "vo1" created.
(6)、创建垃圾文件并查看快照卷的状态
//在逻辑卷所挂载的目录中创建一个100MB的垃圾文件
[root@centos ~]# dd if=/dev/zero of=/RAID2/files count=1 bs=100M
记录了1+0 的读入
记录了1+0 的写出
104857600 bytes (105 MB, 100 MiB) copied, 4.80057 s, 21.8 MB/s
//查看快照卷的状态
[root@centos ~]# lvdisplay --- Logical volume ---LV Path /dev/storage/voLV Name voVG Name storageLV UUID 4VinRD-jJfs-s0Pe-Wva1-9kAX-QUAd-Vjq2MSLV Write Access read/writeLV Creation host, time centos, 2023-04-27 19:08:01 +0800LV snapshot status source ofvo1 [active]LV Status available# open 1LV Size 120.00 MiBCurrent LE 30Segments 1Allocation inheritRead ahead sectors auto- currently set to 8192Block device 253:2--- Logical volume ---LV Path /dev/storage/vo1LV Name vo1VG Name storageLV UUID tIHyhk-PenO-sSkN-Ew28-mbcl-zrYJ-pxjPYuLV Write Access read/writeLV Creation host, time centos, 2023-04-27 19:32:29 +0800LV snapshot status active destination for voLV Status available# open 0LV Size 120.00 MiBCurrent LE 30COW-table size 120.00 MiBCOW-table LE 30Allocated to snapshot 83.71%Snapshot chunk size 4.00 KiBSegments 1Allocation inheritRead ahead sectors auto- currently set to 8192Block device 253:5--- Logical volume ---LV Path /dev/cl/swapLV Name swapVG Name clLV UUID fNUlBi-Vdj3-OcaE-Waaq-DsQy-eNb6-3zAUN4LV Write Access read/writeLV Creation host, time 192.168.2.22, 2023-04-21 18:57:34 +0800LV Status available# open 2LV Size 2.00 GiBCurrent LE 512Segments 1Allocation inheritRead ahead sectors auto- currently set to 8192Block device 253:1--- Logical volume ---LV Path /dev/cl/rootLV Name rootVG Name clLV UUID LRAw0u-HJN0-jaZc-VSIJ-sVxe-G7F7-izx3yiLV Write Access read/writeLV Creation host, time 192.168.2.22, 2023-04-21 18:57:34 +0800LV Status available# open 1LV Size <17.00 GiBCurrent LE 4351Segments 1Allocation inheritRead ahead sectors auto- currently set to 8192Block device 253:0
(7)、卸载
[root@centos ~]# umount /RAID2
(8)、恢复快照
[root@centos ~]# lvconvert --merge /dev/storage/vo1Merging of volume storage/vo1 started.storage/vo: Merged: 50.63%storage/vo: Merged: 100.00%
(9)、挂载并查看
//挂载设备
[root@centos ~]# mount /dev/storage/vo /RAID2
//查看内容,发现100MB的垃圾文件被清除了
[root@centos ~]# cd /RAID2
[root@centos RAID2]# ls -alh
总用量 15K
drwxr-xr-x. 3 root root 1.0K 4月 27 19:30 .
dr-xr-xr-x. 19 root root 249 4月 27 19:11 ..
-rw-r--r--. 1 root root 25 4月 27 19:30 content.txt
drwx------. 2 root root 12K 4月 27 19:09 lost+found
6、删除逻辑卷
(1)、卸载
[root@centos RAID2]# umount /RAID2
(2)、删除逻辑卷设备
[root@centos ~]# lvremove /dev/storage/vo
Do you really want to remove active logical volume storage/vo? [y/n]: yLogical volume "vo" successfully removed.
(3)、删除卷组
[root@centos ~]# vgremove storage Volume group "storage" successfully removed
(4)、删除物理卷设备
[root@centos ~]# pvremove /dev/sdb /dev/sdcLabels on physical volume "/dev/sdb" successfully wiped.Labels on physical volume "/dev/sdc" successfully wiped.
(9)、挂载并查看
//挂载设备
[root@centos ~]# mount /dev/storage/vo /RAID2
//查看内容,发现100MB的垃圾文件被清除了
[root@centos ~]# cd /RAID2
[root@centos RAID2]# ls -alh
总用量 15K
drwxr-xr-x. 3 root root 1.0K 4月 27 19:30 .
dr-xr-xr-x. 19 root root 249 4月 27 19:11 ..
-rw-r--r--. 1 root root 25 4月 27 19:30 content.txt
drwx------. 2 root root 12K 4月 27 19:09 lost+found
6、删除逻辑卷
(1)、卸载
[root@centos RAID2]# umount /RAID2
(2)、删除逻辑卷设备
[root@centos ~]# lvremove /dev/storage/vo
Do you really want to remove active logical volume storage/vo? [y/n]: yLogical volume "vo" successfully removed.
(3)、删除卷组
[root@centos ~]# vgremove storage Volume group "storage" successfully removed
(4)、删除物理卷设备
[root@centos ~]# pvremove /dev/sdb /dev/sdcLabels on physical volume "/dev/sdb" successfully wiped.Labels on physical volume "/dev/sdc" successfully wiped.
相关文章:

第五章 使用RAID与LVM磁盘阵列技术
第五章 使用RAID与LVM磁盘阵列技术 一、RAID磁盘冗余阵列 1、部署磁盘阵列 (1)、RAID0、1、5、10方案技术对比 RAID级别最少硬盘可用容量读写性能安全性特点02nn低追求最大容量和速度,任何一块盘损坏,数据全部异常。12n/2n高追…...
LeetCode 560. 和为 K 的子数组
LeetCode 560. 和为 K 的子数组 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的连续子数组的个数 。 示例 1: 输入:nums [1,1,1], k 2 输出:2示例 2: 输入:nums [1,2,3], k 3 …...

后端要一次性返回我10万条数据
问题描述 面试官:后端一次性返回10万条数据给你,你如何处理?我:歪嘴一笑,what the f**k! 问题考察点 看似无厘头的问题,实际上考查候选人知识的广度和深度,虽然在工作中这种情况很少遇到... …...

汽车智能化「出海」红利
在高阶智能座舱中,车载导航产品作为与用户体验息息相关的模块之一,同样也进入了升级迭代周期。 基于高精度地图渲染、高精度定位算法、AR等技术的车道级导航、AR导航等产品快速上车,但同时随着人机交互多模发展以及3D沉浸式用户体验需求趋势下…...

Windows10资源管理器使用
文章目录 前言二、关联菜单操作1.分组展示2.添加选择复选框3.使用窗格模式4.功能区折叠二、“文件夹选项”对话框操作1.访问模式调整2.状态栏控制总结前言 目前Windows系统中的使用较多当属Windows10,资源管理器属于Windows系统中一个常用工具。本文总结了Windows 10 专业版下…...

【视频教程解读】Window上安装和使用autogluon V0.7
1.使用conda安装的python环境 教程使用的是极简版miniconda,由于我们的电脑中安装了anaconda,所以不需要进行进一步安装。python版本为3.9,博客里面有anaconda和python版本的对应关系。注意查看版本autogluon V0.4需要3.8或者3.9和3.10,pip版…...
10、Java继承与多态 - 内部类的概念与分类 1
10、Java继承与多态 - 内部类的概念与分类 1 什么是内部类? 如果一个事物的内部包含另一个事物,那么这就是一个内部包含另一个类,称作内部类; 例如:身体和心脏的关系,又如 -> 汽车和发动机的关系&#x…...
Java SE 面试题
文章目录 Java SE 面试题基本知识请简要介绍 Java SE。请解释 Java 的垃圾回收机制。请解释 Java 中的访问修饰符。 面向对象请解释封装、继承和多态。请解释接口和抽象类的区别。 集合框架请解释 ArrayList 和 LinkedList 的区别。请解释 Set 和 Map 接口。 异常处理请解释 Ja…...

Linux 之十九 编译工具链、.MAP 文件、.LST 文件
.map 文件和 .lst 文件是嵌入式开发中最有用的俩调试辅助文件。现在主要从事 RISC-V 架构,开始与 GCC 打交道,今天就重点学习一下 GCC 的 .map 文件、.lst 文件,并辅助以 ARMCC 和 IAR 作为对比。 编译工具链 .map 文件和 .lst 文件都是由编…...

小 C 的数学(math)
祝大家劳动节快乐!!小手动起来 言归正传┏ (゜ω゜)☞ 题目描述 小 C 想要成为一名 OIer,于是他提前学习数学,为 OI 做好铺垫。这一天,他的数学老师给了一道题:给定正整数 a,以及给定一个区间 …...

应用运行环境实时洞察,亚马逊云科技Cisco AppDynamics展优势
Cisco AppDynamics(APM)产品,现已正式上线亚马逊云科技Marketplace(中国区域)。可以通过亚马逊云科技Marketplace(中国区域)网站,灵活便捷地部署该解决方案,以便充分利用云原生APM(应用性能管理…...

C++程序设计——lambda表达式
一、问题引入 在C98中,如果想对一个数据集合中的元素进行排序,可以使用sort()方法,但如果待排序元素为自定义类型,就需要用户自己定义排序时的比较规则。 随着C语法的发展,人们开始觉得其编写比较复杂,每次…...

Unity 高级程序员应该具备怎样的能力?要怎样成长为 Unity 高级程序员?
如何从零基础小白成长为 Unity 高级程序员?【全篇学习内容免费!快来白嫖】 高能预警,下文包含从零基础新手到高级程序员一站式技术学习、学习方法、心态等内容,供各个阶段的同学进行参考。 从零基础到高级程序员 上干货 话不多说…...
禁止触摸屏触控板手指缩放,需要这样处理
要禁止触摸屏的手指缩放,可以使用如下的CSS 只要在页面上使用css样式touch-action: none,就能禁止web在手机或平板上的缩放了。 <html style"touch-action: none;">注意: 使用 touch-action: none作用于html元素上࿰…...

opencv cuda版本windows编译
目录 1. 编译准备2. 编译3. 遇到的问题及解决方案3.1 boostdesc_bgm.i,vgg_generated_48.i等文件的缺失3.2 fatal error: features2d/test/test_detectors_regression.impl.hpp: 没有那个文件或目录 1. 编译准备 编译工具是cmakevisual studio2022,首先安装这两个工…...

python哲学
进入python编辑器模式下,输入import this 会打印python之禅(The Zen of Python) Beautiful is better than ugly. 优美胜于丑陋。 Explicit is better than implicit. 明了胜于晦涩。 Simple is better than complex. 简单胜过复杂。 Complex is better than co…...
(2023)用AIGC写iOS项目单元总结
尝试开发的项目 项目功能 用 ChatGPT 开发了一个视频播放器。需要它编写的功能包括: ☆ 本地文件,在线 URL 播放,暂停 ☆ 点击空白区域弹出操作菜单,再点击消失 ☆ 手动横竖屏切换 ☆ 播放速度调整,限定 0.5, 1.0, …...
k8s扩容node节点会影响上面已存在的pod吗?
理论上不影响 扩容 Kubernetes 集群中的节点不会影响已经运行的 Pod,因为 Pod 是在节点上运行的,而不是在集群中运行的。当您添加新的节点时,Kubernetes 调度器会在新节点上启动新的 Pod,而已经运行的 Pod 会继续在它们当前的节点…...

深度学习 -- pytorch 计算图与动态图机制 autograd与逻辑回归模型
前言 pytorch中的动态图机制是pytorch这门框架的优势所在,阅读本篇博客可以使我们对动态图机制以及静态图机制有更直观的理解,同时在博客的后半部分有关于逻辑回归的知识点,并且使用pytorch中张量以及张量的自动求导进行构建逻辑回归模型。 …...

计算机网络学习03(OSI、TCP/IP网络分层模型详解))
1、OSI 七层模型 OSI 七层模型 是国际标准化组织提出一个网络分层模型,其大体结构以及每一层提供的功能如下图所示: 每一层都专注做一件事情,并且每一层都需要使用下一层提供的功能比如传输层需要使用网络层提供的路由和寻址功能࿰…...

国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...

华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...

数据结构:递归的种类(Types of Recursion)
目录 尾递归(Tail Recursion) 什么是 Loop(循环)? 复杂度分析 头递归(Head Recursion) 树形递归(Tree Recursion) 线性递归(Linear Recursion)…...