前言

  在虚拟机中搭建好测试环境后发现目标程序需要的硬盘空间超出预期,创建虚拟机时设置的硬盘容量完全不够用,只能再添加一块硬盘。设想使用新硬盘的部分容量用于程序文件目录,新硬盘剩余空间留以备用。

目标

  为虚拟机添加一块 120GB 的新硬盘,用于 .../folder1.../folder2 目录。

  • .../folder1 使用新硬盘中的 50GB ;
  • .../folder2 使用新硬盘剩余的容量。

实操

先为虚拟机添加好硬盘之后在 GuestOS 中查看硬盘列表,新硬盘为 /dev/sdb

[root@vm ~]# fdisk -l
Disk /dev/sda: 85.9 GB, 85899345920 bytes, 167772160 sectors

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   167772159    82836480   8e  Linux LVM

Disk /dev/sdb: 128.8 GB, 128849018880 bytes, 251658240 sectors

查看下当前卷组 (VG) 的名称:

[root@vm ~]# vgdisplay
  VG Name               centos

使用 /dev/sdb 创建一个新的物理卷 (PV),并添加到 centos 卷组:

[root@vm ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.

[root@vm ~]# vgextend centos /dev/sdb
  Volume group "centos" successfully extended

创建一个名为 xxx1 的逻辑卷,并指定其容量大小和逻辑卷所属的卷组 (VG):

[root@vm ~]# lvcreate -n xxx1 -L 50G centos

确认当前使用的文件系统,然后将新建的逻辑卷使用相同的文件系统格式化:

[root@vm ~]# df -Th
Filesystem                    Type
/dev/sda1                     xfs

[root@vm ~]# mkfs.xfs /dev/centos/xxx1

创建 .../folder1 并挂载逻辑卷 xxx1 :

[root@vm ~]# mkdir .../folder1
[root@vm ~]# mount /dev/centos/xxx1 .../folder1

更新 /etc/fstab ,添加如下行:

/dev/centos/xxx1   .../folder1  xfs  defaults 0 0

reboot 后确认:

[root@vm ~]# df -h
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/centos-xxx1         50G   33G   18G  65% .../folder1

[root@vm ~]# lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb                   8:16   0  120G  0 disk
└─centos-xxx1       253:3    0   50G  0 lvm  .../folder1

使用剩余的容量

使用 centos 卷组中剩余的可用容量再创建一个逻辑卷 xxx2 并格式化:

[root@vm ~]# lvcreate -n xxx2 -l 100%FREE centos
[root@vm ~]# mkfs.xfs /dev/centos/xxx2

创建 .../folder2 并挂载逻辑卷 xxx2 :

[root@vm ~]# mkdir .../folder2
[root@vm ~]# mount /dev/centos/xxx2 .../folder2

编辑 /etc/fstab 追加如下行:

/dev/centos/xxx2   .../folder2  xfs  defaults 0 0

reboot 后确认挂载情况 lsblk