写在前面
在日常使用Linux的时候,不免碰到一个比较尴尬的问题,磁盘空间不够用了!这个时候,正常情况下,我们有2个办法解决这个问题。
1. 重新分配一个新的分区,挂载在所需要的目录下。
2. 备份数据,重新安装系统,重新将磁盘分区。
但是,无论选择哪个方法,都不够优雅,而且,一般情况下重装系统会需要重新所有必须的软件,而第一种办法又无法扩展/分区。所以才会有下面使用LVM管理磁盘。
创建PV
在虚拟机中新建了一个10G的磁盘,使用sudo fdisk -l 命令列出如下
其中/dev/sdc是新建的磁盘,接下来,我们可以将整个磁盘作为一个PV,也可以将sdc分区后,再将其中的某个分区作为一个PV。下面我采用的是第一种方案:将整个磁盘作为一个PV。
通过sudo pvcreate /dev/sdc就可以将磁盘创建成了一个PV,sudo pvscan 可以查看目前存在哪些PV。由上图可以知道sdc刚创建,还没加入到某一个VG里面。
创建VG
通过sudo vgcreate vg1 /dev/sdc 创建了一个VG,其中物理卷/dev/sdc属于个vg1,其实我们可以在创建vg1时,指定多个物理卷。
我们还可以通过sudo vgdisplay 显示更加详细的信息
我们可以通过sudo vgextend vg1 /dev/sdd 给vg1扩展一个物理卷轴。
也可以通过 sudo vgreduce vg1 /dev/sdd 给vg1移除一个物理卷轴。
当然,我们也可以通过 sudo vgremove vg1 直接删除一个vg
也可以通过 sudo pvremove /dev/sdd 删除 一个pv
创建LV
LV是建立在一个VG上的。下面是LV的创建和删除
sudo lvcreate -L 10G -n lv1 vg1
在vg1卷轴组的基础上创建了一个大小10G的逻辑卷轴lv1
当然,我们也可以创建一个使用了卷轴组vg1全部空间的逻辑卷轴
sudo lvcreate -l 5118 -n lv1 vg1
可以从下图看出PE总数量是5118
接下来,才是重头戏,扩展逻辑卷轴的大小。
sudo lvextend -L +5G /dev/vg1/lv1 扩展5G
sudo lvextend -L 15G /dev/vg1/lv1 直接设置成15G,注意这个15G必须大于原来的值
sudo lvextend -l +50 /dev/vg1/lv1 扩展50个PE大小
sudo lvextend -l 3000 /dev/vg1/lv1 直接设置成3000个PE,注意这个3000必须大于原来的值
有扩展,就有缩减。
sudo lvreduce -L -5G /dev/vg1/lv1 减少5G
sudo lvreduce -L 5G /dev/vg1/lv1 直接设置成5G,注意这个5G必须小于原来的值
sudo lvreduce -l -50 /dev/vg1/lv1 减少50个PE大小
sudo lvreduce -l 1000 /dev/vg1/lv1直接设置成1000个PE,注意这个1000必须小于原来的值
剩下的,就是格式化和挂载了,超出了本文介绍的范围。如果逻辑分区卷轴已经挂载到文件系统了,那么我们在改变了卷轴大小后,需要使用
reszie2fs /dev/vg1/lv1 更新分区大小