vmware vsphere 精简置备、厚置备转换 thin和thick转换教程

本文详细记录了2021年在VSphere 6.5环境中,如何将虚机的精简置备磁盘转换为厚置备,并提供了理论解释和操作步骤,包括检查磁盘类型、使用vmkfstools命令及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Vmware vsphere精简置备和厚置备转换过程记录2021年6月4日

本次版本是vsphere6.5 esxi

本文有两部分,先说下理论,然后过程教程

 

第一部分-理论部分:

关于虚机磁盘类型有三种:精简置备、厚置备置零、厚置备延迟置零

(1) thin provision就是一种按需分配的格式,创建时虚拟磁盘不会分配给所有需要的空间,而是根据需要,vmdk自动增大并一边zero一边使用这些新空间;vmdk文件的真实大小不等于创建的虚拟磁盘的大小,而只是等于实际数据的大小。(zero就是对磁盘空白处写入0,可以理解成或者翻译成初始化)。

(2) zeroedthick格式,在创建时分配给所有空间,vmdk文件大小等于创建的虚拟磁盘大小,虚拟磁盘中的空闲空间被预占,但空闲空间(empty space)并没有zeroed,需要在使用的时候再zero。由于磁盘在第一次写入时必须zero,这个类型的磁盘在第一次磁盘块写入时会有轻微的I/O性能损失。

(3) eagerzeroedthick,在创建时分配给所有空间,vmdk文件大小等于创建的虚拟磁盘大小,虚拟磁盘中的空闲空间被预占。另外,在创建磁盘时,会将所有数据块都初始化(zero),这将花费更多时间。这种格式的磁盘因为已经zero化,使用时不再需要zero,因此第一次写入数据到磁盘块时的性能较好。启用FT必须使用eagerzeoedthick格式的虚拟磁盘(如果原先不是,也会被转换成这种格式)

 

基本用法:

vmkfstools -i <Source-File> -d {thick|thin} <Dest-File>

thick细分为厚置备置零和厚置备延迟置零,即zeroedthick和leagerzeroedthick,因此在-d后面如果是转换为thick,参数不是thick,而是跟zeroedthick或者eagerzeroedthick

删除vmdk

vmkfstools -U xxx.vmdk 删除xxx.vmdk文件

重命名

vmkfstools -E xxx.vmdk  xxx_new.vmdk

或者用rm  mv也可以

 

然后vmkfstools也给出了直接转换,不需要clone,但是直接转换只支持thin转为thick,不支持thick直接转为thin

精简置备转换为厚置备置零: 

         vmkfstools --inflatedisk xxxxx.vmdk   

                           --inflatedisk可以用-j来替代,两个是等同的

厚置备延迟置零转换位厚置备置零: 

         vmkfstools --eagerzero xxxxxx.vmdk 

                          --eagerzero可以用-k来替代,等同的帮助文档里有写

厚置备转换为精简置备,是不可以直接转换的,需要使用clone方式

          vmkfstools -i xxxx.vmdk -d thin xxxx_new.vmdk

转换后可以进行磁盘检查/修复

         vmkfstools -x xxxx.vmdk

 

本次版本是vsphere6.5 esxi

Vmkfstools 语法

 

第二部分-操作过程;

开始转换工作:

  1. 首先查看当前虚机磁盘格式,确定是精简置备

2.Ssh或者shell到宿主机后台

进入到对应存储目录下查看当前目标虚机相关文件

看红色圈出来的,就是虚机两个vmdk文件,这个地方有一个ELK_02.vmdk,这是因为这个截图是在我已经开始转换时候截图的。可以看到ELK_02-flat.vmdk是500G,而ELK_0-flat.vmdk是244.5G就可以看出来是精简置备还是厚置备了。

 

命令

vmkfstools -i ELK_0.vmdk -d eagerzeroedthick ELK_02.vmdk

参数:-i 指定源文件,有两个vmdk文件,要搞清楚,不是带有flat的vmdk文件。   -d 指定目的文件

一定注意搞清楚vmdk文件具体是哪一个

 

[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK] vmkfstools -i ELK_0.vmdk -d eagerzeroedthick ELK_02.vmdk

Destination disk format: VMFS eagerzeroedthick

Cloning disk 'ELK_0.vmdk'...

Clone: 49% done.

然后处理文件,如果原来的不要了,可以直接把原来的两个vmdk删除掉,然后把两个vmdk改名为原来的名字,开机测试。

这边是保留原来的两个vmdk,把新的vmdk移动到其他文件夹,然后再把非vmdk文件复制一份过去,过程如下截图,在存储目录新建了一个vmtemu目录。

[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8] du -sh ELK
744.5G    ELK

[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8] cd ELK/
[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK] ls
ELK.nvram         ELK.vmsd          ELK.vmx           ELK.vmxf          ELK_0-flat.vmdk   ELK_0.vmdk        ELK_02-flat.vmdk  ELK_02.vmdk       vmware.log

[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK]
[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK]
[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK]
[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK] ls
ELK.nvram         ELK.vmsd          ELK.vmx           ELK.vmxf          ELK_0-flat.vmdk   ELK_0.vmdk        ELK_02-flat.vmdk  ELK_02.vmdk       vmware.log

[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK]
[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK]
[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK]
[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK]
[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK]
[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK] mv ELK_02-flat.vmdk /vmfs/volumes/datastore1/vmtestmu/ELK_02-flat.vmdk

[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK] ls
ELK.nvram        ELK.vmsd         ELK.vmx          ELK.vmxf         ELK_0-flat.vmdk  ELK_0.vmdk       ELK_02.vmdk      vmware.log

[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK] mv ELK_02.vmdk /vmfs/volumes/datastore1/vmtestmu/ELK_02.vmdk

[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK] ls
ELK.nvram        ELK.vmsd         ELK.vmx          ELK.vmxf         ELK_0-flat.vmdk  ELK_0.vmdk       vmware.log

[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK]
[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK]
[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK]
[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK] cp ELK.nvram  /vmfs/volumes/datastore1/vmtestmu/ELK.nvram

[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK] cp ELK.vmsd  /vmfs/volumes/datastore1/vmtestmu/ELK.vmsd

[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK] cp ELK.vmx  /vmfs/volumes/datastore1/vmtestmu/ELK.vmx

[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK] cp ELK.vmxf  /vmfs/volumes/datastore1/vmtestmu/ELK.vmxf

[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK] cp vmware.log  /vmfs/volumes/datastore1/vmtestmu/vmware.log

[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK] ls
ELK.nvram        ELK.vmsd         ELK.vmx          ELK.vmxf         ELK_0-flat.vmdk  ELK_0.vmdk       vmware.log

[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/ELK] cd ..
[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8] ls
ELK            ISO            T100报表       elk            oldvmfiles     storagebackup  vmtestmu

[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8]
[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8]
[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8] cd vmtestmu/
[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/vmtestmu] ls
ELK.nvram         ELK.vmsd          ELK.vmx           ELK.vmxf          ELK_02-flat.vmdk  ELK_02.vmdk       vmware.log

[root@localhost:/vmfs/volumes/609aa4ce-ad232f16-1585-0894ef08dcc8/vmtestmu]

 

保持转换后的新的vmdk名字不变,修改配置文件的方式使得该虚机可以正常启动:

查看一下转换前的vmdk文件内容:

在转换后的vmdk描述文件,发现RW 1048576000 VMFS "ELK_02-flat.vmdk" 实际上已经自动修改了,如果你还是原来的,就把这个位置的vmdk改成xxx-flat.vmdk

修改vmx文件,下面截图红色部分修改

修改为

 

这个地方有一个参数是displayName =  这个后面的名字就是虚机展示出来的名字,直接修改为ELK_02

在配置里还会看到下面这个截图红色部分,不用修改,因为在后面操作中,选择了“我已移动”或者“我已复制”会自动修改这部分配置,在本文后面也会提到

 

注册虚机,如果你是改为原来名字,那需要取消原来虚机注册,然后重新注册一下,如果是移动到了另外位置,原来虚机保持不动,就像上面那样修改,则不需要取消注册,因为虚机名称已经改了,修改为ELK_02了,即刚displayName这个参数,配置文件也做了部分修改,因此找到虚机文件后直接“注册虚机”。

 

选择“我已复制”

 

然后虚拟机开机

我们在去看一下配置文件里提到的vswp这个红色位置就自动更改了。

<think>嗯,用户想知道如何在vSphere上使用FreeBSD的OVFVMDK文件部署虚拟机。首先,我得回忆一下OVFVMDK是什么。OVF是开放虚拟化格式,通常包含虚拟机的配置信息,而VMDK是虚拟磁盘文件。vSphereVMware的虚拟化平台,所以可能需要通过vCenter或ESXi来操作。 首先,用户可能需要先准备好OVFVMDK文件。FreeBSD的官网可能提供这些文件,或者用户自己导出的。然后,在vSphere Client中,应该有一个部署OVF模板的选项。我记得在vSphere的界面里,部署OVF可以通过右键主机或数据中心,选择“部署OVF模板”。可能需要指定OVF文件的位置,本地或者URL。 接下来,步骤可能包括上传文件到存储,配置虚拟机设置,比如网络、存储路径等。需要注意兼容性问题,尤其是OVF版本是否与vSphere版本匹配。另外,VMDK作为磁盘文件,可能需要确认是否与ESXi的版本兼容,否则可能无法挂载。 用户可能遇到的常见问题包括部署时提示OVF格式错误,这时候可能需要检查OVF文件是否完整,或者用ovftool工具来验证。还有可能是磁盘格式问题,比如置备精简置备的区别,需要根据需要进行转换。另外,部署完成后,启动虚拟机可能会遇到驱动问题,尤其是VirtIO驱动是否已安装,不过FreeBSD可能已经自带相关驱动,但可能需要确认。 根据引用[1]提到的virt-v2v可以转换虚拟机并启用VirtIO驱动,但这里用户是直接部署,可能需要确保虚拟硬件配置正确,比如SCSI控制器类型是否为LSI Logic或PVSCSI,网络适配器类型是否为VMXNET3以获得更好性能。此外,引用[2]提到某些配置可能不支持VMware驱动,需要留意。 最后,部署完成后,用户可能需要安装VMware Tools(或Open VM Tools)来增强性能,但FreeBSD有自己的包管理,可以通过pkg安装open-vm-tools。此外,网络配置存储策略也需要根据实际情况调整,比如分配正确的网络端口组存储位置。 总结步骤应该是:准备文件、部署OVF、配置参数、处理可能的问题(兼容性、驱动)、启动并安装工具。需要一步步引导用户,确保每个环节都正确无误。</think>### 如何在 vSphere 上使用 FreeBSD 的 OVF VMDK 文件部署虚拟机? #### 步骤 1: 准备文件 1. 确保已下载 FreeBSD 的 OVF VMDK 文件。 - OVF 文件(扩展名为 `.ovf`)是虚拟机配置描述文件。 - VMDK 文件(扩展名为 `.vmdk`)是虚拟磁盘文件。 - 若文件以压缩包形式提供(如 `.ova`),需先解压。 #### 步骤 2: 上传文件到 vSphere 存储 1. 登录 **vSphere Client**,进入目标数据中心或 ESXi 主机。 2. 右键点击存储(如 `datastore1`),选择 **存储浏览器**,创建新文件夹(如 `FreeBSD_VM`),将 OVF VMDK 文件上传至此目录[^2]。 #### 步骤 3: 部署 OVF 模板 1. 右键点击目标主机或集群,选择 **部署 OVF 模板**。 2. 选择 **本地文件** 或 **URL**,上传 OVF 文件。 - 若文件已上传到存储,可通过 `http://<ESXi_IP>/folder/FreeBSD_VM/...` 格式指定 URL。 3. 根据向导配置: - 输入虚拟机名称(如 `FreeBSD-12`)。 - 选择存储位置(确保有足够空间)。 - 网络适配器选择目标端口组(如 `VM Network`)。 4. 完成部署后,虚拟机将出现在清单中。 #### 步骤 4: 调整虚拟机配置(可选) 1. 检查虚拟硬件兼容性: - 若 OVF 版本与 ESXi 不兼容,需通过 **ovftool** 转换格式: ```bash ovftool --acceptAllEulas -st=vmx FreeBSD.ovf FreeBSD-converted.ovf ``` 2. 确认磁盘配置: - 若 VMDK 格式为精简置备thin),可转换置备thick)以提高性能: ```bash vmkfstools -i source.vmdk -d thick target.vmdk ``` 3. 调整 CPU/内存:根据需求修改分配资源。 #### 步骤 5: 启动虚拟机并安装工具 1. 启动虚拟机,进入 FreeBSD 系统。 2. 安装 **Open VM Tools**(增强性能与功能): ```bash pkg install open-vm-tools sysrc vmware_guest_enable="YES" service vmware-guestd start ``` 3. 配置网络与用户账户。 #### 常见问题解决 - **OVF 格式错误**:使用 `ovftool` 验证并转换格式。 - **VMDK 无法挂载**:检查磁盘类型是否支持(如 IDE/SCSI/SATA)。 - **网络不通**:确认端口组配置与防火墙规则[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值