«

LVM逻辑卷基础-扩容逻辑卷

myluzh 发布于 阅读:543 Linux


扩容VG卷组

查看/dev/sdb剩余容量(可以看到start起始位置跟end结束位置)

[root@localhost /]# parted /dev/sdb
(parted) print free
2049MB  53.7GB  51.6GB           Free SpaceNumber  Start   End     Size    Type     File system  Flags
        0.00B   511B    512B             Free Space
 1      512B    1025MB  1025MB  primary               lvm
 2      1025MB  2049MB  1024MB  primary               lvm
        2049MB  53.7GB  51.6GB           Free Space

创建一个2GB的分区(后面的2049mb跟4079mb是结束位置)
(parted) mkpart primary 2049MB 4097MB

变成逻辑卷并退出退出
(parted)set 3 lvm on
(parted)quit

从物理分区变成物理卷
[root@localhost /]# pvcreate /dev/sdb3
Devices file /dev/sdb is excluded by filter: device is partitioned.
Physical volume "/dev/sdb3" successfully created.

把物理卷添加到database卷组
[root@localhost /]# vgextend database /dev/sdb3
Devices file /dev/sdb is excluded by filter: device is partitioned.
Volume group "database" successfully extended

查看下database卷,可以看到物理卷pv变成了3个,物理卷组vg大小也变成了3.8G,剩余PE也变大了。
[root@localhost /]# vgdisplay database
Act PV 3
VG Size <3.80 GiB
Free PE / Size 161 / <2.52 GiB

缩减VG卷组

需要先把卷组分区内的数据移走,pvscan 查看数据在哪个分区
[root@localhost /]# pvscan
Devices file /dev/sdb is excluded by filter: device is partitioned.
PV /dev/sdb1 VG database lvm2 [976.00 MiB / 464.00 MiB free]
PV /dev/sdb2 VG database lvm2 [960.00 MiB / 160.00 MiB free]
PV /dev/sdb3 VG database lvm2 [<1.91 GiB / <1.91 GiB free]

把/dev/sdb2上的数据移走
[root@localhost /]# pvmove /dev/sdb2
/dev/sdb2: Moved: 100.00%

再次查看database内/dev/sdb2是否被使用
[root@localhost /]# pvscan
PV /dev/sdb2 VG database lvm2 [960.00 MiB / 960.00 MiB free]

缩小VG,把database卷组内的/dev/sdb2分区移走
[root@localhost /]# vgreduce database /dev/sdb2
Removed "/dev/sdb2" from volume group "database"

查看vg,可以看到database卷组内的PV从3个变成2个了。
[root@localhost /]# vgdisplay
Cur PV 2

扩容LV逻辑卷

查看逻辑卷大小
[root@localhost /]# lvscan
ACTIVE '/dev/database/mysql' [512.00 MiB] inherit
ACTIVE '/dev/database/web' [800.00 MiB] inherit

lvextend使用-L参数调整逻辑卷大小 -l是指定PE -L是指定大小,两种写法都一种直接写扩容后大小,第二种写+多少大小。
[root@localhost /]# lvextend -L 800m /dev/database/mysql
[root@localhost /]# lvextend -L +200m /dev/database/web

使用df -h 可以查看容量并没有变成800MB,因为逻辑卷扩容需要经过2个层面,第一步是扩逻辑卷,第二步是扩容文件系统。
[root@localhost /]# df -h | grep mysql
/dev/mapper/database-mysql 507M 30M 478M 6% /mnt/mysq

通过df -T查看文件系统格式
[root@localhost /]# df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/mapper/database-mysql xfs 813728 32336 781392 4% /mnt/mysql
/dev/mapper/database-web ext4 788320 409636 321340 57% /mnt/web

如果文件系统是xfs格式,使用xfs_growfs+挂载点路径扩容
[root@localhost /]# xfs_growfs /mnt/mysql/
data blocks changed from 131072 to 204800
如果文件系统是ext4格式,使用resize2fs扩容
[root@localhost /]# resize2fs /dev/database/web
The filesystem on /dev/database/web is now 258048 (4k) blocks long.

查看扩容后的大小
[root@localhost /]# df -h /dev/database/web /dev/database/mysql
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/database-web 978M 402M 516M 44% /mnt/web
/dev/mapper/database-mysql 795M 32M 764M 4% /mnt/mysql

是不是觉得很麻烦?要先扩容逻辑卷又要扩文件系统。
其实只要在使用lvextend加一个-r(--resizefs)选项,会自动扩容文件系统。例如:
[root@localhost /]# lvextend -r -l +20 /dev/database/web
The filesystem on /dev/mapper/database-web is now 339968 (4k) blocks long.
使用df-h可以查看文件系统大小已经改变
[root@localhost /]# df -h /dev/database/web
/dev/mapper/database-web 1.3G 403M 818M 33% /mnt/web

lvm 逻辑卷 lv扩容


正文到此结束
版权声明:若无特殊注明,本文皆为 Myluzh Blog 原创,转载请保留文章出处。
文章内容:https://itho.cn/linux/217.html
文章标题:《LVM逻辑卷基础-扩容逻辑卷