第五章 使用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.2
Creation Time : Thu Apr 27 15:52:48 2023
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Apr 27 15:57:12 2023
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : centos:10 (local to host centos)
UUID : b46517fa:62c223f5:24cd68c3:e7116ee3
Events : 19
Number Major Minor RaidDevice State
0 8 16 0 active sync set-A /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 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.2
Creation Time : Thu Apr 27 15:52:48 2023
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Apr 27 17:11:40 2023
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : centos:10 (local to host centos)
UUID : b46517fa:62c223f5:24cd68c3:e7116ee3
Events : 21
Number Major Minor RaidDevice State
- 0 0 0 removed
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
0 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.2
Creation Time : Thu Apr 27 15:52:48 2023
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Apr 27 17:17:23 2023
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : centos:10 (local to host centos)
UUID : b46517fa:62c223f5:24cd68c3:e7116ee3
Events : 41
Number Major Minor RaidDevice State
4 8 16 0 active sync set-A /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 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.2
Creation Time : Thu Apr 27 18:14:09 2023
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Apr 27 18:19:47 2023
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : centos:5 (local to host centos)
UUID : 279cba83:dcd23661:cbd67fac:8bae8d86
Events : 18
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4 8 48 2 active sync /dev/sdd
3 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.2
Creation Time : Thu Apr 27 18:14:09 2023
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Apr 27 18:23:31 2023
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 3
Failed Devices : 1
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Rebuild Status : 69% complete
Name : centos:5 (local to host centos)
UUID : 279cba83:dcd23661:cbd67fac:8bae8d86
Events : 31
Number Major Minor RaidDevice State
3 8 64 0 active sync /dev/sde
1 8 32 1 active sync /dev/sdc
4 8 48 2 active sync /dev/sdd
0 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.2
Creation Time : Thu Apr 27 18:14:09 2023
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 0
Persistence : Superblock is persistent
Update Time : Thu Apr 27 18:27:36 2023
State : clean, degraded
Active Devices : 0
Working Devices : 0
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : centos:5 (local to host centos)
UUID : 279cba83:dcd23661:cbd67fac:8bae8d86
Events : 41
Number 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/sdc
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
(3)、添加到卷组并查看状态
//将硬盘添加到storage卷组
[root@centos ~]# vgcreate storage /dev/sdb /dev/sdc
Volume group "storage" successfully created
//查看卷组状态
[root@centos ~]# vgdisplay storage
--- Volume group ---
VG Name storage
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 39.99 GiB
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 0 / 0
Free PE / Size 10238 / 39.99 GiB
VG 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 MiB
Logical volume "vo" created.
[root@centos ~]# lvdisplay
--- Logical volume ---
LV Path /dev/storage/vo
LV Name vo
VG Name storage
LV UUID 4VinRD-jJfs-s0Pe-Wva1-9kAX-QUAd-Vjq2MS
LV Write Access read/write
LV Creation host, time centos, 2023-04-27 19:08:01 +0800
LV Status available
# open 0
LV Size 152.00 MiB
Current LE 38
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
--- Logical volume ---
LV Path /dev/cl/swap
LV Name swap
VG Name cl
LV UUID fNUlBi-Vdj3-OcaE-Waaq-DsQy-eNb6-3zAUN4
LV Write Access read/write
LV Creation host, time 192.168.2.22, 2023-04-21 18:57:34 +0800
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/cl/root
LV Name root
VG Name cl
LV UUID LRAw0u-HJN0-jaZc-VSIJ-sVxe-G7F7-izx3yi
LV Write Access read/write
LV Creation host, time 192.168.2.22, 2023-04-21 18:57:34 +0800
LV Status available
# open 1
LV Size <17.00 GiB
Current LE 4351
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block 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]: y
Size 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 storage
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 39.99 GiB
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 30 / 120.00 MiB
Free PE / Size 10208 / <39.88 GiB
VG UUID GImCki-hscS-une3-74Xa-XOkz-2JhH-ugaUdU
--- Volume group ---
VG Name cl
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <19.00 GiB
PE Size 4.00 MiB
Total PE 4863
Alloc PE / Size 4863 / <19.00 GiB
Free 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/vo
Logical 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/vo
LV Name vo
VG Name storage
LV UUID 4VinRD-jJfs-s0Pe-Wva1-9kAX-QUAd-Vjq2MS
LV Write Access read/write
LV Creation host, time centos, 2023-04-27 19:08:01 +0800
LV snapshot status source of
vo1 [active]
LV Status available
# open 1
LV Size 120.00 MiB
Current LE 30
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
--- Logical volume ---
LV Path /dev/storage/vo1
LV Name vo1
VG Name storage
LV UUID tIHyhk-PenO-sSkN-Ew28-mbcl-zrYJ-pxjPYu
LV Write Access read/write
LV Creation host, time centos, 2023-04-27 19:32:29 +0800
LV snapshot status active destination for vo
LV Status available
# open 0
LV Size 120.00 MiB
Current LE 30
COW-table size 120.00 MiB
COW-table LE 30
Allocated to snapshot 83.71%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:5
--- Logical volume ---
LV Path /dev/cl/swap
LV Name swap
VG Name cl
LV UUID fNUlBi-Vdj3-OcaE-Waaq-DsQy-eNb6-3zAUN4
LV Write Access read/write
LV Creation host, time 192.168.2.22, 2023-04-21 18:57:34 +0800
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/cl/root
LV Name root
VG Name cl
LV UUID LRAw0u-HJN0-jaZc-VSIJ-sVxe-G7F7-izx3yi
LV Write Access read/write
LV Creation host, time 192.168.2.22, 2023-04-21 18:57:34 +0800
LV Status available
# open 1
LV Size <17.00 GiB
Current LE 4351
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
(7)、卸载
[root@centos ~]# umount /RAID2
(8)、恢复快照
[root@centos ~]# lvconvert --merge /dev/storage/vo1
Merging 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]: y
Logical volume "vo" successfully removed.
(3)、删除卷组
[root@centos ~]# vgremove storage
Volume group "storage" successfully removed
(4)、删除物理卷设备
[root@centos ~]# pvremove /dev/sdb /dev/sdc
Labels 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]: y
Logical volume "vo" successfully removed.
(3)、删除卷组
[root@centos ~]# vgremove storage
Volume group "storage" successfully removed
(4)、删除物理卷设备
[root@centos ~]# pvremove /dev/sdb /dev/sdc
Labels on physical volume "/dev/sdb" successfully wiped.
Labels on physical volume "/dev/sdc" successfully wiped.


















