VMwareESX/ESXi 精简置备(thin)与厚置备(thick)虚拟机磁盘之间转换[Yerik原创]

VMwareESX/ESXi 虚拟机磁盘thinthick之间转换

注意:转换前请先关闭虚拟机!!!

一.  Thin to Thick转换

Thin to Thick转换比较简单,在图形界面即可操作;

1.    浏览数据存储

点击虚拟机所在的ESX/ESXi主机,在”配置”选项卡下的”存储器”内,浏览数据存储,

c415a644d688d43fbd2e8ebe7d1ed21b0ff43b89


2.    进入相应虚拟机目录,选择相应磁盘的vmdk文件,右键扩充”;

77d4e1638535e5dd14c8ba9376c6a7efcf1b62a9

扩充的过程真心的慢!基本上扩了一天==!


二.  Thick to Thin转换

Thick转换为Thin模式没有直接的图形操作方式,需要使用SSH登录ESX/ESXi主机,默认ESX/ESXi主机没有开启SSH服务,需要先打开SSH;

1.开启SSH服务

选择虚拟机所在的ESX/ESXi主机,点击配置选项卡,点击安全配置文件”,点击服务面板的属性”;

5ac6c302918fa0ec92957b41269759ee3c6ddbc7

e125fc94d143ad4b8660598c82025aafa50f06c2

addce5c9a786c91759aa4d75c93d70cf3ac757e3



2.使用SSH工具登陆并生成Thin磁盘

用户名:root

密码:使用vSphere Client登录ESX/ESXi的密码


<1> 进入虚拟机所在的datastore目录

# cd /vmfs/volumes/datastore1/

# ls

Data_base_SQL

RHEL-5.5-x64-temp

SQLServer2008

SUSE11

thick2thin

vCenter Server


该datastore目录下可能有很多与虚拟机同名的目录,本次转换的虚拟机为thick2thin,进入该虚拟机目录


# cd thick2thin/

# ls

thick2thin-c27753e1.vswp          thick2thin.vmxf

thick2thin-flat.vmdk              thick2thin_1-flat.vmdk

thick2thin.nvram                  thick2thin_1.vmdk

thick2thin.vmdk                  vmware.log

thick2thin.vmsd                  vmx-thick2thin-3262600161-1.vswp

thick2thin.vmx


该虚拟机目录下有许多以虚拟机名开头的文件,其中转换过程中需要用到的文件是vmdk磁盘文件,vmdk有两种,一种是虚拟机名.vmdk”,另一种是虚拟机名-flat.vmdk”,vmdk文件很小,存放了虚拟磁盘的一些配置信息(如虚拟磁盘数据文件等),实际数据都存放在flat.vmdk文件中,转换时需要使用vmdk文件而不是flat.vmdk文件;此例中有两个虚拟磁盘,所以vmdk和flat.vmdk文件各有两个;


<2>开始转换

转换思路:

A.       先使用vmkfstools将厚模式的vmdk文件克隆为精简的vmdk磁盘文件,克隆出的精简磁盘文件将包括vmdk和flat.vmdk文件;

B.       将原来的厚模式磁盘文件vmdk和flat.vmdk文件备份或删除(建议使用mv命令将其重命名备份,以免因转换失败而误删数据);

C.       将新生成的vmdk和flat.vmdk磁盘文件分别重命名为与原磁盘同名的磁盘文件

D.       重新从虚拟机清单中删除添加虚拟机


Vmkfstools命令格式

# vmkfstools -i<source-disk-name.vmdk>-d {thin|thick}<destination-disk-name.vmdk>

参数解释:

-i <source-disk-name.vmdk>参数:原vmdk磁盘名

-d {thin|thick}<destination-disk-name.vmdk> :目标磁盘的格式,thin或thick; <destination-disk-name.vmdk>为要生成的目标vmdk磁盘名;



1)       转换磁盘

# vmkfstools -i thick2thin.vmdk -d thin thin.vmdk

Destination diskformat: VMFS thin-provisioned

Cloning disk'thick2thin.vmdk'...

Clone: 100% done.


克隆完成将生成两个新的vmdk和flat.vmdk文件

# ls

thick2thin-flat.vmdk    thick2thin.vmx          thin-flat.vmdk

thick2thin.nvram        thick2thin.vmxf         thin.vmdk

thick2thin.vmdk         thick2thin_1-flat.vmdk  vmware.log

thick2thin.vmsd         thick2thin_1.vmdk


使用mv重命名将原磁盘vmdk和flat.vmdk备份

# mvthick2thin.vmdk  thick2thin.vmdk.bak

# mvthick2thin-flat.vmdk  thick2thin-flat.vmdk.bak


将新生成的精简vmdk文件重命名为原厚模式的磁盘名称

# mv thin.vmdk  thick2thin.vmdk

注意:在vSphere Client中启动虚拟机,做到此步基本已经完成了Thick to Thin的转换,并且虚拟机已经可以正常启动,但是我们发现flat.vmdk文件并没有更改名字虚拟机也可以正常启动,因为新生成vmdk文件里指定了新的flat.vmdk文件,我们可以通过vi手动更改文件名来修改虚拟机的flat.vmdk名称以便于后期虚机的维护和管理;此时可以启动虚拟机进行测试一下;



更改磁盘名:

首先关闭虚拟机,使用ssh进入主机的虚拟机目录下,使用mv命令将新生成的thin-flat.vmdk文件更改成原来的虚机磁盘名称thick2thin-flat.vmdk

# mvthin-flat.vmdk thick2thin-flat.vmdk


此时如果在vSphere Client启动虚拟机将报”找不到磁盘文件”类似的错误,因为虚拟机启动时需要通过vmdk文件找到flat.vmdk文件,所以需要修改vmdk文件中的磁盘文件名;

使用vi修改其中一行含有flat.vmdk的参数,将该部分修改成新的磁盘文件名

# vi thick2thin.vmdk

# Extentdescription

RW 83886080 VMFS"thick2thin-flat.vmdk"       #注意,此处原来为转换成的thin-flat.vmdk



然后将虚拟机从清单中移除


2dd802d2d539b600fc4310fbe950352ac75cb780

在数据存储里将vmx文件添加到清单

2726dd25b899a901c4db447a1d950a7b0308f5a3


保持默认下一步

9bda48d88d1001e9dfb50b43b80e7bec55e7978c


按照原来的配置下一步

cbc8808e8c5494ee0fcb10552df5e0fe98257eac


完成

ce15478ca9773912c0ad9a2df8198618377ae28e


此时打开虚拟机的”编辑配置”选项

999db3d7277f9e2f85de02441f30e924b999f3ae

查看刚转换的磁盘,已经变成了精简置备模式

5f1ffd3c70cf3bc7b4ead2a0d100baa1cc112aae


而原来的虚拟磁盘因为没有转换,仍为厚置备模式;

ce325f610c3387445e2f3030510fd9f9d62aa0af