1.基本概念
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装Linux操作系统时 遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当 一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间 耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
pv:物理卷,将磁盘的分区可以设定成物理卷,是vg的小单元
vg:物理卷组,使用pv组成,是lvm的来源。
pe:lvm设备的最小存储单元,lvm是pe整数倍。
lvm:直接使用的设备,可以增大缩减并保持原有数据不变
pv,vg,lvm的关系:pv相当于一小杯水果汁,vg一大盆水锅汁,我们从vg里面取果汁作为lvm。
2.lvm的建立
在这个过程中使用监控:
watch -n 1 'pvs;echo ====;vgs;echo ====;lvs;echo ====;df -h /mnt'
1)分区的建立,并设定分区标签为8e(LVM)
2)pv的创建
[root@server ~]# pvcreate /dev/vdb1
Physical volume "/dev/vdb1" successfully created
3)vg的创建
[root@server ~]# vgcreate vg0 /dev/vdb1
Volume group "vg0" successfully created
4)lvm的创建
lvcreate -L 20M -n lv0 vg0
WARNING: ext4 signature detected on /dev/vg0/lv0 at offset 1080. Wipe it? [y/n] y
Wiping ext4 signature on /dev/vg0/lv0.
Logical volume "lv0" created
5)铺设文件系统
mkfs.xfs /dev/vg0/lv0
6)测试:挂载使用
mount /dev/vg0/lv0 /mnt
3.lvm的拉伸
1)lvm的热拉伸
情况1:当vg中剩余容量足够时
lvextend -L 80M /dev/vg0/lv0 ##拉伸设备
xfs_growfs /dev/vg0/lv0 ##拉神文件系统
情况2:当vg中剩余容量不足时
再次建立分区并修改标签为8e
pvcreate /dev/vdb2 ##建立新的pv
vgextend vg0 /dev/vdb2 ##扩展vg0
lvextend -L 200M /dev/vg0/lv0 ##拉神lv
xfs_growfs /dev/vg0/lv0 ##扩展文件系统
情况3:针对ext文件系统的拉伸和缩减(xfs系统不能缩减)
umount /mnt/ ##卸载
mkfs.ext4 /dev/vg0/lv0 ##修改文件系统为ext4
mount /dev/vg0/lv0 /mnt/ ##挂载
1.拉伸(热)
lvextend -L 250M /dev/vg0/lv0 ##lv扩展到250M
resize2fs /dev/vg0/lv0 ##文件系统扩展
2.缩减(冷)
umount /dev/vg0/lv0 ##必须卸载才能缩减
e2fsck -f /dev/vg0/lv0 ##检查
resize2fs /dev/vg0/lv0 100M ##缩小文件系统
lvreduce -L 100M /dev/vg0/lv0 ##缩小lv的大小,这里会提示减少空间可能会造成数据丢失
mount /dev/vg0/lv0 /mnt ##挂载
2)缩减vg
[root@server ~]# vgreduce vg0 /dev/vdb2
Removed "/dev/vdb2" from volume group "vg0"
3).数据的迁移(移除含有数据的设备)
现在的目的是将含有数据的/dev/vdb1,除去
步骤1:pv数据的移动
pvmove /dev/vdb1 /dev/vdb2
步骤二:设备的删除
vgreduce vg0 /dev/vdb1
pvremove /dev/vdb1
4.lvm快照
类似与系统快照,lvm也有快照,但是在lvm快照上传的东西的大小不能超过lvm快照的容量,否则直接会卸载。并且再不能挂载,除非删除,重新照快照
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
mount /dev/vg0/lv0-backup /mnt/
文件的大小显示的是lvm的容量
测试:往快照里面放超过快照容量的东西
dd if=/dev/zero of=/mnt/file bs=1M count=50
西东卸载
再次挂载会报错
5.lvm的卸载
从下往上逐次删除,
依次删除快照,lvm,vg,pv,删除磁盘。