逻辑卷管理(lvm)
先了解一下lvm
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
***LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
***通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系 统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的 文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。
pv ##物理卷
被lv命令处理过的物理分区
vg ##物理卷组
被组装到一起的物理卷
pe ##图里扩展
lvm设备的最小存储单元lvm时pe的整数倍
lvm ##逻辑卷
直接使用的设备,可以增大缩减并保持原有数据不变
1.lvm建立
使用监控命令:
watch -n 1 'pvs;echo======;vgs;echo ========;lvs;echo ======;df -h /data’进行监控
分区并时定分区标签为8e
创建/data
pvcreate /dev/vdb2 创建物理分区
vgcreate -s 16M vg1 /dev/vdb2 单位是16M
vgdisplay 可以查看lvm卷的大小
lvcreate -L 20M -n lv1 vg1
mkfs.xfs /dev/vg1/lv1 将分出来的lvm逻辑卷格式化才能挂载
mount /dev/vg1/lv1 /mnt (挂载在/data下面客户才能用)
2.lvm的拉伸
lvm支持热拉伸
1.当vg中的剩余容量充足情况
lvextend -L 80M /dev/vg1/lv1 ##拉伸设备
我的/dev/vdb2大小为+100M,所以扩展到90没问题,但实际上是比90大(要满足16的倍数)
xfs_growfs /dev/vg1/lv1 ##拉伸文件系统
2.当vg中的容量不足时
再次建立分区并修改标签8e
重读分区列表partprobe
pvcreate /dev/vdb3
vgextend vg0 /dev/vdb3 ##拉伸物理卷组
lvextend -L 600M dev/vg1/lv1
xfs_grow /dev/vg1/lv1
3.针对ext文件系统的设备的拉伸和缩减
umount /data
mkfs.ext4 /dev/vg0/lv0
mount /dev/vg0/lv0 /data
blkid 查看
拉伸
lvextend -L 500M /dev/vg0/lv0
resize2fs /dev/vg0/lv0 将文件系统也拉伸
缩减
缩减lvm
umount /dev/vg0/lv0
e2fsck -f /dev/vg0/lv0 扫描设备
resize2fs /dev/vg0/lv0 100M
lvreduce -L 100M /dev/vg0/lv0
mount /dev/vg0/lv0 /data
移除含有数据的设备
pvmove /dev/vdb1 /dev/vdb2
vgreduce vg0 /dev/vdb1
pvremove /dev/vdb1
5.lvm快照
lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0 快照
lvs查看
mount /dev/vg0/lv0-backup /data
df -H 查看
切换到/data 查看
6.lvm的删除
lvremove /dev/vg0/lv0-backup
lvremove /dev/vg0/lv0
vgremove vg0
pvremove /dev/vdb2
fdisk /dev/vdb 进入删掉马写分区就0K