Linux LVM (Logical Volume Management) 逻辑卷管理 常见场景和命令操作内容

常见缩写和中文含义

  • PE(physical Extend) 物理扩展块
  • PV(physical volume) 物理卷
  • VG(volume group) 卷组
  • LV(logical volume) 逻辑卷

the flowing gray parts ref from this blog

PV (Physical Volume)实体滚动条
PV 是LVM最基本的物理组成部分,利用fdisk命令把实际的partition转化成8e的系统格式,然后利用指令pvcreate把partition变成能够利用的physical volume。
PE (Physical Extend)实体延伸区块
PE是LVM最小的存储单位,一般为4MB大小,它是构成VG的基本单位,PE对于VG来说就如block对于分区来讲,它是存储数据的单元。而pe的大小并不是固定的,而是可以变化的,所以pe决定了LVM的灵活性,即能扩增,也能缩减。
VG (Volume Group)滚动条群组
VG,说的简单些就如我们使用的磁盘,是可以进行分区的,对于LVM上面的文件系统而言,VG就是一个大磁盘。文件系统时看不到LVM下面的组成部分的,它只管使用,而LVM则负责管理下面的组成储存块。
LV (Logical Volume)逻辑滚动条
LV就是VG切成的类似于分区的东西啦,我们可以用格式化,挂载使用啦,但是LV是VG切割成的,而VG又是有数量众多的PE组成,所以LV的大小取决于LV所包含的PE的数量的多少。

一、创建LVM,并使用LV

  1. 将物理磁盘设备初始化为物理卷
pvcreate /dev/sdb /dev/sdc 
  1. 创建卷组,并将PV 加入其中
vgcreate   linuxcast   	/dev/sdb   /dev/sdc
  1. 基于卷组创建逻辑卷
lvcreate -n mylv -L 2G 	linuxcast
  1. 为创建好的逻辑卷创建文件系统
mkfs.ext4   /dev/linuxcast/mylv
  1. 将格式化好的逻辑卷挂载使用(像普通磁盘一样挂载)
 mount /dev/linuxcast/mylv /mnt

二、删除LVM(一定要按这样的顺序)

  1. 删除LV 逻辑卷
lvremove  /dev/linuxcast/mylv
  1. 删除VG 卷组
vgremove linuxcast
  1. 删除PV 物理卷
pvremove  /dev/sdb

三、拉伸一个逻辑卷(逻辑卷的拉伸操作可以在线执行,不需要卸载逻辑卷)

0.保证VG中有足够的空闲空间

vgdisplay

1.扩充逻辑卷

lvextend  -L  +1G  /dev/linuxcast/mylv

8.查看扩充后LV大小

lvdisplay

3.更新文件系统

resize2fs  /dev/linuxcast/mylv

4 看更新后的文件系统

df -h

五、缩小一个逻辑卷

逻辑卷的缩小操作必须离线执行,要卸载逻辑卷
0.卸载已挂载的逻辑卷

umount 	/dev/linuxcast/mylv

1.缩小文件系统(会提示需要运行fsck检查文件系统)

resize2fs /dev/linuxcast/mylv  1G

2.缩小LV

lvreduce  -L  -1G 	/dev/linuxcast/mylv

3.查看缩小后的LV

Lvdisplay

4.挂载

mount  /dev/linuxcast/mylv /mnt

四、拉伸一个卷组

0.将要添加到VG 的硬盘格式化为PV

Pvcreate /dev/sdd

1.将新的PV添加到指定卷组中

vgextend  linuxcast /dev/sdd

2.查看扩充后VG的大小

Vgdisplay

六、缩小一个卷组

0.将一个PV从指定卷组中移除

vgreduce linuxcast  /dev/sdd

1.查看缩小后的卷组大小

vgdisplay
# /dev/vgname/lvname 卷组,逻辑卷的关系

遇到的问题和对应的解决方案

*/dev/sda 之前是lvm的磁盘,重装系统后没有删除其上的文件系统,再次使用 pvcreate /dev/sda 的时候报错

Device /dev/sda excluded by a filter.

解决方案

sudo wipefs -a /dev/sdd 

下面是我搜到的解决方案的来源,
来自blog

LVM: DEVICE /DEV/SDX EXCLUDED BY FILTER
If you have created a new VD using a disk or group of disks that were previously partitioned, you may see a message like this when you try to initialize the virtual disk for LVM.

 pvcreate /dev/sdd

Device /dev/sdd excluded by a filter.
If filter is correct (/etc/lvm/lvm.conf) and old partition table information found on the disk, you can wipe out the old partition information with "wipefs".

# wipefs -a /dev/sdd

/dev/sdd: 2 bytes were erased at offset 0x000001fe (dos): 55 aa
/dev/sdd: calling ioclt to re-read partition table: Success
Now, try pvcreate command again.

# pvcreate /dev/sdd
Physical volume "/dev/sdd" successfully created.

lvextend 在非ext4的文件系统(例如xfs)上执行该操作的时候,出现报错 resize2fs: Bad magic number in super-block while trying to open

xfs 应该使用 xfs_growfs /dev/system/home

posted @ 2022-01-22 11:47  wangshaodong  阅读(196)  评论(0编辑  收藏  举报