扩充虚拟机文件系统的磁盘空间

目录

问题描述

我们创建虚拟机的时候,创建引导会让我们设置硬盘的大小,但实际使用的时候经常会遇到磁盘空间使用完的情况。这篇文章就是我百度了各位大佬的操作后,用来记录如何扩充虚拟机的硬盘空间的步骤的,以便之后忘却时可以回顾。

扩充思路

1、向虚拟机申请扩充目标大小的空间
2、将新扩充的空间关联到一个新的分区
3、将新分区关联到目标磁盘

扩充步骤

1、查询当前的硬盘空间

查询语句:df -h

[root@kenny-centos8 ~]# df -h
Filesystem                          Size  Used Avail Use% Mounted on
devtmpfs                            888M     0  888M   0% /dev
tmpfs                               904M     0  904M   0% /dev/shm
tmpfs                               904M  8.6M  895M   1% /run
tmpfs                               904M     0  904M   0% /sys/fs/cgroup
/dev/mapper/cl_kenny--centos8-root   17G   17G  880K 100% /
/dev/sda1                           976M  127M  783M  14% /boot
tmpfs                               181M     0  181M   0% /run/user/0
[root@kenny-centos8 ~]#

可以看到我挂在到根目录下的磁盘空间一共17GB,已经使用完了。

2、在虚拟机层面扩展虚拟硬盘的大小

关闭虚拟机,在VMware Workstation界面选中要扩容的虚拟机,点击【虚拟机】–>【设置】,或者快捷键【CTRL + D】,然后【硬盘】–>【扩展】,输入希望扩展到的硬盘空间大小。注意如果虚拟机没有关闭,此时的扩展按钮是不可选中的灰色状态。
需要知道的是,这里仅仅是扩展虚拟硬盘的大小,而分区和文件系统并不受影响,可以理解为让虚拟机重新划分出来一些硬盘空间,但是现在并没有将这些空间与文件系统相关联。

3、开启虚拟机,查看虚拟硬盘空间是否已按照需求进行了扩展

查询语句:fdisk -l

[root@kenny-centos8 ~]# fdisk -l
Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb45bd429

Device     Boot   Start      End  Sectors Size Id Type
/dev/sda1  *       2048  2099199  2097152   1G 83 Linux
/dev/sda2       2099200 41943039 39843840  19G 8e Linux LVM


Disk /dev/mapper/cl_kenny--centos8-root: 17 GiB, 18249416704 bytes, 35643392 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/cl_kenny--centos8-swap: 2 GiB, 2147483648 bytes, 4194304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

可以看到/dev/sda磁盘已经是40GB(扩展的目标大小)了,但是磁盘的两个分区/dev/sda1 + /dev/sda2一共才1G+19G = 20GB(扩展前的大小)。这也证明了第二步的意义,即新扩展的20GB并没有关联到硬盘。
这里指明了一个扇区大小为512bytes。下面新建分区时可能要用到扇区大小计算

4、新建分区

扩充语句:fdisk /dev/sda (/dev/sda是扩充目标磁盘的名称)
命令讲解:
fdisk:对磁盘进行管理维护的命令
/dev/sda:命令操作的磁盘
依次输入执行以下命令

第一步 :n : 新建一个分区
第二步 :p: 指明新建的这个分区是主分区
第三步 :3: 指明新建分区的分区编号为3。这一步直接回车默认也是可以的。
第四步 : 回车默认。这一步是指明新建分区的起始扇区位置。
	仔细观察的话可以看到这个默认值正好是/dev/sda2分区的结束位置+1扇区。
	如果不想默认,希望自定义当前分区的开始位置,需要注意指定的位置是有范围的。
第五步 :回车默认。这一步是指明新建分区的结束扇区位置。
	默认是虚拟硬盘的结束扇区位置,比如我这里是83886079。
	如果不想默认,希望自定义当前分区的结束位置,需要注意指定的位置是有范围的。
	最终的新建分区大小计算:(结束扇区位置 - 开始扇区位置 + 1)* 512 bytes
第六步 : t:修改分区的类型的命令
第七步 : 3:目标修改分区的分区号。这里指明要修改第3号分区的分区类型
第八步 : 8e: 目标分区类型的编号。 
	如果不清楚编号,可以键入L来查看所有的编号
第九步 : w:保存修改并退出fdisk
[root@kenny-centos8 ~]# fdisk /dev/sda

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3): 3
First sector (41943040-83886079, default 41943040): 
Last sector, +sectors or +size{K,M,G,T,P} (41943040-83886079, default 83886079): 

Created a new partition 3 of type 'Linux' and of size 20 GiB.

Command (m for help): t
Partition number (1-3, default 3): 3
Hex code (type L to list all codes): L

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden or  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi ea  Rufus alignment
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         eb  BeOS fs        
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ee  GPT            
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        ef  EFI (FAT-12/16/
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f0  Linux/PA-RISC b
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f1  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f4  SpeedStor      
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      f2  DOS secondary  
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fb  VMware VMFS    
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fc  VMware VMKCORE 
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fd  Linux raid auto
1c  Hidden W95 FAT3 75  PC/IX           bc  Acronis FAT32 L fe  LANstep        
1e  Hidden W95 FAT1 80  Old Minix       be  Solaris boot    ff  BBT            
Hex code (type L to list all codes): 8e

Changed type of partition 'Linux' to 'Linux LVM'.

Command (m for help): w
The partition table has been altered.
Syncing disks.

5、告知系统重新读取分区表信息

执行语句:partprobe

6、查看分区信息,确定新分区已建立

执行命令:fdisk -l

[root@kenny-centos8 ~]# fdisk -l
Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb45bd429

Device     Boot    Start      End  Sectors Size Id Type
/dev/sda1  *        2048  2099199  2097152   1G 83 Linux
/dev/sda2        2099200 41943039 39843840  19G 8e Linux LVM
/dev/sda3       41943040 83886079 41943040  20G 8e Linux LVM


Disk /dev/mapper/cl_kenny--centos8-root: 17 GiB, 18249416704 bytes, 35643392 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/cl_kenny--centos8-swap: 2 GiB, 2147483648 bytes, 4194304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

这里可以看到新建的分区已经被系统查询到了。

7、格式化新分区

执行命令:mkfs.xfs /dev/sda3
分区建立后第一步就是格式化这个分区

[root@kenny-centos8 ~]# mkfs.xfs /dev/sda3
meta-data=/dev/sda3              isize=512    agcount=4, agsize=1310720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=5242880, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

新分区已经创建并格式化,现在的工作就是将它关联到目标磁盘上

8、查看要扩充的卷组名称

查看命令:vgdisplay

[root@kenny-centos8 ~]# vgdisplay
  --- Volume group ---
  VG Name               cl_kenny-centos8
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <19.00 GiB
  PE Size               4.00 MiB
  Total PE              4863
  Alloc PE / Size       4863 / <19.00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               oXKJs7-zCoX-MHU1-bMqZ-dJf9-6cnp-S1Qhrr

这里可以找到要扩充的物理卷的名称,我这里的目标名称为cl_kenny-centos8

9、查看要扩充的文件系统名称

查看命令:df -h

[root@kenny-centos8 ~]# df -h
Filesystem                          Size  Used Avail Use% Mounted on
devtmpfs                            888M     0  888M   0% /dev
tmpfs                               904M     0  904M   0% /dev/shm
tmpfs                               904M  8.7M  895M   1% /run
tmpfs                               904M     0  904M   0% /sys/fs/cgroup
/dev/mapper/cl_kenny--centos8-root   17G   17G  736K 100% /
/dev/sda1                           976M  127M  783M  14% /boot
tmpfs                               181M     0  181M   0% /run/user/0

我需要将根目录扩充,根目录对应的文件系统(逻辑卷)名称为cl_kenny–centos8-root。

10、开始扩充

进入LVM命令:lvm
将新建物理硬盘分区初始化为物理卷:pvcreate /dev/sda3
向卷组中添加物理卷:vgextend cl_kenny-centos8 /dev/sda3
将卷组的所有可用容量分配给该逻辑卷:lvextend -l +100%FREE /dev/mapper/cl_kenny–centos8-root
quit:退出lvm

[root@kenny-centos8 ~]# lvm
lvm> pvcreate /dev/sda3
WARNING: xfs signature detected on /dev/sda3 at offset 0. Wipe it? [y/n]: y
  Wiping xfs signature on /dev/sda3.
  Physical volume "/dev/sda3" successfully created.
lvm> vgextend cl_kenny-centos8 /dev/sda3
  Volume group "cl_kenny-centos8" successfully extended
lvm> lvextend -l +100%FREE /dev/mapper/cl_kenny--centos8-root
  Size of logical volume cl_kenny-centos8/root changed from <17.00 GiB (4351 extents) to 36.99 GiB (9470 extents).
  Logical volume cl_kenny-centos8/root successfully resized.
lvm> quit
  Exiting.

11、查看物理卷信息

查看命令:pvdisplay

[root@kenny-centos8 ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               cl_kenny-centos8
  PV Size               <19.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              4863
  Free PE               0
  Allocated PE          4863
  PV UUID               vetJwb-BtKk-M7TO-cVQM-2zpl-PMOa-kVGM2c
   
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               cl_kenny-centos8
  PV Size               20.00 GiB / not usable 4.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              5119
  Free PE               0
  Allocated PE          5119
  PV UUID               4xRbbh-mFWJ-QDb1-bP4W-lynV-zQOg-mAl5hQ

可以看到物理分区/dev/sda3已经转化为物理卷添加到卷组cl_kenny-centos8中。

12、同步文件系统

同步命令:xfs_growfs /

[root@kenny-centos8 ~]# xfs_growfs /
meta-data=/dev/mapper/cl_kenny--centos8-root isize=512    agcount=4, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=4455424, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 4455424 to 9697280

13、再次查看磁盘磁盘空间

查询命令:df -h

[root@kenny-centos8 ~]# df -h
Filesystem                          Size  Used Avail Use% Mounted on
devtmpfs                            888M     0  888M   0% /dev
tmpfs                               904M     0  904M   0% /dev/shm
tmpfs                               904M  8.7M  895M   1% /run
tmpfs                               904M     0  904M   0% /sys/fs/cgroup
/dev/mapper/cl_kenny--centos8-root   37G   18G   20G  47% /
/dev/sda1                           976M  127M  783M  14% /boot
tmpfs                               181M     0  181M   0% /run/user/0

可以看到磁盘空间已经由17GB扩展为37GB了。

参考网址:

https://blog.csdn.net/qq_26192391/article/details/107533506
https://blog.csdn.net/liujinwei2005/article/details/78439452
https://www.runoob.com/linux/linux-command-manual.html

上一篇:Predicting Lymph Node Metastasis Using Histopathological Images Based on Multiple Instance Learning


下一篇:如何实现CentOS服务器的扩容??