本地安装了虚拟机,系统为centos7,使用过程中,渐渐地发现磁盘容量不够用了,于是在虚拟机中新增了一块硬盘。

进入系统内查看:

sdb是新增的硬盘,大小为40g。

接下来有两种方式,一种是普通方式直接挂载。https://blog.csdn.net/qq_39314099/article/details/106200322

这样的话只有在挂载点的目录下操作才能使用到这个新硬盘,不是很理想。

还有一种方式lvm,逻辑卷管理的方式。

LVM简单介绍:

它是 Linux 下对磁盘分区进行管理的一种机制。LVM 是建立在磁盘分区和文件系统之间的一个逻辑层,系统管理员可以利用 LVM 在不重新对磁盘分区的情况下动态的调整分区的大小。如果系统新增了一块硬盘,通过 LVM 就可以将新增的硬盘空间直接扩展到原来的磁盘分区上。

通过 LVM 技术,可以屏蔽掉磁盘分区的底层差异,在逻辑上给文件系统提供了一个卷的概念,然后在这些卷上建立相应的文件系统。下面是 LVM 中主要涉及的一些概念。
物理存储设备(Physical Media):指系统的存储设备文件,比如 /dev/sda、/dev/sdb 等。
PV(物理卷 Physical Volume):指硬盘分区或者从逻辑上看起来和硬盘分区类似的设备(比如 RAID 设备)。
VG(卷组 Volume Group):类似于非 LVM 系统中的物理硬盘,一个 LVM 卷组由一个或者多个 PV(物理卷)组成。
LV(逻辑卷 Logical Volume):类似于非 LVM 系统上的磁盘分区,LV 建立在 VG 上,可以在 LV 上建立文件系统。
PE(Physical Extent):PV(物理卷)中可以分配的最小存储单元称为 PE,PE 的大小是可以指定的。
LE(Logical Extent):LV(逻辑卷)中可以分配的最小存储单元称为 LE,在同一个卷组中,LE 的大小和 PE 的大小是一样的,并且一一对应。
可以这么理解,LVM 是把硬盘的分区分成了更小的单位(PE),再用这些单元拼成更大的看上去像分区的东西(PV),进而用 PV 拼成看上去像硬盘的东西(VG),最后在这个新的硬盘上创建分区(LV)。文件系统则建立在 LV 之上,这样就在物理硬盘和文件系统中间添加了一层抽象(LVM)。下图大致描述了这些概念之间的关系:

对上图中的结构做个简单的介绍:
两块物理硬盘 A 和 B 组成了 LVM 的底层结构,这两块硬盘的大小、型号可以不同。PV 可以看做是硬盘上的分区,因此可以说物理硬盘 A 划分了两个分区,物理硬盘 B 划分了三个分区。然后将前三个 PV 组成一个卷组 VG1,后两个 PV 组成一个卷组 VG2。接着在卷组 VG1 上划分了两个逻辑卷 LV1 和 LV2,在卷组 VG2 上划分了一个逻辑卷 LV3。最后,在逻辑卷 LV1、LV2 和 LV3 上创建文件系统,分别挂载在 /usr、/home 和 /var 目录。

扩容:

  1. 建立新分区:
    使用 fdisk -l 命令查看:



    可以看到 /dev/sdb 是新增的硬盘。
    执行 fdisk /dev/sdb 对 sdb 进行分区。



    输入 p 查看分区表,上图显示 sdb 并没有分区。(输入m获取帮助信息)

    接下来进行分区,输入 n 建立新分区,接着输入 p 选择主分区,分区号和扇区号默认即可,这样会将整个硬盘都添加到新分区中。



    如上图,分区添加成功。输入 w 写入硬盘。

    再次查看:



    多了一个新分区 sdb1。
  2. 创建物理卷pv:

    pvcreate /dev/sdb1



    查看物理卷pv,pvdisplay

  3. 扩容卷组vg:

    查看卷组 vgdisplay



    将新创建的 物理卷pv :/dev/sdb1 追加到当前卷组里,也就是 "centos" 中,对应上面的 VG Name,扩容卷组。

    vgextend centos /dev/sdb1


    可以看到,卷组已经扩容成功。
  4. 逻辑卷扩容 LV:

    lvdisplay,查看当前逻辑卷



    扩容逻辑卷



    扩容有两种方法(下图为另一个机器的样例):


    L:指定大小,但是可能会出现我上面的情况,指定的大小不合适。
    l:让系统来分配所有空闲空间。
  5. 扩容文件系统:
    上面的操作是给逻辑卷进行扩容,还需要最后给文件系统扩容。

    xfs_growfs /dev/centos/root

查看现在的磁盘使用情况,已经是成功扩容后的。

参考资料:lvm介绍:https://www.cnblogs.com/sparkdev/p/10130934.html

centos7根分区扩容(挂载新磁盘) https://www.jianshu.com/p/82385cca91c0


使用现有的逻辑分区给root扩容:

  1. 首先,将逻辑卷缩小容量,例如:
    root分区过小,home分区过大

    此时需要先缩减home分区的大小:
    # 卸载home分区
    umount /home
    # 缩小 3.5T
    lvreduce -L -3.5T /dev/centos/home

    缩减完以后可以看到,卷组已经有空闲的3.5T空间了

  2. 扩容root分区:
     

    # 使用全部空闲空间
    lvextend -l+100%FREE /dev/centos/root

  3. 扩容文件系统:

  4. 处理home分区,先格式化下home分区
     

    # 因为home分区已经存在文件系统,所以要加 -f 参数强制格式化
    mkfs.xfs -f /dev/centos/home



    然后将home分区重新挂载到home目录下

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐