lvm是什么
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
lvm与传统硬盘管理的区别
LVM(Logic Volume Manager)逻辑卷,传统的硬盘是直接分割后创建文件系统,交由系统进行管理的;当磁盘满了后无法动态扩充,即便可以多加入一块硬盘,对于某些应用服务器而言也是不行的。可以通过磁盘分区工具扩充传统硬盘的分区大小,这样做很可能造成数据丢失,而且文件系统不稳定。
而逻辑卷是在现有硬盘的基础之上,在进行抽象,把磁盘抽象成逻辑卷,系统管理逻辑卷,可以动态的扩充大小;即使新加入硬盘,也不会破坏逻辑卷的数据。
lvm逻辑卷的组成
1、 物理卷-----PV(Physical Volume)
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。
2、 卷组--------VG(Volumne Group)
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
3、 逻辑卷-----LV(Logical Volume)
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。
4、 物理区域–PE(Physical Extent)
物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。
5、 逻辑区域―LE(Logical Extent)
逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。
lvm逻辑卷的创建
创建物理卷---->创建卷组----->创建lvm逻辑卷----->创建文件系统并挂载
创建物理卷
创建物理卷就一条命令
[root@nginx3 ~]# pvcreate /dev/sdb{1..3}
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
Physical volume "/dev/sdb3" successfully created.
[root@nginx3 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.51g 0
/dev/sdb1 lvm2 --- 5.00g 5.00g
/dev/sdb2 lvm2 --- 6.00g 6.00g
/dev/sdb3 lvm2 --- 7.00g 7.00g
创建卷组
创建卷组也很简单
[root@nginx3 ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2 /dev/sdb3
Volume group "vg1" successfully created
[root@nginx3 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.51g 0
vg1 3 0 0 wz--n- <17.99g <17.99g
创建lvm逻辑卷
[root@nginx3 ~]# lvcreate -L 8G -n lv1 vg1
Logical volume "lv1" created.
[root@nginx3 ~]# lvcreate -l 250 -n lv2 vg1
Logical volume "lv2" created.
[root@nginx3 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <18.51g
swap centos -wi-ao---- 1.00g
lv1 vg1 -wi-a----- 8.00g
lv2 vg1 -wi-a----- 1000.00m
-L 给多大的容量(写多少就是多少)
-l 给多少PE一个为4m
-n 名字
创建文件系统并挂载
[root@nginx3 ~]# mkfs.xfs /dev/vg1/lv1 #格式化一下
[root@nginx3 ~]# echo "/dev/vg1/lv1 /mnt/lv1 xfs defaults 0 0" >> /etc/fstab #放在/etc/fstab中永久挂载
[root@nginx3 ~]# mount -a #挂载 fstab 中的所有文件系统
[root@nginx3 ~]# mount /dev/vg1/lv2 /mnt/lv2 #临时挂载
[root@nginx3 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 19G 1.3G 18G 7% /
devtmpfs devtmpfs 446M 0 446M 0% /dev
tmpfs tmpfs 456M 0 456M 0% /dev/shm
tmpfs tmpfs 456M 6.4M 450M 2% /run
tmpfs tmpfs 456M 0 456M 0% /sys/fs/cgroup
/dev/sda1 xfs 497M 118M 380M 24% /boot
tmpfs tmpfs 92M 0 92M 0% /run/user/0
/dev/mapper/vg1-lv1 xfs 8.0G 33M 8.0G 1% /mnt/lv1
/dev/mapper/vg1-lv2 xfs 997M 33M 965M 4% /mnt/lv2
lvm逻辑卷的缩容
[root@nginx3 ~]# lvreduce -L 5G /dev/vg1/lv1
[root@nginx3 ~]# lvreduce -L -3G /dev/vg1/lv1
两种方式达到一样的效果最后lv1的大小都变成了5G
[root@nginx3 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 19.5G 0 part
├─centos-root 253:0 0 18.5G 0 lvm /
└─centos-swap 253:1 0 1G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 5G 0 part
│ └─vg1-lv2 253:3 0 1000M 0 lvm /mnt/lv2
├─sdb2 8:18 0 6G 0 part
├─sdb3 8:19 0 7G 0 part
│ └─vg1-lv1 253:2 0 5G 0 lvm /mnt/lv1
└─sdb4 8:20 0 1K 0 part
sr0 11:0 1 792M 0 rom
可以看到lv1的大小变成了5G
卷组的缩容
卷组的缩容其实就是将将卷组中的物理卷拿出来
[root@nginx3 ~]# vgreduce /dev/vg1 /dev/sdb2
Removed "/dev/sdb2" from volume group "vg1"
删除物理卷/卷组/LVM
物理卷没有缩容这一概念只能删除
[root@nginx3 ~]# pvremove /dev/sdb2
Labels on physical volume "/dev/sdb2" successfully wiped.
删除lvm/vg时需要先卸载
[root@nginx3 ~]# lvremove /dev/vg1/lv2
Do you really want to remove active logical volume vg1/lv2? [y/n]: y
Logical volume "lv2" successfully removed
[root@nginx3 ~]# vgremove /dev/vg1
Do you really want to remove volume group "vg1" containing 1 logical volumes? [y/n]: y
Do you really want to remove active logical volume vg1/lv1? [y/n]: y
Logical volume "lv1" successfully removed
Volume group "vg1" successfully removed
删除卷组时如果卷组里还有逻辑卷它会询问你要不要删除这个逻辑卷
给卷组扩容
一样的道理给卷组扩容就是加物理卷进去
[root@nginx3 ~]# vgextend /dev/vg1 /dev/sdb2
Volume group "vg1" successfully extended
给lvm逻辑卷扩容
[root@nginx3 ~]# lvextend -L +3G /dev/vg1/lv1
Size of logical volume vg1/lv1 changed from 5.00 GiB (1280 extents) to 8.00 GiB (2048 extents).
Logical volume vg1/lv1 successfully resized.
[root@nginx3 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 19.5G 0 part
├─centos-root 253:0 0 18.5G 0 lvm /
└─centos-swap 253:1 0 1G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 5G 0 part
│ ├─vg1-lv1 253:2 0 8G 0 lvm /mnt/lv1
│ └─vg1-lv2 253:3 0 1000M 0 lvm /mnt/lv2
├─sdb2 8:18 0 6G 0 part
├─sdb3 8:19 0 7G 0 part
│ └─vg1-lv1 253:2 0 8G 0 lvm /mnt/lv1
├─sdb4 8:20 0 1K 0 part
└─sdb5 8:21 0 500M 0 part
sr0 11:0 1 792M 0 rom
可与看到lv1又变回了8G
扩展文件系统
lvm逻辑卷扩容完了还需要扩展文件系统
ext4格式: resize2fs /dev/vg1/lv1
xfs格式:xfs_growfs /dev/vg1/lv1
缩小文件系统
缩小文件系统就比较麻烦了我就不写了
https://www.cnblogs.com/cheyunhua/p/14195518.html