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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ls 命令还能这么玩?看一下这 20 个实用范例

    ls 命令还能这么玩?看一下这 20 个实用范例

    2021年10月21日
    48
  • 软件测试之用例编写的八大要素「建议收藏」

    软件测试之用例编写的八大要素「建议收藏」用例编写的八大要素1、用例编号:产品名-测试阶段-测试项XXX英文(wechat_st_register_001)2、测试项目:功能模块–子项目3、测试标题:测试点的细化,一行一个测试点4、重要级别P1(冒烟)P2,P3,P4,P5.—-high,medium,low5、预置条件:前提条件,否则无法执行6、测试输入:跟步骤一起7、操作步骤:明确每一个步骤。非常的详细8、预期结果:唯一用例评审用例评审的流程…

    2022年6月28日
    21
  • ICMP报文的类型

    ICMP报文的类型ICMP经常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。ICMP报文通常被IP层或更高层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。ICMP报文是在IP数据报内部被传输的,如图6-1所示。ICMP的正式规范参见RFC792[Posterl1981b]。ICMP…

    2022年5月29日
    25
  • Spring常用的三种注入方式「建议收藏」

    Spring常用的三种注入方式「建议收藏」Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方法注入,setter注入,基于注解的注入。构造方法注入先简单看一下测试项目的结构,用maven构建的,四个包:entity:存储实体,里面只有一个User类dao:数据访问,一个接口,两个实现类service:服务层,一个接口,一个实现类,实现类依赖于IUserDaotest:测试包在spring的配置文

    2022年10月22日
    0
  • 第四次连任MVP

    第四次连任MVP

    2021年8月1日
    57
  • horizontalAccuracy 检测定位成功

    horizontalAccuracy 检测定位成功-(void)findCurrentLocation{self.isFirstUpdate=YES;[self.locationManagerstartUpdatingLocation]

    2022年7月4日
    31

发表回复

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

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