2013-01-13 76 views
0

我正在用Php開發Xen管理web應用程序。 VDI(虛擬磁盤映像)重命名API和調整API使用情況非常相似。我還沒有設法成功調整VDI的大小。你認爲我在這裏做錯了嗎?VDI調整api大小不起作用

重命名功能:

function xenapi_set_vdi_name($session, $ref, $name) 
{ 
    $conn = $session[0]; 
    $sess = new xmlrpcval($session[1]); 
    $vdi = new xmlrpcval($ref); 
    $name = new xmlrpcval($name); 
    $msg = new xmlrpcmsg("VDI.set_name_label", array($sess, $vdi, $name)); 

    $res = $conn->send($msg); 

    if ($res->faultcode()) 
     return false; 
    $val = $res->value(); 
    $status = $val->structmem("Status"); 
    if ($status->scalarval() != "Success") 
     return false; 

    $value = $val->structmem("Value"); 
    return $value->scalarval(); 
} 

重命名工作用法:

... 
xenapi_set_vdi_name($session, $vdi, "NewNameToMyVDI"); 
... 

調整大小功能:

function xenapi_set_vdi_virtual_size($session, $ref, $size) 
{ 
    $conn = $session[0]; 
    $sess = new xmlrpcval($session[1]); 
    $vdi = new xmlrpcval($ref); 
    $size = new xmlrpcval($size); 
    $msg = new xmlrpcmsg("VDI.set_virtual_size", array($sess, $vdi, $size)); 

    $res = $conn->send($msg); 

    if ($res->faultcode()) 
     return false; 
    $val = $res->value(); 
    $status = $val->structmem("Status"); 
    if ($status->scalarval() != "Success") 
     return false; 

    $value = $val->structmem("Value"); 
    return $value->scalarval(); 
} 

不工作調整用法:

... 
$size = '27011707392'; 
settype($size, "integer"); 
xenapi_set_vdi_virtual_size($session, $vdi, $size); 
... 

新的大小值與XEN命令物理服務器上的工作原理爲:

xe vdi-resize uuid="91fe671c-93e1-4162-8128-96fedc3c215c" disk-size="27011707392" 
+0

您使用的是32位系統嗎? '$ size ='27011707392';'鑄造到int將是'2147483647'。 –

+0

Xen服務器是一個32位系統。我的網絡服務器的VPS是64位。你告訴我一些我從未聽過的話。什麼是轉換參數。同時'2147483647'也不起作用。 – Kemal

+0

我只是發現我的虛擬機管理程序作爲英特爾32位運行,網絡服務器作爲AMD 64位運行。有關係嗎? – Kemal

回答

0

只是爲了完整性:這個問題是重複的(見下面的鏈接),並報告爲成功解決,所以我從粘貼我的回答問題在這裏。

問: VDI resizing api does not work

答: 從快看看這個:http://xen.org/files/XenCloud/ocamldoc/apidoc.html?c=VDI

我認爲你應該嘗試使用或者「調整」或「調整在線」的方法,而不是「設置虛擬大小」。

用「調整大小」方法報告成功。

+0

我知道。我的serverfault問題與stackoverflow合併。所以...再次感謝你。 – Kemal