
VMWare Linux 虚拟机 CentOS Stream 系统磁盘扩容
一、前言
使用 VMWare 创建 Linux 虚拟机时通常只会默认分配 20G 的磁盘空间,跑一些环境时如果创建时没计算好大小很容易爆。像我的虚拟机就因为要上传一个数据集太大了需要磁盘扩容🙂。
这里我用的 Linux 是带图形化程序的,但可能有些小伙伴没有,完整的扩容过程都会用命令行执行🥰。
二、在 VMWare 中增加虚拟磁盘大小
打开 VMWare 虚拟机设置,选择硬盘,扩展磁盘容量,输入你想扩容到的大小(注意是扩容到,不是扩容多少),点击扩展。
三、了解 Linux 中的存储管理
此部分用于了解 Linux 是如何通过逻辑卷来管理磁盘存储空间的,好理解下一部分敲的命令都是在干什么🐱。不想了解原理的可以直接跳到下一部分🥰。
1、逻辑卷管理器(LVM)概述
- 物理设备:逻辑卷中的数据实际存储在物理设备当中等。想使用 LVM 必须将设备初始化为 LVM 物理卷。
- 物理卷 Physical Volume(PV):LVM 使用底层物理设备作为 LVM 物理卷。LVM 工具会将物理卷再划分为物理区块(PE),形成作为 PV 上最小存储块的小块数据。
- 卷组 Volume Group(VG):卷组是存储池,由一个或多个**物理卷(PV)**组成。
- 逻辑卷 Logical Volume(LV):逻辑卷根据卷组(VG) 中的空闲物理区块创建。
2、逻辑卷管理器(LVM)工作流程
- 首先确定用于创建物理卷的物理设备,并将这些设备初始化为 LVM 物理卷(PV)。
- 再从多个物理卷创建卷组(VG)。
- 又从卷组中的可用空间创建逻辑卷(LV)。
- 最后使用文件系统格式化**逻辑卷(LV)**并进行挂载。
四、在 Linux 虚拟机中进行存储空间扩容
1、逻辑卷扩容
lsblk
:列出系统中的块设备(硬盘、分区等)
可以看到 sda 是我们的虚拟物理磁盘(类型为 disk),大小是我的刚扩容后的 45G。
sda 下面有 3 个分区(类型为 part),分区相当于把 sda 一个物理设备划分成了 sda1、sda2、sda3 三个物理设备。sda1 和 sda2 这两个小分区与 BIOS 和 Linux 系统启动相关我们暂且不看。
sda3 下的 cs-root 逻辑卷(类型为 lvm),挂载目录为根目录 / 说明它为系统主要存储区域,属于 cs 卷组。我们就是要对它进行扩容。
parted /dev/sda
:使用 parted 工具对 sda 分区,进入交换模式
(parted) print
:打印分区信息,找到已使用空间的末尾位置,我的是 21.5GiB
(parted) mkpart primary 21.5GiB 100%
:从 sda 的 21.5GiB 开始到 sda 结束创建一个主分区
(parted) set 4 lvm on
:设置分区号为 4(也就是 sda4),标记为 lvm 分区(on 代表打开标记)
此时使用 lsblk
命令可以看到多了一个 sda4 分区,接下来将它添加到 cs 卷组中,再给 cs-root 逻辑卷扩容。
pvcreate /dev/sda4
:将分区 sda4 初始化为物理卷
vgextend cs /dev/sda4
:将物理卷 sda4 添加进 cs 卷组中
lvextend -l +100%FREE /dev/cs/root
:扩展卷组中所有剩余空间给逻辑卷 root
再使用 lsblk
查看就可以看到根目录的大小已经扩容成 40.5G 了😎👌。
2、文件系统扩容
逻辑卷扩容之后,还需要操作系统的文件系统能识别并使用这块新增加的磁盘空间。
lsblk -f
:查看分区文件系统,FSTYPE 列显示文件系统类型
一般都是 xfs,使用 xfs_growfs
命令将文件系统扩展至逻辑卷大小(如果是其他文件系统就自己问问 AI 🤔)。
xfs_growfs /dev/cs/root
:将逻辑卷 root 上的文件系统扩展至与其容量大小相同
这样就扩容成功了🥰。