4

Python を使用して xenserver 上の VM に DVD ドライブを追加したいと考えています。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)

ここでは、DVD ドライブを追加する新しく作成された VM をVM_ref指します。uuidすべての物理 DVD ドライブには、そのプロパティに格納されている VDI があり、それを取得してパラメーターの 1 つとして渡すことで、DVD ドライブを VM にリンクする VBD を作成できます。

于 2011-09-27T18:26:48.437 に答える
0

Java を使用して XenServer VM に CD ドライブを追加する

まず、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 に答える