4

我想使用 Python 将 DVD 驱动器添加到 xenserver 上的 VM。我使用 Python 创建了一个 VM,现在我想添加连接到主机的 DVD 驱动器,以便在 VM 中也可以访问。所以我还需要为 DVD 驱动器创建一个 VBD。但是我无法获得需要在 VBD.Record 中设置的属性,就像在附加磁盘中一样,我设置了 VDI 属性并附加了它。但是对于 DVD 驱动器,我无法确定需要设置哪个属性才能将该 CD 驱动器附加到 XenServer。请帮我解决这个问题......

4

3 回答 3

3

我无法直接帮助您处理 Python 部分,但我会尝试为您提供正确的命令行语句。

假设 VM 已经有 DVD 驱动器,您可以发出这些命令

xe cd-list
xe vm-cd-insert uuid=... cd-name="xs-tools.iso"
xe vm-cd-eject uuid=...

. .

如果您对 vbd 的东西感兴趣,以下命令可以为您获取 DVD 驱动器的 vbd 的 uuid:

从单个 VM 开始。从 XenCenter 中弹出 DVD。现在通过命令行连接到 XenServer 主机,然后运行:

xe vbd-list vm-uuid=...

如果 VM 有一个空的 DVD 驱动器,它的 vdi-uuid 将被列为 <不在数据库中>。这将允许您查明您之后的 vbd 的 uuid!

有关更多信息,请查看此链接:

http://docs.vmd.citrix.com/XenServer/5.0.0/1.0/en_gb/guest.html

于 2011-08-26T17:53:57.073 回答
2

我在我的博客上写过这个:

sr=session.xenapi.SR.get_by_name_label("DVD drives")
record_dvd=session.xenapi.SR.get_record(sr[0])
VDI_dvd=record_dvd["VDIs"]
vbdconnectcd={'VDI':VDI_dvd[0],
                  'VM':VM_ref,
                  'userdevice':"1",
                  'mode':"RO",
                  'type':"cd",
                  'bootable':True,
                  'unpluggable':True,
                  'empty':False,
                  'other_config':{},
                  'qos_algorithm_type':'',
                  'qos_algorithm_params':{}}
vbdref1=session.xenapi.VBD.create(vbdconnectcd)

在这里,VM_ref指的是uuid我们要添加 DVD 驱动器的新创建的虚拟机。每个物理 DVD 驱动器都有其 VDI,该 VDI 存储在其属性中,可以获取它并将其作为参数之一传递,以创建将 DVD 驱动器与 VM 链接的 VBD。

于 2011-09-27T18:26:48.437 回答
0

使用 Java 将 CD 驱动器添加到 XenServer VM

首先,您必须与 xenserver 连接并获取连接变量。

 public VBD makeCDDrive(VM vm) throws Exception    {

    VBD.Record vbdrecord = new VBD.Record();

    vbdrecord.VM = vm;
    vbdrecord.VDI = null;
    vbdrecord.userdevice = "3";
    vbdrecord.mode = Types.VbdMode.RO;
    vbdrecord.type = Types.VbdType.CD;
    vbdrecord.empty = true;

    return VBD.create(connection, vbdrecord);
}
于 2015-03-11T19:16:10.573 回答