参考:https://www.cnblogs.com/f-ck-need-u/p/7049233.html
基本概念
PV(Physical Volume)即物理卷
硬盘分区后(还未格式化为文件系统)使用pvcreate命令可以将分区创建为pv,要求分区的system ID为8e,即为LVM格式的系统标识符
VG(Volume Group)即卷组
将多个PV组合起来,使用vgcreate命令创建成卷组
LV(Logical Volume)即逻辑卷
VG相当于整合过的硬盘,那么LV就相当于分区,只不过该分区是通过VG来划分的。
VG中有很多PE单元,可以指定将多少个PE划分给一个LV,也可以直接指定大小(如多少兆)来划分。
划分为LV之后就相当于划分了分区,只需再对LV进行格式化即可变成普通的文件系统
LE(logical extent)
PE是物理存储单元,而LE则是逻辑存储单元,也即为lv中的逻辑存储单元,和pe的大小是一样的。
从vg中划分lv,实际上是从vg中划分vg中的pe,只不过划分lv后它不再称为pe,而是成为le
基本操作
1.创建PV
[root@localhost ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
[root@localhost ~]# pvscan
PV /dev/sda2 VG centos lvm2 [<99.00 GiB / 4.00 MiB free]
PV /dev/sdb1 lvm2 [<16.00 GiB]
Total: 2 [<115.00 GiB] / in use: 1 [<99.00 GiB] /
in no VG: 1 [<16.00 GiB]Physical volume "/dev/sdb1" successfully created.
2.创建VG
vgcreate datavg /dev/sdb1
[root@localhost ~]# vgcreate datavg /dev/sdb1
Volume group "datavg" successfully created
[root@localhost ~]# pvscan
PV /dev/sdb1 VG datavg lvm2 [<16.00 GiB / <16.00 GiB free]
PV /dev/sda2 VG centos lvm2 [<99.00 GiB / 4.00 MiB free]
Total: 2 [114.99 GiB] / in use: 2 [114.99 GiB] / in no VG: 0 [0 ]
3.创建LV
[root@localhost ~]# lvcreate -L 5G -n first_data_lv datavg
Logical volume "first_data_lv" created.
[root@localhost ~]# lvscan
ACTIVE '/dev/datavg/first_data_lv' [5.00 GiB] inherit
ACTIVE '/dev/centos/swap' [<7.88 GiB] inherit
ACTIVE '/dev/centos/home' [<41.12 GiB] inherit
ACTIVE '/dev/centos/root' [50.00 GiB] inherit
4.格式化lv为文件系统,并挂载
[root@localhost ~]# mkfs.xfs /dev/datavg/first_data_lv
meta-data=/dev/datavg/first_data_lv isize=512 agcount=4, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1310720, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mount /dev/datavg/first_data_lv /mnt
[root@localhost ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 50G 8.4G 42G 17% /
devtmpfs devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs tmpfs 7.8G 25M 7.8G 1% /run
tmpfs tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 145M 870M 15% /boot
/dev/mapper/centos-home xfs 42G 1.1G 41G 3% /home
tmpfs tmpfs 1.6G 0 1.6G 0% /run/user/0
/dev/mapper/datavg-first_data_lv xfs 5.0G 33M 5.0G 1% /mnt
XFS扩容
#### xfs文件系统只支持增大分区空间的情况,不支持减小的情况
1.如果vgdisplay显示还有free PE
lvextend -L +5G /dev/datavg/first_data_lv
xfs_growfs /dev/datavg/first_data_lv
2.如果没有需要增加VG中的PE
分区磁盘,创建pv,扩容vg,扩容lv,扩展文件系统
fdisk /dev/sdb
pvcreate /dev/sdb1
vgextend centos /dev/sdb1
lvextend -l +100%FREE /dev/mapper/centos-root
xfs_growfs /dev/mapper/centos-root
ext2,3,4扩缩容
lvextend -L 120G /dev/mapper/centos-home #增大至120G
lvextend -L +20G /dev/mapper/centos-home #增加20G
lvreduce -L 50G /dev/mapper/centos-home #减小至50G
lvreduce -L -8G /dev/mapper/centos-home #减小8G
resize2fs /dev/mapper/centos-home #执行调整
扩缩容注意事项
1.缩容需要umount,慎重操作
2.VG中需要有足够的free PE,如果不够,可创建PV,并将PV加入VG,增加PE容量
创建PV:pvcreate /dev/sdb1
增加VG容量:vgextend centos /dev/sdb1
[root@localhost ~]# vgdisplay |grep "Free PE"
Free PE / Size 1535 / <6.00 GiB
再对LV扩容
常用命令
1.管理PV
pvcreate 创建PV
pvscan 扫描并列出所有的pv
pvdisplay 列出pv属性信息
pvremove 移除pv
pvmove 移动pv中的数据
pvresize
2.管理VG
vgcreate 创建VG
vgscan 扫描并列出所有的vg
vgdisplay 列出vg属性信息
vgremove 移除vg,即删除vg
vgreduce 从vg中移除pv
vgextend 将pv添加到vg中
vgchange 修改vg属性
3 管理LV
lvcreate 创建LV
lvscan 扫描并列出所有的lv
lvdisplay 列出lv属性信息
lvremove 移除lv,即删除lv
lvreduce 缩小lv容量
lvextend 增大lv容量
lvresize 改变lv容量