LVM :logic volume manager
当刚开始安装Linux 系统时,往往不能确定每个分区使用的空间大小,只能凭经验分配不科学;
如果分区设置的过大,就浪费了磁盘空间; 如果分区设置的过小,就会导致空间不够;
如何希望分配的空间过大或过小,都能动态调整,则需要使用到 逻辑卷;
相关内容:
PV: 物理卷
VG:卷组
LV:逻辑卷
PE:基本单元默认4MB
lvm 配置实践
1.准备三块物理磁盘,建议在虚拟机关闭状态添加, 以便更好的实验;
2.创建物理卷,将普通磁盘转换为物理卷
[root@yum_server10 ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
[root@yum_server10 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb lvm2 --- 20.00g 20.00g
3.创建卷组, 将物理卷加入到卷组中
[root@yum_server10 ~]# vgcreate datavg /dev/sdb
Volume group "datavg" successfully created
[root@yum_server10 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
datavg 1 0 0 wz--n- <20.00g <20.00g
4.在卷组中划分逻辑卷,然后挂载使用
[root@yum_server10 ~]# lvcreate -L 10G -n lv1 datavg
Logical volume "lv1" created.
[root@yum_server10 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv1 datavg -wi-a----- 10.00g
[root@yum_server10 ~]# lvscan
ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
ACTIVE '/dev/centos/root' [<17.00 GiB] inherit
ACTIVE '/dev/datavg/lv1' [10.00 GiB] inherit
ACTIVE '/dev/datavg/lv2' [9.90 GiB] inherit
挂载使用:
mkfs.xfs /dev/datavg/lv1
mkfs.xfs /dev/datavg/lv2
mount -t xfs /dev/datavg/lv1 lv1
mount -t xfs /dev/datavg/lv2 lv2
sdb 8:16 0 20G 0 disk
├─datavg-lv1 253:2 0 10G 0 lvm
└─datavg-lv2 253:3 0 9.9G 0 lvm /root/lv2
/dev/mapper/datavg-lv2 9.9G 33M 9.9G 1% /root/lv2
/dev/mapper/datavg-lv1 10G 33M 10G 1% /root/lv1
扩大卷组
准备新的磁盘加入至pv 然后检查卷组当前的大小
[root@yum_server10 ~]# pvcreat /dev/sdc
[root@yum_server10 ~]# pvs | grep sdc
/dev/sdc lvm2 --- 20.00g 20.00g
2.使用vgextend扩展卷组
[root@yum_server10 ~]# vgextend datavg /dev/sdc
Volume group "datavg" successfully extended
查看卷组发现已经扩大了容量
[root@yum_server10 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
datavg 2 2 0 wz--n- 39.99g <20.09g
缩小卷组
假设想移除/dev/sdb磁盘建议先将sdb磁盘数据迁移到sdc磁盘然后再移除
1.检查当前逻辑卷 中 使用情况
root@yum_server10 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb datavg lvm2 a-- <20.00g 96.00m
/dev/sdc datavg lvm2 a-- <20.00g <20.00g
2.pvmove 在线数据迁移,将sdb的数据迁移至sdc
[root@yum_server10 ~]# pvmove /dev/sdb
/dev/sdb: Moved: 1.35%
/dev/sdb: Moved: 50.25%
/dev/sdb: Moved: 100.00%
3.检查是否将sdb数据迁移至sdc
[root@yum_server10 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb datavg lvm2 a-- <20.00g <20.00g
/dev/sdc datavg lvm2 a-- <20.00g 96.00m
4从卷组移除sdb磁盘
[root@yum_server10 ~]# vgreduce datavg /dev/sdb
Removed "/dev/sdb" from volume group "datavg"
[root@yum_server10 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
datavg 1 2 0 wz--n- <20.00g 96.00m
扩展逻辑卷
扩展逻辑卷:取决于vg卷中是否还有剩余的容量
注意扩展逻辑卷不能超过卷组vg的总大小