VMware虚拟机,从厚置备改成精简置备,并减小硬盘的实际占用空间

工作中由于前期规划不足,导致磁盘空间分配较大,而且是厚置备。后期不再需要时,无法把用不到的空间释放出来,造成空间浪费。经过摸索和实验验证,总结出来一套方法。

风险提示:这个方法在我的环境中验证通过了,但不代表适用于所有情况,生产环境中务必慎重!

环境:Esxi 6.5,vCenter 6.5 U1e,Ubuntu 16.04

由于初始分配给Ubuntu 16.04虚拟机的硬盘空间是2T,后期数据量加大需要增加空间时,发现分区表不是GPT,无法超过2T。

导致已在vCenter里给虚拟机增加的空间浪费,也就是下图中的这个数字,只能调高,不能调低。

VMware官方对于这种情况提供了一种解决办法:通过迁移,改变虚拟磁盘格式,从“厚置备”改成“精简置备”,从而减小实际占用的空间。

官方网址:https://kb.vmware.com/s/article/2014832

通过官方的解决办法进行处理,如下图所示,结果喜忧参半

喜的是实际占用的空间确实减小了,忧的是减小的空间仅仅是未分配的unallocated这部分,前面已分配的空间,虽然文件已经删除了,但并没有减小。

通过查找各种资料,想到了一种方法,通过如下实验进行验证。

1.给虚拟机分配40G的厚置备硬盘空间并安装系统,安装完毕后不进行任何操作,直接关机。

2.关机后迁移虚拟机,虚拟磁盘格式从“厚置备”改成“精简置备”,已用空间减小到6GB,说明在没有写入数据的情况下,通过官方的方法是可以减小实际占用空间的。

3. 再次迁移虚拟机,把虚拟磁盘格式从“精简置备”改成“厚置备”,然后拷贝大文件把硬盘空间填充满。

4.把大文件删除,关机后迁移虚拟机,虚拟磁盘格式从“厚置备”改成“精简置备”。可以看到,虽然删除了大文件,但通过迁移的方式也仅仅能回收没有写入过数据的很小的一块空间。

5.用SystemRescueCD启动虚拟机,减小/分区的大小

fdisk –lu              #查看磁盘分区情况

e2fsck –f /dev/sda1        #检查文件系统

resize2fs /dev/sda1 10G        #把文件系统大小调整为10G

parted /dev/sda                                   #使用parted调整硬盘分区,注意是/dev/sda

(parted)resizepart 1 12G                    #调整分区大小,1代表/dev/sda1

#注意:parted分区大小计算方式不同,所以多留一些空间防止数据丢失

resize2fs /dev/sda1         #调整文件系统大小,使之与分区大小相匹配

6.重启,从本地硬盘启动,查看磁盘分区大小,可以看到/dev/sda1已经被压缩了。

7.在未分配的空间新建一个分区,然后全部置零

dd bs=64k if=/dev/zero of=/dev/sda2           #bs表示每次写的块的大小

在Gparted中可以看到File System变成了unknown

删除/dev/sda2,使之变成unallocated

8.关机后迁移虚拟机,把虚拟磁盘格式从“精简置备”改成“厚置备快速置零”。

之所以要多做这么一步,是因为上面的操作只是在把操作系统里把未使用的空间置零了,虚拟机并不知道,因此需要通过这步操作,让虚拟机把未使用的空间也置零。

9.再次迁移虚拟机,把虚拟磁盘格式从“厚置备”改成“精简置备”,可以看到已用空间减小到10GB,也就是实际占用的空间确实减小了。

通过上述实验,基本上验证了虚拟机回收空间的标准:

  1. 分配后尚未写入过数据;
  2. 分配后写入过数据,但在操作系统和虚拟机里均进行过置零操作。

以上方法回收的是Linux系统的空间,理论上Windows系统也可以通过这个方法回收,只是用到的软件不同。

由于这台占用了6T空间的虚拟机马上要迁移到物理机了,空间有限的问题不是很紧迫,因此等到迁移完成之后再测试,后面再把操作结果补充上来。

前期的规划很重要,没做好规划,后期就要浪费很多时间来填坑。

原文地址:https://www.cnblogs.com/saszhuqing/p/8743157.html

时间: 2024-10-11 14:11:59

VMware虚拟机,从厚置备改成精简置备,并减小硬盘的实际占用空间的相关文章

VMware厚置备延迟置零,厚置备置零,精简置备详解

本文详细介绍VMware厚置备延迟置零,厚置备置零,精简置备的概念及选择使用 1.厚置备延迟置零(zeroed thick) 以默认的厚格式创建虚拟磁盘.创建过程中为虚拟磁盘分配所需空间.创建时不会擦除物理设备上保留的任何数据,但是以后从虚拟机首次执行写操作时会按需要将其置零. 简单的说就是立刻分配指定大小的空间,空间内数据暂时不清空,以后按需清空. 2.厚置备置零(eager zeroed thick) 创建支持群集功能(如 FaultTolerance)的厚磁盘.在创建时为虚拟磁盘分配所需的

VMware厚置备延迟置零,厚置备置零,精简置备具体解释

本文具体介绍VMware厚置备延迟置零,厚置备置零,精简置备的概念及选择使用 1.厚置备延迟置零(zeroed thick) 以默认的厚格式创建虚拟磁盘.创建过程中为虚拟磁盘分配所需空间.创建时不会擦除物理设备上保留的不论什么数据,可是以后从虚拟机首次运行写操作时会按须要将其置零. 简单的说就是立马分配指定大小的空间,空间内数据临时不清空,以后按需清空. 2.厚置备置零(eager zeroed thick) 创建支持群集功能(如 FaultTolerance)的厚磁盘. 在创建时为虚拟磁盘分配

VMware vSphere中三种磁盘:精简置备/厚置备置零/厚置备延迟置零

有时候我们可能会遇到这样几种现象:虚拟机置备100G,但是平台上却显示虚拟机使用了500G存储? 平台上看到所有虚拟机加起来才3T,存储上5T的空间却没了,严重的还导致所有虚拟机宕机. 为啥?都是"精简置备"惹得货,不,"精简置备"是个好东西,只是你只看到了他的有点,却忘了它得缺点! 下面来了解一下VMware存储置备得几种方式吧. vSphere 支持两种模型的存储置备:厚置备和精简置备. 厚置备: 厚置备是传统存储置备模型.对于厚置备,预先提供大量存储空间以满足

VMware虚拟机安装Linux英文改中文系统并更新yum安装输入法

今天用VMware Workstation11时,出现了个"难题",在选择了系统盘后(我用iso镜像centos6.5)VMware会提示快速安装,安装后系统是英文版,而且找不到系统设置中的Language选项. 最后总结一下,主要是因为没有注意软件底部的提示.选择语言如下图所示: 更新yum源,网上有很多教程: 在安装完CentOS后一般需要修改yum源,才能够在安装更新rpm包时获得比较理想的速度.国内比较快的有163源.sohu源.这里以163源为例子. cd /etc/yum.

VMWare ESX/ESXi 虚拟机硬盘的厚置备(Thick Provision)与精简置备(Thin Provision)的转换

转自:http://www.wiser001.cn/2014/11/21/vmware-esxesxi-%E8%99%9A%E6%8B%9F%E6%9C%BA%E7%A1%AC%E7%9B%98%E7%9A%84%E5%8E%9A%E7%BD%AE%E5%A4%87thick-provision%E4%B8%8E%E7%B2%BE%E7%AE%80%E7%BD%AE%E5%A4%87thin-provision%E7%9A%84%E8%BD%AC/ VMWare ESX/ESXi 有两种硬盘置备

vmware虚拟机:centos7 下根目录扩容操作-解决ubuntu空间不够用的问题

本来在搭建集群,是用的vmware虚拟机,centos7,开始只分配了30G的硬盘,后来安装节点时候报磁盘空间不足,所以考虑扩展虚拟机系统硬盘空间, 1.    关闭虚拟机,虚拟机设置->硬盘->磁盘实用工具->扩展 原来的linux硬盘只有30G,扩展到100G,根据自己实际情况填写就行了, 2.    对新增加的硬盘进行分区.格式化[centos的root用户] 2.1对新增加的硬盘进行分区 输入命令:fdisk /dev/sda (因为上面选择的是扩展,即在原有的硬盘sda进行扩展

VMwareESX/ESXi与厚置备(thick)虚拟机磁盘转换精简置备(thin)磁盘

VMwareESX/ESXi与厚置备(thick)虚拟机磁盘转换精简置备(thin)磁盘 Thick转换为Thin模式没有直接的图形操作方式,需要使用SSH登录ESX/ESXi主机,默认ESX/ESXi主机没有开启SSH服务,需要先打开SSH;   1.开启SSH服务 选择虚拟机所在的ESX/ESXi主机,点击"配置"选项卡,点击"安全配置文件",点击服务面板的"属性"; 2.使用SSH工具登陆并生成Thin磁盘 用户名:root 密码:使用vS

[转发]VMware厚置备延迟置零 、 厚置备置零、精简置备 区别

1.厚置备延迟置零(zeroed thick) 以默认的厚格式创建虚拟磁盘.创建过程中为虚拟磁盘分配所需空间.创建时不会擦除物理设备上保留的任何数据,但是以后从虚拟机首次执行写操作时会按需要将其置零. 简单的说就是立刻分配指定大小的空间,空间内数据暂时不清空,以后按需清空. 2.厚置备置零(eager zeroed thick) 创建支持群集功能(如 FaultTolerance)的厚磁盘.在创建时为虚拟磁盘分配所需的空间.与平面格式相反,在创建过程中会将物理设备上保留的数据置零.创建这种格式的

VMWARE ESXI 虚拟硬盘的格式:精简置备、厚置备延迟置零、厚置备置零

精简置备(thin): 精简配置就是无论磁盘分配多大,实际占用存储大小是现在使用的大小,即用多少算多少.当客户机有输入输出的时候,VMkernel首先分配需要的空间并进行清零操作,也就是说如果使用精简配置在有IO的时候需要:等待分配空间和清零,这两个步骤完成后才能进行操作,对于IO叫频繁的应用这样性能会有所下降,虽然节省了存储空间. 即:实际使用多大,就分配多大,最大不会超过实际硬盘空间的大小 厚置备延迟置零: 默认的创建格式,创建过程中为虚拟磁盘分配所需空间.创建时不会擦除物理设备上保留的任何