lvm和rRAID的使用
3 RAID
3.1 什么是RAID

"RAID"一词是由David Patterson, Garth A. Gibson, Randy Katz 于1987年在加州大学伯克利分校发明的。在1988年6月SIGMOD会议上提交的论文"A Case for Redundant Arrays of Inexpensive Disks”"中提出,当时性能最好的大型机不断增长的个人电脑市场开发的一系列廉价驱动器的性能所击败。尽管故障与驱动器数量的比例会上升,但通过配置冗余,阵列的可靠性可能远远超过任何大型单个驱动器的可靠性
独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列。利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组,目的为提升性能或数据冗余,或是两者同时提升。
RAID 层级不同,数据会以多种模式分散于各个硬盘,RAID 层级的命名会以 RAID 开头并带数字,例如:RAID 0、RAID 1、RAID 5、RAID 6、RAID 7、RAID 01、RAID 10、RAID 50、RAID 60。每种等级都有其理论上的优缺点,不同的等级在两个目标间获取平衡,分别是增加数据可靠性以及增加存储器(群)读写性能。
简单来说,RAID把多个硬盘组合成为一个逻辑硬盘,因此,操作系统只会把它当作一个实体硬盘。RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。由于硬盘价格的不断下降与RAID功能更加有效地与主板集成,它也成为普通用户的一个选择,特别是需要大容量存储空间的工作,如:视频与音频制作。

RAID 功能实现
- 提高IO能力,磁盘并行读写
- 提高耐用性,磁盘冗余算法来实现
RAID 实现的方式
- 外接式磁盘阵列:通过扩展卡提供适配能力
- 内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置
- 软件RAID:通过OS实现,比如:群晖的NAS
3.2 RAID级别
级别:多块磁盘组织在一起的工作方式有所不同
参考链接: https://zh.wikipedia.org/wiki/RAID
RAID-0:条带卷,strip
RAID-1:镜像卷,mirror
RAID-2
......
RAID-5
RAID-6
RAID-7
RAID-10
RAID-01
RAID-50
......
3.2.1 RAID-0
以 chunk 单位,读写数据,因为读写时都可以并行处理,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0既没有冗余功能,也不具备容错能力,如果一个磁盘(物理)损坏,所有数据都会丢失

读、写性能提升
可用空间:N*min(S1,S2,...)
无容错能力
最少磁盘数:1+
RAID0范例
第一步:添加三块硬盘,然后重启系统,fdisk –l 查看硬盘信息
二:fsisk /dev/sdb
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G
分区 1 已设置为 Linux 类型,大小设为 10Gib
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (20973568-41943039,默认为20973568):
将使用默认值20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-41943039,默认为 41943039):
将使用默认值41943039
分区 2 已设置为 Linux 类型,大小设为 10GiB
命令(输入 m 获取帮助):t
分区号 (1,2,默认 2):1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linuxraid autodetect”
命令(输入 m 获取帮助):t
分区号 (1,2,默认 2):2
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linuxraid autodetect”
命令(输入 m 获取帮助):p
磁盘 /dev/sdc:21.5 GB,21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf2f14edf
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 10487807 10485760 5G fd Linux raid autodetect
/dev/sdc2 10487808 20973567 10485760 5G fd Linux raid autodetect
命令(输入 m 获取帮助):w
####其他两块相同步骤
三:创建RAID
[20:50:15 root@CentOS8 ~]#mdadm -C /dev/md0 -l 0 -n 2 /dev/sdc{1..2}
mdadm: partition table exists on /dev/sdc1
mdadm: partition table exists on /dev/sdc1 but will be lost or
meaningless after creating array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
#查看raid
[20:50:27 root@CentOS8 ~]#mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Dec 4 20:50:27 2022
Raid Level : raid0
Array Size : 10475520 (9.99 GiB 10.73 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Sun Dec 4 20:50:27 2022
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Layout : -unknown-
Chunk Size : 512K
Consistency Policy : none
Name : CentOS8.magedu.org.41:0 (local to host CentOS8.magedu.org.41)
UUID : a891c88d:f6e95ad2:dc14a0e1:3124ca51
Events : 0
Number Major Minor RaidDevice State
0 8 33 0 active sync /dev/sdc1
1 8 34 1 active sync /dev/sdc2
#创建xfs文件系统
[20:52:18 root@CentOS8 ~]#mkfs.xfs /dev/md0
log stripe unit (524288 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/md0 isize=512 agcount=16, agsize=163712 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=2618880, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
#设置开机自动挂载
[20:56:51 root@CentOS8 ~]#cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Nov 20 09:32:28 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=4b51fc2f-594e-47e4-abda-37783b1bdf63 / xfs defaults 0 0
UUID=7f2a69c1-44ed-4abc-b98b-970bdd6109be /boot xfs defaults 0 0
UUID=4283420e-289e-4928-980e-2cbf18ae8450 /data xfs defaults 0 0
UUID=1c4060f4-a57f-4ee2-967c-ee02508fe07e /home xfs defaults 0 0
UUID=060d175f-b794-4b8c-b28b-39c74e22a126 none swap defaults 0 0
#UUID=224332d1-64c7-4cbb-a3b7-a472ffb825d5 /sdb5 xfs defaults 0 0
#UUID=92bdf831-2aff-44c5-a6d4-28310dfebe58 /sdb1 ext4 defaults 0 0
#UUID=25902095-6ce7-4732-9ccc-70aa2dde4895 /mysql ext4 defaults 0 0
UUID=2021-11-13-01-04-26-00 /mnt iso9660 defaults 0 0
#UUID=8775eea9-bb7a-48f0-94ba-dd12edbfe8ed none swap pri=100 0 0
#UUID=5a1d73aa-87a5-4ed3-a8cb-67da82281678 /test ext4 defaults 0 0
#UUID=e408e722-4f8c-4949-88a4-dc7f6fa1cbdd /log xfs defaults 0 0
UUID=19412c91-99ac-4fc4-9d88-9bcd57ceedd5 /raid0 xfs defaults 0 0
UUID=5b1c325f-a008-4f89-ab77-dd59ea169a91 /users ext4 defaults 0 0
[20:57:04 root@CentOS8 ~]#
[21:01:48 root@CentOS8 ~]#mount -a
[21:01:49 root@CentOS8 ~]#df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 442M 0 442M 0% /dev
tmpfs 471M 0 471M 0% /dev/shm
tmpfs 471M 7.3M 464M 2% /run
tmpfs 471M 0 471M 0% /sys/fs/cgroup
/dev/mapper/cl-root 127G 8.5G 119G 7% /
/dev/mapper/cl-data 50G 12G 39G 23% /data
/dev/mapper/cl-home 20G 176M 20G 1% /home
/dev/sda1 1014M 233M 782M 23% /boot
/dev/sr0 11G 11G 0 100% /mnt
tmpfs 95M 12K 95M 1% /run/user/42
tmpfs 95M 0 95M 0% /run/user/0
/dev/mapper/vg--testvg-testlv 4.9G 21M 4.6G 1% /users
/dev/md0 10G 105M 9.9G 2% /raid0
#普通的磁盘写入模拟
21:02:09 root@CentOS8 ~]#time dd if=/dev/zero of=txt bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 1.03833 s, 1.0 GB/s
real 0m1.062s
user 0m0.001s
sys 0m0.523s
##写入1G耗时0m1.062s
RAID0的模拟
[21:04:35 root@CentOS8 ~]#cd /raid0/
[21:04:47 root@CentOS8 raid0]#time dd if=/dev/zero of=txt bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.794355 s, 1.3 GB/s
real 0m0.800s
user 0m0.000s
sys 0m0.349s
##写入1G耗时0m0.800s
3.2.2 RAID-1
也称为镜像, 两组以上的N个磁盘相互作镜像,在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于硬盘数量的倍数,与RAID 0相同。另外写入速度有微小的降低。

读性能提升、写性能略有下降
可用空间:1*min(S1,S2,...)
磁盘利用率 50%
有冗余能力
最少磁盘数:2+
3.2.3 RAID-4

多块数据盘异或运算值存于专用校验盘
磁盘利用率 (N-1)/N
有冗余能力
至少3块硬盘才可以实现
3.2.4 RAID-5

读、写性能提升
可用空间:(N-1)*min(S1,S2,...)
有容错能力:允许最多1块磁盘损坏
最少磁盘数:3, 3+
3.2.5 RAID-6

双份校验位,算法更复杂
读、写性能提升
可用空间:(N-2)*min(S1,S2,...)
有容错能力:允许最多2块磁盘损坏
最少磁盘数:4, 4+
3.2.6 RAID-10

读、写性能提升
可用空间:N*min(S1,S2,...)/2
有容错能力:每组镜像最多只能坏一块
最少磁盘数:4, 4+
3.2.7 RAID-01

多块磁盘先实现RAID0,再组合成RAID1
3.2.8 RAID-50

多块磁盘先实现RAID5,再组合成RAID0
3.2.9 RAID-60

3.2.9 其它级别
JBOD:Just a Bunch Of Disks只是一堆磁盘

功能:将多块磁盘的空间合并一个大的连续空间使用
第一块硬盘存放所有磁盘的分段信息,如果损坏,整个阵列会失败
后续磁盘损坏只会影响本块磁盘的数据
可用空间:sum(S1,S2,...)
RAID7
RAID 7并非公开的RAID标准,而是美国公司的Storage Computer Corporation的专利硬件产品名称,RAID 7是以RAID 3及RAID 4为基础所发展,但是经过强化以解决原来的一些限制。另外,在实现中使用大量的缓冲存储器以及用以实现异步数组管理的专用即时处理器,使得RAID 7可以同时处理大量的IO要求,所以性能甚至超越了许多其他RAID标准的实际产品。但也因为如此,在价格方面非常的高昂.RAID7 可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式
SHR(Synology Hybrid RAID)
群晖公司的技术,适合不了解RAID的普通用户
根据磁盘个数自动组成不同的RAID,1块普通磁盘,2块RAID1,3块RAID4,SHR2类似于RAID6
只支持群晖系统
3.2.10 RAID 总结
常用级别:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50,RAID-60

磁盘阵列比较表
RAID 等级 |
最 少 硬 盘 |
最 大 容 错 |
可 用 容 量 |
读 取 性 能 |
写 入 性 能 |
安全性 | 目的 | 应用场景 |
|---|---|---|---|---|---|---|---|---|
| 单一 硬盘 |
(参 考) |
0 | 1 | 1 | 1 | 无 | ||
| JBOD | 1 | 0 | n | 1 | 1 | 无(同RAID 0) |
增加容量 | 个人(暂 时)存储 备份 |
| 0 | 1 | 0 | n | n | n | 一个硬盘异常, 全部硬盘都会异 常 |
追求最大容量、 速度 |
影片剪接 缓存用途 |
| 1 | 2 | -n 1 |
1 | n | 1 | 高,一个正常即 可 |
追求最大安全性 | 个人、企 业备份 |
| 5 | 3 | 1 | n- 1 |
n- 1 |
n- 1 |
高 | 追求最大容量、 最小预算 |
个人、企 业备份 |
| 6 | 4 | 2 | n- 2 |
n- 2 |
n- 2 |
安全性较RAID 5高 |
同RAID 5,但 较安全 |
个人、企 业备份 |
| 10 | 4 | 高 | 综合RAID 0/1优 点,理论速度较 快 |
大型数据 库、服务 器 |
||||
| 50 | 6 | 高 | 提升数据安全 | |||||
| 60 | 8 | 高 | 提升数据安全 |
3.3实现软RAID
mdadm工具:为软RAID提供管理界面,为空余磁盘添加冗余,结合内核中的md(multi devices)
RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等
mdadm:模式化的工具,支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10
命令的语法格式:
mdadm [mode] <raiddevice> [options] <component-devices>
常用选项说明
模式:
创建:-C
装配:-A
监控:-F
管理:-f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意块设备
-C: 创建模式
-n #: 使用#个块设备来创建此RAID
-l #:指明要创建的RAID的级别
-a {yes|no}:自动创建目标RAID设备的设备文件
-c CHUNK_SIZE: 指明块大小,单位k
-x #: 指明空闲盘的个数
-D:显示raid的详细信息
mdadm -D /dev/md#
管理模式:
-f: 标记指定磁盘为损坏
-a: 添加磁盘
-r: 移除磁盘
观察md的状态: cat /proc/mdstat
范例:
#使用mdadm创建并定义RAID设备
mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1
#用文件系统对每个RAID设备进行格式化
mkfs.xfs /dev/md0
#使用mdadm检查RAID设备的状况
mdadm --detail|D /dev/md0
#增加新的成员
mdadm -G /dev/md0 -n4 -a /dev/sdf1
#模拟磁盘故障
mdadm /dev/md0 -f /dev/sda1
#移除磁盘
mdadm /dev/md0 -r /dev/sda1
#在备用驱动器上重建分区
mdadm /dev/md0 -a /dev/sda1
#系统日志信息
cat /proc/mdstat
生成配置文件:
mdadm -D -s >> /etc/mdadm.conf
停止设备:
mdadm -S /dev/md0
激活设备:
mdadm -A -s /dev/md0
强制启动:
mdadm -R /dev/md0
删除raid信息
mdadm --zero-superblock /dev/sdb1
练习
1:创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录
2:创建由三块硬盘组成的可用空间为2G的RAID5设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录
4 逻辑卷管理器(LVM)
4.1 LVM介绍
LVM: Logical Volume Manager 可以允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小,
允许在多个物理设备间重新组织文件系统
LVM可以弹性的更改LVM的容量

通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备
中的PE加到LV中以加大容量
实现过程
- 将设备指定为物理卷
- 用一个或者多个物理卷来创建一个卷组,物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的
- 在物理卷上创建的逻辑卷, 是由物理区域(PE)组成
- 可以在逻辑卷上创建文件系统并挂载
![]()
第一个逻辑卷对应设备名:/dev/dm-#
dm: device mapper,将一个或多个底层块设备组织成一个逻辑设备的模块
软链接:
- /dev/mapper/VG_NAME-LV_NAME
- /dev/VG_NAME/LV_NAME
范例
4.2 实现逻辑卷
相关工具来自于 lvm2 包
[root@centos8 ~]#yum -y install lvm2
4.2.1 pv管理工具
显示pv信息
pvs:简要pv信息显示
pvdisplay
创建分区
[22:26:31 root@CentOS8 ~]#fdisk /dev/sdb -l
Disk /dev/sdb: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1f1731aa
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 10487807 10485760 5G 8e Linux LVM
[22:26:36 root@CentOS8 ~]#fdisk /dev/sdc -l
Disk /dev/sdc: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: D9AFD66E-20E1-4131-B9D1-3A9C775FD980
Device Start End Sectors Size Type
/dev/sdc1 2048 20973567 20971520 10G Linux LVM
创建pv和查看pv
[22:24:20 root@CentOS8 ~]#pvcreate /dev/sd{b1,c1}
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdc1" successfully created.
[22:25:00 root@CentOS8 ~]#pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 cl lvm2 a-- <199.00g 4.00m
/dev/sdb1 lvm2 --- 5.00g 5.00g
/dev/sdc1 lvm2 --- 10.00g 10.00g
[22:25:09 root@CentOS8 ~]#pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name cl
PV Size <199.00 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 50943
Free PE 1
Allocated PE 50942
PV UUID GVaWkZ-RiPu-fpWQ-VEiY-wxqK-jC3s-tTcLdr
"/dev/sdb1" is a new physical volume of "5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID k5f7Bs-O6jl-ynOa-TgXF-Ra1R-OGwO-hd809Z
"/dev/sdc1" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID qRaOek-C0gf-KuT3-IhfY-f3Xt-D0dC-W81yQ7
增加新的pv
[23:37:30 root@CentOS8 ~]#pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created.
[23:39:52 root@CentOS8 ~]#pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 vg-mysql lvm2 a-- <5.00g 0
/dev/sdb2 lvm2 --- 15.00g 15.00g
/dev/sdc1 vg-mysql lvm2 a-- <10.00g 0
删除pv
[01:47:49 root@CentOS8 ~]#pvremove /dev/sdb{1,2}
Labels on physical volume "/dev/sdb1" successfully wiped.
Labels on physical volume "/dev/sdb2" successfully wiped
4.2.2 vg管理工具
显示卷组
[22:30:30 root@CentOS8 ~]#vgs
VG #PV #LV #SN Attr VSize VFree
cl 1 4 0 wz--n- <199.00g 4.00m
vg-mysql 2 0 0 wz--n- 14.99g 14.99g
[22:30:43 root@CentOS8 ~]#vgdisplay
--- Volume group ---
VG Name vg-mysql
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 14.99 GiB
PE Size 4.00 MiB
Total PE 3838
Alloc PE / Size 0 / 0
Free PE / Size 3838 / 14.99 GiB
VG UUID 0KbjFi-aEA6-mDei-dwf5-vY2B-43tV-P87eny
--- Volume group ---
VG Name cl
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 4
Open LV 4
Max PV 0
Cur PV 1
Act PV 1
VG Size <199.00 GiB
PE Size 4.00 MiB
Total PE 50943
Alloc PE / Size 50942 / 198.99 GiB
Free PE / Size 1 / 4.00 MiB
VG UUID oLq3fK-faxS-3aYR-qEQj-NcCl-XFaA-wndSVs
创建卷组
[22:29:39 root@CentOS8 ~]#vgcreate vg-mysql /dev/sd{c1,b1} #指定PE的大小,默认4M
Volume group "vg-mysql" successfully created
[22:31:59 root@CentOS8 ~]#pvdisplay
--- Physical volume ---
PV Name /dev/sdc1
VG Name vg-mysql
PV Size 10.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2559
Free PE 2559
Allocated PE 0
PV UUID qRaOek-C0gf-KuT3-IhfY-f3Xt-D0dC-W81yQ7
--- Physical volume ---
PV Name /dev/sdb1
VG Name vg-mysql
PV Size 5.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 1279
Free PE 1279
Allocated PE 0
PV UUID k5f7Bs-O6jl-ynOa-TgXF-Ra1R-OGwO-hd809Z
#示例
[22:29:39 root@CentOS8 ~]#vgcreate -s 16M vg-mysql /dev/sd{c1,b1} #指定PE的大小,默认4M
Volume group "vg-mysql" successfully created
[22:35:59 root@CentOS8 ~]#vgdisplay
--- Volume group ---
VG Name vg-mysql
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 <14.97 GiB
PE Size 16.00 MiB
Total PE 958
Alloc PE / Size 0 / 0
Free PE / Size 958 / <14.97 GiB
VG UUID acypKz-Q2FF-CGIG-QOxI-w0qu-ih4Q-QeZIND
增加新的卷组
[23:39:54 root@CentOS8 ~]#vgextend vg-mysql /dev/sdb2
Volume group "vg-mysql" successfully extended
[23:42:00 root@CentOS8 ~]#vgdisplay
--- Volume group ---
VG Name vg-mysql
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 3
Act PV 3
VG Size <29.99 GiB
PE Size 4.00 MiB
Total PE 7677
Alloc PE / Size 3838 / 14.99 GiB
Free PE / Size 3839 / <15.00 GiB
VG UUID dMqqSq-Few5-kaTY-PnTA-w7Yx-At8J-zGwtrt
删除卷组
- 先做pvmove
- 再做vgremove
[01:46:55 root@CentOS8 ~]#vgremove vg-mysql
Volume group "vg-mysql" successfully removed
4.2.3 lv管理工具
显示逻辑卷
[22:41:41 root@CentOS8 ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Conver mysql vg-mysql -wi-a----- 1.00g
[22:41:53 root@CentOS8 ~]#lvdisplay
--- Logical volume ---
LV Path /dev/vg-mysql/mysql
LV Name mysql
VG Name vg-mysql
LV UUID U0GvVM-sfGm-gvF0-LUCi-7uck-sbMz-pBtDs3
LV Write Access read/write
LV Creation host, time CentOS8.magedu.org.41, 2022-12-02 22:41:41 +0800
LV Status available
# open 0
LV Size 1.00 GiB
Current LE 256
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:4
[22:50:19 root@CentOS8 ~]#lvdisplay
--- Logical volume ---
LV Path /dev/vg-mysql/log
LV Name log
VG Name vg-mysql
LV UUID DiX6Yd-1mdJ-LDhM-Ffs4-jjE7-i0l1-atEo2d
LV Write Access read/write
LV Creation host, time CentOS8.magedu.org.41, 2022-12-02 22:50:19 +0800
LV Status available
# open 0
LV Size 1.95 GiB
Current LE 500
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:5
创建逻辑卷
22:41:29 root@CentOS8 ~]#lvcreate -n mysql -L 1G vg-mysql
Logical volume "mysql" created.
[22:49:11 root@CentOS8 ~]#lvcreate -n log -l 500 vg-mysql
Logical volume "log" created.
范例:
lvcreate -l 60%VG -n mylv testvg
lvcreate -l 100%FREE -n yourlv testvg
删除逻辑卷
[01:41:11 root@CentOS8 ~]#lvremove /dev/vg-mysql/mysql
Do you really want to remove active logical volume vg-mysql/mysql? [y/n]: y
Logical volume "mysql" successfully removed.
[01:41:32 root@CentOS8 ~]#lvremove /dev/vg-mysql/log
Do you really want to remove active logical volume vg-mysql/log? [y/n]: y
Logical volume "log" successfully removed.
重设文件系统大小
fsadm [options] resize device [new_size[BKMGTEP]]
resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
xfs_growfs /mountpoint
范例:
[22:52:38 root@CentOS8 ~]#mkfs.ext4 /dev/vg-mysql/mysql
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: 25902095-6ce7-4732-9ccc-70aa2dde4895
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
[22:52:58 root@CentOS8 ~]#blki
blkid blkiomon
[22:52:58 root@CentOS8 ~]#blkid
/dev/sda1: UUID="7f2a69c1-44ed-4abc-b98b-970bdd6109be" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="6943c498-01"
/dev/sda2: UUID="GVaWkZ-RiPu-fpWQ-VEiY-wxqK-jC3s-tTcLdr" TYPE="LVM2_member" PARTUUID="6943c498-02"
/dev/sdb1: UUID="k5f7Bs-O6jl-ynOa-TgXF-Ra1R-OGwO-hd809Z" TYPE="LVM2_member" PARTUUID="1f1731aa-01"
/dev/sdc1: UUID="qRaOek-C0gf-KuT3-IhfY-f3Xt-D0dC-W81yQ7" TYPE="LVM2_member" PARTLABEL="Linux LVM" PARTUUID="4f4de205-bb83-4f70-84f7-939be8d89e81"
/dev/sdd1: LABEL="TEST" UUID="5a1d73aa-87a5-4ed3-a8cb-67da82281678" BLOCK_SIZE="2048" TYPE="ext4" PARTUUID="c4be196b-01"
/dev/sr0: BLOCK_SIZE="2048" UUID="2021-11-13-01-04-26-00" LABEL="CentOS-8-5-2111-x86_64-dvd" TYPE="iso9660" PTUUID="5fb10f71" PTTYPE="dos"
/dev/mapper/cl-root: UUID="4b51fc2f-594e-47e4-abda-37783b1bdf63" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/cl-swap: UUID="060d175f-b794-4b8c-b28b-39c74e22a126" TYPE="swap"
/dev/mapper/cl-home: UUID="1c4060f4-a57f-4ee2-967c-ee02508fe07e" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/cl-data: UUID="4283420e-289e-4928-980e-2cbf18ae8450" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/vg--mysql-mysql: UUID="25902095-6ce7-4732-9ccc-70aa2dde4895" BLOCK_SIZE="4096" TYPE="ext4"
[22:53:07 root@CentOS8 ~]#vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Nov 20 09:32:28 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=4b51fc2f-594e-47e4-abda-37783b1bdf63 / xfs defaults 0 0
UUID=7f2a69c1-44ed-4abc-b98b-970bdd6109be /boot xfs defaults 0 0
UUID=4283420e-289e-4928-980e-2cbf18ae8450 /data xfs defaults 0 0
UUID=1c4060f4-a57f-4ee2-967c-ee02508fe07e /home xfs defaults 0 0
UUID=060d175f-b794-4b8c-b28b-39c74e22a126 none swap defaults 0 0
#UUID=224332d1-64c7-4cbb-a3b7-a472ffb825d5 /sdb5 xfs defaults 0 0
#UUID=92bdf831-2aff-44c5-a6d4-28310dfebe58 /sdb1 ext4 defaults 0 0
UUID=25902095-6ce7-4732-9ccc-70aa2dde4895 /mysql ext4 defaults 0 0
UUID=2021-11-13-01-04-26-00 /mnt iso9660 defaults 0 0
UUID=8775eea9-bb7a-48f0-94ba-dd12edbfe8ed none swap pri=100 0 0
UUID=5a1d73aa-87a5-4ed3-a8cb-67da82281678 /test ext4 defaults 0 0
[22:55:13 root@CentOS8 ~]#mkdir /mysql
[22:55:24 root@CentOS8 ~]#mount -a
[22:55:32 root@CentOS8 ~]#dd if=/dev/zero of=/mysql/test.img bs=1M count=800
#清除缓存
[23:01:14 root@CentOS8 ~]#find /proc/ -name "drop*"
[23:01:20 root@CentOS8 ~]#cat /proc/sys/vm/drop_caches
0
[23:01:35 root@CentOS8 ~]#echo 3 > /proc/sys/vm/drop_caches
[23:01:49 root@CentOS8 ~]#dd if=/dev/zero of=/mysql/test.img bs=1M count=800
800+0 records in
800+0 records out
838860800 bytes (839 MB, 800 MiB) copied, 0.565186 s, 1.5 GB/s
[23:11:45 root@CentOS8 ~]#mkfs.xfs /dev/vg-mysql/log
meta-data=/dev/vg-mysql/log isize=512 agcount=4, agsize=128000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=512000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
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
[23:13:40 root@CentOS8 ~]#blkid
/dev/sda1: UUID="7f2a69c1-44ed-4abc-b98b-970bdd6109be" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="6943c498-01"
/dev/sda2: UUID="GVaWkZ-RiPu-fpWQ-VEiY-wxqK-jC3s-tTcLdr" TYPE="LVM2_member" PARTUUID="6943c498-02"
/dev/sdb1: UUID="k5f7Bs-O6jl-ynOa-TgXF-Ra1R-OGwO-hd809Z" TYPE="LVM2_member" PARTUUID="1f1731aa-01"
/dev/sdc1: UUID="qRaOek-C0gf-KuT3-IhfY-f3Xt-D0dC-W81yQ7" TYPE="LVM2_member" PARTLABEL="Linux LVM" PARTUUID="4f4de205-bb83-4f70-84f7-939be8d89e81"
/dev/sdd1: LABEL="TEST" UUID="5a1d73aa-87a5-4ed3-a8cb-67da82281678" BLOCK_SIZE="2048" TYPE="ext4" PARTUUID="c4be196b-01"
/dev/sr0: BLOCK_SIZE="2048" UUID="2021-11-13-01-04-26-00" LABEL="CentOS-8-5-2111-x86_64-dvd" TYPE="iso9660" PTUUID="5fb10f71" PTTYPE="dos"
/dev/mapper/cl-root: UUID="4b51fc2f-594e-47e4-abda-37783b1bdf63" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/cl-swap: UUID="060d175f-b794-4b8c-b28b-39c74e22a126" TYPE="swap"
/dev/mapper/cl-home: UUID="1c4060f4-a57f-4ee2-967c-ee02508fe07e" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/cl-data: UUID="4283420e-289e-4928-980e-2cbf18ae8450" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/vg--mysql-mysql: UUID="25902095-6ce7-4732-9ccc-70aa2dde4895" BLOCK_SIZE="4096" TYPE="ext4"
/dev/mapper/vg--mysql-log: UUID="e408e722-4f8c-4949-88a4-dc7f6fa1cbdd" BLOCK_SIZE="512" TYPE="xfs"
[23:15:52 root@CentOS8 ~]#vim /etc/fstab
Press ENTER or type command to continue
UUID=7f2a69c1-44ed-4abc-b98b-970bdd6109be /boot xfs defaults 0 0
UUID=4283420e-289e-4928-980e-2cbf18ae8450 /data xfs defaults 0 0
UUID=1c4060f4-a57f-4ee2-967c-ee02508fe07e /home xfs defaults 0 0
UUID=060d175f-b794-4b8c-b28b-39c74e22a126 none swap defaults 0 0
#UUID=224332d1-64c7-4cbb-a3b7-a472ffb825d5 /sdb5 xfs defaults 0 0
#UUID=92bdf831-2aff-44c5-a6d4-28310dfebe58 /sdb1 ext4 defaults 0 0
UUID=25902095-6ce7-4732-9ccc-70aa2dde4895 /mysql ext4 defaults 0 0
UUID=2021-11-13-01-04-26-00 /mnt iso9660 defaults 0 0
UUID=8775eea9-bb7a-48f0-94ba-dd12edbfe8ed none swap pri=100 0 0
UUID=5a1d73aa-87a5-4ed3-a8cb-67da82281678 /test ext4 defaults 0 0
UUID=e408e722-4f8c-4949-88a4-dc7f6fa1cbdd /log xfs defaults 0 0 [23:17:37 root@CentOS8 ~]#mkdir /log
[23:17:52 root@CentOS8 ~]#mount -a
[23:17:58 root@CentOS8 ~]#df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 442M 0 442M 0% /dev
tmpfs 471M 0 471M 0% /dev/shm
tmpfs 471M 7.3M 464M 2% /run
tmpfs 471M 0 471M 0% /sys/fs/cgroup
/dev/mapper/cl-root 127G 8.3G 119G 7% /
/dev/sr0 11G 11G 0 100% /mnt
/dev/sdd1 2.0G 9.1M 2.0G 1% /test
/dev/mapper/cl-home 20G 176M 20G 1% /home
/dev/mapper/cl-data 50G 12G 39G 23% /data
/dev/sda1 1014M 233M 782M 23% /boot
tmpfs 95M 12K 95M 1% /run/user/42
tmpfs 95M 0 95M 0% /run/user/0
/dev/mapper/vg--mysql-mysql 976M 803M 107M 89% /mysql
/dev/mapper/vg--mysql-log 2.0G 47M 1.9G 3% /log
4.2.4 扩展和缩减逻辑卷
4.2.4.1 在线扩展逻辑卷
#两步实现
#第一步实现逻辑卷的空间扩展
[23:21:08 root@CentOS8 ~]#lvextend -l +50%free /dev/vg-mysql/mysql
Size of logical volume vg-mysql/mysql changed from 1.00 GiB (256 extents) to <7.02 GiB (1797 extents).
Logical volume vg-mysql/mysql successfully resized.
[23:22:38 root@CentOS8 ~]#lvdisplay
--- Logical volume ---
LV Path /dev/vg-mysql/mysql
LV Name mysql
VG Name vg-mysql
LV UUID U0GvVM-sfGm-gvF0-LUCi-7uck-sbMz-pBtDs3
LV Write Access read/write
LV Creation host, time CentOS8.magedu.org.41, 2022-12-02 22:41:41 +0800
LV Status available
# open 1
LV Size <7.02 GiB
Current LE 1797
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:4
#第二步实现文件系统的扩展
#针对ext
[23:25:03 root@CentOS8 ~]#resize2fs /dev/vg-mysql/mysql
resize2fs 1.45.6 (20-Mar-2020)
Filesystem at /dev/vg-mysql/mysql is mounted on /mysql; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vg-mysql/mysql is now 1840128 (4k) blocks long.
[23:26:26 root@CentOS8 ~]#df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 442M 0 442M 0% /dev
tmpfs tmpfs 471M 0 471M 0% /dev/shm
tmpfs tmpfs 471M 7.3M 464M 2% /run
tmpfs tmpfs 471M 0 471M 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 127G 8.3G 119G 7% /
/dev/sr0 iso9660 11G 11G 0 100% /mnt
/dev/sdd1 ext4 2.0G 9.1M 2.0G 1% /test
/dev/mapper/cl-home xfs 20G 176M 20G 1% /home
/dev/mapper/cl-data xfs 50G 12G 39G 23% /data
/dev/sda1 xfs 1014M 233M 782M 23% /boot
tmpfs tmpfs 95M 12K 95M 1% /run/user/42
tmpfs tmpfs 95M 0 95M 0% /run/user/0
/dev/mapper/vg--mysql-mysql ext4 6.9G 805M 5.8G 12% /mysql
/dev/mapper/vg--mysql-log xfs 2.0G 47M 1.9G 3% /log
#不用更新文件系统直接扩容
lvextend -r -l +100%free /dev/vg-mysql/mysql
[23:33:10 root@CentOS8 ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Conver log vg-mysql -wi-ao---- 2.95g
mysql vg-mysql -wi-ao---- <12.04g
[23:35:09 root@CentOS8 ~]#vgs
VG #PV #LV #SN Attr VSize VFree
cl 1 4 0 wz--n- <199.00g 4.00m
vg-mysql 2 2 0 wz--n- 14.99g 0
[23:35:13 root@CentOS8 ~]#df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 442M 0 442M 0% /dev
tmpfs tmpfs 471M 0 471M 0% /dev/shm
tmpfs tmpfs 471M 7.3M 464M 2% /run
tmpfs tmpfs 471M 0 471M 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 127G 8.3G 119G 7% /
/dev/sr0 iso9660 11G 11G 0 100% /mnt
/dev/sdd1 ext4 2.0G 9.1M 2.0G 1% /test
/dev/mapper/cl-home xfs 20G 176M 20G 1% /home
/dev/mapper/cl-data xfs 50G 12G 39G 23% /data
/dev/sda1 xfs 1014M 233M 782M 23% /boot
tmpfs tmpfs 95M 12K 95M 1% /run/user/42
tmpfs tmpfs 95M 0 95M 0% /run/user/0
/dev/mapper/vg--mysql-mysql ext4 12G 805M 11G 7% /mysql
/dev/mapper/vg--mysql-log xfs 3.0G 54M 2.9G 2% /log
xfs文件系统在线扩容
#第一步实现逻辑卷的空间扩展
[23:26:35 root@CentOS8 ~]#lvextend -L +1G /dev/vg-mysql/log
Size of logical volume vg-mysql/log changed from 1.95 GiB (500 extents) to 2.95 GiB (756 extents).
Logical volume vg-mysql/log successfully resized.
[23:28:30 root@CentOS8 ~]#df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 442M 0 442M 0% /dev
tmpfs tmpfs 471M 0 471M 0% /dev/shm
tmpfs tmpfs 471M 7.3M 464M 2% /run
tmpfs tmpfs 471M 0 471M 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 127G 8.3G 119G 7% /
/dev/sr0 iso9660 11G 11G 0 100% /mnt
/dev/sdd1 ext4 2.0G 9.1M 2.0G 1% /test
/dev/mapper/cl-home xfs 20G 176M 20G 1% /home
/dev/mapper/cl-data xfs 50G 12G 39G 23% /data
/dev/sda1 xfs 1014M 233M 782M 23% /boot
tmpfs tmpfs 95M 12K 95M 1% /run/user/42
tmpfs tmpfs 95M 0 95M 0% /run/user/0
/dev/mapper/vg--mysql-mysql ext4 6.9G 805M 5.8G 12% /mysql
/dev/mapper/vg--mysql-log xfs 2.0G 47M 1.9G 3% /log
#第二步实现文件系统的扩展
[23:28:43 root@CentOS8 ~]#xfs_growfs /dev/vg-mysql/log
meta-data=/dev/mapper/vg--mysql-log isize=512 agcount=4, agsize=128000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=512000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
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
data blocks changed from 512000 to 774144
[23:29:09 root@CentOS8 ~]#df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 442M 0 442M 0% /dev
tmpfs 471M 0 471M 0% /dev/shm
tmpfs 471M 7.3M 464M 2% /run
tmpfs 471M 0 471M 0% /sys/fs/cgroup
/dev/mapper/cl-root 127G 8.3G 119G 7% /
/dev/sr0 11G 11G 0 100% /mnt
/dev/sdd1 2.0G 9.1M 2.0G 1% /test
/dev/mapper/cl-home 20G 176M 20G 1% /home
/dev/mapper/cl-data 50G 12G 39G 23% /data
/dev/sda1 1014M 233M 782M 23% /boot
tmpfs 95M 12K 95M 1% /run/user/42
tmpfs 95M 0 95M 0% /run/user/0
/dev/mapper/vg--mysql-mysql 6.9G 805M 5.8G 12% /mysql
/dev/mapper/vg--mysql-log 3.0G 54M 2.9G 2% /log
4.2.4.2 缩减逻辑卷
注意:缩减有数据损坏的风险,建议先备份再缩减,xfs文件系统不支持缩减
[23:48:56 root@CentOS8 ~]#\cp -a /etc/* /mysql/ #拷贝测试文件
[23:49:41 root@CentOS8 ~]#umount /mysql
[23:53:49 root@CentOS8 ~]#fsck -f /dev/vg-mysql/mysql #fsck -f 等价于e2fsck -f
[23:54:18 root@CentOS8 ~]#resize2fs /dev/vg-mysql/mysql 2G
[23:56:22 root@CentOS8 ~]#lvreduce -L 2G /dev/vg-mysql/mysql .
[23:57:29 root@CentOS8 ~]#mount -a
[23:57:42 root@CentOS8 ~]#df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 442M 0 442M 0% /dev
tmpfs 471M 0 471M 0% /dev/shm
tmpfs 471M 7.3M 464M 2% /run
tmpfs 471M 0 471M 0% /sys/fs/cgroup
/dev/mapper/cl-root 127G 8.3G 119G 7% /
/dev/sr0 11G 11G 0 100% /mnt
/dev/sdd1 2.0G 9.1M 2.0G 1% /test
/dev/mapper/cl-home 20G 176M 20G 1% /home
/dev/mapper/cl-data 50G 12G 39G 23% /data
/dev/sda1 1014M 233M 782M 23% /boot
tmpfs 95M 12K 95M 1% /run/user/42
tmpfs 95M 0 95M 0% /run/user/0
/dev/mapper/vg--mysql-log 3.0G 54M 2.9G 2% /log
/dev/mapper/vg--mysql-mysql 2.0G 840M 1.1G 45% /mysql
#缩减1个G看能不能挂载
[23:59:27 root@CentOS8 ~]#umount /mysql
[23:59:32 root@CentOS8 ~]#fsck -f /dev/vg-mysql/mysql
fsck from util-linux 2.32.1
e2fsck 1.45.6 (20-Mar-2020)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/vg--mysql-mysql: 2849/131072 files (0.1% non-contiguous), 231327/524288 blocks
[23:59:44 root@CentOS8 ~]#resize2fs /dev/vg-mysql/mysql 1G
resize2fs 1.45.6 (20-Mar-2020)
resize2fs: New size smaller than minimum (428769)
[00:00:16 root@CentOS8 ~]#lvreduce -L 1G /dev/vg-mysql/mysql
WARNING: Reducing active logical volume to 1.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg-mysql/mysql? [y/n]: y
Size of logical volume vg-mysql/mysql changed from 2.00 GiB (512 extents) to 1.00 GiB (256 extents).
Logical volume vg-mysql/mysql successfully resized.
[00:00:48 root@CentOS8 ~]#mount -a
mount: /mysql: wrong fs type, bad option, bad superblock on /dev/mapper/vg--mysql-mysql, missing codepage or helper program, or other error.
范例:
[root@centos8 ~]#blkid /dev/vg0/mysql
/dev/vg0/mysql: UUID="94674607-2196-4015-9194-4632ac23f36a" TYPE="ext4"
[root@centos8 ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mysql vg0 -wi-a----- 2.99g
[root@centos8 ~]#df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 391676 0 391676 0% /dev
tmpfs 408092 0 408092 0% /dev/shm
tmpfs 408092 5792 402300 2% /run
tmpfs 408092 0 408092 0% /sys/fs/cgroup
/dev/sda2 104806400 2274504 102531896 3% /
/dev/sda3 52403200 398576 52004624 1% /data
/dev/sda1 999320 130848 799660 15% /boot
tmpfs 81616 0 81616 0% /run/user/0
/dev/mapper/vg0-mysql 3022704 9204 2840240 1% /data/mysql
#第一步
[root@centos8 ~]#umount /data/mysql
[root@centos8 ~]#resize2fs /dev/vg0/mysql 1G
resize2fs 1.44.6 (5-Mar-2019)
Please run 'e2fsck -f /dev/vg0/mysql' first.
#第二步
[root@centos8 ~]#fsck -f /dev/vg0/mysql
fsck from util-linux 2.32.1
e2fsck 1.44.6 (5-Mar-2019)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/vg0-mysql: 14/196224 files (0.0% non-contiguous), 31009/784384
blocks
#第三步
[root@centos8 ~]#resize2fs /dev/vg0/mysql 1G
resize2fs 1.44.6 (5-Mar-2019)
Resizing the filesystem on /dev/vg0/mysql to 262144 (4k) blocks.
The filesystem on /dev/vg0/mysql is now 262144 (4k) blocks long.
[root@centos8 ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mysql vg0 -wi-a----- 2.99g
[root@centos8 ~]#df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 391676 0 391676 0% /dev
tmpfs 408092 0 408092 0% /dev/shm
tmpfs 408092 5792 402300 2% /run
tmpfs 408092 0 408092 0% /sys/fs/cgroup
/dev/sda2 104806400 2274504 102531896 3% /
/dev/sda3 52403200 398576 52004624 1% /data
/dev/sda1 999320 130848 799660 15% /boot
tmpfs 81616 0 81616 0% /run/user/0
[root@centos8 ~]#mount -a
[root@centos8 ~]#df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 391676 0 391676 0% /dev
tmpfs 408092 0 408092 0% /dev/shm
tmpfs 408092 5792 402300 2% /run
tmpfs 408092 0 408092 0% /sys/fs/cgroup
/dev/sda2 104806400 2274504 102531896 3% /
/dev/sda3 52403200 398576 52004624 1% /data
/dev/sda1 999320 130848 799660 15% /boot
tmpfs 81616 0 81616 0% /run/user/0
/dev/mapper/vg0-mysql 966584 7676 890096 1% /data/mysql
[root@centos8 ~]#df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 383M 0 383M 0% /dev
tmpfs 399M 0 399M 0% /dev/shm
tmpfs 399M 5.7M 393M 2% /run
tmpfs 399M 0 399M 0% /sys/fs/cgroup
/dev/sda2 100G 2.2G 98G 3% /
/dev/sda3 50G 390M 50G 1% /data
/dev/sda1 976M 128M 781M 15% /boot
tmpfs 80M 0 80M 0% /run/user/0
/dev/mapper/vg0-mysql 944M 7.5M 870M 1% /data/mysql
[root@centos8 ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mysql vg0 -wi-ao---- 2.99g
[root@centos8 ~]#umount /data/mysql
#第四步
[root@centos8 ~]#lvreduce -L 1G /dev/vg0/mysql
WARNING: Reducing active logical volume to 1.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg0/mysql? [y/n]: y
Size of logical volume vg0/mysql changed from 2.99 GiB (766 extents) to 1.00
GiB (256 extents).
Logical volume vg0/mysql successfully resized.
#第五步
[root@centos8 ~]#mount -a
[root@centos8 ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mysql vg0 -wi-ao---- 1.00g
[root@centos8 ~]#df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 383M 0 383M 0% /dev
tmpfs 399M 0 399M 0% /dev/shm
tmpfs 399M 5.7M 393M 2% /run
tmpfs 399M 0 399M 0% /sys/fs/cgroup
/dev/sda2 100G 2.2G 98G 3% /
/dev/sda3 50G 390M 50G 1% /data
/dev/sda1 976M 128M 781M 15% /boot
tmpfs 80M 0 80M 0% /run/user/0
/dev/mapper/vg0-mysql 944M 7.5M 870M 1% /data/mysql
范例: 缩减XFS文件系统的逻辑卷
#因为XFS文件系统不支持缩减,可以用下面方式缩减
#先备份XFS文件系统数据
[root@centos8 ~]#yum -y install xfsdump
#备份/data挂载点对应的逻辑卷
#注意挂载点后面不要加/,否则会出错:xfsdump: ERROR: /data/ does not identify a file
system
[root@centos8 ~]#xfsdump -f data.img /data
#卸载文件系统
[root@centos8 ~]#umount /data
#缩减逻辑卷
[root@centos8 ~]#lvreduce -L 10G /dev/vg0/lv0
#重新创建文件系统
[root@centos8 ~]#mkfs.xfs -f /dev/vg0/lv0
#重新挂载
[root@centos8 ~]#mount /dev/vg0/lv0 /data
#还原数据
[root@centos8 ~]#xfsrestore -f data.img /data
4.2.5 跨主机迁移卷组
源计算机上
1 在旧系统中,umount 所有卷组上的逻辑卷
2 禁用卷组
vgchange -a n vg0
lvdisplay
3 导出卷组
vgexport vg0
pvscan
vgdisplay
4 拆下旧硬盘在目标计算机上,并导入卷组:
vgimport vg0
5 启用
vgchange -ay vg0
6 mount 所有卷组上的逻辑卷
4.2.6 拆除指定的PV存储设备
[00:05:17 root@CentOS8 ~]#pvdisplay
--- Physical volume ---
PV Name /dev/sdc1
VG Name vg-mysql
PV Size 10.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2559
Free PE 1547
Allocated PE 1012
PV UUID qRaOek-C0gf-KuT3-IhfY-f3Xt-D0dC-W81yQ7
--- Physical volume ---
PV Name /dev/sdb1
VG Name vg-mysql
PV Size 5.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 1279
Free PE 1279
Allocated PE 0
PV UUID k5f7Bs-O6jl-ynOa-TgXF-Ra1R-OGwO-hd809Z
--- Physical volume ---
PV Name /dev/sdb2
VG Name vg-mysql
PV Size 15.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 3839
Free PE 3839
Allocated PE 0
PV UUID jSLjCh-tqSj-6nRp-9Roa-4mCO-Jkdr-8fPS4X
[00:13:24 root@CentOS8 ~]#pvmove /dev/sdc1
/dev/sdc1: Moved: 8.30%
/dev/sdc1: Moved: 25.30%
/dev/sdc1: Moved: 74.70%
/dev/sdc1: Moved: 100.00%
[00:14:35 root@CentOS8 ~]#pvdisplay
--- Physical volume ---
PV Name /dev/sdc1
VG Name vg-mysql
PV Size 10.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2559
Free PE 2559
Allocated PE 0
PV UUID qRaOek-C0gf-KuT3-IhfY-f3Xt-D0dC-W81yQ7
--- Physical volume ---
PV Name /dev/sdb1
VG Name vg-mysql
PV Size 5.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 1279
Free PE 267
Allocated PE 1012
PV UUID k5f7Bs-O6jl-ynOa-TgXF-Ra1R-OGwO-hd809Z
--- Physical volume ---
PV Name /dev/sdb2
VG Name vg-mysql
PV Size 15.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 3839
Free PE 3839
Allocated PE 0
PV UUID jSLjCh-tqSj-6nRp-9Roa-4mCO-Jkdr-8fPS4X
[00:15:37 root@CentOS8 ~]#vgreduce vg-mysql /dev/sdc1
Removed "/dev/sdc1" from volume group "vg-mysql"
[00:16:04 root@CentOS8 ~]#pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 vg-mysql lvm2 a-- <5.00g 1.04g
/dev/sdb2 vg-mysql lvm2 a-- <15.00g <15.00g
/dev/sdc1 lvm2 --- 10.00g 10.00g
[00:16:10 root@CentOS8 ~]#pvremove /dev/sdc1
Labels on physical volume "/dev/sdc1" successfully wiped.
[00:16:37 root@CentOS8 ~]#pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 vg-mysql lvm2 a-- <5.00g 1.04g
/dev/sdb2 vg-mysql lvm2 a-- <15.00g <15.00g
4.3 逻辑卷快照
4.3.1 逻辑卷快照原理
4.3 逻辑卷快照
4.3.1 逻辑卷快照原理

快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝,对于需要备份或者复制的现有数据临时拷贝以及其它操作来说,快照是最合适的选择,快照只有在它们和原来的逻辑卷不同时才会消耗空间,建立快照的卷大小小于等于原始逻辑卷,也可以使用lvextend扩展快照
逻辑卷管理器快照
快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据改动了,则原始数据会被移
动到快照区,没有改动的区域则由快照区和文件系统共享
逻辑卷快照工作原理
- 在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间
- 当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中
- 快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的数据
由于快照区与原本的LV共用很多PE的区块,因此快照与被快照的LV必须在同一个VG中.系统恢复的时候
的文件数量不能高于快照区的实际容量
快照特点:
-
备份速度快,瞬间完
-
应用场景是测试环境,不能完成代替备份
-
快照后,逻辑卷的修改速度会一定有影响
4.3.1 实现逻辑卷快照
范例:
[00:44:30 root@CentOS8 ~]#mount /dev/vg-mysql/mysql /mysql/
[00:44:53 root@CentOS8 ~]#ll /mysql/
total 16
drwx------ 2 root root 16384 Dec 3 00:05 lost+found
[00:44:58 root@CentOS8 ~]#cp /etc/fstab /mysql/f1.txt
[00:45:14 root@CentOS8 ~]#cp /etc/fstab /mysql/f2.txt
[00:45:17 root@CentOS8 ~]#cp /etc/fstab /mysql/f3.txt
#为现有逻辑卷创建快照,注意ext4必须使用-p r 实现只读
[01:08:32 root@CentOS8 ~]#lvcreate -n mysql-snapshon -p r -s -L 100M /dev/vg-mysql/mysql
Logical volume "mysql-snapshon" created.
[00:45:42 root@CentOS8 ~]#lvcreate -s -n mysql-snapshon -L 100M /dev/vg-mysql/mysql
Logical volume "mysql-snapshon" created.
[00:47:04 root@CentOS8 ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data cl -wi-ao---- 50.00g
home cl -wi-ao---- 20.00g
root cl -wi-ao---- 126.90g
swap cl -wi-ao---- <2.09g
log vg-mysql -wi-ao---- 2.95g
mysql vg-mysql owi-aos--- 1.00g
mysql-snapshon vg-mysql swi-a-s--- 100.00m mysql 0.01
#查看快照
[00:47:10 root@CentOS8 ~]#lvdisplay
--- Logical volume ---
LV Path /dev/vg-mysql/mysql-snapshon
LV Name mysql-snapshon
VG Name vg-mysql
LV UUID EtP1xm-XIqZ-8KlK-Qa8s-aY6U-vbgb-fWCwnA
LV Write Access read/write
LV Creation host, time CentOS8.magedu.org.41, 2022-12-03 00:47:04 +0800
LV snapshot status active destination for mysql
LV Status available
# open 0
LV Size 1.00 GiB
Current LE 256
COW-table size 100.00 MiB
COW-table LE 25
Allocated to snapshot 0.01%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:8
[00:51:50 root@CentOS8 ~]#blkid
/dev/sda1: UUID="7f2a69c1-44ed-4abc-b98b-970bdd6109be" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="6943c498-01"
/dev/sda2: UUID="GVaWkZ-RiPu-fpWQ-VEiY-wxqK-jC3s-tTcLdr" TYPE="LVM2_member" PARTUUID="6943c498-02"
/dev/sdb1: UUID="k5f7Bs-O6jl-ynOa-TgXF-Ra1R-OGwO-hd809Z" TYPE="LVM2_member" PARTUUID="1f1731aa-01"
/dev/sdc1: PARTLABEL="Linux LVM" PARTUUID="4f4de205-bb83-4f70-84f7-939be8d89e81"
/dev/sdd1: LABEL="TEST" UUID="5a1d73aa-87a5-4ed3-a8cb-67da82281678" BLOCK_SIZE="2048" TYPE="ext4" PARTUUID="c4be196b-01"
/dev/sr0: BLOCK_SIZE="2048" UUID="2021-11-13-01-04-26-00" LABEL="CentOS-8-5-2111-x86_64-dvd" TYPE="iso9660" PTUUID="5fb10f71" PTTYPE="dos"
/dev/mapper/cl-root: UUID="4b51fc2f-594e-47e4-abda-37783b1bdf63" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/cl-swap: UUID="060d175f-b794-4b8c-b28b-39c74e22a126" TYPE="swap"
/dev/mapper/cl-home: UUID="1c4060f4-a57f-4ee2-967c-ee02508fe07e" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/cl-data: UUID="4283420e-289e-4928-980e-2cbf18ae8450" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/vg--mysql-mysql: UUID="f99f8ef6-e202-49c2-85e9-7fb8ccf2b42e" BLOCK_SIZE="4096" TYPE="ext4"
/dev/mapper/vg--mysql-log: UUID="e408e722-4f8c-4949-88a4-dc7f6fa1cbdd" BLOCK_SIZE="512" TYPE="xfs"
/dev/sdb2: UUID="jSLjCh-tqSj-6nRp-9Roa-4mCO-Jkdr-8fPS4X" TYPE="LVM2_member" PARTUUID="1f1731aa-02"
/dev/mapper/vg--mysql-mysql--snapshon: UUID="f99f8ef6-e202-49c2-85e9-7fb8ccf2b42e" BLOCK_SIZE="4096" TYPE="ext4"
#修改源文件
[00:57:39 root@CentOS8 ~]#rm -rf /mysql/f2.txt
[00:57:57 root@CentOS8 ~]#cat /mysql/f1.txt
UUID=4b51fc2f-594e-47e4-abda-37783b1bdf63 / xfs defaults 0 0
[00:58:22 root@CentOS8 ~]#touch /mysql/f4.txt
[00:58:35 root@CentOS8 ~]#ll /s
sbin/ sdb1/ sdb5/ snap/ srv/ sys/
[00:58:35 root@CentOS8 ~]#ll /snap/
total 28
-rw-r--r-- 1 root root 1348 Dec 3 00:45 f1.txt
-rw-r--r-- 1 root root 1348 Dec 3 00:45 f2.txt
-rw-r--r-- 1 root root 1348 Dec 3 00:45 f3.txt
drwx------ 2 root root 16384 Dec 3 00:05 lost+found
#恢复快照
[01:00:28 root@CentOS8 ~]#lvconvert --merge /dev/vg-mysql/mysql-snapshon
Merging of volume vg-mysql/mysql-snapshon started.
vg-mysql/mysql: Merged: 100.00%
[01:01:38 root@CentOS8 ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data cl -wi-ao---- 50.00g
home cl -wi-ao---- 20.00g
root cl -wi-ao---- 126.90g
swap cl -wi-ao---- <2.09g
log vg-mysql -wi-ao---- 2.95g
mysql vg-mysql -wi-a----- 1.00g
[01:01:47 root@CentOS8 ~]#mount /dev/vg-mysql/mysql /mysql/
[01:02:17 root@CentOS8 ~]#ll /m
media/ mnt/ mysql/
[01:02:17 root@CentOS8 ~]#ll /mysql/
total 28
-rw-r--r-- 1 root root 1348 Dec 3 00:45 f1.txt
-rw-r--r-- 1 root root 1348 Dec 3 00:45 f2.txt
-rw-r--r-- 1 root root 1348 Dec 3 00:45 f3.txt
drwx------ 2 root root 16384 Dec 3 00:05 lost+found
#挂载快照,xfs注意要使用-o ro实现只读,访止快照被修改
mkdir -p /snap
[01:31:30 root@CentOS8 ~]#lvcreate -s -n log-snapshon -L 100M /dev/vg-mysql/log
Logical volume "log-snapshon" created.
[01:32:02 root@CentOS8 ~]#mount -o ro,nouuid /dev/vg-mysql/log-snapshon /snap/
[01:33:58 root@CentOS8 log]#echo mage:x:1000:1000:mage:/home/mage:/bin/bash > f1.txt
[01:34:04 root@CentOS8 log]#rm -rf f
f1.txt f2.txt f3.txt
[01:34:04 root@CentOS8 log]#rm -rf f2.txt
[01:34:14 root@CentOS8 log]#touch d.txt
[01:34:27 root@CentOS8 log]#ll
total 8
-rw-r--r-- 1 root root 0 Dec 3 01:34 d.txt
-rw-r--r-- 1 root root 43 Dec 3 01:34 f1.txt
-rw-r--r-- 1 root root 3150 Dec 3 01:16 f3.txt
xfs文件系统恢复
[01:37:04 root@CentOS8 ~]#umount /log
[01:37:06 root@CentOS8 ~]#umount /snap
[01:37:12 root@CentOS8 ~]#lvconvert --merge /dev/vg-mysql/log-snapshon
Merging of volume vg-mysql/log-snapshon started.
vg-mysql/log: Merged: 100.00%
[01:38:29 root@CentOS8 ~]#mount /dev/vg-mysql/log /log/
[01:39:11 root@CentOS8 ~]#ll /log/
total 12
-rw-r--r-- 1 root root 3150 Dec 3 01:16 f1.txt
-rw-r--r-- 1 root root 3150 Dec 3 01:16 f2.txt
-rw-r--r-- 1 root root 3150 Dec 3 01:16 f3.txt
#恢复快照
umount /dev/vg0/data-snapshot
umount /dev/vg0/data
lvconvert --merge /dev/vg0/data-snapshot
#删除快照
umount /mnt/snap
lvremove /dev/vg0/data-snapshot
练习
1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创
建大小为5G的逻辑卷testlv;挂载至/users目录
[23:53:57 root@CentOS8 ~]#pvcreate /dev/sdb{1..2}
[23:54:26 root@CentOS8 ~]#pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 cl lvm2 a-- <199.00g 4.00m
/dev/sdb1 lvm2 --- 10.00g 10.00g
/dev/sdb2 lvm2 --- 10.00g 10.00g
2.创建vg
23:54:29 root@CentOS8 ~]#vgcreate -s 16M vg-testvg /dev/sdb{1..2}
Volume group "vg-testvg" successfully created
[23:55:48 root@CentOS8 ~]#vgs
VG #PV #LV #SN Attr VSize VFree
cl 1 4 0 wz--n- <199.00g 4.00m
vg-testvg 2 0 0 wz--n- <19.97g <19.97g
[23:55:54 root@CentOS8 ~]#vgdisplay
--- Volume group ---
VG Name vg-testvg
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 <19.97 GiB
PE Size 16.00 MiB
Total PE 1278
Alloc PE / Size 0 / 0
Free PE / Size 1278 / <19.97 GiB
VG UUID pBjYD0-eJh2-bedB-3nXh-BGiw-4T1i-7rfW9V
3.创建lv
[23:58:58 root@CentOS8 ~]#lvcreate -n testlv -L 5G /dev/vg-testvg
Logical volume "testlv" created.
[23:59:16 root@CentOS8 ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data cl -wi-ao---- 50.00g
home cl -wi-ao---- 20.00g
root cl -wi-ao---- 126.90g
swap cl -wi-ao---- <2.09g
testlv vg-testvg -wi-a----- 5.00g
[23:59:22 root@CentOS8 ~]#lvdisplay
--- Logical volume ---
LV Path /dev/vg-testvg/testlv
LV Name testlv
VG Name vg-testvg
LV UUID CeYGg1-HjmX-9xf8-nVNX-sK3t-bHSL-fVxMXh
LV Write Access read/write
LV Creation host, time CentOS8.magedu.org.41, 2022-12-03 23:59:16 +0800
LV Status available
# open 0
LV Size 5.00 GiB
Current LE 320
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:4
创建文件系统挂载
[00:00:18 root@CentOS8 ~]#mkfs.ext4 /dev/vg-testvg/testlv
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 1310720 4k blocks and 327680 inodes
Filesystem UUID: 5b1c325f-a008-4f89-ab77-dd59ea169a91
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
[00:00:35 root@CentOS8 ~]#mkdir /users
[00:01:40 root@CentOS8 ~]#df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 442M 0 442M 0% /dev
tmpfs tmpfs 471M 0 471M 0% /dev/shm
tmpfs tmpfs 471M 7.3M 464M 2% /run
tmpfs tmpfs 471M 0 471M 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 127G 8.3G 119G 7% /
/dev/mapper/cl-data xfs 50G 12G 39G 23% /data
/dev/mapper/cl-home xfs 20G 176M 20G 1% /home
/dev/sr0 iso9660 11G 11G 0 100% /mnt
/dev/sda1 xfs 1014M 233M 782M 23% /boot
tmpfs tmpfs 95M 12K 95M 1% /run/user/42
tmpfs tmpfs 95M 0 95M 0% /run/user/0
/dev/mapper/vg--testvg-testlv ext4 4.9G 20M 4.6G 1% /users
2、 新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复
制/etc/pam.d目录至自己的家目录
[00:48:25 root@CentOS8 ~]#useradd -d /users/archlinux archlinux
[00:48:37 root@CentOS8 ~]#su - archlinux
[00:49:31 archlinux@CentOS8 ~]$cp -r /etc/pam.d/ /users/archlinux/
[00:49:39 archlinux@CentOS8 ~]$ll
total 4
drwxr-xr-x 2 archlinux archlinux 4096 Dec 4 00:49 pam.d
3、扩展testlv至7G,要求archlinux用户的文件不能丢失
[00:52:32 root@CentOS8 ~]#lvextend -L +7G /dev/vg-testvg/testlv
Size of logical volume vg-testvg/testlv changed from 5.00 GiB (320 extents) to 12.00 GiB (768 extents).
Logical volume vg-testvg/testlv successfully resized.
[00:53:22 root@CentOS8 ~]#resize2fs /dev/vg-testvg/testlv
resize2fs 1.45.6 (20-Mar-2020)
Filesystem at /dev/vg-testvg/testlv is mounted on /users; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/vg-testvg/testlv is now 3145728 (4k) blocks long.
[00:54:44 root@CentOS8 ~]#df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 442M 0 442M 0% /dev
tmpfs tmpfs 471M 0 471M 0% /dev/shm
tmpfs tmpfs 471M 7.3M 464M 2% /run
tmpfs tmpfs 471M 0 471M 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 127G 8.3G 119G 7% /
/dev/mapper/cl-data xfs 50G 12G 39G 23% /data
/dev/mapper/cl-home xfs 20G 176M 20G 1% /home
/dev/sda1 xfs 1014M 233M 782M 23% /boot
/dev/sr0 iso9660 11G 11G 0 100% /mnt
tmpfs tmpfs 95M 12K 95M 1% /run/user/42
tmpfs tmpfs 95M 0 95M 0% /run/user/0
/dev/mapper/vg--testvg-testlv ext4 12G 26M 12G 1% /users
4、收缩testlv至3G,要求archlinux用户的文件不能丢失
[00:59:58 root@CentOS8 ~]#fsck -f /dev/vg-testvg/testlv
fsck from util-linux 2.32.1
e2fsck 1.45.6 (20-Mar-2020)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/vg--testvg-testlv: 63/786432 files (0.0% non-contiguous), 72190/3145728 blocks
[01:00:41 root@CentOS8 ~]#resize2fs /dev/vg-testvg/testlv 3G
resize2fs 1.45.6 (20-Mar-2020)
Resizing the filesystem on /dev/vg-testvg/testlv to 786432 (4k) blocks.
The filesystem on /dev/vg-testvg/testlv is now 786432 (4k) blocks long.
[01:01:41 root@CentOS8 ~]#lv
[01:01:41 root@CentOS8 ~]#lvreduce -L 3G /dev/vg-testvg/testlv
WARNING: Reducing active logical volume to 3.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg-testvg/testlv? [y/n]: y
Size of logical volume vg-testvg/testlv changed from 12.00 GiB (768 extents) to 3.00 GiB (192 extents).
Logical volume vg-testvg/testlv successfully resized.
[01:02:46 root@CentOS8 ~]#mount -a
[01:02:58 root@CentOS8 ~]#df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 442M 0 442M 0% /dev
tmpfs tmpfs 471M 0 471M 0% /dev/shm
tmpfs tmpfs 471M 7.3M 464M 2% /run
tmpfs tmpfs 471M 0 471M 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 127G 8.3G 119G 7% /
/dev/mapper/cl-data xfs 50G 12G 39G 23% /data
/dev/mapper/cl-home xfs 20G 176M 20G 1% /home
/dev/sda1 xfs 1014M 233M 782M 23% /boot
/dev/sr0 iso9660 11G 11G 0 100% /mnt
tmpfs tmpfs 95M 12K 95M 1% /run/user/42
tmpfs tmpfs 95M 0 95M 0% /run/user/0
/dev/mapper/vg--testvg-testlv ext4 2.9G 16M 2.8G 1% /users
5、对testlv创建快照,并尝试基于快照备份数据,验证快照的功能
20:27:08 root@CentOS8 ~]#lvcreate -n testlv-snapshon -s -L 100M -p r /dev/vg-testvg/testlv
Rounding up size to full physical extent 112.00 MiB
Logical volume "testlv-snapshon" created.
[20:27:14 root@CentOS8 ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data cl -wi-ao---- 50.00g
home cl -wi-ao---- 20.00g
root cl -wi-ao---- 126.90g
swap cl -wi-ao---- <2.09g
testlv vg-testvg owi-aos--- 5.00g
testlv-snapshon vg-testvg sri-a-s--- 112.00m testlv 0.01
[20:27:18 root@CentOS8 ~]#mount /dev/vg-testvg/testlv-snapshon /snap/
mount: /snap: WARNING: device write-protected, mounted read-only.
[20:27:46 root@CentOS8 ~]#df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 442M 0 442M 0% /dev
tmpfs 471M 0 471M 0% /dev/shm
tmpfs 471M 7.3M 464M 2% /run
tmpfs 471M 0 471M 0% /sys/fs/cgroup
/dev/mapper/cl-root 127G 8.5G 119G 7% /
/dev/mapper/cl-data 50G 12G 39G 23% /data
/dev/mapper/cl-home 20G 176M 20G 1% /home
/dev/sda1 1014M 233M 782M 23% /boot
/dev/sr0 11G 11G 0 100% /mnt
tmpfs 95M 12K 95M 1% /run/user/42
tmpfs 95M 0 95M 0% /run/user/0
/dev/mapper/vg--testvg-testlv 4.9G 21M 4.6G 1% /users
/dev/mapper/vg--testvg-testlv--snapshon 4.9G 21M 4.6G 1% /snap
[20:27:55 root@CentOS8 ~]#rm -rf /users/b.txt
[20:28:08 root@CentOS8 ~]#touch /users/e.txt
[20:28:14 root@CentOS8 ~]#touch /users/w.txt
[20:28:22 root@CentOS8 ~]#ll /users/
total 20
drwx------ 3 archlinux archlinux 4096 Dec 4 20:20 archlinux
-rw-r--r-- 1 root root 0 Dec 4 20:20 a.txt
-rw-r--r-- 1 root root 0 Dec 4 20:20 c.txt
-rw-r--r-- 1 root root 0 Dec 4 20:28 e.txt
drwx------ 2 root root 16384 Dec 4 20:19 lost+found
-rw-r--r-- 1 root root 0 Dec 4 20:28 w.txt
[20:28:30 root@CentOS8 ~]#ll /snap/
total 20
drwx------ 3 archlinux archlinux 4096 Dec 4 20:20 archlinux
-rw-r--r-- 1 root root 0 Dec 4 20:20 a.txt
-rw-r--r-- 1 root root 0 Dec 4 20:20 b.txt
-rw-r--r-- 1 root root 0 Dec 4 20:20 c.txt
drwx------ 2 root root 16384 Dec 4 20:19 lost+found
[20:28:41 root@CentOS8 ~]#umount /snap
[20:28:49 root@CentOS8 ~]#umount /users
[20:28:55 root@CentOS8 ~]#df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 442M 0 442M 0% /dev
tmpfs 471M 0 471M 0% /dev/shm
tmpfs 471M 7.3M 464M 2% /run
tmpfs 471M 0 471M 0% /sys/fs/cgroup
/dev/mapper/cl-root 127G 8.5G 119G 7% /
/dev/mapper/cl-data 50G 12G 39G 23% /data
/dev/mapper/cl-home 20G 176M 20G 1% /home
/dev/sda1 1014M 233M 782M 23% /boot
/dev/sr0 11G 11G 0 100% /mnt
tmpfs 95M 12K 95M 1% /run/user/42
tmpfs 95M 0 95M 0% /run/user/0
[20:28:58 root@CentOS8 ~]#lvconvert --merge /dev/vg-testvg/testlv-snapshon
Merging of volume vg-testvg/testlv-snapshon started.
vg-testvg/testlv: Merged: 100.00%
[20:29:30 root@CentOS8 ~]#mount /dev/vg-testvg/testlv /users/
[20:29:42 root@CentOS8 ~]#df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 442M 0 442M 0% /dev
tmpfs 471M 0 471M 0% /dev/shm
tmpfs 471M 7.3M 464M 2% /run
tmpfs 471M 0 471M 0% /sys/fs/cgroup
/dev/mapper/cl-root 127G 8.5G 119G 7% /
/dev/mapper/cl-data 50G 12G 39G 23% /data
/dev/mapper/cl-home 20G 176M 20G 1% /home
/dev/sda1 1014M 233M 782M 23% /boot
/dev/sr0 11G 11G 0 100% /mnt
tmpfs 95M 12K 95M 1% /run/user/42
tmpfs 95M 0 95M 0% /run/user/0
/dev/mapper/vg--testvg-testlv 4.9G 21M 4.6G 1% /users
[20:29:45 root@CentOS8 ~]#ll /users/
total 20
drwx------ 3 archlinux archlinux 4096 Dec 4 20:20 archlinux
-rw-r--r-- 1 root root 0 Dec 4 20:20 a.txt
-rw-r--r-- 1 root root 0 Dec 4 20:20 b.txt
-rw-r--r-- 1 root root 0 Dec 4 20:20 c.txt
drwx------ 2 root root 16384 Dec 4 20:19 lost+found
[20:29:53 root@CentOS8 ~]#


浙公网安备 33010602011771号