如何使用Python将DVD驱动器添加到XenServer中的VM

时间:2011-08-12 13:40:42

标签: python xen

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

3 个答案:

答案 0 :(得分: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将被列为< not in database>。这将允许您精确定位您之后的vbd的uuid!

有关详细信息,请查看以下链接:

  

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

答案 1 :(得分:2)

我在blog上写了这篇文章:

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指的是我们想要的新创建的VM的uuid   添加DVD驱动器。每个物理DVD驱动器都有其VDI   存储在其属性中,可以获取它并将其作为其中一个传递   用于创建将DVD驱动器与VM链接的VBD的参数。

答案 2 :(得分: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);
}