LVM工作原理
LVM( Logical Volume Manager)逻辑卷管理器,是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。管理员利用LVM可以在磁盘不用重新分区的情况下动态调整文件系统的大小,并且利用LVM管理的文件系统可以跨越磁盘,当服务器添加了新的磁盘后,管理员不必将原有的文件移动到新的磁盘上,而是通过LVM可以直接扩展文件系统跨越磁盘
它就是通过将底层的物理硬盘封装起来,然后以逻辑卷的方式呈现给上层应用。在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作
lvm常用语术
物理卷PV物理卷就是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数,创建物理卷它可以用硬盘分区,也可以用硬盘本身;
卷组VG多个物理卷PV
逻辑LV(logical volume) :LV建立在VG之上,可以在LV之上建立文件系统
PE解释 PV物理卷中可以分配的最小存储单元,PE的大小是可以指定的,默认为4MB
LE LV逻辑卷中可以分配的最小存储单元,在同一个卷组中,LE的大小和PE是相同的,并且一一对应
lvm创建步骤
pv-vg-lv-格式化lv挂载使用
lvm实战创建
创建PV
1、添加一块磁盘进行分区操作
[root@centos7-1 ~]# fdisk /dev/sdb
2、创建PV
[root@centos7-1 ~]# pvcreate /dev/sdb{1,2,3,4}
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
Physical volume "/dev/sdb3" successfully created.
Physical volume "/dev/sdb4" successfully created.
查看物理卷信息
pvdisplay /dev/sdb1
3、创建vg卷组:
语法: vgcreate vg名字 pv的名字 可以跟多个pv
[root@centos7-1 ~]# vgcreate vg01 /dev/sdb1
Volume group "vg01" successfully created
查看卷组信息:
vgs、vgdisplay
4、创建LV逻辑卷
lvcreate -n 指定新逻辑卷的名称 -L指定lv大小的SIZE(M,G) (-l:小l 指定LE的数量) vgname
[root@centos7-1 ~]# lvcreate -n lv01 -L 16M vg01
Logical volume "lv01" created.
5、使用LVM
创建挂载点
lv01 逻辑卷的路径在哪?
可以通过lvdisplay来查看路径
LV Path /dev/vg01/lv01
mkdir /lv01
磁盘格式化并挂载使用
[root@centos7-1 ~]# mkfs.xfs /dev/vg01/lv01
[root@centos7-1 ~]# mount /dev/vg01/lv01 /lv01
[root@centos7-1 ~]# echo "/dev/vg01/lv01 xfs defaults 0 0 " >> /etc/fstab
测试
[root@centos7-1 ~]# df -TH /lv01
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vg01-lv01 xfs 14M 918k 13M 7% /lv01
LV扩容 重点
[root@centos7-1 ~]# lvscan //查看LV大小
[root@centos7-1 ~]# lvscan
ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
ACTIVE '/dev/centos/home' [<18.70 GiB] inherit
ACTIVE '/dev/centos/root' [<38.30 GiB] inherit
ACTIVE '/dev/vg01/lv01' [16.00 MiB] inherit
[root@centos7-1 ~]# lvextend -L +30M /dev/vg01/lv01 //扩容+30M
Rounding size to boundary between physical extents: 32.00 MiB.
Size of logical volume vg01/lv01 changed from 16.00 MiB (4 extents) to 48.00 MiB (12 extents).
Logical volume vg01/lv01 successfully resized.
[root@centos7-1 ~]# lvscan
ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
ACTIVE '/dev/centos/home' [<18.70 GiB] inherit
ACTIVE '/dev/centos/root' [<38.30 GiB] inherit
ACTIVE '/dev/vg01/lv01' [48.00 MiB] inherit
或者:
[root@centos7-1 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- <18.70g
root centos -wi-ao---- <38.30g
swap centos -wi-ao---- 2.00g
lv01 vg01 -wi-ao---- 48.00m
==说明:在指定大小的时候,扩容30m和扩容到30m是不一样的写法
扩容30m ====> -L +30M
扩容到30m ===> -L 30M
发现扩容成功之后通过df -Th文件系统并没有扩容
解决办法:
[root@centos7-1 ~]# lvextend -L 80M -r /dev/vg01/lv01
lv扩容完成、、、、、
VG扩容
[root@centos7-1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 3 0 wz--n- <59.00g 4.00m
vg01 1 1 0 wz--n- 1020.00m 940.00m
[root@centos7-1 ~]# vgextend vg01 /dev/sdb2
Volume group "vg01" successfully extended
[root@centos7-1 ~]#
[root@centos7-1 ~]#
[root@centos7-1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 3 0 wz--n- <59.00g 4.00m
vg01 2 1 0 wz--n- 1.99g 1.91g