Linux磁盘扩容 之 LVM 扩容之路

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

大家好,又见面了,我是你们的朋友全栈君。

引言

众所周知,我们大多数服务都是跑在 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~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151521.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matlab画图RGB调色

    matlab画图RGB调色1.使用matlab画图时,怎样才能调出顺眼的颜色呢?反正我之前使用红、绿、蓝三种颜色画图时,真的辣眼睛。下面这图是我根据一篇论文上的图像调的颜色:我也知道这并不好看,但是可以给各位提个醒、提个方向。代码也奉上:%画图%alpha是x轴的数据,result是y轴的数据,_*是实线画*形图,’Color'[0.250980.878430.81569]就是%颜色值,’MarkerFaceColor'[0.901960.901960.98039]往星形图中填充该颜色plot(alp

    2022年5月16日
    71
  • php替换中文字符串,php如何替换字符串里的字符「建议收藏」

    php替换中文字符串,php如何替换字符串里的字符「建议收藏」php替换字符串里字符的方法:1、通过substr_replace函数把字符串的一部分替换为另一个字符串;2、使用str_replace函数将一个字符串替换字符串中的另一些字符。PHP字符串替换用于从字符串中替换指定字符串。相关函数如下:substr_replace():把字符串的一部分替换为另一个字符串str_replace():使用一个字符串替换字符串中的另一些字符substr_replac…

    2022年5月10日
    37
  • pycharm多行代码同时缩进快捷键:Tab键,一次缩进四个字符

    pycharm多行代码同时缩进快捷键:Tab键,一次缩进四个字符pycharm使多行代码同时缩进鼠标选中多行代码后,按下Tab键,一次缩进四个字符

    2025年6月20日
    3
  • vim学习笔记

    vim学习笔记

    2022年2月6日
    53
  • 02、ADS使用记录之简单的带通滤波器设计

    02、ADS使用记录之简单的带通滤波器设计02、ADS使用记录之简单的带通滤波器设计

    2022年6月4日
    24
  • LLDP简介

    LLDP简介1.1.1LLDP产生背景目前,网络设备的种类日益繁多且各自的配置错综复杂,为了使不同厂商的设备能够在网络中相互发现并交互各自的系统及配置信息,需要有一个标准的信息交流平台。LLDP(LinkLayerDiscoveryProtocol,链路层发现协议)就是在这样的背景下产生的,它提供了一种标准的链路层发现方式,可以将本端设备的信息(包括主要能力、管理地址、设备标识、接口标识等)组织成不同的TLV(Type/Length/Value,类型/长度/值),并封装在LLDPDU(Lin…

    2022年5月28日
    91

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号