我每天都对我们的 VMware 工程部门正在解决的所有令人敬畏的功能和挑战感到惊讶,昨天就是另一个例子。内部提出了一个关于为在VMware Fusion中运行的嵌套ESXi环境模拟SSD设备的问题。我认为这将是一个简单的答案,并将用户指向我几年前写的一篇博客文章,介绍如何通过 ESXCLI 使用 SATP 声明规则在 ESXi 中伪造 SSD 设备。事实证明,其中一位工程师知道一种更好的方法来模拟 SSD 虚拟磁盘,不仅可以使用嵌套的 ESXi 虚拟机,还可以用于支持 SSD 设备的任何其他来宾操作系统。
那么,为什么要模拟SSD设备呢?对于 vSphere 环境,您可能希望从功能角度试用新的“交换到主机缓存”功能,以了解其工作原理。您可能正在开发一个脚本来启用此功能,并且拥有“假”SSD 设备将允许您创建此类脚本并对其进行测试。对于其他来宾操作系统,也许您想查看系统对 SSD 设备的反应,可能需要驱动程序或配置,并且您希望在安装真正的 SSD 设备之前运行这些过程。
因此,该解决方案实际上非常简单,它只是虚拟机配置文件(VMX)中的一个高级设置,也可以使用vSphere Web Client,vSphere C#客户端或vSphere API追加到其中。此设置仅在运行虚拟硬件 8 或更高版本的虚拟机上受支持。要将特定虚拟磁盘配置为显示为 SSD,只需添加以下内容:
方法一:
scsiX:Y.virtualSSD = 1
其中 X 是控制器 ID,Y 是虚拟磁盘的磁盘 ID。
方法二:
先将虚拟机关机,然后鼠标右键点击虚拟机,找到编辑设置界面
在“虚拟机选项”页面找到编辑设置
添加添加对应的参数,截图所示scsi0:1.virtualSSD
中的1表示的是第一块盘,若是多快盘添加,记得修改自己的参数
此配置向来宾操作系统显示 SCSI 查询页0xB1的 mediumRotateRate 字段,并将值设置为 1,然后来宾将其报告为固态设备。如您所见,这不仅可以运行嵌套 ESXi,还可以在其他需要“假”SSD 设备的其他来宾操作系统上进行各种测试。
注意:虽然您可以模拟SSD设备,但它不能替代实际的SSD设备,在模拟环境中进行的任何开发或性能测试也应该在真实的SSD设备中进行审查,尤其是在性能方面。
同样重要的是要注意,SSD 设备的报告将在很大程度上取决于 guestOS,以下是一些常见来宾操作系统如何识别 SSD 设备的高级表格。
来宾操作系统 | 固态硬盘报告 |
---|---|
Windows 8 | IDE、SCSI 和 SATA 磁盘可以识别为 SSD |
Windows 7 | IDE和SATA磁盘可以识别为SSD,但SCSI是机械磁盘 |
Linux | (Ubuntu & RHEL) IDE、SCSI 和 SATA 磁盘可以识别为 SSD |
Mac OS X | SATA可以识别为SSD,但IDE和SCSI是机械的 |
下面是具有模拟 SSD 设备的嵌套 ESXi 主机的屏幕截图:
以下是带有模拟 SSD 设备的新 Windows 8.1 预览版的屏幕截图:
注意:虽然我使用 vSphere 演示了这一点,但这也适用于 VMware Fusion(亲自测试)、工作站和播放器。唯一的要求是您运行的是虚拟硬件 8 或更高版本,并且您的 guestOS 支持报告 SSD 设备。
从嵌套 ESXi 的角度来看,我肯定会使用此方法而不是使用 ESXCLI 来浏览 SATP 声明规则,这更容易记住。我还要感谢Regis Duchesne分享这个技巧,感谢Srinivas Singavarapu和虚拟设备团队开发这个很棒的功能。你们摇滚!