【问题标题】:Switch disks to persistent mode via vmware sdk api calls通过 vmware sdk api 调用将磁盘切换到持久模式
【发布时间】:2012-03-02 11:53:55
【问题描述】:

更新:首选的解决方案是使用适用于 .NET 的 VmWare 工具包并实现以下目标

我们现在需要执行的任务之一(如果可能的话)是将虚拟硬盘从非持久模式切换到持久模式,反之亦然。

我已尝试寻找正确的 API 调用,但还没有找到。有谁知道这是否可以通过 API 调用来完成?

【问题讨论】:

    标签: c# vmware powercli


    【解决方案1】:

    虽然我没有做过这个确切的操作,但是我通过ReconfigVm任务做过类似的操作:http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/vim.VirtualMachine.html#reconfigure

    您需要使用更新的 VirtualDevice 设置 VirtualMachineConfigSpec,其 VirtualDeviceBackingInfo 在其 diskMode 属性中具有所需的持久性类型。数据对象记录在这里:

    http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/vim.vm.ConfigSpec.html

    http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/vim.vm.device.VirtualDevice.html

    http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/vim.vm.device.VirtualDevice.BackingInfo.html

    【讨论】:

    • 非常感谢马克。我正在尝试进行设置,但没有太多关于如何在 diskMode 属性上设置所需持久性类型的文档。您能否发布一个关于如何执行此操作的快速代码 sn-p?
    • 我已经到了可以创建配置规范并调用 Reconfig_VM 任务的地步。当我查看 VMWare 控制台时,甚至会触发该任务。但是磁盘模式不会切换。您知道 DiskMode 属性的正确值吗?
    【解决方案2】:

    根据VMware vSphere PowerCLI Cmdlets Reference,这应该可以完成工作:

    Get-HardDisk -VM $myVM | Set-HardDisk -Persistence "Independent(Non)Persistent"
    

    【讨论】:

    • 我实际上是在使用 c# 进行 API 调用。我会在转换成等效的 C# 代码后尝试一下,并让你知道。谢谢。
    • 在 VMWare.Vim dll 中找不到任何可以让我做类似事情的东西。不幸的是,由于一些公司限制,我无法使用 powershell 代码。你知道我是否可以通过使用 VMWare.Vim dll 和 C# 来做到这一点吗?
    • 有没有办法以某种方式使用反射器或其他方式查看此 cmdlet 的代码?
    • 首先,问题被标记为powercli 而不是C#。如果您想使用 C# 自动化 vmware,您应该查找 VIX API (vmware.com/support/developer/vix-api)。它具有对 COM 的绑定,这使得它可以通过 dot.net 框架使用。
    • 我已经更新了标签以反映我想要做得更好的地方。我确实尝试了文档,但它不是世界上最好的。我在这里发布了这个问题,因为我需要额外的帮助来完成这项工作。
    猜你喜欢
    • 1970-01-01
    • 2020-10-08
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 2016-12-03
    • 1970-01-01
    • 2013-05-04
    相关资源
    最近更新 更多