VMware CentOS Linux磁盘空间扩容过程详解

本文详细介绍了在VMware环境下,针对使用LVM的CentOS Linux系统如何进行磁盘扩容。首先,通过VMware增加虚拟机磁盘空间,然后在CentOS中创建新的partition,接着创建Physical Volume (PV) 并将其加入到Volume Group (VG) 中。接下来,扩展原有的Logical Volume (LV),最后调整文件系统大小以完成扩容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、基本概念

二、环境信息

三、扩容前

四、扩容步骤

  1、VMware中新增硬盘

  2、Linux中查看新盘

  3、(二选一)创建MBR类型partition

  3、(二选一)创建GPT类型partition

  4、创建PV并纳入VG

  5、对原LV扩展容量

  6、扩大文件系统


一、基本概念

  • 磁盘Disk:包括物理磁盘、逻辑磁盘。磁盘是一个泛指概念,既包括采用LVM的PV和LV可统称为磁盘,也包括没有采用LVM管理也可称为磁盘。
  • 分区Partition:对磁盘进行分割,每个分区的起止位置由Partition Table记录并控制。
  • 文件系统FileSystem:是操作系统使用磁盘的一种方法、结构。常见的的文件系统类型包括:reiserfs/ext3/ext4/xfs,现在主要使用xfs。 另外还有用于交换区的文件系统swap(也称为虚拟内存)、用于将内存作为文件存储的文件系统tmpfs(上面的数据不是永久存储,断电重启会丢失)等等。
  • LVM(Logical Volume Manager)概念:
    • PV物理卷Physical Volume。相对于Linux来说,可等价视为物理磁盘(或物理磁盘上某个分区),既块设备。更准确说,在LVM中需要将物理磁盘(或物理磁盘上某个分区)通过PV相关命令将其创建后转为PV使用。一个PV的空间受限于物理磁盘(或物理磁盘上某个分区)。
    • VG卷组Volume Group。将一个或多个PV共同组成一个大的空间既VG,这个空间可以超越单个物理磁盘,甚至可以将不同物理型号的块设备共同组成一个VG。
    • LV逻辑卷Logical Volume。将VG卷组大空间按需重新划分,重新分割为不同的逻辑卷,以供不同用途使用。LV逻辑卷的划分分割不再受单个物理磁盘限制,既LV和PV没有直接关系。

二、环境信息

  • 虚拟化软件:VMware Workstation 16+
  • 虚拟机:CentOS 7.9 64bit  

背景:在VMware 中给Linux虚拟机已经分了40GB单磁盘,希望扩大容量,因为Linux是使用LVM(Logical Volume Manager)所以扩充磁盘比较灵活。步骤如下

三、扩容前

1、扩容前检查空间使用率和文件系统。通过df -T命令查看结果如下,文件系统FileSystem的类型为xfs。期望对挂载根目录的文件系统扩大空间至100GB。其中:

  • /dev/mapper/centos-root为软链接,实际指向/dev/dm-0,既为被文件系统格式化的LV。而名为“/dev/vg_centos/root”的LV也为软链接,实际也指向/dev/dm-0(具体见后文命令截图)
  • /dev/sda1不是采用LVM管理(见fdisk -l和parted -l命令结果),不涉及LVM。
[root@centosa ~]# df -T    (加-T选项可展示文件系统类型。 df命令不展示交换区)
Filesystem                 Type     1K-blocks    Used Available Use% Mounted on
devtmpfs                   devtmpfs   1913716       0   1913716   0% /dev
tmpfs                      tmpfs      1930644    1052   1929592   1% /dev/shm
tmpfs                      tmpfs      1930644   12800   1917844   1% /run
tmpfs                      tmpfs      1930644       0   1930644   0% /sys/fs/cgroup
/dev/mapper/vg_centos-root xfs       38770180 5766476  33003704  15% /
/dev/sda1                  xfs        1038336  171860    866476  17% /boot
tmpfs                      tmpfs       386132       0    386132   0% /run/user/1000

#注意:上面的/dev/mapper/centos-root为链接,实际指向/dev/dm-0
#      而/dev/dm-0或/dev/dm-1为文件系统,也是LV(既被文件系统格式化的LV)


[root@centosa ~]# ls -l /dev/mapper/
total 0
crw-------. 1 root root 10, 236 Sep 25 11:20 control
lrwxrwxrwx. 1 root root       7 Sep 25 11:20 vg_centos-root -> ../dm-0
lrwxrwxrwx. 1 root root       7 Sep 25 11:20 vg_centos-swap -> ../dm-1

2、扩容前先查看磁盘Disk相关信息。通过fdisk -lparted -l 命令可查看磁盘(包括物理磁盘和逻辑磁盘)及其分区信息。注意磁盘Disk和分区Partition的概念区分。

下面结果中:

  • 物理磁盘为:/dev/sda。 其中/dev/sda磁盘有两个分区sda1和sda2,其中sda1没有采用LVM管理(不涉及LVM相关概念),sda2采用了LVM管理(其作为PV物理卷)
  • 逻辑磁盘为:/dev/mapper/centos-root、/dev/mapper/centos-swap。既为被文件系统格式化的LV。

 注意其中Disk label type或Partition Table分区类型:

  • dos或者msdos 表示使用的是MBR(Master Boot Record)分区表。其分区空间不能超过2TB,最多支持4个主分区。如果需要超过4个分区,可以将其中一个主分区设置为扩展分区,再在其中创建逻辑分区。总的来说,MBR最多支持4个主分区或3个主分区加多个逻辑分区。MBR历史悠久,兼容性更广。
  • gpt 表示使用的是GPT(GUID Partition Table)分区表。其分区空间理论可最大支持18EB,支持多达128个主分区,无需创建扩展或逻辑分区。GPT需要64位操作系统,并且做系统盘启动需支持UEFI的BIOS。

对于MBR类型,可使用fdisk命令或者parted命令处理。

对于GPT类型,应使用parted命令或者gdisk命令处理,fdisk对GPT仅可查看,无法处理(高版本fdisk已经开始支持)!

2、通过lsblk -plsblk -f 命令查看块设备信息。包括磁盘关系、分区、文件系统、挂接点。

[root@centosa ~]# lsblk -p
NAME                           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
/dev/sda                         8:0    0   40G  0 disk 
├─/dev/sda1                      8:1    0    1G  0 part /boot
└─/dev/sda2                      8:2    0   39G  0 part 
  ├─/dev/mapper/vg_centos-root 253:0    0   37G  0 lvm  /
  └─/dev/mapper/vg_centos-swap 253:1    0    2G  0 lvm  [SWAP]
/dev/sr0                        11:0    1 55.9M  0 rom  

[root@centosa ~]# lsblk -f
NAME               FSTYPE      LABEL        UUID                                   MOUNTPOINT
sda                                                                                
├─sda1             xfs                      55bcf9ce-3264-4633-950b-5faddc0ef994   /boot
└─sda2             LVM2_member              Z53qHA-kez0-H4hc-wMmu-8g3o-oeec-tPVU2q 
  ├─vg_centos-root xfs                      8d72b4ab-80ae-4ae9-a7a3-f5162718bde5   /
  └─vg_centos-swap swap                     3c339105-b7db-43f6-9c14-23f1c488d54e   [SWAP]
sr0                iso9660     VMware Tools 2020-03-24-18-03-49-00  

四、扩容步骤

  1、VMware中新增硬盘

     对于VMware Workstation,无法直接扩展原磁盘(VMware vCenter可以)。因此,只能在VMware中新增一块盘。关闭VMware虚拟机后,新增一块SCSI硬盘,如下图。

新增后,重启VMware虚拟机。

  2、Linux中查看新盘

   增加新磁盘并启动虚拟机后,通过df命令查看文件系统,没有任何变化。

   但通过fdisk -lparted -l命令可以看到多了一块名为  /dev/sdb  的物理磁盘Disk。

  3、(二选一)创建MBR类型partition

分区有多种类型,常见为:MBR(命令中显示为dos后msdoc)、GPT(命令中显示为gpt)。以下通过以下fdisk /dev/sdb命令将磁盘创建创建为MBR类型的partition。

一个磁盘可创建多个partition,这里将整个磁盘空间全部分片给一个分区。

可以通过lsblk -p或fdisk -l命令查看刚创建的partition为:/dev/sdb1    (注意这个sdb1是partition,而sdb是物理磁盘)

  3、(二选一)创建GPT类型partition

分区有多种类型,常见为:MBR(命令中显示为dos后msdoc)、GPT(命令中显示为gpt)。以下通过以下parted /dev/sdb命令将磁盘创建创建为GPT类型的partition。

一个磁盘可创建多个partition,这里将整个磁盘空间全部分片给一个分区。

可以通过lsblk -p查看刚创建的partition为:/dev/sdb1    (注意这个sdb1是partition,而sdb是物理磁盘)。

  4、创建PV并纳入VG

    这时候通过pvdisplay 和 vgdisplay 命令还看不到刚才新增的Partition。

   先对刚创建partition通过pvcreate 命令将其转为为PV,PV名也为:/dev/sdb1

   再通过 vgextend命令将此新PV纳入到VG中(在本机上的VG名为"vg_centos")

然后,再次通过pvdisplay vgdisplay 命令,就能看到了。并且VG的总容量也增加了,VG新增的空间是Free空闲待分配的。空闲:15359个PE * 每PE大小为4MiB = 61436MiB。

  5、对原LV扩展容量

    在扩LV之前,通过lvdisplay命令查看当前的LV情况。可以看到:系统已存在两个LV,都是基于名为“vg_centos”的VG上分配的空间。我们需扩容的对象是名为“ /dev/centos/root” 的LV。

注:/dev/mapper/centos-root为软链接,实际指向/dev/dm-0,既为被文件系统格式化的LV。 名为“/dev/vg_centos/root”的LV也为软链接,实际指向/dev/dm-0

   对此,我们将上步中VG中新增Free空闲待分配的60GB=61440m,全部分配给名为“ /dev/centos/root” 的LV。 以下命令-L选项指向需要增加的空间大小,单位可以为k、m、g、t等

  • lvextend -L +61440m LV名称    (按大小指定需要增加的空间大小,有个加号表示增加)

注意:通过vgdisplay命令查看VG的free空闲空间不是严格的60GB,而是少一个PE(一个PE为为4MB),因此扩展的空间大小不是61440m,而是61436m。

若命令中-L选项指定61440m时,在低版本lvextend命令可能会报“ Insufficient free space: 15360 extents needed, but only 15359 available”,这调整命令参数中空间大小即可。而高版本的lvextend命令即使-L数字有误,命令会自动适应,自动调整大小并resized成功

[root@centosa ~]# lvextend -L +61440m /dev/vg_centos/root
  Size of logical volume vg_centos/root changed from 36.99 GiB (9470 extents) to 96.99 GiB (24830 extents).
  Logical volume vg_centos/root successfully resized.
[root@centosa ~]# 
[root@centosa ~]# 
[root@centosa ~]# vgdisplay 
  --- Volume group ---
  VG Name               vg_centos
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               98.99 GiB
  PE Size               4.00 MiB
  Total PE              25342
  Alloc PE / Size       25342 / 98.99 GiB
  Free  PE / Size       0 / 0   
  VG UUID               1F1oTK-AAtW-44L4-bQCB-3HzO-gEEM-GRqs2K

 执行完LV扩容后,再看VG信息其Free空闲待分配剩余为零。

  6、扩大文件系统

    这时通过df查看当前文件系统,仍未变化。这是因为尽管LV容量扩大了,但文件系统还未扩大。

   通过df -T命令查看当前文件系统的类型:

  • 如果是ext4等文件系统,则通过resize2fs命令扩大。 
  • 如果是xfs文件系统,则通过xfs_growfs命令来完成文件系统扩大。 xfs_growfs命令的-D选项指定扩大的目标大小,若不指定则表示尽可能扩到最大。

   执行完后再次通过df查看文件系统空间情况,可以看到空间已经扩大。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值