第五章 使用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 七层模型 是国际标准化组织提出一个网络分层模型,其大体结构以及每一层提供的功能如下图所示: 每一层都专注做一件事情,并且每一层都需要使用下一层提供的功能比如传输层需要使用网络层提供的路由和寻址功能࿰…...

ChatGPT是什么?ChatGPT里的G、P、T分别指什么
文章目录 ChatGPT是什么GTP中的 生成式 是什么意思GTP中的 预训练 是什么意思GTP中的 变换模型 是什么意思 什么是Transformer什么是注意力机制 监督学Xi、无监督学Xi、强化学Xi ChatGPT是什么 GPT: Generative Pre-trained Transformer 生成式预训练变换模型 ChatGPT是由Ope…...

Linux服务使用宝塔面板搭建网站,并发布公网访问 - 内网穿透
文章目录 前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面 转载自远程内网穿透的文章:Linux使用宝塔面板搭建网站,并内网穿透实现公网访问 前言 宝塔面板作为简单好用的服务器运维管理面板&#…...

TDA4VH j784s4 使用
// sdk https://www.ti.com/tool/PROCESSOR-SDK-J784S4 // Jacinto Processors TDA4AP-Q1/TDA4VP-Q1/TDA4AH-Q1/TDA4VH-Q1 EVM User’s Guide https://www.ti.com/lit/ug/spruj62/spruj62.pdf?ts1682337275236&ref_urlhttps%253A%252F%252Fwww.ti.com%252Fsitesearch%252…...

CSS布局基础(字体,文本,背景)
字体 常见字体设置 body {font-family: font-family: "Microsoft YaHei", Tahoma, Arial, Hiragino Sans GB,sans-serif; }浏览器从前到后匹配,找到可用字体结束,都没匹配上,使用浏览器默认字体 常用字号 不同浏览器默认字号可…...

Redis入门指南:深入了解这款高性能缓存数据库
本文将带您了解Redis的基本概念、数据类型、特性以及如何在实际项目中应用Redis。通过阅读本文,您将更好地理解如何利用Redis优化您的应用程序性能。 1. 什么是Redis?2. Redis的数据类型3. Redis的特性4. 如何使用Redis4.1 安装与启动4.2 基本命令4.3 应…...

# 数据结构和算法面试题系列-随机算法总结
0 概述 随机算法涉及大量概率论知识,有时候难得去仔细看推导过程,当然能够完全了解推导的过程自然是有好处的,如果不了解推导过程,至少记住结论也是必要的。本文总结最常见的一些随机算法的题目,是几年前找工作的时候…...

windows中vscode配置C/C++环境
首先要把MinGW的环境安装完,我一般是下载带有MinGW的codeblocks,这样省去自己安装MinGW。因为安装MinGW还挺麻烦的。 安装完codeblocks,找到其安装目录,把bin文件配置到环境变量去: 将bin添加到环境变量 然后打开vsco…...

shell编程之条件语句
shell编程之条件语句 一、条件测试操作1.test命令2.文件测试3.利用条件判断,创建文件4.整数值比较4.1 常用的测试操作符 5.字符串比较5.1 常用的测试操作符 6.逻辑测试6.1 常用的测试操作符 二、if语句的结构1.单分支结构2.双分支结构3.多分支结构4.if嵌套 三、case…...

【Python每日十题菜鸟版--第二天】
菜鸟实例 🍉前言1.判断奇偶性2.判断闰年3. 获取最大值最小值4. 质数(素数)的判断5.阶乘方法一方法二 6.九九乘法表7.斐波那契数列方法一 :循环计算法(一般方法)方法二: 递归 8.阿姆斯特朗数9. 十…...

拓扑排序模板及例题
概念 一个有向无环图必然存在一个拓扑序列与之对应。 流程: 先将所有入度为0的节点入队将队列中的节点出队,出队序列就是对应拓扑序。对于弹出的节点x,遍历x所有出度y,对y进行入读减一操作检查入度减一之后的节点y,…...