LVM
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系 统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的 文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。
LVM的基本组成
pv | 物理卷 | 被lv命令处理过的物理分区 |
vg | 物理卷组 | 被组装到一起的物理卷 |
pe | 物理扩展块 | lvm设备的最小存储单元时pe的整数倍 |
lvm | 逻辑卷 | 直接使用的设备,可以增大缩减并保持原有的数据不变 |
LVM的建立
**在一开始建立一个监控命令:
watch -n 1 “pvs;echo ======;vgs;echo ======;lvs;echo ======;df -H /mnt”**
分区并定分区标签为8e
pvcreate /dev/vdb6
pvcreate /dev/vdb7
vgcreate vg0 /dev/vdb6
vgextend vg0 /dev/vdb7
lvcreate -L 20M -n lv0 vg0
mkfs.xfs /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt
df -H /mnt
lv的扩容
pvcreate /dev/vdb9
vgextend vg0 dev/vdb9
lvextend -L 1500M /dev/vg0/lv0 ##扩展设备大小
xfs_growfs /dev/vg0/lv0 ##扩展文件系统大小
lv的缩减
注:xfs格式不支持删减,而ext4格式支持
缩减步骤:
umount /mnt/
mkfs.ext4 /dev/vg0/lv0 ##用ext4格式格式化
lvextend -L 2000M /dev/vg0/lv0 ##lv的设备大小
resize2fs /dev/vg0/lv0 ##缩小文件系统大小
e2fsck -f /dev/vg0/lv0 ##检查逻辑卷
mount /dev/vg0/lv0 /mnt ##挂载
lvreduce -L 1500M /dev/vg0/lv0 ##lv设备大小减小至
pvmove /dev/vdb6 /dev/vdb8 ##转移pv间额数据
vgreduce vg0 /dev/vdb6 ##缩小物理卷组
pvremove /dev/vdb6 ##移除空闲pv
lv快照
在lv0的挂载点建立文件:
快照的建立:
lvcreate -L xxM -n /dev/vg0/lv0_snap -s /dev/vg0/lv0
挂载快照:
发现挂载快照依旧可以在挂载点看到原lv0挂载所建立的文件
快照的移除:
lv的删除
由lv–>vg–>pv–>逐级用lvremove/vgremove/pvremove 删除
再到fdisk /dev/vdb下用d去删除各个分区
注:在这里我们就不去删除各个分区了