2013-01-13 3 views
0

PHP로 Xen 관리 웹 응용 프로그램을 개발 중입니다. 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); 
... 
,536,913,632 10

새로운 크기 값은 같은 물리적 서버에 XEN 명령으로 작동합니다

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

32 비트 시스템을 사용하고 있습니까? '$ size = '27011707392';'casted to int는'2147483647'이 될 것입니다. –

+0

젠 서버는 32 비트 시스템입니다. 내 웹 서버의 VPS는 64 비트입니다. 너는 내가 들어 본 적이없는 것을 말해 준다. 변환을위한 매개 변수는 무엇입니까? 한편 '2147483647'도 효과가 없었습니다. – Kemal

+0

필자는 하이퍼 바이저가 Intel 32bit로 실행되고 웹 서버가 AMD 64bit로 실행된다는 것을 알았습니다. 그게 그렇게 중요한 건가? – Kemal

답변

0

그냥 완전성에 대해 :이 질문은 중복되었다 (아래 링크 참조)를 성공적으로 해결로보고, 그래서 나는 그에서 내 대답을 붙여 해요 여기 질문해라.

질문 : VDI resizing api does not work

답변 : 이 얼핏에서 : http://xen.org/files/XenCloud/ocamldoc/apidoc.html?c=VDI

난 당신이 중 하나를 "조정"나 대신 가상 크기를 설정 "방법"온라인의 크기를 조정 "을 사용하여 시도해야한다고 생각 ".

"크기 조정"방법으로 성공한 것으로보고되었습니다.

+0

알아. 내 serverfault 질문 stackoverflow 하나와 합병했다. 그래서 ... 다시 고마워. – Kemal