在上篇博文 LVM详解(1)中我说到了 lv 的查看和创建 。
接下来我来说一下 lv 的 移除 , 扩展 和 缩减 以及如何使用。
移除 lv : lvremove
用法 : lvremove LV Path
注意 : 移除时如果 lv 已经被挂载了,请先卸载 ,lvremove 后面跟的是 LV PATH
要查看 LV PATH ,可以用 lvdisplay 查看 ,或者 lvscan .
接下来我们先来简单说一下逻辑卷的挂载,讲完之后我们再来完成逻辑卷的拓展和缩减。
逻辑卷的挂载其实和分区是差不多的。
步骤 : 先在 LV 上面创建文件系统 (用 mke2fs ,mkfs.ext4等 )
挂载到某个目录上 (用法 : mount LV PATH dir )
注意挂载和创建文件系统时用的都是 LV PATH
在这里细心的读者会发现 怎么挂载上去之后,用 df -h 显示出来的
不是 /dev/myvg/mylv 而是 /dev/mapper/myvg-mylv
这是因为 /dev/myvg/mylv 是一个链接
也可以在让 lv 在开机时自行挂载 :
说一下 blkid 可以用来查看分区的相关信息 系统在开机时会自动读取/etc/fstab 对分区进行挂载
mount -a 根据/etc/fstab 对分区进行挂载 df 可以用来查看当前系统挂载了那些分区
在上面的操作中 UUID=" " 也可以写为 : /dev/myvg/mylv
接下来我们说一下两个概念 : 物理边界 , 逻辑边界
物理边界 : 我们对一个磁盘进行分区的分区边界,也就是说我分给这个分区多大。创建
分区实际上就是创建物理边界的过程。
逻辑边界 : 我们格式化分区建立文件系统后形成的边界。创建文件系统实际上就是
创建逻辑边界的过程。
一般情况下我们在分区上创建文件系统时,逻辑边界是紧贴着物理边界的。但是当我们对逻辑
卷扩展或缩减时逻辑边界就不会紧贴着物理边界。
逻辑边界紧贴着物理边界 : (里面的圈为逻辑边界,逻辑边界一定在物理边界里面)
逻辑边界没有紧贴着物理边界 :(里面的圈为逻辑边界,逻辑边界一定在物理边界里面)
一个逻辑卷能够使用多少是由物理边界和逻辑边界共同决定的。
由于 逻辑边界在物理边界里面所以进行 逻辑卷的 扩展时是有一定的顺序的 :
扩展 ( 先扩展物理边界 ,再扩展逻辑边界)
缩减 (先缩减逻辑边界 ,在缩减物理边界)
好了,说了那么多终于进入扩展逻辑卷和缩减逻辑卷了。
扩展逻辑卷 :(可以实现在线扩展也即是不用卸载就能扩展)
1,先查看vg ,保证 vg 中有足够的扩展空间。(可用 vgs 或者 vgdisplay)
2 , 扩展物理边界
3,扩展逻辑边界
操作之前先介绍 lvextend resize2fs
扩展物理边界 : lvextend
用法:
lvextend -L [+]大小 LV PATH
(注意 有 + 的话表示添加多少 没有得话表示直接把大小变为多少)(扩展之前
请自行用 lvs vgs lvdisplay 决定扩展多少)
改变逻辑边界: resize2fs (改变 ext2 ext3 ext4 文件系统的逻辑边界)
用法 :
reszie2fs LV PATH 大小 (把物理边界改为多大 )
resize2fs -p LV PATH 表示把逻辑边界更改为物理边界,也即物理边界有多大就多大)
下面是扩展逻辑卷的整个过程:
先查看扩展逻辑卷能够用的空间 ,以及当前文件系统的大小( lvs vgs df )
扩展物理边界(lvextend ,此时发现 lv 变大了,但是能够使用的空间没有变化( lvs df )
扩展逻辑边界(resize2fs ,此时用 df 查看发现能用的空间变大了)
注意 : 扩展不会对原先的文件造成影响,可以在线扩展也即是不用卸载,扩展是先物理
后逻辑,也即 lvextend resize2fs -p)
缩减逻辑边界 (注意这个有风险)
缩减物理边界: (得先卸载,不能在线缩减)
lvreduce -L [-]大小 LV PATH
注意: 1 , 不能在线缩减,得先卸载
2,确保缩减后的空间大小依然能存储原有的所有数据
3, 在缩减之前应该强行检查逻辑卷,以确保文件系统处于一致性状态
强行检查文件系统 : e2fsck -f LV PATH
操作步骤 :
1 ,先查看能缩减到多少(用 df -h 查看)
2 , 卸载 (umount dir )
3,强制检查 ( e2fsck -f LV PATH)
4, 缩减逻辑边界 (resize2fs )
5 , 缩减物理边界 (lvreduce )
6 ,重新挂载(如果用 mount -a 的话,记住 /etc/fstab 中得有相应的记录)
注意 : 缩减之前记住必须得有这 3 步 :
df -h 查看能缩到多小
umount
e2fsck -f LV PATH