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