🏆 LVM逻辑卷
⭐️ LVM
LVM 逻辑卷,在企业中,随着企业的发展,数据量也会越来越大,原来数据增大,就需要挂载新的硬盘然后在取做数据迁移,这样不方便且会造成一定的业务损失,采用LVM技术可以实现文件系统跨越不通的磁盘和分区。
安装红帽系统时默认就是以LVM方案进行安装,但是boot分区比较特殊,不能基于LVM创建
linux支持的常见文件系统
Ext3::是一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并 能自动修复数据的不一致与错误。然而,当硬盘容量较大时,所需的修复时间也 会很长,而且也不能百分之百地保证资料不会丢失。
它会把整个磁盘的每个写入 动作的细节都预先记录下来,以便在发生异常宕机后能回溯追踪到被中断的部分, 然后尝试进行修复、
Ext4:Ext3的改进版本,它支持的存储容 量高达 1EB(1EB=1,073,741,824GB),且能够有无限多的子目录。另外,Ext4 文件系 统能够批量分配 block 块,从而极大地提高了读写效率。
XFS:是一种高性能的日志文件系统,他的又是在发生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的 日志功能只用花费极低的计算和存储性能。并且它最大可支持的存储容量为 18EB,
这几乎满足了所有需求
pp: 物理分区,用来存储数据的块设备,可以是分区,磁盘,RAID或者SAN设备
PV: LVM基本存储逻辑块,但和基本物理存储介质(分区、磁盘)比较,包含有LVM相关的管理参数
VG: 卷组是存储池,由一个或多个物理卷组成,一个PV只能分配给一个VG
LV: LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统
PE: 每一个物理卷被花费称为PE的基本单元,是LV的最小存储单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB
LE: 逻辑卷也被划分为被称为LE的课被选址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。设置特定LV选项将会更改此映射。
受内核限制,一个逻辑卷最多只能包含65536个PE,一个PE的大小就决定了逻辑卷的最大容量,4MB的PE最大容量为256G,希望大于256G的逻辑卷,则创建卷组就需要指定更大的PE,也就是PE卷设置更大的MB
比如小明家里想吃馒头但是面粉不够了,于是妈妈从隔壁老王家、老李家、老张家分别借来一些面粉,准备蒸馒头吃。首先需 要把这些面粉(物理卷[PV,Physical Volume])揉成一个大面团(卷组[VG,Volume Group]), 然后再把这个大团面分割成一个个小馒头(逻辑卷[LV,Logical Volume]),而且每个小馒头 的重量必须是每勺面粉(基本单元[PE,Physical Extent])的倍数。
|
查看显示 |
创建 |
删除 |
扩容 |
激活 |
扫描查找 |
LV |
lvdisplay |
lvcreate |
lvremove |
lvextend |
lvchange |
lvscan |
PV |
pvdisplay |
pvcreate |
pvremove |
|
pvchange |
pvscan |
VG |
vgdisplay |
vgcreate |
vgremove |
vgextend |
vgchange |
vgscan |
pvchange -x n [pv卷] pv不可被分配
pvchange -x y [pv卷] pv可被分配
vgchange -ay [vg卷] 激活卷组
vgchange -an [vg卷] 禁用捐助
lvchange -ay [lv卷] 激活逻辑卷
lvchange -an [lv卷] 禁用逻辑卷
lvchange -pr [lv卷] 设置只读
lvchange -prw [lv卷] 设置读写
⭐️ 实验
添加两块硬盘
[root@abc ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
nvme0n1 259:0 0 100G 0 disk
├─nvme0n1p1 259:1 0 300M 0 part /boot
└─nvme0n1p2 259:2 0 99.7G 0 part
├─rhel-root 253:0 0 75.8G 0 lvm /
├─rhel-swap 253:1 0 4G 0 lvm [SWAP]
└─rhel-home 253:2 0 20G 0 lvm /home
nvme0n2 259:3 0 10G 0 disk
nvme0n3 259:4 0 10G 0 disk
扫描除来系统所有的物理卷
pvsan
-e 仅仅显示属于输出卷组的物理卷
-n 仅显示不属于任何卷组的物理卷
[root@abc ~]# pvscan
PV /dev/nvme0n2 VG storage lvm2 [<10.00 GiB / 9.31 GiB free]
PV /dev/nvme0n3 VG storage lvm2 [<10.00 GiB / <10.00 GiB free]
PV /dev/nvme0n1p2 VG rhel lvm2 [99.70 GiB / 0 free]
Total: 3 [<119.70 GiB] / in use: 3 [<119.70 GiB] / in no VG: 0 [0 ]
按照顺序优先创建PV卷 pvcreate命令创建
[root@abc ~]# pvcreate /dev/nvme0n2 /dev/nvme0n3
Physical volume "/dev/nvme0n2" successfully created.
Physical volume "/dev/nvme0n3" successfully created.
查看已经创建的卷 pvdisplay
[root@abc ~]# pvdisplay
"/dev/nvme0n2" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/nvme0n2
VG Name
PV Size 10.00 GiB ##PV大小
Allocatable NO ##该pv能不能分给LV
PE Size 0 ##PE的大小
Total PE 0 ##PE的总数
Free PE 0 ##PE可分配数
Allocated PE 0 ##分配PE数
PV UUID MnKdcO-CTjQ-35Gp-T9qu-ICYm-UXly-MUO1wI
"/dev/nvme0n3" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/nvme0n3
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID LRX2Bn-3QAT-b3PC-Y7HZ-zJU2-0EZ7-719YRt
创建storage VG卷并把刚刚创建的两个PV卷加入到VG卷中
-l 卷组上允许创建最大逻辑卷数
-s 是指定PE的大小
-p 卷组中允许添加的最大物理卷数
[root@abc ~]# vgcreate storage /dev/nvme0n2 /dev/nvme0n3
Volume group "storage" successfully created
[root@abc ~]# vgdisplay
--- 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 19.99 GiB
PE Size 4.00 MiB
Total PE 5118
Alloc PE / Size 0 / 0
Free PE / Size 5118 / 19.99 GiB
VG UUID fvbHCf-Il4B-s1k6-ftrM-seGs-S3Vn-ujrlz
创建LV lvcrate
-n LV卷名
-L lv卷大小
-l 指定PE数量
[root@abc ~]# lvcreate -n vo -L 500MB storage
Logical volume "vo" created.
[root@abc ~]# lvdisplay
--- Logical volume ---
LV Path /dev/storage/vo
LV Name vo
VG Name storage
LV UUID vt3q8l-k5oq-8jat-2lcC-34SY-LZNJ-Tr608T
LV Write Access read/write
LV Creation host, time abc.com, 2022-09-12 01:28:09 -0400
LV Status available
# open 0
LV Size 500.00 MiB
Current LE 125
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
创建好的LV卷在 /dev/[VG卷名]/[LV卷名] 内
格式化逻辑卷,创建挂载目录将其挂载
[root@abc ~]# mkfs.ext4 /dev/storage/vo
[root@abc ~]# mkdir /LVM
⭐️ 扩展/缩小逻辑卷
如果一个逻辑卷不够用了,我们还可以给它扩展,扩展前需要将挂载的LVM卷取消挂载
lvextend 扩展逻辑卷
-L 指定逻辑卷大小
[root@abc ~]# umount /LVM
[root@abc ~]# lvextend -L 600MB /dev/storage/vo
[root@abc ~]# mount /dev/storage/vo /LVM/
使用e2fsck -f 命令来检查文件完整性
[root@abc ~]# e2fsck -f /dev/storage/vo
重启空间,如果时ext4文件系统使用 resize2fs命令来重置,如果是xfs就需要使用xfs_growfs,应为你的逻辑卷之前格式化有400MB现在你扩大到了600MB,但是只是LV卷扩大了,你的文件系统还停留在之前的400MB中,这时候你就需要用到文件系统重置更新了,其实格式化也可以解决但是,格式化危险程度高
[root@abc ~]# resize2fs /dev/storage/vo
收缩 -- XFS文件系统不支持缩小的
lvreduce
-L LV卷指定大小
[root@abc ~]# umount /dev/storage/vo
缩小逻辑卷
[root@abc ~]# lvreduce -L 500MB /dev/storage/vo
[root@abc ~]# e2fsck -f /dev/storage/vo
缩小文件系统
[root@abc ~]# resize2fs -L 500MB /dev/storage/vo
⭐️ LVM快照
LVM还具备快照卷的功能,该功能类似与虚拟机的还原时间点的功能。lvm快照卷有两个特点:
快照卷的容量必须同等与逻辑卷的容量;
快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除。
使用 -s 操作生成一个快照卷,-L 填写要创建快照的逻辑卷多大这里就填多大,在加上-n SNAP快照命令格式为
lvcreate -L [大小] -s -n SNAP [逻辑卷设备]
用SNAP快照,快照在你dev中你创建的卷组的目录中
使用要先卸载挂载,使用快照格式为
lvconvert --merge [快照]
⭐️ 数据迁移PV
1.先卸载逻辑卷
2.umount [lv]
3.禁用卷组
4.vgchange -an [vg]
5.创建新的PV加入到vg中
6.使用pvs -o +pv_used 查看使用度
7.使用pvmove命令
-n 指定逻辑卷的名称
-b 后台允许
-i 几秒打印一次信息
8.pvmove -n [逻辑卷] [设备1] [设备2]
9.迁移完成再次在查看pvs -o +pv_used
9.使用 vgreduce命令移除损坏的盘
⭐️ 条带盘和镜像盘
镜像盘是基于LE和PE的映射关系,如果不做镜像盘那么LE和PE是一一对应的关系,如果做了镜像盘,LE可以同时影射多个PE内,也就是做了镜像,保证了数据的备份
条带卷 也就是RAID0