多语言展示
当前在线:558今日阅读:152今日分享:13

VMware使用之:[1]动态扩展硬盘不增长了?

童鞋们在使用VMware Workstation虚拟机的过程中有没有遇到过动态扩展硬盘不自动增长的情况?这是怎么回事呢?
工具/原料
1

VMware Workstation

2

Linux

问题描述
1

我们知道VMware Workstation虚拟机的硬盘有两种模式:预分配和动态扩展。如果新建虚拟机设置硬盘时没有勾选“立即分配所有磁盘空间(Allocate all disk space now)”,那么硬盘就是动态扩展的,虚拟机磁盘文件*.vmdk最初会非常小,随着安装应用程序、文件与数据,磁盘文件*.vmdk会越来越大。新建虚拟机时如果使用标准配置,默认的都是动态扩展硬盘。

2

这样的好处是节省宿主机的硬盘空间,而且新建虚拟机时比较快。当然也有缺点:磁盘性能没有“预分配”模式好。

3

在虚拟机管理配置界面可查看硬盘“当前大小(Current size)”和“最大大小(Maximum size)”。不过奇怪的是,笔者发现虚拟机安装的Linux操作系统在硬盘“当前大小”还未达到“最大大小”时,竟然频频提示“磁盘剩余空间不足”。这是怎么回事,为什么不自动增长了呢?

问题分析
1

进Linux用“df -h”命令查看分区情况,貌似的确是VMware中显示的“当前大小”5.6G。

2

再用“fdisk -l”命令查看硬盘信息:

3

咦,硬盘/dev/sda是“最大大小”8G啊。/sda被分为两个分区/sda1及/sda2,其中/sda1为boot分区,/sda2为LVM分区,它又分为/dev/mapper/***_root和/dev/mapper/***_swap两个分区,/dev/mapper/***_root即/根分区,那2G的/dev/mapper/***_swap是什么呢?

4

再用“cat /etc/fstab”命令查看一下挂载配置文件:

5

/dev/mapper/***_swap原来是Linux操作系统的swap分区。swap分区也可用free命令查看到。那什么是swap分区呢?

6

swap即交换分区,类似于Windows的虚拟内存(pagefile.sys)。当内存不足时,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的问题,以提升系统运行效率。

原因找到了
1

原来VMware计算硬盘“当前大小”时并未把swap分区算进去,真是害人不浅。而此时笔者的虚拟机Linux硬盘确实已经满了,无法再增长了。

2

虚拟机安装的Windows操作系统同样存在这种情况。当进虚拟机操作系统中看到硬盘空间已满时(如图)。

3

在VMware管理配置界面看到硬盘“当前大小”却是6.5G,那“不见了”的1.5G便是Windows的虚拟内存pagefile.sys。而此时虚拟机硬盘确实已满了,无法再增长。

那么当虚拟机硬盘已满时怎么办呢?有三种解决方法:
1

在VMware中扩展原硬盘容量。

2

在VMware中再添加一块虚拟硬盘。

3

如果童鞋们的电脑(即宿主机)硬盘空间非常吃紧,可以进虚拟机Linux操作系统中减小swap分区容量。Windows操作系统的话则是减小虚拟内存pagefile.sys容量。

推荐信息