既然是选择题,还是先说答案。这样对于thin/thick概念比较熟悉的同学就可以不用浪费时间看后面的长篇大论了。

  • 如果必须用FT,只能选eagerzeroedthick
  • 如果追求最佳应用性能不考虑空间占用,选eagerzeroedthick
  • 如果希望最大程度的利用空间,并且对磁盘的增长是可控的,可以选thin格式
  • 如果不希望空间的过量分配(oversubsribe)造成潜在的问题,可以选择默认的thick (zeroedthick)

【虚拟磁盘的格式】
虚拟磁盘有3种格式:(1)thin provision (2)thick(也叫zeroedthick) (3)eagerzeroedthik
(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格式的虚拟磁盘(如果原先不是,也会被转换成这种格式)

举 例来说,1个500GB的虚拟磁盘,其中100GB已用,还有400GB未用空间。thin格式的vmdk文件大小就是 100GB,zeroedthick和eagerzeroedthick格式的vmdk文件大小都是500GB,只不过eagerzeroedthick 的那400GB未用空间都已经初始化过了,都填上了0,而zeroedthick的那400GB未用空间还没初始化。

在VI3.5时,GUI界面中没有提供虚拟磁盘类型的选择,而是直接使用默认类型,默认情况如下:

  • 在VMFS datastores上创建新的虚拟磁盘,默认为thick (zeroedthick)
  • 在NFS datastores上创建新的虚拟磁盘,默认为thin
  • 从模版部署一台VM默认为eagerzeroedthick
  • 克隆一台VM默认为eagerzeroedthick

这就是为啥ESX3创建一个新的虚拟磁盘的时候显得很快,但是从模版部署或者克隆的时候却要花很多时间。现实中,大多数虚机的创建,都是通过从模板 部署或克隆一台现有的虚机来实现的,所以在ESX3.x时代,thin格式没啥大用处,虚机的磁盘基本都是eagerzeroedthick格式。

但是,到了vSphere4,VMware对此做了重大的改进,从模版部署一台VM或者克隆一台VM不再默认为eagerzeroedthick, 而是有一个GUI可以让你选择thin还是thick(即zeroedthick)。(关于zeroedthick的clone性能和 eagerzeroedthick格式的clone时性能比较,有待测试)
注:在VI3.x的时候,如果不想用默认选项(比如在VMFS datastore上想创建一个thin格式的虚拟磁盘),可以(在创建虚拟磁盘向导GUI中)选择不创建虚拟磁盘,而到vmkfstools命令行中创建。具体请参考VMware ESX三种虚拟磁盘类型分析 - TechTarget虚拟化
vSphere4,GUI 中多了2个选项,可以选成Thin Provisioning或者选Support clustering features such as FT,就是eagerzeroedthick格式。见下图。(注意,这2个选项是互斥的。) 如果这2个选项都不选上,则是默认的zeroedthick格式。

【这三种格式如何转换?】
从thin转换成thick有3种方法:
(1)svMotion
svMotion  GUI中的thick指的是eagerzeroedthick,用svMotion可以将虚拟磁盘格式转成thin或者eagerzeroedthick,但是没有选项可以转回zeroedthick.
(2) 在vSphere Client中选datastore视图,找到你要转换的虚拟磁盘,点右键。如果这个vmdk是thin的话,可以选inflate来转换(必须是VMFS,NAS的datastroe没有这个选项)

转换的时候虚机必须关闭中,如果在运行中,则会报"Failed to lock the file"错。
(3) 可以用命令行
service console界面:
vmkfstools  –inflatedisk  -a  <vSCSI  adapter  type  (buslogic,  lsi,  etc) <path  to  vdmk  file>
RCLI/vMA:
Vmkfstools.pl  <conn_options>  –inflatedisk  -a  <vSCSI  adapter  type (buslogic,  lsi,  etc)  <path  to  vdmk  file>

问:可以shrink吗?(也就是可以从thick转换成thin吗?)
答:你不能直接从一个thick或eagerzeroedthick格式的虚拟磁盘转换成thin格式的。但是你可以用Storage vMotion来实现。(svMotion是vSphere4中的新功能,VI3不支持)

【存储Thin Provisioning】
实践中,很多存储设备都自己具有Thin provision技术。也就是说,LUN的Thin Provisioning。和VMware对vmdk的Thin provision类似,LUN的thin provision指LUN文件不预占空闲空间,LUN文件的大小随其中已经占用的文件大小来增长。
比 如你为一个VMFS datastore创建了一个iSCSI LUN,大小为500GB,并在其中创建了1个100GB的thick的虚拟磁盘。如果没有启用存储的Thin Provision,那么这个thick的LUN占了500GB空间。如果启用thin provision,则thin LUN占100GB空间。如果这个100GB的虚拟磁盘是thin格式的,其中只有20GB数据,那么thin vmdk只有20GB大(provisioned size 20GB, max size 100GB),这种情况下,thin LUN只占20GB。这被称为thin in thin方式。
thin in thin方式必须格外注意可用空间,因为如果很多VM都突然增长到了max size,存储设备上又没有足够的可用空间可以扩展,可能会导致很多虚机因无法写入磁盘而崩溃。
NetApp建议,如果采用thin LUN的方式,建议设置volume大小自动增长策略,当LUN长大时可以相应自动扩大动态volume的大小,以免LUN大小无法自动扩大而引起的灾难。
scott 书中的最佳实践说,建议总是使用存储自带的thin provisioning技术(除非thin LUN有负面的性能问题);本人并不完全赞同。个人觉得,提高空间利用率的最佳方式,不在于thin provision,而在于是否启用重复数据删除技术(DDD, Data DeDuplication)。对于VMFS datastore,还是应该用thick的LUN,并启用DDD。对于NFS的datastore,没有thin LUN的问题,直接采用DDD即可。

thin还是thick?虚拟磁盘格式的选择题相关推荐

  1. thin还是thick(续),实证新结论!

    曾经写过一篇关于VMware虚拟磁盘格式的博文:<thin还是thick?虚拟磁盘格式的选择题>,介绍了thin和2种thick格式的虚拟磁盘特性,文中也提到VI3.x的时候, 部署(de ...

  2. vmdk to vhdx 虚拟磁盘格式转换qemu-img

    qemu-img是创建.转换.修改磁盘映像的工具,我们可以用它非常方便的转换虚拟磁盘格式,比如在vmdk.vhdx.qcow2.vdi之间相互转换,它在流行的Linux.macOS.Windows平台 ...

  3. linux vmdk 转img,vmdk、vhdx、qcow2、vdi虚拟磁盘格式转换qemu-img

    qemu-img是创建.转换.修改磁盘映像的工具,我们可以用它非常方便的转换虚拟磁盘格式,比如在vmdk.vhdx.qcow2.vdi之间相互转换,它在流行的Linux.macOS.Windows平台 ...

  4. 虚拟磁盘格式转换:vdi - raw - qcow2

    文章目录 XBox 虚拟磁盘 vdi 格式转换为 raw 格式 KVM 虚拟磁盘 raw 格式转换 qcow2 格式 XBox 虚拟磁盘 vdi 格式转换为 raw 格式 命令: VBoxManage ...

  5. ​qemu-img 转换:raw、qcow2、qed、vdi、vmdk、vhd虚拟磁盘格式

    qemu-img 转换:raw.qcow2.qed.vdi.vmdk.vhd ¶ 所述的qemu-IMG转换命令可以执行多种格式,包括之间的转换qcow2,qed, raw,vdi,vhd,和vmdk ...

  6. Phoenix 的 thick Client 和 thin Client

    Phoenix的客户端有两种,"thick Client" 和 "thin Client": thick Client:Phoenix JDBC连接,已引入dr ...

  7. VMware虚拟磁盘类型分析

    既然是选择题,还是先说答案.这样对于thin/thick概念比较熟悉的同学就可以不用浪费时间看后面的长篇大论了. 如果必须用FT,只能选eagerzeroedthick 如果追求最佳应用性能不考虑空间 ...

  8. ESXi虚拟机磁盘格式转换与减小硬盘容量的方法

    VMware虚拟机磁盘厚置备.精简置备两种格式.精简置备磁盘按需增长,厚置备磁盘立刻分配所需空间.厚置备磁盘较之精简置备磁盘有较好的性能,但初始置备浪费的空间较多. 精简置备磁盘虚拟机,如果频繁增加. ...

  9. python xlwt写excel格式控制 颜色、模式、编码、背景色

    转载▼ (二) 关于写excel的格式控制,比如颜色等等 import xlwt from datetime import datetime    font0 = xlwt.Font() font0. ...

最新文章

  1. 创建mysql数据库,在新数据库中创建表,再尝试删除表
  2. adb 命令小集(转)
  3. PAT甲级题目翻译+答案 AcWing(数学)
  4. 脚本升级_手把手教你升级到Database 19c(3)| 终章教程
  5. 短视频自研还是选择第三方?技术选型前必看的自检清单
  6. python中def root的用法_python scipy optimize.root_scalar用法及代码示例
  7. 获取数据库时间相差8小时_JAVA 程序展示时间与数据表保存的时间相差了13个小时...
  8. win11非uefi启动如何安装 Windows11非uefi启动安装的步骤方法
  9. C++ STL 使用assign对list中的元素进行重置
  10. oracle如何设置权限,Oracle创建用户并设置权限
  11. list删除数据的唯一正确写法
  12. Windows 95/98虚拟机OS安装说明书[仅限VirtualBox]
  13. springboot高校教室排课系统的设计与实现毕业设计-附源码221556
  14. 基于DOI码的批量文献下载脚本
  15. ps怎么对比原图快捷键_图片查看方式快捷键
  16. win10服务器文件夹显示不全,Win10系统文件/文件夹图标显示不正常的解决方法
  17. easyui Datagrid的deleteRow多行移除问题
  18. phython入门基础
  19. js-原生Js汉语拼音首字母匹配城市名
  20. PyQt5中为窗口添加菜单工具栏状态栏

热门文章

  1. iframe改变不了css,iframe css问题
  2. c语言学生信息系统 完整版,C语言 学生信息管理系统(完整版).docx
  3. python爬取天天基金_用Python抓取天天基金网基金历史净值数据
  4. php6 配置,thinkphp6路由可选参数配置
  5. 基于SpringBoot +Vue+ ElementUI 开发的多用户博客管理平台,就是这么简单!
  6. 任务数量超过线程池负荷了怎么办?拒绝策略安排起来!
  7. 服务发布或重启,发生抖动怎么办?
  8. 她说要介绍10000个开源项目?来!我们一起监督!
  9. LinkedList 真的是查找慢增删快?
  10. 提升系统 10 倍性能的 10 个建议!