Linux ❀ RHCE自研教学笔记 - Redhat 8.2 LVM服务教研笔记

Posted 国家级干饭型选手°

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux ❀ RHCE自研教学笔记 - Redhat 8.2 LVM服务教研笔记相关的知识,希望对你有一定的参考价值。


LVM - Logical Volume Manager 逻辑卷管理:用户在无需停机的情况下可以方便地调整各个分区大小;
逻辑卷管理器本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,它可以将几块磁盘(物理卷,PhysicalVolume)组合起来形成一个存储池或者卷组(VolumeGroup)。LVM可以每次从卷组中划分出不同大小的逻辑卷(LogicalVolume)创建新的逻辑设备。底层的原始的磁盘不再由内核直接控制,而由LVM层来控制。对于上层应用来说卷组替代了磁盘块成为数据存储的基本单元。LVM管理着所有物理卷的物理盘区,维持着逻辑盘区和物理盘区之间的映射。LVM逻辑设备向上层应用提供了和物理磁盘相同的功能,如文件系统的创建和数据的访问等。但LVM逻辑设备不受物理约束的限制,逻辑卷不必是连续的空间,它可以跨越许多物理卷,并且可以在任何时候任意的调整大小;

  • 物理存储设备:系统的存储设备文件,/dev/sda、/dev/sdb等;
  • 物理卷 PV:物理卷可以是整个硬盘、硬盘分区或者逻辑上与硬盘分区具有相同功能的设备;
  • 卷组 VG:单独的逻辑磁盘,一个VG至少包含一个PV,在卷组建立之后可以动态的添加PV到VG中,名称自定义;
  • 物理区域 PE:VG中可用于分配的最小存储单元;默认为4MB,一旦确定无法更改,同一个卷组内的PC保持一致;
  • 逻辑卷 LV:物理分区,卷组中未分配的空间可以用来创建LV;
  • 逻辑区域 LE:LV中可用于分配的最小存储单元,与PE一致
    卷组描述符区域 VGDA:和非LVM系统将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处的卷组描述符区域中。VGDA包括以下内容:PV描述符、VG描述符、LV描述符和一些PE描述符;

命令解析


[root@localhost ~]# pv
pvcreate  	 	创建
pvdisplay  	    查看
pvremove   	    删除
pvs        		显示相关信息
pvscan			扫描

[root@localhost ~]# vg
vgextend       	扩展
vgs            	显示相关信息
vgcreate       	创建
vgreduce      	缩减
vgscan         	扫描
vgdisplay      	查看
vgremove    	删除

[root@localhost ~]# lv
lvdisplay       查看
lvextend     	扩展
lvreduce		缩减
lvremove     	删除
lvs          	显示相关信息
lvcreate    	创建
lvscan    		扫描
lvresize		调整大小

1、安装服务


该服务默认已经被安装;

[root@localhost ~]# rpm -qa | grep lvm
libblockdev-lvm-2.19-12.el8.x86_64
lvm2-2.03.08-3.el8.x86_64
udisks2-lvm2-2.8.3-2.el8.x86_64
lvm2-libs-2.03.08-3.el8.x86_64
llvm-libs-9.0.1-4.module+el8.2.0+5887+847e8a86.x86_64

2、服务配置


(1)创建物理分区

使用fdisk划分磁盘分区,指定分区类型为Linux LVM,对应ID为 8e;

[root@localhost ~]# fdisk -l /dev/nvme0n2
Device         Boot   Start     End Sectors Size Id Type
/dev/nvme0n2p1         2048 2099199 2097152   1G 8e Linux LVM
/dev/nvme0n2p2      2099200 4196351 2097152   1G  5 Extended
/dev/nvme0n2p3      4196352 6293503 2097152   1G 8e Linux LVM
[root@localhost ~]# fdisk -l /dev/nvme0n3
Device         Boot   Start     End Sectors Size Id Type
/dev/nvme0n3p1         2048 2099199 2097152   1G  5 Extended
/dev/nvme0n3p2      2099200 4196351 2097152   1G 8e Linux LVM
/dev/nvme0n3p3      4196352 6293503 2097152   1G 8e Linux LVM
[root@localhost ~]# partprobe 		/格式化

(2)创建物理卷 PV

分区:/dev/nvme0n2p1 /dev/nvme0n2p3 /dev/nvme0n3p2 /dev/nvme0n3p3

[root@localhost ~]# pvcreate /dev/nvme0n2p1 /dev/nvme0n2p3 /dev/nvme0n3p2 /dev/nvme0n3p3 
  Physical volume "/dev/nvme0n2p1" successfully created.
  Physical volume "/dev/nvme0n2p3" successfully created.
  Physical volume "/dev/nvme0n3p2" successfully created.
  Physical volume "/dev/nvme0n3p3" successfully created.

查看配置结果:

[root@localhost ~]# pvs
  PV             VG   Fmt  Attr PSize   PFree
  /dev/nvme0n1p2 rhel lvm2 a--  <39.00g    0 
  /dev/nvme0n2p1      lvm2 ---    1.00g 1.00g
  /dev/nvme0n2p3      lvm2 ---    1.00g 1.00g
  /dev/nvme0n3p2      lvm2 ---    1.00g 1.00g
  /dev/nvme0n3p3      lvm2 ---    1.00g 1.00g
[root@localhost ~]# pvdisplay 
[root@localhost ~]# pvscan 

(3)创建卷组 VG

将物理卷/dev/nvme0n2p1 /dev/nvme0n2p3加入vg1, 将物理卷/dev/nvme0n3p2 /dev/nvme0n3p3加入vg2,PE大小为8M(默认为4M);

[root@localhost ~]# vgcreate vg1 /dev/nvme0n2p1 /dev/nvme0n2p3
  Volume group "vg1" successfully created
[root@localhost ~]# vgcreate -s 8M vg2 /dev/nvme0n3p2 /dev/nvme0n3p3
  Volume group "vg2" successfully created

查看配置结果:

[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  rhel   1   2   0 wz--n- <39.00g    0 
  vg1    2   0   0 wz--n-   1.99g 1.99g
  vg2    2   0   0 wz--n-   1.98g 1.98g
[root@localhost ~]# vgdisplay 
[root@localhost ~]# vgscan 

(4)创建逻辑卷 LV

第一个逻辑卷的名字为lv1,所属卷组为vg1,大小为200M;第二个逻辑卷的名字为lv2,所属卷组为vg2,大小为300M;第三个逻辑卷的名字为lv3,所属卷组为vg2,该逻辑卷由50个PE组成。

[root@localhost ~]# lvcreate -L 200M -n lv1 vg1
  Logical volume "lv1" created.
[root@localhost ~]# lvcreate -L 300M -n lv2 vg2
  Rounding up size to full physical extent 304.00 MiB
  Logical volume "lv2" created.
[root@localhost ~]# lvcreate -l 50 -n lv3 vg2
  Logical volume "lv3" created.

查看配置结果:

[root@localhost ~]# lvs
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root rhel -wi-ao---- <35.00g                                                    
  swap rhel -wi-ao----   4.00g                                                    
  lv1  vg1  -wi-a----- 200.00m                                                    
  lv2  vg2  -wi-a----- 304.00m                                                    
  lv3  vg2  -wi-a----- 400.00m                                           
[root@localhost ~]# lvdisplay 
[root@localhost ~]# lvscan 

(5)格式化逻辑卷,创建文件系统,并挂载

将新建的逻辑卷lv1和lv2格式化为ext4的文件系统,将lv3格式化为xfs的文件系统,三个逻辑卷可分别自动挂载在/logical/lv1,/logical/lv2,/logical/lv3目录。

[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1
[root@localhost ~]# mkfs.ext4 /dev/vg2/lv2
[root@localhost ~]# mkfs.ext4 /dev/vg2/lv3

[root@localhost ~]# mkdir -p /logical/{lv1,lv2,lv3}			/创建挂载目录位置;
[root@localhost ~]# ll /logical/
total 0
drwxr-xr-x. 2 root root 6 Sep 24 18:27 lv1
drwxr-xr-x. 2 root root 6 Sep 24 18:27 lv2
drwxr-xr-x. 2 root root 6 Sep 24 18:27 lv3

[root@localhost ~]# blkid

[root@localhost ~]# vim /etc/fstab 
UUID=c47eb7a0-013d-4dc2-8b6c-4441186583e7	 	/logical/lv1          ext4   	 defaults 0 0
UUID=1f7f9b71-c99f-41fe-b647-25f3a18e875f 		/logical/lv2          ext4   	 defaults 0 0
UUID=baa50c7f-de65-4baa-8bd9-a89f611fd9f3 		/logical/lv3          xfs    	 defaults 0 0

[root@localhost ~]# mount -a
[root@localhost ~]# df -h

3、修改逻辑卷


扩大需要添加新的物理卷PV到逻辑卷LV所在的卷组VG里;
(xfs的文件系统只支持扩大,ext4的文件系统支持扩大与缩小)

(1)缩小逻辑卷LV

首先卸载LV

[root@localhost ~]# unmount /logical/lv1/

如果无法卸载,则是有进程占用该挂载点目录,使用以下命令终止进程;

[root@localhost ~]# fuser -m -k /logical/lv1/

设置大小

[root@localhost ~]# e2fsck -f /dev/vg1/lv1
[root@localhost ~]# resize2fs /dev/vg1/lv1 3G
[root@localhost ~]# lvreduce -L 3G /dev/vg1/lv1	或者		lvresize -L 3G /dev/vg1/lv1

重新挂载

[root@localhost ~]# mount -a
[root@localhost ~]# df -h

(2)扩大或者缩小

[root@localhost ~]# vgs
[root@localhost ~]# lvextend -L 6G /dev/vg2/lv2
[root@localhost ~]# e2fsck -f /dev/vg2/lv2

(3)缩小和扩大ext4文件系统的逻辑卷

扩大和缩小均可以使用lvresize执行;

[root@localhost ~]# lvresize -L 2G -r /dev/vg1/lv1
Do you want to unmount "/logical/lv1"? [Y|n] y

(4)扩大xfs文件系统逻辑卷LV

[root@localhost ~]# lvextend -L 1600M /dev/vg2/lv3
[root@localhost ~]# xfs_growfs /dev/vg2/lv3

(5)某个磁盘或者分区损坏
准备一个同样大小或者备用较大的存储设备;

[root@localhost ~]# pvcreate /dev/sda5
[root@localhost ~]# vgextend vg2 /dev/sda5
[root@localhost ~]# pvmove /dev/sdd /dev/sda5 

将/dev/sdd中的PE全部移动到/dev/sda5中

[root@localhost ~]# vgreduce vg2 /dev/sdd

4、删除PV、VG、LV


先删除LV,再删除VG,后删除PV;
需要清理 /etc/fstab 文件内的相关挂载信息,否则系统无法正常启动;

[root@localhost ~]# umount /logical/{lv1,lv2,lv3}
[root@localhost ~]# lvremove /dev/vg1/lv1 /dev/vg2/lv2 /dev/vg2/lv3
[root@localhost ~]# vgremove vg1 vg2
[root@localhost ~]# pvremove /dev/sda5

以上是关于Linux ❀ RHCE自研教学笔记 - Redhat 8.2 LVM服务教研笔记的主要内容,如果未能解决你的问题,请参考以下文章

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 SFTP服务教研笔记

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 SFTP服务教研笔记

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 Nmcli服务教研笔记

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 Nmcli服务教研笔记

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 HTTP服务教研笔记

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 FTP服务教研笔记