2016-08-23 11 views
0

私はVMを複製しようとしていますが、ディスクの容量を変更したいと思います。VI Java APIを使用して仮想ディスクのサイズを変更します

int virtualDisksCount = 0; 
    VirtualDisk virtualDisk = null; 
    for (VirtualDevice virtualDevice : virtualHardware.getDevice()) { 
     if (virtualDevice instanceof VirtualDisk) { 
      virtualDisksCount++; 
      virtualDisk = (VirtualDisk) virtualDevice; 
     } 
    } 
    if (virtualDisksCount == 1) { 
     VirtualDeviceConfigSpec discSpec = new VirtualDeviceConfigSpec(); 
     discSpec.setOperation(VirtualDeviceConfigSpecOperation.EDIT); 

     virtualDisk.setCapacityInBytes(155500000000l); 
     virtualDisk.setCapacityInKB(155500000000000000l); 


     discSpec.setDevice(virtualDisk); 

     return discSpec; 
    } 

コードスロー例外:デバイス '0'の操作が無効です。 CloneVm_TaskとReconfigureVM_Taskでこれらのパラメータを渡したが、同じエラーが発生する

どのように仮想ディスクの容量を変更できますか? Vsphere 5.5を使用する

+1

は私が修正を見つけた同様の問題 – bopomofu

+0

が発生しました私は集めることができるすべてのJavaです。必要な最小限のHDD、たとえば10 GBでイメージを作成すると、DiskManagerを使用してサイズを拡張する必要があります。だから私たちはHDDを伸ばすだけではない –

+0

あなたはvirtualDiskManagerデータオブジェクトを使用することを指していますか?私たちはVirtualDeviceからDiskObjectIdをキャプチャしていない - NULLを返しました – bopomofu

答えて

1

私はJavaでコードを作成しませんが、C#で手助けするには十分に近いです。まず、これを行うには、ディスク情報を取得してから、virtualdeviceconfigspecを取り出して変更し、それをディスクに戻して追加する必要があります。新しい仕様を作成してからプロパティを設定しています。また、なぜサイズをバイトで設定していますか?ここで

は...

myDisk.setCapacityInKB(Long.parseLong(50)*1024*1024); 
VirtualDeviceConfigSpec vdConfigSpec = new VirtualDeviceConfigSpec(); 
vdConfigSpec.setDevice(myDisk); 
vdConfigSpec.setOperation(VirtualDeviceConfigSpecOperation.edit); 
VirtualMachineConfigSpec vmConfigSpec = new VirtualMachineConfigSpec(); 
vmConfigSpec.setDeviceChange(new VirtualDeviceConfigSpec[]{vdConfigSpec}); 
Task task = vm.reconfigVM_Task(vmConfigSpec); 
+0

あなたのコードの一部を共有してください。 –

+0

長すぎるためC#ですので、私は自分のコードを投稿しません。これは、私がJavaで習得できる最善のコードです(Javaを使用してから数年が経ちました)。変更したいディスクを取得したら、これが必要なコードです。私はディスク "myDisk"のラベルを付けました。私は上の私の答えにコードを追加しました。私はそれが助けて欲しいご質問がある場合はお知らせください。 –

+0

私は同じことを試みましたが、操作の編集は許可されていません。私はDiskManager APIを使用しようとし、それは動作します。 vsphereのどのバージョンを使用していますか? –

関連する問題