Linux磁盘扩容 之 LVM 扩容之路

引言

众所周知,我们大多数服务都是跑在 Linux上的,因为Linux命令行形式的特性,也导致了很多开发者只喜欢把Linux当做跑服务的机器,并不作为日常的使用。这样导致了我们只能记得常用的部署命令,但遇到一些复杂的Linux运维就不知如何下手了。这不,我这两天就遇到了服务器磁盘不足的问题,一开始只想Google一下快速搞定,结果还是得补补Linux中LVM的这块知识点才可以。为了方便后人快速扩容,特此记录。

LVM是什么

LVM(Logical Volume Manager)翻译过来是逻辑卷管理器,大家可以把它认为是一种"RAID"形式的统一将多个磁盘当一块来用的中间层(可以暂时这么理解,但其实原理不是一回事)。就是说假如我们有3块4T的硬盘,我们可以用LVM组成一个12T的硬盘来用,后期也可以非常安全的在线扩容。ps:现在Linux安装的时候其实默认就采用了LVM的形式。

LVM的组成

LVM从上至下主要由三部分组成:

  • Physical Volumes 物理卷:通过物理存储设备来创建,就是我们的磁盘;
  • Volume Group 卷组:有了PV(特指物理卷)后,我们就可以创建VG(特指卷组);
  • Logical Volume 逻辑卷:那么有了VG后,就可以创建可供我们最终存储文件挂载所使用的LV(逻辑卷)。

    为了方便大家理解,我就举个炸油条的例子。我们最底层的物理卷就相当于我们的一带面粉,从JD买回来两袋面粉后,我们需要对面粉进行和面,我们一袋面和一盆,和了两盆(这两盆就是PV)。然后我们可以把这两盆醒好的面放到一个大缸里待使用(大缸就是VG)。那炸油条的操作员就可以通过拿大缸里和好的面(LV),然后制作油条 。操作员想拿多少拿多少,对不对,这一缸面想怎么用就怎么用。至于这一缸面是从那个面粉里来的,不重要好吧,直接用!ps:其实PV在创建的时候会默认将面粉分成4M一份的形式,这个4M的最小单元叫PE(Physical Extend)。

开始扩容

那么了解了基本概念后,我们就要开始扩容了,我们先使用df -h看看我的服务器的可用空间:

太惨了吧!只有不到30G可用,这能干点啥,但现在硬盘至少都500G了怎么才这么点可用空间,应该是没用起来导致的。所以我们用lsblk来看看磁盘情况:

果然,可以看到我最大的一块LV分区(cach3-lvcache3)拥有484.2G的存储并没有使用。那么我们先来看看这台机器的油条生产线的情况如何:

首先看看PV面盆,使用pvs命令(精简)pvdisplay命令(详细):

我这个机器一共有三盆面粉,分别是:/dev/sda3 [54 G]、/dev/sda6 [279 G]、/dev/sda7 [204 G],还记得我们上面说的PE嘛,可以看到都是4M。

我们再来看看我的面缸:使用vgs命令(精简)vgdiplay命令(详细):

这里就比较明确了,我们原来没有把面盆和好的面放到一个缸里,而是放到了两个缸里:cache3centos。我空闲的那484 G的面缸原来一直都没用起来,我直接就是给他降级,注意:我们所有逆操作必须把比自己高一级或者同级的降一级再操作。这里我想把同为LG的cache3centos放到一起,也就是把cache3合并到centos里,就需要先把cache3降级。删除VG的指令是:vgremove cache3

好啦,这就把cache3这个缸给删了,放到了面盆里了。

我们现在知道面粉已经在dev/sda6dev/sda7盆里了,我们现在就要把这俩盆里的面给放到缸里。使用:vgextend centos /dev/sda6 命令。添加后可以看到VG(面缸)已经合并为一个,总大小是539G了,可以用的是484G。

我把这484G可用空间分别给到了现有home LV 380G、root LV 100G。这个时候再看我们的操作室LV就已经扩容啦!

咦~但我们的文件系统为啥还是这么小呢?这是因为逻辑卷是一个底层的东西,操作系统要使用这个东西都要进行一个格式化也就是创建文件系统,而文件系统在创建的时候大小已经固定了,我们拉伸了底层的逻辑卷却没有更新这个文件系统。这个时候操作系统还没法识别到这个新的空间,所以我们要更新一下让操作系统知道我们已经扩容啦!不同格式的分区更新文件系统的方式也不一样。需要查看一下你的文件系统是ext4还是xfs。如果是ext4使用:resize2fs /dev/centos/root来更新,如果是xfs 使用:xfs_growfs /dev/mapper/centos-root命令。怎么查看自己分区的格式呢?使用:cat /etc/fstab | grep centos-home命令

可以看到,这里我是xfs,所以我使用:xfs_growfs /dev/mapper/centos-root命令。

Yeah~ 终于搞定了!

总结

整体来说LVM还是非常方便的,可以非常安全的对我们的文件系统进行调整。希望对你有帮助!

See you~

相关推荐
wdxylb5 小时前
云原生俱乐部-shell知识点归纳(1)
linux·云原生
飞雪20076 小时前
Alibaba Cloud Linux 3 在 Apple M 芯片 Mac 的 VMware Fusion 上部署的完整密码重置教程(二)
linux·macos·阿里云·vmware·虚拟机·aliyun·alibaba cloud
路溪非溪7 小时前
关于Linux内核中头文件问题相关总结
linux
Lovyk9 小时前
Linux 正则表达式
linux·运维
Fireworkitte10 小时前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
sword devil90011 小时前
ubuntu常见问题汇总
linux·ubuntu
ac.char11 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
淮北也生橘1212 小时前
Linux的ALSA音频框架学习笔记
linux·笔记·学习
华强笔记15 小时前
Linux内存管理系统性总结
linux·运维·网络
十五年专注C++开发16 小时前
CMake进阶: CMake Modules---简化CMake配置的利器
linux·c++·windows·cmake·自动化构建