VMWare ESX/ESXi 虚拟机硬盘的厚置备(Thick Provision)与精简置备(Thin Provision)的转换
VMWare ESX/ESXi 有两种硬盘置备方式,厚制备(thick)和精简置备(Thin)
有时可能会由于性能问题或磁盘空间需要将虚拟机磁盘在两种模式间进行互转,虽然在虚拟机配置页面是没有办法修改的,但是这个东西实际上是能改的。
硬盘置备方法在这里看:
硬盘转换之前必须关闭客户机!!!
一、精简置备转厚置备
其实这个操作是比较简单的。如果在上面的窗口里看到硬盘是精简置备模式,即可执行转换操作。
两种方法:
方法一:VMWare官方方法
VMWare如是说:
· 单击虚拟机的摘要选项卡。
· 在资源下,右键单击虚拟机所在的数据存储,然后单击浏览数据存储。
· 双击虚拟机文件夹以显示 .vmdk 文件。
· 右键单击 .vmdk 文件,然后单击扩充。扩充选项会将磁盘转换为厚置备。
如果扩充按钮是灰色的,有可能是因为:1、没关机;2、该硬盘已经是厚置备了。
方法二:esxcli命令转换
其实方法一比较简单。当然,也可以用esxcli去把它转换一下,不过显然没有鼠标点点方便。方法二的具体操作,请参见厚置备转精简置备章节。。。然后照猫画虎一下。。。
实际上还有个方法三,就是把精简置备克隆成厚制备,不过这个方法,我个人认为,既然已有方法一,要不是需要多台虚拟机的话,这个方法就是一个脱裤子放屁的做法。。。做法同样参考下一章节。。。
扩充个这破玩意老慢了。。。扩一个得半天。。。
二、厚置备转精简置备
方法依旧有两种(后面有好方法)
方法一:VMWare推荐方法
这个其实VMWare也给出了官方的解决方案,不过挺坑的。
VMWare如是说:
要通过更改数据存储和使用脱机虚拟机迁移将虚拟机基础磁盘从厚置备转换为精简置备,请执行以下操作:
注意:此过程需要多个数据存储。如果仅存在一个数据存储,可以将虚拟机克隆到带有精简置备磁盘的目标虚拟机,而不需要执行迁移。
1. 关闭虚拟机电源。
2. 右键单击虚拟机,然后单击迁移。
3. 单击更改数据存储。
4. 单击下一步,然后选择一个与当前数据存储不同的数据存储。
5. 在下拉列表中选择精简置备虚拟磁盘格式。
6. 单击下一步,然后单击完成。可以在 vCenter Server 的任务和事件视图中监控转换进度。
按照下面的步骤从 vSphere Webclient 中对 vSphere 5.5 执行 Storage vMotion 操作:
1. 右键单击虚拟机,然后选择迁移。
1. 要找到虚拟机,请选择数据中心、文件夹、群集、资源池、主机或 vApp。
2. 单击相关对象选项卡,然后单击虚拟机。
2. 选择更改数据存储,然后单击下一步。
3. 为虚拟机的磁盘选择精简置备,然后单击下一步。
4. 从虚拟机存储策略下拉菜单中选择虚拟机存储策略,然后单击下一步。
5. 选择用于存储虚拟机文件的数据存储位置,然后单击下一步。
6. 检查“检查选择”页面上的信息,然后单击完成
他这个方法实际上是说有多个存储的话,可以使用迁移的方式。不过我们有的时候只有一个存储,则需要以克隆的方式。
右键点击要转换的虚拟机,然后点击克隆
给他一个新的名字,指定一个位置,然后下一步
选择一个主机,下一步
重点来了,选择存储器的时候,这里有个下拉菜单,选择精简置备,下一步,然后后面的操作,按需进行。
然后,还是那句话,老慢了。。。我一个20G的Windows2003,克隆了三个多小时。。。
方法二:esxcli方法
对于我们这种没有多个存储的人们以及不想克隆虚拟机的强迫症患者来说,怎么办呢?那么,好方法来了!用ESX的CLI可以很好的解决这个问题。
首先,需要启动ESX服务器的SSH功能,点击主机->配置->安全配置文件->属性->SSH->选项->启动。
如下图:
然后用一些诸如Putty、SecureCRT之类的SSH软件连接一下服务器,至于怎么连接,怎么登陆,此处还是别介绍了吧。。。
实际上这个ESXi的CLI就和Linux命令差不多,cd啊vi啊之类的基本命令都能用。本次用的主要工具有mv、cd、vi和vmkfstools。vmkfstools就是一个转换磁盘的工具(至少我理解是这样的)可以克隆磁盘啊、填零啊之类的。
先说一点,就是VMWare的磁盘分为两个主要文件,一个是XXX.vmdk还有一个是XXX-flat.vmdk。XXX.vmdk是可以用vi打开编辑的,是个文本文件,至于flat的文件,看他大小就知道这个才是真正存数据的东西!但貌似XXX.vmdk是比较重要的,个人理解应该是这个文件是整个虚拟磁盘的描述,各项操作通过调取这个文件中记录的配置,进而确定实际数据磁盘文件的读取方式。VMWare虚拟机的.vmx文件也是这样。启动虚拟机,VMWare需要先读取.vmx中对虚拟机的配置描述,进而按照配置引导虚拟机。.vmx文件中也保留着虚拟磁盘镜像名称的配置。当然,vmx文件中也写了应该加载哪个vmdk文件。
vmkfstools这个命令的语法是:
# vmkfstools -i <Source-File> -d {thick|thin} <Dest-File>
-i选项为克隆磁盘镜像
Source-File为源文件,比如XXX.vmdk
-d是克隆目标文件选项,后面可以加thick或thin,不加则原封不动克隆一份,源文件是什么置备方式,目标文件就是什么样
Dest-File为目标文件,比如XXX.vmdk
使用该命令转换vmdk文件,其首先会检查vmdk中对数据文件的描述。若找不到描述的flat.vmdk则会报错。转换后,新的vmdk文件中的flat.vmdk会自动更改为新的flat.vmdk名。
比如,原文件为old.vmdk及old-flat.vmdk,厚制备,使用vi编辑器打开old.vmdk会发现,其中有如下一行:

若希望转换该文件为
那么,使用vmkfstools命令转换磁盘为精简置备的命令如下:
# vmkfstools -i old.vmdk -d thin new.vmdk
经过漫长的等待之后,即会生成两个新文件,new.vmdk和new-flat.vmdk。转换后,上图所述区域会自动变为新的文件名,也就是new-flat.vmdk。
但是由于vmx文件中描述的虚拟机磁盘文件为old.vmdk,那么,我们需要将新生成的两个文件new.vmdk及new-flat.vmdk重命名为old.vmdk和old-flat.vmdk,并将上述文件中的相关配置修改为新的磁盘文件。
或者修改.vmx文件指向新的磁盘文件,vmx文件修改下图所示位置。

不过据说此举需要重新装载vmx文件重新加载虚拟机,具体我没试过。
至此,磁盘转换工作完成。
VMWare ESX/ESXi 虚拟机硬盘的厚置备(Thick Provision)与精简置备(Thin Provision)的转换的更多相关文章
- Vmware esx/esxi Vlan三种配置模式(VST、EST和VGT)
在Vmware esx/esxi中使用虚拟Lan(Vlan)时,一般是指Vlan Trunk的使用,使用的Vlan配置还有其它三种类型: Virtual Switch Tagging(虚拟交换机标记, ...
- Python 使用oslo.vmware管理ESXI虚拟机
oslo.vmware是OpenStack通用框架中的一部分,主要用于实现对虚拟机的管理任务,借助oslo.vmware模块我们可以管理Vmware ESXI集群环境. 读取所有节点主机 from o ...
- [转发]VMware厚置备延迟置零 、 厚置备置零、精简置备 区别
1.厚置备延迟置零(zeroed thick) 以默认的厚格式创建虚拟磁盘.创建过程中为虚拟磁盘分配所需空间.创建时不会擦除物理设备上保留的任何数据,但是以后从虚拟机首次执行写操作时会按需要将其置零. ...
- VMware内CentOS7虚拟机硬盘扩容
转自:https://blog.csdn.net/Wang_Xin_SH/article/details/77872885 简介 CentOS7虚拟机原硬盘空间只分配了10GB,需要扩容到20GB. ...
- 安装虚拟机,磁盘选择厚置备延迟置零与厚置备置零和Thin Provision有什么区别
(1)厚置备延迟置零: (2)厚置备置零: (3)Thin Provision(精简置备). 这三种类型的磁盘,每一种类型的磁盘创建的方式和磁盘性能都有所不同,具体解释如下.1.厚置备延迟置零举例,本 ...
- VMware vSphere中三种磁盘:精简置备/厚置备置零/厚置备延迟置零
VMware磁盘格式分类. 厚置备延迟置零.厚置备置零和精简置备1.厚置备延迟置零(zeroed thick) 以默认的厚格式创建虚拟磁盘.创建过程中为虚拟磁盘分配所需空间.创建时不会擦除物理设备上保 ...
- VMware vSphere 创建虚拟机步骤及三种磁盘规格
https://blog.csdn.net/hanzheng260561728/article/details/80471899 http://www.mycitrix.cn/esxi-disk-mo ...
- VMware虚拟机,从厚置备改成精简置备,并减小硬盘的实际占用空间
工作中由于前期规划不足,导致磁盘空间分配较大,而且是厚置备.后期不再需要时,无法把用不到的空间释放出来,造成空间浪费.经过摸索和实验验证,总结出来一套方法. 风险提示:这个方法在我的环境中验证通过了, ...
- VMWARE ESXI 虚拟硬盘的格式:精简置备、厚置备延迟置零、厚置备置零
精简置备(thin): 精 简配置就是无论磁盘分配多大,实际占用存储大小是现在使用的大小,即用多少算多少.当客户机有输入输出的时候,VMkernel首先分配需要的空间并进行 清零操作,也就是说如果使用 ...
随机推荐
- java hashcode的Delphi实现
程序使用java做后台服务,数据处理时使用了java的hashcode,Delphi程序也需要生成这个hashcode,为了一致,所以要在Delphi下实现和Java一样的算法. 下面即Delphi版 ...
- java struts2入门学习--OGNL语言常用符号和常用标签学习
一.OGNL常用符号(接上一篇文章): 1.#号 1)<s:property value="#request.username"/> 作用于struts2的域对象,而不 ...
- 【LeetCode】221. Maximal Square
Maximal Square Given a 2D binary matrix filled with 0's and 1's, find the largest square containing ...
- SQLDumpSplitter sql文件分割工具
数据库误操作,只好使用使用原来的备份数据去恢复数据,但是数据量太大,只好使用SQLDumpSplitter将大文件分割成小文件,然后恢复指定的表即可.
- 联想Thinkpad笔记本自带win10改win7图文教程
一.准备工作: 1.备份转移硬盘所有文件 2.改装win7将删除所有分区,要恢复预装的win10系统需到售后 3.4G空间以上U盘,制作U盘PE启动盘 4.操作系统:联想Lenovo笔记本专用GHOS ...
- 【Android】Android如何对APK签名
在eclipse项目,生成的apk是自动签名的,因此无需关心.接下来笔者介绍通过DOS窗口对APK进行签名,以及签名的过程中需要注意的问题. 1.为什么需要对APK签名 所有的Android应用程序都 ...
- linux手工释放内存
先使用sync命令以确保文件系统的完整性,sync 命令运行 sync 子例程,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node.已延迟的块 I/O 和读写映射文件. 再执行下面任意一条命 ...
- MongoDB学习笔记(2)
MongoDB 创建数据库 语法 MongoDB 创建数据库的语法格式如下: use DATABASE_NAME 如果数据库不存在,则创建数据库,否则切换到指定数据库. 实例 以下实例我们创建了数据库 ...
- git 使用经验与技巧总结 (不断更新中)
git 使用技巧总结 说明: 本地repo已经有啦,对应的远程repo 为tiger, 本地分支为master. 问题一: 当拉取代码的remote repo仓库为tiger, 而现在要将修 ...
- 【Python】Windows平台下Python、Pydev连接Mysql数据库
Mysql数据库是跨平台的,不是说Python一定就要连接Mongodb. Python连接Mysql数据库是非常easy的. 首先,你要配置好Python的开发环境,详见<[Python]Wi ...